Ralph Corderoy <ra...@inputplus.co.uk>: > > I had a simpler design in mind. My premise is that once hygienic mode > > has been set we in general don't want or need to unset it, and that's > > going to be the very last thing a macro package does. > > What about the case of one main macro package and several helper ones > that do a small thing well but aren't specific to ms, mm, mom, etc? Is > the invoker to know which padlocks the minibar and that it must be > specified last?
Most cases would be easily handled with this sequence: .hygienic hygiene .hygiene This would leave groff in a state where a repetition of the sequence is guaranteed legal. But this will come up less often than you think. The semantics I had in mind allows unhygienic requests and macros to still be used inside macro definitions. So you can go ahead and call a bunch of library macros even after the minibar is closed. Actually, now that I think about it, the right semantics for ".hygiene" is probably "hide everything *currently defined* that hasn't been declared visible". That way you can define macros after a .hygiene call and they'll be visible unless you do another .hygiene call. I'm still thinking this through. -- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a>