Mercurial > emacs
annotate lispref/permute-index @ 42811:cf0c0ef57504
*** empty log message ***
| author | Jason Rumney <jasonr@gnu.org> |
|---|---|
| date | Thu, 17 Jan 2002 19:29:24 +0000 |
| parents | c189486396ff |
| children | 23a1cea22d13 |
| rev | line source |
|---|---|
|
41200
c189486396ff
Don't depend on csh-specific features. Replace
Eli Zaretskii <eliz@gnu.org>
parents:
41131
diff
changeset
|
1 #!/bin/sh |
| 41131 | 2 # Generate a permuted index of all names. |
| 3 # The result is a file called index.fns. | |
| 4 | |
| 5 # Copyright (C) 2001 Free Software Foundation, Inc. | |
| 6 # | |
| 7 # This file is part of GNU Emacs. | |
| 8 # | |
| 9 # GNU Emacs is free software; you can redistribute it and/or modify | |
| 10 # it under the terms of the GNU General Public License as published by | |
| 11 # the Free Software Foundation; either version 2, or (at your option) | |
| 12 # any later version. | |
| 13 # | |
| 14 # GNU Emacs is distributed in the hope that it will be useful, | |
| 15 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 17 # GNU General Public License for more details. | |
| 18 # | |
| 19 # You should have received a copy of the GNU General Public License | |
| 20 # along with GNU Emacs; see the file COPYING. If not, write to the | |
| 21 # Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 22 # Boston, MA 02111-1307, USA. | |
| 23 | |
| 24 # You will need to modify this for your needs. | |
| 25 | |
| 26 | |
| 27 set TEXINDEX=texindex # path to texindex command | |
| 28 #set EMACS=gnuemacs # your emacs command | |
| 29 #set TEX=tex # your tex command | |
| 30 | |
| 31 set MANUAL=elisp # the base name of the manual | |
| 32 | |
| 33 # goto 3 | |
| 34 | |
| 35 1: | |
| 36 echo "Extract raw index from texinfo fn index." | |
| 37 # Let texindex combine duplicate entries, later. | |
| 38 # But it wants to protect non-alphanumerics thus confusing ptx. | |
| 39 # Also change `\ ' to just a ` ', since texindex will fail. This is produced | |
| 40 # by `@findex two words' in an example environment (no doubt among others). | |
| 41 # delete wrapper parens | |
| 42 # change dots {} to dots{} | |
| 43 # change {-} to char form, so ptx wont ignore it. | |
| 44 # delete leading \entry { | |
| 45 # change '\ ' to ' ' | |
| 46 # change lines with = < > since they mess up field extraction. | |
| 47 # separate into fields delimited by " | |
|
41200
c189486396ff
Don't depend on csh-specific features. Replace
Eli Zaretskii <eliz@gnu.org>
parents:
41131
diff
changeset
|
48 rm -f permuted.raw |
| 41131 | 49 cat ${MANUAL}.fn | \ |
| 50 sed \ | |
| 51 -e 's/(\([^)]*\))/\1/' \ | |
| 52 -e 's/\\dots {}/(\\dots{})/' \ | |
| 53 -e "s/{-}/{{\\tt\\char'055}}/" \ | |
| 54 -e 's,^[^ ]* {,,' \ | |
| 55 -e 's, },},' \ | |
| 56 -e 's,\\ , ,g' \ | |
| 57 -e 's/{\\tt\\char61}/=/' \ | |
| 58 -e 's/{\\tt\\gtr}/>/' \ | |
| 59 -e 's/{\\tt\\less}/</' \ | |
| 60 -e 's/}{/"/g' \ | |
|
41200
c189486396ff
Don't depend on csh-specific features. Replace
Eli Zaretskii <eliz@gnu.org>
parents:
41131
diff
changeset
|
61 | awk -F\" '{print $2, $1}' > permuted.raw |
| 41131 | 62 |
| 63 2: | |
| 64 # Build break file for ptx. | |
| 65 cat <<EOF > permuted.break | |
| 66 - | |
| 67 : | |
| 68 EOF | |
| 69 # Build the ignore file for ptx. | |
|
41200
c189486396ff
Don't depend on csh-specific features. Replace
Eli Zaretskii <eliz@gnu.org>
parents:
41131
diff
changeset
|
70 # We would like to ignore "and", "or", and "for", |
| 41131 | 71 # but ptx ignores ignore words even if they stand alone. |
| 72 cat <<EOF > permuted.ignore | |
| 73 the | |
| 74 in | |
| 75 to | |
| 76 as | |
| 77 a | |
| 78 an | |
| 79 of | |
| 80 on | |
| 81 them | |
| 82 how | |
| 83 from | |
| 84 by | |
| 85 EOF | |
| 86 | |
| 87 echo "Make troff permuted index." | |
|
41200
c189486396ff
Don't depend on csh-specific features. Replace
Eli Zaretskii <eliz@gnu.org>
parents:
41131
diff
changeset
|
88 rm -f permuted.t |
| 41131 | 89 ptx -i permuted.ignore -b permuted.break -f -r -w 144 \ |
|
41200
c189486396ff
Don't depend on csh-specific features. Replace
Eli Zaretskii <eliz@gnu.org>
parents:
41131
diff
changeset
|
90 < permuted.raw > permuted.t |
| 41131 | 91 |
| 92 3: | |
| 93 echo "Extract the desired fields." | |
|
41200
c189486396ff
Don't depend on csh-specific features. Replace
Eli Zaretskii <eliz@gnu.org>
parents:
41131
diff
changeset
|
94 rm -f permuted.fields |
|
c189486396ff
Don't depend on csh-specific features. Replace
Eli Zaretskii <eliz@gnu.org>
parents:
41131
diff
changeset
|
95 awk -F\" '{printf "%s\"%s\"%s\n", $4,$6,$9}' permuted.t > permuted.fields |
| 41131 | 96 |
| 97 4: | |
| 98 echo "Format for texindex." | |
| 99 # delete lines that start with "and ", "for " | |
| 100 sed < permuted.fields \ | |
| 101 -e 's/=/{\\tt\\char61}/' \ | |
| 102 -e 's/>/{\\tt\\gtr}/' \ | |
| 103 -e 's/</{\\tt\\less}/' \ | |
| 104 -e '/"and /d' \ | |
| 105 -e '/"for /d' \ | |
| 106 | awk -F\" 'NF>0 {if ($1=="") {\ | |
| 107 print "\entry {" $2 "}{" 0+$3 "}{" $2 "}" }\ | |
| 108 else {\ | |
| 109 print "\entry {" $2 ", " $1 "}{" 0+$3 "}{" $2 ", " $1 "}"} }'\ | |
| 110 > permuted.fn | |
| 111 | |
| 112 5: | |
| 113 echo "Sort with texindex." | |
| 114 ${TEXINDEX} permuted.fn | |
| 115 #mv permuted.fns ${MANUAL}.fns | |
| 116 | |
| 117 # The resulting permuted.fns will be read when we run TeX | |
| 118 # on the manual the second time. Or you can use permuted.texinfo here. | |
| 119 #${TEX} permuted.texinfo | |
| 120 | |
| 121 6: | |
| 122 echo "Clean up." | |
| 123 rm -f permuted.fields permuted.t permuted.raw | |
| 124 rm -f permuted.break permuted.ignore permuted.fn |
