version 1.31, 2019/06/28 13:35:01 |
version 1.32, 2021/01/26 18:21:25 |
|
|
* of output file */ |
* of output file */ |
char bakfile[PATH_MAX] = ""; |
char bakfile[PATH_MAX] = ""; |
|
|
|
FILE *input; /* the fid for the input file */ |
|
FILE *output; /* the output file */ |
|
|
|
char *labbuf; /* buffer for label */ |
|
char *s_lab; /* start ... */ |
|
char *e_lab; /* .. and end of stored label */ |
|
char *l_lab; /* limit of label buffer */ |
|
|
|
char *codebuf; /* buffer for code section */ |
|
char *s_code; /* start ... */ |
|
char *e_code; /* .. and end of stored code */ |
|
char *l_code; /* limit of code section */ |
|
|
|
char *combuf; /* buffer for comments */ |
|
char *s_com; /* start ... */ |
|
char *e_com; /* ... and end of stored comments */ |
|
char *l_com; /* limit of comment buffer */ |
|
|
|
char *tokenbuf; /* the last token scanned */ |
|
char *s_token; |
|
char *e_token; |
|
char *l_token; |
|
|
|
char *in_buffer; /* input buffer */ |
|
char *in_buffer_limit; /* the end of the input buffer */ |
|
char *buf_ptr; /* ptr to next character to be taken from |
|
* in_buffer */ |
|
char *buf_end; /* ptr to first after last char in in_buffer */ |
|
|
|
char save_com[sc_size]; /* input text is saved here when looking for |
|
* the brace after an if, while, etc */ |
|
char *sc_end; /* pointer into save_com buffer */ |
|
|
|
char *bp_save; /* saved value of buf_ptr when taking input |
|
* from save_com */ |
|
char *be_save; /* similarly saved value of buf_end */ |
|
|
|
int pointer_as_binop; |
|
int blanklines_after_declarations; |
|
int blanklines_before_blockcomments; |
|
int blanklines_after_procs; |
|
int blanklines_around_conditional_compilation; |
|
int swallow_optional_blanklines; |
|
int n_real_blanklines; |
|
int prefix_blankline_requested; |
|
int postfix_blankline_requested; |
|
int break_comma; /* when true and not in parens, break after a |
|
* comma */ |
|
int btype_2; /* when true, brace should be on same line as |
|
* if, while, etc */ |
|
float case_ind; /* indentation level to be used for a "case |
|
* n:" */ |
|
int code_lines; /* count of lines with code */ |
|
int had_eof; /* set to true when input is exhausted */ |
|
int line_no; /* the current line number. */ |
|
int max_col; /* the maximum allowable line length */ |
|
int verbose; /* when true, non-essential error messages are |
|
* printed */ |
|
int cuddle_else; /* true if else should cuddle up to '}' */ |
|
int star_comment_cont; /* true iff comment continuation lines should |
|
* have stars at the beginning of each line. */ |
|
int comment_delimiter_on_blankline; |
|
int troff; /* true iff were generating troff input */ |
|
int procnames_start_line; /* if true, the names of procedures |
|
* being defined get placed in column |
|
* 1 (ie. a newline is placed between |
|
* the type of the procedure and its |
|
* name) */ |
|
int proc_calls_space; /* If true, procedure calls look like: |
|
* foo(bar) rather than foo (bar) */ |
|
int format_col1_comments; /* If comments which start in column 1 |
|
* are to be magically reformatted |
|
* (just like comments that begin in |
|
* later columns) */ |
|
int inhibit_formatting; /* true if INDENT OFF is in effect */ |
|
int suppress_blanklines;/* set iff following blanklines should be |
|
* suppressed */ |
|
int continuation_indent;/* set to the indentation between the edge of |
|
* code and continuation lines */ |
|
int lineup_to_parens; /* if true, continued code within parens will |
|
* be lined up to the open paren */ |
|
int Bill_Shannon; /* true iff a blank should always be inserted |
|
* after sizeof */ |
|
int blanklines_after_declarations_at_proctop; /* This is vaguely |
|
* similar to |
|
* blanklines_after_decla |
|
* rations except that |
|
* it only applies to |
|
* the first set of |
|
* declarations in a |
|
* procedure (just after |
|
* the first '{') and it |
|
* causes a blank line |
|
* to be generated even |
|
* if there are no |
|
* declarations */ |
|
int block_comment_max_col; |
|
int extra_expression_indent; /* True if continuation lines from the |
|
* expression part of "if(e)", |
|
* "while(e)", "for(e;e;e)" should be |
|
* indented an extra tab stop so that |
|
* they don't conflict with the code |
|
* that follows */ |
|
int use_tabs; /* set true to use tabs for spacing, |
|
* false uses all spaces */ |
|
|
|
/* -troff font state information */ |
|
|
|
struct fstate |
|
keywordf, /* keyword font */ |
|
stringf, /* string font */ |
|
boxcomf, /* Box comment font */ |
|
blkcomf, /* Block comment font */ |
|
scomf, /* Same line comment font */ |
|
bodyf; /* major body font */ |
|
|
|
struct parser_state ps; |
|
|
|
int ifdef_level; |
|
int rparen_count; |
|
struct parser_state state_stack[5]; |
|
struct parser_state match_state[5]; |
|
|
|
|
void bakcopy(void); |
void bakcopy(void); |
|
|
int |
int |