aboutsummaryrefslogtreecommitdiffhomepage
path: root/exec.cpp
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-12-29 16:23:26 -0800
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-12-29 16:23:26 -0800
commita9787b769fce4327be5db4f361fb47208d4f79d1 (patch)
treeb71139c1669cb964350ae7b863bfdb14b89c9e86 /exec.cpp
parenta42711e31cdb41e3c504ed161c07e56698d29e7a (diff)
Support for implicit cd, no-exec, and the exit builtin. All tests now
pass (!). Error reporting still unsteady.
Diffstat (limited to 'exec.cpp')
-rw-r--r--exec.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/exec.cpp b/exec.cpp
index e150723d..594a5385 100644
--- a/exec.cpp
+++ b/exec.cpp
@@ -577,6 +577,12 @@ static bool can_use_posix_spawn_for_job(const job_t *job, const process_t *proce
/* What exec does if no_exec is set. This only has to handle block pushing and popping. See #624. */
static void exec_no_exec(parser_t &parser, const job_t *job)
{
+ if (parser_use_ast())
+ {
+ /* With the new parser, commands aren't responsible for pushing / popping blocks, so there's nothing to do */
+ return;
+ }
+
/* Hack hack hack. If this is an 'end' job, then trigger a pop. If this is a job that would create a block, trigger a push. See #624 */
const process_t *p = job->first_process;
if (p && p->type == INTERNAL_BUILTIN)