[Commits] [SCM] claws branch, master, updated. 3.11.1-48-g2fc36b1
Colin
colin at claws-mail.org
Fri Dec 19 16:25:46 CET 2014
The branch, master has been updated
via 2fc36b1cd471c4b3e11e5099a85a42415395de01 (commit)
from 6dfa9e5718df60aea5a12b5a4ae28da28a29f54e (commit)
Summary of changes:
src/codeconv.c | 2 +-
src/compose.c | 34 ++++++++++++++++++----------------
2 files changed, 19 insertions(+), 17 deletions(-)
- Log -----------------------------------------------------------------
commit 2fc36b1cd471c4b3e11e5099a85a42415395de01
Author: Colin Leroy <colin at colino.net>
Date: Fri Dec 19 16:23:00 2014 +0100
Better fix for bug #3349 (almost all the needed code was there :-)
diff --git a/src/codeconv.c b/src/codeconv.c
index 85dabf6..565c0c2 100644
--- a/src/codeconv.c
+++ b/src/codeconv.c
@@ -751,7 +751,7 @@ gchar *conv_codeset_strdup(const gchar *inbuf,
if (!strcmp2(src_code, dest_code)) {
CharSet dest_charset = conv_get_charset_from_str(dest_code);
- if (dest_charset == C_UTF_8) {
+ if (strict_mode && dest_charset == C_UTF_8) {
/* ensure valid UTF-8 if target is UTF-8 */
if (!g_utf8_validate(inbuf, -1, NULL)) {
return NULL;
diff --git a/src/compose.c b/src/compose.c
index 03dbf48..e9ecf08 100644
--- a/src/compose.c
+++ b/src/compose.c
@@ -3578,6 +3578,7 @@ static ComposeInsertResult compose_insert_file(Compose *compose, const gchar *fi
struct stat file_stat;
int ret;
GString *file_contents = NULL;
+ ComposeInsertResult result = COMPOSE_INSERT_SUCCESS;
cm_return_val_if_fail(file != NULL, COMPOSE_INSERT_NO_FILE);
@@ -3644,15 +3645,14 @@ static ComposeInsertResult compose_insert_file(Compose *compose, const gchar *fi
if (g_utf8_validate(buf, -1, NULL) == TRUE)
str = g_strdup(buf);
else {
+ codeconv_set_strict(TRUE);
str = conv_codeset_strdup
(buf, cur_encoding, CS_INTERNAL);
+ codeconv_set_strict(FALSE);
+
if (!str) {
- alertpanel_error(_("Unable to insert the file "
- "because converting to the internal encoding "
- "failed. This may be caused by a binary file "
- "or a wrongly encoded text file. If you are "
- "sure this is the right file then try "
- "attaching it instead."));
+ result = COMPOSE_INSERT_INVALID_CHARACTER;
+ break;
}
}
if (!str) continue;
@@ -3670,20 +3670,22 @@ static ComposeInsertResult compose_insert_file(Compose *compose, const gchar *fi
g_free(str);
}
- gtk_text_buffer_insert(buffer, &iter, file_contents->str, -1);
- g_string_free(file_contents, TRUE);
+ if (result == COMPOSE_INSERT_SUCCESS) {
+ gtk_text_buffer_insert(buffer, &iter, file_contents->str, -1);
- compose_changed_cb(NULL, compose);
- g_signal_handlers_unblock_by_func(G_OBJECT(buffer),
- G_CALLBACK(text_inserted),
- compose);
- compose->autowrap = prev_autowrap;
- if (compose->autowrap)
- compose_wrap_all(compose);
+ compose_changed_cb(NULL, compose);
+ g_signal_handlers_unblock_by_func(G_OBJECT(buffer),
+ G_CALLBACK(text_inserted),
+ compose);
+ compose->autowrap = prev_autowrap;
+ if (compose->autowrap)
+ compose_wrap_all(compose);
+ }
+ g_string_free(file_contents, TRUE);
fclose(fp);
- return COMPOSE_INSERT_SUCCESS;
+ return result;
}
static gboolean compose_attach_append(Compose *compose, const gchar *file,
-----------------------------------------------------------------------
hooks/post-receive
--
Claws Mail
More information about the Commits
mailing list