[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: document AS_BASENAME
From: |
Eric Blake |
Subject: |
Re: document AS_BASENAME |
Date: |
Fri, 31 Mar 2006 07:56:44 -0700 |
User-agent: |
Thunderbird 1.5 (Windows/20051201) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to Ralf Wildenhues on 3/30/2006 11:54 PM:
>
> FWIW, I wonder whether using expr at all for general names is a good
> idea, as the documented bug on Tru64 that turns everything into a number
> that looks like one (after other operations):
> $ expr 'X000123.c' : 'X\(.*\)\.c'
> 123
AS_BASENAME attempts the platform's basename before falling back to expr;
it only filters out missing basename or instances of basename that
mishandle /. If Tru64 has a working basename, then the expr bug will not
hit us when doing AS_BASENAME[(foo/01)]; but that does not prevent the
above suffix stripping bug unless we improve AS_BASENAME to take an
optional suffix argument. Do we have anyone that can verify whether Tru64
will always have a working basename? Should we beef up _AS_EXPR_PREPARE
to also refuse to use expr if it mishandles numeric string pattern matches?
Also, I noticed that where basename is missing, AS_BASENAME mishandles ///
(it was outputting . instead of /), patched thusly:
2006-03-31 Eric Blake <address@hidden>
* lib/m4sugar/m4sh.m4 (AS_BASENAME_EXPR): Correctly handle ///.
- --
Life is short - so eat dessert first!
Eric Blake address@hidden
-----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
iD8DBQFELUMs84KuGfSFAYARAtS3AJ9Hf1TfOamkIHRDtCceM7rdHYnnyQCgn0r8
QC8kwyUNL7cBmDZitKrDln8=
=zguC
-----END PGP SIGNATURE-----
Index: lib/m4sugar/m4sh.m4
===================================================================
RCS file: /sources/autoconf/autoconf/lib/m4sugar/m4sh.m4,v
retrieving revision 1.165
diff -u -p -r1.165 m4sh.m4
--- lib/m4sugar/m4sh.m4 27 Mar 2006 17:42:18 -0000 1.165
+++ lib/m4sugar/m4sh.m4 31 Mar 2006 14:54:30 -0000
@@ -706,8 +706,7 @@ m4_defun([AS_BASENAME_EXPR],
[AS_REQUIRE([_AS_EXPR_PREPARE])dnl
$as_expr X/[]$1 : '.*/\([[^/][^/]*]\)/*$' \| \
X[]$1 : 'X\(//\)$' \| \
- X[]$1 : 'X\(/\)$' \| \
- . : '\(.\)'])
+ X[]$1 : 'X\(/\)' \| .])
m4_defun([AS_BASENAME_SED],
[echo X/[]$1 |