From a6c47e520593db52a9d24e24080b0d49274c7d43 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 24 Mar 2001 03:18:17 +0000 Subject: [PATCH] and NOw we can open up /dev/ and not have E bog down into a completely non-interactive state... this works like a charm... love it.. GOOD WORK cK! Excellent job.. this is actually what i originally thought we shoudl do (be able to send not just filename but also stat,mimetype etc. info along in one go with efsd doing in one lump) but i thought it might wokr ok as we had it before.. and it wasnt... so my original hunch was right... and it's working like a complete charmer. GOOD JOB! i'ts beginging to get to the point where we can do something.... WHEEEEEEEEEE congrats cK. now... i wish we had more cK's out there... (whoever is in munich out there buy cK a beer or 10) SVN revision: 4443 --- src/fs.c | 46 ++++++++++++++-------------------------------- 1 file changed, 14 insertions(+), 32 deletions(-) diff --git a/src/fs.c b/src/fs.c index fc3677190..8bd79b575 100644 --- a/src/fs.c +++ b/src/fs.c @@ -8,25 +8,29 @@ static void _e_fs_fd_handle(int fd); static void _e_fs_fd_handle(int fd) { - Evas_List events = NULL; double start, current; -/* printf("############## fs event...\n");*/ + printf("############## fs event...\n"); start = e_get_time(); while ((ec) && efsd_events_pending(ec)) { - EfsdEvent *ev; + EfsdEvent ev; - ev = NEW(EfsdEvent, 1); - ZERO(ev, EfsdEvent, 1); - - if (efsd_next_event(ec, ev) >= 0) + if (efsd_next_event(ec, &ev) >= 0) { - events = evas_list_append(events, ev); + Evas_List l; + + for (l = fs_handlers; l; l = l->next) + { + void (*func) (EfsdEvent *ev); + + func = l->data; + func(&ev); + } + efsd_event_cleanup(&ev); } else { - FREE(ev); efsd_close(ec); e_del_event_fd(fd); ec = NULL; @@ -43,29 +47,7 @@ _e_fs_fd_handle(int fd) break; } } - if (events) - { - Evas_List l; - - for (l = events; l; l = l->next) - { - Evas_List ll; - EfsdEvent *ev; - - ev = l->data; - for (ll = fs_handlers; ll; ll = ll->next) - { - void (*func) (EfsdEvent *ev); - - func = ll->data; - func(ev); - } - efsd_event_cleanup(ev); - FREE(ev); - } - evas_list_free(events); - } -/* printf("############## fs done\n");*/ + printf("############## fs done\n"); } void