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]))