Blame


1 aa83d772 2004-05-17 devnull awk ' # format
2 aa83d772 2004-05-17 devnull # Input: sort key (tab) string (tab) numlist
3 aa83d772 2004-05-17 devnull # Output: troff format, commands interpreted
4 aa83d772 2004-05-17 devnull
5 aa83d772 2004-05-17 devnull BEGIN { FS = "\t"
6 aa83d772 2004-05-17 devnull s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz "
7 aa83d772 2004-05-17 devnull # set upper["a"] = "A"
8 aa83d772 2004-05-17 devnull for (i = 1; i <= 27; i++) upper[substr(s,i+27,1)] = substr(s,i,1)
9 aa83d772 2004-05-17 devnull # set lower["a"] = lower["A"] ="a"
10 aa83d772 2004-05-17 devnull for (i = 1; i <= 27; i++) {
11 aa83d772 2004-05-17 devnull lower[substr(s,i,1)] = substr(s,i+27,1)
12 aa83d772 2004-05-17 devnull lower[substr(s,i+27,1)] = substr(s,i+27,1)
13 aa83d772 2004-05-17 devnull }
14 aa83d772 2004-05-17 devnull }
15 aa83d772 2004-05-17 devnull { # mark change between letters with .YY
16 aa83d772 2004-05-17 devnull # find first non-punctuation char
17 aa83d772 2004-05-17 devnull for (i = 1; (c = substr($1,i,1)) != ""; i++)
18 aa83d772 2004-05-17 devnull if (c ~ /[a-zA-Z0-9 ]/)
19 aa83d772 2004-05-17 devnull break
20 aa83d772 2004-05-17 devnull this = c
21 aa83d772 2004-05-17 devnull if (!(this in lower)) lower[this] = " "
22 aa83d772 2004-05-17 devnull this = lower[this]
23 aa83d772 2004-05-17 devnull if (this != last) # && this != " ")
24 aa83d772 2004-05-17 devnull print ".YY", this, upper[last=this]
25 aa83d772 2004-05-17 devnull quoted = 0
26 aa83d772 2004-05-17 devnull
27 aa83d772 2004-05-17 devnull # interpret font change language
28 aa83d772 2004-05-17 devnull
29 aa83d772 2004-05-17 devnull if ($2 ~ /^ /) # different macro, to avoid bad breaks in hier
30 aa83d772 2004-05-17 devnull print ".ZZ"
31 aa83d772 2004-05-17 devnull else
32 aa83d772 2004-05-17 devnull print ".XX"
33 aa83d772 2004-05-17 devnull if (NF == 3)
34 aa83d772 2004-05-17 devnull $0 = $2 "," " " $3 # discard sort key, leave term .. numlist
35 aa83d772 2004-05-17 devnull else
36 aa83d772 2004-05-17 devnull $0 = $2
37 aa83d772 2004-05-17 devnull
38 aa83d772 2004-05-17 devnull if ($0 ~ /%/) {
39 aa83d772 2004-05-17 devnull quoted = 1
40 aa83d772 2004-05-17 devnull gsub(/%%/, "QQ0QQ", $0)
41 aa83d772 2004-05-17 devnull gsub(/%\[/, "QQ1QQ", $0)
42 aa83d772 2004-05-17 devnull gsub(/%\]/, "QQ2QQ", $0)
43 aa83d772 2004-05-17 devnull gsub(/%\{/, "QQ3QQ", $0)
44 aa83d772 2004-05-17 devnull gsub(/%\}/, "QQ4QQ", $0)
45 aa83d772 2004-05-17 devnull gsub(/%~/, "QQ5QQ", $0)
46 aa83d772 2004-05-17 devnull }
47 aa83d772 2004-05-17 devnull gsub(/%e/, "\\e", $0) # %e -> \e
48 aa83d772 2004-05-17 devnull gsub(/~/, " ", $0) # unpaddable spaces go away at last
49 aa83d772 2004-05-17 devnull if (gsub(/\[/, "\\\\&\\f(CW", $0))
50 aa83d772 2004-05-17 devnull gsub(/\]/, "\\fP", $0)
51 aa83d772 2004-05-17 devnull if (gsub(/\{/, "\\f2", $0))
52 aa83d772 2004-05-17 devnull gsub(/\}/, "\\fP", $0)
53 aa83d772 2004-05-17 devnull if (quoted) {
54 aa83d772 2004-05-17 devnull gsub(/%/, "", $0)
55 aa83d772 2004-05-17 devnull gsub(/QQ0QQ/, "%", $0)
56 aa83d772 2004-05-17 devnull gsub(/QQ1QQ/, "[", $0)
57 aa83d772 2004-05-17 devnull gsub(/QQ2QQ/, "]", $0)
58 aa83d772 2004-05-17 devnull gsub(/QQ3QQ/, "{", $0)
59 aa83d772 2004-05-17 devnull gsub(/QQ4QQ/, "}", $0)
60 aa83d772 2004-05-17 devnull gsub(/QQ5QQ/, "~", $0)
61 aa83d772 2004-05-17 devnull }
62 aa83d772 2004-05-17 devnull printf "\\&%s\n", $0
63 aa83d772 2004-05-17 devnull }
64 aa83d772 2004-05-17 devnull ' $*