Displaying 3 results from an estimated 3 matches for "skipfuncdef".
2019 Jan 25
0
[klibc:update-dash] [BUILTIN] Return without arguments in a trap should use status outside traps
...rtions(+), 5 deletions(-)
diff --git a/usr/dash/eval.c b/usr/dash/eval.c
index 57db825b..db7639a4 100644
--- a/usr/dash/eval.c
+++ b/usr/dash/eval.c
@@ -967,7 +967,7 @@ funcdone:
shellparam = saveparam;
handler = savehandler;
INTON;
- evalskip &= ~SKIPFUNC;
+ evalskip &= ~(SKIPFUNC | SKIPFUNCDEF);
return e;
}
@@ -1047,12 +1047,23 @@ breakcmd(int argc, char **argv)
int
returncmd(int argc, char **argv)
{
+ int skip;
+ int status;
+
/*
* If called outside a function, do what ksh does;
* skip the rest of the file.
*/
- evalskip = SKIPFUNC;
- return argv[1] ? number(argv[1])...
2020 Mar 28
0
[klibc:update-dash] dash: [BUILTIN] Return without arguments in a trap should use status outside traps
...rtions(+), 5 deletions(-)
diff --git a/usr/dash/eval.c b/usr/dash/eval.c
index bb9fc260..3325cb62 100644
--- a/usr/dash/eval.c
+++ b/usr/dash/eval.c
@@ -967,7 +967,7 @@ funcdone:
shellparam = saveparam;
handler = savehandler;
INTON;
- evalskip &= ~SKIPFUNC;
+ evalskip &= ~(SKIPFUNC | SKIPFUNCDEF);
return e;
}
@@ -1047,12 +1047,23 @@ breakcmd(int argc, char **argv)
int
returncmd(int argc, char **argv)
{
+ int skip;
+ int status;
+
/*
* If called outside a function, do what ksh does;
* skip the rest of the file.
*/
- evalskip = SKIPFUNC;
- return argv[1] ? number(argv[1])...
2020 Mar 28
0
[klibc:update-dash] dash: eval: Only restore exit status on exit/return
...f8..1aad31a0 100644
--- a/usr/dash/eval.c
+++ b/usr/dash/eval.c
@@ -114,12 +114,13 @@ STATIC const struct builtincmd bltin = {
INCLUDE "eval.h"
EXITRESET {
- evalskip = 0;
- loopnest = 0;
if (savestatus >= 0) {
- exitstatus = savestatus;
+ if (exception == EXEXIT || evalskip == SKIPFUNCDEF)
+ exitstatus = savestatus;
savestatus = -1;
}
+ evalskip = 0;
+ loopnest = 0;
}
#endif
@@ -318,7 +319,7 @@ out:
if (flags & EV_EXIT) {
exexit:
- exraise(EXEXIT);
+ exraise(EXEND);
}
popstackmark(&smark);
diff --git a/usr/dash/exec.c b/usr/dash/exec.c
index 9d0215a6....