home *** CD-ROM | disk | FTP | other *** search
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).
Confidence | Program | Detection | Match Type | Support
|
---|
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, ASCII text
| default
| |
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 45 | 6d 61 63 73 20 28 50 61 |: MicroE|macs (Pa|
|00000040| 72 74 20 32 20 6f 66 20 | 36 29 0a 4e 65 77 73 67 |rt 2 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 36 39 0a 53 75 |e 4, Iss|ue 69.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 65 63 | 68 6f 2e 63 0a 23 09 65 |es:.#.ec|ho.c.#.e|
|000001a0| 78 74 65 6e 64 2e 63 0a | 23 09 66 69 6c 65 2e 63 |xtend.c.|#.file.c|
|000001b0| 0a 23 09 6b 62 64 2e 63 | 0a 23 09 6c 69 6e 65 2e |.#.kbd.c|.#.line.|
|000001c0| 63 0a 23 09 6d 61 69 6e | 2e 63 0a 23 20 54 68 69 |c.#.main|.c.# Thi|
|000001d0| 73 20 61 72 63 68 69 76 | 65 20 63 72 65 61 74 65 |s archiv|e create|
|000001e0| 64 3a 20 53 75 6e 20 41 | 70 72 20 31 33 20 31 31 |d: Sun A|pr 13 11|
|000001f0| 3a 31 35 3a 34 38 20 31 | 39 38 36 0a 65 78 70 6f |:15:48 1|986.expo|
|00000200| 72 74 20 50 41 54 48 3b | 20 50 41 54 48 3d 2f 62 |rt PATH;| PATH=/b|
|00000210| 69 6e 3a 24 50 41 54 48 | 0a 65 63 68 6f 20 73 68 |in:$PATH|.echo sh|
|00000220| 61 72 3a 20 65 78 74 72 | 61 63 74 69 6e 67 20 22 |ar: extr|acting "|
|00000230| 27 65 63 68 6f 2e 63 27 | 22 20 27 28 38 38 34 34 |'echo.c'|" '(8844|
|00000240| 20 63 68 61 72 61 63 74 | 65 72 73 29 27 0a 69 66 | charact|ers)'.if|
|00000250| 20 74 65 73 74 20 2d 66 | 20 27 65 63 68 6f 2e 63 | test -f| 'echo.c|
|00000260| 27 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |'.then..|echo sha|
|00000270| 72 3a 20 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |r: will |not over|
|00000280| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00000290| 66 69 6c 65 20 22 27 65 | 63 68 6f 2e 63 27 22 0a |file "'e|cho.c'".|
|000002a0| 65 6c 73 65 0a 63 61 74 | 20 3c 3c 20 5c 53 48 41 |else.cat| << \SHA|
|000002b0| 52 5f 45 4f 46 20 3e 20 | 27 65 63 68 6f 2e 63 27 |R_EOF > |'echo.c'|
|000002c0| 0a 2f 2a 0a 20 2a 20 4e | 61 6d 65 3a 09 4d 69 63 |./*. * N|ame:.Mic|
|000002d0| 72 6f 45 4d 41 43 53 0a | 20 2a 09 09 45 63 68 6f |roEMACS.| *..Echo|
|000002e0| 20 6c 69 6e 65 20 72 65 | 61 64 69 6e 67 20 61 6e | line re|ading an|
|000002f0| 64 20 77 72 69 74 69 6e | 67 2e 0a 20 2a 20 56 65 |d writin|g.. * Ve|
|00000300| 72 73 69 6f 6e 3a 09 32 | 39 0a 20 2a 20 4c 61 73 |rsion:.2|9. * Las|
|00000310| 74 20 65 64 69 74 3a 09 | 31 34 2d 46 65 62 2d 38 |t edit:.|14-Feb-8|
|00000320| 36 0a 20 2a 20 42 79 3a | 09 09 72 65 78 3a 3a 63 |6. * By:|..rex::c|
|00000330| 6f 6e 72 6f 79 0a 20 2a | 09 09 64 65 63 76 61 78 |onroy. *|..decvax|
|00000340| 21 64 65 63 77 72 6c 21 | 64 65 63 2d 72 68 65 61 |!decwrl!|dec-rhea|
|00000350| 21 64 65 63 2d 72 65 78 | 21 63 6f 6e 72 6f 79 0a |!dec-rex|!conroy.|
|00000360| 20 2a 0a 20 2a 20 43 6f | 6d 6d 6f 6e 20 72 6f 75 | *. * Co|mmon rou|
|00000370| 74 69 6e 65 73 20 66 6f | 72 20 72 65 61 64 69 6e |tines fo|r readin|
|00000380| 67 0a 20 2a 20 61 6e 64 | 20 77 72 69 74 69 6e 67 |g. * and| writing|
|00000390| 20 63 68 61 72 61 63 74 | 65 72 73 20 69 6e 20 74 | charact|ers in t|
|000003a0| 68 65 20 65 63 68 6f 20 | 6c 69 6e 65 20 61 72 65 |he echo |line are|
|000003b0| 61 0a 20 2a 20 6f 66 20 | 74 68 65 20 64 69 73 70 |a. * of |the disp|
|000003c0| 6c 61 79 20 73 63 72 65 | 65 6e 2e 20 55 73 65 64 |lay scre|en. Used|
|000003d0| 20 62 79 20 74 68 65 20 | 65 6e 74 69 72 65 0a 20 | by the |entire. |
|000003e0| 2a 20 6b 6e 6f 77 6e 20 | 75 6e 69 76 65 72 73 65 |* known |universe|
|000003f0| 2e 0a 20 2a 2f 0a 23 69 | 6e 63 6c 75 64 65 09 22 |.. */.#i|nclude."|
|00000400| 64 65 66 2e 68 22 0a 0a | 69 6e 74 09 65 70 72 65 |def.h"..|int.epre|
|00000410| 73 66 09 3d 20 46 41 4c | 53 45 3b 09 09 2f 2a 20 |sf.= FAL|SE;../* |
|00000420| 53 74 75 66 66 20 69 6e | 20 65 63 68 6f 20 6c 69 |Stuff in| echo li|
|00000430| 6e 65 20 66 6c 61 67 2e | 09 2a 2f 0a 69 6e 74 09 |ne flag.|.*/.int.|
|00000440| 6e 6d 73 67 09 3d 20 30 | 3b 09 09 09 2f 2a 20 53 |nmsg.= 0|;.../* S|
|00000450| 69 7a 65 20 6f 66 20 6f | 63 63 75 70 69 65 64 20 |ize of o|ccupied |
|00000460| 6d 73 67 2e 20 61 72 65 | 61 2e 09 2a 2f 0a 69 6e |msg. are|a..*/.in|
|00000470| 74 09 63 75 72 6d 73 67 | 66 09 3d 20 46 41 4c 53 |t.curmsg|f.= FALS|
|00000480| 45 3b 09 09 2f 2a 20 43 | 75 72 72 65 6e 74 20 61 |E;../* C|urrent a|
|00000490| 6c 65 72 74 20 73 74 61 | 74 65 2e 09 09 2a 2f 0a |lert sta|te...*/.|
|000004a0| 69 6e 74 09 6e 65 77 6d | 73 67 66 09 3d 20 46 41 |int.newm|sgf.= FA|
|000004b0| 4c 53 45 3b 09 09 2f 2a | 20 4e 65 77 20 61 6c 65 |LSE;../*| New ale|
|000004c0| 72 74 20 73 74 61 74 65 | 2e 09 09 2a 2f 0a 0a 63 |rt state|...*/..c|
|000004d0| 68 61 72 09 6d 73 67 5b | 4e 4d 53 47 5d 3b 09 09 |har.msg[|NMSG];..|
|000004e0| 09 2f 2a 20 52 61 6e 64 | 6f 6d 20 6d 65 73 73 61 |./* Rand|om messa|
|000004f0| 67 65 20 73 74 6f 72 61 | 67 65 2e 09 2a 2f 0a 0a |ge stora|ge..*/..|
|00000500| 2f 2a 0a 20 2a 20 53 65 | 6e 64 20 61 20 73 74 72 |/*. * Se|nd a str|
|00000510| 69 6e 67 20 74 6f 20 74 | 68 65 20 6d 65 73 73 61 |ing to t|he messa|
|00000520| 67 65 20 73 79 73 74 65 | 6d 2e 0a 20 2a 20 41 64 |ge syste|m.. * Ad|
|00000530| 64 20 61 20 66 72 65 65 | 20 6e 65 77 6c 69 6e 65 |d a free| newline|
|00000540| 20 74 6f 20 74 68 65 20 | 65 6e 64 20 6f 66 20 74 | to the |end of t|
|00000550| 68 65 20 6d 65 73 73 61 | 67 65 20 73 74 72 69 6e |he messa|ge strin|
|00000560| 67 2e 0a 20 2a 20 52 65 | 74 75 72 6e 20 54 52 55 |g.. * Re|turn TRU|
|00000570| 45 20 69 66 20 69 74 20 | 66 69 74 73 2c 20 61 6e |E if it |fits, an|
|00000580| 64 20 46 41 4c 53 45 20 | 69 66 20 69 74 20 64 6f |d FALSE |if it do|
|00000590| 65 73 20 6e 6f 74 2e 0a | 20 2a 20 50 65 72 68 61 |es not..| * Perha|
|000005a0| 70 73 20 74 68 65 20 6d | 65 73 73 61 67 65 20 62 |ps the m|essage b|
|000005b0| 75 66 66 65 72 20 73 68 | 6f 75 6c 64 20 6b 6e 6f |uffer sh|ould kno|
|000005c0| 77 20 68 6f 77 20 74 6f | 20 67 65 74 0a 20 2a 20 |w how to| get. * |
|000005d0| 6c 61 72 67 65 72 2c 20 | 6a 75 73 74 20 6c 69 6b |larger, |just lik|
|000005e0| 65 20 74 68 65 20 6b 69 | 6c 6c 20 62 75 66 66 65 |e the ki|ll buffe|
|000005f0| 72 3f 0a 20 2a 2f 0a 77 | 72 69 74 65 6d 73 67 28 |r?. */.w|ritemsg(|
|00000600| 73 70 29 0a 72 65 67 69 | 73 74 65 72 20 63 68 61 |sp).regi|ster cha|
|00000610| 72 09 2a 73 70 3b 0a 7b | 0a 09 72 65 67 69 73 74 |r.*sp;.{|..regist|
|00000620| 65 72 20 69 6e 74 09 63 | 3b 0a 0a 09 69 66 20 28 |er int.c|;...if (|
|00000630| 6e 6d 73 67 2b 73 74 72 | 6c 65 6e 28 73 70 29 2b |nmsg+str|len(sp)+|
|00000640| 31 20 3e 20 4e 4d 53 47 | 29 09 09 2f 2a 20 22 2b |1 > NMSG|)../* "+|
|00000650| 31 22 20 66 6f 72 20 74 | 68 65 20 22 5c 6e 22 2e |1" for t|he "\n".|
|00000660| 09 2a 2f 0a 09 09 72 65 | 74 75 72 6e 20 28 46 41 |.*/...re|turn (FA|
|00000670| 4c 53 45 29 3b 0a 09 77 | 68 69 6c 65 20 28 28 63 |LSE);..w|hile ((c|
|00000680| 20 3d 20 2a 73 70 2b 2b | 29 20 21 3d 20 27 5c 30 | = *sp++|) != '\0|
|00000690| 27 29 0a 09 09 6d 73 67 | 5b 6e 6d 73 67 2b 2b 5d |')...msg|[nmsg++]|
|000006a0| 20 3d 20 63 3b 0a 09 6d | 73 67 5b 6e 6d 73 67 2b | = c;..m|sg[nmsg+|
|000006b0| 2b 5d 20 3d 20 27 5c 6e | 27 3b 0a 09 6e 65 77 6d |+] = '\n|';..newm|
|000006c0| 73 67 66 20 3d 20 54 52 | 55 45 3b 09 09 09 09 2f |sgf = TR|UE;..../|
|000006d0| 2a 20 55 70 64 61 74 65 | 20 6d 6f 64 65 20 6c 69 |* Update| mode li|
|000006e0| 6e 65 2e 09 2a 2f 0a 09 | 72 65 74 75 72 6e 20 28 |ne..*/..|return (|
|000006f0| 54 52 55 45 29 3b 0a 7d | 0a 0a 2f 2a 0a 20 2a 20 |TRUE);.}|../*. * |
|00000700| 52 65 61 64 20 6d 65 73 | 73 61 67 65 73 2e 20 54 |Read mes|sages. T|
|00000710| 68 65 20 6d 65 73 73 61 | 67 65 20 6c 69 6e 65 73 |he messa|ge lines|
|00000720| 20 61 72 65 0a 20 2a 20 | 64 69 73 70 6c 61 79 65 | are. * |displaye|
|00000730| 64 2c 20 6f 6e 65 20 6c | 69 6e 65 20 61 74 20 61 |d, one l|ine at a|
|00000740| 20 74 69 6d 65 2c 20 69 | 6e 20 74 68 65 20 6d 65 | time, i|n the me|
|00000750| 73 73 61 67 65 20 6c 69 | 6e 65 2e 0a 20 2a 20 41 |ssage li|ne.. * A|
|00000760| 20 73 70 65 63 69 61 6c | 20 73 75 62 2d 6d 6f 64 | special| sub-mod|
|00000770| 65 20 69 73 20 65 6e 74 | 65 72 65 64 2c 20 69 6e |e is ent|ered, in|
|00000780| 20 77 68 69 63 68 20 74 | 68 65 20 6b 65 79 73 20 | which t|he keys |
|00000790| 68 61 76 65 0a 20 2a 20 | 74 68 65 20 66 6f 6c 6c |have. * |the foll|
|000007a0| 6f 77 69 6e 67 20 6d 65 | 61 6e 69 6e 67 73 3a 0a |owing me|anings:.|
|000007b0| 20 2a 09 5e 50 09 47 6f | 20 62 61 63 6b 77 61 72 | *.^P.Go| backwar|
|000007c0| 64 20 31 20 6c 69 6e 65 | 2e 0a 20 2a 09 42 53 09 |d 1 line|.. *.BS.|
|000007d0| 47 6f 20 62 61 63 6b 77 | 61 72 64 20 31 20 6c 69 |Go backw|ard 1 li|
|000007e0| 6e 65 2e 0a 20 2a 09 5e | 4e 09 47 6f 20 66 6f 72 |ne.. *.^|N.Go for|
|000007f0| 77 61 72 64 20 31 20 6c | 69 6e 65 2e 20 51 75 69 |ward 1 l|ine. Qui|
|00000800| 74 20 69 66 20 61 74 20 | 74 68 65 20 65 6e 64 2e |t if at |the end.|
|00000810| 0a 20 2a 09 53 50 09 47 | 6f 20 66 6f 72 77 61 72 |. *.SP.G|o forwar|
|00000820| 64 20 31 20 6c 69 6e 65 | 2e 20 51 75 69 74 20 69 |d 1 line|. Quit i|
|00000830| 66 20 61 74 20 74 68 65 | 20 65 6e 64 2e 0a 20 2a |f at the| end.. *|
|00000840| 09 43 52 09 47 6f 20 66 | 6f 72 77 61 72 64 20 31 |.CR.Go f|orward 1|
|00000850| 20 6c 69 6e 65 2e 20 51 | 75 69 74 20 69 66 20 61 | line. Q|uit if a|
|00000860| 74 20 74 68 65 20 65 6e | 64 2e 0a 20 2a 09 5e 47 |t the en|d.. *.^G|
|00000870| 09 41 62 6f 72 74 2c 20 | 6c 65 61 76 65 20 6f 6c |.Abort, |leave ol|
|00000880| 64 20 74 65 78 74 2e 0a | 20 2a 09 5e 43 09 51 75 |d text..| *.^C.Qu|
|00000890| 69 74 2c 20 64 65 6c 65 | 74 65 20 61 6e 79 74 68 |it, dele|te anyth|
|000008a0| 69 6e 67 20 61 6c 72 65 | 61 64 79 20 72 65 61 64 |ing alre|ady read|
|000008b0| 2e 0a 20 2a 20 52 65 74 | 75 72 6e 20 54 52 55 45 |.. * Ret|urn TRUE|
|000008c0| 20 69 66 20 79 6f 75 20 | 6c 65 66 74 20 74 68 69 | if you |left thi|
|000008d0| 73 20 6d 6f 64 65 20 69 | 6e 20 61 20 72 65 61 73 |s mode i|n a reas|
|000008e0| 6f 6e 61 62 6c 65 0a 20 | 2a 20 77 61 79 20 28 6e |onable. |* way (n|
|000008f0| 6f 74 20 5e 47 29 2c 20 | 61 6e 64 20 41 42 4f 52 |ot ^G), |and ABOR|
|00000900| 54 20 69 66 20 79 6f 75 | 20 71 75 69 74 20 74 68 |T if you| quit th|
|00000910| 65 20 6d 6f 64 65 20 77 | 69 74 68 20 61 0a 20 2a |e mode w|ith a. *|
|00000920| 20 5e 47 2e 0a 20 2a 2f | 0a 72 65 61 64 6d 73 67 | ^G.. */|.readmsg|
|00000930| 28 29 0a 7b 0a 09 72 65 | 67 69 73 74 65 72 20 69 |().{..re|gister i|
|00000940| 6e 74 09 63 3b 0a 09 72 | 65 67 69 73 74 65 72 20 |nt.c;..r|egister |
|00000950| 69 6e 74 09 69 3b 0a 09 | 72 65 67 69 73 74 65 72 |int.i;..|register|
|00000960| 20 69 6e 74 09 6a 3b 0a | 0a 09 69 66 20 28 6e 6d | int.j;.|..if (nm|
|00000970| 73 67 20 3d 3d 20 30 29 | 09 09 09 09 2f 2a 20 44 |sg == 0)|..../* D|
|00000980| 75 63 6b 20 6f 75 74 20 | 69 66 20 6e 6f 6e 65 2e |uck out |if none.|
|00000990| 09 2a 2f 0a 09 09 72 65 | 74 75 72 6e 20 28 54 52 |.*/...re|turn (TR|
|000009a0| 55 45 29 3b 0a 09 6e 65 | 77 6d 73 67 66 20 3d 20 |UE);..ne|wmsgf = |
|000009b0| 46 41 4c 53 45 3b 09 09 | 09 2f 2a 20 4b 69 6c 6c |FALSE;..|./* Kill|
|000009c0| 20 61 6c 65 72 74 2c 20 | 61 6e 64 20 64 6f 09 2a | alert, |and do.*|
|000009d0| 2f 0a 09 75 70 64 61 74 | 65 28 29 3b 09 09 09 09 |/..updat|e();....|
|000009e0| 2f 2a 20 61 20 72 65 64 | 69 73 70 6c 61 79 2e 09 |/* a red|isplay..|
|000009f0| 09 2a 2f 0a 09 74 74 63 | 6f 6c 6f 72 28 43 54 45 |.*/..ttc|olor(CTE|
|00000a00| 58 54 29 3b 0a 09 69 20 | 3d 20 30 3b 0a 09 77 68 |XT);..i |= 0;..wh|
|00000a10| 69 6c 65 20 28 69 20 3c | 20 6e 6d 73 67 29 20 7b |ile (i <| nmsg) {|
|00000a20| 0a 09 09 74 74 6d 6f 76 | 65 28 6e 72 6f 77 2d 31 |...ttmov|e(nrow-1|
|00000a30| 2c 20 30 29 3b 09 09 2f | 2a 20 44 69 73 70 6c 61 |, 0);../|* Displa|
|00000a40| 79 20 31 20 6c 69 6e 65 | 2e 09 2a 2f 0a 09 09 77 |y 1 line|..*/...w|
|00000a50| 68 69 6c 65 20 28 69 3c | 6e 6d 73 67 20 26 26 20 |hile (i<|nmsg && |
|00000a60| 28 63 3d 6d 73 67 5b 69 | 2b 2b 5d 29 21 3d 27 5c |(c=msg[i|++])!='\|
|00000a70| 6e 27 29 0a 09 09 09 65 | 70 75 74 63 28 63 29 3b |n')....e|putc(c);|
|00000a80| 0a 09 09 74 74 65 65 6f | 6c 28 29 3b 0a 09 09 74 |...tteeo|l();...t|
|00000a90| 74 6d 6f 76 65 28 6e 72 | 6f 77 2d 31 2c 20 30 29 |tmove(nr|ow-1, 0)|
|00000aa0| 3b 09 09 2f 2a 20 4c 6f | 6f 6b 73 20 6e 69 63 65 |;../* Lo|oks nice|
|00000ab0| 2e 09 09 2a 2f 0a 09 09 | 74 74 66 6c 75 73 68 28 |...*/...|ttflush(|
|00000ac0| 29 3b 0a 09 09 66 6f 72 | 20 28 3b 3b 29 20 7b 09 |);...for| (;;) {.|
|00000ad0| 09 09 2f 2a 20 45 64 69 | 74 69 6e 67 20 6c 6f 6f |../* Edi|ting loo|
|00000ae0| 70 2e 09 2a 2f 0a 09 09 | 09 63 20 3d 20 74 74 67 |p..*/...|.c = ttg|
|00000af0| 65 74 63 28 29 3b 0a 09 | 09 09 73 77 69 74 63 68 |etc();..|..switch|
|00000b00| 20 28 63 29 20 7b 0a 09 | 09 09 63 61 73 65 20 30 | (c) {..|..case 0|
|00000b10| 78 30 45 3a 09 09 2f 2a | 20 5e 4e 09 09 09 2a 2f |x0E:../*| ^N...*/|
|00000b20| 0a 09 09 09 63 61 73 65 | 20 30 78 32 30 3a 09 09 |....case| 0x20:..|
|00000b30| 2f 2a 20 53 50 09 09 09 | 2a 2f 0a 09 09 09 63 61 |/* SP...|*/....ca|
|00000b40| 73 65 20 30 78 30 44 3a | 09 09 2f 2a 20 43 52 09 |se 0x0D:|../* CR.|
|00000b50| 09 09 2a 2f 0a 09 09 09 | 09 62 72 65 61 6b 3b 0a |..*/....|.break;.|
|00000b60| 0a 09 09 09 63 61 73 65 | 20 30 78 31 30 3a 09 09 |....case| 0x10:..|
|00000b70| 2f 2a 20 5e 50 09 09 09 | 2a 2f 0a 09 09 09 63 61 |/* ^P...|*/....ca|
|00000b80| 73 65 20 30 78 30 38 3a | 09 09 2f 2a 20 42 53 09 |se 0x08:|../* BS.|
|00000b90| 09 09 2a 2f 0a 09 09 09 | 09 64 6f 20 7b 0a 09 09 |..*/....|.do {...|
|00000ba0| 09 09 09 2d 2d 69 3b 0a | 09 09 09 09 7d 20 77 68 |...--i;.|....} wh|
|00000bb0| 69 6c 65 20 28 69 21 3d | 30 20 26 26 20 6d 73 67 |ile (i!=|0 && msg|
|00000bc0| 5b 69 2d 31 5d 21 3d 27 | 5c 6e 27 29 3b 0a 09 09 |[i-1]!='|\n');...|
|00000bd0| 09 09 69 66 20 28 69 20 | 21 3d 20 30 29 20 7b 0a |..if (i |!= 0) {.|
|00000be0| 09 09 09 09 09 64 6f 20 | 7b 09 2f 2a 20 42 61 63 |.....do |{./* Bac|
|00000bf0| 6b 20 75 70 20 31 20 6c | 69 6e 65 2e 09 2a 2f 0a |k up 1 l|ine..*/.|
|00000c00| 09 09 09 09 09 09 2d 2d | 69 3b 0a 09 09 09 09 09 |......--|i;......|
|00000c10| 7d 20 77 68 69 6c 65 20 | 28 69 21 3d 30 20 26 26 |} while |(i!=0 &&|
|00000c20| 20 6d 73 67 5b 69 2d 31 | 5d 21 3d 27 5c 6e 27 29 | msg[i-1|]!='\n')|
|00000c30| 3b 0a 09 09 09 09 7d 0a | 09 09 09 09 62 72 65 61 |;.....}.|....brea|
|00000c40| 6b 3b 0a 0a 09 09 09 63 | 61 73 65 20 30 78 30 33 |k;.....c|ase 0x03|
|00000c50| 3a 09 09 2f 2a 20 5e 43 | 09 09 09 2a 2f 0a 09 09 |:../* ^C|...*/...|
|00000c60| 09 09 6a 20 3d 20 30 3b | 09 09 2f 2a 20 45 61 74 |..j = 0;|../* Eat|
|00000c70| 20 77 68 61 74 20 77 65 | 20 72 65 61 64 2e 09 2a | what we| read..*|
|00000c80| 2f 0a 09 09 09 09 77 68 | 69 6c 65 20 28 69 20 3c |/.....wh|ile (i <|
|00000c90| 20 6e 6d 73 67 29 0a 09 | 09 09 09 09 6d 73 67 5b | nmsg)..|....msg[|
|00000ca0| 6a 2b 2b 5d 20 3d 20 6d | 73 67 5b 69 2b 2b 5d 3b |j++] = m|sg[i++];|
|00000cb0| 0a 09 09 09 09 6e 6d 73 | 67 20 3d 20 6a 3b 0a 09 |.....nms|g = j;..|
|00000cc0| 09 09 09 65 65 72 61 73 | 65 28 29 3b 0a 09 09 09 |...eeras|e();....|
|00000cd0| 09 72 65 74 75 72 6e 20 | 28 54 52 55 45 29 3b 0a |.return |(TRUE);.|
|00000ce0| 0a 09 09 09 63 61 73 65 | 20 30 78 30 37 3a 09 09 |....case| 0x07:..|
|00000cf0| 2f 2a 20 5e 47 09 09 09 | 2a 2f 0a 09 09 09 09 74 |/* ^G...|*/.....t|
|00000d00| 74 62 65 65 70 28 29 3b | 0a 09 09 09 09 65 65 72 |tbeep();|.....eer|
|00000d10| 61 73 65 28 29 3b 0a 09 | 09 09 09 72 65 74 75 72 |ase();..|...retur|
|00000d20| 6e 20 28 41 42 4f 52 54 | 29 3b 0a 0a 09 09 09 64 |n (ABORT|);.....d|
|00000d30| 65 66 61 75 6c 74 3a 09 | 09 2f 2a 20 4c 6f 6f 70 |efault:.|./* Loop|
|00000d40| 20 6f 6e 20 74 68 65 20 | 72 65 73 74 2e 09 2a 2f | on the |rest..*/|
|00000d50| 0a 09 09 09 09 63 6f 6e | 74 69 6e 75 65 3b 0a 09 |.....con|tinue;..|
|00000d60| 09 09 7d 0a 09 09 09 62 | 72 65 61 6b 3b 0a 09 09 |..}....b|reak;...|
|00000d70| 7d 09 09 09 09 0a 09 7d | 09 0a 09 6e 6d 73 67 20 |}......}|...nmsg |
|00000d80| 3d 20 30 3b 09 09 09 09 | 2f 2a 20 46 6c 6f 77 20 |= 0;....|/* Flow |
|00000d90| 6f 66 66 20 74 68 65 20 | 65 6e 64 2e 09 2a 2f 0a |off the |end..*/.|
|00000da0| 09 65 65 72 61 73 65 28 | 29 3b 0a 09 72 65 74 75 |.eerase(|);..retu|
|00000db0| 72 6e 20 28 54 52 55 45 | 29 3b 0a 7d 0a 0a 2f 2a |rn (TRUE|);.}../*|
|00000dc0| 0a 20 2a 20 45 72 61 73 | 65 20 74 68 65 20 65 63 |. * Eras|e the ec|
|00000dd0| 68 6f 20 6c 69 6e 65 2e | 0a 20 2a 2f 0a 65 65 72 |ho line.|. */.eer|
|00000de0| 61 73 65 28 29 0a 7b 0a | 09 74 74 63 6f 6c 6f 72 |ase().{.|.ttcolor|
|00000df0| 28 43 54 45 58 54 29 3b | 0a 09 74 74 6d 6f 76 65 |(CTEXT);|..ttmove|
|00000e00| 28 6e 72 6f 77 2d 31 2c | 20 30 29 3b 0a 09 74 74 |(nrow-1,| 0);..tt|
|00000e10| 65 65 6f 6c 28 29 3b 0a | 09 74 74 66 6c 75 73 68 |eeol();.|.ttflush|
|00000e20| 28 29 3b 0a 09 65 70 72 | 65 73 66 20 3d 20 46 41 |();..epr|esf = FA|
|00000e30| 4c 53 45 3b 0a 7d 0a 0a | 2f 2a 0a 20 2a 20 41 73 |LSE;.}..|/*. * As|
|00000e40| 6b 20 22 79 65 73 22 20 | 6f 72 20 22 6e 6f 22 20 |k "yes" |or "no" |
|00000e50| 71 75 65 73 74 69 6f 6e | 2e 0a 20 2a 20 52 65 74 |question|.. * Ret|
|00000e60| 75 72 6e 20 41 42 4f 52 | 54 20 69 66 20 74 68 65 |urn ABOR|T if the|
|00000e70| 20 75 73 65 72 20 61 6e | 73 77 65 72 73 20 74 68 | user an|swers th|
|00000e80| 65 20 71 75 65 73 74 69 | 6f 6e 0a 20 2a 20 77 69 |e questi|on. * wi|
|00000e90| 74 68 20 74 68 65 20 61 | 62 6f 72 74 20 28 22 5e |th the a|bort ("^|
|00000ea0| 47 22 29 20 63 68 61 72 | 61 63 74 65 72 2e 20 52 |G") char|acter. R|
|00000eb0| 65 74 75 72 6e 20 46 41 | 4c 53 45 0a 20 2a 20 66 |eturn FA|LSE. * f|
|00000ec0| 6f 72 20 22 6e 6f 22 20 | 61 6e 64 20 54 52 55 45 |or "no" |and TRUE|
|00000ed0| 20 66 6f 72 20 22 79 65 | 73 22 2e 20 4e 6f 20 66 | for "ye|s". No f|
|00000ee0| 6f 72 6d 61 74 74 69 6e | 67 0a 20 2a 20 73 65 72 |ormattin|g. * ser|
|00000ef0| 76 69 63 65 73 20 61 72 | 65 20 61 76 61 69 6c 61 |vices ar|e availa|
|00000f00| 62 6c 65 2e 0a 20 2a 2f | 0a 65 79 65 73 6e 6f 28 |ble.. */|.eyesno(|
|00000f10| 73 70 29 0a 63 68 61 72 | 09 2a 73 70 3b 0a 7b 0a |sp).char|.*sp;.{.|
|00000f20| 09 72 65 67 69 73 74 65 | 72 20 69 6e 74 09 73 3b |.registe|r int.s;|
|00000f30| 0a 09 63 68 61 72 09 09 | 62 75 66 5b 36 34 5d 3b |..char..|buf[64];|
|00000f40| 0a 0a 09 66 6f 72 20 28 | 3b 3b 29 20 7b 0a 09 09 |...for (|;;) {...|
|00000f50| 73 20 3d 20 65 72 65 70 | 6c 79 28 22 25 73 20 5b |s = erep|ly("%s [|
|00000f60| 79 2f 6e 5d 3f 20 22 2c | 20 62 75 66 2c 20 73 69 |y/n]? ",| buf, si|
|00000f70| 7a 65 6f 66 28 62 75 66 | 29 2c 20 73 70 29 3b 0a |zeof(buf|), sp);.|
|00000f80| 09 09 69 66 20 28 73 20 | 3d 3d 20 41 42 4f 52 54 |..if (s |== ABORT|
|00000f90| 29 0a 09 09 09 72 65 74 | 75 72 6e 20 28 41 42 4f |)....ret|urn (ABO|
|00000fa0| 52 54 29 3b 0a 09 09 69 | 66 20 28 73 20 21 3d 20 |RT);...i|f (s != |
|00000fb0| 46 41 4c 53 45 29 20 7b | 0a 09 09 09 69 66 20 28 |FALSE) {|....if (|
|00000fc0| 62 75 66 5b 30 5d 3d 3d | 27 79 27 20 7c 7c 20 62 |buf[0]==|'y' || b|
|00000fd0| 75 66 5b 30 5d 3d 3d 27 | 59 27 29 0a 09 09 09 09 |uf[0]=='|Y').....|
|00000fe0| 72 65 74 75 72 6e 20 28 | 54 52 55 45 29 3b 0a 09 |return (|TRUE);..|
|00000ff0| 09 09 69 66 20 28 62 75 | 66 5b 30 5d 3d 3d 27 6e |..if (bu|f[0]=='n|
|00001000| 27 20 7c 7c 20 62 75 66 | 5b 30 5d 3d 3d 27 4e 27 |' || buf|[0]=='N'|
|00001010| 29 0a 09 09 09 09 72 65 | 74 75 72 6e 20 28 46 41 |).....re|turn (FA|
|00001020| 4c 53 45 29 3b 0a 09 09 | 7d 0a 09 7d 0a 7d 0a 0a |LSE);...|}..}.}..|
|00001030| 2f 2a 0a 20 2a 20 57 72 | 69 74 65 20 6f 75 74 20 |/*. * Wr|ite out |
|00001040| 61 20 70 72 6f 6d 70 74 | 2c 20 61 6e 64 20 72 65 |a prompt|, and re|
|00001050| 61 64 20 62 61 63 6b 20 | 61 0a 20 2a 20 72 65 70 |ad back |a. * rep|
|00001060| 6c 79 2e 20 54 68 65 20 | 70 72 6f 6d 70 74 20 69 |ly. The |prompt i|
|00001070| 73 20 6e 6f 77 20 77 72 | 69 74 74 65 6e 20 6f 75 |s now wr|itten ou|
|00001080| 74 20 77 69 74 68 20 66 | 75 6c 6c 20 22 65 70 72 |t with f|ull "epr|
|00001090| 69 6e 74 66 22 0a 20 2a | 20 66 6f 72 6d 61 74 74 |intf". *| formatt|
|000010a0| 69 6e 67 2c 20 61 6c 74 | 68 6f 75 67 68 20 74 68 |ing, alt|hough th|
|000010b0| 65 20 61 72 67 75 6d 65 | 6e 74 73 20 61 72 65 20 |e argume|nts are |
|000010c0| 69 6e 20 61 20 72 61 74 | 68 65 72 20 73 74 72 61 |in a rat|her stra|
|000010d0| 6e 67 65 0a 20 2a 20 70 | 6c 61 63 65 2e 20 54 68 |nge. * p|lace. Th|
|000010e0| 69 73 20 69 73 20 61 6c | 77 61 79 73 20 61 20 6e |is is al|ways a n|
|000010f0| 65 77 20 6d 65 73 73 61 | 67 65 2c 20 74 68 65 72 |ew messa|ge, ther|
|00001100| 65 20 69 73 20 6e 6f 20 | 61 75 74 6f 0a 20 2a 20 |e is no |auto. * |
|00001110| 63 6f 6d 70 6c 65 74 69 | 6f 6e 2c 20 61 6e 64 20 |completi|on, and |
|00001120| 74 68 65 20 72 65 74 75 | 72 6e 20 69 73 20 65 63 |the retu|rn is ec|
|00001130| 68 6f 65 64 20 61 73 20 | 73 75 63 68 2e 0a 20 2a |hoed as |such.. *|
|00001140| 2f 0a 2f 2a 20 56 41 52 | 41 52 47 53 33 20 2a 2f |/./* VAR|ARGS3 */|
|00001150| 0a 65 72 65 70 6c 79 28 | 66 70 2c 20 62 75 66 2c |.ereply(|fp, buf,|
|00001160| 20 6e 62 75 66 2c 20 61 | 72 67 29 0a 63 68 61 72 | nbuf, a|rg).char|
|00001170| 09 2a 66 70 3b 0a 63 68 | 61 72 09 2a 62 75 66 3b |.*fp;.ch|ar.*buf;|
|00001180| 0a 7b 0a 09 72 65 74 75 | 72 6e 20 28 65 72 65 61 |.{..retu|rn (erea|
|00001190| 64 28 66 70 2c 20 62 75 | 66 2c 20 6e 62 75 66 2c |d(fp, bu|f, nbuf,|
|000011a0| 20 45 46 4e 45 57 7c 45 | 46 43 52 2c 20 28 63 68 | EFNEW|E|FCR, (ch|
|000011b0| 61 72 20 2a 29 26 61 72 | 67 29 29 3b 0a 7d 0a 0a |ar *)&ar|g));.}..|
|000011c0| 2f 2a 0a 20 2a 20 54 68 | 69 73 20 69 73 20 74 68 |/*. * Th|is is th|
|000011d0| 65 20 67 65 6e 65 72 61 | 6c 20 22 72 65 61 64 20 |e genera|l "read |
|000011e0| 69 6e 70 75 74 20 66 72 | 6f 6d 20 74 68 65 0a 20 |input fr|om the. |
|000011f0| 2a 20 65 63 68 6f 20 6c | 69 6e 65 22 20 72 6f 75 |* echo l|ine" rou|
|00001200| 74 69 6e 65 2e 20 54 68 | 65 20 62 61 73 69 63 20 |tine. Th|e basic |
|00001210| 69 64 65 61 20 69 73 20 | 74 68 61 74 20 74 68 65 |idea is |that the|
|00001220| 20 70 72 6f 6d 70 74 0a | 20 2a 20 73 74 72 69 6e | prompt.| * strin|
|00001230| 67 20 22 70 72 6f 6d 70 | 74 22 20 69 73 20 77 72 |g "promp|t" is wr|
|00001240| 69 74 74 65 6e 20 74 6f | 20 74 68 65 20 65 63 68 |itten to| the ech|
|00001250| 6f 20 6c 69 6e 65 2c 20 | 61 6e 64 20 61 20 6f 6e |o line, |and a on|
|00001260| 65 0a 20 2a 20 6c 69 6e | 65 20 72 65 70 6c 79 20 |e. * lin|e reply |
|00001270| 69 73 20 72 65 61 64 20 | 62 61 63 6b 20 69 6e 74 |is read |back int|
|00001280| 6f 20 74 68 65 20 73 75 | 70 70 6c 69 65 64 20 22 |o the su|pplied "|
|00001290| 62 75 66 22 20 28 77 69 | 74 68 0a 20 2a 20 6d 61 |buf" (wi|th. * ma|
|000012a0| 78 69 6d 75 6d 20 6c 65 | 6e 67 74 68 20 22 6c 65 |ximum le|ngth "le|
|000012b0| 6e 22 29 2e 20 54 68 65 | 20 22 66 6c 61 67 22 20 |n"). The| "flag" |
|000012c0| 63 6f 6e 74 61 69 6e 73 | 20 45 46 4e 45 57 20 28 |contains| EFNEW (|
|000012d0| 61 0a 20 2a 20 6e 65 77 | 20 70 72 6f 6d 70 74 29 |a. * new| prompt)|
|000012e0| 2c 20 61 6e 20 45 46 41 | 55 54 4f 20 28 61 75 74 |, an EFA|UTO (aut|
|000012f0| 6f 63 6f 6d 70 6c 65 74 | 65 29 2c 20 6f 72 20 45 |ocomplet|e), or E|
|00001300| 46 43 52 20 28 65 63 68 | 6f 0a 20 2a 20 74 68 65 |FCR (ech|o. * the|
|00001310| 20 63 61 72 72 69 61 67 | 65 20 72 65 74 75 72 6e | carriag|e return|
|00001320| 20 61 73 20 43 52 29 2e | 0a 20 2a 2f 0a 65 72 65 | as CR).|. */.ere|
|00001330| 61 64 28 66 70 2c 20 62 | 75 66 2c 20 6e 62 75 66 |ad(fp, b|uf, nbuf|
|00001340| 2c 20 66 6c 61 67 2c 20 | 61 70 29 0a 63 68 61 72 |, flag, |ap).char|
|00001350| 09 2a 66 70 3b 0a 63 68 | 61 72 09 2a 62 75 66 3b |.*fp;.ch|ar.*buf;|
|00001360| 0a 63 68 61 72 09 2a 61 | 70 3b 0a 7b 0a 09 72 65 |.char.*a|p;.{..re|
|00001370| 67 69 73 74 65 72 20 69 | 6e 74 09 63 70 6f 73 3b |gister i|nt.cpos;|
|00001380| 0a 09 72 65 67 69 73 74 | 65 72 20 53 59 4d 42 4f |..regist|er SYMBO|
|00001390| 4c 09 2a 73 70 31 3b 0a | 09 72 65 67 69 73 74 65 |L.*sp1;.|.registe|
|000013a0| 72 20 53 59 4d 42 4f 4c | 09 2a 73 70 32 3b 0a 09 |r SYMBOL|.*sp2;..|
|000013b0| 72 65 67 69 73 74 65 72 | 20 69 6e 74 09 69 3b 0a |register| int.i;.|
|000013c0| 09 72 65 67 69 73 74 65 | 72 20 69 6e 74 09 63 3b |.registe|r int.c;|
|000013d0| 0a 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 09 68 |..regist|er int.h|
|000013e0| 3b 0a 09 72 65 67 69 73 | 74 65 72 20 69 6e 74 09 |;..regis|ter int.|
|000013f0| 6e 68 69 74 73 3b 0a 09 | 72 65 67 69 73 74 65 72 |nhits;..|register|
|00001400| 20 69 6e 74 09 6e 78 74 | 72 61 3b 0a 09 72 65 67 | int.nxt|ra;..reg|
|00001410| 69 73 74 65 72 20 69 6e | 74 09 62 78 74 72 61 3b |ister in|t.bxtra;|
|00001420| 0a 0a 09 63 70 6f 73 20 | 3d 20 30 3b 0a 09 69 66 |...cpos |= 0;..if|
|00001430| 20 28 6b 62 64 6d 6f 70 | 20 21 3d 20 4e 55 4c 4c | (kbdmop| != NULL|
|00001440| 29 20 7b 09 09 09 2f 2a | 20 49 6e 20 61 20 6d 61 |) {.../*| In a ma|
|00001450| 63 72 6f 2e 09 09 2a 2f | 0a 09 09 77 68 69 6c 65 |cro...*/|...while|
|00001460| 20 28 28 63 20 3d 20 2a | 6b 62 64 6d 6f 70 2b 2b | ((c = *|kbdmop++|
|00001470| 29 20 21 3d 20 27 5c 30 | 27 29 0a 09 09 09 62 75 |) != '\0|')....bu|
|00001480| 66 5b 63 70 6f 73 2b 2b | 5d 20 3d 20 63 3b 0a 09 |f[cpos++|] = c;..|
|00001490| 09 62 75 66 5b 63 70 6f | 73 5d 20 3d 20 27 5c 30 |.buf[cpo|s] = '\0|
|000014a0| 27 3b 0a 09 09 67 6f 74 | 6f 20 64 6f 6e 65 3b 0a |';...got|o done;.|
|000014b0| 09 7d 0a 09 69 66 20 28 | 28 66 6c 61 67 26 45 46 |.}..if (|(flag&EF|
|000014c0| 4e 45 57 29 21 3d 30 20 | 7c 7c 20 74 74 72 6f 77 |NEW)!=0 ||| ttrow|
|000014d0| 21 3d 6e 72 6f 77 2d 31 | 29 20 7b 0a 09 09 74 74 |!=nrow-1|) {...tt|
|000014e0| 63 6f 6c 6f 72 28 43 54 | 45 58 54 29 3b 0a 09 09 |color(CT|EXT);...|
|000014f0| 74 74 6d 6f 76 65 28 6e | 72 6f 77 2d 31 2c 20 30 |ttmove(n|row-1, 0|
|00001500| 29 3b 0a 09 09 65 70 72 | 65 73 66 20 3d 20 54 52 |);...epr|esf = TR|
|00001510| 55 45 3b 0a 09 7d 20 65 | 6c 73 65 0a 09 09 65 70 |UE;..} e|lse...ep|
|00001520| 75 74 63 28 27 20 27 29 | 3b 0a 09 65 66 6f 72 6d |utc(' ')|;..eform|
|00001530| 61 74 28 66 70 2c 20 61 | 70 29 3b 0a 09 74 74 65 |at(fp, a|p);..tte|
|00001540| 65 6f 6c 28 29 3b 0a 09 | 74 74 66 6c 75 73 68 28 |eol();..|ttflush(|
|00001550| 29 3b 0a 09 66 6f 72 20 | 28 3b 3b 29 20 7b 0a 09 |);..for |(;;) {..|
|00001560| 09 63 20 3d 20 74 74 67 | 65 74 63 28 29 3b 0a 09 |.c = ttg|etc();..|
|00001570| 09 69 66 20 28 63 3d 3d | 27 20 27 20 26 26 20 28 |.if (c==|' ' && (|
|00001580| 66 6c 61 67 26 45 46 41 | 55 54 4f 29 21 3d 30 29 |flag&EFA|UTO)!=0)|
|00001590| 20 7b 0a 09 09 09 6e 68 | 69 74 73 20 3d 20 30 3b | {....nh|its = 0;|
|000015a0| 0a 09 09 09 6e 78 74 72 | 61 20 3d 20 48 55 47 45 |....nxtr|a = HUGE|
|000015b0| 3b 0a 09 09 09 66 6f 72 | 20 28 68 3d 30 3b 20 68 |;....for| (h=0; h|
|000015c0| 3c 4e 53 48 41 53 48 3b | 20 2b 2b 68 29 20 7b 0a |<NSHASH;| ++h) {.|
|000015d0| 09 09 09 09 73 70 31 20 | 3d 20 73 79 6d 62 6f 6c |....sp1 |= symbol|
|000015e0| 5b 68 5d 3b 0a 09 09 09 | 09 77 68 69 6c 65 20 28 |[h];....|.while (|
|000015f0| 73 70 31 20 21 3d 20 4e | 55 4c 4c 29 20 7b 0a 09 |sp1 != N|ULL) {..|
|00001600| 09 09 09 09 66 6f 72 20 | 28 69 3d 30 3b 20 69 3c |....for |(i=0; i<|
|00001610| 63 70 6f 73 3b 20 2b 2b | 69 29 20 7b 0a 09 09 09 |cpos; ++|i) {....|
|00001620| 09 09 09 69 66 20 28 62 | 75 66 5b 69 5d 20 21 3d |...if (b|uf[i] !=|
|00001630| 20 73 70 31 2d 3e 73 5f | 6e 61 6d 65 5b 69 5d 29 | sp1->s_|name[i])|
|00001640| 0a 09 09 09 09 09 09 09 | 62 72 65 61 6b 3b 0a 09 |........|break;..|
|00001650| 09 09 09 09 7d 0a 09 09 | 09 09 09 69 66 20 28 69 |....}...|...if (i|
|00001660| 20 3d 3d 20 63 70 6f 73 | 29 20 7b 0a 09 09 09 09 | == cpos|) {.....|
|00001670| 09 09 69 66 20 28 6e 68 | 69 74 73 20 3d 3d 20 30 |..if (nh|its == 0|
|00001680| 29 0a 09 09 09 09 09 09 | 09 73 70 32 20 3d 20 73 |).......|.sp2 = s|
|00001690| 70 31 3b 0a 09 09 09 09 | 09 09 2b 2b 6e 68 69 74 |p1;.....|..++nhit|
|000016a0| 73 3b 0a 09 09 09 09 09 | 09 62 78 74 72 61 20 3d |s;......|.bxtra =|
|000016b0| 20 67 65 74 78 74 72 61 | 28 73 70 31 2c 20 73 70 | getxtra|(sp1, sp|
|000016c0| 32 2c 20 63 70 6f 73 29 | 3b 0a 09 09 09 09 09 09 |2, cpos)|;.......|
|000016d0| 69 66 20 28 62 78 74 72 | 61 20 3c 20 6e 78 74 72 |if (bxtr|a < nxtr|
|000016e0| 61 29 0a 09 09 09 09 09 | 09 09 6e 78 74 72 61 20 |a)......|..nxtra |
|000016f0| 3d 20 62 78 74 72 61 3b | 0a 09 09 09 09 09 7d 0a |= bxtra;|......}.|
|00001700| 09 09 09 09 09 73 70 31 | 20 3d 20 73 70 31 2d 3e |.....sp1| = sp1->|
|00001710| 73 5f 73 79 6d 70 3b 0a | 09 09 09 09 7d 0a 09 09 |s_symp;.|....}...|
|00001720| 09 7d 0a 09 09 09 69 66 | 20 28 6e 68 69 74 73 20 |.}....if| (nhits |
|00001730| 3d 3d 20 30 29 09 09 2f | 2a 20 4e 6f 20 63 6f 6d |== 0)../|* No com|
|00001740| 70 6c 65 74 69 6f 6e 2e | 09 2a 2f 0a 09 09 09 09 |pletion.|.*/.....|
|00001750| 63 6f 6e 74 69 6e 75 65 | 3b 0a 09 09 09 66 6f 72 |continue|;....for|
|00001760| 20 28 69 3d 30 3b 20 69 | 3c 6e 78 74 72 61 20 26 | (i=0; i|<nxtra &|
|00001770| 26 20 63 70 6f 73 3c 6e | 62 75 66 2d 31 3b 20 2b |& cpos<n|buf-1; +|
|00001780| 2b 69 29 20 7b 0a 09 09 | 09 09 63 20 3d 20 73 70 |+i) {...|..c = sp|
|00001790| 32 2d 3e 73 5f 6e 61 6d | 65 5b 63 70 6f 73 5d 3b |2->s_nam|e[cpos];|
|000017a0| 0a 09 09 09 09 62 75 66 | 5b 63 70 6f 73 2b 2b 5d |.....buf|[cpos++]|
|000017b0| 20 3d 20 63 3b 0a 09 09 | 09 09 65 70 75 74 63 28 | = c;...|..eputc(|
|000017c0| 63 29 3b 0a 09 09 09 7d | 0a 09 09 09 74 74 66 6c |c);....}|....ttfl|
|000017d0| 75 73 68 28 29 3b 0a 09 | 09 09 69 66 20 28 6e 68 |ush();..|..if (nh|
|000017e0| 69 74 73 20 21 3d 20 31 | 29 09 09 2f 2a 20 46 61 |its != 1|)../* Fa|
|000017f0| 6b 65 20 61 20 43 52 20 | 69 66 20 74 68 65 72 65 |ke a CR |if there|
|00001800| 09 2a 2f 0a 09 09 09 09 | 63 6f 6e 74 69 6e 75 65 |.*/.....|continue|
|00001810| 3b 09 2f 2a 20 69 73 20 | 31 20 63 68 6f 69 63 65 |;./* is |1 choice|
|00001820| 2e 09 09 2a 2f 0a 09 09 | 09 63 20 3d 20 30 78 30 |...*/...|.c = 0x0|
|00001830| 44 3b 0a 09 09 7d 0a 09 | 09 73 77 69 74 63 68 20 |D;...}..|.switch |
|00001840| 28 63 29 20 7b 0a 09 09 | 63 61 73 65 20 30 78 30 |(c) {...|case 0x0|
|00001850| 44 3a 09 09 09 2f 2a 20 | 52 65 74 75 72 6e 2c 20 |D:.../* |Return, |
|00001860| 64 6f 6e 65 2e 09 2a 2f | 0a 09 09 09 62 75 66 5b |done..*/|....buf[|
|00001870| 63 70 6f 73 5d 20 3d 20 | 27 5c 30 27 3b 0a 09 09 |cpos] = |'\0';...|
|00001880| 09 69 66 20 28 6b 62 64 | 6d 69 70 20 21 3d 20 4e |.if (kbd|mip != N|
|00001890| 55 4c 4c 29 20 7b 0a 09 | 09 09 09 69 66 20 28 6b |ULL) {..|...if (k|
|000018a0| 62 64 6d 69 70 2b 63 70 | 6f 73 2b 31 20 3e 20 26 |bdmip+cp|os+1 > &|
|000018b0| 6b 62 64 6d 5b 4e 4b 42 | 44 4d 2d 33 5d 29 20 7b |kbdm[NKB|DM-3]) {|
|000018c0| 0a 09 09 09 09 09 28 76 | 6f 69 64 29 20 63 74 72 |......(v|oid) ctr|
|000018d0| 6c 67 28 46 41 4c 53 45 | 2c 20 30 2c 20 4b 52 41 |lg(FALSE|, 0, KRA|
|000018e0| 4e 44 4f 4d 29 3b 0a 09 | 09 09 09 09 74 74 66 6c |NDOM);..|....ttfl|
|000018f0| 75 73 68 28 29 3b 0a 09 | 09 09 09 09 72 65 74 75 |ush();..|....retu|
|00001900| 72 6e 20 28 41 42 4f 52 | 54 29 3b 0a 09 09 09 09 |rn (ABOR|T);.....|
|00001910| 7d 0a 09 09 09 09 66 6f | 72 20 28 69 3d 30 3b 20 |}.....fo|r (i=0; |
|00001920| 69 3c 63 70 6f 73 3b 20 | 2b 2b 69 29 0a 09 09 09 |i<cpos; |++i)....|
|00001930| 09 09 2a 6b 62 64 6d 69 | 70 2b 2b 20 3d 20 62 75 |..*kbdmi|p++ = bu|
|00001940| 66 5b 69 5d 3b 0a 09 09 | 09 09 2a 6b 62 64 6d 69 |f[i];...|..*kbdmi|
|00001950| 70 2b 2b 20 3d 20 27 5c | 30 27 3b 0a 09 09 09 7d |p++ = '\|0';....}|
|00001960| 0a 09 09 09 69 66 20 28 | 28 66 6c 61 67 26 45 46 |....if (|(flag&EF|
|00001970| 43 52 29 20 21 3d 20 30 | 29 20 7b 0a 09 09 09 09 |CR) != 0|) {.....|
|00001980| 74 74 70 75 74 63 28 30 | 78 30 44 29 3b 0a 09 09 |ttputc(0|x0D);...|
|00001990| 09 09 74 74 66 6c 75 73 | 68 28 29 3b 0a 09 09 09 |..ttflus|h();....|
|000019a0| 7d 0a 09 09 09 67 6f 74 | 6f 20 64 6f 6e 65 3b 0a |}....got|o done;.|
|000019b0| 0a 09 09 63 61 73 65 20 | 30 78 30 37 3a 09 09 09 |...case |0x07:...|
|000019c0| 2f 2a 20 42 65 6c 6c 2c | 20 61 62 6f 72 74 2e 09 |/* Bell,| abort..|
|000019d0| 09 2a 2f 0a 09 09 09 65 | 70 75 74 63 28 30 78 30 |.*/....e|putc(0x0|
|000019e0| 37 29 3b 0a 09 09 09 28 | 76 6f 69 64 29 20 63 74 |7);....(|void) ct|
|000019f0| 72 6c 67 28 46 41 4c 53 | 45 2c 20 30 2c 20 4b 52 |rlg(FALS|E, 0, KR|
|00001a00| 41 4e 44 4f 4d 29 3b 0a | 09 09 09 74 74 66 6c 75 |ANDOM);.|...ttflu|
|00001a10| 73 68 28 29 3b 0a 09 09 | 09 72 65 74 75 72 6e 20 |sh();...|.return |
|00001a20| 28 41 42 4f 52 54 29 3b | 0a 0a 09 09 63 61 73 65 |(ABORT);|....case|
|00001a30| 20 30 78 37 46 3a 09 09 | 09 2f 2a 20 52 75 62 6f | 0x7F:..|./* Rubo|
|00001a40| 75 74 2c 20 65 72 61 73 | 65 2e 09 2a 2f 0a 09 09 |ut, eras|e..*/...|
|00001a50| 63 61 73 65 20 30 78 30 | 38 3a 09 09 09 2f 2a 20 |case 0x0|8:.../* |
|00001a60| 42 61 63 6b 73 70 61 63 | 65 2c 20 65 72 61 73 65 |Backspac|e, erase|
|00001a70| 2e 09 2a 2f 0a 09 09 09 | 69 66 20 28 63 70 6f 73 |..*/....|if (cpos|
|00001a80| 20 21 3d 20 30 29 20 7b | 0a 09 09 09 09 74 74 70 | != 0) {|.....ttp|
|00001a90| 75 74 63 28 27 5c 62 27 | 29 3b 0a 09 09 09 09 74 |utc('\b'|);.....t|
|00001aa0| 74 70 75 74 63 28 27 20 | 27 29 3b 0a 09 09 09 09 |tputc(' |');.....|
|00001ab0| 74 74 70 75 74 63 28 27 | 5c 62 27 29 3b 0a 09 09 |ttputc('|\b');...|
|00001ac0| 09 09 2d 2d 74 74 63 6f | 6c 3b 0a 09 09 09 09 69 |..--ttco|l;.....i|
|00001ad0| 66 20 28 49 53 43 54 52 | 4c 28 62 75 66 5b 2d 2d |f (ISCTR|L(buf[--|
|00001ae0| 63 70 6f 73 5d 29 20 21 | 3d 20 46 41 4c 53 45 29 |cpos]) !|= FALSE)|
|00001af0| 20 7b 0a 09 09 09 09 09 | 74 74 70 75 74 63 28 27 | {......|ttputc('|
|00001b00| 5c 62 27 29 3b 0a 09 09 | 09 09 09 74 74 70 75 74 |\b');...|...ttput|
|00001b10| 63 28 27 20 27 29 3b 0a | 09 09 09 09 09 74 74 70 |c(' ');.|.....ttp|
|00001b20| 75 74 63 28 27 5c 62 27 | 29 3b 0a 09 09 09 09 09 |utc('\b'|);......|
|00001b30| 2d 2d 74 74 63 6f 6c 3b | 0a 09 09 09 09 7d 0a 09 |--ttcol;|.....}..|
|00001b40| 09 09 09 74 74 66 6c 75 | 73 68 28 29 3b 0a 09 09 |...ttflu|sh();...|
|00001b50| 09 7d 0a 09 09 09 62 72 | 65 61 6b 3b 0a 0a 09 09 |.}....br|eak;....|
|00001b60| 63 61 73 65 20 30 78 31 | 35 3a 09 09 09 2f 2a 20 |case 0x1|5:.../* |
|00001b70| 43 2d 55 2c 20 6b 69 6c | 6c 20 6c 69 6e 65 2e 09 |C-U, kil|l line..|
|00001b80| 2a 2f 0a 09 09 09 77 68 | 69 6c 65 20 28 63 70 6f |*/....wh|ile (cpo|
|00001b90| 73 20 21 3d 20 30 29 20 | 7b 0a 09 09 09 09 74 74 |s != 0) |{.....tt|
|00001ba0| 70 75 74 63 28 27 5c 62 | 27 29 3b 0a 09 09 09 09 |putc('\b|');.....|
|00001bb0| 74 74 70 75 74 63 28 27 | 20 27 29 3b 0a 09 09 09 |ttputc('| ');....|
|00001bc0| 09 74 74 70 75 74 63 28 | 27 5c 62 27 29 3b 0a 09 |.ttputc(|'\b');..|
|00001bd0| 09 09 09 2d 2d 74 74 63 | 6f 6c 3b 0a 09 09 09 09 |...--ttc|ol;.....|
|00001be0| 69 66 20 28 49 53 43 54 | 52 4c 28 62 75 66 5b 2d |if (ISCT|RL(buf[-|
|00001bf0| 2d 63 70 6f 73 5d 29 20 | 21 3d 20 46 41 4c 53 45 |-cpos]) |!= FALSE|
|00001c00| 29 20 7b 0a 09 09 09 09 | 09 74 74 70 75 74 63 28 |) {.....|.ttputc(|
|00001c10| 27 5c 62 27 29 3b 0a 09 | 09 09 09 09 74 74 70 75 |'\b');..|....ttpu|
|00001c20| 74 63 28 27 20 27 29 3b | 0a 09 09 09 09 09 74 74 |tc(' ');|......tt|
|00001c30| 70 75 74 63 28 27 5c 62 | 27 29 3b 0a 09 09 09 09 |putc('\b|');.....|
|00001c40| 09 2d 2d 74 74 63 6f 6c | 3b 0a 09 09 09 09 7d 0a |.--ttcol|;.....}.|
|00001c50| 09 09 09 7d 0a 09 09 09 | 74 74 66 6c 75 73 68 28 |...}....|ttflush(|
|00001c60| 29 3b 0a 09 09 09 62 72 | 65 61 6b 3b 0a 0a 09 09 |);....br|eak;....|
|00001c70| 64 65 66 61 75 6c 74 3a | 09 09 09 2f 2a 20 41 6c |default:|.../* Al|
|00001c80| 6c 20 74 68 65 20 72 65 | 73 74 2e 09 2a 2f 0a 09 |l the re|st..*/..|
|00001c90| 09 09 69 66 20 28 63 70 | 6f 73 20 3c 20 6e 62 75 |..if (cp|os < nbu|
|00001ca0| 66 2d 31 29 20 7b 0a 09 | 09 09 09 62 75 66 5b 63 |f-1) {..|...buf[c|
|00001cb0| 70 6f 73 2b 2b 5d 20 3d | 20 63 3b 0a 09 09 09 09 |pos++] =| c;.....|
|00001cc0| 65 70 75 74 63 28 63 29 | 3b 0a 09 09 09 09 74 74 |eputc(c)|;.....tt|
|00001cd0| 66 6c 75 73 68 28 29 3b | 0a 09 09 09 7d 0a 09 09 |flush();|....}...|
|00001ce0| 7d 0a 09 7d 0a 64 6f 6e | 65 3a 0a 09 69 66 20 28 |}..}.don|e:..if (|
|00001cf0| 62 75 66 5b 30 5d 20 3d | 3d 20 27 5c 30 27 29 0a |buf[0] =|= '\0').|
|00001d00| 09 09 72 65 74 75 72 6e | 20 28 46 41 4c 53 45 29 |..return| (FALSE)|
|00001d10| 3b 0a 09 72 65 74 75 72 | 6e 20 28 54 52 55 45 29 |;..retur|n (TRUE)|
|00001d20| 3b 0a 7d 0a 0a 2f 2a 0a | 20 2a 20 54 68 65 20 22 |;.}../*.| * The "|
|00001d30| 73 70 31 22 20 61 6e 64 | 20 22 73 70 32 22 20 70 |sp1" and| "sp2" p|
|00001d40| 6f 69 6e 74 20 74 6f 20 | 65 78 74 65 6e 64 65 64 |oint to |extended|
|00001d50| 20 63 6f 6d 6d 61 6e 64 | 0a 20 2a 20 73 79 6d 62 | command|. * symb|
|00001d60| 6f 6c 20 74 61 62 6c 65 | 20 65 6e 74 72 69 65 73 |ol table| entries|
|00001d70| 2e 20 54 68 65 20 22 63 | 70 6f 73 22 20 69 73 20 |. The "c|pos" is |
|00001d80| 61 20 68 6f 72 69 7a 6f | 6e 74 61 6c 20 70 6f 73 |a horizo|ntal pos|
|00001d90| 69 74 69 6f 6e 0a 20 2a | 20 69 6e 20 74 68 65 20 |ition. *| in the |
|00001da0| 6e 61 6d 65 2e 20 52 65 | 74 75 72 6e 20 74 68 65 |name. Re|turn the|
|00001db0| 20 6c 6f 6e 67 65 73 74 | 20 62 6c 6f 63 6b 20 6f | longest| block o|
|00001dc0| 66 20 63 68 61 72 61 63 | 74 65 72 73 20 74 68 61 |f charac|ters tha|
|00001dd0| 74 20 63 61 6e 0a 20 2a | 20 62 65 20 61 75 74 6f |t can. *| be auto|
|00001de0| 63 6f 6d 70 6c 65 74 65 | 64 20 61 74 20 74 68 69 |complete|d at thi|
|00001df0| 73 20 70 6f 69 6e 74 2e | 20 53 6f 6d 65 74 69 6d |s point.| Sometim|
|00001e00| 65 73 20 74 68 65 20 74 | 77 6f 20 73 79 6d 62 6f |es the t|wo symbo|
|00001e10| 6c 73 0a 20 2a 20 61 72 | 65 20 74 68 65 20 73 61 |ls. * ar|e the sa|
|00001e20| 6d 65 2c 20 62 75 74 20 | 74 68 69 73 20 69 73 20 |me, but |this is |
|00001e30| 6e 6f 72 6d 61 6c 2e 0a | 20 2a 2f 0a 67 65 74 78 |normal..| */.getx|
|00001e40| 74 72 61 28 73 70 31 2c | 20 73 70 32 2c 20 63 70 |tra(sp1,| sp2, cp|
|00001e50| 6f 73 29 0a 72 65 67 69 | 73 74 65 72 20 53 59 4d |os).regi|ster SYM|
|00001e60| 42 4f 4c 09 2a 73 70 31 | 3b 0a 72 65 67 69 73 74 |BOL.*sp1|;.regist|
|00001e70| 65 72 20 53 59 4d 42 4f | 4c 09 2a 73 70 32 3b 0a |er SYMBO|L.*sp2;.|
|00001e80| 7b 0a 09 72 65 67 69 73 | 74 65 72 20 69 6e 74 09 |{..regis|ter int.|
|00001e90| 69 3b 0a 0a 09 69 20 3d | 20 63 70 6f 73 3b 0a 09 |i;...i =| cpos;..|
|00001ea0| 66 6f 72 20 28 3b 3b 29 | 20 7b 0a 09 09 69 66 20 |for (;;)| {...if |
|00001eb0| 28 73 70 31 2d 3e 73 5f | 6e 61 6d 65 5b 69 5d 20 |(sp1->s_|name[i] |
|00001ec0| 21 3d 20 73 70 32 2d 3e | 73 5f 6e 61 6d 65 5b 69 |!= sp2->|s_name[i|
|00001ed0| 5d 29 0a 09 09 09 62 72 | 65 61 6b 3b 0a 09 09 69 |])....br|eak;...i|
|00001ee0| 66 20 28 73 70 31 2d 3e | 73 5f 6e 61 6d 65 5b 69 |f (sp1->|s_name[i|
|00001ef0| 5d 20 3d 3d 20 27 5c 30 | 27 29 0a 09 09 09 62 72 |] == '\0|')....br|
|00001f00| 65 61 6b 3b 0a 09 09 2b | 2b 69 3b 0a 09 7d 0a 09 |eak;...+|+i;..}..|
|00001f10| 72 65 74 75 72 6e 20 28 | 69 20 2d 20 63 70 6f 73 |return (|i - cpos|
|00001f20| 29 3b 0a 7d 0a 0a 2f 2a | 0a 20 2a 20 53 70 65 63 |);.}../*|. * Spec|
|00001f30| 69 61 6c 20 22 70 72 69 | 6e 74 66 22 20 66 6f 72 |ial "pri|ntf" for|
|00001f40| 20 74 68 65 20 65 63 68 | 6f 20 6c 69 6e 65 2e 0a | the ech|o line..|
|00001f50| 20 2a 20 45 61 63 68 20 | 63 61 6c 6c 20 74 6f 20 | * Each |call to |
|00001f60| 22 65 70 72 69 6e 74 66 | 22 20 73 74 61 72 74 73 |"eprintf|" starts|
|00001f70| 20 61 20 6e 65 77 20 6c | 69 6e 65 20 69 6e 20 74 | a new l|ine in t|
|00001f80| 68 65 0a 20 2a 20 65 63 | 68 6f 20 61 72 65 61 2c |he. * ec|ho area,|
|00001f90| 20 61 6e 64 20 65 6e 64 | 73 20 77 69 74 68 20 61 | and end|s with a|
|00001fa0| 6e 20 65 72 61 73 65 20 | 74 6f 20 65 6e 64 20 6f |n erase |to end o|
|00001fb0| 66 20 74 68 65 0a 20 2a | 20 65 63 68 6f 20 6c 69 |f the. *| echo li|
|00001fc0| 6e 65 2e 20 54 68 65 20 | 66 6f 72 6d 61 74 74 69 |ne. The |formatti|
|00001fd0| 6e 67 20 69 73 20 64 6f | 6e 65 20 62 79 20 61 20 |ng is do|ne by a |
|00001fe0| 63 61 6c 6c 0a 20 2a 20 | 74 6f 20 74 68 65 20 73 |call. * |to the s|
|00001ff0| 74 61 6e 64 61 72 64 20 | 66 6f 72 6d 61 74 74 69 |tandard |formatti|
|00002000| 6e 67 20 72 6f 75 74 69 | 6e 65 2e 0a 20 2a 2f 0a |ng routi|ne.. */.|
|00002010| 2f 2a 20 56 41 52 41 52 | 47 53 31 20 2a 2f 0a 65 |/* VARAR|GS1 */.e|
|00002020| 70 72 69 6e 74 66 28 66 | 70 2c 20 61 72 67 29 0a |printf(f|p, arg).|
|00002030| 63 68 61 72 09 2a 66 70 | 3b 0a 7b 0a 09 74 74 63 |char.*fp|;.{..ttc|
|00002040| 6f 6c 6f 72 28 43 54 45 | 58 54 29 3b 0a 09 74 74 |olor(CTE|XT);..tt|
|00002050| 6d 6f 76 65 28 6e 72 6f | 77 2d 31 2c 20 30 29 3b |move(nro|w-1, 0);|
|00002060| 0a 09 65 66 6f 72 6d 61 | 74 28 66 70 2c 20 28 63 |..eforma|t(fp, (c|
|00002070| 68 61 72 20 2a 29 26 61 | 72 67 29 3b 0a 09 74 74 |har *)&a|rg);..tt|
|00002080| 65 65 6f 6c 28 29 3b 0a | 09 74 74 66 6c 75 73 68 |eeol();.|.ttflush|
|00002090| 28 29 3b 0a 09 65 70 72 | 65 73 66 20 3d 20 54 52 |();..epr|esf = TR|
|000020a0| 55 45 3b 0a 7d 0a 0a 2f | 2a 0a 20 2a 20 50 72 69 |UE;.}../|*. * Pri|
|000020b0| 6e 74 66 20 73 74 79 6c | 65 20 66 6f 72 6d 61 74 |ntf styl|e format|
|000020c0| 74 69 6e 67 2e 20 54 68 | 69 73 20 69 73 0a 20 2a |ting. Th|is is. *|
|000020d0| 20 63 61 6c 6c 65 64 20 | 62 79 20 62 6f 74 68 20 | called |by both |
|000020e0| 22 65 70 72 69 6e 74 66 | 22 20 61 6e 64 20 22 65 |"eprintf|" and "e|
|000020f0| 72 65 70 6c 79 22 2c 20 | 74 6f 20 70 72 6f 76 69 |reply", |to provi|
|00002100| 64 65 0a 20 2a 20 66 6f | 72 6d 61 74 74 69 6e 67 |de. * fo|rmatting|
|00002110| 20 73 65 72 76 69 63 65 | 73 20 74 6f 20 74 68 65 | service|s to the|
|00002120| 69 72 20 63 6c 69 65 6e | 74 73 2e 20 54 68 65 20 |ir clien|ts. The |
|00002130| 6d 6f 76 65 20 74 6f 20 | 74 68 65 0a 20 2a 20 73 |move to |the. * s|
|00002140| 74 61 72 74 20 6f 66 20 | 74 68 65 20 65 63 68 6f |tart of |the echo|
|00002150| 20 6c 69 6e 65 2c 20 61 | 6e 64 20 74 68 65 20 65 | line, a|nd the e|
|00002160| 72 61 73 65 20 74 6f 20 | 74 68 65 20 65 6e 64 20 |rase to |the end |
|00002170| 6f 66 0a 20 2a 20 74 68 | 65 20 65 63 68 6f 20 6c |of. * th|e echo l|
|00002180| 69 6e 65 2c 20 69 73 20 | 64 6f 6e 65 20 62 79 20 |ine, is |done by |
|00002190| 74 68 65 20 63 61 6c 6c | 65 72 2e 0a 20 2a 2f 0a |the call|er.. */.|
|000021a0| 65 66 6f 72 6d 61 74 28 | 66 70 2c 20 61 70 29 0a |eformat(|fp, ap).|
|000021b0| 72 65 67 69 73 74 65 72 | 20 63 68 61 72 09 2a 66 |register| char.*f|
|000021c0| 70 3b 0a 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |p;.regis|ter char|
|000021d0| 09 2a 61 70 3b 0a 7b 0a | 09 72 65 67 69 73 74 65 |.*ap;.{.|.registe|
|000021e0| 72 20 69 6e 74 09 63 3b | 0a 0a 09 77 68 69 6c 65 |r int.c;|...while|
|000021f0| 20 28 28 63 20 3d 20 2a | 66 70 2b 2b 29 20 21 3d | ((c = *|fp++) !=|
|00002200| 20 27 5c 30 27 29 20 7b | 0a 09 09 69 66 20 28 63 | '\0') {|...if (c|
|00002210| 20 21 3d 20 27 25 27 29 | 0a 09 09 09 65 70 75 74 | != '%')|....eput|
|00002220| 63 28 63 29 3b 0a 09 09 | 65 6c 73 65 20 7b 0a 09 |c(c);...|else {..|
|00002230| 09 09 63 20 3d 20 2a 66 | 70 2b 2b 3b 0a 09 09 09 |..c = *f|p++;....|
|00002240| 73 77 69 74 63 68 20 28 | 63 29 20 7b 0a 09 09 09 |switch (|c) {....|
|00002250| 63 61 73 65 20 27 64 27 | 3a 0a 09 09 09 09 65 70 |case 'd'|:.....ep|
|00002260| 75 74 69 28 2a 28 69 6e | 74 20 2a 29 61 70 2c 20 |uti(*(in|t *)ap, |
|00002270| 31 30 29 3b 0a 09 09 09 | 09 61 70 20 2b 3d 20 73 |10);....|.ap += s|
|00002280| 69 7a 65 6f 66 28 69 6e | 74 29 3b 0a 09 09 09 09 |izeof(in|t);.....|
|00002290| 62 72 65 61 6b 3b 0a 0a | 09 09 09 63 61 73 65 20 |break;..|...case |
|000022a0| 27 6f 27 3a 0a 09 09 09 | 09 65 70 75 74 69 28 2a |'o':....|.eputi(*|
|000022b0| 28 69 6e 74 20 2a 29 61 | 70 2c 20 20 38 29 3b 0a |(int *)a|p, 8);.|
|000022c0| 09 09 09 09 61 70 20 2b | 3d 20 73 69 7a 65 6f 66 |....ap +|= sizeof|
|000022d0| 28 69 6e 74 29 3b 0a 09 | 09 09 09 62 72 65 61 6b |(int);..|...break|
|000022e0| 3b 0a 0a 09 09 09 63 61 | 73 65 20 27 73 27 3a 0a |;.....ca|se 's':.|
|000022f0| 09 09 09 09 65 70 75 74 | 73 28 2a 28 63 68 61 72 |....eput|s(*(char|
|00002300| 20 2a 2a 29 61 70 29 3b | 0a 09 09 09 09 61 70 20 | **)ap);|.....ap |
|00002310| 2b 3d 20 73 69 7a 65 6f | 66 28 63 68 61 72 20 2a |+= sizeo|f(char *|
|00002320| 29 3b 0a 09 09 09 09 62 | 72 65 61 6b 3b 0a 0a 09 |);.....b|reak;...|
|00002330| 09 09 64 65 66 61 75 6c | 74 3a 0a 09 09 09 09 65 |..defaul|t:.....e|
|00002340| 70 75 74 63 28 63 29 3b | 0a 09 09 09 7d 0a 09 09 |putc(c);|....}...|
|00002350| 7d 0a 09 7d 0a 7d 0a 0a | 2f 2a 0a 20 2a 20 50 75 |}..}.}..|/*. * Pu|
|00002360| 74 20 69 6e 74 65 67 65 | 72 2c 20 69 6e 20 72 61 |t intege|r, in ra|
|00002370| 64 69 78 20 22 72 22 2e | 0a 20 2a 2f 0a 65 70 75 |dix "r".|. */.epu|
|00002380| 74 69 28 69 2c 20 72 29 | 0a 72 65 67 69 73 74 65 |ti(i, r)|.registe|
|00002390| 72 20 69 6e 74 09 69 3b | 0a 72 65 67 69 73 74 65 |r int.i;|.registe|
|000023a0| 72 20 69 6e 74 09 72 3b | 0a 7b 0a 09 72 65 67 69 |r int.r;|.{..regi|
|000023b0| 73 74 65 72 20 69 6e 74 | 09 71 3b 0a 0a 09 69 66 |ster int|.q;...if|
|000023c0| 20 28 28 71 3d 69 2f 72 | 29 20 21 3d 20 30 29 0a | ((q=i/r|) != 0).|
|000023d0| 09 09 65 70 75 74 69 28 | 71 2c 20 72 29 3b 0a 09 |..eputi(|q, r);..|
|000023e0| 65 70 75 74 63 28 69 25 | 72 2b 27 30 27 29 3b 0a |eputc(i%|r+'0');.|
|000023f0| 7d 0a 0a 2f 2a 0a 20 2a | 20 50 75 74 20 73 74 72 |}../*. *| Put str|
|00002400| 69 6e 67 2e 0a 20 2a 2f | 0a 65 70 75 74 73 28 73 |ing.. */|.eputs(s|
|00002410| 29 0a 72 65 67 69 73 74 | 65 72 20 63 68 61 72 09 |).regist|er char.|
|00002420| 2a 73 3b 0a 7b 0a 09 72 | 65 67 69 73 74 65 72 20 |*s;.{..r|egister |
|00002430| 69 6e 74 09 63 3b 0a 0a | 09 77 68 69 6c 65 20 28 |int.c;..|.while (|
|00002440| 28 63 20 3d 20 2a 73 2b | 2b 29 20 21 3d 20 27 5c |(c = *s+|+) != '\|
|00002450| 30 27 29 0a 09 09 65 70 | 75 74 63 28 63 29 3b 0a |0')...ep|utc(c);.|
|00002460| 7d 0a 0a 2f 2a 0a 20 2a | 20 50 75 74 20 63 68 61 |}../*. *| Put cha|
|00002470| 72 61 63 74 65 72 2e 20 | 57 61 74 63 68 20 66 6f |racter. |Watch fo|
|00002480| 72 0a 20 2a 20 63 6f 6e | 74 72 6f 6c 20 63 68 61 |r. * con|trol cha|
|00002490| 72 61 63 74 65 72 73 2c | 20 61 6e 64 20 66 6f 72 |racters,| and for|
|000024a0| 20 74 68 65 20 6c 69 6e | 65 0a 20 2a 20 67 65 74 | the lin|e. * get|
|000024b0| 74 69 6e 67 20 74 6f 6f | 20 6c 6f 6e 67 2e 0a 20 |ting too| long.. |
|000024c0| 2a 2f 0a 65 70 75 74 63 | 28 63 29 0a 72 65 67 69 |*/.eputc|(c).regi|
|000024d0| 73 74 65 72 20 69 6e 74 | 09 63 3b 0a 7b 0a 09 69 |ster int|.c;.{..i|
|000024e0| 66 20 28 74 74 63 6f 6c | 20 3c 20 6e 63 6f 6c 29 |f (ttcol| < ncol)|
|000024f0| 20 7b 0a 09 09 69 66 20 | 28 49 53 43 54 52 4c 28 | {...if |(ISCTRL(|
|00002500| 63 29 20 21 3d 20 46 41 | 4c 53 45 29 20 7b 0a 09 |c) != FA|LSE) {..|
|00002510| 09 09 65 70 75 74 63 28 | 27 5e 27 29 3b 0a 09 09 |..eputc(|'^');...|
|00002520| 09 63 20 5e 3d 20 30 78 | 34 30 3b 0a 09 09 7d 0a |.c ^= 0x|40;...}.|
|00002530| 09 09 74 74 70 75 74 63 | 28 63 29 3b 0a 09 09 2b |..ttputc|(c);...+|
|00002540| 2b 74 74 63 6f 6c 3b 0a | 09 7d 0a 7d 0a 53 48 41 |+ttcol;.|.}.}.SHA|
|00002550| 52 5f 45 4f 46 0a 69 66 | 20 74 65 73 74 20 38 38 |R_EOF.if| test 88|
|00002560| 34 34 20 2d 6e 65 20 22 | 60 77 63 20 2d 63 20 3c |44 -ne "|`wc -c <|
|00002570| 20 27 65 63 68 6f 2e 63 | 27 60 22 0a 74 68 65 6e | 'echo.c|'`".then|
|00002580| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 65 72 72 |..echo s|har: err|
|00002590| 6f 72 20 74 72 61 6e 73 | 6d 69 74 74 69 6e 67 20 |or trans|mitting |
|000025a0| 22 27 65 63 68 6f 2e 63 | 27 22 20 27 28 73 68 6f |"'echo.c|'" '(sho|
|000025b0| 75 6c 64 20 68 61 76 65 | 20 62 65 65 6e 20 38 38 |uld have| been 88|
|000025c0| 34 34 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |44 chara|cters)'.|
|000025d0| 66 69 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |fi.fi.ec|ho shar:|
|000025e0| 20 65 78 74 72 61 63 74 | 69 6e 67 20 22 27 65 78 | extract|ing "'ex|
|000025f0| 74 65 6e 64 2e 63 27 22 | 20 27 28 33 34 31 36 20 |tend.c'"| '(3416 |
|00002600| 63 68 61 72 61 63 74 65 | 72 73 29 27 0a 69 66 20 |characte|rs)'.if |
|00002610| 74 65 73 74 20 2d 66 20 | 27 65 78 74 65 6e 64 2e |test -f |'extend.|
|00002620| 63 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |c'.then.|.echo sh|
|00002630| 61 72 3a 20 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: will| not ove|
|00002640| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|00002650| 20 66 69 6c 65 20 22 27 | 65 78 74 65 6e 64 2e 63 | file "'|extend.c|
|00002660| 27 22 0a 65 6c 73 65 0a | 63 61 74 20 3c 3c 20 5c |'".else.|cat << \|
|00002670| 53 48 41 52 5f 45 4f 46 | 20 3e 20 27 65 78 74 65 |SHAR_EOF| > 'exte|
|00002680| 6e 64 2e 63 27 0a 2f 2a | 0a 20 2a 20 4e 61 6d 65 |nd.c'./*|. * Name|
|00002690| 3a 09 4d 69 63 72 6f 45 | 4d 41 43 53 0a 20 2a 09 |:.MicroE|MACS. *.|
|000026a0| 09 45 78 74 65 6e 64 65 | 64 20 28 4d 2d 58 29 20 |.Extende|d (M-X) |
|000026b0| 63 6f 6d 6d 61 6e 64 73 | 2e 0a 20 2a 20 56 65 72 |commands|.. * Ver|
|000026c0| 73 69 6f 6e 3a 09 32 39 | 0a 20 2a 20 4c 61 73 74 |sion:.29|. * Last|
|000026d0| 20 65 64 69 74 3a 09 31 | 34 2d 46 65 62 2d 38 36 | edit:.1|4-Feb-86|
|000026e0| 0a 20 2a 20 42 79 3a 09 | 09 72 65 78 3a 3a 63 6f |. * By:.|.rex::co|
|000026f0| 6e 72 6f 79 0a 20 2a 09 | 09 64 65 63 76 61 78 21 |nroy. *.|.decvax!|
|00002700| 64 65 63 77 72 6c 21 64 | 65 63 2d 72 68 65 61 21 |decwrl!d|ec-rhea!|
|00002710| 64 65 63 2d 72 65 78 21 | 63 6f 6e 72 6f 79 0a 20 |dec-rex!|conroy. |
|00002720| 2a 2f 0a 23 69 6e 63 6c | 75 64 65 09 22 64 65 66 |*/.#incl|ude."def|
|00002730| 2e 68 22 0a 0a 2f 2a 0a | 20 2a 20 54 68 69 73 20 |.h"../*.| * This |
|00002740| 66 75 6e 63 74 69 6f 6e | 20 6d 6f 64 69 66 69 65 |function| modifie|
|00002750| 73 20 74 68 65 20 6b 65 | 79 62 6f 61 72 64 0a 20 |s the ke|yboard. |
|00002760| 2a 20 62 69 6e 64 69 6e | 67 20 74 61 62 6c 65 2c |* bindin|g table,|
|00002770| 20 62 79 20 61 64 6a 75 | 73 74 69 6e 67 20 74 68 | by adju|sting th|
|00002780| 65 20 65 6e 74 72 69 65 | 73 20 69 6e 20 74 68 65 |e entrie|s in the|
|00002790| 0a 20 2a 20 62 69 67 20 | 22 62 69 6e 64 69 6e 67 |. * big |"binding|
|000027a0| 73 22 20 61 72 72 61 79 | 2e 20 4d 6f 73 74 20 6f |s" array|. Most o|
|000027b0| 66 20 74 68 65 20 67 72 | 69 65 66 20 64 65 61 6c |f the gr|ief deal|
|000027c0| 73 20 77 69 74 68 20 74 | 68 65 0a 20 2a 20 70 72 |s with t|he. * pr|
|000027d0| 6f 6d 70 74 69 6e 67 20 | 66 6f 72 20 61 64 64 69 |ompting |for addi|
|000027e0| 74 69 6f 6e 61 6c 20 61 | 72 67 75 6d 65 6e 74 73 |tional a|rguments|
|000027f0| 2e 20 54 68 69 73 20 63 | 6f 64 65 20 64 6f 65 73 |. This c|ode does|
|00002800| 20 6e 6f 74 0a 20 2a 20 | 77 6f 72 6b 20 72 69 67 | not. * |work rig|
|00002810| 68 74 20 69 66 20 74 68 | 65 72 65 20 69 73 20 61 |ht if th|ere is a|
|00002820| 20 6b 65 79 62 6f 61 72 | 64 20 6d 61 63 72 6f 20 | keyboar|d macro |
|00002830| 66 6c 6f 61 74 69 6e 67 | 20 61 72 6f 75 6e 64 2e |floating| around.|
|00002840| 0a 20 2a 20 53 68 6f 75 | 6c 64 20 62 65 20 66 69 |. * Shou|ld be fi|
|00002850| 78 65 64 2e 0a 20 2a 2f | 0a 62 69 6e 64 74 6f 6b |xed.. */|.bindtok|
|00002860| 65 79 28 66 2c 20 6e 2c | 20 6b 29 0a 7b 0a 09 72 |ey(f, n,| k).{..r|
|00002870| 65 67 69 73 74 65 72 20 | 69 6e 74 09 73 3b 0a 09 |egister |int.s;..|
|00002880| 72 65 67 69 73 74 65 72 | 20 63 68 61 72 09 2a 63 |register| char.*c|
|00002890| 70 3b 0a 09 72 65 67 69 | 73 74 65 72 20 53 59 4d |p;..regi|ster SYM|
|000028a0| 42 4f 4c 09 2a 73 70 3b | 0a 09 72 65 67 69 73 74 |BOL.*sp;|..regist|
|000028b0| 65 72 20 69 6e 74 09 63 | 3b 0a 09 63 68 61 72 09 |er int.c|;..char.|
|000028c0| 09 78 6e 61 6d 65 5b 4e | 58 4e 41 4d 45 5d 3b 0a |.xname[N|XNAME];.|
|000028d0| 0a 09 69 66 20 28 6b 62 | 64 6d 69 70 21 3d 4e 55 |..if (kb|dmip!=NU|
|000028e0| 4c 4c 20 7c 7c 20 6b 62 | 64 6d 6f 70 21 3d 4e 55 |LL || kb|dmop!=NU|
|000028f0| 4c 4c 29 20 7b 0a 09 09 | 65 70 72 69 6e 74 66 28 |LL) {...|eprintf(|
|00002900| 22 4e 6f 74 20 6e 6f 77 | 22 29 3b 0a 09 09 72 65 |"Not now|");...re|
|00002910| 74 75 72 6e 20 28 46 41 | 4c 53 45 29 3b 0a 09 7d |turn (FA|LSE);..}|
|00002920| 0a 09 69 66 20 28 28 73 | 3d 65 72 65 61 64 28 22 |..if ((s|=eread("|
|00002930| 46 75 6e 63 74 69 6f 6e | 3a 20 22 2c 20 78 6e 61 |Function|: ", xna|
|00002940| 6d 65 2c 20 4e 58 4e 41 | 4d 45 2c 20 45 46 41 55 |me, NXNA|ME, EFAU|
|00002950| 54 4f 2c 20 4e 55 4c 4c | 29 29 20 21 3d 20 54 52 |TO, NULL|)) != TR|
|00002960| 55 45 29 0a 09 09 72 65 | 74 75 72 6e 20 28 73 29 |UE)...re|turn (s)|
|00002970| 3b 0a 09 69 66 20 28 28 | 73 70 3d 73 79 6d 6c 6f |;..if ((|sp=symlo|
|00002980| 6f 6b 75 70 28 78 6e 61 | 6d 65 29 29 20 3d 3d 20 |okup(xna|me)) == |
|00002990| 4e 55 4c 4c 29 20 7b 0a | 09 09 65 70 72 69 6e 74 |NULL) {.|..eprint|
|000029a0| 66 28 22 55 6e 6b 6e 6f | 77 6e 20 66 75 6e 63 74 |f("Unkno|wn funct|
|000029b0| 69 6f 6e 20 66 6f 72 20 | 62 69 6e 64 69 6e 67 22 |ion for |binding"|
|000029c0| 29 3b 0a 09 09 72 65 74 | 75 72 6e 20 28 46 41 4c |);...ret|urn (FAL|
|000029d0| 53 45 29 3b 0a 09 7d 0a | 09 65 70 75 74 63 28 27 |SE);..}.|.eputc('|
|000029e0| 20 27 29 3b 0a 09 65 70 | 75 74 63 28 27 4b 27 29 | ');..ep|utc('K')|
|000029f0| 3b 0a 09 65 70 75 74 63 | 28 27 65 27 29 3b 0a 09 |;..eputc|('e');..|
|00002a00| 65 70 75 74 63 28 27 79 | 27 29 3b 0a 09 65 70 75 |eputc('y|');..epu|
|00002a10| 74 63 28 27 3a 27 29 3b | 0a 09 65 70 75 74 63 28 |tc(':');|..eputc(|
|00002a20| 27 20 27 29 3b 0a 09 74 | 74 66 6c 75 73 68 28 29 |' ');..t|tflush()|
|00002a30| 3b 0a 09 63 20 3d 20 67 | 65 74 6b 65 79 28 29 3b |;..c = g|etkey();|
|00002a40| 09 09 09 09 2f 2a 20 52 | 65 61 64 20 6b 65 79 2e |..../* R|ead key.|
|00002a50| 09 09 2a 2f 0a 09 6b 65 | 79 6e 61 6d 65 28 78 6e |..*/..ke|yname(xn|
|00002a60| 61 6d 65 2c 20 63 29 3b | 09 09 09 2f 2a 20 44 69 |ame, c);|.../* Di|
|00002a70| 73 70 6c 61 79 20 6b 65 | 79 6e 61 6d 65 2e 09 2a |splay ke|yname..*|
|00002a80| 2f 0a 09 65 70 75 74 73 | 28 78 6e 61 6d 65 29 3b |/..eputs|(xname);|
|00002a90| 0a 09 74 74 66 6c 75 73 | 68 28 29 3b 0a 09 69 66 |..ttflus|h();..if|
|00002aa0| 20 28 62 69 6e 64 69 6e | 67 5b 63 5d 20 21 3d 20 | (bindin|g[c] != |
|00002ab0| 4e 55 4c 4c 29 09 09 09 | 2f 2a 20 55 6e 62 69 6e |NULL)...|/* Unbin|
|00002ac0| 64 20 6f 6c 64 2c 20 61 | 6e 64 09 2a 2f 0a 09 09 |d old, a|nd.*/...|
|00002ad0| 2d 2d 62 69 6e 64 69 6e | 67 5b 63 5d 2d 3e 73 5f |--bindin|g[c]->s_|
|00002ae0| 6e 6b 65 79 3b 0a 09 62 | 69 6e 64 69 6e 67 5b 63 |nkey;..b|inding[c|
|00002af0| 5d 20 3d 20 73 70 3b 09 | 09 09 2f 2a 20 72 65 62 |] = sp;.|../* reb|
|00002b00| 69 6e 64 20 6e 65 77 2e | 09 09 2a 2f 0a 09 2b 2b |ind new.|..*/..++|
|00002b10| 73 70 2d 3e 73 5f 6e 6b | 65 79 3b 0a 09 72 65 74 |sp->s_nk|ey;..ret|
|00002b20| 75 72 6e 20 28 54 52 55 | 45 29 3b 0a 7d 0a 20 0a |urn (TRU|E);.}. .|
|00002b30| 2f 2a 0a 20 2a 20 45 78 | 74 65 6e 64 65 64 20 63 |/*. * Ex|tended c|
|00002b40| 6f 6d 6d 61 6e 64 2e 20 | 43 61 6c 6c 20 74 68 65 |ommand. |Call the|
|00002b50| 20 6d 65 73 73 61 67 65 | 20 6c 69 6e 65 0a 20 2a | message| line. *|
|00002b60| 20 72 6f 75 74 69 6e 65 | 20 74 6f 20 72 65 61 64 | routine| to read|
|00002b70| 20 69 6e 20 74 68 65 20 | 63 6f 6d 6d 61 6e 64 20 | in the |command |
|00002b80| 6e 61 6d 65 20 61 6e 64 | 20 61 70 70 6c 79 20 61 |name and| apply a|
|00002b90| 75 74 6f 63 6f 6d 70 6c | 65 74 69 6f 6e 0a 20 2a |utocompl|etion. *|
|00002ba0| 20 74 6f 20 69 74 2e 20 | 57 68 65 6e 20 69 74 20 | to it. |When it |
|00002bb0| 63 6f 6d 65 73 20 62 61 | 63 6b 2c 20 6c 6f 6f 6b |comes ba|ck, look|
|00002bc0| 20 74 68 65 20 6e 61 6d | 65 20 75 70 20 69 6e 20 | the nam|e up in |
|00002bd0| 74 68 65 20 73 79 6d 62 | 6f 6c 20 74 61 62 6c 65 |the symb|ol table|
|00002be0| 0a 20 2a 20 61 6e 64 20 | 72 75 6e 20 74 68 65 20 |. * and |run the |
|00002bf0| 63 6f 6d 6d 61 6e 64 20 | 69 66 20 69 74 20 69 73 |command |if it is|
|00002c00| 20 66 6f 75 6e 64 20 61 | 6e 64 20 68 61 73 20 74 | found a|nd has t|
|00002c10| 68 65 20 72 69 67 68 74 | 20 74 79 70 65 2e 0a 20 |he right| type.. |
|00002c20| 2a 20 50 72 69 6e 74 20 | 61 6e 20 65 72 72 6f 72 |* Print |an error|
|00002c30| 20 69 66 20 74 68 65 72 | 65 20 69 73 20 61 6e 79 | if ther|e is any|
|00002c40| 74 68 69 6e 67 20 77 72 | 6f 6e 67 2e 0a 20 2a 2f |thing wr|ong.. */|
|00002c50| 0a 65 78 74 65 6e 64 28 | 66 2c 20 6e 2c 20 6b 29 |.extend(|f, n, k)|
|00002c60| 0a 7b 0a 09 72 65 67 69 | 73 74 65 72 20 53 59 4d |.{..regi|ster SYM|
|00002c70| 42 4f 4c 09 2a 73 70 3b | 0a 09 72 65 67 69 73 74 |BOL.*sp;|..regist|
|00002c80| 65 72 20 69 6e 74 09 73 | 3b 0a 09 63 68 61 72 09 |er int.s|;..char.|
|00002c90| 09 78 6e 61 6d 65 5b 4e | 58 4e 41 4d 45 5d 3b 0a |.xname[N|XNAME];.|
|00002ca0| 0a 09 69 66 20 28 28 73 | 3d 65 72 65 61 64 28 22 |..if ((s|=eread("|
|00002cb0| 3a 20 22 2c 20 78 6e 61 | 6d 65 2c 20 4e 58 4e 41 |: ", xna|me, NXNA|
|00002cc0| 4d 45 2c 20 45 46 4e 45 | 57 7c 45 46 41 55 54 4f |ME, EFNE|W|EFAUTO|
|00002cd0| 2c 20 4e 55 4c 4c 29 29 | 20 21 3d 20 54 52 55 45 |, NULL))| != TRUE|
|00002ce0| 29 0a 09 09 72 65 74 75 | 72 6e 20 28 73 29 3b 0a |)...retu|rn (s);.|
|00002cf0| 09 69 66 20 28 28 73 70 | 3d 73 79 6d 6c 6f 6f 6b |.if ((sp|=symlook|
|00002d00| 75 70 28 78 6e 61 6d 65 | 29 29 20 21 3d 20 4e 55 |up(xname|)) != NU|
|00002d10| 4c 4c 29 0a 09 09 72 65 | 74 75 72 6e 20 28 28 2a |LL)...re|turn ((*|
|00002d20| 73 70 2d 3e 73 5f 66 75 | 6e 63 70 29 28 66 2c 20 |sp->s_fu|ncp)(f, |
|00002d30| 6e 2c 20 4b 52 41 4e 44 | 4f 4d 29 29 3b 0a 09 65 |n, KRAND|OM));..e|
|00002d40| 70 72 69 6e 74 66 28 22 | 55 6e 6b 6e 6f 77 6e 20 |printf("|Unknown |
|00002d50| 65 78 74 65 6e 64 65 64 | 20 63 6f 6d 6d 61 6e 64 |extended| command|
|00002d60| 22 29 3b 0a 09 72 65 74 | 75 72 6e 20 28 41 42 4f |");..ret|urn (ABO|
|00002d70| 52 54 29 3b 0a 7d 0a 0a | 2f 2a 0a 20 2a 20 52 65 |RT);.}..|/*. * Re|
|00002d80| 61 64 20 61 20 6b 65 79 | 20 66 72 6f 6d 20 74 68 |ad a key| from th|
|00002d90| 65 20 6b 65 79 62 6f 61 | 72 64 2c 20 61 6e 64 20 |e keyboa|rd, and |
|00002da0| 6c 6f 6f 6b 20 69 74 0a | 20 2a 20 75 70 20 69 6e |look it.| * up in|
|00002db0| 20 74 68 65 20 62 69 6e | 64 69 6e 67 20 74 61 62 | the bin|ding tab|
|00002dc0| 6c 65 2e 20 44 69 73 70 | 6c 61 79 20 74 68 65 20 |le. Disp|lay the |
|00002dd0| 6e 61 6d 65 20 6f 66 20 | 74 68 65 20 66 75 6e 63 |name of |the func|
|00002de0| 74 69 6f 6e 0a 20 2a 20 | 63 75 72 72 65 6e 74 6c |tion. * |currentl|
|00002df0| 79 20 62 6f 75 6e 64 20 | 74 6f 20 74 68 65 20 6b |y bound |to the k|
|00002e00| 65 79 2e 20 53 61 79 20 | 74 68 61 74 20 74 68 65 |ey. Say |that the|
|00002e10| 20 6b 65 79 20 69 73 20 | 6e 6f 74 20 62 6f 75 6e | key is |not boun|
|00002e20| 64 0a 20 2a 20 69 66 20 | 69 74 20 69 73 20 69 6e |d. * if |it is in|
|00002e30| 64 65 65 64 20 6e 6f 74 | 20 62 6f 75 6e 64 2c 20 |deed not| bound, |
|00002e40| 6f 72 20 69 66 20 74 68 | 65 20 74 79 70 65 20 69 |or if th|e type i|
|00002e50| 73 20 6e 6f 74 20 61 0a | 20 2a 20 22 62 75 69 6c |s not a.| * "buil|
|00002e60| 74 69 6e 22 2e 20 54 68 | 69 73 20 69 73 20 61 20 |tin". Th|is is a |
|00002e70| 62 69 74 20 6f 66 20 6f | 76 65 72 6b 69 6c 6c 2c |bit of o|verkill,|
|00002e80| 20 62 65 63 61 75 73 65 | 20 74 68 69 73 20 69 73 | because| this is|
|00002e90| 20 74 68 65 0a 20 2a 20 | 6f 6e 6c 79 20 6b 69 6e | the. * |only kin|
|00002ea0| 64 20 6f 66 20 66 75 6e | 63 74 69 6f 6e 20 74 68 |d of fun|ction th|
|00002eb0| 65 72 65 20 69 73 2e 0a | 20 2a 2f 0a 68 65 6c 70 |ere is..| */.help|
|00002ec0| 28 66 2c 20 6e 2c 20 6b | 29 0a 7b 0a 09 72 65 67 |(f, n, k|).{..reg|
|00002ed0| 69 73 74 65 72 20 53 59 | 4d 42 4f 4c 09 2a 73 70 |ister SY|MBOL.*sp|
|00002ee0| 3b 0a 09 72 65 67 69 73 | 74 65 72 20 69 6e 74 09 |;..regis|ter int.|
|00002ef0| 63 3b 0a 09 63 68 61 72 | 09 09 62 5b 32 30 5d 3b |c;..char|..b[20];|
|00002f00| 0a 0a 09 63 20 3d 20 67 | 65 74 6b 65 79 28 29 3b |...c = g|etkey();|
|00002f10| 0a 09 6b 65 79 6e 61 6d | 65 28 62 2c 20 63 29 3b |..keynam|e(b, c);|
|00002f20| 0a 09 69 66 20 28 28 73 | 70 3d 62 69 6e 64 69 6e |..if ((s|p=bindin|
|00002f30| 67 5b 63 5d 29 20 3d 3d | 20 4e 55 4c 4c 29 0a 09 |g[c]) ==| NULL)..|
|00002f40| 09 65 70 72 69 6e 74 66 | 28 22 5b 25 73 20 69 73 |.eprintf|("[%s is|
|00002f50| 20 75 6e 62 6f 75 6e 64 | 5d 22 2c 20 62 29 3b 0a | unbound|]", b);.|
|00002f60| 09 65 6c 73 65 0a 09 09 | 65 70 72 69 6e 74 66 28 |.else...|eprintf(|
|00002f70| 22 5b 25 73 20 69 73 20 | 62 6f 75 6e 64 20 74 6f |"[%s is |bound to|
|00002f80| 20 25 73 5d 22 2c 20 62 | 2c 20 73 70 2d 3e 73 5f | %s]", b|, sp->s_|
|00002f90| 6e 61 6d 65 29 3b 0a 09 | 72 65 74 75 72 6e 20 28 |name);..|return (|
|00002fa0| 54 52 55 45 29 3b 0a 7d | 0a 0a 2f 2a 0a 20 2a 20 |TRUE);.}|../*. * |
|00002fb0| 54 68 69 73 20 66 75 6e | 63 74 69 6f 6e 20 63 72 |This fun|ction cr|
|00002fc0| 65 61 74 65 73 20 61 20 | 74 61 62 6c 65 2c 20 6c |eates a |table, l|
|00002fd0| 69 73 74 69 6e 67 20 61 | 6c 6c 0a 20 2a 20 6f 66 |isting a|ll. * of|
|00002fe0| 20 74 68 65 20 63 6f 6d | 6d 61 6e 64 20 6b 65 79 | the com|mand key|
|00002ff0| 73 20 61 6e 64 20 74 68 | 65 69 72 20 63 75 72 72 |s and th|eir curr|
|00003000| 65 6e 74 20 62 69 6e 64 | 69 6e 67 73 2c 20 61 6e |ent bind|ings, an|
|00003010| 64 20 73 74 6f 72 65 73 | 0a 20 2a 20 74 68 65 20 |d stores|. * the |
|00003020| 74 61 62 6c 65 20 69 6e | 20 74 68 65 20 73 74 61 |table in| the sta|
|00003030| 6e 64 61 72 64 20 70 6f | 70 2d 6f 70 20 62 75 66 |ndard po|p-op buf|
|00003040| 66 65 72 20 28 74 68 65 | 20 6f 6e 65 20 75 73 65 |fer (the| one use|
|00003050| 64 20 62 79 20 74 68 65 | 0a 20 2a 20 64 69 72 65 |d by the|. * dire|
|00003060| 63 74 6f 72 79 20 6c 69 | 73 74 20 63 6f 6d 6d 61 |ctory li|st comma|
|00003070| 6e 64 2c 20 74 68 65 20 | 62 75 66 66 65 72 20 6c |nd, the |buffer l|
|00003080| 69 73 74 20 63 6f 6d 6d | 61 6e 64 2c 20 65 74 63 |ist comm|and, etc|
|00003090| 2e 29 2e 20 54 68 69 73 | 0a 20 2a 20 6c 65 74 73 |.). This|. * lets|
|000030a0| 20 4d 69 63 72 6f 45 4d | 41 43 53 20 70 72 6f 64 | MicroEM|ACS prod|
|000030b0| 75 63 65 20 69 74 27 73 | 20 6f 77 6e 20 77 61 6c |uce it's| own wal|
|000030c0| 6c 20 63 68 61 72 74 2e | 20 54 68 65 20 62 69 6e |l chart.| The bin|
|000030d0| 64 69 6e 67 73 20 74 6f | 0a 20 2a 20 22 69 6e 73 |dings to|. * "ins|
|000030e0| 2d 73 65 6c 66 22 20 61 | 72 65 20 6f 6e 6c 79 20 |-self" a|re only |
|000030f0| 64 69 73 70 6c 61 79 65 | 64 20 69 66 20 74 68 65 |displaye|d if the|
|00003100| 72 65 20 69 73 20 61 6e | 20 61 72 67 75 6d 65 6e |re is an| argumen|
|00003110| 74 2e 0a 20 2a 2f 0a 77 | 61 6c 6c 63 68 61 72 74 |t.. */.w|allchart|
|00003120| 28 66 2c 20 6e 2c 20 6b | 29 0a 7b 0a 09 72 65 67 |(f, n, k|).{..reg|
|00003130| 69 73 74 65 72 20 69 6e | 74 09 73 3b 0a 09 72 65 |ister in|t.s;..re|
|00003140| 67 69 73 74 65 72 20 69 | 6e 74 09 6b 65 79 3b 0a |gister i|nt.key;.|
|00003150| 09 72 65 67 69 73 74 65 | 72 20 53 59 4d 42 4f 4c |.registe|r SYMBOL|
|00003160| 09 2a 73 70 3b 0a 09 72 | 65 67 69 73 74 65 72 20 |.*sp;..r|egister |
|00003170| 63 68 61 72 09 2a 63 70 | 31 3b 0a 09 72 65 67 69 |char.*cp|1;..regi|
|00003180| 73 74 65 72 20 63 68 61 | 72 09 2a 63 70 32 3b 0a |ster cha|r.*cp2;.|
|00003190| 09 63 68 61 72 09 09 62 | 75 66 5b 36 34 5d 3b 0a |.char..b|uf[64];.|
|000031a0| 0a 09 69 66 20 28 28 73 | 3d 62 63 6c 65 61 72 28 |..if ((s|=bclear(|
|000031b0| 62 6c 69 73 74 70 29 29 | 20 21 3d 20 54 52 55 45 |blistp))| != TRUE|
|000031c0| 29 09 09 2f 2a 20 43 6c | 65 61 72 20 69 74 20 6f |)../* Cl|ear it o|
|000031d0| 75 74 2e 09 2a 2f 0a 09 | 09 72 65 74 75 72 6e 20 |ut..*/..|.return |
|000031e0| 28 73 29 3b 0a 09 28 76 | 6f 69 64 29 20 73 74 72 |(s);..(v|oid) str|
|000031f0| 63 70 79 28 62 6c 69 73 | 74 70 2d 3e 62 5f 66 6e |cpy(blis|tp->b_fn|
|00003200| 61 6d 65 2c 20 22 22 29 | 3b 0a 09 66 6f 72 20 28 |ame, "")|;..for (|
|00003210| 6b 65 79 3d 30 3b 20 6b | 65 79 3c 4e 4b 45 59 53 |key=0; k|ey<NKEYS|
|00003220| 3b 20 2b 2b 6b 65 79 29 | 20 7b 09 09 2f 2a 20 46 |; ++key)| {../* F|
|00003230| 6f 72 20 61 6c 6c 20 6b | 65 79 73 2e 09 2a 2f 0a |or all k|eys..*/.|
|00003240| 09 09 73 70 20 3d 20 62 | 69 6e 64 69 6e 67 5b 6b |..sp = b|inding[k|
|00003250| 65 79 5d 3b 0a 09 09 69 | 66 20 28 73 70 20 21 3d |ey];...i|f (sp !=|
|00003260| 20 4e 55 4c 4c 0a 09 09 | 26 26 20 28 66 21 3d 46 | NULL...|&& (f!=F|
|00003270| 41 4c 53 45 20 7c 7c 20 | 73 74 72 63 6d 70 28 73 |ALSE || |strcmp(s|
|00003280| 70 2d 3e 73 5f 6e 61 6d | 65 2c 20 22 69 6e 73 2d |p->s_nam|e, "ins-|
|00003290| 73 65 6c 66 22 29 21 3d | 30 29 29 20 7b 0a 09 09 |self")!=|0)) {...|
|000032a0| 09 6b 65 79 6e 61 6d 65 | 28 62 75 66 2c 20 6b 65 |.keyname|(buf, ke|
|000032b0| 79 29 3b 0a 09 09 09 63 | 70 31 20 3d 20 26 62 75 |y);....c|p1 = &bu|
|000032c0| 66 5b 30 5d 3b 09 09 2f | 2a 20 46 69 6e 64 20 65 |f[0];../|* Find e|
|000032d0| 6e 64 2e 09 09 2a 2f 0a | 09 09 09 77 68 69 6c 65 |nd...*/.|...while|
|000032e0| 20 28 2a 63 70 31 20 21 | 3d 20 30 29 0a 09 09 09 | (*cp1 !|= 0)....|
|000032f0| 09 2b 2b 63 70 31 3b 0a | 09 09 09 77 68 69 6c 65 |.++cp1;.|...while|
|00003300| 20 28 63 70 31 20 3c 20 | 26 62 75 66 5b 31 36 5d | (cp1 < |&buf[16]|
|00003310| 29 09 2f 2a 20 47 6f 74 | 6f 20 63 6f 6c 75 6d 6e |)./* Got|o column|
|00003320| 20 31 36 2e 09 2a 2f 0a | 09 09 09 09 2a 63 70 31 | 16..*/.|....*cp1|
|00003330| 2b 2b 20 3d 20 27 20 27 | 3b 09 09 09 09 0a 09 09 |++ = ' '|;.......|
|00003340| 09 63 70 32 20 3d 20 73 | 70 2d 3e 73 5f 6e 61 6d |.cp2 = s|p->s_nam|
|00003350| 65 3b 09 2f 2a 20 41 64 | 64 20 66 75 6e 63 74 69 |e;./* Ad|d functi|
|00003360| 6f 6e 20 6e 61 6d 65 2e | 09 2a 2f 0a 09 09 09 77 |on name.|.*/....w|
|00003370| 68 69 6c 65 20 28 2a 63 | 70 31 2b 2b 20 3d 20 2a |hile (*c|p1++ = *|
|00003380| 63 70 32 2b 2b 29 0a 09 | 09 09 09 3b 0a 09 09 09 |cp2++)..|...;....|
|00003390| 69 66 20 28 61 64 64 6c | 69 6e 65 28 62 75 66 29 |if (addl|ine(buf)|
|000033a0| 20 3d 3d 20 46 41 4c 53 | 45 29 0a 09 09 09 09 72 | == FALS|E).....r|
|000033b0| 65 74 75 72 6e 20 28 46 | 41 4c 53 45 29 3b 0a 09 |eturn (F|ALSE);..|
|000033c0| 09 7d 0a 09 7d 0a 09 72 | 65 74 75 72 6e 20 28 70 |.}..}..r|eturn (p|
|000033d0| 6f 70 62 6c 69 73 74 28 | 29 29 3b 0a 7d 0a 53 48 |opblist(|));.}.SH|
|000033e0| 41 52 5f 45 4f 46 0a 69 | 66 20 74 65 73 74 20 33 |AR_EOF.i|f test 3|
|000033f0| 34 31 36 20 2d 6e 65 20 | 22 60 77 63 20 2d 63 20 |416 -ne |"`wc -c |
|00003400| 3c 20 27 65 78 74 65 6e | 64 2e 63 27 60 22 0a 74 |< 'exten|d.c'`".t|
|00003410| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|00003420| 65 72 72 6f 72 20 74 72 | 61 6e 73 6d 69 74 74 69 |error tr|ansmitti|
|00003430| 6e 67 20 22 27 65 78 74 | 65 6e 64 2e 63 27 22 20 |ng "'ext|end.c'" |
|00003440| 27 28 73 68 6f 75 6c 64 | 20 68 61 76 65 20 62 65 |'(should| have be|
|00003450| 65 6e 20 33 34 31 36 20 | 63 68 61 72 61 63 74 65 |en 3416 |characte|
|00003460| 72 73 29 27 0a 66 69 0a | 66 69 0a 65 63 68 6f 20 |rs)'.fi.|fi.echo |
|00003470| 73 68 61 72 3a 20 65 78 | 74 72 61 63 74 69 6e 67 |shar: ex|tracting|
|00003480| 20 22 27 66 69 6c 65 2e | 63 27 22 20 27 28 39 34 | "'file.|c'" '(94|
|00003490| 30 34 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |04 chara|cters)'.|
|000034a0| 69 66 20 74 65 73 74 20 | 2d 66 20 27 66 69 6c 65 |if test |-f 'file|
|000034b0| 2e 63 27 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |.c'.then|..echo s|
|000034c0| 68 61 72 3a 20 77 69 6c | 6c 20 6e 6f 74 20 6f 76 |har: wil|l not ov|
|000034d0| 65 72 2d 77 72 69 74 65 | 20 65 78 69 73 74 69 6e |er-write| existin|
|000034e0| 67 20 66 69 6c 65 20 22 | 27 66 69 6c 65 2e 63 27 |g file "|'file.c'|
|000034f0| 22 0a 65 6c 73 65 0a 63 | 61 74 20 3c 3c 20 5c 53 |".else.c|at << \S|
|00003500| 48 41 52 5f 45 4f 46 20 | 3e 20 27 66 69 6c 65 2e |HAR_EOF |> 'file.|
|00003510| 63 27 0a 2f 2a 0a 20 2a | 20 4e 61 6d 65 3a 09 4d |c'./*. *| Name:.M|
|00003520| 69 63 72 6f 45 4d 41 43 | 53 0a 20 2a 20 09 09 46 |icroEMAC|S. * ..F|
|00003530| 69 6c 65 20 63 6f 6d 6d | 61 6e 64 73 2e 0a 20 2a |ile comm|ands.. *|
|00003540| 20 56 65 72 73 69 6f 6e | 3a 09 32 39 0a 20 2a 20 | Version|:.29. * |
|00003550| 4c 61 73 74 20 65 64 69 | 74 3a 09 30 35 2d 46 65 |Last edi|t:.05-Fe|
|00003560| 62 2d 38 36 0a 20 2a 20 | 42 79 3a 09 09 72 65 78 |b-86. * |By:..rex|
|00003570| 3a 3a 63 6f 6e 72 6f 79 | 0a 20 2a 09 09 64 65 63 |::conroy|. *..dec|
|00003580| 76 61 78 21 64 65 63 77 | 72 6c 21 64 65 63 2d 72 |vax!decw|rl!dec-r|
|00003590| 68 65 61 21 64 65 63 2d | 72 65 78 21 63 6f 6e 72 |hea!dec-|rex!conr|
|000035a0| 6f 79 0a 20 2a 2f 0a 23 | 69 6e 63 6c 75 64 65 09 |oy. */.#|include.|
|000035b0| 22 64 65 66 2e 68 22 0a | 0a 2f 2a 0a 20 2a 20 52 |"def.h".|./*. * R|
|000035c0| 65 61 64 20 61 20 66 69 | 6c 65 20 69 6e 74 6f 20 |ead a fi|le into |
|000035d0| 74 68 65 20 63 75 72 72 | 65 6e 74 0a 20 2a 20 62 |the curr|ent. * b|
|000035e0| 75 66 66 65 72 2e 20 54 | 68 69 73 20 69 73 20 72 |uffer. T|his is r|
|000035f0| 65 61 6c 6c 79 20 65 61 | 73 79 3b 20 61 6c 6c 20 |eally ea|sy; all |
|00003600| 79 6f 75 20 64 6f 20 69 | 74 0a 20 2a 20 66 69 6e |you do i|t. * fin|
|00003610| 64 20 74 68 65 20 6e 61 | 6d 65 20 6f 66 20 74 68 |d the na|me of th|
|00003620| 65 20 66 69 6c 65 2c 20 | 61 6e 64 20 63 61 6c 6c |e file, |and call|
|00003630| 20 74 68 65 20 73 74 61 | 6e 64 61 72 64 0a 20 2a | the sta|ndard. *|
|00003640| 20 22 72 65 61 64 20 61 | 20 66 69 6c 65 20 69 6e | "read a| file in|
|00003650| 74 6f 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 62 |to the c|urrent b|
|00003660| 75 66 66 65 72 22 20 63 | 6f 64 65 2e 0a 20 2a 2f |uffer" c|ode.. */|
|00003670| 0a 66 69 6c 65 72 65 61 | 64 28 66 2c 20 6e 2c 20 |.filerea|d(f, n, |
|00003680| 6b 29 0a 7b 0a 09 72 65 | 67 69 73 74 65 72 20 69 |k).{..re|gister i|
|00003690| 6e 74 09 73 3b 0a 09 63 | 68 61 72 09 09 66 6e 61 |nt.s;..c|har..fna|
|000036a0| 6d 65 5b 4e 46 49 4c 45 | 4e 5d 3b 0a 0a 09 69 66 |me[NFILE|N];...if|
|000036b0| 20 28 28 73 3d 65 72 65 | 70 6c 79 28 22 52 65 61 | ((s=ere|ply("Rea|
|000036c0| 64 20 66 69 6c 65 3a 20 | 22 2c 20 66 6e 61 6d 65 |d file: |", fname|
|000036d0| 2c 20 4e 46 49 4c 45 4e | 29 29 20 21 3d 20 54 52 |, NFILEN|)) != TR|
|000036e0| 55 45 29 0a 09 09 72 65 | 74 75 72 6e 20 28 73 29 |UE)...re|turn (s)|
|000036f0| 3b 0a 09 61 64 6a 75 73 | 74 63 61 73 65 28 66 6e |;..adjus|tcase(fn|
|00003700| 61 6d 65 29 3b 0a 09 72 | 65 74 75 72 6e 20 28 72 |ame);..r|eturn (r|
|00003710| 65 61 64 69 6e 28 66 6e | 61 6d 65 29 29 3b 0a 7d |eadin(fn|ame));.}|
|00003720| 0a 0a 2f 2a 0a 20 2a 20 | 53 65 6c 65 63 74 20 61 |../*. * |Select a|
|00003730| 20 66 69 6c 65 20 66 6f | 72 20 65 64 69 74 69 6e | file fo|r editin|
|00003740| 67 2e 0a 20 2a 20 4c 6f | 6f 6b 20 61 72 6f 75 6e |g.. * Lo|ok aroun|
|00003750| 64 20 74 6f 20 73 65 65 | 20 69 66 20 79 6f 75 20 |d to see| if you |
|00003760| 63 61 6e 20 66 69 6e 64 | 20 74 68 65 0a 20 2a 20 |can find| the. * |
|00003770| 66 69 6e 65 20 69 6e 20 | 61 6e 6f 74 68 65 72 20 |fine in |another |
|00003780| 62 75 66 66 65 72 3b 20 | 69 66 20 79 6f 75 20 63 |buffer; |if you c|
|00003790| 61 6e 20 66 69 6e 64 20 | 69 74 0a 20 2a 20 6a 75 |an find |it. * ju|
|000037a0| 73 74 20 73 77 69 74 63 | 68 20 74 6f 20 74 68 65 |st switc|h to the|
|000037b0| 20 62 75 66 66 65 72 2e | 20 49 66 20 79 6f 75 20 | buffer.| If you |
|000037c0| 63 61 6e 6e 6f 74 20 66 | 69 6e 64 0a 20 2a 20 74 |cannot f|ind. * t|
|000037d0| 68 65 20 66 69 6c 65 2c | 20 63 72 65 61 74 65 20 |he file,| create |
|000037e0| 61 20 6e 65 77 20 62 75 | 66 66 65 72 2c 20 72 65 |a new bu|ffer, re|
|000037f0| 61 64 20 69 6e 20 74 68 | 65 0a 20 2a 20 74 65 78 |ad in th|e. * tex|
|00003800| 74 2c 20 61 6e 64 20 73 | 77 69 74 63 68 20 74 6f |t, and s|witch to|
|00003810| 20 74 68 65 20 6e 65 77 | 20 62 75 66 66 65 72 2e | the new| buffer.|
|00003820| 0a 20 2a 2f 0a 66 69 6c | 65 76 69 73 69 74 28 66 |. */.fil|evisit(f|
|00003830| 2c 20 6e 2c 20 6b 29 0a | 7b 0a 09 72 65 67 69 73 |, n, k).|{..regis|
|00003840| 74 65 72 20 42 55 46 46 | 45 52 09 2a 62 70 3b 0a |ter BUFF|ER.*bp;.|
|00003850| 09 72 65 67 69 73 74 65 | 72 20 57 49 4e 44 4f 57 |.registe|r WINDOW|
|00003860| 09 2a 77 70 3b 0a 09 72 | 65 67 69 73 74 65 72 20 |.*wp;..r|egister |
|00003870| 4c 49 4e 45 09 2a 6c 70 | 3b 0a 09 72 65 67 69 73 |LINE.*lp|;..regis|
|00003880| 74 65 72 20 69 6e 74 09 | 69 3b 0a 09 72 65 67 69 |ter int.|i;..regi|
|00003890| 73 74 65 72 20 69 6e 74 | 09 73 3b 0a 09 63 68 61 |ster int|.s;..cha|
|000038a0| 72 09 09 62 6e 61 6d 65 | 5b 4e 42 55 46 4e 5d 3b |r..bname|[NBUFN];|
|000038b0| 0a 09 63 68 61 72 09 09 | 66 6e 61 6d 65 5b 4e 46 |..char..|fname[NF|
|000038c0| 49 4c 45 4e 5d 3b 0a 0a | 09 69 66 20 28 28 73 3d |ILEN];..|.if ((s=|
|000038d0| 65 72 65 70 6c 79 28 22 | 56 69 73 69 74 20 66 69 |ereply("|Visit fi|
|000038e0| 6c 65 3a 20 22 2c 20 66 | 6e 61 6d 65 2c 20 4e 46 |le: ", f|name, NF|
|000038f0| 49 4c 45 4e 29 29 20 21 | 3d 20 54 52 55 45 29 0a |ILEN)) !|= TRUE).|
|00003900| 09 09 72 65 74 75 72 6e | 20 28 73 29 3b 0a 09 61 |..return| (s);..a|
|00003910| 64 6a 75 73 74 63 61 73 | 65 28 66 6e 61 6d 65 29 |djustcas|e(fname)|
|00003920| 3b 0a 09 66 6f 72 20 28 | 62 70 3d 62 68 65 61 64 |;..for (|bp=bhead|
|00003930| 70 3b 20 62 70 21 3d 4e | 55 4c 4c 3b 20 62 70 3d |p; bp!=N|ULL; bp=|
|00003940| 62 70 2d 3e 62 5f 62 75 | 66 70 29 20 7b 0a 09 09 |bp->b_bu|fp) {...|
|00003950| 69 66 20 28 73 74 72 63 | 6d 70 28 62 70 2d 3e 62 |if (strc|mp(bp->b|
|00003960| 5f 66 6e 61 6d 65 2c 20 | 66 6e 61 6d 65 29 20 3d |_fname, |fname) =|
|00003970| 3d 20 30 29 20 7b 0a 09 | 09 09 69 66 20 28 2d 2d |= 0) {..|..if (--|
|00003980| 63 75 72 62 70 2d 3e 62 | 5f 6e 77 6e 64 20 3d 3d |curbp->b|_nwnd ==|
|00003990| 20 30 29 20 7b 0a 09 09 | 09 09 63 75 72 62 70 2d | 0) {...|..curbp-|
|000039a0| 3e 62 5f 64 6f 74 70 20 | 20 3d 20 63 75 72 77 70 |>b_dotp | = curwp|
|000039b0| 2d 3e 77 5f 64 6f 74 70 | 3b 0a 09 09 09 09 63 75 |->w_dotp|;.....cu|
|000039c0| 72 62 70 2d 3e 62 5f 64 | 6f 74 6f 20 20 3d 20 63 |rbp->b_d|oto = c|
|000039d0| 75 72 77 70 2d 3e 77 5f | 64 6f 74 6f 3b 0a 09 09 |urwp->w_|doto;...|
|000039e0| 09 09 63 75 72 62 70 2d | 3e 62 5f 6d 61 72 6b 70 |..curbp-|>b_markp|
|000039f0| 20 3d 20 63 75 72 77 70 | 2d 3e 77 5f 6d 61 72 6b | = curwp|->w_mark|
|00003a00| 70 3b 0a 09 09 09 09 63 | 75 72 62 70 2d 3e 62 5f |p;.....c|urbp->b_|
|00003a10| 6d 61 72 6b 6f 20 3d 20 | 63 75 72 77 70 2d 3e 77 |marko = |curwp->w|
|00003a20| 5f 6d 61 72 6b 6f 3b 0a | 09 09 09 7d 0a 09 09 09 |_marko;.|...}....|
|00003a30| 63 75 72 62 70 20 3d 20 | 62 70 3b 0a 09 09 09 63 |curbp = |bp;....c|
|00003a40| 75 72 77 70 2d 3e 77 5f | 62 75 66 70 20 20 3d 20 |urwp->w_|bufp = |
|00003a50| 62 70 3b 0a 09 09 09 69 | 66 20 28 62 70 2d 3e 62 |bp;....i|f (bp->b|
|00003a60| 5f 6e 77 6e 64 2b 2b 20 | 3d 3d 20 30 29 20 7b 0a |_nwnd++ |== 0) {.|
|00003a70| 09 09 09 09 63 75 72 77 | 70 2d 3e 77 5f 64 6f 74 |....curw|p->w_dot|
|00003a80| 70 20 20 3d 20 62 70 2d | 3e 62 5f 64 6f 74 70 3b |p = bp-|>b_dotp;|
|00003a90| 0a 09 09 09 09 63 75 72 | 77 70 2d 3e 77 5f 64 6f |.....cur|wp->w_do|
|00003aa0| 74 6f 20 20 3d 20 62 70 | 2d 3e 62 5f 64 6f 74 6f |to = bp|->b_doto|
|00003ab0| 3b 0a 09 09 09 09 63 75 | 72 77 70 2d 3e 77 5f 6d |;.....cu|rwp->w_m|
|00003ac0| 61 72 6b 70 20 3d 20 62 | 70 2d 3e 62 5f 6d 61 72 |arkp = b|p->b_mar|
|00003ad0| 6b 70 3b 0a 09 09 09 09 | 63 75 72 77 70 2d 3e 77 |kp;.....|curwp->w|
|00003ae0| 5f 6d 61 72 6b 6f 20 3d | 20 62 70 2d 3e 62 5f 6d |_marko =| bp->b_m|
|00003af0| 61 72 6b 6f 3b 0a 09 09 | 09 7d 20 65 6c 73 65 20 |arko;...|.} else |
|00003b00| 7b 0a 09 09 09 09 77 70 | 20 3d 20 77 68 65 61 64 |{.....wp| = whead|
|00003b10| 70 3b 0a 09 09 09 09 77 | 68 69 6c 65 20 28 77 70 |p;.....w|hile (wp|
|00003b20| 20 21 3d 20 4e 55 4c 4c | 29 20 7b 0a 09 09 09 09 | != NULL|) {.....|
|00003b30| 09 69 66 20 28 77 70 21 | 3d 63 75 72 77 70 20 26 |.if (wp!|=curwp &|
|00003b40| 26 20 77 70 2d 3e 77 5f | 62 75 66 70 3d 3d 62 70 |& wp->w_|bufp==bp|
|00003b50| 29 20 7b 0a 09 09 09 09 | 09 09 63 75 72 77 70 2d |) {.....|..curwp-|
|00003b60| 3e 77 5f 64 6f 74 70 20 | 20 3d 20 77 70 2d 3e 77 |>w_dotp | = wp->w|
|00003b70| 5f 64 6f 74 70 3b 0a 09 | 09 09 09 09 09 63 75 72 |_dotp;..|.....cur|
|00003b80| 77 70 2d 3e 77 5f 64 6f | 74 6f 20 20 3d 20 77 70 |wp->w_do|to = wp|
|00003b90| 2d 3e 77 5f 64 6f 74 6f | 3b 0a 09 09 09 09 09 09 |->w_doto|;.......|
|00003ba0| 63 75 72 77 70 2d 3e 77 | 5f 6d 61 72 6b 70 20 3d |curwp->w|_markp =|
|00003bb0| 20 77 70 2d 3e 77 5f 6d | 61 72 6b 70 3b 0a 09 09 | wp->w_m|arkp;...|
|00003bc0| 09 09 09 09 63 75 72 77 | 70 2d 3e 77 5f 6d 61 72 |....curw|p->w_mar|
|00003bd0| 6b 6f 20 3d 20 77 70 2d | 3e 77 5f 6d 61 72 6b 6f |ko = wp-|>w_marko|
|00003be0| 3b 0a 09 09 09 09 09 09 | 62 72 65 61 6b 3b 0a 09 |;.......|break;..|
|00003bf0| 09 09 09 09 7d 0a 09 09 | 09 09 09 77 70 20 3d 20 |....}...|...wp = |
|00003c00| 77 70 2d 3e 77 5f 77 6e | 64 70 3b 0a 09 09 09 09 |wp->w_wn|dp;.....|
|00003c10| 7d 0a 09 09 09 7d 0a 09 | 09 09 6c 70 20 3d 20 63 |}....}..|..lp = c|
|00003c20| 75 72 77 70 2d 3e 77 5f | 64 6f 74 70 3b 0a 09 09 |urwp->w_|dotp;...|
|00003c30| 09 69 20 3d 20 63 75 72 | 77 70 2d 3e 77 5f 6e 74 |.i = cur|wp->w_nt|
|00003c40| 72 6f 77 73 2f 32 3b 0a | 09 09 09 77 68 69 6c 65 |rows/2;.|...while|
|00003c50| 20 28 69 2d 2d 20 26 26 | 20 6c 62 61 63 6b 28 6c | (i-- &&| lback(l|
|00003c60| 70 29 21 3d 63 75 72 62 | 70 2d 3e 62 5f 6c 69 6e |p)!=curb|p->b_lin|
|00003c70| 65 70 29 0a 09 09 09 09 | 6c 70 20 3d 20 6c 62 61 |ep).....|lp = lba|
|00003c80| 63 6b 28 6c 70 29 3b 0a | 09 09 09 63 75 72 77 70 |ck(lp);.|...curwp|
|00003c90| 2d 3e 77 5f 6c 69 6e 65 | 70 20 3d 20 6c 70 3b 0a |->w_line|p = lp;.|
|00003ca0| 09 09 09 63 75 72 77 70 | 2d 3e 77 5f 66 6c 61 67 |...curwp|->w_flag|
|00003cb0| 20 7c 3d 20 57 46 4d 4f | 44 45 7c 57 46 48 41 52 | |= WFMO|DE|WFHAR|
|00003cc0| 44 3b 0a 09 09 09 69 66 | 20 28 6b 62 64 6d 6f 70 |D;....if| (kbdmop|
|00003cd0| 20 3d 3d 20 4e 55 4c 4c | 29 0a 09 09 09 09 65 70 | == NULL|).....ep|
|00003ce0| 72 69 6e 74 66 28 22 5b | 4f 6c 64 20 62 75 66 66 |rintf("[|Old buff|
|00003cf0| 65 72 5d 22 29 3b 0a 09 | 09 09 72 65 74 75 72 6e |er]");..|..return|
|00003d00| 20 28 54 52 55 45 29 3b | 0a 09 09 7d 0a 09 7d 0a | (TRUE);|...}..}.|
|00003d10| 09 6d 61 6b 65 6e 61 6d | 65 28 62 6e 61 6d 65 2c |.makenam|e(bname,|
|00003d20| 20 66 6e 61 6d 65 29 3b | 09 09 09 2f 2a 20 4e 65 | fname);|.../* Ne|
|00003d30| 77 20 62 75 66 66 65 72 | 20 6e 61 6d 65 2e 09 2a |w buffer| name..*|
|00003d40| 2f 0a 09 77 68 69 6c 65 | 20 28 28 62 70 3d 62 66 |/..while| ((bp=bf|
|00003d50| 69 6e 64 28 62 6e 61 6d | 65 2c 20 46 41 4c 53 45 |ind(bnam|e, FALSE|
|00003d60| 29 29 20 21 3d 20 4e 55 | 4c 4c 29 20 7b 0a 09 09 |)) != NU|LL) {...|
|00003d70| 73 20 3d 20 65 72 65 70 | 6c 79 28 22 42 75 66 66 |s = erep|ly("Buff|
|00003d80| 65 72 20 6e 61 6d 65 3a | 20 22 2c 20 62 6e 61 6d |er name:| ", bnam|
|00003d90| 65 2c 20 4e 42 55 46 4e | 29 3b 0a 09 09 69 66 20 |e, NBUFN|);...if |
|00003da0| 28 73 20 3d 3d 20 41 42 | 4f 52 54 29 09 09 09 2f |(s == AB|ORT).../|
|00003db0| 2a 20 5e 47 20 74 6f 20 | 6a 75 73 74 20 71 75 69 |* ^G to |just qui|
|00003dc0| 74 09 2a 2f 0a 09 09 09 | 72 65 74 75 72 6e 20 28 |t.*/....|return (|
|00003dd0| 73 29 3b 0a 09 09 69 66 | 20 28 73 20 3d 3d 20 46 |s);...if| (s == F|
|00003de0| 41 4c 53 45 29 20 7b 09 | 09 2f 2a 20 43 52 20 74 |ALSE) {.|./* CR t|
|00003df0| 6f 20 63 6c 6f 62 62 65 | 72 20 69 74 09 2a 2f 0a |o clobbe|r it.*/.|
|00003e00| 09 09 09 6d 61 6b 65 6e | 61 6d 65 28 62 6e 61 6d |...maken|ame(bnam|
|00003e10| 65 2c 20 66 6e 61 6d 65 | 29 3b 0a 09 09 09 62 72 |e, fname|);....br|
|00003e20| 65 61 6b 3b 0a 09 09 7d | 0a 09 7d 0a 09 69 66 20 |eak;...}|..}..if |
|00003e30| 28 62 70 3d 3d 4e 55 4c | 4c 20 26 26 20 28 62 70 |(bp==NUL|L && (bp|
|00003e40| 3d 62 66 69 6e 64 28 62 | 6e 61 6d 65 2c 20 54 52 |=bfind(b|name, TR|
|00003e50| 55 45 29 29 3d 3d 4e 55 | 4c 4c 29 20 7b 0a 09 09 |UE))==NU|LL) {...|
|00003e60| 65 70 72 69 6e 74 66 28 | 22 43 61 6e 6e 6f 74 20 |eprintf(|"Cannot |
|00003e70| 63 72 65 61 74 65 20 62 | 75 66 66 65 72 22 29 3b |create b|uffer");|
|00003e80| 0a 09 09 72 65 74 75 72 | 6e 20 28 46 41 4c 53 45 |...retur|n (FALSE|
|00003e90| 29 3b 0a 09 7d 0a 09 69 | 66 20 28 2d 2d 63 75 72 |);..}..i|f (--cur|
|00003ea0| 62 70 2d 3e 62 5f 6e 77 | 6e 64 20 3d 3d 20 30 29 |bp->b_nw|nd == 0)|
|00003eb0| 20 7b 09 09 2f 2a 20 55 | 6e 64 69 73 70 6c 61 79 | {../* U|ndisplay|
|00003ec0| 2e 09 09 2a 2f 0a 09 09 | 63 75 72 62 70 2d 3e 62 |...*/...|curbp->b|
|00003ed0| 5f 64 6f 74 70 20 3d 20 | 63 75 72 77 70 2d 3e 77 |_dotp = |curwp->w|
|00003ee0| 5f 64 6f 74 70 3b 0a 09 | 09 63 75 72 62 70 2d 3e |_dotp;..|.curbp->|
|00003ef0| 62 5f 64 6f 74 6f 20 3d | 20 63 75 72 77 70 2d 3e |b_doto =| curwp->|
|00003f00| 77 5f 64 6f 74 6f 3b 0a | 09 09 63 75 72 62 70 2d |w_doto;.|..curbp-|
|00003f10| 3e 62 5f 6d 61 72 6b 70 | 20 3d 20 63 75 72 77 70 |>b_markp| = curwp|
|00003f20| 2d 3e 77 5f 6d 61 72 6b | 70 3b 0a 09 09 63 75 72 |->w_mark|p;...cur|
|00003f30| 62 70 2d 3e 62 5f 6d 61 | 72 6b 6f 20 3d 20 63 75 |bp->b_ma|rko = cu|
|00003f40| 72 77 70 2d 3e 77 5f 6d | 61 72 6b 6f 3b 0a 09 7d |rwp->w_m|arko;..}|
|00003f50| 0a 09 63 75 72 62 70 20 | 3d 20 62 70 3b 09 09 09 |..curbp |= bp;...|
|00003f60| 09 2f 2a 20 53 77 69 74 | 63 68 20 74 6f 20 69 74 |./* Swit|ch to it|
|00003f70| 2e 09 2a 2f 0a 09 63 75 | 72 77 70 2d 3e 77 5f 62 |..*/..cu|rwp->w_b|
|00003f80| 75 66 70 20 3d 20 62 70 | 3b 0a 09 63 75 72 62 70 |ufp = bp|;..curbp|
|00003f90| 2d 3e 62 5f 6e 77 6e 64 | 2b 2b 3b 0a 09 72 65 74 |->b_nwnd|++;..ret|
|00003fa0| 75 72 6e 20 28 72 65 61 | 64 69 6e 28 66 6e 61 6d |urn (rea|din(fnam|
|00003fb0| 65 29 29 3b 09 09 09 2f | 2a 20 52 65 61 64 20 69 |e));.../|* Read i|
|00003fc0| 74 20 69 6e 2e 09 09 2a | 2f 0a 7d 0a 0a 2f 2a 0a |t in...*|/.}../*.|
|00003fd0| 20 2a 20 52 65 61 64 20 | 74 68 65 20 66 69 6c 65 | * Read |the file|
|00003fe0| 20 22 66 6e 61 6d 65 22 | 20 69 6e 74 6f 20 74 68 | "fname"| into th|
|00003ff0| 65 20 63 75 72 72 65 6e | 74 20 62 75 66 66 65 72 |e curren|t buffer|
|00004000| 2e 0a 20 2a 20 4d 61 6b | 65 20 61 6c 6c 20 6f 66 |.. * Mak|e all of|
|00004010| 20 74 68 65 20 74 65 78 | 74 20 69 6e 20 74 68 65 | the tex|t in the|
|00004020| 20 62 75 66 66 65 72 20 | 67 6f 20 61 77 61 79 2c | buffer |go away,|
|00004030| 20 61 66 74 65 72 20 63 | 68 65 63 6b 69 6e 67 0a | after c|hecking.|
|00004040| 20 2a 20 66 6f 72 20 75 | 6e 73 61 76 65 64 20 63 | * for u|nsaved c|
|00004050| 68 61 6e 67 65 73 2e 20 | 54 68 69 73 20 69 73 20 |hanges. |This is |
|00004060| 63 61 6c 6c 65 64 20 62 | 79 20 74 68 65 20 22 72 |called b|y the "r|
|00004070| 65 61 64 22 20 63 6f 6d | 6d 61 6e 64 2c 20 74 68 |ead" com|mand, th|
|00004080| 65 0a 20 2a 20 22 76 69 | 73 69 74 22 20 63 6f 6d |e. * "vi|sit" com|
|00004090| 6d 61 6e 64 2c 20 61 6e | 64 20 74 68 65 20 6d 61 |mand, an|d the ma|
|000040a0| 69 6e 6c 69 6e 65 20 28 | 66 6f 72 20 22 75 65 6d |inline (|for "uem|
|000040b0| 61 63 73 20 66 69 6c 65 | 22 29 2e 20 49 66 20 74 |acs file|"). If t|
|000040c0| 68 65 0a 20 2a 20 42 41 | 43 4b 55 50 20 63 6f 6e |he. * BA|CKUP con|
|000040d0| 64 69 74 69 6f 6e 61 6c | 20 69 73 20 73 65 74 2c |ditional| is set,|
|000040e0| 20 74 68 65 6e 20 74 68 | 69 73 20 72 6f 75 74 69 | then th|is routi|
|000040f0| 6e 65 20 61 6c 73 6f 20 | 64 6f 65 73 20 74 68 65 |ne also |does the|
|00004100| 20 72 65 61 64 0a 20 2a | 20 65 6e 64 20 6f 66 20 | read. *| end of |
|00004110| 62 61 63 6b 75 70 20 70 | 72 6f 63 65 73 73 69 6e |backup p|rocessin|
|00004120| 67 2e 20 54 68 65 20 42 | 46 42 41 4b 20 66 6c 61 |g. The B|FBAK fla|
|00004130| 67 2c 20 69 66 20 73 65 | 74 20 69 6e 20 61 20 62 |g, if se|t in a b|
|00004140| 75 66 66 65 72 2c 0a 20 | 2a 20 73 61 79 73 20 74 |uffer,. |* says t|
|00004150| 68 61 74 20 61 20 62 61 | 63 6b 75 70 20 73 68 6f |hat a ba|ckup sho|
|00004160| 75 6c 64 20 62 65 20 74 | 61 6b 65 6e 2e 20 49 74 |uld be t|aken. It|
|00004170| 20 69 73 20 73 65 74 20 | 77 68 65 6e 20 61 20 66 | is set |when a f|
|00004180| 69 6c 65 20 69 73 0a 20 | 2a 20 72 65 61 64 20 69 |ile is. |* read i|
|00004190| 6e 2c 20 62 75 74 20 6e | 6f 74 20 6f 6e 20 61 20 |n, but n|ot on a |
|000041a0| 6e 65 77 20 66 69 6c 65 | 20 28 79 6f 75 20 64 6f |new file| (you do|
|000041b0| 6e 27 74 20 6e 65 65 64 | 20 74 6f 20 6d 61 6b 65 |n't need| to make|
|000041c0| 20 61 20 62 61 63 6b 75 | 70 0a 20 2a 20 63 6f 70 | a backu|p. * cop|
|000041d0| 79 20 6f 66 20 6e 6f 74 | 68 69 6e 67 29 2e 20 52 |y of not|hing). R|
|000041e0| 65 74 75 72 6e 20 61 20 | 73 74 61 6e 64 61 72 64 |eturn a |standard|
|000041f0| 20 73 74 61 74 75 73 2e | 20 50 72 69 6e 74 20 61 | status.| Print a|
|00004200| 20 73 75 6d 6d 61 72 79 | 0a 20 2a 20 28 6c 69 6e | summary|. * (lin|
|00004210| 65 73 20 72 65 61 64 2c | 20 65 72 72 6f 72 20 6d |es read,| error m|
|00004220| 65 73 73 61 67 65 29 20 | 6f 75 74 20 61 73 20 77 |essage) |out as w|
|00004230| 65 6c 6c 2e 0a 20 2a 2f | 0a 72 65 61 64 69 6e 28 |ell.. */|.readin(|
|00004240| 66 6e 61 6d 65 29 0a 63 | 68 61 72 09 66 6e 61 6d |fname).c|har.fnam|
|00004250| 65 5b 5d 3b 0a 7b 0a 09 | 72 65 67 69 73 74 65 72 |e[];.{..|register|
|00004260| 20 4c 49 4e 45 09 2a 6c | 70 31 3b 0a 09 72 65 67 | LINE.*l|p1;..reg|
|00004270| 69 73 74 65 72 20 4c 49 | 4e 45 09 2a 6c 70 32 3b |ister LI|NE.*lp2;|
|00004280| 0a 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 09 69 |..regist|er int.i|
|00004290| 3b 0a 09 72 65 67 69 73 | 74 65 72 20 57 49 4e 44 |;..regis|ter WIND|
|000042a0| 4f 57 09 2a 77 70 3b 0a | 09 72 65 67 69 73 74 65 |OW.*wp;.|.registe|
|000042b0| 72 20 42 55 46 46 45 52 | 09 2a 62 70 3b 0a 09 72 |r BUFFER|.*bp;..r|
|000042c0| 65 67 69 73 74 65 72 20 | 69 6e 74 09 73 3b 0a 09 |egister |int.s;..|
|000042d0| 72 65 67 69 73 74 65 72 | 20 69 6e 74 09 6e 62 79 |register| int.nby|
|000042e0| 74 65 73 3b 0a 09 72 65 | 67 69 73 74 65 72 20 69 |tes;..re|gister i|
|000042f0| 6e 74 09 6e 6c 69 6e 65 | 3b 0a 09 63 68 61 72 09 |nt.nline|;..char.|
|00004300| 09 6c 69 6e 65 5b 4e 4c | 49 4e 45 5d 3b 0a 0a 09 |.line[NL|INE];...|
|00004310| 62 70 20 3d 20 63 75 72 | 62 70 3b 09 09 09 09 2f |bp = cur|bp;..../|
|00004320| 2a 20 43 68 65 61 70 2e | 09 09 2a 2f 0a 09 69 66 |* Cheap.|..*/..if|
|00004330| 20 28 28 73 3d 62 63 6c | 65 61 72 28 62 70 29 29 | ((s=bcl|ear(bp))|
|00004340| 20 21 3d 20 54 52 55 45 | 29 09 09 2f 2a 20 4d 69 | != TRUE|)../* Mi|
|00004350| 67 68 74 20 62 65 20 6f | 6c 64 2e 09 2a 2f 0a 09 |ght be o|ld..*/..|
|00004360| 09 72 65 74 75 72 6e 20 | 28 73 29 3b 0a 23 69 66 |.return |(s);.#if|
|00004370| 09 42 41 43 4b 55 50 0a | 09 62 70 2d 3e 62 5f 66 |.BACKUP.|.bp->b_f|
|00004380| 6c 61 67 20 26 3d 20 7e | 28 42 46 43 48 47 7c 42 |lag &= ~|(BFCHG|B|
|00004390| 46 42 41 4b 29 3b 09 09 | 2f 2a 20 4e 6f 20 63 68 |FBAK);..|/* No ch|
|000043a0| 61 6e 67 65 2c 20 62 61 | 63 6b 75 70 2e 09 2a 2f |ange, ba|ckup..*/|
|000043b0| 0a 23 65 6c 73 65 0a 09 | 62 70 2d 3e 62 5f 66 6c |.#else..|bp->b_fl|
|000043c0| 61 67 20 26 3d 20 7e 42 | 46 43 48 47 3b 09 09 09 |ag &= ~B|FCHG;...|
|000043d0| 2f 2a 20 4e 6f 20 63 68 | 61 6e 67 65 2e 09 09 2a |/* No ch|ange...*|
|000043e0| 2f 0a 23 65 6e 64 69 66 | 0a 09 73 74 72 63 70 79 |/.#endif|..strcpy|
|000043f0| 28 62 70 2d 3e 62 5f 66 | 6e 61 6d 65 2c 20 66 6e |(bp->b_f|name, fn|
|00004400| 61 6d 65 29 3b 0a 09 69 | 66 20 28 28 73 3d 66 66 |ame);..i|f ((s=ff|
|00004410| 72 6f 70 65 6e 28 66 6e | 61 6d 65 29 29 20 3d 3d |ropen(fn|ame)) ==|
|00004420| 20 46 49 4f 45 52 52 29 | 20 09 2f 2a 20 48 61 72 | FIOERR)| ./* Har|
|00004430| 64 20 66 69 6c 65 20 6f | 70 65 6e 2e 09 2a 2f 0a |d file o|pen..*/.|
|00004440| 09 09 67 6f 74 6f 20 6f | 75 74 3b 0a 09 69 66 20 |..goto o|ut;..if |
|00004450| 28 73 20 3d 3d 20 46 49 | 4f 46 4e 46 29 20 7b 09 |(s == FI|OFNF) {.|
|00004460| 09 09 2f 2a 20 46 69 6c | 65 20 6e 6f 74 20 66 6f |../* Fil|e not fo|
|00004470| 75 6e 64 2e 09 2a 2f 0a | 09 09 69 66 20 28 6b 62 |und..*/.|..if (kb|
|00004480| 64 6d 6f 70 20 3d 3d 20 | 4e 55 4c 4c 29 0a 09 09 |dmop == |NULL)...|
|00004490| 09 65 70 72 69 6e 74 66 | 28 22 5b 4e 65 77 20 66 |.eprintf|("[New f|
|000044a0| 69 6c 65 5d 22 29 3b 0a | 09 09 67 6f 74 6f 20 6f |ile]");.|..goto o|
|000044b0| 75 74 3b 0a 09 7d 0a 09 | 6e 6c 69 6e 65 20 3d 20 |ut;..}..|nline = |
|000044c0| 30 3b 0a 09 77 68 69 6c | 65 20 28 28 73 3d 66 66 |0;..whil|e ((s=ff|
|000044d0| 67 65 74 6c 69 6e 65 28 | 6c 69 6e 65 2c 20 4e 4c |getline(|line, NL|
|000044e0| 49 4e 45 29 29 20 3d 3d | 20 46 49 4f 53 55 43 29 |INE)) ==| FIOSUC)|
|000044f0| 20 7b 0a 09 09 6e 62 79 | 74 65 73 20 3d 20 73 74 | {...nby|tes = st|
|00004500| 72 6c 65 6e 28 6c 69 6e | 65 29 3b 0a 09 09 69 66 |rlen(lin|e);...if|
|00004510| 20 28 28 6c 70 31 3d 6c | 61 6c 6c 6f 63 28 6e 62 | ((lp1=l|alloc(nb|
|00004520| 79 74 65 73 29 29 20 3d | 3d 20 4e 55 4c 4c 29 20 |ytes)) =|= NULL) |
|00004530| 7b 0a 09 09 09 73 20 3d | 20 46 49 4f 45 52 52 3b |{....s =| FIOERR;|
|00004540| 09 09 2f 2a 20 4b 65 65 | 70 20 6d 65 73 73 61 67 |../* Kee|p messag|
|00004550| 65 20 6f 6e 20 74 68 65 | 09 2a 2f 0a 09 09 09 62 |e on the|.*/....b|
|00004560| 72 65 61 6b 3b 09 09 09 | 2f 2a 20 64 69 73 70 6c |reak;...|/* displ|
|00004570| 61 79 2e 09 09 2a 2f 0a | 09 09 7d 0a 09 09 6c 70 |ay...*/.|..}...lp|
|00004580| 32 20 3d 20 6c 62 61 63 | 6b 28 63 75 72 62 70 2d |2 = lbac|k(curbp-|
|00004590| 3e 62 5f 6c 69 6e 65 70 | 29 3b 0a 09 09 6c 70 32 |>b_linep|);...lp2|
|000045a0| 2d 3e 6c 5f 66 70 20 3d | 20 6c 70 31 3b 0a 09 09 |->l_fp =| lp1;...|
|000045b0| 6c 70 31 2d 3e 6c 5f 66 | 70 20 3d 20 63 75 72 62 |lp1->l_f|p = curb|
|000045c0| 70 2d 3e 62 5f 6c 69 6e | 65 70 3b 0a 09 09 6c 70 |p->b_lin|ep;...lp|
|000045d0| 31 2d 3e 6c 5f 62 70 20 | 3d 20 6c 70 32 3b 0a 09 |1->l_bp |= lp2;..|
|000045e0| 09 63 75 72 62 70 2d 3e | 62 5f 6c 69 6e 65 70 2d |.curbp->|b_linep-|
|000045f0| 3e 6c 5f 62 70 20 3d 20 | 6c 70 31 3b 0a 09 09 66 |>l_bp = |lp1;...f|
|00004600| 6f 72 20 28 69 3d 30 3b | 20 69 3c 6e 62 79 74 65 |or (i=0;| i<nbyte|
|00004610| 73 3b 20 2b 2b 69 29 0a | 09 09 09 6c 70 75 74 63 |s; ++i).|...lputc|
|00004620| 28 6c 70 31 2c 20 69 2c | 20 6c 69 6e 65 5b 69 5d |(lp1, i,| line[i]|
|00004630| 29 3b 0a 09 09 2b 2b 6e | 6c 69 6e 65 3b 0a 09 7d |);...++n|line;..}|
|00004640| 0a 09 66 66 63 6c 6f 73 | 65 28 29 3b 09 09 09 09 |..ffclos|e();....|
|00004650| 2f 2a 20 49 67 6e 6f 72 | 65 20 65 72 72 6f 72 73 |/* Ignor|e errors|
|00004660| 2e 09 2a 2f 0a 09 69 66 | 20 28 73 3d 3d 46 49 4f |..*/..if| (s==FIO|
|00004670| 45 4f 46 20 26 26 20 6b | 62 64 6d 6f 70 3d 3d 4e |EOF && k|bdmop==N|
|00004680| 55 4c 4c 29 20 7b 09 2f | 2a 20 44 6f 6e 27 74 20 |ULL) {./|* Don't |
|00004690| 7a 61 70 20 61 6e 20 65 | 72 72 6f 72 2e 09 2a 2f |zap an e|rror..*/|
|000046a0| 0a 09 09 69 66 20 28 6e | 6c 69 6e 65 20 3d 3d 20 |...if (n|line == |
|000046b0| 31 29 0a 09 09 09 65 70 | 72 69 6e 74 66 28 22 5b |1)....ep|rintf("[|
|000046c0| 52 65 61 64 20 31 20 6c | 69 6e 65 5d 22 29 3b 0a |Read 1 l|ine]");.|
|000046d0| 09 09 65 6c 73 65 0a 09 | 09 09 65 70 72 69 6e 74 |..else..|..eprint|
|000046e0| 66 28 22 5b 52 65 61 64 | 20 25 64 20 6c 69 6e 65 |f("[Read| %d line|
|000046f0| 73 5d 22 2c 20 6e 6c 69 | 6e 65 29 3b 0a 09 7d 0a |s]", nli|ne);..}.|
|00004700| 23 69 66 09 42 41 43 4b | 55 50 0a 09 63 75 72 62 |#if.BACK|UP..curb|
|00004710| 70 2d 3e 62 5f 66 6c 61 | 67 20 7c 3d 20 42 46 42 |p->b_fla|g |= BFB|
|00004720| 41 4b 3b 09 09 09 2f 2a | 20 4e 65 65 64 20 61 20 |AK;.../*| Need a |
|00004730| 62 61 63 6b 75 70 2e 09 | 2a 2f 0a 23 65 6e 64 69 |backup..|*/.#endi|
|00004740| 66 0a 6f 75 74 3a 0a 09 | 66 6f 72 20 28 77 70 3d |f.out:..|for (wp=|
|00004750| 77 68 65 61 64 70 3b 20 | 77 70 21 3d 4e 55 4c 4c |wheadp; |wp!=NULL|
|00004760| 3b 20 77 70 3d 77 70 2d | 3e 77 5f 77 6e 64 70 29 |; wp=wp-|>w_wndp)|
|00004770| 20 7b 0a 09 09 69 66 20 | 28 77 70 2d 3e 77 5f 62 | {...if |(wp->w_b|
|00004780| 75 66 70 20 3d 3d 20 63 | 75 72 62 70 29 20 7b 0a |ufp == c|urbp) {.|
|00004790| 09 09 09 77 70 2d 3e 77 | 5f 6c 69 6e 65 70 20 3d |...wp->w|_linep =|
|000047a0| 20 6c 66 6f 72 77 28 63 | 75 72 62 70 2d 3e 62 5f | lforw(c|urbp->b_|
|000047b0| 6c 69 6e 65 70 29 3b 0a | 09 09 09 77 70 2d 3e 77 |linep);.|...wp->w|
|000047c0| 5f 64 6f 74 70 20 20 3d | 20 6c 66 6f 72 77 28 63 |_dotp =| lforw(c|
|000047d0| 75 72 62 70 2d 3e 62 5f | 6c 69 6e 65 70 29 3b 0a |urbp->b_|linep);.|
|000047e0| 09 09 09 77 70 2d 3e 77 | 5f 64 6f 74 6f 20 20 3d |...wp->w|_doto =|
|000047f0| 20 30 3b 0a 09 09 09 77 | 70 2d 3e 77 5f 6d 61 72 | 0;....w|p->w_mar|
|00004800| 6b 70 20 3d 20 4e 55 4c | 4c 3b 0a 09 09 09 77 70 |kp = NUL|L;....wp|
|00004810| 2d 3e 77 5f 6d 61 72 6b | 6f 20 3d 20 30 3b 0a 09 |->w_mark|o = 0;..|
|00004820| 09 09 77 70 2d 3e 77 5f | 66 6c 61 67 20 7c 3d 20 |..wp->w_|flag |= |
|00004830| 57 46 4d 4f 44 45 7c 57 | 46 48 41 52 44 3b 0a 09 |WFMODE|W|FHARD;..|
|00004840| 09 7d 0a 09 7d 0a 09 69 | 66 20 28 73 20 3d 3d 20 |.}..}..i|f (s == |
|00004850| 46 49 4f 45 52 52 29 09 | 09 09 2f 2a 20 46 61 6c |FIOERR).|../* Fal|
|00004860| 73 65 20 69 66 20 65 72 | 72 6f 72 2e 09 2a 2f 0a |se if er|ror..*/.|
|00004870| 09 09 72 65 74 75 72 6e | 20 28 46 41 4c 53 45 29 |..return| (FALSE)|
|00004880| 3b 0a 09 72 65 74 75 72 | 6e 20 28 54 52 55 45 29 |;..retur|n (TRUE)|
|00004890| 3b 0a 7d 0a 0a 2f 2a 0a | 20 2a 20 54 61 6b 65 20 |;.}../*.| * Take |
|000048a0| 61 20 66 69 6c 65 20 6e | 61 6d 65 2c 20 61 6e 64 |a file n|ame, and|
|000048b0| 20 66 72 6f 6d 20 69 74 | 0a 20 2a 20 66 61 62 72 | from it|. * fabr|
|000048c0| 69 63 61 74 65 20 61 20 | 62 75 66 66 65 72 20 6e |icate a |buffer n|
|000048d0| 61 6d 65 2e 20 54 68 69 | 73 20 72 6f 75 74 69 6e |ame. Thi|s routin|
|000048e0| 65 20 6b 6e 6f 77 73 0a | 20 2a 20 61 62 6f 75 74 |e knows.| * about|
|000048f0| 20 74 68 65 20 73 79 6e | 74 61 78 20 6f 66 20 66 | the syn|tax of f|
|00004900| 69 6c 65 20 6e 61 6d 65 | 73 20 6f 6e 20 74 68 65 |ile name|s on the|
|00004910| 20 74 61 72 67 65 74 20 | 73 79 73 74 65 6d 2e 0a | target |system..|
|00004920| 20 2a 20 42 44 43 31 09 | 09 6c 65 66 74 20 73 63 | * BDC1.|.left sc|
|00004930| 61 6e 20 64 65 6c 69 6d | 69 74 65 72 2e 0a 20 2a |an delim|iter.. *|
|00004940| 20 42 44 43 32 09 09 6f | 70 74 69 6f 6e 61 6c 20 | BDC2..o|ptional |
|00004950| 73 65 63 6f 6e 64 20 6c | 65 66 74 20 73 63 61 6e |second l|eft scan|
|00004960| 20 64 65 6c 69 6d 69 74 | 65 72 2e 0a 20 2a 20 42 | delimit|er.. * B|
|00004970| 44 43 33 09 09 6f 70 74 | 69 6f 6e 61 6c 20 72 69 |DC3..opt|ional ri|
|00004980| 67 68 74 20 73 63 61 6e | 20 64 65 6c 69 6d 69 74 |ght scan| delimit|
|00004990| 65 72 2e 0a 20 2a 2f 0a | 6d 61 6b 65 6e 61 6d 65 |er.. */.|makename|
|000049a0| 28 62 6e 61 6d 65 2c 20 | 66 6e 61 6d 65 29 0a 63 |(bname, |fname).c|
|000049b0| 68 61 72 09 62 6e 61 6d | 65 5b 5d 3b 0a 63 68 61 |har.bnam|e[];.cha|
|000049c0| 72 09 66 6e 61 6d 65 5b | 5d 3b 0a 7b 0a 09 72 65 |r.fname[|];.{..re|
|000049d0| 67 69 73 74 65 72 20 63 | 68 61 72 09 2a 63 70 31 |gister c|har.*cp1|
|000049e0| 3b 0a 09 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |;..regis|ter char|
|000049f0| 09 2a 63 70 32 3b 0a 0a | 09 63 70 31 20 3d 20 26 |.*cp2;..|.cp1 = &|
|00004a00| 66 6e 61 6d 65 5b 30 5d | 3b 0a 09 77 68 69 6c 65 |fname[0]|;..while|
|00004a10| 20 28 2a 63 70 31 20 21 | 3d 20 30 29 0a 09 09 2b | (*cp1 !|= 0)...+|
|00004a20| 2b 63 70 31 3b 0a 23 69 | 66 64 65 66 09 42 44 43 |+cp1;.#i|fdef.BDC|
|00004a30| 32 0a 09 77 68 69 6c 65 | 20 28 63 70 31 21 3d 26 |2..while| (cp1!=&|
|00004a40| 66 6e 61 6d 65 5b 30 5d | 20 26 26 20 63 70 31 5b |fname[0]| && cp1[|
|00004a50| 2d 31 5d 21 3d 42 44 43 | 31 20 26 26 20 63 70 31 |-1]!=BDC|1 && cp1|
|00004a60| 5b 2d 31 5d 21 3d 42 44 | 43 32 29 0a 09 09 2d 2d |[-1]!=BD|C2)...--|
|00004a70| 63 70 31 3b 0a 23 65 6c | 73 65 0a 09 77 68 69 6c |cp1;.#el|se..whil|
|00004a80| 65 20 28 63 70 31 21 3d | 26 66 6e 61 6d 65 5b 30 |e (cp1!=|&fname[0|
|00004a90| 5d 20 26 26 20 63 70 31 | 5b 2d 31 5d 21 3d 42 44 |] && cp1|[-1]!=BD|
|00004aa0| 43 31 29 0a 09 09 2d 2d | 63 70 31 3b 0a 23 65 6e |C1)...--|cp1;.#en|
|00004ab0| 64 69 66 0a 09 63 70 32 | 20 3d 20 26 62 6e 61 6d |dif..cp2| = &bnam|
|00004ac0| 65 5b 30 5d 3b 0a 23 69 | 66 64 65 66 09 42 44 43 |e[0];.#i|fdef.BDC|
|00004ad0| 33 0a 09 77 68 69 6c 65 | 20 28 63 70 32 21 3d 26 |3..while| (cp2!=&|
|00004ae0| 62 6e 61 6d 65 5b 4e 42 | 55 46 4e 2d 31 5d 20 26 |bname[NB|UFN-1] &|
|00004af0| 26 20 2a 63 70 31 21 3d | 30 20 26 26 20 2a 63 70 |& *cp1!=|0 && *cp|
|00004b00| 31 21 3d 42 44 43 33 29 | 0a 09 09 2a 63 70 32 2b |1!=BDC3)|...*cp2+|
|00004b10| 2b 20 3d 20 2a 63 70 31 | 2b 2b 3b 0a 23 65 6c 73 |+ = *cp1|++;.#els|
|00004b20| 65 0a 09 77 68 69 6c 65 | 20 28 63 70 32 21 3d 26 |e..while| (cp2!=&|
|00004b30| 62 6e 61 6d 65 5b 4e 42 | 55 46 4e 2d 31 5d 20 26 |bname[NB|UFN-1] &|
|00004b40| 26 20 2a 63 70 31 21 3d | 30 29 0a 09 09 2a 63 70 |& *cp1!=|0)...*cp|
|00004b50| 32 2b 2b 20 3d 20 2a 63 | 70 31 2b 2b 3b 0a 23 65 |2++ = *c|p1++;.#e|
|00004b60| 6e 64 69 66 0a 09 2a 63 | 70 32 20 3d 20 30 3b 0a |ndif..*c|p2 = 0;.|
|00004b70| 7d 0a 0a 2f 2a 0a 20 2a | 20 41 73 6b 20 66 6f 72 |}../*. *| Ask for|
|00004b80| 20 61 20 66 69 6c 65 20 | 6e 61 6d 65 2c 20 61 6e | a file |name, an|
|00004b90| 64 20 77 72 69 74 65 20 | 74 68 65 0a 20 2a 20 63 |d write |the. * c|
|00004ba0| 6f 6e 74 65 6e 74 73 20 | 6f 66 20 74 68 65 20 63 |ontents |of the c|
|00004bb0| 75 72 72 65 6e 74 20 62 | 75 66 66 65 72 20 74 6f |urrent b|uffer to|
|00004bc0| 20 74 68 61 74 20 66 69 | 6c 65 2e 0a 20 2a 20 55 | that fi|le.. * U|
|00004bd0| 70 64 61 74 65 20 74 68 | 65 20 72 65 6d 65 6d 62 |pdate th|e rememb|
|00004be0| 65 72 65 64 20 66 69 6c | 65 20 6e 61 6d 65 20 61 |ered fil|e name a|
|00004bf0| 6e 64 20 63 6c 65 61 72 | 20 74 68 65 0a 20 2a 20 |nd clear| the. * |
|00004c00| 62 75 66 66 65 72 20 63 | 68 61 6e 67 65 64 20 66 |buffer c|hanged f|
|00004c10| 6c 61 67 2e 20 54 68 69 | 73 20 68 61 6e 64 6c 69 |lag. Thi|s handli|
|00004c20| 6e 67 20 6f 66 20 66 69 | 6c 65 20 6e 61 6d 65 73 |ng of fi|le names|
|00004c30| 0a 20 2a 20 69 73 20 64 | 69 66 66 65 72 65 6e 74 |. * is d|ifferent|
|00004c40| 20 66 72 6f 6d 20 74 68 | 65 20 65 61 72 6c 69 65 | from th|e earlie|
|00004c50| 72 20 76 65 72 73 69 6f | 6e 73 2c 20 61 6e 64 0a |r versio|ns, and.|
|00004c60| 20 2a 20 69 73 20 6d 6f | 72 65 20 63 6f 6d 70 61 | * is mo|re compa|
|00004c70| 74 61 62 6c 65 20 77 69 | 74 68 20 47 6f 73 6c 69 |table wi|th Gosli|
|00004c80| 6e 67 20 45 4d 41 43 53 | 20 74 68 61 6e 0a 20 2a |ng EMACS| than. *|
|00004c90| 20 77 69 74 68 20 49 54 | 53 20 45 4d 41 43 53 2e | with IT|S EMACS.|
|00004ca0| 0a 20 2a 2f 0a 66 69 6c | 65 77 72 69 74 65 28 66 |. */.fil|ewrite(f|
|00004cb0| 2c 20 6e 2c 20 6b 29 0a | 7b 0a 09 72 65 67 69 73 |, n, k).|{..regis|
|00004cc0| 74 65 72 20 57 49 4e 44 | 4f 57 09 2a 77 70 3b 0a |ter WIND|OW.*wp;.|
|00004cd0| 09 72 65 67 69 73 74 65 | 72 20 69 6e 74 09 73 3b |.registe|r int.s;|
|00004ce0| 0a 09 63 68 61 72 09 09 | 66 6e 61 6d 65 5b 4e 46 |..char..|fname[NF|
|00004cf0| 49 4c 45 4e 5d 3b 0a 0a | 09 69 66 20 28 28 73 3d |ILEN];..|.if ((s=|
|00004d00| 65 72 65 70 6c 79 28 22 | 57 72 69 74 65 20 66 69 |ereply("|Write fi|
|00004d10| 6c 65 3a 20 22 2c 20 66 | 6e 61 6d 65 2c 20 4e 46 |le: ", f|name, NF|
|00004d20| 49 4c 45 4e 29 29 20 21 | 3d 20 54 52 55 45 29 0a |ILEN)) !|= TRUE).|
|00004d30| 09 09 72 65 74 75 72 6e | 20 28 73 29 3b 0a 09 61 |..return| (s);..a|
|00004d40| 64 6a 75 73 74 63 61 73 | 65 28 66 6e 61 6d 65 29 |djustcas|e(fname)|
|00004d50| 3b 0a 09 69 66 20 28 28 | 73 3d 77 72 69 74 65 6f |;..if ((|s=writeo|
|00004d60| 75 74 28 66 6e 61 6d 65 | 29 29 20 3d 3d 20 54 52 |ut(fname|)) == TR|
|00004d70| 55 45 29 20 7b 0a 09 09 | 73 74 72 63 70 79 28 63 |UE) {...|strcpy(c|
|00004d80| 75 72 62 70 2d 3e 62 5f | 66 6e 61 6d 65 2c 20 66 |urbp->b_|fname, f|
|00004d90| 6e 61 6d 65 29 3b 0a 09 | 09 63 75 72 62 70 2d 3e |name);..|.curbp->|
|00004da0| 62 5f 66 6c 61 67 20 26 | 3d 20 7e 42 46 43 48 47 |b_flag &|= ~BFCHG|
|00004db0| 3b 0a 09 09 77 70 20 3d | 20 77 68 65 61 64 70 3b |;...wp =| wheadp;|
|00004dc0| 09 09 09 2f 2a 20 55 70 | 64 61 74 65 20 6d 6f 64 |.../* Up|date mod|
|00004dd0| 65 20 6c 69 6e 65 73 2e | 09 2a 2f 0a 09 09 77 68 |e lines.|.*/...wh|
|00004de0| 69 6c 65 20 28 77 70 20 | 21 3d 20 4e 55 4c 4c 29 |ile (wp |!= NULL)|
|00004df0| 20 7b 0a 09 09 09 69 66 | 20 28 77 70 2d 3e 77 5f | {....if| (wp->w_|
|00004e00| 62 75 66 70 20 3d 3d 20 | 63 75 72 62 70 29 0a 09 |bufp == |curbp)..|
|00004e10| 09 09 09 77 70 2d 3e 77 | 5f 66 6c 61 67 20 7c 3d |...wp->w|_flag |=|
|00004e20| 20 57 46 4d 4f 44 45 3b | 0a 09 09 09 77 70 20 3d | WFMODE;|....wp =|
|00004e30| 20 77 70 2d 3e 77 5f 77 | 6e 64 70 3b 0a 09 09 7d | wp->w_w|ndp;...}|
|00004e40| 0a 09 7d 0a 23 69 66 09 | 42 41 43 4b 55 50 0a 09 |..}.#if.|BACKUP..|
|00004e50| 63 75 72 62 70 2d 3e 62 | 5f 66 6c 61 67 20 26 3d |curbp->b|_flag &=|
|00004e60| 20 7e 42 46 42 41 4b 3b | 09 09 2f 2a 20 4e 6f 20 | ~BFBAK;|../* No |
|00004e70| 62 61 63 6b 75 70 2e 09 | 09 2a 2f 0a 23 65 6e 64 |backup..|.*/.#end|
|00004e80| 69 66 0a 09 72 65 74 75 | 72 6e 20 28 73 29 3b 0a |if..retu|rn (s);.|
|00004e90| 7d 0a 0a 2f 2a 0a 20 2a | 20 53 61 76 65 20 74 68 |}../*. *| Save th|
|00004ea0| 65 20 63 6f 6e 74 65 6e | 74 73 20 6f 66 20 74 68 |e conten|ts of th|
|00004eb0| 65 20 63 75 72 72 65 6e | 74 20 62 75 66 66 65 72 |e curren|t buffer|
|00004ec0| 20 62 61 63 6b 20 69 6e | 74 6f 0a 20 2a 20 69 74 | back in|to. * it|
|00004ed0| 73 20 61 73 73 6f 63 69 | 61 74 65 64 20 66 69 6c |s associ|ated fil|
|00004ee0| 65 2e 20 44 6f 20 6e 6f | 74 68 69 6e 67 20 69 66 |e. Do no|thing if|
|00004ef0| 20 74 68 65 72 65 20 68 | 61 76 65 20 62 65 65 6e | there h|ave been|
|00004f00| 20 6e 6f 20 63 68 61 6e | 67 65 73 0a 20 2a 20 28 | no chan|ges. * (|
|00004f10| 69 73 20 74 68 69 73 20 | 61 20 62 75 67 2c 20 6f |is this |a bug, o|
|00004f20| 72 20 61 20 66 65 61 74 | 75 72 65 29 2e 20 45 72 |r a feat|ure). Er|
|00004f30| 72 6f 72 20 69 66 20 74 | 68 65 72 65 20 69 73 20 |ror if t|here is |
|00004f40| 6e 6f 20 72 65 6d 65 6d | 62 65 72 65 64 0a 20 2a |no remem|bered. *|
|00004f50| 20 66 69 6c 65 20 6e 61 | 6d 65 2e 20 49 66 20 74 | file na|me. If t|
|00004f60| 68 69 73 20 69 73 20 74 | 68 65 20 66 69 72 73 74 |his is t|he first|
|00004f70| 20 77 72 69 74 65 20 73 | 69 6e 63 65 20 74 68 65 | write s|ince the|
|00004f80| 20 72 65 61 64 20 6f 72 | 20 76 69 73 69 74 2c 0a | read or| visit,.|
|00004f90| 20 2a 20 74 68 65 6e 20 | 61 20 62 61 63 6b 75 70 | * then |a backup|
|00004fa0| 20 63 6f 70 79 20 6f 66 | 20 74 68 65 20 66 69 6c | copy of| the fil|
|00004fb0| 65 20 69 73 20 6d 61 64 | 65 2e 0a 20 2a 2f 0a 66 |e is mad|e.. */.f|
|00004fc0| 69 6c 65 73 61 76 65 28 | 66 2c 20 6e 2c 20 6b 29 |ilesave(|f, n, k)|
|00004fd0| 0a 7b 0a 09 72 65 67 69 | 73 74 65 72 20 57 49 4e |.{..regi|ster WIN|
|00004fe0| 44 4f 57 09 2a 77 70 3b | 0a 09 72 65 67 69 73 74 |DOW.*wp;|..regist|
|00004ff0| 65 72 20 69 6e 74 09 73 | 3b 0a 0a 09 69 66 20 28 |er int.s|;...if (|
|00005000| 28 63 75 72 62 70 2d 3e | 62 5f 66 6c 61 67 26 42 |(curbp->|b_flag&B|
|00005010| 46 43 48 47 29 20 3d 3d | 20 30 29 09 09 2f 2a 20 |FCHG) ==| 0)../* |
|00005020| 52 65 74 75 72 6e 2c 20 | 6e 6f 20 63 68 61 6e 67 |Return, |no chang|
|00005030| 65 73 2e 09 2a 2f 0a 09 | 09 72 65 74 75 72 6e 20 |es..*/..|.return |
|00005040| 28 54 52 55 45 29 3b 0a | 09 69 66 20 28 63 75 72 |(TRUE);.|.if (cur|
|00005050| 62 70 2d 3e 62 5f 66 6e | 61 6d 65 5b 30 5d 20 3d |bp->b_fn|ame[0] =|
|00005060| 3d 20 30 29 20 7b 09 09 | 2f 2a 20 4d 75 73 74 20 |= 0) {..|/* Must |
|00005070| 68 61 76 65 20 61 20 6e | 61 6d 65 2e 09 2a 2f 0a |have a n|ame..*/.|
|00005080| 09 09 65 70 72 69 6e 74 | 66 28 22 4e 6f 20 66 69 |..eprint|f("No fi|
|00005090| 6c 65 20 6e 61 6d 65 22 | 29 3b 0a 09 09 72 65 74 |le name"|);...ret|
|000050a0| 75 72 6e 20 28 46 41 4c | 53 45 29 3b 0a 09 7d 0a |urn (FAL|SE);..}.|
|000050b0| 23 69 66 09 42 41 43 4b | 55 50 0a 09 69 66 20 28 |#if.BACK|UP..if (|
|000050c0| 28 63 75 72 62 70 2d 3e | 62 5f 66 6c 61 67 26 42 |(curbp->|b_flag&B|
|000050d0| 46 42 41 4b 29 20 21 3d | 20 30 29 20 7b 0a 09 09 |FBAK) !=| 0) {...|
|000050e0| 73 20 3d 20 66 62 61 63 | 6b 75 70 66 69 6c 65 28 |s = fbac|kupfile(|
|000050f0| 63 75 72 62 70 2d 3e 62 | 5f 66 6e 61 6d 65 29 3b |curbp->b|_fname);|
|00005100| 0a 09 09 69 66 20 28 73 | 20 3d 3d 20 41 42 4f 52 |...if (s| == ABOR|
|00005110| 54 29 09 09 09 2f 2a 20 | 48 61 72 64 20 65 72 72 |T).../* |Hard err|
|00005120| 6f 72 2e 09 09 2a 2f 0a | 09 09 09 72 65 74 75 72 |or...*/.|...retur|
|00005130| 6e 20 28 73 29 3b 0a 09 | 09 69 66 20 28 73 20 3d |n (s);..|.if (s =|
|00005140| 3d 20 46 41 4c 53 45 09 | 09 09 2f 2a 20 53 6f 66 |= FALSE.|../* Sof|
|00005150| 74 65 72 20 65 72 72 6f | 72 2e 09 2a 2f 0a 09 09 |ter erro|r..*/...|
|00005160| 26 26 20 28 73 3d 65 79 | 65 73 6e 6f 28 22 42 61 |&& (s=ey|esno("Ba|
|00005170| 63 6b 75 70 20 65 72 72 | 6f 72 2c 20 73 61 76 65 |ckup err|or, save|
|00005180| 20 61 6e 79 77 61 79 22 | 29 29 20 21 3d 20 54 52 | anyway"|)) != TR|
|00005190| 55 45 29 0a 09 09 09 72 | 65 74 75 72 6e 20 28 73 |UE)....r|eturn (s|
|000051a0| 29 3b 0a 09 7d 0a 23 65 | 6e 64 69 66 0a 09 69 66 |);..}.#e|ndif..if|
|000051b0| 20 28 28 73 3d 77 72 69 | 74 65 6f 75 74 28 63 75 | ((s=wri|teout(cu|
|000051c0| 72 62 70 2d 3e 62 5f 66 | 6e 61 6d 65 29 29 20 3d |rbp->b_f|name)) =|
|000051d0| 3d 20 54 52 55 45 29 20 | 7b 0a 09 09 63 75 72 62 |= TRUE) |{...curb|
|000051e0| 70 2d 3e 62 5f 66 6c 61 | 67 20 26 3d 20 7e 42 46 |p->b_fla|g &= ~BF|
|000051f0| 43 48 47 3b 0a 09 09 77 | 70 20 3d 20 77 68 65 61 |CHG;...w|p = whea|
|00005200| 64 70 3b 09 09 09 2f 2a | 20 55 70 64 61 74 65 20 |dp;.../*| Update |
|00005210| 6d 6f 64 65 20 6c 69 6e | 65 73 2e 09 2a 2f 0a 09 |mode lin|es..*/..|
|00005220| 09 77 68 69 6c 65 20 28 | 77 70 20 21 3d 20 4e 55 |.while (|wp != NU|
|00005230| 4c 4c 29 20 7b 0a 09 09 | 09 69 66 20 28 77 70 2d |LL) {...|.if (wp-|
|00005240| 3e 77 5f 62 75 66 70 20 | 3d 3d 20 63 75 72 62 70 |>w_bufp |== curbp|
|00005250| 29 0a 09 09 09 09 77 70 | 2d 3e 77 5f 66 6c 61 67 |).....wp|->w_flag|
|00005260| 20 7c 3d 20 57 46 4d 4f | 44 45 3b 0a 09 09 09 77 | |= WFMO|DE;....w|
|00005270| 70 20 3d 20 77 70 2d 3e | 77 5f 77 6e 64 70 3b 0a |p = wp->|w_wndp;.|
|00005280| 09 09 7d 0a 09 7d 0a 23 | 69 66 09 42 41 43 4b 55 |..}..}.#|if.BACKU|
|00005290| 50 0a 09 63 75 72 62 70 | 2d 3e 62 5f 66 6c 61 67 |P..curbp|->b_flag|
|000052a0| 20 26 3d 20 7e 42 46 42 | 41 4b 3b 09 09 2f 2a 20 | &= ~BFB|AK;../* |
|000052b0| 4e 6f 20 62 61 63 6b 75 | 70 2e 09 09 2a 2f 0a 23 |No backu|p...*/.#|
|000052c0| 65 6e 64 69 66 0a 09 72 | 65 74 75 72 6e 20 28 73 |endif..r|eturn (s|
|000052d0| 29 3b 0a 7d 0a 0a 2f 2a | 0a 20 2a 20 54 68 69 73 |);.}../*|. * This|
|000052e0| 20 66 75 6e 63 74 69 6f | 6e 20 70 65 72 66 6f 72 | functio|n perfor|
|000052f0| 6d 73 20 74 68 65 20 64 | 65 74 61 69 6c 73 20 6f |ms the d|etails o|
|00005300| 66 20 66 69 6c 65 0a 20 | 2a 20 77 72 69 74 69 6e |f file. |* writin|
|00005310| 67 2e 20 55 73 65 73 20 | 74 68 65 20 66 69 6c 65 |g. Uses |the file|
|00005320| 20 6d 61 6e 61 67 65 6d | 65 6e 74 20 72 6f 75 74 | managem|ent rout|
|00005330| 69 6e 65 73 20 69 6e 20 | 74 68 65 0a 20 2a 20 22 |ines in |the. * "|
|00005340| 66 69 6c 65 69 6f 2e 63 | 22 20 70 61 63 6b 61 67 |fileio.c|" packag|
|00005350| 65 2e 20 54 68 65 20 6e | 75 6d 62 65 72 20 6f 66 |e. The n|umber of|
|00005360| 20 6c 69 6e 65 73 20 77 | 72 69 74 74 65 6e 20 69 | lines w|ritten i|
|00005370| 73 0a 20 2a 20 64 69 73 | 70 6c 61 79 65 64 2e 20 |s. * dis|played. |
|00005380| 53 61 64 6c 79 2c 20 69 | 74 20 6c 6f 6f 6b 73 20 |Sadly, i|t looks |
|00005390| 69 6e 73 69 64 65 20 61 | 20 4c 49 4e 45 3b 20 70 |inside a| LINE; p|
|000053a0| 72 6f 76 69 64 65 0a 20 | 2a 20 61 20 6d 61 63 72 |rovide. |* a macr|
|000053b0| 6f 20 66 6f 72 20 74 68 | 69 73 2e 20 4d 6f 73 74 |o for th|is. Most|
|000053c0| 20 6f 66 20 74 68 65 20 | 67 72 69 65 66 20 69 73 | of the |grief is|
|000053d0| 20 65 72 72 6f 72 0a 20 | 2a 20 63 68 65 63 6b 69 | error. |* checki|
|000053e0| 6e 67 20 6f 66 20 73 6f | 6d 65 20 73 6f 72 74 2e |ng of so|me sort.|
|000053f0| 0a 20 2a 2f 0a 77 72 69 | 74 65 6f 75 74 28 66 6e |. */.wri|teout(fn|
|00005400| 29 0a 63 68 61 72 09 2a | 66 6e 3b 0a 7b 0a 09 72 |).char.*|fn;.{..r|
|00005410| 65 67 69 73 74 65 72 20 | 69 6e 74 09 73 3b 0a 09 |egister |int.s;..|
|00005420| 72 65 67 69 73 74 65 72 | 20 4c 49 4e 45 09 2a 6c |register| LINE.*l|
|00005430| 70 3b 0a 09 72 65 67 69 | 73 74 65 72 20 69 6e 74 |p;..regi|ster int|
|00005440| 09 6e 6c 69 6e 65 3b 0a | 0a 09 69 66 20 28 28 73 |.nline;.|..if ((s|
|00005450| 3d 66 66 77 6f 70 65 6e | 28 66 6e 29 29 20 21 3d |=ffwopen|(fn)) !=|
|00005460| 20 46 49 4f 53 55 43 29 | 09 09 2f 2a 20 4f 70 65 | FIOSUC)|../* Ope|
|00005470| 6e 20 77 72 69 74 65 73 | 20 6d 65 73 73 61 67 65 |n writes| message|
|00005480| 2e 09 2a 2f 0a 09 09 72 | 65 74 75 72 6e 20 28 46 |..*/...r|eturn (F|
|00005490| 41 4c 53 45 29 3b 0a 09 | 6c 70 20 3d 20 6c 66 6f |ALSE);..|lp = lfo|
|000054a0| 72 77 28 63 75 72 62 70 | 2d 3e 62 5f 6c 69 6e 65 |rw(curbp|->b_line|
|000054b0| 70 29 3b 09 09 2f 2a 20 | 46 69 72 73 74 20 6c 69 |p);../* |First li|
|000054c0| 6e 65 2e 09 09 2a 2f 0a | 09 6e 6c 69 6e 65 20 3d |ne...*/.|.nline =|
|000054d0| 20 30 3b 09 09 09 09 2f | 2a 20 4e 75 6d 62 65 72 | 0;..../|* Number|
|000054e0| 20 6f 66 20 6c 69 6e 65 | 73 2e 09 2a 2f 0a 09 77 | of line|s..*/..w|
|000054f0| 68 69 6c 65 20 28 6c 70 | 20 21 3d 20 63 75 72 62 |hile (lp| != curb|
|00005500| 70 2d 3e 62 5f 6c 69 6e | 65 70 29 20 7b 0a 09 09 |p->b_lin|ep) {...|
|00005510| 69 66 20 28 28 73 3d 66 | 66 70 75 74 6c 69 6e 65 |if ((s=f|fputline|
|00005520| 28 26 6c 70 2d 3e 6c 5f | 74 65 78 74 5b 30 5d 2c |(&lp->l_|text[0],|
|00005530| 20 6c 6c 65 6e 67 74 68 | 28 6c 70 29 29 29 20 21 | llength|(lp))) !|
|00005540| 3d 20 46 49 4f 53 55 43 | 29 0a 09 09 09 62 72 65 |= FIOSUC|)....bre|
|00005550| 61 6b 3b 0a 09 09 2b 2b | 6e 6c 69 6e 65 3b 0a 09 |ak;...++|nline;..|
|00005560| 09 6c 70 20 3d 20 6c 66 | 6f 72 77 28 6c 70 29 3b |.lp = lf|orw(lp);|
|00005570| 0a 09 7d 0a 09 69 66 20 | 28 73 20 3d 3d 20 46 49 |..}..if |(s == FI|
|00005580| 4f 53 55 43 29 20 7b 09 | 09 09 2f 2a 20 4e 6f 20 |OSUC) {.|../* No |
|00005590| 77 72 69 74 65 20 65 72 | 72 6f 72 2e 09 2a 2f 0a |write er|ror..*/.|
|000055a0| 09 09 73 20 3d 20 66 66 | 63 6c 6f 73 65 28 29 3b |..s = ff|close();|
|000055b0| 0a 09 09 69 66 20 28 73 | 3d 3d 46 49 4f 53 55 43 |...if (s|==FIOSUC|
|000055c0| 20 26 26 20 6b 62 64 6d | 6f 70 3d 3d 4e 55 4c 4c | && kbdm|op==NULL|
|000055d0| 29 20 7b 0a 09 09 09 69 | 66 20 28 6e 6c 69 6e 65 |) {....i|f (nline|
|000055e0| 20 3d 3d 20 31 29 0a 09 | 09 09 09 65 70 72 69 6e | == 1)..|...eprin|
|000055f0| 74 66 28 22 5b 57 72 6f | 74 65 20 31 20 6c 69 6e |tf("[Wro|te 1 lin|
|00005600| 65 5d 22 29 3b 0a 09 09 | 09 65 6c 73 65 0a 09 09 |e]");...|.else...|
|00005610| 09 09 65 70 72 69 6e 74 | 66 28 22 5b 57 72 6f 74 |..eprint|f("[Wrot|
|00005620| 65 20 25 64 20 6c 69 6e | 65 73 5d 22 2c 20 6e 6c |e %d lin|es]", nl|
|00005630| 69 6e 65 29 3b 0a 09 09 | 7d 0a 09 7d 20 65 6c 73 |ine);...|}..} els|
|00005640| 65 09 09 09 09 09 2f 2a | 20 49 67 6e 6f 72 65 20 |e...../*| Ignore |
|00005650| 63 6c 6f 73 65 20 65 72 | 72 6f 72 09 2a 2f 0a 09 |close er|ror.*/..|
|00005660| 09 66 66 63 6c 6f 73 65 | 28 29 3b 09 09 09 2f 2a |.ffclose|();.../*|
|00005670| 20 69 66 20 61 20 77 72 | 69 74 65 20 65 72 72 6f | if a wr|ite erro|
|00005680| 72 2e 09 2a 2f 0a 09 69 | 66 20 28 73 20 21 3d 20 |r..*/..i|f (s != |
|00005690| 46 49 4f 53 55 43 29 09 | 09 09 2f 2a 20 53 6f 6d |FIOSUC).|../* Som|
|000056a0| 65 20 73 6f 72 74 20 6f | 66 20 65 72 72 6f 72 2e |e sort o|f error.|
|000056b0| 09 2a 2f 0a 09 09 72 65 | 74 75 72 6e 20 28 46 41 |.*/...re|turn (FA|
|000056c0| 4c 53 45 29 3b 0a 09 72 | 65 74 75 72 6e 20 28 54 |LSE);..r|eturn (T|
|000056d0| 52 55 45 29 3b 0a 7d 0a | 0a 2f 2a 0a 20 2a 20 54 |RUE);.}.|./*. * T|
|000056e0| 68 65 20 63 6f 6d 6d 61 | 6e 64 20 61 6c 6c 6f 77 |he comma|nd allow|
|000056f0| 73 20 74 68 65 20 75 73 | 65 72 0a 20 2a 20 74 6f |s the us|er. * to|
|00005700| 20 6d 6f 64 69 66 79 20 | 74 68 65 20 66 69 6c 65 | modify |the file|
|00005710| 20 6e 61 6d 65 20 61 73 | 73 6f 63 69 61 74 65 64 | name as|sociated|
|00005720| 20 77 69 74 68 0a 20 2a | 20 74 68 65 20 63 75 72 | with. *| the cur|
|00005730| 72 65 6e 74 20 62 75 66 | 66 65 72 2e 20 49 74 20 |rent buf|fer. It |
|00005740| 69 73 20 6c 69 6b 65 20 | 74 68 65 20 22 66 22 20 |is like |the "f" |
|00005750| 63 6f 6d 6d 61 6e 64 0a | 20 2a 20 69 6e 20 55 4e |command.| * in UN|
|00005760| 49 58 20 22 65 64 22 2e | 20 54 68 65 20 6f 70 65 |IX "ed".| The ope|
|00005770| 72 61 74 69 6f 6e 20 69 | 73 20 73 69 6d 70 6c 65 |ration i|s simple|
|00005780| 3b 20 6a 75 73 74 20 7a | 61 70 0a 20 2a 20 74 68 |; just z|ap. * th|
|00005790| 65 20 6e 61 6d 65 20 69 | 6e 20 74 68 65 20 42 55 |e name i|n the BU|
|000057a0| 46 46 45 52 20 73 74 72 | 75 63 74 75 72 65 2c 20 |FFER str|ucture, |
|000057b0| 61 6e 64 20 6d 61 72 6b | 20 74 68 65 20 77 69 6e |and mark| the win|
|000057c0| 64 6f 77 73 0a 20 2a 20 | 61 73 20 6e 65 65 64 69 |dows. * |as needi|
|000057d0| 6e 67 20 61 6e 20 75 70 | 64 61 74 65 2e 20 59 6f |ng an up|date. Yo|
|000057e0| 75 20 63 61 6e 20 74 79 | 70 65 20 61 20 62 6c 61 |u can ty|pe a bla|
|000057f0| 6e 6b 20 6c 69 6e 65 20 | 61 74 20 74 68 65 0a 20 |nk line |at the. |
|00005800| 2a 20 70 72 6f 6d 70 74 | 20 69 66 20 79 6f 75 20 |* prompt| if you |
|00005810| 77 69 73 68 2e 0a 20 2a | 2f 0a 66 69 6c 65 6e 61 |wish.. *|/.filena|
|00005820| 6d 65 28 66 2c 20 6e 2c | 20 6b 29 0a 7b 0a 09 72 |me(f, n,| k).{..r|
|00005830| 65 67 69 73 74 65 72 20 | 57 49 4e 44 4f 57 09 2a |egister |WINDOW.*|
|00005840| 77 70 3b 0a 09 72 65 67 | 69 73 74 65 72 20 69 6e |wp;..reg|ister in|
|00005850| 74 09 73 3b 0a 09 63 68 | 61 72 09 20 09 66 6e 61 |t.s;..ch|ar. .fna|
|00005860| 6d 65 5b 4e 46 49 4c 45 | 4e 5d 3b 0a 0a 09 69 66 |me[NFILE|N];...if|
|00005870| 20 28 28 73 3d 65 72 65 | 70 6c 79 28 22 4e 61 6d | ((s=ere|ply("Nam|
|00005880| 65 3a 20 22 2c 20 66 6e | 61 6d 65 2c 20 4e 46 49 |e: ", fn|ame, NFI|
|00005890| 4c 45 4e 29 29 20 3d 3d | 20 41 42 4f 52 54 29 0a |LEN)) ==| ABORT).|
|000058a0| 09 09 72 65 74 75 72 6e | 20 28 73 29 3b 0a 09 61 |..return| (s);..a|
|000058b0| 64 6a 75 73 74 63 61 73 | 65 28 66 6e 61 6d 65 29 |djustcas|e(fname)|
|000058c0| 3b 0a 09 73 74 72 63 70 | 79 28 63 75 72 62 70 2d |;..strcp|y(curbp-|
|000058d0| 3e 62 5f 66 6e 61 6d 65 | 2c 20 66 6e 61 6d 65 29 |>b_fname|, fname)|
|000058e0| 3b 09 09 2f 2a 20 46 69 | 78 20 6e 61 6d 65 2e 09 |;../* Fi|x name..|
|000058f0| 09 2a 2f 0a 09 77 70 20 | 3d 20 77 68 65 61 64 70 |.*/..wp |= wheadp|
|00005900| 3b 09 09 09 09 2f 2a 20 | 55 70 64 61 74 65 20 6d |;..../* |Update m|
|00005910| 6f 64 65 20 6c 69 6e 65 | 73 2e 09 2a 2f 0a 09 77 |ode line|s..*/..w|
|00005920| 68 69 6c 65 20 28 77 70 | 20 21 3d 20 4e 55 4c 4c |hile (wp| != NULL|
|00005930| 29 20 7b 0a 09 09 69 66 | 20 28 77 70 2d 3e 77 5f |) {...if| (wp->w_|
|00005940| 62 75 66 70 20 3d 3d 20 | 63 75 72 62 70 29 0a 09 |bufp == |curbp)..|
|00005950| 09 09 77 70 2d 3e 77 5f | 66 6c 61 67 20 7c 3d 20 |..wp->w_|flag |= |
|00005960| 57 46 4d 4f 44 45 3b 0a | 09 09 77 70 20 3d 20 77 |WFMODE;.|..wp = w|
|00005970| 70 2d 3e 77 5f 77 6e 64 | 70 3b 0a 09 7d 0a 23 69 |p->w_wnd|p;..}.#i|
|00005980| 66 09 42 41 43 4b 55 50 | 0a 09 63 75 72 62 70 2d |f.BACKUP|..curbp-|
|00005990| 3e 62 5f 66 6c 61 67 20 | 26 3d 20 7e 42 46 42 41 |>b_flag |&= ~BFBA|
|000059a0| 4b 3b 09 09 2f 2a 20 4e | 6f 20 62 61 63 6b 75 70 |K;../* N|o backup|
|000059b0| 2e 09 09 2a 2f 0a 23 65 | 6e 64 69 66 0a 09 72 65 |...*/.#e|ndif..re|
|000059c0| 74 75 72 6e 20 28 54 52 | 55 45 29 3b 0a 7d 0a 53 |turn (TR|UE);.}.S|
|000059d0| 48 41 52 5f 45 4f 46 0a | 69 66 20 74 65 73 74 20 |HAR_EOF.|if test |
|000059e0| 39 34 30 34 20 2d 6e 65 | 20 22 60 77 63 20 2d 63 |9404 -ne| "`wc -c|
|000059f0| 20 3c 20 27 66 69 6c 65 | 2e 63 27 60 22 0a 74 68 | < 'file|.c'`".th|
|00005a00| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 65 |en..echo| shar: e|
|00005a10| 72 72 6f 72 20 74 72 61 | 6e 73 6d 69 74 74 69 6e |rror tra|nsmittin|
|00005a20| 67 20 22 27 66 69 6c 65 | 2e 63 27 22 20 27 28 73 |g "'file|.c'" '(s|
|00005a30| 68 6f 75 6c 64 20 68 61 | 76 65 20 62 65 65 6e 20 |hould ha|ve been |
|00005a40| 39 34 30 34 20 63 68 61 | 72 61 63 74 65 72 73 29 |9404 cha|racters)|
|00005a50| 27 0a 66 69 0a 66 69 0a | 65 63 68 6f 20 73 68 61 |'.fi.fi.|echo sha|
|00005a60| 72 3a 20 65 78 74 72 61 | 63 74 69 6e 67 20 22 27 |r: extra|cting "'|
|00005a70| 6b 62 64 2e 63 27 22 20 | 27 28 32 36 38 39 20 63 |kbd.c'" |'(2689 c|
|00005a80| 68 61 72 61 63 74 65 72 | 73 29 27 0a 69 66 20 74 |haracter|s)'.if t|
|00005a90| 65 73 74 20 2d 66 20 27 | 6b 62 64 2e 63 27 0a 74 |est -f '|kbd.c'.t|
|00005aa0| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|00005ab0| 77 69 6c 6c 20 6e 6f 74 | 20 6f 76 65 72 2d 77 72 |will not| over-wr|
|00005ac0| 69 74 65 20 65 78 69 73 | 74 69 6e 67 20 66 69 6c |ite exis|ting fil|
|00005ad0| 65 20 22 27 6b 62 64 2e | 63 27 22 0a 65 6c 73 65 |e "'kbd.|c'".else|
|00005ae0| 0a 63 61 74 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |.cat << |\SHAR_EO|
|00005af0| 46 20 3e 20 27 6b 62 64 | 2e 63 27 0a 2f 2a 0a 20 |F > 'kbd|.c'./*. |
|00005b00| 2a 20 4e 61 6d 65 3a 09 | 4d 69 63 72 6f 45 4d 41 |* Name:.|MicroEMA|
|00005b10| 43 53 0a 20 2a 09 09 54 | 65 72 6d 69 6e 61 6c 20 |CS. *..T|erminal |
|00005b20| 69 6e 64 65 70 65 6e 64 | 65 6e 74 20 6b 65 79 62 |independ|ent keyb|
|00005b30| 6f 61 72 64 20 68 61 6e | 64 6c 69 6e 67 2e 0a 20 |oard han|dling.. |
|00005b40| 2a 20 56 65 72 73 69 6f | 6e 3a 09 32 39 0a 20 2a |* Versio|n:.29. *|
|00005b50| 20 4c 61 73 74 20 65 64 | 69 74 3a 09 30 35 2d 46 | Last ed|it:.05-F|
|00005b60| 65 62 2d 38 36 0a 20 2a | 20 42 79 3a 09 09 72 65 |eb-86. *| By:..re|
|00005b70| 78 3a 3a 63 6f 6e 72 6f | 79 0a 20 2a 09 09 64 65 |x::conro|y. *..de|
|00005b80| 63 76 61 78 21 64 65 63 | 77 72 6c 21 64 65 63 2d |cvax!dec|wrl!dec-|
|00005b90| 72 68 65 61 21 64 65 63 | 2d 72 65 78 21 63 6f 6e |rhea!dec|-rex!con|
|00005ba0| 72 6f 79 0a 20 2a 2f 0a | 23 69 6e 63 6c 75 64 65 |roy. */.|#include|
|00005bb0| 09 22 64 65 66 2e 68 22 | 0a 0a 2f 2a 0a 20 2a 20 |."def.h"|../*. * |
|00005bc0| 52 65 61 64 20 69 6e 20 | 61 20 6b 65 79 2c 20 64 |Read in |a key, d|
|00005bd0| 6f 69 6e 67 20 74 68 65 | 20 74 65 72 6d 69 6e 61 |oing the| termina|
|00005be0| 6c 0a 20 2a 20 69 6e 64 | 65 70 65 6e 64 65 6e 74 |l. * ind|ependent|
|00005bf0| 20 70 72 65 66 69 78 20 | 68 61 6e 64 6c 69 6e 67 | prefix |handling|
|00005c00| 2e 20 54 68 65 20 74 65 | 72 6d 69 6e 61 6c 20 73 |. The te|rminal s|
|00005c10| 70 65 63 69 66 69 63 0a | 20 2a 20 22 67 65 74 6b |pecific.| * "getk|
|00005c20| 62 64 22 20 72 6f 75 74 | 69 6e 65 20 67 65 74 73 |bd" rout|ine gets|
|00005c30| 20 74 68 65 20 66 69 72 | 73 74 20 73 77 69 6e 67 | the fir|st swing|
|00005c40| 2c 20 61 6e 64 20 6d 61 | 79 20 72 65 74 75 72 6e |, and ma|y return|
|00005c50| 0a 20 2a 20 6f 6e 65 20 | 6f 66 20 74 68 65 20 73 |. * one |of the s|
|00005c60| 70 65 63 69 61 6c 20 63 | 6f 64 65 73 20 75 73 65 |pecial c|odes use|
|00005c70| 64 20 62 79 20 74 68 65 | 20 73 70 65 63 69 61 6c |d by the| special|
|00005c80| 20 6b 65 79 73 0a 20 2a | 20 6f 6e 20 74 68 65 20 | keys. *| on the |
|00005c90| 6b 65 79 62 6f 61 72 64 | 2e 20 54 68 65 20 22 67 |keyboard|. The "g|
|00005ca0| 65 74 6b 62 64 22 20 72 | 6f 75 74 69 6e 65 20 72 |etkbd" r|outine r|
|00005cb0| 65 74 75 72 6e 73 20 74 | 68 65 0a 20 2a 20 43 30 |eturns t|he. * C0|
|00005cc0| 20 63 6f 6e 74 72 6f 6c | 73 20 61 73 20 72 65 63 | control|s as rec|
|00005cd0| 65 69 76 65 64 3b 20 74 | 68 69 73 20 72 6f 75 74 |eived; t|his rout|
|00005ce0| 69 6e 65 20 6d 6f 76 65 | 73 20 74 68 65 6d 20 74 |ine move|s them t|
|00005cf0| 6f 0a 20 2a 20 74 68 65 | 20 72 69 67 68 74 20 73 |o. * the| right s|
|00005d00| 70 6f 74 20 69 6e 20 31 | 31 20 62 69 74 20 63 6f |pot in 1|1 bit co|
|00005d10| 64 65 2e 0a 20 2a 2f 0a | 67 65 74 6b 65 79 28 29 |de.. */.|getkey()|
|00005d20| 0a 7b 0a 09 72 65 67 69 | 73 74 65 72 20 69 6e 74 |.{..regi|ster int|
|00005d30| 09 63 3b 0a 0a 09 63 20 | 3d 20 67 65 74 6b 62 64 |.c;...c |= getkbd|
|00005d40| 28 29 3b 0a 09 69 66 20 | 28 63 20 3d 3d 20 4d 45 |();..if |(c == ME|
|00005d50| 54 41 43 48 29 09 09 09 | 2f 2a 20 4d 2d 09 09 09 |TACH)...|/* M-...|
|00005d60| 2a 2f 0a 09 09 63 20 3d | 20 4b 4d 45 54 41 20 7c |*/...c =| KMETA ||
|00005d70| 20 67 65 74 63 74 6c 28 | 29 3b 0a 09 65 6c 73 65 | getctl(|);..else|
|00005d80| 20 69 66 20 28 63 20 3d | 3d 20 43 54 52 4c 43 48 | if (c =|= CTRLCH|
|00005d90| 29 09 09 09 2f 2a 20 43 | 2d 09 09 09 2a 2f 0a 09 |).../* C|-...*/..|
|00005da0| 09 63 20 3d 20 4b 43 54 | 52 4c 20 7c 20 67 65 74 |.c = KCT|RL | get|
|00005db0| 63 74 6c 28 29 3b 0a 09 | 65 6c 73 65 20 69 66 20 |ctl();..|else if |
|00005dc0| 28 63 20 3d 3d 20 43 54 | 4d 45 43 48 29 09 09 09 |(c == CT|MECH)...|
|00005dd0| 2f 2a 20 43 2d 4d 2d 09 | 09 09 2a 2f 0a 09 09 63 |/* C-M-.|..*/...c|
|00005de0| 20 3d 20 4b 43 54 52 4c | 20 7c 20 4b 4d 45 54 41 | = KCTRL| | KMETA|
|00005df0| 20 7c 20 67 65 74 63 74 | 6c 28 29 3b 0a 09 65 6c | | getct|l();..el|
|00005e00| 73 65 20 69 66 20 28 63 | 3e 3d 30 78 30 30 20 26 |se if (c|>=0x00 &|
|00005e10| 26 20 63 3c 3d 30 78 31 | 46 29 09 09 2f 2a 20 52 |& c<=0x1|F)../* R|
|00005e20| 65 6c 6f 63 61 74 65 20 | 63 6f 6e 74 72 6f 6c 2e |elocate |control.|
|00005e30| 09 2a 2f 0a 09 09 63 20 | 3d 20 4b 43 54 52 4c 20 |.*/...c |= KCTRL |
|00005e40| 7c 20 28 63 2b 27 40 27 | 29 3b 0a 09 69 66 20 28 || (c+'@'|);..if (|
|00005e50| 63 20 3d 3d 20 28 4b 43 | 54 52 4c 7c 27 58 27 29 |c == (KC|TRL|'X')|
|00005e60| 29 09 09 09 2f 2a 20 43 | 2d 58 09 09 09 2a 2f 0a |).../* C|-X...*/.|
|00005e70| 09 09 63 20 3d 20 4b 43 | 54 4c 58 20 7c 20 67 65 |..c = KC|TLX | ge|
|00005e80| 74 63 74 6c 28 29 3b 0a | 09 72 65 74 75 72 6e 20 |tctl();.|.return |
|00005e90| 28 63 29 3b 0a 7d 0a 0a | 2f 2a 0a 20 2a 20 55 73 |(c);.}..|/*. * Us|
|00005ea0| 65 64 20 61 62 6f 76 65 | 2e 0a 20 2a 2f 0a 67 65 |ed above|.. */.ge|
|00005eb0| 74 63 74 6c 28 29 0a 7b | 0a 09 72 65 67 69 73 74 |tctl().{|..regist|
|00005ec0| 65 72 20 69 6e 74 09 63 | 3b 0a 0a 09 63 20 3d 20 |er int.c|;...c = |
|00005ed0| 74 74 67 65 74 63 28 29 | 3b 0a 09 69 66 20 28 49 |ttgetc()|;..if (I|
|00005ee0| 53 4c 4f 57 45 52 28 63 | 29 20 21 3d 20 46 41 4c |SLOWER(c|) != FAL|
|00005ef0| 53 45 29 0a 09 09 63 20 | 3d 20 54 4f 55 50 50 45 |SE)...c |= TOUPPE|
|00005f00| 52 28 63 29 3b 0a 09 69 | 66 20 28 63 3e 3d 30 78 |R(c);..i|f (c>=0x|
|00005f10| 30 30 20 26 26 20 63 3c | 3d 30 78 31 46 29 09 09 |00 && c<|=0x1F)..|
|00005f20| 09 2f 2a 20 52 65 6c 6f | 63 61 74 65 20 63 6f 6e |./* Relo|cate con|
|00005f30| 74 72 6f 6c 2e 09 2a 2f | 0a 09 09 63 20 3d 20 4b |trol..*/|...c = K|
|00005f40| 43 54 52 4c 20 7c 20 28 | 63 2b 27 40 27 29 3b 0a |CTRL | (|c+'@');.|
|00005f50| 09 72 65 74 75 72 6e 20 | 28 63 29 3b 0a 7d 0a 0a |.return |(c);.}..|
|00005f60| 2f 2a 0a 20 2a 20 54 72 | 61 6e 73 66 6f 72 6d 20 |/*. * Tr|ansform |
|00005f70| 61 20 6b 65 79 20 63 6f | 64 65 20 69 6e 74 6f 20 |a key co|de into |
|00005f80| 61 20 6e 61 6d 65 2c 0a | 20 2a 20 75 73 69 6e 67 |a name,.| * using|
|00005f90| 20 61 20 74 61 62 6c 65 | 20 66 6f 72 20 74 68 65 | a table| for the|
|00005fa0| 20 73 70 65 63 69 61 6c | 20 6b 65 79 73 20 61 6e | special| keys an|
|00005fb0| 64 20 63 6f 6d 62 69 6e | 61 74 69 6f 6e 0a 20 2a |d combin|ation. *|
|00005fc0| 20 6f 66 20 73 6f 6d 65 | 20 68 61 72 64 20 63 6f | of some| hard co|
|00005fd0| 64 65 20 61 6e 64 20 73 | 6f 6d 65 20 67 65 6e 65 |de and s|ome gene|
|00005fe0| 72 61 6c 20 70 72 6f 63 | 65 73 73 69 6e 67 20 66 |ral proc|essing f|
|00005ff0| 6f 72 0a 20 2a 20 74 68 | 65 20 72 65 73 74 2e 20 |or. * th|e rest. |
|00006000| 4e 6f 6e 65 20 6f 66 20 | 74 68 69 73 20 63 6f 64 |None of |this cod|
|00006010| 65 20 69 73 20 74 65 72 | 6d 69 6e 61 6c 20 73 70 |e is ter|minal sp|
|00006020| 65 63 69 66 69 63 20 61 | 6e 79 0a 20 2a 20 6d 6f |ecific a|ny. * mo|
|00006030| 72 65 2e 20 54 68 69 73 | 20 6d 61 6b 65 73 20 61 |re. This| makes a|
|00006040| 64 64 69 6e 67 20 6b 65 | 79 73 20 65 61 73 69 65 |dding ke|ys easie|
|00006050| 72 2e 0a 20 2a 2f 0a 6b | 65 79 6e 61 6d 65 28 63 |r.. */.k|eyname(c|
|00006060| 70 2c 20 6b 29 0a 72 65 | 67 69 73 74 65 72 20 63 |p, k).re|gister c|
|00006070| 68 61 72 09 2a 63 70 3b | 0a 72 65 67 69 73 74 65 |har.*cp;|.registe|
|00006080| 72 20 69 6e 74 09 6b 3b | 0a 7b 0a 09 72 65 67 69 |r int.k;|.{..regi|
|00006090| 73 74 65 72 20 63 68 61 | 72 09 2a 6e 70 3b 0a 09 |ster cha|r.*np;..|
|000060a0| 63 68 61 72 09 09 6e 62 | 75 66 5b 33 5d 3b 0a 0a |char..nb|uf[3];..|
|000060b0| 09 73 74 61 74 69 63 09 | 63 68 61 72 09 68 65 78 |.static.|char.hex|
|000060c0| 5b 5d 20 3d 20 7b 0a 09 | 09 27 30 27 2c 09 27 31 |[] = {..|.'0',.'1|
|000060d0| 27 2c 09 27 32 27 2c 09 | 27 33 27 2c 0a 09 09 27 |',.'2',.|'3',...'|
|000060e0| 34 27 2c 09 27 35 27 2c | 09 27 36 27 2c 09 27 37 |4',.'5',|.'6',.'7|
|000060f0| 27 2c 0a 09 09 27 38 27 | 2c 09 27 39 27 2c 09 27 |',...'8'|,.'9',.'|
|00006100| 41 27 2c 09 27 42 27 2c | 0a 09 09 27 43 27 2c 09 |A',.'B',|...'C',.|
|00006110| 27 44 27 2c 09 27 45 27 | 2c 09 27 46 27 0a 09 7d |'D',.'E'|,.'F'..}|
|00006120| 3b 0a 0a 09 69 66 20 28 | 28 6b 26 4b 43 54 4c 58 |;...if (|(k&KCTLX|
|00006130| 29 20 21 3d 20 30 29 20 | 7b 09 09 09 2f 2a 20 43 |) != 0) |{.../* C|
|00006140| 2d 58 20 70 72 65 66 69 | 78 2e 09 09 2a 2f 0a 09 |-X prefi|x...*/..|
|00006150| 09 2a 63 70 2b 2b 20 3d | 20 27 43 27 3b 0a 09 09 |.*cp++ =| 'C';...|
|00006160| 2a 63 70 2b 2b 20 3d 20 | 27 2d 27 3b 0a 09 09 2a |*cp++ = |'-';...*|
|00006170| 63 70 2b 2b 20 3d 20 27 | 58 27 3b 0a 09 09 2a 63 |cp++ = '|X';...*c|
|00006180| 70 2b 2b 20 3d 20 27 20 | 27 3b 0a 09 09 6b 20 26 |p++ = ' |';...k &|
|00006190| 3d 20 7e 4b 43 54 4c 58 | 3b 0a 09 7d 0a 09 69 66 |= ~KCTLX|;..}..if|
|000061a0| 20 28 28 6b 26 4b 43 48 | 41 52 29 3e 3d 4b 46 49 | ((k&KCH|AR)>=KFI|
|000061b0| 52 53 54 20 26 26 20 28 | 6b 26 4b 43 48 41 52 29 |RST && (|k&KCHAR)|
|000061c0| 3c 3d 4b 4c 41 53 54 29 | 20 7b 0a 09 09 69 66 20 |<=KLAST)| {...if |
|000061d0| 28 28 6e 70 3d 6b 65 79 | 73 74 72 69 6e 67 73 5b |((np=key|strings[|
|000061e0| 28 6b 26 4b 43 48 41 52 | 29 2d 4b 46 49 52 53 54 |(k&KCHAR|)-KFIRST|
|000061f0| 5d 29 20 21 3d 20 4e 55 | 4c 4c 29 20 7b 0a 09 09 |]) != NU|LL) {...|
|00006200| 09 69 66 20 28 28 6b 26 | 4b 43 54 52 4c 29 20 21 |.if ((k&|KCTRL) !|
|00006210| 3d 20 30 29 20 7b 0a 09 | 09 09 09 2a 63 70 2b 2b |= 0) {..|...*cp++|
|00006220| 20 3d 20 27 43 27 3b 0a | 09 09 09 09 2a 63 70 2b | = 'C';.|....*cp+|
|00006230| 2b 20 3d 20 27 2d 27 3b | 0a 09 09 09 7d 0a 09 09 |+ = '-';|....}...|
|00006240| 09 69 66 20 28 28 6b 26 | 4b 4d 45 54 41 29 20 21 |.if ((k&|KMETA) !|
|00006250| 3d 20 30 29 20 7b 0a 09 | 09 09 09 2a 63 70 2b 2b |= 0) {..|...*cp++|
|00006260| 20 3d 20 27 4d 27 3b 0a | 09 09 09 09 2a 63 70 2b | = 'M';.|....*cp+|
|00006270| 2b 20 3d 20 27 2d 27 3b | 0a 09 09 09 7d 0a 09 09 |+ = '-';|....}...|
|00006280| 09 73 74 72 63 70 79 28 | 63 70 2c 20 6e 70 29 3b |.strcpy(|cp, np);|
|00006290| 0a 09 09 09 72 65 74 75 | 72 6e 3b 0a 09 09 7d 0a |....retu|rn;...}.|
|000062a0| 09 7d 0a 09 69 66 20 28 | 28 6b 26 7e 4b 4d 45 54 |.}..if (|(k&~KMET|
|000062b0| 41 29 20 3d 3d 20 28 4b | 43 54 52 4c 7c 27 49 27 |A) == (K|CTRL|'I'|
|000062c0| 29 29 09 09 2f 2a 20 53 | 6f 6d 65 20 73 70 65 63 |))../* S|ome spec|
|000062d0| 69 61 6c 73 2e 09 2a 2f | 0a 09 09 6e 70 20 3d 20 |ials..*/|...np = |
|000062e0| 22 54 61 62 22 3b 0a 09 | 65 6c 73 65 20 69 66 20 |"Tab";..|else if |
|000062f0| 28 28 6b 26 7e 4b 4d 45 | 54 41 29 20 3d 3d 20 28 |((k&~KME|TA) == (|
|00006300| 4b 43 54 52 4c 7c 27 4d | 27 29 29 0a 09 09 6e 70 |KCTRL|'M|'))...np|
|00006310| 20 3d 20 22 52 65 74 75 | 72 6e 22 3b 0a 09 65 6c | = "Retu|rn";..el|
|00006320| 73 65 20 69 66 20 28 28 | 6b 26 7e 4b 4d 45 54 41 |se if ((|k&~KMETA|
|00006330| 29 20 3d 3d 20 28 4b 43 | 54 52 4c 7c 27 48 27 29 |) == (KC|TRL|'H')|
|00006340| 29 0a 09 09 6e 70 20 3d | 20 22 42 61 63 6b 73 70 |)...np =| "Backsp|
|00006350| 61 63 65 22 3b 0a 09 65 | 6c 73 65 20 69 66 20 28 |ace";..e|lse if (|
|00006360| 28 6b 26 7e 4b 4d 45 54 | 41 29 20 3d 3d 20 27 20 |(k&~KMET|A) == ' |
|00006370| 27 29 0a 09 09 6e 70 20 | 3d 20 22 53 70 61 63 65 |')...np |= "Space|
|00006380| 22 3b 0a 09 65 6c 73 65 | 20 69 66 20 28 28 6b 26 |";..else| if ((k&|
|00006390| 7e 4b 4d 45 54 41 29 20 | 3d 3d 20 30 78 37 46 29 |~KMETA) |== 0x7F)|
|000063a0| 0a 09 09 6e 70 20 3d 20 | 22 52 75 62 6f 75 74 22 |...np = |"Rubout"|
|000063b0| 3b 0a 09 65 6c 73 65 20 | 7b 0a 09 09 69 66 20 28 |;..else |{...if (|
|000063c0| 28 6b 26 4b 43 54 52 4c | 29 20 21 3d 20 30 29 20 |(k&KCTRL|) != 0) |
|000063d0| 7b 09 09 2f 2a 20 41 64 | 64 20 43 2d 20 6d 61 72 |{../* Ad|d C- mar|
|000063e0| 6b 2e 09 09 2a 2f 0a 09 | 09 09 2a 63 70 2b 2b 20 |k...*/..|..*cp++ |
|000063f0| 3d 20 27 43 27 3b 0a 09 | 09 09 2a 63 70 2b 2b 20 |= 'C';..|..*cp++ |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.