"Lei Zhang" <thestig(a)google.com> writes:
> + /* Convert $HOME to wide chars */
> + len = MultiByteToWideChar(CP_ACP, 0, home_dir, -1, NULL, 0);
> + home_dirW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
> + if (!home_dirW)
> + {
> + hr = E_OUTOFMEMORY;
> + goto xdg_user_dir_lookup_error;
> + }
> + MultiByteToWideChar(CP_ACP, 0, home_dir, -1, home_dirW, len);
> + hr = get_xdg_config_file(home_dir, &config_file);
> + if (FAILED(hr))
> + goto xdg_user_dir_lookup_error;
> +
> + file = fopen(config_file, "r");
> + HeapFree(GetProcessHeap(), 0, config_file);
> + if (!file)
> + {
> + hr = E_HANDLE;
> + goto xdg_user_dir_lookup_error;
> + }
> +
> + while (fgets(buffer, sizeof(buffer), file))
> + {
> + int idx;
> + WCHAR *p, bufferW[512];
> +
> + /* Convert buffer to wide chars */
> + len = MultiByteToWideChar(CP_UTF8, 0, buffer, -1, NULL, 0);
> + MultiByteToWideChar(CP_UTF8, 0, buffer, -1, bufferW, len);
It doesn't make sense to convert $HOME or config strings to Unicode,
these are Unix paths, they should be kept as such until you call
symlink() or whatever on them.
--
Alexandre Julliard
julliard(a)winehq.org