This is a patch from Vladimir:
authorEric Andersen <andersen@codepoet.org>
Sat, 19 May 2001 03:00:46 +0000 (03:00 -0000)
committerEric Andersen <andersen@codepoet.org>
Sat, 19 May 2001 03:00:46 +0000 (03:00 -0000)
commit9ffb7dd9a4688161140a4c19221247566886ef55
treeae31dd5e3f2c2edf2b4784835de11195d11769b9
parent6197c51834c36a36cfc0b9a5cc146e6d79a9f5c9
This is a patch from Vladimir:

    > I rewrite *local_variable* function in hush.c with:
    > 1) remove many memory leaks
    > 2) add support read_only protect (require write builtin function for set this,
    > I write this special for variable HUSH_VERION=0.01)
    > 3) commad read set only local variable now
    > 4) remove many error messages if "set unset export" not defined variable
    > (bash syntax not put and set error code). Hmm, if I set result to -1, you hush
    > called waitpid and returned with error "no waitpid" ( i not found place this
    > error).
    > 5) destroy error in new version check xgetcwd()==NULL and set "(unknow)" -
    > this have error: crashe in next call `pwd`, but xgetcwd(not null) called
    > free(arg).
    > 6) next add integraion with libbb

Valdimir's patch missed two cases of local variable handling
    FOO=bar
    export FOO=baz
    unset FOO
and
    export FOO=bar
    FOO=baz
which were working before, so I fixed those two cases.
hush.c
shell/hush.c