Fix initial generation of external editor icons
In Windows, escape backslashes and quotes in the serialized GVariants of the icons.
This commit is contained in:
parent
672d6302f3
commit
732316dcaf
@ -904,7 +904,16 @@ void Options::readFromFile(Glib::ustring fname)
|
|||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
auto getIconSerialized = [](const Glib::ustring &executable) {
|
auto getIconSerialized = [](const Glib::ustring &executable) {
|
||||||
return Glib::ustring::compose("('themed', <['%1,0', '%1,0-symbolic']>)", executable);
|
// Backslashes and quotes must be escaped in the text representation of GVariant strings.
|
||||||
|
// See https://www.freedesktop.org/software/gstreamer-sdk/data/docs/2012.5/glib/gvariant-text.html#gvariant-text-strings
|
||||||
|
Glib::ustring exec_escaped = "";
|
||||||
|
for (const auto character : executable) {
|
||||||
|
if (character == '\\' || character == '\'') {
|
||||||
|
exec_escaped += '\\';
|
||||||
|
}
|
||||||
|
exec_escaped += character;
|
||||||
|
}
|
||||||
|
return Glib::ustring::compose("('themed', <['%1,0', '%1,0-symbolic']>)", exec_escaped);
|
||||||
};
|
};
|
||||||
Glib::ustring gimpDir = "";
|
Glib::ustring gimpDir = "";
|
||||||
if (keyFile.has_key("External Editor", "GimpDir")) {
|
if (keyFile.has_key("External Editor", "GimpDir")) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user