Hi Clem, At 2024-10-05T09:14:27-0400, Clem Cole wrote: > Branden. Thank you. FWIW I have generally found heirloom to be > good enough for rendering most old troff on modern systems such that I > can reasonably read the text.
I generally get good results with it as well. I frequently compare the behaviors of DWB 3.3 troff and Heirloom troff with 2-3 versions of GNU troff (1.22.4 [2018], 1.23.0 [2023], and bleeding-edge development). Setting aside the issue of extensions (whether to the *roff language, to preprocessors, or to macro packages), I find that Heirloom fixes many DWB bugs. I think GNU troff can boast of slightly better terminal support, although nroff veterans are sometimes scandalized by GNU troff's terminal output driver (grotty(1)) assuming that it's _not_ talking to a Teletype Model 37, but rather a more-or-less ECMA-48 video terminal. To brutally abbreviate the history, for $reasons Unix nroff got frozen in amber in 1978 with respect to terminal support, and continues to live in a world where the termcap and terminfo libraries were never written. Unfortunately, the maintainer of the less(1) pager still presumes (prefers?) that world. A previous groff maintainer observed that few of our users operate paper terminals. (Nevertheless grotty retains support for them with its `-c` option.) Anton Shepelev wrote a summary I find admirably concise and blunt: "`grotty' is not an appendix to a pager, but a program for printing direct to the terminal. Most terminals support those basic ANSI control sequences, and many console programs freely use them. If a pager cannot transparently forward them to the terminal, it is a problem of the pager, not of `grotty', and having a broken -man configuration by default to just to appease `less' is stupid." > That said I often use the groff tools kits since it’s what comes with > things like brew on my Mac but it burps on certain macros, > particularly when I want to render old man pages or doc files from old > Unix versions with things like .UX macro (which is a PITA). Yes. Our ms(7) manual ("ms.ms"), originally by Larry Kollar, concedes its limitations. --- snip --- 7.1. Unix Version 7 ms macros not implemented by groff ms Several macros described in the Unix Version 7 ms documentation are unimplemented by groff ms because they are specific to the requirements of documents produced internally by Bell Laboratories, some of which also require a glyph for the Bell System logo that groff does not sup‐ port. These macros implemented several document type formats (EG, IM, MF, MR, TM, TR), were meaningful only in conjunction with the use of certain document types (AT, CS, CT, OK, SG), stored the postal addresses of Bell Labs sites (HO, IH, MH, PY, WH), or lacked a stable definition over time (UX). To compatibly render historical ms documents using these macros, we advise your documents to invoke the rm request to re‐ move any such macros it uses and then define replacements with an au‐ thentically typeset original at hand.[10] For informal purposes, a sim‐ ple definition of UX should maintain the readability of the document’s substance. ┌───────────────┐ │ .rm UX │ │ .ds UX Unix\" │ └───────────────┘ ─────────── [10] The removal beforehand is necessary because groff ms aliases these macros to a diagnostic macro, and you want to redefine the aliased name, not its target. --- end snip --- The point of the `UX` macro was to abstract away the problem of sticking a footnote at the bottom of the page to acknowledge (or in the Labs' case, announce) the holder of the Unix trade mark on its first occurrence. I suspect the CSRC did not anticipate that the trade mark would ever change hands, let alone how many times... Regards, Branden
signature.asc
Description: PGP signature