m4-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Macro defining macros...


From: Carlo Contavalli
Subject: Re: Macro defining macros...
Date: Mon, 7 Feb 2005 12:01:25 +0100

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

On Fri, Feb 04, 2005 at 02:03:43PM +0000, Gary V. Vaughan wrote:
> macro1
>   => define(`macro2', `macro1 -- -- ')
>   =>
> macro2(foo, bar)
>   => macro1 -- --
>   => define(`macro2', `macro1 -- -- ') -- --
>   =>  -- --
> 
> You can defer the expansion by obfuscating the parameters:
> 
> define(`macro1', `define(`macro2', `$'`0 -- $'`1 -- $'`2')')
> macro1
>   => define(`macro2', `$0 -- $1 -- $2')
>   =>
> macro2(foo, bar)
>   => macro2 -- foo -- bar
>   => macro2 -- -- -- foo -- bar
>   => macro2 -- -- -- -- -- foo -- bar
>   => ...
> 
> You can fix the infinite loop with a pushdef, or changequote.
ok thx :) by now, I figured it out by myself. Well, at least
I now know it is the right way to go :) I thought it was some
kind of hack.

Cheers, 
Carlo

- -- 
  GPG Fingerprint: 2383 7B14 4D08 53A4 2C1A CA29 9E98 5431 1A68 6975
                        -------------
If computers take over (which seems to be their natural tendency), it will
serve us right.
                -- Alistair Cooke
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iQIVAwUBQgdKhdXv/DFQ7PuYAQLw/hAA0FumrVGNmAYrrI+PtTUHNCZNaYdBwLle
gnfoagDtpXxDclPKg2eqLMgH89bCHzdv5nKmbetjSFzNCc6V/3Xk0gRVrE/8LAH4
trJRgl0aBWzaAyt2Uju5tdL2PUiDGCzY69BUY45Qc5W5HYEqKsQIfpS/nBmXLYk9
bcSt76ruN+rqLr9wVDCZopVCEv+nDg2ToYAIzj7ltpIzWyg1vSIPc2Fg9rEzTXc3
+4EFoQ8lSp2pYNShqvuNc/vS1sWYkCacO2lKe0Yj+sPTdlURDlOiBN0ZtwfUo246
6KA3qZFIMDmgBVlpKAC1ry+z7njungqybW4WbfCcZHezD14BTUxKlmQidCz/qN6N
3WfwB8kqznCNII20aSZceNhoCRx3AMgapXORs4jOFuiBcUnMvNlwJPTo79ZybqlM
LIbNGIjZi9KKLmKEj05JzQeJ5n7CmYCW5hqIPGKpDcw+i0YNPFKyrdZ4TQ1gIcwG
zgIbOoWMYBoAz09egSb0w90NFaK8Vvdq04Orric8dEQsbxt+T0eKshe7d93Y333p
Js1stJ3pW7DQn3nrEpa3ANY6ALivBVGO8edlrwO363oEIWWsCnByuCmGNi3GcytN
wOKBGrXna/FAd6B0J2MJqfU0hzkS9mmJrnr8WKsk5VI5vPez+tEU7R9vdV1RlNqB
PMeZD1Ilgz0=
=TaCm
-----END PGP SIGNATURE-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]