From 71f42dcebcb289e692053bfb6d39c690d45be1bc Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Sat, 31 Mar 2012 06:30:08 +0000 Subject: [PATCH] Eio: fix shadow var warnings and make it compile on Windows. Needs more love though SVN revision: 69809 --- legacy/eio/src/lib/eio_dir.c | 16 ++++++++-------- legacy/eio/src/lib/eio_file.c | 24 ++++++++++++------------ legacy/eio/src/lib/eio_poll.c | 9 +++++++-- legacy/eio/src/lib/eio_private.h | 14 ++++++++++++++ legacy/eio/src/lib/eio_single.c | 19 ++++++++++++++++--- 5 files changed, 57 insertions(+), 25 deletions(-) diff --git a/legacy/eio/src/lib/eio_dir.c b/legacy/eio/src/lib/eio_dir.c index 558875c5a5..d286e8ba30 100644 --- a/legacy/eio/src/lib/eio_dir.c +++ b/legacy/eio/src/lib/eio_dir.c @@ -83,12 +83,12 @@ _eio_file_recursiv_ls(Ecore_Thread *thread, EINA_ITERATOR_FOREACH(it, info) { Eina_Bool filter = EINA_TRUE; - struct stat buffer; + _eio_stat_t buffer; switch (info->type) { case EINA_FILE_DIR: - if (lstat(info->path, &buffer) != 0) + if (_eio_lstat(info->path, &buffer) != 0) goto on_error; if (S_ISLNK(buffer.st_mode)) @@ -683,16 +683,16 @@ _eio_dir_stat_find_forward(Eio_File_Dir_Ls *async, if (filter) { - Eio_File_Direct_Info *send; + Eio_File_Direct_Info *send_di; - send = eio_direct_info_malloc(); - if (!send) return EINA_FALSE; + send_di = eio_direct_info_malloc(); + if (!send_di) return EINA_FALSE; - memcpy(&send->info, info, sizeof (Eina_File_Direct_Info)); - send->associated = async->ls.common.worker.associated; + memcpy(&send_di->info, info, sizeof (Eina_File_Direct_Info)); + send_di->associated = async->ls.common.worker.associated; async->ls.common.worker.associated = NULL; - async->pack = eina_list_append(async->pack, send); + async->pack = eina_list_append(async->pack, send_di); } else if (async->ls.common.worker.associated) { diff --git a/legacy/eio/src/lib/eio_file.c b/legacy/eio/src/lib/eio_file.c index d0067e37ae..e1f129ca63 100644 --- a/legacy/eio/src/lib/eio_file.c +++ b/legacy/eio/src/lib/eio_file.c @@ -65,16 +65,16 @@ _eio_file_heavy(void *data, Ecore_Thread *thread) if (filter) { - Eio_File_Char *send; + Eio_File_Char *send_fc; - send = eio_char_malloc(); - if (!send) goto on_error; + send_fc = eio_char_malloc(); + if (!send_fc) goto on_error; - send->filename = file; - send->associated = async->ls.common.worker.associated; + send_fc->filename = file; + send_fc->associated = async->ls.common.worker.associated; async->ls.common.worker.associated = NULL; - pack = eina_list_append(pack, send); + pack = eina_list_append(pack, send_fc); } else { @@ -161,16 +161,16 @@ _eio_file_eina_ls_heavy(Ecore_Thread *thread, Eio_File_Direct_Ls *async, Eina_It if (filter) { - Eio_File_Direct_Info *send; + Eio_File_Direct_Info *send_di; - send = eio_direct_info_malloc(); - if (!send) continue; + send_di = eio_direct_info_malloc(); + if (!send_di) continue; - memcpy(&send->info, info, sizeof (Eina_File_Direct_Info)); - send->associated = async->ls.common.worker.associated; + memcpy(&send_di->info, info, sizeof (Eina_File_Direct_Info)); + send_di->associated = async->ls.common.worker.associated; async->ls.common.worker.associated = NULL; - pack = eina_list_append(pack, send); + pack = eina_list_append(pack, send_di); } else if (async->ls.common.worker.associated) { diff --git a/legacy/eio/src/lib/eio_poll.c b/legacy/eio/src/lib/eio_poll.c index 9e050add46..b628084642 100644 --- a/legacy/eio/src/lib/eio_poll.c +++ b/legacy/eio/src/lib/eio_poll.c @@ -74,7 +74,7 @@ _eio_monitor_fallback_heavy_cb(void *data, Ecore_Thread *thread) Eina_Iterator *it; Eina_Stat *est; Eina_File_Direct_Info *info; - struct stat st; + _eio_stat_t st; /* FIXME : copy ecore_file_monitor_poll here */ if (!backend->initialised) @@ -85,7 +85,7 @@ _eio_monitor_fallback_heavy_cb(void *data, Ecore_Thread *thread) if (!backend->parent) return ; - if (stat(backend->parent->path, &st)) + if (_eio_stat(backend->parent->path, &st)) { if (backend->initialised && !backend->destroyed) { @@ -107,8 +107,13 @@ _eio_monitor_fallback_heavy_cb(void *data, Ecore_Thread *thread) est->gid = st.st_gid; est->rdev = st.st_rdev; est->size = st.st_size; +#ifdef _WIN32 + est->blksize = 0; + est->blocks = 0; +#else est->blksize = st.st_blksize; est->blocks = st.st_blocks; +#endif est->atime = st.st_atime; est->mtime = st.st_mtime; est->ctime = st.st_ctime; diff --git a/legacy/eio/src/lib/eio_private.h b/legacy/eio/src/lib/eio_private.h index bb213f29eb..d0f9367bd5 100644 --- a/legacy/eio/src/lib/eio_private.h +++ b/legacy/eio/src/lib/eio_private.h @@ -64,10 +64,24 @@ # undef WIN32_LEAN_AND_MEAN #endif +#ifdef HAVE_EVIL +# include +#endif + #include #include "Eio.h" +#ifdef _WIN32 +typedef struct __stat64 _eio_stat_t; +#define _eio_stat(p, b) _stat64(p, b) +#define _eio_lstat(p, b) _stat64(p, b) +#else +typedef struct stat _eio_stat_t; +#define _eio_stat(p, b) stat(p, b) +#define _eio_lstat(p, b) lstat(p, b) +#endif + /* Keeping 32 Eio_File_Progress alive should be enought */ #define EIO_PROGRESS_LIMIT 32 diff --git a/legacy/eio/src/lib/eio_single.c b/legacy/eio/src/lib/eio_single.c index 3c8ac898d1..6282853c97 100644 --- a/legacy/eio/src/lib/eio_single.c +++ b/legacy/eio/src/lib/eio_single.c @@ -102,7 +102,7 @@ _eio_file_unlink_error(void *data, Ecore_Thread *thread __UNUSED__) } static void -_eio_file_struct_2_eina(Eina_Stat *es, struct stat *st) +_eio_file_struct_2_eina(Eina_Stat *es, _eio_stat_t *st) { es->dev = st->st_dev; es->ino = st->st_ino; @@ -112,8 +112,13 @@ _eio_file_struct_2_eina(Eina_Stat *es, struct stat *st) es->gid = st->st_gid; es->rdev = st->st_rdev; es->size = st->st_size; +#ifdef _WIN32 + es->blksize = 0; + es->blocks = 0; +#else es->blksize = st->st_blksize; es->blocks = st->st_blocks; +#endif es->atime = st->st_atime; es->mtime = st->st_mtime; es->ctime = st->st_ctime; @@ -138,9 +143,9 @@ static void _eio_file_stat(void *data, Ecore_Thread *thread) { Eio_File_Stat *s = data; - struct stat buf; + _eio_stat_t buf; - if (stat(s->path, &buf) != 0) + if (_eio_stat(s->path, &buf) != 0) eio_file_thread_error(&s->common, thread); _eio_file_struct_2_eina(&s->buffer, &buf); @@ -199,6 +204,13 @@ _eio_file_chmod(void *data, Ecore_Thread *thread) static void _eio_file_chown(void *data, Ecore_Thread *thread) { +#ifdef _WIN32 + /* FIXME: + * look at http://wwwthep.physik.uni-mainz.de/~frink/chown/readme.html + */ + (void)data; + (void)thread; +#else Eio_File_Chown *own = data; char *tmp; uid_t owner = -1; @@ -251,6 +263,7 @@ _eio_file_chown(void *data, Ecore_Thread *thread) on_error: ecore_thread_cancel(thread); return ; +#endif } static void