38 lines
1002 B
Diff
38 lines
1002 B
Diff
|
|
idiff --git a/jobs.c b/jobs.c
|
||
|
|
index ae3c54c..6bc31dc 100644
|
||
|
|
--- a/jobs.c
|
||
|
|
+++ b/jobs.c
|
||
|
|
@@ -4837,15 +4837,13 @@ void
|
||
|
|
end_job_control ()
|
||
|
|
{
|
||
|
|
if (job_control)
|
||
|
|
- {
|
||
|
|
- terminate_stopped_jobs ();
|
||
|
|
+ terminate_stopped_jobs ();
|
||
|
|
|
||
|
|
- if (original_pgrp >= 0)
|
||
|
|
- give_terminal_to (original_pgrp, 1);
|
||
|
|
- }
|
||
|
|
+ if (original_pgrp >= 0 && terminal_pgrp != original_pgrp)
|
||
|
|
+ give_terminal_to (original_pgrp, 1);
|
||
|
|
|
||
|
|
- if (original_pgrp >= 0)
|
||
|
|
- setpgid (0, original_pgrp);
|
||
|
|
+ if (original_pgrp >= 0 && setpgid (0, original_pgrp) == 0)
|
||
|
|
+ shell_pgrp = original_pgrp;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* Restart job control by closing shell tty and reinitializing. This is
|
||
|
|
diff --git a/patchlevel.h b/patchlevel.h
|
||
|
|
index 14bff9f..deb9c5b 100644
|
||
|
|
--- a/patchlevel.h
|
||
|
|
+++ b/patchlevel.h
|
||
|
|
@@ -25,6 +25,6 @@
|
||
|
|
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
|
||
|
|
looks for to find the patch level (for the sccs version string). */
|
||
|
|
|
||
|
|
-#define PATCHLEVEL 6
|
||
|
|
+#define PATCHLEVEL 7
|
||
|
|
|
||
|
|
#endif /* _PATCHLEVEL_H_ */
|