aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nnn.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 3af9347..913e4e7 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';