talons

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

commit 2ae542a77b687501c99fb4204a71d92abe6efce0
parent bc4915bb92508d919130ad229d8483324b82f039
Author: Michael Rasmussen <mir@datanom.net>
Date:   Mon, 27 Nov 2017 22:51:59 +0100

Merge branch 'master' of ssh+git://git.claws-mail.org/home/git/claws

Diffstat:
Msrc/etpan/nntp-thread.c | 21++++++++++++++++-----
Msrc/filtering.c | 6++----
Msrc/mainwindow.c | 4----
Msrc/plugins/managesieve/sieve_prefs.c | 10+++++-----
Msrc/plugins/rssyl/claws.def | 1+
Msrc/prefs_compose_writing.c | 3---
Msrc/prefs_logging.c | 25+++----------------------
Msrc/prefs_other.c | 1-
Msrc/prefs_receive.c | 3---
Msrc/prefs_summaries.c | 2--
Msrc/prefs_wrapping.c | 1-
Msrc/procmime.c | 4++--
12 files changed, 29 insertions(+), 52 deletions(-)

diff --git a/src/etpan/nntp-thread.c b/src/etpan/nntp-thread.c @@ -48,10 +48,11 @@ #include "remotefolder.h" #include "main.h" #include "account.h" +#include "statusbar.h" #define DISABLE_LOG_DURING_LOGIN -#define NNTP_BATCH_SIZE 4999 +#define NNTP_BATCH_SIZE 5000 static struct etpan_thread_manager * thread_manager = NULL; static chash * nntp_hash = NULL; @@ -844,10 +845,13 @@ int nntp_threaded_xover(Folder * folder, guint32 beg, guint32 end, struct newsnn * and to allow updating any progress indicators while we work. */ cbeg = beg; while (cbeg <= end && cend <= end) { - cend = cbeg + NNTP_BATCH_SIZE; + cend = cbeg + (NNTP_BATCH_SIZE - 1); if (cend > end) cend = end; + statusbar_progress_all(cbeg - beg, end - beg, 1); + GTK_EVENTS_FLUSH(); + param.nntp = get_nntp(folder); param.beg = cbeg; param.end = cend; @@ -875,8 +879,10 @@ int nntp_threaded_xover(Folder * folder, guint32 beg, guint32 end, struct newsnn l = NULL; } - cbeg += NNTP_BATCH_SIZE + 1; + cbeg += NNTP_BATCH_SIZE; } + + statusbar_progress_all(0, 0, 0); debug_print("nntp xover - end\n"); @@ -937,10 +943,13 @@ int nntp_threaded_xhdr(Folder * folder, const char *header, guint32 beg, guint32 * and to allow updating any progress indicators while we work. */ cbeg = beg; while (cbeg <= end && cend <= end) { - cend = cbeg + NNTP_BATCH_SIZE; + cend = cbeg + NNTP_BATCH_SIZE - 1; if (cend > end) cend = end; + statusbar_progress_all(cbeg - beg, end - beg, 1); + GTK_EVENTS_FLUSH(); + param.nntp = get_nntp(folder); param.header = header; param.beg = cbeg; @@ -968,8 +977,10 @@ int nntp_threaded_xhdr(Folder * folder, const char *header, guint32 beg, guint32 l = NULL; } - cbeg += NNTP_BATCH_SIZE + 1; + cbeg += NNTP_BATCH_SIZE; } + + statusbar_progress_all(0, 0, 0); debug_print("nntp xhdr %s - end (%d-%d)\n", header, beg, end); diff --git a/src/filtering.c b/src/filtering.c @@ -872,7 +872,7 @@ gboolean filter_message_by_msginfo(GSList *flist, MsgInfo *info, PrefsAccount* a if (prefs_common.enable_filtering_debug) { gchar *tmp = _("undetermined"); -#ifndef G_OS_WIN32 + switch (context) { case FILTERING_INCORPORATION: tmp = _("incorporation"); @@ -898,9 +898,7 @@ gboolean filter_message_by_msginfo(GSList *flist, MsgInfo *info, PrefsAccount* a debug_filtering_session = FALSE; break; } -#else - debug_filtering_session = FALSE; -#endif + if (debug_filtering_session) { gchar *file = procmsg_get_message_file_path(info); gchar *spc = g_strnfill(LOG_TIME_LEN + 1, ' '); diff --git a/src/mainwindow.c b/src/mainwindow.c @@ -776,9 +776,7 @@ static GtkActionEntry mainwin_entries[] = {"Tools/SSLCertificates", NULL, N_("SSL/TLS cer_tificates"), NULL, NULL, G_CALLBACK(ssl_manager_open_cb) }, #endif /* {"Tools/---", NULL, "---", NULL, NULL, NULL }, */ -#ifndef G_OS_WIN32 {"Tools/FilteringLog", NULL, N_("Filtering Lo_g"), NULL, NULL, G_CALLBACK(filtering_debug_window_show_cb) }, -#endif {"Tools/NetworkLog", NULL, N_("Network _Log"), "<shift><control>L", NULL, G_CALLBACK(log_window_show_cb) }, /* {"Tools/---", NULL, "---", NULL, NULL, NULL }, */ {"Tools/ForgetSessionPasswords", NULL, N_("_Forget all session passwords"), NULL, NULL, G_CALLBACK(forget_session_passwords_cb) }, @@ -1854,9 +1852,7 @@ MainWindow *main_window_create() MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "SSLCertificates", "Tools/SSLCertificates", GTK_UI_MANAGER_MENUITEM) #endif MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "Separator7", "Tools/---", GTK_UI_MANAGER_SEPARATOR) -#ifndef G_OS_WIN32 MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "FilteringLog", "Tools/FilteringLog", GTK_UI_MANAGER_MENUITEM) -#endif MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "NetworkLog", "Tools/NetworkLog", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "Separator8", "Tools/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "ForgetSessionPasswords", "Tools/ForgetSessionPasswords", GTK_UI_MANAGER_MENUITEM) diff --git a/src/plugins/managesieve/sieve_prefs.c b/src/plugins/managesieve/sieve_prefs.c @@ -480,7 +480,7 @@ struct SieveAccountConfig *sieve_prefs_account_get_config( gchar enable, use_host, use_port; guchar tls_type, auth, auth_type; gsize len; -#if defined(G_OS_WIN32) || defined(__OpenBSD__) +#if defined(G_OS_WIN32) || defined(__OpenBSD__) || defined(__FreeBSD__) /* Windows sscanf() does not understand the %ms format yet, so we * have to do the allocation of target buffer ourselves before * calling sscanf(), and copy the host string to config->host. @@ -506,13 +506,13 @@ struct SieveAccountConfig *sieve_prefs_account_get_config( enc_userid[0] = '\0'; enc_passwd[0] = '\0'; -#if defined(G_OS_WIN32) || defined(__OpenBSD__) +#if defined(G_OS_WIN32) || defined(__OpenBSD__) || defined(__FreeBSD__) sscanf(confstr, "%c%c %255s %c%hu %hhu %hhu %hhu %255s %255s", #else sscanf(confstr, "%c%c %ms %c%hu %hhu %hhu %hhu %255s %255s", #endif &enable, &use_host, -#if defined(G_OS_WIN32) || defined(__OpenBSD__) +#if defined(G_OS_WIN32) || defined(__OpenBSD__) || defined(__FreeBSD__) tmphost, #else &config->host, @@ -529,7 +529,7 @@ struct SieveAccountConfig *sieve_prefs_account_get_config( config->auth = auth; config->auth_type = auth_type; -#if defined(G_OS_WIN32) || defined(__OpenBSD__) +#if defined(G_OS_WIN32) || defined(__OpenBSD__) || defined(__FreeBSD__) config->host = g_strndup(tmphost, 255); #endif @@ -537,7 +537,7 @@ struct SieveAccountConfig *sieve_prefs_account_get_config( config->use_host = use_host == 'y'; config->use_port = use_port == 'y'; - if (config->host[0] == '!' && !config->host[1]) { + if (config->host != NULL && config->host[0] == '!' && !config->host[1]) { g_free(config->host); config->host = NULL; } diff --git a/src/plugins/rssyl/claws.def b/src/plugins/rssyl/claws.def @@ -16,6 +16,7 @@ copy_file debug_print_real debug_srcname dirent_is_regular_file +entity_decode file_exist filesel_select_file_open filesel_select_file_open_with_filter diff --git a/src/prefs_compose_writing.c b/src/prefs_compose_writing.c @@ -155,7 +155,6 @@ static void prefs_compose_writing_create_widget(PrefsPage *_page, GtkWindow *win spinbtn_autosave_adj = GTK_ADJUSTMENT(gtk_adjustment_new (50, 0, 1000, 1, 10, 0)); spinbtn_autosave_length = gtk_spin_button_new (GTK_ADJUSTMENT (spinbtn_autosave_adj), 1, 0); - gtk_widget_set_size_request (spinbtn_autosave_length, 64, -1); gtk_widget_show (spinbtn_autosave_length); gtk_box_pack_start (GTK_BOX (hbox_autosave), spinbtn_autosave_length, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_autosave_length), TRUE); @@ -187,7 +186,6 @@ static void prefs_compose_writing_create_widget(PrefsPage *_page, GtkWindow *win (GTK_ADJUSTMENT (spinbtn_undolevel_adj), 1, 0); gtk_widget_show (spinbtn_undolevel); gtk_box_pack_start (GTK_BOX (hbox_undolevel), spinbtn_undolevel, FALSE, FALSE, 0); - gtk_widget_set_size_request (spinbtn_undolevel, 64, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_undolevel), TRUE); /* Editing: warn when inserting large files in message body */ @@ -201,7 +199,6 @@ static void prefs_compose_writing_create_widget(PrefsPage *_page, GtkWindow *win spinbtn_warn_large_insert_adj = GTK_ADJUSTMENT(gtk_adjustment_new (50, 0, 10000, 1, 10, 0)); spinbtn_warn_large_insert_size = gtk_spin_button_new (GTK_ADJUSTMENT (spinbtn_warn_large_insert_adj), 1, 0); - gtk_widget_set_size_request (spinbtn_warn_large_insert_size, 64, -1); gtk_widget_show (spinbtn_warn_large_insert_size); gtk_box_pack_start (GTK_BOX (hbox_warn_large_insert), spinbtn_warn_large_insert_size, FALSE, FALSE, 0); diff --git a/src/prefs_logging.c b/src/prefs_logging.c @@ -56,7 +56,6 @@ typedef struct _LoggingPage GtkWidget *checkbtn_log_warning; GtkWidget *checkbtn_log_error; GtkWidget *checkbtn_log_status; -#ifndef G_OS_WIN32 GtkWidget *checkbtn_clip_filtering_log; GtkWidget *spinbtn_filtering_log_length; GtkWidget *checkbtn_filtering_log; @@ -66,7 +65,6 @@ typedef struct _LoggingPage GtkWidget *checkbtn_filtering_log_pre_proc; GtkWidget *checkbtn_filtering_log_post_proc; GtkWidget *optmenu_filtering_log_level; -#endif } LoggingPage; static GtkWidget *prefs_logging_create_check_buttons(GtkWidget **checkbtn1, @@ -100,7 +98,6 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, GtkWidget *spinbtn_network_log_length; GtkAdjustment *spinbtn_network_log_length_adj; GtkWidget *hbox_checkbtn; -#ifndef G_OS_WIN32 GtkWidget *vbox1_filtering_log; GtkWidget *hbox_clip_filtering_log; GtkWidget *checkbtn_clip_filtering_log; @@ -121,7 +118,6 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, GtkSizeGroup *filter_size_group; GtkListStore *menu; GtkTreeIter iter; -#endif GtkWidget *frame_disk_log; GtkWidget *vbox_disk_log; GtkWidget *label; @@ -152,7 +148,6 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, gtk_widget_show (spinbtn_network_log_length); gtk_box_pack_start (GTK_BOX (hbox_clip_network_log), spinbtn_network_log_length, FALSE, FALSE, 0); - gtk_widget_set_size_request (GTK_WIDGET (spinbtn_network_log_length), 64, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_network_log_length), TRUE); CLAWS_SET_TIP(spinbtn_network_log_length, @@ -165,7 +160,6 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, SET_TOGGLE_SENSITIVITY(checkbtn_clip_network_log, spinbtn_network_log_length); SET_TOGGLE_SENSITIVITY(checkbtn_clip_network_log, label); -#ifndef G_OS_WIN32 /* Filtering/processing debug log */ vbox1_filtering_log = gtkut_get_options_frame(vbox1, &frame_logging, _("Filtering/processing log")); @@ -260,7 +254,6 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, gtk_widget_show (spinbtn_filtering_log_length); gtk_box_pack_start (GTK_BOX (hbox_clip_filtering_log), spinbtn_filtering_log_length, FALSE, FALSE, 0); - gtk_widget_set_size_request (GTK_WIDGET (spinbtn_filtering_log_length), 64, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_filtering_log_length), TRUE); CLAWS_SET_TIP(spinbtn_filtering_log_length, @@ -276,7 +269,7 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, SET_TOGGLE_SENSITIVITY(checkbtn_filtering_log, optmenu_filtering_log_level); SET_TOGGLE_SENSITIVITY(checkbtn_filtering_log, checkbtn_clip_filtering_log); SET_TOGGLE_SENSITIVITY(checkbtn_filtering_log, label_filtering_log_level); -#endif + /* disk log */ vbox_disk_log = gtkut_get_options_frame(vbox1, &frame_disk_log, _("Disk log")); @@ -304,10 +297,8 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_clip_network_log), prefs_common.cliplog); -#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_clip_filtering_log), prefs_common.filtering_debug_cliplog); -#endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_log_standard), prefs_common.enable_log_standard); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_log_warning), @@ -316,7 +307,6 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, prefs_common.enable_log_error); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_log_status), prefs_common.enable_log_status); -#ifndef G_OS_WIN32 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_filtering_log), prefs_common.enable_filtering_debug); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_filtering_log_inc), @@ -329,15 +319,13 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, prefs_common.enable_filtering_debug_pre_proc); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_filtering_log_post_proc), prefs_common.enable_filtering_debug_post_proc); -#endif + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_network_log_length), prefs_common.loglength); -#ifndef G_OS_WIN32 gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_filtering_log_length), prefs_common.filtering_debug_loglength); combobox_select_by_data(GTK_COMBO_BOX(optmenu_filtering_log_level), prefs_common.filtering_debug_level); -#endif prefs_logging->checkbtn_clip_network_log = checkbtn_clip_network_log; prefs_logging->spinbtn_network_log_length = spinbtn_network_log_length; @@ -345,7 +333,6 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, prefs_logging->checkbtn_log_warning = checkbtn_log_warning; prefs_logging->checkbtn_log_error = checkbtn_log_error; prefs_logging->checkbtn_log_status = checkbtn_log_status; -#ifndef G_OS_WIN32 prefs_logging->checkbtn_clip_filtering_log = checkbtn_clip_filtering_log; prefs_logging->spinbtn_filtering_log_length = spinbtn_filtering_log_length; prefs_logging->checkbtn_filtering_log = checkbtn_filtering_log; @@ -355,7 +342,6 @@ static void prefs_logging_create_widget(PrefsPage *_page, GtkWindow *window, prefs_logging->checkbtn_filtering_log_pre_proc = checkbtn_filtering_log_pre_proc; prefs_logging->checkbtn_filtering_log_post_proc = checkbtn_filtering_log_post_proc; prefs_logging->optmenu_filtering_log_level = optmenu_filtering_log_level; -#endif prefs_logging->page.widget = vbox1; } @@ -363,11 +349,10 @@ static void prefs_logging_save(PrefsPage *_page) { LoggingPage *page = (LoggingPage *) _page; MainWindow *mainwindow; -#ifndef G_OS_WIN32 + gboolean filtering_debug_enabled; prefs_common.filtering_debug_level = combobox_get_active_data(GTK_COMBO_BOX(page->optmenu_filtering_log_level)); -#endif prefs_common.cliplog = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(page->checkbtn_clip_network_log)); @@ -381,7 +366,6 @@ static void prefs_logging_save(PrefsPage *_page) GTK_TOGGLE_BUTTON(page->checkbtn_log_error)); prefs_common.enable_log_status = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(page->checkbtn_log_status)); -#ifndef G_OS_WIN32 prefs_common.filtering_debug_cliplog = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(page->checkbtn_clip_filtering_log)); prefs_common.filtering_debug_loglength = gtk_spin_button_get_value_as_int( @@ -405,14 +389,11 @@ static void prefs_logging_save(PrefsPage *_page) GTK_TOGGLE_BUTTON(page->checkbtn_filtering_log_pre_proc)); prefs_common.enable_filtering_debug_post_proc = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(page->checkbtn_filtering_log_post_proc)); -#endif mainwindow = mainwindow_get_mainwindow(); log_window_set_clipping(mainwindow->logwin, prefs_common.cliplog, prefs_common.loglength); -#ifndef G_OS_WIN32 log_window_set_clipping(mainwindow->filtering_debugwin, prefs_common.filtering_debug_cliplog, prefs_common.filtering_debug_loglength); -#endif } static void prefs_logging_destroy_widget(PrefsPage *_page) diff --git a/src/prefs_other.c b/src/prefs_other.c @@ -569,7 +569,6 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window, gtk_widget_show (spinbtn_iotimeout); gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_iotimeout, FALSE, FALSE, 0); - gtk_widget_set_size_request (spinbtn_iotimeout, 64, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_iotimeout), TRUE); label_iotimeout = gtk_label_new (_("seconds")); diff --git a/src/prefs_receive.c b/src/prefs_receive.c @@ -193,9 +193,6 @@ static void prefs_receive_create_widget(PrefsPage *_page, GtkWindow *window, (GTK_ADJUSTMENT (spinbtn_autochk_adj), 1, 0); gtk_widget_show (spinbtn_autochk_sec); gtk_box_pack_start (GTK_BOX (hbox_autochk), spinbtn_autochk_sec, FALSE, FALSE, 0); - gtk_widget_set_size_request (spinbtn_autochk_sec, 48, -1); - gtk_widget_set_size_request (spinbtn_autochk_min, 48, -1); - gtk_widget_set_size_request (spinbtn_autochk_hour, 48, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_autochk_sec), TRUE); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_autochk_min), TRUE); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_autochk_hour), TRUE); diff --git a/src/prefs_summaries.c b/src/prefs_summaries.c @@ -402,7 +402,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window, gtk_widget_show (spinbtn_ng_abbrev_len); gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_ng_abbrev_len, FALSE, FALSE, 0); - gtk_widget_set_size_request (spinbtn_ng_abbrev_len, 56, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_ng_abbrev_len), TRUE); @@ -537,7 +536,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window, (GTK_ADJUSTMENT (spinbtn_mark_as_read_delay_adj), 1, 0); gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_mark_as_read_delay, FALSE, FALSE, 0); - gtk_widget_set_size_request (spinbtn_mark_as_read_delay, 56, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_mark_as_read_delay), TRUE); gtk_box_pack_start (GTK_BOX (hbox1), gtk_label_new diff --git a/src/prefs_wrapping.c b/src/prefs_wrapping.c @@ -93,7 +93,6 @@ static void prefs_wrapping_create_widget(PrefsPage *_page, GtkWindow *window, spinbtn_linewrap_adj = GTK_ADJUSTMENT(gtk_adjustment_new (72, 20, 1024, 1, 10, 0)); spinbtn_linewrap = gtk_spin_button_new (GTK_ADJUSTMENT (spinbtn_linewrap_adj), 1, 0); - gtk_widget_set_size_request (spinbtn_linewrap, 64, -1); gtk_widget_show (spinbtn_linewrap); gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_linewrap, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_linewrap), TRUE); diff --git a/src/procmime.c b/src/procmime.c @@ -323,14 +323,14 @@ gboolean procmime_decode_content(MimeInfo *mimeinfo) gint state = 0; guint save = 0; + cm_return_val_if_fail(mimeinfo != NULL, FALSE); + EncodingType encoding = forced_encoding ? forced_encoding : mimeinfo->encoding_type; gchar lastline[BUFFSIZE]; memset(lastline, 0, BUFFSIZE); - cm_return_val_if_fail(mimeinfo != NULL, FALSE); - if (prefs_common.respect_flowed_format && mimeinfo->type == MIMETYPE_TEXT && !strcasecmp(mimeinfo->subtype, "plain")) {