From a3e6d3aa63ef885e69e9a8835c5a138666ba0a49 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 4 Jan 2003 09:45:54 +0000 Subject: [PATCH] Don't include trailing /. in diagnostics about directories. (full_filename_): When FILENAME is just `.' and there is a nonempty directory-name part, don't append `/.'. --- src/remove.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/remove.c b/src/remove.c index 6269c5097a..67e09ccf1a 100644 --- a/src/remove.c +++ b/src/remove.c @@ -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; } -- 2.47.2