From: Arun Prakash Jana Date: Sun, 9 Feb 2020 02:51:12 +0000 (+0530) Subject: Fix prefix calcualtion X-Git-Tag: v3.0~3 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=e31867290451d0cd5ee2f34837911cd7d6d9795e;p=nnn.git Fix prefix calcualtion --- diff --git a/src/nnn.c b/src/nnn.c index 3af9347f..913e4e79 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -964,21 +964,19 @@ static char *common_prefix(const char *path, char *prefix) while (*x && *y && (*x == *y)) ++x, ++y; - /* Strings are same OR prefix is shorter */ - if ((!*x && !*y) || !*y) + /* Strings are same */ + if (!*x && !*y) return prefix; /* Path is shorter */ - if (!*x) { - xstrlcpy(prefix, path, path - x + 1); + if (!*x && *y == '/') { + xstrlcpy(prefix, path, y - path); return prefix; } - /* Paths deviate and prefix ends with '/' */ - if (y != prefix && *y == '/') { - prefix[y - prefix] = '\0'; + /* Prefix is shorter */ + if (!*y && *x == '/') return prefix; - } /* Shorten prefix */ prefix[y - prefix] = '\0';