Don't include trailing /. in diagnostics about directories.
authorJim Meyering <jim@meyering.net>
Sat, 4 Jan 2003 09:45:54 +0000 (09:45 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 4 Jan 2003 09:45:54 +0000 (09:45 +0000)
(full_filename_): When FILENAME is just `.'
and there is a nonempty directory-name part, don't append `/.'.

src/remove.c

index 6269c5097aab5055f131cc9d2c267914e9bcc8c8..67e09ccf1a6e5b1e193ec73da41f4fc92ffbfea2 100644 (file)
@@ -312,11 +312,21 @@ full_filename_ (DS const *ds, const char *filename)
        }
     }
 
-  /* Copy directory part, including trailing slash, and then
-     append the filename part, including a trailing zero byte.  */
-  memcpy (mempcpy (buf, dir_name, dir_len), filename, filename_len + 1);
-
-  assert (strlen (buf) + 1 == n_bytes_needed);
+  if (filename_len == 1 && *filename == '.' && dir_len)
+    {
+      /* FILENAME is just `.' and dir_len is nonzero.
+        Copy the directory part, omitting the trailing slash,
+        and append a trailing zero byte.  */
+      char *p = mempcpy (buf, dir_name, dir_len - 1);
+      *p = 0;
+    }
+  else
+    {
+      /* Copy the directory part, including trailing slash, and then
+        append the filename part, including a trailing zero byte.  */
+      memcpy (mempcpy (buf, dir_name, dir_len), filename, filename_len + 1);
+      assert (strlen (buf) + 1 == n_bytes_needed);
+    }
 
   return buf;
 }