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