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]; char filename[PATH_MAX];
snprintf(filename, (ext - file) + 1, "%s", file); snprintf(filename, (ext - file) + 1, "%s", file);
snprintf(buf, sizeof(buf), "%s_XXXXXX.edj", filename); snprintf(buf, sizeof(buf), "%s.edj", filename);
} }
else else
snprintf(buf, sizeof(buf), "%s_XXXXXX.edj", file); snprintf(buf, sizeof(buf), "%s.edj", file);
if (!eina_file_mkstemp(buf, &tmp_path)) if (!eina_file_mkstemp(buf, &tmp_path))
{ {

View File

@ -1,4 +1,4 @@
#include "common.h" #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]; char EDJE_PATH[PATH_MAX];

View File

@ -278,7 +278,7 @@ tools_set(Evas_Object *enventor)
base_tools_set(tools); base_tools_set(tools);
} }
static void static Eina_Bool
args_dispatch(int argc, char **argv, char *edc_path, char *img_path, args_dispatch(int argc, char **argv, char *edc_path, char *img_path,
char *snd_path, char *fnt_path, char *dat_path, char *snd_path, char *fnt_path, char *dat_path,
Eina_Bool *template_new) Eina_Bool *template_new)
@ -358,10 +358,17 @@ args_dispatch(int argc, char **argv, char *edc_path, char *img_path,
} }
defaults: 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) config_data_set(app_data *ad, int argc, char **argv)
{ {
char edc_path[PATH_MAX] = { 0, }; 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, }; char dat_path[PATH_MAX] = { 0, };
Eina_Bool template_new = EINA_FALSE; Eina_Bool template_new = EINA_FALSE;
args_dispatch(argc, argv, edc_path, img_path, snd_path, fnt_path, dat_path, Eina_Bool default_edc = args_dispatch(argc, argv, edc_path, img_path,
&template_new); snd_path, fnt_path, dat_path,
&template_new);
config_init(edc_path, img_path, snd_path, fnt_path, dat_path); config_init(edc_path, img_path, snd_path, fnt_path, dat_path);
config_update_cb_set(config_update_cb, ad); config_update_cb_set(config_update_cb, ad);
ad->template_new = template_new; ad->template_new = template_new;
return default_edc;
} }
static void static void
@ -876,8 +886,8 @@ init(app_data *ad, int argc, char **argv)
elm_setup(); elm_setup();
config_data_set(ad, argc, argv); Eina_Bool default_edc = config_data_set(ad, argc, argv);
newfile_default_set(); newfile_default_set(default_edc);
base_gui_init(); base_gui_init();
statusbar_set(); statusbar_set();
enventor_setup(ad); 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()) if (template_new && config_edc_path_get())
sprintf(path, "%s", config_edc_path_get()); sprintf(path, "%s", config_edc_path_get());
else 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, success = eina_file_copy(buf, path,
EINA_FILE_COPY_DATA, NULL, NULL); EINA_FILE_COPY_DATA, NULL, NULL);
if (!success) if (!success)
@ -52,13 +57,13 @@ newfile_set(Evas_Object *enventor, Eina_Bool template_new)
} }
void void
newfile_default_set(void) newfile_default_set(Eina_Bool default_edc)
{ {
Eina_Bool success = EINA_TRUE; Eina_Bool success = EINA_TRUE;
char buf[PATH_MAX]; char buf[PATH_MAX];
snprintf(buf, sizeof(buf), "%s/templates/basic.edc", snprintf(buf, sizeof(buf), "%s/templates/basic.edc",
elm_app_data_dir_get()); 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(), success = eina_file_copy(buf,config_edc_path_get(),
EINA_FILE_COPY_DATA, NULL, NULL); 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]; 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); void newfile_set(Evas_Object *enventor, Eina_Bool template_new);
Evas_Object * newfile_create(Evas_Object *parent, Evas_Smart_Cb selected_cb, void *data); Evas_Object * newfile_create(Evas_Object *parent, Evas_Smart_Cb selected_cb, void *data);