home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume7 / rvi / part1 next >
SHell self-extracting ARchive  |  1986-11-30  |  55.7 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


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

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news or mail, ASCII text 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| 53 75 62 6a 65 63 74 3a | 20 20 76 30 37 69 30 30 |Subject:| v07i00|
|00000010| 33 3a 20 20 56 69 20 66 | 72 6f 6e 74 2d 65 6e 64 |3: Vi f|ront-end|
|00000020| 20 66 6f 72 20 72 65 6d | 6f 74 65 20 65 64 69 74 | for rem|ote edit|
|00000030| 69 6e 67 2c 20 50 61 72 | 74 30 31 2f 30 34 0a 4e |ing, Par|t01/04.N|
|00000040| 65 77 73 67 72 6f 75 70 | 73 3a 20 6d 6f 64 2e 73 |ewsgroup|s: mod.s|
|00000050| 6f 75 72 63 65 73 0a 41 | 70 70 72 6f 76 65 64 3a |ources.A|pproved:|
|00000060| 20 6d 69 72 72 6f 72 21 | 72 73 0a 0a 53 75 62 6d | mirror!|rs..Subm|
|00000070| 69 74 74 65 64 20 62 79 | 3a 20 41 6c 61 6e 20 4b |itted by|: Alan K|
|00000080| 6c 69 65 74 7a 20 3c 69 | 68 6e 70 34 21 64 69 63 |lietz <i|hnp4!dic|
|00000090| 6f 6d 65 21 6d 6e 2d 61 | 74 31 21 61 6c 61 6e 3e |ome!mn-a|t1!alan>|
|000000a0| 0a 4d 6f 64 2e 73 6f 75 | 72 63 65 73 3a 20 56 6f |.Mod.sou|rces: Vo|
|000000b0| 6c 75 6d 65 20 37 2c 20 | 49 73 73 75 65 20 33 0a |lume 7, |Issue 3.|
|000000c0| 41 72 63 68 69 76 65 2d | 6e 61 6d 65 3a 20 72 76 |Archive-|name: rv|
|000000d0| 69 2f 50 61 72 74 30 31 | 0a 0a 0a 23 21 2f 62 69 |i/Part01|...#!/bi|
|000000e0| 6e 2f 73 68 0a 23 20 54 | 68 69 73 20 69 73 20 61 |n/sh.# T|his is a|
|000000f0| 20 73 68 65 6c 6c 20 61 | 72 63 68 69 76 65 2e 20 | shell a|rchive. |
|00000100| 20 52 65 6d 6f 76 65 20 | 61 6e 79 74 68 69 6e 67 | Remove |anything|
|00000110| 20 62 65 66 6f 72 65 20 | 74 68 69 73 20 6c 69 6e | before |this lin|
|00000120| 65 2c 0a 23 20 74 68 65 | 6e 20 75 6e 70 61 63 6b |e,.# the|n unpack|
|00000130| 20 69 74 20 62 79 20 73 | 61 76 69 6e 67 20 69 74 | it by s|aving it|
|00000140| 20 69 6e 20 61 20 66 69 | 6c 65 20 61 6e 64 20 74 | in a fi|le and t|
|00000150| 79 70 69 6e 67 20 22 73 | 68 20 66 69 6c 65 22 2e |yping "s|h file".|
|00000160| 0a 23 20 57 72 61 70 70 | 65 64 20 62 79 20 6d 69 |.# Wrapp|ed by mi|
|00000170| 72 72 6f 72 21 72 73 20 | 6f 6e 20 57 65 64 20 41 |rror!rs |on Wed A|
|00000180| 75 67 20 32 37 20 30 30 | 3a 30 34 3a 34 34 20 45 |ug 27 00|:04:44 E|
|00000190| 44 54 20 31 39 38 36 0a | 0a 23 20 45 78 69 74 20 |DT 1986.|.# Exit |
|000001a0| 73 74 61 74 75 73 3b 20 | 73 65 74 20 74 6f 20 31 |status; |set to 1|
|000001b0| 20 6f 6e 20 22 77 63 22 | 20 65 72 72 6f 72 73 20 | on "wc"| errors |
|000001c0| 6f 72 20 69 66 20 77 6f | 75 6c 64 20 6f 76 65 72 |or if wo|uld over|
|000001d0| 77 72 69 74 65 2e 0a 53 | 54 41 54 55 53 3d 30 0a |write..S|TATUS=0.|
|000001e0| 23 20 43 6f 6e 74 65 6e | 74 73 3a 20 20 42 55 47 |# Conten|ts: BUG|
|000001f0| 46 49 58 20 42 55 47 46 | 49 58 32 20 4d 61 6b 65 |FIX BUGF|IX2 Make|
|00000200| 66 69 6c 65 2e 62 73 64 | 20 4d 61 6b 65 66 69 6c |file.bsd| Makefil|
|00000210| 65 2e 75 73 67 20 4e 45 | 58 54 5f 52 45 4c 20 52 |e.usg NE|XT_REL R|
|00000220| 45 41 44 4d 45 0a 23 09 | 62 69 6e 73 65 61 72 63 |EADME.#.|binsearc|
|00000230| 68 2e 63 20 63 6f 70 79 | 2e 63 20 63 6f 70 79 72 |h.c copy|.c copyr|
|00000240| 69 67 68 74 20 4d 61 6e | 69 66 65 73 74 20 72 65 |ight Man|ifest re|
|00000250| 67 65 72 72 6f 72 2e 63 | 20 72 65 67 65 78 70 2e |gerror.c| regexp.|
|00000260| 63 20 72 65 67 65 78 70 | 2e 68 0a 23 09 72 65 67 |c regexp|.h.#.reg|
|00000270| 6d 61 67 69 63 2e 68 20 | 72 76 5f 63 68 61 6e 67 |magic.h |rv_chang|
|00000280| 65 2e 63 20 72 76 5f 63 | 6f 6c 75 6d 6e 2e 63 20 |e.c rv_c|olumn.c |
|00000290| 72 76 5f 64 65 6c 63 6f | 6c 2e 63 20 72 76 5f 64 |rv_delco|l.c rv_d|
|000002a0| 6f 74 2e 63 0a 20 0a 65 | 63 68 6f 20 78 20 2d 20 |ot.c. .e|cho x - |
|000002b0| 42 55 47 46 49 58 0a 69 | 66 20 74 65 73 74 20 2d |BUGFIX.i|f test -|
|000002c0| 66 20 42 55 47 46 49 58 | 20 3b 20 74 68 65 6e 0a |f BUGFIX| ; then.|
|000002d0| 20 20 20 20 65 63 68 6f | 20 42 55 47 46 49 58 20 | echo| BUGFIX |
|000002e0| 65 78 69 73 74 73 2c 20 | 70 75 74 74 69 6e 67 20 |exists, |putting |
|000002f0| 6f 75 74 70 75 74 20 69 | 6e 20 24 24 42 55 47 46 |output i|n $$BUGF|
|00000300| 49 58 0a 20 20 20 20 4f | 55 54 3d 24 24 42 55 47 |IX. O|UT=$$BUG|
|00000310| 46 49 58 0a 20 20 20 20 | 53 54 41 54 55 53 3d 31 |FIX. |STATUS=1|
|00000320| 0a 65 6c 73 65 0a 20 20 | 20 20 4f 55 54 3d 42 55 |.else. | OUT=BU|
|00000330| 47 46 49 58 0a 66 69 0a | 73 65 64 20 27 73 2f 5e |GFIX.fi.|sed 's/^|
|00000340| 58 58 2f 2f 27 20 3e 20 | 24 4f 55 54 20 3c 3c 27 |XX//' > |$OUT <<'|
|00000350| 40 2f 2f 45 2a 4f 2a 46 | 20 42 55 47 46 49 58 2f |@//E*O*F| BUGFIX/|
|00000360| 2f 27 0a 58 58 46 69 78 | 20 43 75 72 73 65 73 20 |/'.XXFix| Curses |
|00000370| 56 2e 32 2e 32 20 2d 20 | 64 65 72 65 66 65 72 65 |V.2.2 - |derefere|
|00000380| 6e 63 65 20 6f 66 20 6e | 75 6c 6c 20 70 6f 69 6e |nce of n|ull poin|
|00000390| 74 65 72 20 61 73 73 75 | 6d 65 73 20 2a 28 28 63 |ter assu|mes *((c|
|000003a0| 68 61 72 20 2a 29 30 29 | 20 3d 20 27 5c 30 27 0a |har *)0)| = '\0'.|
|000003b0| 0a 58 58 2a 2a 2a 20 5f | 64 65 6c 6c 69 6e 65 73 |.XX*** _|dellines|
|000003c0| 2e 6f 72 69 67 09 54 75 | 65 20 4a 61 6e 20 20 37 |.orig.Tu|e Jan 7|
|000003d0| 20 31 31 3a 35 38 3a 34 | 33 20 31 39 38 36 0a 58 | 11:58:4|3 1986.X|
|000003e0| 58 2d 2d 2d 20 5f 64 65 | 6c 6c 69 6e 65 73 2e 63 |X--- _de|llines.c|
|000003f0| 09 54 75 65 20 4a 61 6e | 20 20 37 20 31 31 3a 35 |.Tue Jan| 7 11:5|
|00000400| 39 3a 30 38 20 31 39 38 | 36 0a 58 58 2a 2a 2a 2a |9:08 198|6.XX****|
|00000410| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0a 58 58 2a 2a |********|***.XX**|
|00000420| 2a 20 33 30 2c 33 36 0a | 58 58 20 20 09 09 7d 0a |* 30,36.|XX ..}.|
|00000430| 58 58 20 20 09 09 69 66 | 20 28 53 50 2d 3e 6d 6c |XX ..if| (SP->ml|
|00000440| 5f 61 62 6f 76 65 20 2b | 20 6c 69 6e 65 73 20 3e |_above +| lines >|
|00000450| 20 6c 69 6e 65 73 5f 6f | 66 5f 6d 65 6d 6f 72 79 | lines_o|f_memory|
|00000460| 29 0a 58 58 20 20 09 09 | 09 53 50 2d 3e 6d 6c 5f |).XX ..|.SP->ml_|
|00000470| 61 62 6f 76 65 20 3d 20 | 6c 69 6e 65 73 5f 6f 66 |above = |lines_of|
|00000480| 5f 6d 65 6d 6f 72 79 20 | 2d 20 6c 69 6e 65 73 3b |_memory |- lines;|
|00000490| 0a 58 58 21 20 09 7d 20 | 65 6c 73 65 20 69 66 20 |.XX! .} |else if |
|000004a0| 28 70 61 72 6d 5f 64 65 | 6c 65 74 65 5f 6c 69 6e |(parm_de|lete_lin|
|000004b0| 65 20 26 26 20 28 6e 3e | 31 20 7c 7c 20 2a 64 65 |e && (n>|1 || *de|
|000004c0| 6c 65 74 65 5f 6c 69 6e | 65 3d 3d 30 29 29 20 7b |lete_lin|e==0)) {|
|000004d0| 0a 58 58 20 20 09 09 74 | 70 75 74 73 28 74 70 61 |.XX ..t|puts(tpa|
|000004e0| 72 6d 28 70 61 72 6d 5f | 64 65 6c 65 74 65 5f 6c |rm(parm_|delete_l|
|000004f0| 69 6e 65 2c 20 6e 2c 20 | 53 50 2d 3e 70 68 79 73 |ine, n, |SP->phys|
|00000500| 5f 79 29 2c 20 6c 69 6e | 65 73 2d 53 50 2d 3e 70 |_y), lin|es-SP->p|
|00000510| 68 79 73 5f 79 2c 20 5f | 6f 75 74 63 68 29 3b 0a |hys_y, _|outch);.|
|00000520| 58 58 20 20 09 7d 0a 58 | 58 20 20 09 65 6c 73 65 |XX .}.X|X .else|
|00000530| 20 69 66 20 28 63 68 61 | 6e 67 65 5f 73 63 72 6f | if (cha|nge_scro|
|00000540| 6c 6c 5f 72 65 67 69 6f | 6e 20 26 26 20 2a 64 65 |ll_regio|n && *de|
|00000550| 6c 65 74 65 5f 6c 69 6e | 65 3d 3d 30 29 20 7b 0a |lete_lin|e==0) {.|
|00000560| 0a 58 58 2d 2d 2d 20 33 | 30 2c 33 36 20 2d 2d 2d |.XX--- 3|0,36 ---|
|00000570| 2d 2d 0a 58 58 20 20 09 | 09 7d 0a 58 58 20 20 09 |--.XX .|.}.XX .|
|00000580| 09 69 66 20 28 53 50 2d | 3e 6d 6c 5f 61 62 6f 76 |.if (SP-|>ml_abov|
|00000590| 65 20 2b 20 6c 69 6e 65 | 73 20 3e 20 6c 69 6e 65 |e + line|s > line|
|000005a0| 73 5f 6f 66 5f 6d 65 6d | 6f 72 79 29 0a 58 58 20 |s_of_mem|ory).XX |
|000005b0| 20 09 09 09 53 50 2d 3e | 6d 6c 5f 61 62 6f 76 65 | ...SP->|ml_above|
|000005c0| 20 3d 20 6c 69 6e 65 73 | 5f 6f 66 5f 6d 65 6d 6f | = lines|_of_memo|
|000005d0| 72 79 20 2d 20 6c 69 6e | 65 73 3b 0a 58 58 21 20 |ry - lin|es;.XX! |
|000005e0| 09 7d 20 65 6c 73 65 20 | 69 66 20 28 70 61 72 6d |.} else |if (parm|
|000005f0| 5f 64 65 6c 65 74 65 5f | 6c 69 6e 65 20 26 26 20 |_delete_|line && |
|00000600| 28 6e 3e 31 20 7c 7c 20 | 64 65 6c 65 74 65 5f 6c |(n>1 || |delete_l|
|00000610| 69 6e 65 3d 3d 30 29 29 | 20 7b 0a 58 58 20 20 09 |ine==0))| {.XX .|
|00000620| 09 74 70 75 74 73 28 74 | 70 61 72 6d 28 70 61 72 |.tputs(t|parm(par|
|00000630| 6d 5f 64 65 6c 65 74 65 | 5f 6c 69 6e 65 2c 20 6e |m_delete|_line, n|
|00000640| 2c 20 53 50 2d 3e 70 68 | 79 73 5f 79 29 2c 20 6c |, SP->ph|ys_y), l|
|00000650| 69 6e 65 73 2d 53 50 2d | 3e 70 68 79 73 5f 79 2c |ines-SP-|>phys_y,|
|00000660| 20 5f 6f 75 74 63 68 29 | 3b 0a 58 58 20 20 09 7d | _outch)|;.XX .}|
|00000670| 0a 58 58 20 20 09 65 6c | 73 65 20 69 66 20 28 63 |.XX .el|se if (c|
|00000680| 68 61 6e 67 65 5f 73 63 | 72 6f 6c 6c 5f 72 65 67 |hange_sc|roll_reg|
|00000690| 69 6f 6e 20 26 26 20 64 | 65 6c 65 74 65 5f 6c 69 |ion && d|elete_li|
|000006a0| 6e 65 3d 3d 30 29 20 7b | 0a 58 58 2a 2a 2a 2a 2a |ne==0) {|.XX*****|
|000006b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 0a 58 58 2a 2a 2a |********|**.XX***|
|000006c0| 20 33 33 2c 33 39 0a 58 | 58 20 20 09 7d 20 65 6c | 33,39.X|X .} el|
|000006d0| 73 65 20 69 66 20 28 70 | 61 72 6d 5f 64 65 6c 65 |se if (p|arm_dele|
|000006e0| 74 65 5f 6c 69 6e 65 20 | 26 26 20 28 6e 3e 31 20 |te_line |&& (n>1 |
|000006f0| 7c 7c 20 2a 64 65 6c 65 | 74 65 5f 6c 69 6e 65 3d ||| *dele|te_line=|
|00000700| 3d 30 29 29 20 7b 0a 58 | 58 20 20 09 09 74 70 75 |=0)) {.X|X ..tpu|
|00000710| 74 73 28 74 70 61 72 6d | 28 70 61 72 6d 5f 64 65 |ts(tparm|(parm_de|
|00000720| 6c 65 74 65 5f 6c 69 6e | 65 2c 20 6e 2c 20 53 50 |lete_lin|e, n, SP|
|00000730| 2d 3e 70 68 79 73 5f 79 | 29 2c 20 6c 69 6e 65 73 |->phys_y|), lines|
|00000740| 2d 53 50 2d 3e 70 68 79 | 73 5f 79 2c 20 5f 6f 75 |-SP->phy|s_y, _ou|
|00000750| 74 63 68 29 3b 0a 58 58 | 20 20 09 7d 0a 58 58 21 |tch);.XX| .}.XX!|
|00000760| 20 09 65 6c 73 65 20 69 | 66 20 28 63 68 61 6e 67 | .else i|f (chang|
|00000770| 65 5f 73 63 72 6f 6c 6c | 5f 72 65 67 69 6f 6e 20 |e_scroll|_region |
|00000780| 26 26 20 2a 64 65 6c 65 | 74 65 5f 6c 69 6e 65 3d |&& *dele|te_line=|
|00000790| 3d 30 29 20 7b 0a 58 58 | 20 20 09 09 2f 2a 20 76 |=0) {.XX| ../* v|
|000007a0| 74 31 30 30 3a 20 66 61 | 6b 65 20 64 65 6c 65 74 |t100: fa|ke delet|
|000007b0| 65 5f 6c 69 6e 65 20 62 | 79 20 63 68 61 6e 67 69 |e_line b|y changi|
|000007c0| 6e 67 20 73 63 72 6f 6c | 6c 69 6e 67 20 72 65 67 |ng scrol|ling reg|
|000007d0| 69 6f 6e 20 2a 2f 0a 58 | 58 20 20 09 09 2f 2a 20 |ion */.X|X ../* |
|000007e0| 53 61 76 65 20 73 69 6e | 63 65 20 63 68 61 6e 67 |Save sin|ce chang|
|000007f0| 65 5f 73 63 72 6f 6c 6c | 5f 72 65 67 69 6f 6e 20 |e_scroll|_region |
|00000800| 68 6f 6d 65 73 20 63 75 | 72 73 6f 72 20 2a 2f 0a |homes cu|rsor */.|
|00000810| 58 58 20 20 09 09 74 70 | 75 74 73 28 73 61 76 65 |XX ..tp|uts(save|
|00000820| 5f 63 75 72 73 6f 72 2c | 20 31 2c 20 5f 6f 75 74 |_cursor,| 1, _out|
|00000830| 63 68 29 3b 0a 0a 58 58 | 2d 2d 2d 20 33 33 2c 33 |ch);..XX|--- 33,3|
|00000840| 39 20 2d 2d 2d 2d 2d 0a | 58 58 20 20 09 7d 20 65 |9 -----.|XX .} e|
|00000850| 6c 73 65 20 69 66 20 28 | 70 61 72 6d 5f 64 65 6c |lse if (|parm_del|
|00000860| 65 74 65 5f 6c 69 6e 65 | 20 26 26 20 28 6e 3e 31 |ete_line| && (n>1|
|00000870| 20 7c 7c 20 64 65 6c 65 | 74 65 5f 6c 69 6e 65 3d | || dele|te_line=|
|00000880| 3d 30 29 29 20 7b 0a 58 | 58 20 20 09 09 74 70 75 |=0)) {.X|X ..tpu|
|00000890| 74 73 28 74 70 61 72 6d | 28 70 61 72 6d 5f 64 65 |ts(tparm|(parm_de|
|000008a0| 6c 65 74 65 5f 6c 69 6e | 65 2c 20 6e 2c 20 53 50 |lete_lin|e, n, SP|
|000008b0| 2d 3e 70 68 79 73 5f 79 | 29 2c 20 6c 69 6e 65 73 |->phys_y|), lines|
|000008c0| 2d 53 50 2d 3e 70 68 79 | 73 5f 79 2c 20 5f 6f 75 |-SP->phy|s_y, _ou|
|000008d0| 74 63 68 29 3b 0a 58 58 | 20 20 09 7d 0a 58 58 21 |tch);.XX| .}.XX!|
|000008e0| 20 09 65 6c 73 65 20 69 | 66 20 28 63 68 61 6e 67 | .else i|f (chang|
|000008f0| 65 5f 73 63 72 6f 6c 6c | 5f 72 65 67 69 6f 6e 20 |e_scroll|_region |
|00000900| 26 26 20 64 65 6c 65 74 | 65 5f 6c 69 6e 65 3d 3d |&& delet|e_line==|
|00000910| 30 29 20 7b 0a 58 58 20 | 20 09 09 2f 2a 20 76 74 |0) {.XX | ../* vt|
|00000920| 31 30 30 3a 20 66 61 6b | 65 20 64 65 6c 65 74 65 |100: fak|e delete|
|00000930| 5f 6c 69 6e 65 20 62 79 | 20 63 68 61 6e 67 69 6e |_line by| changin|
|00000940| 67 20 73 63 72 6f 6c 6c | 69 6e 67 20 72 65 67 69 |g scroll|ing regi|
|00000950| 6f 6e 20 2a 2f 0a 58 58 | 20 20 09 09 2f 2a 20 53 |on */.XX| ../* S|
|00000960| 61 76 65 20 73 69 6e 63 | 65 20 63 68 61 6e 67 65 |ave sinc|e change|
|00000970| 5f 73 63 72 6f 6c 6c 5f | 72 65 67 69 6f 6e 20 68 |_scroll_|region h|
|00000980| 6f 6d 65 73 20 63 75 72 | 73 6f 72 20 2a 2f 0a 58 |omes cur|sor */.X|
|00000990| 58 20 20 09 09 74 70 75 | 74 73 28 73 61 76 65 5f |X ..tpu|ts(save_|
|000009a0| 63 75 72 73 6f 72 2c 20 | 31 2c 20 5f 6f 75 74 63 |cursor, |1, _outc|
|000009b0| 68 29 3b 0a 40 2f 2f 45 | 2a 4f 2a 46 20 42 55 47 |h);.@//E|*O*F BUG|
|000009c0| 46 49 58 2f 2f 0a 63 68 | 6d 6f 64 20 75 3d 72 77 |FIX//.ch|mod u=rw|
|000009d0| 2c 67 3d 72 77 2c 6f 3d | 72 77 20 24 4f 55 54 0a |,g=rw,o=|rw $OUT.|
|000009e0| 20 0a 65 63 68 6f 20 78 | 20 2d 20 42 55 47 46 49 | .echo x| - BUGFI|
|000009f0| 58 32 0a 69 66 20 74 65 | 73 74 20 2d 66 20 42 55 |X2.if te|st -f BU|
|00000a00| 47 46 49 58 32 20 3b 20 | 74 68 65 6e 0a 20 20 20 |GFIX2 ; |then. |
|00000a10| 20 65 63 68 6f 20 42 55 | 47 46 49 58 32 20 65 78 | echo BU|GFIX2 ex|
|00000a20| 69 73 74 73 2c 20 70 75 | 74 74 69 6e 67 20 6f 75 |ists, pu|tting ou|
|00000a30| 74 70 75 74 20 69 6e 20 | 24 24 42 55 47 46 49 58 |tput in |$$BUGFIX|
|00000a40| 32 0a 20 20 20 20 4f 55 | 54 3d 24 24 42 55 47 46 |2. OU|T=$$BUGF|
|00000a50| 49 58 32 0a 20 20 20 20 | 53 54 41 54 55 53 3d 31 |IX2. |STATUS=1|
|00000a60| 0a 65 6c 73 65 0a 20 20 | 20 20 4f 55 54 3d 42 55 |.else. | OUT=BU|
|00000a70| 47 46 49 58 32 0a 66 69 | 0a 73 65 64 20 27 73 2f |GFIX2.fi|.sed 's/|
|00000a80| 5e 58 58 2f 2f 27 20 3e | 20 24 4f 55 54 20 3c 3c |^XX//' >| $OUT <<|
|00000a90| 27 40 2f 2f 45 2a 4f 2a | 46 20 42 55 47 46 49 58 |'@//E*O*|F BUGFIX|
|00000aa0| 32 2f 2f 27 0a 58 58 46 | 69 78 20 64 69 73 61 62 |2//'.XXF|ix disab|
|00000ab0| 6c 65 20 54 49 4d 45 4f | 55 54 20 66 65 61 74 75 |le TIMEO|UT featu|
|00000ac0| 72 65 20 6f 6e 20 72 65 | 61 64 2d 61 68 65 61 64 |re on re|ad-ahead|
|00000ad0| 20 28 66 6f 72 20 27 6e | 6f 74 69 6d 65 6f 75 74 | (for 'n|otimeout|
|00000ae0| 27 20 66 65 61 74 75 72 | 65 0a 58 58 6f 66 20 72 |' featur|e.XXof r|
|00000af0| 76 69 2e 29 20 20 4e 6f | 74 20 72 65 61 6c 6c 79 |vi.) No|t really|
|00000b00| 20 61 20 62 75 67 2e 0a | 0a 58 58 2a 2a 2a 20 67 | a bug..|.XX*** g|
|00000b10| 65 74 63 68 2e 6f 72 69 | 67 09 54 68 75 20 4a 61 |etch.ori|g.Thu Ja|
|00000b20| 6e 20 32 33 20 31 35 3a | 30 39 3a 34 31 20 31 39 |n 23 15:|09:41 19|
|00000b30| 38 36 0a 58 58 2d 2d 2d | 20 67 65 74 63 68 2e 63 |86.XX---| getch.c|
|00000b40| 09 54 68 75 20 4a 61 6e | 20 32 33 20 31 35 3a 31 |.Thu Jan| 23 15:1|
|00000b50| 31 3a 35 36 20 31 39 38 | 36 0a 58 58 2a 2a 2a 2a |1:56 198|6.XX****|
|00000b60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0a 58 58 2a 2a |********|***.XX**|
|00000b70| 2a 20 31 31 33 2c 31 31 | 39 0a 58 58 20 20 09 09 |* 113,11|9.XX ..|
|00000b80| 09 09 09 69 66 20 28 53 | 50 2d 3e 6b 70 5b 69 5d |...if (S|P->kp[i]|
|00000b90| 2e 73 65 6e 64 73 5b 6a | 5d 20 3c 3d 20 30 29 0a |.sends[j|] <= 0).|
|00000ba0| 58 58 20 20 09 09 09 09 | 09 09 62 72 65 61 6b 3b |XX ....|..break;|
|00000bb0| 09 2f 2a 20 66 6f 75 6e | 64 20 2a 2f 0a 58 58 20 |./* foun|d */.XX |
|00000bc0| 20 09 09 09 09 09 69 66 | 20 28 53 50 2d 3e 69 6e | .....if| (SP->in|
|00000bd0| 70 75 74 5f 71 75 65 75 | 65 5b 6a 5d 20 3d 3d 20 |put_queu|e[j] == |
|00000be0| 2d 31 29 20 7b 0a 58 58 | 21 20 09 09 09 09 09 09 |-1) {.XX|! ......|
|00000bf0| 53 50 2d 3e 69 6e 70 75 | 74 5f 71 75 65 75 65 5b |SP->inpu|t_queue[|
|00000c00| 6a 5d 20 3d 20 5f 66 70 | 6b 28 69 6e 66 29 3b 0a |j] = _fp|k(inf);.|
|00000c10| 58 58 20 20 09 09 09 09 | 09 09 53 50 2d 3e 69 6e |XX ....|..SP->in|
|00000c20| 70 75 74 5f 71 75 65 75 | 65 5b 6a 2b 31 5d 20 3d |put_queu|e[j+1] =|
|00000c30| 20 2d 31 3b 0a 58 58 20 | 20 09 09 09 09 09 7d 0a | -1;.XX | .....}.|
|00000c40| 58 58 20 20 09 09 09 09 | 09 69 66 20 28 53 50 2d |XX ....|.if (SP-|
|00000c50| 3e 6b 70 5b 69 5d 2e 73 | 65 6e 64 73 5b 6a 5d 20 |>kp[i].s|ends[j] |
|00000c60| 21 3d 20 53 50 2d 3e 69 | 6e 70 75 74 5f 71 75 65 |!= SP->i|nput_que|
|00000c70| 75 65 5b 6a 5d 29 0a 0a | 58 58 2d 2d 2d 20 31 31 |ue[j])..|XX--- 11|
|00000c80| 33 2c 31 32 32 20 2d 2d | 2d 2d 2d 0a 58 58 20 20 |3,122 --|---.XX |
|00000c90| 09 09 09 09 09 69 66 20 | 28 53 50 2d 3e 6b 70 5b |.....if |(SP->kp[|
|00000ca0| 69 5d 2e 73 65 6e 64 73 | 5b 6a 5d 20 3c 3d 20 30 |i].sends|[j] <= 0|
|00000cb0| 29 0a 58 58 20 20 09 09 | 09 09 09 09 62 72 65 61 |).XX ..|....brea|
|00000cc0| 6b 3b 09 2f 2a 20 66 6f | 75 6e 64 20 2a 2f 0a 58 |k;./* fo|und */.X|
|00000cd0| 58 20 20 09 09 09 09 09 | 69 66 20 28 53 50 2d 3e |X .....|if (SP->|
|00000ce0| 69 6e 70 75 74 5f 71 75 | 65 75 65 5b 6a 5d 20 3d |input_qu|eue[j] =|
|00000cf0| 3d 20 2d 31 29 20 7b 0a | 58 58 21 20 09 09 09 09 |= -1) {.|XX! ....|
|00000d00| 09 09 69 66 20 28 77 69 | 6e 2d 3e 5f 75 73 65 5f |..if (wi|n->_use_|
|00000d10| 6b 65 79 70 61 64 20 3d | 3d 20 32 29 0a 58 58 21 |keypad =|= 2).XX!|
|00000d20| 20 09 09 09 09 09 09 09 | 72 65 61 64 28 66 69 6c | .......|read(fil|
|00000d30| 65 6e 6f 28 69 6e 66 29 | 2c 20 26 53 50 2d 3e 69 |eno(inf)|, &SP->i|
|00000d40| 6e 70 75 74 5f 71 75 65 | 75 65 5b 6a 5d 2c 20 31 |nput_que|ue[j], 1|
|00000d50| 29 3b 0a 58 58 21 20 09 | 09 09 09 09 09 65 6c 73 |);.XX! .|.....els|
|00000d60| 65 0a 58 58 21 20 09 09 | 09 09 09 09 09 53 50 2d |e.XX! ..|.....SP-|
|00000d70| 3e 69 6e 70 75 74 5f 71 | 75 65 75 65 5b 6a 5d 20 |>input_q|ueue[j] |
|00000d80| 3d 20 5f 66 70 6b 28 69 | 6e 66 29 3b 0a 58 58 20 |= _fpk(i|nf);.XX |
|00000d90| 20 09 09 09 09 09 09 53 | 50 2d 3e 69 6e 70 75 74 | ......S|P->input|
|00000da0| 5f 71 75 65 75 65 5b 6a | 2b 31 5d 20 3d 20 2d 31 |_queue[j|+1] = -1|
|00000db0| 3b 0a 58 58 20 20 09 09 | 09 09 09 7d 0a 58 58 20 |;.XX ..|...}.XX |
|00000dc0| 20 09 09 09 09 09 69 66 | 20 28 53 50 2d 3e 6b 70 | .....if| (SP->kp|
|00000dd0| 5b 69 5d 2e 73 65 6e 64 | 73 5b 6a 5d 20 21 3d 20 |[i].send|s[j] != |
|00000de0| 53 50 2d 3e 69 6e 70 75 | 74 5f 71 75 65 75 65 5b |SP->inpu|t_queue[|
|00000df0| 6a 5d 29 0a 40 2f 2f 45 | 2a 4f 2a 46 20 42 55 47 |j]).@//E|*O*F BUG|
|00000e00| 46 49 58 32 2f 2f 0a 63 | 68 6d 6f 64 20 75 3d 72 |FIX2//.c|hmod u=r|
|00000e10| 77 2c 67 3d 72 77 2c 6f | 3d 72 77 20 24 4f 55 54 |w,g=rw,o|=rw $OUT|
|00000e20| 0a 20 0a 65 63 68 6f 20 | 78 20 2d 20 4d 61 6b 65 |. .echo |x - Make|
|00000e30| 66 69 6c 65 2e 62 73 64 | 0a 69 66 20 74 65 73 74 |file.bsd|.if test|
|00000e40| 20 2d 66 20 4d 61 6b 65 | 66 69 6c 65 2e 62 73 64 | -f Make|file.bsd|
|00000e50| 20 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f | ; then.| echo|
|00000e60| 20 4d 61 6b 65 66 69 6c | 65 2e 62 73 64 20 65 78 | Makefil|e.bsd ex|
|00000e70| 69 73 74 73 2c 20 70 75 | 74 74 69 6e 67 20 6f 75 |ists, pu|tting ou|
|00000e80| 74 70 75 74 20 69 6e 20 | 24 24 4d 61 6b 65 66 69 |tput in |$$Makefi|
|00000e90| 6c 65 2e 62 73 64 0a 20 | 20 20 20 4f 55 54 3d 24 |le.bsd. | OUT=$|
|00000ea0| 24 4d 61 6b 65 66 69 6c | 65 2e 62 73 64 0a 20 20 |$Makefil|e.bsd. |
|00000eb0| 20 20 53 54 41 54 55 53 | 3d 31 0a 65 6c 73 65 0a | STATUS|=1.else.|
|00000ec0| 20 20 20 20 4f 55 54 3d | 4d 61 6b 65 66 69 6c 65 | OUT=|Makefile|
|00000ed0| 2e 62 73 64 0a 66 69 0a | 73 65 64 20 27 73 2f 5e |.bsd.fi.|sed 's/^|
|00000ee0| 58 58 2f 2f 27 20 3e 20 | 24 4f 55 54 20 3c 3c 27 |XX//' > |$OUT <<'|
|00000ef0| 40 2f 2f 45 2a 4f 2a 46 | 20 4d 61 6b 65 66 69 6c |@//E*O*F| Makefil|
|00000f00| 65 2e 62 73 64 2f 2f 27 | 0a 58 58 23 0a 58 58 23 |e.bsd//'|.XX#.XX#|
|00000f10| 20 55 73 65 20 74 68 69 | 73 20 4d 61 6b 65 66 69 | Use thi|s Makefi|
|00000f20| 6c 65 20 66 6f 72 20 62 | 75 69 6c 64 69 6e 67 20 |le for b|uilding |
|00000f30| 72 76 69 20 6f 6e 20 42 | 53 44 20 73 79 73 74 65 |rvi on B|SD syste|
|00000f40| 6d 73 2c 20 6f 72 0a 58 | 58 23 20 6f 6e 20 55 53 |ms, or.X|X# on US|
|00000f50| 47 20 73 79 73 74 65 6d | 73 20 75 73 69 6e 67 20 |G system|s using |
|00000f60| 74 68 65 20 6f 6c 64 20 | 74 65 72 6d 63 61 70 2d |the old |termcap-|
|00000f70| 73 74 79 6c 65 20 63 75 | 72 73 65 73 2e 0a 58 58 |style cu|rses..XX|
|00000f80| 23 0a 58 58 43 46 4c 41 | 47 53 3d 20 2d 4f 0a 58 |#.XXCFLA|GS= -O.X|
|00000f90| 58 4c 44 46 4c 41 47 53 | 3d 0a 58 58 4c 49 42 3d |XLDFLAGS|=.XXLIB=|
|00000fa0| 20 2d 6c 63 75 72 73 65 | 73 20 2d 6c 74 65 72 6d | -lcurse|s -lterm|
|00000fb0| 6c 69 62 0a 0a 58 58 4f | 42 4a 53 3d 20 20 20 72 |lib..XXO|BJS= r|
|00000fc0| 76 5f 69 6e 69 74 2e 6f | 20 72 76 5f 6d 61 69 6e |v_init.o| rv_main|
|00000fd0| 2e 6f 20 72 76 5f 72 65 | 64 72 61 77 2e 6f 20 72 |.o rv_re|draw.o r|
|00000fe0| 76 5f 69 6e 70 75 74 2e | 6f 20 72 76 5f 6d 6f 76 |v_input.|o rv_mov|
|00000ff0| 65 2e 6f 20 72 76 5f 63 | 6d 64 2e 6f 20 5c 0a 58 |e.o rv_c|md.o \.X|
|00001000| 58 09 72 76 5f 64 75 6d | 6d 79 2e 6f 20 72 76 5f |X.rv_dum|my.o rv_|
|00001010| 70 72 69 6e 74 5f 6c 6e | 2e 6f 20 72 76 5f 73 63 |print_ln|.o rv_sc|
|00001020| 72 6f 6c 6c 2e 6f 20 72 | 76 5f 73 63 72 6f 6c 6c |roll.o r|v_scroll|
|00001030| 5f 62 6b 2e 6f 20 72 76 | 5f 63 6f 6c 75 6d 6e 2e |_bk.o rv|_column.|
|00001040| 6f 20 5c 0a 58 58 09 72 | 76 5f 77 68 65 72 65 2e |o \.XX.r|v_where.|
|00001050| 6f 20 72 76 5f 6d 69 73 | 63 2e 6f 20 72 76 5f 64 |o rv_mis|c.o rv_d|
|00001060| 65 6c 65 74 65 2e 6f 20 | 72 76 5f 64 65 6c 63 6f |elete.o |rv_delco|
|00001070| 6c 2e 6f 20 72 76 5f 72 | 65 64 72 61 77 5f 6c 6e |l.o rv_r|edraw_ln|
|00001080| 2e 6f 20 5c 0a 58 58 09 | 72 76 5f 69 6e 73 65 72 |.o \.XX.|rv_inser|
|00001090| 74 2e 6f 20 72 76 5f 75 | 6e 64 6f 2e 6f 20 72 76 |t.o rv_u|ndo.o rv|
|000010a0| 5f 6f 70 65 6e 6c 69 6e | 65 2e 6f 20 72 76 5f 63 |_openlin|e.o rv_c|
|000010b0| 68 61 6e 67 65 2e 6f 20 | 72 76 5f 70 75 74 2e 6f |hange.o |rv_put.o|
|000010c0| 20 72 76 5f 79 61 6e 6b | 2e 6f 20 5c 0a 58 58 09 | rv_yank|.o \.XX.|
|000010d0| 72 76 5f 73 79 6e 63 2e | 6f 20 72 76 5f 78 6d 69 |rv_sync.|o rv_xmi|
|000010e0| 74 2e 6f 20 72 76 5f 65 | 64 69 74 2e 6f 20 72 76 |t.o rv_e|dit.o rv|
|000010f0| 5f 66 65 74 63 68 2e 6f | 20 72 76 5f 66 6c 61 73 |_fetch.o| rv_flas|
|00001100| 68 2e 6f 20 72 76 5f 64 | 6f 74 2e 6f 20 5c 0a 58 |h.o rv_d|ot.o \.X|
|00001110| 58 09 72 76 5f 6a 6f 69 | 6e 2e 6f 20 72 76 5f 66 |X.rv_joi|n.o rv_f|
|00001120| 6f 72 62 61 63 6b 2e 6f | 20 72 76 5f 67 65 74 6c |orback.o| rv_getl|
|00001130| 69 6e 65 2e 6f 20 72 76 | 5f 73 65 61 72 63 68 2e |ine.o rv|_search.|
|00001140| 6f 20 5c 0a 58 58 09 62 | 69 6e 73 65 61 72 63 68 |o \.XX.b|insearch|
|00001150| 2e 6f 20 72 76 5f 6c 69 | 6e 65 63 6d 64 2e 6f 20 |.o rv_li|necmd.o |
|00001160| 63 6f 70 79 2e 6f 20 7a | 65 72 6f 2e 6f 20 20 72 |copy.o z|ero.o r|
|00001170| 76 5f 71 75 69 74 2e 6f | 20 5c 0a 58 58 09 72 65 |v_quit.o| \.XX.re|
|00001180| 67 65 78 70 2e 6f 20 72 | 65 67 65 72 72 6f 72 2e |gexp.o r|egerror.|
|00001190| 6f 20 72 76 5f 77 6f 72 | 64 2e 6f 20 72 76 5f 6d |o rv_wor|d.o rv_m|
|000011a0| 61 72 6b 2e 6f 20 72 76 | 5f 73 68 65 6c 6c 2e 6f |ark.o rv|_shell.o|
|000011b0| 20 72 76 5f 66 61 73 74 | 2e 6f 0a 0a 58 58 61 6c | rv_fast|.o..XXal|
|000011c0| 6c 3a 20 20 72 76 74 65 | 73 74 20 72 76 69 0a 0a |l: rvte|st rvi..|
|000011d0| 58 58 72 76 74 65 73 74 | 3a 20 72 76 74 65 73 74 |XXrvtest|: rvtest|
|000011e0| 2e 63 0a 58 58 09 24 28 | 43 43 29 20 72 76 74 65 |.c.XX.$(|CC) rvte|
|000011f0| 73 74 2e 63 20 2d 6f 20 | 72 76 74 65 73 74 0a 0a |st.c -o |rvtest..|
|00001200| 58 58 72 76 69 3a 20 24 | 28 4f 42 4a 53 29 0a 58 |XXrvi: $|(OBJS).X|
|00001210| 58 09 24 28 43 43 29 20 | 24 28 43 46 4c 41 47 53 |X.$(CC) |$(CFLAGS|
|00001220| 29 20 24 28 4c 44 46 4c | 41 47 53 29 20 24 28 4f |) $(LDFL|AGS) $(O|
|00001230| 42 4a 53 29 20 24 28 4c | 49 42 29 20 2d 6f 20 72 |BJS) $(L|IB) -o r|
|00001240| 76 69 0a 0a 58 58 70 72 | 69 6e 74 3a 0a 58 58 09 |vi..XXpr|int:.XX.|
|00001250| 70 72 20 2d 66 20 72 76 | 2e 68 20 72 76 2a 2e 63 |pr -f rv|.h rv*.c|
|00001260| 20 3e 20 6c 69 73 74 0a | 58 58 09 72 65 76 65 72 | > list.|XX.rever|
|00001270| 73 65 20 6c 69 73 74 20 | 3e 20 6c 69 73 74 32 0a |se list |> list2.|
|00001280| 58 58 09 71 70 72 20 2d | 71 20 73 77 20 6c 69 73 |XX.qpr -|q sw lis|
|00001290| 74 32 0a 58 58 09 72 6d | 20 2d 66 20 6c 69 73 74 |t2.XX.rm| -f list|
|000012a0| 20 6c 69 73 74 32 0a 0a | 58 58 62 61 63 6b 75 70 | list2..|XXbackup|
|000012b0| 3a 0a 58 58 09 63 70 20 | 2a 2e 5b 63 68 5d 20 62 |:.XX.cp |*.[ch] b|
|000012c0| 61 6b 0a 0a 58 58 6c 69 | 6e 74 3a 0a 58 58 09 6c |ak..XXli|nt:.XX.l|
|000012d0| 69 6e 74 20 2a 2e 63 20 | 24 28 4c 49 42 29 0a 0a |int *.c |$(LIB)..|
|000012e0| 58 58 63 6c 65 61 6e 3a | 0a 58 58 09 72 6d 20 2d |XXclean:|.XX.rm -|
|000012f0| 66 20 2a 2e 6f 0a 40 2f | 2f 45 2a 4f 2a 46 20 4d |f *.o.@/|/E*O*F M|
|00001300| 61 6b 65 66 69 6c 65 2e | 62 73 64 2f 2f 0a 63 68 |akefile.|bsd//.ch|
|00001310| 6d 6f 64 20 75 3d 72 77 | 2c 67 3d 72 77 2c 6f 3d |mod u=rw|,g=rw,o=|
|00001320| 72 77 20 24 4f 55 54 0a | 20 0a 65 63 68 6f 20 78 |rw $OUT.| .echo x|
|00001330| 20 2d 20 4d 61 6b 65 66 | 69 6c 65 2e 75 73 67 0a | - Makef|ile.usg.|
|00001340| 69 66 20 74 65 73 74 20 | 2d 66 20 4d 61 6b 65 66 |if test |-f Makef|
|00001350| 69 6c 65 2e 75 73 67 20 | 3b 20 74 68 65 6e 0a 20 |ile.usg |; then. |
|00001360| 20 20 20 65 63 68 6f 20 | 4d 61 6b 65 66 69 6c 65 | echo |Makefile|
|00001370| 2e 75 73 67 20 65 78 69 | 73 74 73 2c 20 70 75 74 |.usg exi|sts, put|
|00001380| 74 69 6e 67 20 6f 75 74 | 70 75 74 20 69 6e 20 24 |ting out|put in $|
|00001390| 24 4d 61 6b 65 66 69 6c | 65 2e 75 73 67 0a 20 20 |$Makefil|e.usg. |
|000013a0| 20 20 4f 55 54 3d 24 24 | 4d 61 6b 65 66 69 6c 65 | OUT=$$|Makefile|
|000013b0| 2e 75 73 67 0a 20 20 20 | 20 53 54 41 54 55 53 3d |.usg. | STATUS=|
|000013c0| 31 0a 65 6c 73 65 0a 20 | 20 20 20 4f 55 54 3d 4d |1.else. | OUT=M|
|000013d0| 61 6b 65 66 69 6c 65 2e | 75 73 67 0a 66 69 0a 73 |akefile.|usg.fi.s|
|000013e0| 65 64 20 27 73 2f 5e 58 | 58 2f 2f 27 20 3e 20 24 |ed 's/^X|X//' > $|
|000013f0| 4f 55 54 20 3c 3c 27 40 | 2f 2f 45 2a 4f 2a 46 20 |OUT <<'@|//E*O*F |
|00001400| 4d 61 6b 65 66 69 6c 65 | 2e 75 73 67 2f 2f 27 0a |Makefile|.usg//'.|
|00001410| 58 58 23 0a 58 58 23 20 | 55 73 65 20 74 68 69 73 |XX#.XX# |Use this|
|00001420| 20 4d 61 6b 65 66 69 6c | 65 20 66 6f 72 20 62 75 | Makefil|e for bu|
|00001430| 69 6c 64 69 6e 67 20 72 | 76 69 20 6f 6e 20 55 53 |ilding r|vi on US|
|00001440| 47 20 73 79 73 74 65 6d | 73 20 28 77 69 74 68 20 |G system|s (with |
|00001450| 74 65 72 6d 69 6e 66 6f | 29 2e 0a 58 58 23 0a 58 |terminfo|)..XX#.X|
|00001460| 58 43 46 4c 41 47 53 3d | 20 2d 4f 20 2d 44 4b 45 |XCFLAGS=| -O -DKE|
|00001470| 59 50 41 44 20 2d 44 56 | 49 44 45 4f 0a 58 58 4c |YPAD -DV|IDEO.XXL|
|00001480| 44 46 4c 41 47 53 3d 0a | 58 58 4c 49 42 3d 20 2d |DFLAGS=.|XXLIB= -|
|00001490| 6c 63 75 72 73 65 73 0a | 0a 58 58 4f 42 4a 53 3d |lcurses.|.XXOBJS=|
|000014a0| 20 20 20 72 76 5f 69 6e | 69 74 2e 6f 20 72 76 5f | rv_in|it.o rv_|
|000014b0| 6d 61 69 6e 2e 6f 20 72 | 76 5f 72 65 64 72 61 77 |main.o r|v_redraw|
|000014c0| 2e 6f 20 72 76 5f 69 6e | 70 75 74 2e 6f 20 72 76 |.o rv_in|put.o rv|
|000014d0| 5f 6d 6f 76 65 2e 6f 20 | 72 76 5f 63 6d 64 2e 6f |_move.o |rv_cmd.o|
|000014e0| 20 5c 0a 58 58 09 72 76 | 5f 64 75 6d 6d 79 2e 6f | \.XX.rv|_dummy.o|
|000014f0| 20 72 76 5f 70 72 69 6e | 74 5f 6c 6e 2e 6f 20 72 | rv_prin|t_ln.o r|
|00001500| 76 5f 73 63 72 6f 6c 6c | 2e 6f 20 72 76 5f 73 63 |v_scroll|.o rv_sc|
|00001510| 72 6f 6c 6c 5f 62 6b 2e | 6f 20 72 76 5f 63 6f 6c |roll_bk.|o rv_col|
|00001520| 75 6d 6e 2e 6f 20 5c 0a | 58 58 09 72 76 5f 77 68 |umn.o \.|XX.rv_wh|
|00001530| 65 72 65 2e 6f 20 72 76 | 5f 6d 69 73 63 2e 6f 20 |ere.o rv|_misc.o |
|00001540| 72 76 5f 64 65 6c 65 74 | 65 2e 6f 20 72 76 5f 64 |rv_delet|e.o rv_d|
|00001550| 65 6c 63 6f 6c 2e 6f 20 | 72 76 5f 72 65 64 72 61 |elcol.o |rv_redra|
|00001560| 77 5f 6c 6e 2e 6f 20 5c | 0a 58 58 09 72 76 5f 69 |w_ln.o \|.XX.rv_i|
|00001570| 6e 73 65 72 74 2e 6f 20 | 72 76 5f 75 6e 64 6f 2e |nsert.o |rv_undo.|
|00001580| 6f 20 72 76 5f 6f 70 65 | 6e 6c 69 6e 65 2e 6f 20 |o rv_ope|nline.o |
|00001590| 72 76 5f 63 68 61 6e 67 | 65 2e 6f 20 72 76 5f 70 |rv_chang|e.o rv_p|
|000015a0| 75 74 2e 6f 20 72 76 5f | 79 61 6e 6b 2e 6f 20 5c |ut.o rv_|yank.o \|
|000015b0| 0a 58 58 09 72 76 5f 73 | 79 6e 63 2e 6f 20 72 76 |.XX.rv_s|ync.o rv|
|000015c0| 5f 78 6d 69 74 2e 6f 20 | 72 76 5f 65 64 69 74 2e |_xmit.o |rv_edit.|
|000015d0| 6f 20 72 76 5f 66 65 74 | 63 68 2e 6f 20 72 76 5f |o rv_fet|ch.o rv_|
|000015e0| 66 6c 61 73 68 2e 6f 20 | 72 76 5f 64 6f 74 2e 6f |flash.o |rv_dot.o|
|000015f0| 20 5c 0a 58 58 09 72 76 | 5f 6a 6f 69 6e 2e 6f 20 | \.XX.rv|_join.o |
|00001600| 72 76 5f 66 6f 72 62 61 | 63 6b 2e 6f 20 72 76 5f |rv_forba|ck.o rv_|
|00001610| 67 65 74 6c 69 6e 65 2e | 6f 20 72 76 5f 73 65 61 |getline.|o rv_sea|
|00001620| 72 63 68 2e 6f 20 5c 0a | 58 58 09 62 69 6e 73 65 |rch.o \.|XX.binse|
|00001630| 61 72 63 68 2e 6f 20 72 | 76 5f 6c 69 6e 65 63 6d |arch.o r|v_linecm|
|00001640| 64 2e 6f 20 63 6f 70 79 | 2e 6f 20 7a 65 72 6f 2e |d.o copy|.o zero.|
|00001650| 6f 20 20 72 76 5f 71 75 | 69 74 2e 6f 20 5c 0a 58 |o rv_qu|it.o \.X|
|00001660| 58 09 72 65 67 65 78 70 | 2e 6f 20 72 65 67 65 72 |X.regexp|.o reger|
|00001670| 72 6f 72 2e 6f 20 72 76 | 5f 77 6f 72 64 2e 6f 20 |ror.o rv|_word.o |
|00001680| 72 76 5f 6d 61 72 6b 2e | 6f 20 72 76 5f 73 68 65 |rv_mark.|o rv_she|
|00001690| 6c 6c 2e 6f 20 72 76 5f | 66 61 73 74 2e 6f 0a 0a |ll.o rv_|fast.o..|
|000016a0| 58 58 61 6c 6c 3a 20 20 | 72 76 74 65 73 74 20 72 |XXall: |rvtest r|
|000016b0| 76 69 0a 0a 58 58 72 76 | 74 65 73 74 3a 20 72 76 |vi..XXrv|test: rv|
|000016c0| 74 65 73 74 2e 63 0a 58 | 58 09 24 28 43 43 29 20 |test.c.X|X.$(CC) |
|000016d0| 72 76 74 65 73 74 2e 63 | 20 2d 6f 20 72 76 74 65 |rvtest.c| -o rvte|
|000016e0| 73 74 0a 0a 58 58 72 76 | 69 3a 20 24 28 4f 42 4a |st..XXrv|i: $(OBJ|
|000016f0| 53 29 0a 58 58 09 24 28 | 43 43 29 20 24 28 43 46 |S).XX.$(|CC) $(CF|
|00001700| 4c 41 47 53 29 20 24 28 | 4c 44 46 4c 41 47 53 29 |LAGS) $(|LDFLAGS)|
|00001710| 20 24 28 4f 42 4a 53 29 | 20 24 28 4c 49 42 29 20 | $(OBJS)| $(LIB) |
|00001720| 2d 6f 20 72 76 69 0a 0a | 58 58 70 72 69 6e 74 3a |-o rvi..|XXprint:|
|00001730| 0a 58 58 09 70 72 20 2d | 66 20 72 76 2e 68 20 72 |.XX.pr -|f rv.h r|
|00001740| 76 2a 2e 63 20 3e 20 6c | 69 73 74 0a 58 58 09 72 |v*.c > l|ist.XX.r|
|00001750| 65 76 65 72 73 65 20 6c | 69 73 74 20 3e 20 6c 69 |everse l|ist > li|
|00001760| 73 74 32 0a 58 58 09 71 | 70 72 20 2d 71 20 73 77 |st2.XX.q|pr -q sw|
|00001770| 20 6c 69 73 74 32 0a 58 | 58 09 72 6d 20 2d 66 20 | list2.X|X.rm -f |
|00001780| 6c 69 73 74 20 6c 69 73 | 74 32 0a 0a 58 58 62 61 |list lis|t2..XXba|
|00001790| 63 6b 75 70 3a 0a 58 58 | 09 63 70 20 2a 2e 5b 63 |ckup:.XX|.cp *.[c|
|000017a0| 68 5d 20 62 61 6b 0a 0a | 58 58 6c 69 6e 74 3a 0a |h] bak..|XXlint:.|
|000017b0| 58 58 09 6c 69 6e 74 20 | 2a 2e 63 20 24 28 4c 49 |XX.lint |*.c $(LI|
|000017c0| 42 29 0a 0a 58 58 63 6c | 65 61 6e 3a 0a 58 58 09 |B)..XXcl|ean:.XX.|
|000017d0| 72 6d 20 2d 66 20 2a 2e | 6f 0a 40 2f 2f 45 2a 4f |rm -f *.|o.@//E*O|
|000017e0| 2a 46 20 4d 61 6b 65 66 | 69 6c 65 2e 75 73 67 2f |*F Makef|ile.usg/|
|000017f0| 2f 0a 63 68 6d 6f 64 20 | 75 3d 72 77 2c 67 3d 72 |/.chmod |u=rw,g=r|
|00001800| 77 2c 6f 3d 72 77 20 24 | 4f 55 54 0a 20 0a 65 63 |w,o=rw $|OUT. .ec|
|00001810| 68 6f 20 78 20 2d 20 4e | 45 58 54 5f 52 45 4c 0a |ho x - N|EXT_REL.|
|00001820| 69 66 20 74 65 73 74 20 | 2d 66 20 4e 45 58 54 5f |if test |-f NEXT_|
|00001830| 52 45 4c 20 3b 20 74 68 | 65 6e 0a 20 20 20 20 65 |REL ; th|en. e|
|00001840| 63 68 6f 20 4e 45 58 54 | 5f 52 45 4c 20 65 78 69 |cho NEXT|_REL exi|
|00001850| 73 74 73 2c 20 70 75 74 | 74 69 6e 67 20 6f 75 74 |sts, put|ting out|
|00001860| 70 75 74 20 69 6e 20 24 | 24 4e 45 58 54 5f 52 45 |put in $|$NEXT_RE|
|00001870| 4c 0a 20 20 20 20 4f 55 | 54 3d 24 24 4e 45 58 54 |L. OU|T=$$NEXT|
|00001880| 5f 52 45 4c 0a 20 20 20 | 20 53 54 41 54 55 53 3d |_REL. | STATUS=|
|00001890| 31 0a 65 6c 73 65 0a 20 | 20 20 20 4f 55 54 3d 4e |1.else. | OUT=N|
|000018a0| 45 58 54 5f 52 45 4c 0a | 66 69 0a 73 65 64 20 27 |EXT_REL.|fi.sed '|
|000018b0| 73 2f 5e 58 58 2f 2f 27 | 20 3e 20 24 4f 55 54 20 |s/^XX//'| > $OUT |
|000018c0| 3c 3c 27 40 2f 2f 45 2a | 4f 2a 46 20 4e 45 58 54 |<<'@//E*|O*F NEXT|
|000018d0| 5f 52 45 4c 2f 2f 27 0a | 0a 58 58 49 20 68 61 76 |_REL//'.|.XXI hav|
|000018e0| 65 20 66 69 78 65 64 20 | 73 6f 6d 65 20 62 75 67 |e fixed |some bug|
|000018f0| 73 20 69 6e 20 69 6e 20 | 74 68 65 20 76 65 72 73 |s in in |the vers|
|00001900| 69 6f 6e 20 6f 66 20 52 | 56 49 20 74 68 61 74 20 |ion of R|VI that |
|00001910| 69 73 20 70 6f 73 74 65 | 64 20 74 6f 20 6d 6f 64 |is poste|d to mod|
|00001920| 2e 73 6f 75 72 63 65 73 | 0a 58 58 69 6e 20 56 6f |.sources|.XXin Vo|
|00001930| 6c 75 6d 65 20 37 2e 20 | 20 20 54 68 65 73 65 20 |lume 7. | These |
|00001940| 62 75 67 73 20 77 65 72 | 65 20 66 6f 75 6e 64 20 |bugs wer|e found |
|00001950| 61 6e 64 20 72 65 70 61 | 69 72 65 64 20 64 75 72 |and repa|ired dur|
|00001960| 69 6e 67 20 74 68 65 20 | 73 65 76 65 72 61 6c 0a |ing the |several.|
|00001970| 58 58 77 65 65 6b 73 20 | 69 74 20 74 6f 6f 6b 20 |XXweeks |it took |
|00001980| 66 6f 72 20 72 76 69 20 | 74 6f 20 77 6f 72 6b 20 |for rvi |to work |
|00001990| 69 74 73 20 77 61 79 20 | 74 68 72 6f 75 67 68 20 |its way |through |
|000019a0| 74 68 65 20 6e 65 74 77 | 6f 72 6b 20 74 6f 20 6d |the netw|ork to m|
|000019b0| 6f 64 2e 73 6f 75 72 63 | 65 73 2e 0a 58 58 49 20 |od.sourc|es..XXI |
|000019c0| 77 6f 75 6c 64 20 6c 69 | 6b 65 20 74 6f 20 74 68 |would li|ke to th|
|000019d0| 61 6e 6b 20 52 69 63 68 | 61 72 64 20 53 61 6c 7a |ank Rich|ard Salz|
|000019e0| 20 66 6f 72 20 68 69 73 | 20 70 61 74 69 65 6e 63 | for his| patienc|
|000019f0| 65 20 61 6e 64 20 65 66 | 66 6f 72 74 20 69 6e 20 |e and ef|fort in |
|00001a00| 68 65 6c 70 69 6e 67 0a | 58 58 6d 65 20 66 69 6e |helping.|XXme fin|
|00001a10| 64 20 61 20 72 65 6c 69 | 61 62 6c 65 20 70 61 74 |d a reli|able pat|
|00001a20| 68 20 74 6f 20 68 69 73 | 20 6d 61 63 68 69 6e 65 |h to his| machine|
|00001a30| 20 74 6f 20 67 65 74 20 | 74 68 65 20 64 61 72 6e | to get |the darn|
|00001a40| 20 74 68 69 6e 67 20 70 | 6f 73 74 65 64 20 61 6c | thing p|osted al|
|00001a50| 72 65 61 64 79 2e 0a 0a | 58 58 54 68 65 73 65 20 |ready...|XXThese |
|00001a60| 62 75 67 73 20 77 65 72 | 65 20 70 6f 69 6e 74 65 |bugs wer|e pointe|
|00001a70| 64 20 6f 75 74 20 74 6f | 20 6d 65 20 62 79 20 75 |d out to| me by u|
|00001a80| 73 65 72 73 20 61 74 20 | 74 68 65 20 4d 69 6e 6e |sers at |the Minn|
|00001a90| 65 73 6f 74 61 20 53 75 | 70 65 72 63 6f 6d 70 75 |esota Su|percompu|
|00001aa0| 74 65 72 0a 58 58 43 65 | 6e 74 65 72 2e 20 20 20 |ter.XXCe|nter. |
|00001ab0| 49 20 61 6d 20 69 6e 64 | 65 62 74 65 64 20 74 6f |I am ind|ebted to|
|00001ac0| 20 74 68 65 69 72 20 70 | 65 72 73 69 73 74 61 6e | their p|ersistan|
|00001ad0| 74 20 65 66 66 6f 72 74 | 73 2c 20 62 6f 74 68 20 |t effort|s, both |
|00001ae0| 69 6e 20 66 69 6e 64 69 | 6e 67 20 74 68 65 0a 58 |in findi|ng the.X|
|00001af0| 58 62 75 67 73 2c 20 61 | 6e 64 20 69 6e 20 74 68 |Xbugs, a|nd in th|
|00001b00| 65 69 72 20 65 66 66 6f | 72 74 73 20 74 6f 20 63 |eir effo|rts to c|
|00001b10| 6f 61 78 20 6d 65 20 69 | 6e 74 6f 20 66 69 78 69 |oax me i|nto fixi|
|00001b20| 6e 67 20 74 68 65 6d 2e | 0a 0a 58 58 41 20 6c 69 |ng them.|..XXA li|
|00001b30| 73 74 20 6f 66 20 62 75 | 67 73 20 61 70 70 65 61 |st of bu|gs appea|
|00001b40| 72 73 20 62 65 6c 6f 77 | 2e 20 20 20 49 20 77 61 |rs below|. I wa|
|00001b50| 6e 74 20 74 6f 20 77 61 | 69 74 20 61 20 66 65 77 |nt to wa|it a few|
|00001b60| 20 77 65 65 6b 73 20 62 | 65 66 6f 72 65 20 73 65 | weeks b|efore se|
|00001b70| 6e 64 69 6e 67 0a 58 58 | 74 68 65 20 64 69 66 66 |nding.XX|the diff|
|00001b80| 73 20 73 6f 20 74 68 61 | 74 20 49 20 6d 61 79 20 |s so tha|t I may |
|00001b90| 69 6e 63 6f 72 70 6f 72 | 61 74 65 20 61 64 64 69 |incorpor|ate addi|
|00001ba0| 74 69 6f 6e 61 6c 20 62 | 75 67 66 69 78 65 73 20 |tional b|ugfixes |
|00001bb0| 72 65 63 65 69 76 65 64 | 20 66 72 6f 6d 20 75 73 |received| from us|
|00001bc0| 65 72 73 0a 58 58 69 6d | 70 6c 65 6d 65 6e 74 69 |ers.XXim|plementi|
|00001bd0| 6e 67 20 74 68 65 20 6f | 72 69 67 69 6e 61 6c 20 |ng the o|riginal |
|00001be0| 64 69 73 74 72 69 62 75 | 74 69 6f 6e 2e 0a 0a 58 |distribu|tion...X|
|00001bf0| 58 49 6e 20 74 68 65 20 | 6d 65 61 6e 74 69 6d 65 |XIn the |meantime|
|00001c00| 2c 20 61 20 76 65 72 73 | 69 6f 6e 20 6f 66 20 72 |, a vers|ion of r|
|00001c10| 76 69 20 74 68 61 74 20 | 69 6e 63 6f 72 70 6f 72 |vi that |incorpor|
|00001c20| 61 74 65 73 20 74 68 65 | 20 62 75 67 66 69 78 65 |ates the| bugfixe|
|00001c30| 73 20 72 65 63 65 69 76 | 65 64 0a 58 58 73 6f 20 |s receiv|ed.XXso |
|00001c40| 66 61 72 20 69 73 20 61 | 76 61 69 6c 61 62 6c 65 |far is a|vailable|
|00001c50| 20 76 69 61 20 61 6e 6f | 6e 79 6d 6f 75 73 20 66 | via ano|nymous f|
|00001c60| 74 70 2e 20 20 54 68 65 | 20 69 6e 74 65 72 6e 65 |tp. The| interne|
|00001c70| 74 20 61 64 64 72 65 73 | 73 20 69 73 3a 0a 58 58 |t addres|s is:.XX|
|00001c80| 09 75 6d 6e 2d 72 65 69 | 2d 75 63 2e 41 52 50 41 |.umn-rei|-uc.ARPA|
|00001c90| 0a 58 58 54 68 65 20 73 | 6f 75 72 63 65 73 20 63 |.XXThe s|ources c|
|00001ca0| 6f 6e 74 61 69 6e 69 6e | 67 20 74 68 65 20 62 75 |ontainin|g the bu|
|00001cb0| 67 66 69 78 65 73 20 61 | 72 65 20 73 74 6f 72 65 |gfixes a|re store|
|00001cc0| 64 20 69 6e 20 2f 73 74 | 61 66 66 2f 72 76 69 2f |d in /st|aff/rvi/|
|00001cd0| 73 72 63 2e 0a 0a 58 58 | 41 20 6c 69 73 74 20 6f |src...XX|A list o|
|00001ce0| 66 20 62 75 67 66 69 78 | 65 73 20 66 6f 6c 6c 6f |f bugfix|es follo|
|00001cf0| 77 73 2e 0a 0a 58 58 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ws...XX-|--------|
|00001d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0a 0a 58 58 52 76 69 |--------|-..XXRvi|
|00001d40| 20 6e 6f 77 20 63 61 6e | 20 66 61 6b 65 20 64 65 | now can| fake de|
|00001d50| 6c 65 74 65 6c 6e 20 61 | 6e 64 20 69 6e 73 65 72 |leteln a|nd inser|
|00001d60| 74 6c 6e 20 66 6f 72 20 | 64 75 6d 62 20 74 65 72 |tln for |dumb ter|
|00001d70| 6d 69 6e 61 6c 73 20 74 | 68 61 74 20 64 6f 20 6e |minals t|hat do n|
|00001d80| 6f 74 0a 58 58 68 61 76 | 65 20 61 20 63 68 61 6e |ot.XXhav|e a chan|
|00001d90| 67 65 5f 73 63 72 6f 6c | 6c 20 6f 72 20 69 6e 73 |ge_scrol|l or ins|
|00001da0| 65 72 74 6c 6e 2f 64 65 | 6c 65 74 65 6c 6e 20 66 |ertln/de|leteln f|
|00001db0| 75 6e 63 74 69 6f 6e 2e | 0a 0a 58 58 77 20 3c 66 |unction.|..XXw <f|
|00001dc0| 69 6c 65 3e 20 72 65 73 | 65 74 73 20 74 68 65 20 |ile> res|ets the |
|00001dd0| 66 69 6c 65 5f 6d 6f 64 | 69 66 69 65 64 20 66 6c |file_mod|ified fl|
|00001de0| 61 67 2e 0a 0a 58 58 41 | 20 70 6f 73 73 69 62 6c |ag...XXA| possibl|
|00001df0| 65 20 63 6f 72 65 64 75 | 6d 70 20 63 61 75 73 65 |e coredu|mp cause|
|00001e00| 64 20 62 79 20 64 65 6c | 65 74 69 6e 67 20 74 68 |d by del|eting th|
|00001e10| 65 20 6c 61 73 74 20 6c | 69 6e 65 20 69 6e 20 74 |e last l|ine in t|
|00001e20| 68 65 20 66 69 6c 65 20 | 77 61 73 20 66 69 78 65 |he file |was fixe|
|00001e30| 64 2e 0a 0a 58 58 41 20 | 73 70 75 72 69 6f 75 73 |d...XXA |spurious|
|00001e40| 20 65 64 20 65 72 72 6f | 72 20 6d 65 73 73 61 67 | ed erro|r messag|
|00001e50| 65 20 6f 6e 20 65 64 69 | 74 69 6e 67 20 61 6e 20 |e on edi|ting an |
|00001e60| 65 6d 70 74 79 20 66 69 | 6c 65 20 77 61 73 20 72 |empty fi|le was r|
|00001e70| 65 6d 6f 76 65 64 2e 0a | 0a 58 58 45 64 69 74 69 |emoved..|.XXEditi|
|00001e80| 6e 67 20 61 20 6e 61 6d | 65 6c 65 73 73 20 66 69 |ng a nam|eless fi|
|00001e90| 6c 65 20 69 73 20 6e 6f | 77 20 68 61 6e 64 6c 65 |le is no|w handle|
|00001ea0| 64 20 63 6f 72 72 65 63 | 74 6c 79 20 66 6f 72 20 |d correc|tly for |
|00001eb0| 61 20 66 65 77 20 62 61 | 64 20 63 61 73 65 73 2e |a few ba|d cases.|
|00001ec0| 0a 0a 58 58 52 65 6d 6f | 74 65 20 69 6e 76 6f 6b |..XXRemo|te invok|
|00001ed0| 61 74 69 6f 6e 20 6f 66 | 20 72 6d 20 61 6e 64 20 |ation of| rm and |
|00001ee0| 65 63 68 6f 20 77 61 73 | 20 63 68 61 6e 67 65 64 |echo was| changed|
|00001ef0| 20 74 6f 20 61 76 6f 69 | 64 20 63 6f 6e 66 6c 69 | to avoi|d confli|
|00001f00| 63 74 73 20 77 69 74 68 | 0a 58 58 73 68 65 6c 6c |cts with|.XXshell|
|00001f10| 20 61 6c 69 61 73 69 6e | 67 2e 0a 0a 58 58 53 6f | aliasin|g...XXSo|
|00001f20| 6d 65 20 65 72 72 6f 72 | 20 6d 65 73 73 61 67 65 |me error| message|
|00001f30| 73 20 77 65 72 65 20 6d | 61 64 65 20 6d 6f 72 65 |s were m|ade more|
|00001f40| 20 76 65 72 62 6f 73 65 | 2e 0a 0a 58 58 52 76 69 | verbose|...XXRvi|
|00001f50| 20 63 61 6e 20 6e 6f 77 | 20 69 6e 74 65 72 72 6f | can now| interro|
|00001f60| 67 61 74 65 20 74 68 65 | 20 74 65 72 6d 69 6e 61 |gate the| termina|
|00001f70| 6c 20 74 79 70 65 20 72 | 65 6d 6f 74 65 6c 79 20 |l type r|emotely |
|00001f80| 28 72 65 71 75 69 72 65 | 73 20 70 75 74 65 6e 76 |(require|s putenv|
|00001f90| 28 29 29 2e 0a 0a 58 58 | 2d 2d 2d 2d 2d 2d 2d 2d |())...XX|--------|
|00001fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0a 0a 0a 58 58 50 |--------|--...XXP|
|00001fe0| 6c 65 61 73 65 20 73 65 | 6e 64 20 79 6f 75 72 20 |lease se|nd your |
|00001ff0| 62 75 67 20 72 65 70 6f | 72 74 73 20 74 6f 20 20 |bug repo|rts to |
|00002000| 20 2e 2e 69 68 6e 70 34 | 21 64 69 63 6f 6d 65 21 | ..ihnp4|!dicome!|
|00002010| 6d 6e 2d 61 74 31 21 61 | 6c 61 6e 2e 55 55 43 50 |mn-at1!a|lan.UUCP|
|00002020| 0a 58 58 09 09 09 20 20 | 20 20 20 6f 72 20 20 20 |.XX... | or |
|00002030| 61 65 6b 40 75 6d 6e 2d | 72 65 69 2d 75 63 2e 41 |aek@umn-|rei-uc.A|
|00002040| 52 50 41 0a 0a 58 58 54 | 68 61 6e 6b 20 79 6f 75 |RPA..XXT|hank you|
|00002050| 2e 0a 58 58 2d 2d 0a 58 | 58 41 6c 61 6e 20 4b 6c |..XX--.X|XAlan Kl|
|00002060| 69 65 74 7a 0a 58 58 4d | 69 6e 6e 65 73 6f 74 61 |ietz.XXM|innesota|
|00002070| 20 53 75 70 65 72 63 6f | 6d 70 75 74 65 72 20 43 | Superco|mputer C|
|00002080| 65 6e 74 65 72 0a 58 58 | 31 32 30 30 20 57 61 73 |enter.XX|1200 Was|
|00002090| 68 69 6e 67 74 6f 6e 20 | 41 76 65 6e 75 65 20 53 |hington |Avenue S|
|000020a0| 6f 75 74 68 0a 58 58 4d | 69 6e 6e 65 61 70 6f 6c |outh.XXM|inneapol|
|000020b0| 69 73 2c 20 4d 4e 20 20 | 35 35 34 31 35 0a 58 58 |is, MN |55415.XX|
|000020c0| 50 68 3a 20 2b 31 20 36 | 31 32 20 36 33 38 20 30 |Ph: +1 6|12 638 0|
|000020d0| 35 37 37 09 09 41 52 50 | 41 3a 20 20 61 65 6b 40 |577..ARP|A: aek@|
|000020e0| 75 6d 6e 2d 72 65 69 2d | 75 63 2e 41 52 50 41 0a |umn-rei-|uc.ARPA.|
|000020f0| 58 58 09 09 09 09 55 55 | 43 50 3a 20 20 2e 2e 69 |XX....UU|CP: ..i|
|00002100| 68 6e 70 34 21 64 69 63 | 6f 6d 65 21 6d 6e 2d 61 |hnp4!dic|ome!mn-a|
|00002110| 74 31 21 61 6c 61 6e 0a | 0a 58 58 28 2a 29 20 41 |t1!alan.|.XX(*) A|
|00002120| 6e 20 61 66 66 69 6c 69 | 61 74 65 20 6f 66 20 74 |n affili|ate of t|
|00002130| 68 65 20 55 6e 69 76 65 | 72 73 69 74 79 20 6f 66 |he Unive|rsity of|
|00002140| 20 4d 69 6e 6e 65 73 6f | 74 61 0a 0a 0a 40 2f 2f | Minneso|ta...@//|
|00002150| 45 2a 4f 2a 46 20 4e 45 | 58 54 5f 52 45 4c 2f 2f |E*O*F NE|XT_REL//|
|00002160| 0a 63 68 6d 6f 64 20 75 | 3d 72 77 2c 67 3d 72 77 |.chmod u|=rw,g=rw|
|00002170| 2c 6f 3d 72 77 20 24 4f | 55 54 0a 20 0a 65 63 68 |,o=rw $O|UT. .ech|
|00002180| 6f 20 78 20 2d 20 52 45 | 41 44 4d 45 0a 69 66 20 |o x - RE|ADME.if |
|00002190| 74 65 73 74 20 2d 66 20 | 52 45 41 44 4d 45 20 3b |test -f |README ;|
|000021a0| 20 74 68 65 6e 0a 20 20 | 20 20 65 63 68 6f 20 52 | then. | echo R|
|000021b0| 45 41 44 4d 45 20 65 78 | 69 73 74 73 2c 20 70 75 |EADME ex|ists, pu|
|000021c0| 74 74 69 6e 67 20 6f 75 | 74 70 75 74 20 69 6e 20 |tting ou|tput in |
|000021d0| 24 24 52 45 41 44 4d 45 | 0a 20 20 20 20 4f 55 54 |$$README|. OUT|
|000021e0| 3d 24 24 52 45 41 44 4d | 45 0a 20 20 20 20 53 54 |=$$READM|E. ST|
|000021f0| 41 54 55 53 3d 31 0a 65 | 6c 73 65 0a 20 20 20 20 |ATUS=1.e|lse. |
|00002200| 4f 55 54 3d 52 45 41 44 | 4d 45 0a 66 69 0a 73 65 |OUT=READ|ME.fi.se|
|00002210| 64 20 27 73 2f 5e 58 58 | 2f 2f 27 20 3e 20 24 4f |d 's/^XX|//' > $O|
|00002220| 55 54 20 3c 3c 27 40 2f | 2f 45 2a 4f 2a 46 20 52 |UT <<'@/|/E*O*F R|
|00002230| 45 41 44 4d 45 2f 2f 27 | 0a 0a 0a 0a 0a 0a 0a 0a |EADME//'|........|
|00002240| 0a 58 58 20 20 52 76 69 | 20 69 73 20 61 20 70 6f |.XX Rvi| is a po|
|00002250| 72 74 61 62 6c 65 20 64 | 69 73 74 72 69 62 75 74 |rtable d|istribut|
|00002260| 65 64 20 73 63 72 65 65 | 6e 20 65 64 69 74 6f 72 |ed scree|n editor|
|00002270| 20 28 44 53 45 29 2e 20 | 20 49 74 20 67 65 6e 65 | (DSE). | It gene|
|00002280| 72 61 74 65 73 20 60 60 | 65 64 27 27 0a 58 58 20 |rates ``|ed''.XX |
|00002290| 20 63 6f 6d 6d 61 6e 64 | 73 20 66 6f 72 20 65 78 | command|s for ex|
|000022a0| 65 63 75 74 69 6f 6e 20 | 6f 6e 20 61 20 72 65 6d |ecution |on a rem|
|000022b0| 6f 74 65 20 6d 61 63 68 | 69 6e 65 2e 20 20 49 74 |ote mach|ine. It|
|000022c0| 20 77 61 73 20 6f 72 69 | 67 69 6e 61 6c 6c 79 20 | was ori|ginally |
|000022d0| 64 65 76 65 6c 6f 70 65 | 64 0a 58 58 20 20 66 6f |develope|d.XX fo|
|000022e0| 72 20 72 65 6d 6f 74 65 | 20 73 63 72 65 65 6e 20 |r remote| screen |
|000022f0| 65 64 69 74 69 6e 67 20 | 6f 6e 20 43 52 41 59 2d |editing |on CRAY-|
|00002300| 32 20 73 75 70 65 72 63 | 6f 6d 70 75 74 65 72 73 |2 superc|omputers|
|00002310| 2e 0a 0a 58 58 20 20 52 | 76 69 20 69 73 20 6d 6f |...XX R|vi is mo|
|00002320| 73 74 20 75 73 65 66 75 | 6c 0a 0a 58 58 09 6f 20 |st usefu|l..XX.o |
|00002330| 54 6f 20 64 6f 20 73 63 | 72 65 65 6e 20 65 64 69 |To do sc|reen edi|
|00002340| 74 69 6e 67 20 6d 61 63 | 68 69 6e 65 73 20 77 68 |ting mac|hines wh|
|00002350| 65 72 65 20 61 20 6e 6f | 72 6d 61 6c 20 73 63 72 |ere a no|rmal scr|
|00002360| 65 65 6e 20 65 64 69 74 | 6f 72 0a 58 58 09 20 20 |een edit|or.XX. |
|00002370| 69 73 20 69 6e 61 70 70 | 72 6f 70 72 69 61 74 65 |is inapp|ropriate|
|00002380| 20 28 65 2e 67 2e 20 73 | 75 70 65 72 63 6f 6d 70 | (e.g. s|upercomp|
|00002390| 75 74 65 72 73 2c 20 49 | 42 4d 20 6d 61 69 6e 66 |uters, I|BM mainf|
|000023a0| 72 61 6d 65 73 29 0a 0a | 58 58 09 6f 20 49 6e 20 |rames)..|XX.o In |
|000023b0| 61 20 64 69 73 74 72 69 | 62 75 74 65 64 20 63 6f |a distri|buted co|
|000023c0| 6d 70 75 74 69 6e 67 20 | 65 6e 76 69 72 6f 6e 6d |mputing |environm|
|000023d0| 65 6e 74 0a 0a 58 58 09 | 6f 20 41 63 72 6f 73 73 |ent..XX.|o Across|
|000023e0| 20 73 6c 6f 77 20 6e 65 | 74 77 6f 72 6b 73 20 28 | slow ne|tworks (|
|000023f0| 65 2e 67 2e 20 73 61 74 | 65 6c 6c 69 74 65 73 2c |e.g. sat|ellites,|
|00002400| 20 41 52 50 41 4e 45 54 | 29 0a 0a 0a 58 58 20 20 | ARPANET|)...XX |
|00002410| 50 6f 72 74 61 62 69 6c | 69 74 79 20 77 61 73 20 |Portabil|ity was |
|00002420| 65 6d 70 68 61 73 69 7a | 65 64 20 6f 76 65 72 20 |emphasiz|ed over |
|00002430| 65 66 66 69 63 69 65 6e | 63 79 2e 20 20 28 46 6f |efficien|cy. (Fo|
|00002440| 72 20 65 78 61 6d 70 6c | 65 2c 20 69 74 20 0a 58 |r exampl|e, it .X|
|00002450| 58 20 20 75 73 65 73 20 | 63 75 72 73 65 73 20 72 |X uses |curses r|
|00002460| 61 74 68 65 72 20 74 68 | 61 6e 20 64 6f 69 6e 67 |ather th|an doing|
|00002470| 20 74 68 65 20 43 52 54 | 20 6d 61 6e 69 70 75 6c | the CRT| manipul|
|00002480| 61 74 69 6f 6e 73 20 64 | 69 72 65 63 74 6c 79 29 |ations d|irectly)|
|00002490| 0a 0a 0a 58 58 20 20 52 | 76 69 20 68 61 73 20 62 |...XX R|vi has b|
|000024a0| 65 65 6e 20 74 65 73 74 | 65 64 20 6f 6e 20 61 20 |een test|ed on a |
|000024b0| 6e 75 6d 62 65 72 20 6f | 66 20 6d 61 63 68 69 6e |number o|f machin|
|000024c0| 65 73 2c 20 69 6e 63 6c | 75 64 69 6e 67 0a 0a 58 |es, incl|uding..X|
|000024d0| 58 09 53 75 6e 20 4d 69 | 63 72 6f 73 79 73 74 65 |X.Sun Mi|crosyste|
|000024e0| 6d 73 20 53 55 4e 20 32 | 20 61 6e 64 20 33 0a 58 |ms SUN 2| and 3.X|
|000024f0| 58 09 44 45 43 20 56 41 | 58 2d 37 35 30 2f 37 38 |X.DEC VA|X-750/78|
|00002500| 30 20 28 62 6f 74 68 20 | 53 56 20 61 6e 64 20 34 |0 (both |SV and 4|
|00002510| 2e 32 29 0a 58 58 09 41 | 54 26 54 20 55 4e 49 58 |.2).XX.A|T&T UNIX|
|00002520| 20 50 43 0a 58 58 09 49 | 42 4d 20 50 43 20 41 54 | PC.XX.I|BM PC AT|
|00002530| 20 28 58 65 6e 69 78 20 | 35 20 61 6e 64 20 69 41 | (Xenix |5 and iA|
|00002540| 50 58 32 36 38 20 56 29 | 0a 58 58 09 53 69 6c 69 |PX268 V)|.XX.Sili|
|00002550| 63 6f 6e 20 47 72 61 70 | 68 69 63 73 20 49 52 49 |con Grap|hics IRI|
|00002560| 53 20 28 56 29 0a 58 58 | 09 47 6f 75 6c 64 20 43 |S (V).XX|.Gould C|
|00002570| 4f 4e 43 45 50 54 20 33 | 32 20 28 55 54 58 2f 33 |ONCEPT 3|2 (UTX/3|
|00002580| 32 29 0a 58 58 09 41 70 | 6f 6c 6c 6f 20 28 44 6f |2).XX.Ap|ollo (Do|
|00002590| 6d 61 69 6e 20 49 58 29 | 0a 58 58 09 43 52 41 59 |main IX)|.XX.CRAY|
|000025a0| 2d 32 20 28 55 4e 49 43 | 4f 53 29 20 5b 6c 6f 6f |-2 (UNIC|OS) [loo|
|000025b0| 70 62 61 63 6b 5d 0a 0a | 58 58 09 0a 0a 58 58 48 |pback]..|XX...XXH|
|000025c0| 6f 77 20 74 6f 20 6d 61 | 6b 65 20 72 76 69 3a 0a |ow to ma|ke rvi:.|
|000025d0| 0a 58 58 09 55 6e 70 61 | 63 6b 20 74 68 65 20 73 |.XX.Unpa|ck the s|
|000025e0| 68 61 72 20 66 69 6c 65 | 73 2e 0a 0a 58 58 09 49 |har file|s...XX.I|
|000025f0| 66 20 79 6f 75 20 68 61 | 76 65 20 74 65 72 6d 63 |f you ha|ve termc|
|00002600| 61 70 2c 20 74 79 70 65 | 20 20 63 70 20 4d 61 6b |ap, type| cp Mak|
|00002610| 65 66 69 6c 65 2e 62 73 | 64 20 4d 61 6b 65 66 69 |efile.bs|d Makefi|
|00002620| 6c 65 0a 0a 58 58 09 49 | 66 20 79 6f 75 20 68 61 |le..XX.I|f you ha|
|00002630| 76 65 20 74 65 72 6d 69 | 6e 66 6f 2c 20 74 79 70 |ve termi|nfo, typ|
|00002640| 65 20 63 70 20 4d 61 6b | 65 66 69 6c 65 2e 75 73 |e cp Mak|efile.us|
|00002650| 67 20 4d 61 6b 65 66 69 | 6c 65 2e 20 41 6c 73 6f |g Makefi|le. Also|
|00002660| 0a 58 58 09 79 6f 75 20 | 73 68 6f 75 6c 64 20 69 |.XX.you |should i|
|00002670| 6e 73 74 61 6c 6c 20 42 | 55 47 46 49 58 20 61 6e |nstall B|UGFIX an|
|00002680| 64 20 42 55 47 46 49 58 | 32 20 69 6e 74 6f 20 79 |d BUGFIX|2 into y|
|00002690| 6f 75 72 20 74 65 72 6d | 69 6e 66 6f 0a 58 58 09 |our term|info.XX.|
|000026a0| 6c 69 62 72 61 72 79 2e | 20 20 28 49 6e 20 70 61 |library.| (In pa|
|000026b0| 72 74 69 63 75 6c 61 72 | 2c 20 42 55 47 46 49 58 |rticular|, BUGFIX|
|000026c0| 20 69 73 20 72 65 71 75 | 69 72 65 64 20 73 6f 20 | is requ|ired so |
|000026d0| 74 68 61 74 20 76 74 31 | 30 30 0a 58 58 09 74 65 |that vt1|00.XX.te|
|000026e0| 72 6d 69 6e 61 6c 73 20 | 70 65 72 66 6f 72 6d 20 |rminals |perform |
|000026f0| 69 6e 73 65 72 74 2f 64 | 65 6c 65 74 65 20 6c 69 |insert/d|elete li|
|00002700| 6e 65 20 70 72 6f 70 65 | 72 6c 79 2e 29 0a 0a 58 |ne prope|rly.)..X|
|00002710| 58 09 54 79 70 65 20 60 | 60 6d 61 6b 65 27 27 0a |X.Type `|`make''.|
|00002720| 0a 58 58 09 54 65 73 74 | 20 72 76 69 20 62 79 20 |.XX.Test| rvi by |
|00002730| 72 75 6e 6e 69 6e 67 20 | 72 76 74 65 73 74 2e 0a |running |rvtest..|
|00002740| 0a 0a 0a 58 58 52 76 69 | 20 74 61 6c 6b 73 20 74 |...XXRvi| talks t|
|00002750| 68 72 6f 75 67 68 20 70 | 69 70 65 20 66 69 6c 65 |hrough p|ipe file|
|00002760| 20 64 65 73 63 72 69 70 | 74 6f 72 73 20 74 6f 20 | descrip|tors to |
|00002770| 65 64 2e 20 20 54 68 65 | 20 70 69 70 65 20 64 65 |ed. The| pipe de|
|00002780| 73 63 72 69 70 74 6f 72 | 73 20 73 68 6f 75 6c 64 |scriptor|s should|
|00002790| 0a 58 58 62 65 20 63 72 | 65 61 74 65 64 20 62 79 |.XXbe cr|eated by|
|000027a0| 20 79 6f 75 72 20 74 65 | 72 6d 69 6e 61 6c 20 70 | your te|rminal p|
|000027b0| 72 6f 67 72 61 6d 2c 20 | 65 2e 67 2e 20 54 45 4c |rogram, |e.g. TEL|
|000027c0| 4e 45 54 2e 20 20 59 6f | 75 20 61 72 65 20 72 65 |NET. Yo|u are re|
|000027d0| 73 70 6f 6e 73 69 62 6c | 65 20 66 6f 72 0a 58 58 |sponsibl|e for.XX|
|000027e0| 6d 61 6b 69 6e 67 20 74 | 68 65 20 6e 65 63 65 73 |making t|he neces|
|000027f0| 73 61 72 79 20 6d 6f 64 | 69 66 69 63 61 74 69 6f |sary mod|ificatio|
|00002800| 6e 73 20 74 6f 20 79 6f | 75 72 20 54 45 4c 4e 45 |ns to yo|ur TELNE|
|00002810| 54 20 70 72 6f 67 72 61 | 6d 20 74 6f 20 64 6f 20 |T progra|m to do |
|00002820| 74 68 69 73 2e 0a 0a 58 | 58 59 6f 75 72 20 54 45 |this...X|XYour TE|
|00002830| 4c 4e 45 54 20 70 72 6f | 67 72 61 6d 20 73 68 6f |LNET pro|gram sho|
|00002840| 75 6c 64 20 63 61 74 63 | 68 20 61 6e 20 65 73 63 |uld catc|h an esc|
|00002850| 61 70 65 20 73 65 71 75 | 65 6e 63 65 20 28 73 75 |ape sequ|ence (su|
|00002860| 63 68 20 61 73 20 5e 5d | 72 76 69 29 2e 20 20 49 |ch as ^]|rvi). I|
|00002870| 74 0a 58 58 73 68 6f 75 | 6c 64 20 74 68 65 6e 20 |t.XXshou|ld then |
|00002880| 65 6d 69 74 20 61 20 2f | 62 69 6e 2f 65 64 20 63 |emit a /|bin/ed c|
|00002890| 6f 6d 6d 61 6e 64 20 74 | 6f 20 74 68 65 20 72 65 |ommand t|o the re|
|000028a0| 6d 6f 74 65 20 6d 61 63 | 68 69 6e 65 2c 20 63 72 |mote mac|hine, cr|
|000028b0| 65 61 74 65 20 74 77 6f | 20 70 69 70 65 73 0a 58 |eate two| pipes.X|
|000028c0| 58 6f 6e 20 74 68 65 20 | 6c 6f 63 61 6c 20 6d 61 |Xon the |local ma|
|000028d0| 63 68 69 6e 65 2c 20 61 | 6e 64 20 65 78 65 63 20 |chine, a|nd exec |
|000028e0| 72 76 69 2e 0a 0a 0a 58 | 58 52 65 6d 65 6d 62 65 |rvi....X|XRemembe|
|000028f0| 72 3a 0a 0a 58 58 52 76 | 69 20 6f 6e 6c 79 20 65 |r:..XXRv|i only e|
|00002900| 6d 69 74 73 20 77 68 6f | 6c 65 20 6c 69 6e 65 73 |mits who|le lines|
|00002910| 20 74 65 72 6d 69 6e 61 | 74 65 64 20 62 79 20 61 | termina|ted by a|
|00002920| 20 6c 69 6e 65 66 65 65 | 64 2e 20 20 59 6f 75 20 | linefee|d. You |
|00002930| 64 6f 20 6e 6f 74 20 6e | 65 65 64 20 74 6f 0a 58 |do not n|eed to.X|
|00002940| 58 63 68 61 6e 67 65 20 | 74 68 65 20 74 65 72 6d |Xchange |the term|
|00002950| 69 6e 61 6c 20 6d 6f 64 | 65 73 3b 20 72 76 69 20 |inal mod|es; rvi |
|00002960| 74 61 6b 65 73 20 63 61 | 72 65 20 6f 66 20 74 68 |takes ca|re of th|
|00002970| 61 74 2e 20 20 20 52 65 | 6d 65 6d 62 65 72 20 74 |at. Re|member t|
|00002980| 6f 20 64 69 73 61 62 6c | 65 0a 58 58 6c 6f 63 61 |o disabl|e.XXloca|
|00002990| 6c 20 61 6e 64 20 72 65 | 6d 6f 74 65 20 65 63 68 |l and re|mote ech|
|000029a0| 6f 69 6e 67 2c 20 61 6e | 64 20 64 6f 20 6e 6f 74 |oing, an|d do not|
|000029b0| 20 61 74 74 65 6d 70 74 | 20 6e 6c 2d 63 72 20 6d | attempt| nl-cr m|
|000029c0| 61 70 70 69 6e 67 2e 0a | 0a 0a 0a 58 58 42 75 67 |apping..|...XXBug|
|000029d0| 73 3a 0a 0a 58 58 54 68 | 65 20 73 63 72 65 65 6e |s:..XXTh|e screen|
|000029e0| 20 69 73 20 72 65 64 72 | 61 77 6e 20 74 77 69 63 | is redr|awn twic|
|000029f0| 65 20 6f 6e 20 61 20 66 | 75 6c 6c 20 73 63 72 65 |e on a f|ull scre|
|00002a00| 65 6e 20 75 70 64 61 74 | 65 20 61 63 72 6f 73 73 |en updat|e across|
|00002a10| 20 61 20 77 69 6e 64 6f | 77 0a 58 58 62 6f 75 6e | a windo|w.XXboun|
|00002a20| 64 61 72 79 2e 20 20 54 | 68 69 73 20 69 73 20 64 |dary. T|his is d|
|00002a30| 75 65 20 74 6f 20 74 68 | 65 20 6e 61 74 75 72 65 |ue to th|e nature|
|00002a40| 20 6f 66 20 74 68 65 20 | 77 69 6e 64 6f 77 20 66 | of the |window f|
|00002a50| 65 74 63 68 69 6e 67 20 | 61 6c 67 6f 72 69 74 68 |etching |algorith|
|00002a60| 6d 2e 0a 0a 58 58 53 6f | 6d 65 20 68 65 75 72 69 |m...XXSo|me heuri|
|00002a70| 73 74 69 63 73 20 61 72 | 65 20 75 73 65 64 20 74 |stics ar|e used t|
|00002a80| 6f 20 64 65 74 65 72 6d | 69 6e 65 20 74 68 65 20 |o determ|ine the |
|00002a90| 76 65 72 73 69 6f 6e 20 | 6f 66 20 74 68 65 20 65 |version |of the e|
|00002aa0| 64 20 70 72 6f 67 72 61 | 6d 2e 0a 58 58 52 76 69 |d progra|m..XXRvi|
|00002ab0| 20 6d 61 79 20 67 65 74 | 20 63 6f 6e 66 75 73 65 | may get| confuse|
|00002ac0| 64 20 62 79 20 61 20 6e | 6f 6e 2d 73 74 61 6e 64 |d by a n|on-stand|
|00002ad0| 61 72 64 20 76 65 72 73 | 69 6f 6e 20 6f 66 20 65 |ard vers|ion of e|
|00002ae0| 64 20 28 65 2e 67 2e 20 | 61 20 76 65 72 73 69 6f |d (e.g. |a versio|
|00002af0| 6e 0a 58 58 6f 66 20 65 | 64 20 74 68 61 74 20 70 |n.XXof e|d that p|
|00002b00| 72 69 6e 74 20 70 72 6f | 6d 70 74 73 2e 29 0a 0a |rint pro|mpts.)..|
|00002b10| 58 58 54 65 72 6d 63 61 | 70 27 73 20 43 75 72 73 |XXTermca|p's Curs|
|00002b20| 65 73 20 64 6f 65 73 20 | 6e 6f 74 20 68 61 6e 64 |es does |not hand|
|00002b30| 6c 65 20 74 68 65 20 22 | 78 6e 22 20 62 72 61 69 |le the "|xn" brai|
|00002b40| 6e 64 61 6d 61 67 65 20 | 66 6c 61 67 2e 20 20 49 |ndamage |flag. I|
|00002b50| 20 68 61 64 20 74 6f 0a | 58 58 68 61 63 6b 20 69 | had to.|XXhack i|
|00002b60| 6e 20 73 75 70 70 6f 72 | 74 20 66 6f 72 20 69 74 |n suppor|t for it|
|00002b70| 2e 0a 0a 58 58 55 73 65 | 66 75 6c 20 63 6f 6d 6d |...XXUse|ful comm|
|00002b80| 61 6e 64 73 20 73 75 63 | 68 20 61 73 20 25 2c 20 |ands suc|h as %, |
|00002b90| 3c 2c 20 61 6e 64 20 3e | 20 61 72 65 20 6e 6f 74 |<, and >| are not|
|00002ba0| 20 73 75 70 70 6f 72 74 | 65 64 20 62 65 63 61 75 | support|ed becau|
|00002bb0| 73 65 20 49 20 63 61 6e | 27 74 0a 58 58 74 68 69 |se I can|'t.XXthi|
|00002bc0| 6e 6b 20 6f 66 20 61 20 | 77 61 79 20 74 6f 20 64 |nk of a |way to d|
|00002bd0| 6f 20 74 68 65 6d 20 65 | 66 66 69 63 69 65 6e 74 |o them e|fficient|
|00002be0| 6c 79 20 76 69 61 20 65 | 64 2e 0a 0a 58 58 4d 61 |ly via e|d...XXMa|
|00002bf0| 63 72 6f 73 20 61 6e 64 | 20 74 61 67 73 20 61 72 |cros and| tags ar|
|00002c00| 65 20 6e 6f 74 20 73 75 | 70 70 6f 72 74 65 64 2e |e not su|pported.|
|00002c10| 0a 0a 58 58 53 63 72 6f | 6c 6c 69 6e 67 20 69 73 |..XXScro|lling is|
|00002c20| 20 73 6c 6f 77 20 75 6e | 64 65 72 20 74 65 72 6d | slow un|der term|
|00002c30| 69 6e 66 6f 2e 0a 0a 0a | 58 58 2d 2d 0a 58 58 41 |info....|XX--.XXA|
|00002c40| 6c 61 6e 20 4b 6c 69 65 | 74 7a 0a 58 58 4d 69 6e |lan Klie|tz.XXMin|
|00002c50| 6e 65 73 6f 74 61 20 53 | 75 70 65 72 63 6f 6d 70 |nesota S|upercomp|
|00002c60| 75 74 65 72 20 43 65 6e | 74 65 72 20 28 2a 29 0a |uter Cen|ter (*).|
|00002c70| 58 58 32 35 32 30 20 42 | 72 6f 61 64 77 61 79 20 |XX2520 B|roadway |
|00002c80| 44 72 69 76 65 0a 58 58 | 4c 61 75 64 65 72 64 61 |Drive.XX|Lauderda|
|00002c90| 6c 65 2c 20 4d 4e 20 20 | 35 35 31 31 33 20 20 20 |le, MN |55113 |
|00002ca0| 20 20 55 55 43 50 3a 20 | 20 2e 2e 69 68 6e 70 34 | UUCP: | ..ihnp4|
|00002cb0| 21 64 69 63 6f 6d 65 21 | 6d 6e 2d 61 74 31 21 61 |!dicome!|mn-at1!a|
|00002cc0| 6c 61 6e 2e 55 55 43 50 | 0a 58 58 50 68 3a 20 2b |lan.UUCP|.XXPh: +|
|00002cd0| 31 20 36 31 32 20 36 33 | 38 20 30 35 37 37 20 20 |1 612 63|8 0577 |
|00002ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 2e 2e 63 61 | | ..ca|
|00002cf0| 69 70 21 6d 65 63 63 74 | 73 21 64 69 63 6f 6d 65 |ip!mecct|s!dicome|
|00002d00| 21 6d 6e 2d 61 74 31 21 | 61 6c 61 6e 2e 55 55 43 |!mn-at1!|alan.UUC|
|00002d10| 50 0a 58 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |P.XX | |
|00002d20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 41 52 | | AR|
|00002d30| 50 41 3a 20 20 61 65 6b | 40 75 6d 6e 2d 72 65 69 |PA: aek|@umn-rei|
|00002d40| 2d 75 63 2e 41 52 50 41 | 0a 0a 58 58 28 2a 29 20 |-uc.ARPA|..XX(*) |
|00002d50| 46 6f 72 6d 65 72 6c 79 | 20 74 69 74 6c 65 64 20 |Formerly| titled |
|00002d60| 52 65 73 65 61 72 63 68 | 20 45 71 75 69 70 6d 65 |Research| Equipme|
|00002d70| 6e 74 20 49 6e 63 6f 72 | 70 6f 72 61 74 65 64 2e |nt Incor|porated.|
|00002d80| 0a 58 58 20 20 20 20 41 | 6e 20 61 66 66 69 6c 69 |.XX A|n affili|
|00002d90| 61 74 65 20 6f 66 20 74 | 68 65 20 55 6e 69 76 65 |ate of t|he Unive|
|00002da0| 72 73 69 74 79 20 6f 66 | 20 4d 69 6e 6e 65 73 6f |rsity of| Minneso|
|00002db0| 74 61 0a 40 2f 2f 45 2a | 4f 2a 46 20 52 45 41 44 |ta.@//E*|O*F READ|
|00002dc0| 4d 45 2f 2f 0a 63 68 6d | 6f 64 20 75 3d 72 77 2c |ME//.chm|od u=rw,|
|00002dd0| 67 3d 72 77 2c 6f 3d 72 | 77 20 24 4f 55 54 0a 20 |g=rw,o=r|w $OUT. |
|00002de0| 0a 65 63 68 6f 20 78 20 | 2d 20 62 69 6e 73 65 61 |.echo x |- binsea|
|00002df0| 72 63 68 2e 63 0a 69 66 | 20 74 65 73 74 20 2d 66 |rch.c.if| test -f|
|00002e00| 20 62 69 6e 73 65 61 72 | 63 68 2e 63 20 3b 20 74 | binsear|ch.c ; t|
|00002e10| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 62 69 6e |hen. |echo bin|
|00002e20| 73 65 61 72 63 68 2e 63 | 20 65 78 69 73 74 73 2c |search.c| exists,|
|00002e30| 20 70 75 74 74 69 6e 67 | 20 6f 75 74 70 75 74 20 | putting| output |
|00002e40| 69 6e 20 24 24 62 69 6e | 73 65 61 72 63 68 2e 63 |in $$bin|search.c|
|00002e50| 0a 20 20 20 20 4f 55 54 | 3d 24 24 62 69 6e 73 65 |. OUT|=$$binse|
|00002e60| 61 72 63 68 2e 63 0a 20 | 20 20 20 53 54 41 54 55 |arch.c. | STATU|
|00002e70| 53 3d 31 0a 65 6c 73 65 | 0a 20 20 20 20 4f 55 54 |S=1.else|. OUT|
|00002e80| 3d 62 69 6e 73 65 61 72 | 63 68 2e 63 0a 66 69 0a |=binsear|ch.c.fi.|
|00002e90| 73 65 64 20 27 73 2f 5e | 58 58 2f 2f 27 20 3e 20 |sed 's/^|XX//' > |
|00002ea0| 24 4f 55 54 20 3c 3c 27 | 40 2f 2f 45 2a 4f 2a 46 |$OUT <<'|@//E*O*F|
|00002eb0| 20 62 69 6e 73 65 61 72 | 63 68 2e 63 2f 2f 27 0a | binsear|ch.c//'.|
|00002ec0| 58 58 2f 2a 09 09 62 69 | 6e 73 65 61 72 63 68 20 |XX/*..bi|nsearch |
|00002ed0| 2d 20 64 6f 20 61 20 62 | 69 6e 61 72 79 20 73 65 |- do a b|inary se|
|00002ee0| 61 72 63 68 20 6f 66 20 | 61 20 73 74 72 75 63 74 |arch of |a struct|
|00002ef0| 75 72 65 2e 0a 58 58 09 | 09 38 34 2f 30 34 2f 30 |ure..XX.|.84/04/0|
|00002f00| 37 2e 20 20 41 2e 20 45 | 2e 20 4b 6c 69 65 74 7a |7. A. E|. Klietz|
|00002f10| 2e 0a 58 58 2a 2f 0a 0a | 58 58 62 69 6e 73 65 61 |..XX*/..|XXbinsea|
|00002f20| 72 63 68 28 6d 61 74 63 | 68 5f 73 74 72 69 6e 67 |rch(matc|h_string|
|00002f30| 2c 20 73 74 72 75 63 74 | 61 72 72 61 79 2c 20 73 |, struct|array, s|
|00002f40| 69 7a 65 5f 73 74 72 75 | 63 74 2c 20 6e 75 6d 5f |ize_stru|ct, num_|
|00002f50| 73 74 72 75 63 74 73 29 | 0a 58 58 2f 2a 20 53 65 |structs)|.XX/* Se|
|00002f60| 61 72 63 68 20 61 6e 20 | 61 72 72 61 79 20 6f 66 |arch an |array of|
|00002f70| 20 73 74 72 75 63 74 75 | 72 65 73 20 66 6f 72 20 | structu|res for |
|00002f80| 74 68 65 20 22 6d 61 74 | 63 68 5f 73 74 72 69 6e |the "mat|ch_strin|
|00002f90| 67 22 20 61 6e 64 20 72 | 65 74 75 72 6e 0a 58 58 |g" and r|eturn.XX|
|00002fa0| 09 09 09 2d 32 20 69 66 | 20 6d 61 74 63 68 5f 73 |...-2 if| match_s|
|00002fb0| 74 72 69 6e 67 20 69 73 | 20 6e 6f 74 20 75 6e 69 |tring is| not uni|
|00002fc0| 71 75 65 0a 58 58 09 09 | 09 2d 31 20 69 66 20 6d |que.XX..|.-1 if m|
|00002fd0| 61 74 63 68 5f 73 74 72 | 69 6e 67 20 77 61 73 20 |atch_str|ing was |
|00002fe0| 6e 6f 74 20 66 6f 75 6e | 64 0a 58 58 09 09 09 20 |not foun|d.XX... |
|00002ff0| 69 20 69 66 20 69 74 68 | 20 73 74 72 75 63 74 75 |i if ith| structu|
|00003000| 72 65 20 6d 61 74 63 68 | 65 73 20 6d 61 74 63 68 |re match|es match|
|00003010| 5f 73 74 72 69 6e 67 0a | 0a 58 58 20 20 20 45 61 |_string.|.XX Ea|
|00003020| 63 68 20 73 74 72 75 63 | 74 75 72 65 20 63 6f 6e |ch struc|ture con|
|00003030| 74 61 69 6e 73 20 61 20 | 73 74 72 69 6e 67 20 74 |tains a |string t|
|00003040| 6f 20 62 65 20 63 6f 6d | 70 61 72 65 64 2e 0a 58 |o be com|pared..X|
|00003050| 58 54 68 65 20 73 74 72 | 75 63 74 75 72 65 20 61 |XThe str|ucture a|
|00003060| 72 72 61 79 20 6d 75 73 | 74 20 62 65 20 61 6c 70 |rray mus|t be alp|
|00003070| 68 61 62 65 74 69 7a 65 | 64 2e 20 20 4e 6f 20 65 |habetize|d. No e|
|00003080| 72 72 6f 72 20 6d 65 73 | 73 61 67 65 20 69 73 0a |rror mes|sage is.|
|00003090| 58 58 70 72 69 6e 74 65 | 64 2e 0a 58 58 09 54 68 |XXprinte|d..XX.Th|
|000030a0| 65 20 73 74 72 75 63 74 | 75 72 65 20 6d 75 73 74 |e struct|ure must|
|000030b0| 20 62 65 20 61 6c 69 67 | 6e 65 64 20 61 74 20 6c | be alig|ned at l|
|000030c0| 65 61 73 74 20 61 73 20 | 77 65 6c 6c 20 61 73 20 |east as |well as |
|000030d0| 61 20 70 6f 69 6e 74 65 | 72 2e 20 2a 2f 0a 0a 58 |a pointe|r. */..X|
|000030e0| 58 63 68 61 72 09 2a 6d | 61 74 63 68 5f 73 74 72 |Xchar.*m|atch_str|
|000030f0| 69 6e 67 3b 09 2f 2a 20 | 73 74 72 69 6e 67 20 74 |ing;./* |string t|
|00003100| 6f 20 6d 61 74 63 68 20 | 2a 2f 0a 58 58 72 65 67 |o match |*/.XXreg|
|00003110| 69 73 74 65 72 20 63 68 | 61 72 09 2a 73 74 72 75 |ister ch|ar.*stru|
|00003120| 63 74 61 72 72 61 79 3b | 09 2f 2a 20 61 72 72 61 |ctarray;|./* arra|
|00003130| 79 20 6f 66 20 73 74 72 | 75 63 74 75 72 65 73 20 |y of str|uctures |
|00003140| 74 6f 20 73 65 61 72 63 | 68 20 2a 2f 0a 58 58 73 |to searc|h */.XXs|
|00003150| 68 6f 72 74 20 09 73 69 | 7a 65 5f 73 74 72 75 63 |hort .si|ze_struc|
|00003160| 74 3b 09 2f 2a 20 73 69 | 7a 65 20 6f 66 20 65 61 |t;./* si|ze of ea|
|00003170| 63 68 20 73 74 72 75 63 | 74 75 72 65 20 65 6c 65 |ch struc|ture ele|
|00003180| 6d 65 6e 74 20 69 6e 20 | 62 79 74 65 73 20 2a 2f |ment in |bytes */|
|00003190| 0a 58 58 73 68 6f 72 74 | 20 09 6e 75 6d 5f 73 74 |.XXshort| .num_st|
|000031a0| 72 75 63 74 73 3b 09 2f | 2a 20 6e 75 6d 62 65 72 |ructs;./|* number|
|000031b0| 20 6f 66 20 73 74 72 75 | 63 74 75 72 65 73 20 69 | of stru|ctures i|
|000031c0| 6e 20 61 72 72 61 79 20 | 2a 2f 0a 58 58 7b 0a 0a |n array |*/.XX{..|
|000031d0| 58 58 72 65 67 69 73 74 | 65 72 20 73 68 6f 72 74 |XXregist|er short|
|000031e0| 09 70 6f 73 2c 20 64 69 | 66 66 2c 20 6c 6f 77 65 |.pos, di|ff, lowe|
|000031f0| 72 2c 20 75 70 70 65 72 | 2c 20 69 6e 64 78 3b 0a |r, upper|, indx;.|
|00003200| 0a 58 58 09 69 66 20 28 | 6d 61 74 63 68 5f 73 74 |.XX.if (|match_st|
|00003210| 72 69 6e 67 5b 30 5d 20 | 3d 3d 20 27 5c 30 27 29 |ring[0] |== '\0')|
|00003220| 20 2f 2a 20 69 66 20 6e | 75 6c 6c 20 73 74 72 69 | /* if n|ull stri|
|00003230| 6e 67 20 2a 2f 0a 58 58 | 09 09 72 65 74 75 72 6e |ng */.XX|..return|
|00003240| 28 2d 31 29 3b 20 20 2f | 2a 20 6e 6f 20 6d 61 74 |(-1); /|* no mat|
|00003250| 63 68 20 2a 2f 0a 0a 58 | 58 09 6c 6f 77 65 72 20 |ch */..X|X.lower |
|00003260| 3d 20 30 3b 0a 58 58 09 | 75 70 70 65 72 20 3d 20 |= 0;.XX.|upper = |
|00003270| 6e 75 6d 5f 73 74 72 75 | 63 74 73 20 2d 20 31 3b |num_stru|cts - 1;|
|00003280| 0a 58 58 09 64 6f 20 7b | 0a 58 58 09 09 70 6f 73 |.XX.do {|.XX..pos|
|00003290| 20 3d 20 28 6c 6f 77 65 | 72 20 2b 20 75 70 70 65 | = (lowe|r + uppe|
|000032a0| 72 29 20 2f 20 32 3b 0a | 58 58 09 09 64 69 66 66 |r) / 2;.|XX..diff|
|000032b0| 20 3d 20 73 74 72 63 6d | 70 28 26 73 74 72 75 63 | = strcm|p(&struc|
|000032c0| 74 61 72 72 61 79 5b 69 | 6e 64 78 20 3d 20 70 6f |tarray[i|ndx = po|
|000032d0| 73 20 2a 20 73 69 7a 65 | 5f 73 74 72 75 63 74 5d |s * size|_struct]|
|000032e0| 2c 20 6d 61 74 63 68 5f | 73 74 72 69 6e 67 29 3b |, match_|string);|
|000032f0| 0a 58 58 09 09 69 66 20 | 28 64 69 66 66 20 3c 3d |.XX..if |(diff <=|
|00003300| 20 30 29 20 2f 2a 20 69 | 66 20 6d 61 74 63 68 5f | 0) /* i|f match_|
|00003310| 73 74 72 69 6e 67 20 3e | 3d 20 26 73 74 72 75 63 |string >|= &struc|
|00003320| 74 61 72 72 61 79 5b 70 | 6f 73 5d 20 2a 2f 0a 58 |tarray[p|os] */.X|
|00003330| 58 09 09 09 6c 6f 77 65 | 72 20 3d 20 70 6f 73 20 |X...lowe|r = pos |
|00003340| 2b 20 31 3b 0a 58 58 09 | 09 69 66 20 28 64 69 66 |+ 1;.XX.|.if (dif|
|00003350| 66 20 3e 3d 20 30 29 20 | 2f 2a 20 69 66 20 6d 61 |f >= 0) |/* if ma|
|00003360| 74 63 68 5f 73 74 72 69 | 6e 67 20 3c 3d 20 26 73 |tch_stri|ng <= &s|
|00003370| 74 72 75 63 74 61 72 72 | 61 79 5b 70 6f 73 5d 20 |tructarr|ay[pos] |
|00003380| 2a 2f 0a 58 58 09 09 09 | 75 70 70 65 72 20 3d 20 |*/.XX...|upper = |
|00003390| 70 6f 73 20 2d 20 31 3b | 0a 58 58 09 7d 20 77 68 |pos - 1;|.XX.} wh|
|000033a0| 69 6c 65 20 28 6c 6f 77 | 65 72 20 3c 3d 20 75 70 |ile (low|er <= up|
|000033b0| 70 65 72 29 3b 0a 0a 58 | 58 09 69 66 20 28 73 74 |per);..X|X.if (st|
|000033c0| 72 63 6d 70 28 26 73 74 | 72 75 63 74 61 72 72 61 |rcmp(&st|ructarra|
|000033d0| 79 5b 69 6e 64 78 5d 2c | 20 6d 61 74 63 68 5f 73 |y[indx],| match_s|
|000033e0| 74 72 69 6e 67 29 20 3d | 3d 20 30 29 20 0a 58 58 |tring) =|= 0) .XX|
|000033f0| 09 09 72 65 74 75 72 6e | 28 70 6f 73 29 3b 0a 0a |..return|(pos);..|
|00003400| 58 58 09 69 66 20 28 21 | 73 75 62 73 74 72 69 6e |XX.if (!|substrin|
|00003410| 67 28 6d 61 74 63 68 5f | 73 74 72 69 6e 67 2c 20 |g(match_|string, |
|00003420| 26 73 74 72 75 63 74 61 | 72 72 61 79 5b 69 6e 64 |&structa|rray[ind|
|00003430| 78 5d 29 29 20 7b 0a 58 | 58 09 09 2b 2b 70 6f 73 |x])) {.X|X..++pos|
|00003440| 3b 0a 58 58 09 09 69 6e | 64 78 20 3d 20 70 6f 73 |;.XX..in|dx = pos|
|00003450| 20 2a 20 73 69 7a 65 5f | 73 74 72 75 63 74 3b 0a | * size_|struct;.|
|00003460| 58 58 09 09 69 66 20 28 | 70 6f 73 20 3e 20 6e 75 |XX..if (|pos > nu|
|00003470| 6d 5f 73 74 72 75 63 74 | 73 20 2d 20 31 20 7c 7c |m_struct|s - 1 |||
|00003480| 20 21 73 75 62 73 74 72 | 69 6e 67 28 6d 61 74 63 | !substr|ing(matc|
|00003490| 68 5f 73 74 72 69 6e 67 | 2c 20 26 73 74 72 75 63 |h_string|, &struc|
|000034a0| 74 61 72 72 61 79 5b 69 | 6e 64 78 5d 29 29 0a 58 |tarray[i|ndx])).X|
|000034b0| 58 09 09 09 72 65 74 75 | 72 6e 28 2d 31 29 3b 0a |X...retu|rn(-1);.|
|000034c0| 58 58 09 7d 0a 58 58 09 | 0a 58 58 09 69 66 20 28 |XX.}.XX.|.XX.if (|
|000034d0| 70 6f 73 20 3c 20 6e 75 | 6d 5f 73 74 72 75 63 74 |pos < nu|m_struct|
|000034e0| 73 20 2d 20 31 29 0a 58 | 58 09 09 69 66 20 28 73 |s - 1).X|X..if (s|
|000034f0| 75 62 73 74 72 69 6e 67 | 28 6d 61 74 63 68 5f 73 |ubstring|(match_s|
|00003500| 74 72 69 6e 67 2c 20 26 | 73 74 72 75 63 74 61 72 |tring, &|structar|
|00003510| 72 61 79 5b 28 70 6f 73 | 20 2b 20 31 29 20 2a 20 |ray[(pos| + 1) * |
|00003520| 73 69 7a 65 5f 73 74 72 | 75 63 74 5d 29 29 0a 58 |size_str|uct])).X|
|00003530| 58 09 09 09 72 65 74 75 | 72 6e 28 2d 32 29 3b 20 |X...retu|rn(-2); |
|00003540| 2f 2a 20 6e 6f 74 20 75 | 6e 69 71 75 65 20 65 72 |/* not u|nique er|
|00003550| 72 6f 72 2e 20 2a 2f 0a | 0a 58 58 09 72 65 74 75 |ror. */.|.XX.retu|
|00003560| 72 6e 28 70 6f 73 29 3b | 0a 58 58 7d 0a 0a 0a 58 |rn(pos);|.XX}...X|
|00003570| 58 73 75 62 73 74 72 69 | 6e 67 28 70 61 72 74 2c |Xsubstri|ng(part,|
|00003580| 20 66 75 6c 6c 29 0a 58 | 58 2f 2a 20 52 65 74 75 | full).X|X/* Retu|
|00003590| 72 6e 73 20 54 52 55 45 | 20 69 66 20 22 70 61 72 |rns TRUE| if "par|
|000035a0| 74 22 20 69 73 20 61 20 | 6c 65 66 74 20 61 6e 63 |t" is a |left anc|
|000035b0| 68 6f 72 65 64 20 73 75 | 62 73 74 72 69 6e 67 20 |hored su|bstring |
|000035c0| 6f 66 20 22 66 75 6c 6c | 22 2e 20 2a 2f 0a 0a 58 |of "full|". */..X|
|000035d0| 58 72 65 67 69 73 74 65 | 72 20 63 68 61 72 09 2a |Xregiste|r char.*|
|000035e0| 70 61 72 74 2c 20 2a 66 | 75 6c 6c 3b 0a 58 58 7b |part, *f|ull;.XX{|
|000035f0| 0a 58 58 09 72 65 67 69 | 73 74 65 72 09 63 68 61 |.XX.regi|ster.cha|
|00003600| 72 09 63 68 3b 0a 0a 58 | 58 09 77 68 69 6c 65 20 |r.ch;..X|X.while |
|00003610| 28 28 63 68 20 3d 20 2a | 70 61 72 74 2b 2b 29 20 |((ch = *|part++) |
|00003620| 3d 3d 20 2a 66 75 6c 6c | 2b 2b 20 26 26 20 63 68 |== *full|++ && ch|
|00003630| 20 21 3d 20 27 5c 30 27 | 29 0a 58 58 09 09 3b 0a | != '\0'|).XX..;.|
|00003640| 58 58 09 72 65 74 75 72 | 6e 28 63 68 20 3d 3d 20 |XX.retur|n(ch == |
|00003650| 27 5c 30 27 29 3b 09 0a | 58 58 7d 0a 40 2f 2f 45 |'\0');..|XX}.@//E|
|00003660| 2a 4f 2a 46 20 62 69 6e | 73 65 61 72 63 68 2e 63 |*O*F bin|search.c|
|00003670| 2f 2f 0a 63 68 6d 6f 64 | 20 75 3d 72 77 2c 67 3d |//.chmod| u=rw,g=|
|00003680| 72 77 2c 6f 3d 72 77 20 | 24 4f 55 54 0a 20 0a 65 |rw,o=rw |$OUT. .e|
|00003690| 63 68 6f 20 78 20 2d 20 | 63 6f 70 79 2e 63 0a 69 |cho x - |copy.c.i|
|000036a0| 66 20 74 65 73 74 20 2d | 66 20 63 6f 70 79 2e 63 |f test -|f copy.c|
|000036b0| 20 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f | ; then.| echo|
|000036c0| 20 63 6f 70 79 2e 63 20 | 65 78 69 73 74 73 2c 20 | copy.c |exists, |
|000036d0| 70 75 74 74 69 6e 67 20 | 6f 75 74 70 75 74 20 69 |putting |output i|
|000036e0| 6e 20 24 24 63 6f 70 79 | 2e 63 0a 20 20 20 20 4f |n $$copy|.c. O|
|000036f0| 55 54 3d 24 24 63 6f 70 | 79 2e 63 0a 20 20 20 20 |UT=$$cop|y.c. |
|00003700| 53 54 41 54 55 53 3d 31 | 0a 65 6c 73 65 0a 20 20 |STATUS=1|.else. |
|00003710| 20 20 4f 55 54 3d 63 6f | 70 79 2e 63 0a 66 69 0a | OUT=co|py.c.fi.|
|00003720| 73 65 64 20 27 73 2f 5e | 58 58 2f 2f 27 20 3e 20 |sed 's/^|XX//' > |
|00003730| 24 4f 55 54 20 3c 3c 27 | 40 2f 2f 45 2a 4f 2a 46 |$OUT <<'|@//E*O*F|
|00003740| 20 63 6f 70 79 2e 63 2f | 2f 27 0a 58 58 2f 2a 09 | copy.c/|/'.XX/*.|
|00003750| 63 6f 70 79 20 2d 20 63 | 6f 70 79 20 64 61 74 61 |copy - c|opy data|
|00003760| 20 73 74 72 75 63 74 75 | 72 65 73 0a 58 58 09 38 | structu|res.XX.8|
|00003770| 34 2f 31 32 2f 31 38 2e | 20 20 41 2e 20 45 2e 20 |4/12/18.| A. E. |
|00003780| 4b 6c 69 65 74 7a 2e 0a | 58 58 2a 2f 0a 0a 58 58 |Klietz..|XX*/..XX|
|00003790| 23 69 6e 63 6c 75 64 65 | 20 22 72 76 2e 68 22 0a |#include| "rv.h".|
|000037a0| 0a 58 58 23 69 66 64 65 | 66 20 63 6f 70 79 0a 58 |.XX#ifde|f copy.X|
|000037b0| 58 23 75 6e 64 65 66 20 | 63 6f 70 79 0a 58 58 23 |X#undef |copy.XX#|
|000037c0| 65 6e 64 69 66 0a 0a 58 | 58 23 69 66 6e 64 65 66 |endif..X|X#ifndef|
|000037d0| 20 55 53 47 0a 58 58 76 | 6f 69 64 0a 58 58 63 6f | USG.XXv|oid.XXco|
|000037e0| 70 79 28 74 6f 2c 20 66 | 72 6f 6d 2c 20 6c 65 6e |py(to, f|rom, len|
|000037f0| 29 0a 58 58 63 68 61 72 | 20 2a 74 6f 2c 20 2a 66 |).XXchar| *to, *f|
|00003800| 72 6f 6d 3b 0a 58 58 69 | 6e 74 20 6c 65 6e 3b 0a |rom;.XXi|nt len;.|
|00003810| 58 58 7b 0a 58 58 09 66 | 6f 72 20 28 3b 20 6c 65 |XX{.XX.f|or (; le|
|00003820| 6e 20 3e 20 30 3b 20 2d | 2d 6c 65 6e 29 0a 58 58 |n > 0; -|-len).XX|
|00003830| 09 09 2a 28 74 6f 2b 2b | 29 20 3d 20 2a 28 66 72 |..*(to++|) = *(fr|
|00003840| 6f 6d 2b 2b 29 3b 0a 58 | 58 7d 0a 58 58 23 65 6e |om++);.X|X}.XX#en|
|00003850| 64 69 66 0a 40 2f 2f 45 | 2a 4f 2a 46 20 63 6f 70 |dif.@//E|*O*F cop|
|00003860| 79 2e 63 2f 2f 0a 63 68 | 6d 6f 64 20 75 3d 72 77 |y.c//.ch|mod u=rw|
|00003870| 2c 67 3d 72 77 2c 6f 3d | 72 77 20 24 4f 55 54 0a |,g=rw,o=|rw $OUT.|
|00003880| 20 0a 65 63 68 6f 20 78 | 20 2d 20 63 6f 70 79 72 | .echo x| - copyr|
|00003890| 69 67 68 74 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |ight.if |test -f |
|000038a0| 63 6f 70 79 72 69 67 68 | 74 20 3b 20 74 68 65 6e |copyrigh|t ; then|
|000038b0| 0a 20 20 20 20 65 63 68 | 6f 20 63 6f 70 79 72 69 |. ech|o copyri|
|000038c0| 67 68 74 20 65 78 69 73 | 74 73 2c 20 70 75 74 74 |ght exis|ts, putt|
|000038d0| 69 6e 67 20 6f 75 74 70 | 75 74 20 69 6e 20 24 24 |ing outp|ut in $$|
|000038e0| 63 6f 70 79 72 69 67 68 | 74 0a 20 20 20 20 4f 55 |copyrigh|t. OU|
|000038f0| 54 3d 24 24 63 6f 70 79 | 72 69 67 68 74 0a 20 20 |T=$$copy|right. |
|00003900| 20 20 53 54 41 54 55 53 | 3d 31 0a 65 6c 73 65 0a | STATUS|=1.else.|
|00003910| 20 20 20 20 4f 55 54 3d | 63 6f 70 79 72 69 67 68 | OUT=|copyrigh|
|00003920| 74 0a 66 69 0a 73 65 64 | 20 27 73 2f 5e 58 58 2f |t.fi.sed| 's/^XX/|
|00003930| 2f 27 20 3e 20 24 4f 55 | 54 20 3c 3c 27 40 2f 2f |/' > $OU|T <<'@//|
|00003940| 45 2a 4f 2a 46 20 63 6f | 70 79 72 69 67 68 74 2f |E*O*F co|pyright/|
|00003950| 2f 27 0a 58 58 2f 2a 0a | 58 58 20 2a 09 52 76 69 |/'.XX/*.|XX *.Rvi|
|00003960| 20 2d 20 50 6f 72 74 61 | 62 6c 65 20 64 69 73 74 | - Porta|ble dist|
|00003970| 72 69 62 75 74 65 64 20 | 73 63 72 65 65 6e 20 65 |ributed |screen e|
|00003980| 64 69 74 6f 72 20 28 44 | 53 45 29 2e 0a 58 58 20 |ditor (D|SE)..XX |
|00003990| 2a 09 38 36 2f 30 37 2f | 31 36 2e 20 20 41 6c 61 |*.86/07/|16. Ala|
|000039a0| 6e 20 4b 6c 69 65 74 7a | 0a 58 58 20 2a 09 43 6f |n Klietz|.XX *.Co|
|000039b0| 70 79 72 69 67 68 74 20 | 28 63 29 20 31 39 38 36 |pyright |(c) 1986|
|000039c0| 2c 20 52 65 73 65 61 72 | 63 68 20 45 71 75 69 70 |, Resear|ch Equip|
|000039d0| 6d 65 6e 74 20 49 6e 63 | 6f 72 70 6f 72 61 74 65 |ment Inc|orporate|
|000039e0| 64 0a 58 58 20 2a 20 20 | 20 20 20 20 20 20 20 20 |d.XX * | |
|000039f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003a00| 4d 69 6e 6e 65 73 6f 74 | 61 20 53 75 70 65 72 63 |Minnesot|a Superc|
|00003a10| 6f 6d 70 75 74 65 72 20 | 43 65 6e 74 65 72 0a 58 |omputer |Center.X|
|00003a20| 58 20 2a 0a 58 58 20 2a | 20 50 65 72 6d 69 73 73 |X *.XX *| Permiss|
|00003a30| 69 6f 6e 20 69 73 20 68 | 65 72 65 62 79 20 67 72 |ion is h|ereby gr|
|00003a40| 61 6e 74 65 64 20 74 6f | 20 75 73 65 20 74 68 69 |anted to| use thi|
|00003a50| 73 20 73 6f 66 74 77 61 | 72 65 20 6f 6e 20 61 6e |s softwa|re on an|
|00003a60| 79 20 63 6f 6d 70 75 74 | 65 72 20 73 79 73 74 65 |y comput|er syste|
|00003a70| 6d 0a 58 58 20 2a 20 61 | 6e 64 20 74 6f 20 63 6f |m.XX * a|nd to co|
|00003a80| 70 79 20 74 68 69 73 20 | 73 6f 66 74 77 61 72 65 |py this |software|
|00003a90| 2c 20 69 6e 63 6c 75 64 | 69 6e 67 20 66 6f 72 20 |, includ|ing for |
|00003aa0| 70 75 72 70 6f 73 65 73 | 20 6f 66 20 72 65 64 69 |purposes| of redi|
|00003ab0| 73 74 72 69 62 75 74 69 | 6f 6e 2c 20 73 75 62 6a |stributi|on, subj|
|00003ac0| 65 63 74 0a 58 58 20 2a | 20 74 6f 20 74 68 65 20 |ect.XX *| to the |
|00003ad0| 63 6f 6e 64 69 74 69 6f | 6e 73 20 74 68 61 74 20 |conditio|ns that |
|00003ae0| 0a 58 58 20 2a 0a 58 58 | 20 2a 20 20 6f 20 20 54 |.XX *.XX| * o T|
|00003af0| 68 65 20 66 75 6c 6c 20 | 74 65 78 74 20 6f 66 20 |he full |text of |
|00003b00| 74 68 69 73 20 63 6f 70 | 79 72 69 67 68 74 20 6d |this cop|yright m|
|00003b10| 65 73 73 61 67 65 20 69 | 73 20 72 65 74 61 69 6e |essage i|s retain|
|00003b20| 65 64 20 61 6e 64 20 70 | 72 6f 6d 69 6e 65 6e 74 |ed and p|rominent|
|00003b30| 6c 79 0a 58 58 20 2a 20 | 20 20 20 20 20 64 69 73 |ly.XX * | dis|
|00003b40| 70 6c 61 79 65 64 0a 58 | 58 20 2a 0a 58 58 20 2a |played.X|X *.XX *|
|00003b50| 20 20 6f 20 20 4e 6f 20 | 6d 69 73 72 65 70 72 65 | o No |misrepre|
|00003b60| 73 65 6e 74 61 74 69 6f | 6e 20 69 73 20 6d 61 64 |sentatio|n is mad|
|00003b70| 65 20 61 73 20 74 6f 20 | 74 68 65 20 61 75 74 68 |e as to |the auth|
|00003b80| 6f 72 73 68 69 70 20 6f | 66 20 74 68 69 73 20 73 |orship o|f this s|
|00003b90| 6f 66 74 77 61 72 65 0a | 58 58 20 2a 0a 58 58 20 |oftware.|XX *.XX |
|00003ba0| 2a 20 20 6f 20 20 54 68 | 65 20 73 6f 66 74 77 61 |* o Th|e softwa|
|00003bb0| 72 65 20 69 73 20 6e 6f | 74 20 75 73 65 64 20 66 |re is no|t used f|
|00003bc0| 6f 72 20 72 65 73 61 6c | 65 20 6f 72 20 64 69 72 |or resal|e or dir|
|00003bd0| 65 63 74 20 63 6f 6d 6d | 65 72 63 69 61 6c 20 61 |ect comm|ercial a|
|00003be0| 64 76 61 6e 74 61 67 65 | 0a 58 58 20 2a 0a 58 58 |dvantage|.XX *.XX|
|00003bf0| 20 2a 20 20 42 79 20 63 | 6f 70 79 69 6e 67 2c 20 | * By c|opying, |
|00003c00| 69 6e 73 74 61 6c 6c 69 | 6e 67 2c 20 6f 72 20 75 |installi|ng, or u|
|00003c10| 73 69 6e 67 20 74 68 69 | 73 20 73 6f 66 74 77 61 |sing thi|s softwa|
|00003c20| 72 65 2c 20 74 68 65 20 | 75 73 65 72 20 61 67 72 |re, the |user agr|
|00003c30| 65 65 73 20 74 6f 20 61 | 62 69 64 65 0a 58 58 20 |ees to a|bide.XX |
|00003c40| 2a 20 20 62 79 20 74 68 | 65 20 61 62 6f 76 65 20 |* by th|e above |
|00003c50| 74 65 72 6d 73 20 61 6e | 64 20 61 67 72 65 65 73 |terms an|d agrees|
|00003c60| 20 74 68 61 74 20 74 68 | 65 20 73 6f 66 74 77 61 | that th|e softwa|
|00003c70| 72 65 20 69 73 20 61 63 | 63 65 70 74 65 64 20 6f |re is ac|cepted o|
|00003c80| 6e 20 61 6e 20 22 61 73 | 20 69 73 22 0a 58 58 20 |n an "as| is".XX |
|00003c90| 2a 20 20 62 61 73 69 73 | 2c 20 57 49 54 48 4f 55 |* basis|, WITHOU|
|00003ca0| 54 20 57 41 52 52 41 4e | 54 59 20 65 78 70 72 65 |T WARRAN|TY expre|
|00003cb0| 73 73 65 64 20 6f 72 20 | 69 6d 70 6c 69 65 64 2c |ssed or |implied,|
|00003cc0| 20 61 6e 64 20 72 65 6c | 69 65 76 65 73 20 52 65 | and rel|ieves Re|
|00003cd0| 73 65 61 72 63 68 20 45 | 71 75 69 70 2d 0a 58 58 |search E|quip-.XX|
|00003ce0| 20 2a 20 20 6d 65 6e 74 | 20 49 6e 63 2e 2c 20 69 | * ment| Inc., i|
|00003cf0| 74 73 20 61 66 66 69 6c | 69 61 74 65 73 2c 20 6f |ts affil|iates, o|
|00003d00| 66 66 69 63 65 72 73 2c | 20 61 67 65 6e 74 73 2c |fficers,| agents,|
|00003d10| 20 61 6e 64 20 65 6d 70 | 6c 6f 79 65 65 73 20 6f | and emp|loyees o|
|00003d20| 66 20 61 6e 79 20 61 6e | 64 20 61 6c 6c 0a 58 58 |f any an|d all.XX|
|00003d30| 20 2a 20 20 6c 69 61 62 | 69 6c 69 74 79 2c 20 64 | * liab|ility, d|
|00003d40| 69 72 65 63 74 20 6f 66 | 20 63 6f 6e 73 65 71 75 |irect of| consequ|
|00003d50| 65 6e 74 69 61 6c 2c 20 | 72 65 73 75 6c 74 69 6e |ential, |resultin|
|00003d60| 67 20 66 72 6f 6d 20 63 | 6f 70 79 69 6e 67 2c 20 |g from c|opying, |
|00003d70| 69 6e 73 74 61 6c 6c 69 | 6e 67 0a 58 58 20 2a 20 |installi|ng.XX * |
|00003d80| 20 6f 72 20 75 73 69 6e | 67 20 74 68 69 73 20 73 | or usin|g this s|
|00003d90| 6f 66 74 77 61 72 65 2e | 0a 58 58 20 2a 2f 0a 40 |oftware.|.XX */.@|
|00003da0| 2f 2f 45 2a 4f 2a 46 20 | 63 6f 70 79 72 69 67 68 |//E*O*F |copyrigh|
|00003db0| 74 2f 2f 0a 63 68 6d 6f | 64 20 75 3d 72 77 2c 67 |t//.chmo|d u=rw,g|
|00003dc0| 3d 72 77 2c 6f 3d 72 77 | 20 24 4f 55 54 0a 20 0a |=rw,o=rw| $OUT. .|
|00003dd0| 65 63 68 6f 20 78 20 2d | 20 4d 61 6e 69 66 65 73 |echo x -| Manifes|
|00003de0| 74 0a 69 66 20 74 65 73 | 74 20 2d 66 20 4d 61 6e |t.if tes|t -f Man|
|00003df0| 69 66 65 73 74 20 3b 20 | 74 68 65 6e 0a 20 20 20 |ifest ; |then. |
|00003e00| 20 65 63 68 6f 20 4d 61 | 6e 69 66 65 73 74 20 65 | echo Ma|nifest e|
|00003e10| 78 69 73 74 73 2c 20 70 | 75 74 74 69 6e 67 20 6f |xists, p|utting o|
|00003e20| 75 74 70 75 74 20 69 6e | 20 24 24 4d 61 6e 69 66 |utput in| $$Manif|
|00003e30| 65 73 74 0a 20 20 20 20 | 4f 55 54 3d 24 24 4d 61 |est. |OUT=$$Ma|
|00003e40| 6e 69 66 65 73 74 0a 20 | 20 20 20 53 54 41 54 55 |nifest. | STATU|
|00003e50| 53 3d 31 0a 65 6c 73 65 | 0a 20 20 20 20 4f 55 54 |S=1.else|. OUT|
|00003e60| 3d 4d 61 6e 69 66 65 73 | 74 0a 66 69 0a 73 65 64 |=Manifes|t.fi.sed|
|00003e70| 20 27 73 2f 5e 58 58 2f | 2f 27 20 3e 20 24 4f 55 | 's/^XX/|/' > $OU|
|00003e80| 54 20 3c 3c 27 40 2f 2f | 45 2a 4f 2a 46 20 4d 61 |T <<'@//|E*O*F Ma|
|00003e90| 6e 69 66 65 73 74 2f 2f | 27 0a 58 58 42 55 47 46 |nifest//|'.XXBUGF|
|00003ea0| 49 58 0a 58 58 42 55 47 | 46 49 58 32 0a 58 58 4d |IX.XXBUG|FIX2.XXM|
|00003eb0| 61 6b 65 66 69 6c 65 2e | 62 73 64 0a 58 58 4d 61 |akefile.|bsd.XXMa|
|00003ec0| 6b 65 66 69 6c 65 2e 75 | 73 67 0a 58 58 4e 45 58 |kefile.u|sg.XXNEX|
|00003ed0| 54 5f 52 45 4c 0a 58 58 | 52 45 41 44 4d 45 0a 58 |T_REL.XX|README.X|
|00003ee0| 58 62 69 6e 73 65 61 72 | 63 68 2e 63 0a 58 58 63 |Xbinsear|ch.c.XXc|
|00003ef0| 6f 70 79 2e 63 0a 58 58 | 63 6f 70 79 72 69 67 68 |opy.c.XX|copyrigh|
|00003f00| 74 0a 58 58 4d 61 6e 69 | 66 65 73 74 0a 58 58 72 |t.XXMani|fest.XXr|
|00003f10| 65 67 65 72 72 6f 72 2e | 63 0a 58 58 72 65 67 65 |egerror.|c.XXrege|
|00003f20| 78 70 2e 63 0a 58 58 72 | 65 67 65 78 70 2e 68 0a |xp.c.XXr|egexp.h.|
|00003f30| 58 58 72 65 67 6d 61 67 | 69 63 2e 68 0a 58 58 72 |XXregmag|ic.h.XXr|
|00003f40| 76 2e 68 0a 58 58 72 76 | 5f 63 68 61 6e 67 65 2e |v.h.XXrv|_change.|
|00003f50| 63 0a 58 58 72 76 5f 63 | 6d 64 2e 63 0a 58 58 72 |c.XXrv_c|md.c.XXr|
|00003f60| 76 5f 63 6f 6c 75 6d 6e | 2e 63 0a 58 58 72 76 5f |v_column|.c.XXrv_|
|00003f70| 64 65 6c 63 6f 6c 2e 63 | 0a 58 58 72 76 5f 64 65 |delcol.c|.XXrv_de|
|00003f80| 6c 65 74 65 2e 63 0a 58 | 58 72 76 5f 64 6f 74 2e |lete.c.X|Xrv_dot.|
|00003f90| 63 0a 58 58 72 76 5f 64 | 75 6d 6d 79 2e 63 0a 58 |c.XXrv_d|ummy.c.X|
|00003fa0| 58 72 76 5f 65 64 69 74 | 2e 63 0a 58 58 72 76 5f |Xrv_edit|.c.XXrv_|
|00003fb0| 66 61 73 74 2e 63 0a 58 | 58 72 76 5f 66 65 74 63 |fast.c.X|Xrv_fetc|
|00003fc0| 68 2e 63 0a 58 58 72 76 | 5f 66 6c 61 73 68 2e 63 |h.c.XXrv|_flash.c|
|00003fd0| 0a 58 58 72 76 5f 66 6f | 72 62 61 63 6b 2e 63 0a |.XXrv_fo|rback.c.|
|00003fe0| 58 58 72 76 5f 67 65 74 | 6c 69 6e 65 2e 63 0a 58 |XXrv_get|line.c.X|
|00003ff0| 58 72 76 5f 69 6e 69 74 | 2e 63 0a 58 58 72 76 5f |Xrv_init|.c.XXrv_|
|00004000| 69 6e 70 75 74 2e 63 0a | 58 58 72 76 5f 69 6e 73 |input.c.|XXrv_ins|
|00004010| 65 72 74 2e 63 0a 58 58 | 72 76 5f 6a 6f 69 6e 2e |ert.c.XX|rv_join.|
|00004020| 63 0a 58 58 72 76 5f 6c | 69 6e 65 63 6d 64 2e 63 |c.XXrv_l|inecmd.c|
|00004030| 0a 58 58 72 76 5f 6d 61 | 69 6e 2e 63 0a 58 58 72 |.XXrv_ma|in.c.XXr|
|00004040| 76 5f 6d 61 72 6b 2e 63 | 0a 58 58 72 76 5f 6d 69 |v_mark.c|.XXrv_mi|
|00004050| 73 63 2e 63 0a 58 58 72 | 76 5f 6d 6f 76 65 2e 63 |sc.c.XXr|v_move.c|
|00004060| 0a 58 58 72 76 5f 6f 70 | 65 6e 6c 69 6e 65 2e 63 |.XXrv_op|enline.c|
|00004070| 0a 58 58 72 76 5f 70 72 | 69 6e 74 5f 6c 6e 2e 63 |.XXrv_pr|int_ln.c|
|00004080| 0a 58 58 72 76 5f 70 75 | 74 2e 63 0a 58 58 72 76 |.XXrv_pu|t.c.XXrv|
|00004090| 5f 71 75 69 74 2e 63 0a | 58 58 72 76 5f 72 65 64 |_quit.c.|XXrv_red|
|000040a0| 72 61 77 2e 63 0a 58 58 | 72 76 5f 72 65 64 72 61 |raw.c.XX|rv_redra|
|000040b0| 77 5f 6c 6e 2e 63 0a 58 | 58 72 76 5f 73 63 72 6f |w_ln.c.X|Xrv_scro|
|000040c0| 6c 6c 2e 63 0a 58 58 72 | 76 5f 73 63 72 6f 6c 6c |ll.c.XXr|v_scroll|
|000040d0| 5f 62 6b 2e 63 0a 58 58 | 72 76 5f 73 65 61 72 63 |_bk.c.XX|rv_searc|
|000040e0| 68 2e 63 0a 58 58 72 76 | 5f 73 68 65 6c 6c 2e 63 |h.c.XXrv|_shell.c|
|000040f0| 0a 58 58 72 76 5f 73 79 | 6e 63 2e 63 0a 58 58 72 |.XXrv_sy|nc.c.XXr|
|00004100| 76 5f 75 6e 64 6f 2e 63 | 0a 58 58 72 76 5f 77 68 |v_undo.c|.XXrv_wh|
|00004110| 65 72 65 2e 63 0a 58 58 | 72 76 5f 77 6f 72 64 2e |ere.c.XX|rv_word.|
|00004120| 63 0a 58 58 72 76 5f 78 | 6d 69 74 2e 63 0a 58 58 |c.XXrv_x|mit.c.XX|
|00004130| 72 76 5f 79 61 6e 6b 2e | 63 0a 58 58 72 76 69 2e |rv_yank.|c.XXrvi.|
|00004140| 31 0a 58 58 72 76 74 65 | 73 74 2e 63 0a 58 58 74 |1.XXrvte|st.c.XXt|
|00004150| 6f 64 6f 0a 58 58 7a 65 | 72 6f 2e 63 0a 40 2f 2f |odo.XXze|ro.c.@//|
|00004160| 45 2a 4f 2a 46 20 4d 61 | 6e 69 66 65 73 74 2f 2f |E*O*F Ma|nifest//|
|00004170| 0a 63 68 6d 6f 64 20 75 | 3d 72 77 2c 67 3d 72 77 |.chmod u|=rw,g=rw|
|00004180| 2c 6f 3d 72 77 20 24 4f | 55 54 0a 20 0a 65 63 68 |,o=rw $O|UT. .ech|
|00004190| 6f 20 78 20 2d 20 72 65 | 67 65 72 72 6f 72 2e 63 |o x - re|gerror.c|
|000041a0| 0a 69 66 20 74 65 73 74 | 20 2d 66 20 72 65 67 65 |.if test| -f rege|
|000041b0| 72 72 6f 72 2e 63 20 3b | 20 74 68 65 6e 0a 20 20 |rror.c ;| then. |
|000041c0| 20 20 65 63 68 6f 20 72 | 65 67 65 72 72 6f 72 2e | echo r|egerror.|
|000041d0| 63 20 65 78 69 73 74 73 | 2c 20 70 75 74 74 69 6e |c exists|, puttin|
|000041e0| 67 20 6f 75 74 70 75 74 | 20 69 6e 20 24 24 72 65 |g output| in $$re|
|000041f0| 67 65 72 72 6f 72 2e 63 | 0a 20 20 20 20 4f 55 54 |gerror.c|. OUT|
|00004200| 3d 24 24 72 65 67 65 72 | 72 6f 72 2e 63 0a 20 20 |=$$reger|ror.c. |
|00004210| 20 20 53 54 41 54 55 53 | 3d 31 0a 65 6c 73 65 0a | STATUS|=1.else.|
|00004220| 20 20 20 20 4f 55 54 3d | 72 65 67 65 72 72 6f 72 | OUT=|regerror|
|00004230| 2e 63 0a 66 69 0a 73 65 | 64 20 27 73 2f 5e 58 58 |.c.fi.se|d 's/^XX|
|00004240| 2f 2f 27 20 3e 20 24 4f | 55 54 20 3c 3c 27 40 2f |//' > $O|UT <<'@/|
|00004250| 2f 45 2a 4f 2a 46 20 72 | 65 67 65 72 72 6f 72 2e |/E*O*F r|egerror.|
|00004260| 63 2f 2f 27 0a 58 58 23 | 69 6e 63 6c 75 64 65 20 |c//'.XX#|include |
|00004270| 22 72 76 2e 68 22 0a 0a | 58 58 76 6f 69 64 0a 58 |"rv.h"..|XXvoid.X|
|00004280| 58 72 65 67 65 72 72 6f | 72 28 73 29 0a 58 58 63 |Xregerro|r(s).XXc|
|00004290| 68 61 72 20 2a 73 3b 0a | 58 58 7b 0a 58 58 09 62 |har *s;.|XX{.XX.b|
|000042a0| 6f 74 70 72 69 6e 74 28 | 54 52 55 45 2c 20 22 25 |otprint(|TRUE, "%|
|000042b0| 73 22 2c 20 73 29 3b 0a | 58 58 7d 0a 40 2f 2f 45 |s", s);.|XX}.@//E|
|000042c0| 2a 4f 2a 46 20 72 65 67 | 65 72 72 6f 72 2e 63 2f |*O*F reg|error.c/|
|000042d0| 2f 0a 63 68 6d 6f 64 20 | 75 3d 72 77 2c 67 3d 72 |/.chmod |u=rw,g=r|
|000042e0| 77 2c 6f 3d 72 77 20 24 | 4f 55 54 0a 20 0a 65 63 |w,o=rw $|OUT. .ec|
|000042f0| 68 6f 20 78 20 2d 20 72 | 65 67 65 78 70 2e 63 0a |ho x - r|egexp.c.|
|00004300| 69 66 20 74 65 73 74 20 | 2d 66 20 72 65 67 65 78 |if test |-f regex|
|00004310| 70 2e 63 20 3b 20 74 68 | 65 6e 0a 20 20 20 20 65 |p.c ; th|en. e|
|00004320| 63 68 6f 20 72 65 67 65 | 78 70 2e 63 20 65 78 69 |cho rege|xp.c exi|
|00004330| 73 74 73 2c 20 70 75 74 | 74 69 6e 67 20 6f 75 74 |sts, put|ting out|
|00004340| 70 75 74 20 69 6e 20 24 | 24 72 65 67 65 78 70 2e |put in $|$regexp.|
|00004350| 63 0a 20 20 20 20 4f 55 | 54 3d 24 24 72 65 67 65 |c. OU|T=$$rege|
|00004360| 78 70 2e 63 0a 20 20 20 | 20 53 54 41 54 55 53 3d |xp.c. | STATUS=|
|00004370| 31 0a 65 6c 73 65 0a 20 | 20 20 20 4f 55 54 3d 72 |1.else. | OUT=r|
|00004380| 65 67 65 78 70 2e 63 0a | 66 69 0a 73 65 64 20 27 |egexp.c.|fi.sed '|
|00004390| 73 2f 5e 58 58 2f 2f 27 | 20 3e 20 24 4f 55 54 20 |s/^XX//'| > $OUT |
|000043a0| 3c 3c 27 40 2f 2f 45 2a | 4f 2a 46 20 72 65 67 65 |<<'@//E*|O*F rege|
|000043b0| 78 70 2e 63 2f 2f 27 0a | 58 58 23 64 65 66 69 6e |xp.c//'.|XX#defin|
|000043c0| 65 20 52 56 49 09 2f 2a | 20 4d 6f 64 69 66 69 65 |e RVI./*| Modifie|
|000043d0| 64 20 76 65 72 73 69 6f | 6e 20 66 6f 72 20 72 65 |d versio|n for re|
|000043e0| 6d 6f 74 65 20 76 69 20 | 2a 2f 0a 58 58 23 69 6e |mote vi |*/.XX#in|
|000043f0| 63 6c 75 64 65 20 3c 73 | 74 64 69 6f 2e 68 3e 0a |clude <s|tdio.h>.|
|00004400| 0a 58 58 23 69 66 64 65 | 66 20 52 56 49 0a 58 58 |.XX#ifde|f RVI.XX|
|00004410| 23 20 20 69 66 20 21 64 | 65 66 69 6e 65 64 28 4c |# if !d|efined(L|
|00004420| 5f 63 74 65 72 6d 69 64 | 29 20 7c 7c 20 64 65 66 |_ctermid|) || def|
|00004430| 69 6e 65 64 28 73 75 6e | 29 20 20 20 2f 2a 20 49 |ined(sun|) /* I|
|00004440| 66 20 42 53 44 20 73 79 | 73 74 65 6d 20 2a 2f 0a |f BSD sy|stem */.|
|00004450| 58 58 23 20 20 20 20 64 | 65 66 69 6e 65 20 73 74 |XX# d|efine st|
|00004460| 72 63 68 72 20 69 6e 64 | 65 78 0a 58 58 23 20 20 |rchr ind|ex.XX# |
|00004470| 20 20 64 65 66 69 6e 65 | 20 53 54 52 43 53 50 4e | define| STRCSPN|
|00004480| 0a 58 58 23 20 20 65 6e | 64 69 66 0a 58 58 23 65 |.XX# en|dif.XX#e|
|00004490| 6e 64 69 66 0a 58 58 2f | 2a 0a 58 58 20 2a 20 72 |ndif.XX/|*.XX * r|
|000044a0| 65 67 63 6f 6d 70 20 61 | 6e 64 20 72 65 67 65 78 |egcomp a|nd regex|
|000044b0| 65 63 20 2d 2d 20 72 65 | 67 73 75 62 20 61 6e 64 |ec -- re|gsub and|
|000044c0| 20 72 65 67 65 72 72 6f | 72 20 61 72 65 20 65 6c | regerro|r are el|
|000044d0| 73 65 77 68 65 72 65 0a | 58 58 20 2a 0a 58 58 20 |sewhere.|XX *.XX |
|000044e0| 2a 09 43 6f 70 79 72 69 | 67 68 74 20 28 63 29 20 |*.Copyri|ght (c) |
|000044f0| 31 39 38 36 20 62 79 20 | 55 6e 69 76 65 72 73 69 |1986 by |Universi|
|00004500| 74 79 20 6f 66 20 54 6f | 72 6f 6e 74 6f 2e 0a 58 |ty of To|ronto..X|
|00004510| 58 20 2a 09 57 72 69 74 | 74 65 6e 20 62 79 20 48 |X *.Writ|ten by H|
|00004520| 65 6e 72 79 20 53 70 65 | 6e 63 65 72 2e 20 20 4e |enry Spe|ncer. N|
|00004530| 6f 74 20 64 65 72 69 76 | 65 64 20 66 72 6f 6d 20 |ot deriv|ed from |
|00004540| 6c 69 63 65 6e 73 65 64 | 20 73 6f 66 74 77 61 72 |licensed| softwar|
|00004550| 65 2e 0a 58 58 20 2a 0a | 58 58 20 2a 09 50 65 72 |e..XX *.|XX *.Per|
|00004560| 6d 69 73 73 69 6f 6e 20 | 69 73 20 67 72 61 6e 74 |mission |is grant|
|00004570| 65 64 20 74 6f 20 61 6e | 79 6f 6e 65 20 74 6f 20 |ed to an|yone to |
|00004580| 75 73 65 20 74 68 69 73 | 20 73 6f 66 74 77 61 72 |use this| softwar|
|00004590| 65 20 66 6f 72 20 61 6e | 79 0a 58 58 20 2a 09 70 |e for an|y.XX *.p|
|000045a0| 75 72 70 6f 73 65 20 6f | 6e 20 61 6e 79 20 63 6f |urpose o|n any co|
|000045b0| 6d 70 75 74 65 72 20 73 | 79 73 74 65 6d 2c 20 61 |mputer s|ystem, a|
|000045c0| 6e 64 20 74 6f 20 72 65 | 64 69 73 74 72 69 62 75 |nd to re|distribu|
|000045d0| 74 65 20 69 74 20 66 72 | 65 65 6c 79 2c 0a 58 58 |te it fr|eely,.XX|
|000045e0| 20 2a 09 73 75 62 6a 65 | 63 74 20 74 6f 20 74 68 | *.subje|ct to th|
|000045f0| 65 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 72 65 73 74 |e follow|ing rest|
|00004600| 72 69 63 74 69 6f 6e 73 | 3a 0a 58 58 20 2a 0a 58 |rictions|:.XX *.X|
|00004610| 58 20 2a 09 31 2e 20 54 | 68 65 20 61 75 74 68 6f |X *.1. T|he autho|
|00004620| 72 20 69 73 20 6e 6f 74 | 20 72 65 73 70 6f 6e 73 |r is not| respons|
|00004630| 69 62 6c 65 20 66 6f 72 | 20 74 68 65 20 63 6f 6e |ible for| the con|
|00004640| 73 65 71 75 65 6e 63 65 | 73 20 6f 66 20 75 73 65 |sequence|s of use|
|00004650| 20 6f 66 0a 58 58 20 2a | 09 09 74 68 69 73 20 73 | of.XX *|..this s|
|00004660| 6f 66 74 77 61 72 65 2c | 20 6e 6f 20 6d 61 74 74 |oftware,| no matt|
|00004670| 65 72 20 68 6f 77 20 61 | 77 66 75 6c 2c 20 65 76 |er how a|wful, ev|
|00004680| 65 6e 20 69 66 20 74 68 | 65 79 20 61 72 69 73 65 |en if th|ey arise|
|00004690| 0a 58 58 20 2a 09 09 66 | 72 6f 6d 20 64 65 66 65 |.XX *..f|rom defe|
|000046a0| 63 74 73 20 69 6e 20 69 | 74 2e 0a 58 58 20 2a 0a |cts in i|t..XX *.|
|000046b0| 58 58 20 2a 09 32 2e 20 | 54 68 65 20 6f 72 69 67 |XX *.2. |The orig|
|000046c0| 69 6e 20 6f 66 20 74 68 | 69 73 20 73 6f 66 74 77 |in of th|is softw|
|000046d0| 61 72 65 20 6d 75 73 74 | 20 6e 6f 74 20 62 65 20 |are must| not be |
|000046e0| 6d 69 73 72 65 70 72 65 | 73 65 6e 74 65 64 2c 20 |misrepre|sented, |
|000046f0| 65 69 74 68 65 72 0a 58 | 58 20 2a 09 09 62 79 20 |either.X|X *..by |
|00004700| 65 78 70 6c 69 63 69 74 | 20 63 6c 61 69 6d 20 6f |explicit| claim o|
|00004710| 72 20 62 79 20 6f 6d 69 | 73 73 69 6f 6e 2e 0a 58 |r by omi|ssion..X|
|00004720| 58 20 2a 0a 58 58 20 2a | 09 33 2e 20 41 6c 74 65 |X *.XX *|.3. Alte|
|00004730| 72 65 64 20 76 65 72 73 | 69 6f 6e 73 20 6d 75 73 |red vers|ions mus|
|00004740| 74 20 62 65 20 70 6c 61 | 69 6e 6c 79 20 6d 61 72 |t be pla|inly mar|
|00004750| 6b 65 64 20 61 73 20 73 | 75 63 68 2c 20 61 6e 64 |ked as s|uch, and|
|00004760| 20 6d 75 73 74 20 6e 6f | 74 0a 58 58 20 2a 09 09 | must no|t.XX *..|
|00004770| 62 65 20 6d 69 73 72 65 | 70 72 65 73 65 6e 74 65 |be misre|presente|
|00004780| 64 20 61 73 20 62 65 69 | 6e 67 20 74 68 65 20 6f |d as bei|ng the o|
|00004790| 72 69 67 69 6e 61 6c 20 | 73 6f 66 74 77 61 72 65 |riginal |software|
|000047a0| 2e 0a 58 58 20 2a 0a 58 | 58 20 2a 20 42 65 77 61 |..XX *.X|X * Bewa|
|000047b0| 72 65 20 74 68 61 74 20 | 73 6f 6d 65 20 6f 66 20 |re that |some of |
|000047c0| 74 68 69 73 20 63 6f 64 | 65 20 69 73 20 73 75 62 |this cod|e is sub|
|000047d0| 74 6c 79 20 61 77 61 72 | 65 20 6f 66 20 74 68 65 |tly awar|e of the|
|000047e0| 20 77 61 79 20 6f 70 65 | 72 61 74 6f 72 0a 58 58 | way ope|rator.XX|
|000047f0| 20 2a 20 70 72 65 63 65 | 64 65 6e 63 65 20 69 73 | * prece|dence is|
|00004800| 20 73 74 72 75 63 74 75 | 72 65 64 20 69 6e 20 72 | structu|red in r|
|00004810| 65 67 75 6c 61 72 20 65 | 78 70 72 65 73 73 69 6f |egular e|xpressio|
|00004820| 6e 73 2e 20 20 53 65 72 | 69 6f 75 73 20 63 68 61 |ns. Ser|ious cha|
|00004830| 6e 67 65 73 20 69 6e 0a | 58 58 20 2a 20 72 65 67 |nges in.|XX * reg|
|00004840| 75 6c 61 72 2d 65 78 70 | 72 65 73 73 69 6f 6e 20 |ular-exp|ression |
|00004850| 73 79 6e 74 61 78 20 6d | 69 67 68 74 20 72 65 71 |syntax m|ight req|
|00004860| 75 69 72 65 20 61 20 74 | 6f 74 61 6c 20 72 65 74 |uire a t|otal ret|
|00004870| 68 69 6e 6b 2e 0a 58 58 | 20 2a 2f 0a 58 58 23 69 |hink..XX| */.XX#i|
|00004880| 6e 63 6c 75 64 65 20 3c | 73 74 64 69 6f 2e 68 3e |nclude <|stdio.h>|
|00004890| 0a 58 58 23 69 6e 63 6c | 75 64 65 20 22 72 65 67 |.XX#incl|ude "reg|
|000048a0| 65 78 70 2e 68 22 0a 58 | 58 23 69 6e 63 6c 75 64 |exp.h".X|X#includ|
|000048b0| 65 20 22 72 65 67 6d 61 | 67 69 63 2e 68 22 0a 0a |e "regma|gic.h"..|
|000048c0| 58 58 2f 2a 0a 58 58 20 | 2a 20 54 68 65 20 22 69 |XX/*.XX |* The "i|
|000048d0| 6e 74 65 72 6e 61 6c 20 | 75 73 65 20 6f 6e 6c 79 |nternal |use only|
|000048e0| 22 20 66 69 65 6c 64 73 | 20 69 6e 20 72 65 67 65 |" fields| in rege|
|000048f0| 78 70 2e 68 20 61 72 65 | 20 70 72 65 73 65 6e 74 |xp.h are| present|
|00004900| 20 74 6f 20 70 61 73 73 | 20 69 6e 66 6f 20 66 72 | to pass| info fr|
|00004910| 6f 6d 0a 58 58 20 2a 20 | 63 6f 6d 70 69 6c 65 20 |om.XX * |compile |
|00004920| 74 6f 20 65 78 65 63 75 | 74 65 20 74 68 61 74 20 |to execu|te that |
|00004930| 70 65 72 6d 69 74 73 20 | 74 68 65 20 65 78 65 63 |permits |the exec|
|00004940| 75 74 65 20 70 68 61 73 | 65 20 74 6f 20 72 75 6e |ute phas|e to run|
|00004950| 20 6c 6f 74 73 20 66 61 | 73 74 65 72 20 6f 6e 0a | lots fa|ster on.|
|00004960| 58 58 20 2a 20 73 69 6d | 70 6c 65 20 63 61 73 65 |XX * sim|ple case|
|00004970| 73 2e 20 20 54 68 65 79 | 20 61 72 65 3a 0a 58 58 |s. They| are:.XX|
|00004980| 20 2a 0a 58 58 20 2a 20 | 72 65 67 73 74 61 72 74 | *.XX * |regstart|
|00004990| 09 63 68 61 72 20 74 68 | 61 74 20 6d 75 73 74 20 |.char th|at must |
|000049a0| 62 65 67 69 6e 20 61 20 | 6d 61 74 63 68 3b 20 27 |begin a |match; '|
|000049b0| 5c 30 27 20 69 66 20 6e | 6f 6e 65 20 6f 62 76 69 |\0' if n|one obvi|
|000049c0| 6f 75 73 0a 58 58 20 2a | 20 72 65 67 61 6e 63 68 |ous.XX *| reganch|
|000049d0| 09 69 73 20 74 68 65 20 | 6d 61 74 63 68 20 61 6e |.is the |match an|
|000049e0| 63 68 6f 72 65 64 20 28 | 61 74 20 62 65 67 69 6e |chored (|at begin|
|000049f0| 6e 69 6e 67 2d 6f 66 2d | 6c 69 6e 65 20 6f 6e 6c |ning-of-|line onl|
|00004a00| 79 29 3f 0a 58 58 20 2a | 20 72 65 67 6d 75 73 74 |y)?.XX *| regmust|
|00004a10| 09 73 74 72 69 6e 67 20 | 28 70 6f 69 6e 74 65 72 |.string |(pointer|
|00004a20| 20 69 6e 74 6f 20 70 72 | 6f 67 72 61 6d 29 20 74 | into pr|ogram) t|
|00004a30| 68 61 74 20 6d 61 74 63 | 68 20 6d 75 73 74 20 69 |hat matc|h must i|
|00004a40| 6e 63 6c 75 64 65 2c 20 | 6f 72 20 4e 55 4c 4c 0a |nclude, |or NULL.|
|00004a50| 58 58 20 2a 20 72 65 67 | 6d 6c 65 6e 09 6c 65 6e |XX * reg|mlen.len|
|00004a60| 67 74 68 20 6f 66 20 72 | 65 67 6d 75 73 74 20 73 |gth of r|egmust s|
|00004a70| 74 72 69 6e 67 0a 58 58 | 20 2a 0a 58 58 20 2a 20 |tring.XX| *.XX * |
|00004a80| 52 65 67 73 74 61 72 74 | 20 61 6e 64 20 72 65 67 |Regstart| and reg|
|00004a90| 61 6e 63 68 20 70 65 72 | 6d 69 74 20 76 65 72 79 |anch per|mit very|
|00004aa0| 20 66 61 73 74 20 64 65 | 63 69 73 69 6f 6e 73 20 | fast de|cisions |
|00004ab0| 6f 6e 20 73 75 69 74 61 | 62 6c 65 20 73 74 61 72 |on suita|ble star|
|00004ac0| 74 69 6e 67 20 70 6f 69 | 6e 74 73 0a 58 58 20 2a |ting poi|nts.XX *|
|00004ad0| 20 66 6f 72 20 61 20 6d | 61 74 63 68 2c 20 63 75 | for a m|atch, cu|
|00004ae0| 74 74 69 6e 67 20 64 6f | 77 6e 20 74 68 65 20 77 |tting do|wn the w|
|00004af0| 6f 72 6b 20 61 20 6c 6f | 74 2e 20 20 52 65 67 6d |ork a lo|t. Regm|
|00004b00| 75 73 74 20 70 65 72 6d | 69 74 73 20 66 61 73 74 |ust perm|its fast|
|00004b10| 20 72 65 6a 65 63 74 69 | 6f 6e 0a 58 58 20 2a 20 | rejecti|on.XX * |
|00004b20| 6f 66 20 6c 69 6e 65 73 | 20 74 68 61 74 20 63 61 |of lines| that ca|
|00004b30| 6e 6e 6f 74 20 70 6f 73 | 73 69 62 6c 79 20 6d 61 |nnot pos|sibly ma|
|00004b40| 74 63 68 2e 20 20 54 68 | 65 20 72 65 67 6d 75 73 |tch. Th|e regmus|
|00004b50| 74 20 74 65 73 74 73 20 | 61 72 65 20 63 6f 73 74 |t tests |are cost|
|00004b60| 6c 79 20 65 6e 6f 75 67 | 68 0a 58 58 20 2a 20 74 |ly enoug|h.XX * t|
|00004b70| 68 61 74 20 72 65 67 63 | 6f 6d 70 28 29 20 73 75 |hat regc|omp() su|
|00004b80| 70 70 6c 69 65 73 20 61 | 20 72 65 67 6d 75 73 74 |pplies a| regmust|
|00004b90| 20 6f 6e 6c 79 20 69 66 | 20 74 68 65 20 72 2e 65 | only if| the r.e|
|00004ba0| 2e 20 63 6f 6e 74 61 69 | 6e 73 20 73 6f 6d 65 74 |. contai|ns somet|
|00004bb0| 68 69 6e 67 0a 58 58 20 | 2a 20 70 6f 74 65 6e 74 |hing.XX |* potent|
|00004bc0| 69 61 6c 6c 79 20 65 78 | 70 65 6e 73 69 76 65 20 |ially ex|pensive |
|00004bd0| 28 61 74 20 70 72 65 73 | 65 6e 74 2c 20 74 68 65 |(at pres|ent, the|
|00004be0| 20 6f 6e 6c 79 20 73 75 | 63 68 20 74 68 69 6e 67 | only su|ch thing|
|00004bf0| 20 64 65 74 65 63 74 65 | 64 20 69 73 20 2a 20 6f | detecte|d is * o|
|00004c00| 72 20 2b 0a 58 58 20 2a | 20 61 74 20 74 68 65 20 |r +.XX *| at the |
|00004c10| 73 74 61 72 74 20 6f 66 | 20 74 68 65 20 72 2e 65 |start of| the r.e|
|00004c20| 2e 2c 20 77 68 69 63 68 | 20 63 61 6e 20 69 6e 76 |., which| can inv|
|00004c30| 6f 6c 76 65 20 61 20 6c | 6f 74 20 6f 66 20 62 61 |olve a l|ot of ba|
|00004c40| 63 6b 75 70 29 2e 20 20 | 52 65 67 6d 6c 65 6e 20 |ckup). |Regmlen |
|00004c50| 69 73 0a 58 58 20 2a 20 | 73 75 70 70 6c 69 65 64 |is.XX * |supplied|
|00004c60| 20 62 65 63 61 75 73 65 | 20 74 68 65 20 74 65 73 | because| the tes|
|00004c70| 74 20 69 6e 20 72 65 67 | 65 78 65 63 28 29 20 6e |t in reg|exec() n|
|00004c80| 65 65 64 73 20 69 74 20 | 61 6e 64 20 72 65 67 63 |eeds it |and regc|
|00004c90| 6f 6d 70 28 29 20 69 73 | 20 63 6f 6d 70 75 74 69 |omp() is| computi|
|00004ca0| 6e 67 0a 58 58 20 2a 20 | 69 74 20 61 6e 79 77 61 |ng.XX * |it anywa|
|00004cb0| 79 2e 0a 58 58 20 2a 2f | 0a 0a 58 58 2f 2a 0a 58 |y..XX */|..XX/*.X|
|00004cc0| 58 20 2a 20 53 74 72 75 | 63 74 75 72 65 20 66 6f |X * Stru|cture fo|
|00004cd0| 72 20 72 65 67 65 78 70 | 20 22 70 72 6f 67 72 61 |r regexp| "progra|
|00004ce0| 6d 22 2e 20 20 54 68 69 | 73 20 69 73 20 65 73 73 |m". Thi|s is ess|
|00004cf0| 65 6e 74 69 61 6c 6c 79 | 20 61 20 6c 69 6e 65 61 |entially| a linea|
|00004d00| 72 20 65 6e 63 6f 64 69 | 6e 67 0a 58 58 20 2a 20 |r encodi|ng.XX * |
|00004d10| 6f 66 20 61 20 6e 6f 6e | 64 65 74 65 72 6d 69 6e |of a non|determin|
|00004d20| 69 73 74 69 63 20 66 69 | 6e 69 74 65 2d 73 74 61 |istic fi|nite-sta|
|00004d30| 74 65 20 6d 61 63 68 69 | 6e 65 20 28 61 6b 61 20 |te machi|ne (aka |
|00004d40| 73 79 6e 74 61 78 20 63 | 68 61 72 74 73 20 6f 72 |syntax c|harts or|
|00004d50| 0a 58 58 20 2a 20 22 72 | 61 69 6c 72 6f 61 64 20 |.XX * "r|ailroad |
|00004d60| 6e 6f 72 6d 61 6c 20 66 | 6f 72 6d 22 20 69 6e 20 |normal f|orm" in |
|00004d70| 70 61 72 73 69 6e 67 20 | 74 65 63 68 6e 6f 6c 6f |parsing |technolo|
|00004d80| 67 79 29 2e 20 20 45 61 | 63 68 20 6e 6f 64 65 20 |gy). Ea|ch node |
|00004d90| 69 73 20 61 6e 20 6f 70 | 63 6f 64 65 0a 58 58 20 |is an op|code.XX |
|00004da0| 2a 20 70 6c 75 73 20 61 | 20 22 6e 65 78 74 22 20 |* plus a| "next" |
|00004db0| 70 6f 69 6e 74 65 72 2c | 20 70 6f 73 73 69 62 6c |pointer,| possibl|
|00004dc0| 79 20 70 6c 75 73 20 61 | 6e 20 6f 70 65 72 61 6e |y plus a|n operan|
|00004dd0| 64 2e 20 20 22 4e 65 78 | 74 22 20 70 6f 69 6e 74 |d. "Nex|t" point|
|00004de0| 65 72 73 20 6f 66 0a 58 | 58 20 2a 20 61 6c 6c 20 |ers of.X|X * all |
|00004df0| 6e 6f 64 65 73 20 65 78 | 63 65 70 74 20 42 52 41 |nodes ex|cept BRA|
|00004e00| 4e 43 48 20 69 6d 70 6c | 65 6d 65 6e 74 20 63 6f |NCH impl|ement co|
|00004e10| 6e 63 61 74 65 6e 61 74 | 69 6f 6e 3b 20 61 20 22 |ncatenat|ion; a "|
|00004e20| 6e 65 78 74 22 20 70 6f | 69 6e 74 65 72 20 77 69 |next" po|inter wi|
|00004e30| 74 68 0a 58 58 20 2a 20 | 61 20 42 52 41 4e 43 48 |th.XX * |a BRANCH|
|00004e40| 20 6f 6e 20 62 6f 74 68 | 20 65 6e 64 73 20 6f 66 | on both| ends of|
|00004e50| 20 69 74 20 69 73 20 63 | 6f 6e 6e 65 63 74 69 6e | it is c|onnectin|
|00004e60| 67 20 74 77 6f 20 61 6c | 74 65 72 6e 61 74 69 76 |g two al|ternativ|
|00004e70| 65 73 2e 20 20 28 48 65 | 72 65 20 77 65 0a 58 58 |es. (He|re we.XX|
|00004e80| 20 2a 20 68 61 76 65 20 | 6f 6e 65 20 6f 66 20 74 | * have |one of t|
|00004e90| 68 65 20 73 75 62 74 6c | 65 20 73 79 6e 74 61 78 |he subtl|e syntax|
|00004ea0| 20 64 65 70 65 6e 64 65 | 6e 63 69 65 73 3a 20 20 | depende|ncies: |
|00004eb0| 61 6e 20 69 6e 64 69 76 | 69 64 75 61 6c 20 42 52 |an indiv|idual BR|
|00004ec0| 41 4e 43 48 20 28 61 73 | 0a 58 58 20 2a 20 6f 70 |ANCH (as|.XX * op|
|00004ed0| 70 6f 73 65 64 20 74 6f | 20 61 20 63 6f 6c 6c 65 |posed to| a colle|
|00004ee0| 63 74 69 6f 6e 20 6f 66 | 20 74 68 65 6d 29 20 69 |ction of| them) i|
|00004ef0| 73 20 6e 65 76 65 72 20 | 63 6f 6e 63 61 74 65 6e |s never |concaten|
|00004f00| 61 74 65 64 20 77 69 74 | 68 20 61 6e 79 74 68 69 |ated wit|h anythi|
|00004f10| 6e 67 0a 58 58 20 2a 20 | 62 65 63 61 75 73 65 20 |ng.XX * |because |
|00004f20| 6f 66 20 6f 70 65 72 61 | 74 6f 72 20 70 72 65 63 |of opera|tor prec|
|00004f30| 65 64 65 6e 63 65 2e 29 | 20 20 54 68 65 20 6f 70 |edence.)| The op|
|00004f40| 65 72 61 6e 64 20 6f 66 | 20 73 6f 6d 65 20 74 79 |erand of| some ty|
|00004f50| 70 65 73 20 6f 66 20 6e | 6f 64 65 20 69 73 0a 58 |pes of n|ode is.X|
|00004f60| 58 20 2a 20 61 20 6c 69 | 74 65 72 61 6c 20 73 74 |X * a li|teral st|
|00004f70| 72 69 6e 67 3b 20 66 6f | 72 20 6f 74 68 65 72 73 |ring; fo|r others|
|00004f80| 2c 20 69 74 20 69 73 20 | 61 20 6e 6f 64 65 20 6c |, it is |a node l|
|00004f90| 65 61 64 69 6e 67 20 69 | 6e 74 6f 20 61 20 73 75 |eading i|nto a su|
|00004fa0| 62 2d 46 53 4d 2e 20 20 | 49 6e 0a 58 58 20 2a 20 |b-FSM. |In.XX * |
|00004fb0| 70 61 72 74 69 63 75 6c | 61 72 2c 20 74 68 65 20 |particul|ar, the |
|00004fc0| 6f 70 65 72 61 6e 64 20 | 6f 66 20 61 20 42 52 41 |operand |of a BRA|
|00004fd0| 4e 43 48 20 6e 6f 64 65 | 20 69 73 20 74 68 65 20 |NCH node| is the |
|00004fe0| 66 69 72 73 74 20 6e 6f | 64 65 20 6f 66 20 74 68 |first no|de of th|
|00004ff0| 65 20 62 72 61 6e 63 68 | 2e 0a 58 58 20 2a 20 28 |e branch|..XX * (|
|00005000| 4e 42 20 74 68 69 73 20 | 69 73 20 2a 6e 6f 74 2a |NB this |is *not*|
|00005010| 20 61 20 74 72 65 65 20 | 73 74 72 75 63 74 75 72 | a tree |structur|
|00005020| 65 3a 20 20 74 68 65 20 | 74 61 69 6c 20 6f 66 20 |e: the |tail of |
|00005030| 74 68 65 20 62 72 61 6e | 63 68 20 63 6f 6e 6e 65 |the bran|ch conne|
|00005040| 63 74 73 0a 58 58 20 2a | 20 74 6f 20 74 68 65 20 |cts.XX *| to the |
|00005050| 74 68 69 6e 67 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |thing fo|llowing |
|00005060| 74 68 65 20 73 65 74 20 | 6f 66 20 42 52 41 4e 43 |the set |of BRANC|
|00005070| 48 65 73 2e 29 20 20 54 | 68 65 20 6f 70 63 6f 64 |Hes.) T|he opcod|
|00005080| 65 73 20 61 72 65 3a 0a | 58 58 20 2a 2f 0a 0a 58 |es are:.|XX */..X|
|00005090| 58 2f 2a 20 64 65 66 69 | 6e 69 74 69 6f 6e 09 6e |X/* defi|nition.n|
|000050a0| 75 6d 62 65 72 09 6f 70 | 6e 64 3f 09 6d 65 61 6e |umber.op|nd?.mean|
|000050b0| 69 6e 67 20 2a 2f 0a 58 | 58 23 64 65 66 69 6e 65 |ing */.X|X#define|
|000050c0| 09 45 4e 44 09 30 09 2f | 2a 20 6e 6f 09 45 6e 64 |.END.0./|* no.End|
|000050d0| 20 6f 66 20 70 72 6f 67 | 72 61 6d 2e 20 2a 2f 0a | of prog|ram. */.|
|000050e0| 58 58 23 64 65 66 69 6e | 65 09 42 4f 4c 09 31 09 |XX#defin|e.BOL.1.|
|000050f0| 2f 2a 20 6e 6f 09 4d 61 | 74 63 68 20 22 22 20 61 |/* no.Ma|tch "" a|
|00005100| 74 20 62 65 67 69 6e 6e | 69 6e 67 20 6f 66 20 6c |t beginn|ing of l|
|00005110| 69 6e 65 2e 20 2a 2f 0a | 58 58 23 64 65 66 69 6e |ine. */.|XX#defin|
|00005120| 65 09 45 4f 4c 09 32 09 | 2f 2a 20 6e 6f 09 4d 61 |e.EOL.2.|/* no.Ma|
|00005130| 74 63 68 20 22 22 20 61 | 74 20 65 6e 64 20 6f 66 |tch "" a|t end of|
|00005140| 20 6c 69 6e 65 2e 20 2a | 2f 0a 58 58 23 64 65 66 | line. *|/.XX#def|
|00005150| 69 6e 65 09 41 4e 59 09 | 33 09 2f 2a 20 6e 6f 09 |ine.ANY.|3./* no.|
|00005160| 4d 61 74 63 68 20 61 6e | 79 20 6f 6e 65 20 63 68 |Match an|y one ch|
|00005170| 61 72 61 63 74 65 72 2e | 20 2a 2f 0a 58 58 23 64 |aracter.| */.XX#d|
|00005180| 65 66 69 6e 65 09 41 4e | 59 4f 46 09 34 09 2f 2a |efine.AN|YOF.4./*|
|00005190| 20 73 74 72 09 4d 61 74 | 63 68 20 61 6e 79 20 63 | str.Mat|ch any c|
|000051a0| 68 61 72 61 63 74 65 72 | 20 69 6e 20 74 68 69 73 |haracter| in this|
|000051b0| 20 73 74 72 69 6e 67 2e | 20 2a 2f 0a 58 58 23 64 | string.| */.XX#d|
|000051c0| 65 66 69 6e 65 09 41 4e | 59 42 55 54 09 35 09 2f |efine.AN|YBUT.5./|
|000051d0| 2a 20 73 74 72 09 4d 61 | 74 63 68 20 61 6e 79 20 |* str.Ma|tch any |
|000051e0| 63 68 61 72 61 63 74 65 | 72 20 6e 6f 74 20 69 6e |characte|r not in|
|000051f0| 20 74 68 69 73 20 73 74 | 72 69 6e 67 2e 20 2a 2f | this st|ring. */|
|00005200| 0a 58 58 23 64 65 66 69 | 6e 65 09 42 52 41 4e 43 |.XX#defi|ne.BRANC|
|00005210| 48 09 36 09 2f 2a 20 6e | 6f 64 65 09 4d 61 74 63 |H.6./* n|ode.Matc|
|00005220| 68 20 74 68 69 73 20 61 | 6c 74 65 72 6e 61 74 69 |h this a|lternati|
|00005230| 76 65 2c 20 6f 72 20 74 | 68 65 20 6e 65 78 74 2e |ve, or t|he next.|
|00005240| 2e 2e 20 2a 2f 0a 58 58 | 23 64 65 66 69 6e 65 09 |.. */.XX|#define.|
|00005250| 42 41 43 4b 09 37 09 2f | 2a 20 6e 6f 09 4d 61 74 |BACK.7./|* no.Mat|
|00005260| 63 68 20 22 22 2c 20 22 | 6e 65 78 74 22 20 70 74 |ch "", "|next" pt|
|00005270| 72 20 70 6f 69 6e 74 73 | 20 62 61 63 6b 77 61 72 |r points| backwar|
|00005280| 64 2e 20 2a 2f 0a 58 58 | 23 64 65 66 69 6e 65 09 |d. */.XX|#define.|
|00005290| 45 58 41 43 54 4c 59 09 | 38 09 2f 2a 20 73 74 72 |EXACTLY.|8./* str|
|000052a0| 09 4d 61 74 63 68 20 74 | 68 69 73 20 73 74 72 69 |.Match t|his stri|
|000052b0| 6e 67 2e 20 2a 2f 0a 58 | 58 23 64 65 66 69 6e 65 |ng. */.X|X#define|
|000052c0| 09 4e 4f 54 48 49 4e 47 | 09 39 09 2f 2a 20 6e 6f |.NOTHING|.9./* no|
|000052d0| 09 4d 61 74 63 68 20 65 | 6d 70 74 79 20 73 74 72 |.Match e|mpty str|
|000052e0| 69 6e 67 2e 20 2a 2f 0a | 58 58 23 64 65 66 69 6e |ing. */.|XX#defin|
|000052f0| 65 09 53 54 41 52 09 31 | 30 09 2f 2a 20 6e 6f 64 |e.STAR.1|0./* nod|
|00005300| 65 09 4d 61 74 63 68 20 | 74 68 69 73 20 28 73 69 |e.Match |this (si|
|00005310| 6d 70 6c 65 29 20 74 68 | 69 6e 67 20 30 20 6f 72 |mple) th|ing 0 or|
|00005320| 20 6d 6f 72 65 20 74 69 | 6d 65 73 2e 20 2a 2f 0a | more ti|mes. */.|
|00005330| 58 58 23 64 65 66 69 6e | 65 09 50 4c 55 53 09 31 |XX#defin|e.PLUS.1|
|00005340| 31 09 2f 2a 20 6e 6f 64 | 65 09 4d 61 74 63 68 20 |1./* nod|e.Match |
|00005350| 74 68 69 73 20 28 73 69 | 6d 70 6c 65 29 20 74 68 |this (si|mple) th|
|00005360| 69 6e 67 20 31 20 6f 72 | 20 6d 6f 72 65 20 74 69 |ing 1 or| more ti|
|00005370| 6d 65 73 2e 20 2a 2f 0a | 58 58 23 64 65 66 69 6e |mes. */.|XX#defin|
|00005380| 65 09 4f 50 45 4e 09 32 | 30 09 2f 2a 20 6e 6f 09 |e.OPEN.2|0./* no.|
|00005390| 4d 61 72 6b 20 74 68 69 | 73 20 70 6f 69 6e 74 20 |Mark thi|s point |
|000053a0| 69 6e 20 69 6e 70 75 74 | 20 61 73 20 73 74 61 72 |in input| as star|
|000053b0| 74 20 6f 66 20 23 6e 2e | 20 2a 2f 0a 58 58 09 09 |t of #n.| */.XX..|
|000053c0| 09 2f 2a 09 4f 50 45 4e | 2b 31 20 69 73 20 6e 75 |./*.OPEN|+1 is nu|
|000053d0| 6d 62 65 72 20 31 2c 20 | 65 74 63 2e 20 2a 2f 0a |mber 1, |etc. */.|
|000053e0| 58 58 23 64 65 66 69 6e | 65 09 43 4c 4f 53 45 09 |XX#defin|e.CLOSE.|
|000053f0| 33 30 09 2f 2a 20 6e 6f | 09 41 6e 61 6c 6f 67 6f |30./* no|.Analogo|
|00005400| 75 73 20 74 6f 20 4f 50 | 45 4e 2e 20 2a 2f 0a 0a |us to OP|EN. */..|
|00005410| 58 58 2f 2a 0a 58 58 20 | 2a 20 4f 70 63 6f 64 65 |XX/*.XX |* Opcode|
|00005420| 20 6e 6f 74 65 73 3a 0a | 58 58 20 2a 0a 58 58 20 | notes:.|XX *.XX |
|00005430| 2a 20 42 52 41 4e 43 48 | 09 54 68 65 20 73 65 74 |* BRANCH|.The set|
|00005440| 20 6f 66 20 62 72 61 6e | 63 68 65 73 20 63 6f 6e | of bran|ches con|
|00005450| 73 74 69 74 75 74 69 6e | 67 20 61 20 73 69 6e 67 |stitutin|g a sing|
|00005460| 6c 65 20 63 68 6f 69 63 | 65 20 61 72 65 20 68 6f |le choic|e are ho|
|00005470| 6f 6b 65 64 0a 58 58 20 | 2a 09 09 74 6f 67 65 74 |oked.XX |*..toget|
|00005480| 68 65 72 20 77 69 74 68 | 20 74 68 65 69 72 20 22 |her with| their "|
|00005490| 6e 65 78 74 22 20 70 6f | 69 6e 74 65 72 73 2c 20 |next" po|inters, |
|000054a0| 73 69 6e 63 65 20 70 72 | 65 63 65 64 65 6e 63 65 |since pr|ecedence|
|000054b0| 20 70 72 65 76 65 6e 74 | 73 0a 58 58 20 2a 09 09 | prevent|s.XX *..|
|000054c0| 61 6e 79 74 68 69 6e 67 | 20 62 65 69 6e 67 20 63 |anything| being c|
|000054d0| 6f 6e 63 61 74 65 6e 61 | 74 65 64 20 74 6f 20 61 |oncatena|ted to a|
|000054e0| 6e 79 20 69 6e 64 69 76 | 69 64 75 61 6c 20 62 72 |ny indiv|idual br|
|000054f0| 61 6e 63 68 2e 20 20 54 | 68 65 0a 58 58 20 2a 09 |anch. T|he.XX *.|
|00005500| 09 22 6e 65 78 74 22 20 | 70 6f 69 6e 74 65 72 20 |."next" |pointer |
|00005510| 6f 66 20 74 68 65 20 6c | 61 73 74 20 42 52 41 4e |of the l|ast BRAN|
|00005520| 43 48 20 69 6e 20 61 20 | 63 68 6f 69 63 65 20 70 |CH in a |choice p|
|00005530| 6f 69 6e 74 73 20 74 6f | 20 74 68 65 0a 58 58 20 |oints to| the.XX |
|00005540| 2a 09 09 74 68 69 6e 67 | 20 66 6f 6c 6c 6f 77 69 |*..thing| followi|
|00005550| 6e 67 20 74 68 65 20 77 | 68 6f 6c 65 20 63 68 6f |ng the w|hole cho|
|00005560| 69 63 65 2e 20 20 54 68 | 69 73 20 69 73 20 61 6c |ice. Th|is is al|
|00005570| 73 6f 20 77 68 65 72 65 | 20 74 68 65 0a 58 58 20 |so where| the.XX |
|00005580| 2a 09 09 66 69 6e 61 6c | 20 22 6e 65 78 74 22 20 |*..final| "next" |
|00005590| 70 6f 69 6e 74 65 72 20 | 6f 66 20 65 61 63 68 20 |pointer |of each |
|000055a0| 69 6e 64 69 76 69 64 75 | 61 6c 20 62 72 61 6e 63 |individu|al branc|
|000055b0| 68 20 70 6f 69 6e 74 73 | 3b 20 65 61 63 68 0a 58 |h points|; each.X|
|000055c0| 58 20 2a 09 09 62 72 61 | 6e 63 68 20 73 74 61 72 |X *..bra|nch star|
|000055d0| 74 73 20 77 69 74 68 20 | 74 68 65 20 6f 70 65 72 |ts with |the oper|
|000055e0| 61 6e 64 20 6e 6f 64 65 | 20 6f 66 20 61 20 42 52 |and node| of a BR|
|000055f0| 41 4e 43 48 20 6e 6f 64 | 65 2e 0a 58 58 20 2a 0a |ANCH nod|e..XX *.|
|00005600| 58 58 20 2a 20 42 41 43 | 4b 09 09 4e 6f 72 6d 61 |XX * BAC|K..Norma|
|00005610| 6c 20 22 6e 65 78 74 22 | 20 70 6f 69 6e 74 65 72 |l "next"| pointer|
|00005620| 73 20 61 6c 6c 20 69 6d | 70 6c 69 63 69 74 6c 79 |s all im|plicitly|
|00005630| 20 70 6f 69 6e 74 20 66 | 6f 72 77 61 72 64 3b 20 | point f|orward; |
|00005640| 42 41 43 4b 0a 58 58 20 | 2a 09 09 65 78 69 73 74 |BACK.XX |*..exist|
|00005650| 73 20 74 6f 20 6d 61 6b | 65 20 6c 6f 6f 70 20 73 |s to mak|e loop s|
|00005660| 74 72 75 63 74 75 72 65 | 73 20 70 6f 73 73 69 62 |tructure|s possib|
|00005670| 6c 65 2e 0a 58 58 20 2a | 0a 58 58 20 2a 20 53 54 |le..XX *|.XX * ST|
|00005680| 41 52 2c 50 4c 55 53 09 | 27 3f 27 2c 20 61 6e 64 |AR,PLUS.|'?', and|
|00005690| 20 63 6f 6d 70 6c 65 78 | 20 27 2a 27 20 61 6e 64 | complex| '*' and|
|000056a0| 20 50 4c 55 53 53 49 47 | 4e 2c 20 61 72 65 20 69 | PLUSSIG|N, are i|
|000056b0| 6d 70 6c 65 6d 65 6e 74 | 65 64 20 61 73 20 63 69 |mplement|ed as ci|
|000056c0| 72 63 75 6c 61 72 0a 58 | 58 20 2a 09 09 42 52 41 |rcular.X|X *..BRA|
|000056d0| 4e 43 48 20 73 74 72 75 | 63 74 75 72 65 73 20 75 |NCH stru|ctures u|
|000056e0| 73 69 6e 67 20 42 41 43 | 4b 2e 20 20 53 69 6d 70 |sing BAC|K. Simp|
|000056f0| 6c 65 20 63 61 73 65 73 | 20 28 6f 6e 65 20 63 68 |le cases| (one ch|
|00005700| 61 72 61 63 74 65 72 0a | 58 58 20 2a 09 09 70 65 |aracter.|XX *..pe|
|00005710| 72 20 6d 61 74 63 68 29 | 20 61 72 65 20 69 6d 70 |r match)| are imp|
|00005720| 6c 65 6d 65 6e 74 65 64 | 20 77 69 74 68 20 53 54 |lemented| with ST|
|00005730| 41 52 20 61 6e 64 20 50 | 4c 55 53 20 66 6f 72 20 |AR and P|LUS for |
|00005740| 73 70 65 65 64 0a 58 58 | 20 2a 09 09 61 6e 64 20 |speed.XX| *..and |
|00005750| 74 6f 20 6d 69 6e 69 6d | 69 7a 65 20 72 65 63 75 |to minim|ize recu|
|00005760| 72 73 69 76 65 20 70 6c | 75 6e 67 65 73 2e 0a 58 |rsive pl|unges..X|
|00005770| 58 20 2a 0a 58 58 20 2a | 20 4f 50 45 4e 2c 43 4c |X *.XX *| OPEN,CL|
|00005780| 4f 53 45 09 2e 2e 2e 61 | 72 65 20 6e 75 6d 62 65 |OSE....a|re numbe|
|00005790| 72 65 64 20 61 74 20 63 | 6f 6d 70 69 6c 65 20 74 |red at c|ompile t|
|000057a0| 69 6d 65 2e 0a 58 58 20 | 2a 2f 0a 0a 58 58 2f 2a |ime..XX |*/..XX/*|
|000057b0| 0a 58 58 20 2a 20 41 20 | 6e 6f 64 65 20 69 73 20 |.XX * A |node is |
|000057c0| 6f 6e 65 20 63 68 61 72 | 20 6f 66 20 6f 70 63 6f |one char| of opco|
|000057d0| 64 65 20 66 6f 6c 6c 6f | 77 65 64 20 62 79 20 74 |de follo|wed by t|
|000057e0| 77 6f 20 63 68 61 72 73 | 20 6f 66 20 22 6e 65 78 |wo chars| of "nex|
|000057f0| 74 22 20 70 6f 69 6e 74 | 65 72 2e 0a 58 58 20 2a |t" point|er..XX *|
|00005800| 20 22 4e 65 78 74 22 20 | 70 6f 69 6e 74 65 72 73 | "Next" |pointers|
|00005810| 20 61 72 65 20 73 74 6f | 72 65 64 20 61 73 20 74 | are sto|red as t|
|00005820| 77 6f 20 38 2d 62 69 74 | 20 70 69 65 63 65 73 2c |wo 8-bit| pieces,|
|00005830| 20 68 69 67 68 20 6f 72 | 64 65 72 20 66 69 72 73 | high or|der firs|
|00005840| 74 2e 20 20 54 68 65 0a | 58 58 20 2a 20 76 61 6c |t. The.|XX * val|
|00005850| 75 65 20 69 73 20 61 20 | 70 6f 73 69 74 69 76 65 |ue is a |positive|
|00005860| 20 6f 66 66 73 65 74 20 | 66 72 6f 6d 20 74 68 65 | offset |from the|
|00005870| 20 6f 70 63 6f 64 65 20 | 6f 66 20 74 68 65 20 6e | opcode |of the n|
|00005880| 6f 64 65 20 63 6f 6e 74 | 61 69 6e 69 6e 67 20 69 |ode cont|aining i|
|00005890| 74 2e 0a 58 58 20 2a 20 | 41 6e 20 6f 70 65 72 61 |t..XX * |An opera|
|000058a0| 6e 64 2c 20 69 66 20 61 | 6e 79 2c 20 73 69 6d 70 |nd, if a|ny, simp|
|000058b0| 6c 79 20 66 6f 6c 6c 6f | 77 73 20 74 68 65 20 6e |ly follo|ws the n|
|000058c0| 6f 64 65 2e 20 20 28 4e | 6f 74 65 20 74 68 61 74 |ode. (N|ote that|
|000058d0| 20 6d 75 63 68 20 6f 66 | 20 74 68 65 0a 58 58 20 | much of| the.XX |
|000058e0| 2a 20 63 6f 64 65 20 67 | 65 6e 65 72 61 74 69 6f |* code g|eneratio|
|000058f0| 6e 20 6b 6e 6f 77 73 20 | 61 62 6f 75 74 20 74 68 |n knows |about th|
|00005900| 69 73 20 69 6d 70 6c 69 | 63 69 74 20 72 65 6c 61 |is impli|cit rela|
|00005910| 74 69 6f 6e 73 68 69 70 | 2e 29 0a 58 58 20 2a 0a |tionship|.).XX *.|
|00005920| 58 58 20 2a 20 55 73 69 | 6e 67 20 74 77 6f 20 62 |XX * Usi|ng two b|
|00005930| 79 74 65 73 20 66 6f 72 | 20 74 68 65 20 22 6e 65 |ytes for| the "ne|
|00005940| 78 74 22 20 70 6f 69 6e | 74 65 72 20 69 73 20 76 |xt" poin|ter is v|
|00005950| 61 73 74 20 6f 76 65 72 | 6b 69 6c 6c 20 66 6f 72 |ast over|kill for|
|00005960| 20 6d 6f 73 74 20 74 68 | 69 6e 67 73 2c 0a 58 58 | most th|ings,.XX|
|00005970| 20 2a 20 62 75 74 20 61 | 6c 6c 6f 77 73 20 70 61 | * but a|llows pa|
|00005980| 74 74 65 72 6e 73 20 74 | 6f 20 67 65 74 20 62 69 |tterns t|o get bi|
|00005990| 67 20 77 69 74 68 6f 75 | 74 20 64 69 73 61 73 74 |g withou|t disast|
|000059a0| 65 72 73 2e 0a 58 58 20 | 2a 2f 0a 58 58 23 64 65 |ers..XX |*/.XX#de|
|000059b0| 66 69 6e 65 09 4f 50 28 | 70 29 09 28 2a 28 70 29 |fine.OP(|p).(*(p)|
|000059c0| 29 0a 58 58 23 64 65 66 | 69 6e 65 09 4e 45 58 54 |).XX#def|ine.NEXT|
|000059d0| 28 70 29 09 28 28 28 2a | 28 28 70 29 2b 31 29 26 |(p).(((*|((p)+1)&|
|000059e0| 30 33 37 37 29 3c 3c 38 | 29 20 2b 20 2a 28 28 70 |0377)<<8|) + *((p|
|000059f0| 29 2b 32 29 26 30 33 37 | 37 29 0a 58 58 23 64 65 |)+2)&037|7).XX#de|
|00005a00| 66 69 6e 65 09 4f 50 45 | 52 41 4e 44 28 70 29 09 |fine.OPE|RAND(p).|
|00005a10| 28 28 70 29 20 2b 20 33 | 29 0a 0a 58 58 2f 2a 0a |((p) + 3|)..XX/*.|
|00005a20| 58 58 20 2a 20 53 65 65 | 20 72 65 67 6d 61 67 69 |XX * See| regmagi|
|00005a30| 63 2e 68 20 66 6f 72 20 | 6f 6e 65 20 66 75 72 74 |c.h for |one furt|
|00005a40| 68 65 72 20 64 65 74 61 | 69 6c 20 6f 66 20 70 72 |her deta|il of pr|
|00005a50| 6f 67 72 61 6d 20 73 74 | 72 75 63 74 75 72 65 2e |ogram st|ructure.|
|00005a60| 0a 58 58 20 2a 2f 0a 0a | 0a 58 58 2f 2a 0a 58 58 |.XX */..|.XX/*.XX|
|00005a70| 20 2a 20 55 74 69 6c 69 | 74 79 20 64 65 66 69 6e | * Utili|ty defin|
|00005a80| 69 74 69 6f 6e 73 2e 0a | 58 58 20 2a 2f 0a 58 58 |itions..|XX */.XX|
|00005a90| 23 69 66 6e 64 65 66 20 | 43 48 41 52 42 49 54 53 |#ifndef |CHARBITS|
|00005aa0| 0a 58 58 23 64 65 66 69 | 6e 65 09 55 43 48 41 52 |.XX#defi|ne.UCHAR|
|00005ab0| 41 54 28 70 29 09 28 28 | 69 6e 74 29 2a 28 75 6e |AT(p).((|int)*(un|
|00005ac0| 73 69 67 6e 65 64 20 63 | 68 61 72 20 2a 29 28 70 |signed c|har *)(p|
|00005ad0| 29 29 0a 58 58 23 65 6c | 73 65 0a 58 58 23 64 65 |)).XX#el|se.XX#de|
|00005ae0| 66 69 6e 65 09 55 43 48 | 41 52 41 54 28 70 29 09 |fine.UCH|ARAT(p).|
|00005af0| 28 28 69 6e 74 29 2a 28 | 70 29 26 43 48 41 52 42 |((int)*(|p)&CHARB|
|00005b00| 49 54 53 29 0a 58 58 23 | 65 6e 64 69 66 0a 0a 58 |ITS).XX#|endif..X|
|00005b10| 58 23 64 65 66 69 6e 65 | 09 46 41 49 4c 28 6d 29 |X#define|.FAIL(m)|
|00005b20| 09 7b 20 72 65 67 65 72 | 72 6f 72 28 6d 29 3b 20 |.{ reger|ror(m); |
|00005b30| 72 65 74 75 72 6e 28 4e | 55 4c 4c 29 3b 20 7d 0a |return(N|ULL); }.|
|00005b40| 58 58 23 64 65 66 69 6e | 65 09 49 53 4d 55 4c 54 |XX#defin|e.ISMULT|
|00005b50| 28 63 29 09 28 28 63 29 | 20 3d 3d 20 27 2a 27 20 |(c).((c)| == '*' |
|00005b60| 7c 7c 20 28 63 29 20 3d | 3d 20 50 4c 55 53 53 49 ||| (c) =|= PLUSSI|
|00005b70| 47 4e 20 7c 7c 20 28 63 | 29 20 3d 3d 20 27 3f 27 |GN || (c|) == '?'|
|00005b80| 29 0a 0a 58 58 23 69 66 | 6e 64 65 66 20 52 56 49 |)..XX#if|ndef RVI|
|00005b90| 20 20 20 20 20 2f 2a 20 | 4f 72 69 67 69 6e 61 6c | /* |Original|
|00005ba0| 20 76 65 72 73 69 6f 6e | 20 2a 2f 0a 58 58 23 64 | version| */.XX#d|
|00005bb0| 65 66 69 6e 65 09 4d 45 | 54 41 09 22 5e 24 2e 5b |efine.ME|TA."^$.[|
|00005bc0| 28 29 7c 2b 2a 5c 5c 22 | 0a 58 58 23 64 65 66 69 |()|+*\\"|.XX#defi|
|00005bd0| 6e 65 20 4c 50 41 52 45 | 4e 09 27 28 27 0a 58 58 |ne LPARE|N.'('.XX|
|00005be0| 23 64 65 66 69 6e 65 20 | 52 50 41 52 45 4e 09 27 |#define |RPAREN.'|
|00005bf0| 29 27 0a 58 58 23 64 65 | 66 69 6e 65 20 42 41 52 |)'.XX#de|fine BAR|
|00005c00| 09 27 7c 27 0a 58 58 23 | 64 65 66 69 6e 65 20 50 |.'|'.XX#|define P|
|00005c10| 4c 55 53 53 49 47 4e 20 | 27 2b 27 0a 58 58 23 64 |LUSSIGN |'+'.XX#d|
|00005c20| 65 66 69 6e 65 20 51 55 | 45 53 09 27 3f 27 0a 58 |efine QU|ES.'?'.X|
|00005c30| 58 23 65 6c 73 65 20 20 | 20 09 2f 2a 20 4d 6f 64 |X#else | ./* Mod|
|00005c40| 69 66 69 65 64 20 76 65 | 72 73 69 6f 6e 20 66 6f |ified ve|rsion fo|
|00005c50| 72 20 72 76 69 20 2a 2f | 0a 58 58 23 64 65 66 69 |r rvi */|.XX#defi|
|00005c60| 6e 65 20 4d 45 54 41 09 | 22 5e 24 2e 5b 3f 2a 5c |ne META.|"^$.[?*\|
|00005c70| 5c 22 0a 58 58 23 64 65 | 66 69 6e 65 20 4c 50 41 |\".XX#de|fine LPA|
|00005c80| 52 45 4e 09 32 35 35 0a | 58 58 23 64 65 66 69 6e |REN.255.|XX#defin|
|00005c90| 65 20 52 50 41 52 45 4e | 09 32 35 34 0a 58 58 23 |e RPAREN|.254.XX#|
|00005ca0| 64 65 66 69 6e 65 20 42 | 41 52 09 32 35 33 0a 58 |define B|AR.253.X|
|00005cb0| 58 23 64 65 66 69 6e 65 | 20 50 4c 55 53 53 49 47 |X#define| PLUSSIG|
|00005cc0| 4e 20 32 35 32 0a 58 58 | 23 64 65 66 69 6e 65 09 |N 252.XX|#define.|
|00005cd0| 51 55 45 53 09 32 35 31 | 0a 58 58 23 65 6e 64 69 |QUES.251|.XX#endi|
|00005ce0| 66 0a 0a 58 58 2f 2a 0a | 58 58 20 2a 20 46 6c 61 |f..XX/*.|XX * Fla|
|00005cf0| 67 73 20 74 6f 20 62 65 | 20 70 61 73 73 65 64 20 |gs to be| passed |
|00005d00| 75 70 20 61 6e 64 20 64 | 6f 77 6e 2e 0a 58 58 20 |up and d|own..XX |
|00005d10| 2a 2f 0a 58 58 23 64 65 | 66 69 6e 65 09 48 41 53 |*/.XX#de|fine.HAS|
|00005d20| 57 49 44 54 48 09 30 31 | 09 2f 2a 20 4b 6e 6f 77 |WIDTH.01|./* Know|
|00005d30| 6e 20 6e 65 76 65 72 20 | 74 6f 20 6d 61 74 63 68 |n never |to match|
|00005d40| 20 6e 75 6c 6c 20 73 74 | 72 69 6e 67 2e 20 2a 2f | null st|ring. */|
|00005d50| 0a 58 58 23 64 65 66 69 | 6e 65 09 53 49 4d 50 4c |.XX#defi|ne.SIMPL|
|00005d60| 45 09 09 30 32 09 2f 2a | 20 53 69 6d 70 6c 65 20 |E..02./*| Simple |
|00005d70| 65 6e 6f 75 67 68 20 74 | 6f 20 62 65 20 53 54 41 |enough t|o be STA|
|00005d80| 52 2f 50 4c 55 53 20 6f | 70 65 72 61 6e 64 2e 20 |R/PLUS o|perand. |
|00005d90| 2a 2f 0a 58 58 23 64 65 | 66 69 6e 65 09 53 50 53 |*/.XX#de|fine.SPS|
|00005da0| 54 41 52 54 09 09 30 34 | 09 2f 2a 20 53 74 61 72 |TART..04|./* Star|
|00005db0| 74 73 20 77 69 74 68 20 | 2a 20 6f 72 20 2b 2e 20 |ts with |* or +. |
|00005dc0| 2a 2f 0a 58 58 23 64 65 | 66 69 6e 65 09 57 4f 52 |*/.XX#de|fine.WOR|
|00005dd0| 53 54 09 09 30 09 2f 2a | 20 57 6f 72 73 74 20 63 |ST..0./*| Worst c|
|00005de0| 61 73 65 2e 20 2a 2f 0a | 0a 58 58 2f 2a 0a 58 58 |ase. */.|.XX/*.XX|
|00005df0| 20 2a 20 47 6c 6f 62 61 | 6c 20 77 6f 72 6b 20 76 | * Globa|l work v|
|00005e00| 61 72 69 61 62 6c 65 73 | 20 66 6f 72 20 72 65 67 |ariables| for reg|
|00005e10| 63 6f 6d 70 28 29 2e 0a | 58 58 20 2a 2f 0a 58 58 |comp()..|XX */.XX|
|00005e20| 73 74 61 74 69 63 20 63 | 68 61 72 20 2a 72 65 67 |static c|har *reg|
|00005e30| 70 61 72 73 65 3b 09 09 | 2f 2a 20 49 6e 70 75 74 |parse;..|/* Input|
|00005e40| 2d 73 63 61 6e 20 70 6f | 69 6e 74 65 72 2e 20 2a |-scan po|inter. *|
|00005e50| 2f 0a 58 58 73 74 61 74 | 69 63 20 69 6e 74 20 72 |/.XXstat|ic int r|
|00005e60| 65 67 6e 70 61 72 3b 09 | 09 2f 2a 20 28 29 20 63 |egnpar;.|./* () c|
|00005e70| 6f 75 6e 74 2e 20 2a 2f | 0a 58 58 73 74 61 74 69 |ount. */|.XXstati|
|00005e80| 63 20 63 68 61 72 20 72 | 65 67 64 75 6d 6d 79 3b |c char r|egdummy;|
|00005e90| 0a 58 58 73 74 61 74 69 | 63 20 63 68 61 72 20 2a |.XXstati|c char *|
|00005ea0| 72 65 67 63 6f 64 65 3b | 09 09 2f 2a 20 43 6f 64 |regcode;|../* Cod|
|00005eb0| 65 2d 65 6d 69 74 20 70 | 6f 69 6e 74 65 72 3b 20 |e-emit p|ointer; |
|00005ec0| 26 72 65 67 64 75 6d 6d | 79 20 3d 20 64 6f 6e 27 |&regdumm|y = don'|
|00005ed0| 74 2e 20 2a 2f 0a 58 58 | 73 74 61 74 69 63 20 6c |t. */.XX|static l|
|00005ee0| 6f 6e 67 20 72 65 67 73 | 69 7a 65 3b 09 09 2f 2a |ong regs|ize;../*|
|00005ef0| 20 43 6f 64 65 20 73 69 | 7a 65 2e 20 2a 2f 0a 0a | Code si|ze. */..|
|00005f00| 58 58 2f 2a 0a 58 58 20 | 2a 20 46 6f 72 77 61 72 |XX/*.XX |* Forwar|
|00005f10| 64 20 64 65 63 6c 61 72 | 61 74 69 6f 6e 73 20 66 |d declar|ations f|
|00005f20| 6f 72 20 72 65 67 63 6f | 6d 70 28 29 27 73 20 66 |or regco|mp()'s f|
|00005f30| 72 69 65 6e 64 73 2e 0a | 58 58 20 2a 2f 0a 58 58 |riends..|XX */.XX|
|00005f40| 23 69 66 6e 64 65 66 20 | 53 54 41 54 49 43 0a 58 |#ifndef |STATIC.X|
|00005f50| 58 23 64 65 66 69 6e 65 | 09 53 54 41 54 49 43 09 |X#define|.STATIC.|
|00005f60| 73 74 61 74 69 63 0a 58 | 58 23 65 6e 64 69 66 0a |static.X|X#endif.|
|00005f70| 58 58 53 54 41 54 49 43 | 20 63 68 61 72 20 2a 72 |XXSTATIC| char *r|
|00005f80| 65 67 28 29 3b 0a 58 58 | 53 54 41 54 49 43 20 63 |eg();.XX|STATIC c|
|00005f90| 68 61 72 20 2a 72 65 67 | 62 72 61 6e 63 68 28 29 |har *reg|branch()|
|00005fa0| 3b 0a 58 58 53 54 41 54 | 49 43 20 63 68 61 72 20 |;.XXSTAT|IC char |
|00005fb0| 2a 72 65 67 70 69 65 63 | 65 28 29 3b 0a 58 58 53 |*regpiec|e();.XXS|
|00005fc0| 54 41 54 49 43 20 63 68 | 61 72 20 2a 72 65 67 61 |TATIC ch|ar *rega|
|00005fd0| 74 6f 6d 28 29 3b 0a 58 | 58 53 54 41 54 49 43 20 |tom();.X|XSTATIC |
|00005fe0| 63 68 61 72 20 2a 72 65 | 67 6e 6f 64 65 28 29 3b |char *re|gnode();|
|00005ff0| 0a 58 58 53 54 41 54 49 | 43 20 63 68 61 72 20 2a |.XXSTATI|C char *|
|00006000| 72 65 67 6e 65 78 74 28 | 29 3b 0a 58 58 53 54 41 |regnext(|);.XXSTA|
|00006010| 54 49 43 20 76 6f 69 64 | 20 72 65 67 63 28 29 3b |TIC void| regc();|
|00006020| 0a 58 58 53 54 41 54 49 | 43 20 76 6f 69 64 20 72 |.XXSTATI|C void r|
|00006030| 65 67 69 6e 73 65 72 74 | 28 29 3b 0a 58 58 53 54 |eginsert|();.XXST|
|00006040| 41 54 49 43 20 76 6f 69 | 64 20 72 65 67 74 61 69 |ATIC voi|d regtai|
|00006050| 6c 28 29 3b 0a 58 58 53 | 54 41 54 49 43 20 76 6f |l();.XXS|TATIC vo|
|00006060| 69 64 20 72 65 67 6f 70 | 74 61 69 6c 28 29 3b 0a |id regop|tail();.|
|00006070| 58 58 23 69 66 64 65 66 | 20 53 54 52 43 53 50 4e |XX#ifdef| STRCSPN|
|00006080| 0a 58 58 53 54 41 54 49 | 43 20 69 6e 74 20 73 74 |.XXSTATI|C int st|
|00006090| 72 63 73 70 6e 28 29 3b | 0a 58 58 23 65 6e 64 69 |rcspn();|.XX#endi|
|000060a0| 66 0a 0a 58 58 2f 2a 0a | 58 58 20 2d 20 72 65 67 |f..XX/*.|XX - reg|
|000060b0| 63 6f 6d 70 20 2d 20 63 | 6f 6d 70 69 6c 65 20 61 |comp - c|ompile a|
|000060c0| 20 72 65 67 75 6c 61 72 | 20 65 78 70 72 65 73 73 | regular| express|
|000060d0| 69 6f 6e 20 69 6e 74 6f | 20 69 6e 74 65 72 6e 61 |ion into| interna|
|000060e0| 6c 20 63 6f 64 65 0a 58 | 58 20 2a 0a 58 58 20 2a |l code.X|X *.XX *|
|000060f0| 20 57 65 20 63 61 6e 27 | 74 20 61 6c 6c 6f 63 61 | We can'|t alloca|
|00006100| 74 65 20 73 70 61 63 65 | 20 75 6e 74 69 6c 20 77 |te space| until w|
|00006110| 65 20 6b 6e 6f 77 20 68 | 6f 77 20 62 69 67 20 74 |e know h|ow big t|
|00006120| 68 65 20 63 6f 6d 70 69 | 6c 65 64 20 66 6f 72 6d |he compi|led form|
|00006130| 20 77 69 6c 6c 20 62 65 | 2c 0a 58 58 20 2a 20 62 | will be|,.XX * b|
|00006140| 75 74 20 77 65 20 63 61 | 6e 27 74 20 63 6f 6d 70 |ut we ca|n't comp|
|00006150| 69 6c 65 20 69 74 20 28 | 61 6e 64 20 74 68 75 73 |ile it (|and thus|
|00006160| 20 6b 6e 6f 77 20 68 6f | 77 20 62 69 67 20 69 74 | know ho|w big it|
|00006170| 20 69 73 29 20 75 6e 74 | 69 6c 20 77 65 27 76 65 | is) unt|il we've|
|00006180| 20 67 6f 74 20 61 0a 58 | 58 20 2a 20 70 6c 61 63 | got a.X|X * plac|
|00006190| 65 20 74 6f 20 70 75 74 | 20 74 68 65 20 63 6f 64 |e to put| the cod|
|000061a0| 65 2e 20 20 53 6f 20 77 | 65 20 63 68 65 61 74 3a |e. So w|e cheat:|
|000061b0| 20 20 77 65 20 63 6f 6d | 70 69 6c 65 20 69 74 20 | we com|pile it |
|000061c0| 74 77 69 63 65 2c 20 6f | 6e 63 65 20 77 69 74 68 |twice, o|nce with|
|000061d0| 20 63 6f 64 65 0a 58 58 | 20 2a 20 67 65 6e 65 72 | code.XX| * gener|
|000061e0| 61 74 69 6f 6e 20 74 75 | 72 6e 65 64 20 6f 66 66 |ation tu|rned off|
|000061f0| 20 61 6e 64 20 73 69 7a | 65 20 63 6f 75 6e 74 69 | and siz|e counti|
|00006200| 6e 67 20 74 75 72 6e 65 | 64 20 6f 6e 2c 20 61 6e |ng turne|d on, an|
|00006210| 64 20 6f 6e 63 65 20 22 | 66 6f 72 20 72 65 61 6c |d once "|for real|
|00006220| 22 2e 0a 58 58 20 2a 20 | 54 68 69 73 20 61 6c 73 |"..XX * |This als|
|00006230| 6f 20 6d 65 61 6e 73 20 | 74 68 61 74 20 77 65 20 |o means |that we |
|00006240| 64 6f 6e 27 74 20 61 6c | 6c 6f 63 61 74 65 20 73 |don't al|locate s|
|00006250| 70 61 63 65 20 75 6e 74 | 69 6c 20 77 65 20 61 72 |pace unt|il we ar|
|00006260| 65 20 73 75 72 65 20 74 | 68 61 74 20 74 68 65 0a |e sure t|hat the.|
|00006270| 58 58 20 2a 20 74 68 69 | 6e 67 20 72 65 61 6c 6c |XX * thi|ng reall|
|00006280| 79 20 77 69 6c 6c 20 63 | 6f 6d 70 69 6c 65 20 73 |y will c|ompile s|
|00006290| 75 63 63 65 73 73 66 75 | 6c 6c 79 2c 20 61 6e 64 |uccessfu|lly, and|
|000062a0| 20 77 65 20 6e 65 76 65 | 72 20 68 61 76 65 20 74 | we neve|r have t|
|000062b0| 6f 20 6d 6f 76 65 20 74 | 68 65 0a 58 58 20 2a 20 |o move t|he.XX * |
|000062c0| 63 6f 64 65 20 61 6e 64 | 20 74 68 75 73 20 69 6e |code and| thus in|
|000062d0| 76 61 6c 69 64 61 74 65 | 20 70 6f 69 6e 74 65 72 |validate| pointer|
|000062e0| 73 20 69 6e 74 6f 20 69 | 74 2e 20 20 28 4e 6f 74 |s into i|t. (Not|
|000062f0| 65 20 74 68 61 74 20 69 | 74 20 68 61 73 20 74 6f |e that i|t has to|
|00006300| 20 62 65 20 69 6e 0a 58 | 58 20 2a 20 6f 6e 65 20 | be in.X|X * one |
|00006310| 70 69 65 63 65 20 62 65 | 63 61 75 73 65 20 66 72 |piece be|cause fr|
|00006320| 65 65 28 29 20 6d 75 73 | 74 20 62 65 20 61 62 6c |ee() mus|t be abl|
|00006330| 65 20 74 6f 20 66 72 65 | 65 20 69 74 20 61 6c 6c |e to fre|e it all|
|00006340| 2e 29 0a 58 58 20 2a 0a | 58 58 20 2a 20 42 65 77 |.).XX *.|XX * Bew|
|00006350| 61 72 65 20 74 68 61 74 | 20 74 68 65 20 6f 70 74 |are that| the opt|
|00006360| 69 6d 69 7a 61 74 69 6f | 6e 2d 70 72 65 70 61 72 |imizatio|n-prepar|
|00006370| 61 74 69 6f 6e 20 63 6f | 64 65 20 69 6e 20 68 65 |ation co|de in he|
|00006380| 72 65 20 6b 6e 6f 77 73 | 20 61 62 6f 75 74 20 73 |re knows| about s|
|00006390| 6f 6d 65 0a 58 58 20 2a | 20 6f 66 20 74 68 65 20 |ome.XX *| of the |
|000063a0| 73 74 72 75 63 74 75 72 | 65 20 6f 66 20 74 68 65 |structur|e of the|
|000063b0| 20 63 6f 6d 70 69 6c 65 | 64 20 72 65 67 65 78 70 | compile|d regexp|
|000063c0| 2e 0a 58 58 20 2a 2f 0a | 58 58 72 65 67 65 78 70 |..XX */.|XXregexp|
|000063d0| 20 2a 0a 58 58 72 65 67 | 63 6f 6d 70 28 65 78 70 | *.XXreg|comp(exp|
|000063e0| 29 0a 58 58 63 68 61 72 | 20 2a 65 78 70 3b 0a 58 |).XXchar| *exp;.X|
|000063f0| 58 7b 0a 58 58 09 72 65 | 67 69 73 74 65 72 20 72 |X{.XX.re|gister r|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.