home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / unix / uw_shar.sit / uw-42-part1.shar.bin next >
MacBinary  |  1989-09-14  |  55.8 KB  |  [TEXT/TEXT]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert Debian floppy split (archive/debianFloppySplit) ext Unsupported
1% dexvert Sound Images sound sample (audio/soundImagesSoundSample) ext Unsupported
1% dexvert DESI-III drawing (image/desiIIIDrawing) ext Unsupported
1% dexvert MS-DOS PMODE extender executable (executable/msdosPMODEExtenderExecutable) ext Unsupported
1% dexvert Alien Trilogytextures (other/alienTrilogyTextures) ext Unsupported
1% dexvert APT cache data (other/aptCacheData) ext Unsupported
1% dexvert CorelTRACE configuration (other/corelTRACEConfiguration) ext Unsupported
1% dexvert Dreamcast Disc (other/dreamcastDisc) ext Unsupported
1% dexvert EST flat binary (other/estFlatBinary) ext Unsupported
1% dexvert Finale Enigma Binary Format (other/finaleEnigmaBinaryFormat) ext Unsupported
1% dexvert Sega Genesis/Megadrive/32x ROM (other/genesisROM) ext Unsupported
1% dexvert Myth: The Fallen Lords game archive (other/mythTheFallenLordsGameArchive) ext Unsupported
1% dexvert Sound Images Sound Driver (other/soundImagesSoundDriver) ext Unsupported
1% dexvert Symantec/Norton Config (other/symantecNortonConfig) ext Unsupported
1% dexvert Vectrex ROM (other/vectrexROM) ext Unsupported
1% dexvert BIS raP encoded format (other/bisraPEncoded) ext Unsupported
1% dexvert Pascal Script binary (other/pascalScriptBinary) ext Unsupported
1% dexvert 7th Level game data archive (other/seventhLevelGameDataArchive) ext Unsupported
1% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Binary Text (image/binaryText) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary, Wed Jun 21 15:17:28 1989, modified Wed Jun 21 15:17:28 1989, creator 'TEXT', type ASCII, 56904 bytes "uw-42-part1.shar" default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 1 default (weak)
100% lsar MacBinary default
100% gt2 MAC Bilddatei default (weak)


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[TEXT]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 10 75 77 2d 34 32 2d | 70 61 72 74 31 2e 73 68 |..uw-42-|part1.sh|
|00000010| 61 72 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |ar......|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 54 45 58 | 54 00 00 00 00 00 00 00 |.TEXTTEX|T.......|
|00000050| 00 00 00 00 00 de 48 00 | 00 00 00 a0 c5 9a 48 a0 |......H.|......H.|
|00000060| c5 9a 48 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..H.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000080| 23 20 20 20 20 20 20 20 | 41 52 50 41 4e 45 54 2f |# |ARPANET/|
|00000090| 4d 49 4c 4e 45 54 3a 20 | 6a 64 62 40 6d 6f 72 64 |MILNET: |jdb@mord|
|000000a0| 6f 72 2e 73 31 2e 67 6f | 76 0d 23 0d 23 20 20 20 |or.s1.go|v.#.# |
|000000b0| 20 20 20 20 55 55 43 50 | 3a 20 20 20 20 20 20 20 | UUCP|: |
|000000c0| 20 20 20 20 7b 6c 6c 6c | 2d 63 72 67 2c 64 65 63 | {lll|-crg,dec|
|000000d0| 77 72 6c 2c 63 61 69 70 | 7d 21 6d 6f 72 64 6f 72 |wrl,caip|}!mordor|
|000000e0| 21 6a 64 62 0d 23 0d 23 | 20 20 20 20 20 20 20 55 |!jdb.#.#| U|
|000000f0| 2e 53 2e 20 4d 61 69 6c | 3a 20 20 20 20 20 20 4a |.S. Mail|: J|
|00000100| 6f 68 6e 20 42 72 75 6e | 65 72 0d 23 20 20 20 20 |ohn Brun|er.# |
|00000110| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000120| 20 20 20 4c 61 77 72 65 | 6e 63 65 20 4c 69 76 65 | Lawre|nce Live|
|00000130| 72 6d 6f 72 65 20 4e 61 | 74 69 6f 6e 61 6c 20 4c |rmore Na|tional L|
|00000140| 61 62 6f 72 61 74 6f 72 | 79 0d 23 20 20 20 20 20 |aborator|y.# |
|00000150| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000160| 20 20 50 2e 4f 2e 20 42 | 6f 78 20 35 35 30 33 2c | P.O. B|ox 5503,|
|00000170| 20 4c 2d 32 37 36 0d 23 | 20 20 20 20 20 20 20 20 | L-276.#| |
|00000180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4c | | L|
|00000190| 69 76 65 72 6d 6f 72 65 | 2c 20 43 41 20 20 39 34 |ivermore|, CA 94|
|000001a0| 35 35 30 0d 23 0d 23 54 | 68 65 73 65 20 61 72 65 |550.#.#T|hese are|
|000001b0| 20 63 6f 6d 6d 65 6e 74 | 73 2e 20 20 59 6f 75 20 | comment|s. You |
|000001c0| 63 61 6e 20 72 65 6d 6f | 76 65 20 65 76 65 72 79 |can remo|ve every|
|000001d0| 74 68 69 6e 67 20 61 62 | 6f 76 65 20 74 68 65 20 |thing ab|ove the |
|000001e0| 6e 65 78 74 0d 23 62 6c | 61 6e 6b 20 6c 69 6e 65 |next.#bl|ank line|
|000001f0| 20 69 66 20 79 6f 75 20 | 77 69 73 68 2e 0d 3a 20 | if you |wish..: |
|00000200| 54 68 69 73 20 69 73 20 | 61 20 73 68 61 72 20 61 |This is |a shar a|
|00000210| 72 63 68 69 76 65 2e 20 | 20 45 78 74 72 61 63 74 |rchive. | Extract|
|00000220| 20 77 69 74 68 20 73 68 | 2c 20 6e 6f 74 20 63 73 | with sh|, not cs|
|00000230| 68 2e 0d 69 66 20 74 65 | 73 74 20 21 20 2d 64 20 |h..if te|st ! -d |
|00000240| 6d 69 73 63 3b 20 74 68 | 65 6e 0d 09 65 63 68 6f |misc; th|en..echo|
|00000250| 20 6d 6b 64 69 72 20 6d | 69 73 63 0d 09 6d 6b 64 | mkdir m|isc..mkd|
|00000260| 69 72 20 6d 69 73 63 0d | 66 69 0d 69 66 20 74 65 |ir misc.|fi.if te|
|00000270| 73 74 20 21 20 2d 64 20 | 75 74 69 6c 69 74 79 3b |st ! -d |utility;|
|00000280| 20 74 68 65 6e 0d 09 65 | 63 68 6f 20 6d 6b 64 69 | then..e|cho mkdi|
|00000290| 72 20 75 74 69 6c 69 74 | 79 0d 09 6d 6b 64 69 72 |r utilit|y..mkdir|
|000002a0| 20 75 74 69 6c 69 74 79 | 0d 66 69 0d 65 63 68 6f | utility|.fi.echo|
|000002b0| 20 78 20 2d 20 52 45 41 | 44 4d 45 0d 73 65 64 20 | x - REA|DME.sed |
|000002c0| 2d 65 20 27 73 2f 5e 58 | 2f 2f 27 20 3e 20 52 45 |-e 's/^X|//' > RE|
|000002d0| 41 44 4d 45 20 3c 3c 20 | 27 21 45 4f 46 21 52 45 |ADME << |'!EOF!RE|
|000002e0| 41 44 4d 45 21 27 0d 58 | 09 09 09 20 20 20 20 55 |ADME!'.X|... U|
|000002f0| 57 20 56 65 72 73 69 6f | 6e 20 34 2e 32 0d 58 09 |W Versio|n 4.2.X.|
|00000300| 09 09 20 20 20 20 33 31 | 20 4a 61 6e 75 61 72 79 |.. 31| January|
|00000310| 20 31 39 38 38 0d 58 0d | 58 54 68 69 73 20 69 73 | 1988.X.|XThis is|
|00000320| 20 76 65 72 73 69 6f 6e | 20 34 2e 32 20 6f 66 20 | version| 4.2 of |
|00000330| 55 57 2c 20 61 20 6d 75 | 6c 74 69 70 6c 65 2d 77 |UW, a mu|ltiple-w|
|00000340| 69 6e 64 6f 77 20 69 6e | 74 65 72 66 61 63 65 20 |indow in|terface |
|00000350| 74 6f 20 55 4e 49 58 20 | 66 6f 72 0d 58 74 68 65 |to UNIX |for.Xthe|
|00000360| 20 4d 61 63 69 6e 74 6f | 73 68 20 63 6f 6d 70 75 | Macinto|sh compu|
|00000370| 74 65 72 2e 20 20 54 68 | 65 20 64 69 73 74 72 69 |ter. Th|e distri|
|00000380| 62 75 74 69 6f 6e 20 66 | 6f 72 20 55 57 20 63 6f |bution f|or UW co|
|00000390| 6e 73 69 73 74 73 20 6f | 66 20 74 77 6f 0d 58 62 |nsists o|f two.Xb|
|000003a0| 69 6e 61 72 79 20 66 69 | 6c 65 73 20 66 6f 72 20 |inary fi|les for |
|000003b0| 74 68 65 20 4d 61 63 69 | 6e 74 6f 73 68 20 28 69 |the Maci|ntosh (i|
|000003c0| 6e 20 42 69 6e 48 65 78 | 20 34 2e 30 20 66 6f 72 |n BinHex| 4.0 for|
|000003d0| 6d 61 74 29 20 61 6e 64 | 20 61 20 6e 75 6d 62 65 |mat) and| a numbe|
|000003e0| 72 0d 58 6f 66 20 73 6f | 75 72 63 65 20 66 69 6c |r.Xof so|urce fil|
|000003f0| 65 73 20 66 6f 72 20 74 | 68 65 20 28 42 53 44 29 |es for t|he (BSD)|
|00000400| 20 55 4e 49 58 20 73 65 | 72 76 65 72 2e 0d 58 0d | UNIX se|rver..X.|
|00000410| 58 54 68 65 20 64 69 73 | 74 72 69 62 75 74 69 6f |XThe dis|tributio|
|00000420| 6e 20 69 6e 63 6c 75 64 | 65 73 20 74 68 65 20 66 |n includ|es the f|
|00000430| 6f 6c 6c 6f 77 69 6e 67 | 20 64 69 72 65 63 74 6f |ollowing| directo|
|00000440| 72 69 65 73 3a 0d 58 0d | 58 09 68 09 2d 20 61 6c |ries:.X.|X.h.- al|
|00000450| 6c 20 55 57 20 69 6e 63 | 6c 75 64 65 20 66 69 6c |l UW inc|lude fil|
|00000460| 65 73 0d 58 09 73 65 72 | 76 65 72 09 2d 20 73 6f |es.X.ser|ver.- so|
|00000470| 75 72 63 65 20 63 6f 64 | 65 20 66 6f 72 20 74 68 |urce cod|e for th|
|00000480| 65 20 55 57 20 73 65 72 | 76 65 72 0d 58 09 6c 69 |e UW ser|ver.X.li|
|00000490| 62 09 2d 20 73 6f 75 72 | 63 65 20 63 6f 64 65 20 |b.- sour|ce code |
|000004a0| 66 6f 72 20 74 68 65 20 | 55 57 20 70 72 6f 67 72 |for the |UW progr|
|000004b0| 61 6d 6d 65 72 27 73 20 | 6c 69 62 72 61 72 79 0d |ammer's |library.|
|000004c0| 58 09 75 74 69 6c 69 74 | 79 09 2d 20 73 6f 75 72 |X.utilit|y.- sour|
|000004d0| 63 65 20 63 6f 64 65 20 | 66 6f 72 20 6d 69 73 63 |ce code |for misc|
|000004e0| 65 6c 6c 61 6e 65 6f 75 | 73 20 75 74 69 6c 69 74 |ellaneou|s utilit|
|000004f0| 79 20 70 72 6f 67 72 61 | 6d 73 0d 58 09 64 6f 63 |y progra|ms.X.doc|
|00000500| 09 2d 20 5b 6e 74 5d 72 | 6f 66 66 20 64 6f 63 75 |.- [nt]r|off docu|
|00000510| 6d 65 6e 74 61 74 69 6f | 6e 20 28 2d 6d 73 20 61 |mentatio|n (-ms a|
|00000520| 6e 64 20 2d 6d 61 6e 20 | 66 6f 72 6d 61 74 73 29 |nd -man |formats)|
|00000530| 0d 58 09 68 71 78 09 2d | 20 4d 61 63 69 6e 74 6f |.X.hqx.-| Macinto|
|00000540| 73 68 20 62 69 6e 61 72 | 79 20 66 69 6c 65 73 0d |sh binar|y files.|
|00000550| 58 09 6d 69 73 63 09 2d | 20 6f 74 68 65 72 20 74 |X.misc.-| other t|
|00000560| 68 69 6e 67 73 20 6f 66 | 20 70 6f 73 73 69 62 6c |hings of| possibl|
|00000570| 65 20 69 6e 74 65 72 65 | 73 74 0d 58 0d 58 54 68 |e intere|st.X.XTh|
|00000580| 65 20 74 77 6f 20 4d 61 | 63 69 6e 74 6f 73 68 20 |e two Ma|cintosh |
|00000590| 66 69 6c 65 73 20 61 72 | 65 20 22 75 77 2e 68 71 |files ar|e "uw.hq|
|000005a0| 78 22 2c 20 77 68 69 63 | 68 20 69 73 20 74 68 65 |x", whic|h is the|
|000005b0| 20 65 78 65 63 75 74 61 | 62 6c 65 20 62 69 6e 61 | executa|ble bina|
|000005c0| 72 79 0d 58 61 6e 64 20 | 22 75 77 2e 64 6f 63 2e |ry.Xand |"uw.doc.|
|000005d0| 68 71 78 22 2c 20 77 68 | 69 63 68 20 69 73 20 61 |hqx", wh|ich is a|
|000005e0| 20 4d 61 63 57 72 69 74 | 65 2d 66 6f 72 6d 61 74 | MacWrit|e-format|
|000005f0| 20 64 6f 63 75 6d 65 6e | 74 20 64 65 73 63 72 69 | documen|t descri|
|00000600| 62 69 6e 67 20 74 68 65 | 0d 58 4d 61 63 69 6e 74 |bing the|.XMacint|
|00000610| 6f 73 68 20 75 73 65 72 | 20 69 6e 74 65 72 66 61 |osh user| interfa|
|00000620| 63 65 2e 0d 58 0d 58 55 | 57 20 77 61 73 20 64 65 |ce..X.XU|W was de|
|00000630| 76 65 6c 6f 70 65 64 20 | 61 6c 74 65 72 6e 61 74 |veloped |alternat|
|00000640| 65 6c 79 20 6f 6e 20 61 | 20 53 75 6e 20 33 20 61 |ely on a| Sun 3 a|
|00000650| 6e 64 20 34 2e 33 42 53 | 44 20 56 41 58 2e 20 20 |nd 4.3BS|D VAX. |
|00000660| 49 74 20 61 6c 73 6f 0d | 58 68 61 73 20 62 65 65 |It also.|Xhas bee|
|00000670| 6e 20 74 65 73 74 65 64 | 20 28 6d 6f 72 65 20 62 |n tested| (more b|
|00000680| 72 69 65 66 6c 79 29 20 | 6f 6e 20 61 20 53 75 6e |riefly) |on a Sun|
|00000690| 20 32 20 28 72 65 6c 65 | 61 73 65 20 32 2e 30 29 | 2 (rele|ase 2.0)|
|000006a0| 2c 20 49 6e 74 65 67 72 | 61 74 65 64 0d 58 53 6f |, Integr|ated.XSo|
|000006b0| 6c 75 74 69 6f 6e 73 20 | 56 4d 45 20 36 38 30 32 |lutions |VME 6802|
|000006c0| 30 20 28 72 65 6c 65 61 | 73 65 20 33 2e 30 35 29 |0 (relea|se 3.05)|
|000006d0| 2c 20 61 6e 64 20 61 20 | 50 79 72 61 6d 69 64 2e |, and a |Pyramid.|
|000006e0| 20 49 74 20 64 65 70 65 | 6e 64 73 20 71 75 69 74 | It depe|nds quit|
|000006f0| 65 20 61 0d 58 62 69 74 | 20 75 70 6f 6e 20 42 53 |e a.Xbit| upon BS|
|00000700| 44 2d 73 70 65 63 69 66 | 69 63 20 66 65 61 74 75 |D-specif|ic featu|
|00000710| 72 65 73 20 73 75 63 68 | 20 61 73 20 69 6e 74 65 |res such| as inte|
|00000720| 72 70 72 6f 63 65 73 73 | 20 63 6f 6d 6d 75 6e 69 |rprocess| communi|
|00000730| 63 61 74 69 6f 6e 20 61 | 6e 64 0d 58 77 69 6c 6c |cation a|nd.Xwill|
|00000740| 20 6e 6f 74 20 72 75 6e | 20 77 69 74 68 6f 75 74 | not run| without|
|00000750| 20 6d 6f 64 69 66 69 63 | 61 74 69 6f 6e 20 6f 6e | modific|ation on|
|00000760| 20 61 20 53 79 73 74 65 | 6d 20 56 20 55 4e 49 58 | a Syste|m V UNIX|
|00000770| 20 73 79 73 74 65 6d 2e | 0d 58 0d 58 54 68 69 73 | system.|.X.XThis|
|00000780| 20 64 69 73 74 72 69 62 | 75 74 69 6f 6e 2c 20 6c | distrib|ution, l|
|00000790| 69 6b 65 20 74 68 65 20 | 76 65 72 73 69 6f 6e 20 |ike the |version |
|000007a0| 33 2e 34 20 64 69 73 74 | 72 69 62 75 74 69 6f 6e |3.4 dist|ribution|
|000007b0| 2c 20 69 6e 63 6c 75 64 | 65 73 0d 58 6d 61 6b 65 |, includ|es.Xmake|
|000007c0| 20 66 69 6c 65 73 20 66 | 6f 72 20 62 6f 74 68 20 | files f|or both |
|000007d0| 34 2e 32 42 53 44 20 61 | 6e 64 20 34 2e 33 42 53 |4.2BSD a|nd 4.3BS|
|000007e0| 44 2e 20 20 54 68 65 20 | 63 68 6f 69 63 65 20 6f |D. The |choice o|
|000007f0| 66 20 6d 61 6b 65 20 66 | 69 6c 65 73 0d 58 61 6e |f make f|iles.Xan|
|00000800| 64 20 6f 74 68 65 72 20 | 63 6f 6e 66 69 67 75 72 |d other |configur|
|00000810| 61 74 69 6f 6e 20 6f 70 | 74 69 6f 6e 73 20 69 73 |ation op|tions is|
|00000820| 20 64 65 74 65 72 6d 69 | 6e 65 64 20 62 79 20 74 | determi|ned by t|
|00000830| 68 65 20 74 6f 70 2d 6c | 65 76 65 6c 0d 58 22 4d |he top-l|evel.X"M|
|00000840| 61 6b 65 66 69 6c 65 22 | 2e 20 20 43 6f 6d 6d 65 |akefile"|. Comme|
|00000850| 6e 74 73 20 69 6e 20 74 | 68 61 74 20 66 69 6c 65 |nts in t|hat file|
|00000860| 20 64 65 73 63 72 69 62 | 65 20 74 68 65 20 63 6f | describ|e the co|
|00000870| 6e 66 69 67 75 72 61 74 | 69 6f 6e 20 6f 70 74 69 |nfigurat|ion opti|
|00000880| 6f 6e 73 2e 0d 58 0d 58 | 41 20 22 6d 61 6b 65 20 |ons..X.X|A "make |
|00000890| 69 6e 73 74 61 6c 6c 22 | 20 69 6e 20 74 68 65 20 |install"| in the |
|000008a0| 74 6f 70 2d 6c 65 76 65 | 6c 20 64 69 72 65 63 74 |top-leve|l direct|
|000008b0| 6f 72 79 20 77 69 6c 6c | 20 63 6f 6d 70 69 6c 65 |ory will| compile|
|000008c0| 20 61 6e 64 20 69 6e 73 | 74 61 6c 6c 0d 58 61 6c | and ins|tall.Xal|
|000008d0| 6c 20 6f 66 20 74 68 65 | 20 28 55 4e 49 58 29 20 |l of the| (UNIX) |
|000008e0| 70 69 65 63 65 73 20 6f | 66 20 74 68 65 20 55 57 |pieces o|f the UW|
|000008f0| 20 64 69 73 74 72 69 62 | 75 74 69 6f 6e 2e 20 20 | distrib|ution. |
|00000900| 41 73 20 64 69 73 74 72 | 69 62 75 74 65 64 2c 0d |As distr|ibuted,.|
|00000910| 58 74 68 69 73 20 77 69 | 6c 6c 20 63 72 65 61 74 |Xthis wi|ll creat|
|00000920| 65 20 61 20 6c 69 6e 6b | 20 62 65 74 77 65 65 6e |e a link| between|
|00000930| 20 74 68 65 20 64 69 72 | 65 63 74 6f 72 79 20 6e | the dir|ectory n|
|00000940| 61 6d 65 20 22 2f 75 73 | 72 2f 69 6e 63 6c 75 64 |ame "/us|r/includ|
|00000950| 65 2f 75 77 22 0d 58 61 | 6e 64 20 74 68 65 20 22 |e/uw".Xa|nd the "|
|00000960| 68 22 20 73 75 62 64 69 | 72 65 63 74 6f 72 79 20 |h" subdi|rectory |
|00000970| 61 6e 64 20 77 69 6c 6c | 20 63 72 65 61 74 65 20 |and will| create |
|00000980| 61 20 22 2f 75 73 72 2f | 6c 6f 63 61 6c 2f 62 69 |a "/usr/|local/bi|
|00000990| 6e 2f 6c 69 62 75 77 2e | 61 22 0d 58 6c 69 62 72 |n/libuw.|a".Xlibr|
|000009a0| 61 72 79 20 66 69 6c 65 | 2e 20 20 54 68 65 73 65 |ary file|. These|
|000009b0| 20 74 77 6f 20 73 74 65 | 70 73 20 61 6c 6c 6f 77 | two ste|ps allow|
|000009c0| 20 61 70 70 6c 69 63 61 | 74 69 6f 6e 20 70 72 6f | applica|tion pro|
|000009d0| 67 72 61 6d 20 74 6f 20 | 75 73 65 0d 58 09 23 69 |gram to |use.X.#i|
|000009e0| 6e 63 6c 75 64 65 20 3c | 75 77 2f 75 77 6c 69 62 |nclude <|uw/uwlib|
|000009f0| 2e 68 3e 0d 58 61 6e 64 | 0d 58 09 63 63 20 2d 6f |.h>.Xand|.X.cc -o|
|00000a00| 20 78 79 7a 7a 79 20 78 | 79 7a 7a 79 2e 6f 20 2d | xyzzy x|yzzy.o -|
|00000a10| 6c 75 77 0d 58 66 6f 72 | 20 67 72 65 61 74 65 72 |luw.Xfor| greater|
|00000a20| 20 63 6f 6e 76 65 6e 69 | 65 6e 63 65 20 69 6e 20 | conveni|ence in |
|00000a30| 63 72 65 61 74 69 6e 67 | 20 70 72 6f 67 72 61 6d |creating| program|
|00000a40| 73 20 74 68 61 74 20 75 | 73 65 20 74 68 65 20 55 |s that u|se the U|
|00000a50| 57 20 6c 69 62 72 61 72 | 79 2e 0d 58 0d 58 49 66 |W librar|y..X.XIf|
|00000a60| 20 79 6f 75 20 64 6f 20 | 6e 6f 74 20 68 61 76 65 | you do |not have|
|00000a70| 20 74 68 65 20 22 67 65 | 74 6f 70 74 22 20 6c 69 | the "ge|topt" li|
|00000a80| 62 72 61 72 79 20 72 6f | 75 74 69 6e 65 2c 20 79 |brary ro|utine, y|
|00000a90| 6f 75 20 77 69 6c 6c 20 | 66 69 6e 64 20 74 68 65 |ou will |find the|
|00000aa0| 0d 58 73 6f 75 72 63 65 | 20 69 6e 20 22 6d 69 73 |.Xsource| in "mis|
|00000ab0| 63 2f 67 65 74 6f 70 74 | 2e 63 22 20 20 54 68 69 |c/getopt|.c" Thi|
|00000ac0| 73 20 73 6f 75 72 63 65 | 20 63 6f 64 65 20 77 61 |s source| code wa|
|00000ad0| 73 20 70 75 62 6c 69 63 | 6c 79 20 64 69 73 74 72 |s public|ly distr|
|00000ae0| 69 62 75 74 65 64 20 62 | 79 0d 58 41 54 26 54 20 |ibuted b|y.XAT&T |
|00000af0| 61 6e 64 20 69 73 20 61 | 6c 73 6f 20 61 76 61 69 |and is a|lso avai|
|00000b00| 6c 61 62 6c 65 20 69 6e | 20 74 68 65 20 22 6d 6f |lable in| the "mo|
|00000b10| 64 2e 73 6f 75 72 63 65 | 73 22 20 61 72 63 68 69 |d.source|s" archi|
|00000b20| 76 65 2e 20 20 59 6f 75 | 20 73 68 6f 75 6c 64 0d |ve. You| should.|
|00000b30| 58 63 6f 6d 70 69 6c 65 | 20 69 74 20 61 6e 64 20 |Xcompile| it and |
|00000b40| 69 6e 73 74 61 6c 6c 20 | 69 74 20 69 6e 20 79 6f |install |it in yo|
|00000b50| 75 72 20 6d 61 63 68 69 | 6e 65 27 73 20 22 2f 6c |ur machi|ne's "/l|
|00000b60| 69 62 2f 6c 69 62 63 2e | 61 22 20 20 28 4e 6f 74 |ib/libc.|a" (Not|
|00000b70| 65 20 74 68 61 74 0d 58 | 73 69 6e 63 65 20 69 74 |e that.X|since it|
|00000b80| 20 75 73 65 73 20 22 73 | 74 72 63 68 72 22 2c 20 | uses "s|trchr", |
|00000b90| 79 6f 75 20 73 68 6f 75 | 6c 64 20 63 6f 6d 70 69 |you shou|ld compi|
|00000ba0| 6c 65 20 69 74 20 6f 6e | 20 61 20 42 53 44 20 73 |le it on| a BSD s|
|00000bb0| 79 73 74 65 6d 20 77 69 | 74 68 20 74 68 65 0d 58 |ystem wi|th the.X|
|00000bc0| 63 6f 6d 6d 61 6e 64 20 | 22 63 63 20 2d 4f 20 2d |command |"cc -O -|
|00000bd0| 63 20 67 65 74 6f 70 74 | 2e 63 20 2d 44 73 74 72 |c getopt|.c -Dstr|
|00000be0| 63 68 72 3d 69 6e 64 65 | 78 22 2e 29 20 20 5b 53 |chr=inde|x".) [S|
|00000bf0| 6f 72 72 79 2c 20 49 20 | 63 61 6e 27 74 20 66 69 |orry, I |can't fi|
|00000c00| 6e 64 20 61 0d 58 6d 61 | 6e 75 61 6c 20 70 61 67 |nd a.Xma|nual pag|
|00000c10| 65 20 77 68 69 63 68 20 | 49 20 63 61 6e 20 28 6c |e which |I can (l|
|00000c20| 65 67 61 6c 6c 79 29 20 | 69 6e 63 6c 75 64 65 2e |egally) |include.|
|00000c30| 5d 20 20 49 66 20 79 6f | 75 20 63 61 6e 27 74 20 |] If yo|u can't |
|00000c40| 63 68 61 6e 67 65 0d 58 | 22 6c 69 62 63 2e 61 22 |change.X|"libc.a"|
|00000c50| 2c 20 74 68 65 6e 20 79 | 6f 75 20 73 68 6f 75 6c |, then y|ou shoul|
|00000c60| 64 20 61 64 64 20 69 74 | 20 74 6f 20 74 68 65 20 |d add it| to the |
|00000c70| 6d 61 6b 65 66 69 6c 65 | 73 20 69 6e 20 74 68 65 |makefile|s in the|
|00000c80| 20 22 73 65 72 76 65 72 | 22 0d 58 61 6e 64 20 22 | "server|".Xand "|
|00000c90| 6c 69 62 22 20 64 69 72 | 65 63 74 6f 72 69 65 73 |lib" dir|ectories|
|00000ca0| 2e 0d 58 0d 58 56 65 72 | 73 69 6f 6e 20 34 2e 32 |..X.XVer|sion 4.2|
|00000cb0| 20 69 73 20 70 72 69 6d | 61 72 69 6c 79 20 61 20 | is prim|arily a |
|00000cc0| 6d 61 69 6e 74 65 6e 61 | 6e 63 65 20 72 65 6c 65 |maintena|nce rele|
|00000cd0| 61 73 65 2e 20 20 42 65 | 63 61 75 73 65 20 6f 66 |ase. Be|cause of|
|00000ce0| 20 63 6f 6e 73 74 72 61 | 69 6e 74 73 0d 58 6f 6e | constra|ints.Xon|
|00000cf0| 20 74 68 65 20 61 75 74 | 68 6f 72 27 73 20 74 69 | the aut|hor's ti|
|00000d00| 6d 65 2c 20 66 65 77 20 | 74 68 69 6e 67 73 20 68 |me, few |things h|
|00000d10| 61 76 65 20 63 68 61 6e | 67 65 64 20 73 69 6e 63 |ave chan|ged sinc|
|00000d20| 65 20 76 65 72 73 69 6f | 6e 20 34 2e 31 2e 20 20 |e versio|n 4.1. |
|00000d30| 53 6f 6d 65 0d 58 6f 66 | 20 74 68 65 20 64 69 66 |Some.Xof| the dif|
|00000d40| 66 65 72 65 6e 63 65 73 | 20 61 72 65 3a 0d 58 0d |ferences| are:.X.|
|00000d50| 58 20 20 20 20 31 29 09 | 55 57 20 76 34 2e 32 20 |X 1).|UW v4.2 |
|00000d60| 69 73 20 63 6f 6d 70 61 | 74 69 62 6c 65 20 77 69 |is compa|tible wi|
|00000d70| 74 68 20 4d 75 6c 74 69 | 66 69 6e 64 65 72 2e 20 |th Multi|finder. |
|00000d80| 20 49 74 20 75 6e 64 65 | 72 73 74 61 6e 64 73 20 | It unde|rstands |
|00000d90| 62 61 63 6b 67 72 6f 75 | 6e 64 0d 58 09 65 76 65 |backgrou|nd.X.eve|
|00000da0| 6e 74 73 2c 20 73 6f 20 | 69 74 20 63 61 6e 20 72 |nts, so |it can r|
|00000db0| 65 63 65 69 76 65 20 69 | 6e 70 75 74 20 61 6e 64 |eceive i|nput and|
|00000dc0| 20 75 70 64 61 74 65 20 | 77 69 6e 64 6f 77 73 20 | update |windows |
|00000dd0| 65 76 65 6e 20 77 68 65 | 6e 0d 58 09 61 6e 6f 74 |even whe|n.X.anot|
|00000de0| 68 65 72 20 61 70 70 6c | 69 63 61 74 69 6f 6e 27 |her appl|ication'|
|00000df0| 73 20 77 69 6e 64 6f 77 | 20 69 73 20 61 63 74 69 |s window| is acti|
|00000e00| 76 65 2e 0d 58 0d 58 20 | 20 20 20 32 29 09 53 6f |ve..X.X | 2).So|
|00000e10| 6d 65 20 70 72 6f 62 6c | 65 6d 73 20 72 65 6c 61 |me probl|ems rela|
|00000e20| 74 69 6e 67 20 74 6f 20 | 6b 65 79 62 6f 61 72 64 |ting to |keyboard|
|00000e30| 20 6d 61 70 70 69 6e 67 | 20 68 61 76 65 20 62 65 | mapping| have be|
|00000e40| 65 6e 20 66 69 78 65 64 | 2e 0d 58 09 55 57 20 72 |en fixed|..X.UW r|
|00000e50| 65 63 6f 67 6e 69 7a 65 | 73 20 74 68 65 20 43 6f |ecognize|s the Co|
|00000e60| 6e 74 72 6f 6c 20 61 6e | 64 20 45 53 43 20 6b 65 |ntrol an|d ESC ke|
|00000e70| 79 73 2e 20 20 54 68 65 | 20 6d 61 70 70 69 6e 67 |ys. The| mapping|
|00000e80| 20 66 6f 72 20 74 68 65 | 0d 58 09 6e 75 6d 65 72 | for the|.X.numer|
|00000e90| 69 63 20 6b 65 79 70 61 | 64 20 73 74 69 6c 6c 20 |ic keypa|d still |
|00000ea0| 73 65 65 6d 73 20 74 6f | 20 62 65 20 69 6e 63 6f |seems to| be inco|
|00000eb0| 6d 70 6c 65 74 65 2e 20 | 20 54 68 65 20 61 75 74 |mplete. | The aut|
|00000ec0| 68 6f 72 20 69 73 0d 58 | 09 68 61 6d 70 65 72 65 |hor is.X|.hampere|
|00000ed0| 64 20 62 79 20 74 68 65 | 20 66 61 63 74 20 74 68 |d by the| fact th|
|00000ee0| 61 74 20 68 69 73 20 64 | 65 76 65 6c 6f 70 6d 65 |at his d|evelopme|
|00000ef0| 6e 74 20 6d 61 63 68 69 | 6e 65 20 73 74 69 6c 6c |nt machi|ne still|
|00000f00| 20 68 61 73 0d 58 09 69 | 74 73 20 6f 72 69 67 69 | has.X.i|ts origi|
|00000f10| 6e 61 6c 20 35 31 32 4b | 20 4d 61 63 20 6b 65 79 |nal 512K| Mac key|
|00000f20| 62 6f 61 72 64 2e 20 20 | 28 48 65 20 64 69 73 6c |board. |(He disl|
|00000f30| 69 6b 65 73 20 74 68 65 | 20 4d 61 63 2b 20 61 6e |ikes the| Mac+ an|
|00000f40| 64 0d 58 09 53 45 20 6b | 65 79 62 6f 61 72 64 73 |d.X.SE k|eyboards|
|00000f50| 2e 29 0d 58 0d 58 20 20 | 20 20 33 29 09 41 20 6e |.).X.X | 3).A n|
|00000f60| 65 77 20 77 69 6e 64 6f | 77 20 74 79 70 65 20 2d |ew windo|w type -|
|00000f70| 2d 20 70 6c 6f 74 20 2d | 2d 20 68 61 73 20 62 65 |- plot -|- has be|
|00000f80| 65 6e 20 64 65 66 69 6e | 65 64 2e 20 20 54 68 69 |en defin|ed. Thi|
|00000f90| 73 20 74 79 70 65 20 6f | 66 0d 58 09 77 69 6e 64 |s type o|f.X.wind|
|00000fa0| 6f 77 20 63 61 6e 20 6f | 6e 6c 79 20 62 65 20 63 |ow can o|nly be c|
|00000fb0| 72 65 61 74 65 64 20 62 | 79 20 74 68 65 20 68 6f |reated b|y the ho|
|00000fc0| 73 74 2e 20 20 49 74 20 | 69 6e 74 65 72 70 72 65 |st. It |interpre|
|00000fd0| 74 73 20 6f 75 74 70 75 | 74 0d 58 09 69 6e 20 55 |ts outpu|t.X.in U|
|00000fe0| 4e 49 58 20 76 37 20 70 | 6c 6f 74 28 35 29 20 66 |NIX v7 p|lot(5) f|
|00000ff0| 6f 72 6d 61 74 2e 0d 58 | 0d 58 20 20 20 20 34 29 |ormat..X|.X 4)|
|00001000| 09 57 69 6e 64 6f 77 73 | 20 6d 61 79 20 75 73 65 |.Windows| may use|
|00001010| 20 37 2c 20 39 2c 20 31 | 30 2c 20 6f 72 20 31 32 | 7, 9, 1|0, or 12|
|00001020| 20 70 6f 69 6e 74 20 66 | 69 78 65 64 2d 77 69 64 | point f|ixed-wid|
|00001030| 74 68 20 66 6f 6e 74 73 | 2e 0d 58 09 55 57 20 69 |th fonts|..X.UW i|
|00001040| 6e 63 6c 75 64 65 73 20 | 6e 6f 6e 2d 41 70 70 6c |ncludes |non-Appl|
|00001050| 65 2d 63 6f 70 79 72 69 | 67 68 74 65 64 20 4d 69 |e-copyri|ghted Mi|
|00001060| 73 68 61 77 61 6b 61 20 | 66 6f 6e 74 73 20 66 6f |shawaka |fonts fo|
|00001070| 72 20 74 68 65 73 65 20 | 73 69 7a 65 73 2e 0d 58 |r these |sizes..X|
|00001080| 0d 58 55 57 20 69 73 20 | 6e 6f 74 20 70 75 62 6c |.XUW is |not publ|
|00001090| 69 63 20 64 6f 6d 61 69 | 6e 2e 20 20 49 74 20 69 |ic domai|n. It i|
|000010a0| 73 20 63 6f 70 79 72 69 | 67 68 74 65 64 2e 20 20 |s copyri|ghted. |
|000010b0| 48 6f 77 65 76 65 72 2c | 20 70 65 72 6d 69 73 73 |However,| permiss|
|000010c0| 69 6f 6e 20 74 6f 0d 58 | 63 6f 70 79 20 55 57 20 |ion to.X|copy UW |
|000010d0| 69 73 20 67 69 76 65 6e | 20 70 72 6f 76 69 64 65 |is given| provide|
|000010e0| 64 20 74 68 61 74 20 74 | 68 65 20 63 6f 70 69 65 |d that t|he copie|
|000010f0| 73 20 61 72 65 20 6e 6f | 74 20 73 6f 6c 64 20 61 |s are no|t sold a|
|00001100| 6e 64 20 74 68 61 74 20 | 74 68 65 0d 58 63 6f 70 |nd that |the.Xcop|
|00001110| 79 72 69 67 68 74 20 6e | 6f 74 69 63 65 73 20 61 |yright n|otices a|
|00001120| 72 65 20 72 65 74 61 69 | 6e 65 64 2e 0d 58 0d 58 |re retai|ned..X.X|
|00001130| 43 6f 6d 6d 65 6e 74 73 | 20 61 62 6f 75 74 20 55 |Comments| about U|
|00001140| 57 20 63 61 6e 20 62 65 | 20 73 65 6e 74 20 74 6f |W can be| sent to|
|00001150| 20 74 68 65 20 61 75 74 | 68 6f 72 20 28 6d 65 29 | the aut|hor (me)|
|00001160| 20 61 74 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e | at the |followin|
|00001170| 67 0d 58 61 64 64 72 65 | 73 73 65 73 3a 0d 58 0d |g.Xaddre|sses:.X.|
|00001180| 58 09 41 52 50 41 4e 45 | 54 2f 4d 49 4c 4e 45 54 |X.ARPANE|T/MILNET|
|00001190| 3a 09 6a 64 62 40 6d 6f | 72 64 6f 72 2e 73 31 2e |:.jdb@mo|rdor.s1.|
|000011a0| 67 6f 76 0d 58 0d 58 09 | 55 55 43 50 3a 09 09 7b |gov.X.X.|UUCP:..{|
|000011b0| 6c 6c 6c 2d 63 72 67 2c | 64 65 63 77 72 6c 2c 63 |lll-crg,|decwrl,c|
|000011c0| 61 69 70 7d 21 6d 6f 72 | 64 6f 72 21 6a 64 62 0d |aip}!mor|dor!jdb.|
|000011d0| 58 0d 58 09 55 2e 53 2e | 20 4d 61 69 6c 3a 09 4a |X.X.U.S.| Mail:.J|
|000011e0| 6f 68 6e 20 42 72 75 6e | 65 72 0d 58 09 09 09 4c |ohn Brun|er.X...L|
|000011f0| 61 77 72 65 6e 63 65 20 | 4c 69 76 65 72 6d 6f 72 |awrence |Livermor|
|00001200| 65 20 4e 61 74 69 6f 6e | 61 6c 20 4c 61 62 6f 72 |e Nation|al Labor|
|00001210| 61 74 6f 72 79 0d 58 09 | 09 09 50 2e 4f 2e 20 42 |atory.X.|..P.O. B|
|00001220| 6f 78 20 35 35 30 33 2c | 20 4c 2d 32 37 36 0d 58 |ox 5503,| L-276.X|
|00001230| 09 09 09 4c 69 76 65 72 | 6d 6f 72 65 2c 20 43 41 |...Liver|more, CA|
|00001240| 20 20 39 34 35 35 30 0d | 58 0d 58 49 20 74 72 79 | 94550.|X.XI try|
|00001250| 20 74 6f 20 61 6e 73 77 | 65 72 20 61 6c 6c 20 6d | to answ|er all m|
|00001260| 61 69 6c 2c 20 62 75 74 | 20 73 6f 6d 65 74 69 6d |ail, but| sometim|
|00001270| 65 73 20 61 6d 20 75 6e | 61 62 6c 65 20 74 6f 20 |es am un|able to |
|00001280| 64 6f 20 73 6f 20 66 6f | 72 20 72 65 61 73 6f 6e |do so fo|r reason|
|00001290| 73 0d 58 62 65 79 6f 6e | 64 20 6d 79 20 63 6f 6e |s.Xbeyon|d my con|
|000012a0| 74 72 6f 6c 20 28 65 2e | 67 2e 20 69 6e 63 6f 6d |trol (e.|g. incom|
|000012b0| 70 6c 65 74 65 20 6f 72 | 20 69 6e 63 6f 72 72 65 |plete or| incorre|
|000012c0| 63 74 20 72 65 74 75 72 | 6e 20 61 64 64 72 65 73 |ct retur|n addres|
|000012d0| 73 65 73 2c 0d 58 66 69 | 6e 69 63 6b 79 20 6d 61 |ses,.Xfi|nicky ma|
|000012e0| 69 6c 65 72 73 29 2e 0d | 21 45 4f 46 21 52 45 41 |ilers)..|!EOF!REA|
|000012f0| 44 4d 45 21 0d 65 63 68 | 6f 20 78 20 2d 20 4d 61 |DME!.ech|o x - Ma|
|00001300| 6b 65 66 69 6c 65 0d 73 | 65 64 20 2d 65 20 27 73 |kefile.s|ed -e 's|
|00001310| 2f 5e 58 2f 2f 27 20 3e | 20 4d 61 6b 65 66 69 6c |/^X//' >| Makefil|
|00001320| 65 20 3c 3c 20 27 21 45 | 4f 46 21 4d 61 6b 65 66 |e << '!E|OF!Makef|
|00001330| 69 6c 65 21 27 0d 58 23 | 21 20 2f 62 69 6e 2f 6d |ile!'.X#|! /bin/m|
|00001340| 61 6b 65 20 2d 66 0d 58 | 23 0d 58 23 09 4d 61 6b |ake -f.X|#.X#.Mak|
|00001350| 65 66 69 6c 65 20 66 6f | 72 20 55 57 20 76 65 72 |efile fo|r UW ver|
|00001360| 73 69 6f 6e 20 34 2e 32 | 0d 58 23 0d 58 23 20 53 |sion 4.2|.X#.X# S|
|00001370| 70 65 63 69 66 79 20 56 | 45 52 53 49 4f 4e 20 34 |pecify V|ERSION 4|
|00001380| 2e 33 20 66 6f 72 20 34 | 2e 33 42 53 44 2c 20 34 |.3 for 4|.3BSD, 4|
|00001390| 2e 32 20 66 6f 72 20 34 | 2e 32 42 53 44 20 28 69 |.2 for 4|.2BSD (i|
|000013a0| 6e 63 6c 75 64 69 6e 67 | 20 53 75 6e 20 33 2e 78 |ncluding| Sun 3.x|
|000013b0| 29 0d 58 23 0d 58 23 20 | 44 45 46 49 4e 45 53 20 |).X#.X# |DEFINES |
|000013c0| 69 73 20 61 20 6c 69 73 | 74 20 6f 66 20 74 68 65 |is a lis|t of the|
|000013d0| 20 73 69 74 65 2d 64 65 | 70 65 6e 64 65 6e 74 20 | site-de|pendent |
|000013e0| 63 6f 6d 70 69 6c 65 2d | 74 69 6d 65 20 6f 70 74 |compile-|time opt|
|000013f0| 69 6f 6e 73 3a 0d 58 23 | 20 09 2d 44 55 54 4d 50 |ions:.X#| .-DUTMP|
|00001400| 09 09 61 74 74 65 6d 70 | 74 20 74 6f 20 75 70 64 |..attemp|t to upd|
|00001410| 61 74 65 20 22 2f 65 74 | 63 2f 75 74 6d 70 22 20 |ate "/et|c/utmp" |
|00001420| 28 77 68 6f 29 20 66 69 | 6c 65 0d 58 23 20 09 2d |(who) fi|le.X# .-|
|00001430| 44 56 37 54 54 59 53 09 | 56 37 2d 66 6f 72 6d 61 |DV7TTYS.|V7-forma|
|00001440| 74 20 22 2f 65 74 63 2f | 74 74 79 73 22 20 28 70 |t "/etc/|ttys" (p|
|00001450| 72 65 2d 34 2e 33 42 53 | 44 29 0d 58 23 09 2d 44 |re-4.3BS|D).X#.-D|
|00001460| 53 45 54 4f 57 4e 5f 42 | 55 47 09 66 63 6e 74 6c |SETOWN_B|UG.fcntl|
|00001470| 28 66 64 2c 20 46 5f 53 | 45 54 4f 57 4e 2c 20 70 |(fd, F_S|ETOWN, p|
|00001480| 67 72 70 29 20 69 73 20 | 62 72 6f 6b 65 6e 20 28 |grp) is |broken (|
|00001490| 70 72 65 2d 34 2e 33 42 | 53 44 29 0d 58 23 09 2d |pre-4.3B|SD).X#.-|
|000014a0| 44 76 6f 69 64 3d 69 6e | 74 09 6b 6c 75 64 67 65 |Dvoid=in|t.kludge|
|000014b0| 20 61 72 6f 75 6e 64 20 | 62 72 6f 6b 65 6e 20 43 | around |broken C|
|000014c0| 20 63 6f 6d 70 69 6c 65 | 72 73 0d 58 23 0d 58 23 | compile|rs.X#.X#|
|000014d0| 20 55 54 4d 50 20 73 70 | 65 63 69 66 69 65 73 20 | UTMP sp|ecifies |
|000014e0| 74 68 61 74 20 55 57 20 | 73 68 6f 75 6c 64 20 61 |that UW |should a|
|000014f0| 74 74 65 6d 70 74 20 74 | 6f 20 75 70 64 61 74 65 |ttempt t|o update|
|00001500| 20 74 68 65 20 22 2f 65 | 74 63 2f 75 74 6d 70 22 | the "/e|tc/utmp"|
|00001510| 20 66 69 6c 65 2e 0d 58 | 23 20 4f 6e 20 73 6f 6d | file..X|# On som|
|00001520| 65 20 28 66 6f 6f 6c 69 | 73 68 29 20 73 79 73 74 |e (fooli|sh) syst|
|00001530| 65 6d 73 20 74 68 69 73 | 20 66 69 6c 65 20 69 73 |ems this| file is|
|00001540| 20 77 6f 72 6c 64 2d 77 | 72 69 74 65 61 62 6c 65 | world-w|riteable|
|00001550| 2e 20 20 4f 74 68 65 72 | 0d 58 23 20 69 6e 73 74 |. Other|.X# inst|
|00001560| 61 6c 6c 61 74 69 6f 6e | 73 20 6d 61 79 20 77 69 |allation|s may wi|
|00001570| 73 68 20 41 46 54 45 52 | 20 43 41 52 45 46 55 4c |sh AFTER| CAREFUL|
|00001580| 20 45 58 41 4d 49 4e 41 | 54 49 4f 4e 20 4f 46 20 | EXAMINA|TION OF |
|00001590| 54 48 45 20 49 53 53 55 | 45 53 20 74 6f 0d 58 23 |THE ISSU|ES to.X#|
|000015a0| 20 69 6e 73 74 61 6c 6c | 20 74 68 65 20 55 57 20 | install| the UW |
|000015b0| 73 65 72 76 65 72 20 77 | 69 74 68 20 67 72 6f 75 |server w|ith grou|
|000015c0| 70 20 77 72 69 74 65 20 | 61 63 63 65 73 73 20 74 |p write |access t|
|000015d0| 6f 20 74 68 65 20 75 74 | 6d 70 20 66 69 6c 65 2e |o the ut|mp file.|
|000015e0| 0d 58 23 0d 58 23 20 56 | 37 54 54 59 53 20 73 68 |.X#.X# V|7TTYS sh|
|000015f0| 6f 75 6c 64 20 62 65 20 | 75 73 65 64 20 66 6f 72 |ould be |used for|
|00001600| 20 56 37 2d 64 65 72 69 | 76 65 64 20 73 79 73 74 | V7-deri|ved syst|
|00001610| 65 6d 73 20 74 68 61 74 | 20 64 6f 20 6e 6f 74 20 |ems that| do not |
|00001620| 68 61 76 65 20 34 2e 33 | 42 53 44 27 73 0d 58 23 |have 4.3|BSD's.X#|
|00001630| 20 22 2f 65 74 63 2f 74 | 74 79 73 22 20 66 69 6c | "/etc/t|tys" fil|
|00001640| 65 2e 20 20 54 68 69 73 | 20 69 6e 63 6c 75 64 65 |e. This| include|
|00001650| 73 20 34 2e 32 42 53 44 | 20 61 6e 64 20 53 75 6e |s 4.2BSD| and Sun|
|00001660| 20 55 4e 49 58 2e 20 20 | 54 68 65 72 65 20 69 73 | UNIX. |There is|
|00001670| 20 6e 6f 0d 58 23 20 73 | 75 70 70 6f 72 74 20 66 | no.X# s|upport f|
|00001680| 6f 72 20 55 53 47 27 73 | 20 22 2f 65 74 63 2f 69 |or USG's| "/etc/i|
|00001690| 6e 69 74 74 61 62 22 2e | 0d 58 23 0d 58 23 20 53 |nittab".|.X#.X# S|
|000016a0| 45 54 4f 57 4e 5f 42 55 | 47 20 73 68 6f 75 6c 64 |ETOWN_BU|G should|
|000016b0| 20 62 65 20 64 65 66 69 | 6e 65 64 20 69 66 20 74 | be defi|ned if t|
|000016c0| 68 65 20 66 63 6e 74 6c | 28 66 64 2c 20 46 5f 53 |he fcntl|(fd, F_S|
|000016d0| 45 54 4f 57 4e 2c 20 70 | 67 72 70 29 20 73 79 73 |ETOWN, p|grp) sys|
|000016e0| 74 65 6d 0d 58 23 20 63 | 61 6c 6c 20 69 73 20 62 |tem.X# c|all is b|
|000016f0| 72 6f 6b 65 6e 20 28 61 | 73 20 69 74 20 69 73 20 |roken (a|s it is |
|00001700| 69 6e 20 34 2e 32 42 53 | 44 20 61 6e 64 20 53 75 |in 4.2BS|D and Su|
|00001710| 6e 20 33 2e 30 20 55 4e | 49 58 29 2e 20 20 4f 6e |n 3.0 UN|IX). On|
|00001720| 20 74 68 6f 73 65 0d 58 | 23 20 6d 61 63 68 69 6e | those.X|# machin|
|00001730| 65 73 20 74 68 65 20 74 | 68 69 72 64 20 61 72 67 |es the t|hird arg|
|00001740| 75 6d 65 6e 74 20 6d 75 | 73 74 20 62 65 20 6e 65 |ument mu|st be ne|
|00001750| 67 61 74 69 76 65 20 74 | 6f 20 73 70 65 63 69 66 |gative t|o specif|
|00001760| 79 20 61 20 70 72 6f 63 | 65 73 73 20 49 44 0d 58 |y a proc|ess ID.X|
|00001770| 23 20 61 6e 64 20 70 6f | 73 69 74 69 76 65 20 74 |# and po|sitive t|
|00001780| 6f 20 73 70 65 63 69 66 | 79 20 61 20 70 72 6f 63 |o specif|y a proc|
|00001790| 65 73 73 20 67 72 6f 75 | 70 2e 0d 58 23 0d 58 23 |ess grou|p..X#.X#|
|000017a0| 20 53 6f 6d 65 20 43 20 | 63 6f 6d 70 69 6c 65 72 | Some C |compiler|
|000017b0| 73 20 64 6f 20 6e 6f 74 | 20 75 6e 64 65 72 73 74 |s do not| underst|
|000017c0| 61 6e 64 20 70 6f 69 6e | 74 65 72 73 20 74 6f 20 |and poin|ters to |
|000017d0| 76 6f 69 64 20 66 75 6e | 63 74 69 6f 6e 73 2e 20 |void fun|ctions. |
|000017e0| 20 54 68 65 0d 58 23 20 | 63 6f 6d 6d 6f 6e 20 6b | The.X# |common k|
|000017f0| 6c 75 64 67 65 20 61 72 | 6f 75 6e 64 20 74 68 69 |ludge ar|ound thi|
|00001800| 73 20 70 72 6f 62 6c 65 | 6d 20 69 73 20 74 6f 20 |s proble|m is to |
|00001810| 73 75 62 73 74 69 74 75 | 74 65 20 22 69 6e 74 22 |substitu|te "int"|
|00001820| 20 66 6f 72 20 22 76 6f | 69 64 22 0d 58 23 20 65 | for "vo|id".X# e|
|00001830| 76 65 72 79 77 68 65 72 | 65 2e 20 20 22 6c 69 6e |verywher|e. "lin|
|00001840| 74 22 20 64 6f 65 73 6e | 27 74 20 6c 69 6b 65 20 |t" doesn|'t like |
|00001850| 74 68 69 73 2c 20 62 75 | 74 20 74 68 65 20 70 72 |this, bu|t the pr|
|00001860| 6f 67 72 61 6d 20 77 69 | 6c 6c 20 63 6f 6d 70 69 |ogram wi|ll compi|
|00001870| 6c 65 0d 58 23 20 69 6e | 74 6f 20 77 6f 72 6b 69 |le.X# in|to worki|
|00001880| 6e 67 20 63 6f 64 65 2e | 0d 58 23 0d 58 42 49 4e |ng code.|.X#.XBIN|
|00001890| 44 49 52 09 3d 09 2f 75 | 73 72 2f 6c 6f 63 61 6c |DIR.=./u|sr/local|
|000018a0| 2f 62 69 6e 0d 58 49 4e | 43 44 49 52 09 3d 09 2f |/bin.XIN|CDIR.=./|
|000018b0| 75 73 72 2f 69 6e 63 6c | 75 64 65 2f 75 77 0d 58 |usr/incl|ude/uw.X|
|000018c0| 4c 49 42 44 49 52 09 3d | 09 2f 75 73 72 2f 6c 6f |LIBDIR.=|./usr/lo|
|000018d0| 63 61 6c 2f 6c 69 62 0d | 58 56 45 52 53 49 4f 4e |cal/lib.|XVERSION|
|000018e0| 09 3d 09 34 2e 33 0d 58 | 0d 58 44 45 46 49 4e 45 |.=.4.3.X|.XDEFINE|
|000018f0| 53 09 3d 09 2d 44 55 54 | 4d 50 0d 58 0d 58 4d 4b |S.=.-DUT|MP.X.XMK|
|00001900| 46 49 4c 45 53 09 3d 09 | 73 65 72 76 65 72 2f 4d |FILES.=.|server/M|
|00001910| 61 6b 65 66 69 6c 65 20 | 6c 69 62 2f 4d 61 6b 65 |akefile |lib/Make|
|00001920| 66 69 6c 65 20 75 74 69 | 6c 69 74 79 2f 4d 61 6b |file uti|lity/Mak|
|00001930| 65 66 69 6c 65 20 68 71 | 78 2f 4d 61 6b 65 66 69 |efile hq|x/Makefi|
|00001940| 6c 65 0d 58 0d 58 61 6c | 6c 3a 09 44 45 46 49 4e |le.X.Xal|l:.DEFIN|
|00001950| 45 53 20 24 28 4d 4b 46 | 49 4c 45 53 29 0d 58 09 |ES $(MKF|ILES).X.|
|00001960| 63 64 20 73 65 72 76 65 | 72 3b 20 6d 61 6b 65 0d |cd serve|r; make.|
|00001970| 58 09 63 64 20 6c 69 62 | 3b 20 6d 61 6b 65 0d 58 |X.cd lib|; make.X|
|00001980| 09 63 64 20 75 74 69 6c | 69 74 79 3b 20 6d 61 6b |.cd util|ity; mak|
|00001990| 65 0d 58 09 63 64 20 68 | 71 78 3b 20 6d 61 6b 65 |e.X.cd h|qx; make|
|000019a0| 0d 58 0d 58 64 65 70 65 | 6e 64 3a 0d 58 09 63 64 |.X.Xdepe|nd:.X.cd|
|000019b0| 20 73 65 72 76 65 72 3b | 20 6d 61 6b 65 20 64 65 | server;| make de|
|000019c0| 70 65 6e 64 0d 58 09 63 | 64 20 6c 69 62 3b 20 6d |pend.X.c|d lib; m|
|000019d0| 61 6b 65 20 64 65 70 65 | 6e 64 0d 58 09 63 64 20 |ake depe|nd.X.cd |
|000019e0| 75 74 69 6c 69 74 79 3b | 20 6d 61 6b 65 20 64 65 |utility;| make de|
|000019f0| 70 65 6e 64 0d 58 0d 58 | 69 6e 73 74 61 6c 6c 3a |pend.X.X|install:|
|00001a00| 09 61 6c 6c 0d 58 09 6c | 6e 20 2d 73 20 60 70 77 |.all.X.l|n -s `pw|
|00001a10| 64 60 2f 68 20 24 28 49 | 4e 43 44 49 52 29 0d 58 |d`/h $(I|NCDIR).X|
|00001a20| 09 69 6e 73 74 61 6c 6c | 20 2d 73 20 73 65 72 76 |.install| -s serv|
|00001a30| 65 72 2f 75 77 20 24 28 | 42 49 4e 44 49 52 29 2f |er/uw $(|BINDIR)/|
|00001a40| 75 77 0d 58 09 69 6e 73 | 74 61 6c 6c 20 2d 73 20 |uw.X.ins|tall -s |
|00001a50| 75 74 69 6c 69 74 79 2f | 75 77 74 6f 6f 6c 20 24 |utility/|uwtool $|
|00001a60| 28 42 49 4e 44 49 52 29 | 2f 75 77 74 6f 6f 6c 0d |(BINDIR)|/uwtool.|
|00001a70| 58 09 69 6e 73 74 61 6c | 6c 20 2d 73 20 75 74 69 |X.instal|l -s uti|
|00001a80| 6c 69 74 79 2f 75 77 74 | 69 74 6c 65 20 24 28 42 |lity/uwt|itle $(B|
|00001a90| 49 4e 44 49 52 29 2f 75 | 77 74 69 74 6c 65 0d 58 |INDIR)/u|wtitle.X|
|00001aa0| 09 69 6e 73 74 61 6c 6c | 20 2d 73 20 75 74 69 6c |.install| -s util|
|00001ab0| 69 74 79 2f 75 77 74 65 | 72 6d 20 24 28 42 49 4e |ity/uwte|rm $(BIN|
|00001ac0| 44 49 52 29 2f 75 77 74 | 65 72 6d 0d 58 09 69 6e |DIR)/uwt|erm.X.in|
|00001ad0| 73 74 61 6c 6c 20 2d 73 | 20 75 74 69 6c 69 74 79 |stall -s| utility|
|00001ae0| 2f 75 77 70 6c 6f 74 20 | 24 28 42 49 4e 44 49 52 |/uwplot |$(BINDIR|
|00001af0| 29 2f 75 77 70 6c 6f 74 | 0d 58 09 63 70 20 6c 69 |)/uwplot|.X.cp li|
|00001b00| 62 2f 6c 69 62 75 77 2e | 61 20 24 28 4c 49 42 44 |b/libuw.|a $(LIBD|
|00001b10| 49 52 29 3b 20 72 61 6e | 6c 69 62 20 24 28 4c 49 |IR); ran|lib $(LI|
|00001b20| 42 44 49 52 29 2f 6c 69 | 62 75 77 2e 61 0d 58 0d |BDIR)/li|buw.a.X.|
|00001b30| 58 63 6c 65 61 6e 3a 0d | 58 09 63 64 20 73 65 72 |Xclean:.|X.cd ser|
|00001b40| 76 65 72 3b 20 6d 61 6b | 65 20 63 6c 65 61 6e 0d |ver; mak|e clean.|
|00001b50| 58 09 63 64 20 6c 69 62 | 3b 20 6d 61 6b 65 20 63 |X.cd lib|; make c|
|00001b60| 6c 65 61 6e 0d 58 09 63 | 64 20 75 74 69 6c 69 74 |lean.X.c|d utilit|
|00001b70| 79 3b 20 6d 61 6b 65 20 | 63 6c 65 61 6e 0d 58 0d |y; make |clean.X.|
|00001b80| 58 44 45 46 49 4e 45 53 | 3a 09 4d 61 6b 65 66 69 |XDEFINES|:.Makefi|
|00001b90| 6c 65 0d 58 09 65 63 68 | 6f 20 22 22 20 24 28 44 |le.X.ech|o "" $(D|
|00001ba0| 45 46 49 4e 45 53 29 20 | 3e 20 44 45 46 49 4e 45 |EFINES) |> DEFINE|
|00001bb0| 53 0d 58 0d 58 73 65 72 | 76 65 72 2f 4d 61 6b 65 |S.X.Xser|ver/Make|
|00001bc0| 66 69 6c 65 3a 09 4d 61 | 6b 65 66 69 6c 65 20 73 |file:.Ma|kefile s|
|00001bd0| 65 72 76 65 72 2f 4d 61 | 6b 65 66 69 6c 65 5f 24 |erver/Ma|kefile_$|
|00001be0| 28 56 45 52 53 49 4f 4e | 29 0d 58 09 63 64 20 73 |(VERSION|).X.cd s|
|00001bf0| 65 72 76 65 72 3b 20 63 | 70 20 4d 61 6b 65 66 69 |erver; c|p Makefi|
|00001c00| 6c 65 5f 24 28 56 45 52 | 53 49 4f 4e 29 20 4d 61 |le_$(VER|SION) Ma|
|00001c10| 6b 65 66 69 6c 65 3b 20 | 6d 61 6b 65 20 64 65 70 |kefile; |make dep|
|00001c20| 65 6e 64 0d 58 0d 58 6c | 69 62 2f 4d 61 6b 65 66 |end.X.Xl|ib/Makef|
|00001c30| 69 6c 65 3a 09 4d 61 6b | 65 66 69 6c 65 20 6c 69 |ile:.Mak|efile li|
|00001c40| 62 2f 4d 61 6b 65 66 69 | 6c 65 5f 24 28 56 45 52 |b/Makefi|le_$(VER|
|00001c50| 53 49 4f 4e 29 0d 58 09 | 63 64 20 6c 69 62 3b 20 |SION).X.|cd lib; |
|00001c60| 63 70 20 4d 61 6b 65 66 | 69 6c 65 5f 24 28 56 45 |cp Makef|ile_$(VE|
|00001c70| 52 53 49 4f 4e 29 20 4d | 61 6b 65 66 69 6c 65 3b |RSION) M|akefile;|
|00001c80| 20 6d 61 6b 65 20 64 65 | 70 65 6e 64 0d 58 0d 58 | make de|pend.X.X|
|00001c90| 75 74 69 6c 69 74 79 2f | 4d 61 6b 65 66 69 6c 65 |utility/|Makefile|
|00001ca0| 3a 09 4d 61 6b 65 66 69 | 6c 65 20 75 74 69 6c 69 |:.Makefi|le utili|
|00001cb0| 74 79 2f 4d 61 6b 65 66 | 69 6c 65 5f 24 28 56 45 |ty/Makef|ile_$(VE|
|00001cc0| 52 53 49 4f 4e 29 0d 58 | 09 63 64 20 75 74 69 6c |RSION).X|.cd util|
|00001cd0| 69 74 79 3b 20 63 70 20 | 4d 61 6b 65 66 69 6c 65 |ity; cp |Makefile|
|00001ce0| 5f 24 28 56 45 52 53 49 | 4f 4e 29 20 4d 61 6b 65 |_$(VERSI|ON) Make|
|00001cf0| 66 69 6c 65 3b 20 6d 61 | 6b 65 20 64 65 70 65 6e |file; ma|ke depen|
|00001d00| 64 0d 21 45 4f 46 21 4d | 61 6b 65 66 69 6c 65 21 |d.!EOF!M|akefile!|
|00001d10| 0d 65 63 68 6f 20 78 20 | 2d 20 75 74 69 6c 69 74 |.echo x |- utilit|
|00001d20| 79 2f 4d 61 6b 65 66 69 | 6c 65 5f 34 2e 32 0d 73 |y/Makefi|le_4.2.s|
|00001d30| 65 64 20 2d 65 20 27 73 | 2f 5e 58 2f 2f 27 20 3e |ed -e 's|/^X//' >|
|00001d40| 20 75 74 69 6c 69 74 79 | 2f 4d 61 6b 65 66 69 6c | utility|/Makefil|
|00001d50| 65 5f 34 2e 32 20 3c 3c | 20 27 21 45 4f 46 21 75 |e_4.2 <<| '!EOF!u|
|00001d60| 74 69 6c 69 74 79 2f 4d | 61 6b 65 66 69 6c 65 5f |tility/M|akefile_|
|00001d70| 34 2e 32 21 27 0d 58 23 | 21 20 2f 62 69 6e 2f 6d |4.2!'.X#|! /bin/m|
|00001d80| 61 6b 65 20 2d 66 0d 58 | 23 0d 58 23 09 75 77 20 |ake -f.X|#.X#.uw |
|00001d90| 75 74 69 6c 69 74 79 20 | 6d 61 6b 65 66 69 6c 65 |utility |makefile|
|00001da0| 20 28 34 2e 32 42 53 44 | 29 0d 58 23 0d 58 23 09 | (4.2BSD|).X#.X#.|
|00001db0| 49 4e 43 44 49 52 20 73 | 68 6f 75 6c 64 20 62 65 |INCDIR s|hould be|
|00001dc0| 20 73 65 74 20 74 6f 20 | 74 68 65 20 64 69 72 65 | set to |the dire|
|00001dd0| 63 74 6f 72 79 20 63 6f | 6e 74 61 69 6e 69 6e 67 |ctory co|ntaining|
|00001de0| 20 68 65 61 64 65 72 20 | 66 69 6c 65 73 2e 0d 58 | header |files..X|
|00001df0| 23 0d 58 23 09 4c 49 42 | 55 57 20 73 68 6f 75 6c |#.X#.LIB|UW shoul|
|00001e00| 64 20 62 65 20 73 65 74 | 20 74 6f 20 74 68 65 20 |d be set| to the |
|00001e10| 6e 61 6d 65 20 6f 66 20 | 74 68 65 20 6c 69 62 72 |name of |the libr|
|00001e20| 61 72 79 20 66 69 6c 65 | 20 28 6f 72 2c 20 69 66 |ary file| (or, if|
|00001e30| 20 69 74 20 69 73 0d 58 | 23 09 69 6e 73 74 61 6c | it is.X|#.instal|
|00001e40| 6c 65 64 20 69 6e 20 61 | 20 73 79 73 74 65 6d 20 |led in a| system |
|00001e50| 64 69 72 65 63 74 6f 72 | 79 2c 20 22 2d 6c 75 77 |director|y, "-luw|
|00001e60| 22 29 2e 0d 58 23 0d 58 | 23 09 4e 6f 74 65 3a 20 |")..X#.X|#.Note: |
|00001e70| 69 6e 20 6f 72 64 65 72 | 20 66 6f 72 20 22 75 77 |in order| for "uw|
|00001e80| 74 65 72 6d 22 20 74 6f | 20 77 6f 72 6b 20 6f 6e |term" to| work on|
|00001e90| 20 72 65 6d 6f 74 65 20 | 6d 61 63 68 69 6e 65 73 | remote |machines|
|00001ea0| 20 69 74 20 69 73 0d 58 | 23 09 6e 65 63 65 73 73 | it is.X|#.necess|
|00001eb0| 61 72 79 20 66 6f 72 20 | 69 74 20 74 6f 20 62 65 |ary for |it to be|
|00001ec0| 20 69 6e 73 74 61 6c 6c | 65 64 20 69 6e 20 61 20 | install|ed in a |
|00001ed0| 64 69 72 65 63 74 6c 79 | 20 77 68 65 72 65 20 22 |directly| where "|
|00001ee0| 72 73 68 22 0d 58 23 09 | 77 69 6c 6c 20 66 69 6e |rsh".X#.|will fin|
|00001ef0| 64 20 69 74 2e 20 20 54 | 68 65 20 23 64 65 66 69 |d it. T|he #defi|
|00001f00| 6e 65 64 20 73 79 6d 62 | 6f 6c 20 55 57 54 45 52 |ned symb|ol UWTER|
|00001f10| 4d 20 69 6e 20 74 68 65 | 20 73 6f 75 72 63 65 20 |M in the| source |
|00001f20| 63 61 6e 0d 58 23 09 62 | 65 20 73 65 74 20 74 6f |can.X#.b|e set to|
|00001f30| 20 74 68 65 20 64 65 73 | 69 72 65 64 20 61 62 73 | the des|ired abs|
|00001f40| 6f 6c 75 74 65 20 70 61 | 74 68 6e 61 6d 65 2c 20 |olute pa|thname, |
|00001f50| 69 66 20 6e 65 63 65 73 | 73 61 72 79 2e 0d 58 23 |if neces|sary..X#|
|00001f60| 0d 58 0d 58 49 4e 43 44 | 49 52 09 3d 09 2e 2e 2f |.X.XINCD|IR.=.../|
|00001f70| 68 0d 58 0d 58 4c 49 42 | 55 57 09 3d 09 2e 2e 2f |h.X.XLIB|UW.=.../|
|00001f80| 6c 69 62 2f 6c 69 62 75 | 77 2e 61 0d 58 0d 58 55 |lib/libu|w.a.X.XU|
|00001f90| 57 54 4f 4f 4c 5f 4f 42 | 4a 53 20 3d 09 75 77 74 |WTOOL_OB|JS =.uwt|
|00001fa0| 6f 6f 6c 2e 6f 0d 58 55 | 57 54 49 54 4c 45 5f 4f |ool.o.XU|WTITLE_O|
|00001fb0| 42 4a 53 20 3d 09 75 77 | 74 69 74 6c 65 2e 6f 0d |BJS =.uw|title.o.|
|00001fc0| 58 55 57 54 45 52 4d 5f | 4f 42 4a 53 20 3d 09 75 |XUWTERM_|OBJS =.u|
|00001fd0| 77 74 65 72 6d 2e 6f 0d | 58 55 57 50 4c 4f 54 5f |wterm.o.|XUWPLOT_|
|00001fe0| 4f 42 4a 53 20 3d 09 75 | 77 70 6c 6f 74 2e 6f 0d |OBJS =.u|wplot.o.|
|00001ff0| 58 0d 58 4f 42 4a 45 43 | 54 53 09 3d 09 24 28 55 |X.XOBJEC|TS.=.$(U|
|00002000| 57 54 4f 4f 4c 5f 4f 42 | 4a 53 29 20 24 28 55 57 |WTOOL_OB|JS) $(UW|
|00002010| 54 49 54 4c 45 5f 4f 42 | 4a 53 29 20 24 28 55 57 |TITLE_OB|JS) $(UW|
|00002020| 54 45 52 4d 5f 4f 42 4a | 53 29 20 24 28 55 57 50 |TERM_OBJ|S) $(UWP|
|00002030| 4c 4f 54 5f 4f 42 4a 53 | 29 0d 58 0d 58 53 4f 55 |LOT_OBJS|).X.XSOU|
|00002040| 52 43 45 53 09 3d 09 60 | 65 63 68 6f 20 24 28 4f |RCES.=.`|echo $(O|
|00002050| 42 4a 45 43 54 53 29 20 | 7c 20 73 65 64 20 2d 65 |BJECTS) || sed -e|
|00002060| 20 27 73 2f 5c 5c 2e 6f | 2f 5c 5c 2e 63 2f 67 27 | 's/\\.o|/\\.c/g'|
|00002070| 60 0d 58 0d 58 44 45 46 | 49 4e 45 53 09 3d 09 60 |`.X.XDEF|INES.=.`|
|00002080| 63 61 74 20 2e 2e 2f 44 | 45 46 49 4e 45 53 60 0d |cat ../D|EFINES`.|
|00002090| 58 0d 58 43 46 4c 41 47 | 53 09 3d 09 2d 4f 20 2d |X.XCFLAG|S.=.-O -|
|000020a0| 49 24 28 49 4e 43 44 49 | 52 29 20 24 28 44 45 46 |I$(INCDI|R) $(DEF|
|000020b0| 49 4e 45 53 29 0d 58 4c | 46 4c 41 47 53 09 3d 0d |INES).XL|FLAGS.=.|
|000020c0| 58 0d 58 61 6c 6c 3a 09 | 09 75 77 74 6f 6f 6c 20 |X.Xall:.|.uwtool |
|000020d0| 75 77 74 69 74 6c 65 20 | 75 77 74 65 72 6d 20 75 |uwtitle |uwterm u|
|000020e0| 77 70 6c 6f 74 0d 58 0d | 58 75 77 74 6f 6f 6c 3a |wplot.X.|Xuwtool:|
|000020f0| 09 09 24 28 55 57 54 4f | 4f 4c 5f 4f 42 4a 53 29 |..$(UWTO|OL_OBJS)|
|00002100| 0d 58 09 24 28 43 43 29 | 20 2d 6f 20 24 40 20 24 |.X.$(CC)| -o $@ $|
|00002110| 28 4c 46 4c 41 47 53 29 | 20 24 28 55 57 54 4f 4f |(LFLAGS)| $(UWTOO|
|00002120| 4c 5f 4f 42 4a 53 29 20 | 24 28 4c 49 42 55 57 29 |L_OBJS) |$(LIBUW)|
|00002130| 0d 58 0d 58 75 77 74 69 | 74 6c 65 3a 09 24 28 55 |.X.Xuwti|tle:.$(U|
|00002140| 57 54 49 54 4c 45 5f 4f | 42 4a 53 29 0d 58 09 24 |WTITLE_O|BJS).X.$|
|00002150| 28 43 43 29 20 2d 6f 20 | 24 40 20 24 28 4c 46 4c |(CC) -o |$@ $(LFL|
|00002160| 41 47 53 29 20 24 28 55 | 57 54 49 54 4c 45 5f 4f |AGS) $(U|WTITLE_O|
|00002170| 42 4a 53 29 20 24 28 4c | 49 42 55 57 29 0d 58 0d |BJS) $(L|IBUW).X.|
|00002180| 58 75 77 74 65 72 6d 3a | 09 09 24 28 55 57 54 45 |Xuwterm:|..$(UWTE|
|00002190| 52 4d 5f 4f 42 4a 53 29 | 0d 58 09 24 28 43 43 29 |RM_OBJS)|.X.$(CC)|
|000021a0| 20 2d 6f 20 24 40 20 24 | 28 4c 46 4c 41 47 53 29 | -o $@ $|(LFLAGS)|
|000021b0| 20 24 28 55 57 54 45 52 | 4d 5f 4f 42 4a 53 29 20 | $(UWTER|M_OBJS) |
|000021c0| 24 28 4c 49 42 55 57 29 | 0d 58 0d 58 75 77 70 6c |$(LIBUW)|.X.Xuwpl|
|000021d0| 6f 74 3a 09 09 24 28 55 | 57 50 4c 4f 54 5f 4f 42 |ot:..$(U|WPLOT_OB|
|000021e0| 4a 53 29 0d 58 09 24 28 | 43 43 29 20 2d 6f 20 24 |JS).X.$(|CC) -o $|
|000021f0| 40 20 24 28 4c 46 4c 41 | 47 53 29 20 24 28 55 57 |@ $(LFLA|GS) $(UW|
|00002200| 50 4c 4f 54 5f 4f 42 4a | 53 29 20 24 28 4c 49 42 |PLOT_OBJ|S) $(LIB|
|00002210| 55 57 29 0d 58 0d 58 6c | 69 6e 74 3a 0d 58 09 66 |UW).X.Xl|int:.X.f|
|00002220| 6f 72 20 73 72 63 20 69 | 6e 20 24 28 53 4f 55 52 |or src i|n $(SOUR|
|00002230| 43 45 53 29 3b 20 5c 0d | 58 09 64 6f 20 65 63 68 |CES); \.|X.do ech|
|00002240| 6f 20 24 24 73 72 63 3a | 3b 20 6c 69 6e 74 20 2d |o $$src:|; lint -|
|00002250| 68 75 62 78 20 2d 49 24 | 28 49 4e 43 44 49 52 29 |hubx -I$|(INCDIR)|
|00002260| 20 24 28 44 45 46 49 4e | 45 53 29 20 24 24 73 72 | $(DEFIN|ES) $$sr|
|00002270| 63 3b 20 64 6f 6e 65 0d | 58 0d 58 74 61 67 73 3a |c; done.|X.Xtags:|
|00002280| 0d 58 09 63 74 61 67 73 | 20 24 28 53 4f 55 52 43 |.X.ctags| $(SOURC|
|00002290| 45 53 29 0d 58 0d 58 64 | 65 70 65 6e 64 3a 20 0d |ES).X.Xd|epend: .|
|000022a0| 58 09 67 72 65 70 20 27 | 5e 23 69 6e 63 6c 75 64 |X.grep '|^#includ|
|000022b0| 65 27 20 24 28 53 4f 55 | 52 43 45 53 29 20 7c 20 |e' $(SOU|RCES) | |
|000022c0| 5c 0d 58 09 73 65 64 20 | 2d 65 20 27 2f 3c 2f 64 |\.X.sed |-e '/</d|
|000022d0| 27 20 5c 0d 58 09 20 20 | 20 20 2d 65 20 27 73 2f |' \.X. | -e 's/|
|000022e0| 3a 5b 5e 22 5d 2a 22 5c | 28 5b 5e 22 5d 2a 5c 29 |:[^"]*"\|([^"]*\)|
|000022f0| 22 2e 2a 2f 3a 20 2e 2e | 5c 2f 68 5c 2f 5c 31 2f |".*/: ..|\/h\/\1/|
|00002300| 27 20 5c 0d 58 09 20 20 | 20 20 2d 65 20 27 73 2c |' \.X. | -e 's,|
|00002310| 5e 2e 2e 2f 5b 61 2d 7a | 41 2d 5a 30 2d 39 5d 2a |^../[a-z|A-Z0-9]*|
|00002320| 2f 5c 28 5b 5e 5c 2e 5d | 2a 5c 29 5c 2e 5b 63 73 |/\([^\.]|*\)\.[cs|
|00002330| 5d 2c 5c 31 2e 6f 20 5c | 31 2e 4c 2c 27 20 7c 20 |],\1.o \|1.L,' | |
|00002340| 5c 0d 58 09 61 77 6b 20 | 27 20 7b 20 69 66 20 28 |\.X.awk |' { if (|
|00002350| 24 24 31 20 21 3d 20 70 | 72 65 76 29 20 7b 20 70 |$$1 != p|rev) { p|
|00002360| 72 69 6e 74 20 72 65 63 | 3b 20 72 65 63 20 3d 20 |rint rec|; rec = |
|00002370| 24 24 30 3b 20 70 72 65 | 76 20 3d 20 24 24 31 3b |$$0; pre|v = $$1;|
|00002380| 20 7d 20 5c 0d 58 09 09 | 65 6c 73 65 20 7b 20 69 | } \.X..|else { i|
|00002390| 66 20 28 6c 65 6e 67 74 | 68 28 72 65 63 20 24 24 |f (lengt|h(rec $$|
|000023a0| 33 29 20 3e 20 37 38 29 | 20 7b 20 70 72 69 6e 74 |3) > 78)| { print|
|000023b0| 20 72 65 63 3b 20 72 65 | 63 20 3d 20 24 24 30 3b | rec; re|c = $$0;|
|000023c0| 20 7d 20 5c 0d 58 09 09 | 20 20 20 20 20 20 20 65 | } \.X..| e|
|000023d0| 6c 73 65 20 72 65 63 20 | 3d 20 72 65 63 20 22 20 |lse rec |= rec " |
|000023e0| 22 20 24 24 33 20 7d 20 | 7d 20 5c 0d 58 09 20 20 |" $$3 } |} \.X. |
|000023f0| 20 20 20 20 45 4e 44 20 | 7b 20 70 72 69 6e 74 20 | END |{ print |
|00002400| 72 65 63 20 7d 20 27 20 | 3e 20 6d 61 6b 65 64 65 |rec } ' |> makede|
|00002410| 70 0d 58 09 65 63 68 6f | 20 27 2f 5e 23 20 44 4f |p.X.echo| '/^# DO|
|00002420| 20 4e 4f 54 20 44 45 4c | 45 54 45 20 54 48 49 53 | NOT DEL|ETE THIS|
|00002430| 20 4c 49 4e 45 2f 2b 31 | 2c 24 24 64 27 20 3e 65 | LINE/+1|,$$d' >e|
|00002440| 64 64 65 70 0d 58 09 65 | 63 68 6f 20 27 24 24 72 |ddep.X.e|cho '$$r|
|00002450| 20 6d 61 6b 65 64 65 70 | 27 20 3e 3e 65 64 64 65 | makedep|' >>edde|
|00002460| 70 0d 58 09 65 63 68 6f | 20 27 77 27 20 3e 3e 65 |p.X.echo| 'w' >>e|
|00002470| 64 64 65 70 0d 58 09 63 | 70 20 4d 61 6b 65 66 69 |ddep.X.c|p Makefi|
|00002480| 6c 65 20 4d 61 6b 65 66 | 69 6c 65 2e 62 61 6b 0d |le Makef|ile.bak.|
|00002490| 58 09 65 78 20 2d 20 4d | 61 6b 65 66 69 6c 65 20 |X.ex - M|akefile |
|000024a0| 3c 20 65 64 64 65 70 0d | 58 09 72 6d 20 65 64 64 |< eddep.|X.rm edd|
|000024b0| 65 70 20 6d 61 6b 65 64 | 65 70 0d 58 0d 58 63 6c |ep maked|ep.X.Xcl|
|000024c0| 65 61 6e 3a 0d 58 09 2d | 72 6d 20 2d 66 20 2a 2e |ean:.X.-|rm -f *.|
|000024d0| 6f 0d 58 0d 58 23 20 44 | 4f 20 4e 4f 54 20 44 45 |o.X.X# D|O NOT DE|
|000024e0| 4c 45 54 45 20 54 48 49 | 53 20 4c 49 4e 45 20 28 |LETE THI|S LINE (|
|000024f0| 6f 72 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |or the f|ollowing|
|00002500| 20 62 6c 61 6e 6b 20 6c | 69 6e 65 29 20 2d 2d 20 | blank l|ine) -- |
|00002510| 6d 61 6b 65 20 64 65 70 | 65 6e 64 20 75 73 65 73 |make dep|end uses|
|00002520| 20 69 74 0d 58 0d 21 45 | 4f 46 21 75 74 69 6c 69 | it.X.!E|OF!utili|
|00002530| 74 79 2f 4d 61 6b 65 66 | 69 6c 65 5f 34 2e 32 21 |ty/Makef|ile_4.2!|
|00002540| 0d 65 63 68 6f 20 78 20 | 2d 20 75 74 69 6c 69 74 |.echo x |- utilit|
|00002550| 79 2f 4d 61 6b 65 66 69 | 6c 65 5f 34 2e 33 0d 73 |y/Makefi|le_4.3.s|
|00002560| 65 64 20 2d 65 20 27 73 | 2f 5e 58 2f 2f 27 20 3e |ed -e 's|/^X//' >|
|00002570| 20 75 74 69 6c 69 74 79 | 2f 4d 61 6b 65 66 69 6c | utility|/Makefil|
|00002580| 65 5f 34 2e 33 20 3c 3c | 20 27 21 45 4f 46 21 75 |e_4.3 <<| '!EOF!u|
|00002590| 74 69 6c 69 74 79 2f 4d | 61 6b 65 66 69 6c 65 5f |tility/M|akefile_|
|000025a0| 34 2e 33 21 27 0d 58 23 | 21 20 2f 62 69 6e 2f 6d |4.3!'.X#|! /bin/m|
|000025b0| 61 6b 65 20 2d 66 0d 58 | 23 0d 58 23 09 75 77 20 |ake -f.X|#.X#.uw |
|000025c0| 75 74 69 6c 69 74 79 20 | 6d 61 6b 65 66 69 6c 65 |utility |makefile|
|000025d0| 20 28 34 2e 33 42 53 44 | 29 0d 58 23 0d 58 23 09 | (4.3BSD|).X#.X#.|
|000025e0| 49 4e 43 44 49 52 20 73 | 68 6f 75 6c 64 20 62 65 |INCDIR s|hould be|
|000025f0| 20 73 65 74 20 74 6f 20 | 74 68 65 20 64 69 72 65 | set to |the dire|
|00002600| 63 74 6f 72 79 20 63 6f | 6e 74 61 69 6e 69 6e 67 |ctory co|ntaining|
|00002610| 20 68 65 61 64 65 72 20 | 66 69 6c 65 73 2e 0d 58 | header |files..X|
|00002620| 23 0d 58 23 09 4c 49 42 | 55 57 20 73 68 6f 75 6c |#.X#.LIB|UW shoul|
|00002630| 64 20 62 65 20 73 65 74 | 20 74 6f 20 74 68 65 20 |d be set| to the |
|00002640| 6e 61 6d 65 20 6f 66 20 | 74 68 65 20 6c 69 62 72 |name of |the libr|
|00002650| 61 72 79 20 66 69 6c 65 | 20 28 6f 72 2c 20 69 66 |ary file| (or, if|
|00002660| 20 69 74 20 69 73 0d 58 | 23 09 69 6e 73 74 61 6c | it is.X|#.instal|
|00002670| 6c 65 64 20 69 6e 20 61 | 20 73 79 73 74 65 6d 20 |led in a| system |
|00002680| 64 69 72 65 63 74 6f 72 | 79 2c 20 22 2d 6c 75 77 |director|y, "-luw|
|00002690| 22 29 2e 0d 58 23 0d 58 | 23 09 4e 6f 74 65 3a 20 |")..X#.X|#.Note: |
|000026a0| 69 6e 20 6f 72 64 65 72 | 20 66 6f 72 20 22 75 77 |in order| for "uw|
|000026b0| 74 65 72 6d 22 20 74 6f | 20 77 6f 72 6b 20 6f 6e |term" to| work on|
|000026c0| 20 72 65 6d 6f 74 65 20 | 6d 61 63 68 69 6e 65 73 | remote |machines|
|000026d0| 20 69 74 20 69 73 0d 58 | 23 09 6e 65 63 65 73 73 | it is.X|#.necess|
|000026e0| 61 72 79 20 66 6f 72 20 | 69 74 20 74 6f 20 62 65 |ary for |it to be|
|000026f0| 20 69 6e 73 74 61 6c 6c | 65 64 20 69 6e 20 61 20 | install|ed in a |
|00002700| 64 69 72 65 63 74 6c 79 | 20 77 68 65 72 65 20 22 |directly| where "|
|00002710| 72 73 68 22 0d 58 23 09 | 77 69 6c 6c 20 66 69 6e |rsh".X#.|will fin|
|00002720| 64 20 69 74 2e 20 20 54 | 68 65 20 23 64 65 66 69 |d it. T|he #defi|
|00002730| 6e 65 64 20 73 79 6d 62 | 6f 6c 20 55 57 54 45 52 |ned symb|ol UWTER|
|00002740| 4d 20 69 6e 20 74 68 65 | 20 73 6f 75 72 63 65 20 |M in the| source |
|00002750| 63 61 6e 0d 58 23 09 62 | 65 20 73 65 74 20 74 6f |can.X#.b|e set to|
|00002760| 20 74 68 65 20 64 65 73 | 69 72 65 64 20 61 62 73 | the des|ired abs|
|00002770| 6f 6c 75 74 65 20 70 61 | 74 68 6e 61 6d 65 2c 20 |olute pa|thname, |
|00002780| 69 66 20 6e 65 63 65 73 | 73 61 72 79 2e 0d 58 23 |if neces|sary..X#|
|00002790| 0d 58 0d 58 49 4e 43 44 | 49 52 09 3d 09 2e 2e 2f |.X.XINCD|IR.=.../|
|000027a0| 68 0d 58 0d 58 4c 49 42 | 55 57 09 3d 09 2e 2e 2f |h.X.XLIB|UW.=.../|
|000027b0| 6c 69 62 2f 6c 69 62 75 | 77 2e 61 0d 58 0d 58 55 |lib/libu|w.a.X.XU|
|000027c0| 57 54 4f 4f 4c 5f 4f 42 | 4a 53 20 3d 09 75 77 74 |WTOOL_OB|JS =.uwt|
|000027d0| 6f 6f 6c 2e 6f 0d 58 55 | 57 54 49 54 4c 45 5f 4f |ool.o.XU|WTITLE_O|
|000027e0| 42 4a 53 20 3d 09 75 77 | 74 69 74 6c 65 2e 6f 0d |BJS =.uw|title.o.|
|000027f0| 58 55 57 54 45 52 4d 5f | 4f 42 4a 53 20 3d 09 75 |XUWTERM_|OBJS =.u|
|00002800| 77 74 65 72 6d 2e 6f 0d | 58 55 57 50 4c 4f 54 5f |wterm.o.|XUWPLOT_|
|00002810| 4f 42 4a 53 20 3d 09 75 | 77 70 6c 6f 74 2e 6f 0d |OBJS =.u|wplot.o.|
|00002820| 58 0d 58 4f 42 4a 45 43 | 54 53 09 3d 09 24 28 55 |X.XOBJEC|TS.=.$(U|
|00002830| 57 54 4f 4f 4c 5f 4f 42 | 4a 53 29 20 24 28 55 57 |WTOOL_OB|JS) $(UW|
|00002840| 54 49 54 4c 45 5f 4f 42 | 4a 53 29 20 24 28 55 57 |TITLE_OB|JS) $(UW|
|00002850| 54 45 52 4d 5f 4f 42 4a | 53 29 20 24 28 55 57 50 |TERM_OBJ|S) $(UWP|
|00002860| 4c 4f 54 5f 4f 42 4a 53 | 29 0d 58 0d 58 53 4f 55 |LOT_OBJS|).X.XSOU|
|00002870| 52 43 45 53 09 3d 09 60 | 65 63 68 6f 20 24 28 4f |RCES.=.`|echo $(O|
|00002880| 42 4a 45 43 54 53 29 20 | 7c 20 73 65 64 20 2d 65 |BJECTS) || sed -e|
|00002890| 20 27 73 2f 5c 5c 2e 6f | 2f 5c 5c 2e 63 2f 67 27 | 's/\\.o|/\\.c/g'|
|000028a0| 60 0d 58 0d 58 44 45 46 | 49 4e 45 53 09 3d 09 60 |`.X.XDEF|INES.=.`|
|000028b0| 63 61 74 20 2e 2e 2f 44 | 45 46 49 4e 45 53 60 0d |cat ../D|EFINES`.|
|000028c0| 58 0d 58 43 46 4c 41 47 | 53 09 3d 09 2d 4f 20 2d |X.XCFLAG|S.=.-O -|
|000028d0| 49 24 28 49 4e 43 44 49 | 52 29 20 24 28 44 45 46 |I$(INCDI|R) $(DEF|
|000028e0| 49 4e 45 53 29 0d 58 4c | 46 4c 41 47 53 09 3d 0d |INES).XL|FLAGS.=.|
|000028f0| 58 0d 58 61 6c 6c 3a 09 | 09 75 77 74 6f 6f 6c 20 |X.Xall:.|.uwtool |
|00002900| 75 77 74 69 74 6c 65 20 | 75 77 74 65 72 6d 20 75 |uwtitle |uwterm u|
|00002910| 77 70 6c 6f 74 0d 58 0d | 58 75 77 74 6f 6f 6c 3a |wplot.X.|Xuwtool:|
|00002920| 09 09 24 28 55 57 54 4f | 4f 4c 5f 4f 42 4a 53 29 |..$(UWTO|OL_OBJS)|
|00002930| 0d 58 09 24 28 43 43 29 | 20 2d 6f 20 24 40 20 24 |.X.$(CC)| -o $@ $|
|00002940| 28 4c 46 4c 41 47 53 29 | 20 24 28 55 57 54 4f 4f |(LFLAGS)| $(UWTOO|
|00002950| 4c 5f 4f 42 4a 53 29 20 | 24 28 4c 49 42 55 57 29 |L_OBJS) |$(LIBUW)|
|00002960| 0d 58 0d 58 75 77 74 69 | 74 6c 65 3a 09 24 28 55 |.X.Xuwti|tle:.$(U|
|00002970| 57 54 49 54 4c 45 5f 4f | 42 4a 53 29 0d 58 09 24 |WTITLE_O|BJS).X.$|
|00002980| 28 43 43 29 20 2d 6f 20 | 24 40 20 24 28 4c 46 4c |(CC) -o |$@ $(LFL|
|00002990| 41 47 53 29 20 24 28 55 | 57 54 49 54 4c 45 5f 4f |AGS) $(U|WTITLE_O|
|000029a0| 42 4a 53 29 20 24 28 4c | 49 42 55 57 29 0d 58 0d |BJS) $(L|IBUW).X.|
|000029b0| 58 75 77 74 65 72 6d 3a | 09 09 24 28 55 57 54 45 |Xuwterm:|..$(UWTE|
|000029c0| 52 4d 5f 4f 42 4a 53 29 | 0d 58 09 24 28 43 43 29 |RM_OBJS)|.X.$(CC)|
|000029d0| 20 2d 6f 20 24 40 20 24 | 28 4c 46 4c 41 47 53 29 | -o $@ $|(LFLAGS)|
|000029e0| 20 24 28 55 57 54 45 52 | 4d 5f 4f 42 4a 53 29 20 | $(UWTER|M_OBJS) |
|000029f0| 24 28 4c 49 42 55 57 29 | 0d 58 0d 58 75 77 70 6c |$(LIBUW)|.X.Xuwpl|
|00002a00| 6f 74 3a 09 09 24 28 55 | 57 50 4c 4f 54 5f 4f 42 |ot:..$(U|WPLOT_OB|
|00002a10| 4a 53 29 0d 58 09 24 28 | 43 43 29 20 2d 6f 20 24 |JS).X.$(|CC) -o $|
|00002a20| 40 20 24 28 4c 46 4c 41 | 47 53 29 20 24 28 55 57 |@ $(LFLA|GS) $(UW|
|00002a30| 50 4c 4f 54 5f 4f 42 4a | 53 29 20 24 28 4c 49 42 |PLOT_OBJ|S) $(LIB|
|00002a40| 55 57 29 0d 58 0d 58 6c | 69 6e 74 3a 0d 58 09 66 |UW).X.Xl|int:.X.f|
|00002a50| 6f 72 20 73 72 63 20 69 | 6e 20 24 28 53 4f 55 52 |or src i|n $(SOUR|
|00002a60| 43 45 53 29 3b 20 5c 0d | 58 09 64 6f 20 65 63 68 |CES); \.|X.do ech|
|00002a70| 6f 20 24 24 73 72 63 3a | 3b 20 6c 69 6e 74 20 2d |o $$src:|; lint -|
|00002a80| 68 75 62 78 20 2d 49 24 | 28 49 4e 43 44 49 52 29 |hubx -I$|(INCDIR)|
|00002a90| 20 24 28 44 45 46 49 4e | 45 53 29 20 24 24 73 72 | $(DEFIN|ES) $$sr|
|00002aa0| 63 3b 20 64 6f 6e 65 0d | 58 0d 58 74 61 67 73 3a |c; done.|X.Xtags:|
|00002ab0| 0d 58 09 63 74 61 67 73 | 20 24 28 53 4f 55 52 43 |.X.ctags| $(SOURC|
|00002ac0| 45 53 29 0d 58 0d 58 64 | 65 70 65 6e 64 3a 20 0d |ES).X.Xd|epend: .|
|00002ad0| 58 09 24 28 43 43 29 20 | 2d 4d 20 2d 49 24 28 49 |X.$(CC) |-M -I$(I|
|00002ae0| 4e 43 44 49 52 29 20 24 | 28 44 45 46 49 4e 45 53 |NCDIR) $|(DEFINES|
|00002af0| 29 20 24 28 53 4f 55 52 | 43 45 53 29 20 7c 20 5c |) $(SOUR|CES) | \|
|00002b00| 0d 58 09 73 65 64 20 2d | 65 20 27 3a 6c 6f 6f 70 |.X.sed -|e ':loop|
|00002b10| 27 20 5c 0d 58 09 20 20 | 20 20 2d 65 20 27 73 2f |' \.X. | -e 's/|
|00002b20| 5c 2e 5c 2e 5c 2f 5b 5e | 20 2f 5d 2a 5c 2f 5c 2e |\.\.\/[^| /]*\/\.|
|00002b30| 5c 2e 2f 2e 2e 2f 27 20 | 5c 0d 58 09 20 20 20 20 |\./../' |\.X. |
|00002b40| 2d 65 20 27 74 20 6c 6f | 6f 70 27 20 7c 20 5c 0d |-e 't lo|op' | \.|
|00002b50| 58 09 61 77 6b 20 27 20 | 7b 20 69 66 20 28 24 24 |X.awk ' |{ if ($$|
|00002b60| 31 20 21 3d 20 70 72 65 | 76 29 20 7b 20 70 72 69 |1 != pre|v) { pri|
|00002b70| 6e 74 20 72 65 63 3b 20 | 72 65 63 20 3d 20 24 24 |nt rec; |rec = $$|
|00002b80| 30 3b 20 70 72 65 76 20 | 3d 20 24 24 31 3b 20 7d |0; prev |= $$1; }|
|00002b90| 20 5c 0d 58 09 09 65 6c | 73 65 20 7b 20 69 66 20 | \.X..el|se { if |
|00002ba0| 28 6c 65 6e 67 74 68 28 | 72 65 63 20 24 24 32 29 |(length(|rec $$2)|
|00002bb0| 20 3e 20 37 38 29 20 7b | 20 70 72 69 6e 74 20 72 | > 78) {| print r|
|00002bc0| 65 63 3b 20 72 65 63 20 | 3d 20 24 24 30 3b 20 7d |ec; rec |= $$0; }|
|00002bd0| 20 5c 0d 58 09 09 20 20 | 20 20 20 20 20 65 6c 73 | \.X.. | els|
|00002be0| 65 20 72 65 63 20 3d 20 | 72 65 63 20 22 20 22 20 |e rec = |rec " " |
|00002bf0| 24 24 32 20 7d 20 7d 20 | 5c 0d 58 09 20 20 20 20 |$$2 } } |\.X. |
|00002c00| 20 20 45 4e 44 20 7b 20 | 70 72 69 6e 74 20 72 65 | END { |print re|
|00002c10| 63 20 7d 20 27 20 3e 3e | 20 6d 61 6b 65 64 65 70 |c } ' >>| makedep|
|00002c20| 0d 58 09 65 63 68 6f 20 | 27 2f 5e 23 20 44 4f 20 |.X.echo |'/^# DO |
|00002c30| 4e 4f 54 20 44 45 4c 45 | 54 45 20 54 48 49 53 20 |NOT DELE|TE THIS |
|00002c40| 4c 49 4e 45 2f 2b 31 2c | 24 24 64 27 20 3e 65 64 |LINE/+1,|$$d' >ed|
|00002c50| 64 65 70 0d 58 09 65 63 | 68 6f 20 27 24 24 72 20 |dep.X.ec|ho '$$r |
|00002c60| 6d 61 6b 65 64 65 70 27 | 20 3e 3e 65 64 64 65 70 |makedep'| >>eddep|
|00002c70| 0d 58 09 65 63 68 6f 20 | 27 77 27 20 3e 3e 65 64 |.X.echo |'w' >>ed|
|00002c80| 64 65 70 0d 58 09 63 70 | 20 4d 61 6b 65 66 69 6c |dep.X.cp| Makefil|
|00002c90| 65 20 4d 61 6b 65 66 69 | 6c 65 2e 62 61 6b 0d 58 |e Makefi|le.bak.X|
|00002ca0| 09 65 78 20 2d 20 4d 61 | 6b 65 66 69 6c 65 20 3c |.ex - Ma|kefile <|
|00002cb0| 20 65 64 64 65 70 0d 58 | 09 72 6d 20 65 64 64 65 | eddep.X|.rm edde|
|00002cc0| 70 20 6d 61 6b 65 64 65 | 70 0d 58 0d 58 63 6c 65 |p makede|p.X.Xcle|
|00002cd0| 61 6e 3a 0d 58 09 2d 72 | 6d 20 2d 66 20 2a 2e 6f |an:.X.-r|m -f *.o|
|00002ce0| 0d 58 0d 58 23 20 44 4f | 20 4e 4f 54 20 44 45 4c |.X.X# DO| NOT DEL|
|00002cf0| 45 54 45 20 54 48 49 53 | 20 4c 49 4e 45 20 28 6f |ETE THIS| LINE (o|
|00002d00| 72 20 74 68 65 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |r the fo|llowing |
|00002d10| 62 6c 61 6e 6b 20 6c 69 | 6e 65 29 20 2d 2d 20 6d |blank li|ne) -- m|
|00002d20| 61 6b 65 20 64 65 70 65 | 6e 64 20 75 73 65 73 20 |ake depe|nd uses |
|00002d30| 69 74 0d 58 0d 21 45 4f | 46 21 75 74 69 6c 69 74 |it.X.!EO|F!utilit|
|00002d40| 79 2f 4d 61 6b 65 66 69 | 6c 65 5f 34 2e 33 21 0d |y/Makefi|le_4.3!.|
|00002d50| 65 63 68 6f 20 78 20 2d | 20 75 74 69 6c 69 74 79 |echo x -| utility|
|00002d60| 2f 75 77 70 6c 6f 74 2e | 63 0d 73 65 64 20 2d 65 |/uwplot.|c.sed -e|
|00002d70| 20 27 73 2f 5e 58 2f 2f | 27 20 3e 20 75 74 69 6c | 's/^X//|' > util|
|00002d80| 69 74 79 2f 75 77 70 6c | 6f 74 2e 63 20 3c 3c 20 |ity/uwpl|ot.c << |
|00002d90| 27 21 45 4f 46 21 75 74 | 69 6c 69 74 79 2f 75 77 |'!EOF!ut|ility/uw|
|00002da0| 70 6c 6f 74 2e 63 21 27 | 0d 58 2f 2a 0d 58 20 2a |plot.c!'|.X/*.X *|
|00002db0| 09 75 77 70 6c 6f 74 0d | 58 20 2a 0d 58 20 2a 20 |.uwplot.|X *.X * |
|00002dc0| 43 6f 70 79 72 69 67 68 | 74 20 31 39 38 36 20 62 |Copyrigh|t 1986 b|
|00002dd0| 79 20 4a 6f 68 6e 20 44 | 2e 20 42 72 75 6e 65 72 |y John D|. Bruner|
|00002de0| 2e 20 20 41 6c 6c 20 72 | 69 67 68 74 73 20 72 65 |. All r|ights re|
|00002df0| 73 65 72 76 65 64 2e 20 | 20 50 65 72 6d 69 73 73 |served. | Permiss|
|00002e00| 69 6f 6e 20 74 6f 0d 58 | 20 2a 20 63 6f 70 79 20 |ion to.X| * copy |
|00002e10| 74 68 69 73 20 70 72 6f | 67 72 61 6d 20 69 73 20 |this pro|gram is |
|00002e20| 67 69 76 65 6e 20 70 72 | 6f 76 69 64 65 64 20 74 |given pr|ovided t|
|00002e30| 68 61 74 20 74 68 65 20 | 63 6f 70 79 20 69 73 20 |hat the |copy is |
|00002e40| 6e 6f 74 20 73 6f 6c 64 | 20 61 6e 64 20 74 68 61 |not sold| and tha|
|00002e50| 74 0d 58 20 2a 20 74 68 | 69 73 20 63 6f 70 79 72 |t.X * th|is copyr|
|00002e60| 69 67 68 74 20 6e 6f 74 | 69 63 65 20 69 73 20 69 |ight not|ice is i|
|00002e70| 6e 63 6c 75 64 65 64 2e | 0d 58 20 2a 2f 0d 58 0d |ncluded.|.X */.X.|
|00002e80| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 79 73 2f 74 |X#includ|e <sys/t|
|00002e90| 79 70 65 73 2e 68 3e 0d | 58 23 69 6e 63 6c 75 64 |ypes.h>.|X#includ|
|00002ea0| 65 20 3c 73 79 73 2f 73 | 6f 63 6b 65 74 2e 68 3e |e <sys/s|ocket.h>|
|00002eb0| 0d 58 23 69 6e 63 6c 75 | 64 65 20 3c 6e 65 74 69 |.X#inclu|de <neti|
|00002ec0| 6e 65 74 2f 69 6e 2e 68 | 3e 0d 58 23 69 6e 63 6c |net/in.h|>.X#incl|
|00002ed0| 75 64 65 20 3c 73 79 73 | 2f 73 69 67 6e 61 6c 2e |ude <sys|/signal.|
|00002ee0| 68 3e 0d 58 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |h>.X#inc|lude <sy|
|00002ef0| 73 2f 65 72 72 6e 6f 2e | 68 3e 0d 58 23 69 6e 63 |s/errno.|h>.X#inc|
|00002f00| 6c 75 64 65 20 3c 63 74 | 79 70 65 2e 68 3e 0d 58 |lude <ct|ype.h>.X|
|00002f10| 23 69 6e 63 6c 75 64 65 | 20 3c 73 74 64 69 6f 2e |#include| <stdio.|
|00002f20| 68 3e 0d 58 0d 58 23 69 | 6e 63 6c 75 64 65 20 22 |h>.X.X#i|nclude "|
|00002f30| 75 77 6c 69 62 2e 68 22 | 0d 58 0d 58 63 68 61 72 |uwlib.h"|.X.Xchar|
|00002f40| 20 2a 61 72 67 76 30 3b | 0d 58 55 57 49 4e 20 75 | *argv0;|.XUWIN u|
|00002f50| 77 69 6e 3b 0d 58 0d 58 | 6d 61 69 6e 28 61 72 67 |win;.X.X|main(arg|
|00002f60| 63 2c 20 61 72 67 76 29 | 0d 58 63 68 61 72 20 2a |c, argv)|.Xchar *|
|00002f70| 2a 61 72 67 76 3b 0d 58 | 7b 0d 58 09 72 65 67 69 |*argv;.X|{.X.regi|
|00002f80| 73 74 65 72 20 69 6e 74 | 20 63 2c 20 6c 65 6e 3b |ster int| c, len;|
|00002f90| 0d 58 09 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |.X.regis|ter char|
|00002fa0| 20 2a 63 70 3b 0d 58 09 | 72 65 67 69 73 74 65 72 | *cp;.X.|register|
|00002fb0| 20 63 68 61 72 20 2a 74 | 69 74 6c 65 3b 0d 58 09 | char *t|itle;.X.|
|00002fc0| 72 65 67 69 73 74 65 72 | 20 73 74 72 75 63 74 20 |register| struct |
|00002fd0| 73 6f 63 6b 61 64 64 72 | 5f 69 6e 20 2a 73 69 6e |sockaddr|_in *sin|
|00002fe0| 3b 0d 58 09 61 75 74 6f | 20 73 74 72 75 63 74 20 |;.X.auto| struct |
|00002ff0| 73 6f 63 6b 61 64 64 72 | 5f 69 6e 20 73 61 3b 0d |sockaddr|_in sa;.|
|00003000| 58 09 61 75 74 6f 20 63 | 68 61 72 20 62 75 66 5b |X.auto c|har buf[|
|00003010| 34 30 39 36 5d 3b 0d 58 | 09 65 78 74 65 72 6e 20 |4096];.X|.extern |
|00003020| 63 68 61 72 20 2a 6f 70 | 74 61 72 67 3b 0d 58 09 |char *op|targ;.X.|
|00003030| 65 78 74 65 72 6e 20 69 | 6e 74 20 65 72 72 6e 6f |extern i|nt errno|
|00003040| 3b 0d 58 09 65 78 74 65 | 72 6e 20 6f 6e 69 6e 74 |;.X.exte|rn onint|
|00003050| 72 28 29 3b 0d 58 0d 58 | 09 2f 2a 0d 58 09 20 2a |r();.X.X|./*.X. *|
|00003060| 20 4f 70 74 69 6f 6e 73 | 20 77 68 69 63 68 20 61 | Options| which a|
|00003070| 72 65 20 72 65 63 6f 67 | 6e 69 7a 65 64 20 64 69 |re recog|nized di|
|00003080| 72 65 63 74 6c 79 20 61 | 72 65 3a 0d 58 09 20 2a |rectly a|re:.X. *|
|00003090| 0d 58 09 20 2a 09 2d 6e | 69 6e 65 74 09 63 6f 6e |.X. *.-n|inet.con|
|000030a0| 6e 65 63 74 20 74 6f 20 | 73 65 72 76 65 72 20 61 |nect to |server a|
|000030b0| 74 20 61 64 64 72 65 73 | 73 20 22 69 6e 65 74 22 |t addres|s "inet"|
|000030c0| 0d 58 09 20 2a 09 2d 74 | 74 69 74 6c 65 09 6c 61 |.X. *.-t|title.la|
|000030d0| 62 65 6c 20 77 69 6e 64 | 6f 77 20 77 69 74 68 20 |bel wind|ow with |
|000030e0| 22 74 69 74 6c 65 22 20 | 28 64 65 66 61 75 6c 74 |"title" |(default|
|000030f0| 20 69 73 20 61 72 67 76 | 5b 30 5d 29 0d 58 09 20 | is argv|[0]).X. |
|00003100| 2a 2f 0d 58 09 61 72 67 | 76 30 20 3d 20 61 72 67 |*/.X.arg|v0 = arg|
|00003110| 76 5b 30 5d 3b 0d 58 09 | 73 69 6e 20 3d 20 28 73 |v[0];.X.|sin = (s|
|00003120| 74 72 75 63 74 20 73 6f | 63 6b 61 64 64 72 5f 69 |truct so|ckaddr_i|
|00003130| 6e 20 2a 29 30 3b 0d 58 | 09 74 69 74 6c 65 20 3d |n *)0;.X|.title =|
|00003140| 20 61 72 67 76 30 3b 0d | 58 09 77 68 69 6c 65 20 | argv0;.|X.while |
|00003150| 28 28 63 20 3d 20 67 65 | 74 6f 70 74 28 61 72 67 |((c = ge|topt(arg|
|00003160| 63 2c 20 61 72 67 76 2c | 20 22 6e 3a 74 3a 22 29 |c, argv,| "n:t:")|
|00003170| 29 20 21 3d 20 45 4f 46 | 29 20 7b 0d 58 09 09 73 |) != EOF|) {.X..s|
|00003180| 77 69 74 63 68 20 28 63 | 29 20 7b 0d 58 09 09 63 |witch (c|) {.X..c|
|00003190| 61 73 65 20 27 6e 27 3a | 0d 58 09 09 09 73 61 2e |ase 'n':|.X...sa.|
|000031a0| 73 69 6e 5f 66 61 6d 69 | 6c 79 20 3d 20 41 46 5f |sin_fami|ly = AF_|
|000031b0| 49 4e 45 54 3b 0d 58 09 | 09 09 73 61 2e 73 69 6e |INET;.X.|..sa.sin|
|000031c0| 5f 61 64 64 72 2e 73 5f | 61 64 64 72 20 3d 20 30 |_addr.s_|addr = 0|
|000031d0| 3b 0d 58 09 09 09 73 61 | 2e 73 69 6e 5f 70 6f 72 |;.X...sa|.sin_por|
|000031e0| 74 20 3d 20 30 3b 0d 58 | 09 09 09 62 7a 65 72 6f |t = 0;.X|...bzero|
|000031f0| 28 73 61 2e 73 69 6e 5f | 7a 65 72 6f 2c 20 73 69 |(sa.sin_|zero, si|
|00003200| 7a 65 6f 66 20 73 61 2e | 73 69 6e 5f 7a 65 72 6f |zeof sa.|sin_zero|
|00003210| 29 3b 0d 58 09 09 09 66 | 6f 72 20 28 63 70 3d 6f |);.X...f|or (cp=o|
|00003220| 70 74 61 72 67 3b 20 69 | 73 78 64 69 67 69 74 28 |ptarg; i|sxdigit(|
|00003230| 63 20 3d 20 2a 63 70 29 | 3b 20 63 70 2b 2b 29 20 |c = *cp)|; cp++) |
|00003240| 7b 0d 58 09 09 09 09 2f | 2a 20 50 79 72 61 6d 69 |{.X..../|* Pyrami|
|00003250| 64 20 63 6f 6d 70 69 6c | 65 72 20 62 6f 74 63 68 |d compil|er botch|
|00003260| 20 2a 2f 0d 58 09 09 09 | 09 2f 2a 20 73 61 2e 73 | */.X...|./* sa.s|
|00003270| 69 6e 5f 61 64 64 72 2e | 73 5f 61 64 64 72 20 2a |in_addr.|s_addr *|
|00003280| 3d 20 31 36 3b 20 2a 2f | 0d 58 09 09 09 09 73 61 |= 16; */|.X....sa|
|00003290| 2e 73 69 6e 5f 61 64 64 | 72 2e 73 5f 61 64 64 72 |.sin_add|r.s_addr|
|000032a0| 20 3c 3c 3d 20 34 3b 0d | 58 09 09 09 09 69 66 20 | <<= 4;.|X....if |
|000032b0| 28 69 73 64 69 67 69 74 | 28 63 29 29 0d 58 09 09 |(isdigit|(c)).X..|
|000032c0| 09 09 09 73 61 2e 73 69 | 6e 5f 61 64 64 72 2e 73 |...sa.si|n_addr.s|
|000032d0| 5f 61 64 64 72 20 2b 3d | 20 63 20 2d 20 27 30 27 |_addr +=| c - '0'|
|000032e0| 3b 0d 58 09 09 09 09 65 | 6c 73 65 20 69 66 20 28 |;.X....e|lse if (|
|000032f0| 69 73 6c 6f 77 65 72 28 | 63 29 29 0d 58 09 09 09 |islower(|c)).X...|
|00003300| 09 09 73 61 2e 73 69 6e | 5f 61 64 64 72 2e 73 5f |..sa.sin|_addr.s_|
|00003310| 61 64 64 72 20 2b 3d 20 | 63 2d 27 61 27 20 2b 20 |addr += |c-'a' + |
|00003320| 31 30 3b 0d 58 09 09 09 | 09 65 6c 73 65 0d 58 09 |10;.X...|.else.X.|
|00003330| 09 09 09 09 73 61 2e 73 | 69 6e 5f 61 64 64 72 2e |....sa.s|in_addr.|
|00003340| 73 5f 61 64 64 72 20 2b | 3d 20 63 2d 27 41 27 20 |s_addr +|= c-'A' |
|00003350| 2b 20 31 30 3b 0d 58 09 | 09 09 7d 0d 58 09 09 09 |+ 10;.X.|..}.X...|
|00003360| 69 66 20 28 63 20 3d 3d | 20 27 2e 27 29 0d 58 09 |if (c ==| '.').X.|
|00003370| 09 09 09 66 6f 72 20 28 | 63 70 2b 2b 3b 20 69 73 |...for (|cp++; is|
|00003380| 64 69 67 69 74 28 63 20 | 3d 20 2a 63 70 29 3b 20 |digit(c |= *cp); |
|00003390| 63 70 2b 2b 29 0d 58 09 | 09 09 09 09 73 61 2e 73 |cp++).X.|....sa.s|
|000033a0| 69 6e 5f 70 6f 72 74 20 | 3d 20 73 61 2e 73 69 6e |in_port |= sa.sin|
|000033b0| 5f 70 6f 72 74 2a 31 30 | 20 2b 20 63 2d 27 30 27 |_port*10| + c-'0'|
|000033c0| 3b 0d 58 09 09 09 69 66 | 20 28 73 61 2e 73 69 6e |;.X...if| (sa.sin|
|000033d0| 5f 61 64 64 72 2e 73 5f | 61 64 64 72 20 3d 3d 20 |_addr.s_|addr == |
|000033e0| 30 20 7c 7c 20 73 61 2e | 73 69 6e 5f 70 6f 72 74 |0 || sa.|sin_port|
|000033f0| 20 3d 3d 20 30 29 20 7b | 0d 58 09 09 09 09 66 70 | == 0) {|.X....fp|
|00003400| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 0d 58 09 |rintf(st|derr,.X.|
|00003410| 09 09 09 20 20 20 20 22 | 25 73 3a 20 62 61 64 20 |... "|%s: bad |
|00003420| 49 6e 74 65 72 6e 65 74 | 20 61 64 64 72 65 73 73 |Internet| address|
|00003430| 3a 20 25 73 5c 6e 22 2c | 0d 58 09 09 09 09 20 20 |: %s\n",|.X.... |
|00003440| 20 20 61 72 67 76 30 2c | 20 6f 70 74 61 72 67 29 | argv0,| optarg)|
|00003450| 3b 0d 58 09 09 09 09 72 | 65 74 75 72 6e 28 31 29 |;.X....r|eturn(1)|
|00003460| 3b 0d 58 09 09 09 7d 0d | 58 09 09 09 73 61 2e 73 |;.X...}.|X...sa.s|
|00003470| 69 6e 5f 61 64 64 72 2e | 73 5f 61 64 64 72 20 3d |in_addr.|s_addr =|
|00003480| 20 68 74 6f 6e 6c 28 73 | 61 2e 73 69 6e 5f 61 64 | htonl(s|a.sin_ad|
|00003490| 64 72 2e 73 5f 61 64 64 | 72 29 3b 0d 58 09 09 09 |dr.s_add|r);.X...|
|000034a0| 73 61 2e 73 69 6e 5f 70 | 6f 72 74 20 3d 20 68 74 |sa.sin_p|ort = ht|
|000034b0| 6f 6e 73 28 73 61 2e 73 | 69 6e 5f 70 6f 72 74 29 |ons(sa.s|in_port)|
|000034c0| 3b 0d 58 09 09 09 73 69 | 6e 20 3d 20 26 73 61 3b |;.X...si|n = &sa;|
|000034d0| 0d 58 09 09 09 62 72 65 | 61 6b 3b 0d 58 09 09 63 |.X...bre|ak;.X..c|
|000034e0| 61 73 65 20 27 74 27 3a | 0d 58 09 09 09 74 69 74 |ase 't':|.X...tit|
|000034f0| 6c 65 20 3d 20 6f 70 74 | 61 72 67 3b 0d 58 09 09 |le = opt|arg;.X..|
|00003500| 09 62 72 65 61 6b 3b 0d | 58 09 09 7d 0d 58 09 7d |.break;.|X..}.X.}|
|00003510| 0d 58 0d 58 09 2f 2a 0d | 58 09 20 2a 20 43 61 74 |.X.X./*.|X. * Cat|
|00003520| 63 68 20 68 61 6e 67 75 | 70 2c 20 69 6e 74 65 72 |ch hangu|p, inter|
|00003530| 72 75 70 74 2c 20 71 75 | 69 74 2c 20 61 6e 64 20 |rupt, qu|it, and |
|00003540| 74 65 72 6d 69 6e 61 74 | 69 6f 6e 20 73 69 67 6e |terminat|ion sign|
|00003550| 61 6c 73 2e 20 20 4b 69 | 6c 6c 0d 58 09 20 2a 20 |als. Ki|ll.X. * |
|00003560| 74 68 65 20 77 69 6e 64 | 6f 77 20 69 66 20 6f 6e |the wind|ow if on|
|00003570| 65 20 6f 66 20 74 68 65 | 73 65 20 69 73 20 72 65 |e of the|se is re|
|00003580| 63 65 69 76 65 64 2e 0d | 58 09 20 2a 2f 0d 58 09 |ceived..|X. */.X.|
|00003590| 28 76 6f 69 64 29 73 69 | 67 6e 61 6c 28 53 49 47 |(void)si|gnal(SIG|
|000035a0| 48 55 50 2c 20 6f 6e 69 | 6e 74 72 29 3b 0d 58 09 |HUP, oni|ntr);.X.|
|000035b0| 28 76 6f 69 64 29 73 69 | 67 6e 61 6c 28 53 49 47 |(void)si|gnal(SIG|
|000035c0| 49 4e 54 2c 20 6f 6e 69 | 6e 74 72 29 3b 0d 58 09 |INT, oni|ntr);.X.|
|000035d0| 28 76 6f 69 64 29 73 69 | 67 6e 61 6c 28 53 49 47 |(void)si|gnal(SIG|
|000035e0| 51 55 49 54 2c 20 6f 6e | 69 6e 74 72 29 3b 0d 58 |QUIT, on|intr);.X|
|000035f0| 09 28 76 6f 69 64 29 73 | 69 67 6e 61 6c 28 53 49 |.(void)s|ignal(SI|
|00003600| 47 54 45 52 4d 2c 20 6f | 6e 69 6e 74 72 29 3b 0d |GTERM, o|nintr);.|
|00003610| 58 0d 58 09 2f 2a 0d 58 | 09 20 2a 20 43 72 65 61 |X.X./*.X|. * Crea|
|00003620| 74 65 20 61 20 6e 65 77 | 20 70 6c 6f 74 20 77 69 |te a new| plot wi|
|00003630| 6e 64 6f 77 2c 20 74 69 | 74 6c 65 20 69 74 2c 20 |ndow, ti|tle it, |
|00003640| 61 6e 64 20 6d 61 6b 65 | 20 69 74 20 76 69 73 69 |and make| it visi|
|00003650| 62 6c 65 2e 0d 58 09 20 | 2a 2f 0d 58 09 69 66 20 |ble..X. |*/.X.if |
|00003660| 28 28 75 77 69 6e 20 3d | 20 75 77 5f 6e 65 77 28 |((uwin =| uw_new(|
|00003670| 55 57 54 5f 50 4c 4f 54 | 2c 20 73 69 6e 29 29 20 |UWT_PLOT|, sin)) |
|00003680| 3d 3d 20 28 55 57 49 4e | 29 30 29 20 7b 0d 58 09 |== (UWIN|)0) {.X.|
|00003690| 09 75 77 5f 70 65 72 72 | 6f 72 28 61 72 67 76 5b |.uw_perr|or(argv[|
|000036a0| 30 5d 2c 20 75 77 65 72 | 72 6e 6f 2c 20 65 72 72 |0], uwer|rno, err|
|000036b0| 6e 6f 29 3b 0d 58 09 09 | 72 65 74 75 72 6e 28 31 |no);.X..|return(1|
|000036c0| 29 3b 0d 58 09 7d 0d 58 | 09 28 76 6f 69 64 29 75 |);.X.}.X|.(void)u|
|000036d0| 77 5f 73 74 69 74 6c 65 | 28 75 77 69 6e 2c 20 74 |w_stitle|(uwin, t|
|000036e0| 69 74 6c 65 29 3b 0d 58 | 09 28 76 6f 69 64 29 75 |itle);.X|.(void)u|
|000036f0| 77 5f 73 76 69 73 28 75 | 77 69 6e 2c 20 31 29 3b |w_svis(u|win, 1);|
|00003700| 0d 58 0d 58 09 2f 2a 0d | 58 09 20 2a 20 43 6f 70 |.X.X./*.|X. * Cop|
|00003710| 79 20 74 68 65 20 73 74 | 61 6e 64 61 72 64 20 69 |y the st|andard i|
|00003720| 6e 70 75 74 20 74 6f 20 | 74 68 65 20 70 6c 6f 74 |nput to |the plot|
|00003730| 20 77 69 6e 64 6f 77 2e | 0d 58 09 20 2a 2f 0d 58 | window.|.X. */.X|
|00003740| 09 77 68 69 6c 65 20 28 | 28 6c 65 6e 20 3d 20 72 |.while (|(len = r|
|00003750| 65 61 64 28 30 2c 20 62 | 75 66 2c 20 73 69 7a 65 |ead(0, b|uf, size|
|00003760| 6f 66 20 62 75 66 29 29 | 20 3e 20 30 20 7c 7c 0d |of buf))| > 0 ||.|
|00003770| 58 09 20 20 20 20 28 6c | 65 6e 20 3c 20 30 20 26 |X. (l|en < 0 &|
|00003780| 26 20 65 72 72 6e 6f 20 | 3d 3d 20 45 49 4e 54 52 |& errno |== EINTR|
|00003790| 29 29 20 7b 0d 58 09 09 | 69 66 20 28 6c 65 6e 20 |)) {.X..|if (len |
|000037a0| 3e 20 30 29 0d 58 09 09 | 09 28 76 6f 69 64 29 77 |> 0).X..|.(void)w|
|000037b0| 72 69 74 65 28 55 57 5f | 44 41 54 41 46 44 28 75 |rite(UW_|DATAFD(u|
|000037c0| 77 69 6e 29 2c 20 62 75 | 66 2c 20 6c 65 6e 29 3b |win), bu|f, len);|
|000037d0| 0d 58 09 7d 0d 58 0d 58 | 09 2f 2a 0d 58 09 20 2a |.X.}.X.X|./*.X. *|
|000037e0| 20 54 68 69 73 20 69 73 | 20 73 6f 6d 65 74 68 69 | This is| somethi|
|000037f0| 6e 67 20 6f 66 20 61 20 | 68 61 63 6b 2e 20 20 57 |ng of a |hack. W|
|00003800| 65 20 64 6f 6e 27 74 20 | 65 78 70 65 63 74 20 74 |e don't |expect t|
|00003810| 6f 20 62 65 20 61 62 6c | 65 20 74 6f 0d 58 09 20 |o be abl|e to.X. |
|00003820| 2a 20 72 65 61 64 20 61 | 6e 79 74 68 69 6e 67 20 |* read a|nything |
|00003830| 66 72 6f 6d 20 74 68 65 | 20 77 69 6e 64 6f 77 2e |from the| window.|
|00003840| 20 20 54 68 65 20 72 65 | 61 64 20 77 69 6c 6c 20 | The re|ad will |
|00003850| 68 61 6e 67 20 75 6e 74 | 69 6c 20 74 68 65 0d 58 |hang unt|il the.X|
|00003860| 09 20 2a 20 77 69 6e 64 | 6f 77 20 69 73 20 6b 69 |. * wind|ow is ki|
|00003870| 6c 6c 65 64 2e 0d 58 09 | 20 2a 2f 0d 58 09 77 68 |lled..X.| */.X.wh|
|00003880| 69 6c 65 20 28 28 6c 65 | 6e 20 3d 20 72 65 61 64 |ile ((le|n = read|
|00003890| 28 55 57 5f 44 41 54 41 | 46 44 28 75 77 69 6e 29 |(UW_DATA|FD(uwin)|
|000038a0| 2c 20 62 75 66 2c 20 73 | 69 7a 65 6f 66 20 62 75 |, buf, s|izeof bu|
|000038b0| 66 29 29 20 3e 20 30 20 | 7c 7c 0d 58 09 20 20 20 |f)) > 0 |||.X. |
|000038c0| 20 6c 65 6e 20 3c 20 30 | 20 26 26 20 65 72 72 6e | len < 0| && errn|
|000038d0| 6f 20 3d 3d 20 45 49 4e | 54 52 29 0d 58 09 09 3b |o == EIN|TR).X..;|
|000038e0| 0d 58 09 72 65 74 75 72 | 6e 28 30 29 3b 0d 58 7d |.X.retur|n(0);.X}|
|000038f0| 0d 58 0d 58 6f 6e 69 6e | 74 72 28 29 0d 58 7b 0d |.X.Xonin|tr().X{.|
|00003900| 58 09 75 77 5f 6b 69 6c | 6c 28 75 77 69 6e 29 3b |X.uw_kil|l(uwin);|
|00003910| 0d 58 09 65 78 69 74 28 | 30 29 3b 0d 58 7d 0d 21 |.X.exit(|0);.X}.!|
|00003920| 45 4f 46 21 75 74 69 6c | 69 74 79 2f 75 77 70 6c |EOF!util|ity/uwpl|
|00003930| 6f 74 2e 63 21 0d 65 63 | 68 6f 20 78 20 2d 20 75 |ot.c!.ec|ho x - u|
|00003940| 74 69 6c 69 74 79 2f 75 | 77 74 65 72 6d 2e 63 0d |tility/u|wterm.c.|
|00003950| 73 65 64 20 2d 65 20 27 | 73 2f 5e 58 2f 2f 27 20 |sed -e '|s/^X//' |
|00003960| 3e 20 75 74 69 6c 69 74 | 79 2f 75 77 74 65 72 6d |> utilit|y/uwterm|
|00003970| 2e 63 20 3c 3c 20 27 21 | 45 4f 46 21 75 74 69 6c |.c << '!|EOF!util|
|00003980| 69 74 79 2f 75 77 74 65 | 72 6d 2e 63 21 27 0d 58 |ity/uwte|rm.c!'.X|
|00003990| 2f 2a 0d 58 20 2a 09 75 | 77 74 65 72 6d 0d 58 20 |/*.X *.u|wterm.X |
|000039a0| 2a 0d 58 20 2a 20 43 6f | 70 79 72 69 67 68 74 20 |*.X * Co|pyright |
|000039b0| 31 39 38 36 20 62 79 20 | 4a 6f 68 6e 20 44 2e 20 |1986 by |John D. |
|000039c0| 42 72 75 6e 65 72 2e 20 | 20 41 6c 6c 20 72 69 67 |Bruner. | All rig|
|000039d0| 68 74 73 20 72 65 73 65 | 72 76 65 64 2e 20 20 50 |hts rese|rved. P|
|000039e0| 65 72 6d 69 73 73 69 6f | 6e 20 74 6f 0d 58 20 2a |ermissio|n to.X *|
|000039f0| 20 63 6f 70 79 20 74 68 | 69 73 20 70 72 6f 67 72 | copy th|is progr|
|00003a00| 61 6d 20 69 73 20 67 69 | 76 65 6e 20 70 72 6f 76 |am is gi|ven prov|
|00003a10| 69 64 65 64 20 74 68 61 | 74 20 74 68 65 20 63 6f |ided tha|t the co|
|00003a20| 70 79 20 69 73 20 6e 6f | 74 20 73 6f 6c 64 20 61 |py is no|t sold a|
|00003a30| 6e 64 20 74 68 61 74 0d | 58 20 2a 20 74 68 69 73 |nd that.|X * this|
|00003a40| 20 63 6f 70 79 72 69 67 | 68 74 20 6e 6f 74 69 63 | copyrig|ht notic|
|00003a50| 65 20 69 73 20 69 6e 63 | 6c 75 64 65 64 2e 0d 58 |e is inc|luded..X|
|00003a60| 20 2a 2f 0d 58 23 69 6e | 63 6c 75 64 65 20 3c 73 | */.X#in|clude <s|
|00003a70| 79 73 2f 74 79 70 65 73 | 2e 68 3e 0d 58 23 69 6e |ys/types|.h>.X#in|
|00003a80| 63 6c 75 64 65 20 3c 73 | 79 73 2f 66 69 6c 65 2e |clude <s|ys/file.|
|00003a90| 68 3e 0d 58 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |h>.X#inc|lude <sy|
|00003aa0| 73 2f 69 6f 63 74 6c 2e | 68 3e 0d 58 23 69 6e 63 |s/ioctl.|h>.X#inc|
|00003ab0| 6c 75 64 65 20 3c 73 79 | 73 2f 73 6f 63 6b 65 74 |lude <sy|s/socket|
|00003ac0| 2e 68 3e 0d 58 23 69 6e | 63 6c 75 64 65 20 3c 73 |.h>.X#in|clude <s|
|00003ad0| 79 73 2f 74 69 6d 65 2e | 68 3e 0d 58 23 69 6e 63 |ys/time.|h>.X#inc|
|00003ae0| 6c 75 64 65 20 3c 73 79 | 73 2f 72 65 73 6f 75 72 |lude <sy|s/resour|
|00003af0| 63 65 2e 68 3e 0d 58 23 | 69 6e 63 6c 75 64 65 20 |ce.h>.X#|include |
|00003b00| 3c 73 79 73 2f 77 61 69 | 74 2e 68 3e 0d 58 23 69 |<sys/wai|t.h>.X#i|
|00003b10| 6e 63 6c 75 64 65 20 3c | 6e 65 74 69 6e 65 74 2f |nclude <|netinet/|
|00003b20| 69 6e 2e 68 3e 0d 58 23 | 69 6e 63 6c 75 64 65 20 |in.h>.X#|include |
|00003b30| 3c 73 69 67 6e 61 6c 2e | 68 3e 0d 58 23 69 6e 63 |<signal.|h>.X#inc|
|00003b40| 6c 75 64 65 20 3c 73 74 | 72 69 6e 67 73 2e 68 3e |lude <st|rings.h>|
|00003b50| 0d 58 23 69 6e 63 6c 75 | 64 65 20 3c 63 74 79 70 |.X#inclu|de <ctyp|
|00003b60| 65 2e 68 3e 0d 58 23 69 | 6e 63 6c 75 64 65 20 3c |e.h>.X#i|nclude <|
|00003b70| 65 72 72 6e 6f 2e 68 3e | 0d 58 23 69 6e 63 6c 75 |errno.h>|.X#inclu|
|00003b80| 64 65 20 3c 73 74 64 69 | 6f 2e 68 3e 0d 58 0d 58 |de <stdi|o.h>.X.X|
|00003b90| 23 69 6e 63 6c 75 64 65 | 20 22 6f 70 65 6e 70 74 |#include| "openpt|
|00003ba0| 79 2e 68 22 0d 58 23 69 | 6e 63 6c 75 64 65 20 22 |y.h".X#i|nclude "|
|00003bb0| 75 77 6c 69 62 2e 68 22 | 0d 58 0d 58 23 69 66 6e |uwlib.h"|.X.X#ifn|
|00003bc0| 64 65 66 20 55 57 54 45 | 52 4d 0d 58 23 64 65 66 |def UWTE|RM.X#def|
|00003bd0| 69 6e 65 09 55 57 54 45 | 52 4d 09 22 75 77 74 65 |ine.UWTE|RM."uwte|
|00003be0| 72 6d 22 0d 58 23 65 6e | 64 69 66 0d 58 0d 58 23 |rm".X#en|dif.X.X#|
|00003bf0| 64 65 66 69 6e 65 09 43 | 54 4c 28 63 29 09 09 28 |define.C|TL(c)..(|
|00003c00| 28 63 29 26 30 33 37 29 | 0d 58 0d 58 23 69 66 6e |(c)&037)|.X.X#ifn|
|00003c10| 64 65 66 20 46 44 5f 53 | 45 54 0d 58 2f 2a 20 34 |def FD_S|ET.X/* 4|
|00003c20| 2e 32 20 72 65 74 72 6f | 66 69 74 3a 20 62 65 74 |.2 retro|fit: bet|
|00003c30| 74 65 72 20 64 65 66 69 | 6e 69 74 69 6f 6e 73 20 |ter defi|nitions |
|00003c40| 66 6f 72 20 74 68 65 73 | 65 20 61 72 65 20 69 6e |for thes|e are in|
|00003c50| 20 34 2e 33 42 53 44 27 | 73 20 3c 73 79 73 2f 74 | 4.3BSD'|s <sys/t|
|00003c60| 79 70 65 73 2e 68 3e 20 | 2a 2f 0d 58 23 64 65 66 |ypes.h> |*/.X#def|
|00003c70| 69 6e 65 09 46 44 5f 53 | 45 54 28 6e 2c 70 29 09 |ine.FD_S|ET(n,p).|
|00003c80| 28 28 70 29 2d 3e 66 64 | 73 5f 62 69 74 73 5b 30 |((p)->fd|s_bits[0|
|00003c90| 5d 20 7c 3d 20 28 31 20 | 3c 3c 20 28 6e 29 29 29 |] |= (1 |<< (n)))|
|00003ca0| 0d 58 23 64 65 66 69 6e | 65 09 46 44 5f 43 4c 52 |.X#defin|e.FD_CLR|
|00003cb0| 28 6e 2c 70 29 09 28 28 | 70 29 2d 3e 66 64 73 5f |(n,p).((|p)->fds_|
|00003cc0| 62 69 74 73 5b 30 5d 20 | 26 3d 20 7e 28 31 20 3c |bits[0] |&= ~(1 <|
|00003cd0| 3c 20 28 6e 29 29 29 0d | 58 23 64 65 66 69 6e 65 |< (n))).|X#define|
|00003ce0| 09 46 44 5f 49 53 53 45 | 54 28 6e 2c 70 29 09 28 |.FD_ISSE|T(n,p).(|
|00003cf0| 28 70 29 2d 3e 66 64 73 | 5f 62 69 74 73 5b 30 5d |(p)->fds|_bits[0]|
|00003d00| 20 26 20 28 31 20 3c 3c | 20 28 6e 29 29 29 0d 58 | & (1 <<| (n))).X|
|00003d10| 23 64 65 66 69 6e 65 09 | 46 44 5f 5a 45 52 4f 28 |#define.|FD_ZERO(|
|00003d20| 70 29 09 28 28 70 29 2d | 3e 66 64 73 5f 62 69 74 |p).((p)-|>fds_bit|
|00003d30| 73 5b 30 5d 20 3d 20 30 | 29 0d 58 23 64 65 66 69 |s[0] = 0|).X#defi|
|00003d40| 6e 65 09 46 44 5f 53 45 | 54 53 49 5a 45 09 28 4e |ne.FD_SE|TSIZE.(N|
|00003d50| 42 42 59 2a 73 69 7a 65 | 6f 66 28 6c 6f 6e 67 29 |BBY*size|of(long)|
|00003d60| 29 0d 58 23 65 6e 64 69 | 66 0d 58 0d 58 65 78 74 |).X#endi|f.X.Xext|
|00003d70| 65 72 6e 20 69 6e 74 20 | 6f 70 74 69 6e 64 3b 0d |ern int |optind;.|
|00003d80| 58 65 78 74 65 72 6e 20 | 63 68 61 72 20 2a 6f 70 |Xextern |char *op|
|00003d90| 74 61 72 67 3b 0d 58 65 | 78 74 65 72 6e 20 63 68 |targ;.Xe|xtern ch|
|00003da0| 61 72 20 2a 67 65 74 65 | 6e 76 28 29 3b 0d 58 65 |ar *gete|nv();.Xe|
|00003db0| 78 74 65 72 6e 20 63 68 | 61 72 20 2a 6d 61 6c 6c |xtern ch|ar *mall|
|00003dc0| 6f 63 28 29 3b 0d 58 65 | 78 74 65 72 6e 20 64 65 |oc();.Xe|xtern de|
|00003dd0| 61 64 6b 69 64 28 29 3b | 0d 58 65 78 74 65 72 6e |adkid();|.Xextern|
|00003de0| 20 69 6e 74 20 65 72 72 | 6e 6f 3b 0d 58 0d 58 23 | int err|no;.X.X#|
|00003df0| 69 66 6e 64 65 66 20 68 | 74 6f 6e 73 0d 58 2f 2a |ifndef h|tons.X/*|
|00003e00| 20 54 68 65 73 65 20 73 | 68 6f 75 6c 64 20 68 61 | These s|hould ha|
|00003e10| 76 65 20 62 65 65 6e 20 | 64 65 66 69 6e 65 64 20 |ve been |defined |
|00003e20| 69 6e 20 3c 6e 65 74 69 | 6e 65 74 2f 69 6e 2e 68 |in <neti|net/in.h|
|00003e30| 3e 2c 20 62 75 74 20 77 | 65 72 65 6e 27 74 20 28 |>, but w|eren't (|
|00003e40| 69 6e 20 34 2e 32 42 53 | 44 29 20 2a 2f 0d 58 65 |in 4.2BS|D) */.Xe|
|00003e50| 78 74 65 72 6e 20 75 6e | 73 69 67 6e 65 64 20 73 |xtern un|signed s|
|00003e60| 68 6f 72 74 20 68 74 6f | 6e 73 28 29 2c 20 6e 74 |hort hto|ns(), nt|
|00003e70| 6f 68 73 28 29 3b 0d 58 | 65 78 74 65 72 6e 20 75 |ohs();.X|extern u|
|00003e80| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 68 74 6f |nsigned |long hto|
|00003e90| 6e 6c 28 29 2c 20 6e 74 | 6f 68 6c 28 29 3b 0d 58 |nl(), nt|ohl();.X|
|00003ea0| 23 65 6e 64 69 66 0d 58 | 0d 58 63 68 61 72 20 2a |#endif.X|.Xchar *|
|00003eb0| 61 72 67 76 30 3b 0d 58 | 0d 58 6d 61 69 6e 28 61 |argv0;.X|.Xmain(a|
|00003ec0| 72 67 63 2c 20 61 72 67 | 76 29 0d 58 69 6e 74 20 |rgc, arg|v).Xint |
|00003ed0| 61 72 67 63 3b 0d 58 63 | 68 61 72 20 2a 2a 61 72 |argc;.Xc|har **ar|
|00003ee0| 67 76 3b 0d 58 7b 0d 58 | 09 72 65 67 69 73 74 65 |gv;.X{.X|.registe|
|00003ef0| 72 20 63 68 61 72 20 2a | 63 70 3b 0d 58 09 72 65 |r char *|cp;.X.re|
|00003f00| 67 69 73 74 65 72 20 69 | 6e 74 20 63 3b 0d 58 09 |gister i|nt c;.X.|
|00003f10| 69 6e 74 20 77 66 6c 61 | 67 3b 0d 58 09 75 77 74 |int wfla|g;.X.uwt|
|00003f20| 79 70 65 5f 74 20 77 74 | 79 70 65 3b 0d 58 09 63 |ype_t wt|ype;.X.c|
|00003f30| 68 61 72 20 2a 74 65 72 | 6d 2c 20 2a 74 69 74 6c |har *ter|m, *titl|
|00003f40| 65 2c 20 2a 73 65 72 76 | 65 72 2c 20 2a 6c 6f 67 |e, *serv|er, *log|
|00003f50| 69 6e 3b 0d 58 09 73 74 | 72 75 63 74 20 73 6f 63 |in;.X.st|ruct soc|
|00003f60| 6b 61 64 64 72 5f 69 6e | 20 73 61 2c 20 2a 73 69 |kaddr_in| sa, *si|
|00003f70| 6e 3b 0d 58 09 63 68 61 | 72 20 68 6f 73 74 6e 61 |n;.X.cha|r hostna|
|00003f80| 6d 65 5b 33 32 5d 3b 0d | 58 0d 58 09 2f 2a 0d 58 |me[32];.|X.X./*.X|
|00003f90| 09 20 2a 20 49 66 20 63 | 61 6c 6c 65 64 20 77 69 |. * If c|alled wi|
|00003fa0| 74 68 20 6e 6f 20 61 72 | 67 75 6d 65 6e 74 73 2c |th no ar|guments,|
|00003fb0| 20 63 72 65 61 74 65 20 | 61 20 6e 65 77 20 77 69 | create |a new wi|
|00003fc0| 6e 64 6f 77 20 75 73 69 | 6e 67 20 74 68 65 0d 58 |ndow usi|ng the.X|
|00003fd0| 09 20 2a 20 63 75 72 72 | 65 6e 74 20 73 68 65 6c |. * curr|ent shel|
|00003fe0| 6c 20 61 63 63 6f 72 64 | 69 6e 67 20 74 6f 20 74 |l accord|ing to t|
|00003ff0| 68 65 20 53 48 45 4c 4c | 20 65 6e 76 69 72 6f 6e |he SHELL| environ|
|00004000| 6d 65 6e 74 20 76 61 72 | 69 61 62 6c 65 0d 58 09 |ment var|iable.X.|
|00004010| 20 2a 20 28 6f 72 20 22 | 2f 62 69 6e 2f 73 68 22 | * (or "|/bin/sh"|
|00004020| 20 69 66 20 74 68 61 74 | 20 64 6f 65 73 6e 27 74 | if that| doesn't|
|00004030| 20 65 78 69 73 74 29 2e | 0d 58 09 20 2a 0d 58 09 | exist).|.X. *.X.|
|00004040| 20 2a 20 4f 70 74 69 6f | 6e 73 20 77 68 69 63 68 | * Optio|ns which|
|00004050| 20 61 72 65 20 72 65 63 | 6f 67 6e 69 7a 65 64 20 | are rec|ognized |
|00004060| 64 69 72 65 63 74 6c 79 | 20 61 72 65 3a 0d 58 09 |directly| are:.X.|
|00004070| 20 2a 0d 58 09 20 2a 09 | 2d 6e 69 6e 65 74 09 63 | *.X. *.|-ninet.c|
|00004080| 6f 6e 6e 65 63 74 20 74 | 6f 20 73 65 72 76 65 72 |onnect t|o server|
|00004090| 20 61 74 20 61 64 64 72 | 65 73 73 20 22 69 6e 65 | at addr|ess "ine|
|000040a0| 74 22 0d 58 09 20 2a 09 | 2d 77 74 79 70 65 09 63 |t".X. *.|-wtype.c|
|000040b0| 72 65 61 74 65 20 77 69 | 6e 64 6f 77 20 77 69 74 |reate wi|ndow wit|
|000040c0| 68 20 65 6d 75 6c 61 74 | 69 6f 6e 20 22 74 79 70 |h emulat|ion "typ|
|000040d0| 65 22 0d 58 09 20 2a 09 | 2d 74 74 69 74 6c 65 09 |e".X. *.|-ttitle.|
|000040e0| 6c 61 62 65 6c 20 77 69 | 6e 64 6f 77 20 77 69 74 |label wi|ndow wit|
|000040f0| 68 20 22 74 69 74 6c 65 | 22 0d 58 09 20 2a 09 2d |h "title|".X. *.-|
|00004100| 6c 6c 6f 67 69 6e 09 75 | 73 65 20 6c 6f 67 69 6e |llogin.u|se login|
|00004110| 20 6e 61 6d 65 20 22 6c | 6f 67 69 6e 22 20 6f 6e | name "l|ogin" on|
|00004120| 20 72 65 6d 6f 74 65 20 | 6d 61 63 68 69 6e 65 0d | remote |machine.|
|00004130| 58 09 20 2a 0d 58 09 20 | 2a 20 49 66 20 6e 6f 20 |X. *.X. |* If no |
|00004140| 65 78 70 6c 69 63 69 74 | 20 74 69 74 6c 65 20 69 |explicit| title i|
|00004150| 73 20 73 70 65 63 69 66 | 69 65 64 2c 20 74 68 65 |s specif|ied, the|
|00004160| 20 63 6f 6d 6d 61 6e 64 | 20 6e 61 6d 65 20 69 73 | command| name is|
|00004170| 20 75 73 65 64 2e 0d 58 | 09 20 2a 2f 0d 58 09 61 | used..X|. */.X.a|
|00004180| 72 67 76 30 20 3d 20 61 | 72 67 76 5b 30 5d 3b 0d |rgv0 = a|rgv[0];.|
|00004190| 58 09 73 69 6e 20 3d 20 | 28 73 74 72 75 63 74 20 |X.sin = |(struct |
|000041a0| 73 6f 63 6b 61 64 64 72 | 5f 69 6e 20 2a 29 30 3b |sockaddr|_in *)0;|
|000041b0| 0d 58 09 73 65 72 76 65 | 72 20 3d 20 28 63 68 61 |.X.serve|r = (cha|
|000041c0| 72 20 2a 29 30 3b 0d 58 | 09 6c 6f 67 69 6e 20 3d |r *)0;.X|.login =|
|000041d0| 20 28 63 68 61 72 20 2a | 29 30 3b 0d 58 09 74 69 | (char *|)0;.X.ti|
|000041e0| 74 6c 65 20 3d 20 28 63 | 68 61 72 20 2a 29 30 3b |tle = (c|har *)0;|
|000041f0| 0d 58 09 77 66 6c 61 67 | 20 3d 20 30 3b 0d 58 09 |.X.wflag| = 0;.X.|
|00004200| 74 65 72 6d 20 3d 20 28 | 63 68 61 72 20 2a 29 30 |term = (|char *)0|
|00004210| 3b 0d 58 09 77 68 69 6c | 65 20 28 28 63 20 3d 20 |;.X.whil|e ((c = |
|00004220| 67 65 74 6f 70 74 28 61 | 72 67 63 2c 20 61 72 67 |getopt(a|rgc, arg|
|00004230| 76 2c 20 22 6c 3a 6e 3a | 74 3a 77 3a 22 29 29 20 |v, "l:n:|t:w:")) |
|00004240| 21 3d 20 45 4f 46 29 20 | 7b 0d 58 09 09 73 77 69 |!= EOF) |{.X..swi|
|00004250| 74 63 68 20 28 63 29 20 | 7b 0d 58 09 09 63 61 73 |tch (c) |{.X..cas|
|00004260| 65 20 27 6c 27 3a 0d 58 | 09 09 09 69 66 20 28 6f |e 'l':.X|...if (o|
|00004270| 70 74 61 72 67 5b 30 5d | 20 3d 3d 20 27 5c 30 27 |ptarg[0]| == '\0'|
|00004280| 29 20 7b 0d 58 09 09 09 | 09 66 70 72 69 6e 74 66 |) {.X...|.fprintf|
|00004290| 28 73 74 64 65 72 72 2c | 0d 58 09 09 09 09 20 20 |(stderr,|.X.... |
|000042a0| 20 20 22 25 73 3a 20 5c | 22 2d 6c 5c 22 20 72 65 | "%s: \|"-l\" re|
|000042b0| 71 75 69 72 65 73 20 75 | 73 65 72 20 6e 61 6d 65 |quires u|ser name|
|000042c0| 5c 6e 22 2c 20 61 72 67 | 76 30 29 3b 0d 58 09 09 |\n", arg|v0);.X..|
|000042d0| 09 7d 20 65 6c 73 65 0d | 58 09 09 09 09 6c 6f 67 |.} else.|X....log|
|000042e0| 69 6e 20 3d 20 6f 70 74 | 61 72 67 3b 0d 58 09 09 |in = opt|arg;.X..|
|000042f0| 09 62 72 65 61 6b 3b 0d | 58 09 09 63 61 73 65 20 |.break;.|X..case |
|00004300| 27 6e 27 3a 0d 58 09 09 | 09 73 65 72 76 65 72 20 |'n':.X..|.server |
|00004310| 3d 20 6f 70 74 61 72 67 | 3b 0d 58 09 09 09 73 61 |= optarg|;.X...sa|
|00004320| 2e 73 69 6e 5f 66 61 6d | 69 6c 79 20 3d 20 41 46 |.sin_fam|ily = AF|
|00004330| 5f 49 4e 45 54 3b 0d 58 | 09 09 09 73 61 2e 73 69 |_INET;.X|...sa.si|
|00004340| 6e 5f 61 64 64 72 2e 73 | 5f 61 64 64 72 20 3d 20 |n_addr.s|_addr = |
|00004350| 30 3b 0d 58 09 09 09 73 | 61 2e 73 69 6e 5f 70 6f |0;.X...s|a.sin_po|
|00004360| 72 74 20 3d 20 30 3b 0d | 58 09 09 09 62 7a 65 72 |rt = 0;.|X...bzer|
|00004370| 6f 28 73 61 2e 73 69 6e | 5f 7a 65 72 6f 2c 20 73 |o(sa.sin|_zero, s|
|00004380| 69 7a 65 6f 66 20 73 61 | 2e 73 69 6e 5f 7a 65 72 |izeof sa|.sin_zer|
|00004390| 6f 29 3b 0d 58 09 09 09 | 66 6f 72 20 28 63 70 3d |o);.X...|for (cp=|
|000043a0| 6f 70 74 61 72 67 3b 20 | 69 73 78 64 69 67 69 74 |optarg; |isxdigit|
|000043b0| 28 63 20 3d 20 2a 63 70 | 29 3b 20 63 70 2b 2b 29 |(c = *cp|); cp++)|
|000043c0| 20 7b 0d 58 09 09 09 09 | 2f 2a 20 50 79 72 61 6d | {.X....|/* Pyram|
|000043d0| 69 64 20 63 6f 6d 70 69 | 6c 65 72 20 62 6f 74 63 |id compi|ler botc|
|000043e0| 68 20 2a 2f 0d 58 09 09 | 09 09 2f 2a 20 73 61 2e |h */.X..|../* sa.|
|000043f0| 73 69 6e 5f 61 64 64 72 | 2e 73 5f 61 64 64 72 20 |sin_addr|.s_addr |
|00004400| 2a 3d 20 31 36 3b 20 2a | 2f 0d 58 09 09 09 09 73 |*= 16; *|/.X....s|
|00004410| 61 2e 73 69 6e 5f 61 64 | 64 72 2e 73 5f 61 64 64 |a.sin_ad|dr.s_add|
|00004420| 72 20 3c 3c 3d 20 34 3b | 0d 58 09 09 09 09 69 66 |r <<= 4;|.X....if|
|00004430| 20 28 69 73 64 69 67 69 | 74 28 63 29 29 0d 58 09 | (isdigi|t(c)).X.|
|00004440| 09 09 09 09 73 61 2e 73 | 69 6e 5f 61 64 64 72 2e |....sa.s|in_addr.|
|00004450| 73 5f 61 64 64 72 20 2b | 3d 20 63 20 2d 20 27 30 |s_addr +|= c - '0|
|00004460| 27 3b 0d 58 09 09 09 09 | 65 6c 73 65 20 69 66 20 |';.X....|else if |
|00004470| 28 69 73 6c 6f 77 65 72 | 28 63 29 29 0d 58 09 09 |(islower|(c)).X..|
|00004480| 09 09 09 73 61 2e 73 69 | 6e 5f 61 64 64 72 2e 73 |...sa.si|n_addr.s|
|00004490| 5f 61 64 64 72 20 2b 3d | 20 63 2d 27 61 27 20 2b |_addr +=| c-'a' +|
|000044a0| 20 31 30 3b 0d 58 09 09 | 09 09 65 6c 73 65 0d 58 | 10;.X..|..else.X|
|000044b0| 09 09 09 09 09 73 61 2e | 73 69 6e 5f 61 64 64 72 |.....sa.|sin_addr|
|000044c0| 2e 73 5f 61 64 64 72 20 | 2b 3d 20 63 2d 27 41 27 |.s_addr |+= c-'A'|
|000044d0| 20 2b 20 31 30 3b 0d 58 | 09 09 09 7d 0d 58 09 09 | + 10;.X|...}.X..|
|000044e0| 09 69 66 20 28 63 20 3d | 3d 20 27 2e 27 29 0d 58 |.if (c =|= '.').X|
|000044f0| 09 09 09 09 66 6f 72 20 | 28 63 70 2b 2b 3b 20 69 |....for |(cp++; i|
|00004500| 73 64 69 67 69 74 28 63 | 20 3d 20 2a 63 70 29 3b |sdigit(c| = *cp);|
|00004510| 20 63 70 2b 2b 29 0d 58 | 09 09 09 09 09 73 61 2e | cp++).X|.....sa.|
|00004520| 73 69 6e 5f 70 6f 72 74 | 20 3d 20 73 61 2e 73 69 |sin_port| = sa.si|
|00004530| 6e 5f 70 6f 72 74 2a 31 | 30 20 2b 20 63 2d 27 30 |n_port*1|0 + c-'0|
|00004540| 27 3b 0d 58 09 09 09 69 | 66 20 28 73 61 2e 73 69 |';.X...i|f (sa.si|
|00004550| 6e 5f 61 64 64 72 2e 73 | 5f 61 64 64 72 20 3d 3d |n_addr.s|_addr ==|
|00004560| 20 30 20 7c 7c 20 73 61 | 2e 73 69 6e 5f 70 6f 72 | 0 || sa|.sin_por|
|00004570| 74 20 3d 3d 20 30 29 20 | 7b 0d 58 09 09 09 09 66 |t == 0) |{.X....f|
|00004580| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 0d 58 |printf(s|tderr,.X|
|00004590| 09 09 09 09 20 20 20 20 | 22 25 73 3a 20 62 61 64 |.... |"%s: bad|
|000045a0| 20 49 6e 74 65 72 6e 65 | 74 20 61 64 64 72 65 73 | Interne|t addres|
|000045b0| 73 3a 20 25 73 5c 6e 22 | 2c 0d 58 09 09 09 09 20 |s: %s\n"|,.X.... |
|000045c0| 20 20 20 61 72 67 76 30 | 2c 20 6f 70 74 61 72 67 | argv0|, optarg|
|000045d0| 29 3b 0d 58 09 09 09 09 | 72 65 74 75 72 6e 28 31 |);.X....|return(1|
|000045e0| 29 3b 0d 58 09 09 09 7d | 0d 58 09 09 09 73 61 2e |);.X...}|.X...sa.|
|000045f0| 73 69 6e 5f 61 64 64 72 | 2e 73 5f 61 64 64 72 20 |sin_addr|.s_addr |
|00004600| 3d 20 68 74 6f 6e 6c 28 | 73 61 2e 73 69 6e 5f 61 |= htonl(|sa.sin_a|
|00004610| 64 64 72 2e 73 5f 61 64 | 64 72 29 3b 0d 58 09 09 |ddr.s_ad|dr);.X..|
|00004620| 09 73 61 2e 73 69 6e 5f | 70 6f 72 74 20 3d 20 68 |.sa.sin_|port = h|
|00004630| 74 6f 6e 73 28 73 61 2e | 73 69 6e 5f 70 6f 72 74 |tons(sa.|sin_port|
|00004640| 29 3b 0d 58 09 09 09 73 | 69 6e 20 3d 20 26 73 61 |);.X...s|in = &sa|
|00004650| 3b 0d 58 09 09 09 62 72 | 65 61 6b 3b 0d 58 09 09 |;.X...br|eak;.X..|
|00004660| 63 61 73 65 20 27 77 27 | 3a 0d 58 09 09 09 77 66 |case 'w'|:.X...wf|
|00004670| 6c 61 67 2b 2b 3b 0d 58 | 09 09 09 74 65 72 6d 20 |lag++;.X|...term |
|00004680| 3d 20 6f 70 74 61 72 67 | 3b 0d 58 09 09 09 77 74 |= optarg|;.X...wt|
|00004690| 79 70 65 20 3d 20 75 77 | 5f 74 74 79 70 65 28 6f |ype = uw|_ttype(o|
|000046a0| 70 74 61 72 67 29 3b 0d | 58 09 09 09 62 72 65 61 |ptarg);.|X...brea|
|000046b0| 6b 3b 0d 58 09 09 63 61 | 73 65 20 27 74 27 3a 0d |k;.X..ca|se 't':.|
|000046c0| 58 09 09 09 74 69 74 6c | 65 20 3d 20 6f 70 74 61 |X...titl|e = opta|
|000046d0| 72 67 3b 0d 58 09 09 09 | 62 72 65 61 6b 3b 0d 58 |rg;.X...|break;.X|
|000046e0| 09 09 7d 0d 58 09 7d 0d | 58 0d 58 09 67 65 74 68 |..}.X.}.|X.X.geth|
|000046f0| 6f 73 74 6e 61 6d 65 28 | 68 6f 73 74 6e 61 6d 65 |ostname(|hostname|
|00004700| 2c 20 73 69 7a 65 6f 66 | 20 68 6f 73 74 6e 61 6d |, sizeof| hostnam|
|00004710| 65 29 3b 0d 58 09 69 66 | 20 28 74 69 74 6c 65 20 |e);.X.if| (title |
|00004720| 3d 3d 20 28 63 68 61 72 | 20 2a 29 30 29 20 7b 0d |== (char| *)0) {.|
|00004730| 58 09 09 2f 2a 0d 58 09 | 09 20 2a 20 49 66 20 74 |X../*.X.|. * If t|
|00004740| 68 65 72 65 20 77 61 73 | 20 6e 6f 20 22 2d 74 22 |here was| no "-t"|
|00004750| 20 61 72 67 75 6d 65 6e | 74 2c 20 74 68 65 6e 20 | argumen|t, then |
|00004760| 22 74 69 74 6c 65 22 20 | 77 69 6c 6c 20 73 74 69 |"title" |will sti|
|00004770| 6c 6c 0d 58 09 09 20 2a | 20 62 65 20 4e 55 4c 4c |ll.X.. *| be NULL|
|00004780| 2e 20 20 49 6e 20 74 68 | 69 73 20 63 61 73 65 20 |. In th|is case |
|00004790| 77 65 20 75 73 65 20 74 | 68 65 20 68 6f 73 74 20 |we use t|he host |
|000047a0| 6e 61 6d 65 2e 0d 58 09 | 09 20 2a 2f 0d 58 09 09 |name..X.|. */.X..|
|000047b0| 69 66 20 28 6f 70 74 69 | 6e 64 20 3d 3d 20 61 72 |if (opti|nd == ar|
|000047c0| 67 63 29 0d 58 09 09 09 | 74 69 74 6c 65 20 3d 20 |gc).X...|title = |
|000047d0| 68 6f 73 74 6e 61 6d 65 | 3b 0d 58 09 09 65 6c 73 |hostname|;.X..els|
|000047e0| 65 0d 58 09 09 09 74 69 | 74 6c 65 20 3d 20 61 72 |e.X...ti|tle = ar|
|000047f0| 67 76 5b 6f 70 74 69 6e | 64 5d 3b 0d 58 09 7d 0d |gv[optin|d];.X.}.|
|00004800| 58 09 0d 58 09 69 66 20 | 28 21 74 65 72 6d 29 20 |X..X.if |(!term) |
|00004810| 7b 0d 58 09 09 2f 2a 0d | 58 09 09 20 2a 20 49 66 |{.X../*.|X.. * If|
|00004820| 20 74 68 65 72 65 20 77 | 61 73 20 6e 6f 20 22 2d | there w|as no "-|
|00004830| 77 22 20 61 72 67 75 6d | 65 6e 74 2c 20 66 65 74 |w" argum|ent, fet|
|00004840| 63 68 20 74 68 65 20 77 | 69 6e 64 6f 77 0d 58 09 |ch the w|indow.X.|
|00004850| 09 20 2a 20 74 79 70 65 | 20 66 72 6f 6d 20 74 68 |. * type| from th|
|00004860| 65 20 65 6e 76 69 72 6f | 6e 6d 65 6e 74 2e 20 20 |e enviro|nment. |
|00004870| 49 66 20 74 68 61 74 20 | 66 61 69 6c 73 2c 20 75 |If that |fails, u|
|00004880| 73 65 0d 58 09 09 20 2a | 20 61 20 64 65 66 61 75 |se.X.. *| a defau|
|00004890| 6c 74 2e 0d 58 09 09 20 | 2a 2f 0d 58 09 09 69 66 |lt..X.. |*/.X..if|
|000048a0| 20 28 28 74 65 72 6d 3d | 67 65 74 65 6e 76 28 22 | ((term=|getenv("|
|000048b0| 54 45 52 4d 22 29 29 20 | 21 3d 20 28 63 68 61 72 |TERM")) |!= (char|
|000048c0| 20 2a 29 30 29 0d 58 09 | 09 09 77 74 79 70 65 20 | *)0).X.|..wtype |
|000048d0| 3d 20 75 77 5f 74 74 79 | 70 65 28 74 65 72 6d 29 |= uw_tty|pe(term)|
|000048e0| 3b 0d 58 09 09 65 6c 73 | 65 0d 58 09 09 09 77 74 |;.X..els|e.X...wt|
|000048f0| 79 70 65 20 3d 20 55 57 | 54 5f 41 44 4d 33 31 3b |ype = UW|T_ADM31;|
|00004900| 0d 58 09 7d 0d 58 0d 58 | 09 69 66 20 28 6f 70 74 |.X.}.X.X|.if (opt|
|00004910| 69 6e 64 20 3d 3d 20 61 | 72 67 63 2d 31 29 20 7b |ind == a|rgc-1) {|
|00004920| 0d 58 09 09 2f 2a 0d 58 | 09 09 20 2a 20 54 68 65 |.X../*.X|.. * The|
|00004930| 20 72 65 6d 61 69 6e 69 | 6e 67 20 61 72 67 75 6d | remaini|ng argum|
|00004940| 65 6e 74 20 69 73 20 74 | 68 65 20 68 6f 73 74 20 |ent is t|he host |
|00004950| 6e 61 6d 65 2e 20 20 46 | 6f 72 6b 20 61 6e 20 22 |name. F|ork an "|
|00004960| 72 73 68 22 0d 58 09 09 | 20 2a 20 74 6f 20 65 78 |rsh".X..| * to ex|
|00004970| 65 63 75 74 65 20 74 68 | 69 73 20 6f 6e 20 74 68 |ecute th|is on th|
|00004980| 65 20 72 65 6d 6f 74 65 | 20 6d 61 63 68 69 6e 65 |e remote| machine|
|00004990| 2e 0d 58 09 09 20 2a 2f | 0d 58 09 09 72 65 74 75 |..X.. */|.X..retu|
|000049a0| 72 6e 28 64 6f 72 65 6d | 6f 74 65 28 61 72 67 76 |rn(dorem|ote(argv|
|000049b0| 5b 6f 70 74 69 6e 64 5d | 2c 20 73 65 72 76 65 72 |[optind]|, server|
|000049c0| 2c 20 74 69 74 6c 65 2c | 20 74 65 72 6d 2c 20 6c |, title,| term, l|
|000049d0| 6f 67 69 6e 29 29 3b 0d | 58 09 7d 20 65 6c 73 65 |ogin));.|X.} else|
|000049e0| 20 69 66 20 28 6f 70 74 | 69 6e 64 20 3d 3d 20 61 | if (opt|ind == a|
|000049f0| 72 67 63 29 20 7b 0d 58 | 09 09 2f 2a 0d 58 09 09 |rgc) {.X|../*.X..|
|00004a00| 20 2a 20 54 68 65 72 65 | 20 61 72 65 20 6e 6f 20 | * There| are no |
|00004a10| 6f 74 68 65 72 20 61 72 | 67 75 6d 65 6e 74 73 2e |other ar|guments.|
|00004a20| 20 20 53 65 74 20 75 70 | 20 74 68 65 20 63 6f 6e | Set up| the con|
|00004a30| 6e 65 63 74 69 6f 6e 0d | 58 09 09 20 2a 20 74 6f |nection.|X.. * to|
|00004a40| 20 74 68 69 73 20 6d 61 | 63 68 69 6e 65 2e 0d 58 | this ma|chine..X|
|00004a50| 09 09 20 2a 2f 0d 58 09 | 09 72 65 74 75 72 6e 28 |.. */.X.|.return(|
|00004a60| 64 6f 6c 6f 63 61 6c 28 | 73 69 6e 2c 20 74 69 74 |dolocal(|sin, tit|
|00004a70| 6c 65 2c 20 77 74 79 70 | 65 2c 20 74 65 72 6d 29 |le, wtyp|e, term)|
|00004a80| 29 3b 0d 58 09 7d 20 65 | 6c 73 65 20 7b 0d 58 09 |);.X.} e|lse {.X.|
|00004a90| 09 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c |.fprintf|(stderr,|
|00004aa0| 0d 58 09 09 20 20 20 20 | 22 55 73 61 67 65 3a 20 |.X.. |"Usage: |
|00004ab0| 5c 22 25 73 20 5b 2d 74 | 74 69 74 6c 65 5d 20 5b |\"%s [-t|title] [|
|00004ac0| 2d 77 74 79 70 65 5d 20 | 5b 2d 6e 61 64 64 72 5d |-wtype] |[-naddr]|
|00004ad0| 20 5b 2d 6c 6c 6f 67 69 | 6e 5d 20 68 6f 73 74 5c | [-llogi|n] host\|
|00004ae0| 22 5c 6e 22 2c 0d 58 09 | 09 20 20 20 20 61 72 67 |"\n",.X.|. arg|
|00004af0| 76 30 29 3b 0d 58 09 09 | 72 65 74 75 72 6e 28 31 |v0);.X..|return(1|
|00004b00| 29 3b 0d 58 09 7d 0d 58 | 7d 0d 58 0d 58 64 6f 72 |);.X.}.X|}.X.Xdor|
|00004b10| 65 6d 6f 74 65 28 68 6f | 73 74 2c 20 73 65 72 76 |emote(ho|st, serv|
|00004b20| 65 72 2c 20 74 69 74 6c | 65 2c 20 74 65 72 6d 2c |er, titl|e, term,|
|00004b30| 20 6c 6f 67 69 6e 29 0d | 58 63 68 61 72 20 2a 68 | login).|Xchar *h|
|00004b40| 6f 73 74 3b 0d 58 63 68 | 61 72 20 2a 73 65 72 76 |ost;.Xch|ar *serv|
|00004b50| 65 72 3b 0d 58 63 68 61 | 72 20 2a 74 69 74 6c 65 |er;.Xcha|r *title|
|00004b60| 3b 0d 58 63 68 61 72 20 | 2a 74 65 72 6d 3b 0d 58 |;.Xchar |*term;.X|
|00004b70| 63 68 61 72 20 2a 6c 6f | 67 69 6e 3b 0d 58 7b 0d |char *lo|gin;.X{.|
|00004b80| 58 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 66 |X.regist|er int f|
|00004b90| 64 2c 20 69 2c 20 70 69 | 64 3b 0d 58 09 72 65 67 |d, i, pi|d;.X.reg|
|00004ba0| 69 73 74 65 72 20 63 68 | 61 72 20 2a 63 70 3b 0d |ister ch|ar *cp;.|
|00004bb0| 58 09 63 68 61 72 20 2a | 61 76 5b 31 36 5d 3b 0d |X.char *|av[16];.|
|00004bc0| 58 0d 58 09 2f 2a 0d 58 | 09 20 2a 20 49 6e 76 6f |X.X./*.X|. * Invo|
|00004bd0| 6b 65 20 61 20 72 65 6d | 6f 74 65 20 22 75 77 74 |ke a rem|ote "uwt|
|00004be0| 65 72 6d 22 20 76 69 61 | 20 22 72 73 68 22 2e 0d |erm" via| "rsh"..|
|00004bf0| 58 09 20 2a 2f 0d 58 09 | 69 20 3d 20 30 3b 0d 58 |X. */.X.|i = 0;.X|
|00004c00| 09 61 76 5b 69 2b 2b 5d | 20 3d 20 22 72 73 68 22 |.av[i++]| = "rsh"|
|00004c10| 3b 0d 58 09 61 76 5b 69 | 2b 2b 5d 20 3d 20 68 6f |;.X.av[i|++] = ho|
|00004c20| 73 74 3b 0d 58 09 61 76 | 5b 69 2b 2b 5d 20 3d 20 |st;.X.av|[i++] = |
|00004c30| 22 2d 6e 22 3b 0d 58 09 | 69 66 20 28 6c 6f 67 69 |"-n";.X.|if (logi|
|00004c40| 6e 20 21 3d 20 4e 55 4c | 4c 29 20 7b 0d 58 09 09 |n != NUL|L) {.X..|
|00004c50| 61 76 5b 69 2b 2b 5d 20 | 3d 20 22 2d 6c 22 3b 0d |av[i++] |= "-l";.|
|00004c60| 58 09 09 61 76 5b 69 2b | 2b 5d 20 3d 20 6c 6f 67 |X..av[i+|+] = log|
|00004c70| 69 6e 3b 0d 58 09 7d 0d | 58 09 61 76 5b 69 2b 2b |in;.X.}.|X.av[i++|
|00004c80| 5d 20 3d 20 55 57 54 45 | 52 4d 3b 0d 58 09 69 66 |] = UWTE|RM;.X.if|
|00004c90| 20 28 73 65 72 76 65 72 | 20 3d 3d 20 28 63 68 61 | (server| == (cha|
|00004ca0| 72 20 2a 29 30 29 20 7b | 0d 58 09 09 69 66 20 28 |r *)0) {|.X..if (|
|00004cb0| 28 73 65 72 76 65 72 20 | 3d 20 67 65 74 65 6e 76 |(server |= getenv|
|00004cc0| 28 22 55 57 5f 49 4e 45 | 54 22 29 29 20 3d 3d 20 |("UW_INE|T")) == |
|00004cd0| 28 63 68 61 72 20 2a 29 | 30 29 20 7b 0d 58 09 09 |(char *)|0) {.X..|
|00004ce0| 09 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c |.fprintf|(stderr,|
|00004cf0| 22 25 73 3a 20 43 61 6e | 27 74 20 66 69 6e 64 20 |"%s: Can|'t find |
|00004d00| 77 69 6e 64 6f 77 20 73 | 65 72 76 65 72 5c 6e 22 |window s|erver\n"|
|00004d10| 2c 61 72 67 76 30 29 3b | 0d 58 09 09 09 72 65 74 |,argv0);|.X...ret|
|00004d20| 75 72 6e 28 31 29 3b 0d | 58 09 09 7d 0d 58 09 7d |urn(1);.|X..}.X.}|
|00004d30| 0d 58 09 69 66 20 28 28 | 63 70 20 3d 20 6d 61 6c |.X.if ((|cp = mal|
|00004d40| 6c 6f 63 28 33 2b 73 74 | 72 6c 65 6e 28 73 65 72 |loc(3+st|rlen(ser|
|00004d50| 76 65 72 29 29 29 20 3d | 3d 20 28 63 68 61 72 20 |ver))) =|= (char |
|00004d60| 2a 29 30 29 20 7b 0d 58 | 09 09 66 70 72 69 6e 74 |*)0) {.X|..fprint|
|00004d70| 66 28 73 74 64 65 72 72 | 2c 20 22 25 73 3a 20 6f |f(stderr|, "%s: o|
|00004d80| 75 74 20 6f 66 20 6d 65 | 6d 6f 72 79 5c 6e 22 2c |ut of me|mory\n",|
|00004d90| 20 61 72 67 76 30 29 3b | 0d 58 09 09 72 65 74 75 | argv0);|.X..retu|
|00004da0| 72 6e 28 31 29 3b 0d 58 | 09 7d 0d 58 09 28 76 6f |rn(1);.X|.}.X.(vo|
|00004db0| 69 64 29 73 74 72 63 61 | 74 28 73 74 72 63 70 79 |id)strca|t(strcpy|
|00004dc0| 28 63 70 2c 20 22 2d 6e | 22 29 2c 20 73 65 72 76 |(cp, "-n|"), serv|
|00004dd0| 65 72 29 3b 0d 58 09 61 | 76 5b 69 2b 2b 5d 20 3d |er);.X.a|v[i++] =|
|00004de0| 20 63 70 3b 0d 58 0d 58 | 09 69 66 20 28 74 69 74 | cp;.X.X|.if (tit|
|00004df0| 6c 65 20 21 3d 20 28 63 | 68 61 72 20 2a 29 30 29 |le != (c|har *)0)|
|00004e00| 20 7b 0d 58 09 09 69 66 | 20 28 28 63 70 20 3d 20 | {.X..if| ((cp = |
|00004e10| 6d 61 6c 6c 6f 63 28 33 | 2b 73 74 72 6c 65 6e 28 |malloc(3|+strlen(|
|00004e20| 74 69 74 6c 65 29 29 29 | 20 3d 3d 20 28 63 68 61 |title)))| == (cha|
|00004e30| 72 20 2a 29 30 29 20 7b | 0d 58 09 09 09 66 70 72 |r *)0) {|.X...fpr|
|00004e40| 69 6e 74 66 28 73 74 64 | 65 72 72 2c 20 22 25 73 |intf(std|err, "%s|
|00004e50| 3a 20 6f 75 74 20 6f 66 | 20 6d 65 6d 6f 72 79 5c |: out of| memory\|
|00004e60| 6e 22 2c 20 61 72 67 76 | 30 29 3b 0d 58 09 09 09 |n", argv|0);.X...|
|00004e70| 72 65 74 75 72 6e 28 31 | 29 3b 0d 58 09 09 7d 0d |return(1|);.X..}.|
|00004e80| 58 09 09 28 76 6f 69 64 | 29 73 74 72 63 61 74 28 |X..(void|)strcat(|
|00004e90| 73 74 72 63 70 79 28 63 | 70 2c 20 22 2d 74 22 29 |strcpy(c|p, "-t")|
|00004ea0| 2c 20 74 69 74 6c 65 29 | 3b 0d 58 09 09 61 76 5b |, title)|;.X..av[|
|00004eb0| 69 2b 2b 5d 20 3d 20 63 | 70 3b 0d 58 09 7d 0d 58 |i++] = c|p;.X.}.X|
|00004ec0| 0d 58 09 69 66 20 28 74 | 65 72 6d 20 21 3d 20 28 |.X.if (t|erm != (|
|00004ed0| 63 68 61 72 20 2a 29 30 | 29 20 7b 0d 58 09 09 69 |char *)0|) {.X..i|
|00004ee0| 66 20 28 28 63 70 20 3d | 20 6d 61 6c 6c 6f 63 28 |f ((cp =| malloc(|
|00004ef0| 33 2b 73 74 72 6c 65 6e | 28 74 65 72 6d 29 29 29 |3+strlen|(term)))|
|00004f00| 20 3d 3d 20 28 63 68 61 | 72 20 2a 29 30 29 20 7b | == (cha|r *)0) {|
|00004f10| 0d 58 09 09 09 66 70 72 | 69 6e 74 66 28 73 74 64 |.X...fpr|intf(std|
|00004f20| 65 72 72 2c 20 22 25 73 | 3a 20 6f 75 74 20 6f 66 |err, "%s|: out of|
|00004f30| 20 6d 65 6d 6f 72 79 5c | 6e 22 2c 20 61 72 67 76 | memory\|n", argv|
|00004f40| 30 29 3b 0d 58 09 09 09 | 72 65 74 75 72 6e 28 31 |0);.X...|return(1|
|00004f50| 29 3b 0d 58 09 09 7d 0d | 58 09 09 28 76 6f 69 64 |);.X..}.|X..(void|
|00004f60| 29 73 74 72 63 61 74 28 | 73 74 72 63 70 79 28 63 |)strcat(|strcpy(c|
|00004f70| 70 2c 20 22 2d 77 22 29 | 2c 20 74 65 72 6d 29 3b |p, "-w")|, term);|
|00004f80| 0d 58 09 09 61 76 5b 69 | 2b 2b 5d 20 3d 20 63 70 |.X..av[i|++] = cp|
|00004f90| 3b 0d 58 09 7d 0d 58 0d | 58 09 61 76 5b 69 5d 20 |;.X.}.X.|X.av[i] |
|00004fa0| 3d 20 28 63 68 61 72 20 | 2a 29 30 3b 0d 58 0d 58 |= (char |*)0;.X.X|
|00004fb0| 09 66 6f 72 20 28 66 64 | 3d 67 65 74 64 74 61 62 |.for (fd|=getdtab|
|00004fc0| 6c 65 73 69 7a 65 28 29 | 2d 31 3b 20 66 64 20 3e |lesize()|-1; fd >|
|00004fd0| 20 32 3b 20 66 64 2d 2d | 29 0d 58 09 09 28 76 6f | 2; fd--|).X..(vo|
|00004fe0| 69 64 29 66 63 6e 74 6c | 28 66 64 2c 20 46 5f 53 |id)fcntl|(fd, F_S|
|00004ff0| 45 54 46 44 2c 20 31 29 | 3b 0d 58 09 28 76 6f 69 |ETFD, 1)|;.X.(voi|
|00005000| 64 29 65 78 65 63 76 70 | 28 61 76 5b 30 5d 2c 20 |d)execvp|(av[0], |
|00005010| 61 76 29 3b 0d 58 09 28 | 76 6f 69 64 29 65 78 65 |av);.X.(|void)exe|
|00005020| 63 76 28 22 2f 75 73 72 | 2f 75 63 62 2f 72 73 68 |cv("/usr|/ucb/rsh|
|00005030| 22 2c 20 61 76 29 3b 09 | 2f 2a 20 6c 61 73 74 2d |", av);.|/* last-|
|00005040| 64 69 74 63 68 20 74 72 | 79 20 2a 2f 0d 58 09 70 |ditch tr|y */.X.p|
|00005050| 65 72 72 6f 72 28 61 76 | 5b 30 5d 29 3b 0d 58 09 |error(av|[0]);.X.|
|00005060| 72 65 74 75 72 6e 28 31 | 29 3b 0d 58 7d 0d 58 0d |return(1|);.X}.X.|
|00005070| 58 09 09 09 0d 58 64 6f | 6c 6f 63 61 6c 28 73 69 |X....Xdo|local(si|
|00005080| 6e 2c 20 74 69 74 6c 65 | 2c 20 77 74 79 70 65 2c |n, title|, wtype,|
|00005090| 20 74 65 72 6d 29 0d 58 | 73 74 72 75 63 74 20 73 | term).X|struct s|
|000050a0| 6f 63 6b 61 64 64 72 5f | 69 6e 20 2a 73 69 6e 3b |ockaddr_|in *sin;|
|000050b0| 0d 58 63 68 61 72 20 2a | 74 69 74 6c 65 3b 0d 58 |.Xchar *|title;.X|
|000050c0| 75 77 74 79 70 65 5f 74 | 20 77 74 79 70 65 3b 0d |uwtype_t| wtype;.|
|000050d0| 58 63 68 61 72 20 2a 74 | 65 72 6d 3b 0d 58 7b 0d |Xchar *t|erm;.X{.|
|000050e0| 58 09 72 65 67 69 73 74 | 65 72 20 55 57 49 4e 20 |X.regist|er UWIN |
|000050f0| 75 77 69 6e 3b 0d 58 09 | 72 65 67 69 73 74 65 72 |uwin;.X.|register|
|00005100| 20 69 6e 74 20 66 64 3b | 0d 58 09 72 65 67 69 73 | int fd;|.X.regis|
|00005110| 74 65 72 20 69 6e 74 20 | 73 3b 0d 58 09 73 74 72 |ter int |s;.X.str|
|00005120| 75 63 74 20 70 74 79 64 | 65 73 63 20 70 74 3b 0d |uct ptyd|esc pt;.|
|00005130| 58 0d 58 09 2f 2a 0d 58 | 09 20 2a 20 43 72 65 61 |X.X./*.X|. * Crea|
|00005140| 74 65 20 61 6e 64 20 69 | 6e 69 74 69 61 6c 69 7a |te and i|nitializ|
|00005150| 65 20 61 20 70 73 65 75 | 64 6f 2d 74 65 72 6d 69 |e a pseu|do-termi|
|00005160| 6e 61 6c 2e 0d 58 09 20 | 2a 2f 0d 58 09 69 66 20 |nal..X. |*/.X.if |
|00005170| 28 6f 70 65 6e 70 74 79 | 28 26 70 74 29 20 3c 20 |(openpty|(&pt) < |
|00005180| 30 29 20 7b 0d 58 09 09 | 66 70 72 69 6e 74 66 28 |0) {.X..|fprintf(|
|00005190| 73 74 64 65 72 72 2c 20 | 22 4e 6f 20 70 73 65 75 |stderr, |"No pseu|
|000051a0| 64 6f 2d 74 65 72 6d 69 | 6e 61 6c 73 20 61 72 65 |do-termi|nals are|
|000051b0| 20 61 76 61 69 6c 61 62 | 6c 65 5c 6e 22 29 3b 0d | availab|le\n");.|
|000051c0| 58 09 09 72 65 74 75 72 | 6e 28 31 29 3b 0d 58 09 |X..retur|n(1);.X.|
|000051d0| 7d 0d 58 09 74 74 79 69 | 6e 69 74 28 70 74 2e 70 |}.X.ttyi|nit(pt.p|
|000051e0| 74 5f 74 66 64 29 3b 0d | 58 0d 58 0d 58 09 2f 2a |t_tfd);.|X.X.X./*|
|000051f0| 0d 58 09 20 2a 20 4d 61 | 6b 65 20 66 64 27 73 20 |.X. * Ma|ke fd's |
|00005200| 30 20 61 6e 64 20 31 20 | 62 65 20 22 2f 64 65 76 |0 and 1 |be "/dev|
|00005210| 2f 6e 75 6c 6c 22 2e 20 | 20 57 65 27 64 20 6c 69 |/null". | We'd li|
|00005220| 6b 65 20 74 6f 20 66 6f | 72 63 65 20 61 20 6b 6e |ke to fo|rce a kn|
|00005230| 6f 77 6e 0d 58 09 20 2a | 20 64 65 66 69 6e 69 74 |own.X. *| definit|
|00005240| 69 6f 6e 20 66 6f 72 20 | 66 64 20 32 20 61 74 20 |ion for |fd 2 at |
|00005250| 74 68 69 73 20 70 6f 69 | 6e 74 2c 20 62 75 74 20 |this poi|nt, but |
|00005260| 77 65 20 6d 61 79 20 6e | 65 65 64 20 69 74 20 66 |we may n|eed it f|
|00005270| 6f 72 0d 58 09 20 2a 20 | 75 77 5f 70 65 72 72 6f |or.X. * |uw_perro|
|00005280| 72 28 29 20 69 66 20 75 | 77 5f 6e 65 77 28 29 20 |r() if u|w_new() |
|00005290| 66 61 69 6c 73 2e 0d 58 | 09 20 2a 2f 0d 58 09 69 |fails..X|. */.X.i|
|000052a0| 66 20 28 28 66 64 20 3d | 20 6f 70 65 6e 28 22 2f |f ((fd =| open("/|
|000052b0| 64 65 76 2f 6e 75 6c 6c | 22 2c 20 4f 5f 52 44 57 |dev/null|", O_RDW|
|000052c0| 52 29 29 20 3e 3d 20 30 | 29 20 7b 09 2f 2a 20 73 |R)) >= 0|) {./* s|
|000052d0| 68 6f 75 6c 64 20 62 65 | 20 7a 65 72 6f 20 2a 2f |hould be| zero */|
|000052e0| 0d 58 09 09 69 66 20 28 | 66 64 20 21 3d 20 30 20 |.X..if (|fd != 0 |
|000052f0| 26 26 20 70 74 2e 70 74 | 5f 74 66 64 20 21 3d 20 |&& pt.pt|_tfd != |
|00005300| 30 20 26 26 20 70 74 2e | 70 74 5f 70 66 64 20 21 |0 && pt.|pt_pfd !|
|00005310| 3d 20 30 29 0d 58 09 09 | 09 64 75 70 32 28 66 64 |= 0).X..|.dup2(fd|
|00005320| 2c 20 30 29 3b 0d 58 09 | 09 69 66 20 28 66 64 20 |, 0);.X.|.if (fd |
|00005330| 21 3d 20 31 20 26 26 20 | 70 74 2e 70 74 5f 74 66 |!= 1 && |pt.pt_tf|
|00005340| 64 20 21 3d 20 31 20 26 | 26 20 70 74 2e 70 74 5f |d != 1 &|& pt.pt_|
|00005350| 70 66 64 20 21 3d 20 31 | 29 0d 58 09 09 09 64 75 |pfd != 1|).X...du|
|00005360| 70 32 28 66 64 2c 20 31 | 29 3b 0d 58 09 09 69 66 |p2(fd, 1|);.X..if|
|00005370| 20 28 66 64 20 3e 20 32 | 29 0d 58 09 09 09 28 76 | (fd > 2|).X...(v|
|00005380| 6f 69 64 29 63 6c 6f 73 | 65 28 66 64 29 3b 0d 58 |oid)clos|e(fd);.X|
|00005390| 09 7d 0d 58 0d 58 09 2f | 2a 0d 58 09 20 2a 20 43 |.}.X.X./|*.X. * C|
|000053a0| 72 65 61 74 65 20 61 6e | 64 20 74 69 74 6c 65 20 |reate an|d title |
|000053b0| 74 68 65 20 77 69 6e 64 | 6f 77 2e 20 20 4d 61 6b |the wind|ow. Mak|
|000053c0| 65 20 69 74 20 76 69 73 | 69 62 6c 65 2e 0d 58 09 |e it vis|ible..X.|
|000053d0| 20 2a 2f 0d 58 09 69 66 | 20 28 28 75 77 69 6e 20 | */.X.if| ((uwin |
|000053e0| 3d 20 75 77 5f 6e 65 77 | 28 77 74 79 70 65 2c 20 |= uw_new|(wtype, |
|000053f0| 73 69 6e 29 29 20 3d 3d | 20 28 55 57 49 4e 29 30 |sin)) ==| (UWIN)0|
|00005400| 29 20 7b 0d 58 09 09 75 | 77 5f 70 65 72 72 6f 72 |) {.X..u|w_perror|
|00005410| 28 61 72 67 76 30 2c 20 | 75 77 65 72 72 6e 6f 2c |(argv0, |uwerrno,|
|00005420| 20 65 72 72 6e 6f 29 3b | 0d 58 09 09 72 65 74 75 | errno);|.X..retu|
|00005430| 72 6e 28 31 29 3b 0d 58 | 09 7d 0d 58 09 28 76 6f |rn(1);.X|.}.X.(vo|
|00005440| 69 64 29 75 77 5f 73 74 | 69 74 6c 65 28 75 77 69 |id)uw_st|itle(uwi|
|00005450| 6e 2c 20 74 69 74 6c 65 | 29 3b 0d 58 09 28 76 6f |n, title|);.X.(vo|
|00005460| 69 64 29 75 77 5f 73 76 | 69 73 28 75 77 69 6e 2c |id)uw_sv|is(uwin,|
|00005470| 20 31 29 3b 0d 58 0d 58 | 09 2f 2a 0d 58 09 20 2a | 1);.X.X|./*.X. *|
|00005480| 20 57 65 20 6e 6f 20 6c | 6f 6e 67 65 72 20 68 61 | We no l|onger ha|
|00005490| 76 65 20 75 73 65 20 66 | 6f 72 20 66 64 20 32 2c |ve use f|or fd 2,|
|000054a0| 20 73 6f 20 6d 61 6b 65 | 20 69 74 20 22 2f 64 65 | so make| it "/de|
|000054b0| 76 2f 6e 75 6c 6c 22 20 | 28 74 68 65 0d 58 09 20 |v/null" |(the.X. |
|000054c0| 2a 20 73 61 6d 65 20 61 | 73 20 66 64 20 30 2e 0d |* same a|s fd 0..|
|000054d0| 58 09 20 2a 2f 0d 58 09 | 28 76 6f 69 64 29 64 75 |X. */.X.|(void)du|
|000054e0| 70 32 28 30 2c 20 32 29 | 3b 0d 58 0d 58 09 2f 2a |p2(0, 2)|;.X.X./*|
|000054f0| 0d 58 09 20 2a 20 41 64 | 6a 75 73 74 20 74 68 65 |.X. * Ad|just the|
|00005500| 20 65 6e 76 69 72 6f 6e | 6d 65 6e 74 20 74 6f 20 | environ|ment to |
|00005510| 63 6f 6e 74 61 69 6e 20 | 74 68 65 20 63 6f 72 72 |contain |the corr|
|00005520| 65 63 74 20 76 61 6c 75 | 65 73 20 6f 66 20 54 45 |ect valu|es of TE|
|00005530| 52 4d 2c 0d 58 09 20 2a | 20 55 57 5f 49 44 2c 20 |RM,.X. *| UW_ID, |
|00005540| 61 6e 64 20 55 57 5f 49 | 4e 45 54 2e 20 20 54 68 |and UW_I|NET. Th|
|00005550| 65 73 65 20 77 69 6c 6c | 20 62 65 20 69 6e 68 65 |ese will| be inhe|
|00005560| 72 69 74 65 64 20 62 79 | 20 74 68 65 20 63 68 69 |rited by| the chi|
|00005570| 6c 64 0d 58 09 20 2a 20 | 77 65 20 77 69 6c 6c 20 |ld.X. * |we will |
|00005580| 63 72 65 61 74 65 20 6e | 65 78 74 2e 0d 58 09 20 |create n|ext..X. |
|00005590| 2a 2f 0d 58 09 61 64 6a | 65 6e 76 28 74 65 72 6d |*/.X.adj|env(term|
|000055a0| 2c 20 73 69 6e 2c 20 55 | 57 5f 49 44 28 75 77 69 |, sin, U|W_ID(uwi|
|000055b0| 6e 29 29 3b 0d 58 0d 58 | 09 2f 2a 0d 58 09 20 2a |n));.X.X|./*.X. *|
|000055c0| 20 43 72 65 61 74 65 20 | 61 20 70 72 6f 63 65 73 | Create |a proces|
|000055d0| 73 20 74 6f 20 65 78 65 | 63 75 74 65 20 74 68 65 |s to exe|cute the|
|000055e0| 20 63 6f 6d 6d 61 6e 64 | 20 63 6f 6e 6e 65 63 74 | command| connect|
|000055f0| 65 64 20 74 6f 20 74 68 | 65 20 70 74 79 2e 0d 58 |ed to th|e pty..X|
|00005600| 09 20 2a 2f 0d 58 09 72 | 75 6e 63 6d 64 28 70 74 |. */.X.r|uncmd(pt|
|00005610| 2e 70 74 5f 74 66 64 2c | 20 70 74 2e 70 74 5f 74 |.pt_tfd,| pt.pt_t|
|00005620| 6e 61 6d 65 29 3b 0d 58 | 0d 58 09 2f 2a 0d 58 09 |name);.X|.X./*.X.|
|00005630| 20 2a 20 49 67 6e 6f 72 | 65 20 73 69 67 6e 61 6c | * Ignor|e signal|
|00005640| 73 20 74 68 61 74 20 6d | 69 67 68 74 20 63 61 75 |s that m|ight cau|
|00005650| 73 65 20 75 73 20 74 72 | 6f 75 62 6c 65 2e 20 20 |se us tr|ouble. |
|00005660| 57 65 20 64 6f 20 4e 4f | 54 20 69 67 6e 6f 72 65 |We do NO|T ignore|
|00005670| 0d 58 09 20 2a 20 53 49 | 47 54 53 54 50 20 73 6f |.X. * SI|GTSTP so|
|00005680| 20 74 68 61 74 20 74 68 | 65 20 75 73 65 72 20 63 | that th|e user c|
|00005690| 61 6e 20 6d 6f 76 65 20 | 75 73 20 66 72 6f 6d 20 |an move |us from |
|000056a0| 74 68 65 20 66 6f 72 65 | 67 72 6f 75 6e 64 20 69 |the fore|ground i|
|000056b0| 6e 74 6f 0d 58 09 20 2a | 20 74 68 65 20 62 61 63 |nto.X. *| the bac|
|000056c0| 6b 67 72 6f 75 6e 64 20 | 69 66 20 64 65 73 69 72 |kground |if desir|
|000056d0| 65 64 2e 0d 58 09 20 2a | 2f 0d 58 09 73 69 67 6e |ed..X. *|/.X.sign|
|000056e0| 61 6c 28 53 49 47 49 4e | 54 2c 20 53 49 47 5f 49 |al(SIGIN|T, SIG_I|
|000056f0| 47 4e 29 3b 0d 58 09 73 | 69 67 6e 61 6c 28 53 49 |GN);.X.s|ignal(SI|
|00005700| 47 51 55 49 54 2c 20 53 | 49 47 5f 49 47 4e 29 3b |GQUIT, S|IG_IGN);|
|00005710| 0d 58 09 73 69 67 6e 61 | 6c 28 53 49 47 43 48 4c |.X.signa|l(SIGCHL|
|00005720| 44 2c 20 64 65 61 64 6b | 69 64 29 3b 0d 58 0d 58 |D, deadk|id);.X.X|
|00005730| 23 69 66 20 64 65 66 69 | 6e 65 64 28 54 49 4f 43 |#if defi|ned(TIOC|
|00005740| 53 57 49 4e 53 5a 29 20 | 7c 7c 20 64 65 66 69 6e |SWINSZ) ||| defin|
|00005750| 65 64 28 54 49 4f 43 53 | 53 49 5a 45 29 0d 58 09 |ed(TIOCS|SIZE).X.|
|00005760| 2f 2a 0d 58 09 20 2a 20 | 49 6e 73 74 61 6c 6c 20 |/*.X. * |Install |
|00005770| 61 6e 20 6f 70 74 69 6f | 6e 20 68 61 6e 64 6c 69 |an optio|n handli|
|00005780| 6e 67 20 72 6f 75 74 69 | 6e 65 20 74 6f 20 63 61 |ng routi|ne to ca|
|00005790| 74 63 68 20 77 69 6e 64 | 6f 77 20 73 69 7a 65 0d |tch wind|ow size.|
|000057a0| 58 09 20 2a 20 63 68 61 | 6e 67 65 73 20 66 72 6f |X. * cha|nges fro|
|000057b0| 6d 20 74 68 65 20 4d 61 | 63 20 61 6e 64 20 6d 61 |m the Ma|c and ma|
|000057c0| 6b 65 20 74 68 65 20 61 | 70 70 72 6f 70 72 69 61 |ke the a|ppropria|
|000057d0| 74 65 20 63 68 61 6e 67 | 65 73 20 74 6f 0d 58 09 |te chang|es to.X.|
|000057e0| 20 2a 20 74 68 65 20 70 | 73 65 75 64 6f 2d 74 65 | * the p|seudo-te|
|000057f0| 72 6d 69 6e 61 6c 2e 0d | 58 09 20 2a 2f 0d 58 09 |rminal..|X. */.X.|
|00005800| 73 65 74 72 65 73 69 7a | 65 28 75 77 69 6e 2c 20 |setresiz|e(uwin, |
|00005810| 70 74 2e 70 74 5f 70 66 | 64 29 3b 0d 58 23 65 6e |pt.pt_pf|d);.X#en|
|00005820| 64 69 66 0d 58 0d 58 09 | 2f 2a 0d 58 09 20 2a 20 |dif.X.X.|/*.X. * |
|00005830| 43 6c 6f 73 65 20 74 68 | 65 20 73 6c 61 76 65 20 |Close th|e slave |
|00005840| 73 69 64 65 20 6f 66 20 | 74 68 65 20 70 74 79 2e |side of |the pty.|
|00005850| 20 20 43 6f 70 79 20 64 | 61 74 61 20 62 65 74 77 | Copy d|ata betw|
|00005860| 65 65 6e 20 74 68 65 20 | 70 74 79 0d 58 09 20 2a |een the |pty.X. *|
|00005870| 20 61 6e 64 20 74 68 65 | 20 77 69 6e 64 6f 77 2e | and the| window.|
|00005880| 20 20 54 68 65 20 72 65 | 74 75 72 6e 20 76 61 6c | The re|turn val|
|00005890| 75 65 20 66 72 6f 6d 20 | 63 6f 70 79 28 29 20 69 |ue from |copy() i|
|000058a0| 73 20 74 68 65 20 65 78 | 69 74 0d 58 09 20 2a 20 |s the ex|it.X. * |
|000058b0| 73 74 61 74 75 73 2e 0d | 58 09 20 2a 2f 0d 58 09 |status..|X. */.X.|
|000058c0| 28 76 6f 69 64 29 63 6c | 6f 73 65 28 70 74 2e 70 |(void)cl|ose(pt.p|
|000058d0| 74 5f 74 66 64 29 3b 0d | 58 09 73 20 3d 20 63 6f |t_tfd);.|X.s = co|
|000058e0| 70 79 28 70 74 2e 70 74 | 5f 70 66 64 2c 20 55 57 |py(pt.pt|_pfd, UW|
|000058f0| 5f 44 41 54 41 46 44 28 | 75 77 69 6e 29 29 3b 0d |_DATAFD(|uwin));.|
|00005900| 58 09 75 77 5f 6b 69 6c | 6c 28 75 77 69 6e 29 3b |X.uw_kil|l(uwin);|
|00005910| 0d 58 09 72 65 74 75 72 | 6e 28 73 29 3b 0d 58 7d |.X.retur|n(s);.X}|
|00005920| 0d 58 0d 58 74 74 79 69 | 6e 69 74 28 70 74 79 66 |.X.Xttyi|nit(ptyf|
|00005930| 64 29 0d 58 72 65 67 69 | 73 74 65 72 20 69 6e 74 |d).Xregi|ster int|
|00005940| 20 70 74 79 66 64 3b 0d | 58 7b 0d 58 09 72 65 67 | ptyfd;.|X{.X.reg|
|00005950| 69 73 74 65 72 20 69 6e | 74 20 74 74 79 66 64 3b |ister in|t ttyfd;|
|00005960| 0d 58 09 73 74 72 75 63 | 74 20 73 67 74 74 79 62 |.X.struc|t sgttyb|
|00005970| 20 73 67 3b 0d 58 09 73 | 74 72 75 63 74 20 74 63 | sg;.X.s|truct tc|
|00005980| 68 61 72 73 20 74 63 3b | 0d 58 09 73 74 72 75 63 |hars tc;|.X.struc|
|00005990| 74 20 6c 74 63 68 61 72 | 73 20 6c 74 63 3b 0d 58 |t ltchar|s ltc;.X|
|000059a0| 09 69 6e 74 20 6c 64 69 | 73 63 3b 0d 58 09 69 6e |.int ldi|sc;.X.in|
|000059b0| 74 20 6c 6d 6f 64 65 3b | 0d 58 0d 58 09 2f 2a 0d |t lmode;|.X.X./*.|
|000059c0| 58 09 20 2a 20 49 6e 69 | 74 69 61 6c 69 7a 65 20 |X. * Ini|tialize |
|000059d0| 74 68 65 20 6d 6f 64 65 | 73 20 6f 66 20 74 68 65 |the mode|s of the|
|000059e0| 20 74 65 72 6d 69 6e 61 | 6c 20 77 68 6f 73 65 20 | termina|l whose |
|000059f0| 66 69 6c 65 20 64 65 73 | 63 72 69 70 74 6f 72 0d |file des|criptor.|
|00005a00| 58 09 20 2a 20 69 73 20 | 22 70 74 79 66 64 22 20 |X. * is |"ptyfd" |
|00005a10| 74 6f 20 74 68 65 20 73 | 61 6d 65 20 6d 6f 64 65 |to the s|ame mode|
|00005a20| 73 20 61 73 20 74 68 65 | 20 63 75 72 72 65 6e 74 |s as the| current|
|00005a30| 20 74 65 72 6d 69 6e 61 | 6c 2e 20 20 49 66 20 74 | termina|l. If t|
|00005a40| 68 65 72 65 0d 58 09 20 | 2a 20 69 73 6e 27 74 20 |here.X. |* isn't |
|00005a50| 61 20 22 63 75 72 72 65 | 6e 74 20 74 65 72 6d 69 |a "curre|nt termi|
|00005a60| 6e 61 6c 22 20 68 61 6e | 64 79 2c 20 74 68 65 6e |nal" han|dy, then|
|00005a70| 20 75 73 65 20 68 61 72 | 64 63 6f 64 65 64 20 64 | use har|dcoded d|
|00005a80| 65 66 61 75 6c 74 73 2e | 0d 58 09 20 2a 2f 0d 58 |efaults.|.X. */.X|
|00005a90| 09 66 6f 72 20 28 74 74 | 79 66 64 3d 30 3b 20 74 |.for (tt|yfd=0; t|
|00005aa0| 74 79 66 64 20 3c 20 33 | 20 26 26 20 69 6f 63 74 |tyfd < 3| && ioct|
|00005ab0| 6c 28 74 74 79 66 64 2c | 20 54 49 4f 43 47 45 54 |l(ttyfd,| TIOCGET|
|00005ac0| 44 2c 20 26 6c 64 69 73 | 63 29 20 3c 20 30 3b 20 |D, &ldis|c) < 0; |
|00005ad0| 74 74 79 66 64 2b 2b 29 | 0d 58 09 09 3b 0d 58 09 |ttyfd++)|.X..;.X.|
|00005ae0| 69 66 20 28 74 74 79 66 | 64 20 3c 20 33 29 20 7b |if (ttyf|d < 3) {|
|00005af0| 0d 58 09 09 28 76 6f 69 | 64 29 69 6f 63 74 6c 28 |.X..(voi|d)ioctl(|
|00005b00| 74 74 79 66 64 2c 20 54 | 49 4f 43 47 45 54 50 2c |ttyfd, T|IOCGETP,|
|00005b10| 20 26 73 67 29 3b 0d 58 | 09 09 28 76 6f 69 64 29 | &sg);.X|..(void)|
|00005b20| 69 6f 63 74 6c 28 74 74 | 79 66 64 2c 20 54 49 4f |ioctl(tt|yfd, TIO|
|00005b30| 43 47 45 54 43 2c 20 26 | 74 63 29 3b 0d 58 09 09 |CGETC, &|tc);.X..|
|00005b40| 28 76 6f 69 64 29 69 6f | 63 74 6c 28 74 74 79 66 |(void)io|ctl(ttyf|
|00005b50| 64 2c 20 54 49 4f 43 47 | 4c 54 43 2c 20 26 6c 74 |d, TIOCG|LTC, &lt|
|00005b60| 63 29 3b 0d 58 09 09 28 | 76 6f 69 64 29 69 6f 63 |c);.X..(|void)ioc|
|00005b70| 74 6c 28 74 74 79 66 64 | 2c 20 54 49 4f 43 4c 47 |tl(ttyfd|, TIOCLG|
|00005b80| 45 54 2c 20 26 6c 6d 6f | 64 65 29 3b 0d 58 09 7d |ET, &lmo|de);.X.}|
|00005b90| 20 65 6c 73 65 20 7b 0d | 58 09 09 6c 64 69 73 63 | else {.|X..ldisc|
|00005ba0| 20 3d 20 4e 54 54 59 44 | 49 53 43 3b 0d 58 0d 58 | = NTTYD|ISC;.X.X|
|00005bb0| 09 09 73 67 2e 73 67 5f | 69 73 70 65 65 64 20 3d |..sg.sg_|ispeed =|
|00005bc0| 20 73 67 2e 73 67 5f 6f | 73 70 65 65 64 20 3d 20 | sg.sg_o|speed = |
|00005bd0| 31 33 3b 20 2f 2a 20 64 | 6f 65 73 6e 27 74 20 72 |13; /* d|oesn't r|
|00005be0| 65 61 6c 6c 79 20 6d 61 | 74 74 65 72 20 2a 2f 0d |eally ma|tter */.|
|00005bf0| 58 09 09 73 67 2e 73 67 | 5f 65 72 61 73 65 20 3d |X..sg.sg|_erase =|
|00005c00| 20 30 31 37 37 3b 09 2f | 2a 20 75 67 68 20 2a 2f | 0177;./|* ugh */|
|00005c10| 0d 58 09 09 73 67 2e 73 | 67 5f 6b 69 6c 6c 20 3d |.X..sg.s|g_kill =|
|00005c20| 20 43 54 4c 28 27 75 27 | 29 3b 09 2f 2a 20 75 67 | CTL('u'|);./* ug|
|00005c30| 68 20 2a 2f 0d 58 09 09 | 73 67 2e 73 67 5f 66 6c |h */.X..|sg.sg_fl|
|00005c40| 61 67 73 20 3d 20 45 43 | 48 4f 7c 43 52 4d 4f 44 |ags = EC|HO|CRMOD|
|00005c50| 7c 41 4e 59 50 3b 0d 58 | 0d 58 09 09 74 63 2e 74 ||ANYP;.X|.X..tc.t|
|00005c60| 5f 69 6e 74 72 63 20 3d | 20 43 54 4c 28 27 63 27 |_intrc =| CTL('c'|
|00005c70| 29 3b 09 2f 2a 20 79 75 | 63 6b 2c 20 73 68 6f 75 |);./* yu|ck, shou|
|00005c80| 6c 64 20 62 65 20 30 31 | 37 37 20 2a 2f 0d 58 09 |ld be 01|77 */.X.|
|00005c90| 09 74 63 2e 74 5f 71 75 | 69 74 63 20 3d 20 43 54 |.tc.t_qu|itc = CT|
|00005ca0| 4c 28 27 5c 5c 27 29 3b | 0d 58 09 09 74 63 2e 74 |L('\\');|.X..tc.t|
|00005cb0| 5f 73 74 61 72 74 63 20 | 3d 20 43 54 4c 28 27 71 |_startc |= CTL('q|
|00005cc0| 27 29 3b 0d 58 09 09 74 | 63 2e 74 5f 73 74 6f 70 |');.X..t|c.t_stop|
|00005cd0| 63 20 3d 20 43 54 4c 28 | 27 73 27 29 3b 0d 58 09 |c = CTL(|'s');.X.|
|00005ce0| 09 74 63 2e 74 5f 65 6f | 66 63 20 3d 20 43 54 4c |.tc.t_eo|fc = CTL|
|00005cf0| 28 27 64 27 29 3b 0d 58 | 09 09 74 63 2e 74 5f 62 |('d');.X|..tc.t_b|
|00005d00| 72 6b 63 20 3d 20 2d 31 | 3b 0d 58 0d 58 09 09 6c |rkc = -1|;.X.X..l|
|00005d10| 74 63 2e 74 5f 73 75 73 | 70 63 20 3d 20 43 54 4c |tc.t_sus|pc = CTL|
|00005d20| 28 27 7a 27 29 3b 0d 58 | 09 09 6c 74 63 2e 74 5f |('z');.X|..ltc.t_|
|00005d30| 64 73 75 73 70 63 20 3d | 20 43 54 4c 28 27 79 27 |dsuspc =| CTL('y'|
|00005d40| 29 3b 0d 58 09 09 6c 74 | 63 2e 74 5f 72 70 72 6e |);.X..lt|c.t_rprn|
|00005d50| 74 63 20 3d 20 43 54 4c | 28 27 72 27 29 3b 0d 58 |tc = CTL|('r');.X|
|00005d60| 09 09 6c 74 63 2e 74 5f | 66 6c 75 73 68 63 20 3d |..ltc.t_|flushc =|
|00005d70| 20 43 54 4c 28 27 6f 27 | 29 3b 0d 58 09 09 6c 74 | CTL('o'|);.X..lt|
|00005d80| 63 2e 74 5f 77 65 72 61 | 73 63 20 3d 20 43 54 4c |c.t_wera|sc = CTL|
|00005d90| 28 27 77 27 29 3b 0d 58 | 09 09 6c 74 63 2e 74 5f |('w');.X|..ltc.t_|
|00005da0| 6c 6e 65 78 74 63 20 3d | 20 43 54 4c 28 27 76 27 |lnextc =| CTL('v'|
|00005db0| 29 3b 0d 58 0d 58 09 09 | 6c 6d 6f 64 65 20 3d 20 |);.X.X..|lmode = |
|00005dc0| 4c 43 52 54 42 53 7c 4c | 43 52 54 45 52 41 7c 4c |LCRTBS|L|CRTERA|L|
|00005dd0| 43 52 54 4b 49 4c 7c 4c | 43 54 4c 45 43 48 3b 0d |CRTKIL|L|CTLECH;.|
|00005de0| 58 09 7d 0d 58 09 28 76 | 6f 69 64 29 69 6f 63 74 |X.}.X.(v|oid)ioct|
|00005df0| 6c 28 70 74 79 66 64 2c | 20 54 49 4f 43 53 45 54 |l(ptyfd,| TIOCSET|
|00005e00| 44 2c 20 26 6c 64 69 73 | 63 29 3b 0d 58 09 28 76 |D, &ldis|c);.X.(v|
|00005e10| 6f 69 64 29 69 6f 63 74 | 6c 28 70 74 79 66 64 2c |oid)ioct|l(ptyfd,|
|00005e20| 20 54 49 4f 43 53 45 54 | 50 2c 20 26 73 67 29 3b | TIOCSET|P, &sg);|
|00005e30| 0d 58 09 28 76 6f 69 64 | 29 69 6f 63 74 6c 28 70 |.X.(void|)ioctl(p|
|00005e40| 74 79 66 64 2c 20 54 49 | 4f 43 53 45 54 43 2c 20 |tyfd, TI|OCSETC, |
|00005e50| 26 74 63 29 3b 0d 58 09 | 28 76 6f 69 64 29 69 6f |&tc);.X.|(void)io|
|00005e60| 63 74 6c 28 70 74 79 66 | 64 2c 20 54 49 4f 43 53 |ctl(ptyf|d, TIOCS|
|00005e70| 4c 54 43 2c 20 26 6c 74 | 63 29 3b 0d 58 09 28 76 |LTC, &lt|c);.X.(v|
|00005e80| 6f 69 64 29 69 6f 63 74 | 6c 28 70 74 79 66 64 2c |oid)ioct|l(ptyfd,|
|00005e90| 20 54 49 4f 43 4c 53 45 | 54 2c 20 26 6c 6d 6f 64 | TIOCLSE|T, &lmod|
|00005ea0| 65 29 3b 0d 58 7d 0d 58 | 0d 58 61 64 6a 65 6e 76 |e);.X}.X|.Xadjenv|
|00005eb0| 28 74 65 72 6d 2c 20 73 | 69 6e 2c 20 77 69 64 29 |(term, s|in, wid)|
|00005ec0| 0d 58 63 68 61 72 20 2a | 74 65 72 6d 3b 0d 58 73 |.Xchar *|term;.Xs|
|00005ed0| 74 72 75 63 74 20 73 6f | 63 6b 61 64 64 72 5f 69 |truct so|ckaddr_i|
|00005ee0| 6e 20 2a 73 69 6e 3b 0d | 58 75 77 69 64 5f 74 20 |n *sin;.|Xuwid_t |
|00005ef0| 77 69 64 3b 0d 58 7b 0d | 58 09 63 68 61 72 20 2a |wid;.X{.|X.char *|
|00005f00| 65 6e 76 5b 34 5d 3b 0d | 58 09 73 74 61 74 69 63 |env[4];.|X.static|
|00005f10| 20 63 68 61 72 20 74 74 | 79 70 65 5b 73 69 7a 65 | char tt|ype[size|
|00005f20| 6f 66 20 22 54 45 52 4d | 3d 22 20 2b 20 31 36 5d |of "TERM|=" + 16]|
|00005f30| 3b 0d 58 09 73 74 61 74 | 69 63 20 63 68 61 72 20 |;.X.stat|ic char |
|00005f40| 69 6e 65 74 5b 73 69 7a | 65 6f 66 20 49 4e 45 54 |inet[siz|eof INET|
|00005f50| 5f 45 4e 56 20 2b 20 31 | 36 5d 3b 0d 58 09 73 74 |_ENV + 1|6];.X.st|
|00005f60| 61 74 69 63 20 63 68 61 | 72 20 69 64 73 74 72 5b |atic cha|r idstr[|
|00005f70| 73 69 7a 65 6f 66 20 22 | 55 57 5f 49 44 3d 22 20 |sizeof "|UW_ID=" |
|00005f80| 2b 20 32 30 5d 3b 0d 58 | 0d 58 09 2f 2a 0d 58 09 |+ 20];.X|.X./*.X.|
|00005f90| 20 2a 20 52 65 64 65 66 | 69 6e 65 20 74 68 65 20 | * Redef|ine the |
|00005fa0| 65 6e 76 69 72 6f 6e 6d | 65 6e 74 20 76 61 72 69 |environm|ent vari|
|00005fb0| 61 62 6c 65 20 55 57 5f | 49 44 2e 20 20 52 65 64 |able UW_|ID. Red|
|00005fc0| 65 66 69 6e 65 20 55 57 | 5f 49 4e 45 54 0d 58 09 |efine UW|_INET.X.|
|00005fd0| 20 2a 20 69 66 20 22 73 | 69 6e 22 20 69 73 20 6e | * if "s|in" is n|
|00005fe0| 6f 6e 2d 4e 55 4c 4c 2e | 20 20 52 65 64 65 66 69 |on-NULL.| Redefi|
|00005ff0| 6e 65 20 54 45 52 4d 2e | 0d 58 09 20 2a 2f 0d 58 |ne TERM.|.X. */.X|
|00006000| 09 28 76 6f 69 64 29 73 | 70 72 69 6e 74 66 28 74 |.(void)s|printf(t|
|00006010| 74 79 70 65 2c 20 22 54 | 45 52 4d 3d 25 2e 31 35 |type, "T|ERM=%.15|
|00006020| 73 22 2c 20 74 65 72 6d | 29 3b 0d 58 09 65 6e 76 |s", term|);.X.env|
|00006030| 5b 30 5d 20 3d 20 74 74 | 79 70 65 3b 0d 58 09 0d |[0] = tt|ype;.X..|
|00006040| 58 09 28 76 6f 69 64 29 | 73 70 72 69 6e 74 66 28 |X.(void)|sprintf(|
|00006050| 69 64 73 74 72 2c 20 22 | 55 57 5f 49 44 3d 25 6c |idstr, "|UW_ID=%l|
|00006060| 64 22 2c 20 77 69 64 29 | 3b 0d 58 09 65 6e 76 5b |d", wid)|;.X.env[|
|00006070| 31 5d 20 3d 20 69 64 73 | 74 72 3b 0d 58 0d 58 09 |1] = ids|tr;.X.X.|
|00006080| 69 66 20 28 73 69 6e 20 | 21 3d 20 4e 55 4c 4c 29 |if (sin |!= NULL)|
|00006090| 20 7b 0d 58 09 09 28 76 | 6f 69 64 29 73 70 72 69 | {.X..(v|oid)spri|
|000060a0| 6e 74 66 28 69 6e 65 74 | 2c 20 22 25 73 3d 25 30 |ntf(inet|, "%s=%0|
|000060b0| 38 6c 78 2e 25 64 22 2c | 20 49 4e 45 54 5f 45 4e |8lx.%d",| INET_EN|
|000060c0| 56 2c 0d 58 09 09 20 20 | 20 20 6e 74 6f 68 6c 28 |V,.X.. | ntohl(|
|000060d0| 73 69 6e 2d 3e 73 69 6e | 5f 61 64 64 72 2e 73 5f |sin->sin|_addr.s_|
|000060e0| 61 64 64 72 29 2c 20 6e | 74 6f 68 73 28 73 69 6e |addr), n|tohs(sin|
|000060f0| 2d 3e 73 69 6e 5f 70 6f | 72 74 29 29 3b 0d 58 09 |->sin_po|rt));.X.|
|00006100| 09 65 6e 76 5b 32 5d 20 | 3d 20 69 6e 65 74 3b 0d |.env[2] |= inet;.|
|00006110| 58 09 09 65 6e 76 5b 33 | 5d 20 3d 20 28 63 68 61 |X..env[3|] = (cha|
|00006120| 72 20 2a 29 30 3b 0d 58 | 09 7d 20 20 65 6c 73 65 |r *)0;.X|.} else|
|00006130| 0d 58 09 09 65 6e 76 5b | 32 5d 20 3d 20 28 63 68 |.X..env[|2] = (ch|
|00006140| 61 72 20 2a 29 30 3b 0d | 58 09 65 6e 76 5f 73 65 |ar *)0;.|X.env_se|
|00006150| 74 28 65 6e 76 29 3b 0d | 58 7d 0d 58 0d 58 72 75 |t(env);.|X}.X.Xru|
|00006160| 6e 63 6d 64 28 66 64 2c | 20 74 6e 61 6d 65 29 0d |ncmd(fd,| tname).|
|00006170| 58 69 6e 74 20 66 64 3b | 0d 58 63 68 61 72 20 2a |Xint fd;|.Xchar *|
|00006180| 74 6e 61 6d 65 3b 0d 58 | 7b 0d 58 09 72 65 67 69 |tname;.X|{.X.regi|
|00006190| 73 74 65 72 20 69 6e 74 | 20 70 69 64 3b 0d 58 09 |ster int| pid;.X.|
|000061a0| 72 65 67 69 73 74 65 72 | 20 63 68 61 72 20 2a 73 |register| char *s|
|000061b0| 68 65 6c 6c 3b 0d 58 0d | 58 09 2f 2a 0d 58 09 20 |hell;.X.|X./*.X. |
|000061c0| 2a 20 46 69 67 75 72 65 | 20 6f 75 74 20 74 68 65 |* Figure| out the|
|000061d0| 20 6e 61 6d 65 20 6f 66 | 20 74 68 65 20 75 73 65 | name of| the use|
|000061e0| 72 27 73 20 73 68 65 6c | 6c 2e 20 20 49 66 20 75 |r's shel|l. If u|
|000061f0| 6e 6b 6e 6f 77 6e 2c 0d | 58 09 20 2a 20 75 73 65 |nknown,.|X. * use|
|00006200| 20 61 20 64 65 66 61 75 | 6c 74 2e 0d 58 09 20 2a | a defau|lt..X. *|
|00006210| 2f 0d 58 09 69 66 20 28 | 28 73 68 65 6c 6c 20 3d |/.X.if (|(shell =|
|00006220| 20 67 65 74 65 6e 76 28 | 22 53 48 45 4c 4c 22 29 | getenv(|"SHELL")|
|00006230| 29 20 3d 3d 20 28 63 68 | 61 72 20 2a 29 30 29 0d |) == (ch|ar *)0).|
|00006240| 58 09 09 73 68 65 6c 6c | 20 3d 20 22 2f 62 69 6e |X..shell| = "/bin|
|00006250| 2f 73 68 22 3b 0d 58 0d | 58 09 2f 2a 0d 58 09 20 |/sh";.X.|X./*.X. |
|00006260| 2a 20 46 6f 72 6b 20 61 | 20 6e 65 77 20 70 72 6f |* Fork a| new pro|
|00006270| 63 65 73 73 20 61 6e 64 | 20 61 74 74 61 63 68 20 |cess and| attach |
|00006280| 22 66 64 22 20 74 6f 20 | 66 64 27 73 20 30 2c 20 |"fd" to |fd's 0, |
|00006290| 31 2c 20 61 6e 64 20 32 | 20 6f 66 0d 58 09 20 2a |1, and 2| of.X. *|
|000062a0| 20 74 68 61 74 20 6e 65 | 77 20 70 72 6f 63 65 73 | that ne|w proces|
|000062b0| 73 2e 20 20 44 69 73 61 | 73 73 6f 63 69 61 74 65 |s. Disa|ssociate|
|000062c0| 20 74 68 65 20 63 75 72 | 72 65 6e 74 20 63 6f 6e | the cur|rent con|
|000062d0| 74 72 6f 6c 6c 69 6e 67 | 0d 58 09 20 2a 20 74 65 |trolling|.X. * te|
|000062e0| 72 6d 69 6e 61 6c 20 61 | 6e 64 20 61 74 74 61 63 |rminal a|nd attac|
|000062f0| 68 20 74 68 65 20 6e 65 | 77 20 6f 6e 65 20 28 77 |h the ne|w one (w|
|00006300| 68 6f 73 65 20 6e 61 6d | 65 20 69 73 20 22 74 6e |hose nam|e is "tn|
|00006310| 61 6d 65 22 29 2e 0d 58 | 09 20 2a 2f 0d 58 09 77 |ame")..X|. */.X.w|
|00006320| 68 69 6c 65 20 28 28 70 | 69 64 20 3d 20 66 6f 72 |hile ((p|id = for|
|00006330| 6b 28 29 29 20 3c 20 30 | 29 0d 58 09 09 73 6c 65 |k()) < 0|).X..sle|
|00006340| 65 70 28 35 29 3b 0d 58 | 09 69 66 20 28 70 69 64 |ep(5);.X|.if (pid|
|00006350| 20 3d 3d 20 30 29 20 7b | 0d 58 09 09 69 66 20 28 | == 0) {|.X..if (|
|00006360| 66 64 20 21 3d 20 30 29 | 0d 58 09 09 09 64 75 70 |fd != 0)|.X...dup|
|00006370| 32 28 66 64 2c 20 30 29 | 3b 0d 58 09 09 69 66 20 |2(fd, 0)|;.X..if |
|00006380| 28 66 64 20 21 3d 20 31 | 29 0d 58 09 09 09 64 75 |(fd != 1|).X...du|
|00006390| 70 32 28 66 64 2c 20 31 | 29 3b 0d 58 09 09 69 66 |p2(fd, 1|);.X..if|
|000063a0| 20 28 66 64 20 21 3d 20 | 32 29 0d 58 09 09 09 64 | (fd != |2).X...d|
|000063b0| 75 70 32 28 66 64 2c 20 | 32 29 3b 0d 58 09 09 69 |up2(fd, |2);.X..i|
|000063c0| 66 20 28 28 66 64 20 3d | 20 6f 70 65 6e 28 22 2f |f ((fd =| open("/|
|000063d0| 64 65 76 2f 74 74 79 22 | 2c 20 4f 5f 52 44 57 52 |dev/tty"|, O_RDWR|
|000063e0| 29 29 20 3e 3d 20 30 29 | 20 7b 0d 58 09 09 09 28 |)) >= 0)| {.X...(|
|000063f0| 76 6f 69 64 29 69 6f 63 | 74 6c 28 66 64 2c 20 54 |void)ioc|tl(fd, T|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.