From dc0fbe42203b4d0acde248c3f430138fb4b32ef2 Mon Sep 17 00:00:00 2001 From: rlar Date: Tue, 23 Apr 2013 18:43:56 +0200 Subject: [PATCH] bug fix, preserve filename case for `codemodel', `load' and `use' reported and fixed by Emil Lambrache on the bug tracker http://sourceforge.net/p/ngspice/bugs/241/ "#241 case sensitivity not preserved for file names" --- src/frontend/inpcom.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index ba1d37ff5..a5b048c3b 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -617,10 +617,23 @@ inp_readall(FILE *fp, int call_depth, char *dir_name, bool comfile, bool intfile /* loop through 'buffer' until end is reached. Then test for premature end. If premature end is reached, spew error and zap the line. */ - if (!ciprefix("write", buffer)) { // exclude 'write' command so filename case preserved + { char *s; - for (s = buffer; *s && (*s != '\n'); s++) - *s = (char) tolower(*s); + + if ( !ciprefix("write", buffer) && + !ciprefix("codemodel", buffer) && + !ciprefix("use", buffer) && + !ciprefix("load", buffer) + ) + { + for (s = buffer; *s && (*s != '\n'); s++) + *s = (char) tolower(*s); + } else { + // exclude some commands to preserve filename case + for (s = buffer; *s && (*s != '\n'); s++) + ; + } + if (!*s) { // fprintf(cp_err, "Warning: premature EOF\n"); }