Xfconfd: Query upper-cased channel name resets all properties
When a channel is queried using an upper-case letter, e.g.,
xfconf-query -c Displays -l, all containing properties are reset.
This stems from the fact that channels are loaded unchanged, but created lower-cased. Therefore, a channel name with an upper-case letter causes the check if a channel exists to fail, then a new empty lower-cased channel is created that overwrites the existing one.
This can easily be fixed, although, I'm not sure if any other place also needs to be fixed:
diff --git a/xfconfd/xfconf-backend-perchannel-xml.c b/xfconfd/xfconf-backend-perchannel-xml.c index ddc8c75..8264f3c 100644 --- a/xfconfd/xfconf-backend-perchannel-xml.c +++ b/xfconfd/xfconf-backend-perchannel-xml.c @@ -1641,7 +1641,7 @@ xfconf_backend_perchannel_xml_load_channel(XfconfBackendPerchannelXml *xbpx, TRACE("entering"); - filename_stem = g_strdup_printf(CONFIG_FILE_FMT, channel_name); + filename_stem = g_strdup_printf(CONFIG_FILE_FMT, g_ascii_strdown(channel_name, -1)); filenames = xfce_resource_lookup_all(XFCE_RESOURCE_CONFIG, filename_stem); user_file = xfce_resource_save_location(XFCE_RESOURCE_CONFIG, filename_stem, FALSE);
(I'd open a merge request, however, it seems that I am not allowed to fork the repo due to a personal project limit of zero.)