It's known variables expand earlier than expression evaluations. The procedure
if ( $?a && "$a" != ) echo "$a"
would fail if a isn't set. The correct behavior is to evaluate $?a first, and, if expanded to zero, cancel further processing.
This work remedies the issue by postponing variable expansions during expression evaluations. The function Dfix1 is used for I/O redirections, and fails if the expansion is null or, if not quoted, larger than one word/vector. I believe this behavior is fine.
This work was also supposed to fix $< expansions on pipes and redirections. I had some success with a fix, but ends up blocking the shell, making it unusable and uninterruptible.
It's known variables expand earlier than expression evaluations. The procedure
would fail if
a
isn't set. The correct behavior is to evaluate$?a
first, and, if expanded to zero, cancel further processing.This work remedies the issue by postponing variable expansions during expression evaluations. The function
Dfix1
is used for I/O redirections, and fails if the expansion is null or, if not quoted, larger than one word/vector. I believe this behavior is fine.This work was also supposed to fix
$<
expansions on pipes and redirections. I had some success with a fix, but ends up blocking the shell, making it unusable and uninterruptible.