good find. after reading posix 2008 on this it isn't clear to me what is specified, but GNU m4 is clear in the documentation that _they_ apply it non-recursively.
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/m4.html http://www.gnu.org/software/m4/manual/html_node/Translit.html so imo we definitely want this for -g mode and need to consider carefully whether to do it always (in which case the comment above the start of map(), which explains why this is done, would also need adjusting). the following from MirOS may also be of interest: http://junkpile.org/14.patch "fix trace lineno output for 'macro\n'" http://junkpile.org/15.patch "let 'errprint' in 'm4 -g' mode behave like GNU" http://junkpile.org/16.patch "fix another line number problem" i'll try and have a play with this and hopefully Marc will have some time to look at it soon.