fix processmove
authorLaurent Mazet <mazet@softndesign.org>
Wed, 15 Jan 2025 23:03:26 +0000 (00:03 +0100)
committerLaurent Mazet <mazet@softndesign.org>
Wed, 15 Jan 2025 23:03:26 +0000 (00:03 +0100)
fm.c
function.c

diff --git a/fm.c b/fm.c
index bf1a5a44cb37f9f767b989cb775d81840de8554b..cbfb8567ffeaa84507914af899ea7ddd42ec86ec 100644 (file)
--- a/fm.c
+++ b/fm.c
@@ -481,9 +481,10 @@ int main (int argc, char *argv[])
 /* test: { sleep 1; echo -en '\en'; sleep 1; echo -n foo/bar; sleep 1; echo; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe */
 
 /* Rename */
-/* test: touch .a && { sleep 1; echo -en 'k\er'; sleep 1; echo .aa; sleep 1; echo -en '\er'; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .aa */
+/* test: touch .a && { sleep 1; echo -en 'k\er'; sleep 1; echo .aa; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .aa */
+/* test: touch .a && { sleep 1; echo -en 'k\er'; sleep 1; echo -e '\e'; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a */
 /* test: touch .a && { sleep 1; echo -en 'k\er'; sleep 1; echo .c/1; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a */
-/* test: touch .a && mkdir .b && { sleep 1; echo -en 'k\er'; sleep 1; echo .b/.a; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a && mkdir .b */
+/* test: touch .a && mkdir .b && { sleep 1; echo -en 'k\er'; sleep 1; echo .b/.a; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a && rmdir .b */
 /* test: touch .a .b && { sleep 1; echo -en 'k\er'; sleep 1; echo .b; sleep 1; echo; sleep 1; echo -en '\eq'; sleep 1; echo -n y; } | fm.exe && rm .a .b */
 
 /* Move */
index 49b91956c3b0df94a6e889b5a17abb5c78f21f62..e9405b55c0a4a427665a47a83e1d354845aafa74 100644 (file)
@@ -511,8 +511,8 @@ char *processmove (char *dest, char *src)
     char *msg = NULL;
 
     struct stat sb;
-    int rc = STAT (dest, &sb);
     errno = 0;
+    int rc = STAT (dest, &sb);
     if ((rc == -1) && (errno == ENOENT)) {
         if (rename (src, dest) != 0) {
             msg = strdupcat ("Can't move '", src, "' to '", dest, "'", NULL);
@@ -520,7 +520,7 @@ char *processmove (char *dest, char *src)
     } else if (rc == 0) {
         msg = strdupcat ("File '", dest, "' exists", NULL);
     } else {
-        VERBOSE (ERROR, fprintf (stderr, "can't stat on file '%s'\n", src));
+        VERBOSE (ERROR, fprintf (stderr, "can't stat on file '%s' (%d-%d)\n", src, rc, errno));
         exit (1);
     }
     errno = 0;