commit a23ad721b787c05d9a38db57450eeba66408af9c
parent 392f6b285662bea2f6962d01184c5cc64a4fa733
Author: Colin Leroy <colin@colino.net>
Date: Tue, 5 Aug 2008 16:41:06 +0000
2008-08-05 [colin] 3.5.0cvs50
* src/action.c
* src/addr_compl.c
* src/addrbook.c
* src/addrcindex.c
* src/addrduplicates.c
* src/addrharvest.c
* src/enriched.c
* src/html.c
* src/ldif.c
* src/main.c
* src/mimeview.c
* src/mutt.c
* src/pine.c
* src/procmime.c
* src/vcard.c
* src/wizard.c
* src/common/socket.c
* src/gtk/gtkutils.c
* src/gtk/gtkutils.h
* src/gtk/menu.c
* src/plugins/spamassassin/spamassassin.c
More undeprecation (Glib)
Diffstat:
24 files changed, 213 insertions(+), 69 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,28 @@
+2008-08-05 [colin] 3.5.0cvs50
+
+ * src/action.c
+ * src/addr_compl.c
+ * src/addrbook.c
+ * src/addrcindex.c
+ * src/addrduplicates.c
+ * src/addrharvest.c
+ * src/enriched.c
+ * src/html.c
+ * src/ldif.c
+ * src/main.c
+ * src/mimeview.c
+ * src/mutt.c
+ * src/pine.c
+ * src/procmime.c
+ * src/vcard.c
+ * src/wizard.c
+ * src/common/socket.c
+ * src/gtk/gtkutils.c
+ * src/gtk/gtkutils.h
+ * src/gtk/menu.c
+ * src/plugins/spamassassin/spamassassin.c
+ More undeprecation (Glib)
+
2008-08-05 [colin] 3.5.0cvs49
* src/prefs_account.c
diff --git a/PATCHSETS b/PATCHSETS
@@ -3461,3 +3461,4 @@
( cvs diff -u -r 1.382.2.462 -r 1.382.2.463 src/compose.c; cvs diff -u -r 1.50.2.48 -r 1.50.2.49 src/compose.h; cvs diff -u -r 1.19.2.27 -r 1.19.2.28 src/toolbar.h; cvs diff -u -r 1.96.2.203 -r 1.96.2.204 src/textview.c; cvs diff -u -r 1.25.2.58 -r 1.25.2.59 src/stock_pixmap.c; cvs diff -u -r 1.5.2.21 -r 1.5.2.22 src/statusbar.c; cvs diff -u -r 1.3.8.8 -r 1.3.8.9 src/noticeview.h; cvs diff -u -r 1.20.2.25 -r 1.20.2.26 src/mimeview.h; cvs diff -u -r 1.274.2.262 -r 1.274.2.263 src/mainwindow.c; cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/image_viewer.c; cvs diff -u -r 1.9.2.57 -r 1.9.2.58 src/gtk/gtkaspell.c; cvs diff -u -r 1.5.2.13 -r 1.5.2.14 src/gtk/gtkvscrollbutton.c; cvs diff -u -r 1.12.2.26 -r 1.12.2.27 src/plugins/dillo_viewer/dillo_viewer.c; ) > 3.5.0cvs47.patchset
( cvs diff -u -r 1.9.2.23 -r 1.9.2.24 src/addressadd.c; cvs diff -u -r 1.60.2.122 -r 1.60.2.123 src/addressbook.c; cvs diff -u -r 1.1.2.11 -r 1.1.2.12 src/addressbook_foldersel.c; cvs diff -u -r 1.5.2.10 -r 1.5.2.11 src/addressitem.h; cvs diff -u -r 1.5.10.24 -r 1.5.10.25 src/addrgather.c; cvs diff -u -r 1.2.4.20 -r 1.2.4.21 src/browseldap.c; cvs diff -u -r 1.382.2.462 -r 1.382.2.463 src/compose.c; cvs diff -u -r 1.50.2.48 -r 1.50.2.49 src/compose.h; cvs diff -u -r 1.14.2.51 -r 1.14.2.52 src/editaddress.c; cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/editaddress_other_attributes_ldap.c; cvs diff -u -r 1.11.2.19 -r 1.11.2.20 src/editgroup.c; cvs diff -u -r 1.10.2.13 -r 1.10.2.14 src/editldap_basedn.c; cvs diff -u -r 1.207.2.204 -r 1.207.2.205 src/folderview.c; cvs diff -u -r 1.20.2.23 -r 1.20.2.24 src/folderview.h; cvs diff -u -r 1.14.2.20 -r 1.14.2.21 src/grouplistdialog.c; cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/image_viewer.c; cvs diff -u -r 1.1.2.60 -r 1.1.2.61 src/imap_gtk.c; cvs diff -u -r 1.14.2.18 -r 1.14.2.19 src/importldif.c; cvs diff -u -r 1.115.2.200 -r 1.115.2.201 src/main.c; cvs diff -u -r 1.274.2.262 -r 1.274.2.263 src/mainwindow.c; cvs diff -u -r 1.3.12.30 -r 1.3.12.31 src/message_search.c; cvs diff -u -r 1.2.2.33 -r 1.2.2.34 src/mh_gtk.c; cvs diff -u -r 1.83.2.138 -r 1.83.2.139 src/mimeview.c; cvs diff -u -r 1.20.2.25 -r 1.20.2.26 src/mimeview.h; cvs diff -u -r 1.2.2.28 -r 1.2.2.29 src/news_gtk.c; cvs diff -u -r 1.3.8.8 -r 1.3.8.9 src/noticeview.h; cvs diff -u -r 1.105.2.139 -r 1.105.2.140 src/prefs_account.c; cvs diff -u -r 1.1.4.53 -r 1.1.4.54 src/prefs_filtering_action.c; cvs diff -u -r 1.43.2.73 -r 1.43.2.74 src/prefs_matcher.c; cvs diff -u -r 1.1.2.37 -r 1.1.2.38 src/prefs_msg_colors.c; cvs diff -u -r 1.1.2.56 -r 1.1.2.57 src/prefs_summaries.c; cvs diff -u -r 1.5.2.21 -r 1.5.2.22 src/statusbar.c; cvs diff -u -r 1.25.2.58 -r 1.25.2.59 src/stock_pixmap.c; cvs diff -u -r 1.15.2.54 -r 1.15.2.55 src/summary_search.c; cvs diff -u -r 1.395.2.379 -r 1.395.2.380 src/summaryview.c; cvs diff -u -r 1.68.2.48 -r 1.68.2.49 src/summaryview.h; cvs diff -u -r 1.96.2.203 -r 1.96.2.204 src/textview.c; cvs diff -u -r 1.19.2.27 -r 1.19.2.28 src/toolbar.h; cvs diff -u -r 1.20.2.16 -r 1.20.2.17 src/gtk/Makefile.am; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/gtk/claws-marshal.list; cvs diff -u -r 1.1.4.11 -r 1.1.4.12 src/gtk/colorsel.c; cvs diff -u -r 1.1.2.16 -r 1.1.2.17 src/gtk/foldersort.c; cvs diff -u -r 1.9.2.57 -r 1.9.2.58 src/gtk/gtkaspell.c; diff -u /dev/null src/gtk/gtkcmclist.c; diff -u /dev/null src/gtk/gtkcmclist.h; diff -u /dev/null src/gtk/gtkcmctree.c; diff -u /dev/null src/gtk/gtkcmctree.h; cvs diff -u -r 1.1.4.46 -r 1.1.4.47 src/gtk/gtksctree.c; cvs diff -u -r 1.1.4.13 -r 1.1.4.14 src/gtk/gtksctree.h; cvs diff -u -r 1.5.2.78 -r 1.5.2.79 src/gtk/gtkutils.c; cvs diff -u -r 1.4.2.42 -r 1.4.2.43 src/gtk/gtkutils.h; cvs diff -u -r 1.5.2.13 -r 1.5.2.14 src/gtk/gtkvscrollbutton.c; cvs diff -u -r 1.5.2.34 -r 1.5.2.35 src/gtk/menu.c; cvs diff -u -r 1.4.2.19 -r 1.4.2.20 src/gtk/menu.h; cvs diff -u -r 1.1.2.83 -r 1.1.2.84 src/gtk/quicksearch.c; cvs diff -u -r 1.12.2.26 -r 1.12.2.27 src/plugins/dillo_viewer/dillo_viewer.c; cvs diff -u -r 1.1.2.20 -r 1.1.2.21 src/plugins/pgpcore/select-keys.c; ) > 3.5.0cvs48.patchset
( cvs diff -u -r 1.105.2.140 -r 1.105.2.141 src/prefs_account.c; cvs diff -u -r 1.1.4.54 -r 1.1.4.55 src/prefs_filtering_action.c; cvs diff -u -r 1.43.2.74 -r 1.43.2.75 src/prefs_matcher.c; cvs diff -u -r 1.20.2.16 -r 1.20.2.17 src/gtk/Makefile.am; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/gtk/claws-marshal.list; cvs diff -u -r 1.2.2.21 -r 1.2.2.22 src/gtk/colorlabel.c; cvs diff -u -r 1.1.4.11 -r 1.1.4.12 src/gtk/colorsel.c; cvs diff -u -r 1.1.2.16 -r 1.1.2.17 src/gtk/foldersort.c; cvs diff -u -r 1.9.2.57 -r 1.9.2.58 src/gtk/gtkaspell.c; diff -u /dev/null src/gtk/gtkcmclist.c; diff -u /dev/null src/gtk/gtkcmclist.h; diff -u /dev/null src/gtk/gtkcmctree.c; diff -u /dev/null src/gtk/gtkcmctree.h; diff -u /dev/null src/gtk/gtkcmoptionmenu.c; diff -u /dev/null src/gtk/gtkcmoptionmenu.h; cvs diff -u -r 1.1.4.46 -r 1.1.4.47 src/gtk/gtksctree.c; cvs diff -u -r 1.1.4.13 -r 1.1.4.14 src/gtk/gtksctree.h; cvs diff -u -r 1.5.2.78 -r 1.5.2.79 src/gtk/gtkutils.c; cvs diff -u -r 1.4.2.42 -r 1.4.2.43 src/gtk/gtkutils.h; cvs diff -u -r 1.5.2.13 -r 1.5.2.14 src/gtk/gtkvscrollbutton.c; cvs diff -u -r 1.5.2.34 -r 1.5.2.35 src/gtk/menu.c; cvs diff -u -r 1.4.2.19 -r 1.4.2.20 src/gtk/menu.h; cvs diff -u -r 1.1.2.83 -r 1.1.2.84 src/gtk/quicksearch.c; cvs diff -u -r 1.12.2.26 -r 1.12.2.27 src/plugins/dillo_viewer/dillo_viewer.c; cvs diff -u -r 1.1.2.20 -r 1.1.2.21 src/plugins/pgpcore/select-keys.c; ) > 3.5.0cvs49.patchset
+( cvs diff -u -r 1.12.2.53 -r 1.12.2.54 src/action.c; cvs diff -u -r 1.27.2.41 -r 1.27.2.42 src/addr_compl.c; cvs diff -u -r 1.22.2.18 -r 1.22.2.19 src/addrbook.c; cvs diff -u -r 1.1.4.6 -r 1.1.4.7 src/addrcindex.c; cvs diff -u -r 1.1.2.11 -r 1.1.2.12 src/addrduplicates.c; cvs diff -u -r 1.6.10.16 -r 1.6.10.17 src/addrharvest.c; cvs diff -u -r 1.3.2.4 -r 1.3.2.5 src/enriched.c; cvs diff -u -r 1.12.2.23 -r 1.12.2.24 src/html.c; cvs diff -u -r 1.12.2.16 -r 1.12.2.17 src/ldif.c; cvs diff -u -r 1.115.2.201 -r 1.115.2.202 src/main.c; cvs diff -u -r 1.83.2.139 -r 1.83.2.140 src/mimeview.c; cvs diff -u -r 1.6.10.13 -r 1.6.10.14 src/mutt.c; cvs diff -u -r 1.6.2.12 -r 1.6.2.13 src/pine.c; cvs diff -u -r 1.49.2.109 -r 1.49.2.110 src/procmime.c; cvs diff -u -r 1.14.2.14 -r 1.14.2.15 src/vcard.c; cvs diff -u -r 1.1.2.71 -r 1.1.2.72 src/wizard.c; cvs diff -u -r 1.13.2.37 -r 1.13.2.38 src/common/socket.c; cvs diff -u -r 1.5.2.79 -r 1.5.2.80 src/gtk/gtkutils.c; cvs diff -u -r 1.4.2.43 -r 1.4.2.44 src/gtk/gtkutils.h; cvs diff -u -r 1.5.2.35 -r 1.5.2.36 src/gtk/menu.c; cvs diff -u -r 1.18.2.60 -r 1.18.2.61 src/plugins/spamassassin/spamassassin.c; ) > 3.5.0cvs50.patchset
diff --git a/configure.ac b/configure.ac
@@ -11,7 +11,7 @@ MINOR_VERSION=5
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=49
+EXTRA_VERSION=50
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
@@ -144,7 +144,7 @@ fi
CFLAGS="$CFLAGS -Wall"
if test $USE_MAINTAINER_MODE = yes; then
- CFLAGS="$CFLAGS -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED"
+ CFLAGS="$CFLAGS -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED"
fi
pthread_name=
diff --git a/src/action.c b/src/action.c
@@ -890,7 +890,7 @@ static gboolean execute_actions(gchar *action, GSList *msg_list,
child_info->callback = callback;
child_info->data = data;
child_info->tag_status =
- gdk_input_add(child_info->chld_status,
+ claws_input_add(child_info->chld_status,
GDK_INPUT_READ,
catch_status, child_info);
}
@@ -1051,9 +1051,9 @@ static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str,
child_info->chld_err = chld_err[0];
child_info->chld_status = chld_status[0];
child_info->tag_in = -1;
- child_info->tag_out = gdk_input_add(chld_out[0], GDK_INPUT_READ,
+ child_info->tag_out = claws_input_add(chld_out[0], GDK_INPUT_READ,
catch_output, child_info);
- child_info->tag_err = gdk_input_add(chld_err[0], GDK_INPUT_READ,
+ child_info->tag_err = claws_input_add(chld_err[0], GDK_INPUT_READ,
catch_output, child_info);
if (!(children->action_type &
@@ -1137,7 +1137,7 @@ static void send_input(GtkWidget *w, gpointer data)
Children *children = (Children *) data;
ChildInfo *child_info = (ChildInfo *) children->list->data;
- child_info->tag_in = gdk_input_add(child_info->chld_in,
+ child_info->tag_in = claws_input_add(child_info->chld_in,
GDK_INPUT_WRITE,
catch_input, children);
}
@@ -1180,11 +1180,11 @@ static void childinfo_close_pipes(ChildInfo *child_info)
* them if necessary
*/
if (child_info->tag_in > 0)
- gdk_input_remove(child_info->tag_in);
+ g_source_remove(child_info->tag_in);
if (child_info->tag_out > 0)
- gdk_input_remove(child_info->tag_out);
+ g_source_remove(child_info->tag_out);
if (child_info->tag_err > 0)
- gdk_input_remove(child_info->tag_err);
+ g_source_remove(child_info->tag_err);
if (child_info->chld_in >= 0)
(void)close(child_info->chld_in);
@@ -1430,7 +1430,7 @@ static void catch_status(gpointer data, gint source, GdkInputCondition cond)
gchar buf;
gint c;
- gdk_input_remove(child_info->tag_status);
+ g_source_remove(child_info->tag_status);
c = read(source, &buf, 1);
debug_print("Child returned %c\n", buf);
@@ -1504,7 +1504,7 @@ static void catch_input(gpointer data, gint source, GdkInputCondition cond)
gtk_widget_set_sensitive(children->input_hbox, FALSE);
gtk_widget_grab_focus(children->abort_btn);
- gdk_input_remove(child_info->tag_in);
+ g_source_remove(child_info->tag_in);
child_info->tag_in = -1;
input = gtk_editable_get_chars(GTK_EDITABLE(children->input_entry),
@@ -1603,12 +1603,12 @@ static void catch_output(gpointer data, gint source, GdkInputCondition cond)
}
if (c == 0) {
if (source == child_info->chld_out) {
- gdk_input_remove(child_info->tag_out);
+ g_source_remove(child_info->tag_out);
child_info->tag_out = -1;
(void)close(child_info->chld_out);
child_info->chld_out = -1;
} else {
- gdk_input_remove(child_info->tag_err);
+ g_source_remove(child_info->tag_err);
child_info->tag_err = -1;
(void)close(child_info->chld_err);
child_info->chld_err = -1;
diff --git a/src/addr_compl.c b/src/addr_compl.c
@@ -118,7 +118,7 @@ static GSList *g_completion_addresses; /* unique addresses found in the
completion cache. */
static gchar *g_completion_prefix; /* last prefix. (this is cached here
* because the prefix passed to g_completion
- * is g_strdown()'ed */
+ * is g_utf8_strdown()'ed */
static gchar *completion_folder_path = NULL;
@@ -1348,7 +1348,7 @@ static void address_completion_create_completion_window( GtkEntry *entry_ )
GTK_SHADOW_OUT);
/* Use entry widget to create initial window */
gdk_window_get_geometry(entry->window, &x, &y, &width, &height, &depth);
- gdk_window_get_deskrelative_origin (entry->window, &x, &y);
+ gdk_window_get_origin (entry->window, &x, &y);
y += height;
gtk_window_move(GTK_WINDOW(window), x, y);
diff --git a/src/addrbook.c b/src/addrbook.c
@@ -1425,7 +1425,7 @@ void addrbook_update_address_list(AddressBookFile *book, ItemPerson *person,
ItemEMail *email = node->data;
gchar *addr = g_strdup(email->address);
gchar *alias = email->obj.name ;
- g_strdown(addr);
+ g_utf8_strdown(addr, -1);
if (!g_hash_table_lookup(hashEMail, addr)) {
g_hash_table_insert(hashEMail, addr, email);
}
@@ -1454,7 +1454,7 @@ void addrbook_update_address_list(AddressBookFile *book, ItemPerson *person,
ItemEMail *emailNew = NULL;
gchar *addr = g_strdup(emailGrp->address);
gchar *alias = emailGrp->obj.name;
- g_strdown(addr);
+ g_utf8_strdown(addr, -1);
emailNew = (ItemEMail *)
g_hash_table_lookup(hashEMail, addr);
g_free( addr );
diff --git a/src/addrcindex.c b/src/addrcindex.c
@@ -129,7 +129,7 @@ void addrcindex_add_entry(
entry = g_new0( AddrIndexEntry, 1 );
entry->name = g_strdup( name );
entry->address = email;
- g_strdown( entry->name );
+ g_utf8_strdown( entry->name, -1 );
index->addressList = g_list_append( index->addressList, entry );
}
@@ -357,7 +357,7 @@ GList *addrcindex_search( AddrCacheIndex *index, const gchar *search ) {
/* Perform the search */
prefix = g_strdup( search );
- g_strdown( prefix );
+ g_utf8_strdown( prefix, -1 );
list = g_completion_complete( index->completion, prefix, NULL );
g_free( prefix );
diff --git a/src/addrduplicates.c b/src/addrduplicates.c
@@ -279,7 +279,7 @@ static gint collect_emails(ItemPerson *itemperson, AddressDataSource *ds)
ItemEMail *email = nodeM->data;
addr = g_strdup(email->address);
- g_strdown(addr);
+ g_utf8_strdown(addr, -1);
old_val = g_hash_table_lookup(addr_hash, addr);
if(old_val)
new_val = deep_copy_hash_val(old_val);
diff --git a/src/addrharvest.c b/src/addrharvest.c
@@ -300,7 +300,7 @@ static void addrharvest_insert_cache(
/* Insert address */
key = g_strdup( address );
- g_strdown( key );
+ g_utf8_strdown( key, -1 );
person = g_hash_table_lookup( harvester->dupTable, key );
if( person ) {
/* Update existing person to use longest name */
@@ -808,7 +808,7 @@ gint addrharvest_harvest(
gchar *p;
p = g_strdup( entry->header );
- g_strdown( p );
+ g_utf8_strdown( p, -1 );
listHdr = g_list_append( listHdr, p );
}
node = g_list_next( node );
diff --git a/src/common/socket.c b/src/common/socket.c
@@ -842,7 +842,10 @@ gint sock_connect_async_cancel(gint id)
if (conn_data->io_tag > 0)
g_source_remove(conn_data->io_tag);
if (conn_data->channel) {
- g_io_channel_close(conn_data->channel);
+ GError *err = NULL;
+ g_io_channel_shutdown(conn_data->channel, TRUE, &err);
+ if (err)
+ g_error_free(err);
g_io_channel_unref(conn_data->channel);
}
@@ -918,21 +921,38 @@ static gboolean sock_get_address_info_async_cb(GIOChannel *source,
struct sockaddr *addr;
gchar *canonical_name = NULL;
gchar len = 0;
-
- if (g_io_channel_read(source, &len, sizeof(len),
- &bytes_read) == G_IO_ERROR_NONE) {
+ GError *err = NULL;
+
+ g_io_channel_set_encoding(source, NULL, &err);
+ if (err) {
+ g_warning("can unset encoding: %s\n", err->message);
+ g_error_free(err);
+ return FALSE;
+ }
+ g_io_channel_set_buffered(source, FALSE);
+ if (g_io_channel_read_chars(source, &len, sizeof(len),
+ &bytes_read, &err) == G_IO_STATUS_NORMAL) {
+ if (err != NULL) {
+ g_warning("g_io_channel_read_chars: %s\n", err->message);
+ g_error_free(err);
+ return FALSE;
+ }
if (bytes_read == sizeof(len) && len > 0) {
gchar *cur = NULL;
gint todo = len;
canonical_name = g_malloc0(len + 1);
cur = canonical_name;
while (todo > 0) {
- if (g_io_channel_read(source, cur, todo,
- &bytes_read) != G_IO_ERROR_NONE) {
- g_warning("canonical name not read\n");
- g_free(canonical_name);
- canonical_name = NULL;
- break;
+ if (g_io_channel_read_chars(source, cur, todo,
+ &bytes_read, &err) != G_IO_STATUS_NORMAL) {
+ if (err) {
+ g_warning("canonical name not read %s\n", err->message);
+ g_free(canonical_name);
+ canonical_name = NULL;
+ g_error_free(err);
+ err = NULL;
+ break;
+ }
} else {
cur += bytes_read;
todo -= bytes_read;
@@ -947,12 +967,15 @@ static gboolean sock_get_address_info_async_cb(GIOChannel *source,
}
}
for (;;) {
- if (g_io_channel_read(source, (gchar *)ai_member,
- sizeof(ai_member), &bytes_read)
- != G_IO_ERROR_NONE) {
- g_warning("sock_get_address_info_async_cb: "
- "address length read error\n");
- break;
+ if (g_io_channel_read_chars(source, (gchar *)ai_member,
+ sizeof(ai_member), &bytes_read, &err)
+ != G_IO_STATUS_NORMAL) {
+ if (err != NULL) {
+ g_warning("g_io_channel_read_chars: addr len %s\n", err->message);
+ g_error_free(err);
+ err = NULL;
+ break;
+ }
}
if (bytes_read == 0 || bytes_read != sizeof(ai_member))
@@ -964,13 +987,16 @@ static gboolean sock_get_address_info_async_cb(GIOChannel *source,
}
addr = g_malloc(ai_member[3]);
- if (g_io_channel_read(source, (gchar *)addr, ai_member[3],
- &bytes_read)
- != G_IO_ERROR_NONE) {
- g_warning("sock_get_address_info_async_cb: "
- "address data read error\n");
- g_free(addr);
- break;
+ if (g_io_channel_read_chars(source, (gchar *)addr, ai_member[3],
+ &bytes_read, &err)
+ != G_IO_STATUS_NORMAL) {
+ if (err != NULL) {
+ g_warning("g_io_channel_read_chars: addr data read %s\n", err->message);
+ g_error_free(err);
+ err = NULL;
+ g_free(addr);
+ break;
+ }
}
if (bytes_read != ai_member[3]) {
@@ -990,7 +1016,9 @@ static gboolean sock_get_address_info_async_cb(GIOChannel *source,
addr_list = g_list_append(addr_list, addr_data);
}
- g_io_channel_close(source);
+ g_io_channel_shutdown(source, TRUE, &err);
+ if (err)
+ g_error_free(err);
g_io_channel_unref(source);
#ifdef G_OS_WIN32
@@ -1211,7 +1239,11 @@ static gint sock_get_address_info_async_cancel(SockLookupData *lookup_data)
if (lookup_data->io_tag > 0)
g_source_remove(lookup_data->io_tag);
if (lookup_data->channel) {
- g_io_channel_close(lookup_data->channel);
+ GError *err = NULL;
+ g_io_channel_shutdown(lookup_data->channel, TRUE, &err);
+ if (err)
+ g_error_free(err);
+
g_io_channel_unref(lookup_data->channel);
}
diff --git a/src/enriched.c b/src/enriched.c
@@ -179,7 +179,7 @@ static ERTFState ertf_parse_tag(ERTFParser *parser)
parser->state = ERTF_UNKNOWN;
if (buf[0] == '\0') return parser->state;
- g_strdown (buf);
+ g_utf8_strdown (buf, -1);
if (!strcmp(buf, "nofill")) {
parser->pre = TRUE;
diff --git a/src/gtk/gtkutils.c b/src/gtk/gtkutils.c
@@ -1587,3 +1587,82 @@ GtkUIManager *gtkut_ui_manager(void)
return gui_manager;
}
+#ifdef G_OS_UNIX
+#define READ_CONDITION (G_IO_IN | G_IO_HUP | G_IO_ERR)
+#define WRITE_CONDITION (G_IO_OUT | G_IO_ERR)
+#define EXCEPTION_CONDITION (G_IO_PRI)
+typedef struct _ClawsIOClosure ClawsIOClosure;
+
+struct _ClawsIOClosure
+{
+ GdkInputFunction function;
+ GdkInputCondition condition;
+ GdkDestroyNotify notify;
+ gpointer data;
+};
+
+static gboolean
+claws_io_invoke (GIOChannel *source,
+ GIOCondition condition,
+ gpointer data)
+{
+ ClawsIOClosure *closure = data;
+ GdkInputCondition gdk_cond = 0;
+
+ if (condition & READ_CONDITION)
+ gdk_cond |= GDK_INPUT_READ;
+ if (condition & WRITE_CONDITION)
+ gdk_cond |= GDK_INPUT_WRITE;
+ if (condition & EXCEPTION_CONDITION)
+ gdk_cond |= GDK_INPUT_EXCEPTION;
+
+ if (closure->condition & gdk_cond)
+ closure->function (closure->data, g_io_channel_unix_get_fd (source), gdk_cond);
+
+ return TRUE;
+}
+
+static void
+claws_io_destroy (gpointer data)
+{
+ ClawsIOClosure *closure = data;
+
+ if (closure->notify)
+ closure->notify (closure->data);
+
+ g_free (closure);
+}
+
+gint
+claws_input_add (gint source,
+ GdkInputCondition condition,
+ GdkInputFunction function,
+ gpointer data)
+{
+ guint result;
+ ClawsIOClosure *closure = g_new (ClawsIOClosure, 1);
+ GIOChannel *channel;
+ GIOCondition cond = 0;
+
+ closure->function = function;
+ closure->condition = condition;
+ closure->notify = NULL;
+ closure->data = data;
+
+ if (condition & GDK_INPUT_READ)
+ cond |= READ_CONDITION;
+ if (condition & GDK_INPUT_WRITE)
+ cond |= WRITE_CONDITION;
+ if (condition & GDK_INPUT_EXCEPTION)
+ cond |= EXCEPTION_CONDITION;
+
+ channel = g_io_channel_unix_new (source);
+ result = g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, cond,
+ claws_io_invoke,
+ closure, claws_io_destroy);
+ g_io_channel_unref (channel);
+
+ return result;
+}
+
+#endif
diff --git a/src/gtk/gtkutils.h b/src/gtk/gtkutils.h
@@ -210,6 +210,13 @@ gboolean gtkut_list_view_select_row(GtkWidget *list, gint row);
GtkUIManager *gtkut_create_ui_manager(void);
GtkUIManager *gtkut_ui_manager(void);
+#ifdef G_OS_UNIX
+gint
+claws_input_add (gint source,
+ GdkInputCondition condition,
+ GdkInputFunction function,
+ gpointer data);
+#endif
#if GTK_CHECK_VERSION(2,12,0)
#define CLAWS_TIP_DECL() {}
#define CLAWS_SET_TIP(widget,tip) { \
diff --git a/src/gtk/menu.c b/src/gtk/menu.c
@@ -39,8 +39,9 @@
#include <gtk/gtkmain.h>
#endif
+#if 0 /* FIXME */
static void connect_accel_change_signals(GtkWidget* widget, GtkWidget *wid2) ;
-
+#endif
GtkActionGroup *cm_menu_create_action_group(const gchar *name, GtkActionEntry *entries,
gint num_entries, gpointer data)
@@ -193,15 +194,15 @@ gint menu_find_option_menu_index(GtkCMOptionMenu *optmenu, gpointer data,
return -1;
}
+#if 0
static void connect_accel_change_signals(GtkWidget* widget, GtkWidget *wid2)
{
-#if 0
g_signal_connect_after(G_OBJECT(widget), "add_accelerator",
G_CALLBACK(menu_item_add_accel), wid2);
g_signal_connect_after(G_OBJECT(widget), "remove_accelerator",
G_CALLBACK(menu_item_remove_accel), wid2);
-#endif
}
+#endif
void menu_connect_identical_items(void)
{
diff --git a/src/html.c b/src/html.c
@@ -531,12 +531,12 @@ static SC_HTMLTag *sc_html_get_tag(const gchar *str)
;
if (*tmpp == '\0') {
- g_strdown(tmp);
+ g_utf8_strdown(tmp, -1);
tag->name = g_strdup(tmp);
return tag;
} else {
*tmpp++ = '\0';
- g_strdown(tmp);
+ g_utf8_strdown(tmp, -1);
tag->name = g_strdup(tmp);
}
@@ -585,7 +585,7 @@ static SC_HTMLTag *sc_html_get_tag(const gchar *str)
attr_value = "";
g_strchomp(attr_name);
- g_strdown(attr_name);
+ g_utf8_strdown(attr_name, -1);
attr = g_new(SC_HTMLAttr, 1);
attr->name = g_strdup(attr_name);
attr->value = g_strdup(attr_value);
diff --git a/src/ldif.c b/src/ldif.c
@@ -314,7 +314,7 @@ static gchar *ldif_get_tagname( char* line, gboolean *flag64 ) {
tag = g_strndup( line, len+1 );
tag[ len ] = '\0';
- g_strdown( tag );
+ g_utf8_strdown( tag, -1 );
return tag;
}
}
@@ -526,7 +526,7 @@ static void ldif_add_value(
gchar *nm, *val;
nm = g_strdup( tagName );
- g_strdown( nm );
+ g_utf8_strdown( nm, -1 );
if( tagValue ) {
val = g_strdup( tagValue );
}
diff --git a/src/main.c b/src/main.c
@@ -1151,7 +1151,6 @@ int main(int argc, char *argv[])
hildon_program = HILDON_PROGRAM(hildon_program_get_instance());
static_osso_context = osso_context;
#endif
- gdk_rgb_init();
gtk_widget_set_default_colormap(gdk_rgb_get_colormap());
gui_manager = gtkut_create_ui_manager();
@@ -1369,7 +1368,7 @@ int main(int argc, char *argv[])
/* register the callback of unix domain socket input */
#ifdef G_OS_UNIX
- lock_socket_tag = gdk_input_add(lock_socket,
+ lock_socket_tag = claws_input_add(lock_socket,
GDK_INPUT_READ | GDK_INPUT_EXCEPTION,
lock_socket_input_cb,
mainwin);
@@ -2229,7 +2228,7 @@ static gint lock_socket_remove(void)
}
if (lock_socket_tag > 0) {
- gdk_input_remove(lock_socket_tag);
+ g_source_remove(lock_socket_tag);
}
fd_close(lock_socket);
filename = claws_get_socket_name();
diff --git a/src/mimeview.c b/src/mimeview.c
@@ -672,7 +672,7 @@ static MimeViewer *get_viewer_for_content_type(MimeView *mimeview, const gchar *
#ifndef FNM_CASEFOLD
#define FNM_CASEFOLD 0
Xstrdup_a(content_type, content_type, return NULL);
- g_strdown((gchar *)content_type);
+ g_utf8_strdown((gchar *)content_type, -1);
#endif
for (cur = mimeviewer_factories; cur != NULL; cur = g_slist_next(cur)) {
diff --git a/src/mutt.c b/src/mutt.c
@@ -325,7 +325,7 @@ static ItemEMail *mutt_insert_table(
/* Test whether address already in hash table */
key = g_strdup( address );
- g_strdown( key );
+ g_utf8_strdown( key, -1 );
email = g_hash_table_lookup( muttFile->uniqTable, key );
if( email == NULL ) {
diff --git a/src/pine.c b/src/pine.c
@@ -435,7 +435,7 @@ static ItemEMail *pine_insert_table(
/* Test whether address already in hash table */
key = g_strdup( address );
- g_strdown( key );
+ g_utf8_strdown( key, -1 );
email = g_hash_table_lookup( pineFile->uniqTable, key );
if( email == NULL ) {
diff --git a/src/plugins/spamassassin/spamassassin.c b/src/plugins/spamassassin/spamassassin.c
@@ -297,11 +297,11 @@ static gboolean mail_filtering_hook(gpointer source, gpointer data)
running &= ~CHILD_RUNNING;
} /* ret == 0 continue */
- g_main_iteration(TRUE);
+ g_main_context_iteration(NULL, TRUE);
}
while (running & TIMEOUT_RUNNING)
- g_main_iteration(TRUE);
+ g_main_context_iteration(NULL, TRUE);
}
fclose(fp);
diff --git a/src/procmime.c b/src/procmime.c
@@ -990,7 +990,7 @@ gchar *procmime_get_mime_type(const gchar *filename)
g_free(base);
if (!p) return NULL;
- g_strdown(ext);
+ g_utf8_strdown(ext, -1);
mime_type = g_hash_table_lookup(mime_type_table, ext);
if (mime_type) {
gchar *str;
@@ -1049,7 +1049,7 @@ static GHashTable *procmime_get_mime_type_table(void)
exts = g_strsplit(mime_type->extension, " ", 16);
for (i = 0; exts[i] != NULL; i++) {
/* make the key case insensitive */
- g_strdown(exts[i]);
+ g_utf8_strdown(exts[i], -1);
/* use previously dup'd key on overwriting */
if (g_hash_table_lookup(table, exts[i]))
key = exts[i];
@@ -1608,7 +1608,7 @@ static void parse_parameters(const gchar *parameters, GHashTable *table)
while (value[0] == ' ')
value++;
- g_strdown(attribute);
+ g_utf8_strdown(attribute, -1);
len = strlen(attribute);
if (attribute[len - 1] == '*') {
diff --git a/src/vcard.c b/src/vcard.c
@@ -288,7 +288,7 @@ static gchar *vcard_get_tagname( char* line, gchar dlm ) {
len = lptr - line;
tag = g_strndup( line, len+1 );
tag[ len ] = '\0';
- g_strdown( tag );
+ g_utf8_strdown( tag, -1 );
return tag;
}
}
diff --git a/src/wizard.c b/src/wizard.c
@@ -341,7 +341,7 @@ static gchar *get_name_for_mail(void)
gchar *name = g_strdup(tmpl.name);
if (name == NULL)
return NULL;
- g_strdown(name);
+ g_utf8_strdown(name, -1);
while(strstr(name, " "))
*strstr(name, " ")='.';