Je corrige un bout de m4 en découvrant certaines fonctionnalités de
l'outil que je n'avais jamais utilisées (les fonctionnalités, pas
l'outil, ne me faites pas dire ce que je ne voudrais pas qu'on
entende ;-) )
En particulier, j'ai un truc bizarre mais qui doit s'expliquer avec
substr() :
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre.
Paul Gaborit
À (at) Mon, 19 Mar 2012 16:58:49 +0000 (UTC), JKB écrivait (wrote):
Je corrige un bout de m4 en découvrant certaines fonctionnalités de l'outil que je n'avais jamais utilisées (les fonctionnalités, pas l'outil, ne me faites pas dire ce que je ne voudrais pas qu'on entende ;-) )
En particulier, j'ai un truc bizarre mais qui doit s'expliquer avec substr() :
Si la macro API est appelée comme ceci : API(AZ), je ne vois pas pourquoi le résultat est :
08 cf AZ $ 00
En d'autres termes, pourquoi le $1 dans substr n'est pas expansé. Google n'a pas été mon ami sur ce coup-là. Une idée ?
C'est parce que m4 expande tout... même les arguments de define. Il faut donc tout quoter :
define(`API', `08 cf $1 substr($1, `0', `1') 00')dnl API(AZ) # -> 08 cf AZ A 00
Ou en plus simple :
define(`API', `08 cf $1 substr($1, 0, 1) 00')dnl API(AZ) # -> 08 cf AZ A 00
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
À (at) Mon, 19 Mar 2012 16:58:49 +0000 (UTC),
JKB <jkb@koenigsberg.invalid> écrivait (wrote):
Je corrige un bout de m4 en découvrant certaines fonctionnalités de
l'outil que je n'avais jamais utilisées (les fonctionnalités, pas
l'outil, ne me faites pas dire ce que je ne voudrais pas qu'on
entende ;-) )
En particulier, j'ai un truc bizarre mais qui doit s'expliquer avec
substr() :
À (at) Mon, 19 Mar 2012 16:58:49 +0000 (UTC), JKB écrivait (wrote):
Je corrige un bout de m4 en découvrant certaines fonctionnalités de l'outil que je n'avais jamais utilisées (les fonctionnalités, pas l'outil, ne me faites pas dire ce que je ne voudrais pas qu'on entende ;-) )
En particulier, j'ai un truc bizarre mais qui doit s'expliquer avec substr() :
Si la macro API est appelée comme ceci : API(AZ), je ne vois pas pourquoi le résultat est :
08 cf AZ $ 00
En d'autres termes, pourquoi le $1 dans substr n'est pas expansé. Google n'a pas été mon ami sur ce coup-là. Une idée ?
C'est parce que m4 expande tout... même les arguments de define. Il faut donc tout quoter :
define(`API', `08 cf $1 substr($1, `0', `1') 00')dnl API(AZ) # -> 08 cf AZ A 00
Ou en plus simple :
define(`API', `08 cf $1 substr($1, 0, 1) 00')dnl API(AZ) # -> 08 cf AZ A 00
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
JKB
Le Tue, 20 Mar 2012 07:55:22 +0100, Paul Gaborit écrivait :
À (at) Mon, 19 Mar 2012 16:58:49 +0000 (UTC), JKB écrivait (wrote):
Je corrige un bout de m4 en découvrant certaines fonctionnalités de l'outil que je n'avais jamais utilisées (les fonctionnalités, pas l'outil, ne me faites pas dire ce que je ne voudrais pas qu'on entende ;-) )
En particulier, j'ai un truc bizarre mais qui doit s'expliquer avec substr() :
Si la macro API est appelée comme ceci : API(AZ), je ne vois pas pourquoi le résultat est :
08 cf AZ $ 00
En d'autres termes, pourquoi le $1 dans substr n'est pas expansé. Google n'a pas été mon ami sur ce coup-là. Une idée ?
C'est parce que m4 expande tout... même les arguments de define. Il faut donc tout quoter :
define(`API', `08 cf $1 substr($1, `0', `1') 00')dnl API(AZ) # -> 08 cf AZ A 00
Ou en plus simple :
define(`API', `08 cf $1 substr($1, 0, 1) 00')dnl API(AZ) # -> 08 cf AZ A 00
Merci du tuyau, je viens d'apprendre quelque chose ;-)
Cordialement,
JKB
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr
Le Tue, 20 Mar 2012 07:55:22 +0100,
Paul Gaborit <Paul.Gaborit@invalid.invalid> écrivait :
À (at) Mon, 19 Mar 2012 16:58:49 +0000 (UTC),
JKB <jkb@koenigsberg.invalid> écrivait (wrote):
Je corrige un bout de m4 en découvrant certaines fonctionnalités de
l'outil que je n'avais jamais utilisées (les fonctionnalités, pas
l'outil, ne me faites pas dire ce que je ne voudrais pas qu'on
entende ;-) )
En particulier, j'ai un truc bizarre mais qui doit s'expliquer avec
substr() :
Le Tue, 20 Mar 2012 07:55:22 +0100, Paul Gaborit écrivait :
À (at) Mon, 19 Mar 2012 16:58:49 +0000 (UTC), JKB écrivait (wrote):
Je corrige un bout de m4 en découvrant certaines fonctionnalités de l'outil que je n'avais jamais utilisées (les fonctionnalités, pas l'outil, ne me faites pas dire ce que je ne voudrais pas qu'on entende ;-) )
En particulier, j'ai un truc bizarre mais qui doit s'expliquer avec substr() :