On Sat, 19 Jan 2013 11:06:45 -0500 Dave Reisner <dreisner@archlinux.org> wrote: <snip>
+ if(opts.filemode) { + if(fnmatch("*-*.pkg.tar.?z", name1, 0) == 0 && + fnmatch("*-*.pkg.tar.?z", name2, 0) == 0) { + char *s, *e; + + s = strchr(name1, '/'); + e = strrchr(name1, '-'); + fn1 = strndup(name1, e - (s ? s : name1)); + + s = strchr(name2, '/'); + e = strrchr(name2, '-'); + fn2 = strndup(name2, e - (s ? s : name2)); + + name1 = fn1; + name2 = fn2; + } + } +
If your intent is to remove the entire leading path, those should be: s = strrchr(nameX, '/'); You could add another test to catch this: in="/path2/firefox-18.0-2-x86_64.pkg.tar.xz\n/path1/firefox-18.0.1-1-x86_64.pkg.tar.xz\n" runtest $in $in "filename sort with different leading paths" "--files"