groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] Rate this hack on a scale of 0 to stupid


From: John Gardner
Subject: [groff] Rate this hack on a scale of 0 to stupid
Date: Mon, 7 Jan 2019 20:08:51 +1100

First, the situation:

   1. I want/need a way to programmatically (and *reliably*) locate the
   directories containing a Groff installation's .tmac files. This is
   happening in JavaScript, without the user's intervention.
   2. I don't want to make assumptions about standard tmac locations like
   /usr/share/groff/tmac, et al.
   3. The containing directories are scooped up by Roff.js and scanned for
   `.tmac` files, which is a preparatory step to determine what macros are
   available and which aren't.

Second, the idiotic hack I wrote:

$ cat trace-paths.tmac

'de P
'nf
'tm \\n(.F
'it 1 P
'nx
..
'it 1 P
'cc !


Third, the aforementioned hack somehow working:

$ GROFF_TMAC_PATH=`pwd` groff -Tutf8 -z -mtrace-paths -man `man -w man`

/usr/share/groff/1.19.2/tmac/an.tmac
/usr/share/groff/1.19.2/tmac/troffrc-end
/usr/share/man/man1/man.1


Now, tell me. How could this trick go wrong...? Bear in mind that:

   - This is a last resort because I couldn't find any obvious/easy way to
   locate a site's default tmac directories without making assumptions about
   standard paths,
   - I'd like this to work on Windows
   <http://gnuwin32.sourceforge.net/packages/groff.htm> (*without* Cygwin),
   - It's assumed that a site's `man` installation will always have its own
   manpage (hence the `man -w man` usage),
   - It's also similarly assumed that every Groff installation will have
   `an.tmac` available. Hence why it's being used to pinpoint the containing
   directory.

That's all. You're all welcome to laugh now. =)

— John


reply via email to

[Prev in Thread] Current Thread [Next in Thread]