diff options
author | Ron Yorston <rmy@pobox.com> | 2020-07-23 08:32:27 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2021-06-05 23:37:19 +0200 |
commit | a1b0d3856d9a0419cb74bf4c87525265871b5868 (patch) | |
tree | 1c3dface41c9c1f4d23a42819c9e6c2101e4f303 /include | |
parent | 8c1f8aa016faee3fa151d134c3544b2dd5bab832 (diff) |
ash: add process substitution in bash-compatibility mode
Process substitution is a Korn shell feature that's also available
in bash and some other shells. This patch implements process
substitution in ash when ASH_BASH_COMPAT is enabled.
function old new delta
argstr 1386 1522 +136
strtodest - 52 +52
readtoken1 3346 3392 +46
.rodata 183206 183250 +44
unwindredir - 28 +28
cmdloop 365 372 +7
static.spclchars 10 12 +2
cmdputs 380 367 -13
exitreset 86 69 -17
evalcommand 1754 1737 -17
varvalue 675 634 -41
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 5/4 up/down: 315/-88) Total: 227 bytes
text data bss dec hex filename
953967 4219 1904 960090 ea65a busybox_old
954192 4219 1904 960315 ea73b busybox_unstripped
v2: Replace array of file descriptors with a linked list.
Include tests that were unaccountably omitted from v1.
v3: Update linked list code to the intended version.
v4: Change order of conditional code in cmdputs().
v5: Use existing popredir() mechanism to manage file descriptors.
v6: Rebase to latest version of BusyBox ash. Reduce code churn.
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/platform.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/platform.h b/include/platform.h index 4633b2507..9e1fb047d 100644 --- a/include/platform.h +++ b/include/platform.h @@ -426,6 +426,8 @@ typedef unsigned smalluint; #define HAVE_SYS_STATFS_H 1 #define HAVE_PRINTF_PERCENTM 1 #define HAVE_WAIT3 1 +#define HAVE_DEV_FD 1 +#define DEV_FD_PREFIX "/dev/fd/" #if defined(__UCLIBC__) # if UCLIBC_VERSION < KERNEL_VERSION(0, 9, 32) |