[Top][All Lists]

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

bug#6124: basename/dirname are not POSIX compliant on arg starting with

From: Pádraig Brady
Subject: bug#6124: basename/dirname are not POSIX compliant on arg starting with a dash
Date: Thu, 06 May 2010 13:50:27 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20100227 Thunderbird/3.0.3

On 06/05/10 12:15, Vincent Lefevre wrote:
> Hi,
> I've reported the following bug in the Debian BTS:
>   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580492
> With the basename and dirname utilities from GNU Coreutils, one has:
> ypig% POSIXLY_CORRECT=1 basename --
> basename: missing operand
> Try `basename --help' for more information.
> ypig% POSIXLY_CORRECT=1 dirname --
> dirname: missing operand
> Try `dirname --help' for more information.
> instead of:
> ypig% busybox basename --
> --
> ypig% busybox dirname --
> .
> According to POSIX[*], basename and dirname take no options (examples
> in POSIX also assume that), so that this would make BusyBox's behavior
> correct.
> [*] http://www.opengroup.org/onlinepubs/9699919799/utilities/basename.html
>     http://www.opengroup.org/onlinepubs/9699919799/utilities/dirname.html

The above busybox behavior implies that
if you write a robust script like this for coreutils,
that it is not portable to busybox:

base=$(basename -- "$path")

That also implies that we can't change the behavior.
Because there is an optional suffix parameter, one can't
know which behavior is required for the above example.
I suppose one could choose based on POSIXLY_CORRECT.

Note solaris behaves like busybox and openbsd behaves like coreutils.


reply via email to

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