busybox/shell/ash_test/ash-redir
Denys Vlasenko 035486c750 ash: significant overhaul of redirect saving logic
New code is similar to what hush is doing.
Make CLOSED to -1: same as dash.
popredir() loses "restore" parameter: same as dash.
COPYFD_RESTORE bit is no longer necessary.

This change fixes this interactive bug:

	$ ls -l /proc/$$/fd 10>&-
	ash: can't set tty process group: Bad file descriptor
	ash: can't set tty process group: Bad file descriptor
	[1]+  Done(2)                    ls -l /proc/${\$}/fd 10>&4294967295

function                                             old     new   delta
unwindredir                                           29      27      -2
tryexec                                              154     152      -2
evaltree                                             503     501      -2
evalcommand                                         1369    1367      -2
cmdloop                                              187     185      -2
redirect                                            1029    1018     -11
popredir                                             153     123     -30
need_to_remember                                      36       -     -36
is_hidden_fd                                          68       -     -68
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 0/7 up/down: 0/-155)           Total: -155 bytes
   text    data     bss     dec     hex filename
 914572     485    6848  921905   e1131 busybox_old
 914553     485    6848  921886   e111e busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-07-31 04:21:46 +02:00
..
redir1.right
redir1.tests
redir2.right
redir2.tests
redir3.right
redir3.tests
redir4.right
redir4.tests
redir5.right shell: sync redir/* tests 2017-07-06 21:01:50 +02:00
redir5.tests shell: sync redir/* tests 2017-07-06 21:01:50 +02:00
redir6.right
redir6.tests
redir7.right
redir7.tests
redir8.right
redir8.tests
redir9.right
redir9.tests
redir_escapednum.right sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_escapednum.tests sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_expand.right sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_expand.tests sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_leak.right ash: fix open fds leaking in redirects. Closes 9561 2017-01-07 10:16:56 +01:00
redir_leak.tests ash: fix open fds leaking in redirects. Closes 9561 2017-01-07 10:16:56 +01:00
redir_multi.right sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_multi.tests sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_script.right
redir_script.tests ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_space.right
redir_space.tests
redir_to_bad_fd3.right ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_to_bad_fd3.tests ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_to_bad_fd255.right ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_to_bad_fd255.tests ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_to_bad_fd.right ash: rename redir5.tests (hush has redir5.tests which is different) 2017-07-06 21:00:19 +02:00
redir_to_bad_fd.tests ash: rename redir5.tests (hush has redir5.tests which is different) 2017-07-06 21:00:19 +02:00
redir.right
redir.tests
redirA.right
redirA.tests