Path: utzoo!utgpu!watserv1!watmath!att!att!dptg!ulysses!andante!mit-eddie!mintaka!think.com!samsung!uakari.primate.wisc.edu!sdd.hp.com!wuarchive!ukma!usenet.ins.cwru.edu!cwns1!chet From: chet@cwns1.INS.CWRU.Edu (Chet Ramey) Newsgroups: comp.unix.questions Subject: Re: nroff/troff question... Message-ID: <1990Oct18.200452.23663@usenet.ins.cwru.edu> Date: 18 Oct 90 20:04:52 GMT References: <3164@unisoft.UUCP> <14147@smoke.BRL.MIL> Sender: news@usenet.ins.cwru.edu Reply-To: chet@po.CWRU.Edu Organization: Case Western Reserve Univ. Cleveland, Ohio, (USA) Lines: 127 Nntp-Posting-Host: cwns1.ins.cwru.edu In article <14147@smoke.BRL.MIL> gwyn@smoke.BRL.MIL (Doug Gwyn) writes: >However, assuming one of the standard ones is involved, you might >be able to tell by seeing what macros it appears to be using. The >following "doctype" script demonstrates this, as well as finding >other useful information of the same general nature. This is a nice script. Here's a version that works with groff and recognizes -me. I took out some of the stuff in Doug's version that we don't have and groff doesn't provide. Chet #!/bin/bash # gdoctype -- synthesize proper command line for groff # adapted from Kernighan & Pike # # Chet Ramey chet@ins.CWRU.Edu # Originally from: D A Gwyn # # changed to work with groff 10/16/90 # support for recognizing -me and gremlin 10/17/90 # # Caveats: # o we test for gremlin, but since I don't have it, this doesn't # do anything # o this always runs groff -v # PATH=/usr/ucb:/bin:/usr/bin:/usr/local/bin/gnu:/usr/local/bin MACDIR=/usr/lib/tmac eopt= macs= opts= topt= for i do case "$i" in -e) eopt="$i"; shift;; -m*) macs="$macs $i"; shift;; -T*) topt="$i"; shift;; --) shift; break;; -) break;; -*) opts="$opts $i"; shift;; *) break;; esac done if [ $# -gt 0 ] then s="cat $* | " else s= fi t=`cat $* | egrep '^\.(EQ|TS|\[|P|LP|G1|IS|SH|pp|GS)' | sort -u | awk ' /^\.SH *(NAME|SYNOPSIS|DESCRIPTION)/ { man++ } /^\.P$/ { mm++ } /^\.[LP]P/ { ms++ } /^\.pp/ { me++ } /^\.EQ/ { eqn++ } /^\.TS/ { tbl++ } /^\.P[FS]/ { pic++ } /^\.G1/ { grap++ } /^\.IS/ { ideal++ } /^\.\[/ { refer++ } /^\.GS/ { gremlin++ } END { if (refer > 0) printf "refer | " if (grap > 0) printf "grap | " if (ideal > 0) printf "ideal | " printf "groff -v " if (pic > 0) printf "-p " if (tbl > 0) printf "-t " if (eqn > 0) printf "-e " if (man > 0) printf " -man" if (mm > 0 && man == 0) printf " -mm" if (ms > 0 && mm == 0 && man == 0) printf " -ms" if (me > 0 && ms == 0 && mm == 0 && man == 0) printf " -me" printf "\n" } '` # # Add any -Tdev options # if [ -n "$topt" ] ; then t="$t $topt" fi # # Add any miscellaneous options for groff # if [ -n "$opts" ] ; then t="$t $opts" fi # # Add any additional macro packages # if [ -n "$macs" ] ; then t="$t $macs" fi # # Add use of standard input # t="$t -" if [ -n "$eopt" ] ; then eval "$s$t" else echo $s$t fi exit 0 -- Chet Ramey ``As I recall, Doug was keen on boxing. But Network Services Group when he learned to walk, he took up puttin' Case Western Reserve University the boot in the groin.'' chet@ins.CWRU.Edu