aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--src/compose.c29
3 files changed, 39 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fde9a8af..ea043e2b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2005-07-11
+ * src/compose.c: fixed duplicate signature problem in re-edit or
+ after editing with external editor.
+
+2005-07-11
+
* src/textview.c: get_uri_part(): don't include characters '{', '}',
'[', ']' in URI characters.
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 450df4b4..8104fbfa 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,5 +1,10 @@
2005-07-11
+ * src/compose.c: 再編集または外部エディタで編集後に署名が重複する
+ 問題を修正。
+
+2005-07-11
+
* src/textview.c: get_uri_part(): 文字 '{', '}', '[', ']' を URI
文字に含まないようにした。
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);