-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

After my recent patch submission to coreutils, GNU dirname/basename will
now return // on platforms (for now, cygwin) that have // distinct from /.
 So the documentation needs an update; in the process, I noticed that
AS_DIRNAME is documented but not AS_BASENAME.

Also, do we want to remove this line about m4sh, that was picked up in the
context of my first hunk? "For the time being, it is not mature enough to
be widely used."

2006-03-22  Eric Blake  <[EMAIL PROTECTED]>

        * doc/autoconf.texi (Limitations of Usual Tools): Document
        basename.  Mention cygwin's treatment of //.
        (Programming in M4sh): Document AS_BASENAME.

- --
Life is short - so eat dessert first!

Eric Blake             [EMAIL PROTECTED]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEIVKI84KuGfSFAYARAhu9AKCa6ma61ZCxkYAgusC9cuYSxK3DOQCgooNK
bRZ0YP0CKYlcsX1SqQT4zjg=
=W9WU
-----END PGP SIGNATURE-----
Index: doc/autoconf.texi
===================================================================
RCS file: /sources/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.971
diff -u -p -U5 -r1.971 autoconf.texi
--- doc/autoconf.texi   21 Mar 2006 21:51:07 -0000      1.971
+++ doc/autoconf.texi   22 Mar 2006 13:32:02 -0000
@@ -9377,10 +9377,18 @@ A mess; trouble.  [Obs.] --Beau.@: & Fl.
 For the time being, it is not mature enough to be widely used.
 
 M4sh provides portable alternatives for some common shell constructs
 that unfortunately are not portable in practice.
 
[EMAIL PROTECTED] AS_BASENAME (@var{file-name})
[EMAIL PROTECTED]
+Return the filename portion of @var{file-name}, using the algorithm
+required by Posix.  @xref{Limitations of Usual Tools}, for more
+details about what this returns and why it is more portable than the
[EMAIL PROTECTED] command.
[EMAIL PROTECTED] defmac
+
 @defmac AS_BOURNE_COMPATIBLE
 @asindex{BOURNE_COMPATIBLE}
 Set up the shell to be more compatible with the Bourne shell as
 standardized by Posix, if possible.  This may involve setting
 environment variables, or setting options, or similar
@@ -12156,10 +12164,35 @@ Traditional Awk @code{split} supports on
 
 Traditional Awk has a limit of 99
 fields in a record.  You may be able to circumvent this problem by using
 @code{split}.
 
[EMAIL PROTECTED] @command{basename}
[EMAIL PROTECTED] --------------------
[EMAIL PROTECTED] @command{basename}
+Not all hosts have a working @command{basename}, and you should instead
+use @code{AS_BASENAME} (@pxref{Programming in M4sh}).  For example:
+
[EMAIL PROTECTED]
+file=`basename "$file"`       # This is not portable.
+file=`AS_BASENAME(["$file"])` # This is more portable.
[EMAIL PROTECTED] example
+
+Unfortunately, neither of the above commands work if @code{$file} ends
+in newline, since @[EMAIL PROTECTED] removes all trailing newlines.
+
[EMAIL PROTECTED]
+This handles a few subtleties in the standard way required by
+Posix.  For example, Posix permits implementations to treat leading
[EMAIL PROTECTED]//} with special semantics, but requires leading @samp{///} and
+beyond to be equivalent to @samp{/}.  While most flavors of Unix treat
[EMAIL PROTECTED]//} identically to @samp{/}, there are some which treat it as a
+``super-root'' where it can provide access to other machines' files.
+This tradition started with Apollo Domain/OS, and continues today with
+Cygwin.
+
+
 @item @command{cat}
 @c ----------------
 @prindex @command{cat}
 Don't rely on any option.
 
@@ -12329,27 +12362,11 @@ dir=`AS_DIRNAME(["$file"])` # This is mo
 Unfortunately, neither of the above commands work if @code{$file}'s
 directory name ends in newline, since @[EMAIL PROTECTED] removes all
 trailing newlines.
 
 @noindent
-This handles a few subtleties in the standard way required by
-Posix.  For example, under UN*X, should @samp{dirname //1} give
[EMAIL PROTECTED]/}?  Paul Eggert answers:
-
[EMAIL PROTECTED]
-No, under some older flavors of Unix, leading @samp{//} is a special
-file name: it refers to a ``super-root'' and is used to access other
-machines' files.  Leading @samp{///}, @samp{////}, etc.@: are equivalent
-to @samp{/}; but leading @samp{//} is special.  This tradition
-started with Apollo Domain/OS, though it has largely died out in practice.
-
-Posix allows but does not require the special treatment for
[EMAIL PROTECTED]//}.  It says that the behavior of @command{dirname} on file 
names of the
-form @samp{//([^/]+/*)?} is implementation defined.  In these cases,
[EMAIL PROTECTED] @command{dirname} returns @samp{/}, but those no-longer-used
-flavors of Unix returned @samp{//}.
[EMAIL PROTECTED] quotation
+Similar to AS_BASENAME, AS_DIRNAME correctly handles leading @samp{//}.
 
 
 @item @command{egrep}
 @c ------------------
 @prindex @command{egrep}

Reply via email to