home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-12-18 | 93.2 KB | 2,901 lines |
- Newsgroups: comp.sources.unix
- From: jnweiger@immd4.informatik.uni-erlangen.de (Juergen Weigert)
- Subject: v25i041: Screen3 - multiple windows on an ASCII terminal, Part01/08
- Sender: sources-moderator@pa.dec.com
- Approved: vixie@pa.dec.com
-
- Submitted-By: jnweiger@immd4.informatik.uni-erlangen.de (Juergen Weigert)
- Posting-Number: Volume 25, Issue 41
- Archive-Name: screen3/part01
-
- [ this is the third major release of "screen", a utility that lets you
- do "hot-key"-style switching between multiple sessions on a single
- ASCII terminal. it'll never replace a bitmapped window system, but
- if you're logged into a VT100 or TVI920 it can come in very handy.
-
- it has been tested on Ultrix 4.2 and it works like a champ. --vix ]
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 8)."
- # Contents: INSTALLATION MANIFEST README ansi.h config
- # config/Makefile.bsd config/Makefile.gould_np1 config/Makefile.mips
- # config/Makefile.putenv config/Makefile.sco32 config/Makefile.sgi
- # config/Makefile.svr4 config/Makefile.xenix config/config.hpux
- # config/config.mot88 config/config.symmetry config/config.sysv68
- # config/config.xelos etcscreenrc patchlevel.h putenv.c readme
- # terminfo terminfo/screencap terminfo/screeninfo.src
- # terminfo/screenwinfo.src xx.c
- # Wrapped by vixie@cognition.pa.dec.com on Thu Dec 19 17:36:03 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'INSTALLATION' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'INSTALLATION'\"
- else
- echo shar: Extracting \"'INSTALLATION'\" \(1716 characters\)
- sed "s/^X//" >'INSTALLATION' <<'END_OF_FILE'
- Installation of screen3.1
- X
- X0.)
- Unpack. Screen comes as a compressed tar archinve. But... you propably
- already managed that step, when you are reading this. [the version in
- comp.sources.unix comes in SHAR files --mod]
- X
- X1.)
- take a look at the config directory. choose one of the config.h files there,
- or edit one to suit your needs. If necessary cunsult the online manuals
- or look into /usr/include/... [Copy one of them to ./config.h and edit
- it or at least look at it. --mod]
- X
- X2.)
- look at the Makefiles. Different systems need different libraries.
- Some need even the putenv code added. Build a Makefile that satisfies
- all these requirements. Then decide if you want to do screen debugging
- or want a production screen. In the first case you want to add -DDEBUG
- to CFLAGS. In the second case you may want to have -O in your CFLAGS
- and -s in your LDFLAGS, as you don't want to analyse a core-dump, if
- that ever happens. Still the executable may be 250 to 500 kbytes in size.
- X[There are a lot of Makefiles in the ./config directory; copy one up
- to ./Makefile and edit it or at least look at it. --mod]
- X
- X3.)
- compile with the right compiler. If you have gcc, use it. If you have
- a SYSV-ish and a bsd-like compiler, choose the later. E.g. on suns screen
- will not run properly when compiled with /usr/5bin/cc.
- X
- X4.)
- You may well run screen from your private binary directory and with a
- private socket directory like $HOME/.screen. But to have a full featured
- screen and (from a users point of view) more secure pty's you should
- consult a system administrator and discuss installing screen setuid-root
- in some globally accessible directory like /usr/local/bin.
- X
- Juergen Weigert. jnweiger@immd4.informatik.uni-erlangen.de
- END_OF_FILE
- if test 1716 -ne `wc -c <'INSTALLATION'`; then
- echo shar: \"'INSTALLATION'\" unpacked with wrong size!
- fi
- # end of 'INSTALLATION'
- fi
- if test -f 'MANIFEST' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'MANIFEST'\"
- else
- echo shar: Extracting \"'MANIFEST'\" \(1615 characters\)
- sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
- X File Name Archive # Description
- X-----------------------------------------------------------
- X CHANGES 3
- X COPYING 3
- X INSTALLATION 1
- X MANIFEST 1
- X README 1
- X ansi.c 7
- X ansi.h 1
- X config 1
- X config.h 2
- X config/Makefile.bsd 1
- X config/Makefile.gould_np1 1
- X config/Makefile.mips 1
- X config/Makefile.putenv 1
- X config/Makefile.sco32 1
- X config/Makefile.sgi 1
- X config/Makefile.svr4 1
- X config/Makefile.xenix 1
- X config/config.gould_np1 3
- X config/config.hpux 1
- X config/config.mips 2
- X config/config.mot88 1
- X config/config.rs6000 2
- X config/config.sequent_ptx 2
- X config/config.sgi 2
- X config/config.sunos41 2
- X config/config.svr4 2
- X config/config.symmetry 1
- X config/config.sysv68 1
- X config/config.ultrix31 2
- X config/config.xelos 1
- X config/config.xenix 2
- X etcscreenrc 1
- X extern.h 2
- X fileio.c 5
- X help.c 3
- X mark.c 4
- X patchlevel.h 1
- X putenv.c 1
- X readme 1
- X screen.1 6
- X screen.c 8
- X screen.h 3
- X socket.c 4
- X terminfo 1
- X terminfo/screencap 1
- X terminfo/screeninfo.src 1
- X terminfo/screenwinfo.src 1
- X window.c 3
- X xx.c 1
- END_OF_FILE
- if test 1615 -ne `wc -c <'MANIFEST'`; then
- echo shar: \"'MANIFEST'\" unpacked with wrong size!
- fi
- # end of 'MANIFEST'
- fi
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(3036 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X
- Short introduction to screen (Version 3.0.7) jw 7.9.91
- X
- screen
- X provides you with an ansi/vt100 terminal emulator, which can multiplex
- X up to 10 pseudo-terminals. On startup, it executes $SHELL in window 0.
- X Then it reads $HOME/.screenrc to learn configuration, keybindings,
- X and may open more windows.
- X
- X C-A C Create new windows.
- X
- X C-A SPACE Advance from window to window (with wraparound)
- X
- X C-A C-A Toggle between two windows.
- X
- X C-A 0
- X ...
- X C-A 9 Switch to window nr. 0 ... 9.
- X
- X C-A w Show a list of windows in the Statusline.
- X
- X C-A a (Think of goto-start-of-line in emacs or tcsh).
- X C-A s (Think of i-search in emacs).
- X C-A q Send a literal C-A/C-S/C-Q to the process in the window.
- X
- X C-A l Redraw this window.
- X
- X C-A W Toggle between 80 & 132 columns mode.
- X
- X C-A L Try to toggle the utmp-slot for this window.
- X
- X C-A A Prompt for a new name for this window. (see C-A w).
- X
- X C-A z Suspend the whole screen.
- X
- X C-A x Execute /usr/bin/lock or $LOCKCMD or a builtin terminallock.
- X
- X C-A C-[ Start copy&paste mode. Move cursor with h,j,k,l. Set 2 marks
- X with SPACE or y. Abort with ESC. Note that "C-[" is ESC.
- X NOTE: there is a userdefined amount of scrollback history.
- X The history buffer is entered, when the cursor hits the top
- X of the window.
- X
- X C-A C-] paste in current window's stdin. see C-A C-[.
- X
- X C-A <
- X C-A > Read or write the copybuffer from/to the exchange file.
- X Multiple screen users on the same host may thus transfer text.
- X
- X C-A d Detach screen. All processes continue and may spool output
- X to their pty's, but screen disconnects from your terminal.
- X reattach with "screen -r".
- X
- X C-A D D Power detach. Disconnect like C-A d and kill the parent shell.
- X
- X C-A K Kill a window and send SIGHUP to its processgroup. Per default
- X this would be C-A C-k. But it is redefined in the demo .screenrc
- X (think of killing a whole line in emacs).
- X
- X C-A :set all Show all keybindings. The above list is not at all complete and
- X may even be wrong, as keys can be redefined in .screenrc or
- X with "C-A :bind 'X' keyname [arguments]".
- X
- X C-A : .... Online configuration change.
- X
- X
- screen -r [host.tty]
- X Reattach a detached screen session. The terminal emulator reconfigures
- X according to your $TERMCAP or $TERM settings. '-R' brings up a detached
- X session or (if none) creates a new session. You should specify a socket
- X when there you have multiple screens detached.
- X
- screen -d [host.tty]
- X Detach a screen session from remote. Has the same effect as typing 'C-A d'
- X on the controlling terminal. '-D' will power-detach.
- X
- screen -list
- screen -ls
- X Show all available sockets. If there are (DEAD???) sockets, you may consider
- X removing them. If there are sockets missing, you may send a SIGCHLD to its
- X process 'SCREEN' and the process will re-establish the socket. (think of
- X someone cleaning /tmp thoroughly).
- X
- screen -h 200
- X Starts a new screen session and sets the number of lines in the scrollback
- X buffer to 200. The default is 50 lines.
- END_OF_FILE
- if test 3036 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'ansi.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'ansi.h'\"
- else
- echo shar: Extracting \"'ansi.h'\" \(2278 characters\)
- sed "s/^X//" >'ansi.h' <<'END_OF_FILE'
- X/* Copyright (c) 1991
- X * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
- X * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
- X * Copyright (c) 1987 Oliver Laumann
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 1, or (at your option)
- X * any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program (see the file COPYING); if not, write to the
- X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * Noteworthy contributors to screen's design and implementation:
- X * Wayne Davison (davison@borland.com)
- X * Patrick Wolfe (pat@kai.com, kailand!pat)
- X * Bart Schaefer (schaefer@cse.ogi.edu)
- X * Nathan Glasser (nathan@brokaw.lcs.mit.edu)
- X * Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
- X * Howard Chu (hyc@hanauma.jpl.nasa.gov)
- X * Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
- X * Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
- X * Marc Boucher (marc@CAM.ORG)
- X *
- X ****************************************************************
- X * $Id: ansi.h,v 1.13 91/10/06 14:47:20 jnweiger Exp $ FAU
- X */
- X
- X#define NATTR 6
- X
- X#define ATTR_DI 0 /* Dim mode */
- X#define ATTR_US 1 /* Underscore mode */
- X#define ATTR_BD 2 /* Bold mode */
- X#define ATTR_RV 3 /* Reverse mode */
- X#define ATTR_SO 4 /* Standout mode */
- X#define ATTR_BL 5 /* Blinking */
- X
- X#define A_DI (1<<ATTR_DI)
- X#define A_US (1<<ATTR_US)
- X#define A_BD (1<<ATTR_BD)
- X#define A_RV (1<<ATTR_RV)
- X#define A_SO (1<<ATTR_SO)
- X#define A_BL (1<<ATTR_BL)
- X#define A_MAX (1<<(NATTR-1))
- X
- X/* Types of movement used by GotoPos() */
- enum move_t {
- X M_NONE,
- X M_UP,
- X M_CUP,
- X M_DO,
- X M_CDO,
- X M_LE,
- X M_CLE,
- X M_RI,
- X M_CRI,
- X M_RW,
- X M_CR, /* CR and rewrite */
- X};
- X
- X#define EXPENSIVE 1000
- X
- X#define G0 0
- X#define G1 1
- X#define G2 2
- X#define G3 3
- X
- X#define ASCII 0
- X
- X#ifdef TOPSTAT
- X#define STATLINE (0)
- X#else
- X#define STATLINE (screenheight-1)
- X#endif
- X
- END_OF_FILE
- if test 2278 -ne `wc -c <'ansi.h'`; then
- echo shar: \"'ansi.h'\" unpacked with wrong size!
- fi
- # end of 'ansi.h'
- fi
- if test ! -d 'config' ; then
- echo shar: Creating directory \"'config'\"
- mkdir 'config'
- fi
- if test -f 'config/Makefile.bsd' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/Makefile.bsd'\"
- else
- echo shar: Extracting \"'config/Makefile.bsd'\" \(1364 characters\)
- sed "s/^X//" >'config/Makefile.bsd' <<'END_OF_FILE'
- X#
- X# Makefile for screen
- X#
- X# See config.h for configuration options.
- X#
- X
- X# If you choose to compile with the tried and true:
- CC= cc
- X#CFLAGS= -O
- X#CFLAGS= -g -DTMPTEST -DDEBUG
- CFLAGS= -g
- LDFLAGS=
- X
- X# If you're using GNU C, be sure to use the -traditional flag:
- X#CC= gcc
- X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
- X#CFLAGS= -traditional -O
- X#CFLAGS= -g -traditional -DTMPTEST
- X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
- X#LDFLAGS= -s
- X
- X#LIBS= nmalloc.o -ltermcap
- LIBS= -ltermcap
- X
- CFILES= screen.c ansi.c help.c fileio.c mark.c window.c socket.c
- OFILES= screen.o ansi.o help.o fileio.o mark.o window.o socket.o
- X
- screen: $(OFILES)
- X $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
- X
- screen.o: screen.c screen.h config.h patchlevel.h extern.h
- X $(CC) $(CFLAGS) -c screen.c
- X
- help.o: help.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c help.c
- X
- fileio.o: fileio.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c fileio.c
- X
- ansi.o: ansi.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c ansi.c
- X
- mark.o: mark.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c mark.c
- X
- window.o: window.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c window.c
- X
- socket.o: socket.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c socket.c
- X
- clean:
- X rm -f $(OFILES) screen
- X
- lint:
- X lint -I. $(CFILES)
- X
- saber:
- X #load $(CFLAGS) screen.c ansi.c $(LIBS)
- END_OF_FILE
- if test 1364 -ne `wc -c <'config/Makefile.bsd'`; then
- echo shar: \"'config/Makefile.bsd'\" unpacked with wrong size!
- fi
- # end of 'config/Makefile.bsd'
- fi
- if test -f 'config/Makefile.gould_np1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/Makefile.gould_np1'\"
- else
- echo shar: Extracting \"'config/Makefile.gould_np1'\" \(1459 characters\)
- sed "s/^X//" >'config/Makefile.gould_np1' <<'END_OF_FILE'
- X#
- X# Makefile for screen
- X#
- X# See config.h for configuration options.
- X#
- X
- X# If you choose to compile with the tried and true:
- CC= cc
- X#CFLAGS= -O
- X#CFLAGS= -g -DTMPTEST -DDEBUG -DNEEDSETENV
- CFLAGS= -g -DNEEDSETENV
- LDFLAGS=
- X
- X# If you're using GNU C, be sure to use the -traditional flag:
- X#CC= gcc
- X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
- X#CFLAGS= -traditional -O
- X#CFLAGS= -g -traditional -DTMPTEST
- X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
- X#LDFLAGS= -s
- X
- X#LIBS= nmalloc.o -ltermcap
- LIBS= -ltermcap
- X
- CFILES= screen.c ansi.c help.c fileio.c mark.c window.c socket.c putenv.c
- OFILES= screen.o ansi.o help.o fileio.o mark.o window.o socket.o putenv.o
- X
- screen: $(OFILES)
- X $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
- X
- screen.o: screen.c screen.h config.h patchlevel.h extern.h
- X $(CC) $(CFLAGS) -c screen.c
- X
- help.o: help.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c help.c
- X
- fileio.o: fileio.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c fileio.c
- X
- ansi.o: ansi.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c ansi.c
- X
- mark.o: mark.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c mark.c
- X
- window.o: window.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c window.c
- X
- socket.o: socket.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c socket.c
- X
- putenv.o: putenv.c config.h
- X $(CC) $(CFLAGS) -c putenv.c
- X
- X
- clean:
- X rm -f $(OFILES) screen
- X
- lint:
- X lint -I. $(CFILES)
- X
- saber:
- X #load $(CFLAGS) screen.c ansi.c $(LIBS)
- END_OF_FILE
- if test 1459 -ne `wc -c <'config/Makefile.gould_np1'`; then
- echo shar: \"'config/Makefile.gould_np1'\" unpacked with wrong size!
- fi
- # end of 'config/Makefile.gould_np1'
- fi
- if test -f 'config/Makefile.mips' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/Makefile.mips'\"
- else
- echo shar: Extracting \"'config/Makefile.mips'\" \(1606 characters\)
- sed "s/^X//" >'config/Makefile.mips' <<'END_OF_FILE'
- X#
- X# Makefile for screen
- X#
- X# See config.h for configuration options.
- X#
- X
- X# If you choose to compile with the tried and true:
- CC= cc
- X#CFLAGS= -O
- X#CFLAGS= -g -DTMPTEST -DDEBUG
- X# Compiled on MIPS RC6280 running RiscOS 4.52, compiler doesn't define us
- X# any specific id so we define it here, maybe it should be defined in config.h
- CFLAGS= -g -systype bsd43 -DMIPS
- LDFLAGS=
- X
- X# If you're using GNU C, be sure to use the -traditional flag:
- X#CC= gcc
- X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
- X#CFLAGS= -traditional -O
- X#CFLAGS= -g -traditional -DTMPTEST
- X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
- X#LDFLAGS= -s
- X
- X#LIBS= nmalloc.o -ltermcap
- X#LIBS= -ltermcap
- X# mld needed on MIPS to have nlist for loadaverage
- LIBS= -ltermcap -lmld
- X
- CFILES= screen.c ansi.c help.c fileio.c mark.c window.c socket.c
- OFILES= screen.o ansi.o help.o fileio.o mark.o window.o socket.o
- X
- screen: $(OFILES)
- X $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
- X
- screen.o: screen.c screen.h config.h patchlevel.h extern.h
- X $(CC) $(CFLAGS) -c screen.c
- X
- help.o: help.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c help.c
- X
- fileio.o: fileio.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c fileio.c
- X
- ansi.o: ansi.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c ansi.c
- X
- mark.o: mark.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c mark.c
- X
- window.o: window.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c window.c
- X
- socket.o: socket.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c socket.c
- X
- clean:
- X rm -f $(OFILES) screen
- X
- lint:
- X lint -I. $(CFILES)
- X
- saber:
- X #load $(CFLAGS) screen.c ansi.c $(LIBS)
- END_OF_FILE
- if test 1606 -ne `wc -c <'config/Makefile.mips'`; then
- echo shar: \"'config/Makefile.mips'\" unpacked with wrong size!
- fi
- # end of 'config/Makefile.mips'
- fi
- if test -f 'config/Makefile.putenv' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/Makefile.putenv'\"
- else
- echo shar: Extracting \"'config/Makefile.putenv'\" \(1525 characters\)
- sed "s/^X//" >'config/Makefile.putenv' <<'END_OF_FILE'
- X#
- X# Makefile for screen
- X#
- X# See config.h for configuration options.
- X#
- X
- X# If you choose to compile with the tried and true:
- CC= cc
- X#CFLAGS= -O -DNEEDSETENV
- X#CFLAGS= -g -DTMPTEST -DDEBUG -DNEEDSETENV
- CFLAGS= -g -DNEEDSETENV
- LDFLAGS=
- X
- X# If you're using GNU C, be sure to use the -traditional flag:
- X#CC= gcc
- X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions -DNEEDSETENV #-Wall
- X#CFLAGS= -traditional -O -DNEEDSETENV
- X#CFLAGS= -g -traditional -DTMPTEST -DNEEDSETENV
- X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG -DNEEDSETENV
- X#LDFLAGS= -s
- X
- X#LIBS= nmalloc.o -ltermcap
- LIBS= -ltermcap
- X
- CFILES= screen.c ansi.c help.c fileio.c mark.c window.c socket.c putenv.c
- OFILES= screen.o ansi.o help.o fileio.o mark.o window.o socket.o putenv.o
- X
- screen: $(OFILES)
- X $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
- X
- screen.o: screen.c screen.h config.h patchlevel.h extern.h
- X $(CC) $(CFLAGS) -c screen.c
- X
- help.o: help.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c help.c
- X
- fileio.o: fileio.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c fileio.c
- X
- ansi.o: ansi.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c ansi.c
- X
- mark.o: mark.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c mark.c
- X
- window.o: window.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c window.c
- X
- socket.o: socket.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c socket.c
- X
- putenv.o: putenv.c config.h
- X $(CC) $(CFLAGS) -c putenv.c
- X
- X
- clean:
- X rm -f $(OFILES) screen
- X
- lint:
- X lint -I. $(CFILES)
- X
- saber:
- X #load $(CFLAGS) screen.c ansi.c $(LIBS)
- END_OF_FILE
- if test 1525 -ne `wc -c <'config/Makefile.putenv'`; then
- echo shar: \"'config/Makefile.putenv'\" unpacked with wrong size!
- fi
- # end of 'config/Makefile.putenv'
- fi
- if test -f 'config/Makefile.sco32' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/Makefile.sco32'\"
- else
- echo shar: Extracting \"'config/Makefile.sco32'\" \(1359 characters\)
- sed "s/^X//" >'config/Makefile.sco32' <<'END_OF_FILE'
- X#
- X# Makefile for screen
- X#
- X# See config.h for configuration options.
- X#
- X
- X# If you choose to compile with the tried and true:
- X#CC= cc
- X#CFLAGS= -O
- X#CFLAGS= -g -DTMPTEST -DDEBUG
- X#CFLAGS= -g
- X#LDFLAGS=
- X
- X# If you're using GNU C, be sure to use the -traditional flag:
- CC= gcc
- CFLAGS = -traditional -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
- X#CFLAGS= -g -traditional -DTMPTEST
- X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
- LDFLAGS= -s
- X
- X#LIBS= nmalloc.o -ltermcap
- LIBS= -lcrypt_d -ltinfo
- X
- CFILES= screen.c ansi.c help.c fileio.c mark.c window.c socket.c
- OFILES= screen.o ansi.o help.o fileio.o mark.o window.o socket.o
- X
- screen: $(OFILES)
- X $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
- X
- screen.o: screen.c screen.h config.h patchlevel.h extern.h
- X $(CC) $(CFLAGS) -c screen.c
- X
- help.o: help.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c help.c
- X
- fileio.o: fileio.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c fileio.c
- X
- ansi.o: ansi.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c ansi.c
- X
- mark.o: mark.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c mark.c
- X
- window.o: window.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c window.c
- X
- socket.o: socket.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c socket.c
- X
- clean:
- X rm -f $(OFILES) screen
- X
- lint:
- X lint -I. $(CFILES)
- X
- saber:
- X #load $(CFLAGS) screen.c ansi.c $(LIBS)
- END_OF_FILE
- if test 1359 -ne `wc -c <'config/Makefile.sco32'`; then
- echo shar: \"'config/Makefile.sco32'\" unpacked with wrong size!
- fi
- # end of 'config/Makefile.sco32'
- fi
- if test -f 'config/Makefile.sgi' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/Makefile.sgi'\"
- else
- echo shar: Extracting \"'config/Makefile.sgi'\" \(1703 characters\)
- sed "s/^X//" >'config/Makefile.sgi' <<'END_OF_FILE'
- X#
- X# Makefile for screen
- X#
- X# See config.h for configuration options.
- X#
- X
- X# If you choose to compile with the tried and true:
- CC= cc
- X# Compiled on SGI MIPS Iris4D/20 running Irix 3.3.2, compiler doesn't define us
- X# any specific id so we define it here, maybe it should be defined in config.h
- X#CFLAGS= -O -DMIPS -DSGI -I/usr/include/bsd
- X#CFLAGS= -g -DTMPTEST -DDEBUG -DMIPS -DSGI -I/usr/include/bsd
- CFLAGS= -g -DMIPS -DSGI -I/usr/include/bsd
- LDFLAGS=
- X
- X# If you're using GNU C, be sure to use the -traditional flag:
- X#CC= gcc
- X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
- X#CFLAGS= -traditional -O
- X#CFLAGS= -g -traditional -DTMPTEST
- X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
- X#LDFLAGS= -s
- X
- X#LIBS= nmalloc.o -ltermcap
- X#LIBS= -ltermcap
- X# mld needed on MIPS to have nlist for loadaverage
- LIBS= -ltermcap -lsun -lbsd -lmld -lc_s
- X
- CFILES= screen.c ansi.c help.c fileio.c mark.c window.c socket.c
- OFILES= screen.o ansi.o help.o fileio.o mark.o window.o socket.o
- X
- screen: $(OFILES)
- X $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
- X
- screen.o: screen.c screen.h config.h patchlevel.h extern.h
- X $(CC) $(CFLAGS) -c screen.c
- X
- help.o: help.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c help.c
- X
- fileio.o: fileio.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c fileio.c
- X
- ansi.o: ansi.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c ansi.c
- X
- mark.o: mark.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c mark.c
- X
- window.o: window.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c window.c
- X
- socket.o: socket.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c socket.c
- X
- clean:
- X rm -f $(OFILES) screen
- X
- lint:
- X lint -I. $(CFILES)
- X
- saber:
- X #load $(CFLAGS) screen.c ansi.c $(LIBS)
- END_OF_FILE
- if test 1703 -ne `wc -c <'config/Makefile.sgi'`; then
- echo shar: \"'config/Makefile.sgi'\" unpacked with wrong size!
- fi
- # end of 'config/Makefile.sgi'
- fi
- if test -f 'config/Makefile.svr4' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/Makefile.svr4'\"
- else
- echo shar: Extracting \"'config/Makefile.svr4'\" \(1494 characters\)
- sed "s/^X//" >'config/Makefile.svr4' <<'END_OF_FILE'
- X#
- X# Makefile for screen
- X#
- X# See config.h for configuration options.
- X#
- X
- X# If you choose to compile with the tried and true:
- CC= cc
- CFLAGS= -O -DNEEDSETENV
- X#CFLAGS= -g -DTMPTEST -DDEBUG
- X#CFLAGS= -g
- LDFLAGS=
- X
- X# If you're using GNU C, be sure to use the -traditional flag:
- X#CC= gcc
- X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
- X#CFLAGS= -traditional -O
- X#CFLAGS= -g -traditional -DTMPTEST
- X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
- X#LDFLAGS= -s
- X
- X#LIBS= nmalloc.o -ltermcap
- X#LIBS= -ltermcap
- X
- X# Use the following line on SVR4
- LIBS= -ltermlib -lelf
- X
- CFILES= screen.c ansi.c help.c fileio.c mark.c window.c socket.c putenv.c
- OFILES= screen.o ansi.o help.o fileio.o mark.o window.o socket.o putenv.o
- X
- screen: $(OFILES)
- X $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
- X
- screen.o: screen.c screen.h config.h patchlevel.h extern.h
- X $(CC) $(CFLAGS) -c screen.c
- X
- help.o: help.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c help.c
- X
- fileio.o: fileio.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c fileio.c
- X
- ansi.o: ansi.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c ansi.c
- X
- mark.o: mark.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c mark.c
- X
- window.o: window.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c window.c
- X
- socket.o: socket.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c socket.c
- X
- putenv.o: putenv.c
- X $(CC) $(CFLAGS) -c putenv.c
- X
- clean:
- X rm -f $(OFILES) screen
- X
- lint:
- X lint -I. $(CFILES)
- X
- saber:
- X #load $(CFLAGS) screen.c ansi.c $(LIBS)
- END_OF_FILE
- if test 1494 -ne `wc -c <'config/Makefile.svr4'`; then
- echo shar: \"'config/Makefile.svr4'\" unpacked with wrong size!
- fi
- # end of 'config/Makefile.svr4'
- fi
- if test -f 'config/Makefile.xenix' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/Makefile.xenix'\"
- else
- echo shar: Extracting \"'config/Makefile.xenix'\" \(1768 characters\)
- sed "s/^X//" >'config/Makefile.xenix' <<'END_OF_FILE'
- X#
- X# Makefile for screen under SCO XENIX 2.3.[01]
- X#
- X# See config.h for configuration options.
- X#
- X# Ronald Khoo <ronald@robobar.co.uk>:
- X# The -l2.3 load library is needed for compiling with the SCO UNIX
- X# XENIX cross development libraries. You will probably have to remove
- X# it for use with SCO XENIX 2.3.[01] development systems. If you have a 2.2
- X# development system, you will need select.o from Keith Gabryelski's news
- X# posting of a couple of years back -- I doubt that any of you are in
- X# that situation.
- X
- X# If you choose to compile with the tried and true:
- X#CC= cc
- X#CFLAGS= -O
- X#CFLAGS= -g -DTMPTEST -DDEBUG
- X#CFLAGS= -g
- LDFLAGS=
- X
- X# If you're using GNU C, be sure to use the -traditional flag:
- CC= gcc
- X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
- CFLAGS= -traditional -O -DM_TERMCAP -DNO_PROTOTYPE
- X#LDFLAGS= -s
- X
- X#LIBS= nmalloc.o -ltermcap
- LIBS= -ltermcap -lcrypt -ldir -l2.3 -lx
- X
- CFILES= screen.c ansi.c help.c fileio.c mark.c window.c socket.c
- OFILES= screen.o ansi.o help.o fileio.o mark.o window.o socket.o
- X
- screen: $(OFILES)
- X $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
- X
- screen.o: screen.c screen.h config.h patchlevel.h extern.h
- X $(CC) $(CFLAGS) -c screen.c
- X
- help.o: help.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c help.c
- X
- fileio.o: fileio.c screen.h config.h extern.h
- X $(CC) $(CFLAGS) -c fileio.c
- X
- ansi.o: ansi.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c ansi.c
- X
- mark.o: mark.c screen.h config.h ansi.h extern.h
- X $(CC) $(CFLAGS) -c mark.c
- X
- window.o: window.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c window.c
- X
- socket.o: socket.c config.h screen.h extern.h
- X $(CC) $(CFLAGS) -c socket.c
- X
- clean:
- X rm -f $(OFILES) screen
- X
- lint:
- X lint -I. $(CFILES)
- X
- saber:
- X #load $(CFLAGS) screen.c ansi.c $(LIBS)
- END_OF_FILE
- if test 1768 -ne `wc -c <'config/Makefile.xenix'`; then
- echo shar: \"'config/Makefile.xenix'\" unpacked with wrong size!
- fi
- # end of 'config/Makefile.xenix'
- fi
- if test -f 'config/config.hpux' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/config.hpux'\"
- else
- echo shar: Extracting \"'config/config.hpux'\" \(8091 characters\)
- sed "s/^X//" >'config/config.hpux' <<'END_OF_FILE'
- X/* Copyright (c) 1991
- X * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
- X * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
- X * Copyright (c) 1987 Oliver Laumann
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 1, or (at your option)
- X * any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program (see the file COPYING); if not, write to the
- X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * Noteworthy contributors to screen's design and implementation:
- X * Wayne Davison (davison@borland.com)
- X * Patrick Wolfe (pat@kai.com, kailand!pat)
- X * Bart Schaefer (schaefer@cse.ogi.edu)
- X * Nathan Glasser (nathan@brokaw.lcs.mit.edu)
- X * Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
- X * Howard Chu (hyc@hanauma.jpl.nasa.gov)
- X * Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
- X * Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
- X * Marc Boucher (marc@CAM.ORG)
- X *
- X ****************************************************************
- X * $Id: config.hpux,v 1.18 91/10/06 11:58:43 jnweiger Exp $ FAU
- X */
- X
- X
- X/*
- X * Beginning of User Configuration Section
- X *
- X * First off, you should decide if you intend to install screen set-uid to
- X * root. This isn't necessary to use screen, but it allows the pseudo-ttys
- X * to be set to their proper owner (for security purposes), /etc/utmp to be
- X * updated, and /dev/kmem to be accessed to read the load average values.
- X *
- X * An alternative to installing screen set-uid root is to install it set-gid
- X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
- X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
- X * custom group to give you both. The final alternative is to omit /etc/utmp
- X * updating and the /dev/kmem reading (see the following defines) and simply
- X * run screen as a regular program -- its major functions will be unaffected.
- X */
- X
- X
- X/*
- X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
- X */
- X#define POSIX
- X
- X/*
- X * Define BSDJOBS if you have BSD-style job control (both process
- X * groups and a tty that deals correctly with them).
- X */
- X#define BSDJOBS
- X
- X/*
- X * Define TERMIO if you have struct termio instead of struct sgttyb.
- X * This is usually the case for SVID systems, where BSD uses sgttyb.
- X * POSIX systems should define this anyway, even though they use
- X * struct termios.
- X */
- X#define TERMIO
- X
- X/*
- X * Define TERMINFO if your machine emulates the termcap routines
- X * with the terminfo database.
- X * Thus the .screenrc file is parsed for
- X * the command 'terminfo' and not 'termcap'.
- X */
- X#define TERMINFO
- X
- X/*
- X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
- X */
- X#define SYSV
- X
- X/*
- X * Define SIGVOID if your signal handlers return void. On older
- X * systems, signal returns int, but on newer ones, it returns void.
- X */
- X#define SIGVOID
- X
- X/*
- X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
- X */
- X#define DIRENT
- X
- X/*
- X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
- X */
- X#define SUIDROOT
- X
- X/*
- X * If screen is installed with permissions to update /etc/utmp (such as if
- X * it is installed set-uid root), define UTMPOK. Set LOGINDEFAULT to one (1)
- X * if you want entries added to /etc/utmp by default, else set it to zero (0).
- X */
- X#define UTMPOK
- X#define LOGINDEFAULT 1
- X
- X/*
- X * If your system has getutent(), pututline(), etc. to write to the
- X * utmp file, define GETUTENT.
- X */
- X#define GETUTENT
- X
- X/*
- X * Define UTHOST if the utmp file has a host field.
- X */
- X#define UTHOST
- X
- X/*
- X * If UTMPOK is defined and your system (incorrectly) counts logins by
- X * counting non-null entries in /etc/utmp (instead of counting non-null
- X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
- X * to have screen put an upper-limit on the number of entries to write
- X * into /etc/utmp. This helps to keep you from exceeding a limited-user
- X * license.
- X */
- X#undef USRLIMIT
- X
- X/*
- X * If screen is NOT installed set-uid root, screen can provide tty security
- X * by exclusively locking the ptys. While this keeps other users from
- X * opening your ptys, it also keeps your own subprocesses from being able
- X * to open /dev/tty. Define LOCKPTY to add this exclusive locking.
- X */
- X#undef LOCKPTY
- X
- X/*
- X * If your system does not have the calls setre(s)uid() and setre(s)gid(),
- X * define NOREUID to force screen to use a forked process to safely create
- X * output files without retaining any special privileges.
- X * (Output logging will be disabled, however.)
- X */
- X#undef NOREUID
- X
- X/*
- X * If you want the "time" command to display the current load average
- X * you must install screen with the needed privileges to read /dev/kmem
- X * and have a load average format that screen understands. We handle the
- X * following formats: 3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
- X */
- X#define LOADAV_3DOUBLES
- X#undef LOADAV_3LONGS
- X#undef LOADAV_4LONGS
- X
- X/*
- X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
- X * getttyent(3) library functions, define GETTTYENT.
- X */
- X#undef GETTTYENT
- X
- X/*
- X * If your version of NFS supports named sockets and you install screen
- X * suid root, you may need to define NFS_HACK for screen to be able to
- X * open the sockets.
- X */
- X#undef NFS_HACK
- X
- X/*
- X * By default screen will create a directory named ".screen" in the user's
- X * HOME directory to contain the named sockets. If this causes you problems
- X * (e.g. some user's HOME directories are NFS-mounted and don't support
- X * named sockets) you can have screen create the socket directories in a
- X * common subdirectory, such as /tmp or /usr/tmp. It makes things a little
- X * more secure if you choose a directory where the "sticky" bit is on, but
- X * this isn't required. Screen will name the subdirectories "S-$USER"
- X * (e.g /tmp/S-davison).
- X * Do not define TMPTEST unless it's for debugging purpose.
- X * If you want to have your socket directory in "/tmp/screens" then
- X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
- X */
- X#define LOCALSOCKDIR
- X
- X#ifdef LOCALSOCKDIR
- X# ifndef TMPTEST
- X# define SOCKDIR "/local/screens"
- X# else
- X# define SOCKDIR "/tmp/screens"
- X# endif
- X#endif
- X
- X/*
- X * Define USEBCOPY if the bcopy() from your system's C library supports the
- X * overlapping of source and destination blocks. When undefined, screen
- X * uses its own (probably slower) version of bcopy().
- X */
- X#undef USEBCOPY
- X
- X/*
- X * If you'd rather see the status line on the first line of your
- X * terminal rather than the last, define TOPSTAT.
- X */
- X#undef TOPSTAT
- X
- X/*
- X * If your system has vsprintf() and requires the use of the macros in
- X * "varargs.h" to use functions with variable arguments,
- X * define USEVARARGS.
- X */
- X#undef USEVARARGS
- X
- X/*
- X * Define this if your system supports named pipes.
- X */
- X#undef NAMEDPIPE
- X
- X/*
- X * here come the erlangen extensions to screen:
- X * define LOCK if you want to use a lock program for a screenlock.
- X * define PASSWORD for secure reattach of your screen.
- X * define COPY_PASTE to use the famous hacker's treasure zoo.
- X * define POW_DETACH to have a detach_and_logout key.
- X * define REMOTE_DETACH (-d option) to move screen between terminals.
- X * (jw)
- X */
- X#define LOCK
- X#define PASSWORD
- X#define COPY_PASTE
- X#define REMOTE_DETACH
- X#define POW_DETACH
- X
- X/*
- X * As error messages are mostly meaningless to the user, we
- X * try to throw out phrases that are somewhat more familiar
- X * to ...well, at least familiar to us NetHack players.
- X */
- X#define NETHACK
- X
- X/*
- X * and another sneaky feature: screen sources two startup files.
- X * first a global file with a path specified here, second
- X * your local $HOME/.screenrc
- X * Don't define this, if you don't want it.
- X */
- X#define ETCSCREENRC "/local/etc/screenrc"
- X
- X/*
- X * End of User Configuration Section
- X */
- END_OF_FILE
- if test 8091 -ne `wc -c <'config/config.hpux'`; then
- echo shar: \"'config/config.hpux'\" unpacked with wrong size!
- fi
- # end of 'config/config.hpux'
- fi
- if test -f 'config/config.mot88' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/config.mot88'\"
- else
- echo shar: Extracting \"'config/config.mot88'\" \(8081 characters\)
- sed "s/^X//" >'config/config.mot88' <<'END_OF_FILE'
- X/* Copyright (c) 1991
- X * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
- X * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
- X * Copyright (c) 1987 Oliver Laumann
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 1, or (at your option)
- X * any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program (see the file COPYING); if not, write to the
- X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * Noteworthy contributors to screen's design and implementation:
- X * Wayne Davison (davison@borland.com)
- X * Patrick Wolfe (pat@kai.com, kailand!pat)
- X * Bart Schaefer (schaefer@cse.ogi.edu)
- X * Nathan Glasser (nathan@brokaw.lcs.mit.edu)
- X * Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
- X * Howard Chu (hyc@hanauma.jpl.nasa.gov)
- X * Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
- X * Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
- X * Marc Boucher (marc@CAM.ORG)
- X *
- X ****************************************************************
- X * $Id: config.mot88,v 1.8 91/10/06 11:58:54 jnweiger Exp $ FAU
- X */
- X
- X
- X/*
- X * Beginning of User Configuration Section
- X *
- X * First off, you should decide if you intend to install screen set-uid to
- X * root. This isn't necessary to use screen, but it allows the pseudo-ttys
- X * to be set to their proper owner (for security purposes), /etc/utmp to be
- X * updated, and /dev/kmem to be accessed to read the load average values.
- X *
- X * An alternative to installing screen set-uid root is to install it set-gid
- X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
- X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
- X * custom group to give you both. The final alternative is to omit /etc/utmp
- X * updating and the /dev/kmem reading (see the following defines) and simply
- X * run screen as a regular program -- its major functions will be unaffected.
- X */
- X
- X
- X/*
- X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
- X */
- X#define POSIX
- X
- X/*
- X * Define BSDJOBS if you have BSD-style job control (both process
- X * groups and a tty that deals correctly with them).
- X */
- X#define BSDJOBS
- X
- X/*
- X * Define TERMIO if you have struct termio instead of struct sgttyb.
- X * This is usually the case for SVID systems, where BSD uses sgttyb.
- X * POSIX systems should define this anyway, even though they use
- X * struct termios.
- X */
- X#define TERMIO
- X
- X/*
- X * Define TERMINFO if your machine emulates the termcap routines
- X * with the terminfo database.
- X * Thus the .screenrc file is parsed for
- X * the command 'terminfo' and not 'termcap'.
- X */
- X#define TERMINFO
- X
- X/*
- X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
- X */
- X#define SYSV
- X
- X/*
- X * Define SIGVOID if your signal handlers return void. On older
- X * systems, signal returns int, but on newer ones, it returns void.
- X */
- X#define SIGVOID
- X
- X/*
- X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
- X */
- X#define DIRENT
- X
- X/*
- X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
- X */
- X#define SUIDROOT
- X
- X/*
- X * If screen is installed with permissions to update /etc/utmp (such as if
- X * it is installed set-uid root), define UTMPOK. Set LOGINDEFAULT to one (1)
- X * if you want entries added to /etc/utmp by default, else set it to zero (0).
- X */
- X#undef UTMPOK
- X#define LOGINDEFAULT 1
- X
- X/*
- X * If your system has getutent(), pututline(), etc. to write to the
- X * utmp file, define GETUTENT.
- X */
- X#define GETUTENT
- X
- X/*
- X * Define UTHOST if the utmp file has a host field.
- X */
- X#undef UTHOST
- X
- X/*
- X * If UTMPOK is defined and your system (incorrectly) counts logins by
- X * counting non-null entries in /etc/utmp (instead of counting non-null
- X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
- X * to have screen put an upper-limit on the number of entries to write
- X * into /etc/utmp. This helps to keep you from exceeding a limited-user
- X * license.
- X */
- X#undef USRLIMIT
- X
- X/*
- X * If screen is NOT installed set-uid root, screen can provide tty security
- X * by exclusively locking the ptys. While this keeps other users from
- X * opening your ptys, it also keeps your own subprocesses from being able
- X * to open /dev/tty. Define LOCKPTY to add this exclusive locking.
- X */
- X#undef LOCKPTY
- X
- X/*
- X * If your system does not have the calls setreuid() and setregid(), define
- X * NOREUID to force screen to use a forked process to safely create output
- X * files without retaining any special privileges. (Output logging will be
- X * disabled, however.)
- X */
- X#undef NOREUID
- X
- X/*
- X * If you want the "time" command to display the current load average
- X * you must install screen with the needed privileges to read /dev/kmem
- X * and have a load average format that screen understands. We handle the
- X * following formats: 3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
- X */
- X#define LOADAV_3DOUBLES
- X#undef LOADAV_3LONGS
- X#undef LOADAV_4LONGS
- X
- X/*
- X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
- X * getttyent(3) library functions, define GETTTYENT.
- X */
- X#undef GETTTYENT
- X
- X/*
- X * If your version of NFS supports named sockets and you install screen
- X * suid root, you may need to define NFS_HACK for screen to be able to
- X * open the sockets.
- X */
- X#undef NFS_HACK
- X
- X/*
- X * By default screen will create a directory named ".screen" in the user's
- X * HOME directory to contain the named sockets. If this causes you problems
- X * (e.g. some user's HOME directories are NFS-mounted and don't support
- X * named sockets) you can have screen create the socket directories in a
- X * common subdirectory, such as /tmp or /usr/tmp. It makes things a little
- X * more secure if you choose a directory where the "sticky" bit is on, but
- X * this isn't required. Screen will name the subdirectories "S-$USER"
- X * (e.g /tmp/S-davison).
- X * Do not define TMPTEST unless it's for debugging purpose.
- X * If you want to have your socket directory in "/tmp/screens" then
- X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
- X */
- X#define LOCALSOCKDIR
- X
- X#ifdef LOCALSOCKDIR
- X# ifndef TMPTEST
- X# define SOCKDIR "/local/screens"
- X# else
- X# define SOCKDIR "/tmp/screens"
- X# endif
- X#endif
- X
- X/*
- X * Define USEBCOPY if the bcopy() from your system's C library supports the
- X * overlapping of source and destination blocks. When undefined, screen
- X * uses its own (probably slower) version of bcopy().
- X */
- X#undef USEBCOPY
- X
- X/*
- X * If you'd rather see the status line on the first line of your
- X * terminal rather than the last, define TOPSTAT.
- X */
- X#undef TOPSTAT
- X
- X/*
- X * If your system has vsprintf() and requires the use of the macros in
- X * "varargs.h" to use functions with variable arguments,
- X * define USEVARARGS.
- X */
- X#undef USEVARARGS
- X
- X/*
- X * Define this if your system supports named pipes.
- X */
- X#undef NAMEDPIPE
- X
- X/*
- X * here come the erlangen extensions to screen:
- X * define LOCK if you want to use a lock program for a screenlock.
- X * define PASSWORD for secure reattach of your screen.
- X * define COPY_PASTE to use the famous hacker's treasure zoo.
- X * define POW_DETACH to have a detach_and_logout key.
- X * define REMOTE_DETACH (-d option) to move screen between terminals.
- X * (jw)
- X */
- X#define LOCK
- X#define PASSWORD
- X#define COPY_PASTE
- X#define REMOTE_DETACH
- X#define POW_DETACH
- X
- X/*
- X * As error messages are mostly meaningless to the user, we
- X * try to throw out phrases that are somewhat more familiar
- X * to ...well, at least familiar to us NetHack players.
- X */
- X#undef NETHACK
- X
- X/*
- X * and another sneaky feature: screen sources two startup files.
- X * first a global file with a path specified here, second
- X * your local $HOME/.screenrc
- X * Don't define this, if you don't want it.
- X */
- X#define ETCSCREENRC "/local/etc/screenrc"
- X
- X/*
- X * End of User Configuration Section
- X */
- END_OF_FILE
- if test 8081 -ne `wc -c <'config/config.mot88'`; then
- echo shar: \"'config/config.mot88'\" unpacked with wrong size!
- fi
- # end of 'config/config.mot88'
- fi
- if test -f 'config/config.symmetry' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/config.symmetry'\"
- else
- echo shar: Extracting \"'config/config.symmetry'\" \(8080 characters\)
- sed "s/^X//" >'config/config.symmetry' <<'END_OF_FILE'
- X/* Copyright (c) 1991
- X * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
- X * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
- X * Copyright (c) 1987 Oliver Laumann
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 1, or (at your option)
- X * any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program (see the file COPYING); if not, write to the
- X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * Noteworthy contributors to screen's design and implementation:
- X * Wayne Davison (davison@borland.com)
- X * Patrick Wolfe (pat@kai.com, kailand!pat)
- X * Bart Schaefer (schaefer@cse.ogi.edu)
- X * Nathan Glasser (nathan@brokaw.lcs.mit.edu)
- X * Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
- X * Howard Chu (hyc@hanauma.jpl.nasa.gov)
- X * Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
- X * Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
- X * Marc Boucher (marc@CAM.ORG)
- X *
- X ****************************************************************
- X * $Id: config.symmetry,v 1.14 91/10/06 11:59:04 jnweiger Exp $ FAU
- X */
- X
- X
- X/*
- X * Beginning of User Configuration Section
- X *
- X * First off, you should decide if you intend to install screen set-uid to
- X * root. This isn't necessary to use screen, but it allows the pseudo-ttys
- X * to be set to their proper owner (for security purposes), /etc/utmp to be
- X * updated, and /dev/kmem to be accessed to read the load average values.
- X *
- X * An alternative to installing screen set-uid root is to install it set-gid
- X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
- X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
- X * custom group to give you both. The final alternative is to omit /etc/utmp
- X * updating and the /dev/kmem reading (see the following defines) and simply
- X * run screen as a regular program -- its major functions will be unaffected.
- X */
- X
- X
- X/*
- X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
- X */
- X#undef POSIX
- X
- X/*
- X * Define BSDJOBS if you have BSD-style job control (both process
- X * groups and a tty that deals correctly with them).
- X */
- X#define BSDJOBS
- X
- X/*
- X * Define TERMIO if you have struct termio instead of struct sgttyb.
- X * This is usually the case for SVID systems, where BSD uses sgttyb.
- X * POSIX systems should define this anyway, even though they use
- X * struct termios.
- X */
- X#undef TERMIO
- X
- X/*
- X * Define TERMINFO if your machine emulates the termcap routines
- X * with the terminfo database.
- X * Thus the .screenrc file is parsed for
- X * the command 'terminfo' and not 'termcap'.
- X */
- X#undef TERMINFO
- X
- X/*
- X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
- X */
- X#undef SYSV
- X
- X/*
- X * Define SIGVOID if your signal handlers return void. On older
- X * systems, signal returns int, but on newer ones, it returns void.
- X */
- X#undef SIGVOID
- X
- X/*
- X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
- X */
- X#undef DIRENT
- X
- X/*
- X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
- X */
- X#define SUIDROOT
- X
- X/*
- X * If screen is installed with permissions to update /etc/utmp (such as if
- X * it is installed set-uid root), define UTMPOK. Set LOGINDEFAULT to one (1)
- X * if you want entries added to /etc/utmp by default, else set it to zero (0).
- X */
- X#define UTMPOK
- X#define LOGINDEFAULT 1
- X
- X/*
- X * If your system has getutent(), pututline(), etc. to write to the
- X * utmp file, define GETUTENT.
- X */
- X#undef GETUTENT
- X
- X/*
- X * Define UTHOST if the utmp file has a host field.
- X */
- X#define UTHOST
- X
- X/*
- X * If UTMPOK is defined and your system (incorrectly) counts logins by
- X * counting non-null entries in /etc/utmp (instead of counting non-null
- X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
- X * to have screen put an upper-limit on the number of entries to write
- X * into /etc/utmp. This helps to keep you from exceeding a limited-user
- X * license.
- X */
- X#undef USRLIMIT
- X
- X/*
- X * If screen is NOT installed set-uid root, screen can provide tty security
- X * by exclusively locking the ptys. While this keeps other users from
- X * opening your ptys, it also keeps your own subprocesses from being able
- X * to open /dev/tty. Define LOCKPTY to add this exclusive locking.
- X */
- X#undef LOCKPTY
- X
- X/*
- X * If your system does not have the calls setreuid() and setregid(), define
- X * NOREUID to force screen to use a forked process to safely create output
- X * files without retaining any special privileges. (Output logging will be
- X * disabled, however.)
- X */
- X#undef NOREUID
- X
- X/*
- X * If you want the "time" command to display the current load average
- X * you must install screen with the needed privileges to read /dev/kmem
- X * and have a load average format that screen understands. We handle the
- X * following formats: 3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
- X */
- X#undef LOADAV_3DOUBLES
- X#define LOADAV_3LONGS
- X#undef LOADAV_4LONGS
- X
- X/*
- X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
- X * getttyent(3) library functions, define GETTTYENT.
- X */
- X#undef GETTTYENT
- X
- X/*
- X * If your version of NFS supports named sockets and you install screen
- X * suid root, you may need to define NFS_HACK for screen to be able to
- X * open the sockets.
- X */
- X#undef NFS_HACK
- X
- X/*
- X * By default screen will create a directory named ".screen" in the user's
- X * HOME directory to contain the named sockets. If this causes you problems
- X * (e.g. some user's HOME directories are NFS-mounted and don't support
- X * named sockets) you can have screen create the socket directories in a
- X * common subdirectory, such as /tmp or /usr/tmp. It makes things a little
- X * more secure if you choose a directory where the "sticky" bit is on, but
- X * this isn't required. Screen will name the subdirectories "S-$USER"
- X * (e.g /tmp/S-davison).
- X * Do not define TMPTEST unless it's for debugging purpose.
- X * If you want to have your socket directory in "/tmp/screens" then
- X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
- X */
- X#define LOCALSOCKDIR
- X
- X#ifdef LOCALSOCKDIR
- X# ifndef TMPTEST
- X# define SOCKDIR "/local/screens"
- X# else
- X# define SOCKDIR "/tmp/screens"
- X# endif
- X#endif
- X
- X/*
- X * Define USEBCOPY if the bcopy() from your system's C library supports the
- X * overlapping of source and destination blocks. When undefined, screen
- X * uses its own (probably slower) version of bcopy().
- X */
- X#undef USEBCOPY
- X
- X/*
- X * If you'd rather see the status line on the first line of your
- X * terminal rather than the last, define TOPSTAT.
- X */
- X#undef TOPSTAT
- X
- X/*
- X * If your system has vsprintf() and requires the use of the macros in
- X * "varargs.h" to use functions with variable arguments,
- X * define USEVARARGS.
- X */
- X#undef USEVARARGS
- X
- X/*
- X * Define this if your system supports named pipes.
- X */
- X#undef NAMEDPIPE
- X
- X/*
- X * here come the erlangen extensions to screen:
- X * define LOCK if you want to use a lock program for a screenlock.
- X * define PASSWORD for secure reattach of your screen.
- X * define COPY_PASTE to use the famous hacker's treasure zoo.
- X * define POW_DETACH to have a detach_and_logout key.
- X * define REMOTE_DETACH (-d option) to move screen between terminals.
- X * (jw)
- X */
- X#define LOCK
- X#define PASSWORD
- X#define COPY_PASTE
- X#define REMOTE_DETACH
- X#define POW_DETACH
- X
- X/*
- X * As error messages are mostly meaningless to the user, we
- X * try to throw out phrases that are somewhat more familiar
- X * to ...well, at least familiar to us NetHack players.
- X */
- X#define NETHACK
- X
- X/*
- X * and another sneaky feature: screen sources two startup files.
- X * first a global file with a path specified here, second
- X * your local $HOME/.screenrc
- X * Don't define this, if you don't want it.
- X */
- X#define ETCSCREENRC "/local/etc/screenrc"
- X
- X/*
- X * End of User Configuration Section
- X */
- END_OF_FILE
- if test 8080 -ne `wc -c <'config/config.symmetry'`; then
- echo shar: \"'config/config.symmetry'\" unpacked with wrong size!
- fi
- # end of 'config/config.symmetry'
- fi
- if test -f 'config/config.sysv68' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/config.sysv68'\"
- else
- echo shar: Extracting \"'config/config.sysv68'\" \(8082 characters\)
- sed "s/^X//" >'config/config.sysv68' <<'END_OF_FILE'
- X/* Copyright (c) 1991
- X * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
- X * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
- X * Copyright (c) 1987 Oliver Laumann
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 1, or (at your option)
- X * any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program (see the file COPYING); if not, write to the
- X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * Noteworthy contributors to screen's design and implementation:
- X * Wayne Davison (davison@borland.com)
- X * Patrick Wolfe (pat@kai.com, kailand!pat)
- X * Bart Schaefer (schaefer@cse.ogi.edu)
- X * Nathan Glasser (nathan@brokaw.lcs.mit.edu)
- X * Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
- X * Howard Chu (hyc@hanauma.jpl.nasa.gov)
- X * Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
- X * Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
- X * Marc Boucher (marc@CAM.ORG)
- X *
- X ****************************************************************
- X * $Id: config.sysv68,v 1.6 91/10/06 11:59:06 jnweiger Exp $ FAU
- X */
- X
- X
- X/*
- X * Beginning of User Configuration Section
- X *
- X * First off, you should decide if you intend to install screen set-uid to
- X * root. This isn't necessary to use screen, but it allows the pseudo-ttys
- X * to be set to their proper owner (for security purposes), /etc/utmp to be
- X * updated, and /dev/kmem to be accessed to read the load average values.
- X *
- X * An alternative to installing screen set-uid root is to install it set-gid
- X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
- X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
- X * custom group to give you both. The final alternative is to omit /etc/utmp
- X * updating and the /dev/kmem reading (see the following defines) and simply
- X * run screen as a regular program -- its major functions will be unaffected.
- X */
- X
- X
- X/*
- X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
- X */
- X#undef POSIX
- X
- X/*
- X * Define BSDJOBS if you have BSD-style job control (both process
- X * groups and a tty that deals correctly with them).
- X */
- X#undef BSDJOBS
- X
- X/*
- X * Define TERMIO if you have struct termio instead of struct sgttyb.
- X * This is usually the case for SVID systems, where BSD uses sgttyb.
- X * POSIX systems should define this anyway, even though they use
- X * struct termios.
- X */
- X#define TERMIO
- X
- X/*
- X * Define TERMINFO if your machine emulates the termcap routines
- X * with the terminfo database.
- X * Thus the .screenrc file is parsed for
- X * the command 'terminfo' and not 'termcap'.
- X */
- X#define TERMINFO
- X
- X/*
- X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
- X */
- X#define SYSV
- X
- X/*
- X * Define SIGVOID if your signal handlers return void. On older
- X * systems, signal returns int, but on newer ones, it returns void.
- X */
- X#define SIGVOID
- X
- X/*
- X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
- X */
- X#define DIRENT
- X
- X/*
- X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
- X */
- X#define SUIDROOT
- X
- X/*
- X * If screen is installed with permissions to update /etc/utmp (such as if
- X * it is installed set-uid root), define UTMPOK. Set LOGINDEFAULT to one (1)
- X * if you want entries added to /etc/utmp by default, else set it to zero (0).
- X */
- X#undef UTMPOK
- X#define LOGINDEFAULT 1
- X
- X/*
- X * If your system has getutent(), pututline(), etc. to write to the
- X * utmp file, define GETUTENT.
- X */
- X#define GETUTENT
- X
- X/*
- X * Define UTHOST if the utmp file has a host field.
- X */
- X#undef UTHOST
- X
- X/*
- X * If UTMPOK is defined and your system (incorrectly) counts logins by
- X * counting non-null entries in /etc/utmp (instead of counting non-null
- X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
- X * to have screen put an upper-limit on the number of entries to write
- X * into /etc/utmp. This helps to keep you from exceeding a limited-user
- X * license.
- X */
- X#undef USRLIMIT
- X
- X/*
- X * If screen is NOT installed set-uid root, screen can provide tty security
- X * by exclusively locking the ptys. While this keeps other users from
- X * opening your ptys, it also keeps your own subprocesses from being able
- X * to open /dev/tty. Define LOCKPTY to add this exclusive locking.
- X */
- X#undef LOCKPTY
- X
- X/*
- X * If your system does not have the calls setreuid() and setregid(), define
- X * NOREUID to force screen to use a forked process to safely create output
- X * files without retaining any special privileges. (Output logging will be
- X * disabled, however.)
- X */
- X#define NOREUID
- X
- X/*
- X * If you want the "time" command to display the current load average
- X * you must install screen with the needed privileges to read /dev/kmem
- X * and have a load average format that screen understands. We handle the
- X * following formats: 3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
- X */
- X#undef LOADAV_3DOUBLES
- X#undef LOADAV_3LONGS
- X#undef LOADAV_4LONGS
- X
- X/*
- X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
- X * getttyent(3) library functions, define GETTTYENT.
- X */
- X#undef GETTTYENT
- X
- X/*
- X * If your version of NFS supports named sockets and you install screen
- X * suid root, you may need to define NFS_HACK for screen to be able to
- X * open the sockets.
- X */
- X#undef NFS_HACK
- X
- X/*
- X * By default screen will create a directory named ".screen" in the user's
- X * HOME directory to contain the named sockets. If this causes you problems
- X * (e.g. some user's HOME directories are NFS-mounted and don't support
- X * named sockets) you can have screen create the socket directories in a
- X * common subdirectory, such as /tmp or /usr/tmp. It makes things a little
- X * more secure if you choose a directory where the "sticky" bit is on, but
- X * this isn't required. Screen will name the subdirectories "S-$USER"
- X * (e.g /tmp/S-davison).
- X * Do not define TMPTEST unless it's for debugging purpose.
- X * If you want to have your socket directory in "/tmp/screens" then
- X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
- X */
- X#define LOCALSOCKDIR
- X
- X#ifdef LOCALSOCKDIR
- X# ifndef TMPTEST
- X# define SOCKDIR "/local/screens"
- X# else
- X# define SOCKDIR "/tmp/screens"
- X# endif
- X#endif
- X
- X/*
- X * Define USEBCOPY if the bcopy() from your system's C library supports the
- X * overlapping of source and destination blocks. When undefined, screen
- X * uses its own (probably slower) version of bcopy().
- X */
- X#undef USEBCOPY
- X
- X/*
- X * If you'd rather see the status line on the first line of your
- X * terminal rather than the last, define TOPSTAT.
- X */
- X#undef TOPSTAT
- X
- X/*
- X * If your system has vsprintf() and requires the use of the macros in
- X * "varargs.h" to use functions with variable arguments,
- X * define USEVARARGS.
- X */
- X#undef USEVARARGS
- X
- X/*
- X * Define this if your system supports named pipes.
- X */
- X#define NAMEDPIPE
- X
- X/*
- X * here come the erlangen extensions to screen:
- X * define LOCK if you want to use a lock program for a screenlock.
- X * define PASSWORD for secure reattach of your screen.
- X * define COPY_PASTE to use the famous hacker's treasure zoo.
- X * define POW_DETACH to have a detach_and_logout key.
- X * define REMOTE_DETACH (-d option) to move screen between terminals.
- X * (jw)
- X */
- X#define LOCK
- X#define PASSWORD
- X#define COPY_PASTE
- X#define REMOTE_DETACH
- X#define POW_DETACH
- X
- X/*
- X * As error messages are mostly meaningless to the user, we
- X * try to throw out phrases that are somewhat more familiar
- X * to ...well, at least familiar to us NetHack players.
- X */
- X#undef NETHACK
- X
- X/*
- X * and another sneaky feature: screen sources two startup files.
- X * first a global file with a path specified here, second
- X * your local $HOME/.screenrc
- X * Don't define this, if you don't want it.
- X */
- X#define ETCSCREENRC "/local/etc/screenrc"
- X
- X/*
- X * End of User Configuration Section
- X */
- END_OF_FILE
- if test 8082 -ne `wc -c <'config/config.sysv68'`; then
- echo shar: \"'config/config.sysv68'\" unpacked with wrong size!
- fi
- # end of 'config/config.sysv68'
- fi
- if test -f 'config/config.xelos' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'config/config.xelos'\"
- else
- echo shar: Extracting \"'config/config.xelos'\" \(8079 characters\)
- sed "s/^X//" >'config/config.xelos' <<'END_OF_FILE'
- X/* Copyright (c) 1991
- X * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
- X * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
- X * Copyright (c) 1987 Oliver Laumann
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 1, or (at your option)
- X * any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program (see the file COPYING); if not, write to the
- X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * Noteworthy contributors to screen's design and implementation:
- X * Wayne Davison (davison@borland.com)
- X * Patrick Wolfe (pat@kai.com, kailand!pat)
- X * Bart Schaefer (schaefer@cse.ogi.edu)
- X * Nathan Glasser (nathan@brokaw.lcs.mit.edu)
- X * Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
- X * Howard Chu (hyc@hanauma.jpl.nasa.gov)
- X * Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
- X * Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
- X * Marc Boucher (marc@CAM.ORG)
- X *
- X ****************************************************************
- X * $Id: config.xelos,v 1.6 91/10/06 11:59:10 jnweiger Exp $ FAU
- X */
- X
- X
- X/*
- X * Beginning of User Configuration Section
- X *
- X * First off, you should decide if you intend to install screen set-uid to
- X * root. This isn't necessary to use screen, but it allows the pseudo-ttys
- X * to be set to their proper owner (for security purposes), /etc/utmp to be
- X * updated, and /dev/kmem to be accessed to read the load average values.
- X *
- X * An alternative to installing screen set-uid root is to install it set-gid
- X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
- X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
- X * custom group to give you both. The final alternative is to omit /etc/utmp
- X * updating and the /dev/kmem reading (see the following defines) and simply
- X * run screen as a regular program -- its major functions will be unaffected.
- X */
- X
- X
- X/*
- X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
- X */
- X#undef POSIX
- X
- X/*
- X * Define BSDJOBS if you have BSD-style job control (both process
- X * groups and a tty that deals correctly with them).
- X */
- X#define BSDJOBS
- X
- X/*
- X * Define TERMIO if you have struct termio instead of struct sgttyb.
- X * This is usually the case for SVID systems, where BSD uses sgttyb.
- X * POSIX systems should define this anyway, even though they use
- X * struct termios.
- X */
- X#undef TERMIO
- X
- X/*
- X * Define TERMINFO if your machine emulates the termcap routines
- X * with the terminfo database.
- X * Thus the .screenrc file is parsed for
- X * the command 'terminfo' and not 'termcap'.
- X */
- X#define TERMINFO
- X
- X/*
- X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
- X */
- X#undef SYSV
- X
- X/*
- X * Define SIGVOID if your signal handlers return void. On older
- X * systems, signal returns int, but on newer ones, it returns void.
- X */
- X#undef SIGVOID
- X
- X/*
- X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
- X */
- X#undef DIRENT
- X
- X/*
- X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
- X */
- X#define SUIDROOT
- X
- X/*
- X * If screen is installed with permissions to update /etc/utmp (such as if
- X * it is installed set-uid root), define UTMPOK. Set LOGINDEFAULT to one (1)
- X * if you want entries added to /etc/utmp by default, else set it to zero (0).
- X */
- X#define UTMPOK
- X#define LOGINDEFAULT 1
- X
- X/*
- X * If your system has getutent(), pututline(), etc. to write to the
- X * utmp file, define GETUTENT.
- X */
- X#define GETUTENT
- X
- X/*
- X * Define UTHOST if the utmp file has a host field.
- X */
- X#define UTHOST
- X
- X/*
- X * If UTMPOK is defined and your system (incorrectly) counts logins by
- X * counting non-null entries in /etc/utmp (instead of counting non-null
- X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
- X * to have screen put an upper-limit on the number of entries to write
- X * into /etc/utmp. This helps to keep you from exceeding a limited-user
- X * license.
- X */
- X#undef USRLIMIT
- X
- X/*
- X * If screen is NOT installed set-uid root, screen can provide tty security
- X * by exclusively locking the ptys. While this keeps other users from
- X * opening your ptys, it also keeps your own subprocesses from being able
- X * to open /dev/tty. Define LOCKPTY to add this exclusive locking.
- X */
- X#undef LOCKPTY
- X
- X/*
- X * If your system does not have the calls setreuid() and setregid(), define
- X * NOREUID to force screen to use a forked process to safely create output
- X * files without retaining any special privileges. (Output logging will be
- X * disabled, however.)
- X */
- X#undef NOREUID
- X
- X/*
- X * If you want the "time" command to display the current load average
- X * you must install screen with the needed privileges to read /dev/kmem
- X * and have a load average format that screen understands. We handle the
- X * following formats: 3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
- X */
- X#undef LOADAV_3DOUBLES
- X#define LOADAV_3LONGS
- X#undef LOADAV_4LONGS
- X
- X/*
- X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
- X * getttyent(3) library functions, define GETTTYENT.
- X */
- X#undef GETTTYENT
- X
- X/*
- X * If your version of NFS supports named sockets and you install screen
- X * suid root, you may need to define NFS_HACK for screen to be able to
- X * open the sockets.
- X */
- X#undef NFS_HACK
- X
- X/*
- X * By default screen will create a directory named ".screen" in the user's
- X * HOME directory to contain the named sockets. If this causes you problems
- X * (e.g. some user's HOME directories are NFS-mounted and don't support
- X * named sockets) you can have screen create the socket directories in a
- X * common subdirectory, such as /tmp or /usr/tmp. It makes things a little
- X * more secure if you choose a directory where the "sticky" bit is on, but
- X * this isn't required. Screen will name the subdirectories "S-$USER"
- X * (e.g /tmp/S-davison).
- X * Do not define TMPTEST unless it's for debugging purpose.
- X * If you want to have your socket directory in "/tmp/screens" then
- X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
- X */
- X#define LOCALSOCKDIR
- X
- X#ifdef LOCALSOCKDIR
- X# ifndef TMPTEST
- X# define SOCKDIR "/local/screens"
- X# else
- X# define SOCKDIR "/tmp/screens"
- X# endif
- X#endif
- X
- X/*
- X * Define USEBCOPY if the bcopy() from your system's C library supports the
- X * overlapping of source and destination blocks. When undefined, screen
- X * uses its own (probably slower) version of bcopy().
- X */
- X#undef USEBCOPY
- X
- X/*
- X * If you'd rather see the status line on the first line of your
- X * terminal rather than the last, define TOPSTAT.
- X */
- X#undef TOPSTAT
- X
- X/*
- X * If your system has vsprintf() and requires the use of the macros in
- X * "varargs.h" to use functions with variable arguments,
- X * define USEVARARGS.
- X */
- X#undef USEVARARGS
- X
- X/*
- X * Define this if your system supports named pipes.
- X */
- X#undef NAMEDPIPE
- X
- X/*
- X * here come the erlangen extensions to screen:
- X * define LOCK if you want to use a lock program for a screenlock.
- X * define PASSWORD for secure reattach of your screen.
- X * define COPY_PASTE to use the famous hacker's treasure zoo.
- X * define POW_DETACH to have a detach_and_logout key.
- X * define REMOTE_DETACH (-d option) to move screen between terminals.
- X * (jw)
- X */
- X#define LOCK
- X#define PASSWORD
- X#define COPY_PASTE
- X#define REMOTE_DETACH
- X#define POW_DETACH
- X
- X/*
- X * As error messages are mostly meaningless to the user, we
- X * try to throw out phrases that are somewhat more familiar
- X * to ...well, at least familiar to us NetHack players.
- X */
- X#define NETHACK
- X
- X/*
- X * and another sneaky feature: screen sources two startup files.
- X * first a global file with a path specified here, second
- X * your local $HOME/.screenrc
- X * Don't define this, if you don't want it.
- X */
- X#define ETCSCREENRC "/local/etc/screenrc"
- X
- X/*
- X * End of User Configuration Section
- X */
- X
- END_OF_FILE
- if test 8079 -ne `wc -c <'config/config.xelos'`; then
- echo shar: \"'config/config.xelos'\" unpacked with wrong size!
- fi
- # end of 'config/config.xelos'
- fi
- if test -f 'etcscreenrc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'etcscreenrc'\"
- else
- echo shar: Extracting \"'etcscreenrc'\" \(3284 characters\)
- sed "s/^X//" >'etcscreenrc' <<'END_OF_FILE'
- X# This is a global screenrc file
- X# Install this file as /usr/local/etc/screenrc. See config.h
- X#
- X# Flaws of termcap and standard settings are done here.
- X# Note: This file should not be shared between different hosts.
- X# The 'termcap' lines are written in termcap syntax.
- X# The syntax for a terminfo based host is slightly different.
- X#
- X#echo "--------------------------------------------------------------------"
- X#echo ""
- X#echo " This is iScreen V3.01.01 - Enjoy "
- X#echo ""
- X#echo "--------------------------------------------------------------------"
- X#sleep 3
- X
- X# startup_message off
- X
- flow auto # strange enough, this helps emacs to receive ^S/^Q
- X
- set vbell on
- set login on
- set autodetach off
- X
- X# 'vbell on' without the prepended 'set' keyword will change the default for
- X# subsequently opened windows. With the 'set' keyword we would change
- X# the setting of the currently active window.
- vbell on
- set vbell_msg " Wuff, ---- Wuff!! "
- X
- X# all termcap entries are now duplicated as terminfo entries.
- X# only difference should be the slightly modified syntax, and check for
- X# terminfo entries, that are already corected in the database.
- X#
- X# G0 we have a SEMI-GRAPHICS-CHARACTER-MODE
- X# WS this sequence resizes our window.
- X# cs this sequence changes the scrollregion
- X# hs@ we have no hardware statusline. iScreen will only believe that
- X# there is a hardware status line if hs,ts,fs,ds are all set.
- X# ts to statusline
- X# fs from statusline
- X# ds delete statusline
- X# al add one line
- X# AL add multiple lines
- X# dl delete one line
- X# DL delete multiple lines
- X# ic insert one char (space)
- X# IC insert multiple chars
- X
- termcap facit|vt100|xterm LP:G0
- terminfo facit|vt100|xterm LP:G0
- X
- X#the vt100 description does not mention "dl". *sigh*
- termcap vt100 dl=5\E[M
- terminfo vt100 dl=5\E[M
- X
- X#facit's "al" has a bug if the line contains attributes...
- termcap facit al=\E[L\E[K:AL@:cs=\E[%i%d;%dr:ic@
- terminfo facit al=\E[L\E[K:AL@:cs=\E[%i%p1%d;%p2%dr:ic@
- X
- X#make sun termcap/info better
- termcap sun up=^K:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:IC=\E[%d@:WS=1000\E[8;%d;%dt
- terminfo sun up=^K:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC:IC=\E[%p1%d@:WS=\E[8;%p1%d;%p2%dt$<1000>
- X
- X#xterm understands both im/ic and doesn't have a status line.
- X#Note: Do not specify im and ic in the real termcap/info file as
- X#some programs (e.g. vi) will not work anymore.
- termcap xterm|fptwist hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
- terminfo xterm|fptwist hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l
- X
- X#xterms is xterm with status line in title bar
- termcap xterms hs:ts=\E]0;:fs=\007:ds=\E]0;iScreen\007:cs=\E[%i%d;%dr:LP:G0:im=\E[4h:ei=\E[4l
- terminfo xterms hs:ts=\E]0;:fs=\007:ds=\E]0;iScreen\007:cs=\E[%i%p1%d;%p2%dr:LP:G0:im=\E[4h:ei=\E[4l
- X
- X#make hp700 termcap/info better
- termcap hp700 Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@
- terminfo hp700 Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@
- X
- X
- X#remove some stupid / dangerous key bindings
- bind '^k'
- X#bind 'L'
- bind '^\'
- X#make them better
- bind '\\' quit
- bind 'K' kill
- bind 'I' set login on
- bind 'O' set login off
- bind '}' history
- END_OF_FILE
- if test 3284 -ne `wc -c <'etcscreenrc'`; then
- echo shar: \"'etcscreenrc'\" unpacked with wrong size!
- fi
- # end of 'etcscreenrc'
- fi
- if test -f 'patchlevel.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patchlevel.h'\"
- else
- echo shar: Extracting \"'patchlevel.h'\" \(2816 characters\)
- sed "s/^X//" >'patchlevel.h' <<'END_OF_FILE'
- X/* Copyright (c) 1991
- X * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
- X * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
- X * Copyright (c) 1987 Oliver Laumann
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 1, or (at your option)
- X * any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program (see the file COPYING); if not, write to the
- X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * Noteworthy contributors to screen's design and implementation:
- X * Wayne Davison (davison@borland.com)
- X * Patrick Wolfe (pat@kai.com, kailand!pat)
- X * Bart Schaefer (schaefer@cse.ogi.edu)
- X * Nathan Glasser (nathan@brokaw.lcs.mit.edu)
- X * Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
- X * Howard Chu (hyc@hanauma.jpl.nasa.gov)
- X * Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
- X * Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
- X * Marc Boucher (marc@CAM.ORG)
- X *
- X ****************************************************************
- X */
- X
- X/****************************************************************
- X * $Header: /src/faui43/pub/utilities/screen/3.1/RCS/patchlevel.h,v 1.31 91/10/11 00:12:50 jnweiger Exp $
- X *
- X * patchlevel.h: Our life story.
- X * 8.7.91 -- 3.00.01 -wipe and a 'setenv TERM dumb' bugfix.
- X * 17.7.91 -- 3.00.02 another patchlevel by Wayne Davison
- X * 31.7.91 -- 3.00.03 E0, S0, C0 for flexible semi-graphics, nonblocking
- X * window title input and 'C-a :' command input.
- X * 10.8.91 -- 3.00.04 scrollback, markkeys and some bugfixes.
- X * 13.8.91 -- 3.00.05 mark routine improved, ansi prototypes added.
- X * 20.8.91 -- 3.00.06 screen -h, faster GotoPos in overlay, termcap %.
- X * instead of %c
- X * 28.8.91 -- 3.00.07 environment variable support. security. terminfo.
- X * pyramid and ultrix support.
- X * 07.9.91 -- 3.00.99 secopen(), MIPS support, SVR4 support.
- X * 09.9.91 -- 3.01.00 backspace bug fixed.
- X * 03.10.91 -- 3.01.01 ansi.c: null-ptr fixed, CLS now saves to scrollback.
- X * Using setresuid on hpux. Memory leak fixed.
- X * Better GotoPos(). Support for IC. Another resize bug.
- X * Detach() w/o fore crashed. -T and -A(dapt) option.
- X * GNU copyleft.
- X */
- X
- X#define ORIGIN "FAU"
- X#define REV 3
- X#define VERS 1
- X#define PATCHLEVEL 1
- X#define DATE "10/10/91"
- X#define STATE ""
- X
- END_OF_FILE
- if test 2816 -ne `wc -c <'patchlevel.h'`; then
- echo shar: \"'patchlevel.h'\" unpacked with wrong size!
- fi
- # end of 'patchlevel.h'
- fi
- if test -f 'putenv.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'putenv.c'\"
- else
- echo shar: Extracting \"'putenv.c'\" \(5664 characters\)
- sed "s/^X//" >'putenv.c' <<'END_OF_FILE'
- X/* Copyright (c) 1991
- X * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
- X * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
- X * Copyright (c) 1987 Oliver Laumann
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 1, or (at your option)
- X * any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program (see the file COPYING); if not, write to the
- X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * Noteworthy contributors to screen's design and implementation:
- X * Wayne Davison (davison@borland.com)
- X * Patrick Wolfe (pat@kai.com, kailand!pat)
- X * Bart Schaefer (schaefer@cse.ogi.edu)
- X * Nathan Glasser (nathan@brokaw.lcs.mit.edu)
- X * Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
- X * Howard Chu (hyc@hanauma.jpl.nasa.gov)
- X * Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
- X * Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
- X * Marc Boucher (marc@CAM.ORG)
- X *
- X ****************************************************************
- X */
- X
- X/*
- X * putenv -- put value into environment
- X *
- X * Usage: i = putenv (string)
- X * int i;
- X * char *string;
- X *
- X * where string is of the form <name>=<value>.
- X * If "value" is 0, then "name" will be deleted from the environment.
- X * Putenv returns 0 normally, -1 on error (not enough core for malloc).
- X *
- X * Putenv may need to add a new name into the environment, or to
- X * associate a value longer than the current value with a particular
- X * name. So, to make life simpler, putenv() copies your entire
- X * environment into the heap (i.e. malloc()) from the stack
- X * (i.e. where it resides when your process is initiated) the first
- X * time you call it.
- X *
- X * HISTORY
- X * 3-Sep-91 Michael Schroeder (mlschroe). Modified to behave as
- X * as putenv.
- X * 16-Aug-91 Tim MacKenzie (tym) at Monash University. Modified for
- X * use in screen (iScreen) (ignores final int parameter)
- X * 14-Oct-85 Michael Mauldin (mlm) at Carnegie-Mellon University
- X * Ripped out of CMU lib for Rob-O-Matic portability
- X * 20-Nov-79 Steven Shafer (sas) at Carnegie-Mellon University
- X * Created for VAX. Too bad Bell Labs didn't provide this. It's
- X * unfortunate that you have to copy the whole environment onto the
- X * heap, but the bookkeeping-and-not-so-much-copying approach turns
- X * out to be much hairier. So, I decided to do the simple thing,
- X * copying the entire environment onto the heap the first time you
- X * call putenv(), then doing realloc() uniformly later on.
- X */
- X#include "config.h"
- X
- X#if defined(NEEDSETENV)
- X
- X#define EXTRASIZE 5 /* increment to add to env. size */
- X
- char *index(), *malloc(), *realloc();
- int strlen();
- X
- static int envsize = -1; /* current size of environment */
- extern char **environ; /* the global which is your env. */
- X
- static int findenv(); /* look for a name in the env. */
- static int newenv(); /* copy env. from stack to heap */
- static int moreenv(); /* incr. size of env. */
- X
- int unsetenv(name)
- char *name;
- X{
- X register int i;
- X
- X i = findenv(name);
- X if (i<0)
- X return; /* Already here */
- X
- X free(environ[i]);
- X if (envsize > 0)
- X envsize--;
- X for (; environ[i]; i++)
- X environ[i] = environ[i+1];
- X}
- X
- int putenv(string)
- char *string;
- X{
- X register int i, j;
- X register char *p;
- X
- X if (envsize < 0)
- X { /* first time putenv called */
- X if (newenv() < 0) /* copy env. to heap */
- X return (-1);
- X }
- X
- X i = findenv(string); /* look for name in environment */
- X
- X if (i < 0)
- X { /* name must be added */
- X for (i = 0; environ[i]; i++);
- X if (i >= (envsize - 1))
- X { /* need new slot */
- X if (moreenv() < 0)
- X return (-1);
- X }
- X p = malloc(strlen(string) + 1);
- X if (p == 0) /* not enough core */
- X return (-1);
- X environ[i + 1] = 0; /* new end of env. */
- X }
- X else
- X { /* name already in env. */
- X p = realloc(environ[i], strlen(string) + 1);
- X if (p == 0)
- X return (-1);
- X }
- X sprintf(p, "%s", string); /* copy into env. */
- X environ[i] = p;
- X
- X return (0);
- X}
- X
- static int findenv(name)
- char *name;
- X{
- X register char *namechar, *envchar;
- X register int i, found;
- X
- X found = 0;
- X for (i = 0; environ[i] && !found; i++)
- X {
- X envchar = environ[i];
- X namechar = name;
- X while (*namechar && *namechar != '=' && (*namechar == *envchar))
- X {
- X namechar++;
- X envchar++;
- X }
- X found = ((*namechar == '\0' || *namechar == '=') && *envchar == '=');
- X }
- X return (found ? i - 1 : -1);
- X}
- X
- static int newenv()
- X{
- X register char **env, *elem;
- X register int i, esize;
- X
- X for (i = 0; environ[i]; i++)
- X ;
- X esize = i + EXTRASIZE + 1;
- X env = (char **)malloc(esize * sizeof (elem));
- X if (env == 0)
- X return (-1);
- X
- X for (i = 0; environ[i]; i++)
- X {
- X elem = malloc(strlen(environ[i]) + 1);
- X if (elem == 0)
- X return (-1);
- X env[i] = elem;
- X strcpy(elem, environ[i]);
- X }
- X
- X env[i] = 0;
- X environ = env;
- X envsize = esize;
- X return (0);
- X}
- X
- static int moreenv()
- X{
- X register int esize;
- X register char **env;
- X
- X esize = envsize + EXTRASIZE;
- X env = (char **)realloc(environ, esize * sizeof (*env));
- X if (env == 0)
- X return (-1);
- X environ = env;
- X envsize = esize;
- X return (0);
- X}
- X
- X#endif /* NEEDSETENV */
- X
- X
- END_OF_FILE
- if test 5664 -ne `wc -c <'putenv.c'`; then
- echo shar: \"'putenv.c'\" unpacked with wrong size!
- fi
- # end of 'putenv.c'
- fi
- if test -f 'readme' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'readme'\"
- else
- echo shar: Extracting \"'readme'\" \(3741 characters\)
- sed "s/^X//" >'readme' <<'END_OF_FILE'
- X"screen" is a window manager that allows you to handle several independent
- screens (UNIX ttys) on a single physical terminal; each screen has its own
- set of processes connected to it (typically interactive shells). Each
- virtual terminal created by "screen" emulates a DEC VT100 plus several ANSI
- XX3.64 and ISO 2022 functions (including DEC VT102 features such as line and
- character deletion and insertion).
- X
- Since "screen" uses pseudo-ttys, the select system call, and UNIX-domain
- sockets, it will not run under a system that does not include these
- features of 4.2 and 4.3 BSD UNIX.
- X
- If you want to get a quick idea how "screen" works but don't want to read
- the entire manual, do the following:
- X
- X - call "screen" without arguments
- X - wait for the shell prompt; execute some commands
- X - type ^A ^C (Control-A followed by Control-C)
- X - wait for the shell prompt; do something in the new window
- X - type ^A ^A repeatedly to switch between the two windows
- X - terminate the first shell ("screen" switches to the other window)
- X - terminate the second shell
- X
- If you have got "vttest" (the VT100 test program from mod.sources) you
- may want to run it from within "screen" to verify that it correctly
- emulates a VT100 on your terminal (except for things your terminal is
- incapable of handling, like 132 column mode and double width/height
- characters, of course).
- X
- By the way, "screen" can be used to compensate for certain bugs of "real"
- VT100 terminals. For instance, our 4.2 BSD version of mille(6) garbles
- the display on terminals of the VT100 family, but it works quite fine
- when it is invoked from within "screen". In addition, "screen" enables
- you to use EMACS on terminals that are unable to generate Control-S and
- Control-Q from the keyboard or that require flow control using Control-S
- and Control-Q. This is the reason why I have an alias like
- X
- X alias emacs "screen emacs"
- X
- in my .cshrc file. Users who run EMACS on terminals which normally have no
- trouble with Control-S and Control-Q will probably want to run screen with
- the -fn or -fa options, or put the line "flow off" or "flow auto" in their
- X.screenrc file.
- X
- Before typing "make", look at the config directory and choose an appropriate
- config file that you then copy to config.h and then edit it to
- reflect the configuration parameters of your choice. Each define is well
- commented to help you decide what to choose. Then give the Makefile the
- once-over and compile.
- X
- To get screen to do everything it was designed to do, it should be installed
- set-uid root. This enables it to modify the ownership of the pseudo-ttys,
- update /etc/utmp, and read the current load average from /dev/kmem.
- X
- XFailing to install it suid root (e.g. if you fear a trojan horse) doesn't
- have any major disadvantages, except that w(1) and some other utilities
- will display only "screen" as the current process, and the pseudo ttys
- X(ptys) used for the virtual terminals won't have their owners set. Screen
- can provide you some pty security by opening the ptys exclusively, but
- this has the unfortunate side-effect of keeping your own subprocesses from
- being able to open /dev/tty.
- X
- It is also possible to create a special "screen" group and give the file
- X/etc/utmp screen-group write-access, and give the file /dev/kmem screen-group
- read access to get all the features except the pty-ownership changes. Some
- people also install it set-gid "kmem" or set-gid "utmp" to give it one or
- the other.
- X
- Many people install screen as a normal program with no special privileges
- and still find it to be indispensable. Give it a try.
- X
- Send your questions, comments and bug reports for screen to:
- X
- X Juergen Weigert
- X
- X jnweiger@immd4.informatik.uni-erlangen.de
- END_OF_FILE
- if test 3741 -ne `wc -c <'readme'`; then
- echo shar: \"'readme'\" unpacked with wrong size!
- fi
- # end of 'readme'
- fi
- if test ! -d 'terminfo' ; then
- echo shar: Creating directory \"'terminfo'\"
- mkdir 'terminfo'
- fi
- if test -f 'terminfo/screencap' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'terminfo/screencap'\"
- else
- echo shar: Extracting \"'terminfo/screencap'\" \(515 characters\)
- sed "s/^X//" >'terminfo/screencap' <<'END_OF_FILE'
- SC|screen|VT 100/ANSI X3.64 virtual terminal|\
- X :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
- X :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
- X :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
- X :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:xv:\
- X :li#43:co#80:LP:us=\E[4m:ue=\E[24m:so=\E[3m:se=\E[23m:\
- X :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:ms:sr=\EM:al=\E[L:\
- X :AL=\E[%dL:dl=\E[M:DL=\E[%dM:cs=\E[%i%d;%dr:dc=\E[P:\
- X :DC=\E[%dP:im=\E[4h:ei=\E[4l:mi:ic=\E[@:IC=\E[%d@:\
- X :ks=\E=:ke=\E>:G0:
- END_OF_FILE
- if test 515 -ne `wc -c <'terminfo/screencap'`; then
- echo shar: \"'terminfo/screencap'\" unpacked with wrong size!
- fi
- # end of 'terminfo/screencap'
- fi
- if test -f 'terminfo/screeninfo.src' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'terminfo/screeninfo.src'\"
- else
- echo shar: Extracting \"'terminfo/screeninfo.src'\" \(668 characters\)
- sed "s/^X//" >'terminfo/screeninfo.src' <<'END_OF_FILE'
- screen|VT 100/ANSI X3.64 virtual terminal,
- X msgr, xon,
- X cols#80, it#8, lines#24,
- X bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- X clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- X cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n,
- X cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- X cuu=\E[%p1%dA, cuu1=\EM, dl=\E[%p1%dM, dl1=\E[M,
- X ed=\E[J, el=\E[K, home=\E[H, ht=\t, hts=\EH,
- X il=\E[%p1%dL, il1=\E[L, ind=\n, is2=\E)0, kbs=\b,
- X kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- X kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E?,
- X nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- X rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7,
- X sgr0=\E[m, smkx=\E=, smso=\E[3m, smul=\E[4m,
- X tbc=\E[3g,
- END_OF_FILE
- if test 668 -ne `wc -c <'terminfo/screeninfo.src'`; then
- echo shar: \"'terminfo/screeninfo.src'\" unpacked with wrong size!
- fi
- # end of 'terminfo/screeninfo.src'
- fi
- if test -f 'terminfo/screenwinfo.src' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'terminfo/screenwinfo.src'\"
- else
- echo shar: Extracting \"'terminfo/screenwinfo.src'\" \(671 characters\)
- sed "s/^X//" >'terminfo/screenwinfo.src' <<'END_OF_FILE'
- screen-w|VT 100/ANSI X3.64 virtual terminal,
- X msgr, xon,
- X cols#132, it#8, lines#24,
- X bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- X clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- X cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n,
- X cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- X cuu=\E[%p1%dA, cuu1=\EM, dl=\E[%p1%dM, dl1=\E[M,
- X ed=\E[J, el=\E[K, home=\E[H, ht=\t, hts=\EH,
- X il=\E[%p1%dL, il1=\E[L, ind=\n, is2=\E)0, kbs=\b,
- X kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- X kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E?,
- X nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- X rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7,
- X sgr0=\E[m, smkx=\E=, smso=\E[3m, smul=\E[4m,
- X tbc=\E[3g,
- END_OF_FILE
- if test 671 -ne `wc -c <'terminfo/screenwinfo.src'`; then
- echo shar: \"'terminfo/screenwinfo.src'\" unpacked with wrong size!
- fi
- # end of 'terminfo/screenwinfo.src'
- fi
- if test -f 'xx.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xx.c'\"
- else
- echo shar: Extracting \"'xx.c'\" \(1999 characters\)
- sed "s/^X//" >'xx.c' <<'END_OF_FILE'
- char cpmsg[] = "\
- X\n\
- iScreen version %v\n\
- X\n\
- Copyright (c) 1991\n\
- X Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)\n\
- X Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)\n\
- Copyright (c) 1987 Oliver Laumann\n\
- X\n\
- This program is free software; you can redistribute it and/or \
- modify it under the terms of the GNU General Public License as published \
- by the Free Software Foundation; either version 1, or (at your option)\n\
- any later version.\n\
- X\n\
- This program is distributed in the hope that it will be useful, \
- but WITHOUT ANY WARRANTY; without even the implied warranty of \
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \
- GNU General Public License for more details.\n\
- X\n\
- You should have received a copy of the GNU General Public License \
- along with this program (see the file COPYING); if not, write to the \
- XFree Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n";
- X
- char version[] = "VERSIONTEST";
- X
- static char *s, *saveds;
- int screenwidth;
- X
- main(argc, argv)
- int argc;
- char **argv;
- X{
- X screenwidth = atoi(argv[1]);
- X s = cpmsg;
- X while (*s)
- X {
- X prcpy();
- X printf("============================\n");
- X }
- X}
- X
- prcpy()
- X{
- X char *ws;
- X int x, y, l;
- X x = y = 0;
- X
- X while(*s)
- X {
- X ws = s;
- X while (*s == ' ')
- X s++;
- X if (strncmp(s, "%v", 2) == 0)
- X {
- X saveds = s + 2;
- X ws = s = version;
- X }
- X while (*s && *s != ' ' && *s != '\n')
- X s++;
- X l = s - ws;
- X s = ws;
- X if (l > screenwidth - 1)
- X l = screenwidth - 1;
- X if (x && x + l >= screenwidth - 2)
- X {
- X putchar('\n');
- X x = 0;
- X if (++y == 10)
- X break;
- X }
- X if (x)
- X {
- X putchar(' ');
- X x++;
- X }
- X printf("%*.*s", l, l, ws);
- X x += l;
- X s += l;
- X if (*s == 0 && saveds)
- X {
- X s = saveds;
- X saveds = 0;
- X }
- X if (*s == '\n')
- X {
- X putchar('\n');
- X x = 0;
- X if (++y == 10)
- X break;
- X }
- X if (*s == ' ' || *s == '\n')
- X s++;
- X }
- X while (y++ != 10)
- X putchar('\n');
- X}
- X
- END_OF_FILE
- if test 1999 -ne `wc -c <'xx.c'`; then
- echo shar: \"'xx.c'\" unpacked with wrong size!
- fi
- # end of 'xx.c'
- fi
- echo shar: End of archive 1 \(of 8\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 8 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-