Age | Commit message (Collapse) | Author |
|
changes, esp describing all the current ash configuration options.
Now ash adds 66k in the default configuration.
|
|
|
|
handles all the basic stuff (for, case/esac, while, if/then/else), and
is very small (adds just 38k on x86). It is not as rigorously correct
about Bourne semantics as bash, but for most things it is quite
workable. There is still some work to be done to further shrink it (it
has its own globbing functions instead of using the libc ones, for
example), but it is quite usable as is.
-Erik
|
|
|
|
-Erik
|
|
together by vodz, but uses newer sources, has the removed features
commented out instead of simply deleted (so they could be re-enabled)
and the builtins all work. This adds 72k.
-Erik
|
|
|
|
control...
|
|
|
|
of the job control polishing. Works fine now.
-Erik
|
|
|
|
|
|
|
|
-Erik
|
|
we have a controlling terminal...
-Erik
|
|
that still has running jobs. Instead, we ignore it and expect
it to be cleaned by the background job stuff.
-Erik
|
|
-Erik
|
|
just be a simple command line interpreter with basic pipe, redirect, and job
control. For all the more fancy things, people should use hush or ash.
-Erik
|
|
Fixes the interaction between if/then/else/fi syntax and variables.
I planned to do it right from the beginning, but my implementation
was buggy. Also adds the relevant test cases. Also adds some old
Matt Kraai variable test cases that got left out somehow.
|
|
|
|
|
|
-Erik
|
|
them in the presence of a quoting. Also revert my signal handling patch,
which seems to not solve the problem I thought it solved.
|
|
|
|
commands were run. This one was sure a bugger to find.
-Erik
|
|
Rename run_list_test() as free_pipe_list().
Rename run_pipe_test() as free_pipe().
-Erik
|
|
|
|
and improves some debugging messages.
|
|
when builtins are included in pipes.
|
|
unset FOO
export FOO=bar
FOO=baz
echo "global env: " `env | grep ^FOO`
echo "local env: " `set | grep ^FOO`
-Erik
|
|
pipe struct had already been freed. Return immediately if the
pipe is NULL.
|
|
|
|
|
|
#1130 (i.e. When you turn on features it should always ADD features)
|
|
|
|
> 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.
|
|
signal handling in cmdedit.c. Disabling it makes the shells behave
themselves again. hush isn't quite there, but is getting close...
-Erik
|
|
by Larry Doolittle.
|
|
a bit more reentrant.
-Erik
|
|
-Erik
|
|
|
|
shell local variables.
-Erik
|
|
$ a=b foo
should be handled correctly.
$ a=b
is parsed OK, but the actual variable setting is not
yet written. Except for some weird exceptions related
to quoting rules, this code passes (matches ash behavior)
all the tests I threw at it.
If someone now writes set_local_var(), and updates lookup_param()
to match, we can claim success!
- Larry
|
|
|
|
xgetcwd, but did not check the return for a NULL, and then continued
to call strlen on the NULL when the cwd had been removed from under it.
-Erik
|
|
|
|
-Erik
|
|
-Erik
|
|
This way leaks memory, but oh well. We will probably fix that when we get
around to doing local variables.
|
|
Update some comments. Generate partial placeholders for the missing
builtins. Write builtin_umask. Properly treat exec without arguments
as a means to open/close files within the running script. Implement
"4<&-" that encodes for file descriptor closure.
|