From 8b709a394f0288a668684279a1354942583d01ea Mon Sep 17 00:00:00 2001 From: h_vogt Date: Sun, 28 Feb 2016 20:07:04 +0100 Subject: [PATCH] cpitf.c, cp_istrue(), avoid surplus Warning Message when an `if' condition expands to nothing When in expression if $var ... the variable `var' was undefined, then ngspice printed a surplus warning message > Warning: NULL arithmetic expression in addition to the error message > Error: var: no such variable. ngspice continues to process the conditional construct and evaluates the condition as "FALSE" --- examples/control_structs/if-test-1.cir | 1 - src/frontend/cpitf.c | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/control_structs/if-test-1.cir b/examples/control_structs/if-test-1.cir index 31030682e..41927bdf5 100644 --- a/examples/control_structs/if-test-1.cir +++ b/examples/control_structs/if-test-1.cir @@ -36,7 +36,6 @@ end echo echo "expect Error: testvar_d: no such variable." -echo "expect Warning: NULL arithmetic expression" * in cp_istrue(): wl!=NULL then wl==NULL names==NULL v==NULL if $testvar_d echo "FAIL: you should not see this" diff --git a/src/frontend/cpitf.c b/src/frontend/cpitf.c index 669bdedbd..596ea97c7 100644 --- a/src/frontend/cpitf.c +++ b/src/frontend/cpitf.c @@ -306,6 +306,9 @@ cp_istrue(wordlist *wl) /* First do all the csh-type stuff here... */ wl = wl_copy(wl); wl = cp_variablesubst(wl); + /* return FALSE if this did not expand to anything */ + if (!wl) + return FALSE; wl = cp_bquote(wl); cp_striplist(wl);