1 /********** 2 Copyright 1990 Regents of the University of California. All rights reserved. 3 Author: 1986 Wayne A. Christopher, U. C. Berkeley CAD Group 4 Modified: 2000 AlansFixes 5 **********/ 6 7 /* 8 * Definitions for all external symbols in CP. 9 */ 10 11 #ifndef ngspice_CPEXTERN_H 12 #define ngspice_CPEXTERN_H 13 14 #include "ngspice/wordlist.h" 15 #include "ngspice/bool.h" 16 17 #include <stdarg.h> 18 19 struct ccom; 20 21 /* com_alias.c */ 22 23 extern struct alias *cp_aliases; 24 extern void cp_paliases(char *word); 25 extern void cp_setalias(char *word, wordlist *wlist); 26 extern void cp_unalias(char *word); 27 28 extern wordlist *cp_doalias(wordlist *wlist); 29 30 /* backquote.c */ 31 32 extern char cp_back; 33 extern wordlist *cp_bquote(wordlist *wlist); 34 35 /* complete.c */ 36 37 extern bool cp_nocc; 38 extern bool cp_comlook(char *word); 39 extern struct ccom *cp_kwswitch(int kw_class, struct ccom *tree); 40 extern void cp_addcomm(char *word, long int bits0, long int bits1, long int bits2, long int bits3); 41 extern void cp_addkword(int kw_class, char *word); 42 extern void cp_ccom(wordlist *wlist, char *buf, bool esc); 43 extern void cp_ccon(bool on); 44 extern void cp_ccrestart(bool kwords); 45 extern void cp_remcomm(char *word); 46 extern void cp_remkword(int kw_class, const char *word); 47 extern void cp_destroy_keywords(void); 48 49 extern wordlist *cp_cctowl(struct ccom *stuff); 50 51 /* cshpar.c */ 52 53 extern FILE *cp_in; 54 extern FILE *cp_out; 55 extern FILE *cp_err; 56 extern FILE *cp_curin; 57 extern FILE *cp_curout; 58 extern FILE *cp_curerr; 59 extern bool cp_debug; 60 extern bool cp_no_histsubst; /* controlled by "no_histsubst" true/false */ 61 extern char cp_amp; 62 extern char cp_gt; 63 extern char cp_lt; 64 extern void cp_ioreset(void); 65 extern wordlist *cp_redirect(wordlist *wlist); 66 extern wordlist *cp_parse(char *string); 67 68 /* control.c */ 69 70 extern bool cp_cwait; 71 extern bool cp_dounixcom; 72 extern char *cp_csep; 73 extern char * get_alt_prompt(void); 74 extern int cp_evloop(char *string); 75 extern void cp_resetcontrol(bool warn); 76 extern void cp_toplevel(void); 77 extern void cp_popcontrol(void); 78 extern void cp_pushcontrol(void); 79 80 /* glob.c */ 81 82 extern char *cp_tildexpand(const char *string); 83 extern char cp_cbrac; 84 extern char cp_ccurl; 85 extern char cp_comma; 86 extern char cp_huh; 87 extern char cp_obrac; 88 extern char cp_ocurl; 89 extern char cp_star; 90 extern char cp_til; 91 extern wordlist *cp_doglob(wordlist *wlist); 92 93 /* history.c */ 94 95 extern bool cp_didhsubst; 96 extern char cp_bang; 97 extern char cp_hat; 98 extern int cp_maxhistlength; 99 extern struct histent *cp_lastone; 100 extern void cp_addhistent(int event, wordlist *wlist); 101 extern wordlist *cp_histsubst(wordlist *wlist); 102 103 /* lexical.c */ 104 105 extern FILE *cp_inp_cur; 106 extern bool cp_bqflag; 107 extern bool cp_interactive; 108 extern char *cp_altprompt; 109 extern char *cp_promptstring; 110 extern int cp_event; 111 extern wordlist *cp_lexer(char *string); 112 extern int inchar(FILE *fp); 113 114 /* modify.c */ 115 116 extern char cp_chars[]; 117 extern void cp_init(void); 118 119 /* output.c */ 120 121 extern bool out_moremode; 122 extern bool out_isatty; 123 extern void out_init(void); 124 125 #ifdef __GNUC__ 126 extern void out_printf(char *fmt, ...) __attribute__ ((format (__printf__, 1, 2))); 127 #else 128 extern void out_printf(char *fmt, ...); 129 #endif 130 131 extern void out_vprintf(const char *fmt, va_list ap); 132 extern void out_send(char *string); 133 134 /* quote.c */ 135 136 extern char *cp_unquote(const char *string); 137 138 /* unixcom.c */ 139 140 extern bool cp_unixcom(wordlist *wlist); 141 extern void cp_hstat(void); 142 void cp_rehash(char *pathlist, bool docc); 143 144 /* variable.c */ 145 146 enum cp_types { 147 CP_BOOL, 148 CP_NUM, 149 CP_REAL, 150 CP_STRING, 151 CP_LIST 152 }; 153 154 extern bool cp_ignoreeof; 155 extern bool cp_noclobber; 156 extern bool cp_noglob; 157 extern bool cp_nonomatch; 158 extern char cp_dol; 159 extern void cp_remvar(char *varname); 160 void cp_vset(const char *varname, enum cp_types type, const void *value); 161 extern struct variable *cp_setparse(wordlist *wl); 162 extern wordlist *vareval(char *string); 163 extern char *span_var_expr(char *t); 164 165 /* var2.c */ 166 extern void cp_vprint(void); 167 extern bool cp_getvar(char *name, enum cp_types type, void *retval, size_t rsize); 168 169 /* cpinterface.c etc -- stuff CP needs from FTE */ 170 171 extern bool cp_istrue(wordlist *wl); 172 extern bool cp_oddcomm(char *s, wordlist *wlist); 173 extern void cp_doquit(void); 174 extern void cp_periodic(void); 175 extern void ft_cpinit(void); 176 extern struct comm *cp_coms; 177 extern char *cp_program; 178 extern struct variable *cp_enqvar(const char *word, int *tbfreed); 179 extern struct variable *cp_usrvars(void); 180 int cp_usrset(struct variable *var, bool isset); 181 extern void fatal(void); 182 183 #endif 184