Blame SPECS/ksh-20120801-kshmfix.patch

Packit Service a8c26c
diff -up ksh-20120801/src/cmd/ksh93/sh/main.c.monintoron ksh-20120801/src/cmd/ksh93/sh/main.c
Packit Service a8c26c
--- ksh-20120801/src/cmd/ksh93/sh/main.c.monintoron	2013-05-31 10:15:02.738828102 +0200
Packit Service a8c26c
+++ ksh-20120801/src/cmd/ksh93/sh/main.c	2013-05-31 10:15:36.057095262 +0200
Packit Service a8c26c
@@ -406,10 +406,10 @@ static void	exfile(register Shell_t *shp
Packit Service a8c26c
 		{
Packit Service a8c26c
 			buff.mode = SH_JMPEXIT;
Packit Service a8c26c
 			sh_onoption(SH_TRACKALL);
Packit Service a8c26c
-			sh_offoption(SH_MONITOR);
Packit Service a8c26c
 		}
Packit Service a8c26c
 		sh_offstate(SH_INTERACTIVE);
Packit Service a8c26c
-		sh_offstate(SH_MONITOR);
Packit Service a8c26c
+		if(sh_isoption(SH_MONITOR))
Packit Service a8c26c
+			sh_onstate(SH_MONITOR);
Packit Service a8c26c
 		sh_offstate(SH_HISTORY);
Packit Service a8c26c
 		sh_offoption(SH_HISTORY);
Packit Service a8c26c
 	}
Packit Service a8c26c
diff -up ksh-20120801/src/cmd/ksh93/sh/jobs.c.orig ksh-20120801/src/cmd/ksh93/sh/jobs.c
Packit Service a8c26c
--- ksh-20120801/src/cmd/ksh93/sh/jobs.c.orig	2013-05-31 10:12:28.358590452 +0200
Packit Service a8c26c
+++ ksh-20120801/src/cmd/ksh93/sh/jobs.c	2013-05-31 10:16:51.203697890 +0200
Packit Service a8c26c
@@ -548,7 +548,7 @@ int job_reap(register int sig)
Packit Service a8c26c
 		{
Packit Service a8c26c
 			px = job_byjid((int)pw->p_job);
Packit Service a8c26c
 			for(; px && (px->p_flag&P_DONE); px=px->p_nxtproc);
Packit Service a8c26c
-			if(!px)
Packit Service a8c26c
+			if(!px && sh_isoption(SH_INTERACTIVE))
Packit Service a8c26c
 				tcsetpgrp(JOBTTY,job.mypid);
Packit Service a8c26c
 		}
Packit Service a8c26c
 #ifndef SHOPT_BGX
Packit Service a8c26c
@@ -842,10 +842,11 @@ static void job_set(register struct proc
Packit Service a8c26c
 
Packit Service a8c26c
 static void job_reset(register struct process *pw)
Packit Service a8c26c
 {
Packit Service a8c26c
+	Shell_t *shp = pw->p_shp;
Packit Service a8c26c
 	/* save the terminal state for current job */
Packit Service a8c26c
 #ifdef SIGTSTP
Packit Service a8c26c
 	job_fgrp(pw,tcgetpgrp(job.fd));
Packit Service a8c26c
-	if(tcsetpgrp(job.fd,job.mypid) !=0)
Packit Service a8c26c
+	if(sh_isoption(SH_INTERACTIVE) && tcsetpgrp(job.fd,job.mypid) !=0)
Packit Service a8c26c
 		return;
Packit Service a8c26c
 #endif	/* SIGTSTP */
Packit Service a8c26c
 	/* force the following tty_get() to do a tcgetattr() unless fg */
Packit Service a8c26c
diff -up ksh-20120801/src/cmd/ksh93/sh/xec.c.orig ksh-20120801/src/cmd/ksh93/sh/xec.c
Packit Service a8c26c
--- ksh-20120801/src/cmd/ksh93/sh/xec.c.orig	2013-05-31 10:12:27.000000000 +0200
Packit Service a8c26c
+++ ksh-20120801/src/cmd/ksh93/sh/xec.c	2013-05-31 10:18:14.650367185 +0200
Packit Service a8c26c
@@ -2201,7 +2201,7 @@ int sh_exec(register const Shnode_t *t,
Packit Service a8c26c
 			}
Packit Service a8c26c
 			shp->exitval = n;
Packit Service a8c26c
 #ifdef SIGTSTP
Packit Service a8c26c
-			if(!pipejob && sh_isstate(SH_MONITOR))
Packit Service a8c26c
+			if(!pipejob && sh_isstate(SH_MONITOR) && sh_isoption(SH_INTERACTIVE))
Packit Service a8c26c
 				tcsetpgrp(JOBTTY,shp->gd->pid);
Packit Service a8c26c
 #endif /*SIGTSTP */
Packit Service a8c26c
 			job.curpgid = savepgid;
Packit Service a8c26c
diff -up ksh-20120801/src/cmd/ksh93/edit/edit.c.kshmfix ksh-20120801/src/cmd/ksh93/edit/edit.c
Packit Service a8c26c
--- ksh-20120801/src/cmd/ksh93/edit/edit.c.kshmfix      2013-09-23 10:46:57.007256192 +0200
Packit Service a8c26c
+++ ksh-20120801/src/cmd/ksh93/edit/edit.c      2013-09-23 10:47:43.988937610 +0200
Packit Service a8c26c
@@ -1050,7 +1050,7 @@ int ed_getchar(register Edit_t *ep,int m
Packit Service a8c26c
 		{
Packit Service a8c26c
 			if(mode<=0 && -c == ep->e_intr)
Packit Service a8c26c
 			{
Packit Service a8c26c
-				sh_fault(SIGINT);
Packit Service a8c26c
+				killpg(getpgrp(),SIGINT);
Packit Service a8c26c
 				siglongjmp(ep->e_env, UINTR);
Packit Service a8c26c
 			}
Packit Service a8c26c
 			if(mode<=0 && ep->sh->st.trap[SH_KEYTRAP])
Packit Service a8c26c