Update bootstrap files.

This commit is contained in:
2024-03-15 09:13:19 +00:00
parent 0aa114e920
commit 56da919f27
11 changed files with 1413 additions and 252 deletions

413
latex.c
View File

@@ -1,17 +1,25 @@
#line 893 "nuweb.w"
#include "global.h"
static int scraps = 1;
static void copy_scrap(); /* formats the body of a scrap */
static void print_scrap_numbers(); /* formats a list of scrap numbers */
static void format_entry(); /* formats an index entry */
static void format_file_entry(); /* formats a file index entry */
static void format_user_entry();
static void write_arg();
static void write_literal();
static void write_ArglistElement();
void write_tex(file_name, tex_name, sector)
char *file_name;
char *tex_name;
unsigned char sector;
#line 2041 "nuweb.w"
static void copy_scrap(FILE *file, int prefix, Name *name);
/* formats the body of a scrap */
static void print_scrap_numbers(FILE *tex_file, Scrap_Node *scraps);
/* formats a list of scrap numbers */
static void format_entry(Name *name, FILE *tex_file, unsigned char sector);
/* formats an index entry */
static void format_file_entry(Name *name, FILE *tex_file);
/* formats a file index entry */
static void format_user_entry(Name *name, FILE *tex_file,
unsigned char sector);
static void write_arg(FILE *tex_file, char *p);
static void write_literal(FILE *tex_file, char *p, int mode);
static void write_ArglistElement(FILE *file, Arglist *args, char **params);
#line 2060 "nuweb.w"
void write_tex(char *file_name, char *tex_name)
{
FILE *tex_file = fopen(tex_name, "w");
if (tex_file) {
@@ -19,6 +27,8 @@ void write_tex(file_name, tex_name, sector)
fprintf(stderr, "writing %s\n", tex_name);
source_open(file_name);
/* Write LaTeX limbo definitions */
#line 2084 "nuweb.w"
if (hyperref_flag) {
fputs("\\newcommand{\\NWtarget}[2]{\\hypertarget{#1}{#2}}\n", tex_file);
fputs("\\newcommand{\\NWlink}[2]{\\hyperlink{#1}{#2}}\n", tex_file);
@@ -42,11 +52,19 @@ void write_tex(file_name, tex_name, sector)
if (hyperoptions[0] != '\0')
{
/* Write the hyperlink usage macro */
#line 2112 "nuweb.w"
fprintf(tex_file, "\\usepackage[%s]{hyperref}", hyperoptions);
#line 2106 "nuweb.w"
}
fputs("}\n", tex_file);
#line 2067 "nuweb.w"
/* Copy \verb|source_file| into \verb|tex_file| */
#line 2119 "nuweb.w"
{
int inBlock = FALSE;
int c = source_get();
@@ -54,6 +72,8 @@ void write_tex(file_name, tex_name, sector)
if (c == nw_char)
{
/* Interpret at-sequence */
#line 2135 "nuweb.w"
{
int big_definition = FALSE;
c = source_get();
@@ -64,18 +84,26 @@ void write_tex(file_name, tex_name, sector)
update_delimit_scrap();
break;
case 'O': big_definition = TRUE;
case 'o': {
case 'o':
#line 2259 "nuweb.w"
{
Name *name = collect_file_name();
/* Begin the scrap environment */
#line 2346 "nuweb.w"
{
if (big_definition)
{
if (inBlock)
{
/* End block */
#line 2377 "nuweb.w"
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
fputs("\\end{flushleft}\n", tex_file);
inBlock = FALSE;
#line 2351 "nuweb.w"
}
fputs("\\begin{flushleft} \\small", tex_file);
}
@@ -84,17 +112,27 @@ void write_tex(file_name, tex_name, sector)
if (inBlock)
{
/* Switch block */
#line 2374 "nuweb.w"
fputs("\\par\\vspace{\\baselineskip}\n", tex_file);
#line 2359 "nuweb.w"
}
else
{
/* Start block */
#line 2370 "nuweb.w"
fputs("\\begin{flushleft} \\small\n\\begin{minipage}{\\linewidth}", tex_file);
inBlock = TRUE;
#line 2363 "nuweb.w"
}
}
fprintf(tex_file, "\\label{scrap%d}\\raggedright\\small\n", scraps);
}
#line 2261 "nuweb.w"
fputs("\\NWtarget{nuweb", tex_file);
write_single_scrap_ref(tex_file, scraps);
fputs("}{} ", tex_file);
@@ -102,13 +140,19 @@ void write_tex(file_name, tex_name, sector)
write_single_scrap_ref(tex_file, scraps);
fputs("}}$\\equiv$\n", tex_file);
/* Fill in the middle of the scrap environment */
#line 2387 "nuweb.w"
{
fputs("\\vspace{-1ex}\n\\begin{list}{}{} \\item\n", tex_file);
extra_scraps = 0;
copy_scrap(tex_file, TRUE, name);
fputs("{\\NWsep}\n\\end{list}\n", tex_file);
}
#line 2268 "nuweb.w"
/* Begin the cross-reference environment */
#line 2433 "nuweb.w"
{
fputs("\\vspace{-1.5ex}\n", tex_file);
fputs("\\footnotesize\n", tex_file);
@@ -116,8 +160,12 @@ void write_tex(file_name, tex_name, sector)
tex_file);
fputs("\\setlength{\\itemindent}{-\\leftmargin}}\n", tex_file);}
#line 2269 "nuweb.w"
if ( scrap_flag ) {
/* Write file defs */
#line 2452 "nuweb.w"
{
if (name->defs) {
if (name->defs->next) {
@@ -130,15 +178,23 @@ void write_tex(file_name, tex_name, sector)
name->spelling);
}
}
#line 2271 "nuweb.w"
}
format_defs_refs(tex_file, scraps);
format_uses_refs(tex_file, scraps++);
/* Finish the cross-reference environment */
#line 2446 "nuweb.w"
{
fputs("\n\\item{}", tex_file);
fputs("\n\\end{list}\n", tex_file);
}
#line 2275 "nuweb.w"
/* Finish the scrap environment */
#line 2404 "nuweb.w"
{
scraps += extra_scraps;
if (big_definition)
@@ -146,32 +202,48 @@ void write_tex(file_name, tex_name, sector)
else
{
/* End block */
#line 2377 "nuweb.w"
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
fputs("\\end{flushleft}\n", tex_file);
inBlock = FALSE;
#line 2410 "nuweb.w"
}
do
c = source_get();
while (isspace(c));
}
#line 2276 "nuweb.w"
}
#line 2145 "nuweb.w"
break;
case 'Q':
case 'D': big_definition = TRUE;
case 'q':
case 'd': {
case 'd':
#line 2284 "nuweb.w"
{
Name *name = collect_macro_name();
/* Begin the scrap environment */
#line 2346 "nuweb.w"
{
if (big_definition)
{
if (inBlock)
{
/* End block */
#line 2377 "nuweb.w"
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
fputs("\\end{flushleft}\n", tex_file);
inBlock = FALSE;
#line 2351 "nuweb.w"
}
fputs("\\begin{flushleft} \\small", tex_file);
}
@@ -180,21 +252,33 @@ void write_tex(file_name, tex_name, sector)
if (inBlock)
{
/* Switch block */
#line 2374 "nuweb.w"
fputs("\\par\\vspace{\\baselineskip}\n", tex_file);
#line 2359 "nuweb.w"
}
else
{
/* Start block */
#line 2370 "nuweb.w"
fputs("\\begin{flushleft} \\small\n\\begin{minipage}{\\linewidth}", tex_file);
inBlock = TRUE;
#line 2363 "nuweb.w"
}
}
fprintf(tex_file, "\\label{scrap%d}\\raggedright\\small\n", scraps);
}
#line 2287 "nuweb.w"
fputs("\\NWtarget{nuweb", tex_file);
write_single_scrap_ref(tex_file, scraps);
fputs("}{} $\\langle\\,${\\itshape ", tex_file);
/* Write the macro's name */
#line 2306 "nuweb.w"
{
char * p = name->spelling;
int i = 0;
@@ -208,17 +292,25 @@ void write_tex(file_name, tex_name, sector)
fputc(*p++, tex_file);
}
}
#line 2291 "nuweb.w"
fputs("}\\nobreak\\ {\\footnotesize {", tex_file);
write_single_scrap_ref(tex_file, scraps);
fputs("}}$\\,\\rangle\\equiv$\n", tex_file);
/* Fill in the middle of the scrap environment */
#line 2387 "nuweb.w"
{
fputs("\\vspace{-1ex}\n\\begin{list}{}{} \\item\n", tex_file);
extra_scraps = 0;
copy_scrap(tex_file, TRUE, name);
fputs("{\\NWsep}\n\\end{list}\n", tex_file);
}
#line 2295 "nuweb.w"
/* Begin the cross-reference environment */
#line 2433 "nuweb.w"
{
fputs("\\vspace{-1.5ex}\n", tex_file);
fputs("\\footnotesize\n", tex_file);
@@ -226,14 +318,22 @@ void write_tex(file_name, tex_name, sector)
tex_file);
fputs("\\setlength{\\itemindent}{-\\leftmargin}}\n", tex_file);}
#line 2296 "nuweb.w"
/* Write macro defs */
#line 2466 "nuweb.w"
{
if (name->defs->next) {
fputs("\\item \\NWtxtMacroDefBy\\ ", tex_file);
print_scrap_numbers(tex_file, name->defs);
}
}
#line 2297 "nuweb.w"
/* Write macro refs */
#line 2474 "nuweb.w"
{
if (name->uses) {
if (name->uses->next) {
@@ -256,14 +356,22 @@ void write_tex(file_name, tex_name, sector)
command_name, name->spelling);
}
}
#line 2298 "nuweb.w"
format_defs_refs(tex_file, scraps);
format_uses_refs(tex_file, scraps++);
/* Finish the cross-reference environment */
#line 2446 "nuweb.w"
{
fputs("\n\\item{}", tex_file);
fputs("\n\\end{list}\n", tex_file);
}
#line 2301 "nuweb.w"
/* Finish the scrap environment */
#line 2404 "nuweb.w"
{
scraps += extra_scraps;
if (big_definition)
@@ -271,37 +379,59 @@ void write_tex(file_name, tex_name, sector)
else
{
/* End block */
#line 2377 "nuweb.w"
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
fputs("\\end{flushleft}\n", tex_file);
inBlock = FALSE;
#line 2410 "nuweb.w"
}
do
c = source_get();
while (isspace(c));
}
#line 2302 "nuweb.w"
}
#line 2150 "nuweb.w"
break;
case 's':
/* Step to next sector */
#line 1493 "nuweb.w"
prev_sector += 1;
current_sector = prev_sector;
c = source_get();
#line 2153 "nuweb.w"
break;
case 'S':
/* Close the current sector */
#line 1500 "nuweb.w"
current_sector = 1;
c = source_get();
#line 2156 "nuweb.w"
break;
case '{':
case '[':
case '(': copy_scrap(tex_file, FALSE, NULL);
case '(':
#line 2426 "nuweb.w"
copy_scrap(tex_file, FALSE, NULL);
c = source_get();
#line 2160 "nuweb.w"
break;
case '<': {
case '<':
#line 2192 "nuweb.w"
{
Parameters local_parameters = 0;
int changed;
char indent_chars[MAX_INDENT];
@@ -318,36 +448,66 @@ void write_tex(file_name, tex_name, sector)
c = source_get();
}
#line 2162 "nuweb.w"
break;
case 'x': {
case 'x':
#line 2749 "nuweb.w"
{
/* Get label from */
#line 6398 "nuweb.w"
char label_name[MAX_NAME_LEN];
char * p = label_name;
while (c = source_get(), c != nw_char) /* Here is 150a-01 */
while (c =
#line 2750 "nuweb.w"
source_get(), c != nw_char) /* Here is 151a-01 */
*p++ = c;
*p = '\0';
c = source_get();
c =
#line 2750 "nuweb.w"
source_get();
write_label(label_name, tex_file);
#line 2750 "nuweb.w"
write_label(label_name,
#line 2164 "nuweb.w"
tex_file);
}
#line 2164 "nuweb.w"
c = source_get();
break;
case 'c': if (inBlock)
case 'c':
#line 1785 "nuweb.w"
if (inBlock)
{
/* End block */
#line 2377 "nuweb.w"
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
fputs("\\end{flushleft}\n", tex_file);
inBlock = FALSE;
#line 1787 "nuweb.w"
}
else
{
/* Start block */
#line 2370 "nuweb.w"
fputs("\\begin{flushleft} \\small\n\\begin{minipage}{\\linewidth}", tex_file);
inBlock = TRUE;
#line 1791 "nuweb.w"
}
#line 2167 "nuweb.w"
c = source_get();
break;
case 'f': {
case 'f':
#line 2915 "nuweb.w"
{
if (file_names) {
fputs("\n{\\small\\begin{list}{}{\\setlength{\\itemsep}{-\\parsep}",
tex_file);
@@ -357,8 +517,12 @@ void write_tex(file_name, tex_name, sector)
}
c = source_get();
}
#line 2170 "nuweb.w"
break;
case 'm': {
case 'm':
#line 2965 "nuweb.w"
{
unsigned char sector = current_sector;
int c = source_get();
if (c == '+')
@@ -377,8 +541,12 @@ void write_tex(file_name, tex_name, sector)
}
c = source_get();
#line 2172 "nuweb.w"
break;
case 'u': {
case 'u':
#line 3118 "nuweb.w"
{
unsigned char sector = current_sector;
c = source_get();
if (c == '+') {
@@ -393,10 +561,16 @@ void write_tex(file_name, tex_name, sector)
fputs("\\end{list}}", tex_file);
}
}
#line 2174 "nuweb.w"
break;
case 'v': fputs(version_string, tex_file);
case 'v':
#line 2187 "nuweb.w"
fputs(version_string, tex_file);
c = source_get();
#line 2176 "nuweb.w"
break;
default:
if (c==nw_char)
@@ -405,6 +579,8 @@ void write_tex(file_name, tex_name, sector)
break;
}
}
#line 2125 "nuweb.w"
}
else {
putc(c, tex_file);
@@ -412,11 +588,15 @@ void write_tex(file_name, tex_name, sector)
}
}
}
#line 2068 "nuweb.w"
fclose(tex_file);
}
else
fprintf(stderr, "%s: can't open %s\n", command_name, tex_name);
}
#line 2321 "nuweb.w"
static void write_arg(FILE * tex_file, char * p)
{
fputs("\\hbox{\\slshape\\sffamily ", tex_file);
@@ -439,9 +619,9 @@ static void write_arg(FILE * tex_file, char * p)
fputs("\\/}", tex_file);
}
static void print_scrap_numbers(tex_file, scraps)
FILE *tex_file;
Scrap_Node *scraps;
#line 2498 "nuweb.w"
static void print_scrap_numbers(FILE *tex_file, Scrap_Node *scraps)
{
int page;
fputs("\\NWlink{nuweb", tex_file);
@@ -460,6 +640,8 @@ static void print_scrap_numbers(tex_file, scraps)
}
fputs(".\n", tex_file);
}
#line 2535 "nuweb.w"
static char *orig_delimit_scrap[3][5] = {
/* {} mode: begin, end, insert nw_char, prefix, suffix */
{ "\\verb@", "@", "@{\\tt @}\\verb@", "\\mbox{}", "\\\\" },
@@ -470,6 +652,8 @@ static char *orig_delimit_scrap[3][5] = {
};
static char *delimit_scrap[3][5];
#line 2554 "nuweb.w"
void initialise_delimit_scrap_array() {
int i,j;
for(i = 0; i < 3; i++) {
@@ -495,7 +679,11 @@ void initialise_delimit_scrap_array() {
}
}
}
#line 2586 "nuweb.w"
int scrap_type = 0;
#line 2590 "nuweb.w"
static void write_literal(FILE * tex_file, char * p, int mode)
{
fputs(delimit_scrap[mode][0], tex_file);
@@ -508,10 +696,9 @@ static void write_literal(FILE * tex_file, char * p, int mode)
}
fputs(delimit_scrap[mode][1], tex_file);
}
static void copy_scrap(file, prefix, name)
FILE *file;
int prefix;
Name * name;
#line 2605 "nuweb.w"
static void copy_scrap(FILE *file, int prefix, Name *name)
{
int indent = 0;
int c;
@@ -531,7 +718,9 @@ static void copy_scrap(file, prefix, name)
fputs(delimit_scrap[scrap_type][0], file);
indent = 0;
break;
case '\t': {
case '\t':
#line 2680 "nuweb.w"
{
int delta = 8 - (indent % 8);
indent += delta;
while (delta > 0) {
@@ -539,41 +728,69 @@ static void copy_scrap(file, prefix, name)
delta--;
}
}
#line 2625 "nuweb.w"
break;
default:
if (c==nw_char)
{
/* Check at-sequence for end-of-scrap */
#line 2690 "nuweb.w"
{
c = source_get();
switch (c) {
case 'c': {
case 'c':
#line 1714 "nuweb.w"
{
fputs(delimit_scrap[scrap_type][1],file);
fprintf(file, "\\hbox{\\sffamily\\slshape (Comment)}");
fputs(delimit_scrap[scrap_type][0], file);
}
#line 2693 "nuweb.w"
break;
case 'x': {
case 'x':
#line 2749 "nuweb.w"
{
/* Get label from */
#line 6398 "nuweb.w"
char label_name[MAX_NAME_LEN];
char * p = label_name;
while (c = source_get(), c != nw_char) /* Here is 150a-01 */
while (c =
#line 2750 "nuweb.w"
source_get(), c != nw_char) /* Here is 151a-01 */
*p++ = c;
*p = '\0';
c = source_get();
c =
#line 2750 "nuweb.w"
source_get();
write_label(label_name, file);
#line 2750 "nuweb.w"
write_label(label_name,
#line 2695 "nuweb.w"
file);
}
#line 2695 "nuweb.w"
break;
case 'v': fputs(version_string, file);
case 'v':
#line 2745 "nuweb.w"
fputs(version_string, file);
#line 2697 "nuweb.w"
case 's':
break;
case '+':
case '-':
case '*':
case '|': {
case '|':
#line 2758 "nuweb.w"
{
do {
do
c = source_get();
@@ -581,12 +798,16 @@ static void copy_scrap(file, prefix, name)
c = source_get();
} while (c != '}' && c != ']' && c != ')' );
}
#line 2703 "nuweb.w"
case ',':
case ')':
case ']':
case '}': fputs(delimit_scrap[scrap_type][1], file);
return;
case '<': {
case '<':
#line 2798 "nuweb.w"
{
Arglist *args = collect_scrap_name(-1);
Name *name = args->name;
char * p = name->spelling;
@@ -616,6 +837,8 @@ static void copy_scrap(file, prefix, name)
if (scrap_name_has_parameters) {
/* Format macro parameters */
#line 1962 "nuweb.w"
char sep;
sep = '(';
@@ -642,10 +865,14 @@ static void copy_scrap(file, prefix, name)
c = source_get();
}
#line 2826 "nuweb.w"
}
fprintf(file, "{\\footnotesize ");
if (name->defs)
/* Write abbreviated definition list */
#line 2844 "nuweb.w"
{
Scrap_Node *p = name->defs;
fputs("\\NWlink{nuweb", file);
@@ -657,6 +884,8 @@ static void copy_scrap(file, prefix, name)
if (p)
fputs(", \\ldots\\ ", file);
}
#line 2830 "nuweb.w"
else {
putc('?', file);
fprintf(stderr, "%s: never defined <%s>\n",
@@ -667,14 +896,22 @@ static void copy_scrap(file, prefix, name)
fputs("}", file);
fputs(delimit_scrap[scrap_type][0], file);
}
#line 2709 "nuweb.w"
break;
case '%': {
case '%':
#line 2768 "nuweb.w"
{
do
c = source_get();
while (c != '\n');
}
#line 2711 "nuweb.w"
break;
case '_': {
case '_':
#line 2777 "nuweb.w"
{
fputs(delimit_scrap[scrap_type][1],file);
fprintf(file, "\\hbox{\\sffamily\\bfseries ");
c = source_get();
@@ -686,18 +923,28 @@ static void copy_scrap(file, prefix, name)
fprintf(file, "}");
fputs(delimit_scrap[scrap_type][0], file);
}
#line 2713 "nuweb.w"
break;
case 't': {
case 't':
#line 2791 "nuweb.w"
{
fputs(delimit_scrap[scrap_type][1],file);
fprintf(file, "\\hbox{\\sffamily\\slshape fragment title}");
fputs(delimit_scrap[scrap_type][0], file);
}
#line 2715 "nuweb.w"
break;
case 'f': {
case 'f':
#line 2791 "nuweb.w"
{
fputs(delimit_scrap[scrap_type][1],file);
fprintf(file, "\\hbox{\\sffamily\\slshape file name}");
fputs(delimit_scrap[scrap_type][0], file);
}
#line 2717 "nuweb.w"
break;
case '1': case '2': case '3':
case '4': case '5': case '6':
@@ -723,6 +970,8 @@ static void copy_scrap(file, prefix, name)
break;
}
}
#line 2630 "nuweb.w"
break;
}
putc(c, file);
@@ -732,6 +981,8 @@ static void copy_scrap(file, prefix, name)
c = source_get();
}
}
#line 2646 "nuweb.w"
void update_delimit_scrap()
{
/* {}-mode begin */
@@ -759,6 +1010,8 @@ void update_delimit_scrap()
/* ()-mode insert nw_char */
delimit_scrap[2][2][0] = nw_char;
}
#line 2857 "nuweb.w"
static void
write_ArglistElement(FILE * file, Arglist * args, char ** params)
{
@@ -801,6 +1054,8 @@ write_ArglistElement(FILE * file, Arglist * args, char ** params)
/* Format macro parameters */
#line 1962 "nuweb.w"
char sep;
sep = '(';
@@ -827,10 +1082,14 @@ write_ArglistElement(FILE * file, Arglist * args, char ** params)
c = source_get();
}
#line 2897 "nuweb.w"
}
fprintf(file, "{\\footnotesize ");
if (name->defs)
/* Write abbreviated definition list */
#line 2844 "nuweb.w"
{
Scrap_Node *p = name->defs;
fputs("\\NWlink{nuweb", file);
@@ -842,6 +1101,8 @@ write_ArglistElement(FILE * file, Arglist * args, char ** params)
if (p)
fputs(", \\ldots\\ ", file);
}
#line 2901 "nuweb.w"
else {
putc('?', file);
fprintf(stderr, "%s: never defined <%s>\n",
@@ -850,17 +1111,21 @@ write_ArglistElement(FILE * file, Arglist * args, char ** params)
fputs("}$\\,\\rangle$", file);
}
}
static void format_file_entry(name, tex_file)
Name *name;
FILE *tex_file;
#line 2927 "nuweb.w"
static void format_file_entry(Name *name, FILE *tex_file)
{
while (name) {
format_file_entry(name->llink, tex_file);
/* Format a file index entry */
#line 2938 "nuweb.w"
fputs("\\item ", tex_file);
fprintf(tex_file, "\\verb%c\"%s\"%c ", nw_char, name->spelling, nw_char);
/* Write file's defining scrap numbers */
{
#line 2944 "nuweb.w"
{
Scrap_Node *p = name->defs;
fputs("{\\footnotesize {\\NWtxtDefBy}", tex_file);
if (p->next) {
@@ -879,10 +1144,16 @@ static void format_file_entry(name, tex_file)
}
putc('}', tex_file);
}
#line 2940 "nuweb.w"
putc('\n', tex_file);
#line 2931 "nuweb.w"
name = name->rlink;
}
}
#line 2986 "nuweb.w"
static int load_entry(Name * name, Name ** nms, int n)
{
while (name) {
@@ -892,16 +1163,17 @@ static int load_entry(Name * name, Name ** nms, int n)
}
return n;
}
static void format_entry(name, tex_file, sector)
Name *name;
FILE *tex_file;
unsigned char sector;
#line 2998 "nuweb.w"
static void format_entry(Name *name, FILE *tex_file, unsigned char sector)
{
Name ** nms = malloc(num_scraps()*sizeof(Name *));
int n = load_entry(name, nms, 0);
int i;
/* Sort 'nms' of size 'n' for <Rob's ordering> */
#line 3018 "nuweb.w"
int j;
for (j = 1; j < n; j++)
{
@@ -912,7 +1184,9 @@ static void format_entry(name, tex_file, sector)
{
Name * ki = nms[i];
if (robs_strcmp(ki->spelling, kj->spelling) < 0)
if (
#line 3015 "nuweb.w"
robs_strcmp(ki->spelling, kj->spelling) < 0)
break;
nms[i + 1] = ki;
i -= 1;
@@ -920,15 +1194,21 @@ static void format_entry(name, tex_file, sector)
nms[i + 1] = kj;
}
#line 3004 "nuweb.w"
for (i = 0; i < n; i++)
{
Name * name = nms[i];
/* Format an index entry */
#line 3038 "nuweb.w"
if (name->sector == sector){
fputs("\\item ", tex_file);
fputs("$\\langle\\,$", tex_file);
/* Write the macro's name */
#line 2306 "nuweb.w"
{
char * p = name->spelling;
int i = 0;
@@ -942,8 +1222,12 @@ static void format_entry(name, tex_file, sector)
fputc(*p++, tex_file);
}
}
#line 3041 "nuweb.w"
fputs("\\nobreak\\ {\\footnotesize ", tex_file);
/* Write defining scrap numbers */
#line 3050 "nuweb.w"
{
Scrap_Node *p = name->defs;
if (p) {
@@ -966,8 +1250,12 @@ static void format_entry(name, tex_file, sector)
else
putc('?', tex_file);
}
#line 3043 "nuweb.w"
fputs("}$\\,\\rangle$ ", tex_file);
/* Write referencing scrap numbers */
#line 3074 "nuweb.w"
{
Scrap_Node *p = name->uses;
fputs("{\\footnotesize ", tex_file);
@@ -992,10 +1280,16 @@ static void format_entry(name, tex_file, sector)
fputs("{\\NWtxtNoRef}.", tex_file);
putc('}', tex_file);
}
#line 3045 "nuweb.w"
putc('\n', tex_file);
}
#line 3009 "nuweb.w"
}
}
#line 3104 "nuweb.w"
int has_sector(Name * name, unsigned char sector)
{
while(name) {
@@ -1007,14 +1301,15 @@ int has_sector(Name * name, unsigned char sector)
}
return FALSE;
}
static void format_user_entry(name, tex_file, sector)
Name *name;
FILE *tex_file;
unsigned char sector;
#line 3136 "nuweb.w"
static void format_user_entry(Name *name, FILE *tex_file, unsigned char sector)
{
while (name) {
format_user_entry(name->llink, tex_file, sector);
/* Format a user index entry */
#line 3148 "nuweb.w"
if (name->sector == sector){
Scrap_Node *uses = name->uses;
if ( uses || dangling_flag ) {
@@ -1081,6 +1376,8 @@ static void format_user_entry(name, tex_file, sector)
fputs(".\n", tex_file);
}
}
#line 3140 "nuweb.w"
name = name->rlink;
}
}