On Mon, 2007 May 21 21:45:43 -0600, Eric Blake wrote: > > I'm debating if some other solution might also be helpful, such as a > builtin that adds an extra set of quotes only if it is called while > currently parsing the arguments to a macro. And it is also worth > considering the proposal for a qindir() builtin in the TODO file.
Automatic quoting... so that you could then safely use regular divert() in a potential quoted-or-not arg-collection context? I'd point out that the times you would really want to use regular divert() (so far as I'm aware) are when you're sending a huge amount of text to the diversion (so that it doesn't have to be all arg-collected), or you want the diversion switch to be persistent---and you normally wouldn't expect either of these inside mere macro arguments. (Re qindir(), I don't see how that would be useful here if we had it...) > But so far, it still seems like your solution of expanding the divert > builtin to take a second argument of text that will be output to the > specified diversion seems pretty slick. I'm not so sure about reverting > back to the current diversion, mainly because it seems weird for > divert(1,) to behave differently than divert(1), particularly in light of > POSIX rules that extra arguments should be ignored. Good point. In that case, I think it would be better to have a new/separate builtin... the "doesn't change the current diversion" bit was actually the second bird to my one stone. I'd *really* like to do away with the need to save the current divnum so that you can then switch back afterward. I think most use cases of the new builtin would not want the diversion switch to stick, and if they do, it's easier to just call regular divert() afterward than to implement the whole pushdef(`saveDiv', divnum) rigmarole. (As for what such a new builtin would be called, FWIW, I'm not at all proud of "sendtodiv"...) --Daniel -- NAME = Daniel Richard G. ## Remember, skunks _\|/_ meef? EMAIL1 = [EMAIL PROTECTED] ## don't smell bad--- (/o|o\) / EMAIL2 = [EMAIL PROTECTED] ## it's the people who < (^),> WWW = http://www.******.org/ ## annoy them that do! / \ -- (****** = site not yet online) _______________________________________________ M4-discuss mailing list M4-discuss@gnu.org http://lists.gnu.org/mailman/listinfo/m4-discuss