> You could instead patch "bl" to do this itself [...]

I just noticed that we have to restrict embedding of macros to
non-top-level diversions only, because whatever is embedded at
the top level is passed on to the postprocessor, which in this
case (understandably) complains that it doesn't understand what
it is getting.  So here's a better solution:

  .de bl
  .br
  .@s \\$1
  .sp \\$1
  ..
  .de @s
  .ne \\$1
  .rs
  .if !'\\n(.z'' \!.@s \\$1
  ..

The idea of this is that the space-testing macro "@s"
recursively embeds itself in diversion after diversion,
until the diversion is finally output to the page (the
top-level diversion).



Reply via email to