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:
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")) {