[PATCH v2 0/1] MR7055: appwiz.cpl: Account for unicode characters in XDG_CACHE_HOME.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57338 -- v2: appwiz.cpl: Account for unicode characters in XDG_CACHE_HOME. https://gitlab.winehq.org/wine/wine/-/merge_requests/7055
From: Esme Povirk <esme(a)codeweavers.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57338 --- dlls/appwiz.cpl/addons.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c index 7b2c43472ff..94a5584f1f6 100644 --- a/dlls/appwiz.cpl/addons.c +++ b/dlls/appwiz.cpl/addons.c @@ -317,15 +317,18 @@ static enum install_res install_from_default_dir(void) static WCHAR *get_cache_file_name(BOOL ensure_exists) { - const char *xdg_dir; + const WCHAR *xdg_dir; const WCHAR *home_dir; - WCHAR *cache_dir, *ret; + WCHAR *cache_dir=NULL, *ret; size_t len, size; - xdg_dir = getenv( "XDG_CACHE_HOME" ); - if (xdg_dir && *xdg_dir && p_wine_get_dos_file_name) + xdg_dir = _wgetenv( L"XDG_CACHE_HOME" ); + if (xdg_dir && *xdg_dir) { - if (!(cache_dir = p_wine_get_dos_file_name( xdg_dir ))) return NULL; + if (!(cache_dir = HeapAlloc( GetProcessHeap(), 0, wcslen(xdg_dir) * sizeof(WCHAR) + sizeof(L"\\\\?\\unix") ))) return NULL; + lstrcpyW( cache_dir, L"\\\\?\\unix" ); + lstrcatW( cache_dir, xdg_dir ); + TRACE("cache dir %s\n", debugstr_w(cache_dir)); } else if ((home_dir = _wgetenv( L"WINEHOMEDIR" ))) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/7055
Updated to address feedback on the bug. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7055#note_91795
participants (2)
-
Esme Povirk -
Esme Povirk (@madewokherd)