home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume25 / screen3 / part01 next >
Encoding:
Text File  |  1991-12-18  |  93.2 KB  |  2,901 lines

  1. Newsgroups: comp.sources.unix
  2. From: jnweiger@immd4.informatik.uni-erlangen.de (Juergen Weigert)
  3. Subject: v25i041: Screen3 - multiple windows on an ASCII terminal, Part01/08
  4. Sender: sources-moderator@pa.dec.com
  5. Approved: vixie@pa.dec.com
  6.  
  7. Submitted-By: jnweiger@immd4.informatik.uni-erlangen.de (Juergen Weigert)
  8. Posting-Number: Volume 25, Issue 41
  9. Archive-Name: screen3/part01
  10.  
  11. [ this is the third major release of "screen", a utility that lets you
  12.   do "hot-key"-style switching between multiple sessions on a single
  13.   ASCII terminal.  it'll never replace a bitmapped window system, but
  14.   if you're logged into a VT100 or TVI920 it can come in very handy.
  15.  
  16.   it has been tested on Ultrix 4.2 and it works like a champ.    --vix ]
  17.  
  18. #! /bin/sh
  19. # This is a shell archive.  Remove anything before this line, then unpack
  20. # it by saving it into a file and typing "sh file".  To overwrite existing
  21. # files, type "sh file -c".  You can also feed this as standard input via
  22. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  23. # will see the following message at the end:
  24. #        "End of archive 1 (of 8)."
  25. # Contents:  INSTALLATION MANIFEST README ansi.h config
  26. #   config/Makefile.bsd config/Makefile.gould_np1 config/Makefile.mips
  27. #   config/Makefile.putenv config/Makefile.sco32 config/Makefile.sgi
  28. #   config/Makefile.svr4 config/Makefile.xenix config/config.hpux
  29. #   config/config.mot88 config/config.symmetry config/config.sysv68
  30. #   config/config.xelos etcscreenrc patchlevel.h putenv.c readme
  31. #   terminfo terminfo/screencap terminfo/screeninfo.src
  32. #   terminfo/screenwinfo.src xx.c
  33. # Wrapped by vixie@cognition.pa.dec.com on Thu Dec 19 17:36:03 1991
  34. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  35. if test -f 'INSTALLATION' -a "${1}" != "-c" ; then 
  36.   echo shar: Will not clobber existing file \"'INSTALLATION'\"
  37. else
  38. echo shar: Extracting \"'INSTALLATION'\" \(1716 characters\)
  39. sed "s/^X//" >'INSTALLATION' <<'END_OF_FILE'
  40. Installation of screen3.1
  41. X
  42. X0.)
  43. Unpack. Screen comes as a compressed tar archinve. But... you propably
  44. already managed that step, when you are reading this.  [the version in
  45. comp.sources.unix comes in SHAR files --mod]
  46. X
  47. X1.)
  48. take a look at the config directory. choose one of the config.h files there,
  49. or edit one to suit your needs. If necessary cunsult the online manuals
  50. or look into /usr/include/...  [Copy one of them to ./config.h and edit
  51. it or at least look at it. --mod]
  52. X
  53. X2.)
  54. look at the Makefiles. Different systems need different libraries. 
  55. Some need even the putenv code added. Build a Makefile that satisfies
  56. all these requirements. Then decide if you want to do screen debugging
  57. or want a production screen. In the first case you want to add -DDEBUG
  58. to CFLAGS. In the second case you may want to have -O in your CFLAGS
  59. and -s in your LDFLAGS, as you don't want to analyse a core-dump, if
  60. that ever happens. Still the executable may be 250 to 500 kbytes in size.
  61. X[There are a lot of Makefiles in the ./config directory; copy one up
  62. to ./Makefile and edit it or at least look at it. --mod]
  63. X
  64. X3.)
  65. compile with the right compiler. If you have gcc, use it. If you have 
  66. a SYSV-ish and a bsd-like compiler, choose the later. E.g. on suns screen
  67. will not run properly when compiled with /usr/5bin/cc.
  68. X
  69. X4.)
  70. You may well run screen from your private binary directory and with a 
  71. private socket directory like $HOME/.screen. But to have a full featured
  72. screen and (from a users point of view) more secure pty's you should
  73. consult a system administrator and discuss installing screen setuid-root
  74. in some globally accessible directory like /usr/local/bin.
  75. X
  76. Juergen Weigert. jnweiger@immd4.informatik.uni-erlangen.de
  77. END_OF_FILE
  78. if test 1716 -ne `wc -c <'INSTALLATION'`; then
  79.     echo shar: \"'INSTALLATION'\" unpacked with wrong size!
  80. fi
  81. # end of 'INSTALLATION'
  82. fi
  83. if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  84.   echo shar: Will not clobber existing file \"'MANIFEST'\"
  85. else
  86. echo shar: Extracting \"'MANIFEST'\" \(1615 characters\)
  87. sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
  88. X   File Name        Archive #    Description
  89. X-----------------------------------------------------------
  90. X CHANGES                    3    
  91. X COPYING                    3    
  92. X INSTALLATION               1    
  93. X MANIFEST                   1    
  94. X README                     1    
  95. X ansi.c                     7    
  96. X ansi.h                     1    
  97. X config                     1    
  98. X config.h                   2    
  99. X config/Makefile.bsd        1    
  100. X config/Makefile.gould_np1  1    
  101. X config/Makefile.mips       1    
  102. X config/Makefile.putenv     1    
  103. X config/Makefile.sco32      1    
  104. X config/Makefile.sgi        1    
  105. X config/Makefile.svr4       1    
  106. X config/Makefile.xenix      1    
  107. X config/config.gould_np1    3    
  108. X config/config.hpux         1    
  109. X config/config.mips         2    
  110. X config/config.mot88        1    
  111. X config/config.rs6000       2    
  112. X config/config.sequent_ptx  2    
  113. X config/config.sgi          2    
  114. X config/config.sunos41      2    
  115. X config/config.svr4         2    
  116. X config/config.symmetry     1    
  117. X config/config.sysv68       1    
  118. X config/config.ultrix31     2    
  119. X config/config.xelos        1    
  120. X config/config.xenix        2    
  121. X etcscreenrc                1    
  122. X extern.h                   2    
  123. X fileio.c                   5    
  124. X help.c                     3    
  125. X mark.c                     4    
  126. X patchlevel.h               1    
  127. X putenv.c                   1    
  128. X readme                     1    
  129. X screen.1                   6    
  130. X screen.c                   8    
  131. X screen.h                   3    
  132. X socket.c                   4    
  133. X terminfo                   1    
  134. X terminfo/screencap         1    
  135. X terminfo/screeninfo.src    1    
  136. X terminfo/screenwinfo.src   1    
  137. X window.c                   3    
  138. X xx.c                       1    
  139. END_OF_FILE
  140. if test 1615 -ne `wc -c <'MANIFEST'`; then
  141.     echo shar: \"'MANIFEST'\" unpacked with wrong size!
  142. fi
  143. # end of 'MANIFEST'
  144. fi
  145. if test -f 'README' -a "${1}" != "-c" ; then 
  146.   echo shar: Will not clobber existing file \"'README'\"
  147. else
  148. echo shar: Extracting \"'README'\" \(3036 characters\)
  149. sed "s/^X//" >'README' <<'END_OF_FILE'
  150. X
  151. Short introduction to screen (Version 3.0.7)                  jw 7.9.91
  152. X
  153. screen 
  154. X  provides you with an ansi/vt100 terminal emulator, which can multiplex
  155. X  up to 10 pseudo-terminals. On startup, it executes $SHELL in window 0.
  156. X  Then it reads $HOME/.screenrc to learn configuration, keybindings, 
  157. X  and may open more windows.
  158. X
  159. X  C-A C        Create new windows.
  160. X
  161. X  C-A SPACE    Advance from window to window (with wraparound)
  162. X
  163. X  C-A C-A    Toggle between two windows.
  164. X
  165. X  C-A 0
  166. X   ...
  167. X  C-A 9        Switch to window nr. 0 ... 9.
  168. X
  169. X  C-A w        Show a list of windows in the Statusline.
  170. X
  171. X  C-A a        (Think of goto-start-of-line in emacs or tcsh).
  172. X  C-A s        (Think of i-search in emacs).
  173. X  C-A q        Send a literal C-A/C-S/C-Q to the process in the window.
  174. X
  175. X  C-A l        Redraw this window.
  176. X
  177. X  C-A W        Toggle between 80 & 132 columns mode. 
  178. X
  179. X  C-A L        Try to toggle the utmp-slot for this window.
  180. X
  181. X  C-A A        Prompt for a new name for this window. (see C-A w).
  182. X
  183. X  C-A z        Suspend the whole screen.
  184. X
  185. X  C-A x        Execute /usr/bin/lock or $LOCKCMD or a builtin terminallock.
  186. X
  187. X  C-A C-[    Start copy&paste mode. Move cursor with h,j,k,l. Set 2 marks
  188. X        with SPACE or y. Abort with ESC. Note that "C-[" is ESC.
  189. X        NOTE: there is a userdefined amount of scrollback history.
  190. X                The history buffer is entered, when the cursor hits the top
  191. X        of the window.
  192. X
  193. X  C-A C-]    paste in current window's stdin. see C-A C-[.
  194. X
  195. X  C-A <
  196. X  C-A >        Read or write the copybuffer from/to the exchange file.
  197. X        Multiple screen users on the same host may thus transfer text.
  198. X
  199. X  C-A d        Detach screen. All processes continue and may spool output
  200. X        to their pty's, but screen disconnects from your terminal.
  201. X        reattach with "screen -r".
  202. X
  203. X  C-A D D    Power detach. Disconnect like C-A d and kill the parent shell.
  204. X
  205. X  C-A K        Kill a window and send SIGHUP to its processgroup. Per default
  206. X        this would be C-A C-k. But it is redefined in the demo .screenrc
  207. X        (think of killing a whole line in emacs).
  208. X
  209. X  C-A :set all  Show all keybindings. The above list is not at all complete and
  210. X        may even be wrong, as keys can be redefined in .screenrc or
  211. X        with "C-A :bind 'X' keyname [arguments]".
  212. X
  213. X  C-A : ....  Online configuration change.
  214. X
  215. X
  216. screen -r [host.tty]
  217. X  Reattach a detached screen session. The terminal emulator reconfigures
  218. X  according to your $TERMCAP or $TERM settings. '-R' brings up a detached
  219. X  session or (if none) creates a new session. You should specify a socket
  220. X  when there you have multiple screens detached. 
  221. X
  222. screen -d [host.tty]
  223. X  Detach a screen session from remote. Has the same effect as typing 'C-A d'
  224. X  on the controlling terminal. '-D' will power-detach.
  225. X
  226. screen -list
  227. screen -ls
  228. X  Show all available sockets. If there are (DEAD???) sockets, you may consider 
  229. X  removing them. If there are sockets missing, you may send a SIGCHLD to its
  230. X  process 'SCREEN' and the process will re-establish the socket. (think of 
  231. X  someone cleaning /tmp thoroughly).
  232. X
  233. screen -h 200
  234. X  Starts a new screen session and sets the number of lines in the scrollback
  235. X  buffer to 200. The default is 50 lines.
  236. END_OF_FILE
  237. if test 3036 -ne `wc -c <'README'`; then
  238.     echo shar: \"'README'\" unpacked with wrong size!
  239. fi
  240. # end of 'README'
  241. fi
  242. if test -f 'ansi.h' -a "${1}" != "-c" ; then 
  243.   echo shar: Will not clobber existing file \"'ansi.h'\"
  244. else
  245. echo shar: Extracting \"'ansi.h'\" \(2278 characters\)
  246. sed "s/^X//" >'ansi.h' <<'END_OF_FILE'
  247. X/* Copyright (c) 1991
  248. X *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  249. X *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  250. X * Copyright (c) 1987 Oliver Laumann
  251. X *
  252. X * This program is free software; you can redistribute it and/or modify
  253. X * it under the terms of the GNU General Public License as published by
  254. X * the Free Software Foundation; either version 1, or (at your option)
  255. X * any later version.
  256. X *
  257. X * This program is distributed in the hope that it will be useful,
  258. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  259. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  260. X * GNU General Public License for more details.
  261. X *
  262. X * You should have received a copy of the GNU General Public License
  263. X * along with this program (see the file COPYING); if not, write to the
  264. X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  265. X *
  266. X * Noteworthy contributors to screen's design and implementation:
  267. X *    Wayne Davison (davison@borland.com)
  268. X *    Patrick Wolfe (pat@kai.com, kailand!pat)
  269. X *    Bart Schaefer (schaefer@cse.ogi.edu)
  270. X *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  271. X *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  272. X *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  273. X *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  274. X *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  275. X *    Marc Boucher (marc@CAM.ORG)
  276. X *
  277. X ****************************************************************
  278. X * $Id: ansi.h,v 1.13 91/10/06 14:47:20 jnweiger Exp $ FAU
  279. X */
  280. X
  281. X#define NATTR        6
  282. X
  283. X#define ATTR_DI        0    /* Dim mode */
  284. X#define ATTR_US        1    /* Underscore mode */
  285. X#define ATTR_BD        2    /* Bold mode */
  286. X#define ATTR_RV        3    /* Reverse mode */
  287. X#define ATTR_SO        4    /* Standout mode */
  288. X#define ATTR_BL        5    /* Blinking */
  289. X
  290. X#define A_DI    (1<<ATTR_DI)
  291. X#define A_US    (1<<ATTR_US)
  292. X#define A_BD    (1<<ATTR_BD)
  293. X#define A_RV    (1<<ATTR_RV)
  294. X#define A_SO    (1<<ATTR_SO)
  295. X#define A_BL    (1<<ATTR_BL)
  296. X#define A_MAX    (1<<(NATTR-1))
  297. X
  298. X/* Types of movement used by GotoPos() */
  299. enum move_t {
  300. X    M_NONE,
  301. X    M_UP,
  302. X    M_CUP,
  303. X    M_DO,
  304. X    M_CDO,
  305. X    M_LE,
  306. X    M_CLE,
  307. X    M_RI,
  308. X    M_CRI,
  309. X    M_RW,
  310. X    M_CR,    /* CR and rewrite */
  311. X};
  312. X
  313. X#define EXPENSIVE     1000
  314. X
  315. X#define G0             0
  316. X#define G1             1
  317. X#define G2             2
  318. X#define G3             3
  319. X
  320. X#define ASCII         0
  321. X
  322. X#ifdef TOPSTAT
  323. X#define STATLINE     (0)
  324. X#else
  325. X#define STATLINE     (screenheight-1)
  326. X#endif
  327. X
  328. END_OF_FILE
  329. if test 2278 -ne `wc -c <'ansi.h'`; then
  330.     echo shar: \"'ansi.h'\" unpacked with wrong size!
  331. fi
  332. # end of 'ansi.h'
  333. fi
  334. if test ! -d 'config' ; then
  335.     echo shar: Creating directory \"'config'\"
  336.     mkdir 'config'
  337. fi
  338. if test -f 'config/Makefile.bsd' -a "${1}" != "-c" ; then 
  339.   echo shar: Will not clobber existing file \"'config/Makefile.bsd'\"
  340. else
  341. echo shar: Extracting \"'config/Makefile.bsd'\" \(1364 characters\)
  342. sed "s/^X//" >'config/Makefile.bsd' <<'END_OF_FILE'
  343. X#
  344. X# Makefile for screen
  345. X#
  346. X# See config.h for configuration options.
  347. X#
  348. X
  349. X# If you choose to compile with the tried and true:
  350. CC= cc
  351. X#CFLAGS= -O
  352. X#CFLAGS= -g -DTMPTEST -DDEBUG
  353. CFLAGS= -g 
  354. LDFLAGS=
  355. X
  356. X# If you're using GNU C, be sure to use the -traditional flag:
  357. X#CC= gcc
  358. X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
  359. X#CFLAGS= -traditional -O
  360. X#CFLAGS= -g -traditional -DTMPTEST
  361. X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
  362. X#LDFLAGS= -s
  363. X
  364. X#LIBS= nmalloc.o -ltermcap 
  365. LIBS= -ltermcap 
  366. X
  367. CFILES=    screen.c ansi.c help.c fileio.c mark.c window.c socket.c
  368. OFILES=    screen.o ansi.o help.o fileio.o mark.o window.o socket.o
  369. X
  370. screen: $(OFILES)
  371. X    $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
  372. X
  373. screen.o: screen.c screen.h config.h patchlevel.h extern.h
  374. X    $(CC) $(CFLAGS) -c screen.c
  375. X
  376. help.o: help.c screen.h config.h ansi.h extern.h
  377. X    $(CC) $(CFLAGS) -c help.c
  378. X
  379. fileio.o: fileio.c screen.h config.h extern.h
  380. X    $(CC) $(CFLAGS) -c fileio.c
  381. X
  382. ansi.o: ansi.c screen.h config.h ansi.h extern.h
  383. X    $(CC) $(CFLAGS) -c ansi.c
  384. X
  385. mark.o: mark.c screen.h config.h ansi.h extern.h
  386. X    $(CC) $(CFLAGS) -c mark.c
  387. X
  388. window.o: window.c config.h screen.h  extern.h
  389. X    $(CC) $(CFLAGS) -c window.c
  390. X
  391. socket.o: socket.c config.h screen.h  extern.h
  392. X    $(CC) $(CFLAGS) -c socket.c
  393. X
  394. clean:
  395. X    rm -f $(OFILES) screen
  396. X
  397. lint:
  398. X    lint -I. $(CFILES)
  399. X
  400. saber:
  401. X    #load $(CFLAGS) screen.c ansi.c $(LIBS)
  402. END_OF_FILE
  403. if test 1364 -ne `wc -c <'config/Makefile.bsd'`; then
  404.     echo shar: \"'config/Makefile.bsd'\" unpacked with wrong size!
  405. fi
  406. # end of 'config/Makefile.bsd'
  407. fi
  408. if test -f 'config/Makefile.gould_np1' -a "${1}" != "-c" ; then 
  409.   echo shar: Will not clobber existing file \"'config/Makefile.gould_np1'\"
  410. else
  411. echo shar: Extracting \"'config/Makefile.gould_np1'\" \(1459 characters\)
  412. sed "s/^X//" >'config/Makefile.gould_np1' <<'END_OF_FILE'
  413. X#
  414. X# Makefile for screen
  415. X#
  416. X# See config.h for configuration options.
  417. X#
  418. X
  419. X# If you choose to compile with the tried and true:
  420. CC= cc
  421. X#CFLAGS= -O
  422. X#CFLAGS= -g -DTMPTEST -DDEBUG -DNEEDSETENV
  423. CFLAGS= -g -DNEEDSETENV
  424. LDFLAGS=
  425. X
  426. X# If you're using GNU C, be sure to use the -traditional flag:
  427. X#CC= gcc
  428. X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
  429. X#CFLAGS= -traditional -O
  430. X#CFLAGS= -g -traditional -DTMPTEST
  431. X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
  432. X#LDFLAGS= -s
  433. X
  434. X#LIBS= nmalloc.o -ltermcap 
  435. LIBS= -ltermcap 
  436. X
  437. CFILES=    screen.c ansi.c help.c fileio.c mark.c window.c socket.c putenv.c
  438. OFILES=    screen.o ansi.o help.o fileio.o mark.o window.o socket.o putenv.o
  439. X
  440. screen: $(OFILES)
  441. X    $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
  442. X
  443. screen.o: screen.c screen.h config.h patchlevel.h extern.h
  444. X    $(CC) $(CFLAGS) -c screen.c
  445. X
  446. help.o: help.c screen.h config.h extern.h
  447. X    $(CC) $(CFLAGS) -c help.c
  448. X
  449. fileio.o: fileio.c screen.h config.h extern.h
  450. X    $(CC) $(CFLAGS) -c fileio.c
  451. X
  452. ansi.o: ansi.c screen.h config.h ansi.h extern.h
  453. X    $(CC) $(CFLAGS) -c ansi.c
  454. X
  455. mark.o: mark.c screen.h config.h ansi.h extern.h
  456. X    $(CC) $(CFLAGS) -c mark.c
  457. X
  458. window.o: window.c config.h screen.h  extern.h
  459. X    $(CC) $(CFLAGS) -c window.c
  460. X
  461. socket.o: socket.c config.h screen.h  extern.h
  462. X    $(CC) $(CFLAGS) -c socket.c
  463. X
  464. putenv.o: putenv.c config.h
  465. X    $(CC) $(CFLAGS) -c putenv.c
  466. X
  467. X
  468. clean:
  469. X    rm -f $(OFILES) screen
  470. X
  471. lint:
  472. X    lint -I. $(CFILES)
  473. X
  474. saber:
  475. X    #load $(CFLAGS) screen.c ansi.c $(LIBS)
  476. END_OF_FILE
  477. if test 1459 -ne `wc -c <'config/Makefile.gould_np1'`; then
  478.     echo shar: \"'config/Makefile.gould_np1'\" unpacked with wrong size!
  479. fi
  480. # end of 'config/Makefile.gould_np1'
  481. fi
  482. if test -f 'config/Makefile.mips' -a "${1}" != "-c" ; then 
  483.   echo shar: Will not clobber existing file \"'config/Makefile.mips'\"
  484. else
  485. echo shar: Extracting \"'config/Makefile.mips'\" \(1606 characters\)
  486. sed "s/^X//" >'config/Makefile.mips' <<'END_OF_FILE'
  487. X#
  488. X# Makefile for screen
  489. X#
  490. X# See config.h for configuration options.
  491. X#
  492. X
  493. X# If you choose to compile with the tried and true:
  494. CC= cc
  495. X#CFLAGS= -O
  496. X#CFLAGS= -g -DTMPTEST -DDEBUG
  497. X# Compiled on MIPS RC6280 running RiscOS 4.52, compiler doesn't define us 
  498. X# any specific id so we define it here, maybe it should be defined in config.h
  499. CFLAGS= -g -systype bsd43 -DMIPS 
  500. LDFLAGS=
  501. X
  502. X# If you're using GNU C, be sure to use the -traditional flag:
  503. X#CC= gcc
  504. X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
  505. X#CFLAGS= -traditional -O
  506. X#CFLAGS= -g -traditional -DTMPTEST
  507. X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
  508. X#LDFLAGS= -s
  509. X
  510. X#LIBS= nmalloc.o -ltermcap 
  511. X#LIBS= -ltermcap
  512. X# mld needed on MIPS to have nlist for loadaverage
  513. LIBS= -ltermcap -lmld
  514. X
  515. CFILES=    screen.c ansi.c help.c fileio.c mark.c window.c socket.c
  516. OFILES=    screen.o ansi.o help.o fileio.o mark.o window.o socket.o
  517. X
  518. screen: $(OFILES)
  519. X    $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
  520. X
  521. screen.o: screen.c screen.h config.h patchlevel.h extern.h
  522. X    $(CC) $(CFLAGS) -c screen.c
  523. X
  524. help.o: help.c screen.h config.h extern.h
  525. X    $(CC) $(CFLAGS) -c help.c
  526. X
  527. fileio.o: fileio.c screen.h config.h extern.h
  528. X    $(CC) $(CFLAGS) -c fileio.c
  529. X
  530. ansi.o: ansi.c screen.h config.h ansi.h extern.h
  531. X    $(CC) $(CFLAGS) -c ansi.c
  532. X
  533. mark.o: mark.c screen.h config.h ansi.h extern.h
  534. X    $(CC) $(CFLAGS) -c mark.c
  535. X
  536. window.o: window.c config.h screen.h  extern.h
  537. X    $(CC) $(CFLAGS) -c window.c
  538. X
  539. socket.o: socket.c config.h screen.h  extern.h
  540. X    $(CC) $(CFLAGS) -c socket.c
  541. X
  542. clean:
  543. X    rm -f $(OFILES) screen
  544. X
  545. lint:
  546. X    lint -I. $(CFILES)
  547. X
  548. saber:
  549. X    #load $(CFLAGS) screen.c ansi.c $(LIBS)
  550. END_OF_FILE
  551. if test 1606 -ne `wc -c <'config/Makefile.mips'`; then
  552.     echo shar: \"'config/Makefile.mips'\" unpacked with wrong size!
  553. fi
  554. # end of 'config/Makefile.mips'
  555. fi
  556. if test -f 'config/Makefile.putenv' -a "${1}" != "-c" ; then 
  557.   echo shar: Will not clobber existing file \"'config/Makefile.putenv'\"
  558. else
  559. echo shar: Extracting \"'config/Makefile.putenv'\" \(1525 characters\)
  560. sed "s/^X//" >'config/Makefile.putenv' <<'END_OF_FILE'
  561. X#
  562. X# Makefile for screen
  563. X#
  564. X# See config.h for configuration options.
  565. X#
  566. X
  567. X# If you choose to compile with the tried and true:
  568. CC= cc
  569. X#CFLAGS= -O -DNEEDSETENV
  570. X#CFLAGS= -g -DTMPTEST -DDEBUG -DNEEDSETENV
  571. CFLAGS= -g  -DNEEDSETENV
  572. LDFLAGS=
  573. X
  574. X# If you're using GNU C, be sure to use the -traditional flag:
  575. X#CC= gcc
  576. X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions -DNEEDSETENV #-Wall
  577. X#CFLAGS= -traditional -O -DNEEDSETENV
  578. X#CFLAGS= -g -traditional -DTMPTEST -DNEEDSETENV
  579. X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG -DNEEDSETENV
  580. X#LDFLAGS= -s
  581. X
  582. X#LIBS= nmalloc.o -ltermcap 
  583. LIBS= -ltermcap 
  584. X
  585. CFILES=    screen.c ansi.c help.c fileio.c mark.c window.c socket.c putenv.c
  586. OFILES=    screen.o ansi.o help.o fileio.o mark.o window.o socket.o putenv.o
  587. X
  588. screen: $(OFILES)
  589. X    $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
  590. X
  591. screen.o: screen.c screen.h config.h patchlevel.h extern.h
  592. X    $(CC) $(CFLAGS) -c screen.c
  593. X
  594. help.o: help.c screen.h config.h extern.h
  595. X    $(CC) $(CFLAGS) -c help.c
  596. X
  597. fileio.o: fileio.c screen.h config.h extern.h
  598. X    $(CC) $(CFLAGS) -c fileio.c
  599. X
  600. ansi.o: ansi.c screen.h config.h ansi.h extern.h
  601. X    $(CC) $(CFLAGS) -c ansi.c
  602. X
  603. mark.o: mark.c screen.h config.h ansi.h extern.h
  604. X    $(CC) $(CFLAGS) -c mark.c
  605. X
  606. window.o: window.c config.h screen.h  extern.h
  607. X    $(CC) $(CFLAGS) -c window.c
  608. X
  609. socket.o: socket.c config.h screen.h  extern.h
  610. X    $(CC) $(CFLAGS) -c socket.c
  611. X
  612. putenv.o: putenv.c config.h
  613. X    $(CC) $(CFLAGS) -c putenv.c
  614. X
  615. X
  616. clean:
  617. X    rm -f $(OFILES) screen
  618. X
  619. lint:
  620. X    lint -I. $(CFILES)
  621. X
  622. saber:
  623. X    #load $(CFLAGS) screen.c ansi.c $(LIBS)
  624. END_OF_FILE
  625. if test 1525 -ne `wc -c <'config/Makefile.putenv'`; then
  626.     echo shar: \"'config/Makefile.putenv'\" unpacked with wrong size!
  627. fi
  628. # end of 'config/Makefile.putenv'
  629. fi
  630. if test -f 'config/Makefile.sco32' -a "${1}" != "-c" ; then 
  631.   echo shar: Will not clobber existing file \"'config/Makefile.sco32'\"
  632. else
  633. echo shar: Extracting \"'config/Makefile.sco32'\" \(1359 characters\)
  634. sed "s/^X//" >'config/Makefile.sco32' <<'END_OF_FILE'
  635. X#
  636. X# Makefile for screen
  637. X#
  638. X# See config.h for configuration options.
  639. X#
  640. X
  641. X# If you choose to compile with the tried and true:
  642. X#CC= cc
  643. X#CFLAGS= -O
  644. X#CFLAGS= -g -DTMPTEST -DDEBUG
  645. X#CFLAGS= -g 
  646. X#LDFLAGS=
  647. X
  648. X# If you're using GNU C, be sure to use the -traditional flag:
  649. CC= gcc
  650. CFLAGS = -traditional -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
  651. X#CFLAGS= -g -traditional -DTMPTEST
  652. X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
  653. LDFLAGS= -s
  654. X
  655. X#LIBS= nmalloc.o -ltermcap 
  656. LIBS= -lcrypt_d -ltinfo
  657. X
  658. CFILES=    screen.c ansi.c help.c fileio.c mark.c window.c socket.c
  659. OFILES=    screen.o ansi.o help.o fileio.o mark.o window.o socket.o
  660. X
  661. screen: $(OFILES)
  662. X    $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
  663. X
  664. screen.o: screen.c screen.h config.h patchlevel.h extern.h
  665. X    $(CC) $(CFLAGS) -c screen.c
  666. X
  667. help.o: help.c screen.h config.h ansi.h extern.h
  668. X    $(CC) $(CFLAGS) -c help.c
  669. X
  670. fileio.o: fileio.c screen.h config.h extern.h
  671. X    $(CC) $(CFLAGS) -c fileio.c
  672. X
  673. ansi.o: ansi.c screen.h config.h ansi.h extern.h
  674. X    $(CC) $(CFLAGS) -c ansi.c
  675. X
  676. mark.o: mark.c screen.h config.h ansi.h extern.h
  677. X    $(CC) $(CFLAGS) -c mark.c
  678. X
  679. window.o: window.c config.h screen.h  extern.h
  680. X    $(CC) $(CFLAGS) -c window.c
  681. X
  682. socket.o: socket.c config.h screen.h  extern.h
  683. X    $(CC) $(CFLAGS) -c socket.c
  684. X
  685. clean:
  686. X    rm -f $(OFILES) screen
  687. X
  688. lint:
  689. X    lint -I. $(CFILES)
  690. X
  691. saber:
  692. X    #load $(CFLAGS) screen.c ansi.c $(LIBS)
  693. END_OF_FILE
  694. if test 1359 -ne `wc -c <'config/Makefile.sco32'`; then
  695.     echo shar: \"'config/Makefile.sco32'\" unpacked with wrong size!
  696. fi
  697. # end of 'config/Makefile.sco32'
  698. fi
  699. if test -f 'config/Makefile.sgi' -a "${1}" != "-c" ; then 
  700.   echo shar: Will not clobber existing file \"'config/Makefile.sgi'\"
  701. else
  702. echo shar: Extracting \"'config/Makefile.sgi'\" \(1703 characters\)
  703. sed "s/^X//" >'config/Makefile.sgi' <<'END_OF_FILE'
  704. X#
  705. X# Makefile for screen
  706. X#
  707. X# See config.h for configuration options.
  708. X#
  709. X
  710. X# If you choose to compile with the tried and true:
  711. CC= cc
  712. X# Compiled on SGI MIPS Iris4D/20 running Irix 3.3.2, compiler doesn't define us 
  713. X# any specific id so we define it here, maybe it should be defined in config.h
  714. X#CFLAGS= -O -DMIPS -DSGI -I/usr/include/bsd
  715. X#CFLAGS= -g -DTMPTEST -DDEBUG -DMIPS -DSGI -I/usr/include/bsd
  716. CFLAGS= -g -DMIPS -DSGI -I/usr/include/bsd
  717. LDFLAGS=
  718. X
  719. X# If you're using GNU C, be sure to use the -traditional flag:
  720. X#CC= gcc
  721. X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
  722. X#CFLAGS= -traditional -O
  723. X#CFLAGS= -g -traditional -DTMPTEST
  724. X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
  725. X#LDFLAGS= -s
  726. X
  727. X#LIBS= nmalloc.o -ltermcap 
  728. X#LIBS= -ltermcap
  729. X# mld needed on MIPS to have nlist for loadaverage
  730. LIBS= -ltermcap -lsun -lbsd -lmld -lc_s
  731. X
  732. CFILES=    screen.c ansi.c help.c fileio.c mark.c window.c socket.c
  733. OFILES=    screen.o ansi.o help.o fileio.o mark.o window.o socket.o
  734. X
  735. screen: $(OFILES)
  736. X    $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
  737. X
  738. screen.o: screen.c screen.h config.h patchlevel.h extern.h
  739. X    $(CC) $(CFLAGS) -c screen.c
  740. X
  741. help.o: help.c screen.h config.h extern.h
  742. X    $(CC) $(CFLAGS) -c help.c
  743. X
  744. fileio.o: fileio.c screen.h config.h extern.h
  745. X    $(CC) $(CFLAGS) -c fileio.c
  746. X
  747. ansi.o: ansi.c screen.h config.h ansi.h extern.h
  748. X    $(CC) $(CFLAGS) -c ansi.c
  749. X
  750. mark.o: mark.c screen.h config.h ansi.h extern.h
  751. X    $(CC) $(CFLAGS) -c mark.c
  752. X
  753. window.o: window.c config.h screen.h  extern.h
  754. X    $(CC) $(CFLAGS) -c window.c
  755. X
  756. socket.o: socket.c config.h screen.h  extern.h
  757. X    $(CC) $(CFLAGS) -c socket.c
  758. X
  759. clean:
  760. X    rm -f $(OFILES) screen
  761. X
  762. lint:
  763. X    lint -I. $(CFILES)
  764. X
  765. saber:
  766. X    #load $(CFLAGS) screen.c ansi.c $(LIBS)
  767. END_OF_FILE
  768. if test 1703 -ne `wc -c <'config/Makefile.sgi'`; then
  769.     echo shar: \"'config/Makefile.sgi'\" unpacked with wrong size!
  770. fi
  771. # end of 'config/Makefile.sgi'
  772. fi
  773. if test -f 'config/Makefile.svr4' -a "${1}" != "-c" ; then 
  774.   echo shar: Will not clobber existing file \"'config/Makefile.svr4'\"
  775. else
  776. echo shar: Extracting \"'config/Makefile.svr4'\" \(1494 characters\)
  777. sed "s/^X//" >'config/Makefile.svr4' <<'END_OF_FILE'
  778. X#
  779. X# Makefile for screen
  780. X#
  781. X# See config.h for configuration options.
  782. X#
  783. X
  784. X# If you choose to compile with the tried and true:
  785. CC= cc
  786. CFLAGS= -O -DNEEDSETENV
  787. X#CFLAGS= -g -DTMPTEST -DDEBUG
  788. X#CFLAGS= -g 
  789. LDFLAGS=
  790. X
  791. X# If you're using GNU C, be sure to use the -traditional flag:
  792. X#CC= gcc
  793. X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
  794. X#CFLAGS= -traditional -O
  795. X#CFLAGS= -g -traditional -DTMPTEST
  796. X#CFLAGS= -g -traditional -DTMPTEST -DDEBUG
  797. X#LDFLAGS= -s
  798. X
  799. X#LIBS= nmalloc.o -ltermcap 
  800. X#LIBS= -ltermcap 
  801. X
  802. X# Use the following line on SVR4
  803. LIBS= -ltermlib -lelf
  804. X
  805. CFILES=    screen.c ansi.c help.c fileio.c mark.c window.c socket.c putenv.c
  806. OFILES=    screen.o ansi.o help.o fileio.o mark.o window.o socket.o putenv.o
  807. X
  808. screen: $(OFILES)
  809. X    $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
  810. X
  811. screen.o: screen.c screen.h config.h patchlevel.h extern.h
  812. X    $(CC) $(CFLAGS) -c screen.c
  813. X
  814. help.o: help.c screen.h config.h extern.h
  815. X    $(CC) $(CFLAGS) -c help.c
  816. X
  817. fileio.o: fileio.c screen.h config.h extern.h
  818. X    $(CC) $(CFLAGS) -c fileio.c
  819. X
  820. ansi.o: ansi.c screen.h config.h ansi.h extern.h
  821. X    $(CC) $(CFLAGS) -c ansi.c
  822. X
  823. mark.o: mark.c screen.h config.h ansi.h extern.h
  824. X    $(CC) $(CFLAGS) -c mark.c
  825. X
  826. window.o: window.c config.h screen.h  extern.h
  827. X    $(CC) $(CFLAGS) -c window.c
  828. X
  829. socket.o: socket.c config.h screen.h  extern.h
  830. X    $(CC) $(CFLAGS) -c socket.c
  831. X
  832. putenv.o: putenv.c
  833. X    $(CC) $(CFLAGS) -c putenv.c
  834. X
  835. clean:
  836. X    rm -f $(OFILES) screen
  837. X
  838. lint:
  839. X    lint -I. $(CFILES)
  840. X
  841. saber:
  842. X    #load $(CFLAGS) screen.c ansi.c $(LIBS)
  843. END_OF_FILE
  844. if test 1494 -ne `wc -c <'config/Makefile.svr4'`; then
  845.     echo shar: \"'config/Makefile.svr4'\" unpacked with wrong size!
  846. fi
  847. # end of 'config/Makefile.svr4'
  848. fi
  849. if test -f 'config/Makefile.xenix' -a "${1}" != "-c" ; then 
  850.   echo shar: Will not clobber existing file \"'config/Makefile.xenix'\"
  851. else
  852. echo shar: Extracting \"'config/Makefile.xenix'\" \(1768 characters\)
  853. sed "s/^X//" >'config/Makefile.xenix' <<'END_OF_FILE'
  854. X#
  855. X# Makefile for screen under SCO XENIX 2.3.[01]
  856. X#
  857. X# See config.h for configuration options.
  858. X#
  859. X# Ronald Khoo <ronald@robobar.co.uk>:
  860. X# The -l2.3 load library is needed for compiling with the SCO UNIX
  861. X# XENIX cross development libraries.  You will probably have to remove
  862. X# it for use with SCO XENIX 2.3.[01] development systems. If you have a 2.2
  863. X# development system, you will need select.o from Keith Gabryelski's news
  864. X# posting of a couple of years back -- I doubt that any of you are in
  865. X# that situation.
  866. X
  867. X# If you choose to compile with the tried and true:
  868. X#CC= cc
  869. X#CFLAGS= -O
  870. X#CFLAGS= -g -DTMPTEST -DDEBUG
  871. X#CFLAGS= -g 
  872. LDFLAGS=
  873. X
  874. X# If you're using GNU C, be sure to use the -traditional flag:
  875. CC= gcc
  876. X#CFLAGS = -O -fstrength-reduce -fcombine-regs -finline-functions #-Wall
  877. CFLAGS= -traditional -O -DM_TERMCAP -DNO_PROTOTYPE
  878. X#LDFLAGS= -s
  879. X
  880. X#LIBS= nmalloc.o -ltermcap 
  881. LIBS= -ltermcap -lcrypt -ldir -l2.3 -lx
  882. X
  883. CFILES=    screen.c ansi.c help.c fileio.c mark.c window.c socket.c
  884. OFILES=    screen.o ansi.o help.o fileio.o mark.o window.o socket.o
  885. X
  886. screen: $(OFILES)
  887. X    $(CC) $(CFLAGS) $(LDFLAGS) -o screen $(OFILES) $(LIBS)
  888. X
  889. screen.o: screen.c screen.h config.h patchlevel.h extern.h
  890. X    $(CC) $(CFLAGS) -c screen.c
  891. X
  892. help.o: help.c screen.h config.h extern.h
  893. X    $(CC) $(CFLAGS) -c help.c
  894. X
  895. fileio.o: fileio.c screen.h config.h extern.h
  896. X    $(CC) $(CFLAGS) -c fileio.c
  897. X
  898. ansi.o: ansi.c screen.h config.h ansi.h extern.h
  899. X    $(CC) $(CFLAGS) -c ansi.c
  900. X
  901. mark.o: mark.c screen.h config.h ansi.h extern.h
  902. X    $(CC) $(CFLAGS) -c mark.c
  903. X
  904. window.o: window.c config.h screen.h  extern.h
  905. X    $(CC) $(CFLAGS) -c window.c
  906. X
  907. socket.o: socket.c config.h screen.h  extern.h
  908. X    $(CC) $(CFLAGS) -c socket.c
  909. X
  910. clean:
  911. X    rm -f $(OFILES) screen
  912. X
  913. lint:
  914. X    lint -I. $(CFILES)
  915. X
  916. saber:
  917. X    #load $(CFLAGS) screen.c ansi.c $(LIBS)
  918. END_OF_FILE
  919. if test 1768 -ne `wc -c <'config/Makefile.xenix'`; then
  920.     echo shar: \"'config/Makefile.xenix'\" unpacked with wrong size!
  921. fi
  922. # end of 'config/Makefile.xenix'
  923. fi
  924. if test -f 'config/config.hpux' -a "${1}" != "-c" ; then 
  925.   echo shar: Will not clobber existing file \"'config/config.hpux'\"
  926. else
  927. echo shar: Extracting \"'config/config.hpux'\" \(8091 characters\)
  928. sed "s/^X//" >'config/config.hpux' <<'END_OF_FILE'
  929. X/* Copyright (c) 1991
  930. X *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  931. X *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  932. X * Copyright (c) 1987 Oliver Laumann
  933. X *
  934. X * This program is free software; you can redistribute it and/or modify
  935. X * it under the terms of the GNU General Public License as published by
  936. X * the Free Software Foundation; either version 1, or (at your option)
  937. X * any later version.
  938. X *
  939. X * This program is distributed in the hope that it will be useful,
  940. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  941. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  942. X * GNU General Public License for more details.
  943. X *
  944. X * You should have received a copy of the GNU General Public License
  945. X * along with this program (see the file COPYING); if not, write to the
  946. X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  947. X *
  948. X * Noteworthy contributors to screen's design and implementation:
  949. X *    Wayne Davison (davison@borland.com)
  950. X *    Patrick Wolfe (pat@kai.com, kailand!pat)
  951. X *    Bart Schaefer (schaefer@cse.ogi.edu)
  952. X *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  953. X *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  954. X *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  955. X *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  956. X *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  957. X *    Marc Boucher (marc@CAM.ORG)
  958. X *
  959. X ****************************************************************
  960. X * $Id: config.hpux,v 1.18 91/10/06 11:58:43 jnweiger Exp $ FAU
  961. X */
  962. X
  963. X
  964. X/*
  965. X *        Beginning of User Configuration Section
  966. X *
  967. X * First off, you should decide if you intend to install screen set-uid to
  968. X * root.  This isn't necessary to use screen, but it allows the pseudo-ttys
  969. X * to be set to their proper owner (for security purposes), /etc/utmp to be
  970. X * updated, and /dev/kmem to be accessed to read the load average values.
  971. X *
  972. X * An alternative to installing screen set-uid root is to install it set-gid
  973. X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
  974. X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
  975. X * custom group to give you both.  The final alternative is to omit /etc/utmp
  976. X * updating and the /dev/kmem reading (see the following defines) and simply
  977. X * run screen as a regular program -- its major functions will be unaffected.
  978. X */
  979. X
  980. X
  981. X/*
  982. X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
  983. X */
  984. X#define POSIX
  985. X
  986. X/*
  987. X * Define BSDJOBS if you have BSD-style job control (both process
  988. X * groups and a tty that deals correctly with them).
  989. X */
  990. X#define BSDJOBS
  991. X
  992. X/*
  993. X * Define TERMIO if you have struct termio instead of struct sgttyb.
  994. X * This is usually the case for SVID systems, where BSD uses sgttyb.
  995. X * POSIX systems should define this anyway, even though they use
  996. X * struct termios.
  997. X */
  998. X#define TERMIO
  999. X
  1000. X/*
  1001. X * Define TERMINFO if your machine emulates the termcap routines
  1002. X * with the terminfo database. 
  1003. X * Thus the .screenrc file is parsed for 
  1004. X * the command 'terminfo' and not 'termcap'.
  1005. X */
  1006. X#define TERMINFO
  1007. X
  1008. X/*
  1009. X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
  1010. X */
  1011. X#define SYSV
  1012. X
  1013. X/*
  1014. X * Define SIGVOID if your signal handlers return void.  On older
  1015. X * systems, signal returns int, but on newer ones, it returns void.
  1016. X */
  1017. X#define SIGVOID 
  1018. X
  1019. X/*
  1020. X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
  1021. X */
  1022. X#define DIRENT
  1023. X
  1024. X/*
  1025. X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
  1026. X */
  1027. X#define SUIDROOT
  1028. X
  1029. X/*
  1030. X * If screen is installed with permissions to update /etc/utmp (such as if
  1031. X * it is installed set-uid root), define UTMPOK.  Set LOGINDEFAULT to one (1)
  1032. X * if you want entries added to /etc/utmp by default, else set it to zero (0).
  1033. X */
  1034. X#define UTMPOK
  1035. X#define LOGINDEFAULT    1
  1036. X
  1037. X/*
  1038. X * If your system has getutent(), pututline(), etc. to write to the
  1039. X * utmp file, define GETUTENT.
  1040. X */
  1041. X#define GETUTENT
  1042. X
  1043. X/*
  1044. X * Define UTHOST if the utmp file has a host field.
  1045. X */
  1046. X#define UTHOST
  1047. X
  1048. X/*
  1049. X * If UTMPOK is defined and your system (incorrectly) counts logins by
  1050. X * counting non-null entries in /etc/utmp (instead of counting non-null
  1051. X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
  1052. X * to have screen put an upper-limit on the number of entries to write
  1053. X * into /etc/utmp.  This helps to keep you from exceeding a limited-user
  1054. X * license.
  1055. X */
  1056. X#undef USRLIMIT
  1057. X
  1058. X/*
  1059. X * If screen is NOT installed set-uid root, screen can provide tty security
  1060. X * by exclusively locking the ptys.  While this keeps other users from
  1061. X * opening your ptys, it also keeps your own subprocesses from being able
  1062. X * to open /dev/tty.  Define LOCKPTY to add this exclusive locking.
  1063. X */
  1064. X#undef LOCKPTY
  1065. X
  1066. X/*
  1067. X * If your system does not have the calls setre(s)uid() and setre(s)gid(),
  1068. X * define NOREUID to force screen to use a forked process to safely create
  1069. X * output files without retaining any special privileges. 
  1070. X * (Output logging will be disabled, however.)
  1071. X */
  1072. X#undef NOREUID
  1073. X
  1074. X/*
  1075. X * If you want the "time" command to display the current load average
  1076. X * you must install screen with the needed privileges to read /dev/kmem
  1077. X * and have a load average format that screen understands.  We handle the
  1078. X * following formats:  3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
  1079. X */
  1080. X#define LOADAV_3DOUBLES
  1081. X#undef  LOADAV_3LONGS
  1082. X#undef  LOADAV_4LONGS
  1083. X
  1084. X/*
  1085. X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
  1086. X * getttyent(3) library functions, define GETTTYENT.
  1087. X */
  1088. X#undef GETTTYENT
  1089. X
  1090. X/*
  1091. X * If your version of NFS supports named sockets and you install screen
  1092. X * suid root, you may need to define NFS_HACK for screen to be able to
  1093. X * open the sockets.
  1094. X */
  1095. X#undef NFS_HACK
  1096. X
  1097. X/*
  1098. X * By default screen will create a directory named ".screen" in the user's
  1099. X * HOME directory to contain the named sockets.  If this causes you problems
  1100. X * (e.g. some user's HOME directories are NFS-mounted and don't support
  1101. X * named sockets) you can have screen create the socket directories in a
  1102. X * common subdirectory, such as /tmp or /usr/tmp.  It makes things a little
  1103. X * more secure if you choose a directory where the "sticky" bit is on, but
  1104. X * this isn't required.  Screen will name the subdirectories "S-$USER"
  1105. X * (e.g /tmp/S-davison).
  1106. X * Do not define TMPTEST unless it's for debugging purpose.
  1107. X * If you want to have your socket directory in "/tmp/screens" then
  1108. X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
  1109. X */
  1110. X#define LOCALSOCKDIR
  1111. X
  1112. X#ifdef LOCALSOCKDIR
  1113. X# ifndef TMPTEST
  1114. X#  define SOCKDIR "/local/screens"
  1115. X# else
  1116. X#  define SOCKDIR "/tmp/screens"
  1117. X# endif
  1118. X#endif
  1119. X
  1120. X/*
  1121. X * Define USEBCOPY if the bcopy() from your system's C library supports the
  1122. X * overlapping of source and destination blocks.  When undefined, screen
  1123. X * uses its own (probably slower) version of bcopy().
  1124. X */
  1125. X#undef USEBCOPY
  1126. X
  1127. X/*
  1128. X * If you'd rather see the status line on the first line of your
  1129. X * terminal rather than the last, define TOPSTAT.
  1130. X */
  1131. X#undef TOPSTAT
  1132. X
  1133. X/*
  1134. X * If your system has vsprintf() and requires the use of the macros in
  1135. X * "varargs.h" to use functions with variable arguments,
  1136. X * define USEVARARGS.
  1137. X */
  1138. X#undef USEVARARGS
  1139. X
  1140. X/*
  1141. X * Define this if your system supports named pipes.
  1142. X */
  1143. X#undef NAMEDPIPE
  1144. X
  1145. X/*
  1146. X * here come the erlangen extensions to screen:
  1147. X * define LOCK if you want to use a lock program for a screenlock.
  1148. X * define PASSWORD for secure reattach of your screen.
  1149. X * define COPY_PASTE to use the famous hacker's treasure zoo.
  1150. X * define POW_DETACH to have a detach_and_logout key.
  1151. X * define REMOTE_DETACH (-d option) to move screen between terminals.
  1152. X * (jw)
  1153. X */
  1154. X#define LOCK
  1155. X#define PASSWORD
  1156. X#define COPY_PASTE
  1157. X#define REMOTE_DETACH
  1158. X#define POW_DETACH
  1159. X
  1160. X/*
  1161. X * As error messages are mostly meaningless to the user, we
  1162. X * try to throw out phrases that are somewhat more familiar
  1163. X * to ...well, at least familiar to us NetHack players.
  1164. X */
  1165. X#define NETHACK
  1166. X
  1167. X/*
  1168. X * and another sneaky feature: screen sources two startup files.
  1169. X * first a global file with a path specified here, second
  1170. X * your local $HOME/.screenrc
  1171. X * Don't define this, if you don't want it.
  1172. X */
  1173. X#define ETCSCREENRC "/local/etc/screenrc"
  1174. X
  1175. X/*
  1176. X *    End of User Configuration Section
  1177. X */
  1178. END_OF_FILE
  1179. if test 8091 -ne `wc -c <'config/config.hpux'`; then
  1180.     echo shar: \"'config/config.hpux'\" unpacked with wrong size!
  1181. fi
  1182. # end of 'config/config.hpux'
  1183. fi
  1184. if test -f 'config/config.mot88' -a "${1}" != "-c" ; then 
  1185.   echo shar: Will not clobber existing file \"'config/config.mot88'\"
  1186. else
  1187. echo shar: Extracting \"'config/config.mot88'\" \(8081 characters\)
  1188. sed "s/^X//" >'config/config.mot88' <<'END_OF_FILE'
  1189. X/* Copyright (c) 1991
  1190. X *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  1191. X *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  1192. X * Copyright (c) 1987 Oliver Laumann
  1193. X *
  1194. X * This program is free software; you can redistribute it and/or modify
  1195. X * it under the terms of the GNU General Public License as published by
  1196. X * the Free Software Foundation; either version 1, or (at your option)
  1197. X * any later version.
  1198. X *
  1199. X * This program is distributed in the hope that it will be useful,
  1200. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  1201. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1202. X * GNU General Public License for more details.
  1203. X *
  1204. X * You should have received a copy of the GNU General Public License
  1205. X * along with this program (see the file COPYING); if not, write to the
  1206. X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1207. X *
  1208. X * Noteworthy contributors to screen's design and implementation:
  1209. X *    Wayne Davison (davison@borland.com)
  1210. X *    Patrick Wolfe (pat@kai.com, kailand!pat)
  1211. X *    Bart Schaefer (schaefer@cse.ogi.edu)
  1212. X *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  1213. X *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  1214. X *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  1215. X *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  1216. X *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  1217. X *    Marc Boucher (marc@CAM.ORG)
  1218. X *
  1219. X ****************************************************************
  1220. X * $Id: config.mot88,v 1.8 91/10/06 11:58:54 jnweiger Exp $ FAU
  1221. X */
  1222. X
  1223. X
  1224. X/*
  1225. X *        Beginning of User Configuration Section
  1226. X *
  1227. X * First off, you should decide if you intend to install screen set-uid to
  1228. X * root.  This isn't necessary to use screen, but it allows the pseudo-ttys
  1229. X * to be set to their proper owner (for security purposes), /etc/utmp to be
  1230. X * updated, and /dev/kmem to be accessed to read the load average values.
  1231. X *
  1232. X * An alternative to installing screen set-uid root is to install it set-gid
  1233. X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
  1234. X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
  1235. X * custom group to give you both.  The final alternative is to omit /etc/utmp
  1236. X * updating and the /dev/kmem reading (see the following defines) and simply
  1237. X * run screen as a regular program -- its major functions will be unaffected.
  1238. X */
  1239. X
  1240. X
  1241. X/*
  1242. X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
  1243. X */
  1244. X#define POSIX
  1245. X
  1246. X/*
  1247. X * Define BSDJOBS if you have BSD-style job control (both process
  1248. X * groups and a tty that deals correctly with them).
  1249. X */
  1250. X#define BSDJOBS
  1251. X
  1252. X/*
  1253. X * Define TERMIO if you have struct termio instead of struct sgttyb.
  1254. X * This is usually the case for SVID systems, where BSD uses sgttyb.
  1255. X * POSIX systems should define this anyway, even though they use
  1256. X * struct termios.
  1257. X */
  1258. X#define TERMIO
  1259. X
  1260. X/*
  1261. X * Define TERMINFO if your machine emulates the termcap routines
  1262. X * with the terminfo database.
  1263. X * Thus the .screenrc file is parsed for
  1264. X * the command 'terminfo' and not 'termcap'.
  1265. X */
  1266. X#define TERMINFO
  1267. X
  1268. X/*
  1269. X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
  1270. X */
  1271. X#define SYSV
  1272. X
  1273. X/*
  1274. X * Define SIGVOID if your signal handlers return void.  On older
  1275. X * systems, signal returns int, but on newer ones, it returns void.
  1276. X */
  1277. X#define SIGVOID 
  1278. X
  1279. X/*
  1280. X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
  1281. X */
  1282. X#define DIRENT
  1283. X
  1284. X/*
  1285. X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
  1286. X */
  1287. X#define SUIDROOT
  1288. X
  1289. X/*
  1290. X * If screen is installed with permissions to update /etc/utmp (such as if
  1291. X * it is installed set-uid root), define UTMPOK.  Set LOGINDEFAULT to one (1)
  1292. X * if you want entries added to /etc/utmp by default, else set it to zero (0).
  1293. X */
  1294. X#undef UTMPOK
  1295. X#define LOGINDEFAULT    1
  1296. X
  1297. X/*
  1298. X * If your system has getutent(), pututline(), etc. to write to the
  1299. X * utmp file, define GETUTENT.
  1300. X */
  1301. X#define GETUTENT
  1302. X
  1303. X/*
  1304. X * Define UTHOST if the utmp file has a host field.
  1305. X */
  1306. X#undef UTHOST
  1307. X
  1308. X/*
  1309. X * If UTMPOK is defined and your system (incorrectly) counts logins by
  1310. X * counting non-null entries in /etc/utmp (instead of counting non-null
  1311. X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
  1312. X * to have screen put an upper-limit on the number of entries to write
  1313. X * into /etc/utmp.  This helps to keep you from exceeding a limited-user
  1314. X * license.
  1315. X */
  1316. X#undef USRLIMIT
  1317. X
  1318. X/*
  1319. X * If screen is NOT installed set-uid root, screen can provide tty security
  1320. X * by exclusively locking the ptys.  While this keeps other users from
  1321. X * opening your ptys, it also keeps your own subprocesses from being able
  1322. X * to open /dev/tty.  Define LOCKPTY to add this exclusive locking.
  1323. X */
  1324. X#undef LOCKPTY
  1325. X
  1326. X/*
  1327. X * If your system does not have the calls setreuid() and setregid(), define
  1328. X * NOREUID to force screen to use a forked process to safely create output
  1329. X * files without retaining any special privileges.  (Output logging will be
  1330. X * disabled, however.)
  1331. X */
  1332. X#undef NOREUID
  1333. X
  1334. X/*
  1335. X * If you want the "time" command to display the current load average
  1336. X * you must install screen with the needed privileges to read /dev/kmem
  1337. X * and have a load average format that screen understands.  We handle the
  1338. X * following formats:  3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
  1339. X */
  1340. X#define  LOADAV_3DOUBLES
  1341. X#undef LOADAV_3LONGS
  1342. X#undef  LOADAV_4LONGS
  1343. X
  1344. X/*
  1345. X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
  1346. X * getttyent(3) library functions, define GETTTYENT.
  1347. X */
  1348. X#undef GETTTYENT
  1349. X
  1350. X/*
  1351. X * If your version of NFS supports named sockets and you install screen
  1352. X * suid root, you may need to define NFS_HACK for screen to be able to
  1353. X * open the sockets.
  1354. X */
  1355. X#undef NFS_HACK
  1356. X
  1357. X/*
  1358. X * By default screen will create a directory named ".screen" in the user's
  1359. X * HOME directory to contain the named sockets.  If this causes you problems
  1360. X * (e.g. some user's HOME directories are NFS-mounted and don't support
  1361. X * named sockets) you can have screen create the socket directories in a
  1362. X * common subdirectory, such as /tmp or /usr/tmp.  It makes things a little
  1363. X * more secure if you choose a directory where the "sticky" bit is on, but
  1364. X * this isn't required.  Screen will name the subdirectories "S-$USER"
  1365. X * (e.g /tmp/S-davison).
  1366. X * Do not define TMPTEST unless it's for debugging purpose.
  1367. X * If you want to have your socket directory in "/tmp/screens" then
  1368. X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
  1369. X */
  1370. X#define LOCALSOCKDIR
  1371. X
  1372. X#ifdef LOCALSOCKDIR
  1373. X# ifndef TMPTEST
  1374. X#  define SOCKDIR "/local/screens"
  1375. X# else
  1376. X#  define SOCKDIR "/tmp/screens"
  1377. X# endif
  1378. X#endif
  1379. X
  1380. X/*
  1381. X * Define USEBCOPY if the bcopy() from your system's C library supports the
  1382. X * overlapping of source and destination blocks.  When undefined, screen
  1383. X * uses its own (probably slower) version of bcopy().
  1384. X */
  1385. X#undef USEBCOPY
  1386. X
  1387. X/*
  1388. X * If you'd rather see the status line on the first line of your
  1389. X * terminal rather than the last, define TOPSTAT.
  1390. X */
  1391. X#undef TOPSTAT
  1392. X
  1393. X/*
  1394. X * If your system has vsprintf() and requires the use of the macros in
  1395. X * "varargs.h" to use functions with variable arguments,
  1396. X * define USEVARARGS.
  1397. X */
  1398. X#undef USEVARARGS
  1399. X
  1400. X/*
  1401. X * Define this if your system supports named pipes.
  1402. X */
  1403. X#undef NAMEDPIPE
  1404. X
  1405. X/*
  1406. X * here come the erlangen extensions to screen:
  1407. X * define LOCK if you want to use a lock program for a screenlock.
  1408. X * define PASSWORD for secure reattach of your screen.
  1409. X * define COPY_PASTE to use the famous hacker's treasure zoo.
  1410. X * define POW_DETACH to have a detach_and_logout key.
  1411. X * define REMOTE_DETACH (-d option) to move screen between terminals.
  1412. X * (jw)
  1413. X */
  1414. X#define LOCK
  1415. X#define PASSWORD
  1416. X#define COPY_PASTE
  1417. X#define REMOTE_DETACH
  1418. X#define POW_DETACH
  1419. X
  1420. X/*
  1421. X * As error messages are mostly meaningless to the user, we
  1422. X * try to throw out phrases that are somewhat more familiar
  1423. X * to ...well, at least familiar to us NetHack players.
  1424. X */
  1425. X#undef NETHACK 
  1426. X
  1427. X/*
  1428. X * and another sneaky feature: screen sources two startup files.
  1429. X * first a global file with a path specified here, second
  1430. X * your local $HOME/.screenrc
  1431. X * Don't define this, if you don't want it.
  1432. X */
  1433. X#define ETCSCREENRC "/local/etc/screenrc"
  1434. X
  1435. X/*
  1436. X *    End of User Configuration Section
  1437. X */
  1438. END_OF_FILE
  1439. if test 8081 -ne `wc -c <'config/config.mot88'`; then
  1440.     echo shar: \"'config/config.mot88'\" unpacked with wrong size!
  1441. fi
  1442. # end of 'config/config.mot88'
  1443. fi
  1444. if test -f 'config/config.symmetry' -a "${1}" != "-c" ; then 
  1445.   echo shar: Will not clobber existing file \"'config/config.symmetry'\"
  1446. else
  1447. echo shar: Extracting \"'config/config.symmetry'\" \(8080 characters\)
  1448. sed "s/^X//" >'config/config.symmetry' <<'END_OF_FILE'
  1449. X/* Copyright (c) 1991
  1450. X *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  1451. X *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  1452. X * Copyright (c) 1987 Oliver Laumann
  1453. X *
  1454. X * This program is free software; you can redistribute it and/or modify
  1455. X * it under the terms of the GNU General Public License as published by
  1456. X * the Free Software Foundation; either version 1, or (at your option)
  1457. X * any later version.
  1458. X *
  1459. X * This program is distributed in the hope that it will be useful,
  1460. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  1461. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1462. X * GNU General Public License for more details.
  1463. X *
  1464. X * You should have received a copy of the GNU General Public License
  1465. X * along with this program (see the file COPYING); if not, write to the
  1466. X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1467. X *
  1468. X * Noteworthy contributors to screen's design and implementation:
  1469. X *    Wayne Davison (davison@borland.com)
  1470. X *    Patrick Wolfe (pat@kai.com, kailand!pat)
  1471. X *    Bart Schaefer (schaefer@cse.ogi.edu)
  1472. X *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  1473. X *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  1474. X *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  1475. X *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  1476. X *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  1477. X *    Marc Boucher (marc@CAM.ORG)
  1478. X *
  1479. X ****************************************************************
  1480. X * $Id: config.symmetry,v 1.14 91/10/06 11:59:04 jnweiger Exp $ FAU
  1481. X */
  1482. X
  1483. X
  1484. X/*
  1485. X *        Beginning of User Configuration Section
  1486. X *
  1487. X * First off, you should decide if you intend to install screen set-uid to
  1488. X * root.  This isn't necessary to use screen, but it allows the pseudo-ttys
  1489. X * to be set to their proper owner (for security purposes), /etc/utmp to be
  1490. X * updated, and /dev/kmem to be accessed to read the load average values.
  1491. X *
  1492. X * An alternative to installing screen set-uid root is to install it set-gid
  1493. X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
  1494. X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
  1495. X * custom group to give you both.  The final alternative is to omit /etc/utmp
  1496. X * updating and the /dev/kmem reading (see the following defines) and simply
  1497. X * run screen as a regular program -- its major functions will be unaffected.
  1498. X */
  1499. X
  1500. X
  1501. X/*
  1502. X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
  1503. X */
  1504. X#undef POSIX
  1505. X
  1506. X/*
  1507. X * Define BSDJOBS if you have BSD-style job control (both process
  1508. X * groups and a tty that deals correctly with them).
  1509. X */
  1510. X#define BSDJOBS
  1511. X
  1512. X/*
  1513. X * Define TERMIO if you have struct termio instead of struct sgttyb.
  1514. X * This is usually the case for SVID systems, where BSD uses sgttyb.
  1515. X * POSIX systems should define this anyway, even though they use
  1516. X * struct termios.
  1517. X */
  1518. X#undef TERMIO
  1519. X
  1520. X/*
  1521. X * Define TERMINFO if your machine emulates the termcap routines
  1522. X * with the terminfo database.
  1523. X * Thus the .screenrc file is parsed for
  1524. X * the command 'terminfo' and not 'termcap'.
  1525. X */
  1526. X#undef TERMINFO
  1527. X
  1528. X/*
  1529. X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
  1530. X */
  1531. X#undef SYSV
  1532. X
  1533. X/*
  1534. X * Define SIGVOID if your signal handlers return void.  On older
  1535. X * systems, signal returns int, but on newer ones, it returns void.
  1536. X */
  1537. X#undef SIGVOID 
  1538. X
  1539. X/*
  1540. X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
  1541. X */
  1542. X#undef DIRENT
  1543. X
  1544. X/*
  1545. X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
  1546. X */
  1547. X#define SUIDROOT
  1548. X
  1549. X/*
  1550. X * If screen is installed with permissions to update /etc/utmp (such as if
  1551. X * it is installed set-uid root), define UTMPOK.  Set LOGINDEFAULT to one (1)
  1552. X * if you want entries added to /etc/utmp by default, else set it to zero (0).
  1553. X */
  1554. X#define UTMPOK
  1555. X#define LOGINDEFAULT    1
  1556. X
  1557. X/*
  1558. X * If your system has getutent(), pututline(), etc. to write to the
  1559. X * utmp file, define GETUTENT.
  1560. X */
  1561. X#undef GETUTENT
  1562. X
  1563. X/*
  1564. X * Define UTHOST if the utmp file has a host field.
  1565. X */
  1566. X#define UTHOST
  1567. X
  1568. X/*
  1569. X * If UTMPOK is defined and your system (incorrectly) counts logins by
  1570. X * counting non-null entries in /etc/utmp (instead of counting non-null
  1571. X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
  1572. X * to have screen put an upper-limit on the number of entries to write
  1573. X * into /etc/utmp.  This helps to keep you from exceeding a limited-user
  1574. X * license.
  1575. X */
  1576. X#undef USRLIMIT
  1577. X
  1578. X/*
  1579. X * If screen is NOT installed set-uid root, screen can provide tty security
  1580. X * by exclusively locking the ptys.  While this keeps other users from
  1581. X * opening your ptys, it also keeps your own subprocesses from being able
  1582. X * to open /dev/tty.  Define LOCKPTY to add this exclusive locking.
  1583. X */
  1584. X#undef LOCKPTY
  1585. X
  1586. X/*
  1587. X * If your system does not have the calls setreuid() and setregid(), define
  1588. X * NOREUID to force screen to use a forked process to safely create output
  1589. X * files without retaining any special privileges.  (Output logging will be
  1590. X * disabled, however.)
  1591. X */
  1592. X#undef NOREUID
  1593. X
  1594. X/*
  1595. X * If you want the "time" command to display the current load average
  1596. X * you must install screen with the needed privileges to read /dev/kmem
  1597. X * and have a load average format that screen understands.  We handle the
  1598. X * following formats:  3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
  1599. X */
  1600. X#undef  LOADAV_3DOUBLES
  1601. X#define LOADAV_3LONGS
  1602. X#undef  LOADAV_4LONGS
  1603. X
  1604. X/*
  1605. X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
  1606. X * getttyent(3) library functions, define GETTTYENT.
  1607. X */
  1608. X#undef GETTTYENT
  1609. X
  1610. X/*
  1611. X * If your version of NFS supports named sockets and you install screen
  1612. X * suid root, you may need to define NFS_HACK for screen to be able to
  1613. X * open the sockets.
  1614. X */
  1615. X#undef NFS_HACK
  1616. X
  1617. X/*
  1618. X * By default screen will create a directory named ".screen" in the user's
  1619. X * HOME directory to contain the named sockets.  If this causes you problems
  1620. X * (e.g. some user's HOME directories are NFS-mounted and don't support
  1621. X * named sockets) you can have screen create the socket directories in a
  1622. X * common subdirectory, such as /tmp or /usr/tmp.  It makes things a little
  1623. X * more secure if you choose a directory where the "sticky" bit is on, but
  1624. X * this isn't required.  Screen will name the subdirectories "S-$USER"
  1625. X * (e.g /tmp/S-davison).
  1626. X * Do not define TMPTEST unless it's for debugging purpose.
  1627. X * If you want to have your socket directory in "/tmp/screens" then
  1628. X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
  1629. X */
  1630. X#define LOCALSOCKDIR
  1631. X
  1632. X#ifdef LOCALSOCKDIR
  1633. X# ifndef TMPTEST
  1634. X#  define SOCKDIR "/local/screens"
  1635. X# else
  1636. X#  define SOCKDIR "/tmp/screens"
  1637. X# endif
  1638. X#endif
  1639. X
  1640. X/*
  1641. X * Define USEBCOPY if the bcopy() from your system's C library supports the
  1642. X * overlapping of source and destination blocks.  When undefined, screen
  1643. X * uses its own (probably slower) version of bcopy().
  1644. X */
  1645. X#undef USEBCOPY
  1646. X
  1647. X/*
  1648. X * If you'd rather see the status line on the first line of your
  1649. X * terminal rather than the last, define TOPSTAT.
  1650. X */
  1651. X#undef TOPSTAT
  1652. X
  1653. X/*
  1654. X * If your system has vsprintf() and requires the use of the macros in
  1655. X * "varargs.h" to use functions with variable arguments,
  1656. X * define USEVARARGS.
  1657. X */
  1658. X#undef USEVARARGS
  1659. X
  1660. X/*
  1661. X * Define this if your system supports named pipes.
  1662. X */
  1663. X#undef NAMEDPIPE
  1664. X
  1665. X/*
  1666. X * here come the erlangen extensions to screen:
  1667. X * define LOCK if you want to use a lock program for a screenlock.
  1668. X * define PASSWORD for secure reattach of your screen.
  1669. X * define COPY_PASTE to use the famous hacker's treasure zoo.
  1670. X * define POW_DETACH to have a detach_and_logout key.
  1671. X * define REMOTE_DETACH (-d option) to move screen between terminals.
  1672. X * (jw)
  1673. X */
  1674. X#define LOCK
  1675. X#define PASSWORD
  1676. X#define COPY_PASTE
  1677. X#define REMOTE_DETACH
  1678. X#define POW_DETACH
  1679. X
  1680. X/*
  1681. X * As error messages are mostly meaningless to the user, we
  1682. X * try to throw out phrases that are somewhat more familiar
  1683. X * to ...well, at least familiar to us NetHack players.
  1684. X */
  1685. X#define NETHACK
  1686. X
  1687. X/*
  1688. X * and another sneaky feature: screen sources two startup files.
  1689. X * first a global file with a path specified here, second
  1690. X * your local $HOME/.screenrc
  1691. X * Don't define this, if you don't want it.
  1692. X */
  1693. X#define ETCSCREENRC "/local/etc/screenrc"
  1694. X
  1695. X/*
  1696. X *    End of User Configuration Section
  1697. X */
  1698. END_OF_FILE
  1699. if test 8080 -ne `wc -c <'config/config.symmetry'`; then
  1700.     echo shar: \"'config/config.symmetry'\" unpacked with wrong size!
  1701. fi
  1702. # end of 'config/config.symmetry'
  1703. fi
  1704. if test -f 'config/config.sysv68' -a "${1}" != "-c" ; then 
  1705.   echo shar: Will not clobber existing file \"'config/config.sysv68'\"
  1706. else
  1707. echo shar: Extracting \"'config/config.sysv68'\" \(8082 characters\)
  1708. sed "s/^X//" >'config/config.sysv68' <<'END_OF_FILE'
  1709. X/* Copyright (c) 1991
  1710. X *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  1711. X *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  1712. X * Copyright (c) 1987 Oliver Laumann
  1713. X *
  1714. X * This program is free software; you can redistribute it and/or modify
  1715. X * it under the terms of the GNU General Public License as published by
  1716. X * the Free Software Foundation; either version 1, or (at your option)
  1717. X * any later version.
  1718. X *
  1719. X * This program is distributed in the hope that it will be useful,
  1720. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  1721. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1722. X * GNU General Public License for more details.
  1723. X *
  1724. X * You should have received a copy of the GNU General Public License
  1725. X * along with this program (see the file COPYING); if not, write to the
  1726. X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1727. X *
  1728. X * Noteworthy contributors to screen's design and implementation:
  1729. X *    Wayne Davison (davison@borland.com)
  1730. X *    Patrick Wolfe (pat@kai.com, kailand!pat)
  1731. X *    Bart Schaefer (schaefer@cse.ogi.edu)
  1732. X *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  1733. X *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  1734. X *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  1735. X *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  1736. X *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  1737. X *    Marc Boucher (marc@CAM.ORG)
  1738. X *
  1739. X ****************************************************************
  1740. X * $Id: config.sysv68,v 1.6 91/10/06 11:59:06 jnweiger Exp $ FAU
  1741. X */
  1742. X
  1743. X
  1744. X/*
  1745. X *        Beginning of User Configuration Section
  1746. X *
  1747. X * First off, you should decide if you intend to install screen set-uid to
  1748. X * root.  This isn't necessary to use screen, but it allows the pseudo-ttys
  1749. X * to be set to their proper owner (for security purposes), /etc/utmp to be
  1750. X * updated, and /dev/kmem to be accessed to read the load average values.
  1751. X *
  1752. X * An alternative to installing screen set-uid root is to install it set-gid
  1753. X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
  1754. X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
  1755. X * custom group to give you both.  The final alternative is to omit /etc/utmp
  1756. X * updating and the /dev/kmem reading (see the following defines) and simply
  1757. X * run screen as a regular program -- its major functions will be unaffected.
  1758. X */
  1759. X
  1760. X
  1761. X/*
  1762. X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
  1763. X */
  1764. X#undef POSIX
  1765. X
  1766. X/*
  1767. X * Define BSDJOBS if you have BSD-style job control (both process
  1768. X * groups and a tty that deals correctly with them).
  1769. X */
  1770. X#undef BSDJOBS
  1771. X
  1772. X/*
  1773. X * Define TERMIO if you have struct termio instead of struct sgttyb.
  1774. X * This is usually the case for SVID systems, where BSD uses sgttyb.
  1775. X * POSIX systems should define this anyway, even though they use
  1776. X * struct termios.
  1777. X */
  1778. X#define TERMIO
  1779. X
  1780. X/*
  1781. X * Define TERMINFO if your machine emulates the termcap routines
  1782. X * with the terminfo database.
  1783. X * Thus the .screenrc file is parsed for
  1784. X * the command 'terminfo' and not 'termcap'.
  1785. X */
  1786. X#define TERMINFO
  1787. X
  1788. X/*
  1789. X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
  1790. X */
  1791. X#define SYSV
  1792. X
  1793. X/*
  1794. X * Define SIGVOID if your signal handlers return void.  On older
  1795. X * systems, signal returns int, but on newer ones, it returns void.
  1796. X */
  1797. X#define SIGVOID 
  1798. X
  1799. X/*
  1800. X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
  1801. X */
  1802. X#define DIRENT
  1803. X
  1804. X/*
  1805. X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
  1806. X */
  1807. X#define SUIDROOT
  1808. X
  1809. X/*
  1810. X * If screen is installed with permissions to update /etc/utmp (such as if
  1811. X * it is installed set-uid root), define UTMPOK.  Set LOGINDEFAULT to one (1)
  1812. X * if you want entries added to /etc/utmp by default, else set it to zero (0).
  1813. X */
  1814. X#undef UTMPOK
  1815. X#define LOGINDEFAULT    1
  1816. X
  1817. X/*
  1818. X * If your system has getutent(), pututline(), etc. to write to the
  1819. X * utmp file, define GETUTENT.
  1820. X */
  1821. X#define GETUTENT
  1822. X
  1823. X/*
  1824. X * Define UTHOST if the utmp file has a host field.
  1825. X */
  1826. X#undef UTHOST
  1827. X
  1828. X/*
  1829. X * If UTMPOK is defined and your system (incorrectly) counts logins by
  1830. X * counting non-null entries in /etc/utmp (instead of counting non-null
  1831. X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
  1832. X * to have screen put an upper-limit on the number of entries to write
  1833. X * into /etc/utmp.  This helps to keep you from exceeding a limited-user
  1834. X * license.
  1835. X */
  1836. X#undef USRLIMIT
  1837. X
  1838. X/*
  1839. X * If screen is NOT installed set-uid root, screen can provide tty security
  1840. X * by exclusively locking the ptys.  While this keeps other users from
  1841. X * opening your ptys, it also keeps your own subprocesses from being able
  1842. X * to open /dev/tty.  Define LOCKPTY to add this exclusive locking.
  1843. X */
  1844. X#undef LOCKPTY
  1845. X
  1846. X/*
  1847. X * If your system does not have the calls setreuid() and setregid(), define
  1848. X * NOREUID to force screen to use a forked process to safely create output
  1849. X * files without retaining any special privileges.  (Output logging will be
  1850. X * disabled, however.)
  1851. X */
  1852. X#define NOREUID
  1853. X
  1854. X/*
  1855. X * If you want the "time" command to display the current load average
  1856. X * you must install screen with the needed privileges to read /dev/kmem
  1857. X * and have a load average format that screen understands.  We handle the
  1858. X * following formats:  3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
  1859. X */
  1860. X#undef  LOADAV_3DOUBLES
  1861. X#undef  LOADAV_3LONGS
  1862. X#undef  LOADAV_4LONGS
  1863. X
  1864. X/*
  1865. X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
  1866. X * getttyent(3) library functions, define GETTTYENT.
  1867. X */
  1868. X#undef GETTTYENT
  1869. X
  1870. X/*
  1871. X * If your version of NFS supports named sockets and you install screen
  1872. X * suid root, you may need to define NFS_HACK for screen to be able to
  1873. X * open the sockets.
  1874. X */
  1875. X#undef NFS_HACK
  1876. X
  1877. X/*
  1878. X * By default screen will create a directory named ".screen" in the user's
  1879. X * HOME directory to contain the named sockets.  If this causes you problems
  1880. X * (e.g. some user's HOME directories are NFS-mounted and don't support
  1881. X * named sockets) you can have screen create the socket directories in a
  1882. X * common subdirectory, such as /tmp or /usr/tmp.  It makes things a little
  1883. X * more secure if you choose a directory where the "sticky" bit is on, but
  1884. X * this isn't required.  Screen will name the subdirectories "S-$USER"
  1885. X * (e.g /tmp/S-davison).
  1886. X * Do not define TMPTEST unless it's for debugging purpose.
  1887. X * If you want to have your socket directory in "/tmp/screens" then
  1888. X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
  1889. X */
  1890. X#define LOCALSOCKDIR
  1891. X
  1892. X#ifdef LOCALSOCKDIR
  1893. X# ifndef TMPTEST
  1894. X#  define SOCKDIR "/local/screens"
  1895. X# else
  1896. X#  define SOCKDIR "/tmp/screens"
  1897. X# endif
  1898. X#endif
  1899. X
  1900. X/*
  1901. X * Define USEBCOPY if the bcopy() from your system's C library supports the
  1902. X * overlapping of source and destination blocks.  When undefined, screen
  1903. X * uses its own (probably slower) version of bcopy().
  1904. X */
  1905. X#undef USEBCOPY
  1906. X
  1907. X/*
  1908. X * If you'd rather see the status line on the first line of your
  1909. X * terminal rather than the last, define TOPSTAT.
  1910. X */
  1911. X#undef TOPSTAT
  1912. X
  1913. X/*
  1914. X * If your system has vsprintf() and requires the use of the macros in
  1915. X * "varargs.h" to use functions with variable arguments,
  1916. X * define USEVARARGS.
  1917. X */
  1918. X#undef USEVARARGS
  1919. X
  1920. X/*
  1921. X * Define this if your system supports named pipes.
  1922. X */
  1923. X#define NAMEDPIPE
  1924. X
  1925. X/*
  1926. X * here come the erlangen extensions to screen:
  1927. X * define LOCK if you want to use a lock program for a screenlock.
  1928. X * define PASSWORD for secure reattach of your screen.
  1929. X * define COPY_PASTE to use the famous hacker's treasure zoo.
  1930. X * define POW_DETACH to have a detach_and_logout key.
  1931. X * define REMOTE_DETACH (-d option) to move screen between terminals.
  1932. X * (jw)
  1933. X */
  1934. X#define LOCK
  1935. X#define PASSWORD
  1936. X#define COPY_PASTE
  1937. X#define REMOTE_DETACH
  1938. X#define POW_DETACH
  1939. X
  1940. X/*
  1941. X * As error messages are mostly meaningless to the user, we
  1942. X * try to throw out phrases that are somewhat more familiar
  1943. X * to ...well, at least familiar to us NetHack players.
  1944. X */
  1945. X#undef NETHACK 
  1946. X
  1947. X/*
  1948. X * and another sneaky feature: screen sources two startup files.
  1949. X * first a global file with a path specified here, second
  1950. X * your local $HOME/.screenrc
  1951. X * Don't define this, if you don't want it.
  1952. X */
  1953. X#define ETCSCREENRC "/local/etc/screenrc"
  1954. X
  1955. X/*
  1956. X *    End of User Configuration Section
  1957. X */
  1958. END_OF_FILE
  1959. if test 8082 -ne `wc -c <'config/config.sysv68'`; then
  1960.     echo shar: \"'config/config.sysv68'\" unpacked with wrong size!
  1961. fi
  1962. # end of 'config/config.sysv68'
  1963. fi
  1964. if test -f 'config/config.xelos' -a "${1}" != "-c" ; then 
  1965.   echo shar: Will not clobber existing file \"'config/config.xelos'\"
  1966. else
  1967. echo shar: Extracting \"'config/config.xelos'\" \(8079 characters\)
  1968. sed "s/^X//" >'config/config.xelos' <<'END_OF_FILE'
  1969. X/* Copyright (c) 1991
  1970. X *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  1971. X *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  1972. X * Copyright (c) 1987 Oliver Laumann
  1973. X *
  1974. X * This program is free software; you can redistribute it and/or modify
  1975. X * it under the terms of the GNU General Public License as published by
  1976. X * the Free Software Foundation; either version 1, or (at your option)
  1977. X * any later version.
  1978. X *
  1979. X * This program is distributed in the hope that it will be useful,
  1980. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  1981. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1982. X * GNU General Public License for more details.
  1983. X *
  1984. X * You should have received a copy of the GNU General Public License
  1985. X * along with this program (see the file COPYING); if not, write to the
  1986. X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1987. X *
  1988. X * Noteworthy contributors to screen's design and implementation:
  1989. X *    Wayne Davison (davison@borland.com)
  1990. X *    Patrick Wolfe (pat@kai.com, kailand!pat)
  1991. X *    Bart Schaefer (schaefer@cse.ogi.edu)
  1992. X *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  1993. X *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  1994. X *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  1995. X *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  1996. X *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  1997. X *    Marc Boucher (marc@CAM.ORG)
  1998. X *
  1999. X ****************************************************************
  2000. X * $Id: config.xelos,v 1.6 91/10/06 11:59:10 jnweiger Exp $ FAU
  2001. X */
  2002. X
  2003. X
  2004. X/*
  2005. X *        Beginning of User Configuration Section
  2006. X *
  2007. X * First off, you should decide if you intend to install screen set-uid to
  2008. X * root.  This isn't necessary to use screen, but it allows the pseudo-ttys
  2009. X * to be set to their proper owner (for security purposes), /etc/utmp to be
  2010. X * updated, and /dev/kmem to be accessed to read the load average values.
  2011. X *
  2012. X * An alternative to installing screen set-uid root is to install it set-gid
  2013. X * utmp (with the file /etc/utmp installed to be group-utmp writable) or
  2014. X * set-gid kmem (with /dev/kmem set to be group-kmem readable) or some other
  2015. X * custom group to give you both.  The final alternative is to omit /etc/utmp
  2016. X * updating and the /dev/kmem reading (see the following defines) and simply
  2017. X * run screen as a regular program -- its major functions will be unaffected.
  2018. X */
  2019. X
  2020. X
  2021. X/*
  2022. X * Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).
  2023. X */
  2024. X#undef POSIX
  2025. X
  2026. X/*
  2027. X * Define BSDJOBS if you have BSD-style job control (both process
  2028. X * groups and a tty that deals correctly with them).
  2029. X */
  2030. X#define BSDJOBS
  2031. X
  2032. X/*
  2033. X * Define TERMIO if you have struct termio instead of struct sgttyb.
  2034. X * This is usually the case for SVID systems, where BSD uses sgttyb.
  2035. X * POSIX systems should define this anyway, even though they use
  2036. X * struct termios.
  2037. X */
  2038. X#undef TERMIO
  2039. X
  2040. X/*
  2041. X * Define TERMINFO if your machine emulates the termcap routines
  2042. X * with the terminfo database.
  2043. X * Thus the .screenrc file is parsed for
  2044. X * the command 'terminfo' and not 'termcap'.
  2045. X */
  2046. X#define TERMINFO
  2047. X
  2048. X/*
  2049. X * Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)
  2050. X */
  2051. X#undef SYSV
  2052. X
  2053. X/*
  2054. X * Define SIGVOID if your signal handlers return void.  On older
  2055. X * systems, signal returns int, but on newer ones, it returns void.
  2056. X */
  2057. X#undef SIGVOID 
  2058. X
  2059. X/*
  2060. X * Define DIRENT if your system has <dirent.h> instead of <sys/dir.h>
  2061. X */
  2062. X#undef DIRENT
  2063. X
  2064. X/*
  2065. X * If screen is going to be installed set-uid root, you MUST define SUIDROOT.
  2066. X */
  2067. X#define SUIDROOT
  2068. X
  2069. X/*
  2070. X * If screen is installed with permissions to update /etc/utmp (such as if
  2071. X * it is installed set-uid root), define UTMPOK.  Set LOGINDEFAULT to one (1)
  2072. X * if you want entries added to /etc/utmp by default, else set it to zero (0).
  2073. X */
  2074. X#define UTMPOK
  2075. X#define LOGINDEFAULT    1
  2076. X
  2077. X/*
  2078. X * If your system has getutent(), pututline(), etc. to write to the
  2079. X * utmp file, define GETUTENT.
  2080. X */
  2081. X#define GETUTENT
  2082. X
  2083. X/*
  2084. X * Define UTHOST if the utmp file has a host field.
  2085. X */
  2086. X#define UTHOST
  2087. X
  2088. X/*
  2089. X * If UTMPOK is defined and your system (incorrectly) counts logins by
  2090. X * counting non-null entries in /etc/utmp (instead of counting non-null
  2091. X * entries with no hostname that are not on a pseudo tty), define USRLIMIT
  2092. X * to have screen put an upper-limit on the number of entries to write
  2093. X * into /etc/utmp.  This helps to keep you from exceeding a limited-user
  2094. X * license.
  2095. X */
  2096. X#undef USRLIMIT
  2097. X
  2098. X/*
  2099. X * If screen is NOT installed set-uid root, screen can provide tty security
  2100. X * by exclusively locking the ptys.  While this keeps other users from
  2101. X * opening your ptys, it also keeps your own subprocesses from being able
  2102. X * to open /dev/tty.  Define LOCKPTY to add this exclusive locking.
  2103. X */
  2104. X#undef LOCKPTY
  2105. X
  2106. X/*
  2107. X * If your system does not have the calls setreuid() and setregid(), define
  2108. X * NOREUID to force screen to use a forked process to safely create output
  2109. X * files without retaining any special privileges.  (Output logging will be
  2110. X * disabled, however.)
  2111. X */
  2112. X#undef NOREUID
  2113. X
  2114. X/*
  2115. X * If you want the "time" command to display the current load average
  2116. X * you must install screen with the needed privileges to read /dev/kmem
  2117. X * and have a load average format that screen understands.  We handle the
  2118. X * following formats:  3 doubles (BSD), 3 longs (sun), and 4 longs (alliant).
  2119. X */
  2120. X#undef  LOADAV_3DOUBLES
  2121. X#define LOADAV_3LONGS
  2122. X#undef  LOADAV_4LONGS
  2123. X
  2124. X/*
  2125. X * If your system has the new format /etc/ttys (like 4.3 BSD) and the
  2126. X * getttyent(3) library functions, define GETTTYENT.
  2127. X */
  2128. X#undef GETTTYENT
  2129. X
  2130. X/*
  2131. X * If your version of NFS supports named sockets and you install screen
  2132. X * suid root, you may need to define NFS_HACK for screen to be able to
  2133. X * open the sockets.
  2134. X */
  2135. X#undef NFS_HACK
  2136. X
  2137. X/*
  2138. X * By default screen will create a directory named ".screen" in the user's
  2139. X * HOME directory to contain the named sockets.  If this causes you problems
  2140. X * (e.g. some user's HOME directories are NFS-mounted and don't support
  2141. X * named sockets) you can have screen create the socket directories in a
  2142. X * common subdirectory, such as /tmp or /usr/tmp.  It makes things a little
  2143. X * more secure if you choose a directory where the "sticky" bit is on, but
  2144. X * this isn't required.  Screen will name the subdirectories "S-$USER"
  2145. X * (e.g /tmp/S-davison).
  2146. X * Do not define TMPTEST unless it's for debugging purpose.
  2147. X * If you want to have your socket directory in "/tmp/screens" then
  2148. X * define LOCALSOCKDIR and change the definition of SOCKDIR below.
  2149. X */
  2150. X#define LOCALSOCKDIR
  2151. X
  2152. X#ifdef LOCALSOCKDIR
  2153. X# ifndef TMPTEST
  2154. X#  define SOCKDIR "/local/screens"
  2155. X# else
  2156. X#  define SOCKDIR "/tmp/screens"
  2157. X# endif
  2158. X#endif
  2159. X
  2160. X/*
  2161. X * Define USEBCOPY if the bcopy() from your system's C library supports the
  2162. X * overlapping of source and destination blocks.  When undefined, screen
  2163. X * uses its own (probably slower) version of bcopy().
  2164. X */
  2165. X#undef USEBCOPY
  2166. X
  2167. X/*
  2168. X * If you'd rather see the status line on the first line of your
  2169. X * terminal rather than the last, define TOPSTAT.
  2170. X */
  2171. X#undef TOPSTAT
  2172. X
  2173. X/*
  2174. X * If your system has vsprintf() and requires the use of the macros in
  2175. X * "varargs.h" to use functions with variable arguments,
  2176. X * define USEVARARGS.
  2177. X */
  2178. X#undef USEVARARGS
  2179. X
  2180. X/*
  2181. X * Define this if your system supports named pipes.
  2182. X */
  2183. X#undef NAMEDPIPE
  2184. X
  2185. X/*
  2186. X * here come the erlangen extensions to screen:
  2187. X * define LOCK if you want to use a lock program for a screenlock.
  2188. X * define PASSWORD for secure reattach of your screen.
  2189. X * define COPY_PASTE to use the famous hacker's treasure zoo.
  2190. X * define POW_DETACH to have a detach_and_logout key.
  2191. X * define REMOTE_DETACH (-d option) to move screen between terminals.
  2192. X * (jw)
  2193. X */
  2194. X#define LOCK
  2195. X#define PASSWORD
  2196. X#define COPY_PASTE
  2197. X#define REMOTE_DETACH
  2198. X#define POW_DETACH
  2199. X
  2200. X/*
  2201. X * As error messages are mostly meaningless to the user, we
  2202. X * try to throw out phrases that are somewhat more familiar
  2203. X * to ...well, at least familiar to us NetHack players.
  2204. X */
  2205. X#define NETHACK
  2206. X
  2207. X/*
  2208. X * and another sneaky feature: screen sources two startup files.
  2209. X * first a global file with a path specified here, second
  2210. X * your local $HOME/.screenrc
  2211. X * Don't define this, if you don't want it.
  2212. X */
  2213. X#define ETCSCREENRC "/local/etc/screenrc"
  2214. X
  2215. X/*
  2216. X *    End of User Configuration Section
  2217. X */
  2218. X
  2219. END_OF_FILE
  2220. if test 8079 -ne `wc -c <'config/config.xelos'`; then
  2221.     echo shar: \"'config/config.xelos'\" unpacked with wrong size!
  2222. fi
  2223. # end of 'config/config.xelos'
  2224. fi
  2225. if test -f 'etcscreenrc' -a "${1}" != "-c" ; then 
  2226.   echo shar: Will not clobber existing file \"'etcscreenrc'\"
  2227. else
  2228. echo shar: Extracting \"'etcscreenrc'\" \(3284 characters\)
  2229. sed "s/^X//" >'etcscreenrc' <<'END_OF_FILE'
  2230. X# This is a global screenrc file
  2231. X# Install this file as /usr/local/etc/screenrc. See config.h
  2232. X#
  2233. X# Flaws of termcap and standard settings are done here.
  2234. X# Note: This file should not be shared between different hosts.
  2235. X#       The 'termcap' lines are written in termcap syntax.
  2236. X#       The syntax for a terminfo based host is slightly different.
  2237. X#
  2238. X#echo "--------------------------------------------------------------------"
  2239. X#echo ""
  2240. X#echo "               This is iScreen V3.01.01  -  Enjoy                   "
  2241. X#echo ""
  2242. X#echo "--------------------------------------------------------------------"
  2243. X#sleep 3
  2244. X
  2245. X# startup_message off
  2246. X
  2247. flow auto # strange enough, this helps emacs to receive ^S/^Q
  2248. X
  2249. set vbell on
  2250. set login on
  2251. set autodetach off
  2252. X
  2253. X# 'vbell on' without the prepended 'set' keyword will change the default for 
  2254. X# subsequently opened windows. With the 'set' keyword we would change
  2255. X# the setting of the currently active window.
  2256. vbell on
  2257. set vbell_msg "   Wuff,  ----  Wuff!!  "
  2258. X
  2259. X# all termcap entries are now duplicated as terminfo entries.
  2260. X# only difference should be the slightly modified syntax, and check for
  2261. X# terminfo entries, that are already corected in the database.
  2262. X# 
  2263. X# G0     we have a SEMI-GRAPHICS-CHARACTER-MODE
  2264. X# WS    this sequence resizes our window.
  2265. X# cs    this sequence changes the scrollregion
  2266. X# hs@    we have no hardware statusline. iScreen will only believe that
  2267. X#       there is a hardware status line if hs,ts,fs,ds are all set.
  2268. X# ts    to statusline
  2269. X# fs    from statusline
  2270. X# ds    delete statusline
  2271. X# al    add one line
  2272. X# AL    add multiple lines
  2273. X# dl    delete one line
  2274. X# DL    delete multiple lines
  2275. X# ic    insert one char (space)
  2276. X# IC    insert multiple chars
  2277. X
  2278. termcap  facit|vt100|xterm LP:G0
  2279. terminfo facit|vt100|xterm LP:G0
  2280. X
  2281. X#the vt100 description does not mention "dl". *sigh*
  2282. termcap  vt100 dl=5\E[M
  2283. terminfo vt100 dl=5\E[M
  2284. X
  2285. X#facit's "al" has a bug if the line contains attributes...
  2286. termcap  facit al=\E[L\E[K:AL@:cs=\E[%i%d;%dr:ic@
  2287. terminfo facit al=\E[L\E[K:AL@:cs=\E[%i%p1%d;%p2%dr:ic@
  2288. X
  2289. X#make sun termcap/info better
  2290. 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
  2291. 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>
  2292. X
  2293. X#xterm understands both im/ic and doesn't have a status line.
  2294. X#Note: Do not specify im and ic in the real termcap/info file as
  2295. X#some programs (e.g. vi) will not work anymore.
  2296. termcap  xterm|fptwist hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
  2297. terminfo xterm|fptwist hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l
  2298. X
  2299. X#xterms is xterm with status line in title bar
  2300. 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
  2301. 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
  2302. X
  2303. X#make hp700 termcap/info better
  2304. 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@
  2305. 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@
  2306. X
  2307. X
  2308. X#remove some stupid / dangerous key bindings
  2309. bind '^k'
  2310. X#bind 'L'
  2311. bind '^\'
  2312. X#make them better
  2313. bind '\\' quit
  2314. bind 'K' kill
  2315. bind 'I' set login on
  2316. bind 'O' set login off
  2317. bind '}' history
  2318. END_OF_FILE
  2319. if test 3284 -ne `wc -c <'etcscreenrc'`; then
  2320.     echo shar: \"'etcscreenrc'\" unpacked with wrong size!
  2321. fi
  2322. # end of 'etcscreenrc'
  2323. fi
  2324. if test -f 'patchlevel.h' -a "${1}" != "-c" ; then 
  2325.   echo shar: Will not clobber existing file \"'patchlevel.h'\"
  2326. else
  2327. echo shar: Extracting \"'patchlevel.h'\" \(2816 characters\)
  2328. sed "s/^X//" >'patchlevel.h' <<'END_OF_FILE'
  2329. X/* Copyright (c) 1991
  2330. X *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  2331. X *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  2332. X * Copyright (c) 1987 Oliver Laumann
  2333. X *
  2334. X * This program is free software; you can redistribute it and/or modify
  2335. X * it under the terms of the GNU General Public License as published by
  2336. X * the Free Software Foundation; either version 1, or (at your option)
  2337. X * any later version.
  2338. X *
  2339. X * This program is distributed in the hope that it will be useful,
  2340. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  2341. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2342. X * GNU General Public License for more details.
  2343. X *
  2344. X * You should have received a copy of the GNU General Public License
  2345. X * along with this program (see the file COPYING); if not, write to the
  2346. X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2347. X *
  2348. X * Noteworthy contributors to screen's design and implementation:
  2349. X *    Wayne Davison (davison@borland.com)
  2350. X *    Patrick Wolfe (pat@kai.com, kailand!pat)
  2351. X *    Bart Schaefer (schaefer@cse.ogi.edu)
  2352. X *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  2353. X *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  2354. X *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  2355. X *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  2356. X *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  2357. X *    Marc Boucher (marc@CAM.ORG)
  2358. X *
  2359. X ****************************************************************
  2360. X */
  2361. X
  2362. X/****************************************************************
  2363. X * $Header: /src/faui43/pub/utilities/screen/3.1/RCS/patchlevel.h,v 1.31 91/10/11 00:12:50 jnweiger Exp $ 
  2364. X *
  2365. X * patchlevel.h: Our life story.
  2366. X *   8.7.91 -- 3.00.01 -wipe and a 'setenv TERM dumb' bugfix.
  2367. X *  17.7.91 -- 3.00.02 another patchlevel by Wayne Davison
  2368. X *  31.7.91 -- 3.00.03 E0, S0, C0 for flexible semi-graphics, nonblocking 
  2369. X *                     window title input and 'C-a :' command input.
  2370. X *  10.8.91 -- 3.00.04 scrollback, markkeys and some bugfixes.
  2371. X *  13.8.91 -- 3.00.05 mark routine improved, ansi prototypes added.
  2372. X *  20.8.91 -- 3.00.06 screen -h, faster GotoPos in overlay, termcap %.
  2373. X *                     instead of %c
  2374. X *  28.8.91 -- 3.00.07 environment variable support. security. terminfo.
  2375. X *                     pyramid and ultrix support.
  2376. X *  07.9.91 -- 3.00.99 secopen(), MIPS support, SVR4 support.
  2377. X *  09.9.91 -- 3.01.00 backspace bug fixed.
  2378. X * 03.10.91 -- 3.01.01 ansi.c: null-ptr fixed, CLS now saves to scrollback.
  2379. X *                     Using setresuid on hpux. Memory leak fixed.
  2380. X *               Better GotoPos(). Support for IC. Another resize bug.
  2381. X *                     Detach() w/o fore crashed. -T and -A(dapt) option.
  2382. X *                     GNU copyleft.
  2383. X */
  2384. X
  2385. X#define ORIGIN "FAU"
  2386. X#define REV 3
  2387. X#define VERS 1
  2388. X#define PATCHLEVEL 1
  2389. X#define DATE "10/10/91"
  2390. X#define STATE ""
  2391. X
  2392. END_OF_FILE
  2393. if test 2816 -ne `wc -c <'patchlevel.h'`; then
  2394.     echo shar: \"'patchlevel.h'\" unpacked with wrong size!
  2395. fi
  2396. # end of 'patchlevel.h'
  2397. fi
  2398. if test -f 'putenv.c' -a "${1}" != "-c" ; then 
  2399.   echo shar: Will not clobber existing file \"'putenv.c'\"
  2400. else
  2401. echo shar: Extracting \"'putenv.c'\" \(5664 characters\)
  2402. sed "s/^X//" >'putenv.c' <<'END_OF_FILE'
  2403. X/* Copyright (c) 1991
  2404. X *      Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
  2405. X *      Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
  2406. X * Copyright (c) 1987 Oliver Laumann
  2407. X *
  2408. X * This program is free software; you can redistribute it and/or modify
  2409. X * it under the terms of the GNU General Public License as published by
  2410. X * the Free Software Foundation; either version 1, or (at your option)
  2411. X * any later version.
  2412. X *
  2413. X * This program is distributed in the hope that it will be useful,
  2414. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  2415. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2416. X * GNU General Public License for more details.
  2417. X *
  2418. X * You should have received a copy of the GNU General Public License
  2419. X * along with this program (see the file COPYING); if not, write to the
  2420. X * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2421. X *
  2422. X * Noteworthy contributors to screen's design and implementation:
  2423. X *    Wayne Davison (davison@borland.com)
  2424. X *    Patrick Wolfe (pat@kai.com, kailand!pat)
  2425. X *    Bart Schaefer (schaefer@cse.ogi.edu)
  2426. X *    Nathan Glasser (nathan@brokaw.lcs.mit.edu)
  2427. X *    Larry W. Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu)
  2428. X *    Howard Chu (hyc@hanauma.jpl.nasa.gov)
  2429. X *    Tim MacKenzie (tym@dibbler.cs.monash.edu.au)
  2430. X *    Markku Jarvinen (mta@{cc,cs,ee}.tut.fi)
  2431. X *    Marc Boucher (marc@CAM.ORG)
  2432. X *
  2433. X ****************************************************************
  2434. X */
  2435. X
  2436. X/*
  2437. X *  putenv  --  put value into environment
  2438. X *
  2439. X *  Usage:  i = putenv (string)
  2440. X *    int i;
  2441. X *    char  *string;
  2442. X *
  2443. X *  where string is of the form <name>=<value>.
  2444. X *  If "value" is 0, then "name" will be deleted from the environment.
  2445. X *  Putenv returns 0 normally, -1 on error (not enough core for malloc).
  2446. X *
  2447. X *  Putenv may need to add a new name into the environment, or to
  2448. X *  associate a value longer than the current value with a particular
  2449. X *  name.  So, to make life simpler, putenv() copies your entire
  2450. X *  environment into the heap (i.e. malloc()) from the stack
  2451. X *  (i.e. where it resides when your process is initiated) the first
  2452. X *  time you call it.
  2453. X *
  2454. X *  HISTORY
  2455. X *  3-Sep-91 Michael Schroeder (mlschroe). Modified to behave as
  2456. X *    as putenv.
  2457. X * 16-Aug-91 Tim MacKenzie (tym) at Monash University. Modified for
  2458. X *    use in screen (iScreen) (ignores final int parameter)
  2459. X * 14-Oct-85 Michael Mauldin (mlm) at Carnegie-Mellon University
  2460. X *      Ripped out of CMU lib for Rob-O-Matic portability
  2461. X * 20-Nov-79  Steven Shafer (sas) at Carnegie-Mellon University
  2462. X *    Created for VAX.  Too bad Bell Labs didn't provide this.  It's
  2463. X *    unfortunate that you have to copy the whole environment onto the
  2464. X *    heap, but the bookkeeping-and-not-so-much-copying approach turns
  2465. X *    out to be much hairier.  So, I decided to do the simple thing,
  2466. X *    copying the entire environment onto the heap the first time you
  2467. X *    call putenv(), then doing realloc() uniformly later on.
  2468. X */
  2469. X#include "config.h"
  2470. X
  2471. X#if defined(NEEDSETENV)
  2472. X
  2473. X#define EXTRASIZE 5        /* increment to add to env. size */
  2474. X
  2475. char *index(), *malloc(), *realloc();
  2476. int   strlen();
  2477. X
  2478. static int  envsize = -1;    /* current size of environment */
  2479. extern char **environ;        /* the global which is your env. */
  2480. X
  2481. static int  findenv();        /* look for a name in the env. */
  2482. static int  newenv();        /* copy env. from stack to heap */
  2483. static int  moreenv();        /* incr. size of env. */
  2484. X
  2485. int unsetenv(name)
  2486. char *name;
  2487. X{
  2488. X  register int i;
  2489. X  
  2490. X  i = findenv(name);
  2491. X  if (i<0)
  2492. X    return;            /* Already here */
  2493. X  
  2494. X  free(environ[i]);
  2495. X  if (envsize > 0)
  2496. X    envsize--;
  2497. X  for (; environ[i]; i++)
  2498. X    environ[i] = environ[i+1];
  2499. X}
  2500. X
  2501. int putenv(string)
  2502. char *string;
  2503. X{ 
  2504. X  register int  i, j;
  2505. X  register char *p;
  2506. X  
  2507. X  if (envsize < 0)
  2508. X    {                /* first time putenv called */
  2509. X      if (newenv() < 0)        /* copy env. to heap */
  2510. X    return (-1);
  2511. X    }
  2512. X  
  2513. X  i = findenv(string);        /* look for name in environment */
  2514. X
  2515. X  if (i < 0)
  2516. X    {            /* name must be added */
  2517. X      for (i = 0; environ[i]; i++);
  2518. X      if (i >= (envsize - 1))
  2519. X    {            /* need new slot */
  2520. X      if (moreenv() < 0)
  2521. X        return (-1);
  2522. X    }
  2523. X      p = malloc(strlen(string) + 1);
  2524. X      if (p == 0)        /* not enough core */
  2525. X    return (-1);
  2526. X      environ[i + 1] = 0;    /* new end of env. */
  2527. X    }
  2528. X  else
  2529. X    {            /* name already in env. */
  2530. X      p = realloc(environ[i], strlen(string) + 1);
  2531. X      if (p == 0)
  2532. X    return (-1);
  2533. X    }
  2534. X  sprintf(p, "%s", string); /* copy into env. */
  2535. X  environ[i] = p;
  2536. X  
  2537. X  return (0);
  2538. X}
  2539. X
  2540. static int  findenv(name)
  2541. char *name;
  2542. X{
  2543. X  register char *namechar, *envchar;
  2544. X  register int  i, found;
  2545. X  
  2546. X  found = 0;
  2547. X  for (i = 0; environ[i] && !found; i++)
  2548. X    { 
  2549. X      envchar = environ[i];
  2550. X      namechar = name;
  2551. X      while (*namechar && *namechar != '=' && (*namechar == *envchar))
  2552. X        { 
  2553. X      namechar++;
  2554. X      envchar++;
  2555. X        }
  2556. X      found = ((*namechar == '\0' || *namechar == '=') && *envchar == '=');
  2557. X    }
  2558. X  return (found ? i - 1 : -1);
  2559. X}
  2560. X
  2561. static int newenv()
  2562. X{ 
  2563. X  register char **env, *elem;
  2564. X  register int i, esize;
  2565. X
  2566. X  for (i = 0; environ[i]; i++)
  2567. X    ;
  2568. X  esize = i + EXTRASIZE + 1;
  2569. X  env = (char **)malloc(esize * sizeof (elem));
  2570. X  if (env == 0)
  2571. X    return (-1);
  2572. X
  2573. X  for (i = 0; environ[i]; i++)
  2574. X    { 
  2575. X      elem = malloc(strlen(environ[i]) + 1);
  2576. X      if (elem == 0)
  2577. X    return (-1);
  2578. X      env[i] = elem;
  2579. X      strcpy(elem, environ[i]);
  2580. X    }
  2581. X   
  2582. X  env[i] = 0;
  2583. X  environ = env;
  2584. X  envsize = esize;
  2585. X  return (0);
  2586. X}
  2587. X
  2588. static int moreenv()
  2589. X{ 
  2590. X  register int  esize;
  2591. X  register char **env;
  2592. X  
  2593. X  esize = envsize + EXTRASIZE;
  2594. X  env = (char **)realloc(environ, esize * sizeof (*env));
  2595. X  if (env == 0)
  2596. X    return (-1);
  2597. X  environ = env;
  2598. X  envsize = esize;
  2599. X  return (0);
  2600. X}
  2601. X
  2602. X#endif /* NEEDSETENV */
  2603. X
  2604. X
  2605. END_OF_FILE
  2606. if test 5664 -ne `wc -c <'putenv.c'`; then
  2607.     echo shar: \"'putenv.c'\" unpacked with wrong size!
  2608. fi
  2609. # end of 'putenv.c'
  2610. fi
  2611. if test -f 'readme' -a "${1}" != "-c" ; then 
  2612.   echo shar: Will not clobber existing file \"'readme'\"
  2613. else
  2614. echo shar: Extracting \"'readme'\" \(3741 characters\)
  2615. sed "s/^X//" >'readme' <<'END_OF_FILE'
  2616. X"screen" is a window manager that allows you to handle several independent
  2617. screens (UNIX ttys) on a single physical terminal; each screen has its own
  2618. set of processes connected to it (typically interactive shells).  Each
  2619. virtual terminal created by "screen" emulates a DEC VT100 plus several ANSI
  2620. XX3.64 and ISO 2022 functions (including DEC VT102 features such as line and
  2621. character deletion and insertion).
  2622. X
  2623. Since "screen" uses pseudo-ttys, the select system call, and UNIX-domain
  2624. sockets, it will not run under a system that does not include these
  2625. features of 4.2 and 4.3 BSD UNIX.
  2626. X
  2627. If you want to get a quick idea how "screen" works but don't want to read
  2628. the entire manual, do the following:
  2629. X     -  call "screen" without arguments
  2630. X     -  wait for the shell prompt; execute some commands
  2631. X     -  type ^A ^C (Control-A followed by Control-C)
  2632. X     -  wait for the shell prompt; do something in the new window
  2633. X     -  type ^A ^A repeatedly to switch between the two windows
  2634. X     -  terminate the first shell ("screen" switches to the other window)
  2635. X     -  terminate the second shell
  2636. X
  2637. If you have got "vttest" (the VT100 test program from mod.sources) you
  2638. may want to run it from within "screen" to verify that it correctly
  2639. emulates a VT100 on your terminal (except for things your terminal is
  2640. incapable of handling, like 132 column mode and double width/height
  2641. characters, of course).
  2642. X
  2643. By the way, "screen" can be used to compensate for certain bugs of "real"
  2644. VT100 terminals.  For instance, our 4.2 BSD version of mille(6) garbles
  2645. the display on terminals of the VT100 family, but it works quite fine
  2646. when it is invoked from within "screen".  In addition, "screen" enables
  2647. you to use EMACS on terminals that are unable to generate Control-S and
  2648. Control-Q from the keyboard or that require flow control using Control-S
  2649. and Control-Q.  This is the reason why I have an alias like
  2650. X
  2651. X     alias emacs "screen emacs"
  2652. X
  2653. in my .cshrc file.  Users who run EMACS on terminals which normally have no
  2654. trouble with Control-S and Control-Q will probably want to run screen with
  2655. the -fn or -fa options, or put the line "flow off" or "flow auto" in their
  2656. X.screenrc file.
  2657. X
  2658. Before typing "make", look at the config directory and choose an appropriate 
  2659. config file that you then copy to config.h and then edit it to
  2660. reflect the configuration parameters of your choice.  Each define is well
  2661. commented to help you decide what to choose.  Then give the Makefile the
  2662. once-over and compile.
  2663. X
  2664. To get screen to do everything it was designed to do, it should be installed
  2665. set-uid root.  This enables it to modify the ownership of the pseudo-ttys,
  2666. update /etc/utmp, and read the current load average from /dev/kmem.
  2667. X
  2668. XFailing to install it suid root (e.g. if you fear a trojan horse) doesn't
  2669. have any major disadvantages, except that w(1) and some other utilities
  2670. will display only "screen" as the current process, and the pseudo ttys
  2671. X(ptys) used for the virtual terminals won't have their owners set.  Screen
  2672. can provide you some pty security by opening the ptys exclusively, but
  2673. this has the unfortunate side-effect of keeping your own subprocesses from
  2674. being able to open /dev/tty.
  2675. X
  2676. It is also possible to create a special "screen" group and give the file
  2677. X/etc/utmp screen-group write-access, and give the file /dev/kmem screen-group
  2678. read access to get all the features except the pty-ownership changes.  Some
  2679. people also install it set-gid "kmem" or set-gid "utmp" to give it one or
  2680. the other.
  2681. X
  2682. Many people install screen as a normal program with no special privileges
  2683. and still find it to be indispensable.  Give it a try.
  2684. X
  2685. Send your questions, comments and bug reports for screen to:
  2686. X
  2687. X           Juergen Weigert 
  2688. X
  2689. X       jnweiger@immd4.informatik.uni-erlangen.de
  2690. END_OF_FILE
  2691. if test 3741 -ne `wc -c <'readme'`; then
  2692.     echo shar: \"'readme'\" unpacked with wrong size!
  2693. fi
  2694. # end of 'readme'
  2695. fi
  2696. if test ! -d 'terminfo' ; then
  2697.     echo shar: Creating directory \"'terminfo'\"
  2698.     mkdir 'terminfo'
  2699. fi
  2700. if test -f 'terminfo/screencap' -a "${1}" != "-c" ; then 
  2701.   echo shar: Will not clobber existing file \"'terminfo/screencap'\"
  2702. else
  2703. echo shar: Extracting \"'terminfo/screencap'\" \(515 characters\)
  2704. sed "s/^X//" >'terminfo/screencap' <<'END_OF_FILE'
  2705. SC|screen|VT 100/ANSI X3.64 virtual terminal|\
  2706. X    :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
  2707. X    :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
  2708. X    :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
  2709. X    :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:xv:\
  2710. X    :li#43:co#80:LP:us=\E[4m:ue=\E[24m:so=\E[3m:se=\E[23m:\
  2711. X    :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:ms:sr=\EM:al=\E[L:\
  2712. X    :AL=\E[%dL:dl=\E[M:DL=\E[%dM:cs=\E[%i%d;%dr:dc=\E[P:\
  2713. X    :DC=\E[%dP:im=\E[4h:ei=\E[4l:mi:ic=\E[@:IC=\E[%d@:\
  2714. X    :ks=\E=:ke=\E>:G0:
  2715. END_OF_FILE
  2716. if test 515 -ne `wc -c <'terminfo/screencap'`; then
  2717.     echo shar: \"'terminfo/screencap'\" unpacked with wrong size!
  2718. fi
  2719. # end of 'terminfo/screencap'
  2720. fi
  2721. if test -f 'terminfo/screeninfo.src' -a "${1}" != "-c" ; then 
  2722.   echo shar: Will not clobber existing file \"'terminfo/screeninfo.src'\"
  2723. else
  2724. echo shar: Extracting \"'terminfo/screeninfo.src'\" \(668 characters\)
  2725. sed "s/^X//" >'terminfo/screeninfo.src' <<'END_OF_FILE'
  2726. screen|VT 100/ANSI X3.64 virtual terminal,
  2727. X    msgr, xon,
  2728. X    cols#80, it#8, lines#24,
  2729. X    bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
  2730. X    clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
  2731. X    cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n,
  2732. X    cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
  2733. X    cuu=\E[%p1%dA, cuu1=\EM, dl=\E[%p1%dM, dl1=\E[M,
  2734. X    ed=\E[J, el=\E[K, home=\E[H, ht=\t, hts=\EH,
  2735. X    il=\E[%p1%dL, il1=\E[L, ind=\n, is2=\E)0, kbs=\b,
  2736. X    kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
  2737. X    kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E?,
  2738. X    nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
  2739. X    rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7,
  2740. X    sgr0=\E[m, smkx=\E=, smso=\E[3m, smul=\E[4m,
  2741. X    tbc=\E[3g,
  2742. END_OF_FILE
  2743. if test 668 -ne `wc -c <'terminfo/screeninfo.src'`; then
  2744.     echo shar: \"'terminfo/screeninfo.src'\" unpacked with wrong size!
  2745. fi
  2746. # end of 'terminfo/screeninfo.src'
  2747. fi
  2748. if test -f 'terminfo/screenwinfo.src' -a "${1}" != "-c" ; then 
  2749.   echo shar: Will not clobber existing file \"'terminfo/screenwinfo.src'\"
  2750. else
  2751. echo shar: Extracting \"'terminfo/screenwinfo.src'\" \(671 characters\)
  2752. sed "s/^X//" >'terminfo/screenwinfo.src' <<'END_OF_FILE'
  2753. screen-w|VT 100/ANSI X3.64 virtual terminal,
  2754. X    msgr, xon,
  2755. X    cols#132, it#8, lines#24,
  2756. X    bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
  2757. X    clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
  2758. X    cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n,
  2759. X    cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
  2760. X    cuu=\E[%p1%dA, cuu1=\EM, dl=\E[%p1%dM, dl1=\E[M,
  2761. X    ed=\E[J, el=\E[K, home=\E[H, ht=\t, hts=\EH,
  2762. X    il=\E[%p1%dL, il1=\E[L, ind=\n, is2=\E)0, kbs=\b,
  2763. X    kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
  2764. X    kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E?,
  2765. X    nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
  2766. X    rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7,
  2767. X    sgr0=\E[m, smkx=\E=, smso=\E[3m, smul=\E[4m,
  2768. X    tbc=\E[3g,
  2769. END_OF_FILE
  2770. if test 671 -ne `wc -c <'terminfo/screenwinfo.src'`; then
  2771.     echo shar: \"'terminfo/screenwinfo.src'\" unpacked with wrong size!
  2772. fi
  2773. # end of 'terminfo/screenwinfo.src'
  2774. fi
  2775. if test -f 'xx.c' -a "${1}" != "-c" ; then 
  2776.   echo shar: Will not clobber existing file \"'xx.c'\"
  2777. else
  2778. echo shar: Extracting \"'xx.c'\" \(1999 characters\)
  2779. sed "s/^X//" >'xx.c' <<'END_OF_FILE'
  2780. char cpmsg[] = "\
  2781. X\n\
  2782. iScreen version %v\n\
  2783. X\n\
  2784. Copyright (c) 1991\n\
  2785. X    Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)\n\
  2786. X    Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)\n\
  2787. Copyright (c) 1987 Oliver Laumann\n\
  2788. X\n\
  2789. This program is free software; you can redistribute it and/or \
  2790. modify it under the terms of the GNU General Public License as published \
  2791. by the Free Software Foundation; either version 1, or (at your option)\n\
  2792. any later version.\n\
  2793. X\n\
  2794. This program is distributed in the hope that it will be useful, \
  2795. but WITHOUT ANY WARRANTY; without even the implied warranty of \
  2796. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \
  2797. GNU General Public License for more details.\n\
  2798. X\n\
  2799. You should have received a copy of the GNU General Public License \
  2800. along with this program (see the file COPYING); if not, write to the \
  2801. XFree Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n";
  2802. X
  2803. char version[] = "VERSIONTEST";
  2804. X
  2805. static char *s, *saveds;
  2806. int screenwidth;
  2807. X
  2808. main(argc, argv)
  2809. int argc;
  2810. char **argv;
  2811. X{
  2812. X  screenwidth = atoi(argv[1]);
  2813. X  s = cpmsg;
  2814. X  while (*s)
  2815. X    {
  2816. X      prcpy();
  2817. X      printf("============================\n");
  2818. X    }
  2819. X}
  2820. X
  2821. prcpy()
  2822. X{
  2823. X  char *ws;
  2824. X  int x, y, l;
  2825. X  x = y = 0;
  2826. X  
  2827. X  while(*s)
  2828. X    {
  2829. X      ws = s;
  2830. X      while (*s == ' ')
  2831. X    s++;
  2832. X      if (strncmp(s, "%v", 2) == 0)
  2833. X    {
  2834. X      saveds = s + 2;
  2835. X      ws = s = version;
  2836. X    }
  2837. X      while (*s && *s != ' ' && *s != '\n')
  2838. X    s++;
  2839. X      l = s - ws;
  2840. X      s = ws;
  2841. X      if (l > screenwidth - 1)
  2842. X    l = screenwidth - 1;
  2843. X      if (x && x + l >= screenwidth - 2)
  2844. X    {
  2845. X      putchar('\n');
  2846. X      x = 0;
  2847. X      if (++y == 10)
  2848. X            break;
  2849. X    }
  2850. X      if (x)
  2851. X    {
  2852. X      putchar(' ');
  2853. X      x++;
  2854. X    }
  2855. X      printf("%*.*s", l, l, ws);
  2856. X      x += l;
  2857. X      s += l;
  2858. X      if (*s == 0 && saveds)
  2859. X    {
  2860. X      s = saveds;
  2861. X      saveds = 0;
  2862. X    }
  2863. X      if (*s == '\n')
  2864. X    {
  2865. X      putchar('\n');
  2866. X      x = 0;
  2867. X      if (++y == 10)
  2868. X            break;
  2869. X    }
  2870. X      if (*s == ' ' || *s == '\n')
  2871. X    s++;
  2872. X    }
  2873. X  while (y++ != 10)
  2874. X    putchar('\n');
  2875. X}
  2876. X  
  2877. END_OF_FILE
  2878. if test 1999 -ne `wc -c <'xx.c'`; then
  2879.     echo shar: \"'xx.c'\" unpacked with wrong size!
  2880. fi
  2881. # end of 'xx.c'
  2882. fi
  2883. echo shar: End of archive 1 \(of 8\).
  2884. cp /dev/null ark1isdone
  2885. MISSING=""
  2886. for I in 1 2 3 4 5 6 7 8 ; do
  2887.     if test ! -f ark${I}isdone ; then
  2888.     MISSING="${MISSING} ${I}"
  2889.     fi
  2890. done
  2891. if test "${MISSING}" = "" ; then
  2892.     echo You have unpacked all 8 archives.
  2893.     rm -f ark[1-9]isdone
  2894. else
  2895.     echo You still need to unpack the following archives:
  2896.     echo "        " ${MISSING}
  2897. fi
  2898. ##  End of shell archive.
  2899. exit 0
  2900.