allow the user to chose in which directory the temporary file

will be created. The logic is the following:

 * if the environment variable TMPDIR is set, use its value
 * if it is not set, take the directory passed with the
   -td option (see edje_cc help)
 * otherwise on Windows use a temporary dir and on other
   platform, use /tmp


SVN revision: 41978
This commit is contained in:
Vincent Torri 2009-08-25 17:25:23 +00:00
parent ea9c39e2f7
commit 2a8d44f5a0
4 changed files with 24 additions and 8 deletions

View File

@ -16,6 +16,7 @@ Eina_List *img_dirs = NULL;
Eina_List *fnt_dirs = NULL;
Eina_List *defines = NULL;
char *file_in = NULL;
char *tmp_dir = NULL;
char *file_out = NULL;
char *progname = NULL;
int verbose = 0;
@ -37,6 +38,7 @@ main_help(void)
"\n"
"-id image/directory Add a directory to look in for relative path images\n"
"-fd font/directory Add a directory to look in for relative path fonts\n"
"-td temp/directory Directory to store temporary files\n"
"-v Verbose output\n"
"-no-lossy Do NOT allow images to be lossy\n"
"-no-comp Do NOT allow images to be stored with lossless compression\n"
@ -58,6 +60,9 @@ main(int argc, char **argv)
eina_init();
tmp_dir = getenv("TMPDIR");
progname = argv[0];
for (i = 1; i < argc; i++)
{
@ -92,6 +97,12 @@ main(int argc, char **argv)
i++;
fnt_dirs = eina_list_append(fnt_dirs, argv[i]);
}
else if ((!strcmp(argv[i], "-td") || !strcmp(argv[i], "--tmp_dir")) && (i < (argc - 1)))
{
i++;
if (!tmp_dir)
tmp_dir = argv[i];
}
else if ((!strcmp(argv[i], "-min-quality")) && (i < (argc - 1)))
{
i++;

View File

@ -124,6 +124,7 @@ char *mem_strdup(const char *s);
extern Eina_List *img_dirs;
extern Eina_List *fnt_dirs;
extern char *file_in;
extern char *tmp_dir;
extern char *file_out;
extern char *progname;
extern int verbose;

View File

@ -762,10 +762,11 @@ data_write_scripts(Eet_File *ef)
Eina_List *l;
int i;
if (!tmp_dir)
#ifdef HAVE_EVIL
char *tmpdir = evil_tmpdir_get();
tmp_dir = evil_tmpdir_get();
#else
char *tmpdir = "/tmp";
tmp_dir = "/tmp";
#endif
for (i = 0, l = codes; l; l = eina_list_next(l), i++)
@ -779,7 +780,8 @@ data_write_scripts(Eet_File *ef)
continue;
char tmpn[4096];
snprintf(tmpn, PATH_MAX, "%s/edje_cc.sma-tmp-XXXXXX", tmpdir);
snprintf(tmpn, PATH_MAX, "%s/edje_cc.sma-tmp-XXXXXX", tmp_dir);
printf("%s\n", tmpn);
fd = mkstemp(tmpn);
if (fd < 0)
error_and_abort(ef, "Unable to open temp file \"%s\" for script "
@ -789,7 +791,8 @@ data_write_scripts(Eet_File *ef)
close(fd);
char tmpo[4096];
snprintf(tmpo, PATH_MAX, "%s/edje_cc.amx-tmp-XXXXXX", tmpdir);
snprintf(tmpo, PATH_MAX, "%s/edje_cc.amx-tmp-XXXXXX", tmp_dir);
printf("%s\n", tmpn);
fd = mkstemp(tmpo);
if (fd < 0)
{

View File

@ -641,12 +641,12 @@ compile(void)
int fd;
off_t size;
char *data, *p;
const char *tmpdir;
if (!tmp_dir)
#ifdef HAVE_EVIL
tmpdir = evil_tmpdir_get();
tmp_dir = evil_tmpdir_get();
#else
tmpdir = "/tmp";
tmp_dir = "/tmp";
#endif
strncpy(inc, file_in, 4000);
@ -654,7 +654,8 @@ compile(void)
p = strrchr(inc, '/');
if (!p) strcpy(inc, "./");
else *p = 0;
snprintf (tmpn, PATH_MAX, "%s/edje_cc.edc-tmp-XXXXXX", tmpdir);
snprintf (tmpn, PATH_MAX, "%s/edje_cc.edc-tmp-XXXXXX", tmp_dir);
printf("%s\n", tmpn);
fd = mkstemp(tmpn);
if (fd >= 0)
{