+2003-09-10
+
+ * src/action.c: improved synchronous action exit code (fixes long
+ delay after action exit on RH9) (thanks to Melvin).
+ * src/stringtable.[ch]: string_table_insert_string(): modified the
+ code to remove the warning "dereferencing type-punned pointer will
+ break strict-aliasing rules".
+ Use const gchar * instead of gchar * for arguments.
+
+2003-09-05
+
+ * src/utils.[ch]: generate_mime_boundary(): a new function to create
+ MIME boundary (moved from rfc2015.c).
+ Removed more special characters.
+ Use random() instead of lrand48() which is obsolete.
+ Added an argument for prefix to prevent duplication.
+ Always add "=_" as a counter-QP sequence to simplify the code.
+ * src/rfc2015.c:
+ rfc2015_decrypt_message()
+ rfc2015_encrypt()
+ rfc2015_sign(): fixed a bug that didn't handle continuous content
+ lines correctly.
+ * src/compose.c
+ src/rfc2015.c: use generate_mime_boundary().
+
+2003-09-05
+
+ * src/folderview.c:
+ folderview_delete_folder_cb()
+ folderview_remove_mailbox_cb(): close currently displayed folder
+ before removing FolderItem (fixes crash on deleting folder).
+ * src/folder.h
+ src/imap.[ch]: imap_scan_tree()
+ src/mh.[ch]: mh_scan_tree(): return -1 when scanning failed.
+ * src/summaryview.c: summary_clear_all(): also clear the message view.
+ * src/imap.c: imap_close(): fail if the specified folder is not
+ selected.
+ imap_scan_tree(): check if the specified root directory exist, and
+ try creating it if not.
+ imap_parse_list(): output warning if a server returns error.
+ imap_find_namespace_from_list(): support not slash-delimited path.
+ imap_status(): don't return values if they're not specified.
+
+2003-09-02
+
+ * sylpheed.spec.in: fixed a typo.
+
+2003-09-02
+
+ * version 0.9.5
+
2003-09-01
* src/inc.[ch]
+2003-09-11 [paul] 0.9.5claws1
+
+ * sync with 0.9.5cvs3
+ see ChangeLog 2003-09-10
+
2003-09-10 [paul] 0.9.5claws
* 0.9.5claws released
+2003-09-10
+
+ * src/action.c: action ½ªÎ»¤Î¥³¡¼¥É¤ò²þÎÉ(RH9 ¤Ç action ½ªÎ»»þ¤Ë
+ Ĺ»þ´ÖÂÔ¤¿¤µ¤ì¤ë¤Î¤ò½¤Àµ) (Melvin ¤µ¤ó thanks)¡£
+ * src/stringtable.[ch]: string_table_insert_string(): ·Ù¹ð
+ "dereferencing type-punned pointer will break strict-aliasing
+ rules" ¤ò½üµî¤¹¤ë¤¿¤á¤Ë¥³¡¼¥É¤ò½¤Àµ¡£
+ °ú¿ô¤Ë gchar * ¤ÎÂå¤ï¤ê¤Ë const gchar * ¤ò»ÈÍÑ¡£
+
+2003-09-05
+
+ * src/utils.[ch]: generate_mime_boundary(): MIME boundary ¤òºîÀ®¤¹¤ë
+ ¿·µ¬´Ø¿ô(rfc2015.c ¤«¤é°ÜÆ°)¡£
+ ¤µ¤é¤ËÆÃÊÌʸ»ú¤ò½üµî¡£
+ obsolete ¤Ê lrand48() ¤Î¤«¤ï¤ê¤Ë random() ¤ò»ÈÍÑ¡£
+ ½ÅÊ£¤òÈò¤±¤ë¤¿¤á¤Ë prefix ¤Î°ú¿ô¤òÄɲá£
+ ÂÐ QP ¥·¡¼¥±¥ó¥¹¤È¤·¤Æ¾ï¤Ë "=_" ¤òÄɲä·¡¢¥³¡¼¥É¤òñ½ã²½¡£
+ * src/rfc2015.c:
+ rfc2015_decrypt_message()
+ rfc2015_encrypt()
+ rfc2015_sign(): ·Ñ³¤¹¤ë content ¹Ô¤òÀµ¤·¤¯°·¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¥Ð¥°¤ò
+ ½¤Àµ¡£
+ * src/compose.c
+ src/rfc2015.c: generate_mime_boundary() ¤ò»ÈÍÑ¡£
+
+2003-09-05
+
+ * src/folderview.c:
+ folderview_delete_folder_cb()
+ folderview_remove_mailbox_cb(): FolderItem ¤òºï½ü¤¹¤ëÁ°¤Ë¸½ºßɽ¼¨
+ ¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤òÊĤ¸¤ë¤è¤¦¤Ë¤·¤¿(¥Õ¥©¥ë¥Àºï½ü»þ¤Î¥¯¥é¥Ã¥·¥å¤ò
+ ½¤Àµ)¡£
+ * src/folder.h
+ src/imap.[ch]: imap_scan_tree()
+ src/mh.[ch]: mh_scan_tree(): ¥¹¥¥ã¥ó¤Ë¼ºÇÔ¤·¤¿¤È¤¤Ï -1 ¤òÊÖ¤¹¡£
+ * src/summaryview.c: summary_clear_all(): ¥á¥Ã¥»¡¼¥¸¥Ó¥å¡¼¤â¥¯¥ê¥¢¡£
+ * src/imap.c: imap_close(): »ØÄꤷ¤¿¥Õ¥©¥ë¥À¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð
+ ¼ºÇÔ¡£
+ imap_scan_tree(): »ØÄꤷ¤¿¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤ò
+ Ä´¤Ù¡¢¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+ imap_parse_list(): ¥µ¡¼¥Ð¤¬¥¨¥é¡¼¤òÊÖ¤·¤¿¤é·Ù¹ð¤ò½ÐÎÏ¡£
+ imap_find_namespace_from_list(): ¥¹¥é¥Ã¥·¥å¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥¹
+ ¤ËÂбþ¡£
+ imap_status(): »ØÄꤷ¤Ê¤±¤ì¤ÐÃͤòÊÖ¤µ¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
+
+2003-09-02
+
+ * sylpheed.spec.in: typo ¤ò½¤Àµ¡£
+
+2003-09-02
+
+ * version 0.9.5
+
2003-09-01
* src/inc.[ch]
MICRO_VERSION=5
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=0
+EXTRA_VERSION=1
if test $EXTRA_VERSION -eq 0; then
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
else
return strtable;
}
-gchar *string_table_lookup_string(StringTable *table, gchar *str)
+gchar *string_table_lookup_string(StringTable *table, const gchar *str)
{
- StringEntry *entry = g_hash_table_lookup(table->hash_table,
- (gconstpointer)str);
- if (!entry) {
- return NULL;
- } else {
+ StringEntry *entry;
+
+ entry = g_hash_table_lookup(table->hash_table, str);
+
+ if (entry) {
return entry->string;
+ } else {
+ return NULL;
}
}
-gchar *string_table_insert_string(StringTable *table, gchar *str)
+gchar *string_table_insert_string(StringTable *table, const gchar *str)
{
- gchar *key = NULL;
- StringEntry *entry = NULL;
+ StringEntry *entry;
- if (g_hash_table_lookup_extended
- (table->hash_table, str, (gpointer *)&key, (gpointer *)&entry)) {
+ entry = g_hash_table_lookup(table->hash_table, str);
+
+ if (entry) {
entry->ref_count++;
- XXX_DEBUG ("ref++ for %s (%d)\n", entry->string, entry->ref_count);
+ XXX_DEBUG ("ref++ for %s (%d)\n", entry->string,
+ entry->ref_count);
} else {
entry = string_entry_new(str);
XXX_DEBUG ("inserting %s\n", str);
return entry->string;
}
-void string_table_free_string(StringTable *table, gchar *str)
+void string_table_free_string(StringTable *table, const gchar *str)
{
StringEntry *entry;
if (entry) {
entry->ref_count--;
if (entry->ref_count <= 0) {
- XXX_DEBUG ("refcount of string %s dropped to zero\n", entry->string);
+ XXX_DEBUG ("refcount of string %s dropped to zero\n",
+ entry->string);
g_hash_table_remove(table->hash_table, str);
string_entry_free(entry);
} else {
- XXX_DEBUG ("ref-- for %s (%d)\n", entry->string, entry->ref_count);
+ XXX_DEBUG ("ref-- for %s (%d)\n", entry->string,
+ entry->ref_count);
}
}
}
StringTable *string_table_new (void);
void string_table_free (StringTable *table);
-gchar *string_table_lookup_string (StringTable *table, gchar *str);
-gchar *string_table_insert_string (StringTable *table, gchar *str);
-void string_table_free_string (StringTable *table, gchar *str);
+gchar *string_table_lookup_string (StringTable *table, const gchar *str);
+gchar *string_table_insert_string (StringTable *table, const gchar *str);
+void string_table_free_string (StringTable *table, const gchar *str);
void string_table_get_stats (StringTable *table);