handle large files
authorCarsten Haitzler <raster@rasterman.com>
Sat, 2 Jun 2007 16:35:10 +0000 (16:35 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Sat, 2 Jun 2007 16:35:10 +0000 (16:35 +0000)
SVN revision: 30195

TODO
src/bin/e.h
src/bin/e_fm.c
src/bin/e_fm_main.c
src/preload/e_precache.c

diff --git a/TODO b/TODO
index 138645a..4aebec8 100644 (file)
--- a/TODO
+++ b/TODO
@@ -37,6 +37,8 @@ Some of the things (in very short form) that need to be done to E17...
   ESSENTIAL FEATURES
 -------------------------------------------------------------------------------
 
+* fm2 seems to have problems with files > 2gb
+* fm2 slave leaks on continual file changes
 * fm2 fwin windows need to use icon for that dir on window border
 * fm2 needs to use different theme elements for desktop
 * fm2 theme needs to not suck
index 5e1f02e..2ff0799 100644 (file)
 #define OBJECT_CHECK
 #endif
 
+#ifndef _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS  64
+#endif
+#ifndef __USE_FILE_OFFSET64 /* for large file support */
+#define __USE_FILE_OFFSET64
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
index 2c91dd8..f34c84d 100644 (file)
@@ -1797,6 +1797,28 @@ e_fm2_client_data(Ecore_Ipc_Event_Client_Data *e)
                              }
                         }
                    }
+                 else
+                   {
+                      if ((sd->id == e->ref_to) && (path[0] == 0))
+                        {
+                           if (e->response == 2)/* end of scan */
+                             {
+                                sd->listing = 0;
+                                if (sd->scan_timer)
+                                  {
+                                     ecore_timer_del(sd->scan_timer);
+                                     sd->scan_timer =
+                                       ecore_timer_add(0.0001, 
+                                                       _e_fm2_cb_scan_timer,
+                                                       sd->obj);
+                                  }
+                                else
+                                  {
+                                     _e_fm2_client_monitor_list_end(l->data);
+                                  }
+                             }
+                        }
+                  }
                  free(evdir);
               }
             break;
index 77ef78d..5c0a8ac 100644 (file)
@@ -1,6 +1,13 @@
 /*
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
+#ifndef _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS  64
+#endif
+#ifndef __USE_FILE_OFFSET64 /* for large file support */
+#define __USE_FILE_OFFSET64
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -823,11 +830,14 @@ _e_cb_file_mon_list_idler(void *data)
               snprintf(buf, sizeof(buf), "/%s", file);
             else
               snprintf(buf, sizeof(buf), "%s/%s", ed->dir, file);
-            if ((!ed->fq->next) ||
-                ((!strcmp(ed->fq->next->data, ".order")) &&
-                 (!ed->fq->next->next)))
-              _e_file_add(ed, buf, 2);
+/*          
+            if (//(!ed->fq->next) ||
+                ((!strcmp(ed->fq->next->data, ".order"))
+                 //&& (!ed->fq->next->next)
+                 ))
+              _e_file_add(ed, buf, 1);
             else
+ */
               _e_file_add(ed, buf, 1);
          }
        free(file);
@@ -837,6 +847,7 @@ _e_cb_file_mon_list_idler(void *data)
          {
             _e_file_mon_list_sync(ed);
             ed->idler = NULL;
+            if (!ed->fq) _e_file_add(ed, "", 2);
             return 0;
          }
      }
@@ -844,6 +855,7 @@ _e_cb_file_mon_list_idler(void *data)
    ed->sync = 0;
    ed->sync_time = 0.0;
    ed->idler = NULL;
+   if (!ed->fq) _e_file_add(ed, "", 2);
    return 0;
 }
 
index 5a58b28..c268ab7 100644 (file)
@@ -114,7 +114,7 @@ evas_object_image_file_set(Evas_Object *obj, const char *file, const char *key)
    (*func) (obj, file, key);
 }
 
-time_t
+long long
 ecore_file_mod_time(const char *file)
 {
    static time_t (*func) (const char *file) = NULL;
@@ -125,7 +125,7 @@ ecore_file_mod_time(const char *file)
    return (*func) (file);
 }
 
-int
+long long
 ecore_file_size(const char *file)
 {
    static int (*func) (const char *file) = NULL;