diff --git a/eval.c b/eval.c index ee93dfd..d73d034 100644 --- a/eval.c +++ b/eval.c @@ -294,12 +294,20 @@ static int putctext( char *iline) } +static char *result ; /* string result */ +static int ressize = 0 ; /* mark result as uninitialized */ + /* Initialize the user variable list. */ void varinit(void) { int i; for (i = 0; i < MAXVARS; i++) uv[i].u_name[0] = 0; + + if( ressize == 0) { + result = malloc( NSTRING) ; + ressize = NSTRING ; + } } /* @@ -307,14 +315,11 @@ void varinit(void) * * @fname: name of function to evaluate. */ -char *gtfun(char *fname) -{ - int fnum; /* index to function to eval */ - char argx[ 512] ; +static char *gtfun( char *fname) { + int fnum ; /* index to function to eval */ + char argx[ 512] ; /* last argument, fixed sized allocation */ char *arg1 ; /* value of first argument */ char *arg2 ; /* value of second argument */ - static char *result ; /* string result */ - static int ressize = 0 ; /* mark result as uninitialized */ char *retstr ; /* return value */ /* look the function up in the function table */ @@ -357,12 +362,6 @@ char *gtfun(char *fname) } } - - if( ressize == 0) { - result = malloc( NSTRING) ; - ressize = NSTRING ; - } - /* and now evaluate it! */ switch (fnum) { int sz ; @@ -554,12 +553,12 @@ char *gtfun(char *fname) exit(-11); /* never should get here */ } + if( arg2) + free( arg2) ; + if( arg1) free( arg1) ; - if( arg2) - free( arg2) ; - return retstr ; } @@ -568,9 +567,7 @@ char *gtfun(char *fname) * * char *vname; name of user variable to fetch */ -char *gtusr(char *vname) -{ - +static char *gtusr( char *vname) { int vnum; /* ordinal number of user var */ /* scan the list looking for the user var name */ @@ -590,8 +587,7 @@ char *gtusr(char *vname) * * char *vname; name of environment variable to retrieve */ -char *gtenv(char *vname) -{ +static char *gtenv( char *vname) { int vnum; /* ordinal number of var refrenced */ /* scan the list, looking for the referenced name */ diff --git a/eval.h b/eval.h index 124ba20..1c676f2 100644 --- a/eval.h +++ b/eval.h @@ -39,9 +39,6 @@ extern long envram ; /* # of bytes current in use by malloc */ int gettyp( char *token) ; void varinit( void) ; -char *gtfun( char *fname) ; -char *gtusr( char *vname) ; -char *gtenv( char *vname) ; int setvar( int f, int n) ; char *i_to_a( int i) ; char *getval( char *token) ;