bug-findutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #56855] find -printf %h gives an empty string for the root director


From: Eric Blake
Subject: [bug #56855] find -printf %h gives an empty string for the root directory '/'
Date: Thu, 27 Apr 2023 16:19:03 -0400 (EDT)

Follow-up Comment #3, bug #56855 (project findutils):

POSIX is clear in
https://pubs.opengroup.org/onlinepubs/9699919799/functions/dirname.html that
the dirname(3) function returns a non-empty string for input of "/".  However,
POSIX is also clear that the string composed by
'dirname(str)+"/"+basename(str)' need NOT refer to the same file as 'str';
case in point: when str is "//", POSIX says you could end up with any of
"///", "////", or "/////" depending on choices made in basename and dirname,
but all of those results are equivalent to to "/" while POSIX is explicit that
"//" may be distinct from "/".

Similar arguments can be made about the behavior of the basename(1) utility.

However, since -printf is not defined by POSIX, there is no requirement that
%h be defined by the POSIX functionality of basename(3) (the function), nor of
basename(1) (the utility).  However, if we intend to return the empty string,
it IS a bug if our documentation is not explicit that we intentionally differ
in behavior from the POSIX functions, and give examples why we think that is
the right thing to do.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?56855>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]