basename: fix case: basename "" "" - sbase - suckless unix tools
 (HTM) git clone git://git.suckless.org/sbase
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 314a2d20cba0a92f7b0494056c27895169675ca0
 (DIR) parent b93f0c750d9e76d5498724e64ea0e44bf500ab8f
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Wed,  5 Nov 2025 19:05:28 +0100
       
       basename: fix case: basename "" ""
       
       This should return "", not "."
       
       Diffstat:
         M basename.c                          |       5 +++--
       
       1 file changed, 3 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/basename.c b/basename.c
       @@ -16,7 +16,7 @@ main(int argc, char *argv[])
        {
                ssize_t off;
                size_t slen;
       -        char *p;
       +        char *p = "";
        
                ARGBEGIN {
                default:
       @@ -26,7 +26,8 @@ main(int argc, char *argv[])
                if (argc != 1 && argc != 2)
                        usage();
        
       -        p = basename(argv[0]);
       +        if (argv[0][0])
       +                p = basename(argv[0]);
                if (argc == 2 && (slen = strlen(argv[1])) > 0) {
                        off = strlen(p) - slen;
                        if (off > 0 && !strcmp(p + off, argv[1]))