diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-03-09 07:55:54 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-03-09 07:55:54 +0000 |
commit | f0bc6a2d0f390a79311ae7264cc8c2493ce5c5de (patch) | |
tree | 58ea1f37e89147b40895b9ce53d2f048d9588b15 | |
parent | ef7ee23da99c2f2c7b83e65cba357f2d5b9bb731 (diff) |
fixed wrapping of quote when auto-wrapping is enabled.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@158 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.ja | 5 | ||||
-rw-r--r-- | src/compose.c | 54 |
3 files changed, 52 insertions, 12 deletions
@@ -1,5 +1,10 @@ 2005-03-09 + * src/compose.c: fixed wrapping of quote when auto-wrapping is + enabled. + +2005-03-09 + * src/mainwindow.c: fixed remembering of the state of the visibility of MessageView. diff --git a/ChangeLog.ja b/ChangeLog.ja index 28357d58..d3e36d02 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,5 +1,10 @@ 2005-03-09 + * src/compose.c: 自動整形が有効になっていた場合の引用部の整形を + 修正。 + +2005-03-09 + * src/mainwindow.c: MessageView の表示状態を記憶していなかったのを 修正。 diff --git a/src/compose.c b/src/compose.c index 18622d79..675f179a 100644 --- a/src/compose.c +++ b/src/compose.c @@ -898,10 +898,14 @@ void compose_redirect(MsgInfo *msginfo, FolderItem *item) if ((fp = procmime_get_first_text_content(msginfo, NULL)) == NULL) g_warning(_("Can't get text part\n")); else { + gboolean prev_autowrap = compose->autowrap; + + compose->autowrap = FALSE; while (fgets(buf, sizeof(buf), fp) != NULL) { strcrchomp(buf); gtk_text_buffer_insert(buffer, &iter, buf, -1); } + compose->autowrap = prev_autowrap; fclose(fp); } compose_attach_parts(compose, msginfo); @@ -953,10 +957,14 @@ void compose_reedit(MsgInfo *msginfo) if ((fp = procmime_get_first_text_content(msginfo, NULL)) == NULL) g_warning(_("Can't get text part\n")); else { + gboolean prev_autowrap = compose->autowrap; + + compose->autowrap = FALSE; while (fgets(buf, sizeof(buf), fp) != NULL) { strcrchomp(buf); gtk_text_buffer_insert(buffer, &iter, buf, -1); } + compose->autowrap = prev_autowrap; fclose(fp); } compose_attach_parts(compose, msginfo); @@ -1096,6 +1104,9 @@ static void compose_entries_set(Compose *compose, const gchar *mailto) GtkTextBuffer *buffer; GtkTextMark *mark; GtkTextIter iter; + gboolean prev_autowrap = compose->autowrap; + + compose->autowrap = FALSE; buffer = gtk_text_view_get_buffer(text); mark = gtk_text_buffer_get_insert(buffer); @@ -1103,6 +1114,10 @@ static void compose_entries_set(Compose *compose, const gchar *mailto) gtk_text_buffer_insert(buffer, &iter, body, -1); gtk_text_buffer_insert(buffer, &iter, "\n", 1); + + compose->autowrap = prev_autowrap; + if (compose->autowrap) + compose_wrap_all(compose); } g_free(to); @@ -1310,6 +1325,7 @@ static gchar *compose_quote_fmt(Compose *compose, MsgInfo *msginfo, gchar *buf; gchar *p, *lastp; gint len; + gboolean prev_autowrap; if (!msginfo) msginfo = &dummyinfo; @@ -1339,6 +1355,9 @@ static gchar *compose_quote_fmt(Compose *compose, MsgInfo *msginfo, } else buf = ""; + prev_autowrap = compose->autowrap; + compose->autowrap = FALSE; + buffer = gtk_text_view_get_buffer(text); mark = gtk_text_buffer_get_insert(buffer); gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); @@ -1353,6 +1372,10 @@ static gchar *compose_quote_fmt(Compose *compose, MsgInfo *msginfo, break; } + compose->autowrap = prev_autowrap; + if (compose->autowrap) + compose_wrap_all(compose); + return buf; } @@ -1493,9 +1516,13 @@ static void compose_insert_sig(Compose *compose, gboolean replace) GtkTextMark *mark; GtkTextIter iter; gint cur_pos; + gboolean prev_autowrap; g_return_if_fail(compose->account != NULL); + prev_autowrap = compose->autowrap; + compose->autowrap = FALSE; + buffer = gtk_text_view_get_buffer(text); mark = gtk_text_buffer_get_insert(buffer); gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); @@ -1538,6 +1565,10 @@ static void compose_insert_sig(Compose *compose, gboolean replace) gtk_text_buffer_get_iter_at_offset(buffer, &iter, cur_pos); gtk_text_buffer_place_cursor(buffer, &iter); + + compose->autowrap = prev_autowrap; + if (compose->autowrap) + compose_wrap_all(compose); } static gchar *compose_get_signature_str(Compose *compose) @@ -1606,15 +1637,15 @@ static void compose_insert_file(Compose *compose, const gchar *file) return; } + prev_autowrap = compose->autowrap; + compose->autowrap = FALSE; + buffer = gtk_text_view_get_buffer(text); mark = gtk_text_buffer_get_insert(buffer); gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); cur_encoding = conv_get_locale_charset_str(); - prev_autowrap = compose->autowrap; - compose->autowrap = FALSE; - while (fgets(buf, sizeof(buf), fp) != NULL) { gchar *str; @@ -2050,6 +2081,9 @@ static void compose_wrap_paragraph(Compose *compose, GtkTextIter *par_iter) gchar *quote_str = NULL; gint quote_len; gboolean wrap_quote = prefs_common.linewrap_quote; + gboolean prev_autowrap = compose->autowrap; + + compose->autowrap = FALSE; buffer = gtk_text_view_get_buffer(text); @@ -2076,13 +2110,8 @@ static void compose_wrap_paragraph(Compose *compose, GtkTextIter *par_iter) } } - if (gtk_text_iter_is_end(&iter)) { - if (par_iter) - *par_iter = iter; - return; - } - - do { + /* go until paragraph end (empty line) */ + while (!gtk_text_iter_ends_line(&iter)) { quote_str = compose_get_quote_str(buffer, &iter, "e_len); if (quote_str) { if (!wrap_quote) { @@ -2135,11 +2164,12 @@ static void compose_wrap_paragraph(Compose *compose, GtkTextIter *par_iter) } g_free(quote_str); - } while (!gtk_text_iter_ends_line(&iter)); - /* stop if paragraph end (empty line) */ + } if (par_iter) *par_iter = iter; + + compose->autowrap = prev_autowrap; } static void compose_wrap_all(Compose *compose) |