* src/roff/grog/Makefile.sub, src/roff/grog/grog.sh: Add `@g@'.
[s-roff.git] / src / roff / grog / grog.sh
blobd8724889ffe7816fc4e8bb27c1439231c8ced88e
1 #!/bin/sh
2 # grog -- guess options for groff command
3 # Like doctype in Kernighan & Pike, Unix Programming Environment, pp 306-8.
5 soelim=@g@soelim
7 opts=
9 for arg
11 case "$arg" in
12 --)
13 shift; break;;
15 break;;
16 -*)
17 opts="$opts $arg"; shift;;
19 break;;
20 esac
21 done
23 egrep -h '^\.(P|[LI]P|[pnil]p|sh|Dd|Tp|Dp|De|Cx|Cl|Oo|Oc|TS|EQ|TH|SH|so|\[|R1|GS|G1|PH|SA)' $* \
24 | sed -e '/^\.so/s/^.*$/.SO_START\
26 .SO_END/' \
27 | $soelim \
28 | egrep '^\.(P|[LI]P|[pnil]p|sh|Dd|Tp|Dp|De|Cx|Cl|Oo|Oc|TS|EQ|TH|SH|\[|R1|GS|G1|PH|SA|SO_START|SO_END)' \
29 | awk '
30 /^\.SO_START$/ { so = 1 }
31 /^\.SO_END$/ { so = 0 }
32 /^\.TS/ { tbl++; if (so > 0) soelim++ }
33 /^\.PS([ 0-9.<].*)?$/ { pic++; if (so > 0) soelim++ }
34 /^\.EQ/ { eqn++; if (so > 0) soelim++ }
35 /^\.(R1|\[)/ { refer++; if (so > 0) soelim++ }
36 /^\.GS/ { grn++; if (so > 0) soelim++ }
37 /^\.G1/ { grap++; pic++; if (so > 0) soelim++ }
38 /^\.TH/ { TH++ }
39 /^\.[PLI]P/ { PP++ }
40 /^\.P$/ { P++ }
41 /^\.SH/ { SH++ }
42 /^\.(PH|SA)/ { mm++ }
43 /^\.([pnil]p|sh)/ { me++ }
44 /^\.Dd/ { mdoc++ }
45 /^\.(Tp|Dp|De|Cx|Cl)/ { mdoc_old++ }
46 /^\.Oo/ { Oo++ }
47 /^\.Oc/ { Oo-- }
49 END {
50 if (files ~ /^-/)
51 files = "-- " files
52 printf "groff"
53 if (pic > 0 || tbl > 0 || grn > 0 || grap > 0 || eqn > 0 || refer > 0) {
54 printf " -"
55 if (soelim > 0) printf "s"
56 if (refer > 0) printf "R"
57 if (grn > 0) printf "g"
58 if (grap > 0) printf "G"
59 if (pic > 0) printf "p"
60 if (tbl > 0) printf "t"
61 if (eqn > 0) printf "e"
63 if (me > 0)
64 printf " -me"
65 else if (SH > 0 && TH > 0)
66 printf " -man"
67 else if (PP > 0)
68 printf " -ms"
69 else if (P > 0 || mm > 0)
70 printf " -mm"
71 else if (mdoc > 0) {
72 if (mdoc_old > 0 || Oo > 0)
73 printf " -mdoc.old"
74 else
75 printf " -mdoc"
77 if (opts != "")
78 printf "%s", opts
79 if (files != "")
80 printf " %s", files
81 print ""
82 }' "opts=$opts" "files=$*" -