commit e31867290451d0cd5ee2f34837911cd7d6d9795e
parent 3d5815c5d12f7ca84181e4266f8b4b088dda1e18
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sun, 9 Feb 2020 08:21:12 +0530
Fix prefix calcualtion
Diffstat:
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git 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';