SCCS-vsn: bin/csh/sem.c 5.20
-static char sccsid[] = "@(#)sem.c 5.19 (Berkeley) %G%";
+static char sccsid[] = "@(#)sem.c 5.20 (Berkeley) %G%";
#endif /* not lint */
#include <sys/param.h>
#endif /* not lint */
#include <sys/param.h>
if (noexec)
(void) close(0);
}
if (noexec)
(void) close(0);
}
set(STRstatus, Strsave(STR0));
set(STRstatus, Strsave(STR0));
if (t->t_dtyp == NODE_COMMAND) {
/*
* Check if we have a builtin function and remember which one.
*/
bifunc = isbfunc(t);
if (t->t_dtyp == NODE_COMMAND) {
/*
* Check if we have a builtin function and remember which one.
*/
bifunc = isbfunc(t);
+ if (noexec) {
+ /*
+ * Continue for builtins that are part of the scripting language
+ */
+ if (bifunc->bfunct != dobreak && bifunc->bfunct != docontin &&
+ bifunc->bfunct != doelse && bifunc->bfunct != doend &&
+ bifunc->bfunct != doforeach && bifunc->bfunct != dogoto &&
+ bifunc->bfunct != doif && bifunc->bfunct != dorepeat &&
+ bifunc->bfunct != doswbrk && bifunc->bfunct != doswitch &&
+ bifunc->bfunct != dowhile && bifunc->bfunct != dozip)
+ break;
+ }
}
else { /* not a command */
bifunc = NULL;
}
else { /* not a command */
bifunc = NULL;