fixing memory problems in nupa_substitute and other
This commit is contained in:
parent
b90b52e1ba
commit
c608e4a997
|
|
@ -29,42 +29,42 @@ typedef char string[258];
|
||||||
|
|
||||||
void sini( char * s, int i);
|
void sini( char * s, int i);
|
||||||
void sfix(char * s, int i, int max);
|
void sfix(char * s, int i, int max);
|
||||||
int maxlen(char * s);
|
int maxlen(char * s);
|
||||||
char * pscopy( char * s, char * a, int i,int j);
|
char * pscopy( char * s, char * a, int i,int j);
|
||||||
char * pscopy_up( char * s, char * a, int i,int j);
|
char * pscopy_up( char * s, char * a, int i,int j);
|
||||||
unsigned char scopy( char * a, char * b);
|
unsigned char scopy( char * a, char * b);
|
||||||
unsigned char scopy_up( char * a, char * b);
|
unsigned char scopy_up( char * a, char * b);
|
||||||
unsigned char ccopy( char * a, char c);
|
unsigned char ccopy( char * a, char c);
|
||||||
unsigned char sadd( char * s, char * t);
|
unsigned char sadd( char * s, char * t);
|
||||||
unsigned char nadd( char * s, long n);
|
unsigned char nadd( char * s, long n);
|
||||||
unsigned char cadd( char * s, char c);
|
unsigned char cadd( char * s, char c);
|
||||||
unsigned char sins( char * s, char * t);
|
unsigned char sins( char * s, char * t);
|
||||||
unsigned char cins( char * s, char c);
|
unsigned char cins( char * s, char c);
|
||||||
int cpos( char c, char * s);
|
int cpos( char c, char * s);
|
||||||
int spos( char * sub, char * s);
|
int spos( char * sub, char * s);
|
||||||
int ci_prefix( register char *p, register char *s );
|
int ci_prefix( register char *p, register char *s );
|
||||||
int length(char * s);
|
int length(char * s);
|
||||||
unsigned char steq(char * s, char * t);
|
unsigned char steq(char * s, char * t);
|
||||||
unsigned char stne(char * s, char * t);
|
unsigned char stne(char * s, char * t);
|
||||||
int scompare(char * a, char * b);
|
int scompare(char * a, char * b);
|
||||||
int ord(char c);
|
int ord(char c);
|
||||||
int pred(int i);
|
int pred(int i);
|
||||||
int succ(int i);
|
int succ(int i);
|
||||||
void stri(long n, char * s);
|
void stri(long n, char * s);
|
||||||
void strif(long n, int f, char * s);
|
void strif(long n, int f, char * s);
|
||||||
void strf(double x, int a, int b, char * s); /* float -> string */
|
void strf(double x, int a, int b, char * s); /* float -> string */
|
||||||
long ival(char * s, int *err);
|
long ival(char * s, int *err);
|
||||||
double rval(char * s, int *err);
|
double rval(char * s, int *err);
|
||||||
|
|
||||||
char upcase(char c);
|
char upcase(char c);
|
||||||
char lowcase(char c);
|
char lowcase(char c);
|
||||||
int hi(long w);
|
int hi(long w);
|
||||||
int lo(long w);
|
int lo(long w);
|
||||||
unsigned char odd(long x);
|
unsigned char odd(long x);
|
||||||
unsigned char alfa(char c);
|
unsigned char alfa(char c);
|
||||||
unsigned char num(char c);
|
unsigned char num(char c);
|
||||||
unsigned char alfanum(char c);
|
unsigned char alfanum(char c);
|
||||||
char * stupcase( char * s);
|
char * stupcase( char * s);
|
||||||
|
|
||||||
/***** primitive input-output ***/
|
/***** primitive input-output ***/
|
||||||
void wc(char c);
|
void wc(char c);
|
||||||
|
|
@ -72,24 +72,22 @@ void wln(void);
|
||||||
void ws( char * s);
|
void ws( char * s);
|
||||||
void wi(long i);
|
void wi(long i);
|
||||||
void rs( char * s);
|
void rs( char * s);
|
||||||
char rc(void);
|
char rc(void);
|
||||||
|
|
||||||
int freadstr(FILE * f, char * s, int max);
|
int freadstr(FILE * f, char * s, int max);
|
||||||
char freadc(FILE * f);
|
char freadc(FILE * f);
|
||||||
long freadi(FILE * f);
|
long freadi(FILE * f);
|
||||||
|
|
||||||
long np_round(double d); // sjb to avoid clash with round() in math.h
|
long np_round(double d); // sjb to avoid clash with round() in math.h
|
||||||
long np_trunc(double x); // sjb to avoid clash with trunc() in math.h
|
long np_trunc(double x); // sjb to avoid clash with trunc() in math.h
|
||||||
double sqr(double x);
|
double sqr(double x);
|
||||||
double absf(double x); /* abs */
|
double absf(double x); /* abs */
|
||||||
long absi( long i);
|
long absi( long i);
|
||||||
double frac(double x);
|
double frac(double x);
|
||||||
|
|
||||||
unsigned char reset(FILE * f);
|
unsigned char reset(FILE * f);
|
||||||
unsigned char rewrite(FILE * f);
|
unsigned char rewrite(FILE * f);
|
||||||
void rawcopy(void * a, void * b, int la, int lb);
|
void rawcopy(void * a, void * b, int la, int lb);
|
||||||
void * new(long sz);
|
void * new(long sz);
|
||||||
void dispose(void * p);
|
void dispose(void * p);
|
||||||
char * newstring(int n);
|
char * newstring(int n);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h> /* -- ceil floor */
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#ifdef HAS_WINDOWS
|
#ifdef HAS_WINDOWS
|
||||||
#include "wstdio.h"
|
#include "wstdio.h"
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ typedef struct _ttdico {
|
||||||
|
|
||||||
void initdico(tdico * dico);
|
void initdico(tdico * dico);
|
||||||
int donedico(tdico * dico);
|
int donedico(tdico * dico);
|
||||||
unsigned char defsubckt( tdico *dico, char * s, unsigned short w, char categ);
|
unsigned char defsubckt( tdico *dico, char * s, int w, char categ);
|
||||||
int findsubckt( tdico *dico, char * s, char * subname);
|
int findsubckt( tdico *dico, char * s, char * subname);
|
||||||
unsigned char nupa_substitute( tdico *dico, char * s, char * r, unsigned char err);
|
unsigned char nupa_substitute( tdico *dico, char * s, char * r, unsigned char err);
|
||||||
unsigned char nupa_assignment( tdico *dico, char * s, char mode);
|
unsigned char nupa_assignment( tdico *dico, char * s, char mode);
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,7 @@ Todo:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
#include "numparam.h"
|
#include "numparam.h"
|
||||||
#include "ngspice.h"
|
#include "ngspice.h"
|
||||||
|
|
@ -195,14 +193,12 @@ stripbraces (char *s)
|
||||||
if (t[i - 1] > ' ')
|
if (t[i - 1] > ' ')
|
||||||
cadd (t, ' ');
|
cadd (t, ' ');
|
||||||
|
|
||||||
nadd (t, PlaceHold + placeholder);
|
cadd (t, ' '); // add extra character to increase number significant digits for evaluated numbers
|
||||||
cadd (t, ' '); // add extra character to increase number significant digits for evaluated numbers
|
cadd (t, ' ');
|
||||||
cadd (t, ' ');
|
cadd (t, ' ');
|
||||||
cadd (t, ' ');
|
cadd (t, ' ');
|
||||||
cadd (t, ' ');
|
nadd (t, PlaceHold + placeholder);
|
||||||
cadd (t, ' ');
|
cadd (t, ' ');
|
||||||
cadd (t, ' ');
|
|
||||||
cadd (t, ' ');
|
|
||||||
|
|
||||||
if (s[j] >= ' ')
|
if (s[j] >= ' ')
|
||||||
cadd (t, ' ');
|
cadd (t, ' ');
|
||||||
|
|
@ -754,7 +750,7 @@ nupa_eval (char *s, int linenum)
|
||||||
{
|
{
|
||||||
int idef; /* subckt definition line */
|
int idef; /* subckt definition line */
|
||||||
char c, keep, *ptr;
|
char c, keep, *ptr;
|
||||||
int i;
|
unsigned int i;
|
||||||
Str (80, subname);
|
Str (80, subname);
|
||||||
unsigned char err = 1;
|
unsigned char err = 1;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue