enable '-' as valid character in a subcircuit name

This commit is contained in:
Holger Vogt 2018-01-20 00:08:37 +01:00
parent c8cd763314
commit 04059e5426
3 changed files with 16 additions and 2 deletions

View File

@ -17,5 +17,6 @@ void cadd(SPICE_DSTRINGPTR s, char c);
bool alfa(char c);
bool alfanum(char c);
bool alfanumps(char c);
int yes_or_no(void);

View File

@ -149,3 +149,11 @@ alfanum(char c)
{
return alfa(c) || ((c >= '0') && (c <= '9'));
}
/* Additionally '-' allowed in subckt name if ps compatible */
bool
alfanumps(char c)
{
return alfa(c) || ((c >= '0') && (c <= '9')) || c == '-';
}

View File

@ -28,6 +28,7 @@ Todo:
#include "ngspice/fteext.h"
#include "ngspice/stringskip.h"
#include "ngspice/compatmode.h"
#ifdef SHARED_MODULE
extern ATTRIBUTE_NORETURN void shared_exit(int status);
@ -185,8 +186,12 @@ findsubname(dico_t *dico, SPICE_DSTRINGPTR dstr_p)
char *t;
entry_t *entry;
/* check for known subckt name */
for (t = p; alfanum(*t); t++)
;
if (inp_compat_mode == COMPATMODE_PS)
for (t = p; alfanumps(*t); t++)
;
else
for (t = p; alfanum(*t); t++)
;
spice_dstring_reinit(&name);
pscopy(&name, p, t);
entry = entrynb(dico, spice_dstring_value(&name));