Do not change status when the 'return' builtin is called with no argument

darcs-hash:20060612164854-ac50b-5f428c819e8dafb44b591150d1965c5158854781.gz
This commit is contained in:
axel 2006-06-13 02:48:54 +10:00
parent c61f6ceea6
commit f46145a6b3
2 changed files with 11 additions and 9 deletions

View File

@ -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;

View File

@ -2,16 +2,18 @@
\section return return - Stop the innermost currently evaluated function
\subsection return-synopsis Synopsis
<tt>function NAME; [COMMANDS...] break [STATUS]; [COMMANDS...] end</tt>
<tt>function NAME; [COMMANDS...] return [STATUS]; [COMMANDS...] end</tt>
\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 <a href="#if">if</a> statement or a
<a href="#switch">switch</a> 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 <a
href="#if">if</a> statement or a <a href="#switch">switch</a>
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