- bug fix in spice driver :
when used with the SPI_NAMEDNODE option, vectorized node names are not properly written (for example: 'v 0' instead of 'v[0]' in the generated spice file)
This commit is contained in:
parent
d30e4fa501
commit
33554c4d67
|
@ -41,6 +41,7 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#include <string.h>
|
||||||
#include <mut.h>
|
#include <mut.h>
|
||||||
#include <mlo.h>
|
#include <mlo.h>
|
||||||
#include <rcn.h>
|
#include <rcn.h>
|
||||||
|
@ -69,6 +70,34 @@ char SPI_NAMEDNODES;
|
||||||
#define SPI_NONODES (-1l)
|
#define SPI_NONODES (-1l)
|
||||||
#define SPI_MAXSTATICNAME 16
|
#define SPI_MAXSTATICNAME 16
|
||||||
|
|
||||||
|
char *spivecname( char *name )
|
||||||
|
{
|
||||||
|
char *new_name;
|
||||||
|
char *blank;
|
||||||
|
unsigned int length;
|
||||||
|
unsigned int pos_blank;
|
||||||
|
|
||||||
|
if ( name != (char *)0 )
|
||||||
|
{
|
||||||
|
blank = strchr( name, ' ' );
|
||||||
|
if ( blank != (char *)0 )
|
||||||
|
{
|
||||||
|
length = strlen( name );
|
||||||
|
pos_blank = blank - name;
|
||||||
|
new_name = (char *)mbkalloc( (length + 2) * sizeof(char) );
|
||||||
|
strcpy(new_name, name);
|
||||||
|
new_name[ pos_blank ] = '[';
|
||||||
|
new_name[ length ] = ']';
|
||||||
|
new_name[ length + 1] = '\0';
|
||||||
|
|
||||||
|
name = namealloc( new_name );
|
||||||
|
mbkfree( new_name );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return( name );
|
||||||
|
}
|
||||||
|
|
||||||
char* spinamednode( losig, node )
|
char* spinamednode( losig, node )
|
||||||
losig_list *losig;
|
losig_list *losig;
|
||||||
long node;
|
long node;
|
||||||
|
@ -86,13 +115,13 @@ long node;
|
||||||
if( SPI_NAMEDNODES == TRUE ) {
|
if( SPI_NAMEDNODES == TRUE ) {
|
||||||
if( node == SPI_NONODES ) {
|
if( node == SPI_NONODES ) {
|
||||||
if( losig->NAMECHAIN )
|
if( losig->NAMECHAIN )
|
||||||
sprintf( names[curnames], "%s", (char*)(losig->NAMECHAIN->DATA) );
|
sprintf( names[curnames], "%s", spivecname( (char*)(losig->NAMECHAIN->DATA)));
|
||||||
else
|
else
|
||||||
sprintf( names[curnames], "sig%ld", losig->INDEX );
|
sprintf( names[curnames], "sig%ld", losig->INDEX );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if( losig->NAMECHAIN ) {
|
if( losig->NAMECHAIN ) {
|
||||||
sprintf( names[curnames], "%s%c%ld", (char*)(losig->NAMECHAIN->DATA),
|
sprintf( names[curnames], "%s%c%ld", spivecname((char*)(losig->NAMECHAIN->DATA)),
|
||||||
SEPAR,
|
SEPAR,
|
||||||
node
|
node
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue