diff options
| author | Ron Yorston <rmy@pobox.com> | 2019-04-18 09:48:13 +0100 | 
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2019-04-19 13:21:34 +0200 | 
| commit | 48645b83502a5add5429b6cbb19cf3a083f1adf4 (patch) | |
| tree | 87a59484fb86b2589de1b3f14b0d102c2d7f8a38 /scripts/basic | |
| parent | 32c8ce4def177a98a9aef0896bdb2d8262b364ec (diff) | |
| download | busybox-48645b83502a5add5429b6cbb19cf3a083f1adf4.tar.gz | |
ash: prevent error in backquotes in PS1 from exiting shell
Setting PS1 to:
   PS1='`xxx(`'
causes the shell to terminate with the error:
   sh: syntax error: unexpected end of file (expecting ")")
This happens because old-style backquotes require the input to be reread
and thus call setinputstring() a second time.  Prevent the problem by
unwinding all recently opened files in expandstr().
function                                             old     new   delta
unwindfiles                                            -      22     +22
expandstr                                            247     262     +15
forkchild                                            631     625      -6
evalcommand                                         1694    1685      -9
ash_main                                            1346    1336     -10
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/3 up/down: 37/-25)             Total: 12 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions
