Browse Source

strip WhiteSpaces inside parens of dot cards

pre-master-46
dwarning 19 years ago
parent
commit
adaeb6ca81
  1. 6
      src/frontend/dotcards.c
  2. 29
      src/misc/string.c
  3. 1
      src/misc/stringutil.h

6
src/frontend/dotcards.c

@ -8,8 +8,8 @@ $Id$
/*
* Spice-2 compatibility stuff for .plot, .print, .four, and .width.
*/
#include <config.h>
#include <ngspice.h>
#include "ngspice.h"
#include <assert.h>
#include "cpdefs.h"
@ -495,6 +495,7 @@ fixem(char *string)
return (string);
}
static wordlist *
gettoks(char *s)
{
@ -506,6 +507,7 @@ gettoks(char *s)
list = NULL;
prevp = &list;
s = stripWhiteSpacesInsideParens(s);
while ((t = gettok(&s))) {
if (*t == '(')
continue;

29
src/misc/string.c

@ -353,6 +353,35 @@ get_r_paren(char **s)
return 0;
}
/*-------------------------------------------------------------------------*
* this function strips all white space inside parens
* is needed in gettoks (dotcards.c) for right processing of expressions
* like ".plot v( 5,4) v(6)"
*-------------------------------------------------------------------------*/
char *
stripWhiteSpacesInsideParens(char *str)
{
char buf[BSIZE_SP];
int i = 0, j = 0;
while ( (str[i] == ' ') || (str[i] == '\t') )
i++;
for(i=i; str[i]!='\0'; i++)
{
if ( str[i] != '(' ) {
buf[j++] = str[i];
} else {
buf[j++] = str[i];
while ( (str[i++] != ')') ) {
if ( str[i] != ' ' ) buf[j++] = str[i];
}
i--;
}
}
buf[j] = '\0';
return copy(buf);
}
#ifndef HAVE_BCOPY

1
src/misc/stringutil.h

@ -16,6 +16,7 @@ int scannum(char *str);
int cieq(register char *p, register char *s);
int ciprefix(register char *p, register char *s);
void strtolower(char *str);
char * stripWhiteSpacesInsideParens(char *str);
char * gettok(char **s);
#ifdef CIDER

Loading…
Cancel
Save