Re: csh dounsetenv()

2017-12-18 Thread Anton Lindqvist
On Sun, Dec 17, 2017 at 05:54:23PM +0800, Michael W. Bombardieri wrote:
> Hello,
> 
> The free() at the top of dounsetenv() in csh(1) isn't needed
> because name is always freed before returning at bottom of function.
> Also, name itself is never returned so it doesn't need to be static.
> 
> ./csh
> setenv HEY YU
> unsetenv HEY
> printenv
> 
> I ran the above and it seems to work the same as before.
> 
> - Michael
> 
> 
> Index: func.c
> ===
> RCS file: /cvs/src/bin/csh/func.c,v
> retrieving revision 1.36
> diff -u -p -u -r1.36 func.c
> --- func.c16 Dec 2017 10:27:21 -  1.36
> +++ func.c17 Dec 2017 09:41:01 -
> @@ -924,11 +924,9 @@ void
>  /*ARGSUSED*/
>  dounsetenv(Char **v, struct command *t)
>  {
> -Char  **ep, *p, *n;
> +Char  **ep, *p, *n, *name;
>  int i, maxi;
> -static Char *name = NULL;
>  
> -free(name);
>  /*
>   * Find the longest environment variable
>   */
> 

Committed, thanks!



csh dounsetenv()

2017-12-17 Thread Michael W. Bombardieri
Hello,

The free() at the top of dounsetenv() in csh(1) isn't needed
because name is always freed before returning at bottom of function.
Also, name itself is never returned so it doesn't need to be static.

./csh
setenv HEY YU
unsetenv HEY
printenv

I ran the above and it seems to work the same as before.

- Michael


Index: func.c
===
RCS file: /cvs/src/bin/csh/func.c,v
retrieving revision 1.36
diff -u -p -u -r1.36 func.c
--- func.c  16 Dec 2017 10:27:21 -  1.36
+++ func.c  17 Dec 2017 09:41:01 -
@@ -924,11 +924,9 @@ void
 /*ARGSUSED*/
 dounsetenv(Char **v, struct command *t)
 {
-Char  **ep, *p, *n;
+Char  **ep, *p, *n, *name;
 int i, maxi;
-static Char *name = NULL;
 
-free(name);
 /*
  * Find the longest environment variable
  */