diff --git a/rtengine/safegtk.cc b/rtengine/safegtk.cc index 0d1a1e307..d9a66bd9c 100644 --- a/rtengine/safegtk.cc +++ b/rtengine/safegtk.cc @@ -132,6 +132,35 @@ void safe_build_subdir_list (Glib::RefPtr &dir, std::vector error; + utf8_str = locale_to_utf8(src, error); + if (error.get()) + utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?", error); + } +#endif //GLIBMM_EXCEPTIONS_ENABLED +#else + utf8_str = Glib::filename_to_utf8(src); +#endif + return utf8_str; +} + Glib::ustring safe_locale_to_utf8 (const std::string& src) { Glib::ustring utf8_str; diff --git a/rtengine/safegtk.h b/rtengine/safegtk.h index 3303833f5..53b55fe7b 100644 --- a/rtengine/safegtk.h +++ b/rtengine/safegtk.h @@ -26,6 +26,7 @@ void safe_build_subdir_list (Glib::RefPtr &dir, std::vector names; Glib::RefPtr dir = Gio::File::create_for_path ( argv[iArg] ); @@ -213,7 +213,7 @@ int processLineParams( int argc, char **argv ) } } }else{ - inputFiles.push_back( safe_locale_to_utf8 (argv[iArg]) ); + inputFiles.push_back( safe_filename_to_utf8 (argv[iArg]) ); } } break; @@ -242,7 +242,7 @@ int processLineParams( int argc, char **argv ) return -1; } }else{ - argv1 = safe_locale_to_utf8 ( argv[iArg] ); + argv1 = safe_filename_to_utf8 ( argv[iArg] ); if( outputDirectory ){ options.savePathFolder = outputPath; options.saveUsePathTemplate = false;