-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
In reviewing this thread for ways to speed up m4sugar:
http://lists.gnu.org/archive/html/libtool-patches/2005-10/msg00161.html
I discovered that Ralf's 'speedup' for lt_join isn't perfect:
lt_join([|],[one],,,)
=> one|lt_car(,,)
Here's the implementation that mirrors what I'm installing into m4sugar;
it has the added benefit of being faster as well. OK to apply?
2007-10-13 Eric Blake <[EMAIL PROTECTED]>
Fix bug in lt_join(|,one,,,).
* libltdl/m4/ltsugar.m4 (lt_join, _lt_join): Rewrite to match
autoconf 2.62's faster implementation.
- --
Don't work too hard, make some time for fun as well!
Eric Blake [EMAIL PROTECTED]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHEQED84KuGfSFAYARAp8OAKCGWj1MT1GoSmAsqi1wbaVhHx5WMgCfWM78
cVQk/Jw361G4Ca7INQp1UNY=
=MR90
-----END PGP SIGNATURE-----
Index: libltdl/m4/ltsugar.m4
===================================================================
RCS file: /sources/libtool/libtool/libltdl/m4/ltsugar.m4,v
retrieving revision 1.6
diff -u -p -r1.6 ltsugar.m4
--- libltdl/m4/ltsugar.m4 12 Oct 2007 20:54:44 -0000 1.6
+++ libltdl/m4/ltsugar.m4 13 Oct 2007 17:13:04 -0000
@@ -7,7 +7,7 @@
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
-# serial 4 ltsugar.m4
+# serial 5 ltsugar.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
@@ -17,19 +17,15 @@ AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1]
# -----------------------------
# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
m4_define([lt_join],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [],
- [2], [[$2]],
- [m4_ifval([$2],
- [[$2][]m4_foreach(_lt_Arg, lt_car([m4_shiftn(2, $@)]),
- [_$0([$1], _lt_Arg)])],
- [$0([$1], m4_shiftn(2, $@))])])[]dnl
-])
+[m4_if([$#], [1], [],
+ [$#], [2], [[$2]],
+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
m4_define([_lt_join],
-[m4_ifval([$2],[$1][$2])[]dnl
-])
+[m4_if([$#$2], [2], [],
+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
# lt_car(LIST)