2006-05-18 [colin] 2.2.0cvs33
[claws.git] / src / mainwindow.c
index 2984f4448a4d0e9f02bd296dfb3765deab5f1d2a..4347c4196b982fa059097114c318089ffd73fc28 100644 (file)
@@ -1948,8 +1948,7 @@ void main_window_progress_set(MainWindow *mainwin, gint cur, gint total)
        g_snprintf(buf, sizeof(buf), "%d / %d", cur, total);
        gtk_progress_bar_set_text(GTK_PROGRESS_BAR(mainwin->progressbar), buf);
        gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(mainwin->progressbar),
-                               (cur == 0 && total == 0) ? 0 :
-                               (gfloat)cur / (gfloat)total);
+                               (total == 0) ? 0 : (gfloat)cur / (gfloat)total);
 }
 
 void main_window_empty_trash(MainWindow *mainwin, gboolean confirm)
@@ -2124,12 +2123,12 @@ void main_window_set_menu_sensitive(MainWindow *mainwin)
                                                 , M_INC_ACTIVE},
 
                {"/Message/Compose a news message", M_HAVE_NEWS_ACCOUNT},
-               {"/Message/Reply"                 , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
-               {"/Message/Reply to"              , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
-               {"/Message/Follow-up and reply to", M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST|M_NEWS},
+               {"/Message/Reply"                 , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+               {"/Message/Reply to"              , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+               {"/Message/Follow-up and reply to", M_HAVE_ACCOUNT|M_TARGET_EXIST|M_NEWS},
                {"/Message/Forward"               , M_HAVE_ACCOUNT|M_TARGET_EXIST},
                {"/Message/Forward as attachment" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
-               {"/Message/Redirect"              , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+               {"/Message/Redirect"              , M_HAVE_ACCOUNT|M_TARGET_EXIST},
                {"/Message/Move..."               , M_TARGET_EXIST|M_ALLOW_DELETE},
                {"/Message/Copy..."               , M_TARGET_EXIST|M_EXEC},
                {"/Message/Move to trash"         , M_TARGET_EXIST|M_ALLOW_DELETE|M_NOT_NEWS},
@@ -2367,7 +2366,8 @@ static void get_url_part (const gchar **buffer, gchar *url_decoded, gint maxlen)
        buf = *buffer;
        
        if (buf == 0x00) {
-               url_decoded = 0x00;
+               url_decoded = NULL;
+               *buffer = NULL;
                return;
        }
        /* Ignore spaces, comments  and tabs () */
@@ -2381,24 +2381,32 @@ static void get_url_part (const gchar **buffer, gchar *url_decoded, gint maxlen)
                for (i = 0; *buf != '>' && *buf != 0x00 && i<maxlen; tmp[i++] = *(buf++));
                buf++;
        }
-       else 
-               /* else, we finish parsing and ignore everything */
-               for (;buf != 0x00; buf++);
+       else  {
+               *buffer = NULL;
+               *url_decoded = NULL;
+               return;
+       }
        
        tmp[i]       = 0x00;
-       *url_decoded = 0x00;
+       *url_decoded = NULL;
+       *buffer = NULL;
        
        if (i == maxlen) {
-               for (;*buf != 0x00; buf++);
                return;
        }
        decode_uri (url_decoded, (const gchar *)tmp);
 
        /* Prepare the work for the next url in the list */
        /* after the closing bracket >, ignore space, comments and tabs */
-       for (;*buf == ' ' || *buf == '(' || *buf == '\t'; buf++)
+       for (;buf && *buf && (*buf == ' ' || *buf == '(' || *buf == '\t'); buf++)
                if (*buf == '(')
                        for (;*buf != ')' && *buf != 0x00; buf++);
+                       
+       if (!buf || !*buf) {
+               *buffer = NULL;
+               return;
+       }
+
        /* now first non space, non comment must be a comma */
        if (*buf != ',')
                for (;*buf != 0x00; buf++);
@@ -2904,19 +2912,28 @@ static void foldersort_cb(MainWindow *mainwin, guint action,
 static void import_mbox_cb(MainWindow *mainwin, guint action,
                           GtkWidget *widget)
 {
-       import_mbox(mainwin->summaryview->folder_item);
+       /* only notify if import has failed */
+       if (import_mbox(mainwin->summaryview->folder_item) == -1) {
+               alertpanel_error(_("Mbox import has failed."));
+       }
 }
 
 static void export_mbox_cb(MainWindow *mainwin, guint action,
                           GtkWidget *widget)
 {
-       export_mbox(mainwin->summaryview->folder_item);
+       /* only notify if export has failed */
+       if (export_mbox(mainwin->summaryview->folder_item) == -1) {
+               alertpanel_error(_("Export to mbox has failed."));
+       }
 }
 
 static void export_list_mbox_cb(MainWindow *mainwin, guint action,
                                GtkWidget *widget)
 {
-       summaryview_export_mbox_list(mainwin->summaryview);
+       /* only notify if export has failed */
+       if (summaryview_export_mbox_list(mainwin->summaryview) == -1) {
+               alertpanel_error(_("Export to mbox has failed."));
+       }
 }
 
 static void empty_trash_cb(MainWindow *mainwin, guint action,