In full_path, skip the trailing slash in the base directory when
different than "/", as the slash will eventually be added when building
the resulting path.
---
cat/visit.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/cat/visit.c b/cat/visit.c
index 963beb8..49b779e 100644
--- a/cat/visit.c
+++ b/cat/visit.c
@@ -138,13 +138,18 @@ full_path (const char *dir, const char *name)
{
int r;
char *path;
+ int len;
+
+ len = strlen (dir);
+ if (len > 0 && dir[len - 1] == '/')
+ --len;
if (STREQ (dir, "/"))
r = asprintf (&path, "/%s", name ? name : "");
else if (name)
- r = asprintf (&path, "%s/%s", dir, name);
+ r = asprintf (&path, "%.*s/%s", len, dir, name);
else
- r = asprintf (&path, "%s", dir);
+ r = asprintf (&path, "%.*s", len, dir);
if (r == -1) {
perror ("asprintf");
--
1.9.3
Show replies by date