diff -up ksh-20120801/src/cmd/ksh93/include/defs.h.longer ksh-20120801/src/cmd/ksh93/include/defs.h --- ksh-20120801/src/cmd/ksh93/include/defs.h.longer 2012-06-25 20:47:47.000000000 +0200 +++ ksh-20120801/src/cmd/ksh93/include/defs.h 2014-01-17 13:10:49.624714556 +0100 @@ -162,8 +162,8 @@ struct shared Namval_t *prev_table; /* previous table used in nv_open */ \ Sfio_t *outpool; /* ouput stream pool */ \ long timeout; /* read timeout */ \ - short curenv; /* current subshell number */ \ - short jobenv; /* subshell number for jobs */ \ + long curenv; /* current subshell number */ \ + long jobenv; /* subshell number for jobs */ \ int infd; /* input file descriptor */ \ short nextprompt; /* next prompt is PS */ \ short poolfiles; \ diff -up ksh-20120801/src/cmd/ksh93/include/jobs.h.longer ksh-20120801/src/cmd/ksh93/include/jobs.h --- ksh-20120801/src/cmd/ksh93/include/jobs.h.longer 2011-12-19 13:36:37.000000000 +0100 +++ ksh-20120801/src/cmd/ksh93/include/jobs.h 2014-01-17 13:10:49.625714536 +0100 @@ -87,7 +87,7 @@ struct process unsigned short p_exit; /* exit value or signal number */ unsigned short p_exitmin; /* minimum exit value for xargs */ unsigned short p_flag; /* flags - see below */ - int p_env; /* subshell environment number */ + long p_env; /* subshell environment number */ #ifdef JOBS off_t p_name; /* history file offset for command */ struct termios p_stty; /* terminal state for job */ diff -up ksh-20120801/src/cmd/ksh93/sh/subshell.c.longer ksh-20120801/src/cmd/ksh93/sh/subshell.c --- ksh-20120801/src/cmd/ksh93/sh/subshell.c.longer 2014-01-17 13:10:49.559715864 +0100 +++ ksh-20120801/src/cmd/ksh93/sh/subshell.c 2014-01-17 13:13:41.392290104 +0100 @@ -98,7 +98,7 @@ static struct subshell #endif /* SHOPT_COSHELL */ } *subshell_data; -static int subenv; +static long subenv; /* @@ -171,7 +171,7 @@ void sh_subfork(void) { register struct subshell *sp = subshell_data; Shell_t *shp = sp->shp; - int curenv = shp->curenv; + long curenv = shp->curenv; pid_t pid; char *trap = shp->st.trapcom[0]; if(trap) @@ -461,7 +461,7 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_ struct subshell sub_data; register struct subshell *sp = &sub_data; int jmpval,nsig=0,duped=0; - int savecurenv = shp->curenv; + long savecurenv = shp->curenv; int savejobpgid = job.curpgid; int *saveexitval = job.exitval; int16_t subshell;