diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-07-11 09:27:06 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-07-11 09:27:06 +0000 |
commit | ce4ea6da4ec2b2b88f7b9b03f94c5d859be4ef1b (patch) | |
tree | c87161b3841df8ad8453ffb0880255bb153c4e65 | |
parent | cf6897a4d43c2484850f48be399b4816c180c9cc (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-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.ja | 5 | ||||
-rw-r--r-- | src/compose.c | 29 |
3 files changed, 39 insertions, 0 deletions
@@ -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); |