Imported from ../bash-4.0-rc1.tar.gz.
[platform/upstream/bash.git] / builtins / return.def
index 529e04c..641ee16 100644 (file)
@@ -1,23 +1,22 @@
 This file is return.def, from which is created return.c.
 It implements the builtin "return" in Bash.
 
 This file is return.def, from which is created return.c.
 It implements the builtin "return" in Bash.
 
-Copyright (C) 1987, 1989, 1991 Free Software Foundation, Inc.
+Copyright (C) 1987-2009 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
-Bash is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
+Bash is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
 
-Bash is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
+Bash is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
 
-You should have received a copy of the GNU General Public License along
-with Bash; see the file COPYING.  If not, write to the Free Software
-Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+You should have received a copy of the GNU General Public License
+along with Bash.  If not, see <http://www.gnu.org/licenses/>.
 
 $PRODUCES return.c
 
 
 $PRODUCES return.c
 
@@ -25,8 +24,14 @@ $BUILTIN return
 
 $FUNCTION return_builtin
 $SHORT_DOC return [n]
 
 $FUNCTION return_builtin
 $SHORT_DOC return [n]
-Causes a function to exit with the return value specified by N.  If N
-is omitted, the return status is that of the last command.
+Return from a shell function.
+
+Causes a function or sourced script to exit with the return value
+specified by N.  If N is omitted, the return status is that of the
+last command executed within the function or script.
+
+Exit Status:
+Returns N, or failure if the shell is not executing a function or script.
 $END
 
 #include <config.h>
 $END
 
 #include <config.h>
@@ -38,8 +43,11 @@ $END
 #  include <unistd.h>
 #endif
 
 #  include <unistd.h>
 #endif
 
+#include "../bashintl.h"
+
 #include "../shell.h"
 #include "common.h"
 #include "../shell.h"
 #include "common.h"
+#include "bashgetopt.h"
 
 extern int last_command_exit_value;
 extern int subshell_environment;
 
 extern int last_command_exit_value;
 extern int subshell_environment;
@@ -52,13 +60,17 @@ int
 return_builtin (list)
      WORD_LIST *list;
 {
 return_builtin (list)
      WORD_LIST *list;
 {
-  return_catch_value = list ? get_exitstat (list) : last_command_exit_value;
+  if (no_options (list))
+    return (EX_USAGE);
+  list = loptend;      /* skip over possible `--' */
+
+  return_catch_value = get_exitstat (list);
 
   if (return_catch_flag)
     longjmp (return_catch, 1);
   else
     {
 
   if (return_catch_flag)
     longjmp (return_catch, 1);
   else
     {
-      builtin_error ("can only `return' from a function or sourced script");
+      builtin_error (_("can only `return' from a function or sourced script"));
       return (EXECUTION_FAILURE);
     }
 }
       return (EXECUTION_FAILURE);
     }
 }