]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
docs: suggests people use path_extract_filename() + path_extract_directory()
authorLennart Poettering <lennart@poettering.net>
Mon, 22 Aug 2022 11:36:30 +0000 (13:36 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 23 Aug 2022 13:10:15 +0000 (15:10 +0200)
docs/CODING_STYLE.md

index b7e700237ad98b5f4297f4e8287c9ec05b0cef50..ac35dc38d56f037e70838644d1be4c7735b23fcf 100644 (file)
@@ -667,11 +667,11 @@ SPDX-License-Identifier: LGPL-2.1-or-later
   process, please use `_exit()` instead of `exit()`, so that the exit handlers
   are not run.
 
-- We never use the POSIX version of `basename()` (which glibc defines in
-  `libgen.h`), only the GNU version (which glibc defines in `string.h`).  The
-  only reason to include `libgen.h` is because `dirname()` is needed. Every
-  time you need that please immediately undefine `basename()`, and add a
-  comment about it, so that no code ever ends up using the POSIX version!
+- Do not use `basename()` or `dirname()`. The semantics in corner cases are
+  full of pitfalls, and the fact that there are two quite different versions of
+  `basename()` (one POSIX and one GNU, of which the latter is much more useful)
+  doesn't make it bette either. Use path_extract_filename() and
+  path_extract_directory() instead.
 
 - Never use `FILENAME_MAX`. Use `PATH_MAX` instead (for checking maximum size
   of paths) and `NAME_MAX` (for checking maximum size of filenames).