about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2016-01-27 22:10:03 -0800
committerBarton E. Schaefer <schaefer@zsh.org>2016-01-27 22:10:38 -0800
commit0b37b5149d2fc56221267936753362bddce2ce4a (patch)
tree3859ecdbc7380b88cddeb455ba262e7f53fcb156
parentd18476ce5c0a76831192df8ba2006536206c6646 (diff)
downloadzsh-0b37b5149d2fc56221267936753362bddce2ce4a.tar.gz
zsh-0b37b5149d2fc56221267936753362bddce2ce4a.tar.xz
zsh-0b37b5149d2fc56221267936753362bddce2ce4a.zip
37804 (plus 37816): first word following "repeat" should be evaluated as math
-rw-r--r--ChangeLog3
-rw-r--r--Src/loop.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a5fce1d79..a00c539bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2016-01-27  Barton E. Schaefer  <schaefer@zsh.org>
 
+	* 37804 (plus error return per 37816): Src/loop.c: first word
+	following "repeat" should be evaluated as math, to match docs
+
 	* 37819: Src/hist.c: zshaddhistory hook is intended to work for
 	any history file write, even upon keyboard interrupt
 
diff --git a/Src/loop.c b/Src/loop.c
index 4def9b652..19d7f733e 100644
--- a/Src/loop.c
+++ b/Src/loop.c
@@ -493,7 +493,9 @@ execrepeat(Estate state, UNUSED(int do_exec))
     tmp = ecgetstr(state, EC_DUPTOK, &htok);
     if (htok)
 	singsub(&tmp);
-    count = atoi(tmp);
+    count = mathevali(tmp);
+    if (errflag)
+	return 1;
     pushheap();
     cmdpush(CS_REPEAT);
     loops++;