forked from enlightenment/efl
parent
f2273a3f51
commit
cadc12f955
|
@ -146,14 +146,13 @@ main(int argc, char **argv)
|
||||||
/* TODO:
|
/* TODO:
|
||||||
* - Add file monitor on files, so that we catch changes on files
|
* - Add file monitor on files, so that we catch changes on files
|
||||||
* during whilst this program runs.
|
* during whilst this program runs.
|
||||||
* - When creating new cache, do it on a tmp file, then rename tmp file
|
|
||||||
* to cache file.
|
|
||||||
*/
|
*/
|
||||||
char file[PATH_MAX];
|
char file[PATH_MAX];
|
||||||
|
char util_file[PATH_MAX];
|
||||||
Eina_List *dirs;
|
Eina_List *dirs;
|
||||||
int priority = 0;
|
int priority = 0;
|
||||||
char *dir = NULL;
|
char *dir = NULL;
|
||||||
int fd = 0;
|
int fd = 0, tmpfd;
|
||||||
|
|
||||||
/* init external subsystems */
|
/* init external subsystems */
|
||||||
if (!eet_init()) goto eet_error;
|
if (!eet_init()) goto eet_error;
|
||||||
|
@ -201,9 +200,18 @@ main(int argc, char **argv)
|
||||||
if (!edd) goto edd_error;
|
if (!edd) goto edd_error;
|
||||||
|
|
||||||
/* create cache */
|
/* create cache */
|
||||||
ef = eet_open(efreet_desktop_cache_file(), EET_FILE_MODE_WRITE);
|
snprintf(file, sizeof(file), "%s.XXXXXX", efreet_desktop_cache_file());
|
||||||
|
tmpfd = mkstemp(file);
|
||||||
|
if (tmpfd < 0) goto error;
|
||||||
|
close(tmpfd);
|
||||||
|
ef = eet_open(file, EET_FILE_MODE_WRITE);
|
||||||
if (!ef) goto error;
|
if (!ef) goto error;
|
||||||
util_ef = eet_open(efreet_util_cache_file(), EET_FILE_MODE_WRITE);
|
|
||||||
|
snprintf(util_file, sizeof(util_file), "%s.XXXXXX", efreet_util_cache_file());
|
||||||
|
tmpfd = mkstemp(util_file);
|
||||||
|
if (tmpfd < 0) goto error;
|
||||||
|
close(tmpfd);
|
||||||
|
util_ef = eet_open(util_file, EET_FILE_MODE_WRITE);
|
||||||
if (!util_ef) goto error;
|
if (!util_ef) goto error;
|
||||||
|
|
||||||
file_ids = eina_hash_string_superfast_new(NULL);
|
file_ids = eina_hash_string_superfast_new(NULL);
|
||||||
|
@ -232,6 +240,10 @@ main(int argc, char **argv)
|
||||||
eet_close(util_ef);
|
eet_close(util_ef);
|
||||||
eet_close(ef);
|
eet_close(ef);
|
||||||
|
|
||||||
|
/* rename tmp files to real files */
|
||||||
|
if (rename(file, efreet_desktop_cache_file()) < 0) goto error;
|
||||||
|
if (rename(util_file, efreet_util_cache_file()) < 0) goto error;
|
||||||
|
|
||||||
efreet_desktop_edd_shutdown(edd);
|
efreet_desktop_edd_shutdown(edd);
|
||||||
efreet_shutdown();
|
efreet_shutdown();
|
||||||
eet_shutdown();
|
eet_shutdown();
|
||||||
|
@ -239,20 +251,15 @@ main(int argc, char **argv)
|
||||||
close(fd);
|
close(fd);
|
||||||
return 0;
|
return 0;
|
||||||
error:
|
error:
|
||||||
printf("error\n");
|
|
||||||
IF_FREE(dir);
|
IF_FREE(dir);
|
||||||
efreet_desktop_edd_shutdown(edd);
|
efreet_desktop_edd_shutdown(edd);
|
||||||
edd_error:
|
edd_error:
|
||||||
printf("error\n");
|
|
||||||
efreet_shutdown();
|
efreet_shutdown();
|
||||||
efreet_error:
|
efreet_error:
|
||||||
printf("error\n");
|
|
||||||
eina_shutdown();
|
eina_shutdown();
|
||||||
eina_error:
|
eina_error:
|
||||||
printf("error\n");
|
|
||||||
eet_shutdown();
|
eet_shutdown();
|
||||||
eet_error:
|
eet_error:
|
||||||
printf("error\n");
|
|
||||||
if (fd > 0) close(fd);
|
if (fd > 0) close(fd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue