From fb493cc5f4d5f344cd059a13db422314e3483b53 Mon Sep 17 00:00:00 2001 From: Timothy Sample Date: Tue, 16 Oct 2018 19:45:42 -0400 Subject: [PATCH] Process the return value of built-ins * geesh/shell.scm (sh:exec-let): Set the '$?' variable to the return value of built-in utilities. --- geesh/shell.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/geesh/shell.scm b/geesh/shell.scm index b42eb78..5ed8d3c 100644 --- a/geesh/shell.scm +++ b/geesh/shell.scm @@ -95,12 +95,14 @@ it cannot be found, return @code{#f}." ((name . value) (set-var! env name value))) bindings) - (apply proc env args))) + (let ((exit-val (apply proc env args))) + (set-var! env "?" (number->string exit-val))))) ;; TODO: Functions. (and=> (search-built-ins name) (lambda (proc) ;; TODO: Use 'bindings' here. - (apply proc env args))) + (let ((exit-val (apply proc env args))) + (set-var! env "?" (number->string exit-val))))) (and=> (find-utility env name) (lambda (path) (exec-utility env bindings path name args)))