Commit Diff


commit - 0a3e9d6735c8a3f3093dac89e2689f5971482f8c
commit + 796e6d93de00cbe420af4ece0a56a2003e8f6704
blob - 0566ba4f03845b9dbd3158f35b71df7126ca2fec
blob + 3b7adf31cb214e02482597e04d5ef23df757b77c
--- src/account.c
+++ src/account.c
@@ -25,7 +25,6 @@
 #include <stdio.h>
 #include <errno.h>
 
-#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"), "<control>M", NULL, G_CALLBACK(compose_attach_cb) },
 	{"Message/InsertFile",            NULL, N_("_Insert file"), "<control>I", NULL, G_CALLBACK(compose_insert_file_cb) },
-	{"Message/InsertSig",             NULL, N_("Insert si_gnature"), "<control>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"), "<control>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 *
 		{"<Actions>/Menu/Message/SendLater",			"<shift><control>S"},
 		{"<Actions>/Menu/Message/AttachFile",			"<control>M"},
 		{"<Actions>/Menu/Message/InsertFile",			"<control>I"},
-		{"<Actions>/Menu/Message/InsertSig",			"<control>G"},
 		{"<Actions>/Menu/Message/Save",				"<control>S"},
 		{"<Actions>/Menu/Message/Close",			"<control>W"},
 		{"<Actions>/Menu/Edit/Undo",				"<control>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;
 		}