The function serialisation code thinks that 1 is the default file
descriptor for <> redirections, when it is actually 0.
BEFORE
$ a () { <> f ;}; declare -f a
a ()
{
0<> f
}
$ a () { 1<> f ;}; declare -f a
a ()
{
<> f
}
AFTER
$ a () { <> f ;}; declare -f a
a ()
{
<> f
}
$ a () { 1<> f ;}; declare -f a
a ()
{
1<> f
}
---
print_cmd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/print_cmd.c b/print_cmd.c
index e7021338..2ad4b8ef 100644
--- a/print_cmd.c
+++ b/print_cmd.c
@@ -1199,7 +1199,7 @@ print_redirection (REDIRECT *redirect)
case r_input_output:
if (redirect->rflags & REDIR_VARASSIGN)
cprintf ("{%s}", redir_word->word);
- else if (redirector != 1)
+ else if (redirector != 0)
cprintf ("%d", redirector);
cprintf ("<> %s", redirectee->word);
break;
--
2.45.3