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>

Reply via email to