char *os_find_datadir(void) { char *dir, *exec_dir; char *res; size_t max_len; exec_dir = qemu_get_exec_dir(); if (exec_dir == NULL) { return NULL; } dir = dirname(exec_dir); max_len = strlen(dir) + MAX(strlen(SHARE_SUFFIX), strlen(BUILD_SUFFIX)) + 1; res = g_malloc0(max_len); snprintf(res, max_len, "%s%s", dir, SHARE_SUFFIX); if (access(res, R_OK)) { snprintf(res, max_len, "%s%s", dir, BUILD_SUFFIX); if (access(res, R_OK)) { g_free(res); res = NULL; } } g_free(exec_dir); return res; }
/* Look for support files in the same directory as the executable. */ char *os_find_datadir(void) { return qemu_get_exec_dir(); }