diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2022-07-21 12:49:50 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2022-07-21 12:50:16 -0700 |
commit | e50a50c4dc5cf58b772413c719c5a0eb673dc251 (patch) | |
tree | 344619926ba5c9947c0308a0810a70e2d9f0e710 | |
parent | f07de9b1db14223aae5dee5d348de3f938423b60 (diff) | |
download | autoconf-e50a50c4dc5cf58b772413c719c5a0eb673dc251.tar.gz |
basename and dirname are portable now
* doc/autoconf.texi (Limitations of Usual Tools):
basename and dirname are portable shell commands now.
-rw-r--r-- | doc/autoconf.texi | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/doc/autoconf.texi b/doc/autoconf.texi index fdc662e1..fa5a9f48 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -14065,6 +14065,9 @@ Output the directory portion of @var{file-name}. For example, if @code{$file} is @samp{/one/two/three}, the command @code{dir=`AS_DIRNAME(["$file"])`} sets @code{dir} to @samp{/one/two}. +@code{AS_DIRNAME} was designed long ago when +the @command{dirname} command was not universally supported. +Nowadays one can safely use @code{dir=`dirname -- "$file"`} instead. This interface may be improved in the future to avoid forks and losing trailing newlines. @end defmac @@ -19139,8 +19142,13 @@ of at most 3070 bytes. @item @command{basename} @c --------------------- @prindex @command{basename} -Not all hosts have a working @command{basename}. -You can use @command{expr} instead. +Long ago some hosts lacked a working @command{basename}, +and portable scripts needed to use @command{expr} instead. +Nowadays it is safe to use @command{basename}. For example: + +@example +base=`basename -- "$file"` +@end example @c AS_BASENAME is to be replaced by a better API. @ignore @@ -19331,12 +19339,13 @@ Some implementations, such as Tru64's, fail when comparing to @item @command{dirname} @c -------------------- @prindex @command{dirname} -Not all hosts have a working @command{dirname}, and you should instead -use @code{AS_DIRNAME} (@pxref{Programming in M4sh}). For example: +Long ago some hosts lacked a working @command{dirname} and portable +scripts needed to use use @code{AS_DIRNAME} (@pxref{Programming in M4sh}). +Nowadays @command{dirname} suffices and the following are equivalent: @example -dir=`dirname "$file"` # This is not portable. -dir=`AS_DIRNAME(["$file"])` # This is more portable. +dir=`dirname -- "$file"` +dir=`AS_DIRNAME(["$file"])` @end example |