talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 764738132be88eb191da75c29976fb730f03e12a
parent e18a0e0e73810570c8e40375ecf2b5b00209d631
Author: Colin Leroy <colin@colino.net>
Date:   Mon, 18 Oct 2010 18:40:32 +0000

2010-10-18 [colin]	3.7.6cvs57

	* src/action.c
	* src/addrharvest.c
	* src/alertpanel.c
	* src/filtering.c
	* src/jpilot.c
	* src/prefs_themes.c
	* src/procmime.c
	* src/textview.c
	* src/gtk/gtkutils.c
	* src/gtk/quicksearch.c
	* src/gtk/quicksearch.h
	* src/plugins/pgpcore/passphrase.c
	* src/plugins/spamassassin/libspamc.c
		Fix warnings

Diffstat:
MChangeLog | 17+++++++++++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/action.c | 78++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Msrc/addrharvest.c | 10++++++----
Msrc/alertpanel.c | 1-
Msrc/filtering.c | 3++-
Msrc/gtk/gtkutils.c | 1-
Msrc/gtk/quicksearch.c | 10----------
Msrc/gtk/quicksearch.h | 2--
Msrc/jpilot.c | 5+++--
Msrc/plugins/pgpcore/passphrase.c | 11++++++++---
Msrc/plugins/spamassassin/libspamc.c | 6+++---
Msrc/prefs_themes.c | 3+--
Msrc/procmime.c | 6+++++-
Msrc/textview.c | 2+-
16 files changed, 94 insertions(+), 64 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,20 @@ +2010-10-18 [colin] 3.7.6cvs57 + + * src/action.c + * src/addrharvest.c + * src/alertpanel.c + * src/filtering.c + * src/jpilot.c + * src/prefs_themes.c + * src/procmime.c + * src/textview.c + * src/gtk/gtkutils.c + * src/gtk/quicksearch.c + * src/gtk/quicksearch.h + * src/plugins/pgpcore/passphrase.c + * src/plugins/spamassassin/libspamc.c + Fix warnings + 2010-10-17 [colin] 3.7.6cvs56 * src/prefs_themes.c diff --git a/PATCHSETS b/PATCHSETS @@ -4052,3 +4052,4 @@ ( cvs diff -u -r 1.1.2.7 -r 1.1.2.8 manual/dist/pdf/Makefile.am; ) > 3.7.6cvs54.patchset ( cvs diff -u -r 1.115.2.230 -r 1.115.2.231 src/main.c; cvs diff -u -r 1.1.2.69 -r 1.1.2.70 src/gtk/authors.h; cvs diff -u -r 1.1.2.96 -r 1.1.2.97 src/gtk/quicksearch.c; cvs diff -u -r 1.1.2.19 -r 1.1.2.20 src/gtk/quicksearch.h; ) > 3.7.6cvs55.patchset ( cvs diff -u -r 1.3.2.65 -r 1.3.2.66 src/prefs_themes.c; cvs diff -u -r 1.9.2.68 -r 1.9.2.69 src/gtk/gtkaspell.c; cvs diff -u -r 1.5.2.91 -r 1.5.2.92 src/gtk/gtkutils.c; cvs diff -u -r 1.4.2.50 -r 1.4.2.51 src/gtk/gtkutils.h; cvs diff -u -r 1.2.2.38 -r 1.2.2.39 src/gtk/inputdialog.c; cvs diff -u -r 1.1.4.25 -r 1.1.4.26 src/gtk/progressdialog.c; ) > 3.7.6cvs56.patchset +( cvs diff -u -r 1.12.2.60 -r 1.12.2.61 src/action.c; cvs diff -u -r 1.6.10.22 -r 1.6.10.23 src/addrharvest.c; cvs diff -u -r 1.17.2.41 -r 1.17.2.42 src/alertpanel.c; cvs diff -u -r 1.60.2.54 -r 1.60.2.55 src/filtering.c; cvs diff -u -r 1.18.2.30 -r 1.18.2.31 src/jpilot.c; cvs diff -u -r 1.3.2.66 -r 1.3.2.67 src/prefs_themes.c; cvs diff -u -r 1.49.2.133 -r 1.49.2.134 src/procmime.c; cvs diff -u -r 1.96.2.224 -r 1.96.2.225 src/textview.c; cvs diff -u -r 1.5.2.92 -r 1.5.2.93 src/gtk/gtkutils.c; cvs diff -u -r 1.1.2.97 -r 1.1.2.98 src/gtk/quicksearch.c; cvs diff -u -r 1.1.2.20 -r 1.1.2.21 src/gtk/quicksearch.h; cvs diff -u -r 1.1.2.32 -r 1.1.2.33 src/plugins/pgpcore/passphrase.c; cvs diff -u -r 1.4.2.7 -r 1.4.2.8 src/plugins/spamassassin/libspamc.c; ) > 3.7.6cvs57.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=6 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=56 +EXTRA_VERSION=57 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/action.c b/src/action.c @@ -947,11 +947,12 @@ static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str, pid = fork(); if (pid == 0) { /* Child */ + int r = 0; if (setpgid(0, 0)) perror("setpgid"); #ifdef GDK_WINDOWING_X11 - (void)close(ConnectionNumber(gdk_display_get_default())); + r = close(ConnectionNumber(gdk_display_get_default())); #endif /* GDK_WINDOWING_X11 */ gch_pid = fork(); @@ -965,21 +966,24 @@ static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str, (ACTION_PIPE_IN | ACTION_USER_IN | ACTION_USER_HIDDEN_IN)) { - (void)close(fileno(stdin)); - (void)dup (chld_in[0]); + r |= close(fileno(stdin)); + r |= dup (chld_in[0]); } - (void)close(chld_in[0]); - (void)close(chld_in[1]); - - (void)close(fileno(stdout)); - (void)dup (chld_out[1]); - (void)close(chld_out[0]); - (void)close(chld_out[1]); - - (void)close(fileno(stderr)); - (void)dup (chld_err[1]); - (void)close(chld_err[0]); - (void)close(chld_err[1]); + r |= close(chld_in[0]); + r |= close(chld_in[1]); + + r |= close(fileno(stdout)); + r |= dup (chld_out[1]); + r |= close(chld_out[0]); + r |= close(chld_out[1]); + + r |= close(fileno(stderr)); + r |= dup (chld_err[1]); + r |= close(chld_err[0]); + r |= close(chld_err[1]); + + if (r != 0) + g_warning("%s(%d)", strerror(errno), errno); } cmdline[0] = "sh"; @@ -999,24 +1003,29 @@ static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str, _exit(1); } else if (gch_pid < (pid_t) 0) { /* Fork error */ if (sync) - (void)write(chld_status[1], "1\n", 2); + r = write(chld_status[1], "1\n", 2); + if (r != 0) + g_warning("%s(%d)", strerror(errno), errno); perror("fork"); _exit(1); } else { /* Child */ if (sync) { - (void)close(chld_in[0]); - (void)close(chld_in[1]); - (void)close(chld_out[0]); - (void)close(chld_out[1]); - (void)close(chld_err[0]); - (void)close(chld_err[1]); - (void)close(chld_status[0]); + r |= close(chld_in[0]); + r |= close(chld_in[1]); + r |= close(chld_out[0]); + r |= close(chld_out[1]); + r |= close(chld_err[0]); + r |= close(chld_err[1]); + r |= close(chld_status[0]); debug_print("Child: waiting for grandchild\n"); - waitpid(gch_pid, NULL, 0); + r |= waitpid(gch_pid, NULL, 0); debug_print("Child: grandchild ended\n"); - (void)write(chld_status[1], "0\n", 2); - (void)close(chld_status[1]); + r |= write(chld_status[1], "0\n", 2); + r |= close(chld_status[1]); + + if (r != 0) + g_warning("%s(%d)", strerror(errno), errno); } _exit(0); } @@ -1068,17 +1077,20 @@ static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str, return child_info; if ((children->action_type & ACTION_PIPE_IN) && msg_str) { + int r; ret_str = g_locale_from_utf8(msg_str, strlen(msg_str), &by_read, &by_written, NULL); if (ret_str && by_written) { - (void)write(chld_in[1], ret_str, strlen(ret_str)); + r = write(chld_in[1], ret_str, strlen(ret_str)); g_free(ret_str); } else - (void)write(chld_in[1], msg_str, strlen(msg_str)); + r = write(chld_in[1], msg_str, strlen(msg_str)); if (!(children->action_type & (ACTION_USER_IN | ACTION_USER_HIDDEN_IN))) - (void)close(chld_in[1]); + r = close(chld_in[1]); child_info->chld_in = -1; /* No more input */ + if (r != 0) + g_warning("%s(%d)", strerror(errno), errno); } return child_info; @@ -1499,7 +1511,7 @@ static void catch_input(gpointer data, gint source, GdkInputCondition cond) Children *children = (Children *)data; ChildInfo *child_info = (ChildInfo *)children->list->data; gchar *input, *ret_str; - gint c, count, len; + gint c, count, len, r; gssize by_read = 0, by_written = 0; debug_print("Sending input to grand child.\n"); @@ -1531,11 +1543,13 @@ static void catch_input(gpointer data, gint source, GdkInputCondition cond) } while (c >= 0 && count < len); if (c >= 0) - (void)write(child_info->chld_in, "\n", 2); + r = write(child_info->chld_in, "\n", 2); g_free(input); - (void)close(child_info->chld_in); + r = close(child_info->chld_in); + if (r != 0) + g_warning("%s(%d)", strerror(errno), errno); child_info->chld_in = -1; debug_print("Input to grand child sent.\n"); } diff --git a/src/addrharvest.c b/src/addrharvest.c @@ -712,14 +712,15 @@ static void addrharvest_harvest_dir( struct dirent *d; struct stat s; gint num; + int r; if( ( dp = opendir( dir ) ) == NULL ) { return; } /* Process directory */ - chdir( dir ); - while( ( d = readdir( dp ) ) != NULL ) { + r = chdir( dir ); + while( r == 0 && ( d = readdir( dp ) ) != NULL ) { g_stat( d->d_name, &s ); if( S_ISDIR( s.st_mode ) ) { if( harvester->folderRecurse ) { @@ -736,7 +737,7 @@ static void addrharvest_harvest_dir( } } } - chdir( ".." ); + r = chdir( ".." ); closedir( dp ); } @@ -754,13 +755,14 @@ static void addrharvest_harvest_list( gint num; GList *node; gchar msgNum[ MSGNUM_BUFFSIZE ]; + int r; if( ( dp = opendir( harvester->path ) ) == NULL ) { return; } /* Process message list */ - chdir( harvester->path ); + r = chdir( harvester->path ); node = msgList; while( node ) { num = GPOINTER_TO_UINT( node->data ); diff --git a/src/alertpanel.c b/src/alertpanel.c @@ -256,7 +256,6 @@ static void alertpanel_create(const gchar *title, gtk_window_set_resizable(GTK_WINDOW(dialog), TRUE); gtk_window_set_default_size(GTK_WINDOW(dialog), 375, 100); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); g_signal_connect(G_OBJECT(dialog), "delete_event", diff --git a/src/filtering.c b/src/filtering.c @@ -424,7 +424,8 @@ static gboolean filteringaction_apply(FilteringAction * action, MsgInfo * info) if (cmd == NULL) return FALSE; else { - system(cmd); + if (system(cmd) == -1) + g_warning("couldn't run %s", cmd); g_free(cmd); } return TRUE; diff --git a/src/gtk/gtkutils.c b/src/gtk/gtkutils.c @@ -1073,7 +1073,6 @@ GtkWidget *xface_get_from_header(const gchar *o_xface, GdkColor *background, { static gchar *xpm_xface[XPM_XFACE_HEIGHT]; static gboolean xpm_xface_init = TRUE; - GdkBitmap *mask; gchar xface[2048]; strncpy(xface, o_xface, sizeof(xface)); diff --git a/src/gtk/quicksearch.c b/src/gtk/quicksearch.c @@ -1604,16 +1604,6 @@ void search_msgs_in_folders(GSList **messages, QuickSearch* quicksearch, *messages = g_slist_reverse(*messages); } -/* -static void search_msg_folder(GSList **messages, QuickSearch* quicksearch, - QuickSearchType searchType, - Folder* folder) -{ - search_msgs_in_folders(messages, quicksearch, searchType, - FOLDER_ITEM(folder->node->data), TRUE); -} -*/ - /* * Returns the QuickSearchType associated to the supplied string. */ diff --git a/src/gtk/quicksearch.h b/src/gtk/quicksearch.h @@ -37,8 +37,6 @@ typedef void (*QuickSearchExecuteCallback) (QuickSearch *quicksearch, gpointer d #include "procmsg.h" -void search_msgs_in_folder(GSList **messages, QuickSearch* quicksearch, - FolderItem* folderItem); void search_msgs_in_folders(GSList **messages, QuickSearch* quicksearch, FolderItem* folderItem); QuickSearchType quicksearch_type(const gchar *type); diff --git a/src/jpilot.c b/src/jpilot.c @@ -535,9 +535,10 @@ static int jpilot_get_info_size( FILE *in, int *size ) { DBHeader dbh; unsigned int offset; record_header rh; + int r; fseek(in, 0, SEEK_SET); - fread(&rdbh, sizeof(RawDBHeader), 1, in); + r = fread(&rdbh, sizeof(RawDBHeader), 1, in); if (feof(in)) { return MGU_EOF; } @@ -557,7 +558,7 @@ static int jpilot_get_info_size( FILE *in, int *size ) { return MGU_SUCCESS; } - fread(&rh, sizeof(record_header), 1, in); + r = fread(&rh, sizeof(record_header), 1, in); offset = ((rh.Offset[0]*256+rh.Offset[1])*256+rh.Offset[2])*256+rh.Offset[3]; *size=offset - dbh.app_info_offset; diff --git a/src/plugins/pgpcore/passphrase.c b/src/plugins/pgpcore/passphrase.c @@ -319,7 +319,9 @@ gpgmegtk_passphrase_cb(void *opaque, const char *uid_hint, gpgmegtk_free_passphrase(); if (!pass) { debug_print ("%% cancel passphrase entry\n"); - write(fd, "\n", 1); + if (write(fd, "\n", 1) != 1) + debug_print("short write"); + return GPG_ERR_CANCELED; } else { @@ -347,8 +349,11 @@ gpgmegtk_passphrase_cb(void *opaque, const char *uid_hint, WriteFile ((HANDLE)fd, "\n", 1, &nwritten, NULL); } #else - write(fd, pass, strlen(pass)); - write(fd, "\n", 1); + if (write(fd, pass, strlen(pass)) != strlen(pass)) + debug_print("Short write"); + + if (write(fd, "\n", 1) != 1) + debug_print("Short write"); #endif g_free(pass); diff --git a/src/plugins/spamassassin/libspamc.c b/src/plugins/spamassassin/libspamc.c @@ -1309,8 +1309,8 @@ libspamc_log (int flags, int level, char *msg, ...) len += snprintf(buf+len, LOG_BUFSIZ-len, "\n"); buf[LOG_BUFSIZ] = '\0'; /* ensure termination */ - (void) write (2, buf, len); - + if (write (2, buf, len) != len) + goto out; } else { vsnprintf(buf, LOG_BUFSIZ, msg, ap); buf[LOG_BUFSIZ] = '\0'; /* ensure termination */ @@ -1321,7 +1321,7 @@ libspamc_log (int flags, int level, char *msg, ...) g_printerr ("%s\n", buf); #endif } - +out: va_end(ap); } diff --git a/src/prefs_themes.c b/src/prefs_themes.c @@ -698,8 +698,7 @@ static void prefs_themes_display_global_stats(const ThemesData *tdata) #define FGETS_INFOFILE_LINE() \ line[0] = '\0'; \ - fgets(line, INFOFILE_LINE_LEN, finfo); \ - if ((len = strlen(line)) > 0) { \ + if (fgets(line, INFOFILE_LINE_LEN, finfo) != NULL && (len = strlen(line)) > 0) { \ if (line[len - 1] == '\n') line[len - 1] = '\0'; \ } \ else { \ diff --git a/src/procmime.c b/src/procmime.c @@ -2243,7 +2243,11 @@ static void write_parameters(gpointer key, gpointer value, gpointer user_data) g_string_append_printf(buf, "%%%s", hexstr); } } - break; + break; +#else + case ENC_AS_EXTENDED: + debug_print("Unhandled ENC_AS_EXTENDED."); + break; #endif case ENC_AS_ENCWORD: len = MAX(strlen(val)*6, 512); diff --git a/src/textview.c b/src/textview.c @@ -1018,7 +1018,7 @@ static void textview_write_body(TextView *textview, MimeInfo *mimeinfo) argv = strsplit_with_quote(buf, " ", 0); close(1); close(pfd[0]); - dup(pfd[1]); + rc = dup(pfd[1]); rc = execvp(argv[0], argv); close(pfd[1]); g_print(_("The command to view attachment "