vpath usage - simplify to bare minimum to make gustavo happy

since these are only local path resolves, the do and wait are
technically not needed. also remove any other tmp strings and use the
vpath string resolving feature to avoid printfs/strjoins/cats etc.
etc. as well.
This commit is contained in:
Carsten Haitzler 2017-02-09 22:06:16 +09:00
parent 810b17e7a4
commit 2037474dc0
5 changed files with 20 additions and 53 deletions

View File

@ -311,9 +311,8 @@ efreet_dirs_init(void)
#endif
/* xdg_runtime_dir */
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:run:)/");
efl_vpath_file_do(file_obj);
efl_vpath_file_wait(file_obj);
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
"(:run:)/");
xdg_runtime_dir = eina_stringshare_add(efl_vpath_file_result_get(file_obj));
efl_del(file_obj);

View File

@ -615,9 +615,6 @@ _elm_config_user_dir_snprintf(char *dst,
va_list ap;
Efl_Vpath_File *file_obj;
static int use_xdg_config = -1;
const char elmdir[] = "elementary";
const char elmdotdir[] = ".elementary";
const char *path = NULL;
if (use_xdg_config == -1)
{
@ -625,26 +622,15 @@ _elm_config_user_dir_snprintf(char *dst,
else use_xdg_config = 0;
}
if (use_xdg_config)
{
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:config:)/");
efl_vpath_file_do(file_obj);
efl_vpath_file_wait(file_obj);
path = efl_vpath_file_result_get(file_obj);
user_dir_len = eina_str_join_len
(dst, size, '/', path, strlen(path) - 1, elmdir, sizeof(elmdir) - 1);
efl_del(file_obj);
}
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
"(:config:)/elementary");
else
{
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:home:)/");
efl_vpath_file_do(file_obj);
efl_vpath_file_wait(file_obj);
path = efl_vpath_file_result_get(file_obj);
user_dir_len = eina_str_join_len
(dst, size, '/', path, strlen(path) - 1, elmdotdir, sizeof(elmdotdir) - 1);
efl_del(file_obj);
}
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
"(:home:)/.elementary");
eina_strlcpy(dst, efl_vpath_file_result_get(file_obj), size);
efl_del(file_obj);
user_dir_len = strlen(dst);
off = user_dir_len + 1;
if (off >= size) return off;
dst[user_dir_len] = '/';

View File

@ -60,21 +60,16 @@ _keyboard_modifiers_update(Elput_Keyboard *kbd, Elput_Seat *seat)
static int
_keyboard_fd_get(off_t size)
{
const char *path;
Eina_Tmpstr *fullname;
long flags;
int fd = 0;
char tmp[PATH_MAX];
Efl_Vpath_File *file_obj;
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:run:)/");
efl_vpath_file_do(file_obj);
efl_vpath_file_wait(file_obj);
path = efl_vpath_file_result_get(file_obj);
snprintf(tmp, sizeof(tmp), "%s/elput-keymap-XXXXXX", path);
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
"(:run:)/elput-keymap-XXXXXX");
fd = eina_file_mkstemp(efl_vpath_file_result_get(file_obj), &fullname);
efl_del(file_obj);
fd = eina_file_mkstemp(tmp, &fullname);
if (fd < 0) return -1;
flags = fcntl(fd, F_GETFD);

View File

@ -54,8 +54,6 @@ _ecore_buffer_shm_buffer_alloc(Ecore_Buffer_Module_Data bmdata, int width, int h
{
Ecore_Buffer_Shm_Data* b;
char *name;
static const char tmp[] = "ecore-buffer-shared-XXXXXX";
const char *path;
int fd, size, page_size;
Efl_Vpath_File *file_obj;
@ -70,16 +68,11 @@ _ecore_buffer_shm_buffer_alloc(Ecore_Buffer_Module_Data bmdata, int width, int h
b->size = page_size * (((b->stride * b->h) + (page_size - 1)) / page_size);
b->am_owner = EINA_TRUE;
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:run:)/");
efl_vpath_file_do(file_obj);
efl_vpath_file_wait(file_obj);
path = efl_vpath_file_result_get(file_obj);
size = strlen(path) + sizeof(tmp);
name = malloc(size);
if (!name) goto err;
strcpy(name, path);
strcat(name, tmp);
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
"(:run:)/ecore-buffer-shared-XXXXXX");
name = strdup(efl_vpath_file_result_get(file_obj));
efl_del(file_obj);
if (!name) goto err;
fd = mkostemp(name, O_CLOEXEC);
if (fd < 0) goto err_fd;

View File

@ -82,8 +82,6 @@ static struct wl_shm_pool *
_shm_pool_make(struct wl_shm *shm, int size, void **data)
{
struct wl_shm_pool *pool;
static const char tmp[] = "evas-wayland_shm-XXXXXX";
const char *path;
char *name;
int fd = 0;
Eina_Tmpstr *fullname;
@ -95,15 +93,11 @@ _shm_pool_make(struct wl_shm *shm, int size, void **data)
if (!shm) return NULL;
/* create tmp file name */
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:run:)/");
efl_vpath_file_do(file_obj);
efl_vpath_file_wait(file_obj);
path = efl_vpath_file_result_get(file_obj);
if ((name = malloc(strlen(path) + sizeof(tmp)))) strcpy(name, path);
if (!name) return NULL;
strcat(name, tmp);
file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
"(:run:)/evas-wayland_shm-XXXXXX");
fd = eina_file_mkstemp(efl_vpath_file_result_get(file_obj), &fullname);
efl_del(file_obj);
fd = eina_file_mkstemp(name, &fullname);
if (fd < 0)
/* try to create tmp file */
/* if ((fd = mkstemp(name)) < 0) */