mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
util/win32: simplify qemu_get_local_state_dir()
SHGetFolderPath() is a deprecated API: https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpatha It is a wrapper for SHGetKnownFolderPath() and CSIDL_COMMON_PATH is mapped to FOLDERID_ProgramData: https://docs.microsoft.com/en-us/windows/win32/shell/csidl g_get_system_data_dirs() is a suitable replacement, as it will have FOLDERID_ProgramData in the returned list. However, it follows the XDG Base Directory Specification, if `XDG_DATA_DIRS` is defined, it will be returned instead. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Stefan Weil <sw@weilnetz.de> Message-Id: <20220525144140.591926-3-marcandre.lureau@redhat.com>
This commit is contained in:
parent
06680b15b4
commit
49e0128c48
1 changed files with 4 additions and 13 deletions
|
@ -40,9 +40,6 @@
|
|||
#include "qemu/error-report.h"
|
||||
#include <malloc.h>
|
||||
|
||||
/* this must come after including "trace.h" */
|
||||
#include <shlobj.h>
|
||||
|
||||
static int get_allocation_granularity(void)
|
||||
{
|
||||
SYSTEM_INFO system_info;
|
||||
|
@ -237,17 +234,11 @@ int qemu_get_thread_id(void)
|
|||
char *
|
||||
qemu_get_local_state_dir(void)
|
||||
{
|
||||
HRESULT result;
|
||||
char base_path[MAX_PATH+1] = "";
|
||||
const char * const *data_dirs = g_get_system_data_dirs();
|
||||
|
||||
result = SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL,
|
||||
/* SHGFP_TYPE_CURRENT */ 0, base_path);
|
||||
if (result != S_OK) {
|
||||
/* misconfigured environment */
|
||||
g_critical("CSIDL_COMMON_APPDATA unavailable: %ld", (long)result);
|
||||
abort();
|
||||
}
|
||||
return g_strdup(base_path);
|
||||
g_assert(data_dirs && data_dirs[0]);
|
||||
|
||||
return g_strdup(data_dirs[0]);
|
||||
}
|
||||
|
||||
void qemu_set_tty_echo(int fd, bool echo)
|
||||
|
|
Loading…
Reference in a new issue