Displaying 3 results from an estimated 3 matches for "minusc".
Did you mean:
minus
2019 Jan 25
0
[klibc:update-dash] [SHELL] Optimize dash -c "command" to avoid a fork
...gnore -e flag */
+
int evalstring(char *, int);
union node; /* BLETCH for ansi C */
void evaltree(union node *, int);
diff --git a/usr/dash/main.c b/usr/dash/main.c
index 7df3c441..f79ad7dd 100644
--- a/usr/dash/main.c
+++ b/usr/dash/main.c
@@ -171,7 +171,7 @@ state2:
state3:
state = 4;
if (minusc)
- evalstring(minusc, 0);
+ evalstring(minusc, sflag ? 0 : EV_EXIT);
if (sflag || minusc == NULL) {
state4: /* XXX ??? - why isn't this before the "if" statement */
diff --git a/usr/dash/mktokens b/usr/dash/mktokens
index 43d76ce1..fa6ccf78 100644
--- a/usr/dash/mktokens
+++ b/...
2020 Mar 28
0
[klibc:update-dash] dash: [SHELL] Optimize dash -c "command" to avoid a fork
...gnore -e flag */
+
int evalstring(char *, int);
union node; /* BLETCH for ansi C */
void evaltree(union node *, int);
diff --git a/usr/dash/main.c b/usr/dash/main.c
index 7df3c441..f79ad7dd 100644
--- a/usr/dash/main.c
+++ b/usr/dash/main.c
@@ -171,7 +171,7 @@ state2:
state3:
state = 4;
if (minusc)
- evalstring(minusc, 0);
+ evalstring(minusc, sflag ? 0 : EV_EXIT);
if (sflag || minusc == NULL) {
state4: /* XXX ??? - why isn't this before the "if" statement */
diff --git a/usr/dash/mktokens b/usr/dash/mktokens
index 43d76ce1..fa6ccf78 100644
--- a/usr/dash/mktokens
+++ b/...
2020 Mar 28
0
[klibc:update-dash] dash: eval: Add vfork support
...;
+
if ((t = trap[signo]) == NULL)
action = S_DFL;
else if (*t != '\0')
action = S_CATCH;
else
action = S_IGN;
- if (rootshell && action == S_DFL) {
+ if (rootshell && action == S_DFL && !lvforked) {
switch (signo) {
case SIGINT:
if (iflag || minusc || sflag == 0)
@@ -255,7 +258,8 @@ setsignal(int signo)
default:
act.sa_handler = SIG_DFL;
}
- *t = action;
+ if (!lvforked)
+ *t = action;
act.sa_flags = 0;
sigfillset(&act.sa_mask);
sigaction(signo, &act, 0);
@@ -271,7 +275,8 @@ ignoresig(int signo)
if (sigmode[signo - 1]...