Files
nuweb/global.h

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"