summaryrefslogtreecommitdiff
path: root/shell/hush.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* A patch from Larry to fix pathological things like '>""'Eric Andersen2001-06-061-5/+13
|
* Don't close file descriptors when we are duplicating them.Matt Kraai2001-06-051-1/+2
|
* Cope gracefully when people type something, then hit ^C.Eric Andersen2001-05-311-1/+4
| | | | -Erik
* Plug another memory leakEric Andersen2001-05-241-0/+1
|
* Plug another memory leak in hush. This one showed up when backtickedEric Andersen2001-05-231-0/+1
| | | | | commands were run. This one was sure a bugger to find. -Erik
* Fix a massive memory leak in the run_list_test() function.Eric Andersen2001-05-231-33/+11
| | | | | | Rename run_list_test() as free_pipe_list(). Rename run_pipe_test() as free_pipe(). -Erik
* Commit a patch by Larry Doolittle which fixes recursive calls to file_peek,Matt Kraai2001-05-231-7/+8
| | | | and improves some debugging messages.
* Excellent. This patch from Larry fixes the behavior of hushEric Andersen2001-05-221-1/+3
| | | | when builtins are included in pipes.
* Fix this case. No, really this time.Eric Andersen2001-05-221-46/+61
| | | | | | | | | unset FOO export FOO=bar FOO=baz echo "global env: " `env | grep ^FOO` echo "local env: " `set | grep ^FOO` -Erik
* Fix a race. Sometimes by the time we got to checkjobs(), theEric Andersen2001-05-221-12/+27
| | | | | pipe struct had already been freed. Return immediately if the pipe is NULL.
* Oops. Remove some debug noise I left in.Eric Andersen2001-05-221-5/+1
|
* Updates from both Vladimir and LarryEric Andersen2001-05-221-64/+89
|
* Patch from Lars Kellogg-Stedman <lars@larsshack.org> to fix bugEric Andersen2001-05-211-3/+3
| | | | #1130 (i.e. When you turn on features it should always ADD features)
* The latest patch from LarryEric Andersen2001-05-211-31/+61
|
* This is a patch from Vladimir:Eric Andersen2001-05-191-198/+184
| | | | | | | | | | | | | | | | | | | | | | | | | > 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.
* It turns out job control in both hush and lash was broken by theEric Andersen2001-05-171-10/+22
| | | | | | signal handling in cmdedit.c. Disabling it makes the shells behave themselves again. hush isn't quite there, but is getting close... -Erik
* Move init of a bunch of globals into main so we are at leastEric Andersen2001-05-161-7/+16
| | | | | a bit more reentrant. -Erik
* Fix the behavior of local shell variables to match that of bash and ash.Eric Andersen2001-05-151-25/+109
| | | | -Erik
* Oops. I left in some debug noise.Eric Andersen2001-05-151-1/+0
|
* Write set_local_var() and fixup lookup_param() so you can now useEric Andersen2001-05-151-4/+101
| | | | | shell local variables. -Erik
* This patch covers one big part of variable handling.Eric Andersen2001-05-151-5/+49
| | | | | | | | | | | | | | | $ 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
* Fix up some silly warningsEric Andersen2001-05-111-3/+3
|
* Fix a segfault in lash, hush, and cmdedit. Each of these usedEric Andersen2001-05-111-0/+6
| | | | | | 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
* Use xgetcwdEric Andersen2001-05-111-2/+2
|
* A few more structural updates for job control.Eric Andersen2001-05-081-4/+13
| | | | -Erik
* Fix a stupid segfault caused by dereferencing a NULL ptr.Eric Andersen2001-05-081-0/+2
| | | | -Erik
* This patch from Evin Robertson <nitfol@my-deja.com> fixes export so it works.Eric Andersen2001-05-071-1/+4
| | | | | This way leaks memory, but oh well. We will probably fix that when we get around to doing local variables.
* More hush updates from Larry:Eric Andersen2001-05-071-19/+54
| | | | | | | 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.
* Larry's variant on Evin Robertson's fix to what I messed upEric Andersen2001-05-041-1/+1
| | | | | | trying to make job control work. This fix makes it so that hush doesn't error out when init hasn't set up job control, as in when init=/bin/sh
* Don't reset parents context when we encounter an terminator. FixesMatt Kraai2001-05-041-1/+0
| | | | if true; then if true; then true; fi; fi
* If it fails to run a builtin, let it fall through toEric Andersen2001-05-041-1/+0
| | | | | exec the real thing. -Erik
* Move up waitpid error check so that errno isn't clobbered by tcsetpgrp.Matt Kraai2001-05-021-3/+3
|
* Some more job control updates. It will now sucessfully backgroundEric Andersen2001-05-021-46/+74
| | | | | stuff. Good luck getting things back into the foreground though... -Erik
* Don't treat newline as pipe separator when processing substitutions.Matt Kraai2001-05-021-1/+4
|
* Fix $(...) construction. Noted and patched by Larry DoolittleMatt Kraai2001-05-021-0/+1
| | | | <ldoolitt@recycle.lbl.gov>. I'm just a patch whore. :)
* First pass at getting job control working. This gets the infrastructureEric Andersen2001-05-021-13/+142
| | | | | | in place, but something is still missing/wrong in there. Testing with 'grep foo &' seems to put _hush_ into the background. Pondering... -Erik
* Use the current pgrp, not pid, when resetting the foreground process group.Matt Kraai2001-05-021-1/+1
| | | | Fixes bizarre suspension when executing `echo`.
* Don't segfault if the first word is the empty string.Matt Kraai2001-05-021-2/+4
|
* Another update from Larry:Eric Andersen2001-05-021-17/+19
| | | | | Makes hush return code equal to that of the last command executed. Fixes the mode where input comes from a file.
* Another hush update from Larry:Eric Andersen2001-05-011-5/+13
| | | | | | | | | | | | | | Minor improvements. Something is still broken with running scripts via "hush filename". All the following are now handled acceptably (matches ash, not bash). if true; then echo foo1; fi if true; then echo foo2; fi if true; false; then echo bar; else echo foo3; fi if true || false; then echo foo4; fi - Larry
* Some more hush.c updates from Larry Doolittle.Eric Andersen2001-04-301-13/+46
|
* Use BUFSIZ for the_command to match size used in cmdeditEric Andersen2001-04-271-1/+1
|
* An update to hush from Larry:Eric Andersen2001-04-271-94/+20
| | | | | | | | | | | It should recover more smoothly from syntax errors, and it now has a decent guess when the reserved word construct is over (or not) to control execution and prompting. I took out all the redundant standalone test copies of libbb routines, but left in a hook so I can include those for my testing. I'll post that include file on my web site. - Larry
* This is the initial checkin of Larry Doolittle's hush.c, using hisEric Andersen2001-04-261-0/+2191
April 25, 2001 snapshot, adjusted a bit by me so it has cmdedit support. This checkin also removes sh.c. In the future sh.c will be a symlink to your shell of choice. For now, this symlink will default to pointing to lash.c (as in the past). If you change the symlink to point to hush.c, then thats what you will get. This symlink business is a temporary situation, which will be cleaned up Real Soon Now(tm). -Erik