ebf9b31727
- do not resend signal on termination (#1092132) - fix brace expansion on/off - fix incorrect rounding of numsers 0.5 < |x| <1.0 in printf (#1080940) - fix parser errors related to the end of the here-document marker - ksh hangs when command substitution fills out the pipe buffer - using typeset -l with a restricted variabled caused segmentation fault - monitor mode was documented incorrectly - do not crash when unsetting running function from another one (#1105139) - should report an error when trying to cd into directory without execution bit - job locking mechanism did not survive compiler optimization - reading a file via command substitution did not work when any of stdin, stdout or stderr were closed (#1070308) - fix lexical parser crash
59 lines
2.5 KiB
Diff
59 lines
2.5 KiB
Diff
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 2013-07-08 17:33:42.238534376 +0200
|
|
@@ -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<nextprompt> */ \
|
|
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 2013-07-08 17:32:52.881124147 +0200
|
|
@@ -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/jobs.c.longer ksh-20120801/src/cmd/ksh93/sh/jobs.c
|
|
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 2013-07-08 17:32:52.874124090 +0200
|
|
+++ ksh-20120801/src/cmd/ksh93/sh/subshell.c 2013-07-08 17:32:52.882124156 +0200
|
|
@@ -98,7 +98,7 @@ static struct subshell
|
|
#endif /* SHOPT_COSHELL */
|
|
} *subshell_data;
|
|
|
|
-static int subenv;
|
|
+static long subenv;
|
|
|
|
|
|
/*
|
|
@@ -171,7 +171,8 @@ void sh_subfork(void)
|
|
{
|
|
register struct subshell *sp = subshell_data;
|
|
Shell_t *shp = sp->shp;
|
|
- int curenv = shp->curenv, comsub=shp->comsub;
|
|
+ long curenv = shp->curenv;
|
|
+ int comsub=shp->comsub;
|
|
pid_t pid;
|
|
char *trap = shp->st.trapcom[0];
|
|
if(trap)
|
|
@@ -461,7 +462,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;
|