This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository efm2.

View the commit online.

commit db1bd0809d9328e4d2a830e008b43f637f72cd09
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
AuthorDate: Wed May 22 09:40:56 2024 +0100

    only scan if src + dst on different devices
---
 src/backends/default/mv.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/backends/default/mv.c b/src/backends/default/mv.c
index 2da6c80..ff7a44c 100644
--- a/src/backends/default/mv.c
+++ b/src/backends/default/mv.c
@@ -51,7 +51,7 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
   File_Set    *fs;
   size_t       sz;
   char        *src = "" *dst = NULL;
-  char         sbuf[4096 + 256];
+  char         sbuf[PATH_MAX + 256];
 
   eina_init();
   eet_init();
@@ -89,8 +89,6 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
   if (!home_dir) return 77; // no $HOME? definitely an error!
   if (!config_dir)
     {
-      char sbuf[PATH_MAX];
-
       snprintf(sbuf, sizeof(sbuf), "%s/.e/e", home_dir);
       config_dir = eina_stringshare_add(sbuf);
     }
@@ -102,8 +100,13 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
   status_begin();
   EINA_LIST_FOREACH(files, l, fs)
   {
+    struct stat stsrc, stdst;
+
     if (strlen(fs->src) < 1) goto err2;
-    if (!fs_scan(fs->src)) goto err2;
+    if (lstat(fs->src, &stsrc) != 0) break;
+    if (lstat(fs->dst, &stdst) != 0) break;
+    if (stsrc.st_dev == stdst.st_dev) status_count(1, fs->src);
+    else if (!fs_scan(fs->src)) goto err2;
   }
 
   EINA_LIST_FOREACH(files, l, fs)
@@ -149,6 +152,12 @@ err2:
 
 err:
   if (buf) eina_strbuf_free(buf);
+  EINA_LIST_FREE(files, fs)
+  {
+    eina_stringshare_del(fs->src);
+    eina_stringshare_del(fs->dst);
+    free(fs);
+  }
 
   meta_shutdown();
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to