From ba262eaa5fcb0857ccd3d9e595483d8b774d97bf Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sat, 17 Apr 2021 18:17:31 +0200 Subject: [PATCH] Internal global variable Infile_Path is a file search path made available for the code models. It is set when command 'source' is used. This patch makes the first entry in var 'sourcepath' available to the code models as well by setting Infile_Path, when 'sourcepath' is set in .spiceinit. --- src/sharedspice.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/sharedspice.c b/src/sharedspice.c index 00ee2c2d0..ff1247f69 100644 --- a/src/sharedspice.c +++ b/src/sharedspice.c @@ -153,6 +153,7 @@ static bool cont_condition; #include "frontend/com_measure2.h" #include "frontend/misccoms.h" #include "ngspice/stringskip.h" +#include "variable.h" #ifdef HAVE_FTIME #include @@ -388,7 +389,6 @@ static SendEvtData* sendevt; static void* euserptr; static wordlist *shcontrols; - // thread IDs unsigned int main_id, ng_id, command_id; @@ -822,6 +822,8 @@ ngSpice_Init(SendChar* printfcn, SendStat* statusfcn, ControlledExit* ngspiceexi { sighandler old_sigsegv = NULL; + struct variable* sourcepathvar; + pfcn = printfcn; /* if caller sends NULL, don't send printf strings */ if (!pfcn) @@ -998,6 +1000,11 @@ ngSpice_Init(SendChar* printfcn, SendStat* statusfcn, ControlledExit* ngspiceexi if(!myvec) myvec = TMALLOC(vector_info, sizeof(vector_info)); + /* Read first entry of sourcepath var, set Infile_path for code models */ + if ( cp_getvar("sourcepath", CP_LIST, &sourcepathvar, 0)) { + Infile_Path = copy(sourcepathvar->va_string); + } + #if !defined(low_latency) /* If caller has sent valid address for pfcn */ if (!noprintfwanted)