Displaying 2 results from an estimated 2 matches for "bb106368".
Did you mean:
  106368
  
2019 Jan 25
0
[klibc:update-dash] [EVAL] Move common skipcount logic into skiploop
...u <herbert at gondor.apana.org.au>
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
 usr/dash/eval.c | 56 +++++++++++++++++++++++++++++++-------------------------
 1 file changed, 31 insertions(+), 25 deletions(-)
diff --git a/usr/dash/eval.c b/usr/dash/eval.c
index 204f1e57..bb106368 100644
--- a/usr/dash/eval.c
+++ b/usr/dash/eval.c
@@ -339,27 +339,45 @@ void evaltreenr(union node *n, int flags)
 #endif
 
 
+static int skiploop(void)
+{
+	int skip = evalskip;
+
+	switch (skip) {
+	case 0:
+		break;
+
+	case SKIPBREAK:
+	case SKIPCONT:
+		if (likely(--skipcount <= 0)) {
+...
2019 Jan 25
0
[klibc:update-dash] [BUILTIN] Allow return in loop conditional to set exit status
...elas <stephane_chazelas at yahoo.fr>
Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
 usr/dash/eval.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/usr/dash/eval.c b/usr/dash/eval.c
index bb106368..57db825b 100644
--- a/usr/dash/eval.c
+++ b/usr/dash/eval.c
@@ -387,8 +387,9 @@ evalloop(union node *n, int flags)
 		status = exitstatus;
 		skip = skiploop();
 	} while (!(skip & ~SKIPCONT));
+	if (skip != SKIPFUNC)
+		exitstatus = status;
 	loopnest--;
-	exitstatus = status;
 }