diff -Nur ../screen-3.6.0/Makefile.in ./Makefile.in --- ../screen-3.6.0/Makefile.in Wed Dec 21 00:56:01 1994 +++ ./Makefile.in Mon Jan 16 15:59:20 1995 @@ -12,8 +12,8 @@ prefix = /usr/local exec_prefix = $(prefix) +# don't forget to change mandir and infodir in doc/Makefile. bindir = $(exec_prefix)/bin -mandir = $(prefix)/man VERSION = @VERSION@ @@ -61,7 +61,7 @@ termcap.o input.o attacher.o pty.o process.o display.o comm.o \ kmapdef.o acl.o -all: screen +all: screen info screen: $(OFILES) $(CC) $(LDFLAGS) -o $@ $(OFILES) $(LIBS) @@ -78,22 +78,23 @@ ln -s $(bindir)/screen-$(VERSION) $(bindir)/screen install: install_bin - -$(INSTALL_DATA) $(srcdir)/doc/screen.1 $(mandir)/man1/screen.1 + cd doc ; $(MAKE) install -tic ${srcdir}/terminfo/screeninfo.src # Better do this by hand. E.g. under RCS... # cat ${srcdir}/terminfo/screencap >> /etc/termcap @echo "termcap entry (${srcdir}/terminfo/screencap) should be installed manually." -installdirs: mkinstalldirs +installdirs: # Path leading to ETCSCREENRC and Socketdirectory not checked. - $(srcdir)/mkinstalldirs $(bindir) $(mandir) + $(srcdir)/etc/mkinstalldirs $(bindir) + cd doc ; $(MAKE) installdirs uninstall: rm -f $(bindir)/screen-$(VERSION) rm -f $(bindir)/screen - mv $(bindir)/screen.old $(bindir)/screen + -mv $(bindir)/screen.old $(bindir)/screen rm -f $(ETCSCREENRC) - rm -f $(mandir)/man1/screen.1 + cd doc; $(MAKE) uninstall shadow: mkdir shadow; @@ -118,7 +119,7 @@ cd doc; $(MAKE) dvi info dvi info: - cd doc; $(MAKE) $@ + -cd doc; $(MAKE) $@ mostlyclean: rm -f $(OFILES) screen @@ -145,7 +146,7 @@ ctags $(CFILES) *.h ctags -e $(CFILES) *.h -dist: screen-$(VERSION).tar.z +dist: screen-$(VERSION).tar.gz screen-$(VERSION).tar: term.h comm.h tty.c kmapdef.c -rm -rf dist @@ -153,7 +154,7 @@ mkdir dist/screen-$(VERSION) ln acl.h ansi.h display.h extern.h mark.h os.h overlay.h \ patchlevel.h rcs.h screen.h window.h osdef.h.in \ - term.sh tty.sh comm.sh osdef.sh newsyntax \ + term.sh tty.sh comm.sh osdef.sh \ acl.c ansi.c attacher.c comm.c display.c window.c fileio.c help.c \ input.c loadav.c mark.c misc.c process.c pty.c putenv.c \ screen.c search.c socket.c term.c termcap.c utmp.c resize.c \ @@ -173,21 +174,21 @@ screeninfo.src test.txt tetris.c \ ../dist/screen-$(VERSION)/terminfo mkdir dist/screen-$(VERSION)/etc + cd etc; ln * ../dist/screen-$(VERSION)/etc sed -e 's/^startup/#startup/' -e 's/^autodetach/#autodetach/' < $(ETCSCREENRC) > dist/screen-$(VERSION)/etc/etcscreenrc cp $(HOME)/.iscreenrc dist/screen-$(VERSION)/etc/screenrc mkdir dist/screen-$(VERSION)/doc - ln doc/fdpat.ps dist/screen-$(VERSION)/doc/fdpat.ps sed -e 's@/local/emacs@/usr/local@g' < doc/Makefile.in > dist/screen-$(VERSION)/doc/Makefile.in - cd doc; ln screen.1 screen.texinfo \ + cd doc; ln FAQ screen.1 screen.texinfo fdpat.ps \ ../dist/screen-$(VERSION)/doc - ln doc/FAQ dist/screen-$(VERSION)/doc/FAQ + cd dist/screen-$(VERSION)/doc; ln -s ../install.sh . cd dist/screen-$(VERSION); ln -s doc/FAQ . echo "install all Makefiles config:" > dist/screen-$(VERSION)/Makefile echo " sh ./configure" >> dist/screen-$(VERSION)/Makefile cd dist; tar chf ../screen-$(VERSION).tar screen-$(VERSION) rm -rf dist -screen-$(VERSION).tar.z: screen-$(VERSION).tar +screen-$(VERSION).tar.gz: screen-$(VERSION).tar gzip -f screen-$(VERSION).tar # Perform self-tests (if any). diff -Nur ../screen-3.6.0/NEWS ./NEWS --- ../screen-3.6.0/NEWS Wed Dec 21 00:55:41 1994 +++ ./NEWS Sun Jan 15 23:55:44 1995 @@ -12,6 +12,11 @@ Use the ANSI APC string to set the status line, i.e.: _\ (For convenience the xterm sequence is also accepted.) + You may want to add + termcap * '' ':hs:ts=\E_:fs=\E\\:ds=\E_\E\\:' + terminfo * '' ':hs:ts=\E_:fs=\E\\:ds=\E_\E\\:' + to your ~/.screenrc to make screen advertise the hardstatus + support. * Zombie feature added. Windows now may generate a message (with a timestamp) if they die and stay around until the user presses diff -Nur ../screen-3.6.0/ansi.c ./ansi.c --- ../screen-3.6.0/ansi.c Tue Dec 20 22:55:53 1994 +++ ./ansi.c Thu Jan 5 21:56:11 1995 @@ -452,7 +452,7 @@ /* The next part is only for speedup */ if (curr->w_state == LIT && #ifdef KANJI - curr->w_Font != KANJI && curr->w_Font != KANA && + curr->w_Font != KANJI && curr->w_Font != KANA && !curr->w_mbcs && #endif c >= ' ' && ((c & 0x80) == 0 || ((c >= 0xa0 || !curr->w_c1) && !curr->w_gr && (display == 0 || !D_CB8))) && diff -Nur ../screen-3.6.0/config.h.in ./config.h.in --- ../screen-3.6.0/config.h.in Wed Dec 21 00:56:01 1994 +++ ./config.h.in Mon Jan 16 15:59:19 1995 @@ -152,7 +152,9 @@ * Disabling this feature only makes sense if you have a secure /etc/utmp * database. * Negative examples: suns usually have a world writable utmp file, - * xterm will run perfectly without s-bit. + * xterm and script will run perfectly without s-bit. + * If LOGOUTOK is undefined and UTMPOK is defined, all windows are initially + * and permanently logged in. */ #define LOGOUTOK 1 diff -Nur ../screen-3.6.0/configure ./configure --- ../screen-3.6.0/configure Wed Dec 21 00:04:17 1994 +++ ./configure Thu Jan 5 21:57:09 1995 @@ -992,7 +992,7 @@ int main() { return 0; } int t() { -#if defined(linux) || defined(NeXT) || (defined(sun) && defined(SVR4)) +#if defined(linux) || defined(NeXT) || defined(ultrix) || (defined(sun) && defined(SVR4)) seteuid_is_broken(0); #else seteuid(0); diff -Nur ../screen-3.6.0/configure.in ./configure.in --- ../screen-3.6.0/configure.in Wed Dec 21 00:03:27 1994 +++ ./configure.in Thu Jan 5 21:57:35 1995 @@ -195,11 +195,11 @@ dnl dnl seteuid() check: dnl linux seteuid was broken before V1.1.11 -dnl NeXT is still broken (no saved uid support) +dnl NeXT and ultrix are still broken (no saved uid support) dnl Solaris seteuid doesn't change the saved uid, bad for dnl multiuser screen sessions AC_COMPILE_CHECK(seteuid, , [ -#if defined(linux) || defined(NeXT) || (defined(sun) && defined(SVR4)) +#if defined(linux) || defined(NeXT) || defined(ultrix) || (defined(sun) && defined(SVR4)) seteuid_is_broken(0); #else seteuid(0); diff -Nur ../screen-3.6.0/display.c ./display.c --- ../screen-3.6.0/display.c Mon Dec 19 23:00:08 1994 +++ ./display.c Sun Jan 15 23:53:49 1995 @@ -359,7 +359,7 @@ ResizeDisplay(D_defwidth, D_defheight); DefRestore(); SetAttrFont(0, ASCII); - if (D_HS) + if (D_hstatus) PutStr(D_DS); D_x = D_y = -1; GotoPos(0, D_height - 1); @@ -1284,11 +1284,12 @@ debug("using HS\n"); SetAttrFont(0, ASCII); InsertMode(0); - if (D_fore && D_fore->w_hstatus) + if (D_hstatus) PutStr(D_DS); CPutStr(D_TS, 0); AddStr(msg); PutStr(D_FS); + D_hstatus = 1; } Flush(); (void) time(&D_status_time); @@ -1337,20 +1338,26 @@ { /* SetAttrFont(0, ASCII); - PutStr(D_DS); + if (D_hstatus) + PutStr(D_DS); */ RefreshStatus(); } SetCursor(); } +/* + * Refreshes the harstatus of the _window_. Shouldn't be here... + */ + void RefreshStatus() { if (D_HS) { SetAttrFont(0, ASCII); - PutStr(D_DS); + if (D_hstatus) + PutStr(D_DS); if (D_fore && D_fore->w_hstatus) { CPutStr(D_TS, 0); @@ -1359,6 +1366,7 @@ else AddStr(D_fore->w_hstatus); PutStr(D_FS); + D_hstatus = 1; } } else if (D_fore && D_fore->w_hstatus) @@ -1774,6 +1782,8 @@ D_font = ASCII; D_attr = 0; D_atyp = 0; + PutStr(D_DS); + D_hstatus = 0; ChangeScrollRegion(oldtop, oldbot); SetAttrFont(oldattr, oldfont); KeypadMode(oldkeypad); diff -Nur ../screen-3.6.0/display.h ./display.h --- ../screen-3.6.0/display.h Sun Nov 6 18:20:01 1994 +++ ./display.h Sun Jan 15 23:46:26 1995 @@ -71,6 +71,7 @@ int d_cursorkeys; /* application cursorkeys flag */ int d_revvid; /* reverse video */ int d_curinv; /* cursor invisible */ + int d_hstatus; /* hardstatus used */ int d_lp_missing; /* last character on bot line missing */ int d_lp_image; /* missing image */ int d_lp_attr; /* missing attr */ @@ -159,6 +160,7 @@ #define D_cursorkeys DISPLAY(d_cursorkeys) #define D_revvid DISPLAY(d_revvid) #define D_curinv DISPLAY(d_curinv) +#define D_hstatus DISPLAY(d_hstatus) #define D_lp_missing DISPLAY(d_lp_missing) #define D_lp_image DISPLAY(d_lp_image) #define D_lp_attr DISPLAY(d_lp_attr) diff -Nur ../screen-3.6.0/doc/FAQ ./doc/FAQ --- ../screen-3.6.0/doc/FAQ Tue Dec 20 21:46:57 1994 +++ ./doc/FAQ Mon Jan 16 00:55:15 1995 @@ -213,7 +213,7 @@ Q: When I type cd directory (any directory or just blank) from within one of the windows in screen, the whole thing just freezes up. - + A: You display the current working directory in xterm's title bar, This may be caused by hardcoded ESC-sequences in the shell prompt or in an cd alias. In Xterm the coding is @@ -225,4 +225,9 @@ and waits (according to ansi) for the string terminator ESC \ Screen versions after 3.5.12 may provide a workaround. + +Q: Mesg or biff cannot be turned on or off while running screen. + +A: Screen failed to change the owner of the pty it uses. You need to + install screen setuid-root. See the file INSTALL for details. diff -Nur ../screen-3.6.0/doc/Makefile.in ./doc/Makefile.in --- ../screen-3.6.0/doc/Makefile.in Wed Dec 21 00:56:04 1994 +++ ./doc/Makefile.in Mon Jan 16 15:59:26 1995 @@ -4,6 +4,7 @@ VPATH = @srcdir@ prefix = /usr/local +mandir = $(prefix)/man infodir = $(prefix)/info INSTALL = @INSTALL@ @@ -13,7 +14,7 @@ SHELL = /bin/sh -all: +all: info dvi screen.dvi: screen.texinfo mostlyclean $(TEXI2DVI) $(srcdir)/screen.texinfo @@ -21,15 +22,23 @@ info screen.info: screen.texinfo $(MAKEINFO) $(srcdir)/screen.texinfo -o screen.info -install: screen.info - -if test -f foo.info; then d=.; else d=$(srcdir); fi; \ - -for f in $$d/screen.info*; do $(INSTALL_DATA) $$f $(infodir)/$$f;done \ +install: + $(INSTALL_DATA) -c $(srcdir)/screen.1 $(mandir)/man1/screen.1 + -$(MAKE) screen.info + -if test -f screen.info; then d=.; else d=$(srcdir); fi; \ + if test -f $$d/screen.info; then \ + for f in $$d/screen.info*; do $(INSTALL_DATA) -c $$f $(infodir)/$$f;done; \ if install-info --version >/dev/null 2>&1; then \ - install-info --infodir=$(infodir) $$d/foo.info; \ - else true; fi + install-info --infodir=$(infodir) $$d/screen.info; \ + else true; fi; \ + fi uninstall: + rm -f $(mandir)/man1/screen.1 rm -f $(infodir)/screen.info* + +installdirs: + $(srcdir)/../etc/mkinstalldirs $(mandir)/man1 $(infodir) mostlyclean: -rm -f *.cp *.cps *.fn *.fns *.ky *.kys *.pg *.tp *.vr diff -Nur ../screen-3.6.0/doc/install.sh ./doc/install.sh --- ../screen-3.6.0/doc/install.sh Thu Jan 1 01:00:00 1970 +++ ./doc/install.sh Fri May 6 12:18:38 1994 @@ -0,0 +1,119 @@ +#!/bin/sh + +# +# install - install a program, script, or datafile +# This comes from X11R5; it is not part of GNU. +# +# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" + +instcmd="$mvprog" +chmodcmd="" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +fi + +if [ x"$dst" = x ] +then + echo "install: no destination specified" + exit 1 +fi + + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + +if [ -d $dst ] +then + dst="$dst"/`basename $src` +fi + +# Make a temp file name in the proper directory. + +dstdir=`dirname $dst` +dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + +$doit $instcmd $src $dsttmp + +# and set any options; do chmod last to preserve setuid bits + +if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi +if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi +if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi +if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi + +# Now rename the file to the real destination. + +$doit $rmcmd $dst +$doit $mvcmd $dsttmp $dst + + +exit 0 diff -Nur ../screen-3.6.0/etc/mkinstalldirs ./etc/mkinstalldirs --- ../screen-3.6.0/etc/mkinstalldirs Thu Jan 1 01:00:00 1970 +++ ./etc/mkinstalldirs Sun Jan 15 22:38:12 1995 @@ -0,0 +1,35 @@ +#!/bin/sh +# Make directory hierarchy. +# Written by Noah Friedman +# Public domain. + +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +errstatus=0 + +for file in ${1+"$@"} ; do + oIFS="${IFS}" + # Some sh's can't handle IFS=/ for some reason. + IFS='%' + set - `echo ${file} | sed -e 's@/@%@g' -e 's@^%@/@'` + IFS="${oIFS}" + + pathcomp='' + + for d in ${1+"$@"} ; do + pathcomp="${pathcomp}${d}" + + if test ! -d "${pathcomp}"; then + echo "mkdir $pathcomp" 1>&2 + mkdir "${pathcomp}" || errstatus=$? + fi + + pathcomp="${pathcomp}/" + done +done + +exit $errstatus + +# eof diff -Nur ../screen-3.6.0/etc/newsyntax ./etc/newsyntax --- ../screen-3.6.0/etc/newsyntax Thu Jan 1 01:00:00 1970 +++ ./etc/newsyntax Thu Aug 5 16:23:50 1993 @@ -0,0 +1,64 @@ +#!/bin/sh +# +# newsyntax -- update a screenrc file from 3.2 to 3.3 syntax +# +# please check all comments after running this script and watch out +# for funny passages. +# +if [ $# != 1 ]; then + echo "usage $0 screenrcfile" + exit 1; +fi + +#Ultrix 4.2 /bin/sh does not handle "read a < $1" +#Dean Gaudet +exec < $1 +read a + +if [ ."$a" = '.#3.3' ]; then + echo "$1 already updated" + exit 0 +fi + +cp $1 $1.old +echo "#3.3" > $1 +echo "# Do not remove the above line. This screen rc file was updated" >> $1 +echo "# by the newsyntax script." >> $1 +sed < $1.old >> $1 \ +-e 's/\([ #]\)flow/\1defflow/g' \ +-e 's/^flow/defflow/g' \ +-e 's/\([ #]\)set[ ]*defflow/\1flow/g' \ +-e 's/^set[ ]*defflow/flow/g' \ +-e 's/\([ #]\)mode/\1defmode/g' \ +-e 's/^mode/defmode/g' \ +-e 's/\([ #]\)set[ ]*defmode/\1defmode/g' \ +-e 's/^set[ ]*defmode/defmode/g' \ +-e 's/\([ #]\)monitor/\1defmonitor/g' \ +-e 's/^monitor/defmonitor/g' \ +-e 's/\([ #]\)set[ ]*defmonitor/\1monitor/g' \ +-e 's/^set[ ]*defmonitor/monitor/g' \ +-e 's/\([ #]\)login/\1deflogin/g' \ +-e 's/^login/deflogin/g' \ +-e 's/\([ #]\)set[ ]*deflogin/\1login/g' \ +-e 's/^set[ ]*deflogin/login/g' \ +-e 's/\([ #]\)wrap/\1defwrap/g' \ +-e 's/^wrap/defwrap/g' \ +-e 's/\([ #]\)set[ ]*defwrap/\1wrap/g' \ +-e 's/^set[ ]*defwrap/wrap/g' \ +-e 's/\([ #]\)scrollback/\1defscrollback/g' \ +-e 's/^scrollback/defscrollback/g' \ +-e 's/\([ #]\)set[ ]*defscrollback/\1scrollback/g' \ +-e 's/^set[ ]*defscrollback/scrollback/g' \ +-e 's/\([ #]\)refresh/\1allPARtial/g' \ +-e 's/^refresh/allPARtial/g' \ +-e 's/\([ #]\)redraw/\1allPARtial/g' \ +-e 's/^redraw/allPARtial/g' \ +-e 's/\([ #]\)set[ ]*allPARtial/\1PARtial/g' \ +-e 's/^set[ ]*allPARtial/PARtial/g' \ +-e 's/\([ #]\)visualbell/\1vbell/g' \ +-e 's/^visualbell/vbell/g' \ +-e 's/PARtial\([ ]*\)on/partial\1off/g' \ +-e 's/PARtial\([ ]*\)off/partial\1on/g' \ +-e 's/allPARtial/refresh/g' \ +-e 's/^set[ ]//g' + diff -Nur ../screen-3.6.0/etc/screenrc ./etc/screenrc --- ../screen-3.6.0/etc/screenrc Wed Dec 21 00:56:03 1994 +++ ./etc/screenrc Mon Jan 16 15:59:26 1995 @@ -71,3 +71,7 @@ termcap con80x* "xn:f0=\033Op:f1=\033Oq:f2=\033Or:f3=\033Os:f4=\033Ot:f5=\033Ou:f6=\033Ov:f7=\033Ow:f8=\033Ox:f9=\033Oy:f.=\033On:f,=\033Ol:fe=\033OM:f+=\033Ok:f-=\033Om:f*=\033Oj:f/=\033Oo:fq=\033OX:kN=\033[6~:kP=\033[5~" +# advertise hardstatus support to $TERMCAP +termcap * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\' +terminfo * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\' + diff -Nur ../screen-3.6.0/fileio.c ./fileio.c --- ../screen-3.6.0/fileio.c Tue May 31 14:32:01 1994 +++ ./fileio.c Mon Jan 16 00:40:21 1995 @@ -506,8 +506,11 @@ #ifdef COPY_PASTE case DUMP_EXCHANGE: p = D_user->u_copybuffer; - for (i = 0; i < D_user->u_copylen; i++) - putc(*p++, f); + for (i = D_user->u_copylen; i-- > 0; p++) + if (*p == '\r' && (i == 0 || p[1] != '\n')) + putc('\n', f); + else + putc(*p, f); break; #endif } @@ -549,9 +552,10 @@ int *lenp; { int i, l, size; - char c, *buf; + char c, *bp, *buf; struct stat stb; + ASSERT(lenp); debug1("ReadFile(%s)\n", fn); if ((i = secopen(fn, O_RDONLY, 0)) < 0) { @@ -583,16 +587,20 @@ #endif Msg(errno, "Got only %d bytes from %s", l, fn); close(i); - return NULL; } - if (read(i, &c, 1) > 0) - Msg(0, "Slurped only %d characters (of %d) into buffer - try again", - l, size); else - Msg(0, "Slurped %d characters into buffer", l); + { + if (read(i, &c, 1) > 0) + Msg(0, "Slurped only %d characters (of %d) into buffer - try again", + l, size); + else + Msg(0, "Slurped %d characters into buffer", l); + } close(i); - if (lenp) - *lenp = l; + *lenp = l; + for (bp = buf; l-- > 0; bp++) + if (*bp == '\n' && (bp == buf || bp[-1] != '\r')) + *bp = '\r'; return buf; } diff -Nur ../screen-3.6.0/mark.c ./mark.c --- ../screen-3.6.0/mark.c Tue May 31 14:32:15 1994 +++ ./mark.c Thu Jan 5 21:51:56 1995 @@ -350,15 +350,15 @@ switch (markdata->nonl) { case 0: /* lines separated by newlines */ + if (pt) + *pt++ = '\r'; + l++; if (join_with_cr) { if (pt) - *pt++ = '\r'; + *pt++ = '\n'; l++; } - if (pt) - *pt++ = '\n'; - l++; break; case 1: /* nothing to separate lines */ break; diff -Nur ../screen-3.6.0/newsyntax ./newsyntax --- ../screen-3.6.0/newsyntax Thu Aug 5 16:23:50 1993 +++ ./newsyntax Thu Jan 1 01:00:00 1970 @@ -1,64 +0,0 @@ -#!/bin/sh -# -# newsyntax -- update a screenrc file from 3.2 to 3.3 syntax -# -# please check all comments after running this script and watch out -# for funny passages. -# -if [ $# != 1 ]; then - echo "usage $0 screenrcfile" - exit 1; -fi - -#Ultrix 4.2 /bin/sh does not handle "read a < $1" -#Dean Gaudet -exec < $1 -read a - -if [ ."$a" = '.#3.3' ]; then - echo "$1 already updated" - exit 0 -fi - -cp $1 $1.old -echo "#3.3" > $1 -echo "# Do not remove the above line. This screen rc file was updated" >> $1 -echo "# by the newsyntax script." >> $1 -sed < $1.old >> $1 \ --e 's/\([ #]\)flow/\1defflow/g' \ --e 's/^flow/defflow/g' \ --e 's/\([ #]\)set[ ]*defflow/\1flow/g' \ --e 's/^set[ ]*defflow/flow/g' \ --e 's/\([ #]\)mode/\1defmode/g' \ --e 's/^mode/defmode/g' \ --e 's/\([ #]\)set[ ]*defmode/\1defmode/g' \ --e 's/^set[ ]*defmode/defmode/g' \ --e 's/\([ #]\)monitor/\1defmonitor/g' \ --e 's/^monitor/defmonitor/g' \ --e 's/\([ #]\)set[ ]*defmonitor/\1monitor/g' \ --e 's/^set[ ]*defmonitor/monitor/g' \ --e 's/\([ #]\)login/\1deflogin/g' \ --e 's/^login/deflogin/g' \ --e 's/\([ #]\)set[ ]*deflogin/\1login/g' \ --e 's/^set[ ]*deflogin/login/g' \ --e 's/\([ #]\)wrap/\1defwrap/g' \ --e 's/^wrap/defwrap/g' \ --e 's/\([ #]\)set[ ]*defwrap/\1wrap/g' \ --e 's/^set[ ]*defwrap/wrap/g' \ --e 's/\([ #]\)scrollback/\1defscrollback/g' \ --e 's/^scrollback/defscrollback/g' \ --e 's/\([ #]\)set[ ]*defscrollback/\1scrollback/g' \ --e 's/^set[ ]*defscrollback/scrollback/g' \ --e 's/\([ #]\)refresh/\1allPARtial/g' \ --e 's/^refresh/allPARtial/g' \ --e 's/\([ #]\)redraw/\1allPARtial/g' \ --e 's/^redraw/allPARtial/g' \ --e 's/\([ #]\)set[ ]*allPARtial/\1PARtial/g' \ --e 's/^set[ ]*allPARtial/PARtial/g' \ --e 's/\([ #]\)visualbell/\1vbell/g' \ --e 's/^visualbell/vbell/g' \ --e 's/PARtial\([ ]*\)on/partial\1off/g' \ --e 's/PARtial\([ ]*\)off/partial\1on/g' \ --e 's/allPARtial/refresh/g' \ --e 's/^set[ ]//g' - diff -Nur ../screen-3.6.0/patchlevel.h ./patchlevel.h --- ../screen-3.6.0/patchlevel.h Wed Dec 21 00:53:58 1994 +++ ./patchlevel.h Mon Jan 16 01:04:13 1995 @@ -169,12 +169,20 @@ * Ugly seteuid bug in ForkWindow() fixed. * 20.12.94 -- 3.06.00 Solaris has broken seteuid(). * osf loadav patches. -- DISTRIBUTED + * 16.01.95 -- 3.06.01 KANJI patch. doc/Makefile.in fixed. + * Install now calls doc/Makefile install. + * Don't use 'ds' too often, breaks MSkermit. + * undef'd LOGOUTOK logs in now. + * Ultrix is broken, too (seteuid). + * Use \r (not \n) to join lines in pastebuf. + * bindkey can now remove sequences. + * InitTTY fixed for PLAIN. -- DISTRIBUTED * */ #define ORIGIN "FAU" #define REV 3 #define VERS 6 -#define PATCHLEVEL 0 -#define DATE "20-Dec-94" +#define PATCHLEVEL 1 +#define DATE "16-Jan-95" #define STATE "" diff -Nur ../screen-3.6.0/process.c ./process.c --- ../screen-3.6.0/process.c Tue Dec 20 23:24:48 1994 +++ ./process.c Mon Jan 16 00:10:39 1995 @@ -271,8 +271,6 @@ ktab['C'].nr = RC_CLEAR; ktab['Z'].nr = RC_RESET; ktab['H'].nr = RC_LOG; - ktab[(int)(unsigned char)DefaultEsc].nr = RC_OTHER; - ktab[(int)(unsigned char)DefaultMetaEsc].nr = RC_META; ktab['M'].nr = RC_MONITOR; ktab['?'].nr = RC_HELP; for (i = 0; i < ((MAXWIN < 10) ? MAXWIN : 10); i++) @@ -312,6 +310,8 @@ ktab['b'].nr = ktab[Ctrl('b')].nr = RC_BREAK; ktab['B'].nr = RC_POW_BREAK; ktab['_'].nr = RC_SILENCE; + ktab[(int)(unsigned char)DefaultEsc].nr = RC_OTHER; + ktab[(int)(unsigned char)DefaultMetaEsc].nr = RC_META; } static void @@ -1924,6 +1924,7 @@ struct action *newact; int newnr, fl = 0, kf = 0, af = 0, df = 0, mf = 0; struct display *odisp = display; + int used = 0; for (; *args && **args == '-'; args++) { @@ -1965,8 +1966,6 @@ } if (kf == 0) { - int used = 0; - if (af) { Msg(0, "%s: bindkey: -a only works with -k", rc_name); @@ -1992,12 +1991,6 @@ used = 1; if ((df || mf) && umtab[i + KMAP_KEYS + KMAP_AKEYS].nr != RC_ILLEGAL) used = 1; - if ((args[1] || !used) && kmap_extras[i]) - { - free(kmap_extras[i]); - kmap_extras[i] = 0; - kmap_extras_fl[i] = 0; - } i += KMAP_KEYS + KMAP_AKEYS; } else @@ -2031,12 +2024,24 @@ newact->args = SaveArgs(args + 2); if (kf == 0 && args[1]) { + if (kmap_extras[i - (KMAP_KEYS+KMAP_AKEYS)]) + free(kmap_extras[i - (KMAP_KEYS+KMAP_AKEYS)]); kmap_extras[i - (KMAP_KEYS+KMAP_AKEYS)] = SaveStr(*args); kmap_extras_fl[i - (KMAP_KEYS+KMAP_AKEYS)] = fl; } } for (display = displays; display; display = display->d_next) remap(i, args[1] ? 1 : 0); + if (kf == 0 && !args[1]) + { + i -= KMAP_KEYS + KMAP_AKEYS; + if (!used && kmap_extras[i]) + { + free(kmap_extras[i]); + kmap_extras[i] = 0; + kmap_extras_fl[i] = 0; + } + } display = odisp; } break; diff -Nur ../screen-3.6.0/tty.c.dist ./tty.c.dist --- ../screen-3.6.0/tty.c.dist Tue Dec 20 22:36:04 1994 +++ ./tty.c.dist Mon Jan 16 00:13:53 1995 @@ -295,6 +295,11 @@ m->tio.c_cc[VSTATUS] = Ctrl('T'); #endif /* VSTATUS */ + if (ttyflag) + { + m->tio.c_cc[VMIN] = 1; + m->tio.c_cc[VTIME] = 0; + } # ifdef hpux m->m_ltchars.t_suspc = Ctrl('Z'); m->m_ltchars.t_dsuspc = Ctrl('Y'); @@ -392,6 +397,11 @@ #if defined(VSWTCH) && VSWTCH < MAXCC m->tio.c_cc[VSWTCH] = 0000; #endif /* VSWTCH */ + if (ttyflag) + { + m->tio.c_cc[VMIN] = 1; + m->tio.c_cc[VTIME] = 0; + } # else /* TERMIO */ debug1("InitTTY: BSD: defaults a la SunOS 4.1.3 (%d)\n", ttyflag); m->m_ttyb.sg_ispeed = B9600; diff -Nur ../screen-3.6.0/tty.sh ./tty.sh --- ../screen-3.6.0/tty.sh Mon Nov 28 21:34:46 1994 +++ ./tty.sh Thu Jan 5 16:42:03 1995 @@ -234,6 +234,11 @@ XIF{VLNEXT} m->tio.c_cc[VLNEXT] = Ctrl('V'); XIF{VSTATUS} m->tio.c_cc[VSTATUS] = Ctrl('T'); + if (ttyflag) + { + m->tio.c_cc[VMIN] = 1; + m->tio.c_cc[VTIME] = 0; + } # ifdef hpux m->m_ltchars.t_suspc = Ctrl('Z'); m->m_ltchars.t_dsuspc = Ctrl('Y'); @@ -287,6 +292,11 @@ XIF{VEOL} m->tio.c_cc[VEOL] = 0377; XIF{VEOL2} m->tio.c_cc[VEOL2] = 0377; XIF{VSWTCH} m->tio.c_cc[VSWTCH] = 0000; + if (ttyflag) + { + m->tio.c_cc[VMIN] = 1; + m->tio.c_cc[VTIME] = 0; + } # else /* TERMIO */ debug1("InitTTY: BSD: defaults a la SunOS 4.1.3 (%d)\n", ttyflag); m->m_ttyb.sg_ispeed = B9600; diff -Nur ../screen-3.6.0/window.c ./window.c --- ../screen-3.6.0/window.c Tue Dec 20 22:58:38 1994 +++ ./window.c Sun Jan 15 23:39:59 1995 @@ -247,16 +247,21 @@ p->w_next = windows; windows = p; #ifdef UTMPOK +# ifdef LOGOUTOK debug1("MakeWindow will %slog in.\n", nwin.lflag?"":"not "); - if (nwin.lflag == 1) + if (!nwin.lflag) + p->w_slot = (slot_t) -1; + else +# else /* LOGOUTOK */ + debug1("MakeWindow will log in, LOGOUTOK undefined in config.h%s.\n", + nwin.lflag?"":" (although lflag=0)"); +# endif /* LOGOUTOK */ { if (display) SetUtmp(p); else p->w_slot = (slot_t) 0; } - else - p->w_slot = (slot_t) -1; #endif SetForeWindow(p); Activate(p->w_norefresh);