( cvs diff -u -r 1.61.2.10 -r 1.61.2.11 src/account.c; cvs diff -u -r 1.213.2.15 -r 1.213.2.16 src/folder.c; cvs diff -u -r 1.150.2.8 -r 1.150.2.9 src/procmsg.c; cvs diff -u -r 1.60.2.7 -r 1.60.2.8 src/procmsg.h; cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/plugins/pgpmime/pgpmime.c; ) > 0.9.12cvs99.1.patchset
( cvs diff -u -r 1.12.2.10 -r 1.12.2.11 src/action.c; ) > 0.9.12cvs99.2.patchset
( cvs diff -u -r 1.2504.2.19 -r 1.2504.2.20 ChangeLog.claws; cvs diff -u -r 1.213.2.16 -r 1.213.2.17 src/folder.c; ) > 0.9.12cvs99.3.patchset
+( cvs diff -u -r 1.12.2.11 -r 1.12.2.12 src/action.c; ) > 0.9.12cvs99.4.patchset
c = read(source, buf, sizeof(buf) - 1);
if (c == 0)
break;
- gtk_text_buffer_insert(textbuf, &iter2, buf, c);
+ else {
+ gssize by_read = 0, by_written = 0;
+ gchar *ret_str = g_locale_to_utf8(buf, c, &by_read,
+ &by_written, NULL);
+
+ if (ret_str && by_written) {
+ gtk_text_buffer_insert(textbuf, &iter2,
+ ret_str, by_written);
+ g_free(ret_str);
+ } else
+ gtk_text_buffer_insert(textbuf, &iter2, buf, c);
+ }
}
if (child_info->children->is_selection) {
gtk_text_buffer_place_cursor(textbuf, &iter1);
}
} else {
c = read(source, buf, sizeof(buf) - 1);
- for (i = 0; i < c; i++)
- g_string_append_c(child_info->output, buf[i]);
+
+ if (c > 0) {
+ gssize by_read = 0, by_written = 0;
+ gchar *ret_str = g_locale_to_utf8(buf, c, &by_read,
+ &by_written, NULL);
+
+ if (ret_str && by_written) {
+ g_string_append_len(child_info->output,
+ ret_str, by_written);
+ g_free(ret_str);
+ } else
+ g_string_append_len(child_info->output, buf, c);
+ }
+
if (c > 0)
child_info->new_out = TRUE;
}