4 ms·
The pattern I’ve fallen into with m4 is to have a preamble that sets up whatever definitions I’m going to need, redefine the quotes “backwards”, and then place
by kd5bjo 7y ago
The pattern I’ve fallen into with m4 is to have a preamble that sets up whatever definitions I’m going to need, redefine the quotes “backwards”, and then place a copy of the new close quote on its own line to start the main body of the file. It then acts very similarly to how you describe templating languages, where you mark the parts that should be parsed instead of the parts that shouldn’t.
- throwaway_pdp09 7y agoI'm intrigued, could you give a small example please?
- kd5bjo 7y agoNot right now, unfortunately; my computer is at the office and I don’t use m4 enough to give an example from memory. I’ll try to remember next time I go in.
- jolmg 7y agoI imagine it's something like this? $ m4 << EOF changequote(],[)dnl define(foo,bar)dnl ]Lorem ipsum foo [foo] Lorem ipsum[ EOF Lorem ipsum foo bar Lorem ipsum
- kd5bjo 7y agoThat looks about right; I’m usually outputting formats that don’t care about blank lines and so skip the “dnl”s and put the start and end quotes on their own lines for readability.
- throwaway_pdp09 7y agoHeh. Never seen that before. I'll have to have a play. Thanks both.
- cryptonector 7y agoOh. Oh, that's just brilliant. (The example in the other subthread makes it clear.)