e - exec - recent - fix loading of prevous recent data on append first
This commit is contained in:
parent
512a6e5d91
commit
c63b005b92
|
@ -116,6 +116,36 @@ _e_exec_cb_recent_idler(void *data EINA_UNUSED)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_exec_recent_load(void)
|
||||||
|
{
|
||||||
|
FILE *f;
|
||||||
|
char buf[4096];
|
||||||
|
long long timi;
|
||||||
|
|
||||||
|
if (_e_exec_recent) return;
|
||||||
|
|
||||||
|
e_user_dir_snprintf(buf, sizeof(buf), "recent-files.txt");
|
||||||
|
f = fopen(buf, "r");
|
||||||
|
if (!f) return;
|
||||||
|
while (fscanf(f, "%lli %4095[^\n]\n", &timi, buf) == 2)
|
||||||
|
{
|
||||||
|
E_Exec_Recent_File *fl = calloc(1, sizeof(E_Exec_Recent_File));
|
||||||
|
|
||||||
|
if (!fl) free(fl);
|
||||||
|
if (!_e_exec_recent) _e_exec_recent = calloc(1, sizeof(E_Exec_Recent));
|
||||||
|
if (!_e_exec_recent)
|
||||||
|
{
|
||||||
|
free(fl);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
fl->file = eina_stringshare_add(buf);
|
||||||
|
fl->timestamp = (double)timi / 100.0;
|
||||||
|
_e_exec_recent->files = eina_list_prepend(_e_exec_recent->files, fl);
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_exec_recent_file_append(const char *file, double tim)
|
_e_exec_recent_file_append(const char *file, double tim)
|
||||||
{
|
{
|
||||||
|
@ -124,6 +154,7 @@ _e_exec_recent_file_append(const char *file, double tim)
|
||||||
E_Exec_Recent_File *fl2;
|
E_Exec_Recent_File *fl2;
|
||||||
|
|
||||||
if (!fl) return;
|
if (!fl) return;
|
||||||
|
_e_exec_recent_load();
|
||||||
if (!_e_exec_recent)
|
if (!_e_exec_recent)
|
||||||
_e_exec_recent = calloc(1, sizeof(E_Exec_Recent));
|
_e_exec_recent = calloc(1, sizeof(E_Exec_Recent));
|
||||||
if (!_e_exec_recent)
|
if (!_e_exec_recent)
|
||||||
|
@ -215,36 +246,7 @@ e_exec_executor_set(E_Exec_Instance *(*func)(void *data, E_Zone * zone, Efreet_D
|
||||||
E_API const Eina_List *
|
E_API const Eina_List *
|
||||||
e_exec_recent_files_get(void)
|
e_exec_recent_files_get(void)
|
||||||
{
|
{
|
||||||
if (!_e_exec_recent)
|
_e_exec_recent_load();
|
||||||
{
|
|
||||||
FILE *f;
|
|
||||||
char buf[4096];
|
|
||||||
|
|
||||||
e_user_dir_snprintf(buf, sizeof(buf), "recent-files.txt");
|
|
||||||
f = fopen(buf, "r");
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
long long timi;
|
|
||||||
|
|
||||||
while (fscanf(f, "%lli %4095[^\n]\n", &timi, buf) == 2)
|
|
||||||
{
|
|
||||||
E_Exec_Recent_File *fl = calloc(1, sizeof(E_Exec_Recent_File));
|
|
||||||
|
|
||||||
if (!fl) free(fl);
|
|
||||||
if (!_e_exec_recent)
|
|
||||||
_e_exec_recent = calloc(1, sizeof(E_Exec_Recent));
|
|
||||||
if (!_e_exec_recent)
|
|
||||||
{
|
|
||||||
free(fl);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
fl->file = eina_stringshare_add(buf);
|
|
||||||
fl->timestamp = (double)timi / 100.0;
|
|
||||||
_e_exec_recent->files = eina_list_prepend(_e_exec_recent->files, fl);
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!_e_exec_recent) return NULL;
|
if (!_e_exec_recent) return NULL;
|
||||||
return _e_exec_recent->files;
|
return _e_exec_recent->files;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue