mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-18 12:00:31 +01:00
getstyle: fix wcopy_file paths
Some (presumably stale) calls to wcopy_file used what appears to be an incorrect destination which did not always exist. This patch forces assets to be copied under <themedir>/<asset>, rather than <themedir><absolute path of asset>. It works by first getting the "new" path (i.e. the one that will be inserted in the property list), which is relative to <themedir> (and appears to be always in the root directory, too); it then copies the file to that path. This *may* have been the original intended behaviour, as the one it replaces clutters the path and leaks configuration data. In addition, the style file seems to store only the file's name, not the path relative to <themedir>, even when the file is copied with its full hierarchy. Signed-off-by: Alexandru Lazar <alazar@startmail.com>
This commit is contained in:
committed by
Carlos R. Mafra
parent
2ea6162629
commit
b7a1528833
@@ -171,7 +171,7 @@ static void findCopyFile(const char *dir, const char *file)
|
||||
(void)wrmdirhier(ThemePath);
|
||||
return;
|
||||
}
|
||||
wcopy_file(dir, fullPath, fullPath);
|
||||
wcopy_file(dir, fullPath, file);
|
||||
wfree(fullPath);
|
||||
}
|
||||
|
||||
@@ -234,9 +234,10 @@ static void makeThemePack(WMPropList * style, const char *themeName)
|
||||
|
||||
p = strrchr(WMGetFromPLString(file), '/');
|
||||
if (p) {
|
||||
wcopy_file(themeDir, WMGetFromPLString(file), WMGetFromPLString(file));
|
||||
|
||||
newPath = wstrdup(p + 1);
|
||||
|
||||
wcopy_file(themeDir, WMGetFromPLString(file), newPath);
|
||||
|
||||
WMDeleteFromPLArray(value, 1);
|
||||
WMInsertInPLArray(value, 1, WMCreatePLString(newPath));
|
||||
free(newPath);
|
||||
@@ -253,9 +254,10 @@ static void makeThemePack(WMPropList * style, const char *themeName)
|
||||
|
||||
p = strrchr(WMGetFromPLString(file), '/');
|
||||
if (p) {
|
||||
wcopy_file(themeDir, WMGetFromPLString(file), WMGetFromPLString(file));
|
||||
|
||||
newPath = wstrdup(p + 1);
|
||||
|
||||
wcopy_file(themeDir, WMGetFromPLString(file), newPath);
|
||||
|
||||
WMDeleteFromPLArray(value, 1);
|
||||
WMInsertInPLArray(value, 1, WMCreatePLString(newPath));
|
||||
free(newPath);
|
||||
@@ -267,9 +269,10 @@ static void makeThemePack(WMPropList * style, const char *themeName)
|
||||
|
||||
p = strrchr(WMGetFromPLString(file), '/');
|
||||
if (p) {
|
||||
wcopy_file(themeDir, WMGetFromPLString(file), WMGetFromPLString(file));
|
||||
|
||||
newPath = wstrdup(p + 1);
|
||||
|
||||
wcopy_file(themeDir, WMGetFromPLString(file), newPath);
|
||||
|
||||
WMDeleteFromPLArray(value, 2);
|
||||
WMInsertInPLArray(value, 2, WMCreatePLString(newPath));
|
||||
free(newPath);
|
||||
|
||||
Reference in New Issue
Block a user