Commit Graph

170 Commits

Author SHA1 Message Date
Denis Vlasenko
d76c049cc4 hush: rework variable storage and environment handling.
More that -100 bytes of code + memory leak plugged.
Added a testcase for it.
2007-05-25 02:16:25 +00:00
Denis Vlasenko
5a1437d835 hush: fix segfaulting syntax error in interactive hush 2007-05-24 13:22:47 +00:00
Denis Vlasenko
b055001b6a hush: fix handling of unmatched ${name (without closing '}') -
was eating all remaining input, potentially megabytes.
nofork: save/restore die_jmp too
nofork: use -2222 instead of -111 as "special" return valur for zero
(-111 is used by some applets. -2222 won't fit in exitcode and thus safer)
2007-05-24 12:18:16 +00:00
Denis Vlasenko
90e485ce79 hush: make syntax error messages a bit more useful 2007-05-23 15:22:50 +00:00
Denis Vlasenko
170435c575 hush: fix job control with eval /bin/external_prog
hush: fix parsing of unterminated "str with no EOL
hush: improved make_string() (smaller, faster, needs less RAM)
hush: renamed several functions
2007-05-23 13:01:10 +00:00
Denis Vlasenko
1a7358612f hush: fix a bit different instance of "No EOL" bug,
add testsuite for that. Expand another testsuite.
2007-05-23 00:32:25 +00:00
Denis Vlasenko
0681033918 hush: add 3 CONFIG_xxx, allowing for smaller and less capable hush.
Minimal hush is ~9k now (lash is ~7k).
2007-05-21 23:30:54 +00:00
Denis Vlasenko
219e88d050 hush: using smallints where we can. save ~20 bytes in code and
some data storage at runtime.
2007-05-21 10:18:23 +00:00
Denis Vlasenko
004baba2d6 hush: fix shift + $0 bug; add testcase 2007-05-20 22:22:18 +00:00
Denis Vlasenko
262d765351 hush: trivial size optimization 2007-05-20 21:52:49 +00:00
Denis Vlasenko
14b5dd9943 hush: make process substitution configurable; add a testcase 2007-05-20 21:51:38 +00:00
Denis Vlasenko
c8be5ee325 hush: do "struct globals" trick. hush.o data+bss = 0 bytes now.
+60 bytes to image, but -8000 bytes in bss.
2007-05-17 15:38:46 +00:00
Denis Vlasenko
b6a741ffa7 hush: consolidated variable expansion for assignments and "normal" one.
-435 bytes. Tested against testsuite.
2007-05-17 14:38:17 +00:00
Denis Vlasenko
96f67dc69d more compile fixes from randomconfig run 2007-05-17 13:02:41 +00:00
Denis Vlasenko
c666f71e3b hush: take care of several easy FIXMEs. -228 bytes. 2007-05-16 22:18:54 +00:00
Denis Vlasenko
831dcc439c hush: another microscopic typo fix 2007-05-16 15:05:36 +00:00
Denis Vlasenko
c29903221d hush: fix English in comment 2007-05-16 12:57:12 +00:00
Denis Vlasenko
3e7b0e6120 hush: simplify read builtin; fix set_local_var (misplaced 'goto skip;') 2007-05-16 12:52:15 +00:00
Denis Vlasenko
1f4cf517f5 hush: fix expansion of quoted $VAR, $* and $@ 2007-05-16 10:39:24 +00:00
Denis Vlasenko
8f6bdb42df hush: fix incorrect processing of echo "'$var'".
hush: rename map[] and MAP_xxx, making them easier to understand.
hush: move testcase (which now passes) from hush-bugs to hush-parsing
2007-05-16 09:36:55 +00:00
Denis Vlasenko
764d59d488 hush: more fixes to variable expansion, more testcases 2007-05-14 16:23:23 +00:00
Denis Vlasenko
03eb8bf6ce hush: move towards more correct variable expansion
hush: fix a few cases in FOR v IN ... construct
      unfortunately, code growth is big - ~600 bytes
2007-05-14 16:19:34 +00:00
Denis Vlasenko
602d13cba5 hush: fix '{ false; echo $?; }' bug.
hush: expand testsuite. variable expansion is still very broken
2007-05-13 18:34:53 +00:00
Denis Vlasenko
3e9aaae5dc hush: fix bug in interactive shell introduced yesterday
hush: fix `process subst` (2 bugs)
NB: will delete and re-add hush_test in order to change file modes
2007-05-11 12:56:43 +00:00
Denis Vlasenko
e0a336747c hush: fix "unterminated last line loops forever" bug
hush: add testsuite infrastructure
2007-05-10 23:06:55 +00:00
Denis Vlasenko
53079d494e hush: fix recent breakage (VAR=VAL stopped working) 2007-05-10 23:05:28 +00:00
Denis Vlasenko
21f0d4c55e hush: fix double-free in "echo TEST &" 2007-05-06 14:15:42 +00:00
Denis Vlasenko
dd4cb2b31e hush: stop generating extra empty pipes in parse stage. 2007-05-05 15:11:40 +00:00
Denis Vlasenko
a6c467f6d1 hush: preparatory patch for removing extra empty pipes generation
in parse stage. No real code change here.
2007-05-05 15:10:52 +00:00
Denis Vlasenko
ac0e5ab96a hush: fix "while true; do true; done" + ctrl-z 2007-05-04 21:37:27 +00:00
Denis Vlasenko
400c5b6fc6 hush: add parse tree debug print 2007-05-04 13:07:27 +00:00
Denis Vlasenko
e725bfe6e0 hush: fix "true | exit 3; echo $?" bug 2007-05-03 22:45:39 +00:00
Denis Vlasenko
f2fffd0014 hush: remove env builtin (it is buggy). Add comments 2007-05-02 23:39:04 +00:00
Denis Vlasenko
d01ff13454 hush: simplify debugging prints a little bit 2007-05-02 21:40:23 +00:00
Denis Vlasenko
4ac530c0ef hush: add debugging for tracing execution,
add FIXME for 'true | exit 3; echo $?' case
2007-05-02 15:35:45 +00:00
Denis Vlasenko
ef36ead370 hush: fix incorrect exitcodes without job control 2007-05-02 15:34:47 +00:00
Denis Vlasenko
e3f2f89891 hush: make job control and interactiveness configurable, part 2 2007-04-28 16:48:27 +00:00
Denis Vlasenko
b81b3df1fa hush: make job control and interactiveness configurable, part 1 2007-04-28 16:48:04 +00:00
Denis Vlasenko
0937be5fa6 hush: make hush properly detect EOF on stdin (even interactive one -
think about pty being destroyed) and exit.
2007-04-28 16:47:08 +00:00
Denis Vlasenko
b5eaabb322 hush: add Ctrl-C handling to nofork case 2007-04-28 16:45:59 +00:00
Denis Vlasenko
3ac0e00553 hush: better signal handling across ctrl-z 2007-04-28 16:45:22 +00:00
Denis Vlasenko
18e19f2b0d hush: fix nofork + ctrl-Z clobbering of globals 2007-04-28 16:43:18 +00:00
Denis Vlasenko
a6a1785a30 hush: add ctrl-Z handling for nofork'ed case 2007-04-28 16:42:11 +00:00
Denis Vlasenko
1359da6ac7 hush: make Ctrl-Z work (at least sometimes) 2007-04-21 23:27:30 +00:00
Denis Vlasenko
762d35c75f hust: add a comment 2007-04-21 17:28:51 +00:00
Denis Vlasenko
52881e9f23 hush: fix more backgrounding bugs. Plenty of them remains still. 2007-04-21 13:42:52 +00:00
Denis Vlasenko
2f1bb36a55 hush: explain why "pipe; exit $?" doesn't show correct exitcode 2007-04-21 10:01:14 +00:00
Denis Vlasenko
87cb2db703 hush: do not print message if killed by signal;
move some functions up before main()
2007-04-21 10:00:01 +00:00
Denis Vlasenko
54e7ffb3a4 hush: begin fixing non-functional job control 2007-04-21 00:03:36 +00:00
Denis Vlasenko
5f786c24e4 hush: small code shrink; style fixes 2007-04-20 08:35:45 +00:00