From f46145a6b3f3bbab9328280cb1a6310d85f866c4 Mon Sep 17 00:00:00 2001 From: axel Date: Tue, 13 Jun 2006 02:48:54 +1000 Subject: [PATCH] Do not change status when the 'return' builtin is called with no argument darcs-hash:20060612164854-ac50b-5f428c819e8dafb44b591150d1965c5158854781.gz --- builtin.c | 2 +- doc_src/return.txt | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/builtin.c b/builtin.c index 0e2849c7b..41d460f5a 100644 --- a/builtin.c +++ b/builtin.c @@ -2623,7 +2623,7 @@ static int builtin_break_continue( wchar_t **argv ) static int builtin_return( wchar_t **argv ) { int argc = builtin_count_args( argv ); - int status = 0; + int status = proc_get_last_status(); block_t *b = current_block; diff --git a/doc_src/return.txt b/doc_src/return.txt index 005ca3608..a3c97809f 100644 --- a/doc_src/return.txt +++ b/doc_src/return.txt @@ -2,16 +2,18 @@ \section return return - Stop the innermost currently evaluated function \subsection return-synopsis Synopsis - function NAME; [COMMANDS...] break [STATUS]; [COMMANDS...] end + function NAME; [COMMANDS...] return [STATUS]; [COMMANDS...] end -\subsection return-description Description The \c return builtin is -used to halt a currently running function. It is usually added inside -of a conditional block such as an if statement or a -switch statement to conditionally stop the -executing function and return to the caller, but it can also be used -to specify the exit status of a function. +\subsection return-description Description -- \c STATUS is the return status of the function. If unspecified, the status is set to 0. +The \c return builtin is used to halt a currently running function. It +is usually added inside of a conditional block such as an if statement or a switch +statement to conditionally stop the executing function and return to +the caller, but it can also be used to specify the exit status of a +function. + +- \c STATUS is the return status of the function. If unspecified, the status is unchanged. \subsection return-example Example The following code is an implementation of the false command as a fish function