Browse Source

Add ft_spiniterror, to be set during spinit processing,as

ft_stricterror will be set only later, when .spiceinit is
executed.
pre-master-46
Holger Vogt 2 years ago
parent
commit
344beaad24
  1. 23
      src/frontend/com_dl.c
  2. 7
      src/frontend/options.c
  3. 1
      src/include/ngspice/fteext.h

23
src/frontend/com_dl.c

@ -8,13 +8,21 @@
#ifdef XSPICE
void com_codemodel(wordlist *wl)
{
wordlist *ww;
for (ww = wl; ww; ww = ww->wl_next)
if (load_opus(wl->wl_word)) {
fprintf(cp_err, "Error: Library %s couldn't be loaded!\n", ww->wl_word);
if (ft_stricterror)
controlled_exit(EXIT_BAD);
}
if (wl && wl->wl_word)
#ifdef CM_TRACE
fprintf(stdout, "Note: loading codemodel %s\n", ww->wl_word);
#endif
if (load_opus(wl->wl_word)) {
fprintf(stderr, "Error: Library %s couldn't be loaded!\n", wl->wl_word);
ft_spiniterror = TRUE;
if (ft_stricterror) /* if set in spinit */
controlled_exit(EXIT_BAD);
}
#ifdef CM_TRACE
else {
fprintf(stdout, "Codemodel %s is loaded\n", wl->wl_word);
}
#endif
}
#endif
@ -25,6 +33,7 @@ void com_osdi(wordlist *wl)
for (ww = wl; ww; ww = ww->wl_next)
if (load_osdi(ww->wl_word)) {
fprintf(cp_err, "Error: Library %s couldn't be loaded!\n", ww->wl_word);
ft_spiniterror = TRUE;
if (ft_stricterror)
controlled_exit(EXIT_BAD);
}

7
src/frontend/options.c

@ -24,7 +24,7 @@ Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group
bool ft_acctprint = FALSE, ft_noacctprint = FALSE, ft_listprint = FALSE;
bool ft_nodesprint = FALSE, ft_optsprint = FALSE, ft_noinitprint = FALSE;
bool ft_norefprint = FALSE, ft_skywaterpdk = FALSE;
bool ft_ngdebug = FALSE, ft_nginfo = FALSE, ft_stricterror = FALSE;
bool ft_ngdebug = FALSE, ft_nginfo = FALSE, ft_stricterror = FALSE, ft_spiniterror = FALSE;
static void setdb(char *str);
static struct variable *cp_enqvec_as_var(const char *vec_name,
@ -327,6 +327,11 @@ cp_usrset(struct variable *var, bool isset)
ft_strictnumparse = isset;
} else if (eq(var->va_name, "strict_errorhandling")) {
ft_stricterror = isset;
if (ft_ngdebug)
fprintf(stdout, "Note: strict_errorhandling is set\n");
/* Immediately bail out when spinit error has occured */
if (ft_spiniterror)
controlled_exit(EXIT_BAD);
} else if (eq(var->va_name, "rawfileprec")) {
if ((var->va_type == CP_BOOL) && (isset == FALSE))
raw_prec = -1;

1
src/include/ngspice/fteext.h

@ -268,6 +268,7 @@ extern struct card *inp_getoptsc(char *line, struct card *options);
extern bool ft_ngdebug;
extern bool ft_nginfo;
extern bool ft_stricterror;
extern bool ft_spiniterror;
extern bool ft_skywaterpdk;
/* parse.c */

Loading…
Cancel
Save