busybox/shell/hush_test/hush-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 hush: fix two redirection testcase failures 2017-07-07 22:07:28 +02:00
redir3.tests hush: add a TODO about redir3.tests failure 2017-07-06 20:57:37 +02:00
redir4.right
redir4.tests
redir5.right
redir5.tests
redir6.right
redir6.tests
redir7.right
redir7.tests
redir8.right
redir8.tests
redir9.right
redir9.tests
redir_errors.right hush: rename hush-redir/redir3.tests (ash has redir3.tests which id different) 2017-07-06 20:36:40 +02:00
redir_errors.tests hush: rename hush-redir/redir3.tests (ash has redir3.tests which id different) 2017-07-06 20:36:40 +02:00
redir_escapednum.right
redir_escapednum.tests
redir_expand.right
redir_expand.tests
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
redir_multi.tests
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 hush: fix two redirection testcase failures 2017-07-07 22:07:28 +02:00
redir_to_bad_fd.tests shell: sync redir/* tests 2017-07-06 21:01:50 +02:00
redir.right hush: fix a case when redirect to a closed fd #1 is not restoring (closing) it 2017-07-24 12:42:17 +02:00
redir.tests hush: fix a case when redirect to a closed fd #1 is not restoring (closing) it 2017-07-24 12:42:17 +02:00
redirA.right
redirA.tests