--- a/src/cline.c Tue Jun 30 15:49:38 2026 +0200 +++ b/src/cline.c Tue Jun 30 15:59:40 2026 +0200 @@ -112,35 +112,7 @@ } } /* make path absolute */ - { - char *ap = make_path_absolute(arg); - free(arg); - arg = ap; - arglen = strlen(ap); - } - /* make path canonical */ - char *canonical = malloc(arglen+1); - size_t canonicallen = 0; - for (size_t j = 0 ; j < arglen ; j++) { - canonical[canonicallen++] = arg[j]; - if (arg[j] == fs) { - /* collapse consecutive separators */ - while (arg[j+1] == fs) j++; - } else if (arg[j] == '.') { - if (arg[j+1] == fs) { - /* skip '.' segments */ - canonicallen--; - j++; - } else if (arg[j+1] == '.' && arg[j+2] == fs) { - /* trace back '..' segment */ - canonicallen -= 2; - while (canonical[canonicallen-1] != fs) canonicallen--; - j+=2; - } - } - } - canonical[canonicallen] = '\0'; - settings->excludeDirs->items[i] = canonical; + settings->excludeDirs->items[i] = make_path_absolute(arg); free(arg); } }