commit 796e6d93de00cbe420af4ece0a56a2003e8f6704 from: Oliver Lowe date: Sat Sep 6 06:44:29 2025 UTC Drop text signature support If you can't be bothered writing it, should others be bothered reading it? commit - 0a3e9d6735c8a3f3093dac89e2689f5971482f8c commit + 796e6d93de00cbe420af4ece0a56a2003e8f6704 blob - 0566ba4f03845b9dbd3158f35b71df7126ca2fec blob + 3b7adf31cb214e02482597e04d5ef23df757b77c --- src/account.c +++ src/account.c @@ -25,7 +25,6 @@ #include #include -#include "main.h" #include "mainwindow.h" #include "folderview.h" #include "folder.h" @@ -48,8 +47,6 @@ #include "prefs_actions.h" #include "hooks.h" #include "passwordstore.h" -#include "file-utils.h" -#include "oauth2.h" enum { ACCOUNT_IS_DEFAULT, @@ -1514,65 +1511,6 @@ static void account_double_clicked(GtkTreeView *list_ account_edit_prefs(NULL, NULL); } -gchar *account_get_signature_str(PrefsAccount *account) -{ - gchar *sig_body = NULL; - gchar *sig_str = NULL; - gchar *utf8_sig_str = NULL; - - cm_return_val_if_fail(account != NULL, NULL); - - if (!account->sig_path) - return NULL; - - if (account->sig_type == SIG_FILE) { - gchar *sig_full_path; - if (!g_path_is_absolute(account->sig_path)) { - sig_full_path = g_build_filename(get_home_dir(), account->sig_path, NULL); - } else { - sig_full_path = g_strdup(account->sig_path); - } - - if (!is_file_or_fifo_exist(sig_full_path)) { - g_warning("can't open signature file: '%s'", sig_full_path); - g_free(sig_full_path); - return NULL; - } - - debug_print("Reading signature from file '%s'\n", sig_full_path); - gchar *tmp = file_read_to_str(sig_full_path); - g_free(sig_full_path); - - if (!tmp) - return NULL; - - sig_body = normalize_newlines(tmp); - g_free(tmp); - } else { - sig_body = get_command_output(account->sig_path); - } - - if (account->sig_sep) { - sig_str = g_strconcat("\n", account->sig_sep, "\n", sig_body, - NULL); - g_free(sig_body); - } else - sig_str = g_strconcat("\n", sig_body, NULL); - - if (sig_str) { - if (g_utf8_validate(sig_str, -1, NULL) == TRUE) - utf8_sig_str = sig_str; - else { - utf8_sig_str = conv_codeset_strdup - (sig_str, conv_get_locale_charset_str_no_utf8(), - CS_INTERNAL); - g_free(sig_str); - } - } - - return utf8_sig_str; -} - PrefsAccount *account_get_cur_account (void) { return cur_account; @@ -1604,86 +1542,3 @@ gboolean password_get(const gchar *user, return FALSE; } -static GSList *account_sigsep_list = NULL; - -/* create a list of unique signatures from accounts list */ -void account_sigsep_matchlist_create(void) -{ - GList *cur_ac = NULL; - PrefsAccount *ac_prefs = NULL; - - if (account_sigsep_list) - return; - - account_sigsep_list = g_slist_prepend(account_sigsep_list, g_strdup("-- ")); - for (cur_ac = account_get_list(); - cur_ac != NULL; - cur_ac = g_list_next(cur_ac)) { - ac_prefs = (PrefsAccount *)cur_ac->data; - - if (ac_prefs->sig_sep && *ac_prefs->sig_sep != '\0') { - if (!g_slist_find_custom(account_sigsep_list, ac_prefs->sig_sep, - (GCompareFunc)g_strcmp0)) { - account_sigsep_list = g_slist_prepend(account_sigsep_list, - g_strdup(ac_prefs->sig_sep)); - } - } - } -} - -/* delete the list of signatures created by account_sigsep_matchlist_create() */ -void account_sigsep_matchlist_delete(void) -{ - if (account_sigsep_list) { - slist_free_strings_full(account_sigsep_list); - account_sigsep_list = NULL; - } -} - -/* match a string against all signatures in list, using the specified format */ -gboolean account_sigsep_matchlist_str_found(const gchar *str, const gchar *format) -{ - gchar *tmp = NULL; - gboolean found = FALSE; - GSList *item; - - for (item = account_sigsep_list; - item != NULL && !found; - item = g_slist_next(item)) { - tmp = g_strdup_printf(format, (gchar *)item->data); - if (tmp) { - found = (strcmp(tmp, str) == 0); - g_free(tmp); - } else { - g_warning("account_sigsep_matchlist_str_found: g_strdup_printf failed, check format '%s'", - format); - return FALSE; - } - } - return found; -} - -/* match M first char of a string against all signatures in list, using the specified format */ -gboolean account_sigsep_matchlist_nchar_found(const gchar *str, const gchar *format) -{ - gchar *tmp = NULL; - gboolean found = FALSE; - GSList *item; - gint len; - - for (item = account_sigsep_list; - item != NULL && !found; - item = g_slist_next(item)) { - tmp = g_strdup_printf(format, (gchar *)item->data); - if (tmp) { - len = strlen(tmp); - found = (strncmp(tmp, str, len) == 0); - g_free(tmp); - } else { - g_warning("account_sigsep_matchlist_nchar_found: g_strdup_printf failed, check format '%s'", - format); - return FALSE; - } - } - return found; -} blob - 77a1295c2f5e38291070c49fa9e9174a9f493dd3 blob + 6dc10d75105370913f8e5a641993ef42ca6196ea --- src/account.h +++ src/account.h @@ -73,7 +73,6 @@ PrefsAccount *account_get_reply_account (MsgInfo *msg gboolean reply_autosel); void account_rename_path (const gchar *old_id, const gchar *new_id); -gchar *account_get_signature_str(PrefsAccount *account); gboolean password_get(const gchar *user, const gchar *server, @@ -81,9 +80,4 @@ gboolean password_get(const gchar *user, guint16 port, gchar **password); -void account_sigsep_matchlist_create (void); -void account_sigsep_matchlist_delete (void); -gboolean account_sigsep_matchlist_str_found (const gchar *str, const gchar *format); -gboolean account_sigsep_matchlist_nchar_found (const gchar *str, const gchar *format); - #endif /* __ACCOUNT_H__ */ blob - 8bd128a689ce71dce982a2650be135a81c8f6bda blob + 83aea785c9ef73d75aee06e47aef722ab135b93a --- src/compose.c +++ src/compose.c @@ -228,8 +228,6 @@ static void compose_reply_set_entry (Compose *compose static void compose_reedit_set_entry (Compose *compose, MsgInfo *msginfo); -static void compose_insert_sig (Compose *compose, - gboolean replace); static ComposeInsertResult compose_insert_file (Compose *compose, const gchar *file); @@ -360,10 +358,6 @@ static void compose_attach_cb (GtkAction *action, gpointer data); static void compose_insert_file_cb (GtkAction *action, gpointer data); -static void compose_insert_sig_cb (GtkAction *action, - gpointer data); -static void compose_replace_sig_cb (GtkAction *action, - gpointer data); static void compose_close_cb (GtkAction *action, gpointer data); @@ -531,8 +525,6 @@ static GtkActionEntry compose_entries[] = {"Message/AttachFile", NULL, N_("_Attach file"), "M", NULL, G_CALLBACK(compose_attach_cb) }, {"Message/InsertFile", NULL, N_("_Insert file"), "I", NULL, G_CALLBACK(compose_insert_file_cb) }, - {"Message/InsertSig", NULL, N_("Insert si_gnature"), "G", NULL, G_CALLBACK(compose_insert_sig_cb) }, - {"Message/ReplaceSig", NULL, N_("_Replace signature"), NULL, NULL, G_CALLBACK(compose_replace_sig_cb) }, /* {"Message/---", NULL, "---", NULL, NULL, NULL }, */ {"Message/Save", NULL, N_("_Save"), "S", NULL, G_CALLBACK(compose_save_cb) }, /*COMPOSE_KEEP_EDITING*/ /* {"Message/---", NULL, "---", NULL, NULL, NULL }, */ @@ -796,7 +788,6 @@ Compose *compose_generic_new(PrefsAccount *account, co gchar *mailto_from = NULL; PrefsAccount *mailto_account = NULL; MsgInfo* dummyinfo = NULL; - gint cursor_pos = -1; MailField mfield = NO_FIELD_PRESENT; gchar* buf; GtkTextMark *mark; @@ -849,8 +840,6 @@ Compose *compose_generic_new(PrefsAccount *account, co undo_block(compose->undostruct); - if (account->auto_sig) - compose_insert_sig(compose, FALSE); gtk_text_buffer_get_start_iter(textbuf, &iter); gtk_text_buffer_place_cursor(textbuf, &iter); @@ -1228,8 +1217,6 @@ static Compose *compose_generic_reply(MsgInfo *msginfo PrefsAccount *account = NULL; GtkTextView *textview; GtkTextBuffer *textbuf; - gboolean quote = FALSE; - const gchar *body_fmt = NULL; gchar *s_system = NULL; cm_return_val_if_fail(msginfo != NULL, NULL); cm_return_val_if_fail(msginfo->folder != NULL, NULL); @@ -1292,12 +1279,7 @@ static Compose *compose_generic_reply(MsgInfo *msginfo COMPOSE_PRIVACY_WARNING(); SIGNAL_BLOCK(textbuf); - - if (account->auto_sig) - compose_insert_sig(compose, FALSE); - compose_wrap_all(compose); - SIGNAL_UNBLOCK(textbuf); gtk_widget_grab_focus(compose->text); @@ -1337,7 +1319,6 @@ Compose *compose_forward(PrefsAccount *account, MsgInf Compose *compose; GtkTextView *textview; GtkTextBuffer *textbuf; - gint cursor_pos = -1; ComposeMode mode; cm_return_val_if_fail(msginfo != NULL, NULL); @@ -1403,12 +1384,7 @@ Compose *compose_forward(PrefsAccount *account, MsgInf } SIGNAL_BLOCK(textbuf); - - if (account->auto_sig) - compose_insert_sig(compose, FALSE); - compose_wrap_all(compose); - SIGNAL_UNBLOCK(textbuf); if (privacy_system_can_sign(compose->privacy_system) == FALSE && @@ -1535,12 +1511,7 @@ static Compose *compose_forward_multiple(PrefsAccount } SIGNAL_BLOCK(textbuf); - - if (account->auto_sig) - compose_insert_sig(compose, FALSE); - compose_wrap_all(compose); - SIGNAL_UNBLOCK(textbuf); gtk_text_buffer_get_start_iter(textbuf, &iter); @@ -1568,40 +1539,6 @@ static Compose *compose_forward_multiple(PrefsAccount return compose; } -static gboolean compose_is_sig_separator(Compose *compose, GtkTextBuffer *textbuf, GtkTextIter *iter) -{ - GtkTextIter start = *iter; - GtkTextIter end_iter; - int start_pos = gtk_text_iter_get_offset(&start); - gchar *str = NULL; - if (!compose->account->sig_sep) - return FALSE; - - gtk_text_buffer_get_iter_at_offset(textbuf, &end_iter, - start_pos+strlen(compose->account->sig_sep)); - - /* check sig separator */ - str = gtk_text_iter_get_text(&start, &end_iter); - if (!strcmp(str, compose->account->sig_sep)) { - gchar *tmp = NULL; - /* check end of line (\n) */ - gtk_text_buffer_get_iter_at_offset(textbuf, &start, - start_pos+strlen(compose->account->sig_sep)); - gtk_text_buffer_get_iter_at_offset(textbuf, &end_iter, - start_pos+strlen(compose->account->sig_sep)+1); - tmp = gtk_text_iter_get_text(&start, &end_iter); - if (!strcmp(tmp,"\n")) { - g_free(str); - g_free(tmp); - return TRUE; - } - g_free(tmp); - } - g_free(str); - - return FALSE; -} - static gboolean compose_update_folder_hook(gpointer source, gpointer data) { FolderUpdateData *hookdata = (FolderUpdateData *)source; @@ -1640,19 +1577,6 @@ static gboolean compose_update_folder_hook(gpointer so return FALSE; } -static void compose_colorize_signature(Compose *compose) -{ - GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(compose->text)); - GtkTextIter iter; - GtkTextIter end_iter; - gtk_text_buffer_get_start_iter(buffer, &iter); - while (gtk_text_iter_forward_line(&iter)) - if (compose_is_sig_separator(compose, buffer, &iter)) { - gtk_text_buffer_get_end_iter(buffer, &end_iter); - gtk_text_buffer_apply_tag_by_name(buffer,"signature",&iter, &end_iter); - } -} - #define BLOCK_WRAP() { \ prev_autowrap = compose->autowrap; \ buffer = gtk_text_view_get_buffer( \ @@ -1944,8 +1868,6 @@ Compose *compose_reedit(MsgInfo *msginfo, gboolean bat compose_attach_parts(compose, msginfo); - compose_colorize_signature(compose); - g_signal_handlers_unblock_by_func(G_OBJECT(textbuf), G_CALLBACK(compose_changed_cb), compose); @@ -1977,8 +1899,6 @@ Compose *compose_reedit(MsgInfo *msginfo, gboolean bat return NULL; } - compose->sig_str = account_get_signature_str(compose->account); - hooks_invoke(COMPOSE_CREATED_HOOKLIST, compose); return compose; @@ -2042,8 +1962,6 @@ Compose *compose_redirect(PrefsAccount *account, MsgIn gtk_text_view_set_editable(GTK_TEXT_VIEW(compose->text), FALSE); - compose_colorize_signature(compose); - cm_menu_set_sensitive_full(compose->ui_manager, "Popup/Compose/Add", FALSE); cm_menu_set_sensitive_full(compose->ui_manager, "Popup/Compose/Remove", FALSE); cm_menu_set_sensitive_full(compose->ui_manager, "Popup/Compose/Properties", FALSE); @@ -2052,8 +1970,6 @@ Compose *compose_redirect(PrefsAccount *account, MsgIn cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Message/Save", FALSE); cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Message/InsertFile", FALSE); cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Message/AttachFile", FALSE); - cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Message/InsertSig", FALSE); - cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Message/ReplaceSig", FALSE); cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Edit", FALSE); cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Options", FALSE); cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Tools/Actions", FALSE); @@ -2212,12 +2128,6 @@ void compose_toolbar_cb(gint action, gpointer data) case A_ATTACH: compose_attach_cb(NULL, compose); break; - case A_SIG: - compose_insert_sig(compose, FALSE); - break; - case A_REP_SIG: - compose_insert_sig(compose, TRUE); - break; case A_EXTEDITOR: compose_ext_editor_cb(NULL, compose); break; @@ -2806,104 +2716,6 @@ static void compose_reedit_set_entry(Compose *compose, #undef SET_ENTRY #undef SET_ADDRESS -static void compose_insert_sig(Compose *compose, gboolean replace) -{ - GtkTextView *text = GTK_TEXT_VIEW(compose->text); - GtkTextBuffer *buffer = gtk_text_view_get_buffer(text); - GtkTextMark *mark; - GtkTextIter iter, iter_end; - gint cur_pos, ins_pos; - gboolean prev_autowrap; - gboolean found = FALSE; - gboolean exists = FALSE; - - cm_return_if_fail(compose->account != NULL); - - BLOCK_WRAP(); - - g_signal_handlers_block_by_func(G_OBJECT(buffer), - G_CALLBACK(compose_changed_cb), - compose); - - mark = gtk_text_buffer_get_insert(buffer); - gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); - cur_pos = gtk_text_iter_get_offset (&iter); - ins_pos = cur_pos; - - gtk_text_buffer_get_end_iter(buffer, &iter); - - exists = (compose->sig_str != NULL); - - if (replace) { - GtkTextIter first_iter, start_iter, end_iter; - - gtk_text_buffer_get_start_iter(buffer, &first_iter); - - if (!exists || compose->sig_str[0] == '\0') - found = FALSE; - else - found = gtk_text_iter_forward_to_tag_toggle(&first_iter, - compose->signature_tag); - - if (found) { - /* include previous \n\n */ - gtk_text_iter_backward_chars(&first_iter, 1); - start_iter = first_iter; - end_iter = first_iter; - /* skip re-start */ - found = gtk_text_iter_forward_to_tag_toggle(&end_iter, - compose->signature_tag); - found &= gtk_text_iter_forward_to_tag_toggle(&end_iter, - compose->signature_tag); - if (found) { - gtk_text_buffer_delete(buffer, &start_iter, &end_iter); - iter = start_iter; - } - } - } - - g_free(compose->sig_str); - compose->sig_str = account_get_signature_str(compose->account); - - cur_pos = gtk_text_iter_get_offset(&iter); - - if (!compose->sig_str || (replace && !compose->account->auto_sig)) { - g_free(compose->sig_str); - compose->sig_str = NULL; - } else { - if (compose->sig_inserted == FALSE) - gtk_text_buffer_insert(buffer, &iter, "\n", -1); - compose->sig_inserted = TRUE; - - cur_pos = gtk_text_iter_get_offset(&iter); - gtk_text_buffer_insert(buffer, &iter, compose->sig_str, -1); - /* remove \n\n */ - gtk_text_buffer_get_iter_at_offset(buffer, &iter, cur_pos); - gtk_text_iter_forward_chars(&iter, 1); - gtk_text_buffer_get_end_iter(buffer, &iter_end); - gtk_text_buffer_apply_tag_by_name(buffer,"signature",&iter, &iter_end); - - if (cur_pos > gtk_text_buffer_get_char_count (buffer)) - cur_pos = gtk_text_buffer_get_char_count (buffer); - } - - /* put the cursor where it should be - * either where the quote_fmt says, either where it was */ - if (compose->set_cursor_pos < 0) - gtk_text_buffer_get_iter_at_offset(buffer, &iter, ins_pos); - else - gtk_text_buffer_get_iter_at_offset(buffer, &iter, - compose->set_cursor_pos); - - compose->set_cursor_pos = -1; - gtk_text_buffer_place_cursor(buffer, &iter); - g_signal_handlers_unblock_by_func(G_OBJECT(buffer), - G_CALLBACK(compose_changed_cb), - compose); - - UNBLOCK_WRAP(); -} - static ComposeInsertResult compose_insert_file(Compose *compose, const gchar *file) { GtkTextView *text; @@ -3624,10 +3436,6 @@ static gboolean compose_join_next_line(Compose *compos return FALSE; } - /* don't join signature separator */ - if (compose_is_sig_separator(compose, buffer, &iter_)) { - return FALSE; - } /* delete quote str */ if (quote_len > 0) gtk_text_buffer_delete(buffer, &iter_, &end); @@ -4259,7 +4067,6 @@ static void compose_select_account(Compose *compose, P if (!init && compose->mode != COMPOSE_REDIRECT) { undo_block(compose->undostruct); - compose_insert_sig(compose, TRUE); undo_unblock(compose->undostruct); } @@ -6724,8 +6531,6 @@ static Compose *compose_create(PrefsAccount *account, MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Message", "Separator1", "Message/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Message", "AttachFile", "Message/AttachFile", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Message", "InsertFile", "Message/InsertFile", GTK_UI_MANAGER_MENUITEM) - MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Message", "InsertSig", "Message/InsertSig", GTK_UI_MANAGER_MENUITEM) - MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Message", "ReplaceSig", "Message/ReplaceSig", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Message", "Separator2", "Message/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Message", "Save", "Message/Save", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Message", "Separator3", "Message/---", GTK_UI_MANAGER_SEPARATOR) @@ -8148,8 +7953,6 @@ static char *ext_editor_menu_entries[] = { "Menu/Message/Send", "Menu/Message/SendLater", "Menu/Message/InsertFile", - "Menu/Message/InsertSig", - "Menu/Message/ReplaceSig", "Menu/Message/Save", "Menu/Edit", "Menu/Tools/Actions", @@ -8893,20 +8696,6 @@ static void compose_insert_file_cb(GtkAction *action, } } -static void compose_insert_sig_cb(GtkAction *action, gpointer data) -{ - Compose *compose = (Compose *)data; - - compose_insert_sig(compose, FALSE); -} - -static void compose_replace_sig_cb(GtkAction *action, gpointer data) -{ - Compose *compose = (Compose *)data; - - compose_insert_sig(compose, TRUE); -} - static gint compose_delete_cb(GtkWidget *widget, GdkEventAny *event, gpointer data) { blob - 8519f95a2185b02fb836e75a8abd41d1ceb4f666 blob + df67a3fb609f90a5b65d53bfb334750b0ebc00f1 --- src/prefs_account.c +++ src/prefs_account.c @@ -208,14 +208,10 @@ typedef struct typedef struct ComposePage { - PrefsPage page; + PrefsPage page; - GtkWidget *vbox; + GtkWidget *vbox; - GtkWidget *sigfile_radiobtn; - GtkWidget *entry_sigpath; - GtkWidget *checkbtn_autosig; - GtkWidget *entry_sigsep; GtkWidget *autocc_checkbtn; GtkWidget *autocc_entry; GtkWidget *autobcc_checkbtn; @@ -558,22 +554,6 @@ static PrefParam oauth2_param[] = { }; static PrefParam compose_param[] = { - {"signature_type", "0", &tmp_ac_prefs.sig_type, P_ENUM, - &compose_page.sigfile_radiobtn, - prefs_account_enum_set_data_from_radiobtn, - prefs_account_enum_set_radiobtn}, - {"signature_path", "~/.signature", - &tmp_ac_prefs.sig_path, P_STRING, &compose_page.entry_sigpath, - prefs_set_data_from_entry, prefs_set_entry}, - - {"auto_signature", "TRUE", &tmp_ac_prefs.auto_sig, P_BOOL, - &compose_page.checkbtn_autosig, - prefs_set_data_from_toggle, prefs_set_toggle}, - - {"signature_separator", "-- ", &tmp_ac_prefs.sig_sep, P_STRING, - &compose_page.entry_sigsep, - prefs_set_data_from_entry, prefs_set_entry}, - {"set_autocc", "FALSE", &tmp_ac_prefs.set_autocc, P_BOOL, &compose_page.autocc_checkbtn, prefs_set_data_from_toggle, prefs_set_toggle}, @@ -1952,15 +1932,8 @@ static void compose_create_widget_func(PrefsPage * _pa PrefsAccount *ac_prefs = (PrefsAccount *) data; GtkWidget *vbox1; - GtkWidget *sig_hbox; GtkWidget *hbox1; GtkWidget *hbox2; - GtkWidget *frame_sig; - GtkWidget *vbox_sig; - GtkWidget *label_sigpath; - GtkWidget *checkbtn_autosig; - GtkWidget *label_sigsep; - GtkWidget *entry_sigsep; GtkWidget *frame; GtkWidget *table; GtkWidget *autocc_checkbtn; @@ -1974,74 +1947,8 @@ static void compose_create_widget_func(PrefsPage * _pa gtk_widget_show (vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER); - vbox_sig = gtkut_get_options_frame(vbox1, &frame_sig, _("Signature")); + PACK_FRAME (vbox1, frame, "Automatically set the following addresses"); - PACK_CHECK_BUTTON (vbox_sig, checkbtn_autosig, - _("Automatically insert signature")); - - hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); - gtk_widget_show (hbox1); - gtk_box_pack_start (GTK_BOX (vbox_sig), hbox1, TRUE, TRUE, 0); - label_sigsep = gtk_label_new (_("Signature separator")); - gtk_widget_show (label_sigsep); - gtk_box_pack_start (GTK_BOX (hbox1), label_sigsep, FALSE, FALSE, 0); - - entry_sigsep = gtk_entry_new (); - gtk_widget_show (entry_sigsep); - gtk_box_pack_start (GTK_BOX (hbox1), entry_sigsep, FALSE, FALSE, 0); - - gtk_widget_set_size_request (entry_sigsep, 64, -1); - - sig_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); - gtk_widget_show (sig_hbox); - gtk_box_pack_start (GTK_BOX (vbox_sig), sig_hbox, FALSE, FALSE, 0); - - sigfile_radiobtn = gtk_radio_button_new_with_label (NULL, _("File")); - gtk_widget_show (sigfile_radiobtn); - gtk_box_pack_start (GTK_BOX (sig_hbox), sigfile_radiobtn, - FALSE, FALSE, 0); - g_object_set_data (G_OBJECT (sigfile_radiobtn), - MENU_VAL_ID, - GINT_TO_POINTER (SIG_FILE)); - g_signal_connect(G_OBJECT(sigfile_radiobtn), "clicked", - G_CALLBACK(prefs_account_sigfile_radiobtn_cb), NULL); - - sigcmd_radiobtn = gtk_radio_button_new_with_label_from_widget - (GTK_RADIO_BUTTON(sigfile_radiobtn), _("Command output")); - gtk_widget_show (sigcmd_radiobtn); - gtk_box_pack_start (GTK_BOX (sig_hbox), sigcmd_radiobtn, - FALSE, FALSE, 0); - g_object_set_data (G_OBJECT (sigcmd_radiobtn), - MENU_VAL_ID, - GINT_TO_POINTER (SIG_COMMAND)); - g_signal_connect(G_OBJECT(sigcmd_radiobtn), "clicked", - G_CALLBACK(prefs_account_sigcmd_radiobtn_cb), NULL); - - hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); - gtk_widget_show (hbox2); - gtk_box_pack_start (GTK_BOX (vbox_sig), hbox2, TRUE, TRUE, 0); - label_sigpath = gtk_label_new (_("Signature")); - gtk_widget_show (label_sigpath); - gtk_box_pack_start (GTK_BOX (hbox2), label_sigpath, FALSE, FALSE, 0); - - entry_sigpath = gtk_entry_new (); - gtk_widget_show (entry_sigpath); - gtk_box_pack_start (GTK_BOX (hbox2), entry_sigpath, TRUE, TRUE, 0); - - signature_browse_button = gtkut_get_browse_file_btn(_("Bro_wse")); - gtk_widget_show (signature_browse_button); - gtk_box_pack_start (GTK_BOX (hbox2), signature_browse_button, FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(signature_browse_button), "clicked", - G_CALLBACK(prefs_account_signature_browse_cb), NULL); - - signature_edit_button = gtk_button_new_with_mnemonic(_("_Edit")); - gtk_widget_show (signature_edit_button); - gtk_box_pack_start (GTK_BOX (hbox2), signature_edit_button, FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(signature_edit_button), "clicked", - G_CALLBACK(prefs_account_signature_edit_cb), entry_sigpath); - - PACK_FRAME (vbox1, frame, _("Automatically set the following addresses")); - table = gtk_grid_new(); gtk_widget_show (table); gtk_container_add (GTK_CONTAINER (frame), table); @@ -2085,11 +1992,6 @@ static void compose_create_widget_func(PrefsPage * _pa SET_TOGGLE_SENSITIVITY (autoreplyto_checkbtn, autoreplyto_entry); - page->sigfile_radiobtn = sigfile_radiobtn; - page->entry_sigpath = entry_sigpath; - page->checkbtn_autosig = checkbtn_autosig; - page->entry_sigsep = entry_sigsep; - page->autocc_checkbtn = autocc_checkbtn; page->autocc_entry = autocc_entry; page->autobcc_checkbtn = autobcc_checkbtn; blob - 054aa006ecefc71f1bc320273de84faa64cb3e12 blob + f1442e9f99b7f513f98b2b1f628c38e2d6adafab --- src/prefs_account.h +++ src/prefs_account.h @@ -31,12 +31,6 @@ typedef enum { NUM_RECV_PROTOCOLS } RecvProtocol; -typedef enum { - SIG_FILE, - SIG_COMMAND, - SIG_DIRECT -} SigType; - typedef enum { POPAUTH_OAUTH2 = 1 << 1 @@ -128,10 +122,6 @@ struct _PrefsAccount gchar *oauth2_client_secret; /* Compose */ - SigType sig_type; - gchar *sig_path; - gboolean auto_sig; - gchar *sig_sep; gboolean set_autocc; gchar *auto_cc; gboolean set_autobcc; blob - bd773a69cdc2b451556339a74c1ade02da2b23e8 blob + 66dfbd400f5e25aebdbb4bd74cb8d17498b392f1 --- src/prefs_other.c +++ src/prefs_other.c @@ -152,7 +152,6 @@ static void prefs_keybind_preset_changed(GtkComboBox * {"/Menu/Message/SendLater", "S"}, {"/Menu/Message/AttachFile", "M"}, {"/Menu/Message/InsertFile", "I"}, - {"/Menu/Message/InsertSig", "G"}, {"/Menu/Message/Save", "S"}, {"/Menu/Message/Close", "W"}, {"/Menu/Edit/Undo", "Z"}, blob - 50ec5a71ec5352fe155adf9eb53e5121c51d12ac blob + 40c2e3a1f5d476eb3aec3ff79a140b896d1282f3 --- src/procmime.c +++ src/procmime.c @@ -255,7 +255,7 @@ const gchar *procmime_mimeinfo_get_parameter(MimeInfo gint llen = 0; \ strretchomp(lastline); \ llen = strlen(lastline); \ - if (lastline[llen-1] == ' ' && !account_sigsep_matchlist_str_found(lastline, "%s") && \ + if (lastline[llen-1] == ' ' && \ !(llen >= 2 && lastline[1] == ' ' && strchr(prefs_common.quote_chars, lastline[0]))) { \ /* this is flowed */ \ if (delsp) \ @@ -342,8 +342,6 @@ gboolean procmime_decode_content(MimeInfo *mimeinfo) tmp_file = TRUE; readend = mimeinfo->offset + mimeinfo->length; - account_sigsep_matchlist_create(); /* FLUSH_LASTLINE will use it */ - *buf = '\0'; if (encoding == ENC_QUOTED_PRINTABLE) { while ((ftell(infp) < readend) && (fgets(buf, sizeof(buf), infp) != NULL)) { @@ -466,8 +464,6 @@ gboolean procmime_decode_content(MimeInfo *mimeinfo) fclose(outfp); fclose(infp); - account_sigsep_matchlist_delete(); - if (err == TRUE) { g_free(tmpfilename); return FALSE; blob - ab69d8e8f0b666099b68c8fa6a997302945ac81a blob + 0db9c31d8ceeb838d59a7b5672c45d0752a798ee --- src/textview.c +++ src/textview.c @@ -846,8 +846,6 @@ static void textview_write_body(TextView *textview, Mi procmime_decode_content(mimeinfo); - account_sigsep_matchlist_create(); - if (textview->messageview->msginfo && textview->messageview->msginfo->folder) folder_item = textview->messageview->msginfo->folder; @@ -920,7 +918,6 @@ static void textview_write_body(TextView *textview, Mi fclose(tmpfp); waitpid(pid, pfd, 0); g_unlink(fname); - account_sigsep_matchlist_delete(); conv_code_converter_destroy(conv); return; } @@ -948,14 +945,12 @@ textview_default: tmpfp = g_fopen(mimeinfo->data.filename, "rb"); if (!tmpfp) { FILE_OP_ERROR(mimeinfo->data.filename, "g_fopen"); - account_sigsep_matchlist_delete(); conv_code_converter_destroy(conv); return; } if (fseek(tmpfp, mimeinfo->offset, SEEK_SET) < 0) { FILE_OP_ERROR(mimeinfo->data.filename, "fseek"); fclose(tmpfp); - account_sigsep_matchlist_delete(); conv_code_converter_destroy(conv); return; } @@ -966,7 +961,6 @@ textview_default: textview_write_line(textview, buf, conv, TRUE); if (textview->stop_loading) { fclose(tmpfp); - account_sigsep_matchlist_delete(); conv_code_converter_destroy(conv); return; } @@ -980,8 +974,6 @@ textview_default: fclose(tmpfp); } - account_sigsep_matchlist_delete(); - conv_code_converter_destroy(conv); procmime_force_encoding(0); @@ -1012,8 +1004,6 @@ static void textview_show_html(TextView *textview, FIL parser = sc_html_parser_new(fp, conv); cm_return_if_fail(parser != NULL); - account_sigsep_matchlist_create(); - while ((str = sc_html_parse(parser)) != NULL) { if (parser->state == SC_HTML_HREF) { /* first time : get and copy the URL */ @@ -1038,15 +1028,12 @@ static void textview_show_html(TextView *textview, FIL if (lines % 500 == 0) GTK_EVENTS_FLUSH(); if (textview->stop_loading) { - account_sigsep_matchlist_delete(); sc_html_parser_destroy(parser); return; } } textview_write_line(textview, "\n", NULL, FALSE); - account_sigsep_matchlist_delete(); - sc_html_parser_destroy(parser); } @@ -1391,17 +1378,6 @@ static void textview_write_line(TextView *textview, co else if (strncmp(buf, "@@ ", 3) == 0 && strstr(&buf[3], " @@")) fg_color = "diff-hunk"; - - if (account_sigsep_matchlist_nchar_found(buf, "%s\n")) { - textview->is_in_git_patch = FALSE; - textview->is_in_signature = TRUE; - fg_color = "signature"; - } - } else if (account_sigsep_matchlist_str_found(buf, "%s\n") - || account_sigsep_matchlist_str_found(buf, "- %s\n") - || textview->is_in_signature) { - fg_color = "signature"; - textview->is_in_signature = TRUE; } else if (strncmp(buf, "diff --git ", 11) == 0) { textview->is_in_git_patch = TRUE; }