Hi Eric!
Eric Blake wrote:
Lots of little semantic bugs in our handling of numeric arguments.
> [[fixing of many fine bugs detailed]]
I continue to be both appalled and amazed at how many little bugs have
gone unnoticed in M4 for more than a decade!
There is also another POSIX incompatibility that I did not fix, but just
documented for now. POSIX requires, and Solaris agreed, that
translit(abcd,a-d,e-h) should result in ebch, not efgh. In other words,
the range operator of GNU m4 is an incompatible extension.
I can't find any code that uses the GNU range extension to translit in
the wild (I didn't look terribly hard mind you). If you would prefer, I
don't see a problem with following POSIX semantics with POSIXLY_CORRECT
set.
However, you
can also achieve range transliteration with patsubst. Maybe what we
should do on the 1.4.x branch is mark the range operation of translit as
deprecated, issuing a warning and stating that in a future release it will
have POSIX semantics, but producing the same expansion; then fix translit
to obey POSIX on CVS head. But I'd like some feedback before I attempt that.
On head we can support both. We can have a translit builtin in the gnu
module which continues to behave as 1.4.x translit (possibly including
paying attention to POSIXLY_CORRECT). We can also write a new posix
module that has a posix compliant implementation of translit (among
others) regardless of the POSIXLY_CORRECT setting. The user can then
choose among the available options according to the most recently loaded
module :-)
If we do that, no warning is necessary, as the default build of m4-2.0
will continue to work in the same way that m4-1.4.x has been behaving.
Cheers,
Gary.
--
Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org}
Research Scientist ( '/ http://blog.azazil.net
GNU Hacker / )= http://trac.azazil.net/projects/libtool
Technical Author `(_~)_ http://sources.redhat.com/autobook
_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches