"Lei Zhang" thestig@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.