All checks were successful
BuildTest / Build and test (pull_request) Successful in 4m8s
268 lines
6.6 KiB
C
268 lines
6.6 KiB
C
|
|
#line 826 "nuweb.w"
|
|
/* Include files */
|
|
|
|
#line 835 "nuweb.w"
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <ctype.h>
|
|
#include <signal.h>
|
|
#include <locale.h>
|
|
|
|
#line 826 "nuweb.w"
|
|
|
|
/* Type declarations */
|
|
|
|
#line 854 "nuweb.w"
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
|
|
#line 1815 "nuweb.w"
|
|
typedef int *Parameters;
|
|
|
|
#line 3784 "nuweb.w"
|
|
|
|
#define MAX_INDENT 500
|
|
|
|
#line 5074 "nuweb.w"
|
|
typedef struct scrap_node {
|
|
struct scrap_node *next;
|
|
int scrap;
|
|
char quoted;
|
|
} Scrap_Node;
|
|
|
|
#line 5083 "nuweb.w"
|
|
typedef struct name {
|
|
char *spelling;
|
|
struct name *llink;
|
|
struct name *rlink;
|
|
Scrap_Node *defs;
|
|
Scrap_Node *uses;
|
|
char * arg[9];
|
|
int mark;
|
|
char tab_flag;
|
|
char indent_flag;
|
|
char debug_flag;
|
|
unsigned char comment_flag;
|
|
unsigned char sector;
|
|
} Name;
|
|
|
|
#line 5536 "nuweb.w"
|
|
#define ARG_CHR '\001'
|
|
|
|
#line 5596 "nuweb.w"
|
|
typedef struct arglist
|
|
{Name * name;
|
|
struct arglist * args;
|
|
struct arglist * next;
|
|
} Arglist;
|
|
|
|
#line 5760 "nuweb.w"
|
|
typedef struct embed {
|
|
Scrap_Node * defs;
|
|
Arglist * args;
|
|
} Embed_Node;
|
|
|
|
#line 6240 "nuweb.w"
|
|
typedef struct uses {
|
|
struct uses *next;
|
|
Name *defn;
|
|
} Uses;
|
|
|
|
#line 6482 "nuweb.w"
|
|
typedef struct l_node
|
|
{
|
|
struct l_node * left, * right;
|
|
int scrap, seq;
|
|
char name[1];
|
|
} label_node;
|
|
|
|
#line 827 "nuweb.w"
|
|
|
|
/* Limits */
|
|
|
|
#line 864 "nuweb.w"
|
|
|
|
#ifndef MAX_NAME_LEN
|
|
#define MAX_NAME_LEN 1024
|
|
#endif
|
|
|
|
#line 828 "nuweb.w"
|
|
|
|
/* Global variable declarations */
|
|
|
|
#line 1036 "nuweb.w"
|
|
extern int tex_flag; /* if FALSE, don't emit the documentation file */
|
|
extern int html_flag; /* if TRUE, emit HTML instead of LaTeX scraps. */
|
|
extern int output_flag; /* if FALSE, don't emit the output files */
|
|
extern int compare_flag; /* if FALSE, overwrite without comparison */
|
|
extern int verbose_flag; /* if TRUE, write progress information */
|
|
extern int number_flag; /* if TRUE, use a sequential numbering scheme */
|
|
extern int scrap_flag; /* if FALSE, don't print list of scraps */
|
|
extern int dangling_flag; /* if FALSE, don't print dangling identifiers */
|
|
extern int xref_flag; /* If TRUE, print cross-references in scrap comments */
|
|
extern int prepend_flag; /* If TRUE, prepend a path to the output file names */
|
|
extern char * dirpath; /* The prepended directory path */
|
|
extern char * path_sep; /* How to join path to filename */
|
|
extern int listings_flag; /* if TRUE, use listings package for scrap formatting */
|
|
extern int version_info_flag; /* If TRUE, set up version string */
|
|
extern char * version_string; /* What to print for @v */
|
|
extern int hyperref_flag; /* Are we preparing for hyperref
|
|
package. */
|
|
extern int hyperopt_flag; /* Are we preparing for hyperref options */
|
|
extern char * hyperoptions; /* The options to pass to the
|
|
hyperref package */
|
|
extern int includepath_flag; /* Do we have an include path? */
|
|
extern struct incl{char * name; struct incl * next;} * include_list;
|
|
/* The list of include paths */
|
|
|
|
#line 1094 "nuweb.w"
|
|
extern int nw_char;
|
|
|
|
#line 1104 "nuweb.w"
|
|
extern char *command_name;
|
|
|
|
#line 1505 "nuweb.w"
|
|
extern unsigned char current_sector;
|
|
extern unsigned char prev_sector;
|
|
|
|
#line 1703 "nuweb.w"
|
|
extern char blockBuff[6400];
|
|
|
|
#line 2418 "nuweb.w"
|
|
extern int extra_scraps;
|
|
|
|
#line 3901 "nuweb.w"
|
|
extern char *source_name; /* name of the current file */
|
|
extern int source_line; /* current line in the source file */
|
|
|
|
#line 4237 "nuweb.w"
|
|
extern int already_warned;
|
|
|
|
#line 5100 "nuweb.w"
|
|
extern Name *file_names;
|
|
extern Name *macro_names;
|
|
extern Name *user_names;
|
|
extern int scrap_name_has_parameters;
|
|
extern int scrap_ended_with;
|
|
|
|
#line 6491 "nuweb.w"
|
|
extern label_node * label_tab;
|
|
|
|
#line 829 "nuweb.w"
|
|
|
|
/* Function prototypes */
|
|
|
|
#line 1400 "nuweb.w"
|
|
extern void pass1(char *file_name);
|
|
|
|
#line 2034 "nuweb.w"
|
|
extern void write_tex(char *file_name, char *tex_name);
|
|
|
|
#line 2582 "nuweb.w"
|
|
void initialise_delimit_scrap_array(void);
|
|
|
|
#line 2676 "nuweb.w"
|
|
void update_delimit_scrap();
|
|
|
|
#line 3100 "nuweb.w"
|
|
extern int has_sector(Name *, unsigned char);
|
|
|
|
#line 3227 "nuweb.w"
|
|
extern void write_html(char *file_name, char *html_name);
|
|
|
|
#line 3764 "nuweb.w"
|
|
extern void write_files(Name *files);
|
|
|
|
#line 3889 "nuweb.w"
|
|
extern void source_open(char *name);
|
|
/* pass in the name of the source file */
|
|
extern int source_get(void);
|
|
/* no args; returns the next char or EOF */
|
|
extern int source_last; /* what last source_get() returned. */
|
|
extern int source_peek; /* The next character to get */
|
|
|
|
#line 3964 "nuweb.w"
|
|
extern void source_ungetc(int*);
|
|
|
|
#line 4173 "nuweb.w"
|
|
extern void init_scraps(void);
|
|
extern int collect_scrap(void);
|
|
extern int write_scraps(FILE *file, char *spelling, Scrap_Node *defs,
|
|
int global_indent, char *indent_chars,
|
|
char debug_flag, char tab_flag, char indent_flag,
|
|
unsigned char comment_flag, Arglist *inArgs,
|
|
char *inParams[9], Parameters parameters,
|
|
char *title);
|
|
extern void write_scrap_ref(FILE *file, int num, int first, int *page);
|
|
extern void write_single_scrap_ref(FILE *file, int num);
|
|
extern int num_scraps(void);
|
|
|
|
#line 4501 "nuweb.w"
|
|
extern void add_to_use(Name * name, int current_scrap);
|
|
|
|
#line 4575 "nuweb.w"
|
|
extern Arglist *instance(Arglist *a, Arglist *par, char *arg[9], int *ch);
|
|
|
|
#line 4984 "nuweb.w"
|
|
extern void collect_numbers(char *aux_name);
|
|
|
|
#line 5116 "nuweb.w"
|
|
extern Name *collect_file_name(void);
|
|
extern Name *collect_macro_name(void);
|
|
extern Arglist *collect_scrap_name(int current_scrap);
|
|
extern Name *name_add(Name **rt, char *spelling, unsigned char sector);
|
|
extern Name *prefix_add(Name **rt, char *spelling, unsigned char sector);
|
|
extern char *save_string(char *);
|
|
extern void reverse_lists(Name *names);
|
|
|
|
#line 5260 "nuweb.w"
|
|
extern int robs_strcmp(char*, char*);
|
|
|
|
#line 5579 "nuweb.w"
|
|
extern Name *install_args(Name * name, int argc, char *arg[0]);
|
|
|
|
#line 6000 "nuweb.w"
|
|
extern void search(void);
|
|
|
|
#line 6247 "nuweb.w"
|
|
extern void format_uses_refs(FILE *, int);
|
|
|
|
#line 6302 "nuweb.w"
|
|
extern void format_defs_refs(FILE *, int);
|
|
|
|
#line 6413 "nuweb.w"
|
|
void write_label(char label_name[], FILE * file);
|
|
|
|
#line 6506 "nuweb.w"
|
|
extern void *arena_getmem(size_t n);
|
|
extern void arena_free(void);
|
|
|
|
#line 830 "nuweb.w"
|
|
|
|
/* Operating System Dependencies */
|
|
|
|
#line 972 "nuweb.w"
|
|
|
|
#if defined(VMS)
|
|
#define PATH_SEP(c) (c==']'||c==':')
|
|
#define PATH_SEP_CHAR ""
|
|
#define DEFAULT_PATH ""
|
|
#elif defined(MSDOS)
|
|
#define PATH_SEP(c) (c=='\\')
|
|
#define PATH_SEP_CHAR "\\"
|
|
#define DEFAULT_PATH "."
|
|
#else
|
|
#define PATH_SEP(c) (c=='/')
|
|
#define PATH_SEP_CHAR "/"
|
|
#define DEFAULT_PATH "."
|
|
#endif
|
|
|
|
#line 831 "nuweb.w"
|