From f13074afd13ab8008eead4a084b43f4ae7f08433 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Wed, 8 Jan 2014 23:16:04 +0100 Subject: [PATCH] Improve basename(3) and dirname(3). --- libc/libgen/basename.cpp | 11 ++++------- libc/libgen/dirname.cpp | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/libc/libgen/basename.cpp b/libc/libgen/basename.cpp index 5d0681fe..4ad8e4a1 100644 --- a/libc/libgen/basename.cpp +++ b/libc/libgen/basename.cpp @@ -1,6 +1,6 @@ /******************************************************************************* - Copyright(C) Jonas 'Sortie' Termansen 2013. + Copyright(C) Jonas 'Sortie' Termansen 2013, 2014. This file is part of the Sortix C Library. @@ -25,15 +25,12 @@ #include #include +static const char current_directory[2] = "."; + extern "C" char* basename(char* path) { - static char static_stuff[2]; if ( !path || !*path ) - { - static_stuff[0] = '.'; - static_stuff[1] = '\0'; - return static_stuff; - } + return (char*) current_directory; size_t path_len = strlen(path); while ( 2 <= path_len && path[path_len-1] == '/' ) path[--path_len] = '\0'; diff --git a/libc/libgen/dirname.cpp b/libc/libgen/dirname.cpp index 77660897..1379d274 100644 --- a/libc/libgen/dirname.cpp +++ b/libc/libgen/dirname.cpp @@ -1,6 +1,6 @@ /******************************************************************************* - Copyright(C) Jonas 'Sortie' Termansen 2013. + Copyright(C) Jonas 'Sortie' Termansen 2013, 2014. This file is part of the Sortix C Library. @@ -25,15 +25,12 @@ #include #include +static const char current_directory[2] = "."; + extern "C" char* dirname(char* path) { - static char static_stuff[2]; if ( !path || !*path ) - { - static_stuff[0] = '.'; - static_stuff[1] = '\0'; - return static_stuff; - } + return (char*) current_directory; size_t path_len = strlen(path); while ( 2 <= path_len && path[path_len-1] == '/' ) path[--path_len] = '\0';