Displaying 3 results from an estimated 3 matches for "do_regbltin".
2020 Mar 28
0
[klibc:update-dash] dash: eval: Add assignment built-in support again
...args;
+ if ((osp = fill_arglist(&arglist, &argp))) {
+ int pseudovarflag = 0;
- spp = arglist.lastp;
- expandarg(argp, &arglist, EXP_FULL | EXP_TILDE);
- for (sp = *spp; sp; sp = sp->next)
+ for (;;) {
+ find_command(arglist.list->text, &cmdentry,
+ cmd_flag | DO_REGBLTIN, pathval());
+
+ /* implement bltin and command here */
+ if (cmdentry.cmdtype != CMDBUILTIN)
+ break;
+
+ pseudovarflag = cmdentry.u.cmd->flags & BUILTIN_ASSIGN;
+ if (likely(spclbltin < 0)) {
+ spclbltin =
+ cmdentry.u.cmd->flags &
+ BUILTIN_SPECIAL
+ ;
+...
2020 Mar 28
0
[klibc:update-dash] dash: eval: Replace with listsetvar with mklocal/setvareq
...-759,6 +760,8 @@ evalcommand(union node *cmd, int flags)
cmd_flag = 0;
execcmd = 0;
spclbltin = -1;
+ vflags = 0;
+ vlocal = 0;
path = NULL;
argc = 0;
@@ -770,6 +773,8 @@ evalcommand(union node *cmd, int flags)
find_command(arglist.list->text, &cmdentry,
cmd_flag | DO_REGBLTIN, pathval());
+ vlocal++;
+
/* implement bltin and command here */
if (cmdentry.cmdtype != CMDBUILTIN)
break;
@@ -780,6 +785,7 @@ evalcommand(union node *cmd, int flags)
cmdentry.u.cmd->flags &
BUILTIN_SPECIAL
;
+ vlocal = spclbltin ^ BUILTIN_SPECIAL;...
2020 Mar 28
0
[klibc:update-dash] dash: eval: Add vfork support
...+ break;
}
shellexec(argv, path, cmdentry.u.index);
/* NOTREACHED */
diff --git a/usr/dash/exec.h b/usr/dash/exec.h
index 2b318257..423b07e6 100644
--- a/usr/dash/exec.h
+++ b/usr/dash/exec.h
@@ -58,6 +58,8 @@ struct cmdentry {
#define DO_ALTPATH 0x08 /* using alternate path */
#define DO_REGBLTIN 0x10 /* regular built-ins and functions only */
+union node;
+
extern const char *pathopt; /* set by padvance */
void shellexec(char **, const char *, int)
diff --git a/usr/dash/jobs.c b/usr/dash/jobs.c
index 9e7244e1..989907ed 100644
--- a/usr/dash/jobs.c
+++ b/usr/dash/jobs.c
@@ -53,6 +53,7...