1 /* 2 * main.h 3 * various constants etc 4 */ 5 6 #ifndef _MAIN_H_ 7 #define _MAIN_H_ 8 9 /* shared functions from main.c */ 10 void printver __P ((void)); 11 void status __P ((int s)); 12 void process_remote_input __P ((char *buf, int size)); 13 void push_params __P ((void)); 14 void pop_params __P ((void)); 15 void prompt_set_iac __P ((char *p)); 16 char *parse_instruction __P ((char *line, char silent, char subs, char jit_subs)); 17 char *get_next_instr __P ((char *p)); 18 void parse_user_input __P ((char *line, char silent)); 19 void set_deffile __P ((char *arg)); 20 int is_permanent_variable __P ((varnode *v)); 21 22 23 /* shared vars from main.c */ 24 extern int prompt_status, line_status; 25 extern int limit_mem; 26 extern char ready; 27 extern VOLATILE char confirm; 28 extern int history_done; 29 extern int linemode; 30 extern char hostname[]; 31 extern int portnumber; 32 extern char deffile[], helpfile[], copyfile[]; 33 34 extern int cols, lines, cols_1; /* terminal window size */ 35 extern int olines; /* previous terminal window size */ 36 extern int line0, col0; /* origin of input line */ 37 38 extern varnode *prompt; /* $prompt is always set */ 39 extern ptr marked_prompt; /* $prompt with marks added */ 40 41 #define promptstr (ptrdata(prompt->str)) 42 #define promptlen (ptrlen(prompt->str)) 43 #define promptzero() (prompt_status = 0, ptrzero(prompt->str)) 44 45 extern char surely_isprompt; /* 1 if #prompt set #isprompt */ 46 extern char edbuf[]; /* input line buffer */ 47 extern int edlen; /* characters in edbuf */ 48 extern int pos; /* cursor position in edbuf */ 49 extern char edattrbeg[], edattrend[]; 50 extern int edattrbg; 51 52 extern VOLATILE int sig_pending, sig_winch_got, sig_chld_got; 53 54 extern long received, sent; 55 56 #ifndef NO_CLOCK 57 #include <time.h> 58 extern clock_t start_clock, cpu_clock; 59 #endif 60 61 extern aliasnode *aliases[MAX_HASH]; 62 extern aliasnode *sortedaliases; 63 extern actionnode *actions; 64 extern promptnode *prompts; 65 extern marknode *markers; 66 extern int a_nice; 67 extern keynode *keydefs; 68 extern delaynode *delays; 69 extern delaynode *dead_delays; 70 extern varnode *named_vars[2][MAX_HASH]; 71 extern varnode *sortednamed_vars[2]; 72 extern int num_named_vars[2]; 73 extern int max_named_vars; 74 extern vars *var; 75 #define VAR (var+NUMVAR) 76 77 extern ptr globptr[]; 78 extern char globptrok; 79 #define TAKE_PTR(pbuf, buf) do { if (globptrok & 1) globptrok &= ~1, pbuf = globptr; else if (globptrok & 2) globptrok &= ~2, pbuf = globptr + 1; else pbuf = &buf; } while(0) 80 #define DROP_PTR(pbuf) do { if (*pbuf == *globptr) globptrok |= 1; else if (*pbuf == *(globptr+1)) globptrok |= 2; else ptrdel(*pbuf); } while(0) 81 82 extern vtime now, start_time, ref_time; 83 extern int now_updated; 84 85 extern char initstr[]; 86 extern char prefixstr[]; 87 extern char inserted_next[]; 88 extern char flashback; 89 extern int excursion; 90 extern char verbatim; 91 92 extern char opt_exit; 93 extern char opt_history; 94 extern char opt_words; 95 extern char opt_compact; 96 extern char opt_debug; 97 extern char opt_wrap; 98 extern char opt_echo; 99 extern char opt_info; 100 extern char opt_keyecho; 101 extern char opt_speedwalk; 102 extern char opt_autoprint; 103 extern char opt_reprint; 104 extern char opt_sendsize; 105 extern char opt_autoclear; 106 107 extern function_str last_edit_cmd; 108 109 extern char *delim_list[]; 110 extern int delim_len[]; 111 extern char *delim_name[]; 112 extern int delim_mode; 113 114 /* Group delimiter for actions/aliases, defaults to @ */ 115 extern char *group_delim; 116 117 extern char action_chars[]; 118 119 #endif /* _MAIN_H_ */ 120