← Commit list

960ca385b

Denys Vlasenko
Denys Vlasenko
2016-10-25
SUCCESS Duration: 195s

Subject

ash: add comment explaining "set -e; $(cmd)" discrepancy

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

shell/ash.c+8 -0
@@ -5924,6 +5924,14 @@ evalbackcmd(union node *n, struct backcmd *result)
copyfd(pip[1], 1 | COPYFD_EXACT);
close(pip[1]);
}
+/* TODO: eflag clearing makes the following not abort:
+ * ash -c 'set -e; z=$(false;echo foo); echo $z'
+ * which is what bash does (unless it is in POSIX mode).
+ * dash deleted "eflag = 0" line in the commit
+ * Date: Mon, 28 Jun 2010 17:11:58 +1000
+ * [EVAL] Don't clear eflag in evalbackcmd
+ * For now, preserve bash-like behavior, it seems to be somewhat more useful:
+ */
eflag = 0;
evaltree(n, EV_EXIT); /* actually evaltreenr... */
/* NOTREACHED */