Evas_List -> Ecore_List

SVN revision: 14198
This commit is contained in:
sebastid 2005-04-14 10:52:58 +00:00 committed by sebastid
parent 7b41e4e522
commit dda04c478c
3 changed files with 22 additions and 21 deletions

View File

@ -43,7 +43,7 @@ EAPI char *ecore_file_get_dir (char *path);
EAPI int ecore_file_can_exec (const char *file); EAPI int ecore_file_can_exec (const char *file);
EAPI char *ecore_file_readlink (const char *link); EAPI char *ecore_file_readlink (const char *link);
EAPI Evas_List *ecore_file_ls (const char *dir); EAPI Ecore_List *ecore_file_ls (const char *dir);
typedef struct _Ecore_File_Monitor Ecore_File_Monitor; typedef struct _Ecore_File_Monitor Ecore_File_Monitor;
typedef struct _Ecore_File_Monitor_Event Ecore_File_Monitor_Event; typedef struct _Ecore_File_Monitor_Event Ecore_File_Monitor_Event;

View File

@ -183,42 +183,44 @@ ecore_file_readlink(const char *link)
return strdup(buf); return strdup(buf);
} }
Evas_List * Ecore_List *
ecore_file_ls(const char *dir) ecore_file_ls(const char *dir)
{ {
DIR *dirp; DIR *dirp;
struct dirent *dp; struct dirent *dp;
Evas_List *list; Ecore_DList *list;
dirp = opendir(dir); dirp = opendir(dir);
if (!dirp) return NULL; if (!dirp) return NULL;
list = NULL; list = ecore_dlist_new();
while ((dp = readdir(dirp))) while ((dp = readdir(dirp)))
{ {
if ((strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, ".."))) if ((strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, "..")))
{ {
Evas_List *l; char *file, *f;
char *f;
/* insertion sort */ /* insertion sort */
for (l = list; l; l = l->next) ecore_dlist_goto_first(list);
while ((file = ecore_dlist_next(list)))
{ {
if (strcmp(l->data, dp->d_name) > 0) if (strcmp(file, dp->d_name) > 0)
{ {
ecore_dlist_previous(list);
f = strdup(dp->d_name); f = strdup(dp->d_name);
list = evas_list_prepend_relative(list, f, l->data); ecore_dlist_insert(list, f);
break; break;
} }
} }
/* nowhwre to go? just append it */ /* nowhwre to go? just append it */
if (!l) if (!file)
{ {
f = strdup(dp->d_name); f = strdup(dp->d_name);
list = evas_list_append(list, f); ecore_dlist_append(list, f);
} }
} }
} }
closedir(dirp); closedir(dirp);
return list; ecore_dlist_goto_first(list);
return ECORE_LIST(list);
} }

View File

@ -108,16 +108,15 @@ ecore_file_monitor_poll_add(const char *path,
if (ecore_file_is_dir(em->path)) if (ecore_file_is_dir(em->path))
{ {
/* Check for subdirs */ /* Check for subdirs */
Evas_List *files, *l; Ecore_List *files;
char *file;
files = ecore_file_ls(em->path); files = ecore_file_ls(em->path);
for (l = files; l; l = l->next) while ((file = ecore_list_next(files)))
{ {
Ecore_File *f; Ecore_File *f;
char *file;
char buf[PATH_MAX]; char buf[PATH_MAX];
file = l->data;
f = calloc(1, sizeof(Ecore_File)); f = calloc(1, sizeof(Ecore_File));
if (!f) if (!f)
{ {
@ -131,7 +130,7 @@ ecore_file_monitor_poll_add(const char *path,
f->is_dir = ecore_file_is_dir(buf); f->is_dir = ecore_file_is_dir(buf);
em->files = evas_list_append(em->files, f); em->files = evas_list_append(em->files, f);
} }
evas_list_free(files); ecore_list_destroy(files);
} }
} }
else else
@ -285,18 +284,17 @@ _ecore_file_monitor_poll_check(Ecore_File_Monitor *em)
/* Check for new files */ /* Check for new files */
if (ECORE_FILE_MONITOR_POLL(em)->mtime < mtime) if (ECORE_FILE_MONITOR_POLL(em)->mtime < mtime)
{ {
Evas_List *files; Ecore_List *files;
char *file;
/* Files have been added or removed */ /* Files have been added or removed */
files = ecore_file_ls(em->path); files = ecore_file_ls(em->path);
for (l = files; l; l = l->next) while ((file = ecore_list_next(files)))
{ {
Ecore_File *f; Ecore_File *f;
char *file;
char buf[PATH_MAX]; char buf[PATH_MAX];
Ecore_File_Event event; Ecore_File_Event event;
file = l->data;
if (_ecore_file_monitor_poll_checking(em, file)) if (_ecore_file_monitor_poll_checking(em, file))
{ {
free(file); free(file);
@ -321,6 +319,7 @@ _ecore_file_monitor_poll_check(Ecore_File_Monitor *em)
em->func(em->data, em, event, buf); em->func(em->data, em, event, buf);
em->files = evas_list_append(em->files, f); em->files = evas_list_append(em->files, f);
} }
ecore_list_destroy(files);
if (!ecore_file_is_dir(em->path)) if (!ecore_file_is_dir(em->path))
em->func(em->data, em, ECORE_FILE_EVENT_MODIFIED, em->path); em->func(em->data, em, ECORE_FILE_EVENT_MODIFIED, em->path);
_interval = ECORE_FILE_INTERVAL_MIN; _interval = ECORE_FILE_INTERVAL_MIN;