diff options
Diffstat (limited to 'composer/e-msg-composer.c')
-rw-r--r-- | composer/e-msg-composer.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 0737d358b5..65bc2acf5e 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -1210,6 +1210,18 @@ is_top_signature (EMsgComposer *composer) return e_shell_settings_get_boolean (shell_settings, "composer-top-signature"); } +static gboolean +add_signature_delim (void) +{ + EShell *shell; + EShellSettings *shell_settings; + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + return !e_shell_settings_get_boolean (shell_settings, "composer-no-signature-delim"); +} + #define CONVERT_SPACES CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES #define NO_SIGNATURE_TEXT \ "<!--+GtkHTML:<DATA class=\"ClueFlow\" key=\"signature\" value=\"1\">-->" \ @@ -1221,7 +1233,7 @@ get_signature_html (EMsgComposer *composer) EComposerHeaderTable *table; gchar *text = NULL, *html = NULL; ESignature *signature; - gboolean format_html; + gboolean format_html, add_delim; table = e_msg_composer_get_header_table (composer); signature = e_composer_header_table_get_signature (table); @@ -1229,6 +1241,8 @@ get_signature_html (EMsgComposer *composer) if (!signature) return NULL; + add_delim = add_signature_delim (); + if (!e_signature_get_autogenerated (signature)) { const gchar *filename; @@ -1258,7 +1272,8 @@ get_signature_html (EMsgComposer *composer) name = id->name ? camel_text_to_html (id->name, CONVERT_SPACES, 0) : NULL; organization = id->organization ? camel_text_to_html (id->organization, CONVERT_SPACES, 0) : NULL; - text = g_strdup_printf ("-- <BR>%s%s%s%s%s%s%s%s", + text = g_strdup_printf ("%s%s%s%s%s%s%s%s%s", + add_delim ? "-- \n<BR>" : "", name ? name : "", (address && *address) ? " <<A HREF=\"mailto:" : "", address ? address : "", @@ -1276,6 +1291,8 @@ get_signature_html (EMsgComposer *composer) /* printf ("text: %s\n", text); */ if (text) { gchar *encoded_uid = NULL; + const gchar *sig_delim = format_html ? "-- \n<BR>" : "-- \n"; + const gchar *sig_delim_ent = format_html ? "\n-- \n<BR>" : "\n-- \n"; if (signature) encoded_uid = encode_signature_uid (signature); @@ -1291,7 +1308,7 @@ get_signature_html (EMsgComposer *composer) "%s</TD></TR></TABLE>", encoded_uid ? encoded_uid : "", format_html ? "" : "<PRE>\n", - format_html || (!strncmp ("-- \n", text, 4) || strstr (text, "\n-- \n")) ? "" : "-- \n", + !add_delim ? "" : (!strncmp (sig_delim, text, strlen (sig_delim)) || strstr (text, sig_delim_ent)) ? "" : sig_delim, text, format_html ? "" : "</PRE>\n", is_top_signature (composer) ? "<BR>" : ""); |