> Meanwhile, is this something that would break AT&T troff if
> groff were to do it right?

The question is, what is "right"?  I believe you're looking for
a mapping of integers to booleans, and a "not" operator for
booleans.  [ntg]roff already has both (in a way):

  * positive numbers are "true", nonpositive numbers are "false"
    (in contrast to several other languages which use "zero" and
    "nonzero").

  * if "n" is a number (integer) interpreted as a boolean, then
    "not n" is given by "(1-n)".

Thus:

  .nr NC 0
  .nr SI 0
  .if \n(NC&(1-\n(SI)     NC only.
  .if (1-\n(NC)&\n(SI     SI only.
  .if \n(NC&\n(SI         NC and SI.
  .if (1-\n(NC)&(1-\n(SI) neither.

(tested with OSF1 nroff, which only has 1- and 2-character names).



Reply via email to