From 41ead284f3a127310a53ac9c66e23160eeef03e2 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sun, 28 Mar 2021 11:36:29 +0200 Subject: [PATCH] make the error detection work properly --- src/spicelib/analysis/optran.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/spicelib/analysis/optran.c b/src/spicelib/analysis/optran.c index 731eec099..4f119e9b5 100644 --- a/src/spicelib/analysis/optran.c +++ b/src/spicelib/analysis/optran.c @@ -62,24 +62,30 @@ static double opramptime = 0.; void com_optran(wordlist* wl) { wordlist* wltmp = wl; char* stpstr; - int err; + int err, optrancom; /* current circuit */ if (!ft_curckt) { fprintf(cp_err, "Error: no circuit loaded\n"); return; } /* wordlist with 6 parameters */ - ft_curckt->ci_defTask->TSKnoOpIter = strtol(wltmp->wl_word, &stpstr, 10); + optrancom = strtol(wltmp->wl_word, &stpstr, 10); if ((errno == ERANGE) || (*stpstr != '\0')) goto bugquit; + if (optrancom == 0) + ft_curckt->ci_defTask->TSKnoOpIter = 1; + else + ft_curckt->ci_defTask->TSKnoOpIter = 0; wltmp = wltmp->wl_next; - ft_curckt->ci_defTask->TSKnumGminSteps = strtol(wltmp->wl_word, &stpstr, 10); + optrancom = strtol(wltmp->wl_word, &stpstr, 10); if ((errno == ERANGE) || (*stpstr != '\0')) goto bugquit; + ft_curckt->ci_defTask->TSKnumGminSteps = optrancom; wltmp = wltmp->wl_next; - ft_curckt->ci_defTask->TSKnumSrcSteps = strtol(wltmp->wl_word, &stpstr, 10); + optrancom = strtol(wltmp->wl_word, &stpstr, 10); if ((errno == ERANGE) || (*stpstr != '\0')) goto bugquit; + ft_curckt->ci_defTask->TSKnumSrcSteps = optrancom; wltmp = wltmp->wl_next; stpstr = wltmp->wl_word; opstepsize = INPevaluate(&stpstr, &err, 1);