<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/7c8e45245901fcd37fdf2263f2d2b61f034d2444">https://github.com/macports/macports-ports/commit/7c8e45245901fcd37fdf2263f2d2b61f034d2444</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 7c8e452 screen: update to 4.6.2
</span>7c8e452 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 7c8e45245901fcd37fdf2263f2d2b61f034d2444
</span>Author: David Gilman <davidgilman1@gmail.com>
AuthorDate: Wed Aug 22 16:37:28 2018 -0400
<span style='display:block; white-space:pre;color:#404040;'> screen: update to 4.6.2
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Big reorganization of how this portfile gets patched. I went back to
</span><span style='display:block; white-space:pre;color:#404040;'> Apple's screen-22 source, extracted their patches, rebased them against
</span><span style='display:block; white-space:pre;color:#404040;'> latest, and put them together in a single file patch-apple.diff which
</span><span style='display:block; white-space:pre;color:#404040;'> contains all of them. I think this will be more manageable going
</span><span style='display:block; white-space:pre;color:#404040;'> forward.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> I figured out the purpose of patch-config.h.in.diff and left a note in
</span><span style='display:block; white-space:pre;color:#404040;'> that file explaining what it does.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> I removed support for the MacOS X 10.5 patches. I have no machine to
</span><span style='display:block; white-space:pre;color:#404040;'> test this and those are pretty old systems anyway.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Patches I removed:
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-Makefile.in.diff: Upstream builds just fine without this, so
</span><span style='display:block; white-space:pre;color:#404040;'> removing them. It stripped CFLAGS from a build line, no idea what the
</span><span style='display:block; white-space:pre;color:#404040;'> offending CFLAGS might have been.
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-configure-libelf.diff: This is a fix to a ./configure check for
</span><span style='display:block; white-space:pre;color:#404040;'> the existence of SVR4. We are not SVR4, who cares if it is broken.
</span><span style='display:block; white-space:pre;color:#404040;'> patch-configure.diff: More fixes to ./configure to detect utmp support.
</span><span style='display:block; white-space:pre;color:#404040;'> Apple's patch uses /usr/bin/login to handle utmp so no need for
</span><span style='display:block; white-space:pre;color:#404040;'> this.
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-marxargs.diff: Not used in old portfile.
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-process.c-fix-bogus-strncpy-size.diff: Fixed upstream.
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-pty.c.diff: Not used in old portfile.
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-screen.c-leopard.diff: Removed 10.5 support.
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-utmp.c: This appears to be a half-hearted attempt at fixing up
</span><span style='display:block; white-space:pre;color:#404040;'> utmp support under MacOS X. Unfortunately for the patch author MacOS X
</span><span style='display:block; white-space:pre;color:#404040;'> does not have a utmp, it uses utmpx, and we disable support for utmp
</span><span style='display:block; white-space:pre;color:#404040;'> editing at compile time. This patch is pointless and was removed.
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-windowsize.diff: This patch has been updated but in a slightly
</span><span style='display:block; white-space:pre;color:#404040;'> different form.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Patches that are now part of patch-apple.diff:
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-screen.c.diff
</span><span style='display:block; white-space:pre;color:#404040;'> * patch-window.c.diff
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/44279
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/53355
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/51395
</span>---
sysutils/screen/Portfile | 39 ++----
sysutils/screen/files/patch-Makefile.in.diff | 11 --
sysutils/screen/files/patch-apple.diff | 128 ++++++++++++++++++++
sysutils/screen/files/patch-config.h.in.diff | 8 ++
sysutils/screen/files/patch-configure-libelf.diff | 10 --
sysutils/screen/files/patch-configure.diff | 22 ----
sysutils/screen/files/patch-maxargs.diff | 11 --
.../patch-process.c-fix-bogus-strncpy-size.diff | 12 --
sysutils/screen/files/patch-pty.c.diff | 11 --
sysutils/screen/files/patch-screen.c-leopard.diff | 26 ----
sysutils/screen/files/patch-screen.c.diff | 43 -------
sysutils/screen/files/patch-utmp.c.diff | 134 ---------------------
sysutils/screen/files/patch-window.c.diff | 49 --------
sysutils/screen/files/patch-windowsize.diff | 20 ---
14 files changed, 145 insertions(+), 379 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/Portfile b/sysutils/screen/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e57e3ba..095c37a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/screen/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,8 +3,7 @@
</span> PortSystem 1.0
name screen
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 4.3.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 4.6.2
</span> homepage https://www.gnu.org/software/screen/
description Screen manager with VT100/ANSI terminal emulation
long_description \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,7 +18,7 @@ long_description \
</span> categories sysutils
license GPL-3+
platforms darwin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {gmail.com:davidgilman1 @dgilman} openmaintainer
</span> master_sites gnu:${name} \
http://www.ryandesign.com/macports/distfiles/screen/:encoding \
http://www.ryandesign.com/macports/distfiles/screen/r23776/:launchd_priv_header
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,18 +28,19 @@ master_sites gnu:${name} \
</span> distfiles-append 18:encoding
checksums ${distname}${extract.suffix} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- rmd160 9de183f86e36b211d56c35e58598728f332faec9 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 371828d8de1f2f8a77b6c010e12b5ea91d351dd3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 845210 \
</span> 18 \
rmd160 bd143058417e1d4c040a2589fdfbf8f9203f0b4c \
sha256 4d4b674a61dab6bac9b4207307c5f020fa670fc3948c39e7ea93c7fb9dfb5174 \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 54746 \
</span> vproc_priv.h \
rmd160 ea1fb112d58a168c581ee58e761c26f7caed40ec \
sha256 dcd2786d82865fb10542c20e97d7052110f7ca9a551f2ab5628c607f20e2bb2f
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles patch-utmp.c.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-windowsize.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-Makefile.in.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-apple.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-config.h.in.diff
</span> depends_lib port:ncurses
extract.only ${distname}${extract.suffix}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -61,33 +61,12 @@ post-destroot {
</span> }
platform darwin {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-configure-libelf.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin 9 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace s|^deflogin|#deflogin| ${worksrcpath}/etc/etcscreenrc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # These patches are based on http://www.opensource.apple.com/darwinsource/10.5.6/screen-12/patches/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # The vproc_priv.h is the private header from launchd, used in Apple's 10.5 screen patches
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # We copied the header file from http://launchd.macosforge.org/trac/browser/trunk/launchd/src/vproc_priv.h, r23776
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- distfiles-append vproc_priv.h:launchd_priv_header
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file copy ${distpath}/vproc_priv.h ${worksrcpath}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-config.h.in.diff patch-configure.diff patch-window.c.diff patch-screen.c-leopard.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} >= 10 && ${os.major} <= 13} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # These patches are based on http://www.opensource.apple.com/source/screen/screen-16/patches/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # The vproc_priv.h is the private header from launchd, used in Apple's 10.6 screen patches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The vproc_priv.h is the private header from launchd
</span> # We copied the header file from http://launchd.macosforge.org/trac/browser/trunk/launchd/src/vproc_priv.h, r23776
distfiles-append vproc_priv.h:launchd_priv_header
post-extract {
file copy ${distpath}/vproc_priv.h ${worksrcpath}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-config.h.in.diff patch-configure.diff patch-window.c.diff patch-screen.c.diff
</span> }
notes "
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-Makefile.in.diff b/sysutils/screen/files/patch-Makefile.in.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 9df8f9a..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-Makefile.in.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Makefile.in 2014-04-26 12:58:35.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Makefile.in 2014-05-01 21:36:54.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -134,7 +134,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sh $(srcdir)/tty.sh tty.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- comm.h: comm.c comm.sh config.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- AWK=$(AWK) CC="$(CC) $(CFLAGS)" srcdir=${srcdir} sh $(srcdir)/comm.sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AWK=$(AWK) CC="$(CC)" srcdir=${srcdir} sh $(srcdir)/comm.sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- osdef.h: osdef.sh config.h osdef.h.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CPP="$(CPP) $(CPPFLAGS)" srcdir=${srcdir} sh $(srcdir)/osdef.sh
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-apple.diff b/sysutils/screen/files/patch-apple.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..70ddb71
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/screen/files/patch-apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,128 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Apple's changes between upstream screen-4.0.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+and their release of screen, called screen-22.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can view the screen-22 source at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://opensource.apple.com/tarballs/screen/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream screen-4.0.3 is released under the GPLv2,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+so Apple's changes (this patch) is a derivative work and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+also licensed under the GPLv2.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This patch was then rebased against the latest upstream
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+GNU Screen, which was version 4.6.2 and no longer required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+many of Apple's changes. This was done by David Gilman
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+for MacPorts.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -rU 3 screen-4.6.2-orig/screen.c screen-4.6.2/screen.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- screen.c 2018-08-22 14:34:15.477730848 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ screen.c 2018-08-22 14:53:19.778162637 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -118,6 +118,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "logfile.h" /* islogfile, logfflush, logfopen/logfclose */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <TargetConditionals.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !TARGET_OS_EMBEDDED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <vproc.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <vproc_priv.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef DEBUG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FILE *dfp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1049,6 +1057,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Panic(0, "No $SCREENDIR with multi screens, please.");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (!multi && real_uid == eff_uid) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ static char DarwinSockDir[PATH_MAX];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (confstr(_CS_DARWIN_USER_TEMP_DIR, DarwinSockDir, sizeof(DarwinSockDir))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ strlcat(DarwinSockDir, ".screen", sizeof(DarwinSockDir));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SockDir = DarwinSockDir;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* __APPLE__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef MULTIUSER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (multiattach) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1312,6 +1329,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ freopen("/dev/null", "w", stderr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ debug("-- screen.back debug started\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && !TARGET_OS_EMBEDDED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (_vprocmgr_detach_from_console(0) != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ errx(1, "can't detach from console");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* This guarantees that the session owner is listed, even when we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * start detached. From now on we should not refer to 'LoginName'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * any more, use users->u_name instead.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -rU 3 screen-4.6.2-orig/socket.c screen-4.6.2/socket.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- socket.c 2018-08-22 14:34:15.476989022 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ socket.c 2018-08-22 14:39:24.526567573 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1410,7 +1410,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int pid;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int noshowwin;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct win *wi;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASSERT(display);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pid = D_userpid;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -rU 3 screen-4.6.2-orig/window.c screen-4.6.2/window.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- window.c 2018-08-22 14:34:15.475905157 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ window.c 2018-08-22 14:56:04.836374114 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,6 +33,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/stat.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <signal.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <fcntl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <sys/ioctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1482,6 +1485,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef HAVE_EXECVPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef RUN_LOGIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * All of the logic to maintain utmpx is now built into /usr/bin/login, so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * all we need to do is call it, and pass the shell command to it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern char *LoginName;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++run_login(const char *path, char *const argv[], char *const envp[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *shargs[MAXARGS + 1 + 3];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char **fp, **tp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (access(path, X_OK) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ shargs[0] = "login";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ shargs[1] = (*argv[0] == '-') ? "-pfq" : "-pflq";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ shargs[2] = LoginName;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ shargs[3] = path;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fp = (const char **)argv + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tp = shargs + 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* argv has already been check for length */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while ((*tp++ = *fp++) != NULL) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* shouldn't return unless there was an error */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return (execve("/usr/bin/login", (char *const*)shargs, envp));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* replace the following occurrences of execve() with run_login() */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define execve run_login
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* RUN_LOGIN */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* __APPLE__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ execvpe(prog, args, env)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *prog, **args, **env;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-config.h.in.diff b/sysutils/screen/files/patch-config.h.in.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 6d65363..0225ba4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-config.h.in.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/screen/files/patch-config.h.in.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,3 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacOS X uses utmpx. Apple's patchset (patch-apple.diff) adds code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+that calls /usr/bin/login to handle utmpx editing. Thus, we have no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+need to use screen's utmp editing code. This patch disables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+screen's utmp editing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This also fixes the "/var/run/utmp: No such file or directory"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+errors as a consequence of the above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> --- config.h.in 2014-04-26 12:58:46.000000000 +0200
+++ config.h.in 2014-05-01 21:36:54.000000000 +0200
@@ -192,14 +192,14 @@
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-configure-libelf.diff b/sysutils/screen/files/patch-configure-libelf.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 7cacc1a..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-configure-libelf.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,10 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure.orig 2014-04-26 05:58:46.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ configure 2014-05-02 03:15:16.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4155,7 +4155,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- oldlibs="$LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--LIBS="$LIBS -lelf"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- { $as_echo "$as_me:${as_lineno-$LINENO}: checking SVR4..." >&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $as_echo "$as_me: checking SVR4..." >&6;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-configure.diff b/sysutils/screen/files/patch-configure.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 6b8f2f4..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,22 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure 2014-04-26 12:58:46.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ configure 2014-05-01 21:36:54.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5413,7 +5413,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <time.h> /* to get time_t on SCO */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#if defined(SVR4) && !defined(DGUX)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if (defined(SVR4) || defined(__APPLE__)) && !defined(DGUX)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <utmpx.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define utmp utmpx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5422,6 +5422,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef __hpux
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define pututline _pututline
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define pututline pututxline
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define getutent getutxent
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- main ()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-maxargs.diff b/sysutils/screen/files/patch-maxargs.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index a197d2f..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-maxargs.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ansi.c.orig 2014-05-01 12:51:14.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ansi.c 2014-05-01 21:33:29.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -568,7 +568,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case '0': case '1': case '2': case '3': case '4':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case '5': case '6': case '7': case '8': case '9':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (curr->w_NumArgs < MAXARGS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (curr->w_NumArgs >= 0 && curr->w_NumArgs < MAXARGS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (curr->w_args[curr->w_NumArgs] < 100000000)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- curr->w_args[curr->w_NumArgs] =
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-process.c-fix-bogus-strncpy-size.diff b/sysutils/screen/files/patch-process.c-fix-bogus-strncpy-size.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 197a6bd..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-process.c-fix-bogus-strncpy-size.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reported upstream: https://savannah.gnu.org/bugs/?42257
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- process.c.orig 2014-05-01 22:01:18.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ process.c 2014-05-01 22:01:50.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -6282,7 +6282,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- { strcpy(p = i->pw2, "\377"); l = sizeof(i->pw2) - 1; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (buf && len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- strncpy(p, buf, 1 + (l < len) ? l : len);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ strncpy(p, buf, 1 + ((l < len) ? l : len));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!*i->name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Input("Screen User: ", sizeof(i->name) - 1, INP_COOKED, su_fin, (char *)i, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else if (!*i->pw1)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-pty.c.diff b/sysutils/screen/files/patch-pty.c.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 335412e..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-pty.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ./pty.c.orig 2003-09-08 16:26:18.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./pty.c 2007-10-28 16:27:56.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -34,7 +34,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* for solaris 2.1, Unixware (SVR4.2) and possibly others */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifdef HAVE_SVR4_PTYS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(HAVE_SVR4_PTYS) && !defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # include <sys/stropts.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-screen.c-leopard.diff b/sysutils/screen/files/patch-screen.c-leopard.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index a3d1301..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-screen.c-leopard.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,26 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- screen.c.orig 2009-01-21 12:06:11.000000000 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ screen.c 2009-01-21 12:08:27.000000000 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -101,6 +101,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "logfile.h" /* islogfile, logfflush */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <vproc.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include "vproc_priv.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef DEBUG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- FILE *dfp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1211,6 +1216,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- freopen("/dev/null", "w", stderr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- debug("-- screen.back debug started\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (_vprocmgr_move_subset_to_user(real_uid, "Background") != NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ errx(1, "can't migrate to background session");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This guarantees that the session owner is listed, even when we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * start detached. From now on we should not refer to 'LoginName'
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-screen.c.diff b/sysutils/screen/files/patch-screen.c.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 510d345..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-screen.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,43 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- screen.c 2014-04-26 18:22:09.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ screen.c 2014-05-01 21:36:54.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -109,6 +109,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "logfile.h" /* islogfile, logfflush */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <vproc.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <vproc_priv.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef DEBUG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- FILE *dfp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1046,6 +1051,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Panic(0, "No $SCREENDIR with multi screens, please.");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (!multi && real_uid == eff_uid) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ static char DarwinSockDir[PATH_MAX];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (confstr(_CS_DARWIN_USER_TEMP_DIR, DarwinSockDir, sizeof(DarwinSockDir))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ strlcat(DarwinSockDir, ".screen", sizeof(DarwinSockDir));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ SockDir = DarwinSockDir;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif /* __APPLE__ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef MULTIUSER
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (multiattach)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1314,6 +1329,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- freopen("/dev/null", "w", stderr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- debug("-- screen.back debug started\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (_vprocmgr_detach_from_console(0) != NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ errx(1, "can't detach from console");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This guarantees that the session owner is listed, even when we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * start detached. From now on we should not refer to 'LoginName'
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-utmp.c.diff b/sysutils/screen/files/patch-utmp.c.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index ac0582c..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-utmp.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,134 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- utmp.c.orig 2015-08-15 01:22:46.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ utmp.c 2015-08-15 01:23:20.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -26,6 +26,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ****************************************************************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <sys/param.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <sys/stat.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <fcntl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -151,7 +152,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * how = 0 try to withdraw a utmp slot.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * w_slot = -1 window not logged in.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * w_slot = 0 window not logged in, but should be logged in.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * w_slot = 0 window not logged in, but should be logged in.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * (unable to write utmp, or detached).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -400,7 +401,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * down the name of his terminal line; else he is remote and we keep
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the hostname here. The letter S and the window id will be appended.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * A saved utmp entry in wi->w_savut serves as a template, usually.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SetUtmp(wi)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -409,12 +410,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- register slot_t slot;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct utmp u;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int saved_ut;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifdef UTHOST
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- char *p;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- char host[sizeof(D_loginhost) + 15];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- char *host = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif /* UTHOST */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- wi->w_slot = (slot_t)0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!utmpok || wi->w_type != W_TYPE_PTY)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -435,51 +430,12 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- makeuser(&u, stripdev(wi->w_tty), LoginName, wi->w_pid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef UTHOST
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- host[sizeof(host) - 15] = '\0';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- strncpy(host, D_loginhost, sizeof(host) - 15);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (D_loginslot != (slot_t)0 && D_loginslot != (slot_t)-1 && host[0] != '\0')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * we want to set our ut_host field to something like
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * ":ttyhf:s.0" or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * "faui45:s.0" or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * "132.199.81.4:s.0" (even this may hurt..), but not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * "faui45.informati"......:s.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * HPUX uses host:0.0, so chop at "." and ":" (Eric Backus)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- for (p = host; *p; p++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if ((*p < '0' || *p > '9') && (*p != '.'))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (*p)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- for (p = host; *p; p++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (*p == '.' || (*p == ':' && p != host))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- *p = '\0';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- strncpy(host + 1, stripdev(D_usertty), sizeof(host) - 15 - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- host[0] = ':';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- strncpy(host, "local", sizeof(host) - 15);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- sprintf(host + strlen(host), ":S.%d", wi->w_number);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- debug1("rlogin hostname: '%s'\n", host);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # if !defined(_SEQUENT_) && !defined(sequent)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- strncpy(u.ut_host, host, sizeof(u.ut_host));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ strncpy(u.ut_host, D_loginhost, sizeof(u.ut_host));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif /* UTHOST */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (pututslot(slot, &u, host, wi) == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (pututslot(slot, &u, D_loginhost, wi) == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Msg(errno,"Could not write %s", UtmpName);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- UT_CLOSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -598,7 +554,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct utmp *u;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- u->ut_type = DEAD_PROCESS;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#if (!defined(linux) || defined(EMPTY)) && !defined(__CYGWIN__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if (!defined(linux) || defined(EMPTY)) && !defined(__CYGWIN__) && !defined(__Darwin__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- u->ut_exit.e_termination = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- u->ut_exit.e_exit = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -631,7 +587,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* must use temp variable because of NetBSD/sparc64, where
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * ut_xtime is long(64) but time_t is int(32) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (void)time(&now);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__Darwin_version) && __Darwin_version < 900000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ u->ut_time = now;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- u->ut_tv.tv_sec = now;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static slot_t
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -743,7 +703,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- strncpy(u->ut_line, line, sizeof(u->ut_line));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- strncpy(u->ut_name, user, sizeof(u->ut_name));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (void)time(&now);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- u->ut_tv.tv_sec = now;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__Darwin_version) && __Darwin_version < 900000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ u->ut_time = now;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ u->ut_time = now;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static slot_t
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -890,4 +854,3 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return u->ut_type == u2->ut_type ? u : 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-window.c.diff b/sysutils/screen/files/patch-window.c.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 894f600..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-window.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,49 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- window.c 2014-04-26 12:58:35.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ window.c 2014-05-01 21:36:54.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -33,6 +33,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <sys/stat.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <signal.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <fcntl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <unistd.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef sun
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # include <sys/ioctl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1660,6 +1661,38 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return r;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef RUN_LOGIN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * All of the logic to maintain utmpx is now built into /usr/bin/login, so
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * all we need to do is call it, and pass the shell command to it.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern char *LoginName;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+run_login(const char *path, char *const argv[], char *const envp[])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const char *shargs[MAXARGS + 1 + 3];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const char **fp, **tp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (access(path, X_OK) < 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ shargs[0] = "login";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ shargs[1] = (*argv[0] == '-') ? "-pfq" : "-pflq";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ shargs[2] = LoginName;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ shargs[3] = path;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fp = (const char **)argv + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ tp = shargs + 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* argv has already been check for length */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ while ((*tp++ = *fp++) != NULL) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* shouldn't return unless there was an error */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return (execve("/usr/bin/login", (char *const*)shargs, envp));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* replace the following occurrences of execve() with run_login() */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define execve run_login
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif /* RUN_LOGIN */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- FreePseudowin(w)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct win *w;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/screen/files/patch-windowsize.diff b/sysutils/screen/files/patch-windowsize.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 4f1ab57..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/screen/files/patch-windowsize.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,20 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- resize.c 2014-04-26 12:58:35.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ resize.c 2014-05-01 21:36:54.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -678,6 +678,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- he = 1000;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (wi > 1000)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Msg(0, "Window width too large, truncated");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ wi = 1000;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (he > 1000)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Msg(0, "Window height too large, truncated");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ he = 1000;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (p->w_width == wi && p->w_height == he && p->w_histheight == hi)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- debug("ChangeWindowSize: No change.\n");
</span></pre><pre style='margin:0'>
</pre>