home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume4 / uemacs / part4 < prev    next >
SHell self-extracting ARchive  |  1986-11-30  |  55.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: SHell self-extracting ARchive (archive/shar).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news or mail text default
99% file C source text default
98% file assembler source text default (weak)
97% file assembler source, ASCII text default (weak)
100% TrID E-Mail message (Var. 2) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/rfc822 default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 67 65 | 6e 72 61 64 21 64 65 63 |From: ge|nrad!dec|
|00000010| 76 61 78 21 6d 69 6e 6f | 77 20 28 4d 61 72 74 69 |vax!mino|w (Marti|
|00000020| 6e 20 4d 69 6e 6f 77 29 | 0a 53 75 62 6a 65 63 74 |n Minow)|.Subject|
|00000030| 3a 20 4d 69 63 72 6f 65 | 6d 61 63 73 20 28 50 61 |: Microe|macs (Pa|
|00000040| 72 74 20 34 20 6f 66 20 | 36 29 0a 4e 65 77 73 67 |rt 4 of |6).Newsg|
|00000050| 72 6f 75 70 73 3a 20 6d | 6f 64 2e 73 6f 75 72 63 |roups: m|od.sourc|
|00000060| 65 73 0a 41 70 70 72 6f | 76 65 64 3a 20 6a 70 6e |es.Appro|ved: jpn|
|00000070| 40 70 61 6e 64 61 2e 55 | 55 43 50 0a 0a 4d 6f 64 |@panda.U|UCP..Mod|
|00000080| 2e 73 6f 75 72 63 65 73 | 3a 20 20 56 6f 6c 75 6d |.sources|: Volum|
|00000090| 65 20 34 2c 20 49 73 73 | 75 65 20 37 31 0a 53 75 |e 4, Iss|ue 71.Su|
|000000a0| 62 6d 69 74 74 65 64 20 | 62 79 3a 20 64 65 63 76 |bmitted |by: decv|
|000000b0| 61 78 21 6d 69 6e 6f 77 | 20 28 4d 61 72 74 69 6e |ax!minow| (Martin|
|000000c0| 20 4d 69 6e 6f 77 29 0a | 0a 23 21 20 2f 62 69 6e | Minow).|.#! /bin|
|000000d0| 2f 73 68 0a 23 20 54 68 | 69 73 20 69 73 20 61 20 |/sh.# Th|is is a |
|000000e0| 73 68 65 6c 6c 20 61 72 | 63 68 69 76 65 2c 20 6d |shell ar|chive, m|
|000000f0| 65 61 6e 69 6e 67 3a 0a | 23 20 31 2e 20 52 65 6d |eaning:.|# 1. Rem|
|00000100| 6f 76 65 20 65 76 65 72 | 79 74 68 69 6e 67 20 61 |ove ever|ything a|
|00000110| 62 6f 76 65 20 74 68 65 | 20 23 21 20 2f 62 69 6e |bove the| #! /bin|
|00000120| 2f 73 68 20 6c 69 6e 65 | 2e 0a 23 20 32 2e 20 53 |/sh line|..# 2. S|
|00000130| 61 76 65 20 74 68 65 20 | 72 65 73 75 6c 74 69 6e |ave the |resultin|
|00000140| 67 20 74 65 78 74 20 69 | 6e 20 61 20 66 69 6c 65 |g text i|n a file|
|00000150| 2e 0a 23 20 33 2e 20 45 | 78 65 63 75 74 65 20 74 |..# 3. E|xecute t|
|00000160| 68 65 20 66 69 6c 65 20 | 77 69 74 68 20 2f 62 69 |he file |with /bi|
|00000170| 6e 2f 73 68 20 28 6e 6f | 74 20 63 73 68 29 20 74 |n/sh (no|t csh) t|
|00000180| 6f 20 63 72 65 61 74 65 | 20 74 68 65 20 66 69 6c |o create| the fil|
|00000190| 65 73 3a 0a 23 09 73 79 | 73 0a 23 20 54 68 69 73 |es:.#.sy|s.# This|
|000001a0| 20 61 72 63 68 69 76 65 | 20 63 72 65 61 74 65 64 | archive| created|
|000001b0| 3a 20 53 75 6e 20 41 70 | 72 20 31 33 20 31 31 3a |: Sun Ap|r 13 11:|
|000001c0| 31 37 3a 31 36 20 31 39 | 38 36 0a 65 78 70 6f 72 |17:16 19|86.expor|
|000001d0| 74 20 50 41 54 48 3b 20 | 50 41 54 48 3d 2f 62 69 |t PATH; |PATH=/bi|
|000001e0| 6e 3a 24 50 41 54 48 0a | 69 66 20 74 65 73 74 20 |n:$PATH.|if test |
|000001f0| 21 20 2d 64 20 27 73 79 | 73 27 0a 74 68 65 6e 0a |! -d 'sy|s'.then.|
|00000200| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 63 72 65 61 |.echo sh|ar: crea|
|00000210| 74 69 6e 67 20 64 69 72 | 65 63 74 6f 72 79 20 22 |ting dir|ectory "|
|00000220| 27 73 79 73 27 22 0a 09 | 6d 6b 64 69 72 20 27 73 |'sys'"..|mkdir 's|
|00000230| 79 73 27 0a 66 69 0a 69 | 66 20 74 65 73 74 20 21 |ys'.fi.i|f test !|
|00000240| 20 2d 64 20 27 73 79 73 | 2f 61 74 61 72 69 27 0a | -d 'sys|/atari'.|
|00000250| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00000260| 20 63 72 65 61 74 69 6e | 67 20 64 69 72 65 63 74 | creatin|g direct|
|00000270| 6f 72 79 20 22 27 73 79 | 73 2f 61 74 61 72 69 27 |ory "'sy|s/atari'|
|00000280| 22 0a 09 6d 6b 64 69 72 | 20 27 73 79 73 2f 61 74 |"..mkdir| 'sys/at|
|00000290| 61 72 69 27 0a 66 69 0a | 65 63 68 6f 20 73 68 61 |ari'.fi.|echo sha|
|000002a0| 72 3a 20 65 78 74 72 61 | 63 74 69 6e 67 20 22 27 |r: extra|cting "'|
|000002b0| 73 79 73 2f 61 74 61 72 | 69 2f 63 2e 62 61 74 27 |sys/atar|i/c.bat'|
|000002c0| 22 20 27 28 31 33 33 20 | 63 68 61 72 61 63 74 65 |" '(133 |characte|
|000002d0| 72 73 29 27 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |rs)'.if |test -f |
|000002e0| 27 73 79 73 2f 61 74 61 | 72 69 2f 63 2e 62 61 74 |'sys/ata|ri/c.bat|
|000002f0| 27 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |'.then..|echo sha|
|00000300| 72 3a 20 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |r: will |not over|
|00000310| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00000320| 66 69 6c 65 20 22 27 73 | 79 73 2f 61 74 61 72 69 |file "'s|ys/atari|
|00000330| 2f 63 2e 62 61 74 27 22 | 0a 65 6c 73 65 0a 63 61 |/c.bat'"|.else.ca|
|00000340| 74 20 3c 3c 20 5c 53 48 | 41 52 5f 45 4f 46 20 3e |t << \SH|AR_EOF >|
|00000350| 20 27 73 79 73 2f 61 74 | 61 72 69 2f 63 2e 62 61 | 'sys/at|ari/c.ba|
|00000360| 74 27 0a 61 3a 63 70 36 | 38 20 2d 69 20 61 3a 20 |t'.a:cp6|8 -i a: |
|00000370| 25 31 2e 63 20 25 31 2e | 69 0a 61 3a 63 30 36 38 |%1.c %1.|i.a:c068|
|00000380| 20 25 31 2e 69 20 25 31 | 2e 31 20 25 31 2e 32 20 | %1.i %1|.1 %1.2 |
|00000390| 25 31 2e 33 20 2d 66 0a | 61 3a 72 6d 20 25 31 2e |%1.3 -f.|a:rm %1.|
|000003a0| 69 0a 61 3a 63 31 36 38 | 20 25 31 2e 31 20 25 31 |i.a:c168| %1.1 %1|
|000003b0| 2e 32 20 25 31 2e 73 0a | 61 3a 72 6d 20 25 31 2e |.2 %1.s.|a:rm %1.|
|000003c0| 31 0a 61 3a 72 6d 20 25 | 31 2e 32 0a 61 3a 61 73 |1.a:rm %|1.2.a:as|
|000003d0| 36 38 20 2d 6c 20 2d 75 | 20 25 31 2e 73 0a 61 3a |68 -l -u| %1.s.a:|
|000003e0| 72 6d 20 25 31 2e 73 0a | 53 48 41 52 5f 45 4f 46 |rm %1.s.|SHAR_EOF|
|000003f0| 0a 69 66 20 74 65 73 74 | 20 31 33 33 20 2d 6e 65 |.if test| 133 -ne|
|00000400| 20 22 60 77 63 20 2d 63 | 20 3c 20 27 73 79 73 2f | "`wc -c| < 'sys/|
|00000410| 61 74 61 72 69 2f 63 2e | 62 61 74 27 60 22 0a 74 |atari/c.|bat'`".t|
|00000420| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|00000430| 65 72 72 6f 72 20 74 72 | 61 6e 73 6d 69 74 74 69 |error tr|ansmitti|
|00000440| 6e 67 20 22 27 73 79 73 | 2f 61 74 61 72 69 2f 63 |ng "'sys|/atari/c|
|00000450| 2e 62 61 74 27 22 20 27 | 28 73 68 6f 75 6c 64 20 |.bat'" '|(should |
|00000460| 68 61 76 65 20 62 65 65 | 6e 20 31 33 33 20 63 68 |have bee|n 133 ch|
|00000470| 61 72 61 63 74 65 72 73 | 29 27 0a 66 69 0a 66 69 |aracters|)'.fi.fi|
|00000480| 0a 65 63 68 6f 20 73 68 | 61 72 3a 20 65 78 74 72 |.echo sh|ar: extr|
|00000490| 61 63 74 69 6e 67 20 22 | 27 73 79 73 2f 61 74 61 |acting "|'sys/ata|
|000004a0| 72 69 2f 66 69 6c 65 69 | 6f 2e 63 27 22 20 27 28 |ri/filei|o.c'" '(|
|000004b0| 32 39 35 36 20 63 68 61 | 72 61 63 74 65 72 73 29 |2956 cha|racters)|
|000004c0| 27 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 73 79 |'.if tes|t -f 'sy|
|000004d0| 73 2f 61 74 61 72 69 2f | 66 69 6c 65 69 6f 2e 63 |s/atari/|fileio.c|
|000004e0| 27 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |'.then..|echo sha|
|000004f0| 72 3a 20 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |r: will |not over|
|00000500| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00000510| 66 69 6c 65 20 22 27 73 | 79 73 2f 61 74 61 72 69 |file "'s|ys/atari|
|00000520| 2f 66 69 6c 65 69 6f 2e | 63 27 22 0a 65 6c 73 65 |/fileio.|c'".else|
|00000530| 0a 63 61 74 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |.cat << |\SHAR_EO|
|00000540| 46 20 3e 20 27 73 79 73 | 2f 61 74 61 72 69 2f 66 |F > 'sys|/atari/f|
|00000550| 69 6c 65 69 6f 2e 63 27 | 0a 2f 2a 0a 20 2a 20 4e |ileio.c'|./*. * N|
|00000560| 61 6d 65 3a 09 4d 69 63 | 72 6f 45 4d 41 43 53 0a |ame:.Mic|roEMACS.|
|00000570| 20 2a 09 09 41 74 61 72 | 69 20 35 32 30 53 54 20 | *..Atar|i 520ST |
|00000580| 66 69 6c 65 20 49 2f 4f | 2e 0a 20 2a 20 56 65 72 |file I/O|.. * Ver|
|00000590| 73 69 6f 6e 3a 09 33 30 | 0a 20 2a 20 4c 61 73 74 |sion:.30|. * Last|
|000005a0| 20 65 64 69 74 3a 09 32 | 32 2d 46 65 62 2d 38 36 | edit:.2|2-Feb-86|
|000005b0| 0a 20 2a 20 42 79 3a 09 | 09 72 65 78 3a 3a 63 6f |. * By:.|.rex::co|
|000005c0| 6e 72 6f 79 0a 20 2a 09 | 09 64 65 63 76 61 78 21 |nroy. *.|.decvax!|
|000005d0| 64 65 63 77 72 6c 21 64 | 65 63 2d 72 68 65 61 21 |decwrl!d|ec-rhea!|
|000005e0| 64 65 63 2d 72 65 78 21 | 63 6f 6e 72 6f 79 0a 20 |dec-rex!|conroy. |
|000005f0| 2a 2f 0a 23 69 6e 63 6c | 75 64 65 09 22 64 65 66 |*/.#incl|ude."def|
|00000600| 2e 68 22 0a 0a 65 78 74 | 65 72 6e 09 46 49 4c 45 |.h"..ext|ern.FILE|
|00000610| 09 2a 66 6f 70 65 6e 28 | 29 3b 0a 73 74 61 74 69 |.*fopen(|);.stati|
|00000620| 63 09 46 49 4c 45 09 2a | 66 66 70 3b 0a 0a 2f 2a |c.FILE.*|ffp;../*|
|00000630| 0a 20 2a 20 4f 70 65 6e | 20 61 20 66 69 6c 65 20 |. * Open| a file |
|00000640| 66 6f 72 20 72 65 61 64 | 69 6e 67 2e 0a 20 2a 2f |for read|ing.. */|
|00000650| 0a 66 66 72 6f 70 65 6e | 28 66 6e 29 0a 63 68 61 |.ffropen|(fn).cha|
|00000660| 72 09 2a 66 6e 3b 0a 7b | 0a 09 66 66 70 20 3d 20 |r.*fn;.{|..ffp = |
|00000670| 66 6f 70 65 6e 28 66 6e | 2c 20 22 72 22 29 3b 0a |fopen(fn|, "r");.|
|00000680| 09 61 64 6a 75 73 74 63 | 61 73 65 28 66 6e 29 3b |.adjustc|ase(fn);|
|00000690| 0a 09 69 66 20 28 66 66 | 70 20 3d 3d 20 4e 55 4c |..if (ff|p == NUL|
|000006a0| 4c 29 0a 09 09 72 65 74 | 75 72 6e 20 28 46 49 4f |L)...ret|urn (FIO|
|000006b0| 46 4e 46 29 3b 0a 09 72 | 65 74 75 72 6e 20 28 46 |FNF);..r|eturn (F|
|000006c0| 49 4f 53 55 43 29 3b 0a | 7d 0a 0a 2f 2a 0a 20 2a |IOSUC);.|}../*. *|
|000006d0| 20 4f 70 65 6e 20 61 20 | 66 69 6c 65 20 66 6f 72 | Open a |file for|
|000006e0| 20 77 72 69 74 69 6e 67 | 2e 0a 20 2a 20 52 65 74 | writing|.. * Ret|
|000006f0| 75 72 6e 20 54 52 55 45 | 20 69 66 20 61 6c 6c 20 |urn TRUE| if all |
|00000700| 69 73 20 77 65 6c 6c 2c | 20 61 6e 64 0a 20 2a 20 |is well,| and. * |
|00000710| 46 41 4c 53 45 20 6f 6e | 20 65 72 72 6f 72 20 28 |FALSE on| error (|
|00000720| 63 61 6e 6e 6f 74 20 63 | 72 65 61 74 65 29 2e 0a |cannot c|reate)..|
|00000730| 20 2a 2f 0a 66 66 77 6f | 70 65 6e 28 66 6e 29 0a | */.ffwo|pen(fn).|
|00000740| 63 68 61 72 09 2a 66 6e | 3b 0a 7b 0a 09 66 66 70 |char.*fn|;.{..ffp|
|00000750| 20 3d 20 66 6f 70 65 6e | 28 66 6e 2c 20 22 77 22 | = fopen|(fn, "w"|
|00000760| 29 3b 0a 09 61 64 6a 75 | 73 74 63 61 73 65 28 66 |);..adju|stcase(f|
|00000770| 6e 29 3b 0a 09 69 66 20 | 28 66 66 70 20 3d 3d 20 |n);..if |(ffp == |
|00000780| 4e 55 4c 4c 29 20 7b 0a | 09 09 65 70 72 69 6e 74 |NULL) {.|..eprint|
|00000790| 66 28 22 43 61 6e 6e 6f | 74 20 6f 70 65 6e 20 66 |f("Canno|t open f|
|000007a0| 69 6c 65 20 66 6f 72 20 | 77 72 69 74 69 6e 67 22 |ile for |writing"|
|000007b0| 29 3b 0a 09 09 72 65 74 | 75 72 6e 20 28 46 49 4f |);...ret|urn (FIO|
|000007c0| 45 52 52 29 3b 0a 09 7d | 0a 09 72 65 74 75 72 6e |ERR);..}|..return|
|000007d0| 20 28 46 49 4f 53 55 43 | 29 3b 0a 7d 0a 0a 2f 2a | (FIOSUC|);.}../*|
|000007e0| 0a 20 2a 20 43 6c 6f 73 | 65 20 61 20 66 69 6c 65 |. * Clos|e a file|
|000007f0| 2e 0a 20 2a 20 53 68 6f | 75 6c 64 20 6c 6f 6f 6b |.. * Sho|uld look|
|00000800| 20 61 74 20 74 68 65 20 | 73 74 61 74 75 73 2e 0a | at the |status..|
|00000810| 20 2a 2f 0a 66 66 63 6c | 6f 73 65 28 29 0a 7b 0a | */.ffcl|ose().{.|
|00000820| 09 66 63 6c 6f 73 65 28 | 66 66 70 29 3b 0a 09 72 |.fclose(|ffp);..r|
|00000830| 65 74 75 72 6e 20 28 46 | 49 4f 53 55 43 29 3b 0a |eturn (F|IOSUC);.|
|00000840| 7d 0a 0a 2f 2a 0a 20 2a | 20 57 72 69 74 65 20 61 |}../*. *| Write a|
|00000850| 20 6c 69 6e 65 20 74 6f | 20 74 68 65 20 61 6c 72 | line to| the alr|
|00000860| 65 61 64 79 0a 20 2a 20 | 6f 70 65 6e 65 64 20 66 |eady. * |opened f|
|00000870| 69 6c 65 2e 20 54 68 65 | 20 22 62 75 66 22 20 70 |ile. The| "buf" p|
|00000880| 6f 69 6e 74 73 20 74 6f | 20 74 68 65 0a 20 2a 20 |oints to| the. * |
|00000890| 62 75 66 66 65 72 2c 20 | 61 6e 64 20 74 68 65 20 |buffer, |and the |
|000008a0| 22 6e 62 75 66 22 20 69 | 73 20 69 74 73 20 6c 65 |"nbuf" i|s its le|
|000008b0| 6e 67 74 68 2c 20 6c 65 | 73 73 0a 20 2a 20 74 68 |ngth, le|ss. * th|
|000008c0| 65 20 66 72 65 65 20 6e | 65 77 6c 69 6e 65 2e 20 |e free n|ewline. |
|000008d0| 52 65 74 75 72 6e 20 74 | 68 65 20 73 74 61 74 75 |Return t|he statu|
|000008e0| 73 2e 0a 20 2a 20 43 68 | 65 63 6b 20 6f 6e 6c 79 |s.. * Ch|eck only|
|000008f0| 20 61 74 20 74 68 65 20 | 6e 65 77 6c 69 6e 65 2e | at the |newline.|
|00000900| 0a 20 2a 2f 0a 66 66 70 | 75 74 6c 69 6e 65 28 62 |. */.ffp|utline(b|
|00000910| 75 66 2c 20 6e 62 75 66 | 29 0a 72 65 67 69 73 74 |uf, nbuf|).regist|
|00000920| 65 72 20 63 68 61 72 09 | 62 75 66 5b 5d 3b 0a 7b |er char.|buf[];.{|
|00000930| 0a 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 09 69 |..regist|er int.i|
|00000940| 3b 0a 0a 09 66 6f 72 20 | 28 69 3d 30 3b 20 69 3c |;...for |(i=0; i<|
|00000950| 6e 62 75 66 3b 20 2b 2b | 69 29 0a 09 09 70 75 74 |nbuf; ++|i)...put|
|00000960| 63 28 62 75 66 5b 69 5d | 26 30 78 46 46 2c 20 66 |c(buf[i]|&0xFF, f|
|00000970| 66 70 29 3b 0a 09 70 75 | 74 63 28 27 5c 6e 27 2c |fp);..pu|tc('\n',|
|00000980| 20 66 66 70 29 3b 0a 09 | 69 66 20 28 66 65 72 72 | ffp);..|if (ferr|
|00000990| 6f 72 28 66 66 70 29 20 | 21 3d 20 46 41 4c 53 45 |or(ffp) |!= FALSE|
|000009a0| 29 20 7b 0a 09 09 65 70 | 72 69 6e 74 66 28 22 57 |) {...ep|rintf("W|
|000009b0| 72 69 74 65 20 49 2f 4f | 20 65 72 72 6f 72 22 29 |rite I/O| error")|
|000009c0| 3b 0a 09 09 72 65 74 75 | 72 6e 20 28 46 49 4f 45 |;...retu|rn (FIOE|
|000009d0| 52 52 29 3b 0a 09 7d 0a | 09 72 65 74 75 72 6e 20 |RR);..}.|.return |
|000009e0| 28 46 49 4f 53 55 43 29 | 3b 0a 7d 0a 0a 2f 2a 0a |(FIOSUC)|;.}../*.|
|000009f0| 20 2a 20 52 65 61 64 20 | 61 20 6c 69 6e 65 20 66 | * Read |a line f|
|00000a00| 72 6f 6d 20 61 20 66 69 | 6c 65 2c 20 61 6e 64 20 |rom a fi|le, and |
|00000a10| 73 74 6f 72 65 20 74 68 | 65 20 62 79 74 65 73 0a |store th|e bytes.|
|00000a20| 20 2a 20 69 6e 20 74 68 | 65 20 73 75 70 70 6c 69 | * in th|e suppli|
|00000a30| 65 64 20 62 75 66 66 65 | 72 2e 20 53 74 6f 70 20 |ed buffe|r. Stop |
|00000a40| 6f 6e 20 65 6e 64 20 6f | 66 20 66 69 6c 65 20 6f |on end o|f file o|
|00000a50| 72 20 65 6e 64 20 6f 66 | 0a 20 2a 20 6c 69 6e 65 |r end of|. * line|
|00000a60| 2e 20 44 6f 6e 27 74 20 | 67 65 74 20 75 70 73 65 |. Don't |get upse|
|00000a70| 74 20 62 79 20 66 69 6c | 65 73 20 74 68 61 74 20 |t by fil|es that |
|00000a80| 64 6f 6e 27 74 20 68 61 | 76 65 20 61 6e 20 65 6e |don't ha|ve an en|
|00000a90| 64 20 6f 66 0a 20 2a 20 | 6c 69 6e 65 20 6f 6e 20 |d of. * |line on |
|00000aa0| 74 68 65 20 6c 61 73 74 | 20 6c 69 6e 65 3b 20 74 |the last| line; t|
|00000ab0| 68 69 73 20 73 65 65 6d | 20 74 6f 20 62 65 20 63 |his seem| to be c|
|00000ac0| 6f 6d 6d 6f 6e 20 6f 6e | 20 43 50 2f 4d 2d 38 36 |ommon on| CP/M-86|
|00000ad0| 20 61 6e 64 0a 20 2a 20 | 4d 53 2d 44 4f 53 20 28 | and. * |MS-DOS (|
|00000ae0| 74 68 65 20 73 75 73 70 | 65 63 74 65 64 20 63 75 |the susp|ected cu|
|00000af0| 6c 70 72 69 74 20 69 73 | 20 56 41 58 2f 56 4d 53 |lprit is| VAX/VMS|
|00000b00| 20 6b 65 72 6d 69 74 2c | 20 62 75 74 20 74 68 69 | kermit,| but thi|
|00000b10| 73 0a 20 2a 20 68 61 73 | 20 6e 6f 74 20 62 65 65 |s. * has| not bee|
|00000b20| 6e 20 63 6f 6e 66 69 72 | 6d 65 64 2e 20 49 66 20 |n confir|med. If |
|00000b30| 74 68 69 73 20 69 73 20 | 73 75 66 66 69 63 69 65 |this is |sufficie|
|00000b40| 6e 74 6c 79 20 72 65 73 | 65 61 72 63 68 65 64 0a |ntly res|earched.|
|00000b50| 20 2a 20 69 74 20 6d 61 | 79 20 62 65 20 70 6f 73 | * it ma|y be pos|
|00000b60| 73 69 62 6c 65 20 74 6f | 20 70 75 6c 6c 20 74 68 |sible to| pull th|
|00000b70| 69 73 20 6b 6c 75 64 67 | 65 29 2e 20 44 65 6c 65 |is kludg|e). Dele|
|00000b80| 74 65 20 61 6e 79 20 43 | 52 0a 20 2a 20 66 6f 6c |te any C|R. * fol|
|00000b90| 6c 6f 77 65 64 20 62 79 | 20 61 6e 20 4c 46 2e 20 |lowed by| an LF. |
|00000ba0| 54 68 69 73 20 69 73 20 | 6d 61 69 6e 6c 79 20 66 |This is |mainly f|
|00000bb0| 6f 72 20 72 75 6e 6f 66 | 66 20 64 6f 63 75 6d 65 |or runof|f docume|
|00000bc0| 6e 74 73 2c 0a 20 2a 20 | 62 6f 74 68 20 6f 6e 20 |nts,. * |both on |
|00000bd0| 56 4d 53 20 61 6e 64 20 | 6f 6e 20 55 6c 74 72 69 |VMS and |on Ultri|
|00000be0| 78 20 28 74 68 65 79 20 | 67 65 74 20 63 6f 70 69 |x (they |get copi|
|00000bf0| 65 64 20 6f 76 65 72 20 | 66 72 6f 6d 0a 20 2a 20 |ed over |from. * |
|00000c00| 56 4d 53 20 73 79 73 74 | 65 6d 73 20 77 69 74 68 |VMS syst|ems with|
|00000c10| 20 44 45 43 6e 65 74 29 | 2e 0a 20 2a 2f 0a 66 66 | DECnet)|.. */.ff|
|00000c20| 67 65 74 6c 69 6e 65 28 | 62 75 66 2c 20 6e 62 75 |getline(|buf, nbu|
|00000c30| 66 29 0a 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |f).regis|ter char|
|00000c40| 09 62 75 66 5b 5d 3b 0a | 7b 0a 09 72 65 67 69 73 |.buf[];.|{..regis|
|00000c50| 74 65 72 20 69 6e 74 09 | 63 3b 0a 09 72 65 67 69 |ter int.|c;..regi|
|00000c60| 73 74 65 72 20 69 6e 74 | 09 69 3b 0a 0a 09 69 20 |ster int|.i;...i |
|00000c70| 3d 20 30 3b 0a 09 66 6f | 72 20 28 3b 3b 29 20 7b |= 0;..fo|r (;;) {|
|00000c80| 0a 09 09 63 20 3d 20 67 | 65 74 63 28 66 66 70 29 |...c = g|etc(ffp)|
|00000c90| 3b 0a 09 09 69 66 20 28 | 63 20 3d 3d 20 27 5c 72 |;...if (|c == '\r|
|00000ca0| 27 29 20 7b 09 09 2f 2a | 20 44 65 6c 65 74 65 20 |') {../*| Delete |
|00000cb0| 61 6e 79 20 6e 6f 6e 2d | 73 74 72 61 79 09 2a 2f |any non-|stray.*/|
|00000cc0| 0a 09 09 09 63 20 3d 20 | 67 65 74 63 28 66 66 70 |....c = |getc(ffp|
|00000cd0| 29 3b 09 09 2f 2a 20 63 | 61 72 72 69 61 67 65 20 |);../* c|arriage |
|00000ce0| 72 65 74 75 72 6e 73 2e | 09 2a 2f 0a 09 09 09 69 |returns.|.*/....i|
|00000cf0| 66 20 28 63 20 21 3d 20 | 27 5c 6e 27 29 20 7b 0a |f (c != |'\n') {.|
|00000d00| 09 09 09 09 69 66 20 28 | 69 20 3e 3d 20 6e 62 75 |....if (|i >= nbu|
|00000d10| 66 2d 31 29 20 7b 0a 09 | 09 09 09 09 65 70 72 69 |f-1) {..|....epri|
|00000d20| 6e 74 66 28 22 46 69 6c | 65 20 68 61 73 20 6c 6f |ntf("Fil|e has lo|
|00000d30| 6e 67 20 6c 69 6e 65 22 | 29 3b 0a 09 09 09 09 09 |ng line"|);......|
|00000d40| 72 65 74 75 72 6e 20 28 | 46 49 4f 45 52 52 29 3b |return (|FIOERR);|
|00000d50| 0a 09 09 09 09 7d 0a 09 | 09 09 09 62 75 66 5b 69 |.....}..|...buf[i|
|00000d60| 2b 2b 5d 20 3d 20 27 5c | 72 27 3b 0a 09 09 09 7d |++] = '\|r';....}|
|00000d70| 0a 09 09 7d 0a 09 09 69 | 66 20 28 63 3d 3d 45 4f |...}...i|f (c==EO|
|00000d80| 46 20 7c 7c 20 63 3d 3d | 27 5c 6e 27 29 09 09 2f |F || c==|'\n')../|
|00000d90| 2a 20 45 6e 64 20 6f 66 | 20 6c 69 6e 65 2e 09 09 |* End of| line...|
|00000da0| 2a 2f 0a 09 09 09 62 72 | 65 61 6b 3b 0a 09 09 69 |*/....br|eak;...i|
|00000db0| 66 20 28 69 20 3e 3d 20 | 6e 62 75 66 2d 31 29 20 |f (i >= |nbuf-1) |
|00000dc0| 7b 0a 09 09 09 65 70 72 | 69 6e 74 66 28 22 46 69 |{....epr|intf("Fi|
|00000dd0| 6c 65 20 68 61 73 20 6c | 6f 6e 67 20 6c 69 6e 65 |le has l|ong line|
|00000de0| 22 29 3b 0a 09 09 09 72 | 65 74 75 72 6e 20 28 46 |");....r|eturn (F|
|00000df0| 49 4f 45 52 52 29 3b 0a | 09 09 7d 0a 09 09 62 75 |IOERR);.|..}...bu|
|00000e00| 66 5b 69 2b 2b 5d 20 3d | 20 63 3b 0a 09 7d 0a 09 |f[i++] =| c;..}..|
|00000e10| 69 66 20 28 63 20 3d 3d | 20 45 4f 46 29 20 7b 09 |if (c ==| EOF) {.|
|00000e20| 09 09 09 2f 2a 20 45 6e | 64 20 6f 66 20 66 69 6c |.../* En|d of fil|
|00000e30| 65 2e 09 09 2a 2f 0a 09 | 09 69 66 20 28 66 65 72 |e...*/..|.if (fer|
|00000e40| 72 6f 72 28 66 66 70 29 | 20 21 3d 20 46 41 4c 53 |ror(ffp)| != FALS|
|00000e50| 45 29 20 7b 0a 09 09 09 | 65 70 72 69 6e 74 66 28 |E) {....|eprintf(|
|00000e60| 22 46 69 6c 65 20 72 65 | 61 64 20 65 72 72 6f 72 |"File re|ad error|
|00000e70| 22 29 3b 0a 09 09 09 72 | 65 74 75 72 6e 20 28 46 |");....r|eturn (F|
|00000e80| 49 4f 45 52 52 29 3b 0a | 09 09 7d 0a 09 09 69 66 |IOERR);.|..}...if|
|00000e90| 20 28 69 20 3d 3d 20 30 | 29 09 09 09 2f 2a 20 44 | (i == 0|).../* D|
|00000ea0| 6f 6e 27 74 20 67 65 74 | 20 75 70 73 65 74 20 69 |on't get| upset i|
|00000eb0| 66 09 2a 2f 0a 09 09 09 | 72 65 74 75 72 6e 20 28 |f.*/....|return (|
|00000ec0| 46 49 4f 45 4f 46 29 3b | 09 2f 2a 20 6e 6f 20 6e |FIOEOF);|./* no n|
|00000ed0| 65 77 6c 69 6e 65 20 61 | 74 20 45 4f 46 2e 09 2a |ewline a|t EOF..*|
|00000ee0| 2f 0a 09 7d 0a 09 62 75 | 66 5b 69 5d 20 3d 20 30 |/..}..bu|f[i] = 0|
|00000ef0| 3b 0a 09 72 65 74 75 72 | 6e 20 28 46 49 4f 53 55 |;..retur|n (FIOSU|
|00000f00| 43 29 3b 0a 7d 0a 0a 2f | 2a 0a 20 2a 20 46 69 6e |C);.}../|*. * Fin|
|00000f10| 69 73 68 20 74 68 69 73 | 20 72 6f 75 74 69 6e 65 |ish this| routine|
|00000f20| 20 77 68 65 6e 20 79 6f | 75 20 64 65 63 69 64 65 | when yo|u decide|
|00000f30| 0a 20 2a 20 77 68 61 74 | 20 74 68 65 20 72 69 67 |. * what| the rig|
|00000f40| 68 74 20 74 68 69 6e 67 | 20 74 6f 20 64 6f 20 77 |ht thing| to do w|
|00000f50| 68 65 6e 20 72 65 6e 61 | 6d 69 6e 67 20 61 0a 20 |hen rena|ming a. |
|00000f60| 2a 20 66 69 6c 65 20 66 | 6f 72 20 62 61 63 6b 75 |* file f|or backu|
|00000f70| 70 20 70 75 72 70 6f 73 | 65 73 2e 0a 20 2a 2f 0a |p purpos|es.. */.|
|00000f80| 66 62 61 63 6b 75 70 66 | 69 6c 65 28 66 6e 61 6d |fbackupf|ile(fnam|
|00000f90| 65 29 0a 63 68 61 72 09 | 2a 66 6e 61 6d 65 3b 0a |e).char.|*fname;.|
|00000fa0| 7b 0a 09 72 65 74 75 72 | 6e 20 28 54 52 55 45 29 |{..retur|n (TRUE)|
|00000fb0| 3b 0a 7d 0a 0a 2f 2a 0a | 20 2a 20 5a 61 70 20 66 |;.}../*.| * Zap f|
|00000fc0| 69 6c 65 20 6e 61 6d 65 | 20 74 6f 20 6c 6f 77 65 |ile name| to lowe|
|00000fd0| 72 20 63 61 73 65 2c 20 | 73 69 6e 63 65 0a 20 2a |r case, |since. *|
|00000fe0| 20 74 68 65 20 73 79 73 | 74 65 6d 20 6f 6e 20 74 | the sys|tem on t|
|00000ff0| 68 65 20 35 32 30 53 54 | 20 68 61 73 20 63 61 73 |he 520ST| has cas|
|00001000| 65 20 69 6e 73 65 6e 73 | 69 74 69 76 65 0a 20 2a |e insens|itive. *|
|00001010| 20 66 69 6c 65 20 6e 61 | 6d 65 73 2c 20 61 6e 64 | file na|mes, and|
|00001020| 20 6c 6f 77 65 72 20 6c | 6f 6f 6b 73 20 62 65 74 | lower l|ooks bet|
|00001030| 74 65 72 20 69 6e 20 74 | 68 65 0a 20 2a 20 6d 6f |ter in t|he. * mo|
|00001040| 64 65 6c 69 6e 65 73 20 | 74 68 61 6e 20 75 70 70 |delines |than upp|
|00001050| 65 72 2e 0a 20 2a 2f 0a | 61 64 6a 75 73 74 63 61 |er.. */.|adjustca|
|00001060| 73 65 28 66 6e 29 0a 72 | 65 67 69 73 74 65 72 20 |se(fn).r|egister |
|00001070| 63 68 61 72 09 2a 66 6e | 3b 0a 7b 0a 09 72 65 67 |char.*fn|;.{..reg|
|00001080| 69 73 74 65 72 20 69 6e | 74 09 63 3b 0a 0a 09 77 |ister in|t.c;...w|
|00001090| 68 69 6c 65 20 28 28 63 | 20 3d 20 2a 66 6e 29 20 |hile ((c| = *fn) |
|000010a0| 21 3d 20 30 29 20 7b 0a | 09 09 69 66 20 28 49 53 |!= 0) {.|..if (IS|
|000010b0| 55 50 50 45 52 28 63 29 | 20 21 3d 20 46 41 4c 53 |UPPER(c)| != FALS|
|000010c0| 45 29 0a 09 09 09 2a 66 | 6e 20 3d 20 54 4f 4c 4f |E)....*f|n = TOLO|
|000010d0| 57 45 52 28 63 29 3b 0a | 09 09 2b 2b 66 6e 3b 0a |WER(c);.|..++fn;.|
|000010e0| 09 7d 0a 7d 0a 53 48 41 | 52 5f 45 4f 46 0a 69 66 |.}.}.SHA|R_EOF.if|
|000010f0| 20 74 65 73 74 20 32 39 | 35 36 20 2d 6e 65 20 22 | test 29|56 -ne "|
|00001100| 60 77 63 20 2d 63 20 3c | 20 27 73 79 73 2f 61 74 |`wc -c <| 'sys/at|
|00001110| 61 72 69 2f 66 69 6c 65 | 69 6f 2e 63 27 60 22 0a |ari/file|io.c'`".|
|00001120| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00001130| 20 65 72 72 6f 72 20 74 | 72 61 6e 73 6d 69 74 74 | error t|ransmitt|
|00001140| 69 6e 67 20 22 27 73 79 | 73 2f 61 74 61 72 69 2f |ing "'sy|s/atari/|
|00001150| 66 69 6c 65 69 6f 2e 63 | 27 22 20 27 28 73 68 6f |fileio.c|'" '(sho|
|00001160| 75 6c 64 20 68 61 76 65 | 20 62 65 65 6e 20 32 39 |uld have| been 29|
|00001170| 35 36 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |56 chara|cters)'.|
|00001180| 66 69 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |fi.fi.ec|ho shar:|
|00001190| 20 65 78 74 72 61 63 74 | 69 6e 67 20 22 27 73 79 | extract|ing "'sy|
|000011a0| 73 2f 61 74 61 72 69 2f | 67 65 74 6e 2e 73 27 22 |s/atari/|getn.s'"|
|000011b0| 20 27 28 35 38 33 20 63 | 68 61 72 61 63 74 65 72 | '(583 c|haracter|
|000011c0| 73 29 27 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |s)'.if t|est -f '|
|000011d0| 73 79 73 2f 61 74 61 72 | 69 2f 67 65 74 6e 2e 73 |sys/atar|i/getn.s|
|000011e0| 27 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |'.then..|echo sha|
|000011f0| 72 3a 20 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |r: will |not over|
|00001200| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00001210| 66 69 6c 65 20 22 27 73 | 79 73 2f 61 74 61 72 69 |file "'s|ys/atari|
|00001220| 2f 67 65 74 6e 2e 73 27 | 22 0a 65 6c 73 65 0a 63 |/getn.s'|".else.c|
|00001230| 61 74 20 3c 3c 20 5c 53 | 48 41 52 5f 45 4f 46 20 |at << \S|HAR_EOF |
|00001240| 3e 20 27 73 79 73 2f 61 | 74 61 72 69 2f 67 65 74 |> 'sys/a|tari/get|
|00001250| 6e 2e 73 27 0a 2a 20 52 | 6f 75 74 69 6e 65 73 20 |n.s'.* R|outines |
|00001260| 74 6f 20 72 65 61 64 20 | 74 68 65 20 73 69 7a 65 |to read |the size|
|00001270| 20 6f 66 20 74 68 65 20 | 64 69 73 70 6c 61 79 2e | of the |display.|
|00001280| 0a 2a 20 4d 69 63 72 6f | 45 4d 41 43 53 20 77 6f |.* Micro|EMACS wo|
|00001290| 72 6b 73 20 65 76 65 6e | 20 6f 6e 20 61 20 73 63 |rks even| on a sc|
|000012a0| 72 65 65 6e 20 74 68 61 | 74 20 68 61 73 20 62 65 |reen tha|t has be|
|000012b0| 65 6e 20 62 6c 65 73 73 | 65 64 0a 2a 20 62 79 20 |en bless|ed.* by |
|000012c0| 74 68 65 20 22 68 69 35 | 30 22 20 70 72 6f 67 72 |the "hi5|0" progr|
|000012d0| 61 6d 2e 0a 2a 20 4d 69 | 63 72 6f 45 4d 41 43 53 |am..* Mi|croEMACS|
|000012e0| 20 76 65 72 73 69 6f 6e | 20 33 30 2c 20 66 6f 72 | version| 30, for|
|000012f0| 20 74 68 65 20 41 74 61 | 72 69 2e 0a 0a 09 2e 74 | the Ata|ri.....t|
|00001300| 65 78 74 0a 0a 2a 20 67 | 65 74 6e 72 6f 77 28 29 |ext..* g|etnrow()|
|00001310| 20 2d 2d 20 67 65 74 20 | 6e 75 6d 62 65 72 20 6f | -- get |number o|
|00001320| 66 20 72 6f 77 73 2e 0a | 0a 09 2e 67 6c 6f 62 6c |f rows..|...globl|
|00001330| 09 5f 67 65 74 6e 72 6f | 77 0a 0a 5f 67 65 74 6e |._getnro|w.._getn|
|00001340| 72 6f 77 3a 0a 0a 09 6d | 6f 76 65 2e 6c 09 61 32 |row:...m|ove.l.a2|
|00001350| 2c 20 2d 28 73 70 29 0a | 09 6d 6f 76 65 2e 6c 09 |, -(sp).|.move.l.|
|00001360| 64 32 2c 20 2d 28 73 70 | 29 0a 09 64 63 2e 77 09 |d2, -(sp|)..dc.w.|
|00001370| 24 41 30 30 30 0a 09 6d | 6f 76 65 2e 6c 09 28 73 |$A000..m|ove.l.(s|
|00001380| 70 29 2b 2c 20 64 32 0a | 09 6d 6f 76 65 61 2e 6c |p)+, d2.|.movea.l|
|00001390| 09 28 73 70 29 2b 2c 20 | 61 32 0a 0a 09 6d 6f 76 |.(sp)+, |a2...mov|
|000013a0| 65 2e 77 09 2d 34 32 28 | 61 30 29 2c 20 64 30 0a |e.w.-42(|a0), d0.|
|000013b0| 09 61 64 64 71 2e 77 09 | 23 31 2c 20 64 30 0a 09 |.addq.w.|#1, d0..|
|000013c0| 65 78 74 2e 6c 09 64 30 | 0a 0a 09 72 74 73 0a 0a |ext.l.d0|...rts..|
|000013d0| 2a 20 67 65 74 6e 63 6f | 6c 28 29 20 2d 2d 20 67 |* getnco|l() -- g|
|000013e0| 65 74 20 6e 75 6d 62 65 | 72 20 6f 66 20 63 6f 6c |et numbe|r of col|
|000013f0| 75 6d 6e 73 2e 0a 0a 09 | 2e 67 6c 6f 62 6c 09 5f |umns....|.globl._|
|00001400| 67 65 74 6e 63 6f 6c 0a | 0a 5f 67 65 74 6e 63 6f |getncol.|._getnco|
|00001410| 6c 3a 0a 09 6d 6f 76 65 | 2e 6c 09 61 32 2c 20 2d |l:..move|.l.a2, -|
|00001420| 28 73 70 29 0a 09 6d 6f | 76 65 2e 6c 09 64 32 2c |(sp)..mo|ve.l.d2,|
|00001430| 20 2d 28 73 70 29 0a 09 | 64 63 2e 77 09 24 41 30 | -(sp)..|dc.w.$A0|
|00001440| 30 30 0a 09 6d 6f 76 65 | 2e 6c 09 28 73 70 29 2b |00..move|.l.(sp)+|
|00001450| 2c 20 64 32 0a 09 6d 6f | 76 65 61 2e 6c 09 28 73 |, d2..mo|vea.l.(s|
|00001460| 70 29 2b 2c 20 61 32 0a | 0a 09 6d 6f 76 65 2e 77 |p)+, a2.|..move.w|
|00001470| 09 2d 34 34 28 61 30 29 | 2c 20 64 30 0a 09 61 64 |.-44(a0)|, d0..ad|
|00001480| 64 71 2e 77 09 23 31 2c | 20 64 30 0a 09 65 78 74 |dq.w.#1,| d0..ext|
|00001490| 2e 6c 09 64 30 0a 0a 09 | 72 74 73 0a 53 48 41 52 |.l.d0...|rts.SHAR|
|000014a0| 5f 45 4f 46 0a 69 66 20 | 74 65 73 74 20 35 38 33 |_EOF.if |test 583|
|000014b0| 20 2d 6e 65 20 22 60 77 | 63 20 2d 63 20 3c 20 27 | -ne "`w|c -c < '|
|000014c0| 73 79 73 2f 61 74 61 72 | 69 2f 67 65 74 6e 2e 73 |sys/atar|i/getn.s|
|000014d0| 27 60 22 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |'`".then|..echo s|
|000014e0| 68 61 72 3a 20 65 72 72 | 6f 72 20 74 72 61 6e 73 |har: err|or trans|
|000014f0| 6d 69 74 74 69 6e 67 20 | 22 27 73 79 73 2f 61 74 |mitting |"'sys/at|
|00001500| 61 72 69 2f 67 65 74 6e | 2e 73 27 22 20 27 28 73 |ari/getn|.s'" '(s|
|00001510| 68 6f 75 6c 64 20 68 61 | 76 65 20 62 65 65 6e 20 |hould ha|ve been |
|00001520| 35 38 33 20 63 68 61 72 | 61 63 74 65 72 73 29 27 |583 char|acters)'|
|00001530| 0a 66 69 0a 66 69 0a 65 | 63 68 6f 20 73 68 61 72 |.fi.fi.e|cho shar|
|00001540| 3a 20 65 78 74 72 61 63 | 74 69 6e 67 20 22 27 73 |: extrac|ting "'s|
|00001550| 79 73 2f 61 74 61 72 69 | 2f 73 70 61 77 6e 2e 63 |ys/atari|/spawn.c|
|00001560| 27 22 20 27 28 34 32 33 | 20 63 68 61 72 61 63 74 |'" '(423| charact|
|00001570| 65 72 73 29 27 0a 69 66 | 20 74 65 73 74 20 2d 66 |ers)'.if| test -f|
|00001580| 20 27 73 79 73 2f 61 74 | 61 72 69 2f 73 70 61 77 | 'sys/at|ari/spaw|
|00001590| 6e 2e 63 27 0a 74 68 65 | 6e 0a 09 65 63 68 6f 20 |n.c'.the|n..echo |
|000015a0| 73 68 61 72 3a 20 77 69 | 6c 6c 20 6e 6f 74 20 6f |shar: wi|ll not o|
|000015b0| 76 65 72 2d 77 72 69 74 | 65 20 65 78 69 73 74 69 |ver-writ|e existi|
|000015c0| 6e 67 20 66 69 6c 65 20 | 22 27 73 79 73 2f 61 74 |ng file |"'sys/at|
|000015d0| 61 72 69 2f 73 70 61 77 | 6e 2e 63 27 22 0a 65 6c |ari/spaw|n.c'".el|
|000015e0| 73 65 0a 63 61 74 20 3c | 3c 20 5c 53 48 41 52 5f |se.cat <|< \SHAR_|
|000015f0| 45 4f 46 20 3e 20 27 73 | 79 73 2f 61 74 61 72 69 |EOF > 's|ys/atari|
|00001600| 2f 73 70 61 77 6e 2e 63 | 27 0a 2f 2a 0a 20 2a 20 |/spawn.c|'./*. * |
|00001610| 4e 61 6d 65 3a 09 4d 69 | 63 72 6f 45 4d 41 43 53 |Name:.Mi|croEMACS|
|00001620| 0a 20 2a 09 09 41 74 61 | 72 69 20 35 32 30 53 54 |. *..Ata|ri 520ST|
|00001630| 20 43 4c 49 20 73 70 61 | 77 6e 2e 0a 20 2a 20 56 | CLI spa|wn.. * V|
|00001640| 65 72 73 69 6f 6e 3a 09 | 33 30 0a 20 2a 20 4c 61 |ersion:.|30. * La|
|00001650| 73 74 20 65 64 69 74 3a | 09 32 32 2d 46 65 62 2d |st edit:|.22-Feb-|
|00001660| 38 36 0a 20 2a 20 42 79 | 3a 09 09 72 65 78 3a 3a |86. * By|:..rex::|
|00001670| 63 6f 6e 72 6f 79 0a 20 | 2a 09 09 64 65 63 76 61 |conroy. |*..decva|
|00001680| 78 21 64 65 63 77 72 6c | 21 64 65 63 2d 72 68 65 |x!decwrl|!dec-rhe|
|00001690| 61 21 64 65 63 2d 72 65 | 78 21 63 6f 6e 72 6f 79 |a!dec-re|x!conroy|
|000016a0| 0a 20 2a 2f 0a 23 69 6e | 63 6c 75 64 65 09 22 64 |. */.#in|clude."d|
|000016b0| 65 66 2e 68 22 0a 0a 2f | 2a 0a 20 2a 20 53 70 61 |ef.h"../|*. * Spa|
|000016c0| 77 6e 20 43 4c 49 2e 20 | 53 69 6e 63 65 20 4d 69 |wn CLI. |Since Mi|
|000016d0| 63 72 6f 45 4d 41 43 53 | 20 77 61 6e 74 73 20 74 |croEMACS| wants t|
|000016e0| 6f 20 68 6f 6c 64 0a 20 | 2a 20 61 20 6c 6f 74 20 |o hold. |* a lot |
|000016f0| 6f 66 20 6d 65 6d 6f 72 | 79 2c 20 74 68 69 73 20 |of memor|y, this |
|00001700| 6d 61 79 20 6e 65 76 65 | 72 20 62 65 20 6d 61 64 |may neve|r be mad|
|00001710| 65 20 74 6f 20 77 6f 72 | 6b 20 72 69 67 68 74 0a |e to wor|k right.|
|00001720| 20 2a 20 69 6e 20 47 45 | 4d 44 4f 53 2e 20 4f 6e | * in GE|MDOS. On|
|00001730| 20 74 68 65 20 6f 74 68 | 65 72 20 68 61 6e 64 2c | the oth|er hand,|
|00001740| 20 69 74 20 73 75 72 65 | 20 77 6f 75 6c 64 20 62 | it sure| would b|
|00001750| 65 20 61 0a 20 2a 20 6e | 69 63 65 20 74 68 69 6e |e a. * n|ice thin|
|00001760| 67 20 74 6f 20 68 61 76 | 65 2e 0a 20 2a 2f 0a 73 |g to hav|e.. */.s|
|00001770| 70 61 77 6e 63 6c 69 28 | 66 2c 20 6e 2c 20 6b 29 |pawncli(|f, n, k)|
|00001780| 0a 7b 0a 09 65 70 72 69 | 6e 74 66 28 22 4e 6f 74 |.{..epri|ntf("Not|
|00001790| 20 69 6e 20 47 45 4d 44 | 4f 53 22 29 3b 0a 09 72 | in GEMD|OS");..r|
|000017a0| 65 74 75 72 6e 20 28 46 | 41 4c 53 45 29 3b 0a 7d |eturn (F|ALSE);.}|
|000017b0| 0a 53 48 41 52 5f 45 4f | 46 0a 69 66 20 74 65 73 |.SHAR_EO|F.if tes|
|000017c0| 74 20 34 32 33 20 2d 6e | 65 20 22 60 77 63 20 2d |t 423 -n|e "`wc -|
|000017d0| 63 20 3c 20 27 73 79 73 | 2f 61 74 61 72 69 2f 73 |c < 'sys|/atari/s|
|000017e0| 70 61 77 6e 2e 63 27 60 | 22 0a 74 68 65 6e 0a 09 |pawn.c'`|".then..|
|000017f0| 65 63 68 6f 20 73 68 61 | 72 3a 20 65 72 72 6f 72 |echo sha|r: error|
|00001800| 20 74 72 61 6e 73 6d 69 | 74 74 69 6e 67 20 22 27 | transmi|tting "'|
|00001810| 73 79 73 2f 61 74 61 72 | 69 2f 73 70 61 77 6e 2e |sys/atar|i/spawn.|
|00001820| 63 27 22 20 27 28 73 68 | 6f 75 6c 64 20 68 61 76 |c'" '(sh|ould hav|
|00001830| 65 20 62 65 65 6e 20 34 | 32 33 20 63 68 61 72 61 |e been 4|23 chara|
|00001840| 63 74 65 72 73 29 27 0a | 66 69 0a 66 69 0a 65 63 |cters)'.|fi.fi.ec|
|00001850| 68 6f 20 73 68 61 72 3a | 20 65 78 74 72 61 63 74 |ho shar:| extract|
|00001860| 69 6e 67 20 22 27 73 79 | 73 2f 61 74 61 72 69 2f |ing "'sy|s/atari/|
|00001870| 73 79 73 64 65 66 2e 68 | 27 22 20 27 28 37 32 31 |sysdef.h|'" '(721|
|00001880| 20 63 68 61 72 61 63 74 | 65 72 73 29 27 0a 69 66 | charact|ers)'.if|
|00001890| 20 74 65 73 74 20 2d 66 | 20 27 73 79 73 2f 61 74 | test -f| 'sys/at|
|000018a0| 61 72 69 2f 73 79 73 64 | 65 66 2e 68 27 0a 74 68 |ari/sysd|ef.h'.th|
|000018b0| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 77 |en..echo| shar: w|
|000018c0| 69 6c 6c 20 6e 6f 74 20 | 6f 76 65 72 2d 77 72 69 |ill not |over-wri|
|000018d0| 74 65 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |te exist|ing file|
|000018e0| 20 22 27 73 79 73 2f 61 | 74 61 72 69 2f 73 79 73 | "'sys/a|tari/sys|
|000018f0| 64 65 66 2e 68 27 22 0a | 65 6c 73 65 0a 63 61 74 |def.h'".|else.cat|
|00001900| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|00001910| 27 73 79 73 2f 61 74 61 | 72 69 2f 73 79 73 64 65 |'sys/ata|ri/sysde|
|00001920| 66 2e 68 27 0a 2f 2a 0a | 20 2a 20 4e 61 6d 65 3a |f.h'./*.| * Name:|
|00001930| 09 4d 69 63 72 6f 45 4d | 41 43 53 0a 20 2a 09 09 |.MicroEM|ACS. *..|
|00001940| 41 74 61 72 69 20 35 32 | 30 53 54 20 68 65 61 64 |Atari 52|0ST head|
|00001950| 65 72 20 66 69 6c 65 2e | 0a 20 2a 20 56 65 72 73 |er file.|. * Vers|
|00001960| 69 6f 6e 3a 09 33 30 0a | 20 2a 20 4c 61 73 74 20 |ion:.30.| * Last |
|00001970| 65 64 69 74 3a 09 32 32 | 2d 46 65 62 2d 38 36 0a |edit:.22|-Feb-86.|
|00001980| 20 2a 20 42 79 3a 09 09 | 72 65 78 3a 3a 63 6f 6e | * By:..|rex::con|
|00001990| 72 6f 79 0a 20 2a 09 09 | 64 65 63 76 61 78 21 64 |roy. *..|decvax!d|
|000019a0| 65 63 77 72 6c 21 64 65 | 63 2d 72 68 65 61 21 64 |ecwrl!de|c-rhea!d|
|000019b0| 65 63 2d 72 65 78 21 63 | 6f 6e 72 6f 79 0a 20 2a |ec-rex!c|onroy. *|
|000019c0| 2f 0a 23 64 65 66 69 6e | 65 09 50 43 43 09 31 09 |/.#defin|e.PCC.1.|
|000019d0| 09 09 2f 2a 20 22 5b 5d | 22 20 67 65 74 73 20 61 |../* "[]|" gets a|
|000019e0| 6e 20 65 72 72 6f 72 2e | 09 09 2a 2f 0a 23 64 65 |n error.|..*/.#de|
|000019f0| 66 69 6e 65 09 4b 42 4c | 4f 43 4b 09 35 31 32 09 |fine.KBL|OCK.512.|
|00001a00| 09 09 2f 2a 20 4b 69 6c | 6c 20 67 72 6f 77 2e 09 |../* Kil|l grow..|
|00001a10| 09 09 2a 2f 0a 23 64 65 | 66 69 6e 65 09 47 4f 4f |..*/.#de|fine.GOO|
|00001a20| 44 09 30 09 09 09 2f 2a | 20 47 6f 6f 64 20 65 78 |D.0.../*| Good ex|
|00001a30| 69 74 20 73 74 61 74 75 | 73 2e 09 09 2a 2f 0a 0a |it statu|s...*/..|
|00001a40| 2f 2a 0a 20 2a 20 46 6f | 72 20 22 28 76 6f 69 64 |/*. * Fo|r "(void|
|00001a50| 29 22 20 63 61 73 74 73 | 2e 0a 20 2a 2f 0a 74 79 |)" casts|.. */.ty|
|00001a60| 70 65 64 65 66 09 69 6e | 74 09 76 6f 69 64 3b 0a |pedef.in|t.void;.|
|00001a70| 0a 2f 2a 0a 20 2a 20 4d | 61 63 72 6f 73 20 75 73 |./*. * M|acros us|
|00001a80| 65 64 20 62 79 20 74 68 | 65 20 62 75 66 66 65 72 |ed by th|e buffer|
|00001a90| 20 6e 61 6d 65 20 6d 61 | 6b 69 6e 67 20 63 6f 64 | name ma|king cod|
|00001aa0| 65 2e 0a 20 2a 20 53 74 | 61 72 74 20 61 74 20 74 |e.. * St|art at t|
|00001ab0| 68 65 20 65 6e 64 20 6f | 66 20 74 68 65 20 66 69 |he end o|f the fi|
|00001ac0| 6c 65 20 6e 61 6d 65 2c | 20 73 63 61 6e 20 74 6f |le name,| scan to|
|00001ad0| 20 74 68 65 20 6c 65 66 | 74 0a 20 2a 20 75 6e 74 | the lef|t. * unt|
|00001ae0| 69 6c 20 42 44 43 31 20 | 28 6f 72 20 42 44 43 32 |il BDC1 |(or BDC2|
|00001af0| 2c 20 69 66 20 64 65 66 | 69 6e 65 64 29 20 69 73 |, if def|ined) is|
|00001b00| 20 72 65 61 63 68 65 64 | 2e 20 54 68 65 20 62 75 | reached|. The bu|
|00001b10| 66 66 65 72 0a 20 2a 20 | 6e 61 6d 65 20 73 74 61 |ffer. * |name sta|
|00001b20| 72 74 73 20 6a 75 73 74 | 20 74 6f 20 74 68 65 20 |rts just| to the |
|00001b30| 72 69 67 68 74 20 6f 66 | 20 74 68 61 74 20 6c 6f |right of| that lo|
|00001b40| 63 61 74 69 6f 6e 2c 20 | 61 6e 64 0a 20 2a 20 73 |cation, |and. * s|
|00001b50| 74 6f 70 73 20 61 74 20 | 65 6e 64 20 6f 66 20 73 |tops at |end of s|
|00001b60| 74 72 69 6e 67 20 28 6f | 72 20 61 74 20 74 68 65 |tring (o|r at the|
|00001b70| 20 6e 65 78 74 20 42 44 | 43 33 20 63 68 61 72 61 | next BD|C3 chara|
|00001b80| 63 74 65 72 2c 0a 20 2a | 20 69 66 20 64 65 66 69 |cter,. *| if defi|
|00001b90| 6e 65 64 29 2e 20 42 44 | 43 32 20 61 6e 64 20 42 |ned). BD|C2 and B|
|00001ba0| 44 43 33 20 61 72 65 20 | 6d 61 69 6e 6c 79 20 66 |DC3 are |mainly f|
|00001bb0| 6f 72 20 56 4d 53 2e 0a | 20 2a 2f 0a 23 64 65 66 |or VMS..| */.#def|
|00001bc0| 69 6e 65 09 42 44 43 31 | 09 27 5c 5c 27 09 09 09 |ine.BDC1|.'\\'...|
|00001bd0| 2f 2a 20 42 75 66 66 65 | 72 20 6e 61 6d 65 73 2e |/* Buffe|r names.|
|00001be0| 09 09 2a 2f 0a 23 64 65 | 66 69 6e 65 09 42 44 43 |..*/.#de|fine.BDC|
|00001bf0| 32 09 27 3a 27 0a 53 48 | 41 52 5f 45 4f 46 0a 69 |2.':'.SH|AR_EOF.i|
|00001c00| 66 20 74 65 73 74 20 37 | 32 31 20 2d 6e 65 20 22 |f test 7|21 -ne "|
|00001c10| 60 77 63 20 2d 63 20 3c | 20 27 73 79 73 2f 61 74 |`wc -c <| 'sys/at|
|00001c20| 61 72 69 2f 73 79 73 64 | 65 66 2e 68 27 60 22 0a |ari/sysd|ef.h'`".|
|00001c30| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00001c40| 20 65 72 72 6f 72 20 74 | 72 61 6e 73 6d 69 74 74 | error t|ransmitt|
|00001c50| 69 6e 67 20 22 27 73 79 | 73 2f 61 74 61 72 69 2f |ing "'sy|s/atari/|
|00001c60| 73 79 73 64 65 66 2e 68 | 27 22 20 27 28 73 68 6f |sysdef.h|'" '(sho|
|00001c70| 75 6c 64 20 68 61 76 65 | 20 62 65 65 6e 20 37 32 |uld have| been 72|
|00001c80| 31 20 63 68 61 72 61 63 | 74 65 72 73 29 27 0a 66 |1 charac|ters)'.f|
|00001c90| 69 0a 66 69 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |i.fi.ech|o shar: |
|00001ca0| 65 78 74 72 61 63 74 69 | 6e 67 20 22 27 73 79 73 |extracti|ng "'sys|
|00001cb0| 2f 61 74 61 72 69 2f 74 | 74 79 69 6f 2e 63 27 22 |/atari/t|tyio.c'"|
|00001cc0| 20 27 28 37 31 34 20 63 | 68 61 72 61 63 74 65 72 | '(714 c|haracter|
|00001cd0| 73 29 27 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |s)'.if t|est -f '|
|00001ce0| 73 79 73 2f 61 74 61 72 | 69 2f 74 74 79 69 6f 2e |sys/atar|i/ttyio.|
|00001cf0| 63 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |c'.then.|.echo sh|
|00001d00| 61 72 3a 20 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: will| not ove|
|00001d10| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|00001d20| 20 66 69 6c 65 20 22 27 | 73 79 73 2f 61 74 61 72 | file "'|sys/atar|
|00001d30| 69 2f 74 74 79 69 6f 2e | 63 27 22 0a 65 6c 73 65 |i/ttyio.|c'".else|
|00001d40| 0a 63 61 74 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |.cat << |\SHAR_EO|
|00001d50| 46 20 3e 20 27 73 79 73 | 2f 61 74 61 72 69 2f 74 |F > 'sys|/atari/t|
|00001d60| 74 79 69 6f 2e 63 27 0a | 2f 2a 0a 20 2a 20 4e 61 |tyio.c'.|/*. * Na|
|00001d70| 6d 65 3a 09 4d 69 63 72 | 6f 45 4d 41 43 53 0a 20 |me:.Micr|oEMACS. |
|00001d80| 2a 09 09 41 74 61 72 69 | 20 35 32 30 53 54 20 74 |*..Atari| 520ST t|
|00001d90| 65 72 6d 69 6e 61 6c 20 | 49 2f 4f 2e 0a 20 2a 20 |erminal |I/O.. * |
|00001da0| 56 65 72 73 69 6f 6e 3a | 09 33 30 0a 20 2a 20 4c |Version:|.30. * L|
|00001db0| 61 73 74 20 65 64 69 74 | 3a 09 30 35 2d 46 65 62 |ast edit|:.05-Feb|
|00001dc0| 2d 38 36 0a 20 2a 20 42 | 79 3a 09 09 72 65 78 3a |-86. * B|y:..rex:|
|00001dd0| 3a 63 6f 6e 72 6f 79 0a | 20 2a 09 09 64 65 63 76 |:conroy.| *..decv|
|00001de0| 61 78 21 64 65 63 77 72 | 6c 21 64 65 63 2d 72 68 |ax!decwr|l!dec-rh|
|00001df0| 65 61 21 64 65 63 2d 72 | 65 78 21 63 6f 6e 72 6f |ea!dec-r|ex!conro|
|00001e00| 79 0a 20 2a 2f 0a 23 69 | 6e 63 6c 75 64 65 09 22 |y. */.#i|nclude."|
|00001e10| 64 65 66 2e 68 22 0a 23 | 69 6e 63 6c 75 64 65 09 |def.h".#|include.|
|00001e20| 3c 6f 73 62 69 6e 64 2e | 68 3e 0a 0a 69 6e 74 09 |<osbind.|h>..int.|
|00001e30| 6e 72 6f 77 3b 09 09 09 | 09 2f 2a 20 54 65 72 6d |nrow;...|./* Term|
|00001e40| 69 6e 61 6c 20 73 69 7a | 65 2c 20 72 6f 77 73 2e |inal siz|e, rows.|
|00001e50| 09 09 2a 2f 0a 69 6e 74 | 09 6e 63 6f 6c 3b 09 09 |..*/.int|.ncol;..|
|00001e60| 09 09 2f 2a 20 54 65 72 | 6d 69 6e 61 6c 20 73 69 |../* Ter|minal si|
|00001e70| 7a 65 2c 20 63 6f 6c 75 | 6d 6e 73 2e 09 2a 2f 0a |ze, colu|mns..*/.|
|00001e80| 0a 2f 2a 0a 20 2a 20 4f | 70 65 6e 2e 20 44 65 74 |./*. * O|pen. Det|
|00001e90| 65 72 6d 69 6e 65 20 74 | 68 65 20 73 69 7a 65 20 |ermine t|he size |
|00001ea0| 6f 66 0a 20 2a 20 74 68 | 65 20 64 69 73 70 6c 61 |of. * th|e displa|
|00001eb0| 79 20 62 79 20 63 61 6c | 6c 69 6e 67 20 74 68 65 |y by cal|ling the|
|00001ec0| 20 61 73 73 65 6d 62 6c | 79 0a 20 2a 20 6c 61 6e | assembl|y. * lan|
|00001ed0| 67 75 61 67 65 20 22 67 | 65 74 6e 72 6f 77 22 20 |guage "g|etnrow" |
|00001ee0| 61 6e 64 20 22 67 65 74 | 6e 63 6f 6c 22 0a 20 2a |and "get|ncol". *|
|00001ef0| 20 72 6f 75 74 69 6e 65 | 73 2e 0a 20 2a 2f 0a 74 | routine|s.. */.t|
|00001f00| 74 6f 70 65 6e 28 29 0a | 7b 0a 09 6e 72 6f 77 20 |topen().|{..nrow |
|00001f10| 3d 20 67 65 74 6e 72 6f | 77 28 29 3b 0a 09 69 66 |= getnro|w();..if|
|00001f20| 20 28 6e 72 6f 77 20 3e | 20 4e 52 4f 57 29 0a 09 | (nrow >| NROW)..|
|00001f30| 09 6e 72 6f 77 20 3d 20 | 4e 52 4f 57 3b 0a 09 6e |.nrow = |NROW;..n|
|00001f40| 63 6f 6c 20 3d 20 67 65 | 74 6e 63 6f 6c 28 29 3b |col = ge|tncol();|
|00001f50| 0a 09 69 66 20 28 6e 63 | 6f 6c 20 3e 20 4e 43 4f |..if (nc|ol > NCO|
|00001f60| 4c 29 0a 09 09 6e 63 6f | 6c 20 3d 20 4e 43 4f 4c |L)...nco|l = NCOL|
|00001f70| 3b 0a 7d 0a 2f 2a 0a 20 | 2a 20 4e 6f 2d 6f 70 2e |;.}./*. |* No-op.|
|00001f80| 0a 20 2a 2f 0a 74 74 63 | 6c 6f 73 65 28 29 0a 7b |. */.ttc|lose().{|
|00001f90| 0a 7d 0a 0a 2f 2a 0a 20 | 2a 20 50 75 74 20 63 68 |.}../*. |* Put ch|
|00001fa0| 61 72 61 63 74 65 72 2e | 0a 20 2a 2f 0a 74 74 70 |aracter.|. */.ttp|
|00001fb0| 75 74 63 28 63 29 0a 7b | 0a 09 43 72 61 77 69 6f |utc(c).{|..Crawio|
|00001fc0| 28 63 20 26 20 30 78 37 | 46 29 3b 0a 7d 0a 0a 2f |(c & 0x7|F);.}../|
|00001fd0| 2a 0a 20 2a 20 4e 6f 2d | 6f 70 2e 0a 20 2a 2f 0a |*. * No-|op.. */.|
|00001fe0| 74 74 66 6c 75 73 68 28 | 29 0a 7b 0a 7d 0a 0a 2f |ttflush(|).{.}../|
|00001ff0| 2a 0a 20 2a 20 47 65 74 | 20 63 68 61 72 61 63 74 |*. * Get| charact|
|00002000| 65 72 73 2e 0a 20 2a 2f | 0a 74 74 67 65 74 63 28 |ers.. */|.ttgetc(|
|00002010| 29 0a 7b 0a 09 72 65 74 | 75 72 6e 20 28 43 72 61 |).{..ret|urn (Cra|
|00002020| 77 63 69 6e 28 29 20 26 | 20 30 78 37 46 29 3b 0a |wcin() &| 0x7F);.|
|00002030| 7d 0a 53 48 41 52 5f 45 | 4f 46 0a 69 66 20 74 65 |}.SHAR_E|OF.if te|
|00002040| 73 74 20 37 31 34 20 2d | 6e 65 20 22 60 77 63 20 |st 714 -|ne "`wc |
|00002050| 2d 63 20 3c 20 27 73 79 | 73 2f 61 74 61 72 69 2f |-c < 'sy|s/atari/|
|00002060| 74 74 79 69 6f 2e 63 27 | 60 22 0a 74 68 65 6e 0a |ttyio.c'|`".then.|
|00002070| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 65 72 72 6f |.echo sh|ar: erro|
|00002080| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 22 |r transm|itting "|
|00002090| 27 73 79 73 2f 61 74 61 | 72 69 2f 74 74 79 69 6f |'sys/ata|ri/ttyio|
|000020a0| 2e 63 27 22 20 27 28 73 | 68 6f 75 6c 64 20 68 61 |.c'" '(s|hould ha|
|000020b0| 76 65 20 62 65 65 6e 20 | 37 31 34 20 63 68 61 72 |ve been |714 char|
|000020c0| 61 63 74 65 72 73 29 27 | 0a 66 69 0a 66 69 0a 65 |acters)'|.fi.fi.e|
|000020d0| 63 68 6f 20 73 68 61 72 | 3a 20 65 78 74 72 61 63 |cho shar|: extrac|
|000020e0| 74 69 6e 67 20 22 27 73 | 79 73 2f 61 74 61 72 69 |ting "'s|ys/atari|
|000020f0| 2f 78 65 6d 61 63 73 2e | 62 61 74 27 22 20 27 28 |/xemacs.|bat'" '(|
|00002100| 37 34 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |74 chara|cters)'.|
|00002110| 69 66 20 74 65 73 74 20 | 2d 66 20 27 73 79 73 2f |if test |-f 'sys/|
|00002120| 61 74 61 72 69 2f 78 65 | 6d 61 63 73 2e 62 61 74 |atari/xe|macs.bat|
|00002130| 27 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |'.then..|echo sha|
|00002140| 72 3a 20 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |r: will |not over|
|00002150| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00002160| 66 69 6c 65 20 22 27 73 | 79 73 2f 61 74 61 72 69 |file "'s|ys/atari|
|00002170| 2f 78 65 6d 61 63 73 2e | 62 61 74 27 22 0a 65 6c |/xemacs.|bat'".el|
|00002180| 73 65 0a 63 61 74 20 3c | 3c 20 5c 53 48 41 52 5f |se.cat <|< \SHAR_|
|00002190| 45 4f 46 20 3e 20 27 73 | 79 73 2f 61 74 61 72 69 |EOF > 's|ys/atari|
|000021a0| 2f 78 65 6d 61 63 73 2e | 62 61 74 27 0a 61 3a 6c |/xemacs.|bat'.a:l|
|000021b0| 69 6e 6b 36 38 20 5b 63 | 6f 5b 58 45 4d 41 43 53 |ink68 [c|o[XEMACS|
|000021c0| 2e 49 4e 50 5d 5d 0a 61 | 3a 72 65 6c 6d 6f 64 20 |.INP]].a|:relmod |
|000021d0| 58 45 4d 41 43 53 2e 36 | 38 4b 20 58 45 4d 41 43 |XEMACS.6|8K XEMAC|
|000021e0| 53 2e 54 4f 53 0a 61 3a | 72 6d 20 58 45 4d 41 43 |S.TOS.a:|rm XEMAC|
|000021f0| 53 2e 36 38 4b 0a 0a 53 | 48 41 52 5f 45 4f 46 0a |S.68K..S|HAR_EOF.|
|00002200| 69 66 20 74 65 73 74 20 | 37 34 20 2d 6e 65 20 22 |if test |74 -ne "|
|00002210| 60 77 63 20 2d 63 20 3c | 20 27 73 79 73 2f 61 74 |`wc -c <| 'sys/at|
|00002220| 61 72 69 2f 78 65 6d 61 | 63 73 2e 62 61 74 27 60 |ari/xema|cs.bat'`|
|00002230| 22 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |".then..|echo sha|
|00002240| 72 3a 20 65 72 72 6f 72 | 20 74 72 61 6e 73 6d 69 |r: error| transmi|
|00002250| 74 74 69 6e 67 20 22 27 | 73 79 73 2f 61 74 61 72 |tting "'|sys/atar|
|00002260| 69 2f 78 65 6d 61 63 73 | 2e 62 61 74 27 22 20 27 |i/xemacs|.bat'" '|
|00002270| 28 73 68 6f 75 6c 64 20 | 68 61 76 65 20 62 65 65 |(should |have bee|
|00002280| 6e 20 37 34 20 63 68 61 | 72 61 63 74 65 72 73 29 |n 74 cha|racters)|
|00002290| 27 0a 66 69 0a 66 69 0a | 65 63 68 6f 20 73 68 61 |'.fi.fi.|echo sha|
|000022a0| 72 3a 20 65 78 74 72 61 | 63 74 69 6e 67 20 22 27 |r: extra|cting "'|
|000022b0| 73 79 73 2f 61 74 61 72 | 69 2f 78 65 6d 61 63 73 |sys/atar|i/xemacs|
|000022c0| 2e 69 6e 70 27 22 20 27 | 28 32 35 36 20 63 68 61 |.inp'" '|(256 cha|
|000022d0| 72 61 63 74 65 72 73 29 | 27 0a 69 66 20 74 65 73 |racters)|'.if tes|
|000022e0| 74 20 2d 66 20 27 73 79 | 73 2f 61 74 61 72 69 2f |t -f 'sy|s/atari/|
|000022f0| 78 65 6d 61 63 73 2e 69 | 6e 70 27 0a 74 68 65 6e |xemacs.i|np'.then|
|00002300| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00002310| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00002320| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00002330| 27 73 79 73 2f 61 74 61 | 72 69 2f 78 65 6d 61 63 |'sys/ata|ri/xemac|
|00002340| 73 2e 69 6e 70 27 22 0a | 65 6c 73 65 0a 63 61 74 |s.inp'".|else.cat|
|00002350| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|00002360| 27 73 79 73 2f 61 74 61 | 72 69 2f 78 65 6d 61 63 |'sys/ata|ri/xemac|
|00002370| 73 2e 69 6e 70 27 0a 5b | 55 5d 20 58 45 4d 41 43 |s.inp'.[|U] XEMAC|
|00002380| 53 2e 36 38 4b 3d 41 3a | 47 45 4d 53 2e 4f 2c 0a |S.68K=A:|GEMS.O,.|
|00002390| 42 41 53 49 43 2e 4f 2c | 0a 42 55 46 46 45 52 2e |BASIC.O,|.BUFFER.|
|000023a0| 4f 2c 0a 43 49 4e 46 4f | 2e 4f 2c 0a 44 49 53 50 |O,.CINFO|.O,.DISP|
|000023b0| 4c 41 59 2e 4f 2c 0a 45 | 43 48 4f 2e 4f 2c 0a 45 |LAY.O,.E|CHO.O,.E|
|000023c0| 58 54 45 4e 44 2e 4f 2c | 0a 46 49 4c 45 2e 4f 2c |XTEND.O,|.FILE.O,|
|000023d0| 0a 46 49 4c 45 49 4f 2e | 4f 2c 0a 47 45 54 4e 2e |.FILEIO.|O,.GETN.|
|000023e0| 4f 2c 0a 4b 42 44 2e 4f | 2c 0a 4c 49 4e 45 2e 4f |O,.KBD.O|,.LINE.O|
|000023f0| 2c 0a 4d 41 49 4e 2e 4f | 2c 0a 52 41 4e 44 4f 4d |,.MAIN.O|,.RANDOM|
|00002400| 2e 4f 2c 0a 52 45 47 49 | 4f 4e 2e 4f 2c 0a 53 45 |.O,.REGI|ON.O,.SE|
|00002410| 41 52 43 48 2e 4f 2c 0a | 53 50 41 57 4e 2e 4f 2c |ARCH.O,.|SPAWN.O,|
|00002420| 0a 53 59 4d 42 4f 4c 2e | 4f 2c 0a 54 54 59 2e 4f |.SYMBOL.|O,.TTY.O|
|00002430| 2c 0a 54 54 59 4b 42 44 | 2e 4f 2c 0a 54 54 59 49 |,.TTYKBD|.O,.TTYI|
|00002440| 4f 2e 4f 2c 0a 56 45 52 | 53 49 4f 4e 2e 4f 2c 0a |O.O,.VER|SION.O,.|
|00002450| 57 49 4e 44 4f 57 2e 4f | 2c 0a 57 4f 52 44 2e 4f |WINDOW.O|,.WORD.O|
|00002460| 2c 0a 41 3a 4f 53 42 49 | 4e 44 2e 4f 2c 0a 41 3a |,.A:OSBI|ND.O,.A:|
|00002470| 47 45 4d 4c 49 42 0a 53 | 48 41 52 5f 45 4f 46 0a |GEMLIB.S|HAR_EOF.|
|00002480| 69 66 20 74 65 73 74 20 | 32 35 36 20 2d 6e 65 20 |if test |256 -ne |
|00002490| 22 60 77 63 20 2d 63 20 | 3c 20 27 73 79 73 2f 61 |"`wc -c |< 'sys/a|
|000024a0| 74 61 72 69 2f 78 65 6d | 61 63 73 2e 69 6e 70 27 |tari/xem|acs.inp'|
|000024b0| 60 22 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |`".then.|.echo sh|
|000024c0| 61 72 3a 20 65 72 72 6f | 72 20 74 72 61 6e 73 6d |ar: erro|r transm|
|000024d0| 69 74 74 69 6e 67 20 22 | 27 73 79 73 2f 61 74 61 |itting "|'sys/ata|
|000024e0| 72 69 2f 78 65 6d 61 63 | 73 2e 69 6e 70 27 22 20 |ri/xemac|s.inp'" |
|000024f0| 27 28 73 68 6f 75 6c 64 | 20 68 61 76 65 20 62 65 |'(should| have be|
|00002500| 65 6e 20 32 35 36 20 63 | 68 61 72 61 63 74 65 72 |en 256 c|haracter|
|00002510| 73 29 27 0a 66 69 0a 66 | 69 0a 65 63 68 6f 20 73 |s)'.fi.f|i.echo s|
|00002520| 68 61 72 3a 20 64 6f 6e | 65 20 77 69 74 68 20 64 |har: don|e with d|
|00002530| 69 72 65 63 74 6f 72 79 | 20 22 27 73 79 73 2f 61 |irectory| "'sys/a|
|00002540| 74 61 72 69 27 22 0a 69 | 66 20 74 65 73 74 20 21 |tari'".i|f test !|
|00002550| 20 2d 64 20 27 73 79 73 | 2f 63 70 6d 38 36 27 0a | -d 'sys|/cpm86'.|
|00002560| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00002570| 20 63 72 65 61 74 69 6e | 67 20 64 69 72 65 63 74 | creatin|g direct|
|00002580| 6f 72 79 20 22 27 73 79 | 73 2f 63 70 6d 38 36 27 |ory "'sy|s/cpm86'|
|00002590| 22 0a 09 6d 6b 64 69 72 | 20 27 73 79 73 2f 63 70 |"..mkdir| 'sys/cp|
|000025a0| 6d 38 36 27 0a 66 69 0a | 65 63 68 6f 20 73 68 61 |m86'.fi.|echo sha|
|000025b0| 72 3a 20 65 78 74 72 61 | 63 74 69 6e 67 20 22 27 |r: extra|cting "'|
|000025c0| 73 79 73 2f 63 70 6d 38 | 36 2f 66 69 6c 65 69 6f |sys/cpm8|6/fileio|
|000025d0| 2e 63 27 22 20 27 28 33 | 32 34 32 20 63 68 61 72 |.c'" '(3|242 char|
|000025e0| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|000025f0| 20 2d 66 20 27 73 79 73 | 2f 63 70 6d 38 36 2f 66 | -f 'sys|/cpm86/f|
|00002600| 69 6c 65 69 6f 2e 63 27 | 0a 74 68 65 6e 0a 09 65 |ileio.c'|.then..e|
|00002610| 63 68 6f 20 73 68 61 72 | 3a 20 77 69 6c 6c 20 6e |cho shar|: will n|
|00002620| 6f 74 20 6f 76 65 72 2d | 77 72 69 74 65 20 65 78 |ot over-|write ex|
|00002630| 69 73 74 69 6e 67 20 66 | 69 6c 65 20 22 27 73 79 |isting f|ile "'sy|
|00002640| 73 2f 63 70 6d 38 36 2f | 66 69 6c 65 69 6f 2e 63 |s/cpm86/|fileio.c|
|00002650| 27 22 0a 65 6c 73 65 0a | 63 61 74 20 3c 3c 20 5c |'".else.|cat << \|
|00002660| 53 48 41 52 5f 45 4f 46 | 20 3e 20 27 73 79 73 2f |SHAR_EOF| > 'sys/|
|00002670| 63 70 6d 38 36 2f 66 69 | 6c 65 69 6f 2e 63 27 0a |cpm86/fi|leio.c'.|
|00002680| 2f 2a 0a 20 2a 20 4e 61 | 6d 65 3a 09 4d 69 63 72 |/*. * Na|me:.Micr|
|00002690| 6f 45 4d 41 43 53 0a 20 | 2a 09 09 43 50 2f 4d 2d |oEMACS. |*..CP/M-|
|000026a0| 38 36 20 66 69 6c 65 20 | 49 2f 4f 2e 0a 20 2a 20 |86 file |I/O.. * |
|000026b0| 56 65 72 73 69 6f 6e 3a | 09 32 39 0a 20 2a 20 4c |Version:|.29. * L|
|000026c0| 61 73 74 20 65 64 69 74 | 3a 09 30 35 2d 46 65 62 |ast edit|:.05-Feb|
|000026d0| 2d 38 36 0a 20 2a 20 42 | 79 3a 09 09 72 65 78 3a |-86. * B|y:..rex:|
|000026e0| 3a 63 6f 6e 72 6f 79 0a | 20 2a 09 09 64 65 63 76 |:conroy.| *..decv|
|000026f0| 61 78 21 64 65 63 77 72 | 6c 21 64 65 63 2d 72 68 |ax!decwr|l!dec-rh|
|00002700| 65 61 21 64 65 63 2d 72 | 65 78 21 63 6f 6e 72 6f |ea!dec-r|ex!conro|
|00002710| 79 0a 20 2a 2f 0a 23 69 | 6e 63 6c 75 64 65 09 22 |y. */.#i|nclude."|
|00002720| 64 65 66 2e 68 22 0a 0a | 73 74 61 74 69 63 09 46 |def.h"..|static.F|
|00002730| 49 4c 45 09 2a 66 66 70 | 3b 0a 0a 2f 2a 0a 20 2a |ILE.*ffp|;../*. *|
|00002740| 20 4f 70 65 6e 20 61 20 | 66 69 6c 65 20 66 6f 72 | Open a |file for|
|00002750| 20 72 65 61 64 69 6e 67 | 2e 0a 20 2a 2f 0a 66 66 | reading|.. */.ff|
|00002760| 72 6f 70 65 6e 28 66 6e | 29 0a 63 68 61 72 09 2a |ropen(fn|).char.*|
|00002770| 66 6e 3b 0a 7b 0a 09 69 | 66 20 28 28 66 66 70 3d |fn;.{..i|f ((ffp=|
|00002780| 66 6f 70 65 6e 28 66 6e | 2c 20 22 72 22 29 29 20 |fopen(fn|, "r")) |
|00002790| 3d 3d 20 4e 55 4c 4c 29 | 0a 09 09 72 65 74 75 72 |== NULL)|...retur|
|000027a0| 6e 20 28 46 49 4f 46 4e | 46 29 3b 0a 09 72 65 74 |n (FIOFN|F);..ret|
|000027b0| 75 72 6e 20 28 46 49 4f | 53 55 43 29 3b 0a 7d 0a |urn (FIO|SUC);.}.|
|000027c0| 0a 2f 2a 0a 20 2a 20 4f | 70 65 6e 20 61 20 66 69 |./*. * O|pen a fi|
|000027d0| 6c 65 20 66 6f 72 20 77 | 72 69 74 69 6e 67 2e 0a |le for w|riting..|
|000027e0| 20 2a 20 52 65 74 75 72 | 6e 20 54 52 55 45 20 69 | * Retur|n TRUE i|
|000027f0| 66 20 61 6c 6c 20 69 73 | 20 77 65 6c 6c 2c 20 61 |f all is| well, a|
|00002800| 6e 64 0a 20 2a 20 46 41 | 4c 53 45 20 6f 6e 20 65 |nd. * FA|LSE on e|
|00002810| 72 72 6f 72 20 28 63 61 | 6e 6e 6f 74 20 63 72 65 |rror (ca|nnot cre|
|00002820| 61 74 65 29 2e 0a 20 2a | 2f 0a 66 66 77 6f 70 65 |ate).. *|/.ffwope|
|00002830| 6e 28 66 6e 29 0a 63 68 | 61 72 09 2a 66 6e 3b 0a |n(fn).ch|ar.*fn;.|
|00002840| 7b 0a 09 69 66 20 28 28 | 66 66 70 3d 66 6f 70 65 |{..if ((|ffp=fope|
|00002850| 6e 28 66 6e 2c 20 22 77 | 22 29 29 20 3d 3d 20 4e |n(fn, "w|")) == N|
|00002860| 55 4c 4c 29 20 7b 0a 09 | 09 65 70 72 69 6e 74 66 |ULL) {..|.eprintf|
|00002870| 28 22 43 61 6e 6e 6f 74 | 20 6f 70 65 6e 20 66 69 |("Cannot| open fi|
|00002880| 6c 65 20 66 6f 72 20 77 | 72 69 74 69 6e 67 22 29 |le for w|riting")|
|00002890| 3b 0a 09 09 72 65 74 75 | 72 6e 20 28 46 49 4f 45 |;...retu|rn (FIOE|
|000028a0| 52 52 29 3b 0a 09 7d 0a | 09 72 65 74 75 72 6e 20 |RR);..}.|.return |
|000028b0| 28 46 49 4f 53 55 43 29 | 3b 0a 7d 0a 0a 2f 2a 0a |(FIOSUC)|;.}../*.|
|000028c0| 20 2a 20 43 6c 6f 73 65 | 20 61 20 66 69 6c 65 2e | * Close| a file.|
|000028d0| 0a 20 2a 20 53 68 6f 75 | 6c 64 20 6c 6f 6f 6b 20 |. * Shou|ld look |
|000028e0| 61 74 20 74 68 65 20 73 | 74 61 74 75 73 2e 0a 20 |at the s|tatus.. |
|000028f0| 2a 2f 0a 66 66 63 6c 6f | 73 65 28 29 0a 7b 0a 09 |*/.ffclo|se().{..|
|00002900| 66 63 6c 6f 73 65 28 66 | 66 70 29 3b 0a 09 72 65 |fclose(f|fp);..re|
|00002910| 74 75 72 6e 20 28 46 49 | 4f 53 55 43 29 3b 0a 7d |turn (FI|OSUC);.}|
|00002920| 0a 0a 2f 2a 0a 20 2a 20 | 57 72 69 74 65 20 61 20 |../*. * |Write a |
|00002930| 6c 69 6e 65 20 74 6f 20 | 74 68 65 20 61 6c 72 65 |line to |the alre|
|00002940| 61 64 79 0a 20 2a 20 6f | 70 65 6e 65 64 20 66 69 |ady. * o|pened fi|
|00002950| 6c 65 2e 20 54 68 65 20 | 22 62 75 66 22 20 70 6f |le. The |"buf" po|
|00002960| 69 6e 74 73 20 74 6f 20 | 74 68 65 0a 20 2a 20 62 |ints to |the. * b|
|00002970| 75 66 66 65 72 2c 20 61 | 6e 64 20 74 68 65 20 22 |uffer, a|nd the "|
|00002980| 6e 62 75 66 22 20 69 73 | 20 69 74 73 20 6c 65 6e |nbuf" is| its len|
|00002990| 67 74 68 2c 20 6c 65 73 | 73 0a 20 2a 20 74 68 65 |gth, les|s. * the|
|000029a0| 20 66 72 65 65 20 6e 65 | 77 6c 69 6e 65 2e 20 52 | free ne|wline. R|
|000029b0| 65 74 75 72 6e 20 74 68 | 65 20 73 74 61 74 75 73 |eturn th|e status|
|000029c0| 2e 0a 20 2a 20 43 68 65 | 63 6b 20 6f 6e 6c 79 20 |.. * Che|ck only |
|000029d0| 61 74 20 74 68 65 20 6e | 65 77 6c 69 6e 65 2e 0a |at the n|ewline..|
|000029e0| 20 2a 2f 0a 66 66 70 75 | 74 6c 69 6e 65 28 62 75 | */.ffpu|tline(bu|
|000029f0| 66 2c 20 6e 62 75 66 29 | 0a 72 65 67 69 73 74 65 |f, nbuf)|.registe|
|00002a00| 72 20 63 68 61 72 09 62 | 75 66 5b 5d 3b 0a 7b 0a |r char.b|uf[];.{.|
|00002a10| 09 72 65 67 69 73 74 65 | 72 20 69 6e 74 09 69 3b |.registe|r int.i;|
|00002a20| 0a 0a 09 66 6f 72 20 28 | 69 3d 30 3b 20 69 3c 6e |...for (|i=0; i<n|
|00002a30| 62 75 66 3b 20 2b 2b 69 | 29 0a 09 09 70 75 74 63 |buf; ++i|)...putc|
|00002a40| 28 62 75 66 5b 69 5d 26 | 30 78 46 46 2c 20 66 66 |(buf[i]&|0xFF, ff|
|00002a50| 70 29 3b 0a 09 70 75 74 | 63 28 27 5c 6e 27 2c 20 |p);..put|c('\n', |
|00002a60| 66 66 70 29 3b 0a 09 69 | 66 20 28 66 65 72 72 6f |ffp);..i|f (ferro|
|00002a70| 72 28 66 66 70 29 20 21 | 3d 20 46 41 4c 53 45 29 |r(ffp) !|= FALSE)|
|00002a80| 20 7b 0a 09 09 65 70 72 | 69 6e 74 66 28 22 57 72 | {...epr|intf("Wr|
|00002a90| 69 74 65 20 49 2f 4f 20 | 65 72 72 6f 72 22 29 3b |ite I/O |error");|
|00002aa0| 0a 09 09 72 65 74 75 72 | 6e 20 28 46 49 4f 45 52 |...retur|n (FIOER|
|00002ab0| 52 29 3b 0a 09 7d 0a 09 | 72 65 74 75 72 6e 20 28 |R);..}..|return (|
|00002ac0| 46 49 4f 53 55 43 29 3b | 0a 7d 0a 0a 2f 2a 0a 20 |FIOSUC);|.}../*. |
|00002ad0| 2a 20 52 65 61 64 20 61 | 20 6c 69 6e 65 20 66 72 |* Read a| line fr|
|00002ae0| 6f 6d 20 61 20 66 69 6c | 65 2c 20 61 6e 64 20 73 |om a fil|e, and s|
|00002af0| 74 6f 72 65 20 74 68 65 | 20 62 79 74 65 73 0a 20 |tore the| bytes. |
|00002b00| 2a 20 69 6e 20 74 68 65 | 20 73 75 70 70 6c 69 65 |* in the| supplie|
|00002b10| 64 20 62 75 66 66 65 72 | 2e 20 53 74 6f 70 20 6f |d buffer|. Stop o|
|00002b20| 6e 20 65 6e 64 20 6f 66 | 20 66 69 6c 65 20 6f 72 |n end of| file or|
|00002b30| 20 65 6e 64 20 6f 66 0a | 20 2a 20 6c 69 6e 65 2e | end of.| * line.|
|00002b40| 20 44 6f 6e 27 74 20 67 | 65 74 20 75 70 73 65 74 | Don't g|et upset|
|00002b50| 20 62 79 20 66 69 6c 65 | 73 20 74 68 61 74 20 64 | by file|s that d|
|00002b60| 6f 6e 27 74 20 68 61 76 | 65 20 61 6e 20 65 6e 64 |on't hav|e an end|
|00002b70| 20 6f 66 0a 20 2a 20 6c | 69 6e 65 20 6f 6e 20 74 | of. * l|ine on t|
|00002b80| 68 65 20 6c 61 73 74 20 | 6c 69 6e 65 3b 20 74 68 |he last |line; th|
|00002b90| 69 73 20 73 65 65 6d 20 | 74 6f 20 62 65 20 63 6f |is seem |to be co|
|00002ba0| 6d 6d 6f 6e 20 6f 6e 20 | 43 50 2f 4d 2d 38 36 20 |mmon on |CP/M-86 |
|00002bb0| 61 6e 64 0a 20 2a 20 4d | 53 2d 44 4f 53 20 28 74 |and. * M|S-DOS (t|
|00002bc0| 68 65 20 73 75 73 70 65 | 63 74 65 64 20 63 75 6c |he suspe|cted cul|
|00002bd0| 70 72 69 74 20 69 73 20 | 56 41 58 2f 56 4d 53 20 |prit is |VAX/VMS |
|00002be0| 6b 65 72 6d 69 74 2c 20 | 62 75 74 20 74 68 69 73 |kermit, |but this|
|00002bf0| 0a 20 2a 20 68 61 73 20 | 6e 6f 74 20 62 65 65 6e |. * has |not been|
|00002c00| 20 63 6f 6e 66 69 72 6d | 65 64 2e 20 49 66 20 74 | confirm|ed. If t|
|00002c10| 68 69 73 20 69 73 20 73 | 75 66 66 69 63 69 65 6e |his is s|ufficien|
|00002c20| 74 6c 79 20 72 65 73 65 | 61 72 63 68 65 64 0a 20 |tly rese|arched. |
|00002c30| 2a 20 69 74 20 6d 61 79 | 20 62 65 20 70 6f 73 73 |* it may| be poss|
|00002c40| 69 62 6c 65 20 74 6f 20 | 70 75 6c 6c 20 74 68 69 |ible to |pull thi|
|00002c50| 73 20 6b 6c 75 64 67 65 | 29 2e 20 44 65 6c 65 74 |s kludge|). Delet|
|00002c60| 65 20 61 6e 79 20 43 52 | 0a 20 2a 20 66 6f 6c 6c |e any CR|. * foll|
|00002c70| 6f 77 65 64 20 62 79 20 | 61 6e 20 4c 46 2e 20 54 |owed by |an LF. T|
|00002c80| 68 69 73 20 69 73 20 6d | 61 69 6e 6c 79 20 66 6f |his is m|ainly fo|
|00002c90| 72 20 72 75 6e 6f 66 66 | 20 64 6f 63 75 6d 65 6e |r runoff| documen|
|00002ca0| 74 73 2c 0a 20 2a 20 62 | 6f 74 68 20 6f 6e 20 56 |ts,. * b|oth on V|
|00002cb0| 4d 53 20 61 6e 64 20 6f | 6e 20 55 6c 74 72 69 78 |MS and o|n Ultrix|
|00002cc0| 20 28 74 68 65 79 20 67 | 65 74 20 63 6f 70 69 65 | (they g|et copie|
|00002cd0| 64 20 6f 76 65 72 20 66 | 72 6f 6d 0a 20 2a 20 56 |d over f|rom. * V|
|00002ce0| 4d 53 20 73 79 73 74 65 | 6d 73 20 77 69 74 68 20 |MS syste|ms with |
|00002cf0| 44 45 43 6e 65 74 29 2e | 0a 20 2a 2f 0a 66 66 67 |DECnet).|. */.ffg|
|00002d00| 65 74 6c 69 6e 65 28 62 | 75 66 2c 20 6e 62 75 66 |etline(b|uf, nbuf|
|00002d10| 29 0a 72 65 67 69 73 74 | 65 72 20 63 68 61 72 09 |).regist|er char.|
|00002d20| 62 75 66 5b 5d 3b 0a 7b | 0a 09 72 65 67 69 73 74 |buf[];.{|..regist|
|00002d30| 65 72 20 69 6e 74 09 63 | 3b 0a 09 72 65 67 69 73 |er int.c|;..regis|
|00002d40| 74 65 72 20 69 6e 74 09 | 69 3b 0a 0a 09 69 20 3d |ter int.|i;...i =|
|00002d50| 20 30 3b 0a 09 66 6f 72 | 20 28 3b 3b 29 20 7b 0a | 0;..for| (;;) {.|
|00002d60| 09 09 63 20 3d 20 67 65 | 74 63 28 66 66 70 29 3b |..c = ge|tc(ffp);|
|00002d70| 0a 09 09 69 66 20 28 63 | 20 3d 3d 20 27 5c 72 27 |...if (c| == '\r'|
|00002d80| 29 20 7b 09 09 2f 2a 20 | 44 65 6c 65 74 65 20 61 |) {../* |Delete a|
|00002d90| 6e 79 20 6e 6f 6e 2d 73 | 74 72 61 79 09 2a 2f 0a |ny non-s|tray.*/.|
|00002da0| 09 09 09 63 20 3d 20 67 | 65 74 63 28 66 66 70 29 |...c = g|etc(ffp)|
|00002db0| 3b 09 09 2f 2a 20 63 61 | 72 72 69 61 67 65 20 72 |;../* ca|rriage r|
|00002dc0| 65 74 75 72 6e 73 2e 09 | 2a 2f 0a 09 09 09 69 66 |eturns..|*/....if|
|00002dd0| 20 28 63 20 21 3d 20 27 | 5c 6e 27 29 20 7b 0a 09 | (c != '|\n') {..|
|00002de0| 09 09 09 69 66 20 28 69 | 20 3e 3d 20 6e 62 75 66 |...if (i| >= nbuf|
|00002df0| 2d 31 29 20 7b 0a 09 09 | 09 09 09 65 70 72 69 6e |-1) {...|...eprin|
|00002e00| 74 66 28 22 46 69 6c 65 | 20 68 61 73 20 6c 6f 6e |tf("File| has lon|
|00002e10| 67 20 6c 69 6e 65 22 29 | 3b 0a 09 09 09 09 09 72 |g line")|;......r|
|00002e20| 65 74 75 72 6e 20 28 46 | 49 4f 45 52 52 29 3b 0a |eturn (F|IOERR);.|
|00002e30| 09 09 09 09 7d 0a 09 09 | 09 09 62 75 66 5b 69 2b |....}...|..buf[i+|
|00002e40| 2b 5d 20 3d 20 27 5c 72 | 27 3b 0a 09 09 09 7d 0a |+] = '\r|';....}.|
|00002e50| 09 09 7d 0a 09 09 69 66 | 20 28 63 3d 3d 45 4f 46 |..}...if| (c==EOF|
|00002e60| 20 7c 7c 20 63 3d 3d 27 | 5c 6e 27 29 09 09 2f 2a | || c=='|\n')../*|
|00002e70| 20 45 6e 64 20 6f 66 20 | 6c 69 6e 65 2e 09 09 2a | End of |line...*|
|00002e80| 2f 0a 09 09 09 62 72 65 | 61 6b 3b 0a 09 09 69 66 |/....bre|ak;...if|
|00002e90| 20 28 69 20 3e 3d 20 6e | 62 75 66 2d 31 29 20 7b | (i >= n|buf-1) {|
|00002ea0| 0a 09 09 09 65 70 72 69 | 6e 74 66 28 22 46 69 6c |....epri|ntf("Fil|
|00002eb0| 65 20 68 61 73 20 6c 6f | 6e 67 20 6c 69 6e 65 22 |e has lo|ng line"|
|00002ec0| 29 3b 0a 09 09 09 72 65 | 74 75 72 6e 20 28 46 49 |);....re|turn (FI|
|00002ed0| 4f 45 52 52 29 3b 0a 09 | 09 7d 0a 09 09 62 75 66 |OERR);..|.}...buf|
|00002ee0| 5b 69 2b 2b 5d 20 3d 20 | 63 3b 0a 09 7d 0a 09 69 |[i++] = |c;..}..i|
|00002ef0| 66 20 28 63 20 3d 3d 20 | 45 4f 46 29 20 7b 09 09 |f (c == |EOF) {..|
|00002f00| 09 09 2f 2a 20 45 6e 64 | 20 6f 66 20 66 69 6c 65 |../* End| of file|
|00002f10| 2e 09 09 2a 2f 0a 09 09 | 69 66 20 28 66 65 72 72 |...*/...|if (ferr|
|00002f20| 6f 72 28 66 66 70 29 20 | 21 3d 20 46 41 4c 53 45 |or(ffp) |!= FALSE|
|00002f30| 29 20 7b 0a 09 09 09 65 | 70 72 69 6e 74 66 28 22 |) {....e|printf("|
|00002f40| 46 69 6c 65 20 72 65 61 | 64 20 65 72 72 6f 72 22 |File rea|d error"|
|00002f50| 29 3b 0a 09 09 09 72 65 | 74 75 72 6e 20 28 46 49 |);....re|turn (FI|
|00002f60| 4f 45 52 52 29 3b 0a 09 | 09 7d 0a 09 09 69 66 20 |OERR);..|.}...if |
|00002f70| 28 69 20 3d 3d 20 30 29 | 09 09 09 2f 2a 20 44 6f |(i == 0)|.../* Do|
|00002f80| 6e 27 74 20 67 65 74 20 | 75 70 73 65 74 20 69 66 |n't get |upset if|
|00002f90| 09 2a 2f 0a 09 09 09 72 | 65 74 75 72 6e 20 28 46 |.*/....r|eturn (F|
|00002fa0| 49 4f 45 4f 46 29 3b 09 | 2f 2a 20 6e 6f 20 6e 65 |IOEOF);.|/* no ne|
|00002fb0| 77 6c 69 6e 65 20 61 74 | 20 45 4f 46 2e 09 2a 2f |wline at| EOF..*/|
|00002fc0| 0a 09 7d 0a 09 62 75 66 | 5b 69 5d 20 3d 20 30 3b |..}..buf|[i] = 0;|
|00002fd0| 0a 09 72 65 74 75 72 6e | 20 28 46 49 4f 53 55 43 |..return| (FIOSUC|
|00002fe0| 29 3b 0a 7d 0a 0a 2f 2a | 0a 20 2a 20 53 6f 6d 65 |);.}../*|. * Some|
|00002ff0| 20 43 50 2f 4d 2d 38 36 | 20 75 73 65 72 20 73 68 | CP/M-86| user sh|
|00003000| 6f 75 6c 64 20 66 69 67 | 75 72 65 20 6f 75 74 0a |ould fig|ure out.|
|00003010| 20 2a 20 74 68 65 20 72 | 69 67 68 74 20 72 75 6c | * the r|ight rul|
|00003020| 65 73 20 66 6f 72 20 62 | 61 63 6b 75 70 20 66 69 |es for b|ackup fi|
|00003030| 6c 65 20 6e 61 6d 65 73 | 2c 20 61 6e 64 20 6d 61 |le names|, and ma|
|00003040| 6b 65 0a 20 2a 20 74 68 | 69 73 20 77 6f 72 6b 2e |ke. * th|is work.|
|00003050| 20 49 20 64 6f 6e 27 74 | 20 75 73 65 20 43 50 2f | I don't| use CP/|
|00003060| 4d 2d 38 36 2c 20 73 6f | 20 49 20 63 61 6e 6e 6f |M-86, so| I canno|
|00003070| 74 20 66 69 67 75 72 65 | 0a 20 2a 20 6f 75 74 20 |t figure|. * out |
|00003080| 74 68 65 20 72 69 67 68 | 74 20 72 75 6c 65 73 2e |the righ|t rules.|
|00003090| 20 52 65 74 75 72 6e 20 | 54 52 55 45 20 73 6f 20 | Return |TRUE so |
|000030a0| 74 68 65 20 63 61 6c 6c | 65 72 73 0a 20 2a 20 64 |the call|ers. * d|
|000030b0| 6f 6e 27 74 20 61 62 6f | 72 74 20 77 72 69 74 65 |on't abo|rt write|
|000030c0| 73 2e 0a 20 2a 2f 0a 66 | 62 61 63 6b 75 70 66 69 |s.. */.f|backupfi|
|000030d0| 6c 65 28 66 6e 61 6d 65 | 29 0a 63 68 61 72 09 2a |le(fname|).char.*|
|000030e0| 66 6e 61 6d 65 3b 0a 7b | 0a 09 72 65 74 75 72 6e |fname;.{|..return|
|000030f0| 20 28 54 52 55 45 29 3b | 09 09 09 09 2f 2a 20 48 | (TRUE);|..../* H|
|00003100| 61 63 6b 2e 09 09 2a 2f | 0a 7d 0a 0a 2f 2a 0a 20 |ack...*/|.}../*. |
|00003110| 2a 20 54 68 65 20 73 74 | 72 69 6e 67 20 22 66 6e |* The st|ring "fn|
|00003120| 22 20 69 73 20 61 20 66 | 69 6c 65 20 6e 61 6d 65 |" is a f|ile name|
|00003130| 2e 0a 20 2a 20 50 65 72 | 66 6f 72 6d 20 61 6e 79 |.. * Per|form any|
|00003140| 20 72 65 71 75 69 72 65 | 64 20 63 61 73 65 20 61 | require|d case a|
|00003150| 64 6a 75 73 74 6d 65 6e | 74 73 2e 20 41 6c 6c 20 |djustmen|ts. All |
|00003160| 73 75 73 74 65 6d 73 0a | 20 2a 20 77 65 20 64 65 |sustems.| * we de|
|00003170| 61 6c 20 77 69 74 68 20 | 73 6f 20 66 61 72 20 68 |al with |so far h|
|00003180| 61 76 65 20 63 61 73 65 | 20 69 6e 73 65 6e 73 69 |ave case| insensi|
|00003190| 74 69 76 65 20 66 69 6c | 65 20 73 79 73 74 65 6d |tive fil|e system|
|000031a0| 73 2e 0a 20 2a 20 57 65 | 20 7a 61 70 20 65 76 65 |s.. * We| zap eve|
|000031b0| 72 79 74 68 69 6e 67 20 | 74 6f 20 6c 6f 77 65 72 |rything |to lower|
|000031c0| 20 63 61 73 65 2e 20 54 | 68 65 20 70 72 6f 62 6c | case. T|he probl|
|000031d0| 65 6d 20 77 65 20 61 72 | 65 20 74 72 79 69 6e 67 |em we ar|e trying|
|000031e0| 0a 20 2a 20 74 6f 20 73 | 6f 6c 76 65 20 69 73 20 |. * to s|olve is |
|000031f0| 67 65 74 74 69 6e 67 20 | 32 20 62 75 66 66 65 72 |getting |2 buffer|
|00003200| 73 20 68 6f 6c 64 69 6e | 67 20 74 68 65 20 73 61 |s holdin|g the sa|
|00003210| 6d 65 20 66 69 6c 65 20 | 69 66 0a 20 2a 20 79 6f |me file |if. * yo|
|00003220| 75 20 76 69 73 69 74 20 | 6f 6e 65 20 6f 66 20 74 |u visit |one of t|
|00003230| 68 65 6d 20 77 69 74 68 | 20 74 68 65 20 22 63 61 |hem with| the "ca|
|00003240| 70 73 20 6c 6f 63 6b 22 | 20 6b 65 79 20 64 6f 77 |ps lock"| key dow|
|00003250| 6e 2e 0a 20 2a 20 4f 6e | 20 55 4e 49 58 20 66 69 |n.. * On| UNIX fi|
|00003260| 6c 65 20 6e 61 6d 65 73 | 20 61 72 65 20 64 75 61 |le names| are dua|
|00003270| 6c 20 63 61 73 65 2c 20 | 73 6f 20 77 65 20 6c 65 |l case, |so we le|
|00003280| 61 76 65 0a 20 2a 20 65 | 76 65 72 79 74 68 69 6e |ave. * e|verythin|
|00003290| 67 20 61 6c 6f 6e 65 2e | 0a 20 2a 2f 0a 61 64 6a |g alone.|. */.adj|
|000032a0| 75 73 74 63 61 73 65 28 | 66 6e 29 0a 72 65 67 69 |ustcase(|fn).regi|
|000032b0| 73 74 65 72 20 63 68 61 | 72 09 2a 66 6e 3b 0a 7b |ster cha|r.*fn;.{|
|000032c0| 0a 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 09 63 |..regist|er int.c|
|000032d0| 3b 0a 0a 09 77 68 69 6c | 65 20 28 28 63 20 3d 20 |;...whil|e ((c = |
|000032e0| 2a 66 6e 29 20 21 3d 20 | 30 29 20 7b 0a 09 09 69 |*fn) != |0) {...i|
|000032f0| 66 20 28 63 3e 3d 27 41 | 27 20 26 26 20 63 3c 3d |f (c>='A|' && c<=|
|00003300| 27 5a 27 29 0a 09 09 09 | 2a 66 6e 20 3d 20 63 20 |'Z')....|*fn = c |
|00003310| 2b 20 27 61 27 20 2d 20 | 27 41 27 3b 0a 09 09 2b |+ 'a' - |'A';...+|
|00003320| 2b 66 6e 3b 0a 09 7d 0a | 7d 0a 53 48 41 52 5f 45 |+fn;..}.|}.SHAR_E|
|00003330| 4f 46 0a 69 66 20 74 65 | 73 74 20 33 32 34 32 20 |OF.if te|st 3242 |
|00003340| 2d 6e 65 20 22 60 77 63 | 20 2d 63 20 3c 20 27 73 |-ne "`wc| -c < 's|
|00003350| 79 73 2f 63 70 6d 38 36 | 2f 66 69 6c 65 69 6f 2e |ys/cpm86|/fileio.|
|00003360| 63 27 60 22 0a 74 68 65 | 6e 0a 09 65 63 68 6f 20 |c'`".the|n..echo |
|00003370| 73 68 61 72 3a 20 65 72 | 72 6f 72 20 74 72 61 6e |shar: er|ror tran|
|00003380| 73 6d 69 74 74 69 6e 67 | 20 22 27 73 79 73 2f 63 |smitting| "'sys/c|
|00003390| 70 6d 38 36 2f 66 69 6c | 65 69 6f 2e 63 27 22 20 |pm86/fil|eio.c'" |
|000033a0| 27 28 73 68 6f 75 6c 64 | 20 68 61 76 65 20 62 65 |'(should| have be|
|000033b0| 65 6e 20 33 32 34 32 20 | 63 68 61 72 61 63 74 65 |en 3242 |characte|
|000033c0| 72 73 29 27 0a 66 69 0a | 66 69 0a 65 63 68 6f 20 |rs)'.fi.|fi.echo |
|000033d0| 73 68 61 72 3a 20 65 78 | 74 72 61 63 74 69 6e 67 |shar: ex|tracting|
|000033e0| 20 22 27 73 79 73 2f 63 | 70 6d 38 36 2f 73 70 61 | "'sys/c|pm86/spa|
|000033f0| 77 6e 2e 63 27 22 20 27 | 28 34 36 36 20 63 68 61 |wn.c'" '|(466 cha|
|00003400| 72 61 63 74 65 72 73 29 | 27 0a 69 66 20 74 65 73 |racters)|'.if tes|
|00003410| 74 20 2d 66 20 27 73 79 | 73 2f 63 70 6d 38 36 2f |t -f 'sy|s/cpm86/|
|00003420| 73 70 61 77 6e 2e 63 27 | 0a 74 68 65 6e 0a 09 65 |spawn.c'|.then..e|
|00003430| 63 68 6f 20 73 68 61 72 | 3a 20 77 69 6c 6c 20 6e |cho shar|: will n|
|00003440| 6f 74 20 6f 76 65 72 2d | 77 72 69 74 65 20 65 78 |ot over-|write ex|
|00003450| 69 73 74 69 6e 67 20 66 | 69 6c 65 20 22 27 73 79 |isting f|ile "'sy|
|00003460| 73 2f 63 70 6d 38 36 2f | 73 70 61 77 6e 2e 63 27 |s/cpm86/|spawn.c'|
|00003470| 22 0a 65 6c 73 65 0a 63 | 61 74 20 3c 3c 20 5c 53 |".else.c|at << \S|
|00003480| 48 41 52 5f 45 4f 46 20 | 3e 20 27 73 79 73 2f 63 |HAR_EOF |> 'sys/c|
|00003490| 70 6d 38 36 2f 73 70 61 | 77 6e 2e 63 27 0a 2f 2a |pm86/spa|wn.c'./*|
|000034a0| 0a 20 2a 20 4e 61 6d 65 | 3a 09 4d 69 63 72 6f 45 |. * Name|:.MicroE|
|000034b0| 4d 41 43 53 0a 20 2a 09 | 09 43 50 2f 4d 2d 38 36 |MACS. *.|.CP/M-86|
|000034c0| 20 73 70 61 77 6e 20 61 | 20 73 75 62 2d 43 4c 49 | spawn a| sub-CLI|
|000034d0| 20 28 68 61 2d 68 61 29 | 2e 0a 20 2a 20 56 65 72 | (ha-ha)|.. * Ver|
|000034e0| 73 69 6f 6e 3a 09 32 39 | 0a 20 2a 20 4c 61 73 74 |sion:.29|. * Last|
|000034f0| 20 65 64 69 74 3a 09 30 | 35 2d 46 65 62 2d 38 36 | edit:.0|5-Feb-86|
|00003500| 0a 20 2a 20 42 79 3a 09 | 09 72 65 78 3a 3a 63 6f |. * By:.|.rex::co|
|00003510| 6e 72 6f 79 0a 20 2a 09 | 09 64 65 63 76 61 78 21 |nroy. *.|.decvax!|
|00003520| 64 65 63 77 72 6c 21 64 | 65 63 2d 72 68 65 61 21 |decwrl!d|ec-rhea!|
|00003530| 64 65 63 2d 72 65 78 21 | 63 6f 6e 72 6f 79 0a 20 |dec-rex!|conroy. |
|00003540| 2a 2f 0a 23 69 6e 63 6c | 75 64 65 09 22 64 65 66 |*/.#incl|ude."def|
|00003550| 2e 68 22 0a 0a 2f 2a 0a | 20 2a 20 43 72 65 61 74 |.h"../*.| * Creat|
|00003560| 65 20 61 20 73 75 62 6a | 6f 62 20 77 69 74 68 20 |e a subj|ob with |
|00003570| 61 20 63 6f 70 79 0a 20 | 2a 20 6f 66 20 74 68 65 |a copy. |* of the|
|00003580| 20 63 6f 6d 6d 61 6e 64 | 20 69 6e 74 72 65 70 72 | command| intrepr|
|00003590| 65 74 65 72 20 69 6e 20 | 69 74 2e 20 57 68 65 6e |eter in |it. When|
|000035a0| 20 74 68 65 0a 20 2a 20 | 63 6f 6d 6d 61 6e 64 20 | the. * |command |
|000035b0| 69 6e 74 65 72 70 72 65 | 74 65 72 20 65 78 69 74 |interpre|ter exit|
|000035c0| 73 2c 20 6d 61 72 6b 20 | 74 68 65 20 73 63 72 65 |s, mark |the scre|
|000035d0| 65 6e 20 61 73 0a 20 2a | 20 67 61 72 62 61 67 65 |en as. *| garbage|
|000035e0| 20 73 6f 20 74 68 61 74 | 20 79 6f 75 20 64 6f 20 | so that| you do |
|000035f0| 61 20 66 75 6c 6c 20 72 | 65 70 61 69 6e 74 2e 20 |a full r|epaint. |
|00003600| 42 6f 75 6e 64 0a 20 2a | 20 74 6f 20 22 43 2d 43 |Bound. *| to "C-C|
|00003610| 22 20 61 6e 64 20 63 61 | 6c 6c 65 64 20 66 72 6f |" and ca|lled fro|
|00003620| 6d 20 22 43 2d 5a 22 2e | 0a 20 2a 2f 0a 73 70 61 |m "C-Z".|. */.spa|
|00003630| 77 6e 63 6c 69 28 66 2c | 20 6e 2c 20 6b 29 0a 7b |wncli(f,| n, k).{|
|00003640| 0a 09 65 70 72 69 6e 74 | 66 28 22 4e 6f 74 20 69 |..eprint|f("Not i|
|00003650| 6e 20 43 50 2f 4d 2d 38 | 36 22 29 3b 0a 09 72 65 |n CP/M-8|6");..re|
|00003660| 74 75 72 6e 20 28 46 41 | 4c 53 45 29 3b 0a 7d 0a |turn (FA|LSE);.}.|
|00003670| 53 48 41 52 5f 45 4f 46 | 0a 69 66 20 74 65 73 74 |SHAR_EOF|.if test|
|00003680| 20 34 36 36 20 2d 6e 65 | 20 22 60 77 63 20 2d 63 | 466 -ne| "`wc -c|
|00003690| 20 3c 20 27 73 79 73 2f | 63 70 6d 38 36 2f 73 70 | < 'sys/|cpm86/sp|
|000036a0| 61 77 6e 2e 63 27 60 22 | 0a 74 68 65 6e 0a 09 65 |awn.c'`"|.then..e|
|000036b0| 63 68 6f 20 73 68 61 72 | 3a 20 65 72 72 6f 72 20 |cho shar|: error |
|000036c0| 74 72 61 6e 73 6d 69 74 | 74 69 6e 67 20 22 27 73 |transmit|ting "'s|
|000036d0| 79 73 2f 63 70 6d 38 36 | 2f 73 70 61 77 6e 2e 63 |ys/cpm86|/spawn.c|
|000036e0| 27 22 20 27 28 73 68 6f | 75 6c 64 20 68 61 76 65 |'" '(sho|uld have|
|000036f0| 20 62 65 65 6e 20 34 36 | 36 20 63 68 61 72 61 63 | been 46|6 charac|
|00003700| 74 65 72 73 29 27 0a 66 | 69 0a 66 69 0a 65 63 68 |ters)'.f|i.fi.ech|
|00003710| 6f 20 73 68 61 72 3a 20 | 65 78 74 72 61 63 74 69 |o shar: |extracti|
|00003720| 6e 67 20 22 27 73 79 73 | 2f 63 70 6d 38 36 2f 73 |ng "'sys|/cpm86/s|
|00003730| 79 73 64 65 66 2e 68 27 | 22 20 27 28 35 37 31 20 |ysdef.h'|" '(571 |
|00003740| 63 68 61 72 61 63 74 65 | 72 73 29 27 0a 69 66 20 |characte|rs)'.if |
|00003750| 74 65 73 74 20 2d 66 20 | 27 73 79 73 2f 63 70 6d |test -f |'sys/cpm|
|00003760| 38 36 2f 73 79 73 64 65 | 66 2e 68 27 0a 74 68 65 |86/sysde|f.h'.the|
|00003770| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 77 69 |n..echo |shar: wi|
|00003780| 6c 6c 20 6e 6f 74 20 6f | 76 65 72 2d 77 72 69 74 |ll not o|ver-writ|
|00003790| 65 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |e existi|ng file |
|000037a0| 22 27 73 79 73 2f 63 70 | 6d 38 36 2f 73 79 73 64 |"'sys/cp|m86/sysd|
|000037b0| 65 66 2e 68 27 22 0a 65 | 6c 73 65 0a 63 61 74 20 |ef.h'".e|lse.cat |
|000037c0| 3c 3c 20 5c 53 48 41 52 | 5f 45 4f 46 20 3e 20 27 |<< \SHAR|_EOF > '|
|000037d0| 73 79 73 2f 63 70 6d 38 | 36 2f 73 79 73 64 65 66 |sys/cpm8|6/sysdef|
|000037e0| 2e 68 27 0a 2f 2a 0a 20 | 2a 20 4e 61 6d 65 3a 09 |.h'./*. |* Name:.|
|000037f0| 4d 69 63 72 6f 45 4d 41 | 43 53 0a 20 2a 09 09 43 |MicroEMA|CS. *..C|
|00003800| 50 2f 4d 2d 38 36 20 73 | 79 73 74 65 6d 20 68 65 |P/M-86 s|ystem he|
|00003810| 61 64 65 72 20 66 69 6c | 65 2e 0a 20 2a 20 56 65 |ader fil|e.. * Ve|
|00003820| 72 73 69 6f 6e 3a 09 32 | 39 0a 20 2a 20 4c 61 73 |rsion:.2|9. * Las|
|00003830| 74 20 65 64 69 74 3a 09 | 30 35 2d 46 65 62 2d 38 |t edit:.|05-Feb-8|
|00003840| 36 0a 20 2a 20 42 79 3a | 09 09 72 65 78 3a 3a 63 |6. * By:|..rex::c|
|00003850| 6f 6e 72 6f 79 0a 20 2a | 09 09 64 65 63 76 61 78 |onroy. *|..decvax|
|00003860| 21 64 65 63 77 72 6c 21 | 64 65 63 2d 72 68 65 61 |!decwrl!|dec-rhea|
|00003870| 21 64 65 63 2d 72 65 78 | 21 63 6f 6e 72 6f 79 0a |!dec-rex|!conroy.|
|00003880| 20 2a 2f 0a 23 64 65 66 | 69 6e 65 09 50 43 43 09 | */.#def|ine.PCC.|
|00003890| 30 09 09 09 2f 2a 20 22 | 5b 5d 22 20 77 69 6c 6c |0.../* "|[]" will|
|000038a0| 20 77 6f 72 6b 2e 09 09 | 2a 2f 0a 0a 2f 2a 0a 20 | work...|*/../*. |
|000038b0| 2a 20 4d 61 63 72 6f 73 | 20 75 73 65 64 20 62 79 |* Macros| used by|
|000038c0| 20 74 68 65 20 62 75 66 | 66 65 72 20 6e 61 6d 65 | the buf|fer name|
|000038d0| 20 6d 61 6b 69 6e 67 20 | 63 6f 64 65 2e 0a 20 2a | making |code.. *|
|000038e0| 20 53 74 61 72 74 20 61 | 74 20 74 68 65 20 65 6e | Start a|t the en|
|000038f0| 64 20 6f 66 20 74 68 65 | 20 66 69 6c 65 20 6e 61 |d of the| file na|
|00003900| 6d 65 2c 20 73 63 61 6e | 20 74 6f 20 74 68 65 20 |me, scan| to the |
|00003910| 6c 65 66 74 0a 20 2a 20 | 75 6e 74 69 6c 20 42 44 |left. * |until BD|
|00003920| 43 31 20 28 6f 72 20 42 | 44 43 32 2c 20 69 66 20 |C1 (or B|DC2, if |
|00003930| 64 65 66 69 6e 65 64 29 | 20 69 73 20 72 65 61 63 |defined)| is reac|
|00003940| 68 65 64 2e 20 54 68 65 | 20 62 75 66 66 65 72 0a |hed. The| buffer.|
|00003950| 20 2a 20 6e 61 6d 65 20 | 73 74 61 72 74 73 20 6a | * name |starts j|
|00003960| 75 73 74 20 74 6f 20 74 | 68 65 20 72 69 67 68 74 |ust to t|he right|
|00003970| 20 6f 66 20 74 68 61 74 | 20 6c 6f 63 61 74 69 6f | of that| locatio|
|00003980| 6e 2c 20 61 6e 64 0a 20 | 2a 20 73 74 6f 70 73 20 |n, and. |* stops |
|00003990| 61 74 20 65 6e 64 20 6f | 66 20 73 74 72 69 6e 67 |at end o|f string|
|000039a0| 20 28 6f 72 20 61 74 20 | 74 68 65 20 6e 65 78 74 | (or at |the next|
|000039b0| 20 42 44 43 33 20 63 68 | 61 72 61 63 74 65 72 2c | BDC3 ch|aracter,|
|000039c0| 0a 20 2a 20 69 66 20 64 | 65 66 69 6e 65 64 29 2e |. * if d|efined).|
|000039d0| 20 42 44 43 32 20 61 6e | 64 20 42 44 43 33 20 61 | BDC2 an|d BDC3 a|
|000039e0| 72 65 20 6d 61 69 6e 6c | 79 20 66 6f 72 20 56 4d |re mainl|y for VM|
|000039f0| 53 2e 0a 20 2a 2f 0a 23 | 64 65 66 69 6e 65 09 42 |S.. */.#|define.B|
|00003a00| 44 43 31 09 27 3a 27 09 | 09 09 2f 2a 20 42 75 66 |DC1.':'.|../* Buf|
|00003a10| 66 65 72 20 6e 61 6d 65 | 2e 09 09 09 2a 2f 0a 53 |fer name|....*/.S|
|00003a20| 48 41 52 5f 45 4f 46 0a | 69 66 20 74 65 73 74 20 |HAR_EOF.|if test |
|00003a30| 35 37 31 20 2d 6e 65 20 | 22 60 77 63 20 2d 63 20 |571 -ne |"`wc -c |
|00003a40| 3c 20 27 73 79 73 2f 63 | 70 6d 38 36 2f 73 79 73 |< 'sys/c|pm86/sys|
|00003a50| 64 65 66 2e 68 27 60 22 | 0a 74 68 65 6e 0a 09 65 |def.h'`"|.then..e|
|00003a60| 63 68 6f 20 73 68 61 72 | 3a 20 65 72 72 6f 72 20 |cho shar|: error |
|00003a70| 74 72 61 6e 73 6d 69 74 | 74 69 6e 67 20 22 27 73 |transmit|ting "'s|
|00003a80| 79 73 2f 63 70 6d 38 36 | 2f 73 79 73 64 65 66 2e |ys/cpm86|/sysdef.|
|00003a90| 68 27 22 20 27 28 73 68 | 6f 75 6c 64 20 68 61 76 |h'" '(sh|ould hav|
|00003aa0| 65 20 62 65 65 6e 20 35 | 37 31 20 63 68 61 72 61 |e been 5|71 chara|
|00003ab0| 63 74 65 72 73 29 27 0a | 66 69 0a 66 69 0a 65 63 |cters)'.|fi.fi.ec|
|00003ac0| 68 6f 20 73 68 61 72 3a | 20 65 78 74 72 61 63 74 |ho shar:| extract|
|00003ad0| 69 6e 67 20 22 27 73 79 | 73 2f 63 70 6d 38 36 2f |ing "'sy|s/cpm86/|
|00003ae0| 74 74 79 69 6f 2e 63 27 | 22 20 27 28 36 31 34 20 |ttyio.c'|" '(614 |
|00003af0| 63 68 61 72 61 63 74 65 | 72 73 29 27 0a 69 66 20 |characte|rs)'.if |
|00003b00| 74 65 73 74 20 2d 66 20 | 27 73 79 73 2f 63 70 6d |test -f |'sys/cpm|
|00003b10| 38 36 2f 74 74 79 69 6f | 2e 63 27 0a 74 68 65 6e |86/ttyio|.c'.then|
|00003b20| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00003b30| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00003b40| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00003b50| 27 73 79 73 2f 63 70 6d | 38 36 2f 74 74 79 69 6f |'sys/cpm|86/ttyio|
|00003b60| 2e 63 27 22 0a 65 6c 73 | 65 0a 63 61 74 20 3c 3c |.c'".els|e.cat <<|
|00003b70| 20 5c 53 48 41 52 5f 45 | 4f 46 20 3e 20 27 73 79 | \SHAR_E|OF > 'sy|
|00003b80| 73 2f 63 70 6d 38 36 2f | 74 74 79 69 6f 2e 63 27 |s/cpm86/|ttyio.c'|
|00003b90| 0a 2f 2a 0a 20 2a 20 4e | 61 6d 65 3a 09 4d 69 63 |./*. * N|ame:.Mic|
|00003ba0| 72 6f 45 4d 41 43 53 0a | 20 2a 09 09 43 50 2f 4d |roEMACS.| *..CP/M|
|00003bb0| 2d 38 36 20 74 65 72 6d | 69 6e 61 6c 20 49 2f 4f |-86 term|inal I/O|
|00003bc0| 2e 0a 20 2a 20 56 65 72 | 73 69 6f 6e 3a 09 32 39 |.. * Ver|sion:.29|
|00003bd0| 0a 20 2a 20 4c 61 73 74 | 20 65 64 69 74 3a 09 30 |. * Last| edit:.0|
|00003be0| 35 2d 46 65 62 2d 38 36 | 0a 20 2a 20 42 79 3a 09 |5-Feb-86|. * By:.|
|00003bf0| 09 72 65 78 3a 3a 63 6f | 6e 72 6f 79 0a 20 2a 09 |.rex::co|nroy. *.|
|00003c00| 09 64 65 63 76 61 78 21 | 64 65 63 77 72 6c 21 64 |.decvax!|decwrl!d|
|00003c10| 65 63 2d 72 68 65 61 21 | 64 65 63 2d 72 65 78 21 |ec-rhea!|dec-rex!|
|00003c20| 63 6f 6e 72 6f 79 0a 20 | 2a 2f 0a 23 69 6e 63 6c |conroy. |*/.#incl|
|00003c30| 75 64 65 09 22 64 65 66 | 2e 68 22 0a 0a 23 69 6e |ude."def|.h"..#in|
|00003c40| 63 6c 75 64 65 09 3c 62 | 64 6f 73 2e 68 3e 0a 0a |clude.<b|dos.h>..|
|00003c50| 69 6e 74 09 6e 72 6f 77 | 3b 09 09 09 09 2f 2a 20 |int.nrow|;..../* |
|00003c60| 54 65 72 6d 69 6e 61 6c | 20 73 69 7a 65 2c 20 72 |Terminal| size, r|
|00003c70| 6f 77 73 2e 09 09 2a 2f | 0a 69 6e 74 09 6e 63 6f |ows...*/|.int.nco|
|00003c80| 6c 3b 09 09 09 09 2f 2a | 20 54 65 72 6d 69 6e 61 |l;..../*| Termina|
|00003c90| 6c 20 73 69 7a 65 2c 20 | 63 6f 6c 75 6d 6e 73 2e |l size, |columns.|
|00003ca0| 09 2a 2f 0a 0a 2f 2a 0a | 20 2a 20 53 65 74 20 75 |.*/../*.| * Set u|
|00003cb0| 70 20 74 65 72 6d 69 6e | 61 6c 2e 0a 20 2a 20 41 |p termin|al.. * A|
|00003cc0| 6c 6d 6f 73 74 20 6e 6f | 20 6f 70 65 72 61 74 69 |lmost no| operati|
|00003cd0| 6f 6e 20 69 6e 20 43 50 | 2f 4d 2d 38 36 2e 0a 20 |on in CP|/M-86.. |
|00003ce0| 2a 2f 0a 74 74 6f 70 65 | 6e 28 29 0a 7b 0a 09 6e |*/.ttope|n().{..n|
|00003cf0| 72 6f 77 20 3d 20 4e 52 | 4f 57 3b 0a 09 6e 63 6f |row = NR|OW;..nco|
|00003d00| 6c 20 3d 20 4e 43 4f 4c | 3b 0a 7d 0a 0a 2f 2a 0a |l = NCOL|;.}../*.|
|00003d10| 20 2a 20 4e 6f 20 6f 70 | 65 72 61 74 69 6f 6e 20 | * No op|eration |
|00003d20| 69 6e 20 43 50 2f 4d 2d | 38 36 2e 0a 20 2a 2f 0a |in CP/M-|86.. */.|
|00003d30| 74 74 63 6c 6f 73 65 28 | 29 0a 7b 0a 7d 0a 0a 2f |ttclose(|).{.}../|
|00003d40| 2a 0a 20 2a 20 57 72 69 | 74 65 20 63 68 61 72 61 |*. * Wri|te chara|
|00003d50| 63 74 65 72 2e 0a 20 2a | 2f 0a 74 74 70 75 74 63 |cter.. *|/.ttputc|
|00003d60| 28 63 29 0a 7b 0a 09 62 | 69 6f 73 28 42 43 4f 4e |(c).{..b|ios(BCON|
|00003d70| 4f 55 54 2c 20 63 2c 20 | 30 29 3b 0a 7d 0a 0a 2f |OUT, c, |0);.}../|
|00003d80| 2a 0a 20 2a 20 4e 6f 20 | 6f 70 65 72 61 74 69 6f |*. * No |operatio|
|00003d90| 6e 20 6f 6e 20 43 50 2f | 4d 2d 38 36 2e 0a 20 2a |n on CP/|M-86.. *|
|00003da0| 2f 0a 74 74 66 6c 75 73 | 68 28 29 0a 7b 0a 7d 0a |/.ttflus|h().{.}.|
|00003db0| 0a 2f 2a 0a 20 2a 20 52 | 65 61 64 20 63 68 61 72 |./*. * R|ead char|
|00003dc0| 61 63 74 65 72 2e 0a 20 | 2a 2f 0a 74 74 67 65 74 |acter.. |*/.ttget|
|00003dd0| 63 28 29 0a 7b 0a 09 72 | 65 74 75 72 6e 20 28 62 |c().{..r|eturn (b|
|00003de0| 69 6f 73 62 28 42 43 4f | 4e 49 4e 2c 20 30 2c 20 |iosb(BCO|NIN, 0, |
|00003df0| 30 29 29 3b 0a 7d 0a 53 | 48 41 52 5f 45 4f 46 0a |0));.}.S|HAR_EOF.|
|00003e00| 69 66 20 74 65 73 74 20 | 36 31 34 20 2d 6e 65 20 |if test |614 -ne |
|00003e10| 22 60 77 63 20 2d 63 20 | 3c 20 27 73 79 73 2f 63 |"`wc -c |< 'sys/c|
|00003e20| 70 6d 38 36 2f 74 74 79 | 69 6f 2e 63 27 60 22 0a |pm86/tty|io.c'`".|
|00003e30| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00003e40| 20 65 72 72 6f 72 20 74 | 72 61 6e 73 6d 69 74 74 | error t|ransmitt|
|00003e50| 69 6e 67 20 22 27 73 79 | 73 2f 63 70 6d 38 36 2f |ing "'sy|s/cpm86/|
|00003e60| 74 74 79 69 6f 2e 63 27 | 22 20 27 28 73 68 6f 75 |ttyio.c'|" '(shou|
|00003e70| 6c 64 20 68 61 76 65 20 | 62 65 65 6e 20 36 31 34 |ld have |been 614|
|00003e80| 20 63 68 61 72 61 63 74 | 65 72 73 29 27 0a 66 69 | charact|ers)'.fi|
|00003e90| 0a 66 69 0a 65 63 68 6f | 20 73 68 61 72 3a 20 64 |.fi.echo| shar: d|
|00003ea0| 6f 6e 65 20 77 69 74 68 | 20 64 69 72 65 63 74 6f |one with| directo|
|00003eb0| 72 79 20 22 27 73 79 73 | 2f 63 70 6d 38 36 27 22 |ry "'sys|/cpm86'"|
|00003ec0| 0a 69 66 20 74 65 73 74 | 20 21 20 2d 64 20 27 73 |.if test| ! -d 's|
|00003ed0| 79 73 2f 75 6c 74 72 69 | 78 27 0a 74 68 65 6e 0a |ys/ultri|x'.then.|
|00003ee0| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 63 72 65 61 |.echo sh|ar: crea|
|00003ef0| 74 69 6e 67 20 64 69 72 | 65 63 74 6f 72 79 20 22 |ting dir|ectory "|
|00003f00| 27 73 79 73 2f 75 6c 74 | 72 69 78 27 22 0a 09 6d |'sys/ult|rix'"..m|
|00003f10| 6b 64 69 72 20 27 73 79 | 73 2f 75 6c 74 72 69 78 |kdir 'sy|s/ultrix|
|00003f20| 27 0a 66 69 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |'.fi.ech|o shar: |
|00003f30| 65 78 74 72 61 63 74 69 | 6e 67 20 22 27 73 79 73 |extracti|ng "'sys|
|00003f40| 2f 75 6c 74 72 69 78 2f | 4d 61 6b 65 66 69 6c 65 |/ultrix/|Makefile|
|00003f50| 27 22 20 27 28 38 37 33 | 20 63 68 61 72 61 63 74 |'" '(873| charact|
|00003f60| 65 72 73 29 27 0a 69 66 | 20 74 65 73 74 20 2d 66 |ers)'.if| test -f|
|00003f70| 20 27 73 79 73 2f 75 6c | 74 72 69 78 2f 4d 61 6b | 'sys/ul|trix/Mak|
|00003f80| 65 66 69 6c 65 27 0a 74 | 68 65 6e 0a 09 65 63 68 |efile'.t|hen..ech|
|00003f90| 6f 20 73 68 61 72 3a 20 | 77 69 6c 6c 20 6e 6f 74 |o shar: |will not|
|00003fa0| 20 6f 76 65 72 2d 77 72 | 69 74 65 20 65 78 69 73 | over-wr|ite exis|
|00003fb0| 74 69 6e 67 20 66 69 6c | 65 20 22 27 73 79 73 2f |ting fil|e "'sys/|
|00003fc0| 75 6c 74 72 69 78 2f 4d | 61 6b 65 66 69 6c 65 27 |ultrix/M|akefile'|
|00003fd0| 22 0a 65 6c 73 65 0a 63 | 61 74 20 3c 3c 20 5c 53 |".else.c|at << \S|
|00003fe0| 48 41 52 5f 45 4f 46 20 | 3e 20 27 73 79 73 2f 75 |HAR_EOF |> 'sys/u|
|00003ff0| 6c 74 72 69 78 2f 4d 61 | 6b 65 66 69 6c 65 27 0a |ltrix/Ma|kefile'.|
|00004000| 23 20 4d 61 6b 65 66 69 | 6c 65 20 66 6f 72 20 4d |# Makefi|le for M|
|00004010| 69 63 72 6f 45 4d 41 43 | 53 2e 0a 23 20 49 73 20 |icroEMAC|S..# Is |
|00004020| 74 68 65 72 65 20 61 20 | 62 65 74 74 65 72 20 77 |there a |better w|
|00004030| 61 79 20 74 6f 20 64 6f | 20 74 68 65 20 72 65 62 |ay to do| the reb|
|00004040| 75 69 6c 64 73 2c 20 6f | 74 68 65 72 20 74 68 61 |uilds, o|ther tha|
|00004050| 6e 20 75 73 69 6e 67 0a | 23 20 74 68 65 20 6c 69 |n using.|# the li|
|00004060| 6e 6b 73 3f 0a 0a 53 59 | 53 09 3d 20 75 6c 74 72 |nks?..SY|S.= ultr|
|00004070| 69 78 0a 54 54 59 09 3d | 20 61 6e 73 69 0a 0a 43 |ix.TTY.=| ansi..C|
|00004080| 46 4c 41 47 53 09 3d 20 | 2d 4f 0a 0a 4f 42 4a 20 |FLAGS.= |-O..OBJ |
|00004090| 3d 09 62 61 73 69 63 2e | 6f 20 5c 0a 09 62 75 66 |=.basic.|o \..buf|
|000040a0| 66 65 72 2e 6f 20 5c 0a | 09 63 69 6e 66 6f 2e 6f |fer.o \.|.cinfo.o|
|000040b0| 20 5c 0a 09 64 69 73 70 | 6c 61 79 2e 6f 20 5c 0a | \..disp|lay.o \.|
|000040c0| 09 65 63 68 6f 2e 6f 20 | 5c 0a 09 65 78 74 65 6e |.echo.o |\..exten|
|000040d0| 64 2e 6f 20 5c 0a 09 66 | 69 6c 65 2e 6f 20 5c 0a |d.o \..f|ile.o \.|
|000040e0| 09 6b 62 64 2e 6f 20 5c | 0a 09 6c 69 6e 65 2e 6f |.kbd.o \|..line.o|
|000040f0| 20 5c 0a 09 6d 61 69 6e | 2e 6f 20 5c 0a 09 72 61 | \..main|.o \..ra|
|00004100| 6e 64 6f 6d 2e 6f 20 5c | 0a 09 72 65 67 69 6f 6e |ndom.o \|..region|
|00004110| 2e 6f 20 5c 0a 09 73 65 | 61 72 63 68 2e 6f 20 5c |.o \..se|arch.o \|
|00004120| 0a 09 73 79 6d 62 6f 6c | 2e 6f 20 5c 0a 09 76 65 |..symbol|.o \..ve|
|00004130| 72 73 69 6f 6e 2e 6f 20 | 5c 0a 09 77 69 6e 64 6f |rsion.o |\..windo|
|00004140| 77 2e 6f 20 5c 0a 09 77 | 6f 72 64 2e 6f 20 5c 0a |w.o \..w|ord.o \.|
|00004150| 09 66 69 6c 65 69 6f 2e | 6f 20 5c 0a 09 73 70 61 |.fileio.|o \..spa|
|00004160| 77 6e 2e 6f 20 5c 0a 09 | 74 74 79 69 6f 2e 6f 20 |wn.o \..|ttyio.o |
|00004170| 5c 0a 09 74 74 79 2e 6f | 20 5c 0a 09 74 74 79 6b |\..tty.o| \..ttyk|
|00004180| 62 64 2e 6f 0a 0a 78 65 | 6d 61 63 73 3a 09 09 24 |bd.o..xe|macs:..$|
|00004190| 28 4f 42 4a 29 0a 09 63 | 63 20 2d 6f 20 78 65 6d |(OBJ)..c|c -o xem|
|000041a0| 61 63 73 20 24 28 4f 42 | 4a 29 0a 0a 24 28 4f 42 |acs $(OB|J)..$(OB|
|000041b0| 4a 29 3a 09 09 64 65 66 | 2e 68 20 73 79 73 64 65 |J):..def|.h sysde|
|000041c0| 66 2e 68 20 74 74 79 64 | 65 66 2e 68 0a 0a 73 79 |f.h ttyd|ef.h..sy|
|000041d0| 73 64 65 66 2e 68 3a 09 | 73 79 73 2f 24 28 53 59 |sdef.h:.|sys/$(SY|
|000041e0| 53 29 2f 73 79 73 64 65 | 66 2e 68 09 23 20 55 70 |S)/sysde|f.h.# Up|
|000041f0| 64 61 74 65 20 6c 69 6e | 6b 73 2c 20 69 66 20 6e |date lin|ks, if n|
|00004200| 65 65 64 65 64 2e 0a 09 | 6c 6e 20 73 79 73 2f 24 |eeded...|ln sys/$|
|00004210| 28 53 59 53 29 2f 73 79 | 73 64 65 66 2e 68 20 2e |(SYS)/sy|sdef.h .|
|00004220| 0a 0a 74 74 79 64 65 66 | 2e 68 3a 09 74 74 79 2f |..ttydef|.h:.tty/|
|00004230| 24 28 54 54 59 29 2f 74 | 74 79 64 65 66 2e 68 0a |$(TTY)/t|tydef.h.|
|00004240| 09 6c 6e 20 74 74 79 2f | 24 28 54 54 59 29 2f 74 |.ln tty/|$(TTY)/t|
|00004250| 74 79 64 65 66 2e 68 20 | 2e 0a 0a 66 69 6c 65 69 |tydef.h |...filei|
|00004260| 6f 2e 63 3a 09 73 79 73 | 2f 24 28 53 59 53 29 2f |o.c:.sys|/$(SYS)/|
|00004270| 66 69 6c 65 69 6f 2e 63 | 0a 09 6c 6e 20 73 79 73 |fileio.c|..ln sys|
|00004280| 2f 24 28 53 59 53 29 2f | 66 69 6c 65 69 6f 2e 63 |/$(SYS)/|fileio.c|
|00004290| 20 2e 0a 0a 73 70 61 77 | 6e 2e 63 3a 09 73 79 73 | ...spaw|n.c:.sys|
|000042a0| 2f 24 28 53 59 53 29 2f | 73 70 61 77 6e 2e 63 0a |/$(SYS)/|spawn.c.|
|000042b0| 09 6c 6e 20 73 79 73 2f | 24 28 53 59 53 29 2f 73 |.ln sys/|$(SYS)/s|
|000042c0| 70 61 77 6e 2e 63 20 2e | 0a 0a 74 74 79 2e 63 3a |pawn.c .|..tty.c:|
|000042d0| 09 09 74 74 79 2f 24 28 | 54 54 59 29 2f 74 74 79 |..tty/$(|TTY)/tty|
|000042e0| 2e 63 0a 09 6c 6e 20 74 | 74 79 2f 24 28 54 54 59 |.c..ln t|ty/$(TTY|
|000042f0| 29 2f 74 74 79 2e 63 20 | 2e 0a 0a 74 74 79 69 6f |)/tty.c |...ttyio|
|00004300| 2e 63 3a 09 73 79 73 2f | 24 28 53 59 53 29 2f 74 |.c:.sys/|$(SYS)/t|
|00004310| 74 79 69 6f 2e 63 0a 09 | 6c 6e 20 73 79 73 2f 24 |tyio.c..|ln sys/$|
|00004320| 28 53 59 53 29 2f 74 74 | 79 69 6f 2e 63 20 2e 0a |(SYS)/tt|yio.c ..|
|00004330| 0a 74 74 79 6b 62 64 2e | 63 3a 09 74 74 79 2f 24 |.ttykbd.|c:.tty/$|
|00004340| 28 54 54 59 29 2f 74 74 | 79 6b 62 64 2e 63 0a 09 |(TTY)/tt|ykbd.c..|
|00004350| 6c 6e 20 74 74 79 2f 24 | 28 54 54 59 29 2f 74 74 |ln tty/$|(TTY)/tt|
|00004360| 79 6b 62 64 2e 63 20 2e | 0a 53 48 41 52 5f 45 4f |ykbd.c .|.SHAR_EO|
|00004370| 46 0a 69 66 20 74 65 73 | 74 20 38 37 33 20 2d 6e |F.if tes|t 873 -n|
|00004380| 65 20 22 60 77 63 20 2d | 63 20 3c 20 27 73 79 73 |e "`wc -|c < 'sys|
|00004390| 2f 75 6c 74 72 69 78 2f | 4d 61 6b 65 66 69 6c 65 |/ultrix/|Makefile|
|000043a0| 27 60 22 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |'`".then|..echo s|
|000043b0| 68 61 72 3a 20 65 72 72 | 6f 72 20 74 72 61 6e 73 |har: err|or trans|
|000043c0| 6d 69 74 74 69 6e 67 20 | 22 27 73 79 73 2f 75 6c |mitting |"'sys/ul|
|000043d0| 74 72 69 78 2f 4d 61 6b | 65 66 69 6c 65 27 22 20 |trix/Mak|efile'" |
|000043e0| 27 28 73 68 6f 75 6c 64 | 20 68 61 76 65 20 62 65 |'(should| have be|
|000043f0| 65 6e 20 38 37 33 20 63 | 68 61 72 61 63 74 65 72 |en 873 c|haracter|
|00004400| 73 29 27 0a 66 69 0a 66 | 69 0a 65 63 68 6f 20 73 |s)'.fi.f|i.echo s|
|00004410| 68 61 72 3a 20 65 78 74 | 72 61 63 74 69 6e 67 20 |har: ext|racting |
|00004420| 22 27 73 79 73 2f 75 6c | 74 72 69 78 2f 66 69 6c |"'sys/ul|trix/fil|
|00004430| 65 69 6f 2e 63 27 22 20 | 27 28 33 36 33 36 20 63 |eio.c'" |'(3636 c|
|00004440| 68 61 72 61 63 74 65 72 | 73 29 27 0a 69 66 20 74 |haracter|s)'.if t|
|00004450| 65 73 74 20 2d 66 20 27 | 73 79 73 2f 75 6c 74 72 |est -f '|sys/ultr|
|00004460| 69 78 2f 66 69 6c 65 69 | 6f 2e 63 27 0a 74 68 65 |ix/filei|o.c'.the|
|00004470| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 77 69 |n..echo |shar: wi|
|00004480| 6c 6c 20 6e 6f 74 20 6f | 76 65 72 2d 77 72 69 74 |ll not o|ver-writ|
|00004490| 65 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |e existi|ng file |
|000044a0| 22 27 73 79 73 2f 75 6c | 74 72 69 78 2f 66 69 6c |"'sys/ul|trix/fil|
|000044b0| 65 69 6f 2e 63 27 22 0a | 65 6c 73 65 0a 63 61 74 |eio.c'".|else.cat|
|000044c0| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|000044d0| 27 73 79 73 2f 75 6c 74 | 72 69 78 2f 66 69 6c 65 |'sys/ult|rix/file|
|000044e0| 69 6f 2e 63 27 0a 2f 2a | 0a 20 2a 20 4e 61 6d 65 |io.c'./*|. * Name|
|000044f0| 3a 09 4d 69 63 72 6f 45 | 4d 41 43 53 0a 20 2a 20 |:.MicroE|MACS. * |
|00004500| 09 09 55 6c 74 72 69 78 | 2d 33 32 20 66 69 6c 65 |..Ultrix|-32 file|
|00004510| 20 49 2f 4f 2e 0a 20 2a | 20 56 65 72 73 69 6f 6e | I/O.. *| Version|
|00004520| 3a 09 32 39 0a 20 2a 20 | 4c 61 73 74 20 65 64 69 |:.29. * |Last edi|
|00004530| 74 3a 09 30 35 2d 46 65 | 62 2d 38 36 0a 20 2a 20 |t:.05-Fe|b-86. * |
|00004540| 42 79 3a 09 09 72 65 78 | 3a 3a 63 6f 6e 72 6f 79 |By:..rex|::conroy|
|00004550| 0a 20 2a 09 09 64 65 63 | 76 61 78 21 64 65 63 77 |. *..dec|vax!decw|
|00004560| 72 6c 21 64 65 63 2d 72 | 68 65 61 21 64 65 63 2d |rl!dec-r|hea!dec-|
|00004570| 72 65 78 21 63 6f 6e 72 | 6f 79 0a 20 2a 2f 0a 23 |rex!conr|oy. */.#|
|00004580| 69 6e 63 6c 75 64 65 09 | 22 64 65 66 2e 68 22 0a |include.|"def.h".|
|00004590| 0a 73 74 61 74 69 63 09 | 46 49 4c 45 09 2a 66 66 |.static.|FILE.*ff|
|000045a0| 70 3b 0a 0a 2f 2a 0a 20 | 2a 20 4f 70 65 6e 20 61 |p;../*. |* Open a|
|000045b0| 20 66 69 6c 65 20 66 6f | 72 20 72 65 61 64 69 6e | file fo|r readin|
|000045c0| 67 2e 0a 20 2a 2f 0a 66 | 66 72 6f 70 65 6e 28 66 |g.. */.f|fropen(f|
|000045d0| 6e 29 0a 63 68 61 72 09 | 2a 66 6e 3b 0a 7b 0a 09 |n).char.|*fn;.{..|
|000045e0| 69 66 20 28 28 66 66 70 | 3d 66 6f 70 65 6e 28 66 |if ((ffp|=fopen(f|
|000045f0| 6e 2c 20 22 72 22 29 29 | 20 3d 3d 20 4e 55 4c 4c |n, "r"))| == NULL|
|00004600| 29 0a 09 09 72 65 74 75 | 72 6e 20 28 46 49 4f 46 |)...retu|rn (FIOF|
|00004610| 4e 46 29 3b 0a 09 72 65 | 74 75 72 6e 20 28 46 49 |NF);..re|turn (FI|
|00004620| 4f 53 55 43 29 3b 0a 7d | 0a 0a 2f 2a 0a 20 2a 20 |OSUC);.}|../*. * |
|00004630| 4f 70 65 6e 20 61 20 66 | 69 6c 65 20 66 6f 72 20 |Open a f|ile for |
|00004640| 77 72 69 74 69 6e 67 2e | 0a 20 2a 20 52 65 74 75 |writing.|. * Retu|
|00004650| 72 6e 20 54 52 55 45 20 | 69 66 20 61 6c 6c 20 69 |rn TRUE |if all i|
|00004660| 73 20 77 65 6c 6c 2c 20 | 61 6e 64 0a 20 2a 20 46 |s well, |and. * F|
|00004670| 41 4c 53 45 20 6f 6e 20 | 65 72 72 6f 72 20 28 63 |ALSE on |error (c|
|00004680| 61 6e 6e 6f 74 20 63 72 | 65 61 74 65 29 2e 0a 20 |annot cr|eate).. |
|00004690| 2a 2f 0a 66 66 77 6f 70 | 65 6e 28 66 6e 29 0a 63 |*/.ffwop|en(fn).c|
|000046a0| 68 61 72 09 2a 66 6e 3b | 0a 7b 0a 09 69 66 20 28 |har.*fn;|.{..if (|
|000046b0| 28 66 66 70 3d 66 6f 70 | 65 6e 28 66 6e 2c 20 22 |(ffp=fop|en(fn, "|
|000046c0| 77 22 29 29 20 3d 3d 20 | 4e 55 4c 4c 29 20 7b 0a |w")) == |NULL) {.|
|000046d0| 09 09 65 70 72 69 6e 74 | 66 28 22 43 61 6e 6e 6f |..eprint|f("Canno|
|000046e0| 74 20 6f 70 65 6e 20 66 | 69 6c 65 20 66 6f 72 20 |t open f|ile for |
|000046f0| 77 72 69 74 69 6e 67 22 | 29 3b 0a 09 09 72 65 74 |writing"|);...ret|
|00004700| 75 72 6e 20 28 46 49 4f | 45 52 52 29 3b 0a 09 7d |urn (FIO|ERR);..}|
|00004710| 0a 09 72 65 74 75 72 6e | 20 28 46 49 4f 53 55 43 |..return| (FIOSUC|
|00004720| 29 3b 0a 7d 0a 0a 2f 2a | 0a 20 2a 20 43 6c 6f 73 |);.}../*|. * Clos|
|00004730| 65 20 61 20 66 69 6c 65 | 2e 0a 20 2a 20 53 68 6f |e a file|.. * Sho|
|00004740| 75 6c 64 20 6c 6f 6f 6b | 20 61 74 20 74 68 65 20 |uld look| at the |
|00004750| 73 74 61 74 75 73 2e 0a | 20 2a 2f 0a 66 66 63 6c |status..| */.ffcl|
|00004760| 6f 73 65 28 29 0a 7b 0a | 09 66 63 6c 6f 73 65 28 |ose().{.|.fclose(|
|00004770| 66 66 70 29 3b 0a 09 72 | 65 74 75 72 6e 20 28 46 |ffp);..r|eturn (F|
|00004780| 49 4f 53 55 43 29 3b 0a | 7d 0a 0a 2f 2a 0a 20 2a |IOSUC);.|}../*. *|
|00004790| 20 57 72 69 74 65 20 61 | 20 6c 69 6e 65 20 74 6f | Write a| line to|
|000047a0| 20 74 68 65 20 61 6c 72 | 65 61 64 79 0a 20 2a 20 | the alr|eady. * |
|000047b0| 6f 70 65 6e 65 64 20 66 | 69 6c 65 2e 20 54 68 65 |opened f|ile. The|
|000047c0| 20 22 62 75 66 22 20 70 | 6f 69 6e 74 73 20 74 6f | "buf" p|oints to|
|000047d0| 20 74 68 65 0a 20 2a 20 | 62 75 66 66 65 72 2c 20 | the. * |buffer, |
|000047e0| 61 6e 64 20 74 68 65 20 | 22 6e 62 75 66 22 20 69 |and the |"nbuf" i|
|000047f0| 73 20 69 74 73 20 6c 65 | 6e 67 74 68 2c 20 6c 65 |s its le|ngth, le|
|00004800| 73 73 0a 20 2a 20 74 68 | 65 20 66 72 65 65 20 6e |ss. * th|e free n|
|00004810| 65 77 6c 69 6e 65 2e 20 | 52 65 74 75 72 6e 20 74 |ewline. |Return t|
|00004820| 68 65 20 73 74 61 74 75 | 73 2e 0a 20 2a 20 43 68 |he statu|s.. * Ch|
|00004830| 65 63 6b 20 6f 6e 6c 79 | 20 61 74 20 74 68 65 20 |eck only| at the |
|00004840| 6e 65 77 6c 69 6e 65 2e | 0a 20 2a 2f 0a 66 66 70 |newline.|. */.ffp|
|00004850| 75 74 6c 69 6e 65 28 62 | 75 66 2c 20 6e 62 75 66 |utline(b|uf, nbuf|
|00004860| 29 0a 72 65 67 69 73 74 | 65 72 20 63 68 61 72 09 |).regist|er char.|
|00004870| 62 75 66 5b 5d 3b 0a 7b | 0a 09 72 65 67 69 73 74 |buf[];.{|..regist|
|00004880| 65 72 20 69 6e 74 09 69 | 3b 0a 0a 09 66 6f 72 20 |er int.i|;...for |
|00004890| 28 69 3d 30 3b 20 69 3c | 6e 62 75 66 3b 20 2b 2b |(i=0; i<|nbuf; ++|
|000048a0| 69 29 0a 09 09 70 75 74 | 63 28 62 75 66 5b 69 5d |i)...put|c(buf[i]|
|000048b0| 26 30 78 46 46 2c 20 66 | 66 70 29 3b 0a 09 70 75 |&0xFF, f|fp);..pu|
|000048c0| 74 63 28 27 5c 6e 27 2c | 20 66 66 70 29 3b 0a 09 |tc('\n',| ffp);..|
|000048d0| 69 66 20 28 66 65 72 72 | 6f 72 28 66 66 70 29 20 |if (ferr|or(ffp) |
|000048e0| 21 3d 20 46 41 4c 53 45 | 29 20 7b 0a 09 09 65 70 |!= FALSE|) {...ep|
|000048f0| 72 69 6e 74 66 28 22 57 | 72 69 74 65 20 49 2f 4f |rintf("W|rite I/O|
|00004900| 20 65 72 72 6f 72 22 29 | 3b 0a 09 09 72 65 74 75 | error")|;...retu|
|00004910| 72 6e 20 28 46 49 4f 45 | 52 52 29 3b 0a 09 7d 0a |rn (FIOE|RR);..}.|
|00004920| 09 72 65 74 75 72 6e 20 | 28 46 49 4f 53 55 43 29 |.return |(FIOSUC)|
|00004930| 3b 0a 7d 0a 0a 2f 2a 0a | 20 2a 20 52 65 61 64 20 |;.}../*.| * Read |
|00004940| 61 20 6c 69 6e 65 20 66 | 72 6f 6d 20 61 20 66 69 |a line f|rom a fi|
|00004950| 6c 65 2c 20 61 6e 64 20 | 73 74 6f 72 65 20 74 68 |le, and |store th|
|00004960| 65 20 62 79 74 65 73 0a | 20 2a 20 69 6e 20 74 68 |e bytes.| * in th|
|00004970| 65 20 73 75 70 70 6c 69 | 65 64 20 62 75 66 66 65 |e suppli|ed buffe|
|00004980| 72 2e 20 53 74 6f 70 20 | 6f 6e 20 65 6e 64 20 6f |r. Stop |on end o|
|00004990| 66 20 66 69 6c 65 20 6f | 72 20 65 6e 64 20 6f 66 |f file o|r end of|
|000049a0| 0a 20 2a 20 6c 69 6e 65 | 2e 20 44 6f 6e 27 74 20 |. * line|. Don't |
|000049b0| 67 65 74 20 75 70 73 65 | 74 20 62 79 20 66 69 6c |get upse|t by fil|
|000049c0| 65 73 20 74 68 61 74 20 | 64 6f 6e 27 74 20 68 61 |es that |don't ha|
|000049d0| 76 65 20 61 6e 20 65 6e | 64 20 6f 66 0a 20 2a 20 |ve an en|d of. * |
|000049e0| 6c 69 6e 65 20 6f 6e 20 | 74 68 65 20 6c 61 73 74 |line on |the last|
|000049f0| 20 6c 69 6e 65 3b 20 74 | 68 69 73 20 73 65 65 6d | line; t|his seem|
|00004a00| 20 74 6f 20 62 65 20 63 | 6f 6d 6d 6f 6e 20 6f 6e | to be c|ommon on|
|00004a10| 20 43 50 2f 4d 2d 38 36 | 20 61 6e 64 0a 20 2a 20 | CP/M-86| and. * |
|00004a20| 4d 53 2d 44 4f 53 20 28 | 74 68 65 20 73 75 73 70 |MS-DOS (|the susp|
|00004a30| 65 63 74 65 64 20 63 75 | 6c 70 72 69 74 20 69 73 |ected cu|lprit is|
|00004a40| 20 56 41 58 2f 56 4d 53 | 20 6b 65 72 6d 69 74 2c | VAX/VMS| kermit,|
|00004a50| 20 62 75 74 20 74 68 69 | 73 0a 20 2a 20 68 61 73 | but thi|s. * has|
|00004a60| 20 6e 6f 74 20 62 65 65 | 6e 20 63 6f 6e 66 69 72 | not bee|n confir|
|00004a70| 6d 65 64 2e 20 49 66 20 | 74 68 69 73 20 69 73 20 |med. If |this is |
|00004a80| 73 75 66 66 69 63 69 65 | 6e 74 6c 79 20 72 65 73 |sufficie|ntly res|
|00004a90| 65 61 72 63 68 65 64 0a | 20 2a 20 69 74 20 6d 61 |earched.| * it ma|
|00004aa0| 79 20 62 65 20 70 6f 73 | 73 69 62 6c 65 20 74 6f |y be pos|sible to|
|00004ab0| 20 70 75 6c 6c 20 74 68 | 69 73 20 6b 6c 75 64 67 | pull th|is kludg|
|00004ac0| 65 29 2e 20 44 65 6c 65 | 74 65 20 61 6e 79 20 43 |e). Dele|te any C|
|00004ad0| 52 0a 20 2a 20 66 6f 6c | 6c 6f 77 65 64 20 62 79 |R. * fol|lowed by|
|00004ae0| 20 61 6e 20 4c 46 2e 20 | 54 68 69 73 20 69 73 20 | an LF. |This is |
|00004af0| 6d 61 69 6e 6c 79 20 66 | 6f 72 20 72 75 6e 6f 66 |mainly f|or runof|
|00004b00| 66 20 64 6f 63 75 6d 65 | 6e 74 73 2c 0a 20 2a 20 |f docume|nts,. * |
|00004b10| 62 6f 74 68 20 6f 6e 20 | 56 4d 53 20 61 6e 64 20 |both on |VMS and |
|00004b20| 6f 6e 20 55 6c 74 72 69 | 78 20 28 74 68 65 79 20 |on Ultri|x (they |
|00004b30| 67 65 74 20 63 6f 70 69 | 65 64 20 6f 76 65 72 20 |get copi|ed over |
|00004b40| 66 72 6f 6d 0a 20 2a 20 | 56 4d 53 20 73 79 73 74 |from. * |VMS syst|
|00004b50| 65 6d 73 20 77 69 74 68 | 20 44 45 43 6e 65 74 29 |ems with| DECnet)|
|00004b60| 2e 0a 20 2a 2f 0a 66 66 | 67 65 74 6c 69 6e 65 28 |.. */.ff|getline(|
|00004b70| 62 75 66 2c 20 6e 62 75 | 66 29 0a 72 65 67 69 73 |buf, nbu|f).regis|
|00004b80| 74 65 72 20 63 68 61 72 | 09 62 75 66 5b 5d 3b 0a |ter char|.buf[];.|
|00004b90| 7b 0a 09 72 65 67 69 73 | 74 65 72 20 69 6e 74 09 |{..regis|ter int.|
|00004ba0| 63 3b 0a 09 72 65 67 69 | 73 74 65 72 20 69 6e 74 |c;..regi|ster int|
|00004bb0| 09 69 3b 0a 0a 09 69 20 | 3d 20 30 3b 0a 09 66 6f |.i;...i |= 0;..fo|
|00004bc0| 72 20 28 3b 3b 29 20 7b | 0a 09 09 63 20 3d 20 67 |r (;;) {|...c = g|
|00004bd0| 65 74 63 28 66 66 70 29 | 3b 0a 09 09 69 66 20 28 |etc(ffp)|;...if (|
|00004be0| 63 20 3d 3d 20 27 5c 72 | 27 29 20 7b 09 09 2f 2a |c == '\r|') {../*|
|00004bf0| 20 44 65 6c 65 74 65 20 | 61 6e 79 20 6e 6f 6e 2d | Delete |any non-|
|00004c00| 73 74 72 61 79 09 2a 2f | 0a 09 09 09 63 20 3d 20 |stray.*/|....c = |
|00004c10| 67 65 74 63 28 66 66 70 | 29 3b 09 09 2f 2a 20 63 |getc(ffp|);../* c|
|00004c20| 61 72 72 69 61 67 65 20 | 72 65 74 75 72 6e 73 2e |arriage |returns.|
|00004c30| 09 2a 2f 0a 09 09 09 69 | 66 20 28 63 20 21 3d 20 |.*/....i|f (c != |
|00004c40| 27 5c 6e 27 29 20 7b 0a | 09 09 09 09 69 66 20 28 |'\n') {.|....if (|
|00004c50| 69 20 3e 3d 20 6e 62 75 | 66 2d 31 29 20 7b 0a 09 |i >= nbu|f-1) {..|
|00004c60| 09 09 09 09 65 70 72 69 | 6e 74 66 28 22 46 69 6c |....epri|ntf("Fil|
|00004c70| 65 20 68 61 73 20 6c 6f | 6e 67 20 6c 69 6e 65 22 |e has lo|ng line"|
|00004c80| 29 3b 0a 09 09 09 09 09 | 72 65 74 75 72 6e 20 28 |);......|return (|
|00004c90| 46 49 4f 45 52 52 29 3b | 0a 09 09 09 09 7d 0a 09 |FIOERR);|.....}..|
|00004ca0| 09 09 09 62 75 66 5b 69 | 2b 2b 5d 20 3d 20 27 5c |...buf[i|++] = '\|
|00004cb0| 72 27 3b 0a 09 09 09 7d | 0a 09 09 7d 0a 09 09 69 |r';....}|...}...i|
|00004cc0| 66 20 28 63 3d 3d 45 4f | 46 20 7c 7c 20 63 3d 3d |f (c==EO|F || c==|
|00004cd0| 27 5c 6e 27 29 09 09 2f | 2a 20 45 6e 64 20 6f 66 |'\n')../|* End of|
|00004ce0| 20 6c 69 6e 65 2e 09 09 | 2a 2f 0a 09 09 09 62 72 | line...|*/....br|
|00004cf0| 65 61 6b 3b 0a 09 09 69 | 66 20 28 69 20 3e 3d 20 |eak;...i|f (i >= |
|00004d00| 6e 62 75 66 2d 31 29 20 | 7b 0a 09 09 09 65 70 72 |nbuf-1) |{....epr|
|00004d10| 69 6e 74 66 28 22 46 69 | 6c 65 20 68 61 73 20 6c |intf("Fi|le has l|
|00004d20| 6f 6e 67 20 6c 69 6e 65 | 22 29 3b 0a 09 09 09 72 |ong line|");....r|
|00004d30| 65 74 75 72 6e 20 28 46 | 49 4f 45 52 52 29 3b 0a |eturn (F|IOERR);.|
|00004d40| 09 09 7d 0a 09 09 62 75 | 66 5b 69 2b 2b 5d 20 3d |..}...bu|f[i++] =|
|00004d50| 20 63 3b 0a 09 7d 0a 09 | 69 66 20 28 63 20 3d 3d | c;..}..|if (c ==|
|00004d60| 20 45 4f 46 29 20 7b 09 | 09 09 09 2f 2a 20 45 6e | EOF) {.|.../* En|
|00004d70| 64 20 6f 66 20 66 69 6c | 65 2e 09 09 2a 2f 0a 09 |d of fil|e...*/..|
|00004d80| 09 69 66 20 28 66 65 72 | 72 6f 72 28 66 66 70 29 |.if (fer|ror(ffp)|
|00004d90| 20 21 3d 20 46 41 4c 53 | 45 29 20 7b 0a 09 09 09 | != FALS|E) {....|
|00004da0| 65 70 72 69 6e 74 66 28 | 22 46 69 6c 65 20 72 65 |eprintf(|"File re|
|00004db0| 61 64 20 65 72 72 6f 72 | 22 29 3b 0a 09 09 09 72 |ad error|");....r|
|00004dc0| 65 74 75 72 6e 20 28 46 | 49 4f 45 52 52 29 3b 0a |eturn (F|IOERR);.|
|00004dd0| 09 09 7d 0a 09 09 69 66 | 20 28 69 20 3d 3d 20 30 |..}...if| (i == 0|
|00004de0| 29 09 09 09 2f 2a 20 44 | 6f 6e 27 74 20 67 65 74 |).../* D|on't get|
|00004df0| 20 75 70 73 65 74 20 69 | 66 09 2a 2f 0a 09 09 09 | upset i|f.*/....|
|00004e00| 72 65 74 75 72 6e 20 28 | 46 49 4f 45 4f 46 29 3b |return (|FIOEOF);|
|00004e10| 09 2f 2a 20 6e 6f 20 6e | 65 77 6c 69 6e 65 20 61 |./* no n|ewline a|
|00004e20| 74 20 45 4f 46 2e 09 2a | 2f 0a 09 7d 0a 09 62 75 |t EOF..*|/..}..bu|
|00004e30| 66 5b 69 5d 20 3d 20 30 | 3b 0a 09 72 65 74 75 72 |f[i] = 0|;..retur|
|00004e40| 6e 20 28 46 49 4f 53 55 | 43 29 3b 0a 7d 0a 0a 2f |n (FIOSU|C);.}../|
|00004e50| 2a 0a 20 2a 20 52 65 6e | 61 6d 65 20 74 68 65 20 |*. * Ren|ame the |
|00004e60| 66 69 6c 65 20 22 66 6e | 61 6d 65 22 20 69 6e 74 |file "fn|ame" int|
|00004e70| 6f 20 61 20 62 61 63 6b | 75 70 0a 20 2a 20 63 6f |o a back|up. * co|
|00004e80| 70 79 2e 20 4f 6e 20 55 | 6e 69 78 20 74 68 65 20 |py. On U|nix the |
|00004e90| 62 61 63 6b 75 70 20 68 | 61 73 20 74 68 65 20 73 |backup h|as the s|
|00004ea0| 61 6d 65 20 6e 61 6d 65 | 20 61 73 20 74 68 65 0a |ame name| as the.|
|00004eb0| 20 2a 20 6f 72 69 67 69 | 6e 61 6c 20 66 69 6c 65 | * origi|nal file|
|00004ec0| 2c 20 77 69 74 68 20 61 | 20 22 7e 22 20 6f 6e 20 |, with a| "~" on |
|00004ed0| 74 68 65 20 65 6e 64 3b | 20 74 68 69 73 20 73 65 |the end;| this se|
|00004ee0| 65 6d 73 20 74 6f 0a 20 | 2a 20 62 65 20 6e 65 77 |ems to. |* be new|
|00004ef0| 65 73 74 20 6f 66 20 74 | 68 65 20 6e 65 77 2d 73 |est of t|he new-s|
|00004f00| 70 65 61 6b 2e 20 54 68 | 65 20 65 72 72 6f 72 20 |peak. Th|e error |
|00004f10| 68 61 6e 64 6c 69 6e 67 | 20 69 73 0a 20 2a 20 61 |handling| is. * a|
|00004f20| 6c 6c 20 69 6e 20 22 66 | 69 6c 65 2e 63 22 2e 20 |ll in "f|ile.c". |
|00004f30| 54 68 65 20 22 75 6e 6c | 69 6e 6b 22 20 69 73 20 |The "unl|ink" is |
|00004f40| 70 65 72 68 61 70 73 20 | 6e 6f 74 20 74 68 65 0a |perhaps |not the.|
|00004f50| 20 2a 20 72 69 67 68 74 | 20 74 68 69 6e 67 20 68 | * right| thing h|
|00004f60| 65 72 65 3b 20 49 20 64 | 6f 6e 27 74 20 63 61 72 |ere; I d|on't car|
|00004f70| 65 20 74 68 61 74 20 6d | 75 63 68 20 61 73 0a 20 |e that m|uch as. |
|00004f80| 2a 20 49 20 64 6f 6e 27 | 74 20 65 6e 61 62 6c 65 |* I don'|t enable|
|00004f90| 20 62 61 63 6b 75 70 73 | 20 6d 79 73 65 6c 66 2e | backups| myself.|
|00004fa0| 0a 20 2a 2f 0a 66 62 61 | 63 6b 75 70 66 69 6c 65 |. */.fba|ckupfile|
|00004fb0| 28 66 6e 61 6d 65 29 0a | 63 68 61 72 09 2a 66 6e |(fname).|char.*fn|
|00004fc0| 61 6d 65 3b 0a 7b 0a 09 | 72 65 67 69 73 74 65 72 |ame;.{..|register|
|00004fd0| 20 63 68 61 72 09 2a 6e | 6e 61 6d 65 3b 0a 0a 09 | char.*n|name;...|
|00004fe0| 69 66 20 28 28 6e 6e 61 | 6d 65 3d 6d 61 6c 6c 6f |if ((nna|me=mallo|
|00004ff0| 63 28 73 74 72 6c 65 6e | 28 66 6e 61 6d 65 29 2b |c(strlen|(fname)+|
|00005000| 31 2b 31 29 29 20 3d 3d | 20 4e 55 4c 4c 29 0a 09 |1+1)) ==| NULL)..|
|00005010| 09 72 65 74 75 72 6e 20 | 28 41 42 4f 52 54 29 3b |.return |(ABORT);|
|00005020| 0a 09 28 76 6f 69 64 29 | 20 73 74 72 63 70 79 28 |..(void)| strcpy(|
|00005030| 6e 6e 61 6d 65 2c 20 66 | 6e 61 6d 65 29 3b 0a 09 |nname, f|name);..|
|00005040| 28 76 6f 69 64 29 20 73 | 74 72 63 61 74 28 6e 6e |(void) s|trcat(nn|
|00005050| 61 6d 65 2c 20 22 7e 22 | 29 3b 0a 09 28 76 6f 69 |ame, "~"|);..(voi|
|00005060| 64 29 20 75 6e 6c 69 6e | 6b 28 6e 6e 61 6d 65 29 |d) unlin|k(nname)|
|00005070| 3b 09 09 09 2f 2a 20 49 | 67 6e 6f 72 65 20 65 72 |;.../* I|gnore er|
|00005080| 72 6f 72 73 2e 09 2a 2f | 0a 09 69 66 20 28 72 65 |rors..*/|..if (re|
|00005090| 6e 61 6d 65 28 66 6e 61 | 6d 65 2c 20 6e 6e 61 6d |name(fna|me, nnam|
|000050a0| 65 29 20 3c 20 30 29 20 | 7b 0a 09 09 66 72 65 65 |e) < 0) |{...free|
|000050b0| 28 6e 6e 61 6d 65 29 3b | 0a 09 09 72 65 74 75 72 |(nname);|...retur|
|000050c0| 6e 20 28 46 41 4c 53 45 | 29 3b 0a 09 7d 0a 09 66 |n (FALSE|);..}..f|
|000050d0| 72 65 65 28 6e 6e 61 6d | 65 29 3b 0a 09 72 65 74 |ree(nnam|e);..ret|
|000050e0| 75 72 6e 20 28 54 52 55 | 45 29 3b 0a 7d 0a 0a 2f |urn (TRU|E);.}../|
|000050f0| 2a 0a 20 2a 20 54 68 65 | 20 73 74 72 69 6e 67 20 |*. * The| string |
|00005100| 22 66 6e 22 20 69 73 20 | 61 20 66 69 6c 65 20 6e |"fn" is |a file n|
|00005110| 61 6d 65 2e 0a 20 2a 20 | 50 65 72 66 6f 72 6d 20 |ame.. * |Perform |
|00005120| 61 6e 79 20 72 65 71 75 | 69 72 65 64 20 63 61 73 |any requ|ired cas|
|00005130| 65 20 61 64 6a 75 73 74 | 6d 65 6e 74 73 2e 20 41 |e adjust|ments. A|
|00005140| 6c 6c 20 73 75 73 74 65 | 6d 73 0a 20 2a 20 77 65 |ll suste|ms. * we|
|00005150| 20 64 65 61 6c 20 77 69 | 74 68 20 73 6f 20 66 61 | deal wi|th so fa|
|00005160| 72 20 68 61 76 65 20 63 | 61 73 65 20 69 6e 73 65 |r have c|ase inse|
|00005170| 6e 73 69 74 69 76 65 20 | 66 69 6c 65 20 73 79 73 |nsitive |file sys|
|00005180| 74 65 6d 73 2e 0a 20 2a | 20 57 65 20 7a 61 70 20 |tems.. *| We zap |
|00005190| 65 76 65 72 79 74 68 69 | 6e 67 20 74 6f 20 6c 6f |everythi|ng to lo|
|000051a0| 77 65 72 20 63 61 73 65 | 2e 20 54 68 65 20 70 72 |wer case|. The pr|
|000051b0| 6f 62 6c 65 6d 20 77 65 | 20 61 72 65 20 74 72 79 |oblem we| are try|
|000051c0| 69 6e 67 0a 20 2a 20 74 | 6f 20 73 6f 6c 76 65 20 |ing. * t|o solve |
|000051d0| 69 73 20 67 65 74 74 69 | 6e 67 20 32 20 62 75 66 |is getti|ng 2 buf|
|000051e0| 66 65 72 73 20 68 6f 6c | 64 69 6e 67 20 74 68 65 |fers hol|ding the|
|000051f0| 20 73 61 6d 65 20 66 69 | 6c 65 20 69 66 0a 20 2a | same fi|le if. *|
|00005200| 20 79 6f 75 20 76 69 73 | 69 74 20 6f 6e 65 20 6f | you vis|it one o|
|00005210| 66 20 74 68 65 6d 20 77 | 69 74 68 20 74 68 65 20 |f them w|ith the |
|00005220| 22 63 61 70 73 20 6c 6f | 63 6b 22 20 6b 65 79 20 |"caps lo|ck" key |
|00005230| 64 6f 77 6e 2e 0a 20 2a | 20 4f 6e 20 55 4e 49 58 |down.. *| On UNIX|
|00005240| 20 66 69 6c 65 20 6e 61 | 6d 65 73 20 61 72 65 20 | file na|mes are |
|00005250| 64 75 61 6c 20 63 61 73 | 65 2c 20 73 6f 20 77 65 |dual cas|e, so we|
|00005260| 20 6c 65 61 76 65 0a 20 | 2a 20 65 76 65 72 79 74 | leave. |* everyt|
|00005270| 68 69 6e 67 20 61 6c 6f | 6e 65 2e 0a 20 2a 2f 0a |hing alo|ne.. */.|
|00005280| 61 64 6a 75 73 74 63 61 | 73 65 28 66 6e 29 0a 72 |adjustca|se(fn).r|
|00005290| 65 67 69 73 74 65 72 20 | 63 68 61 72 09 2a 66 6e |egister |char.*fn|
|000052a0| 3b 0a 7b 0a 23 69 66 09 | 30 0a 09 72 65 67 69 73 |;.{.#if.|0..regis|
|000052b0| 74 65 72 20 69 6e 74 09 | 63 3b 0a 0a 09 77 68 69 |ter int.|c;...whi|
|000052c0| 6c 65 20 28 28 63 20 3d | 20 2a 66 6e 29 20 21 3d |le ((c =| *fn) !=|
|000052d0| 20 30 29 20 7b 0a 09 09 | 69 66 20 28 63 3e 3d 27 | 0) {...|if (c>='|
|000052e0| 41 27 20 26 26 20 63 3c | 3d 27 5a 27 29 0a 09 09 |A' && c<|='Z')...|
|000052f0| 09 2a 66 6e 20 3d 20 63 | 20 2b 20 27 61 27 20 2d |.*fn = c| + 'a' -|
|00005300| 20 27 41 27 3b 0a 09 09 | 2b 2b 66 6e 3b 0a 09 7d | 'A';...|++fn;..}|
|00005310| 0a 23 65 6e 64 69 66 0a | 7d 0a 53 48 41 52 5f 45 |.#endif.|}.SHAR_E|
|00005320| 4f 46 0a 69 66 20 74 65 | 73 74 20 33 36 33 36 20 |OF.if te|st 3636 |
|00005330| 2d 6e 65 20 22 60 77 63 | 20 2d 63 20 3c 20 27 73 |-ne "`wc| -c < 's|
|00005340| 79 73 2f 75 6c 74 72 69 | 78 2f 66 69 6c 65 69 6f |ys/ultri|x/fileio|
|00005350| 2e 63 27 60 22 0a 74 68 | 65 6e 0a 09 65 63 68 6f |.c'`".th|en..echo|
|00005360| 20 73 68 61 72 3a 20 65 | 72 72 6f 72 20 74 72 61 | shar: e|rror tra|
|00005370| 6e 73 6d 69 74 74 69 6e | 67 20 22 27 73 79 73 2f |nsmittin|g "'sys/|
|00005380| 75 6c 74 72 69 78 2f 66 | 69 6c 65 69 6f 2e 63 27 |ultrix/f|ileio.c'|
|00005390| 22 20 27 28 73 68 6f 75 | 6c 64 20 68 61 76 65 20 |" '(shou|ld have |
|000053a0| 62 65 65 6e 20 33 36 33 | 36 20 63 68 61 72 61 63 |been 363|6 charac|
|000053b0| 74 65 72 73 29 27 0a 66 | 69 0a 66 69 0a 65 63 68 |ters)'.f|i.fi.ech|
|000053c0| 6f 20 73 68 61 72 3a 20 | 65 78 74 72 61 63 74 69 |o shar: |extracti|
|000053d0| 6e 67 20 22 27 73 79 73 | 2f 75 6c 74 72 69 78 2f |ng "'sys|/ultrix/|
|000053e0| 73 70 61 77 6e 2e 63 27 | 22 20 27 28 32 37 33 31 |spawn.c'|" '(2731|
|000053f0| 20 63 68 61 72 61 63 74 | 65 72 73 29 27 0a 69 66 | charact|ers)'.if|
|00005400| 20 74 65 73 74 20 2d 66 | 20 27 73 79 73 2f 75 6c | test -f| 'sys/ul|
|00005410| 74 72 69 78 2f 73 70 61 | 77 6e 2e 63 27 0a 74 68 |trix/spa|wn.c'.th|
|00005420| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 77 |en..echo| shar: w|
|00005430| 69 6c 6c 20 6e 6f 74 20 | 6f 76 65 72 2d 77 72 69 |ill not |over-wri|
|00005440| 74 65 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |te exist|ing file|
|00005450| 20 22 27 73 79 73 2f 75 | 6c 74 72 69 78 2f 73 70 | "'sys/u|ltrix/sp|
|00005460| 61 77 6e 2e 63 27 22 0a | 65 6c 73 65 0a 63 61 74 |awn.c'".|else.cat|
|00005470| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|00005480| 27 73 79 73 2f 75 6c 74 | 72 69 78 2f 73 70 61 77 |'sys/ult|rix/spaw|
|00005490| 6e 2e 63 27 0a 2f 2a 0a | 20 2a 20 4e 61 6d 65 3a |n.c'./*.| * Name:|
|000054a0| 09 4d 69 63 72 6f 45 4d | 41 43 53 0a 20 2a 09 09 |.MicroEM|ACS. *..|
|000054b0| 53 70 61 77 6e 20 43 4c | 49 3b 20 73 74 6f 70 20 |Spawn CL|I; stop |
|000054c0| 69 66 20 43 20 73 68 65 | 6c 6c 2e 0a 20 2a 20 56 |if C she|ll.. * V|
|000054d0| 65 72 73 69 6f 6e 3a 09 | 32 39 0a 20 2a 20 4c 61 |ersion:.|29. * La|
|000054e0| 73 74 20 65 64 69 74 3a | 09 31 30 2d 46 65 62 2d |st edit:|.10-Feb-|
|000054f0| 38 36 0a 20 2a 20 42 79 | 3a 09 09 72 65 78 3a 3a |86. * By|:..rex::|
|00005500| 63 6f 6e 72 6f 79 0a 20 | 2a 09 09 64 65 63 76 61 |conroy. |*..decva|
|00005510| 78 21 64 65 63 77 72 6c | 21 64 65 63 2d 72 68 65 |x!decwrl|!dec-rhe|
|00005520| 61 21 64 65 63 2d 72 65 | 78 21 63 6f 6e 72 6f 79 |a!dec-re|x!conroy|
|00005530| 0a 20 2a 0a 20 2a 20 53 | 70 61 77 6e 2e 20 4e 65 |. *. * S|pawn. Ne|
|00005540| 77 20 76 65 72 73 69 6f | 6e 2c 20 77 68 69 63 68 |w versio|n, which|
|00005550| 0a 20 2a 20 69 6e 74 65 | 72 72 61 63 74 73 20 77 |. * inte|rracts w|
|00005560| 69 74 68 20 74 68 65 20 | 6a 6f 62 20 63 6f 6e 74 |ith the |job cont|
|00005570| 72 6f 6c 20 73 74 75 66 | 66 0a 20 2a 20 69 6e 20 |rol stuf|f. * in |
|00005580| 74 68 65 20 34 2e 58 20 | 42 53 44 20 43 20 73 68 |the 4.X |BSD C sh|
|00005590| 65 6c 6c 2e 0a 20 2a 2f | 0a 23 69 6e 63 6c 75 64 |ell.. */|.#includ|
|000055a0| 65 09 22 64 65 66 2e 68 | 22 0a 0a 23 69 6e 63 6c |e."def.h|"..#incl|
|000055b0| 75 64 65 09 3c 73 67 74 | 74 79 2e 68 3e 0a 23 69 |ude.<sgt|ty.h>.#i|
|000055c0| 6e 63 6c 75 64 65 09 3c | 73 69 67 6e 61 6c 2e 68 |nclude.<|signal.h|
|000055d0| 3e 0a 0a 63 68 61 72 09 | 2a 73 68 65 6c 6c 70 09 |>..char.|*shellp.|
|000055e0| 3d 20 4e 55 4c 4c 3b 09 | 09 09 2f 2a 20 53 61 76 |= NULL;.|../* Sav|
|000055f0| 65 64 20 22 53 48 45 4c | 4c 22 20 6e 61 6d 65 2e |ed "SHEL|L" name.|
|00005600| 09 09 2a 2f 0a 0a 65 78 | 74 65 72 6e 09 73 74 72 |..*/..ex|tern.str|
|00005610| 75 63 74 09 73 67 74 74 | 79 62 09 6f 6c 64 74 74 |uct.sgtt|yb.oldtt|
|00005620| 79 3b 09 09 2f 2a 20 54 | 68 65 72 65 20 72 65 61 |y;../* T|here rea|
|00005630| 6c 6c 79 20 73 68 6f 75 | 6c 64 20 62 65 20 61 09 |lly shou|ld be a.|
|00005640| 2a 2f 0a 65 78 74 65 72 | 6e 09 73 74 72 75 63 74 |*/.exter|n.struct|
|00005650| 09 73 67 74 74 79 62 09 | 6e 65 77 74 74 79 3b 09 |.sgttyb.|newtty;.|
|00005660| 09 2f 2a 20 6e 69 63 65 | 72 20 77 61 79 20 6f 66 |./* nice|r way of|
|00005670| 20 64 6f 69 6e 67 20 74 | 68 69 73 2c 20 73 6f 09 | doing t|his, so.|
|00005680| 2a 2f 0a 65 78 74 65 72 | 6e 09 73 74 72 75 63 74 |*/.exter|n.struct|
|00005690| 09 73 67 74 74 79 62 09 | 6f 6c 64 74 63 68 61 72 |.sgttyb.|oldtchar|
|000056a0| 73 3b 09 2f 2a 20 73 70 | 61 77 6e 20 64 6f 65 73 |s;./* sp|awn does|
|000056b0| 20 6e 6f 74 20 6e 65 65 | 64 20 74 6f 20 6b 6e 6f | not nee|d to kno|
|000056c0| 77 09 2a 2f 0a 65 78 74 | 65 72 6e 09 73 74 72 75 |w.*/.ext|ern.stru|
|000056d0| 63 74 09 73 67 74 74 79 | 62 09 6e 65 77 74 63 68 |ct.sgtty|b.newtch|
|000056e0| 61 72 73 3b 09 2f 2a 20 | 61 62 6f 75 74 20 74 68 |ars;./* |about th|
|000056f0| 65 20 69 6e 73 69 64 65 | 73 20 6f 66 20 74 68 65 |e inside|s of the|
|00005700| 09 2a 2f 0a 65 78 74 65 | 72 6e 09 73 74 72 75 63 |.*/.exte|rn.struc|
|00005710| 74 09 73 67 74 74 79 62 | 09 6f 6c 64 6c 74 63 68 |t.sgttyb|.oldltch|
|00005720| 61 72 73 3b 09 2f 2a 20 | 74 65 72 6d 69 6e 61 6c |ars;./* |terminal|
|00005730| 20 49 2f 4f 20 63 6f 64 | 65 2e 09 09 2a 2f 0a 65 | I/O cod|e...*/.e|
|00005740| 78 74 65 72 6e 09 73 74 | 72 75 63 74 09 73 67 74 |xtern.st|ruct.sgt|
|00005750| 74 79 62 09 6e 65 77 6c | 74 63 68 61 72 73 3b 0a |tyb.newl|tchars;.|
|00005760| 0a 65 78 74 65 72 6e 09 | 63 68 61 72 09 2a 67 65 |.extern.|char.*ge|
|00005770| 74 65 6e 76 28 29 3b 0a | 0a 2f 2a 0a 20 2a 20 54 |tenv();.|./*. * T|
|00005780| 68 69 73 20 63 6f 64 65 | 20 64 6f 65 73 20 61 20 |his code| does a |
|00005790| 6f 6e 65 20 6f 66 20 32 | 20 64 69 66 66 65 72 65 |one of 2| differe|
|000057a0| 6e 74 0a 20 2a 20 74 68 | 69 6e 67 73 2c 20 64 65 |nt. * th|ings, de|
|000057b0| 70 65 6e 64 69 6e 67 20 | 6f 6e 20 77 68 61 74 20 |pending |on what |
|000057c0| 76 65 72 73 69 6f 6e 20 | 6f 66 20 74 68 65 20 73 |version |of the s|
|000057d0| 68 65 6c 6c 0a 20 2a 20 | 79 6f 75 20 61 72 65 20 |hell. * |you are |
|000057e0| 75 73 69 6e 67 2e 20 49 | 66 20 79 6f 75 20 61 72 |using. I|f you ar|
|000057f0| 65 20 75 73 69 6e 67 20 | 74 68 65 20 43 20 73 68 |e using |the C sh|
|00005800| 65 6c 6c 2c 20 77 68 69 | 63 68 0a 20 2a 20 69 6d |ell, whi|ch. * im|
|00005810| 70 6c 69 65 73 20 74 68 | 61 74 20 79 6f 75 20 61 |plies th|at you a|
|00005820| 72 65 20 75 73 69 6e 67 | 20 6a 6f 62 20 63 6f 6e |re using| job con|
|00005830| 74 72 6f 6c 2c 20 74 68 | 65 6e 20 4d 69 63 72 6f |trol, th|en Micro|
|00005840| 45 4d 41 43 53 0a 20 2a | 20 6d 6f 76 65 73 20 74 |EMACS. *| moves t|
|00005850| 68 65 20 63 75 72 73 6f | 72 20 74 6f 20 61 20 6e |he curso|r to a n|
|00005860| 69 63 65 20 70 6c 61 63 | 65 20 61 6e 64 20 73 65 |ice plac|e and se|
|00005870| 6e 64 73 20 69 74 73 65 | 6c 66 20 61 0a 20 2a 20 |nds itse|lf a. * |
|00005880| 73 74 6f 70 20 73 69 67 | 6e 61 6c 2e 20 49 66 20 |stop sig|nal. If |
|00005890| 79 6f 75 20 61 72 65 20 | 75 73 69 6e 67 20 74 68 |you are |using th|
|000058a0| 65 20 42 6f 75 72 6e 65 | 20 73 68 65 6c 6c 20 69 |e Bourne| shell i|
|000058b0| 74 20 72 75 6e 73 0a 20 | 2a 20 61 20 73 75 62 73 |t runs. |* a subs|
|000058c0| 68 65 6c 6c 20 75 73 69 | 6e 67 20 66 6f 72 6b 2f |hell usi|ng fork/|
|000058d0| 65 78 65 63 2e 20 42 6f | 75 6e 64 20 74 6f 20 22 |exec. Bo|und to "|
|000058e0| 43 2d 43 22 2c 20 61 6e | 64 20 75 73 65 64 0a 20 |C-C", an|d used. |
|000058f0| 2a 20 61 73 20 61 20 73 | 75 62 63 6f 6d 6d 61 6e |* as a s|ubcomman|
|00005900| 64 20 62 79 20 22 43 2d | 5a 22 2e 0a 20 2a 2f 0a |d by "C-|Z".. */.|
|00005910| 73 70 61 77 6e 63 6c 69 | 28 66 2c 20 6e 2c 20 6b |spawncli|(f, n, k|
|00005920| 29 0a 7b 0a 09 72 65 67 | 69 73 74 65 72 20 69 6e |).{..reg|ister in|
|00005930| 74 09 70 69 64 3b 0a 09 | 72 65 67 69 73 74 65 72 |t.pid;..|register|
|00005940| 20 69 6e 74 09 77 70 69 | 64 3b 0a 09 72 65 67 69 | int.wpi|d;..regi|
|00005950| 73 74 65 72 20 69 6e 74 | 09 28 2a 6f 71 73 69 67 |ster int|.(*oqsig|
|00005960| 29 28 29 3b 0a 09 72 65 | 67 69 73 74 65 72 20 69 |)();..re|gister i|
|00005970| 6e 74 09 28 2a 6f 69 73 | 69 67 29 28 29 3b 0a 09 |nt.(*ois|ig)();..|
|00005980| 69 6e 74 09 09 73 74 61 | 74 75 73 3b 0a 0a 09 69 |int..sta|tus;...i|
|00005990| 66 20 28 73 68 65 6c 6c | 70 20 3d 3d 20 4e 55 4c |f (shell|p == NUL|
|000059a0| 4c 29 20 7b 0a 09 09 73 | 68 65 6c 6c 70 20 3d 20 |L) {...s|hellp = |
|000059b0| 67 65 74 65 6e 76 28 22 | 53 48 45 4c 4c 22 29 3b |getenv("|SHELL");|
|000059c0| 0a 09 09 69 66 20 28 73 | 68 65 6c 6c 70 20 3d 3d |...if (s|hellp ==|
|000059d0| 20 4e 55 4c 4c 29 0a 09 | 09 09 73 68 65 6c 6c 70 | NULL)..|..shellp|
|000059e0| 20 3d 20 67 65 74 65 6e | 76 28 22 73 68 65 6c 6c | = geten|v("shell|
|000059f0| 22 29 3b 0a 09 09 69 66 | 20 28 73 68 65 6c 6c 70 |");...if| (shellp|
|00005a00| 20 3d 3d 20 4e 55 4c 4c | 29 0a 09 09 09 73 68 65 | == NULL|)....she|
|00005a10| 6c 6c 70 20 3d 20 22 2f | 62 69 6e 2f 73 68 22 3b |llp = "/|bin/sh";|
|00005a20| 09 2f 2a 20 53 61 66 65 | 72 2e 09 09 2a 2f 0a 09 |./* Safe|r...*/..|
|00005a30| 7d 0a 09 74 74 63 6f 6c | 6f 72 28 43 54 45 58 54 |}..ttcol|or(CTEXT|
|00005a40| 29 3b 0a 09 74 74 6e 6f | 77 69 6e 64 6f 77 28 29 |);..ttno|window()|
|00005a50| 3b 0a 09 69 66 20 28 73 | 74 72 63 6d 70 28 73 68 |;..if (s|trcmp(sh|
|00005a60| 65 6c 6c 70 2c 20 22 2f | 62 69 6e 2f 63 73 68 22 |ellp, "/|bin/csh"|
|00005a70| 29 20 3d 3d 20 30 29 20 | 7b 0a 09 09 69 66 20 28 |) == 0) |{...if (|
|00005a80| 65 70 72 65 73 66 20 21 | 3d 20 46 41 4c 53 45 29 |epresf !|= FALSE)|
|00005a90| 20 7b 0a 09 09 09 74 74 | 6d 6f 76 65 28 6e 72 6f | {....tt|move(nro|
|00005aa0| 77 2d 31 2c 20 30 29 3b | 0a 09 09 09 74 74 65 65 |w-1, 0);|....ttee|
|00005ab0| 6f 6c 28 29 3b 0a 09 09 | 09 65 70 72 65 73 66 20 |ol();...|.epresf |
|00005ac0| 3d 20 46 41 4c 53 45 3b | 0a 09 09 7d 09 09 09 09 |= FALSE;|...}....|
|00005ad0| 2f 2a 20 43 73 68 20 74 | 79 70 65 73 20 61 20 22 |/* Csh t|ypes a "|
|00005ae0| 5c 6e 22 09 2a 2f 0a 09 | 09 74 74 6d 6f 76 65 28 |\n".*/..|.ttmove(|
|00005af0| 6e 72 6f 77 2d 32 2c 20 | 30 29 3b 09 09 2f 2a 20 |nrow-2, |0);../* |
|00005b00| 62 65 66 6f 72 65 20 22 | 53 74 6f 70 70 65 64 22 |before "|Stopped"|
|00005b10| 2e 09 2a 2f 0a 09 7d 20 | 65 6c 73 65 20 7b 0a 09 |..*/..} |else {..|
|00005b20| 09 74 74 6d 6f 76 65 28 | 6e 72 6f 77 2d 31 2c 20 |.ttmove(|nrow-1, |
|00005b30| 30 29 3b 0a 09 09 69 66 | 20 28 65 70 72 65 73 66 |0);...if| (epresf|
|00005b40| 20 21 3d 20 46 41 4c 53 | 45 29 20 7b 0a 09 09 09 | != FALS|E) {....|
|00005b50| 74 74 65 65 6f 6c 28 29 | 3b 0a 09 09 09 65 70 72 |tteeol()|;....epr|
|00005b60| 65 73 66 20 3d 20 46 41 | 4c 53 45 3b 0a 09 09 7d |esf = FA|LSE;...}|
|00005b70| 0a 09 7d 0a 09 74 74 66 | 6c 75 73 68 28 29 3b 0a |..}..ttf|lush();.|
|00005b80| 09 69 66 20 28 69 6f 63 | 74 6c 28 30 2c 20 54 49 |.if (ioc|tl(0, TI|
|00005b90| 4f 43 53 4c 54 43 2c 20 | 26 6f 6c 64 6c 74 63 68 |OCSLTC, |&oldltch|
|00005ba0| 61 72 73 29 20 3c 20 30 | 0a 09 7c 7c 20 20 69 6f |ars) < 0|..|| io|
|00005bb0| 63 74 6c 28 30 2c 20 54 | 49 4f 43 53 45 54 43 2c |ctl(0, T|IOCSETC,|
|00005bc0| 20 26 6f 6c 64 74 63 68 | 61 72 73 29 20 20 3c 20 | &oldtch|ars) < |
|00005bd0| 30 0a 09 7c 7c 20 20 69 | 6f 63 74 6c 28 30 2c 20 |0..|| i|octl(0, |
|00005be0| 54 49 4f 43 53 45 54 50 | 2c 20 26 6f 6c 64 74 74 |TIOCSETP|, &oldtt|
|00005bf0| 79 29 20 20 20 20 20 3c | 20 30 29 20 7b 0a 09 09 |y) <| 0) {...|
|00005c00| 65 70 72 69 6e 74 66 28 | 22 49 4f 43 54 4c 20 23 |eprintf(|"IOCTL #|
|00005c10| 31 20 74 6f 20 74 65 72 | 6d 69 6e 61 6c 20 66 61 |1 to ter|minal fa|
|00005c20| 69 6c 65 64 22 29 3b 0a | 09 09 72 65 74 75 72 6e |iled");.|..return|
|00005c30| 20 28 46 41 4c 53 45 29 | 3b 0a 09 7d 0a 09 69 66 | (FALSE)|;..}..if|
|00005c40| 20 28 73 74 72 63 6d 70 | 28 73 68 65 6c 6c 70 2c | (strcmp|(shellp,|
|00005c50| 20 22 2f 62 69 6e 2f 63 | 73 68 22 29 20 3d 3d 20 | "/bin/c|sh") == |
|00005c60| 30 29 09 2f 2a 20 43 20 | 73 68 65 6c 6c 2e 09 09 |0)./* C |shell...|
|00005c70| 2a 2f 0a 09 09 6b 69 6c | 6c 28 30 2c 20 53 49 47 |*/...kil|l(0, SIG|
|00005c80| 54 53 54 50 29 3b 0a 09 | 65 6c 73 65 20 7b 09 09 |TSTP);..|else {..|
|00005c90| 09 09 09 2f 2a 20 42 6f | 75 72 6e 65 20 73 68 65 |.../* Bo|urne she|
|00005ca0| 6c 6c 2e 09 2a 2f 0a 09 | 09 6f 71 73 69 67 20 3d |ll..*/..|.oqsig =|
|00005cb0| 20 73 69 67 6e 61 6c 28 | 53 49 47 51 55 49 54 2c | signal(|SIGQUIT,|
|00005cc0| 20 53 49 47 5f 49 47 4e | 29 3b 0a 09 09 6f 69 73 | SIG_IGN|);...ois|
|00005cd0| 69 67 20 3d 20 73 69 67 | 6e 61 6c 28 53 49 47 49 |ig = sig|nal(SIGI|
|00005ce0| 4e 54 2c 20 20 53 49 47 | 5f 49 47 4e 29 3b 0a 09 |NT, SIG|_IGN);..|
|00005cf0| 09 69 66 20 28 28 70 69 | 64 3d 66 6f 72 6b 28 29 |.if ((pi|d=fork()|
|00005d00| 29 20 3c 20 30 29 20 7b | 0a 09 09 09 73 69 67 6e |) < 0) {|....sign|
|00005d10| 61 6c 28 53 49 47 51 55 | 49 54 2c 20 6f 71 73 69 |al(SIGQU|IT, oqsi|
|00005d20| 67 29 3b 0a 09 09 09 73 | 69 67 6e 61 6c 28 53 49 |g);....s|ignal(SI|
|00005d30| 47 49 4e 54 2c 20 20 6f | 69 73 69 67 29 3b 0a 09 |GINT, o|isig);..|
|00005d40| 09 09 65 70 72 69 6e 74 | 66 28 22 46 61 69 6c 65 |..eprint|f("Faile|
|00005d50| 64 20 74 6f 20 63 72 65 | 61 74 65 20 70 72 6f 63 |d to cre|ate proc|
|00005d60| 65 73 73 22 29 3b 0a 09 | 09 09 72 65 74 75 72 6e |ess");..|..return|
|00005d70| 20 28 46 41 4c 53 45 29 | 3b 0a 09 09 7d 0a 09 09 | (FALSE)|;...}...|
|00005d80| 69 66 20 28 70 69 64 20 | 3d 3d 20 30 29 20 7b 0a |if (pid |== 0) {.|
|00005d90| 09 09 09 65 78 65 63 6c | 28 73 68 65 6c 6c 70 2c |...execl|(shellp,|
|00005da0| 20 22 73 68 22 2c 20 22 | 2d 69 22 2c 20 4e 55 4c | "sh", "|-i", NUL|
|00005db0| 4c 29 3b 0a 09 09 09 5f | 65 78 69 74 28 30 29 3b |L);...._|exit(0);|
|00005dc0| 09 09 2f 2a 20 53 68 6f | 75 6c 64 20 64 6f 20 62 |../* Sho|uld do b|
|00005dd0| 65 74 74 65 72 21 09 2a | 2f 0a 09 09 7d 0a 09 09 |etter!.*|/...}...|
|00005de0| 77 68 69 6c 65 20 28 28 | 77 70 69 64 3d 77 61 69 |while ((|wpid=wai|
|00005df0| 74 28 26 73 74 61 74 75 | 73 29 29 3e 3d 30 20 26 |t(&statu|s))>=0 &|
|00005e00| 26 20 77 70 69 64 21 3d | 70 69 64 29 0a 09 09 09 |& wpid!=|pid)....|
|00005e10| 3b 0a 09 09 73 69 67 6e | 61 6c 28 53 49 47 51 55 |;...sign|al(SIGQU|
|00005e20| 49 54 2c 20 6f 71 73 69 | 67 29 3b 0a 09 09 73 69 |IT, oqsi|g);...si|
|00005e30| 67 6e 61 6c 28 53 49 47 | 49 4e 54 2c 20 20 6f 69 |gnal(SIG|INT, oi|
|00005e40| 73 69 67 29 3b 0a 09 7d | 0a 09 73 67 61 72 62 66 |sig);..}|..sgarbf|
|00005e50| 20 3d 20 54 52 55 45 3b | 09 09 09 09 2f 2a 20 46 | = TRUE;|..../* F|
|00005e60| 6f 72 63 65 20 72 65 70 | 61 69 6e 74 2e 09 2a 2f |orce rep|aint..*/|
|00005e70| 0a 09 69 66 20 28 69 6f | 63 74 6c 28 30 2c 20 54 |..if (io|ctl(0, T|
|00005e80| 49 4f 43 53 45 54 50 2c | 20 26 6e 65 77 74 74 79 |IOCSETP,| &newtty|
|00005e90| 29 20 20 20 20 20 3c 20 | 30 0a 09 7c 7c 20 20 69 |) < |0..|| i|
|00005ea0| 6f 63 74 6c 28 30 2c 20 | 54 49 4f 43 53 45 54 43 |octl(0, |TIOCSETC|
|00005eb0| 2c 20 26 6e 65 77 74 63 | 68 61 72 73 29 20 20 3c |, &newtc|hars) <|
|00005ec0| 20 30 0a 09 7c 7c 20 20 | 69 6f 63 74 6c 28 30 2c | 0..|| |ioctl(0,|
|00005ed0| 20 54 49 4f 43 53 4c 54 | 43 2c 20 26 6e 65 77 6c | TIOCSLT|C, &newl|
|00005ee0| 74 63 68 61 72 73 29 20 | 3c 20 30 29 20 7b 0a 09 |tchars) |< 0) {..|
|00005ef0| 09 65 70 72 69 6e 74 66 | 28 22 49 4f 43 54 4c 20 |.eprintf|("IOCTL |
|00005f00| 23 32 20 74 6f 20 74 65 | 72 6d 69 6e 61 6c 20 66 |#2 to te|rminal f|
|00005f10| 61 69 6c 65 64 22 29 3b | 0a 09 09 72 65 74 75 72 |ailed");|...retur|
|00005f20| 6e 20 28 46 41 4c 53 45 | 29 3b 0a 09 7d 0a 09 72 |n (FALSE|);..}..r|
|00005f30| 65 74 75 72 6e 20 28 54 | 52 55 45 29 3b 0a 7d 0a |eturn (T|RUE);.}.|
|00005f40| 53 48 41 52 5f 45 4f 46 | 0a 69 66 20 74 65 73 74 |SHAR_EOF|.if test|
|00005f50| 20 32 37 33 31 20 2d 6e | 65 20 22 60 77 63 20 2d | 2731 -n|e "`wc -|
|00005f60| 63 20 3c 20 27 73 79 73 | 2f 75 6c 74 72 69 78 2f |c < 'sys|/ultrix/|
|00005f70| 73 70 61 77 6e 2e 63 27 | 60 22 0a 74 68 65 6e 0a |spawn.c'|`".then.|
|00005f80| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 65 72 72 6f |.echo sh|ar: erro|
|00005f90| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 22 |r transm|itting "|
|00005fa0| 27 73 79 73 2f 75 6c 74 | 72 69 78 2f 73 70 61 77 |'sys/ult|rix/spaw|
|00005fb0| 6e 2e 63 27 22 20 27 28 | 73 68 6f 75 6c 64 20 68 |n.c'" '(|should h|
|00005fc0| 61 76 65 20 62 65 65 6e | 20 32 37 33 31 20 63 68 |ave been| 2731 ch|
|00005fd0| 61 72 61 63 74 65 72 73 | 29 27 0a 66 69 0a 66 69 |aracters|)'.fi.fi|
|00005fe0| 0a 65 63 68 6f 20 73 68 | 61 72 3a 20 65 78 74 72 |.echo sh|ar: extr|
|00005ff0| 61 63 74 69 6e 67 20 22 | 27 73 79 73 2f 75 6c 74 |acting "|'sys/ult|
|00006000| 72 69 78 2f 73 79 73 64 | 65 66 2e 68 27 22 20 27 |rix/sysd|ef.h'" '|
|00006010| 28 36 36 30 20 63 68 61 | 72 61 63 74 65 72 73 29 |(660 cha|racters)|
|00006020| 27 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 73 79 |'.if tes|t -f 'sy|
|00006030| 73 2f 75 6c 74 72 69 78 | 2f 73 79 73 64 65 66 2e |s/ultrix|/sysdef.|
|00006040| 68 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |h'.then.|.echo sh|
|00006050| 61 72 3a 20 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: will| not ove|
|00006060| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|00006070| 20 66 69 6c 65 20 22 27 | 73 79 73 2f 75 6c 74 72 | file "'|sys/ultr|
|00006080| 69 78 2f 73 79 73 64 65 | 66 2e 68 27 22 0a 65 6c |ix/sysde|f.h'".el|
|00006090| 73 65 0a 63 61 74 20 3c | 3c 20 5c 53 48 41 52 5f |se.cat <|< \SHAR_|
|000060a0| 45 4f 46 20 3e 20 27 73 | 79 73 2f 75 6c 74 72 69 |EOF > 's|ys/ultri|
|000060b0| 78 2f 73 79 73 64 65 66 | 2e 68 27 0a 2f 2a 0a 20 |x/sysdef|.h'./*. |
|000060c0| 2a 20 4e 61 6d 65 3a 09 | 4d 69 63 72 6f 45 4d 41 |* Name:.|MicroEMA|
|000060d0| 43 53 0a 20 2a 09 09 55 | 6c 74 72 69 78 2d 33 32 |CS. *..U|ltrix-32|
|000060e0| 20 73 79 73 74 65 6d 20 | 68 65 61 64 65 72 20 66 | system |header f|
|000060f0| 69 6c 65 2e 0a 20 2a 20 | 56 65 72 73 69 6f 6e 3a |ile.. * |Version:|
|00006100| 09 32 39 0a 20 2a 20 4c | 61 73 74 20 65 64 69 74 |.29. * L|ast edit|
|00006110| 3a 09 30 35 2d 46 65 62 | 2d 38 36 0a 20 2a 20 42 |:.05-Feb|-86. * B|
|00006120| 79 3a 09 09 72 65 78 3a | 3a 63 6f 6e 72 6f 79 0a |y:..rex:|:conroy.|
|00006130| 20 2a 09 09 64 65 63 76 | 61 78 21 64 65 63 77 72 | *..decv|ax!decwr|
|00006140| 6c 21 64 65 63 2d 72 68 | 65 61 21 64 65 63 2d 72 |l!dec-rh|ea!dec-r|
|00006150| 65 78 21 63 6f 6e 72 6f | 79 0a 20 2a 2f 0a 23 64 |ex!conro|y. */.#d|
|00006160| 65 66 69 6e 65 09 50 43 | 43 09 31 09 09 09 2f 2a |efine.PC|C.1.../*|
|00006170| 20 22 5b 5d 22 20 67 65 | 74 73 20 61 6e 20 65 72 | "[]" ge|ts an er|
|00006180| 72 6f 72 2e 09 09 2a 2f | 0a 23 64 65 66 69 6e 65 |ror...*/|.#define|
|00006190| 09 4b 42 4c 4f 43 4b 09 | 38 31 39 32 09 09 09 2f |.KBLOCK.|8192.../|
|000061a0| 2a 20 4b 69 6c 6c 20 67 | 72 6f 77 2e 09 09 09 2a |* Kill g|row....*|
|000061b0| 2f 0a 23 64 65 66 69 6e | 65 09 47 4f 4f 44 09 30 |/.#defin|e.GOOD.0|
|000061c0| 09 09 09 2f 2a 20 47 6f | 6f 64 20 65 78 69 74 20 |.../* Go|od exit |
|000061d0| 73 74 61 74 75 73 2e 09 | 09 2a 2f 0a 0a 2f 2a 0a |status..|.*/../*.|
|000061e0| 20 2a 20 4d 61 63 72 6f | 73 20 75 73 65 64 20 62 | * Macro|s used b|
|000061f0| 79 20 74 68 65 20 62 75 | 66 66 65 72 20 6e 61 6d |y the bu|ffer nam|
|00006200| 65 20 6d 61 6b 69 6e 67 | 20 63 6f 64 65 2e 0a 20 |e making| code.. |
|00006210| 2a 20 53 74 61 72 74 20 | 61 74 20 74 68 65 20 65 |* Start |at the e|
|00006220| 6e 64 20 6f 66 20 74 68 | 65 20 66 69 6c 65 20 6e |nd of th|e file n|
|00006230| 61 6d 65 2c 20 73 63 61 | 6e 20 74 6f 20 74 68 65 |ame, sca|n to the|
|00006240| 20 6c 65 66 74 0a 20 2a | 20 75 6e 74 69 6c 20 42 | left. *| until B|
|00006250| 44 43 31 20 28 6f 72 20 | 42 44 43 32 2c 20 69 66 |DC1 (or |BDC2, if|
|00006260| 20 64 65 66 69 6e 65 64 | 29 20 69 73 20 72 65 61 | defined|) is rea|
|00006270| 63 68 65 64 2e 20 54 68 | 65 20 62 75 66 66 65 72 |ched. Th|e buffer|
|00006280| 0a 20 2a 20 6e 61 6d 65 | 20 73 74 61 72 74 73 20 |. * name| starts |
|00006290| 6a 75 73 74 20 74 6f 20 | 74 68 65 20 72 69 67 68 |just to |the righ|
|000062a0| 74 20 6f 66 20 74 68 61 | 74 20 6c 6f 63 61 74 69 |t of tha|t locati|
|000062b0| 6f 6e 2c 20 61 6e 64 0a | 20 2a 20 73 74 6f 70 73 |on, and.| * stops|
|000062c0| 20 61 74 20 65 6e 64 20 | 6f 66 20 73 74 72 69 6e | at end |of strin|
|000062d0| 67 20 28 6f 72 20 61 74 | 20 74 68 65 20 6e 65 78 |g (or at| the nex|
|000062e0| 74 20 42 44 43 33 20 63 | 68 61 72 61 63 74 65 72 |t BDC3 c|haracter|
|000062f0| 2c 0a 20 2a 20 69 66 20 | 64 65 66 69 6e 65 64 29 |,. * if |defined)|
|00006300| 2e 20 42 44 43 32 20 61 | 6e 64 20 42 44 43 33 20 |. BDC2 a|nd BDC3 |
|00006310| 61 72 65 20 6d 61 69 6e | 6c 79 20 66 6f 72 20 56 |are main|ly for V|
|00006320| 4d 53 2e 0a 20 2a 2f 0a | 23 64 65 66 69 6e 65 09 |MS.. */.|#define.|
|00006330| 42 44 43 31 09 27 2f 27 | 09 09 09 2f 2a 20 42 75 |BDC1.'/'|.../* Bu|
|00006340| 66 66 65 72 20 6e 61 6d | 65 73 2e 09 09 2a 2f 0a |ffer nam|es...*/.|
|00006350| 53 48 41 52 5f 45 4f 46 | 0a 69 66 20 74 65 73 74 |SHAR_EOF|.if test|
|00006360| 20 36 36 30 20 2d 6e 65 | 20 22 60 77 63 20 2d 63 | 660 -ne| "`wc -c|
|00006370| 20 3c 20 27 73 79 73 2f | 75 6c 74 72 69 78 2f 73 | < 'sys/|ultrix/s|
|00006380| 79 73 64 65 66 2e 68 27 | 60 22 0a 74 68 65 6e 0a |ysdef.h'|`".then.|
|00006390| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 65 72 72 6f |.echo sh|ar: erro|
|000063a0| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 22 |r transm|itting "|
|000063b0| 27 73 79 73 2f 75 6c 74 | 72 69 78 2f 73 79 73 64 |'sys/ult|rix/sysd|
|000063c0| 65 66 2e 68 27 22 20 27 | 28 73 68 6f 75 6c 64 20 |ef.h'" '|(should |
|000063d0| 68 61 76 65 20 62 65 65 | 6e 20 36 36 30 20 63 68 |have bee|n 660 ch|
|000063e0| 61 72 61 63 74 65 72 73 | 29 27 0a 66 69 0a 66 69 |aracters|)'.fi.fi|
|000063f0| 0a 65 63 68 6f 20 73 68 | 61 72 3a 20 65 78 74 72 |.echo sh|ar: extr|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.