newfile: Set temporary path to default edc path by eina_file_mkstemp().

This commit is contained in:
Jaehyun Cho 2015-02-11 22:20:34 +09:00
parent 2e80073cfd
commit 6c4d881777
6 changed files with 30 additions and 15 deletions

View File

@ -53,10 +53,10 @@ config_edj_path_update(config_data *cd)
{
char filename[PATH_MAX];
snprintf(filename, (ext - file) + 1, "%s", file);
snprintf(buf, sizeof(buf), "%s_XXXXXX.edj", filename);
snprintf(buf, sizeof(buf), "%s.edj", filename);
}
else
snprintf(buf, sizeof(buf), "%s_XXXXXX.edj", file);
snprintf(buf, sizeof(buf), "%s.edj", file);
if (!eina_file_mkstemp(buf, &tmp_path))
{

View File

@ -1,4 +1,4 @@
#include "common.h"
const char *DEFAULT_EDC_PATH_FORMAT = "/tmp/enventor_%d.edc";
const char *DEFAULT_EDC_FORMAT = "enventor_XXXXXX.edc";
char EDJE_PATH[PATH_MAX];

View File

@ -278,7 +278,7 @@ tools_set(Evas_Object *enventor)
base_tools_set(tools);
}
static void
static Eina_Bool
args_dispatch(int argc, char **argv, char *edc_path, char *img_path,
char *snd_path, char *fnt_path, char *dat_path,
Eina_Bool *template_new)
@ -358,10 +358,17 @@ args_dispatch(int argc, char **argv, char *edc_path, char *img_path,
}
defaults:
if (default_edc) sprintf(edc_path, DEFAULT_EDC_PATH_FORMAT, getpid());
if (default_edc)
{
Eina_Tmpstr *tmp_path;
eina_file_mkstemp(DEFAULT_EDC_FORMAT, &tmp_path);
sprintf(edc_path, "%s", (const char *)tmp_path);
eina_tmpstr_del(tmp_path);
}
return default_edc;
}
static void
static Eina_Bool
config_data_set(app_data *ad, int argc, char **argv)
{
char edc_path[PATH_MAX] = { 0, };
@ -371,11 +378,14 @@ config_data_set(app_data *ad, int argc, char **argv)
char dat_path[PATH_MAX] = { 0, };
Eina_Bool template_new = EINA_FALSE;
args_dispatch(argc, argv, edc_path, img_path, snd_path, fnt_path, dat_path,
&template_new);
Eina_Bool default_edc = args_dispatch(argc, argv, edc_path, img_path,
snd_path, fnt_path, dat_path,
&template_new);
config_init(edc_path, img_path, snd_path, fnt_path, dat_path);
config_update_cb_set(config_update_cb, ad);
ad->template_new = template_new;
return default_edc;
}
static void
@ -876,8 +886,8 @@ init(app_data *ad, int argc, char **argv)
elm_setup();
config_data_set(ad, argc, argv);
newfile_default_set();
Eina_Bool default_edc = config_data_set(ad, argc, argv);
newfile_default_set(default_edc);
base_gui_init();
statusbar_set();
enventor_setup(ad);

View File

@ -38,7 +38,12 @@ newfile_set(Evas_Object *enventor, Eina_Bool template_new)
if (template_new && config_edc_path_get())
sprintf(path, "%s", config_edc_path_get());
else
sprintf(path, DEFAULT_EDC_PATH_FORMAT, getpid());
{
Eina_Tmpstr *tmp_path;
eina_file_mkstemp(DEFAULT_EDC_FORMAT, &tmp_path);
sprintf(path, "%s", (const char *)tmp_path);
eina_tmpstr_del(tmp_path);
}
success = eina_file_copy(buf, path,
EINA_FILE_COPY_DATA, NULL, NULL);
if (!success)
@ -52,13 +57,13 @@ newfile_set(Evas_Object *enventor, Eina_Bool template_new)
}
void
newfile_default_set(void)
newfile_default_set(Eina_Bool default_edc)
{
Eina_Bool success = EINA_TRUE;
char buf[PATH_MAX];
snprintf(buf, sizeof(buf), "%s/templates/basic.edc",
elm_app_data_dir_get());
if (!ecore_file_exists(config_edc_path_get()))
if (default_edc)
{
success = eina_file_copy(buf,config_edc_path_get(),
EINA_FILE_COPY_DATA, NULL, NULL);

View File

@ -1,2 +1,2 @@
extern const char *DEFAULT_EDC_PATH_FORMAT;
extern const char *DEFAULT_EDC_FORMAT;
extern char EDJE_PATH[PATH_MAX];

View File

@ -1,4 +1,4 @@
void newfile_default_set(void);
void newfile_default_set(Eina_Bool default_edc);
void newfile_set(Evas_Object *enventor, Eina_Bool template_new);
Evas_Object * newfile_create(Evas_Object *parent, Evas_Smart_Cb selected_cb, void *data);