aboutsummaryrefslogtreecommitdiff
path: root/src/compose.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-07-11 09:27:06 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-07-11 09:27:06 +0000
commitce4ea6da4ec2b2b88f7b9b03f94c5d859be4ef1b (patch)
treec87161b3841df8ad8453ffb0880255bb153c4e65 /src/compose.c
parentcf6897a4d43c2484850f48be399b4816c180c9cc (diff)
fixed duplicate signature problem in re-edit or after editing with external editor.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@417 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/compose.c')
-rw-r--r--src/compose.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/compose.c b/src/compose.c
index b7bb97e5..0f5abb1a 100644
--- a/src/compose.c
+++ b/src/compose.c
@@ -200,6 +200,7 @@ static void compose_reedit_set_entry (Compose *compose,
static void compose_insert_sig (Compose *compose,
gboolean replace,
gboolean scroll);
+static void compose_enable_sig (Compose *compose);
static gchar *compose_get_signature_str (Compose *compose);
static void compose_insert_file (Compose *compose,
@@ -1026,6 +1027,7 @@ void compose_reedit(MsgInfo *msginfo)
strcrchomp(buf);
gtk_text_buffer_insert(buffer, &iter, buf, -1);
}
+ compose_enable_sig(compose);
compose->autowrap = prev_autowrap;
fclose(fp);
}
@@ -1629,6 +1631,32 @@ static void compose_insert_sig(Compose *compose, gboolean replace,
gtk_text_view_scroll_mark_onscreen(text, mark);
}
+static void compose_enable_sig(Compose *compose)
+{
+ GtkTextView *text = GTK_TEXT_VIEW(compose->text);
+ GtkTextBuffer *buffer;
+ GtkTextIter iter, start, end;
+ gchar *sig_str;
+
+ g_return_if_fail(compose->account != NULL);
+
+ buffer = gtk_text_view_get_buffer(text);
+ gtk_text_buffer_get_start_iter(buffer, &iter);
+
+ sig_str = compose_get_signature_str(compose);
+ if (!sig_str)
+ return;
+
+ if (gtkut_text_buffer_find(buffer, &iter, sig_str, TRUE, &start)) {
+ end = start;
+ gtk_text_iter_forward_chars(&end, g_utf8_strlen(sig_str, -1));
+ gtk_text_buffer_apply_tag(buffer, compose->sig_tag,
+ &start, &end);
+ }
+
+ g_free(sig_str);
+}
+
static gchar *compose_get_signature_str(Compose *compose)
{
gchar *sig_body = NULL;
@@ -5210,6 +5238,7 @@ static gboolean compose_input_cb(GIOChannel *source, GIOCondition condition,
gtk_text_buffer_set_text(buffer, "", 0);
compose_insert_file(compose, compose->exteditor_file, FALSE);
+ compose_enable_sig(compose);
gtk_text_buffer_get_start_iter(buffer, &iter);
gtk_text_buffer_place_cursor(buffer, &iter);