Mike Frysinger
93cadc2fdd
hush: implement type
...
Implement support for the POSIX `type` command. Only POSIX stuff is
supported here, no bash extensions like -p or -P.
In the process, split the $PATH searching code out of builtin_source() and
into its own find_in_path() function so we don't duplicate it.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-27 17:06:25 -04:00
Denys Vlasenko
673e945052
hush: remove outdated TODO and superfluous macro; fix compile breakage
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-27 14:39:35 +02:00
Denys Vlasenko
68759edb6e
hush: tweak comment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-26 14:39:41 +02:00
Denys Vlasenko
e2df5f46d0
hush: rename last_waitpid_was_0 to we_have_children
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-26 14:34:10 +02:00
Denys Vlasenko
8d7be232a3
hush: fix SIGCHLD counting code, but keep it disabled for now.
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-25 16:38:32 +02:00
Denys Vlasenko
4f26c97b9a
make compound.tests executable
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-23 17:00:13 +02:00
Denys Vlasenko
e9bda90e54
hush: fix problems with case in subshells and with "case esac"
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-23 16:50:07 +02:00
Mike Frysinger
342a63d659
hush_test: add some pathological compound list tests
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 18:35:37 -04:00
Mike Frysinger
12bcc76e9b
hush_test: test for subshell function syntax
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 18:35:08 -04:00
Mike Frysinger
7b424fe738
hush_test: add subshelled case tests
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 18:09:24 -04:00
Mike Frysinger
cc9205bda7
hush_test: update test output to match new getopt() output
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 17:58:15 -04:00
Mike Frysinger
33f85eeac5
hush_test: ignore generated files
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-21 17:45:26 -04:00
Mike Frysinger
38478a600f
hush: fix build failure when jobs are disabled
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Reported-by: Thomas Chou <thomas@wytron.com.tw>
2009-05-20 04:48:06 -04:00
Denys Vlasenko
318a8e5ed5
TODO: add some
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-13 02:18:43 +02:00
root
6245202e7f
hush: small fix for unset -f on NOMMU.
...
Signed-off-by: root <root@localhost.localdomain>
2009-05-04 12:00:19 +02:00
Denys Vlasenko
acdc49c073
hush: add more complex case to leak testcase, fix found breakage
...
function old new delta
unset_local_var_len - 167 +167
run_list 2350 2457 +107
set_vars_and_save_old - 87 +87
free_pipe 207 227 +20
builtin_unset 220 229 +9
builtin_exit 49 47 -2
free_strings_and_unset 53 - -53
set_vars_all_and_save_old 87 - -87
unset_local_var 168 - -168
------------------------------------------------------------------------------
(add/remove: 2/3 grow/shrink: 3/1 up/down: 390/-310) Total: 80 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-04 01:58:10 +02:00
Denys Vlasenko
cb6ff25afe
hush: fix bug where in "var=val func" var's value is not visible in func
...
function old new delta
unset_local_var - 168 +168
set_vars_all_and_save_old - 87 +87
get_ptr_to_local_var - 77 +77
free_strings_and_unset - 53 +53
builtin_export 266 274 +8
get_local_var_value 31 33 +2
putenv_all 27 - -27
free_strings_and_unsetenv 53 - -53
get_local_var 68 - -68
run_list 2475 2350 -125
builtin_unset 380 220 -160
------------------------------------------------------------------------------
(add/remove: 4/3 grow/shrink: 2/2 up/down: 395/-433) Total: -38 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-04 00:14:30 +02:00
Denys Vlasenko
e19e1935a3
hush: fix \<newline> handling
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-03 02:15:18 +02:00
Denys Vlasenko
b1cfc45376
hush: fix handling of unterminated subshell: (<eof>. Fixes bug 229.
...
function old new delta
syntax_error_unexpected_ch 31 41 +10
parse_stream 2184 2191 +7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-02 17:18:34 +02:00
Denys Vlasenko
1dd6cf8677
hush: fix multiple redirections of the same fd (bug 227)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-02 14:17:31 +02:00
Denys Vlasenko
54e0843e7d
hush: make . cmd search $PATH
...
function old new delta
builtin_source 128 249 +121
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-02 02:34:19 +02:00
Denys Vlasenko
690ad2426e
git commit test
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-04-30 21:24:24 +02:00
Denis Vlasenko
c8653f62f2
hush: make it possible to have interactive shell on non-ctty.
...
init=/bin/hush: shows prompt, history works, etc.
function old new delta
hush_main 888 925 +37
block_signals 139 152 +13
builtin_fg_bg 284 293 +9
checkjobs_and_fg_shell 35 41 +6
sigexit 65 66 +1
reset_traps_to_defaults 165 164 -1
parse_stream 2200 2184 -16
run_list 2502 2475 -27
getpgid 35 - -35
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 5/3 up/down: 66/-79) Total: -13 bytes
2009-04-27 23:29:14 +00:00
Denis Vlasenko
42e4af3119
make leak test more robust by unsetting all vars
2009-04-26 23:25:36 +00:00
Denis Vlasenko
28e67966f3
hush: make getopt32 usable in builtins. use it in unset.
...
more uses are expected in the future.
function old new delta
getopt32 1356 1393 +37
builtin_export 256 266 +10
builtin_unset 418 380 -38
2009-04-26 23:22:40 +00:00
Denis Vlasenko
572930027d
hush: nommu fix for function passing
2009-04-26 20:06:14 +00:00
Denis Vlasenko
5b7589eb27
hush: fix SEGV in % expansion
...
function old new delta
expand_variables 2203 2217 +14
2009-04-26 11:25:19 +00:00
Mike Frysinger
26cf2831d7
do not tell people they can enter "help" if help has actually been disabled
2009-04-24 06:40:30 +00:00
Mike Frysinger
67c1c7b456
use get_local_var_value() rather than getenv() when working with PS1/PS2/HOME, respect the PS2 env var, and make sure that the prompt changes whenever PS1/PS2 changes so we dont have to re-exec the shell to get a changed prompt
2009-04-24 06:26:18 +00:00
Denis Vlasenko
f9d4fc3cf8
switch_root: improve behavior on error; improve help text
...
*: make "can't execute '%s'" message uniform
2009-04-21 20:40:51 +00:00
Denis Vlasenko
950bd72966
hush: speed up set_local_var
...
function old new delta
set_local_var 265 290 +25
2009-04-21 11:23:56 +00:00
Denis Vlasenko
5e34ff29bc
*: mass renaming of USE_XXXX to IF_XXXX
...
and SKIP_XXXX to IF_NOT_XXXX - the second one was especially
badly named. It was not skipping anything!
2009-04-21 11:09:40 +00:00
Denis Vlasenko
ad4bd0548a
hush: export -n support
...
function old new delta
builtin_export 206 256 +50
set_local_var 248 265 +17
expand_variables 2204 2203 -1
2009-04-20 22:04:21 +00:00
Denis Vlasenko
d40fa397e4
hush: add two testcases
2009-04-20 10:52:31 +00:00
Denis Vlasenko
8c64e033c0
hush: fix stdin of backgrounded pipe
...
function old new delta
run_list 2450 2502 +52
2009-04-20 00:34:01 +00:00
Denis Vlasenko
dcd78c4d0f
hush: fix "export not_yet_defined_var", fix parsing of "cmd | }"
...
corner case; improve hush_leaktool.sh;
fix some false positives in testsuite
function old new delta
builtin_export 191 206 +15
parse_stream 2196 2200 +4
2009-04-19 23:07:51 +00:00
Denis Vlasenko
9f8d938172
same as previous, but -100 bytes
2009-04-19 14:03:11 +00:00
Denis Vlasenko
bf25fbccb9
hush: fix handling of } which is not a closing one in { cmd; }
...
function old new delta
parse_stream 2176 2302 +126
builtin_unset 381 387 +6
2009-04-19 13:57:51 +00:00
Mike Frysinger
885b6f29ae
fix build errors when function support is turned off
2009-04-18 21:04:25 +00:00
Denis Vlasenko
6008d8a3cc
hush: fix thinko in error msg
2009-04-18 13:05:10 +00:00
Denis Vlasenko
38e626df4d
hush: fix "trap -- handler SIGs..."; escape handlers in "trap" output
2009-04-18 12:58:19 +00:00
Denis Vlasenko
730106767e
hush: fix thinko in unset_func
2009-04-18 11:25:18 +00:00
Denis Vlasenko
40e84374ec
hush: implement unset -f; beautify the handling of signal-killed pipe
...
four TODOs are gone
function old new delta
builtin_unset 271 364 +93
checkjobs 394 428 +34
builtin_exit 49 47 -2
2009-04-18 11:23:38 +00:00
Denis Vlasenko
eb85849b50
hush: deal with umask TODO (symbolic modes)
...
function old new delta
builtin_umask 79 125 +46
2009-04-18 02:06:54 +00:00
Denis Vlasenko
6b9e05392b
hush: implement proper SIGHUP handling
...
function old new delta
check_and_run_traps 164 229 +65
insert_bg_job 376 366 -10
hush_main 937 927 -10
2009-04-18 01:23:21 +00:00
Denis Vlasenko
7b9e5c57ae
builtin_return's parameter is not unused
2009-04-17 23:53:15 +00:00
Denis Vlasenko
3d40d8e655
hush: return builtin by Bayram Kurumahmut (kbayram AT ubicom.com)
...
~+200 bytes
2009-04-17 23:44:18 +00:00
Denis Vlasenko
270b1c3f68
hush: set $n properly for "source" builtin
...
function old new delta
restore_G_args - 78 +78
save_and_replace_G_args - 64 +64
builtin_source 72 107 +35
run_list 2549 2367 -182
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 1/1 up/down: 177/-182) Total: -5 bytes
2009-04-17 18:54:50 +00:00
Denis Vlasenko
4ea187fd62
hush: fix non-interactive response to pipe being stopped.
...
function old new delta
checkjobs 380 394 +14
2009-04-17 14:35:43 +00:00
Denis Vlasenko
e4bd4f2cc8
hush: unblock TERM, INT, HUP in child shells too.
2009-04-17 13:52:51 +00:00