diff --git a/src/cmd/ksh93/bltins/test.c b/src/cmd/ksh93/bltins/test.c index b0b4b20ab..e3bea6aa2 100644 --- a/src/cmd/ksh93/bltins/test.c +++ b/src/cmd/ksh93/bltins/test.c @@ -89,9 +89,9 @@ static int e3(struct test*); */ int _ERROR_exit_b_test(int exitval) { - if(sh_in_test_builtin) + if(sh_isstate(SH_INTESTCMD)) { - sh_in_test_builtin = 0; + sh_offstate(SH_INTESTCMD); if(exitval < 2) exitval = 2; } @@ -133,7 +133,7 @@ int b_test(int argc, char *argv[],Shbltin_t *context) register int not; int exitval; - sh_in_test_builtin = 1; + sh_onstate(SH_INTESTCMD); tdata.sh = context->shp; tdata.av = argv; tdata.ap = 1; @@ -226,7 +226,7 @@ int b_test(int argc, char *argv[],Shbltin_t *context) tdata.ac = argc; exitval = (!expr(&tdata,0)); done: - sh_in_test_builtin = 0; + sh_offstate(SH_INTESTCMD); return(exitval); } diff --git a/src/cmd/ksh93/include/defs.h b/src/cmd/ksh93/include/defs.h index 543c777fa..e56a53739 100644 --- a/src/cmd/ksh93/include/defs.h +++ b/src/cmd/ksh93/include/defs.h @@ -309,6 +309,7 @@ struct shared #define SH_FCOMPLETE 17 /* set for filename completion */ #define SH_PREINIT 18 /* set with SH_INIT before parsing options */ #define SH_COMPLETE 19 /* set for command completion */ +#define SH_INTESTCMD 20 /* set while test/[ command is being run */ #define SH_BASH 41 #define SH_BRACEEXPAND 42 @@ -507,7 +508,6 @@ extern const char e_dict[]; # define sh_stats(x) #endif /* SHOPT_STATS */ -extern int sh_in_test_builtin; extern int _ERROR_exit_b_test(int); #endif diff --git a/src/cmd/ksh93/sh/defs.c b/src/cmd/ksh93/sh/defs.c index d505af120..308ce22fe 100644 --- a/src/cmd/ksh93/sh/defs.c +++ b/src/cmd/ksh93/sh/defs.c @@ -46,4 +46,3 @@ char *sh_lexstates[ST_NONE] = {0}; struct jobs job = {0}; int32_t sh_mailchk = 600; -int sh_in_test_builtin = 0;