summaryrefslogtreecommitdiffstats
path: root/source/a/splitvt/splitvt_1.6.5-9.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/splitvt/splitvt_1.6.5-9.diff')
-rw-r--r--source/a/splitvt/splitvt_1.6.5-9.diff1073
1 files changed, 0 insertions, 1073 deletions
diff --git a/source/a/splitvt/splitvt_1.6.5-9.diff b/source/a/splitvt/splitvt_1.6.5-9.diff
deleted file mode 100644
index 47d560377..000000000
--- a/source/a/splitvt/splitvt_1.6.5-9.diff
+++ /dev/null
@@ -1,1073 +0,0 @@
---- splitvt-1.6.5.orig/debian/changelog
-+++ splitvt-1.6.5/debian/changelog
-@@ -0,0 +1,147 @@
-+splitvt (1.6.5-9) unstable; urgency=low
-+
-+ * Ensure that -upper and -lower have arguemnts. Closes: #319091
-+
-+ -- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2005 17:50:32 -0400
-+
-+splitvt (1.6.5-8) unstable; urgency=low
-+
-+ * Patch from Andreas Jochens to fix building with gcc 4.0. Closes: #294620
-+
-+ -- Joey Hess <joeyh@debian.org> Fri, 15 Jul 2005 17:38:09 +0300
-+
-+splitvt (1.6.5-7) unstable; urgency=low
-+
-+ * Many changes to make it build cleanly with -Wall. This included some
-+ missing headers that probably caused it to crash on amd64.
-+ * Disabled vttest, since its read from the console to try to detect a vt100
-+ terminal was responsible for startup hang on sparc. Closes: #273330
-+
-+ -- Joey Hess <joeyh@debian.org> Wed, 26 Jan 2005 20:32:34 -0500
-+
-+splitvt (1.6.5-6) unstable; urgency=low
-+
-+ * Rebuilt to update to current policy on /usr/doc links &etc.
-+
-+ -- Joey Hess <joeyh@debian.org> Sat, 8 Feb 2003 12:32:25 -0500
-+
-+splitvt (1.6.5-5) unstable; urgency=low
-+
-+ * Updated to debhelper v4.
-+
-+ -- Joey Hess <joeyh@debian.org> Thu, 13 Jun 2002 16:30:04 -0400
-+
-+splitvt (1.6.5-4) unstable; urgency=low
-+
-+ * Updated patch to not break resizing.
-+
-+ -- Joey Hess <joeyh@debian.org> Fri, 5 Oct 2001 20:09:25 -0400
-+
-+splitvt (1.6.5-3) unstable; urgency=low
-+
-+ * Patch from Robert de Bath <robert$@mayday.cix.co.uk> that has a doc fix
-+ and also fixes a splitvt segfault when one uses the CSI ? 3 h to got o
-+ 132 column mode. Closes: #113868 (also sent upstream)
-+
-+ -- Joey Hess <joeyh@debian.org> Sat, 29 Sep 2001 16:44:25 -0400
-+
-+splitvt (1.6.5-2) unstable; urgency=HIGH
-+
-+ * New upstream version, with a format string hole fixed, and several
-+ possible buffer overfllows fixed.
-+ - Of those, only (I think) the format string attack and two of the
-+ buffer overflows can affect the debian package.
-+ - Luckily, my last release of the package back in June 2000 made
-+ it only need to be sgid tty.
-+ - Total possible impact: attacker could possibly crack the tty group.
-+ * Goofed up version number because this source is already in the
-+ archives.
-+
-+ -- Joey Hess <joeyh@debian.org> Wed, 17 Jan 2001 23:39:09 -0800
-+
-+splitvt (1.6.4-4) unstable; urgency=low
-+
-+ * Drop setgid first. Very doubtful this effects anything, but it's the
-+ right way to do things.
-+
-+ -- Joey Hess <joeyh@debian.org> Thu, 15 Jun 2000 11:37:48 -0700
-+
-+splitvt (1.6.4-3) unstable; urgency=low
-+
-+ * Modified to use glibc's sys4-ish pty routines; devpts, grantpt, etc.
-+ * Modified to drop sgid bit properly.
-+ * Now I can make it just sgid utmp, rather than suid root, and it
-+ continues to work just as before. Beaujolais! Closes: #65227
-+ * Removed no-longer-needed glibc stdion/stdout fix patch.
-+
-+ -- Joey Hess <joeyh@debian.org> Wed, 14 Jun 2000 14:13:30 -0700
-+
-+splitvt (1.6.4-2) unstable; urgency=low
-+
-+ * Corrected build-depends, Closes: #65584
-+
-+ -- Joey Hess <joeyh@debian.org> Tue, 13 Jun 2000 11:42:02 -0700
-+
-+splitvt (1.6.4-1) unstable; urgency=high
-+
-+ * New upstream release with security fix (already applied in the previous
-+ version, I'm just syncing up with upstream).
-+ * Added homepage to copyright file.
-+ * Added some more files to docs.
-+ * Now under the GPL explicitly, some updates to the copyright file.
-+
-+ -- Joey Hess <joeyh@debian.org> Sun, 11 Jun 2000 21:42:41 -0700
-+
-+splitvt (1.6.3-7.0slink1) stable; urgency=high
-+
-+ * Security fix.
-+
-+ -- Daniel Jacobowitz <dan@debian.org> Sat, 3 Jun 2000 17:56:33 -0400
-+
-+splitvt (1.6.3-7) unstable; urgency=low
-+
-+ * Build dep.
-+
-+ -- Joey Hess <joeyh@debian.org> Sat, 4 Dec 1999 16:21:35 -0800
-+
-+splitvt (1.6.3-6) unstable; urgency=low
-+
-+ * FHS
-+
-+ -- Joey Hess <joeyh@debian.org> Sat, 11 Sep 1999 01:27:49 -0700
-+
-+splitvt (1.6.3-5) unstable; urgency=low
-+
-+ * vtmouse.c: Don't use stdin/stdout as initializers. Instead, in
-+ event_getc(), set xt_input and xt_output to stdin and stdout if
-+ they are not yet set. This is for the ports to other architectures.
-+ (#29597)
-+
-+ -- Joey Hess <joeyh@debian.org> Tue, 17 Nov 1998 15:50:53 -0800
-+
-+splitvt (1.6.3-4) unstable; urgency=low
-+
-+ * Built with newest debhelper to change how the suid binary is registered.
-+
-+ -- Joey Hess <joeyh@debian.org> Tue, 27 Oct 1998 21:59:05 -0800
-+
-+splitvt (1.6.3-3) unstable; urgency=low
-+
-+ * Hacked in a -f flag, that allows you to resize one of the splitvt
-+ windows down to 1 line tall. This is particularly useful for ticker.
-+
-+ -- Joey Hess <joeyh@debian.org> Mon, 7 Sep 1998 19:56:53 -0700
-+
-+splitvt (1.6.3-2) unstable; urgency=low
-+
-+ * Fixed package description spelling (#18990).
-+
-+ -- Joey Hess <joeyh@debian.org> Thu, 5 Mar 1998 17:00:19 -0800
-+
-+splitvt (1.6.3-1) unstable; urgency=low
-+
-+ * First release.
-+ * Write to author and clarified copyright.
-+ * Change /etc/utmp to /var/run/utmp
-+
-+ -- Joey Hess <joeyh@debian.org> Wed, 1 Oct 1997 16:19:01 -0400
---- splitvt-1.6.5.orig/debian/control
-+++ splitvt-1.6.5/debian/control
-@@ -0,0 +1,14 @@
-+Source: splitvt
-+Section: utils
-+Priority: optional
-+Build-Depends: debhelper (>= 4), libncurses5-dev, dpkg-dev (>= 1.9.0)
-+Maintainer: Joey Hess <joeyh@debian.org>
-+Standards-Version: 3.5.8.0
-+
-+Package: splitvt
-+Architecture: any
-+Depends: ${shlibs:Depends}, ${misc:Depends}
-+Description: run two programs in a split screen
-+ A utility to split a vt100 compatible screen into two halves,
-+ upper and lower, and run a different program simultaneously
-+ in each half.
---- splitvt-1.6.5.orig/debian/compat
-+++ splitvt-1.6.5/debian/compat
-@@ -0,0 +1 @@
-+4
---- splitvt-1.6.5.orig/debian/watch
-+++ splitvt-1.6.5/debian/watch
-@@ -0,0 +1,2 @@
-+version=2
-+http://www.devolution.com/~slouken/projects/splitvt/ splitvt-(.*).tar.gz
---- splitvt-1.6.5.orig/debian/copyright
-+++ splitvt-1.6.5/debian/copyright
-@@ -0,0 +1,45 @@
-+This is a Debian prepackaged version of the splitvt utility.
-+
-+This package was put together by Joey Hess <joeyh@debian.org>, using
-+sources from:
-+ http://www.devolution.com/~slouken/projects/splitvt/
-+
-+The following copyright notices can still be found in the source code:
-+
-+ /* utmp.c Shareware Copyright by Sam Lantinga 10/6/93 */
-+
-+That is a historical relic, though. The current copyright of splitvt is the
-+GPL; the text to which can be found in /usr/share/common-licenses/GPL on a
-+Debian system.
-+
-+Before the copyright was expressly changed to the GPL, I wrote and asked the
-+author about copyright. He replied:
-+
-+ Date: Wed, 1 Oct 1997 13:39:18 -0700
-+ From: Sam Lantinga <slouken@domo.ccnet.com>
-+ To: Joey Hess <joey@kite.ml.org>
-+ Cc: slouken@mongoloid.devolution.com
-+ Subject: Re: splitvt copyright
-+ X-Mailer: My Mailer 1.5 <slouken@devolution.com>
-+
-+ > I've never heard of no fee shareware before. What restrictions does that
-+ > place on the software? Can it be put on a cd with other software (such as a
-+ > linux distribution) and sold for profit? Can it be used by anyone, for any
-+ > purpose? If so, why don't you just place it under the GPL?
-+
-+ Consider it GPL'd. I wrote it before I was aware of the GPL, and haven't
-+ done much work on it in quite a while.
-+
-+ > At this point, I'm not sure if splitvt's copyright will let it go in our
-+ > main distribution, that is sold on cd, or not. Awaiting your clarification..
-+
-+ You are more than welcome to put splitvt in the Debian distribution.
-+ It is already in Slackware and S.u.S.E.
-+
-+ See ya!
-+ -Sam Lantinga (slouken@devolution.com)
-+
-+ --
-+ Author of Linux Maelstrom -
-+ http://www.devolution.com/~slouken/Maelstrom/
-+ --
---- splitvt-1.6.5.orig/debian/rules
-+++ splitvt-1.6.5/debian/rules
-@@ -0,0 +1,43 @@
-+#!/usr/bin/make -f
-+
-+build: build-stamp
-+build-stamp:
-+ dh_testdir
-+ rm -f Makefile
-+ ./configure
-+ $(MAKE)
-+ touch build-stamp
-+
-+clean:
-+ dh_testdir
-+ dh_testroot
-+ rm -f build-stamp
-+ dh_clean
-+ if [ ! -f Makefile ]; then ./configure ; fi
-+ -$(MAKE) distclean
-+
-+binary-indep: build
-+
-+binary-arch: build
-+ dh_testdir
-+ dh_testroot
-+ dh_clean
-+ dh_install splitvt usr/bin
-+ dh_installdocs README TODO ANNOUNCE BLURB
-+ dh_installexamples examples/*
-+ dh_installmenu
-+ dh_installcron
-+ dh_installman splitvt.1
-+ dh_installchangelogs CHANGES
-+ dh_strip
-+ dh_compress
-+ dh_installdeb
-+ dh_shlibdeps
-+ dh_gencontrol
-+ dh_fixperms
-+ chgrp utmp debian/splitvt/usr/bin/splitvt
-+ chmod g+s debian/splitvt/usr/bin/splitvt
-+ dh_builddeb
-+
-+binary: binary-indep binary-arch
-+.PHONY: build clean binary-indep binary-arch binary
---- splitvt-1.6.5.orig/splitvt.man
-+++ splitvt-1.6.5/splitvt.man
-@@ -176,7 +176,7 @@
- replace it with entries for the two windows. This allows
- you to use programs such as 'talk' within the splitvt win-
- dows. If you do not have write permission to the
-- /etc/utmp file, you will not be able to modify the utmp
-+ /etc/utmp file, you will not be able to modify the utmp
- entries.
-
- splitvt can be made set-uid root. splitvt will reset its
---- splitvt-1.6.5.orig/parserc.c
-+++ splitvt-1.6.5/parserc.c
-@@ -1,6 +1,8 @@
-
- /* Routines to parse the ~/.splitvtrc file and set default options */
-
-+#include <unistd.h>
-+#include <stdlib.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <string.h>
-@@ -213,7 +215,7 @@
- char line[BUFSIZ], newline[BUFSIZ*2], *parsed[256];
- char *head, *tail, *ptr, *subptr;
- char *envptr, envbuf[128];
-- int i, n, quoted=0;
-+ int i, n;
- int ignoring=0, ifs=0;
-
- /* Get our home directory */
---- splitvt-1.6.5.orig/splitvt.c
-+++ splitvt-1.6.5/splitvt.c
-@@ -13,6 +13,9 @@
- static char *version=
- "@(#)Splitvt 1.6.5 1/12/2001 -Sam Lantinga (slouken@devolution.com)\n";
-
-+#include <string.h>
-+#include <unistd.h>
-+#include <stdlib.h>
- #include <sys/types.h>
- #include <sys/time.h>
- #include <sys/wait.h>
-@@ -79,6 +82,8 @@
- char *upper_args[MAX_ARGS+1]={NULL}, *lower_args[MAX_ARGS+1]={NULL};
- int upper_empty=1, lower_empty=1;
-
-+int force_height=0;
-+
- void print_usage(argv)
- char *argv;
- {
-@@ -95,13 +100,14 @@
- fprintf(stderr, "\t-nologin\t\tOverrides \"set login on\" in startup file\n");
- fprintf(stderr, "\t-rcfile file\t\tLoads 'file' at startup instead of ~/.splitvtrc\n");
- fprintf(stderr, "\t-norc\t\t\tSuppresses loading your startup file\n");
-+ fprintf(stderr, "\t-f\t\t\tAllow setting screen size of less than 3 lines\n");
- fprintf(stderr, "\t-v\t\t\tPrint out the version number\n");
- fprintf(stderr, "\n");
- exit(1);
- }
-
-
--main(argc, argv)
-+int main(argc, argv)
- int argc;
- char *argv[];
- {
-@@ -111,7 +117,10 @@
- int i, len, maxfds, numready;
- char buffer[BUFSIZ], *ptr;
- char *xterm_title=NULL;
-- struct timeval tv, *tvptr;
-+#ifdef NEED_INET_H
-+ struct timeval tv;
-+#endif
-+ struct timeval *tvptr;
- fd_set read_mask;
- static struct passwd pwdata; /* Our passwd entry */
-
-@@ -151,7 +160,7 @@
- splitvtrc();
-
- /* Parse command line options */
-- while ( (i=getopt(argc, argv, "n:u:l:r:s:t:vh")) != EOF )
-+ while ( (i=getopt(argc, argv, "fn:u:l:r:s:t:vh")) != EOF )
- {
- switch (i)
- {
-@@ -163,11 +172,19 @@
- break;
- case 'u': if ( strcmp(optarg, "pper") != 0 )
- print_usage(argv[0]);
-+ if (optind >= argc) {
-+ fprintf(stderr, "-upper requires an argument\n");
-+ print_usage(argv[0]);
-+ }
- tokenize(upper_args, MAX_ARGS+1,
- argv[optind++], " ");
- upper_empty=0;
- break;
- case 'l': if ( strcmp(optarg, "ower") == 0 ) {
-+ if (optind >= argc) {
-+ fprintf(stderr, "-lower requires an argument\n");
-+ print_usage(argv[0]);
-+ }
- tokenize(lower_args, MAX_ARGS+1,
- argv[optind++], " ");
- lower_empty=0;
-@@ -188,7 +205,9 @@
- case 'v': printf("%s", version+4);
- exit(0);
- break;
-- case 'h':
-+ case 'f': force_height=1;
-+ break;
-+ case 'h':
- default: print_usage(argv[0]);
- break;
- }
-@@ -212,7 +231,7 @@
- }
- (void) tty_raw(0); /* Set the tty raw here to prevent lost input */
-
-- if ( (ptr=init_vt100()) != NULL )
-+ if ( (ptr=init_vt100(1)) != NULL )
- {
- if ( tty_reset(0) < 0 )
- (void) tty_sane(0);
-@@ -473,6 +492,7 @@
- }
- }
- finish(0);
-+ exit(0);
- }
-
- void reset_bar(sleeptime)
-@@ -496,6 +516,7 @@
- " 'x' Lock the screen",
- " 'h' Show this help screen",
- " 'q' Quickly quit splitvt",
-+" '0-9' Line count for + or -",
- NULL
- };
- vt_showscreen("Splitvt HELP screen:", help);
-@@ -700,7 +721,7 @@
- tmp_uulines=UU_lines;
- UU_lines=WU_lines;
- UU_lines += howfar; /* Positive to go down, negative to go up */
-- init_vt100(); /* Reset the windows to the new size */
-+ init_vt100(0); /* Reset the windows to the new size */
-
- /* Tell the running processes about the size change */
- if ( topok )
-@@ -722,7 +743,7 @@
-
- signal(sig, winch);
-
-- if ( (ptr=init_vt100()) != NULL ) {
-+ if ( (ptr=init_vt100(1)) != NULL ) {
- fprintf(stderr, "Can't resize window: %s. (exiting)\n", ptr);
- finish(0);
- } else
---- splitvt-1.6.5.orig/config.c
-+++ splitvt-1.6.5/config.c
-@@ -169,7 +169,7 @@
- strcat(ldflags, " -lsun");
-
- /* Tell the user what kind of configuration to do */
-- if ( (access("/etc/utmp", (R_OK|W_OK)) == 0) && getuid() )
-+ if ( (access("/var/run/utmp", (R_OK|W_OK)) == 0) && getuid() )
- write_utmp=1;
- else
- write_utmp=0;
-@@ -180,14 +180,14 @@
- VERBOSE_PRINT(
- "This program doesn't need to be installed set-uid root.\n");
- VERBOSE_PRINT(
-- "\nThis program will put entries for its windows in /etc/utmp.\n");
-+ "\nThis program will put entries for its windows in /var/run/utmp.\n");
- } else {
- VERBOSE_PRINT(
-- "If installed set-uid root, this program will put entries for its windows\nin /etc/utmp.\n");
-+ "If installed set-uid root, this program will put entries for its windows\nin /var/run/utmp.\n");
- }
- } else if ( write_utmp ) {
- VERBOSE_PRINT(
-- "This program will put entries for its windows in /etc/utmp.\n");
-+ "This program will put entries for its windows in /var/run/utmp.\n");
- VERBOSE_PRINT(
- "\nIf installed set-uid root, this program will change ownership of the\n");
- VERBOSE_PRINT(
-@@ -196,7 +196,7 @@
- VERBOSE_PRINT(
- "If installed set-uid root, this program will put entries for its windows\n");
- VERBOSE_PRINT(
-- "in /etc/utmp, and will also change ownership of the ttys it acquires to the\n");
-+ "in /var/run/utmp, and will also change ownership of the ttys it acquires to the\n");
- VERBOSE_PRINT(
- "user running this program.\n");
- }
-@@ -225,7 +225,7 @@
- }
- fprintf(makefile,
- "PTYOPTS = -DPTYCHAR=$(PTYCHAR) -DHEXDIGIT=$(HEXDIGIT)\n");
-- sprintf(line, "\nCFLAGS = %s $(PTYOPTS)\nLIBS = %s\n", cflags, ldflags);
-+ sprintf(line, "\nCFLAGS = -Wall %s $(PTYOPTS)\nLIBS = %s\n", cflags, ldflags);
- fprintf(makefile, "%s", line);
- fprintf(makefile, "OBJS = splitvt.o misc.o utmp.o vt100.o videomem.o terminal.o vttest.o vtmouse.o \\\n");
- fprintf(makefile, " parserc.o lock.o cut-paste.o\n\n");
---- splitvt-1.6.5.orig/cut-paste.c
-+++ splitvt-1.6.5/cut-paste.c
-@@ -2,8 +2,12 @@
- /* The cut-paste module for splitvt */
-
- #include <stdio.h>
-+#include <string.h>
-+#include <unistd.h>
- #include "vt100.h"
- #include "video.h"
-+#include "splitvt.h"
-+#include "terminal.h"
-
- #define RIGHT 0x01
- #define LEFT 0x02
-@@ -41,7 +45,7 @@
- } else
- c ^= (SELECTED<<8);
-
-- (*oldattr)=check_attr(c, *oldattr, on);
-+ (*oldattr)=check_attr(c, *oldattr, (int)on);
- put_video(c, win, x, y);
-
- if ( c&0xFF )
-@@ -86,7 +90,6 @@
- int len;
- position *mark1, *mark2;
- {
-- int selection=0;
- position startsel, endsel;
-
- if ( mark1->x == mark2->x )
-@@ -200,9 +203,9 @@
- void vt_initsel()
- {
- extern char *pathsearch(); /* From misc.c */
-- char *display;
-
- #ifdef USE_XCB
-+ char *display;
- /* Use xcb if we have both an X display and the command. */
- /* xcb needs to support my hacked '-R' option. */
- if ( (display=(char *)getenv("DISPLAY")) && pathsearch("xcb", 1) )
-@@ -254,7 +257,7 @@
- char *buf;
- int len;
- {
-- int c, state=NORMAL;
-+ int c;
- position here, cursor, mark1, mark2;
- window *thiswin;
-
-@@ -311,7 +314,7 @@
- default: break;
- }
- }
-- return; /* Hopefully, we never reach here */
-+ return NULL; /* Hopefully, we never reach here */
- }
-
-
---- splitvt-1.6.5.orig/vt100.c
-+++ splitvt-1.6.5/vt100.c
-@@ -8,6 +8,9 @@
- Many thanks to Matt Ostanik who wrote the ANSI Handbook.
- */
-
-+#include <unistd.h>
-+#include <string.h>
-+#include <stdlib.h>
- #include <sys/types.h>
- #ifdef HAVE_TERMIO_H
- #include <termio.h> /* Used only for TIOCGWINSZ */
-@@ -20,6 +23,7 @@
- #include "vt100.h"
- #include "video.h"
- #include "terminal.h"
-+#include "splitvt.h"
-
- #define SEP_CHAR ' ' /* Separator bar character */
-
-@@ -135,7 +139,7 @@
- unsigned char on=NORMAL;
-
- vt_resetattr();
-- (void) check_attr(0, win->textattr, &on);
-+ (void) check_attr(0, win->textattr, (int)&on);
- }
-
- /* Process the ^[[X;Xm escape. Made into a separate routine to support
-@@ -683,10 +687,9 @@
- break;
- case 3: /* 132 char/row */
- if ( physical.cols != 132 ) {
-- upper.cols=132;
-- lower.cols=132;
- physical.cols=132;
- vt_widemode(1);
-+ init_vt100(0);
- }
- break;
- case 4: /* Set jump scroll */
-@@ -726,11 +729,9 @@
- break;
- case 3: /* 80 char/row */
- if ( physical.cols == 132 ) {
-- vt_rows_cols(terminal_type,
-- NULL, &physical.cols);
-- upper.cols=physical.cols;
-- lower.cols=physical.cols;
-+ physical.cols = 80;
- vt_widemode(0);
-+ init_vt100(0);
- }
- break;
- case 4: /* Set smooth scroll */
-@@ -843,7 +844,8 @@
-
- static int setup_vt100 = 0; /* Have we initialized the vt100 system? */
-
--char *init_vt100()
-+char *init_vt100(reread_tsize)
-+int reread_tsize;
- {
- #ifdef TIOCGWINSZ
- struct /* winsize */ {
-@@ -853,7 +855,7 @@
- unsigned short ws_ypixel; /* vertical size - not used */
- } mywinz;
- #endif
-- int i, **videomem, oldrows, newrows, newcols;
-+ int i, **videomem, oldrows = 0, newrows, newcols;
- position newpos;
- char *ptr, *errmesg;
-
-@@ -869,18 +871,22 @@
- vt_initsel();
- }
-
-+ if (reread_tsize)
-+ {
- #ifdef TIOCGWINSZ
-- if ( ioctl(0, TIOCGWINSZ, &mywinz) == 0 ) {
-- if ( mywinz.ws_row )
-- physical.rows=mywinz.ws_row;
-- if ( mywinz.ws_col )
-- physical.cols=mywinz.ws_col;
-- }
-+ if ( ioctl(0, TIOCGWINSZ, &mywinz) == 0 ) {
-+ if ( mywinz.ws_row )
-+ physical.rows=mywinz.ws_row;
-+ if ( mywinz.ws_col )
-+ physical.cols=mywinz.ws_col;
-+ }
- #endif
-- if ( (ptr=(char *)getenv("LINES")) != NULL )
-- physical.rows=atoi(ptr);
-- if ( (ptr=(char *)getenv("COLUMNS")) != NULL )
-- physical.cols=atoi(ptr);
-+
-+ if ( (ptr=(char *)getenv("LINES")) != NULL )
-+ physical.rows=atoi(ptr);
-+ if ( (ptr=(char *)getenv("COLUMNS")) != NULL )
-+ physical.cols=atoi(ptr);
-+ }
-
- /* Now set defaults if we can't find the window size */
- if ( ! physical.rows ) physical.rows=24;
-@@ -892,19 +898,21 @@
- if ( physical.rows < 7 )
- return("Screen is not tall enough to split.");
-
-- /* If physical.cols has been set to 132, assume we are on a
-- vt100 wide terminal, and set 132 column mode. Note that
-- setting COLUMNS in the environment will override termcap */
-- if ( physical.cols == 132 )
-- vt_widemode(1);
-+ if ( ! setup_vt100 ) {
-+ /* If physical.cols has been set to 132, assume we are on a
-+ vt100 wide terminal, and set 132 column mode. Note that
-+ setting COLUMNS in the environment will override termcap */
-+ if ( physical.cols == 132 )
-+ vt_widemode(1);
-+ }
-
- /* Set the exportable variables */
- if ( UU_lines ) {
- /* Check the user set # of lines */
-- if ( UU_lines > (physical.rows-1-3) )
-- LU_lines=(physical.rows-1-3);
-- else if ( UU_lines < 3 )
-- LU_lines=3;
-+ if ( UU_lines > (physical.rows-1-3+(2*force_height)) )
-+ LU_lines=(physical.rows-1-3+(2*force_height));
-+ else if ( UU_lines < 3 - (2*force_height))
-+ LU_lines=3 - (2*force_height);
- else
- LU_lines=UU_lines;
-
---- splitvt-1.6.5.orig/splitvt.h
-+++ splitvt-1.6.5/splitvt.h
-@@ -34,3 +34,25 @@
-
- /* Functions exported from splitvt.c */
- extern void reset_bar();
-+
-+/* If set, allow resizing to less than 3 lines */
-+extern int force_height;
-+
-+void tokenize(char *array[], int size, char *line, char *tokens);
-+void d_copy(register char *src, register char *dst, register int len);
-+int tty_getmode(int fd);
-+int tty_raw(int fd);
-+int tty_reset(int fd);
-+int tty_sane(int fd);
-+int remove_me(void);
-+int pty_open(char *argv[], int *childpid, int win);
-+int addutmp(char *user, int uid, char *tty);
-+char *vt_setsel(char *buf, int len, int startx, int endx, int starty, int endy);
-+int delutmp(char *user, char *tty);
-+int replace_me(void);
-+void pty_setwin(int fd, int win);
-+int check_attr(int pixel, int lastattr, int currattr);
-+void d_zero(register char *dst, register int len);
-+void vt_initsel(void);
-+int vttest(void);
-+int safe_pclose(FILE *pipefp);
---- splitvt-1.6.5.orig/splitvt.1
-+++ splitvt-1.6.5/splitvt.1
-@@ -47,6 +47,11 @@
- Suppresses loading your ~/.splitvtrc
- .TP
- .TB
-+.I -f
-+Allow setting the height of either the top or the bottom window to less than
-+3 lines.
-+.TP
-+.TB
- .I -v
- Print out the version number of splitvt
- .LP
-@@ -173,7 +178,7 @@
- splitvt will attempt to erase the current utmp entry, and replace it
- with entries for the two windows. This allows you to use programs
- such as 'talk' within the splitvt windows. If you do not have write
--permission to the /etc/utmp file, you will not be able to modify the
-+permission to the /var/run/utmp file, you will not be able to modify the
- utmp entries.
-
- splitvt can be made set-uid root. splitvt will reset its user id to
---- splitvt-1.6.5.orig/splitvt-1.6.4.lsm
-+++ splitvt-1.6.5/splitvt-1.6.4.lsm
-@@ -0,0 +1,15 @@
-+Begin3
-+Title: Splitvt - a split windows utility
-+Version: 1.6.4
-+Entered-date: 03JUN2000
-+Description: A utility to split a vt100 compatible screen into two halfs,
-+ upper and lower, and run a different program simultaneously
-+ in each half.
-+Keywords: screen vt100 emulator
-+Author: slouken@devolution.com (Sam Lantinga)
-+Maintained-by: slouken@devolution.com (Sam Lantinga)
-+Primary-site: http://www.devolution.com/~slouken/projects/splitvt/
-+Alternate-site: sunsite.unc.edu /pub/Linux/utils/terminal
-+Platform: UNIX
-+Copying-policy: GPL
-+End
---- splitvt-1.6.5.orig/utmp.c
-+++ splitvt-1.6.5/utmp.c
-@@ -1,21 +1,27 @@
-
- /* utmp.c Shareware Copyright by Sam Lantinga 10/6/93 */
-
-+#include <unistd.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <utmp.h>
- #include <stdio.h>
-+#include <string.h>
-+#include <time.h>
-+#include "splitvt.h"
-
- #ifdef DEBUG_UTMP
- #undef UTMP_FILE
- #define UTMP_FILE "/tmp/utmp"
- #else
- #ifndef UTMP_FILE
--#define UTMP_FILE "/etc/utmp"
-+#define UTMP_FILE "/var/run/utmp"
- #endif /* UTMP_FILE */
- #endif /* DEBUG_UTMP */
-
-+int get_utmp(char *tty, struct utmp *save);
-+int set_utmp(char *tty, struct utmp *save);
-
- /* Remove us from the utmp file, saving our entry to replace later */
-
-@@ -94,7 +100,7 @@
- if (strncmp(ttyptr, ut.ut_line, sizeof(ut.ut_line)) == 0) {
- /* Break out; we've found our entry! */
- if ( save )
-- d_copy((char *)&ut, save, sizeof(ut));
-+ d_copy((char *)&ut, (char *)&save, sizeof(ut));
- close(fd);
- return(0);
- }
-@@ -158,7 +164,9 @@
- int uid; /* The uid corresponding to user */
- char *tty; /* /dev/ttyxx */
- {
-+#if !defined(SOLARIS) && !defined(IRIX) && !defined(__GLIBC__)
- struct stat sb;
-+#endif
- struct utmp ut;
- char *ttyptr;
-
-@@ -195,12 +203,13 @@
- #endif
- (void) time(&ut.ut_time);
-
--#if !defined(SOLARIS) && !defined(IRIX)
-- /* Solaris and Irix machines do this automatically */
-+#if !defined(SOLARIS) && !defined(IRIX) && !defined(__GLIBC__)
-+ /* Solaris and Irix and GLIBC machines do this automatically */
- /* Change the ownership and mode of the tty */
- if ( stat(tty, &sb) == 0 ) {
- (void) chmod(tty, 0620); /* crw--w---- */
- (void) chown(tty, uid, sb.st_gid);
-+
- }
- #endif
- return(set_utmp(tty, &ut));
---- splitvt-1.6.5.orig/lock.c
-+++ splitvt-1.6.5/lock.c
-@@ -1,9 +1,13 @@
-
- /* The screen locking module for splitvt */
-
-+#include <unistd.h>
-+#include <sys/types.h>
-+#include <string.h>
- #include <stdio.h>
- #include <pwd.h>
- #include "vt100.h"
-+#include "splitvt.h"
-
- #define UNLOCKED 0
- #define ENTERED1 1
---- splitvt-1.6.5.orig/vttest.c
-+++ splitvt-1.6.5/vttest.c
-@@ -12,6 +12,7 @@
- -Sam Lantinga (slouken@toadflax.cs.ucdavis.edu)
- */
-
-+#include <unistd.h>
- #include <sys/types.h>
- #include <stdio.h>
- #include <fcntl.h>
-@@ -48,9 +49,12 @@
- int vttest()
- {
- char buff[512];
-- int x=0, w, rc=0, fd;
-+ int x=0, rc=0, fd;
- struct termio ttold, ttraw;
-
-+ /* Disabled since at least on sparc it causes a hang. */
-+ return 1;
-+
- /* Set the terminal in a raw mode */
- if ( (fd=open("/dev/tty", O_RDWR, 0666)) < 0 )
- return(0);
---- splitvt-1.6.5.orig/vtmouse.c
-+++ splitvt-1.6.5/vtmouse.c
-@@ -7,8 +7,11 @@
-
- #define SPLITVT_SOURCE
-
-+#include <string.h>
-+#include <stdlib.h>
- #include <stdio.h>
- #include "vtmouse.h"
-+#include "splitvt.h"
-
- extern FILE *safe_popen(); /* From misc.c */
-
---- splitvt-1.6.5.orig/videomem.c
-+++ splitvt-1.6.5/videomem.c
-@@ -1,6 +1,7 @@
-
- /* This file holds the functions for manipulating video memory */
-
-+#include <stdlib.h>
- #include <stdio.h>
- #include "video.h"
- #include "terminal.h"
-@@ -113,7 +114,7 @@
- int x1, x2;
- int y1, y2;
- {
-- int l=0, i, j, eol, eos;
-+ int l=0, i, j, eol, eos=0;
-
- --maxlen; /* Account for trailing null */
- for ( i=(x1-1); (i<x2 && l<maxlen); ++i ) {
-@@ -319,7 +320,7 @@
- void paint_video(win)
- window *win;
- {
-- unsigned char change, on=NORMAL;
-+ unsigned char on=NORMAL;
- int i, j, oldattr=0;
-
- vt_setscroll(0,0);
---- splitvt-1.6.5.orig/vtmouse.h
-+++ splitvt-1.6.5/vtmouse.h
-@@ -39,5 +39,7 @@
- extern int event_getc();
- extern void event_quit();
-
-+#if 0
-+/* this is broken for gcc 4.0, so comment it out */
- extern FILE *xt_input, *xt_output; /* Usually untouched */
--
-+#endif
---- splitvt-1.6.5.orig/terminal.c
-+++ splitvt-1.6.5/terminal.c
-@@ -4,8 +4,11 @@
- actually write to the terminal.
- */
-
--
-+#include <curses.h>
-+#include <term.h>
- #include <stdio.h>
-+#include <string.h>
-+#include "splitvt.h"
- #include "video.h"
- #include "terminal.h"
-
-@@ -125,7 +128,7 @@
- }
- return(NULL);
- }
--void outc(c) int c; { putchar(c); }
-+int outc(c) int c; { return putchar(c); }
-
- void vt_rows_cols(termtype, rows, cols)
- char *termtype;
---- splitvt-1.6.5.orig/misc.c
-+++ splitvt-1.6.5/misc.c
-@@ -1,10 +1,17 @@
- /* Miscellaneous system dependent routines for splitsh */
-
-+#define _GNU_SOURCE /* for getpt and other gnu extensions to libc */
-+
- #include <sys/types.h>
-+#include <sys/wait.h>
-+#include <unistd.h>
-+#include <stdlib.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <stdio.h>
- #include <signal.h>
-+#include <utime.h>
-+#include <string.h>
-
-
- #ifdef HAVE_TERMIO_H
-@@ -24,6 +31,8 @@
- /*#define STTY_HACK*/
- #endif
-
-+int tty_reset(int fd);
-+
- /*
- * Initialize a pty, fork a command running under it, and then
- * return the master file descriptor
-@@ -44,7 +53,10 @@
- int get_master_pty(), get_slave_pty();
- char *get_ttyname(), *myputenv();
-
-- char LINES[12], COLUMNS[12], SPLITVT[24];
-+#ifndef TIOCGWINSZ
-+ char LINES[12], COLUMNS[12];
-+#endif
-+ char SPLITVT[24];
- int returnfd, slave_fd;
-
- /* Get the master pty file descriptor */
-@@ -106,6 +118,8 @@
- /* "touch" the tty so 'w' reports proper idle times */
- (void) utime(get_ttyname(), NULL);
-
-+ /* Set our gid to our real gid if necessary */
-+ (void) setgid(getgid());
- /* Set our uid to our real uid if necessary */
- (void) setuid(getuid());
-
-@@ -182,12 +196,18 @@
- #else /* ! IRIX */
-
-
--#ifdef SOLARIS /* System V.4 pty routines from W. Richard Stevens */
-+#if defined(SOLARIS) || defined(__GLIBC__)
-+/* System V.4 pty routines from W. Richard Stevens */
-+/* GLIBC is very similar, so this will handle it too. */
-+
-+#ifdef SOLARIS
-
- #include <stropts.h>
-
- #define DEV_CLONE "/dev/ptmx"
-
-+#endif
-+
- extern char *ptsname();
-
- int get_master_pty()
-@@ -195,9 +215,14 @@
-
- char *ttyptr;
-
-+#ifdef SOLARIS
- if ( (master_fd=open(DEV_CLONE, O_RDWR)) < 0 )
- return(-1);
--
-+#else /* GLIBC */
-+ if ( (master_fd=getpt()) == -1 )
-+ return (-1);
-+#endif
-+
- if ( grantpt(master_fd) < 0 ) /* grant access to slave */
- {
- close(master_fd);
-@@ -242,6 +267,7 @@
- return(-1);
- }
-
-+#ifdef SOLARIS
- if ( ioctl(slave_fd, I_PUSH, "ptem") < 0 )
- {
- close(master_fd);
-@@ -262,7 +288,8 @@
- close(slave_fd);
- return(-1);
- }
--
-+#endif
-+
- return(slave_fd);
- }
-
-@@ -393,8 +420,10 @@
-
- void dropctty()
- {
-+#ifndef CIBAUD
- int fd;
--
-+#endif
-+
- #if defined(_POSIX_SOURCE) || defined(SOLARIS) || \
- defined(__386BSD__) || defined(__FreeBSD__)
- setsid(); /* The POSIX solution is simple. :) */
-@@ -708,7 +737,6 @@
- extern char **environ; /* The process environment strings */
-
- char *newptr, **envptr;
-- char *tmptr, temp[BUFSIZ];
- int distance, n=0;
-
- for ( distance=0; ((*(string+distance)) &&
-@@ -759,7 +787,7 @@
- char *line;
- char *tokens;
- {
-- char *head, *ptr;
-+ char *head;
- int i=0;
-
- for ( head=line; *line && i < size-2; ) {
-@@ -847,7 +875,7 @@
- {
- char *argv[4];
- int pipe_fds[2];
-- int rw, child;
-+ int rw;
-
- if ( strcmp(type, "r") == 0 )
- rw=0; /* READ access for parent */