From 8be33bb3615db4dada858892df22bce42c30ddc0 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Thu, 21 May 2020 19:49:58 +0200 Subject: [PATCH] clear all variables upon 'quit' --- src/frontend/com_unset.c | 10 ++++++++++ src/frontend/com_unset.h | 1 + src/frontend/misccoms.c | 1 + 3 files changed, 12 insertions(+) diff --git a/src/frontend/com_unset.c b/src/frontend/com_unset.c index 4a44052d5..78447a252 100644 --- a/src/frontend/com_unset.c +++ b/src/frontend/com_unset.c @@ -10,6 +10,7 @@ #include "com_unset.h" #include "variable.h" +/* clear variables (by name or all) */ void com_unset(wordlist *wl) { @@ -29,3 +30,12 @@ com_unset(wordlist *wl) wl = wl->wl_next; } } + +/* clear all variables (called from com_quit) */ +void unset_all(void){ + struct variable *var, *nv; + for (var = variables; var; var = nv) { + nv = var->va_next; + cp_remvar(var->va_name); + } +} diff --git a/src/frontend/com_unset.h b/src/frontend/com_unset.h index 84edcbfe5..2ea7d9f34 100644 --- a/src/frontend/com_unset.h +++ b/src/frontend/com_unset.h @@ -8,5 +8,6 @@ #include "ngspice/wordlist.h" void com_unset(wordlist *wl); +void unset_all(void); #endif diff --git a/src/frontend/misccoms.c b/src/frontend/misccoms.c index 596615dd2..3ccc5e55e 100644 --- a/src/frontend/misccoms.c +++ b/src/frontend/misccoms.c @@ -108,6 +108,7 @@ com_quit(wordlist *wl) #ifdef SHARED_MODULE destroy_const_plot(); spice_destroy_devices(); + unset_all(); cp_resetcontrol(FALSE); /* add 1000 to notify that we exit from 'quit' */ controlled_exit(1000 + exitcode);