+2007-04-18 [paul] 2.9.0cvs7
+
+ * src/messageview.c
+ * src/mimeview.c
+ * src/summaryview.c
+ * src/gtk/filesel.c
+ Fix encoding woes wrt saving of
+ mails and parts
+ Thanks to Colin
+
2007-04-18 [colin] 2.9.0cvs6
* src/gtk/pluginwindow.c
( cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/ldapupdate.c; ) > 2.9.0cvs4.patchset
( cvs diff -u -r 1.9.2.14 -r 1.9.2.15 src/addressadd.c; cvs diff -u -r 1.60.2.85 -r 1.60.2.86 src/addressbook.c; cvs diff -u -r 1.28.2.26 -r 1.28.2.27 src/addrindex.c; cvs diff -u -r 1.1.2.2 -r 1.1.2.3 src/ldapupdate.c; ) > 2.9.0cvs5.patchset
( cvs diff -u -r 1.5.2.44 -r 1.5.2.45 src/gtk/pluginwindow.c; ) > 2.9.0cvs6.patchset
+( cvs diff -u -r 1.94.2.131 -r 1.94.2.132 src/messageview.c; cvs diff -u -r 1.83.2.104 -r 1.83.2.105 src/mimeview.c; cvs diff -u -r 1.395.2.295 -r 1.395.2.296 src/summaryview.c; cvs diff -u -r 1.2.2.32 -r 1.2.2.33 src/gtk/filesel.c; ) > 2.9.0cvs7.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=6
+EXTRA_VERSION=7
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
g_free(realpath);
realpath = g_strdup(get_home_dir());
}
+ tmp = NULL;
if (g_utf8_validate(realpath, -1, NULL))
tmp = g_filename_from_utf8(realpath, -1, NULL, NULL, NULL);
- else
+ if (tmp == NULL)
tmp = g_strdup(realpath);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), tmp);
g_free(tmp);
-
if (action == GTK_FILE_CHOOSER_ACTION_SAVE) {
+ tmp = NULL;
if (g_utf8_validate(filename, -1, NULL))
tmp = g_filename_from_utf8(filename, -1, NULL, NULL, NULL);
- else
+ if (tmp == NULL)
tmp = g_strdup(filename);
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), tmp);
g_free(tmp);
prefs_common.attach_load_dir = g_strdup_printf("%s%c", get_home_dir(), G_DIR_SEPARATOR);
if (g_utf8_validate(prefs_common.attach_load_dir, -1, NULL))
tmp = g_filename_from_utf8(prefs_common.attach_load_dir, -1, NULL, NULL, NULL);
- else
+ if (tmp == NULL)
tmp = g_strdup(prefs_common.attach_load_dir);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), tmp);
g_free(tmp);
Xstrdup_a(filename, msginfo->subject, return);
subst_for_filename(filename);
}
- dest = filesel_select_file_save(_("Save as"), filename);
+ if (filename && !g_utf8_validate(filename, -1, NULL)) {
+ gchar *oldstr = filename;
+ filename = conv_codeset_strdup(filename,
+ conv_get_locale_charset_str(),
+ CS_UTF_8);
+ if (!filename) {
+ g_warning("messageview_save_as(): faild to convert character set.");
+ filename = g_strdup(oldstr);
+ }
+ dest = filesel_select_file_save(_("Save as"), filename);
+ g_free(filename);
+ } else
+ dest = filesel_select_file_save(_("Save as"), filename);
if (!dest) return;
if (is_file_exist(dest)) {
AlertValue aval;
}
if (filename == NULL)
filename = g_path_get_basename("Unnamed part");
-
- tmp = g_filename_from_utf8(filename, -1, NULL, NULL, NULL);
-
+ if (!g_utf8_validate(filename, -1, NULL))
+ tmp = conv_codeset_strdup(filename,
+ conv_get_locale_charset_str(),
+ CS_UTF_8);
+ else
+ tmp = g_strdup(filename);
+
if (tmp == NULL) {
g_warning("filename not in UTF-8");
tmp = g_strdup("Unnamed part");
if (!g_utf8_validate(partname, -1, NULL)) {
gchar *tmp = conv_filename_to_utf8(partname);
- g_free(partname);
- partname = tmp;
+ if (!tmp) {
+ tmp = conv_codeset_strdup(partname,
+ conv_get_locale_charset_str(),
+ CS_UTF_8);
+ }
+ if (tmp) {
+ g_free(partname);
+ partname = tmp;
+ }
}
subst_for_filename(partname);
Xstrdup_a(filename, msginfo->subject, return);
subst_for_filename(filename);
}
- if (g_getenv ("G_BROKEN_FILENAMES") &&
- filename && !g_utf8_validate(filename, -1, NULL)) {
+ if (filename && !g_utf8_validate(filename, -1, NULL)) {
gchar *oldstr = filename;
filename = conv_codeset_strdup(filename,
conv_get_locale_charset_str(),