Hi Ingo, Thanks for taking the time to check! Ugh, I wasn't aware Solaris was using DocBook/XML... yuck.
*> That said, no need for the man -w actually:* Yes, I realised that only after I sent the original e-mail, haha. Even passing a dummy man-page would have been smarter than shelling out to man(1). *> But this gives you only one directory whereever an.tmac or tmac.an <http://tmac.an> is located.* Yes, I only need the top-most directory containing the tmac files. Its contents will be recursively scanned, following symlinks (carefully) when necessary. It's still hit-and-miss, but it should cover the most important macros (the core packages, and the ones shipped with Groff which contain PDF-specific features, used by the <canvas> renderer). *> In that case, why not probe for the macros directly?* Well, that would work only for the obvious/known packages (an.tmac, doc.tmac, etc). But it won't do any good for .tmac files that aren't known ahead of time to be installed. This could be an issue with future releases of Groff, or installations with tampered .tmac lists (such as if a naïve user added custom tmac files in the default directory, instead of a userland directory). *> Plural for good reasons. There is no guarantee all tmac files are in the same directory.* Yup. That's definitely something I'm preparing for. ;-) On Mon, 7 Jan 2019 at 20:58, Ingo Schwarze <[email protected]> wrote: > Hi John, > > John Gardner wrote on Mon, Jan 07, 2019 at 08:08:51PM +1100: > > > $ GROFF_TMAC_PATH=`pwd` groff -Tutf8 -z -mtrace-paths -man `man -w man` > > Now, tell me. How could this trick go wrong...? > > > uname -a > SunOS unstable11s 5.11 11.3 sun4u sparc SUNW,SPARC-Enterprise > > man -w man > usage: man [-] [-adFlprt] [-M path] [-T macro-package ] > [ -s section ] name ... > man [-M path] [-s section] -k keyword ... > man [-M path] -f file ... > man [-M path] [-s section] -K keyword ... > > GROFF_TMAC_PATH=`pwd` groff -Tutf8 -z -mtrace-paths -man > /usr/share/man/man1/man.1 > /usr/share/groff/1.22.2/tmac/an.tmac > /usr/share/groff/1.22.2/tmac/troffrc-end > /usr/share/man/man1/man.1 > > > uname -a > SunOS unstable9s 5.9 Generic_Virtual sun4u sparc > SUNW,SPARC-Enterprise-T5220 > > man -w man > usage: man [-] [-adFlrt] [-M path] [-T macro-package ] > [ -s section ] name ... > man [-M path] -k keyword ... > man [-M path] -f file ... > > GROFF_TMAC_PATH=`pwd` groff -Tutf8 -z -mtrace-paths -man > /usr/man/man1/cc.1 > /opt/csw/lib/groff/site-tmac/an.tmac > /opt/csw/share/groff/1.21/tmac/troffrc-end > /usr/man/man1/cc.1 > > find /usr -name man.1 > /usr/share/man/sman1/man.1 > > head -n 2 /usr/man/sman1/man.1 > <!DOCTYPE REFENTRY PUBLIC "-//Sun Microsystems//DTD > DocBook V3.0-Based SolBook Subset V2.0//EN" [ > <!--ArborText, Inc., 1988-1999, v.4002--> > > Yes, that Solaris system provides the man(1) manual as a DocBook > document only, and it appears man(1) somehow formats that. > > But your hack works, except that man(1) has no -w option. > > Yours, > Ingo >
