Update.
[glibc.git] / manual / libc-texinfo.sh
blob88733cb0797e1ddb59b2750b16a6fa907dbb5ba9
1 #! /bin/sh
3 # Create libc.texinfo from the chapter files.
5 grep '^@node.*Top' $1 | cut -d, -f-2 |
6 sed 's/, /:/; s/:@node /:/; s/ /_/g; s/:/ /g' >cnodes.$$
8 $AWK '{ file[$2] = $1; nnode[$2] = $3 }
9 END { for(x in file)
10 if(file[x] != "")
11 print file[x] ":" x, file[nnode[x]] ":" nnode[x] }' \
12 cnodes.$$ | tsort | sed 's/_/ /g; $d' >corder.$$
14 [ -z "$2" ] || grep '^@node.*Top' `echo $2 /dev/null | tr ' ' '\n' | sort` |
15 cut -d, -f1 | sed 's/@node //' >xorder.$$
17 grep '^@node.*Top' $3 | cut -d, -f-2 |
18 sed 's/, /:/; s/:@node /:/; s/ /_/g; s/:/ /g' >anodes.$$
20 $AWK '{ file[$2] = $1; nnode[$2] = $3 }
21 END { for(x in file)
22 if(file[x] != "")
23 print file[x] ":" x, file[nnode[x]] ":" nnode[x] }' \
24 anodes.$$ | tsort | sed 's/_/ /g; $d' >aorder.$$
26 IFS=:
28 >incl.$$
29 >smenu.$$
30 >lmenu.$$
32 while read file node; do
33 echo "@include $file" >>incl.$$
34 echo "* $node:: `sed -n 's/^@c %MENU% //p' $file`" >>smenu.$$
35 lmenu=`sed -n '/^@menu/,/^@end menu/p; /^@end menu/q' $file |
36 sed '/^@menu/d; /^@end menu/d'`
37 [ -z "$lmenu" ] || (
38 echo; echo "$node"; echo
39 echo "$lmenu"
40 ) >>lmenu.$$
41 done <corder.$$
43 if [ -f xorder.$$ ]; then
45 (echo; echo 'Add-ons'; echo) >>smenu.$$
47 while read file node; do
48 echo "@include $file" >>incl.$$
49 echo "* $node:: `sed -n 's/^@c %MENU% //p' $file`" >>smenu.$$
50 lmenu=`sed -n '/^@menu/,/^@end menu/p; /^@end menu/q' $file |
51 sed '/^@menu/d; /^@end menu/d'`
52 [ -z "$lmenu" ] || (
53 echo; echo "$node"; echo
54 echo "$lmenu"
55 ) >>lmenu.$$
56 done <xorder.$$
59 (echo; echo 'Appendices'; echo) >>smenu.$$
61 while read file node; do
62 echo "@include $file" >>incl.$$
63 echo "* $node:: `sed -n 's/^@c %MENU% //p' $file`" >>smenu.$$
64 lmenu=`sed -n '/^@menu/,/^@end menu/p; /^@end menu/q' $file |
65 sed '/^@menu/d; /^@end menu/d'`
66 [ -z "$lmenu" ] || (
67 echo; echo "$node"; echo
68 echo "$lmenu"
69 ) >>lmenu.$$
70 done <aorder.$$
72 $AWK '
73 BEGIN { FS=":" }
75 /^\*/ {
76 printf("%-32s", $1 "::");
77 x = split($3, word, " ");
78 hpos = 34;
79 for(i = 1; i <= x; i++) {
80 hpos += length(word[i]) + 1;
81 if(hpos > 78) {
82 printf("\n%34s", "");
83 hpos = 35 + length(word[i]);
85 printf(" %s", word[i]);
87 print ".";
90 !/^\*/ { print; }
91 ' smenu.$$ >smenux.$$
93 mv -f incl.$$ chapters.texi
95 (echo '@menu'
96 cat smenux.$$
97 cat <<EOF
98 * Copying:: The GNU Library General Public License says
99 how you can copy and share the GNU C Library.
101 Indices
103 * Concept Index:: Index of concepts and names.
104 * Type Index:: Index of types and type qualifiers.
105 * Function Index:: Index of functions and function-like macros.
106 * Variable Index:: Index of variables and variable-like macros.
107 * File Index:: Index of programs and files.
109 --- The Detailed Node Listing ---
111 cat lmenu.$$
112 echo '@end menu' ) >top-menu.texi.$$
113 mv -f top-menu.texi.$$ top-menu.texi
115 rm -f *.$$