aboutsummaryrefslogtreecommitdiffstats
path: root/builtins/break.def
diff options
context:
space:
mode:
authorJari Aalto <jari.aalto@cante.net>1997-06-05 14:59:13 +0000
committerJari Aalto <jari.aalto@cante.net>2009-09-12 16:46:50 +0000
commitd166f048818e10cf3799aa24a174fb22835f1acc (patch)
tree1ca27f9243900f8b236d0cde6a3862002aea9e19 /builtins/break.def
parentccc6cda312fea9f0468ee65b8f368e9653e1380b (diff)
downloadandroid_external_bash-d166f048818e10cf3799aa24a174fb22835f1acc.tar.gz
android_external_bash-d166f048818e10cf3799aa24a174fb22835f1acc.tar.bz2
android_external_bash-d166f048818e10cf3799aa24a174fb22835f1acc.zip
Imported from ../bash-2.01.tar.gz.
Diffstat (limited to 'builtins/break.def')
-rw-r--r--builtins/break.def22
1 files changed, 15 insertions, 7 deletions
diff --git a/builtins/break.def b/builtins/break.def
index d6f8598..5354ef6 100644
--- a/builtins/break.def
+++ b/builtins/break.def
@@ -57,13 +57,17 @@ break_builtin (list)
{
int newbreak;
- if (!check_loop_level ())
+ if (check_loop_level () == 0)
return (EXECUTION_FAILURE);
- newbreak = get_numeric_arg (list);
+ newbreak = get_numeric_arg (list, 1);
if (newbreak <= 0)
- return (EXECUTION_FAILURE);
+ {
+ builtin_error ("loop count must be > 0");
+ breaking = loop_level;
+ return (EXECUTION_FAILURE);
+ }
if (newbreak > loop_level)
newbreak = loop_level;
@@ -88,13 +92,17 @@ continue_builtin (list)
{
int newcont;
- if (!check_loop_level ())
+ if (check_loop_level () == 0)
return (EXECUTION_FAILURE);
- newcont = get_numeric_arg (list);
+ newcont = get_numeric_arg (list, 1);
if (newcont <= 0)
- return (EXECUTION_FAILURE);
+ {
+ builtin_error ("loop count must be > 0");
+ breaking = loop_level;
+ return (EXECUTION_FAILURE);
+ }
if (newcont > loop_level)
newcont = loop_level;
@@ -110,7 +118,7 @@ static int
check_loop_level ()
{
#if defined (BREAK_COMPLAINS)
- if (!loop_level)
+ if (loop_level == 0)
builtin_error ("only meaningful in a `for', `while', or `until' loop");
#endif /* BREAK_COMPLAINS */