From e151b691fb87e66b328182794e08a4f70a57eeca Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Fri, 26 Apr 2024 11:11:36 +0200 Subject: [PATCH] Add an additional funtion parameter 'filename' to fcn inp_readall to transfer not only the folder, but also the file name of the current input --- src/frontend/device.c | 2 +- src/frontend/inp.c | 10 +++++----- src/frontend/nutinp.c | 2 +- src/include/ngspice/fteext.h | 2 +- src/xspice/evt/evtcheck_nodes.c | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/frontend/device.c b/src/frontend/device.c index d9b21dec5..a3087fabc 100644 --- a/src/frontend/device.c +++ b/src/frontend/device.c @@ -1543,7 +1543,7 @@ com_alter_mod(wordlist *wl) } { char *dir_name = ngdirname(filename); - modeldeck = inp_readall(modfile, dir_name, 0, 0, NULL); + modeldeck = inp_readall(modfile, dir_name, filename, 0, 0, NULL); tfree(dir_name); } tfree(input); diff --git a/src/frontend/inp.c b/src/frontend/inp.c index 1d98ed4df..4086ef7f4 100644 --- a/src/frontend/inp.c +++ b/src/frontend/inp.c @@ -532,7 +532,7 @@ inp_spsource(FILE *fp, bool comfile, char *filename, bool intfile) /* inp_source() called with fp: load from file, */ /* called with *fp == NULL and intfile: we want to load circuit from circarray */ if (fp || intfile) { - deck = inp_readall(fp, dir_name, comfile, intfile, &expr_w_temper); + deck = inp_readall(fp, dir_name, filename, comfile, intfile, &expr_w_temper); /* files starting with *ng_script are user supplied command files */ if (deck && ciprefix("*ng_script", deck->line)) @@ -580,7 +580,7 @@ inp_spsource(FILE *fp, bool comfile, char *filename, bool intfile) fprintf(fdo, "****************** complete mc deck ***************\n\n"); /* now completely */ for (tc = deck; tc; tc = tc->nextcard) - fprintf(fdo, "%6d %6d %s\n", tc->linenum_orig, tc->linenum, tc->line); + fprintf(fdo, "%6s %6d %6d %s\n", tc->linesource, tc->linenum_orig, tc->linenum, tc->line); fclose(fdo); } else @@ -962,17 +962,17 @@ inp_spsource(FILE *fp, bool comfile, char *filename, bool intfile) struct card *tc = NULL; fprintf(fdo, "**************** uncommented deck **************\n\n"); /* always print first line */ - fprintf(fdo, "%6d %6d %s\n", deck->linenum_orig, deck->linenum, deck->line); + fprintf(fdo, "%6s %6d %6d %s\n", deck->linesource, deck->linenum_orig, deck->linenum, deck->line); /* here without out-commented lines */ for (tc = deck->nextcard; tc; tc = tc->nextcard) { if (*(tc->line) == '*') continue; - fprintf(fdo, "%6d %6d %s\n", tc->linenum_orig, tc->linenum, tc->line); + fprintf(fdo, "%6s %6d %6d %s\n", tc->linesource, tc->linenum_orig, tc->linenum, tc->line); } fprintf(fdo, "\n****************** complete deck ***************\n\n"); /* now completely */ for (tc = deck; tc; tc = tc->nextcard) - fprintf(fdo, "%6d %6d %s\n", tc->linenum_orig, tc->linenum, tc->line); + fprintf(fdo, "%6s %6d %6d %s\n", tc->linesource, tc->linenum_orig, tc->linenum, tc->line); fclose(fdo); } else diff --git a/src/frontend/nutinp.c b/src/frontend/nutinp.c index 746605f76..52b20097f 100644 --- a/src/frontend/nutinp.c +++ b/src/frontend/nutinp.c @@ -35,7 +35,7 @@ inp_nutsource(FILE *fp, bool comfile, char *filename) wordlist *controls = NULL; FILE *lastin, *lastout, *lasterr; - deck = inp_readall(fp, NULL, comfile, FALSE, NULL); /* still to check if . or filename instead of NULL */ + deck = inp_readall(fp, NULL, NULL, comfile, FALSE, NULL); /* still to check if . or filename instead of NULL */ if (!deck) return; diff --git a/src/include/ngspice/fteext.h b/src/include/ngspice/fteext.h index 589c62564..b00657efd 100644 --- a/src/include/ngspice/fteext.h +++ b/src/include/ngspice/fteext.h @@ -217,7 +217,7 @@ extern void inp_source(const char *file); int inp_spsource(FILE *fp, bool comfile, char *filename, bool intfile); extern void inp_casefix(char *string); extern void inp_list(FILE *file, struct card *deck, struct card *extras, int type); -struct card *inp_readall(FILE *fp, const char *dir_name, +struct card *inp_readall(FILE *fp, const char *dir_name, const char* file_name, bool comfile, bool intfile, bool *expr_w_temper_p); extern FILE *inp_pathopen(const char *name, const char *mode); extern char *search_identifier(char *str, const char *identifier, char *str_begin); diff --git a/src/xspice/evt/evtcheck_nodes.c b/src/xspice/evt/evtcheck_nodes.c index 9cf51b9af..49f8e29c7 100644 --- a/src/xspice/evt/evtcheck_nodes.c +++ b/src/xspice/evt/evtcheck_nodes.c @@ -229,7 +229,7 @@ static struct card *expand_deck(struct card *head) /* The cards are passed to _inp_readall() via a global. */ circarray = pointers; - card = inp_readall(NULL, Infile_Path, FALSE, TRUE, NULL); + card = inp_readall(NULL, Infile_Path, "autobridge", FALSE, TRUE, NULL); card = inp_subcktexpand(card); ft_ngdebug = save_debug;