home *** CD-ROM | disk | FTP | other *** search
/ Chip 1995 March / CHIP3.mdf / slackwar / ap / joe / joe1.0 / joe1
Tape Archive  |  1994-08-20  |  640.0 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: Tape Archive (archive/tar).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Tape Archive (archive/tar) magic Supported
100% file POSIX tar archive (GNU) default
99% file POSIX tar archive (GNU), directory joe/, mode 40700 , uid 6011 , gid 6011 , size 0 , seconds 5625505555 default
98% file data default
41% TrID Sybase iAnywhere database files default (weak)
36% TrID TAR - Tape ARchive (GNU) default
21% TrID TAR - Tape ARchive (directory) default
100% siegfried x-fmt/265 Tape Archive Format default
100% lsar Tar default
100% gt2 TAR Archiv gefunden (Auflistung ist deaktiviert) default
100% disktype GNU tar archive default
100% detectItEasy Archive: tar default
100% binwalkID POSIX tar archive (GNU) default
100% xdgMime application/x-tar default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 6a 6f 65 2f 00 00 00 00 | 00 00 00 00 00 00 00 00 |joe/....|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 00 00 00 00 20 34 30 37 | 30 30 20 00 20 20 36 30 |.... 407|00 . 60|
|00000070| 31 31 20 00 20 20 36 30 | 31 31 20 00 20 20 20 20 |11 . 60|11 . |
|00000080| 20 20 20 20 20 20 30 20 | 20 35 36 32 35 35 30 35 | 0 | 5625505|
|00000090| 35 35 35 20 20 20 36 31 | 36 37 00 20 35 00 00 00 |555 61|67. 5...|
|000000a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000100| 00 75 73 74 61 72 20 20 | 00 00 00 00 00 00 00 00 |.ustar |........|
|00000110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000200| 6a 6f 65 2f 49 4e 46 4f | 00 00 00 00 00 00 00 00 |joe/INFO|........|
|00000210| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000220| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000260| 00 00 00 00 31 30 30 36 | 30 30 20 00 20 20 36 30 |....1006|00 . 60|
|00000270| 31 31 20 00 20 20 36 30 | 31 31 20 00 20 20 20 20 |11 . 60|11 . |
|00000280| 20 20 31 34 36 35 31 20 | 20 35 36 32 34 37 32 34 | 14651 | 5624724|
|00000290| 33 30 35 20 20 20 36 37 | 36 36 00 20 30 00 00 00 |305 67|66. 0...|
|000002a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000300| 00 75 73 74 61 72 20 20 | 00 00 00 00 00 00 00 00 |.ustar |........|
|00000310| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000320| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000330| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000340| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000350| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000360| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000370| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000380| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000390| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000400| 0a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.. | |
|00000410| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 4a 6f 65 | | Joe|
|00000420| 27 73 20 4f 77 6e 20 45 | 64 69 74 6f 72 20 31 2e |'s Own E|ditor 1.|
|00000430| 30 2e 31 32 0a 0a 20 20 | 20 20 20 20 20 20 20 20 |0.12.. | |
|00000440| 20 20 20 20 20 20 20 20 | 41 20 46 72 65 65 20 41 | |A Free A|
|00000450| 53 43 49 49 2d 54 65 78 | 74 20 53 63 72 65 65 6e |SCII-Tex|t Screen|
|00000460| 20 45 64 69 74 6f 72 20 | 66 6f 72 20 55 4e 49 58 | Editor |for UNIX|
|00000470| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00000480| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000490| 62 79 20 4a 6f 73 65 70 | 68 20 41 6c 6c 65 6e 0a |by Josep|h Allen.|
|000004a0| 0a 0a 47 65 74 20 69 74 | 20 62 79 20 61 6e 6f 6e |..Get it| by anon|
|000004b0| 79 6d 6f 75 73 20 66 74 | 70 0a 66 72 6f 6d 3a 20 |ymous ft|p.from: |
|000004c0| 27 66 74 70 2e 73 74 64 | 2e 63 6f 6d 27 2c 20 66 |'ftp.std|.com', f|
|000004d0| 69 6c 65 20 27 2f 73 72 | 63 2f 65 64 69 74 6f 72 |ile '/sr|c/editor|
|000004e0| 73 2f 6a 6f 65 31 2e 30 | 2e 31 32 2e 74 61 72 2e |s/joe1.0|.12.tar.|
|000004f0| 5a 27 0a 0a 49 66 20 79 | 6f 75 20 68 61 76 65 20 |Z'..If y|ou have |
|00000500| 71 75 65 73 74 69 6f 6e | 73 2c 20 70 72 6f 62 6c |question|s, probl|
|00000510| 65 6d 73 20 6f 72 20 73 | 75 67 67 65 73 74 69 6f |ems or s|uggestio|
|00000520| 6e 73 2c 0a 73 65 6e 64 | 20 65 6d 61 69 6c 20 74 |ns,.send| email t|
|00000530| 6f 3a 20 27 6a 68 61 6c | 6c 65 6e 40 77 6f 72 6c |o: 'jhal|len@worl|
|00000540| 64 2e 73 74 64 2e 63 6f | 6d 27 0a 0a 0a 09 4a 4f |d.std.co|m'....JO|
|00000550| 45 20 69 73 20 74 68 65 | 20 70 72 6f 66 65 73 73 |E is the| profess|
|00000560| 69 6f 6e 61 6c 20 66 72 | 65 65 77 61 72 65 20 41 |ional fr|eeware A|
|00000570| 53 43 49 49 20 74 65 78 | 74 20 73 63 72 65 65 6e |SCII tex|t screen|
|00000580| 20 65 64 69 74 6f 72 20 | 66 6f 72 20 55 4e 49 58 | editor |for UNIX|
|00000590| 2e 20 0a 49 74 20 6d 61 | 6b 65 73 20 66 75 6c 6c |. .It ma|kes full|
|000005a0| 20 75 73 65 20 6f 66 20 | 74 68 65 20 70 6f 77 65 | use of |the powe|
|000005b0| 72 20 61 6e 64 20 76 65 | 72 73 61 74 69 6c 69 74 |r and ve|rsatilit|
|000005c0| 79 20 6f 66 20 55 4e 49 | 58 2c 20 62 75 74 20 6c |y of UNI|X, but l|
|000005d0| 61 63 6b 73 20 74 68 65 | 20 73 74 65 65 70 0a 6c |acks the| steep.l|
|000005e0| 65 61 72 6e 69 6e 67 20 | 63 75 72 76 65 20 61 6e |earning |curve an|
|000005f0| 64 20 62 61 73 69 63 20 | 6e 6f 6e 73 65 6e 73 65 |d basic |nonsense|
|00000600| 20 79 6f 75 20 68 61 76 | 65 20 74 6f 20 64 65 61 | you hav|e to dea|
|00000610| 6c 20 77 69 74 68 20 69 | 6e 20 65 76 65 72 79 20 |l with i|n every |
|00000620| 6f 74 68 65 72 20 55 4e | 49 58 0a 65 64 69 74 6f |other UN|IX.edito|
|00000630| 72 2e 20 4a 4f 45 20 68 | 61 73 20 74 68 65 20 66 |r. JOE h|as the f|
|00000640| 65 65 6c 20 6f 66 20 6d | 6f 73 74 20 49 42 4d 20 |eel of m|ost IBM |
|00000650| 50 43 20 74 65 78 74 20 | 65 64 69 74 6f 72 73 3a |PC text |editors:|
|00000660| 20 54 68 65 20 6b 65 79 | 2d 73 65 71 75 65 6e 63 | The key|-sequenc|
|00000670| 65 73 20 61 72 65 0a 72 | 65 6d 69 6e 69 73 63 65 |es are.r|eminisce|
|00000680| 6e 74 20 6f 66 20 57 6f | 72 64 53 74 61 72 20 61 |nt of Wo|rdStar a|
|00000690| 6e 64 20 54 75 72 62 6f | 2d 43 2e 20 20 4a 4f 45 |nd Turbo|-C. JOE|
|000006a0| 20 69 73 20 6d 75 63 68 | 20 6d 6f 72 65 20 70 6f | is much| more po|
|000006b0| 77 65 72 66 75 6c 20 74 | 68 61 6e 20 74 68 6f 73 |werful t|han thos|
|000006c0| 65 0a 65 64 69 74 6f 72 | 73 2c 20 68 6f 77 65 76 |e.editor|s, howev|
|000006d0| 65 72 2e 20 20 4a 4f 45 | 20 68 61 73 20 61 6c 6c |er. JOE| has all|
|000006e0| 20 6f 66 20 74 68 65 20 | 66 65 61 74 75 72 65 73 | of the |features|
|000006f0| 20 61 20 55 4e 49 58 20 | 75 73 65 72 20 73 68 6f | a UNIX |user sho|
|00000700| 75 6c 64 20 65 78 70 65 | 63 74 3a 0a 66 75 6c 6c |uld expe|ct:.full|
|00000710| 20 75 73 65 20 6f 66 20 | 74 65 72 6d 63 61 70 2f | use of |termcap/|
|00000720| 74 65 72 6d 69 6e 66 6f | 2c 20 62 65 74 74 65 72 |terminfo|, better|
|00000730| 20 73 63 72 65 65 6e 20 | 75 70 64 61 74 65 20 6f | screen |update o|
|00000740| 70 74 69 6d 69 7a 61 74 | 69 6f 6e 73 20 74 68 61 |ptimizat|ions tha|
|00000750| 6e 20 65 76 65 6e 0a 47 | 4e 55 2d 65 6d 61 63 73 |n even.G|NU-emacs|
|00000760| 20 28 4a 4f 45 20 69 73 | 20 66 75 6c 6c 79 20 75 | (JOE is| fully u|
|00000770| 73 61 62 6c 65 20 61 74 | 20 32 34 30 30 20 62 61 |sable at| 2400 ba|
|00000780| 75 64 29 2c 20 73 69 6d | 70 6c 65 20 69 6e 73 74 |ud), sim|ple inst|
|00000790| 61 6c 6c 61 74 69 6f 6e | 2c 20 61 6e 64 20 61 6c |allation|, and al|
|000007a0| 6c 0a 6f 66 20 74 68 65 | 20 55 4e 49 58 2d 69 6e |l.of the| UNIX-in|
|000007b0| 74 65 67 72 61 74 69 6f | 6e 20 66 65 61 74 75 72 |tegratio|n featur|
|000007c0| 65 73 20 6f 66 20 56 49 | 2e 0a 0a 46 65 61 74 75 |es of VI|...Featu|
|000007d0| 72 65 73 3a 0a 0a 09 4a | 4f 45 20 68 61 73 20 61 |res:...J|OE has a|
|000007e0| 20 77 65 6c 6c 20 74 68 | 6f 75 67 68 74 2d 6f 75 | well th|ought-ou|
|000007f0| 74 20 75 73 65 72 2d 69 | 6e 74 65 72 66 61 63 65 |t user-i|nterface|
|00000800| 20 77 69 74 68 20 67 72 | 65 61 74 20 61 74 74 65 | with gr|eat atte|
|00000810| 6e 74 69 6f 6e 20 74 6f | 0a 64 65 74 61 69 6c 2e |ntion to|.detail.|
|00000820| 20 20 54 68 65 20 50 61 | 67 65 20 55 70 20 61 6e | The Pa|ge Up an|
|00000830| 64 20 50 61 67 65 20 44 | 6f 77 6e 20 66 75 6e 63 |d Page D|own func|
|00000840| 74 69 6f 6e 73 20 64 6f | 20 6e 6f 74 20 6d 6f 76 |tions do| not mov|
|00000850| 65 20 74 68 65 20 63 75 | 72 73 6f 72 20 72 65 6c |e the cu|rsor rel|
|00000860| 61 74 69 76 65 0a 74 6f | 20 74 68 65 20 65 64 67 |ative.to| the edg|
|00000870| 65 73 20 6f 66 20 74 68 | 65 20 73 63 72 65 65 6e |es of th|e screen|
|00000880| 2e 20 20 4c 65 66 74 20 | 61 6e 64 20 52 69 67 68 |. Left |and Righ|
|00000890| 74 20 61 72 72 6f 77 20 | 6b 65 79 73 20 77 6f 72 |t arrow |keys wor|
|000008a0| 6b 20 61 74 20 74 68 65 | 20 62 65 67 69 6e 6e 69 |k at the| beginni|
|000008b0| 6e 67 0a 61 6e 64 20 65 | 6e 64 73 20 6f 66 20 6c |ng.and e|nds of l|
|000008c0| 69 6e 65 73 2e 20 20 54 | 68 65 20 63 75 72 73 6f |ines. T|he curso|
|000008d0| 72 20 63 61 6e 20 6d 6f | 76 65 20 70 61 73 74 20 |r can mo|ve past |
|000008e0| 74 68 65 20 65 6e 64 73 | 20 6f 66 20 6c 69 6e 65 |the ends| of line|
|000008f0| 73 20 77 69 74 68 6f 75 | 74 0a 6a 75 6d 70 69 6e |s withou|t.jumpin|
|00000900| 67 2c 20 62 75 74 20 61 | 6c 73 6f 20 77 69 74 68 |g, but a|lso with|
|00000910| 6f 75 74 20 69 6e 73 65 | 72 74 69 6e 67 20 6f 72 |out inse|rting or|
|00000920| 20 64 65 6c 65 74 69 6e | 67 20 65 78 74 72 61 20 | deletin|g extra |
|00000930| 73 70 61 63 65 73 20 61 | 74 20 74 68 65 20 65 6e |spaces a|t the en|
|00000940| 64 73 20 6f 66 0a 6c 69 | 6e 65 73 2e 20 43 6f 6e |ds of.li|nes. Con|
|00000950| 74 72 6f 6c 20 63 68 61 | 72 61 63 74 65 72 73 20 |trol cha|racters |
|00000960| 61 6e 64 20 63 68 61 72 | 61 63 74 65 72 73 20 61 |and char|acters a|
|00000970| 62 6f 76 65 20 31 32 37 | 20 63 61 6e 20 62 65 20 |bove 127| can be |
|00000980| 64 69 73 70 6c 61 79 65 | 64 20 61 6e 64 0a 65 6e |displaye|d and.en|
|00000990| 74 65 72 65 64 2d 20 65 | 76 65 6e 20 5e 51 20 61 |tered- e|ven ^Q a|
|000009a0| 6e 64 20 5e 53 2e 20 20 | 54 68 65 20 63 75 72 73 |nd ^S. |The curs|
|000009b0| 6f 72 27 73 20 72 6f 77 | 20 61 6e 64 20 63 6f 6c |or's row| and col|
|000009c0| 75 6d 6e 20 6e 75 6d 62 | 65 72 20 63 61 6e 20 62 |umn numb|er can b|
|000009d0| 65 0a 64 69 73 70 6c 61 | 79 65 64 20 69 6e 20 74 |e.displa|yed in t|
|000009e0| 68 65 20 73 74 61 74 75 | 73 20 6c 69 6e 65 2e 0a |he statu|s line..|
|000009f0| 0a 09 54 68 65 20 6b 65 | 79 20 6c 61 79 6f 75 74 |..The ke|y layout|
|00000a00| 20 69 73 20 6d 61 64 65 | 20 74 6f 20 72 65 64 75 | is made| to redu|
|00000a10| 63 65 20 74 65 72 6d 69 | 6e 61 6c 20 69 6e 63 6f |ce termi|nal inco|
|00000a20| 6d 70 61 74 69 62 69 6c | 69 74 79 20 6e 6f 6e 73 |mpatibil|ity nons|
|00000a30| 65 6e 73 65 2e 20 0a 5e | 51 20 61 6e 64 20 5e 53 |ense. .^|Q and ^S|
|00000a40| 20 61 72 65 20 6e 6f 74 | 20 75 73 65 64 20 61 6e | are not| used an|
|00000a50| 64 20 62 6f 74 68 20 5e | 48 20 61 6e 64 20 44 45 |d both ^|H and DE|
|00000a60| 4c 20 61 72 65 20 6d 61 | 70 70 65 64 20 74 6f 20 |L are ma|pped to |
|00000a70| 62 61 63 6b 73 70 61 63 | 65 2e 20 20 43 61 73 65 |backspac|e. Case|
|00000a80| 0a 64 6f 65 73 20 6e 6f | 74 20 6d 61 74 74 65 72 |.does no|t matter|
|00000a90| 20 69 6e 20 6b 65 79 20 | 73 65 71 75 65 6e 63 65 | in key |sequence|
|00000aa0| 73 2d 20 5e 4b 20 45 2c | 20 5e 4b 20 65 2c 20 61 |s- ^K E,| ^K e, a|
|00000ab0| 6e 64 20 5e 4b 20 5e 45 | 20 61 72 65 20 65 61 63 |nd ^K ^E| are eac|
|00000ac0| 68 20 6d 61 70 70 65 64 | 20 74 6f 0a 74 68 65 20 |h mapped| to.the |
|00000ad0| 73 61 6d 65 20 66 75 6e | 63 74 69 6f 6e 2e 20 20 |same fun|ction. |
|00000ae0| 54 68 65 20 61 72 72 6f | 77 20 6b 65 79 73 20 61 |The arro|w keys a|
|00000af0| 6e 64 20 50 61 67 65 55 | 70 2c 20 50 61 67 65 44 |nd PageU|p, PageD|
|00000b00| 6f 77 6e 2c 20 48 6f 6d | 65 2c 20 45 6e 64 2c 20 |own, Hom|e, End, |
|00000b10| 49 6e 73 65 72 74 0a 61 | 6e 64 20 44 65 6c 65 74 |Insert.a|nd Delet|
|00000b20| 65 20 6b 65 79 70 61 64 | 20 6b 65 79 73 20 61 72 |e keypad| keys ar|
|00000b30| 65 20 72 65 61 64 20 66 | 72 6f 6d 20 74 68 65 20 |e read f|rom the |
|00000b40| 74 65 72 6d 63 61 70 20 | 65 6e 74 72 79 20 61 6e |termcap |entry an|
|00000b50| 64 20 61 72 65 20 61 73 | 73 69 67 6e 65 64 20 74 |d are as|signed t|
|00000b60| 6f 0a 74 68 65 20 70 72 | 6f 70 65 72 20 66 75 6e |o.the pr|oper fun|
|00000b70| 63 74 69 6f 6e 73 2e 20 | 20 41 20 73 69 6d 70 6c |ctions. | A simpl|
|00000b80| 65 20 69 6e 69 74 69 61 | 6c 69 7a 61 74 69 6f 6e |e initia|lization|
|00000b90| 20 66 69 6c 65 2c 20 73 | 69 6d 69 6c 61 72 20 74 | file, s|imilar t|
|00000ba0| 6f 20 53 65 6d 77 61 72 | 65 27 73 0a 51 2d 45 44 |o Semwar|e's.Q-ED|
|00000bb0| 49 54 2c 20 61 6c 6c 6f | 77 73 20 6b 65 79 2d 62 |IT, allo|ws key-b|
|00000bc0| 69 6e 64 69 6e 67 73 2c | 20 73 69 6d 70 6c 65 20 |indings,| simple |
|00000bd0| 6d 61 63 72 6f 73 20 61 | 6e 64 20 68 65 6c 70 20 |macros a|nd help |
|00000be0| 77 69 6e 64 6f 77 73 20 | 74 6f 20 62 65 20 64 65 |windows |to be de|
|00000bf0| 66 69 6e 65 64 2e 0a 0a | 09 4a 4f 45 20 68 61 73 |fined...|.JOE has|
|00000c00| 20 66 75 6c 6c 20 74 65 | 72 6d 63 61 70 2f 74 65 | full te|rmcap/te|
|00000c10| 72 6d 69 6e 66 6f 20 73 | 75 70 70 6f 72 74 20 61 |rminfo s|upport a|
|00000c20| 6e 64 20 77 69 6c 6c 20 | 77 6f 72 6b 20 6f 6e 20 |nd will |work on |
|00000c30| 61 6e 79 20 74 65 72 6d | 69 6e 61 6c 2e 20 0a 4a |any term|inal. .J|
|00000c40| 4f 45 20 68 61 73 20 74 | 68 65 20 62 65 73 74 20 |OE has t|he best |
|00000c50| 73 63 72 65 65 6e 20 75 | 70 64 61 74 65 20 6f 70 |screen u|pdate op|
|00000c60| 74 69 6d 69 7a 61 74 69 | 6f 6e 20 61 6c 67 6f 72 |timizati|on algor|
|00000c70| 69 74 68 6d 20 61 76 61 | 69 6c 61 62 6c 65 2e 20 |ithm ava|ilable. |
|00000c80| 20 49 74 20 75 73 65 73 | 0a 56 54 31 30 30 2d 73 | It uses|.VT100-s|
|00000c90| 74 79 6c 65 20 73 63 72 | 6f 6c 6c 69 6e 67 20 72 |tyle scr|olling r|
|00000ca0| 65 67 69 6f 6e 73 20 74 | 68 65 20 77 61 79 20 74 |egions t|he way t|
|00000cb0| 68 65 79 20 61 72 65 20 | 73 75 70 70 6f 73 65 64 |hey are |supposed|
|00000cc0| 20 74 6f 20 62 65 20 75 | 73 65 64 20 28 49 2e 45 | to be u|sed (I.E|
|00000cd0| 2e 2c 0a 77 69 74 68 6f | 75 74 20 62 75 69 6c 64 |.,.witho|ut build|
|00000ce0| 69 6e 67 20 69 6e 73 65 | 72 74 20 61 6e 64 20 64 |ing inse|rt and d|
|00000cf0| 65 6c 65 74 65 20 6c 69 | 6e 65 20 66 75 6e 63 74 |elete li|ne funct|
|00000d00| 69 6f 6e 73 20 6f 75 74 | 20 6f 66 20 74 68 65 6d |ions out| of them|
|00000d10| 29 20 61 6e 64 20 68 61 | 73 20 61 0a 70 6f 77 65 |) and ha|s a.powe|
|00000d20| 72 66 75 6c 20 6c 69 6e | 65 20 73 68 69 66 74 69 |rful lin|e shifti|
|00000d30| 6e 67 20 28 69 6e 73 65 | 72 74 2f 64 65 6c 65 74 |ng (inse|rt/delet|
|00000d40| 65 20 63 68 61 72 61 63 | 74 65 72 29 20 61 6c 67 |e charac|ter) alg|
|00000d50| 6f 72 69 74 68 6d 20 77 | 68 69 63 68 20 77 6f 72 |orithm w|hich wor|
|00000d60| 6b 73 20 65 76 65 6e 0a | 69 66 20 74 65 78 74 20 |ks even.|if text |
|00000d70| 67 6f 65 73 20 70 61 73 | 74 20 74 68 65 20 65 6e |goes pas|t the en|
|00000d80| 64 73 20 6f 66 20 6c 69 | 6e 65 73 2e 20 20 4a 4f |ds of li|nes. JO|
|00000d90| 45 20 68 61 73 20 64 65 | 66 65 72 72 65 64 20 73 |E has de|ferred s|
|00000da0| 63 72 65 65 6e 20 75 70 | 64 61 74 65 20 74 6f 0a |creen up|date to.|
|00000db0| 68 61 6e 64 6c 65 20 74 | 79 70 65 61 68 65 61 64 |handle t|ypeahead|
|00000dc0| 20 61 6e 64 20 75 73 65 | 73 20 74 68 65 20 62 61 | and use|s the ba|
|00000dd0| 75 64 20 72 61 74 65 20 | 72 65 70 6f 72 74 65 64 |ud rate |reported|
|00000de0| 20 62 79 20 27 73 74 74 | 79 27 20 74 6f 20 65 6e | by 'stt|y' to en|
|00000df0| 73 75 72 65 20 74 68 61 | 74 0a 64 65 66 65 72 72 |sure tha|t.deferr|
|00000e00| 61 6c 20 69 73 20 6e 6f | 74 20 62 79 70 61 73 73 |al is no|t bypass|
|00000e10| 65 64 20 62 79 20 74 74 | 79 20 62 75 66 66 65 72 |ed by tt|y buffer|
|00000e20| 69 6e 67 2e 0a 0a 09 4a | 4f 45 20 68 61 73 20 6d |ing....J|OE has m|
|00000e30| 75 6c 74 69 70 6c 65 20 | 77 69 6e 64 6f 77 73 20 |ultiple |windows |
|00000e40| 61 6e 64 20 6c 61 63 6b | 73 20 74 68 65 20 63 6f |and lack|s the co|
|00000e50| 6e 66 75 73 69 6e 67 20 | 6e 6f 74 69 6f 6e 20 6f |nfusing |notion o|
|00000e60| 66 20 61 20 6e 61 6d 65 | 64 0a 62 75 66 66 65 72 |f a name|d.buffer|
|00000e70| 73 2e 20 20 59 6f 75 20 | 6a 75 73 74 20 68 61 76 |s. You |just hav|
|00000e80| 65 20 66 69 6c 65 73 20 | 61 6e 64 20 77 69 6e 64 |e files |and wind|
|00000e90| 6f 77 73 2e 20 20 57 68 | 65 6e 20 74 68 65 72 65 |ows. Wh|en there|
|00000ea0| 20 61 72 65 20 6d 6f 72 | 65 20 77 69 6e 64 6f 77 | are mor|e window|
|00000eb0| 73 20 74 68 61 6e 0a 63 | 61 6e 20 66 69 74 20 6f |s than.c|an fit o|
|00000ec0| 6e 20 74 68 65 20 73 63 | 72 65 65 6e 2c 20 74 68 |n the sc|reen, th|
|00000ed0| 65 20 47 6f 74 6f 2d 4e | 65 78 74 2d 57 69 6e 64 |e Goto-N|ext-Wind|
|00000ee0| 6f 77 20 66 75 6e 63 74 | 69 6f 6e 20 73 63 72 6f |ow funct|ion scro|
|00000ef0| 6c 6c 73 20 74 68 72 6f | 75 67 68 20 74 68 65 6d |lls thro|ugh them|
|00000f00| 2e 20 0a 54 68 65 20 73 | 61 6d 65 20 66 69 6c 65 |. .The s|ame file|
|00000f10| 20 63 61 6e 20 68 61 76 | 65 20 6d 75 6c 74 69 70 | can hav|e multip|
|00000f20| 6c 65 20 77 69 6e 64 6f | 77 73 20 6f 70 65 6e 65 |le windo|ws opene|
|00000f30| 64 20 6f 6e 20 69 74 2e | 0a 0a 09 4a 4f 45 20 68 |d on it.|...JOE h|
|00000f40| 61 73 20 56 49 2d 73 74 | 79 6c 65 20 75 6e 69 78 |as VI-st|yle unix|
|00000f50| 20 69 6e 74 65 67 72 61 | 74 69 6f 6e 2e 20 20 59 | integra|tion. Y|
|00000f60| 6f 75 20 63 61 6e 20 66 | 69 6c 74 65 72 20 61 20 |ou can f|ilter a |
|00000f70| 68 69 67 68 6c 69 67 68 | 74 65 64 0a 62 6c 6f 63 |highligh|ted.bloc|
|00000f80| 6b 20 74 68 72 6f 75 67 | 68 20 61 20 55 4e 49 58 |k throug|h a UNIX|
|00000f90| 20 63 6f 6d 6d 61 6e 64 | 2e 20 20 41 6c 73 6f 2c | command|. Also,|
|00000fa0| 20 65 61 63 68 20 70 6c | 61 63 65 20 69 6e 20 6a | each pl|ace in j|
|00000fb0| 6f 65 20 77 68 69 63 68 | 20 61 63 63 65 70 74 73 |oe which| accepts|
|00000fc0| 20 61 20 66 69 6c 65 0a | 6e 61 6d 65 20 28 69 6e | a file.|name (in|
|00000fd0| 63 6c 75 64 69 6e 67 20 | 74 68 65 20 63 6f 6d 6d |cluding |the comm|
|00000fe0| 61 6e 64 20 6c 69 6e 65 | 29 20 77 69 6c 6c 20 61 |and line|) will a|
|00000ff0| 6c 73 6f 20 61 63 63 65 | 70 74 3a 0a 0a 09 09 21 |lso acce|pt:....!|
|00001000| 63 6f 6d 6d 61 6e 64 09 | 09 74 6f 20 70 69 70 65 |command.|.to pipe|
|00001010| 20 69 6e 74 6f 20 6f 72 | 20 6f 75 74 20 6f 66 20 | into or| out of |
|00001020| 61 20 63 6f 6d 6d 61 6e | 64 0a 09 09 3e 3e 66 69 |a comman|d...>>fi|
|00001030| 6c 65 6e 61 6d 65 09 09 | 74 6f 20 61 70 70 65 6e |lename..|to appen|
|00001040| 64 20 74 6f 20 61 20 66 | 69 6c 65 0a 09 09 66 69 |d to a f|ile...fi|
|00001050| 6c 65 6e 61 6d 65 2c 73 | 74 61 72 74 2c 73 69 7a |lename,s|tart,siz|
|00001060| 65 09 74 6f 20 65 64 69 | 74 20 61 20 70 6f 72 74 |e.to edi|t a port|
|00001070| 69 6f 6e 20 6f 66 20 61 | 20 66 69 6c 65 2f 64 65 |ion of a| file/de|
|00001080| 76 69 63 65 0a 09 09 2d | 09 09 09 74 6f 20 75 73 |vice...-|...to us|
|00001090| 65 20 73 74 64 69 6e 20 | 6f 72 20 73 74 64 6f 75 |e stdin |or stdou|
|000010a0| 74 0a 0a 09 46 69 6c 65 | 20 6e 61 6d 65 73 20 6f |t...File| names o|
|000010b0| 6e 20 74 68 65 20 63 6f | 6d 6d 61 6e 64 20 6c 69 |n the co|mmand li|
|000010c0| 6e 65 20 6d 61 79 20 62 | 65 20 70 72 65 63 65 65 |ne may b|e precee|
|000010d0| 64 65 64 20 62 79 20 2b | 6e 6e 6e 20 74 6f 20 73 |ded by +|nnn to s|
|000010e0| 74 61 72 74 0a 65 64 69 | 74 69 6e 67 20 61 74 20 |tart.edi|ting at |
|000010f0| 61 20 73 70 65 63 69 66 | 69 65 64 20 6c 69 6e 65 |a specif|ied line|
|00001100| 2e 0a 0a 09 4a 4f 45 20 | 68 61 73 20 73 68 65 6c |....JOE |has shel|
|00001110| 6c 20 77 69 6e 64 6f 77 | 73 2e 20 20 59 6f 75 20 |l window|s. You |
|00001120| 63 61 6e 20 72 75 6e 20 | 61 20 73 68 65 6c 6c 20 |can run |a shell |
|00001130| 69 6e 20 61 20 77 69 6e | 64 6f 77 20 61 6e 64 20 |in a win|dow and |
|00001140| 61 6e 79 0a 6f 75 74 70 | 75 74 20 66 72 6f 6d 20 |any.outp|ut from |
|00001150| 63 6f 6d 6d 61 6e 64 73 | 20 72 75 6e 20 69 6e 20 |commands| run in |
|00001160| 74 68 65 20 73 68 65 6c | 6c 20 67 65 74 73 20 73 |the shel|l gets s|
|00001170| 74 6f 72 65 64 20 69 6e | 20 61 20 62 75 66 66 65 |tored in| a buffe|
|00001180| 72 2e 0a 0a 09 4a 4f 45 | 20 68 61 73 20 61 6e 20 |r....JOE| has an |
|00001190| 6f 72 74 68 6f 67 6f 6e | 61 6c 20 65 76 65 6e 74 |orthogon|al event|
|000011a0| 2d 64 72 69 76 65 6e 20 | 64 65 73 69 67 6e 2e 20 |-driven |design. |
|000011b0| 20 45 61 63 68 20 70 72 | 6f 6d 70 74 20 69 73 20 | Each pr|ompt is |
|000011c0| 61 63 74 75 61 6c 6c 79 | 0a 61 20 6e 6f 72 6d 61 |actually|.a norma|
|000011d0| 6c 20 65 64 69 74 20 62 | 75 66 66 65 72 20 63 6f |l edit b|uffer co|
|000011e0| 6e 74 61 69 6e 69 6e 67 | 20 61 20 68 69 73 74 6f |ntaining| a histo|
|000011f0| 72 79 20 6f 66 20 61 6c | 6c 20 6f 66 20 74 68 65 |ry of al|l of the|
|00001200| 20 72 65 73 70 6f 6e 73 | 65 73 20 65 6e 74 65 72 | respons|es enter|
|00001210| 65 64 0a 66 6f 72 20 74 | 68 61 74 20 70 72 6f 6d |ed.for t|hat prom|
|00001220| 70 74 2e 20 20 59 6f 75 | 20 63 61 6e 20 75 73 65 |pt. You| can use|
|00001230| 20 61 6c 6c 20 6f 66 20 | 74 68 65 20 6e 6f 72 6d | all of |the norm|
|00001240| 61 6c 20 65 64 69 74 20 | 63 6f 6d 6d 61 6e 64 73 |al edit |commands|
|00001250| 20 74 6f 20 63 72 65 61 | 74 65 20 66 69 6c 65 0a | to crea|te file.|
|00001260| 6e 61 6d 65 73 20 61 6e | 64 20 73 65 61 72 63 68 |names an|d search|
|00001270| 20 73 74 72 69 6e 67 73 | 2e 20 20 59 6f 75 20 63 | strings|. You c|
|00001280| 61 6e 20 75 73 65 20 74 | 68 65 20 75 70 20 61 72 |an use t|he up ar|
|00001290| 72 6f 77 20 6b 65 79 20 | 28 6f 72 20 73 65 61 72 |row key |(or sear|
|000012a0| 63 68 20 62 61 63 6b 77 | 61 72 64 73 0a 61 6e 64 |ch backw|ards.and|
|000012b0| 20 61 6e 79 20 6f 74 68 | 65 72 20 61 70 70 72 6f | any oth|er appro|
|000012c0| 70 72 69 61 74 65 20 65 | 64 69 74 20 63 6f 6d 6d |priate e|dit comm|
|000012d0| 61 6e 64 29 20 74 6f 20 | 67 6f 20 62 61 63 6b 20 |and) to |go back |
|000012e0| 74 68 72 6f 75 67 68 20 | 74 68 65 20 68 69 73 74 |through |the hist|
|000012f0| 6f 72 79 20 6f 66 0a 70 | 72 65 76 69 6f 75 73 20 |ory of.p|revious |
|00001300| 72 65 73 70 6f 6e 73 65 | 73 2e 20 20 50 72 6f 6d |response|s. Prom|
|00001310| 70 74 73 20 61 72 65 20 | 72 65 65 6e 74 72 61 6e |pts are |reentran|
|00001320| 74 2d 20 6d 65 61 6e 69 | 6e 67 20 74 68 61 74 20 |t- meani|ng that |
|00001330| 65 64 69 74 20 63 6f 6d | 6d 61 6e 64 73 20 77 68 |edit com|mands wh|
|00001340| 69 63 68 0a 72 65 71 75 | 69 72 65 20 70 72 6f 6d |ich.requ|ire prom|
|00001350| 70 74 73 20 63 61 6e 20 | 73 74 69 6c 6c 20 62 65 |pts can |still be|
|00001360| 20 75 73 65 64 20 69 6e | 73 69 64 65 20 6f 66 20 | used in|side of |
|00001370| 70 72 6f 6d 70 74 73 2e | 0a 0a 09 4a 4f 45 20 68 |prompts.|...JOE h|
|00001380| 61 73 20 54 41 42 2d 63 | 6f 6d 70 6c 65 74 69 6f |as TAB-c|ompletio|
|00001390| 6e 20 61 6e 64 20 66 69 | 6c 65 20 73 65 6c 65 63 |n and fi|le selec|
|000013a0| 74 69 6f 6e 20 6d 65 6e | 75 73 2e 20 20 49 66 20 |tion men|us. If |
|000013b0| 79 6f 75 20 68 69 74 20 | 74 61 62 20 69 6e 0a 61 |you hit |tab in.a|
|000013c0| 20 66 69 6c 65 20 6e 61 | 6d 65 20 70 72 6f 6d 70 | file na|me promp|
|000013d0| 74 2c 20 74 68 65 20 6e | 61 6d 65 20 69 73 20 65 |t, the n|ame is e|
|000013e0| 69 74 68 65 72 20 63 6f | 6d 70 6c 65 74 65 64 20 |ither co|mpleted |
|000013f0| 6f 72 20 61 20 6d 65 6e | 75 20 6f 66 20 70 6f 73 |or a men|u of pos|
|00001400| 73 69 62 6c 65 0a 6d 61 | 74 63 68 65 73 20 61 70 |sible.ma|tches ap|
|00001410| 70 65 61 72 73 2e 0a 0a | 09 4a 4f 45 20 73 74 6f |pears...|.JOE sto|
|00001420| 72 65 73 20 65 64 69 74 | 20 66 69 6c 65 73 20 69 |res edit| files i|
|00001430| 6e 20 61 20 64 6f 75 62 | 6c 79 20 6c 69 6e 6b 65 |n a doub|ly linke|
|00001440| 64 20 6c 69 73 74 20 6f | 66 20 67 61 70 20 62 75 |d list o|f gap bu|
|00001450| 66 66 65 72 73 20 77 68 | 69 63 68 0a 63 61 6e 20 |ffers wh|ich.can |
|00001460| 73 70 69 6c 6c 20 69 6e | 74 6f 20 74 65 6d 70 6f |spill in|to tempo|
|00001470| 72 61 72 79 20 66 69 6c | 65 73 2e 20 20 59 6f 75 |rary fil|es. You|
|00001480| 20 63 61 6e 20 65 64 69 | 74 20 66 69 6c 65 73 20 | can edi|t files |
|00001490| 6f 66 20 61 6e 79 20 73 | 69 7a 65 20 75 70 20 74 |of any s|ize up t|
|000014a0| 6f 20 74 68 65 0a 61 6d | 6f 75 6e 74 20 6f 66 20 |o the.am|ount of |
|000014b0| 66 72 65 65 20 64 69 73 | 6b 20 73 70 61 63 65 20 |free dis|k space |
|000014c0| 61 6e 64 20 74 68 65 72 | 65 20 61 72 65 20 6e 6f |and ther|e are no|
|000014d0| 20 6c 69 6e 65 2d 6c 65 | 6e 67 74 68 20 72 65 73 | line-le|ngth res|
|000014e0| 74 72 69 63 74 69 6f 6e | 73 2e 20 20 53 69 6e 63 |triction|s. Sinc|
|000014f0| 65 0a 74 68 65 20 62 75 | 66 66 65 72 69 6e 67 20 |e.the bu|ffering |
|00001500| 73 79 73 74 65 6d 20 69 | 73 20 62 6c 6f 63 6b 2d |system i|s block-|
|00001510| 62 61 73 65 64 2c 20 4a | 4f 45 20 77 69 6c 6c 20 |based, J|OE will |
|00001520| 69 6e 63 75 72 20 6f 6e | 6c 79 20 61 20 6d 69 6e |incur on|ly a min|
|00001530| 69 6d 75 6d 20 6f 66 0a | 73 77 61 70 70 69 6e 67 |imum of.|swapping|
|00001540| 20 6f 6e 20 68 65 61 76 | 69 6c 79 20 6c 6f 61 64 | on heav|ily load|
|00001550| 65 64 20 73 79 73 74 65 | 6d 73 2e 0a 0a 09 57 68 |ed syste|ms....Wh|
|00001560| 65 6e 20 79 6f 75 20 61 | 73 6b 20 66 6f 72 20 68 |en you a|sk for h|
|00001570| 65 6c 70 2c 20 79 6f 75 | 20 67 65 74 20 61 20 73 |elp, you| get a s|
|00001580| 6d 61 6c 6c 20 6d 65 6e | 75 20 6f 66 20 68 65 6c |mall men|u of hel|
|00001590| 70 20 73 63 72 65 65 6e | 73 20 74 6f 0a 63 68 6f |p screen|s to.cho|
|000015a0| 6f 73 65 20 66 72 6f 6d | 20 28 61 6c 6c 20 64 65 |ose from| (all de|
|000015b0| 66 69 6e 61 62 6c 65 20 | 69 6e 20 61 6e 20 69 6e |finable |in an in|
|000015c0| 69 74 69 61 6c 69 7a 61 | 74 69 6f 6e 20 66 69 6c |itializa|tion fil|
|000015d0| 65 29 2e 20 20 4f 6e 63 | 65 20 61 20 68 65 6c 70 |e). Onc|e a help|
|000015e0| 20 73 63 72 65 65 6e 0a | 69 73 20 73 65 6c 65 63 | screen.|is selec|
|000015f0| 74 65 64 2c 20 74 68 65 | 20 68 65 6c 70 20 72 65 |ted, the| help re|
|00001600| 6d 61 69 6e 73 20 6f 6e | 20 77 68 69 6c 65 20 79 |mains on| while y|
|00001610| 6f 75 20 63 6f 6e 74 69 | 6e 75 65 20 74 6f 20 75 |ou conti|nue to u|
|00001620| 73 65 20 74 68 65 20 65 | 64 69 74 6f 72 2e 20 20 |se the e|ditor. |
|00001630| 48 65 72 65 0a 69 73 20 | 74 68 65 20 66 69 72 73 |Here.is |the firs|
|00001640| 74 20 68 65 6c 70 20 73 | 63 72 65 65 6e 3a 0a 0a |t help s|creen:..|
|00001650| 43 55 52 53 4f 52 20 20 | 20 20 20 20 20 20 20 20 |CURSOR | |
|00001660| 20 47 4f 20 54 4f 20 20 | 20 20 20 20 20 20 20 20 | GO TO | |
|00001670| 20 20 42 4c 4f 43 4b 20 | 20 20 20 20 20 44 45 4c | BLOCK | DEL|
|00001680| 45 54 45 20 20 20 4d 49 | 53 43 20 20 20 20 20 20 |ETE MI|SC |
|00001690| 20 20 20 45 58 49 54 0a | 5e 42 20 6c 65 66 74 20 | EXIT.|^B left |
|000016a0| 5e 46 20 72 69 67 68 74 | 20 5e 55 20 20 70 72 65 |^F right| ^U pre|
|000016b0| 76 2e 20 73 63 72 65 65 | 6e 20 5e 4b 42 20 62 65 |v. scree|n ^KB be|
|000016c0| 67 69 6e 20 20 5e 44 20 | 63 68 61 72 2e 20 5e 4b |gin ^D |char. ^K|
|000016d0| 4a 20 72 65 66 6f 72 6d | 61 74 20 5e 4b 58 20 73 |J reform|at ^KX s|
|000016e0| 61 76 65 0a 5e 50 20 75 | 70 20 20 20 5e 4e 20 64 |ave.^P u|p ^N d|
|000016f0| 6f 77 6e 20 20 5e 56 20 | 20 6e 65 78 74 20 73 63 |own ^V | next sc|
|00001700| 72 65 65 6e 20 20 5e 4b | 4b 20 65 6e 64 20 20 20 |reen ^K|K end |
|00001710| 20 5e 59 20 6c 69 6e 65 | 20 20 5e 54 54 20 6f 76 | ^Y line| ^TT ov|
|00001720| 65 72 74 79 70 65 20 5e | 43 20 20 61 62 6f 72 74 |ertype ^|C abort|
|00001730| 0a 5e 5a 20 70 72 65 76 | 69 6f 75 73 20 77 6f 72 |.^Z prev|ious wor|
|00001740| 64 20 5e 41 20 20 62 65 | 67 2e 20 6f 66 20 6c 69 |d ^A be|g. of li|
|00001750| 6e 65 20 5e 4b 4d 20 6d | 6f 76 65 20 20 20 5e 57 |ne ^KM m|ove ^W|
|00001760| 20 3e 77 6f 72 64 20 5e | 40 20 20 69 6e 73 65 72 | >word ^|@ inser|
|00001770| 74 20 20 20 5e 4b 5a 20 | 73 68 65 6c 6c 0a 5e 58 |t ^KZ |shell.^X|
|00001780| 20 6e 65 78 74 20 77 6f | 72 64 20 20 20 20 20 5e | next wo|rd ^|
|00001790| 45 20 20 65 6e 64 20 6f | 66 20 6c 69 6e 65 20 20 |E end o|f line |
|000017a0| 5e 4b 43 20 63 6f 70 79 | 20 20 20 5e 4f 20 77 6f |^KC copy| ^O wo|
|000017b0| 72 64 3c 20 5e 52 20 20 | 72 65 74 79 70 65 20 20 |rd< ^R |retype |
|000017c0| 20 46 49 4c 45 0a 53 45 | 41 52 43 48 20 20 20 20 | FILE.SE|ARCH |
|000017d0| 20 20 20 20 20 20 20 5e | 4b 55 20 74 6f 70 20 6f | ^|KU top o|
|000017e0| 66 20 66 69 6c 65 20 20 | 5e 4b 57 20 66 69 6c 65 |f file |^KW file|
|000017f0| 20 20 20 5e 4a 20 3e 6c | 69 6e 65 20 51 55 4f 54 | ^J >l|ine QUOT|
|00001800| 45 20 20 20 20 20 20 20 | 20 5e 4b 45 20 6e 65 77 |E | ^KE new|
|00001810| 0a 5e 4b 46 20 66 69 6e | 64 20 74 65 78 74 20 20 |.^KF fin|d text |
|00001820| 20 20 5e 4b 56 20 65 6e | 64 20 6f 66 20 66 69 6c | ^KV en|d of fil|
|00001830| 65 20 20 5e 4b 59 20 64 | 65 6c 65 74 65 20 5e 5f |e ^KY d|elete ^_|
|00001840| 20 75 6e 64 6f 20 20 60 | 20 20 20 43 74 72 6c 2d | undo `| Ctrl-|
|00001850| 20 20 20 20 5e 4b 52 20 | 69 6e 73 65 72 74 0a 5e | ^KR |insert.^|
|00001860| 4c 20 20 66 69 6e 64 20 | 6e 65 78 74 20 20 20 20 |L find |next |
|00001870| 5e 4b 4c 20 74 6f 20 6c | 69 6e 65 20 4e 6f 2e 20 |^KL to l|ine No. |
|00001880| 20 5e 4b 2f 20 66 69 6c | 74 65 72 20 5e 5e 20 72 | ^K/ fil|ter ^^ r|
|00001890| 65 64 6f 20 20 5e 5c 20 | 20 4d 65 74 61 2d 20 20 |edo ^\ | Meta- |
|000018a0| 20 20 5e 4b 44 20 73 61 | 76 65 0a 0a 09 4a 4f 45 | ^KD sa|ve...JOE|
|000018b0| 20 68 61 73 20 61 20 70 | 6f 77 65 72 66 75 6c 20 | has a p|owerful |
|000018c0| 73 65 74 20 6f 66 20 65 | 64 69 74 69 6e 67 20 63 |set of e|diting c|
|000018d0| 6f 6d 6d 61 6e 64 73 20 | 73 75 69 74 61 62 6c 65 |ommands |suitable|
|000018e0| 20 66 6f 72 20 65 64 69 | 74 69 6e 67 20 62 6f 74 | for edi|ting bot|
|000018f0| 68 0a 74 65 78 74 20 66 | 69 6c 65 73 20 61 6e 64 |h.text f|iles and|
|00001900| 20 70 72 6f 67 72 61 6d | 73 3a 0a 0a 09 09 2d 20 | program|s:....- |
|00001910| 73 65 61 72 63 68 20 61 | 6e 64 20 72 65 70 6c 61 |search a|nd repla|
|00001920| 63 65 20 73 79 73 74 65 | 6d 2c 20 69 6e 63 6c 75 |ce syste|m, inclu|
|00001930| 64 69 6e 67 20 70 6f 77 | 65 72 66 75 6c 20 72 65 |ding pow|erful re|
|00001940| 67 75 6c 61 72 20 0a 09 | 09 20 20 65 78 70 72 65 |gular ..|. expre|
|00001950| 73 73 69 6f 6e 73 20 28 | 69 6e 63 6c 75 64 69 6e |ssions (|includin|
|00001960| 67 20 6d 61 74 63 68 69 | 6e 67 20 6f 66 20 62 61 |g matchi|ng of ba|
|00001970| 6c 61 6e 63 65 64 20 43 | 20 65 78 70 72 65 73 73 |lanced C| express|
|00001980| 69 6f 6e 73 29 2e 0a 0a | 09 09 2d 20 74 61 67 73 |ions)...|..- tags|
|00001990| 20 66 69 6c 65 20 73 65 | 61 72 63 68 0a 0a 09 09 | file se|arch....|
|000019a0| 2d 20 70 61 72 61 67 72 | 61 70 68 20 66 6f 72 6d |- paragr|aph form|
|000019b0| 61 74 0a 0a 09 09 2d 20 | 75 6e 64 6f 20 61 6e 64 |at....- |undo and|
|000019c0| 20 72 65 64 6f 0a 0a 09 | 09 2d 20 70 6f 73 69 74 | redo...|.- posit|
|000019d0| 69 6f 6e 20 68 69 73 74 | 6f 72 79 20 61 6c 6c 6f |ion hist|ory allo|
|000019e0| 77 73 20 79 6f 75 20 74 | 6f 20 67 65 74 20 62 61 |ws you t|o get ba|
|000019f0| 63 6b 20 74 6f 20 70 72 | 65 76 69 6f 75 73 0a 09 |ck to pr|evious..|
|00001a00| 09 20 20 65 64 69 74 69 | 6e 67 20 63 6f 6e 74 65 |. editi|ng conte|
|00001a10| 78 74 73 20 61 6e 64 20 | 61 6c 6c 6f 77 73 20 79 |xts and |allows y|
|00001a20| 6f 75 20 74 6f 20 71 75 | 69 63 6b 6c 79 20 66 6c |ou to qu|ickly fl|
|00001a30| 69 70 20 62 65 74 77 65 | 65 6e 0a 09 09 20 20 65 |ip betwe|en... e|
|00001a40| 64 69 74 69 6e 67 20 63 | 6f 6e 74 65 78 74 73 0a |diting c|ontexts.|
|00001a50| 0a 09 09 2d 20 6d 75 6c | 74 69 70 6c 65 20 6b 65 |...- mul|tiple ke|
|00001a60| 79 62 6f 61 72 64 20 6d | 61 63 72 6f 73 0a 0a 09 |yboard m|acros...|
|00001a70| 09 2d 20 62 6c 6f 63 6b | 20 6d 6f 76 65 2f 63 6f |.- block| move/co|
|00001a80| 70 79 2f 64 65 6c 65 74 | 65 2f 66 69 6c 74 65 72 |py/delet|e/filter|
|00001a90| 0a 0a 09 09 2d 20 72 65 | 63 74 61 6e 67 6c 65 20 |....- re|ctangle |
|00001aa0| 28 63 6f 6c 75 6d 6e 61 | 72 29 20 6d 6f 64 65 0a |(columna|r) mode.|
|00001ab0| 0a 09 09 2d 20 6f 76 65 | 72 74 79 70 65 2f 69 6e |...- ove|rtype/in|
|00001ac0| 73 65 72 74 20 6d 6f 64 | 65 73 0a 0a 09 09 2d 20 |sert mod|es....- |
|00001ad0| 69 6e 64 65 6e 74 2f 75 | 6e 69 6e 64 65 6e 74 0a |indent/u|nindent.|
|00001ae0| 0a 09 09 2d 20 67 6f 74 | 6f 20 6d 61 74 63 68 69 |...- got|o matchi|
|00001af0| 6e 67 20 28 20 5b 20 7b | 0a 0a 09 09 2d 20 61 75 |ng ( [ {|....- au|
|00001b00| 74 6f 2d 69 6e 64 65 6e | 74 20 6d 6f 64 65 0a 0a |to-inden|t mode..|
|00001b10| 09 50 6c 75 73 20 6d 61 | 6e 79 20 6f 70 74 69 6f |.Plus ma|ny optio|
|00001b20| 6e 73 20 63 61 6e 20 62 | 65 20 73 65 74 3a 0a 0a |ns can b|e set:..|
|00001b30| 09 09 2d 20 63 61 6e 20 | 68 61 76 65 20 45 4d 41 |..- can |have EMA|
|00001b40| 43 53 2d 73 74 79 6c 65 | 20 63 75 72 73 6f 72 20 |CS-style| cursor |
|00001b50| 72 65 2d 63 65 6e 74 65 | 72 69 6e 67 20 6f 6e 20 |re-cente|ring on |
|00001b60| 73 63 72 6f 6c 6c 73 0a | 0a 09 09 2d 20 63 68 61 |scrolls.|...- cha|
|00001b70| 72 61 63 74 65 72 73 20 | 62 65 74 77 65 65 6e 20 |racters |between |
|00001b80| 31 32 38 2d 32 35 35 20 | 63 61 6e 20 62 65 20 73 |128-255 |can be s|
|00001b90| 68 6f 77 6e 20 61 73 2d | 69 73 20 66 6f 72 0a 09 |hown as-|is for..|
|00001ba0| 09 20 20 53 63 61 6e 64 | 69 6e 61 76 69 61 6e 20 |. Scand|inavian |
|00001bb0| 63 68 61 72 61 63 74 65 | 72 73 0a 0a 09 09 2d 20 |characte|rs....- |
|00001bc0| 46 69 6e 61 6c 20 6e 65 | 77 6c 69 6e 65 20 63 61 |Final ne|wline ca|
|00001bd0| 6e 20 62 65 20 66 6f 72 | 63 65 64 20 6f 6e 20 65 |n be for|ced on e|
|00001be0| 6e 64 20 6f 66 20 66 69 | 6c 65 0a 0a 09 09 2d 20 |nd of fi|le....- |
|00001bf0| 43 61 6e 20 73 74 61 72 | 74 20 77 69 74 68 20 61 |Can star|t with a|
|00001c00| 20 68 65 6c 70 20 73 63 | 72 65 65 6e 20 6f 6e 0a | help sc|reen on.|
|00001c10| 0a 09 09 2d 20 4c 65 66 | 74 2f 52 69 67 68 74 20 |...- Lef|t/Right |
|00001c20| 6d 61 72 67 69 6e 20 73 | 65 74 74 69 6e 67 73 0a |margin s|ettings.|
|00001c30| 0a 09 09 2d 20 54 61 62 | 20 77 69 64 74 68 0a 0a |...- Tab| width..|
|00001c40| 09 09 2d 20 49 6e 64 65 | 6e 74 61 74 69 6f 6e 20 |..- Inde|ntation |
|00001c50| 73 74 65 70 20 61 6e 64 | 20 66 69 6c 6c 20 63 68 |step and| fill ch|
|00001c60| 61 72 61 63 74 65 72 0a | 0a 2f 2a 20 20 6a 68 61 |aracter.|./* jha|
|00001c70| 6c 6c 65 6e 40 77 6f 72 | 6c 64 2e 73 74 64 2e 63 |llen@wor|ld.std.c|
|00001c80| 6f 6d 20 2a 2f 20 20 20 | 20 20 20 20 20 20 20 20 |om */ | |
|00001c90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001ca0| 20 20 20 2f 2a 20 4a 6f | 73 65 70 68 20 48 2e 20 | /* Jo|seph H. |
|00001cb0| 41 6c 6c 65 6e 20 2a 2f | 0a 69 6e 74 20 61 5b 31 |Allen */|.int a[1|
|00001cc0| 38 31 37 5d 3b 6d 61 69 | 6e 28 7a 2c 70 2c 71 2c |817];mai|n(z,p,q,|
|00001cd0| 72 29 7b 66 6f 72 28 70 | 3d 38 30 3b 71 2b 70 2d |r){for(p|=80;q+p-|
|00001ce0| 38 30 3b 70 2d 3d 32 2a | 61 5b 70 5d 29 66 6f 72 |80;p-=2*|a[p])for|
|00001cf0| 28 7a 3d 39 3b 7a 2d 2d | 3b 29 71 3d 33 26 28 72 |(z=9;z--|;)q=3&(r|
|00001d00| 3d 74 69 6d 65 28 30 29 | 0a 2b 72 2a 35 37 29 2f |=time(0)|.+r*57)/|
|00001d10| 37 2c 71 3d 71 3f 71 2d | 31 3f 71 2d 32 3f 31 2d |7,q=q?q-|1?q-2?1-|
|00001d20| 70 25 37 39 3f 2d 31 3a | 30 3a 70 25 37 39 2d 37 |p%79?-1:|0:p%79-7|
|00001d30| 37 3f 31 3a 30 3a 70 3c | 31 36 35 39 3f 37 39 3a |7?1:0:p<|1659?79:|
|00001d40| 30 3a 70 3e 31 35 38 3f | 2d 37 39 3a 30 2c 71 3f |0:p>158?|-79:0,q?|
|00001d50| 21 61 5b 70 2b 71 2a 32 | 0a 5d 3f 61 5b 70 2b 3d |!a[p+q*2|.]?a[p+=|
|00001d60| 61 5b 70 2b 3d 71 5d 3d | 71 5d 3d 71 3a 30 3a 30 |a[p+=q]=|q]=q:0:0|
|00001d70| 3b 66 6f 72 28 3b 71 2b | 2b 2d 31 38 31 37 3b 29 |;for(;q+|+-1817;)|
|00001d80| 70 72 69 6e 74 66 28 71 | 25 37 39 3f 22 25 63 22 |printf(q|%79?"%c"|
|00001d90| 3a 22 25 63 5c 6e 22 2c | 22 20 23 22 5b 21 61 5b |:"%c\n",|" #"[!a[|
|00001da0| 71 2d 31 5d 5d 29 3b 7d | 0a 00 00 00 00 00 00 00 |q-1]]);}|........|
|00001db0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001dc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001dd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001de0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001df0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e00| 6a 6f 65 2f 52 45 41 44 | 4d 45 00 00 00 00 00 00 |joe/READ|ME......|
|00001e10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e60| 00 00 00 00 31 30 30 36 | 30 30 20 00 20 20 36 30 |....1006|00 . 60|
|00001e70| 31 31 20 00 20 20 36 30 | 31 31 20 00 20 20 20 20 |11 . 60|11 . |
|00001e80| 20 20 31 34 36 35 32 20 | 20 35 36 32 35 31 34 30 | 14652 | 5625140|
|00001e90| 32 31 32 20 20 20 37 31 | 35 37 00 20 30 00 00 00 |212 71|57. 0...|
|00001ea0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001eb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f00| 00 75 73 74 61 72 20 20 | 00 00 00 00 00 00 00 00 |.ustar |........|
|00001f10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002000| 54 68 69 73 20 69 73 20 | 4a 6f 65 27 73 20 4f 77 |This is |Joe's Ow|
|00002010| 6e 20 45 64 69 74 6f 72 | 2e 20 20 53 65 65 20 74 |n Editor|. See t|
|00002020| 68 65 20 49 4e 46 4f 20 | 66 69 6c 65 20 69 66 20 |he INFO |file if |
|00002030| 79 6f 75 20 64 6f 6e 27 | 74 20 6b 6e 6f 77 20 77 |you don'|t know w|
|00002040| 68 61 74 20 74 68 69 73 | 20 69 73 2e 0a 0a 49 6e |hat this| is...In|
|00002050| 73 74 61 6c 6c 61 74 69 | 6f 6e 20 70 72 6f 63 65 |stallati|on proce|
|00002060| 65 64 75 72 65 0a 3d 2d | 3d 2d 3d 2d 3d 2d 3d 2d |edure.=-|=-=-=-=-|
|00002070| 3d 2d 3d 2d 3d 2d 3d 2d | 3d 2d 3d 2d 3d 0a 0a 09 |=-=-=-=-|=-=-=...|
|00002080| 43 68 6f 6f 73 65 20 77 | 68 69 63 68 20 2a 2e 6d |Choose w|hich *.m|
|00002090| 61 6b 20 66 69 6c 65 20 | 79 6f 75 20 77 61 6e 74 |ak file |you want|
|000020a0| 20 74 6f 20 75 73 65 20 | 61 6e 64 20 6c 69 6e 6b | to use |and link|
|000020b0| 20 69 74 20 74 6f 20 4d | 61 6b 65 66 69 6c 65 2e | it to M|akefile.|
|000020c0| 0a 09 46 6f 72 20 65 78 | 61 6d 70 6c 65 2c 20 66 |..For ex|ample, f|
|000020d0| 6f 72 20 78 65 6e 69 78 | 2e 6d 61 6b 2c 20 74 79 |or xenix|.mak, ty|
|000020e0| 70 65 20 27 6c 6e 20 78 | 65 6e 69 78 2e 6d 61 6b |pe 'ln x|enix.mak|
|000020f0| 20 4d 61 6b 65 66 69 6c | 65 27 0a 0a 09 61 6c 70 | Makefil|e'...alp|
|00002100| 68 61 2e 6d 61 6b 09 46 | 6f 72 20 4f 53 46 20 6f |ha.mak.F|or OSF o|
|00002110| 6e 20 44 45 43 20 41 4c | 50 48 41 73 0a 0a 09 09 |n DEC AL|PHAs....|
|00002120| 53 70 65 63 69 61 6c 20 | 69 6e 73 74 72 75 63 74 |Special |instruct|
|00002130| 69 6f 6e 73 20 66 6f 72 | 20 61 6c 70 68 61 2e 6d |ions for| alpha.m|
|00002140| 61 6b 3a 20 20 62 65 66 | 6f 72 65 20 72 75 6e 6e |ak: bef|ore runn|
|00002150| 69 6e 67 20 6d 61 6b 65 | 2c 0a 09 09 74 79 70 65 |ing make|,...type|
|00002160| 20 74 68 65 20 63 6f 6d | 6d 61 6e 64 3a 0a 09 09 | the com|mand:...|
|00002170| 27 72 6d 20 63 6f 6e 66 | 69 67 2e 68 3b 20 6c 6e |'rm conf|ig.h; ln|
|00002180| 20 63 6f 6e 66 69 67 36 | 34 2e 68 20 63 6f 6e 66 | config6|4.h conf|
|00002190| 69 67 2e 68 27 0a 0a 09 | 61 69 78 33 32 2e 6d 61 |ig.h'...|aix32.ma|
|000021a0| 6b 09 46 6f 72 20 41 49 | 58 20 33 2e 32 20 52 53 |k.For AI|X 3.2 RS|
|000021b0| 2f 36 30 30 30 0a 09 78 | 65 6e 69 78 2e 6d 61 6b |/6000..x|enix.mak|
|000021c0| 09 46 6f 72 20 78 65 6e | 69 78 20 73 79 73 74 65 |.For xen|ix syste|
|000021d0| 6d 20 56 20 28 74 65 72 | 6d 63 61 70 29 0a 09 73 |m V (ter|mcap)..s|
|000021e0| 76 2e 6d 61 6b 09 09 46 | 6f 72 20 70 72 69 6d 69 |v.mak..F|or primi|
|000021f0| 74 69 76 65 20 73 79 73 | 74 65 6d 20 56 20 28 74 |tive sys|tem V (t|
|00002200| 65 72 6d 63 61 70 29 0a | 09 73 63 6f 2e 6d 61 6b |ermcap).|.sco.mak|
|00002210| 09 09 46 6f 72 20 53 43 | 4f 20 55 4e 49 58 20 61 |..For SC|O UNIX a|
|00002220| 6e 64 20 49 6e 74 65 72 | 61 63 74 69 76 65 20 28 |nd Inter|active (|
|00002230| 74 65 72 6d 69 6e 66 6f | 29 0a 09 68 70 75 78 2e |terminfo|)..hpux.|
|00002240| 6d 61 6b 09 46 6f 72 20 | 68 70 75 78 20 28 74 65 |mak.For |hpux (te|
|00002250| 72 6d 69 6e 66 6f 29 0a | 09 6c 69 6e 75 78 2e 6d |rminfo).|.linux.m|
|00002260| 61 6b 09 46 6f 72 20 6c | 69 6e 75 78 20 61 6e 64 |ak.For l|inux and|
|00002270| 20 70 6f 73 69 78 20 28 | 74 65 72 6d 63 61 70 29 | posix (|termcap)|
|00002280| 0a 09 62 73 64 2e 6d 61 | 6b 09 09 46 6f 72 20 42 |..bsd.ma|k..For B|
|00002290| 53 44 20 28 53 55 4e 2c | 20 55 6c 74 72 69 78 29 |SD (SUN,| Ultrix)|
|000022a0| 20 28 74 65 72 6d 63 61 | 70 29 0a 0a 09 44 65 63 | (termca|p)...Dec|
|000022b0| 69 64 65 20 6f 6e 20 74 | 68 65 20 6e 61 6d 65 20 |ide on t|he name |
|000022c0| 6f 66 20 74 68 65 20 67 | 6c 6f 62 61 6c 20 6b 65 |of the g|lobal ke|
|000022d0| 79 6d 61 70 20 66 69 6c | 65 20 69 66 20 79 6f 75 |ymap fil|e if you|
|000022e0| 20 64 6f 6e 27 74 20 77 | 61 6e 74 20 69 74 0a 09 | don't w|ant it..|
|000022f0| 74 6f 20 62 65 20 27 2f | 75 73 72 2f 6c 6f 63 61 |to be '/|usr/loca|
|00002300| 6c 2f 6c 69 62 2f 6a 6f | 65 72 63 27 20 61 6e 64 |l/lib/jo|erc' and|
|00002310| 20 6d 6f 64 69 66 79 20 | 74 68 65 20 27 4a 4f 45 | modify |the 'JOE|
|00002320| 52 43 3d 27 20 69 6e 20 | 74 68 65 0a 09 27 6d 61 |RC=' in |the..'ma|
|00002330| 6b 65 66 69 6c 65 27 2e | 20 20 49 66 20 79 6f 75 |kefile'.| If you|
|00002340| 27 72 65 20 61 20 6d 65 | 72 65 20 75 73 65 72 2c |'re a me|re user,|
|00002350| 20 63 6f 70 79 20 74 68 | 65 20 6a 6f 65 72 63 20 | copy th|e joerc |
|00002360| 66 69 6c 65 20 69 6e 74 | 6f 0a 09 24 48 4f 4d 45 |file int|o..$HOME|
|00002370| 2f 2e 6a 6f 65 72 63 0a | 0a 09 49 4d 50 4f 52 54 |/.joerc.|..IMPORT|
|00002380| 41 4e 54 3a 20 4a 6f 65 | 20 63 61 6e 20 6e 6f 74 |ANT: Joe| can not|
|00002390| 20 62 65 20 75 73 65 64 | 20 6f 6e 20 73 79 73 74 | be used| on syst|
|000023a0| 65 6d 73 20 77 69 74 68 | 20 69 64 6c 65 20 73 65 |ems with| idle se|
|000023b0| 73 73 69 6f 6e 20 6b 69 | 6c 6c 65 72 73 2e 0a 09 |ssion ki|llers...|
|000023c0| 4a 6f 65 20 6f 70 65 6e | 73 20 74 68 65 20 74 74 |Joe open|s the tt|
|000023d0| 79 20 74 68 72 6f 75 67 | 68 20 27 2f 64 65 76 2f |y throug|h '/dev/|
|000023e0| 74 74 79 27 2c 20 6e 6f | 74 20 74 68 65 20 73 74 |tty', no|t the st|
|000023f0| 61 6e 64 61 72 64 20 69 | 6e 70 75 74 2f 6f 75 74 |andard i|nput/out|
|00002400| 70 75 74 2e 0a 09 54 68 | 69 73 20 6d 65 61 6e 73 |put...Th|is means|
|00002410| 20 74 68 61 74 20 74 68 | 65 20 6d 6f 64 69 66 69 | that th|e modifi|
|00002420| 63 61 74 69 6f 6e 20 74 | 69 6d 65 20 6f 6e 20 74 |cation t|ime on t|
|00002430| 68 65 20 72 65 61 6c 20 | 74 74 79 20 64 6f 65 73 |he real |tty does|
|00002440| 20 6e 6f 74 20 67 65 74 | 0a 09 75 70 64 61 74 65 | not get|..update|
|00002450| 64 2d 20 73 6f 6d 65 20 | 69 64 6c 65 20 6a 6f 62 |d- some |idle job|
|00002460| 20 6b 69 6c 6c 65 72 73 | 20 75 73 65 20 74 68 69 | killers| use thi|
|00002470| 73 20 74 69 6d 65 20 74 | 6f 20 64 65 74 65 63 74 |s time t|o detect|
|00002480| 20 77 68 65 6e 20 74 68 | 65 0a 09 73 65 73 73 69 | when th|e..sessi|
|00002490| 6f 6e 20 69 73 20 69 64 | 6c 65 2d 20 61 6e 64 20 |on is id|le- and |
|000024a0| 73 6f 20 6a 6f 65 20 75 | 73 65 72 73 20 77 69 6c |so joe u|sers wil|
|000024b0| 6c 20 62 65 20 73 70 6f | 6e 74 61 6e 65 6f 75 73 |l be spo|ntaneous|
|000024c0| 6c 79 20 6c 6f 67 67 65 | 64 20 6f 66 66 2e 0a 0a |ly logge|d off...|
|000024d0| 09 54 68 65 20 73 6f 6c | 75 74 69 6f 6e 20 74 6f |.The sol|ution to|
|000024e0| 20 74 68 69 73 20 70 72 | 6f 62 6c 65 6d 20 69 73 | this pr|oblem is|
|000024f0| 20 65 69 74 68 65 72 20 | 74 6f 20 6e 6f 74 20 75 | either |to not u|
|00002500| 73 65 20 73 75 63 68 20 | 61 6e 20 69 64 6c 65 0a |se such |an idle.|
|00002510| 09 73 65 73 73 69 6f 6e | 20 6b 69 6c 6c 65 72 20 |.session| killer |
|00002520| 28 69 64 6c 65 6f 75 74 | 20 6f 6e 20 53 56 52 34 |(idleout| on SVR4|
|00002530| 20 69 73 20 6f 6e 65 29 | 20 6f 72 20 74 6f 20 6d | is one)| or to m|
|00002540| 6f 64 69 66 79 20 6a 6f | 65 20 74 6f 20 75 73 65 |odify jo|e to use|
|00002550| 0a 09 73 74 64 69 6e 2f | 73 74 64 6f 75 74 20 74 |..stdin/|stdout t|
|00002560| 6f 20 67 65 74 20 74 6f | 20 74 68 65 20 74 74 79 |o get to| the tty|
|00002570| 2d 20 62 75 74 20 74 68 | 69 73 20 77 69 6c 6c 20 |- but th|is will |
|00002580| 65 6c 69 6d 69 6e 61 74 | 65 20 6f 6e 65 20 6f 66 |eliminat|e one of|
|00002590| 0a 09 6a 6f 65 27 73 20 | 66 65 61 74 75 72 65 73 |..joe's |features|
|000025a0| 2d 20 62 65 69 6e 67 20 | 61 62 6c 65 20 74 6f 20 |- being |able to |
|000025b0| 65 64 69 74 20 74 68 65 | 20 73 74 64 69 6e 2f 73 |edit the| stdin/s|
|000025c0| 74 64 6f 75 74 2e 0a 0a | 09 54 6f 20 6d 61 6b 65 |tdout...|.To make|
|000025d0| 20 6a 6f 65 20 67 6f 20 | 74 68 72 6f 75 67 68 20 | joe go |through |
|000025e0| 73 74 64 69 6e 2f 73 74 | 64 6f 75 74 2c 20 65 64 |stdin/st|dout, ed|
|000025f0| 69 74 20 74 68 65 20 6d | 61 6b 65 66 69 6c 65 20 |it the m|akefile |
|00002600| 61 6e 64 20 73 77 69 74 | 63 68 0a 09 74 68 65 20 |and swit|ch..the |
|00002610| 74 68 65 20 63 6f 6d 6d | 65 6e 74 20 6f 6e 20 74 |the comm|ent on t|
|00002620| 68 65 20 27 23 49 44 4c | 45 20 3d 20 2d 44 49 44 |he '#IDL|E = -DID|
|00002630| 4c 45 4f 55 54 27 20 6c | 69 6e 65 2e 0a 0a 09 54 |LEOUT' l|ine....T|
|00002640| 79 70 65 20 27 6d 61 6b | 65 27 2e 0a 0a 09 54 68 |ype 'mak|e'....Th|
|00002650| 65 6e 20 74 79 70 65 20 | 27 6d 61 6b 65 20 69 6e |en type |'make in|
|00002660| 73 74 61 6c 6c 27 20 74 | 6f 20 69 6e 73 74 61 6c |stall' t|o instal|
|00002670| 6c 20 6a 6f 65 20 69 6e | 0a 09 2f 75 73 72 2f 6c |l joe in|../usr/l|
|00002680| 6f 63 61 6c 2f 62 69 6e | 20 61 6e 64 20 2f 75 73 |ocal/bin| and /us|
|00002690| 72 2f 6c 6f 63 61 6c 2f | 6c 69 62 0a 0a 09 54 79 |r/local/|lib...Ty|
|000026a0| 70 65 20 27 6d 61 6b 65 | 20 63 6c 65 61 6e 27 20 |pe 'make| clean' |
|000026b0| 65 6c 69 6d 69 6e 61 74 | 65 20 74 68 65 20 2e 6f |eliminat|e the .o|
|000026c0| 20 66 69 6c 65 73 0a 0a | 09 43 6f 70 79 20 74 65 | files..|.Copy te|
|000026d0| 72 6d 63 61 70 20 74 6f | 20 2e 74 65 72 6d 63 61 |rmcap to| .termca|
|000026e0| 70 20 69 6e 20 79 6f 75 | 72 20 68 6f 6d 65 20 64 |p in you|r home d|
|000026f0| 69 72 65 63 74 6f 72 79 | 20 69 66 20 79 6f 75 20 |irectory| if you |
|00002700| 77 61 6e 74 20 74 6f 0a | 09 75 73 65 20 69 74 20 |want to.|.use it |
|00002710| 69 6e 73 74 65 61 64 20 | 6f 66 20 2f 65 74 63 2f |instead |of /etc/|
|00002720| 74 65 72 6d 63 61 70 20 | 28 73 65 65 20 62 65 6c |termcap |(see bel|
|00002730| 6f 77 29 2e 0a 0a 09 53 | 65 74 20 74 68 65 20 62 |ow)....S|et the b|
|00002740| 61 75 64 20 72 61 74 65 | 20 70 72 6f 70 65 72 6c |aud rate| properl|
|00002750| 79 20 28 73 65 65 20 62 | 65 6c 6f 77 29 2e 0a 49 |y (see b|elow)..I|
|00002760| 66 20 79 6f 75 20 6d 61 | 6b 65 20 61 20 6d 69 73 |f you ma|ke a mis|
|00002770| 74 61 6b 65 20 61 6e 64 | 20 6e 65 65 64 20 74 6f |take and| need to|
|00002780| 20 75 73 65 20 61 6e 6f | 74 68 65 72 20 6d 61 6b | use ano|ther mak|
|00002790| 65 20 66 69 6c 65 2c 20 | 79 6f 75 20 64 6f 6e 27 |e file, |you don'|
|000027a0| 74 20 68 61 76 65 20 74 | 6f 20 0a 64 65 6c 65 74 |t have t|o .delet|
|000027b0| 65 20 61 6c 6c 20 6f 66 | 20 74 68 65 20 2e 6f 20 |e all of| the .o |
|000027c0| 66 69 6c 65 73 2e 20 20 | 4f 6e 6c 79 20 27 74 74 |files. |Only 'tt|
|000027d0| 79 2e 6f 27 20 64 65 70 | 65 6e 64 73 20 6f 6e 20 |y.o' dep|ends on |
|000027e0| 77 68 61 74 27 73 20 69 | 6e 20 74 68 65 20 6d 61 |what's i|n the ma|
|000027f0| 6b 65 20 0a 66 69 6c 65 | 2e 0a 0a 49 66 20 61 20 |ke .file|...If a |
|00002800| 6d 61 6b 65 20 66 69 6c | 65 20 66 6f 72 20 79 6f |make fil|e for yo|
|00002810| 75 72 20 73 79 73 74 65 | 6d 20 64 6f 65 73 6e 27 |ur syste|m doesn'|
|00002820| 74 20 65 78 69 73 74 20 | 68 65 72 65 2c 20 74 72 |t exist |here, tr|
|00002830| 79 20 6f 6e 65 20 74 68 | 61 74 20 79 6f 75 20 74 |y one th|at you t|
|00002840| 68 69 6e 6b 20 0a 6d 69 | 67 68 74 20 62 65 20 63 |hink .mi|ght be c|
|00002850| 6c 6f 73 65 2e 20 20 49 | 66 20 79 6f 75 20 68 61 |lose. I|f you ha|
|00002860| 64 20 74 6f 20 6d 61 6b | 65 20 63 68 61 6e 67 65 |d to mak|e change|
|00002870| 73 20 74 6f 20 67 65 74 | 20 61 20 6d 61 6b 65 66 |s to get| a makef|
|00002880| 69 6c 65 20 74 6f 20 77 | 6f 72 6b 2c 20 0a 70 6c |ile to w|ork, .pl|
|00002890| 65 61 73 65 20 6d 61 69 | 6c 20 6d 65 20 74 68 65 |ease mai|l me the|
|000028a0| 20 6e 65 77 20 6d 61 6b | 65 66 69 6c 65 20 61 6e | new mak|efile an|
|000028b0| 64 20 74 68 65 20 74 79 | 70 65 20 6f 66 20 79 6f |d the ty|pe of yo|
|000028c0| 75 72 20 73 79 73 74 65 | 6d 20 61 6e 64 20 49 27 |ur syste|m and I'|
|000028d0| 6c 6c 20 69 6e 63 6c 75 | 64 65 20 0a 69 74 20 69 |ll inclu|de .it i|
|000028e0| 6e 20 74 68 65 20 6e 65 | 78 74 20 64 69 73 74 72 |n the ne|xt distr|
|000028f0| 69 62 75 74 69 6f 6e 2e | 0a 0a 55 53 45 41 47 45 |ibution.|..USEAGE|
|00002900| 3a 09 6a 6f 65 20 66 69 | 6c 65 6e 61 6d 65 73 0a |:.joe fi|lenames.|
|00002910| 0a 09 4f 70 74 69 6f 6e | 61 6c 6c 79 20 70 72 65 |..Option|ally pre|
|00002920| 63 65 65 64 20 65 61 63 | 68 20 66 69 6c 65 6e 61 |ceed eac|h filena|
|00002930| 6d 65 20 77 69 74 68 20 | 2b 6e 6e 6e 20 74 6f 20 |me with |+nnn to |
|00002940| 73 74 61 72 74 20 61 74 | 20 73 70 65 63 69 66 69 |start at| specifi|
|00002950| 65 64 20 0a 6c 69 6e 65 | 20 6e 75 6d 62 65 72 2e |ed .line| number.|
|00002960| 20 20 0a 0a 2a 2a 20 49 | 4d 50 4f 52 54 41 4e 54 | ..** I|MPORTANT|
|00002970| 20 2a 2a 0a 0a 54 68 65 | 20 62 61 75 64 20 72 61 | **..The| baud ra|
|00002980| 74 65 20 6d 75 73 74 20 | 62 65 20 63 6f 72 72 65 |te must |be corre|
|00002990| 63 74 6c 79 20 73 65 74 | 20 6f 72 20 65 69 74 68 |ctly set| or eith|
|000029a0| 65 72 20 74 79 70 65 61 | 68 65 61 64 20 77 69 6c |er typea|head wil|
|000029b0| 6c 20 6e 6f 74 20 69 6e | 74 65 72 72 75 70 74 20 |l not in|terrupt |
|000029c0| 0a 74 68 65 20 73 63 72 | 65 65 6e 20 75 70 64 61 |.the scr|een upda|
|000029d0| 74 65 20 61 6e 64 20 73 | 63 72 6f 6c 6c 69 6e 67 |te and s|crolling|
|000029e0| 20 77 6f 6e 74 20 62 65 | 20 75 73 65 64 20 6f 72 | wont be| used or|
|000029f0| 20 74 68 65 72 65 20 77 | 69 6c 6c 20 62 65 20 61 | there w|ill be a|
|00002a00| 6e 6e 6f 79 69 6e 67 20 | 0a 64 65 6c 61 79 73 20 |nnoying |.delays |
|00002a10| 69 6e 20 74 68 65 20 73 | 63 72 65 65 6e 20 75 70 |in the s|creen up|
|00002a20| 64 61 74 65 2e 20 20 49 | 66 20 79 6f 75 20 63 61 |date. I|f you ca|
|00002a30| 6e 27 74 20 73 65 74 20 | 74 68 65 20 62 61 75 64 |n't set |the baud|
|00002a40| 20 72 61 74 65 20 63 6f | 72 72 65 63 74 6c 79 20 | rate co|rrectly |
|00002a50| 77 69 74 68 20 0a 27 73 | 74 74 79 27 2c 20 67 69 |with .'s|tty', gi|
|00002a60| 76 65 20 61 20 6e 75 6d | 65 72 69 63 20 76 61 6c |ve a num|eric val|
|00002a70| 75 65 20 69 6e 20 74 68 | 65 20 65 6e 76 69 72 6f |ue in th|e enviro|
|00002a80| 6e 6d 65 6e 74 20 76 61 | 72 69 61 62 6c 65 20 27 |nment va|riable '|
|00002a90| 42 41 55 44 27 2e 20 20 | 0a 0a 54 68 65 20 62 61 |BAUD'. |..The ba|
|00002aa0| 75 64 20 72 61 74 65 20 | 27 33 38 34 30 30 27 20 |ud rate |'38400' |
|00002ab0| 6f 72 20 27 65 78 74 62 | 27 20 6d 65 61 6e 73 20 |or 'extb|' means |
|00002ac0| 69 6e 66 69 6e 69 74 65 | 20 74 6f 20 6a 6f 65 2e |infinite| to joe.|
|00002ad0| 20 20 55 73 65 20 69 74 | 20 66 6f 72 20 58 20 77 | Use it| for X w|
|00002ae0| 69 6e 64 6f 77 73 0a 61 | 6e 64 20 68 61 72 64 77 |indows.a|nd hardw|
|00002af0| 61 72 65 20 63 6f 6e 73 | 6f 6c 65 20 74 74 79 73 |are cons|ole ttys|
|00002b00| 2e 20 20 4e 6f 20 64 65 | 6c 61 79 73 20 77 69 6c |. No de|lays wil|
|00002b10| 6c 20 62 65 20 67 65 6e | 65 72 61 74 65 64 20 61 |l be gen|erated a|
|00002b20| 6e 64 20 73 63 72 6f 6c | 6c 69 6e 67 20 77 69 6c |nd scrol|ling wil|
|00002b30| 6c 0a 6e 6f 74 20 62 65 | 20 75 73 65 64 2e 0a 0a |l.not be| used...|
|00002b40| 55 73 65 20 74 68 65 20 | 4c 49 4e 45 53 20 61 6e |Use the |LINES an|
|00002b50| 64 20 43 4f 4c 55 4d 4e | 53 20 65 6e 76 69 72 6f |d COLUMN|S enviro|
|00002b60| 6e 6d 65 6e 74 20 76 61 | 72 69 61 62 6c 65 73 20 |nment va|riables |
|00002b70| 69 66 20 79 6f 75 20 6e | 65 65 64 20 74 68 65 20 |if you n|eed the |
|00002b80| 74 65 72 6d 69 6e 61 6c | 0a 73 69 7a 65 20 74 6f |terminal|.size to|
|00002b90| 20 62 65 20 64 69 66 66 | 65 72 65 6e 74 20 74 68 | be diff|erent th|
|00002ba0| 61 6e 20 77 68 61 74 65 | 76 65 72 20 74 68 65 20 |an whate|ver the |
|00002bb0| 74 65 72 6d 63 61 70 20 | 65 6e 74 72 79 20 6f 72 |termcap |entry or|
|00002bc0| 20 73 74 74 79 20 73 61 | 79 73 2e 0a 0a 53 69 6e | stty sa|ys...Sin|
|00002bd0| 63 65 20 6d 6f 73 74 20 | 70 65 6f 70 6c 65 20 75 |ce most |people u|
|00002be0| 73 65 20 74 65 72 6d 69 | 6e 61 6c 20 65 6d 75 6c |se termi|nal emul|
|00002bf0| 61 74 6f 72 73 2c 20 4a | 4f 45 20 64 6f 65 73 20 |ators, J|OE does |
|00002c00| 6e 6f 74 20 73 65 6e 64 | 20 6f 75 74 20 70 61 64 |not send| out pad|
|00002c10| 20 0a 63 68 61 72 61 63 | 74 65 72 73 2e 20 20 49 | .charac|ters. I|
|00002c20| 66 20 79 6f 75 27 72 65 | 20 75 73 69 6e 67 20 61 |f you're| using a|
|00002c30| 20 72 65 61 6c 20 74 65 | 72 6d 69 6e 61 6c 20 61 | real te|rminal a|
|00002c40| 6e 64 20 74 68 65 20 70 | 61 64 64 69 6e 67 20 6d |nd the p|adding m|
|00002c50| 61 74 74 65 72 73 2c 20 | 73 65 74 20 0a 74 68 65 |atters, |set .the|
|00002c60| 20 65 6e 76 69 72 6f 6e | 6d 65 6e 74 20 76 61 72 | environ|ment var|
|00002c70| 69 61 62 6c 65 20 44 4f | 50 41 44 44 49 4e 47 2e |iable DO|PADDING.|
|00002c80| 0a 0a 49 66 20 79 6f 75 | 20 77 61 6e 74 20 6a 6f |..If you| want jo|
|00002c90| 65 20 74 6f 20 74 72 79 | 20 74 6f 20 64 69 73 61 |e to try| to disa|
|00002ca0| 62 6c 65 20 5e 53 2f 5e | 51 20 70 72 6f 63 65 73 |ble ^S/^|Q proces|
|00002cb0| 73 69 6e 67 2c 20 73 65 | 74 20 74 68 65 20 65 6e |sing, se|t the en|
|00002cc0| 76 69 72 6f 6e 6d 65 6e | 74 0a 76 61 72 69 61 62 |vironmen|t.variab|
|00002cd0| 6c 65 20 4e 4f 58 4f 4e | 2e 0a 0a 41 20 74 65 72 |le NOXON|...A ter|
|00002ce0| 6d 63 61 70 20 66 69 6c | 65 20 69 73 20 69 6e 63 |mcap fil|e is inc|
|00002cf0| 6c 75 64 65 64 20 77 69 | 74 68 20 4a 4f 45 2e 20 |luded wi|th JOE. |
|00002d00| 20 59 6f 75 20 6d 69 67 | 68 74 20 63 6f 6e 73 69 | You mig|ht consi|
|00002d10| 64 65 72 20 75 70 64 61 | 74 69 6e 67 20 79 6f 75 |der upda|ting you|
|00002d20| 72 20 6f 77 6e 20 0a 74 | 65 72 6d 63 61 70 20 66 |r own .t|ermcap f|
|00002d30| 69 6c 65 20 77 69 74 68 | 20 74 68 65 20 65 6e 74 |ile with| the ent|
|00002d40| 72 69 65 73 20 69 6e 20 | 69 74 2c 20 70 61 72 74 |ries in |it, part|
|00002d50| 69 63 75 6c 61 72 6c 79 | 20 69 66 20 79 6f 75 20 |icularly| if you |
|00002d60| 75 73 65 20 41 4e 53 49 | 2f 56 54 31 30 30 69 73 |use ANSI|/VT100is|
|00002d70| 68 20 0a 74 65 72 6d 69 | 6e 61 6c 73 2e 20 20 4a |h .termi|nals. J|
|00002d80| 4f 45 20 75 6e 64 65 72 | 73 74 61 6e 64 73 20 73 |OE under|stands s|
|00002d90| 6f 6d 65 20 63 61 70 61 | 62 69 6c 69 74 69 65 73 |ome capa|bilities|
|00002da0| 20 77 68 69 63 68 20 61 | 72 65 20 6e 6f 74 20 75 | which a|re not u|
|00002db0| 73 75 61 6c 6c 79 20 73 | 75 70 70 6c 69 65 64 20 |sually s|upplied |
|00002dc0| 0a 69 6e 20 6e 6f 72 6d | 61 6c 20 74 65 72 6d 63 |.in norm|al termc|
|00002dd0| 61 70 20 28 73 65 65 20 | 62 65 6c 6f 77 29 2e 0a |ap (see |below)..|
|00002de0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002df0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e00| 20 20 56 41 52 49 41 54 | 49 4f 4e 53 0a 20 20 20 | VARIAT|IONS. |
|00002e10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3d 2d | | =-|
|00002e30| 3d 2d 3d 2d 3d 2d 3d 2d | 0a 0a 54 65 72 6d 63 61 |=-=-=-=-|..Termca|
|00002e40| 70 2f 54 65 72 6d 69 6e | 66 6f 0a 3d 2d 3d 2d 3d |p/Termin|fo.=-=-=|
|00002e50| 2d 3d 2d 3d 2d 3d 2d 3d | 2d 3d 2d 0a 0a 09 4a 4f |-=-=-=-=|-=-...JO|
|00002e60| 45 20 70 72 65 66 65 72 | 73 20 74 6f 20 75 73 65 |E prefer|s to use|
|00002e70| 20 74 68 65 20 74 65 72 | 6d 63 61 70 20 74 65 72 | the ter|mcap ter|
|00002e80| 6d 69 6e 61 6c 20 63 61 | 70 61 62 69 6c 69 74 79 |minal ca|pability|
|00002e90| 20 64 61 74 61 62 61 73 | 65 2e 20 20 59 6f 75 0a | databas|e. You.|
|00002ea0| 68 61 76 65 20 69 66 20 | 74 68 65 20 66 69 6c 65 |have if |the file|
|00002eb0| 20 27 2f 65 74 63 2f 74 | 65 72 6d 63 61 70 27 20 | '/etc/t|ermcap' |
|00002ec0| 65 78 69 73 74 73 2e 20 | 20 49 66 20 69 74 20 64 |exists. | If it d|
|00002ed0| 6f 65 73 6e 27 74 20 79 | 6f 75 20 63 61 6e 20 75 |oesn't y|ou can u|
|00002ee0| 73 65 20 74 68 65 0a 27 | 74 65 72 6d 63 61 70 27 |se the.'|termcap'|
|00002ef0| 20 66 69 6c 65 20 73 75 | 70 70 6c 69 65 64 20 77 | file su|pplied w|
|00002f00| 69 74 68 20 6a 6f 65 20 | 62 79 20 63 6f 70 79 69 |ith joe |by copyi|
|00002f10| 6e 67 20 69 74 20 74 6f | 20 2f 65 74 63 2e 0a 0a |ng it to| /etc...|
|00002f20| 09 54 65 72 6d 63 61 70 | 20 69 73 20 62 65 74 74 |.Termcap| is bett|
|00002f30| 65 72 20 74 68 61 6e 20 | 74 65 72 6d 69 6e 66 6f |er than |terminfo|
|00002f40| 20 62 65 63 61 75 73 65 | 20 69 74 20 69 73 20 61 | because| it is a|
|00002f50| 20 6d 6f 72 65 20 6f 70 | 65 6e 20 73 74 61 6e 64 | more op|en stand|
|00002f60| 61 72 64 2e 20 0a 50 72 | 6f 67 72 61 6d 73 20 63 |ard. .Pr|ograms c|
|00002f70| 61 6e 20 64 69 72 65 63 | 74 6c 79 20 61 63 63 65 |an direc|tly acce|
|00002f80| 73 73 20 74 68 65 20 74 | 65 72 6d 63 61 70 20 64 |ss the t|ermcap d|
|00002f90| 61 74 61 62 61 73 65 20 | 61 6e 64 20 66 75 74 75 |atabase |and futu|
|00002fa0| 72 65 20 76 65 72 73 69 | 6f 6e 73 20 6f 66 0a 74 |re versi|ons of.t|
|00002fb0| 65 72 6d 69 6e 66 6f 20 | 6d 61 79 20 72 65 71 75 |erminfo |may requ|
|00002fc0| 69 72 65 20 70 72 6f 67 | 72 61 6d 73 20 74 6f 20 |ire prog|rams to |
|00002fd0| 75 73 65 20 63 75 72 73 | 65 73 2e 20 20 54 68 65 |use curs|es. The|
|00002fe0| 20 6f 6e 6c 79 20 61 72 | 67 75 6d 65 6e 74 20 69 | only ar|gument i|
|00002ff0| 6e 0a 74 65 72 6d 69 6e | 66 6f 27 73 20 66 61 76 |n.termin|fo's fav|
|00003000| 6f 75 72 20 69 73 20 74 | 68 61 74 20 69 74 20 69 |our is t|hat it i|
|00003010| 73 20 66 61 73 74 65 72 | 20 74 68 61 6e 20 74 65 |s faster| than te|
|00003020| 72 6d 63 61 70 2e 20 20 | 54 6f 20 66 69 78 20 74 |rmcap. |To fix t|
|00003030| 68 69 73 20 70 72 6f 62 | 6c 65 6d 2c 0a 4a 4f 45 |his prob|lem,.JOE|
|00003040| 20 77 69 6c 6c 20 75 73 | 65 20 61 20 74 65 72 6d | will us|e a term|
|00003050| 63 61 70 20 69 6e 64 65 | 78 20 66 69 6c 65 20 69 |cap inde|x file i|
|00003060| 66 20 69 74 20 65 78 69 | 73 74 73 20 61 6e 64 20 |f it exi|sts and |
|00003070| 69 66 20 69 74 20 69 73 | 20 75 70 20 74 6f 20 64 |if it is| up to d|
|00003080| 61 74 65 2e 0a 0a 09 54 | 68 69 73 20 69 73 20 74 |ate....T|his is t|
|00003090| 68 65 20 70 72 6f 63 65 | 65 64 75 72 65 20 74 6f |he proce|edure to|
|000030a0| 20 6d 61 6b 65 20 74 68 | 65 20 74 65 72 6d 63 61 | make th|e termca|
|000030b0| 70 20 69 6e 64 65 78 20 | 66 69 6c 65 3a 0a 0a 09 |p index |file:...|
|000030c0| 09 6d 61 6b 65 20 74 65 | 72 6d 69 64 78 0a 09 09 |.make te|rmidx...|
|000030d0| 2e 2f 74 65 72 6d 69 64 | 78 20 3c 2f 65 74 63 2f |./termid|x </etc/|
|000030e0| 74 65 72 6d 63 61 70 20 | 3e 2f 65 74 63 2f 74 65 |termcap |>/etc/te|
|000030f0| 72 6d 63 61 70 2e 69 64 | 78 0a 0a 09 54 68 65 20 |rmcap.id|x...The |
|00003100| 2f 65 74 63 2f 74 65 72 | 6d 63 61 70 2e 69 64 78 |/etc/ter|mcap.idx|
|00003110| 20 69 73 20 61 20 74 65 | 78 74 20 66 69 6c 65 20 | is a te|xt file |
|00003120| 77 68 69 63 68 20 79 6f | 75 20 63 61 6e 20 6c 6f |which yo|u can lo|
|00003130| 6f 6b 20 61 74 20 69 66 | 20 79 6f 75 27 72 65 0a |ok at if| you're.|
|00003140| 63 75 72 69 6f 75 73 2e | 0a 0a 09 4a 4f 45 20 73 |curious.|...JOE s|
|00003150| 75 70 70 6f 72 74 73 20 | 74 68 65 20 47 4e 55 20 |upports |the GNU |
|00003160| 65 78 74 65 6e 73 69 6f | 6e 73 20 74 6f 20 74 68 |extensio|ns to th|
|00003170| 65 20 74 65 72 6d 63 61 | 70 20 6c 61 6e 67 75 61 |e termca|p langua|
|00003180| 67 65 20 61 6e 64 20 61 | 6c 73 6f 0a 75 6e 64 65 |ge and a|lso.unde|
|00003190| 72 73 74 61 6e 64 73 20 | 73 65 76 65 72 61 6c 20 |rstands |several |
|000031a0| 6e 65 77 20 63 61 70 61 | 62 69 6c 69 74 69 65 73 |new capa|bilities|
|000031b0| 3a 0a 0a 09 09 41 4c 20 | 44 4c 20 49 43 20 44 43 |:....AL |DL IC DC|
|000031c0| 20 52 49 20 4c 45 20 55 | 50 20 44 4f 20 53 46 20 | RI LE U|P DO SF |
|000031d0| 53 52 0a 0a 09 09 09 56 | 65 72 73 69 6f 6e 73 20 |SR.....V|ersions |
|000031e0| 6f 66 20 74 68 65 20 73 | 74 61 6e 64 61 72 64 20 |of the s|tandard |
|000031f0| 63 61 70 61 62 69 6c 69 | 74 69 65 73 20 77 68 69 |capabili|ties whi|
|00003200| 63 68 20 61 63 63 65 70 | 74 0a 09 09 09 61 6e 20 |ch accep|t....an |
|00003210| 61 72 67 75 6d 65 6e 74 | 2e 20 20 46 6f 72 20 65 |argument|. For e|
|00003220| 78 61 6d 70 6c 65 2c 20 | 52 49 20 77 69 74 68 20 |xample, |RI with |
|00003230| 61 6e 64 20 61 72 67 75 | 6d 65 6e 74 20 6f 66 0a |and argu|ment of.|
|00003240| 09 09 09 37 20 73 68 6f | 75 6c 64 20 6d 6f 76 65 |...7 sho|uld move|
|00003250| 20 74 68 65 20 63 75 72 | 73 6f 72 20 37 20 70 6f | the cur|sor 7 po|
|00003260| 73 69 74 69 6f 6e 73 20 | 74 6f 20 74 68 65 20 72 |sitions |to the r|
|00003270| 69 67 68 74 2e 0a 0a 09 | 09 72 72 0a 0a 09 09 09 |ight....|.rr.....|
|00003280| 53 65 74 20 74 68 69 73 | 20 66 6c 61 67 20 69 66 |Set this| flag if|
|00003290| 20 74 68 65 20 63 75 72 | 73 6f 72 20 69 73 20 72 | the cur|sor is r|
|000032a0| 65 73 74 72 69 63 74 65 | 64 20 74 6f 20 6d 6f 76 |estricte|d to mov|
|000032b0| 65 0a 09 09 09 6f 6e 6c | 79 20 77 69 74 68 69 6e |e....onl|y within|
|000032c0| 20 74 68 65 20 73 63 72 | 6f 6c 6c 69 6e 67 20 72 | the scr|olling r|
|000032d0| 65 67 69 6f 6e 73 2e 20 | 20 54 68 69 73 20 69 73 |egions. | This is|
|000032e0| 20 61 6e 20 6f 70 74 69 | 6f 6e 61 6c 0a 09 09 09 | an opti|onal....|
|000032f0| 6d 6f 64 65 20 6f 6e 20 | 76 74 32 32 30 73 20 61 |mode on |vt220s a|
|00003300| 6e 64 20 73 65 76 65 72 | 61 6c 20 63 6c 6f 6e 65 |nd sever|al clone|
|00003310| 73 20 61 73 73 75 6d 65 | 20 74 68 61 74 20 74 68 |s assume| that th|
|00003320| 69 73 0a 09 09 09 6d 6f | 64 65 20 69 73 20 61 6c |is....mo|de is al|
|00003330| 77 61 79 73 20 6f 6e 2e | 0a 0a 09 09 63 62 0a 0a |ways on.|....cb..|
|00003340| 09 09 09 4c 69 6b 65 20 | 74 68 65 20 27 63 76 27 |...Like |the 'cv'|
|00003350| 20 63 61 70 61 62 69 6c | 69 74 79 2c 20 62 75 74 | capabil|ity, but|
|00003360| 20 74 68 65 20 63 75 72 | 73 6f 72 20 67 6f 65 73 | the cur|sor goes|
|00003370| 20 74 6f 20 74 68 65 0a | 09 09 09 62 65 67 69 6e | to the.|...begin|
|00003380| 6e 69 6e 67 20 6f 66 20 | 74 68 65 20 73 70 65 63 |ning of |the spec|
|00003390| 69 66 69 65 64 20 6c 69 | 6e 65 2e 20 20 4c 69 6b |ified li|ne. Lik|
|000033a0| 65 20 27 45 53 43 20 5b | 20 6e 20 48 27 20 69 6e |e 'ESC [| n H' in|
|000033b0| 0a 09 09 09 61 6e 73 69 | 2f 76 74 31 30 30 2e 0a |....ansi|/vt100..|
|000033c0| 0a 09 42 75 74 20 69 66 | 20 79 6f 75 20 72 65 61 |..But if| you rea|
|000033d0| 6c 6c 79 20 6d 75 73 74 | 20 75 73 65 20 74 68 65 |lly must| use the|
|000033e0| 20 74 65 72 6d 69 6e 66 | 6f 20 64 61 74 61 62 61 | terminf|o databa|
|000033f0| 73 65 2c 20 63 68 61 6e | 67 65 20 74 68 65 20 0a |se, chan|ge the .|
|00003400| 27 74 65 72 6d 63 61 70 | 2e 6f 27 20 66 69 6c 65 |'termcap|.o' file|
|00003410| 20 69 6e 20 74 68 65 20 | 4f 42 4a 53 20 6c 69 73 | in the |OBJS lis|
|00003420| 74 20 69 6e 20 74 68 65 | 20 6d 61 6b 65 66 69 6c |t in the| makefil|
|00003430| 65 20 74 6f 20 27 74 65 | 72 6d 69 6e 66 6f 2e 6f |e to 'te|rminfo.o|
|00003440| 27 2e 20 20 59 6f 75 27 | 6c 6c 20 0a 61 6c 73 6f |'. You'|ll .also|
|00003450| 20 68 61 76 65 20 74 6f | 20 61 64 64 20 27 2d 6c | have to| add '-l|
|00003460| 74 69 6e 66 6f 27 2c 20 | 27 2d 6c 74 65 72 6d 6c |tinfo', |'-lterml|
|00003470| 69 62 27 20 6f 72 20 27 | 2d 6c 63 75 72 73 65 73 |ib' or '|-lcurses|
|00003480| 27 20 74 6f 20 74 68 65 | 20 61 70 70 72 6f 70 72 |' to the| appropr|
|00003490| 69 61 74 65 20 0a 6c 69 | 6e 6b 20 6c 69 6e 65 20 |iate .li|nk line |
|000034a0| 28 6c 69 6e 65 73 20 62 | 65 67 69 6e 6e 69 6e 67 |(lines b|eginning|
|000034b0| 20 77 69 74 68 20 24 28 | 43 43 29 29 20 69 6e 20 | with $(|CC)) in |
|000034c0| 74 68 65 20 6d 61 6b 65 | 20 66 69 6c 65 2e 20 20 |the make| file. |
|000034d0| 0a 0a 56 4f 49 44 20 74 | 72 6f 75 62 6c 65 0a 3d |..VOID t|rouble.=|
|000034e0| 2d 3d 2d 3d 2d 3d 2d 3d | 2d 3d 2d 0a 0a 09 49 66 |-=-=-=-=|-=-...If|
|000034f0| 20 79 6f 75 27 72 65 20 | 75 73 69 6e 67 20 61 6e | you're |using an|
|00003500| 20 6f 6c 64 20 43 20 63 | 6f 6d 70 69 6c 65 72 20 | old C c|ompiler |
|00003510| 77 68 69 63 68 20 64 6f | 65 73 6e 27 74 20 6c 69 |which do|esn't li|
|00003520| 6b 65 20 74 68 65 20 27 | 76 6f 69 64 27 0a 74 79 |ke the '|void'.ty|
|00003530| 70 65 2c 20 75 6e 63 6f | 6d 6d 65 6e 74 20 74 68 |pe, unco|mment th|
|00003540| 65 20 27 23 64 65 66 69 | 6e 65 20 76 6f 69 64 20 |e '#defi|ne void |
|00003550| 69 6e 74 27 20 6c 69 6e | 65 20 66 72 6f 6d 20 74 |int' lin|e from t|
|00003560| 68 65 20 63 6f 6e 66 69 | 67 2e 68 20 66 69 6c 65 |he confi|g.h file|
|00003570| 2e 0a 0a 4e 6f 20 64 69 | 72 6f 70 65 6e 20 6c 69 |...No di|ropen li|
|00003580| 62 72 61 72 79 0a 3d 2d | 3d 2d 3d 2d 3d 2d 3d 2d |brary.=-|=-=-=-=-|
|00003590| 3d 2d 3d 2d 3d 2d 3d 2d | 0a 0a 09 41 64 64 20 27 |=-=-=-=-|...Add '|
|000035a0| 6f 6c 64 64 69 72 2e 6f | 27 20 74 6f 20 74 68 65 |olddir.o|' to the|
|000035b0| 20 6f 62 6a 65 63 74 20 | 66 69 6c 65 20 6c 69 73 | object |file lis|
|000035c0| 74 20 69 6e 20 74 68 65 | 20 6d 61 6b 65 66 69 6c |t in the| makefil|
|000035d0| 65 2e 0a 0a 31 36 2d 62 | 69 74 20 73 79 73 74 65 |e...16-b|it syste|
|000035e0| 6d 73 20 2f 20 4d 53 2d | 44 4f 53 20 73 79 73 74 |ms / MS-|DOS syst|
|000035f0| 65 6d 73 0a 3d 2d 3d 2d | 3d 2d 3d 2d 3d 2d 3d 2d |ems.=-=-|=-=-=-=-|
|00003600| 3d 2d 3d 2d 3d 2d 3d 2d | 3d 2d 3d 2d 3d 2d 3d 2d |=-=-=-=-|=-=-=-=-|
|00003610| 3d 2d 3d 0a 0a 09 54 68 | 65 20 31 36 2d 62 69 74 |=-=...Th|e 16-bit|
|00003620| 20 73 65 67 6d 65 6e 74 | 65 64 20 73 79 73 74 65 | segment|ed syste|
|00003630| 6d 20 73 75 70 70 6f 72 | 74 20 69 73 20 6e 6f 74 |m suppor|t is not|
|00003640| 20 71 75 69 74 65 20 66 | 69 6e 69 73 68 65 64 20 | quite f|inished |
|00003650| 79 65 74 2e 20 20 49 66 | 0a 79 6f 75 20 72 65 61 |yet. If|.you rea|
|00003660| 6c 6c 79 20 77 61 6e 74 | 20 74 6f 20 74 72 79 2c |lly want| to try,|
|00003670| 20 63 6f 70 79 20 27 63 | 6f 6e 66 69 67 38 36 2e | copy 'c|onfig86.|
|00003680| 68 27 20 74 6f 20 63 6f | 6e 66 69 67 2e 68 20 61 |h' to co|nfig.h a|
|00003690| 6e 64 20 74 72 79 20 63 | 6f 6d 70 69 6c 69 6e 67 |nd try c|ompiling|
|000036a0| 20 77 69 74 68 0a 74 74 | 79 6d 73 64 6f 73 2e 68 | with.tt|ymsdos.h|
|000036b0| 20 6f 72 20 74 74 79 78 | 65 6e 69 78 2e 68 20 66 | or ttyx|enix.h f|
|000036c0| 6f 72 20 58 65 6e 69 78 | 20 38 36 2f 32 38 36 20 |or Xenix| 86/286 |
|000036d0| 73 79 73 74 65 6d 73 2e | 20 20 55 73 65 20 6c 61 |systems.| Use la|
|000036e0| 72 67 65 20 6d 6f 64 65 | 6c 2e 0a 0a 09 49 20 73 |rge mode|l....I s|
|000036f0| 74 69 6c 6c 20 68 61 76 | 65 20 74 6f 20 6d 61 6b |till hav|e to mak|
|00003700| 65 20 74 68 65 20 55 4e | 44 4f 20 73 79 73 74 65 |e the UN|DO syste|
|00003710| 6d 20 75 73 65 20 65 64 | 69 74 20 62 75 66 66 65 |m use ed|it buffe|
|00003720| 72 73 20 28 77 68 69 63 | 68 20 75 73 65 20 61 0a |rs (whic|h use a.|
|00003730| 6c 69 6e 6b 65 64 20 6c | 69 73 74 20 6f 66 20 73 |linked l|ist of s|
|00003740| 6d 61 6c 6c 20 62 6c 6f | 63 6b 73 29 20 69 6e 73 |mall blo|cks) ins|
|00003750| 74 65 61 64 20 6f 66 20 | 6c 61 72 67 65 20 6d 61 |tead of |large ma|
|00003760| 6c 6c 6f 63 20 62 6c 6f | 63 6b 73 20 74 6f 20 73 |lloc blo|cks to s|
|00003770| 74 6f 72 65 20 74 68 65 | 0a 72 65 63 6f 72 64 73 |tore the|.records|
|00003780| 2e 20 20 0a 0a 09 41 6c | 73 6f 20 66 6f 72 20 4d |. ...Al|so for M|
|00003790| 53 2d 44 4f 53 20 79 6f | 75 20 68 61 76 65 20 74 |S-DOS yo|u have t|
|000037a0| 6f 20 67 6f 20 74 68 72 | 6f 75 67 68 20 61 6e 73 |o go thr|ough ans|
|000037b0| 69 2f 6e 61 6e 73 69 2f | 7a 61 6e 73 69 2e 73 79 |i/nansi/|zansi.sy|
|000037c0| 73 2e 20 20 54 68 65 72 | 65 0a 61 6c 73 6f 20 6e |s. Ther|e.also n|
|000037d0| 65 65 64 73 20 74 6f 20 | 62 65 20 61 6e 20 5c 65 |eeds to |be an \e|
|000037e0| 74 63 5c 74 65 72 6d 63 | 61 70 20 66 69 6c 65 20 |tc\termc|ap file |
|000037f0| 61 6e 64 20 61 20 5c 74 | 6d 70 20 64 69 72 65 63 |and a \t|mp direc|
|00003800| 74 6f 72 79 2e 20 20 53 | 6f 6f 6e 20 49 27 6c 6c |tory. S|oon I'll|
|00003810| 20 6d 61 6b 65 0a 61 20 | 64 69 72 65 63 74 20 73 | make.a |direct s|
|00003820| 63 72 65 65 6e 20 61 63 | 63 65 73 73 20 76 65 72 |creen ac|cess ver|
|00003830| 73 69 6f 6e 2e 20 20 41 | 6c 73 6f 20 74 68 65 72 |sion. A|lso ther|
|00003840| 65 27 73 20 61 20 27 6d | 73 64 69 72 2e 63 27 20 |e's a 'm|sdir.c' |
|00003850| 6d 6f 64 75 6c 65 20 66 | 6f 72 20 6d 61 6b 69 6e |module f|or makin|
|00003860| 67 0a 74 68 65 20 74 75 | 72 62 6f 2d 43 20 64 69 |g.the tu|rbo-C di|
|00003870| 72 65 63 74 6f 72 79 20 | 61 63 63 65 73 73 20 66 |rectory |access f|
|00003880| 75 6e 63 74 69 6f 6e 73 | 20 6c 6f 6f 6b 20 6c 69 |unctions| look li|
|00003890| 6b 65 20 75 6e 69 78 20 | 6f 70 65 6e 64 69 72 20 |ke unix |opendir |
|000038a0| 66 75 6e 63 74 69 6f 6e | 73 2e 20 0a 59 6f 75 27 |function|s. .You'|
|000038b0| 6c 6c 20 70 72 6f 62 61 | 62 6c 79 20 68 61 76 65 |ll proba|bly have|
|000038c0| 20 74 6f 20 6d 61 6b 65 | 20 65 76 65 6e 20 6d 6f | to make| even mo|
|000038d0| 72 65 20 63 68 61 6e 67 | 65 73 20 28 6c 69 6b 65 |re chang|es (like|
|000038e0| 20 6e 6f 20 70 61 73 73 | 77 6f 72 64 20 66 69 6c | no pass|word fil|
|000038f0| 65 0a 73 75 70 70 6f 72 | 74 29 20 74 6f 20 67 65 |e.suppor|t) to ge|
|00003900| 74 20 69 74 20 74 6f 20 | 77 6f 72 6b 2e 0a 0a 09 |t it to |work....|
|00003910| 49 66 20 73 6f 6d 65 6f | 6e 65 20 73 65 6e 64 73 |If someo|ne sends|
|00003920| 20 6d 65 20 69 6e 66 6f | 72 6d 61 74 69 6f 6e 20 | me info|rmation |
|00003930| 61 62 6f 75 74 20 74 74 | 79 20 64 72 69 76 65 72 |about tt|y driver|
|00003940| 73 20 6f 6e 20 51 4e 58 | 20 6f 72 0a 63 6f 68 65 |s on QNX| or.cohe|
|00003950| 72 65 6e 74 2c 20 49 27 | 6c 6c 20 62 65 20 68 61 |rent, I'|ll be ha|
|00003960| 70 70 79 20 74 6f 20 74 | 72 79 20 74 6f 20 6d 61 |ppy to t|ry to ma|
|00003970| 6b 65 20 4a 4f 45 20 77 | 6f 72 6b 20 66 6f 72 20 |ke JOE w|ork for |
|00003980| 74 68 65 6d 20 28 61 6c | 73 6f 2c 20 64 6f 20 74 |them (al|so, do t|
|00003990| 68 65 79 0a 73 75 70 70 | 6f 72 74 20 6c 61 72 67 |hey.supp|ort larg|
|000039a0| 65 20 6d 6f 64 65 6c 3f | 29 0a 00 00 00 00 00 00 |e model?|).......|
|000039b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000039c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000039d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000039e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000039f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003a00| 6a 6f 65 2f 62 2e 63 00 | 00 00 00 00 00 00 00 00 |joe/b.c.|........|
|00003a10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003a20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003a30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003a50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003a60| 00 00 00 00 31 30 30 36 | 30 30 20 00 20 20 36 30 |....1006|00 . 60|
|00003a70| 31 31 20 00 20 20 36 30 | 31 31 20 00 20 20 20 20 |11 . 60|11 . |
|00003a80| 20 20 35 36 32 37 34 20 | 20 35 36 31 31 35 36 37 | 56274 | 5611567|
|00003a90| 36 30 32 20 20 20 36 37 | 30 35 00 20 30 00 00 00 |602 67|05. 0...|
|00003aa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ab0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ac0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ad0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ae0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003af0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b00| 00 75 73 74 61 72 20 20 | 00 00 00 00 00 00 00 00 |.ustar |........|
|00003b10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003b90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ba0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003bb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003bc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003bd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003be0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003bf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003c00| 2f 2a 20 42 75 66 66 65 | 72 20 6d 61 6e 61 67 65 |/* Buffe|r manage|
|00003c10| 6d 65 6e 74 0a 20 20 20 | 43 6f 70 79 72 69 67 68 |ment. |Copyrigh|
|00003c20| 74 20 28 43 29 20 31 39 | 39 32 20 4a 6f 73 65 70 |t (C) 19|92 Josep|
|00003c30| 68 20 48 2e 20 41 6c 6c | 65 6e 0a 0a 54 68 69 73 |h H. All|en..This|
|00003c40| 20 66 69 6c 65 20 69 73 | 20 70 61 72 74 20 6f 66 | file is| part of|
|00003c50| 20 4a 4f 45 20 28 4a 6f | 65 27 73 20 4f 77 6e 20 | JOE (Jo|e's Own |
|00003c60| 45 64 69 74 6f 72 29 0a | 0a 4a 4f 45 20 69 73 20 |Editor).|.JOE is |
|00003c70| 66 72 65 65 20 73 6f 66 | 74 77 61 72 65 3b 20 79 |free sof|tware; y|
|00003c80| 6f 75 20 63 61 6e 20 72 | 65 64 69 73 74 72 69 62 |ou can r|edistrib|
|00003c90| 75 74 65 20 69 74 20 61 | 6e 64 2f 6f 72 20 6d 6f |ute it a|nd/or mo|
|00003ca0| 64 69 66 79 20 69 74 20 | 75 6e 64 65 72 20 74 68 |dify it |under th|
|00003cb0| 65 20 0a 74 65 72 6d 73 | 20 6f 66 20 74 68 65 20 |e .terms| of the |
|00003cc0| 47 4e 55 20 47 65 6e 65 | 72 61 6c 20 50 75 62 6c |GNU Gene|ral Publ|
|00003cd0| 69 63 20 4c 69 63 65 6e | 73 65 20 61 73 20 70 75 |ic Licen|se as pu|
|00003ce0| 62 6c 69 73 68 65 64 20 | 62 79 20 74 68 65 20 46 |blished |by the F|
|00003cf0| 72 65 65 20 53 6f 66 74 | 77 61 72 65 20 0a 46 6f |ree Soft|ware .Fo|
|00003d00| 75 6e 64 61 74 69 6f 6e | 3b 20 65 69 74 68 65 72 |undation|; either|
|00003d10| 20 76 65 72 73 69 6f 6e | 20 31 2c 20 6f 72 20 28 | version| 1, or (|
|00003d20| 61 74 20 79 6f 75 72 20 | 6f 70 74 69 6f 6e 29 20 |at your |option) |
|00003d30| 61 6e 79 20 6c 61 74 65 | 72 20 76 65 72 73 69 6f |any late|r versio|
|00003d40| 6e 2e 20 20 0a 0a 4a 4f | 45 20 69 73 20 64 69 73 |n. ..JO|E is dis|
|00003d50| 74 72 69 62 75 74 65 64 | 20 69 6e 20 74 68 65 20 |tributed| in the |
|00003d60| 68 6f 70 65 20 74 68 61 | 74 20 69 74 20 77 69 6c |hope tha|t it wil|
|00003d70| 6c 20 62 65 20 75 73 65 | 66 75 6c 2c 20 62 75 74 |l be use|ful, but|
|00003d80| 20 57 49 54 48 4f 55 54 | 20 41 4e 59 20 0a 57 41 | WITHOUT| ANY .WA|
|00003d90| 52 52 41 4e 54 59 3b 20 | 77 69 74 68 6f 75 74 20 |RRANTY; |without |
|00003da0| 65 76 65 6e 20 74 68 65 | 20 69 6d 70 6c 69 65 64 |even the| implied|
|00003db0| 20 77 61 72 72 61 6e 74 | 79 20 6f 66 20 4d 45 52 | warrant|y of MER|
|00003dc0| 43 48 41 4e 54 41 42 49 | 4c 49 54 59 20 6f 72 20 |CHANTABI|LITY or |
|00003dd0| 46 49 54 4e 45 53 53 20 | 0a 46 4f 52 20 41 20 50 |FITNESS |.FOR A P|
|00003de0| 41 52 54 49 43 55 4c 41 | 52 20 50 55 52 50 4f 53 |ARTICULA|R PURPOS|
|00003df0| 45 2e 20 20 53 65 65 20 | 74 68 65 20 47 4e 55 20 |E. See |the GNU |
|00003e00| 47 65 6e 65 72 61 6c 20 | 50 75 62 6c 69 63 20 4c |General |Public L|
|00003e10| 69 63 65 6e 73 65 20 66 | 6f 72 20 6d 6f 72 65 20 |icense f|or more |
|00003e20| 0a 64 65 74 61 69 6c 73 | 2e 20 20 0a 0a 59 6f 75 |.details|. ..You|
|00003e30| 20 73 68 6f 75 6c 64 20 | 68 61 76 65 20 72 65 63 | should |have rec|
|00003e40| 65 69 76 65 64 20 61 20 | 63 6f 70 79 20 6f 66 20 |eived a |copy of |
|00003e50| 74 68 65 20 47 4e 55 20 | 47 65 6e 65 72 61 6c 20 |the GNU |General |
|00003e60| 50 75 62 6c 69 63 20 4c | 69 63 65 6e 73 65 20 61 |Public L|icense a|
|00003e70| 6c 6f 6e 67 20 77 69 74 | 68 20 0a 4a 4f 45 3b 20 |long wit|h .JOE; |
|00003e80| 73 65 65 20 74 68 65 20 | 66 69 6c 65 20 43 4f 50 |see the |file COP|
|00003e90| 59 49 4e 47 2e 20 20 49 | 66 20 6e 6f 74 2c 20 77 |YING. I|f not, w|
|00003ea0| 72 69 74 65 20 74 6f 20 | 74 68 65 20 46 72 65 65 |rite to |the Free|
|00003eb0| 20 53 6f 66 74 77 61 72 | 65 20 46 6f 75 6e 64 61 | Softwar|e Founda|
|00003ec0| 74 69 6f 6e 2c 20 0a 36 | 37 35 20 4d 61 73 73 20 |tion, .6|75 Mass |
|00003ed0| 41 76 65 2c 20 43 61 6d | 62 72 69 64 67 65 2c 20 |Ave, Cam|bridge, |
|00003ee0| 4d 41 20 30 32 31 33 39 | 2c 20 55 53 41 2e 20 20 |MA 02139|, USA. |
|00003ef0| 2a 2f 20 0a 0a 23 69 6e | 63 6c 75 64 65 20 3c 73 |*/ ..#in|clude <s|
|00003f00| 74 64 69 6f 2e 68 3e 0a | 23 69 6e 63 6c 75 64 65 |tdio.h>.|#include|
|00003f10| 20 3c 70 77 64 2e 68 3e | 0a 23 69 6e 63 6c 75 64 | <pwd.h>|.#includ|
|00003f20| 65 20 3c 65 72 72 6e 6f | 2e 68 3e 0a 23 69 6e 63 |e <errno|.h>.#inc|
|00003f30| 6c 75 64 65 20 22 63 6f | 6e 66 69 67 2e 68 22 0a |lude "co|nfig.h".|
|00003f40| 23 69 6e 63 6c 75 64 65 | 20 22 68 65 61 70 2e 68 |#include| "heap.h|
|00003f50| 22 0a 23 69 6e 63 6c 75 | 64 65 20 22 62 6c 6f 63 |".#inclu|de "bloc|
|00003f60| 6b 73 2e 68 22 0a 23 69 | 6e 63 6c 75 64 65 20 22 |ks.h".#i|nclude "|
|00003f70| 77 2e 68 22 0a 23 69 6e | 63 6c 75 64 65 20 22 74 |w.h".#in|clude "t|
|00003f80| 74 79 2e 68 22 0a 23 69 | 6e 63 6c 75 64 65 20 22 |ty.h".#i|nclude "|
|00003f90| 73 63 72 6e 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |scrn.h".|#include|
|00003fa0| 20 22 75 6e 64 6f 2e 68 | 22 0a 23 69 6e 63 6c 75 | "undo.h|".#inclu|
|00003fb0| 64 65 20 22 76 73 2e 68 | 22 0a 23 69 6e 63 6c 75 |de "vs.h|".#inclu|
|00003fc0| 64 65 20 22 7a 73 74 72 | 2e 68 22 0a 23 69 6e 63 |de "zstr|.h".#inc|
|00003fd0| 6c 75 64 65 20 22 6d 61 | 69 6e 2e 68 22 0a 23 69 |lude "ma|in.h".#i|
|00003fe0| 6e 63 6c 75 64 65 20 22 | 62 77 2e 68 22 0a 23 69 |nclude "|bw.h".#i|
|00003ff0| 6e 63 6c 75 64 65 20 22 | 6d 73 67 73 2e 68 22 0a |nclude "|msgs.h".|
|00004000| 23 69 6e 63 6c 75 64 65 | 20 22 62 2e 68 22 0a 0a |#include| "b.h"..|
|00004010| 65 78 74 65 72 6e 20 69 | 6e 74 20 65 72 72 6e 6f |extern i|nt errno|
|00004020| 3b 0a 69 6e 74 20 66 6f | 72 63 65 3d 30 3b 0a 0a |;.int fo|rce=0;..|
|00004030| 63 68 61 72 20 62 75 66 | 66 65 72 5b 31 30 32 34 |char buf|fer[1024|
|00004040| 5d 3b 0a 0a 2f 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |];../***|********|
|00004050| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2f 0a 2f 2a 20 42 75 |********|*/./* Bu|
|00004060| 66 66 65 72 20 47 41 50 | 20 73 74 75 66 66 20 2a |ffer GAP| stuff *|
|00004070| 2f 0a 2f 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/./*****|********|
|00004080| 2a 2a 2a 2a 2a 2a 2a 2f | 0a 0a 2f 2a 20 47 65 74 |*******/|../* Get|
|00004090| 20 73 69 7a 65 20 6f 66 | 20 67 61 70 20 28 61 6d | size of| gap (am|
|000040a0| 6f 75 6e 74 20 6f 66 20 | 66 72 65 65 20 73 70 61 |ount of |free spa|
|000040b0| 63 65 29 20 2a 2f 0a 0a | 23 64 65 66 69 6e 65 20 |ce) */..|#define |
|000040c0| 47 47 41 50 53 5a 28 68 | 64 72 29 20 28 28 68 64 |GGAPSZ(h|dr) ((hd|
|000040d0| 72 29 2d 3e 65 68 6f 6c | 65 2d 28 68 64 72 29 2d |r)->ehol|e-(hdr)-|
|000040e0| 3e 68 6f 6c 65 29 0a 0a | 2f 2a 20 47 65 74 20 6e |>hole)..|/* Get n|
|000040f0| 75 6d 62 65 72 20 6f 66 | 20 63 68 61 72 61 63 74 |umber of| charact|
|00004100| 65 72 73 20 69 6e 20 67 | 61 70 20 62 75 66 66 65 |ers in g|ap buffe|
|00004110| 72 20 2a 2f 0a 0a 23 64 | 65 66 69 6e 65 20 47 53 |r */..#d|efine GS|
|00004120| 49 5a 45 28 68 64 72 29 | 20 28 53 45 47 53 49 5a |IZE(hdr)| (SEGSIZ|
|00004130| 2d 47 47 41 50 53 5a 28 | 68 64 72 29 29 0a 0a 2f |-GGAPSZ(|hdr))../|
|00004140| 2a 20 53 65 74 20 70 6f | 73 69 74 69 6f 6e 20 6f |* Set po|sition o|
|00004150| 66 20 67 61 70 20 2a 2f | 0a 0a 73 74 61 74 69 63 |f gap */|..static|
|00004160| 20 76 6f 69 64 20 67 73 | 74 67 61 70 28 68 64 72 | void gs|tgap(hdr|
|00004170| 2c 70 74 72 2c 6f 66 73 | 74 29 0a 48 20 2a 68 64 |,ptr,ofs|t).H *hd|
|00004180| 72 3b 0a 63 68 61 72 20 | 2a 70 74 72 3b 0a 69 6e |r;.char |*ptr;.in|
|00004190| 74 20 6f 66 73 74 3b 0a | 7b 0a 69 66 28 6f 66 73 |t ofst;.|{.if(ofs|
|000041a0| 74 3e 68 64 72 2d 3e 68 | 6f 6c 65 29 0a 20 6d 66 |t>hdr->h|ole). mf|
|000041b0| 77 72 64 28 70 74 72 2b | 68 64 72 2d 3e 68 6f 6c |wrd(ptr+|hdr->hol|
|000041c0| 65 2c 70 74 72 2b 68 64 | 72 2d 3e 65 68 6f 6c 65 |e,ptr+hd|r->ehole|
|000041d0| 2c 6f 66 73 74 2d 68 64 | 72 2d 3e 68 6f 6c 65 29 |,ofst-hd|r->hole)|
|000041e0| 2c 20 76 63 68 61 6e 67 | 65 64 28 70 74 72 29 3b |, vchang|ed(ptr);|
|000041f0| 0a 65 6c 73 65 20 69 66 | 28 6f 66 73 74 3c 68 64 |.else if|(ofst<hd|
|00004200| 72 2d 3e 68 6f 6c 65 29 | 0a 20 6d 62 6b 77 64 28 |r->hole)|. mbkwd(|
|00004210| 70 74 72 2b 68 64 72 2d | 3e 65 68 6f 6c 65 2d 28 |ptr+hdr-|>ehole-(|
|00004220| 68 64 72 2d 3e 68 6f 6c | 65 2d 6f 66 73 74 29 2c |hdr->hol|e-ofst),|
|00004230| 70 74 72 2b 6f 66 73 74 | 2c 68 64 72 2d 3e 68 6f |ptr+ofst|,hdr->ho|
|00004240| 6c 65 2d 6f 66 73 74 29 | 2c 20 76 63 68 61 6e 67 |le-ofst)|, vchang|
|00004250| 65 64 28 70 74 72 29 3b | 0a 68 64 72 2d 3e 65 68 |ed(ptr);|.hdr->eh|
|00004260| 6f 6c 65 3d 6f 66 73 74 | 2b 68 64 72 2d 3e 65 68 |ole=ofst|+hdr->eh|
|00004270| 6f 6c 65 2d 68 64 72 2d | 3e 68 6f 6c 65 3b 0a 68 |ole-hdr-|>hole;.h|
|00004280| 64 72 2d 3e 68 6f 6c 65 | 3d 6f 66 73 74 3b 0a 7d |dr->hole|=ofst;.}|
|00004290| 0a 0a 2f 2a 20 49 6e 73 | 65 72 74 20 61 20 62 6c |../* Ins|ert a bl|
|000042a0| 6f 63 6b 20 2a 2f 0a 0a | 73 74 61 74 69 63 20 76 |ock */..|static v|
|000042b0| 6f 69 64 20 67 69 6e 73 | 6d 28 68 64 72 2c 70 74 |oid gins|m(hdr,pt|
|000042c0| 72 2c 6f 66 73 74 2c 62 | 6c 6b 2c 73 69 7a 65 29 |r,ofst,b|lk,size)|
|000042d0| 0a 48 20 2a 68 64 72 3b | 0a 63 68 61 72 20 2a 70 |.H *hdr;|.char *p|
|000042e0| 74 72 3b 0a 69 6e 74 20 | 6f 66 73 74 3b 0a 63 68 |tr;.int |ofst;.ch|
|000042f0| 61 72 20 2a 62 6c 6b 3b | 0a 69 6e 74 20 73 69 7a |ar *blk;|.int siz|
|00004300| 65 3b 0a 7b 0a 69 66 28 | 6f 66 73 74 21 3d 68 64 |e;.{.if(|ofst!=hd|
|00004310| 72 2d 3e 68 6f 6c 65 29 | 20 67 73 74 67 61 70 28 |r->hole)| gstgap(|
|00004320| 68 64 72 2c 70 74 72 2c | 6f 66 73 74 29 3b 0a 6d |hdr,ptr,|ofst);.m|
|00004330| 63 70 79 28 70 74 72 2b | 68 64 72 2d 3e 68 6f 6c |cpy(ptr+|hdr->hol|
|00004340| 65 2c 62 6c 6b 2c 73 69 | 7a 65 29 3b 0a 68 64 72 |e,blk,si|ze);.hdr|
|00004350| 2d 3e 68 6f 6c 65 2b 3d | 73 69 7a 65 3b 0a 76 63 |->hole+=|size;.vc|
|00004360| 68 61 6e 67 65 64 28 70 | 74 72 29 3b 0a 7d 0a 0a |hanged(p|tr);.}..|
|00004370| 2f 2a 20 44 65 6c 65 74 | 65 20 63 68 61 72 61 63 |/* Delet|e charac|
|00004380| 74 65 72 73 20 2a 2f 0a | 0a 73 74 61 74 69 63 20 |ters */.|.static |
|00004390| 76 6f 69 64 20 67 64 65 | 6c 28 68 64 72 2c 70 74 |void gde|l(hdr,pt|
|000043a0| 72 2c 6f 66 73 74 2c 73 | 69 7a 65 29 0a 48 20 2a |r,ofst,s|ize).H *|
|000043b0| 68 64 72 3b 0a 63 68 61 | 72 20 2a 70 74 72 3b 0a |hdr;.cha|r *ptr;.|
|000043c0| 69 6e 74 20 6f 66 73 74 | 3b 0a 69 6e 74 20 73 69 |int ofst|;.int si|
|000043d0| 7a 65 3b 0a 7b 0a 69 66 | 28 6f 66 73 74 21 3d 68 |ze;.{.if|(ofst!=h|
|000043e0| 64 72 2d 3e 68 6f 6c 65 | 29 20 67 73 74 67 61 70 |dr->hole|) gstgap|
|000043f0| 28 68 64 72 2c 70 74 72 | 2c 6f 66 73 74 29 3b 0a |(hdr,ptr|,ofst);.|
|00004400| 68 64 72 2d 3e 65 68 6f | 6c 65 2b 3d 73 69 7a 65 |hdr->eho|le+=size|
|00004410| 3b 0a 7d 0a 0a 2f 2a 20 | 52 65 61 64 20 62 6c 6f |;.}../* |Read blo|
|00004420| 63 6b 20 2a 2f 0a 0a 73 | 74 61 74 69 63 20 76 6f |ck */..s|tatic vo|
|00004430| 69 64 20 67 72 6d 65 6d | 28 68 64 72 2c 70 74 72 |id grmem|(hdr,ptr|
|00004440| 2c 6f 66 73 74 2c 62 6c | 6b 2c 73 69 7a 65 29 0a |,ofst,bl|k,size).|
|00004450| 48 20 2a 68 64 72 3b 0a | 63 68 61 72 20 2a 70 74 |H *hdr;.|char *pt|
|00004460| 72 3b 0a 69 6e 74 20 6f | 66 73 74 3b 0a 63 68 61 |r;.int o|fst;.cha|
|00004470| 72 20 2a 62 6c 6b 3b 0a | 69 6e 74 20 73 69 7a 65 |r *blk;.|int size|
|00004480| 3b 0a 7b 0a 69 66 28 6f | 66 73 74 3c 68 64 72 2d |;.{.if(o|fst<hdr-|
|00004490| 3e 68 6f 6c 65 29 0a 20 | 69 66 28 73 69 7a 65 3e |>hole). |if(size>|
|000044a0| 68 64 72 2d 3e 68 6f 6c | 65 2d 6f 66 73 74 29 0a |hdr->hol|e-ofst).|
|000044b0| 20 20 6d 63 70 79 28 62 | 6c 6b 2c 70 74 72 2b 6f | mcpy(b|lk,ptr+o|
|000044c0| 66 73 74 2c 68 64 72 2d | 3e 68 6f 6c 65 2d 6f 66 |fst,hdr-|>hole-of|
|000044d0| 73 74 29 2c 0a 20 20 6d | 63 70 79 28 62 6c 6b 2b |st),. m|cpy(blk+|
|000044e0| 68 64 72 2d 3e 68 6f 6c | 65 2d 6f 66 73 74 2c 70 |hdr->hol|e-ofst,p|
|000044f0| 74 72 2b 68 64 72 2d 3e | 65 68 6f 6c 65 2c 73 69 |tr+hdr->|ehole,si|
|00004500| 7a 65 2d 28 68 64 72 2d | 3e 68 6f 6c 65 2d 6f 66 |ze-(hdr-|>hole-of|
|00004510| 73 74 29 29 3b 0a 20 65 | 6c 73 65 20 6d 63 70 79 |st));. e|lse mcpy|
|00004520| 28 62 6c 6b 2c 70 74 72 | 2b 6f 66 73 74 2c 73 69 |(blk,ptr|+ofst,si|
|00004530| 7a 65 29 3b 0a 65 6c 73 | 65 20 6d 63 70 79 28 62 |ze);.els|e mcpy(b|
|00004540| 6c 6b 2c 70 74 72 2b 6f | 66 73 74 2b 68 64 72 2d |lk,ptr+o|fst+hdr-|
|00004550| 3e 65 68 6f 6c 65 2d 68 | 64 72 2d 3e 68 6f 6c 65 |>ehole-h|dr->hole|
|00004560| 2c 73 69 7a 65 29 3b 0a | 7d 0a 0a 2f 2a 2a 2a 2a |,size);.|}../****|
|00004570| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004580| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004590| 2a 2a 2f 0a 2f 2a 20 48 | 65 61 64 65 72 20 61 6e |**/./* H|eader an|
|000045a0| 64 20 74 65 78 74 20 73 | 65 67 6d 65 6e 74 20 61 |d text s|egment a|
|000045b0| 6c 6c 6f 63 61 74 69 6f | 6e 20 2a 2f 0a 2f 2a 2a |llocatio|n */./**|
|000045c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000045d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000045e0| 2a 2a 2a 2a 2f 0a 0a 73 | 74 61 74 69 63 20 6c 6f |****/..s|tatic lo|
|000045f0| 6e 67 20 73 61 6c 6c 6f | 63 28 62 29 0a 42 20 2a |ng sallo|c(b).B *|
|00004600| 62 3b 0a 7b 0a 69 66 28 | 62 2d 3e 66 72 65 74 78 |b;.{.if(|b->fretx|
|00004610| 74 29 0a 20 7b 0a 20 6c | 6f 6e 67 20 61 64 64 72 |t). {. l|ong addr|
|00004620| 3d 62 2d 3e 66 72 65 74 | 78 74 3b 0a 20 6c 6f 6e |=b->fret|xt;. lon|
|00004630| 67 20 2a 61 64 72 3d 28 | 6c 6f 6e 67 20 2a 29 76 |g *adr=(|long *)v|
|00004640| 6c 6f 63 6b 28 62 2d 3e | 74 65 78 74 2c 61 64 64 |lock(b->|text,add|
|00004650| 72 29 3b 0a 20 62 2d 3e | 66 72 65 74 78 74 3d 20 |r);. b->|fretxt= |
|00004660| 2a 61 64 72 3b 0a 20 76 | 75 6e 6c 6f 63 6b 28 61 |*adr;. v|unlock(a|
|00004670| 64 72 29 3b 0a 20 72 65 | 74 75 72 6e 20 61 64 64 |dr);. re|turn add|
|00004680| 72 3b 0a 20 7d 0a 65 6c | 73 65 20 72 65 74 75 72 |r;. }.el|se retur|
|00004690| 6e 20 76 61 6c 6c 6f 63 | 28 62 2d 3e 74 65 78 74 |n valloc|(b->text|
|000046a0| 2c 28 6c 6f 6e 67 29 53 | 45 47 53 49 5a 29 3b 0a |,(long)S|EGSIZ);.|
|000046b0| 7d 0a 0a 73 74 61 74 69 | 63 20 48 20 66 72 68 64 |}..stati|c H frhd|
|000046c0| 72 73 3d 7b 7b 26 66 72 | 68 64 72 73 2c 26 66 72 |rs={{&fr|hdrs,&fr|
|000046d0| 68 64 72 73 7d 7d 3b 0a | 0a 73 74 61 74 69 63 20 |hdrs}};.|.static |
|000046e0| 48 20 2a 68 61 6c 6c 6f | 63 28 29 0a 7b 0a 69 66 |H *hallo|c().{.if|
|000046f0| 28 71 65 6d 70 74 79 28 | 48 2c 6c 69 6e 6b 2c 26 |(qempty(|H,link,&|
|00004700| 66 72 68 64 72 73 29 29 | 0a 20 7b 0a 20 48 20 2a |frhdrs))|. {. H *|
|00004710| 68 3b 0a 20 69 6e 74 20 | 78 3b 0a 20 68 3d 28 48 |h;. int |x;. h=(H|
|00004720| 20 2a 29 6d 61 6c 6c 6f | 63 28 73 69 7a 65 6f 66 | *)mallo|c(sizeof|
|00004730| 28 48 29 2a 36 34 29 3b | 0a 20 66 6f 72 28 78 3d |(H)*64);|. for(x=|
|00004740| 30 3b 78 21 3d 36 34 3b | 2b 2b 78 29 20 65 6e 71 |0;x!=64;|++x) enq|
|00004750| 75 65 66 28 48 2c 6c 69 | 6e 6b 2c 26 66 72 68 64 |uef(H,li|nk,&frhd|
|00004760| 72 73 2c 68 2b 78 29 3b | 0a 20 7d 0a 72 65 74 75 |rs,h+x);|. }.retu|
|00004770| 72 6e 20 64 65 71 75 65 | 28 48 2c 6c 69 6e 6b 2c |rn deque|(H,link,|
|00004780| 66 72 68 64 72 73 2e 6c | 69 6e 6b 2e 6e 65 78 74 |frhdrs.l|ink.next|
|00004790| 29 3b 0a 7d 0a 0a 73 74 | 61 74 69 63 20 76 6f 69 |);.}..st|atic voi|
|000047a0| 64 20 73 66 72 65 65 28 | 62 2c 61 64 64 72 29 0a |d sfree(|b,addr).|
|000047b0| 42 20 2a 62 3b 0a 6c 6f | 6e 67 20 61 64 64 72 3b |B *b;.lo|ng addr;|
|000047c0| 0a 7b 0a 6c 6f 6e 67 20 | 2a 61 64 72 3d 28 6c 6f |.{.long |*adr=(lo|
|000047d0| 6e 67 20 2a 29 76 6c 6f | 63 6b 28 62 2d 3e 74 65 |ng *)vlo|ck(b->te|
|000047e0| 78 74 2c 61 64 64 72 29 | 3b 0a 2a 61 64 72 3d 62 |xt,addr)|;.*adr=b|
|000047f0| 2d 3e 66 72 65 74 78 74 | 3b 0a 76 63 68 61 6e 67 |->fretxt|;.vchang|
|00004800| 65 64 28 61 64 72 29 3b | 20 76 75 6e 6c 6f 63 6b |ed(adr);| vunlock|
|00004810| 28 61 64 72 29 3b 0a 62 | 2d 3e 66 72 65 74 78 74 |(adr);.b|->fretxt|
|00004820| 3d 61 64 64 72 3b 0a 7d | 0a 0a 2f 2a 2a 2a 2a 2a |=addr;.}|../*****|
|00004830| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004840| 2a 2f 0a 2f 2a 20 50 6f | 69 6e 74 65 72 20 61 6c |*/./* Po|inter al|
|00004850| 6c 6f 63 61 74 69 6f 6e | 20 2a 2f 0a 2f 2a 2a 2a |location| */./***|
|00004860| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004870| 2a 2a 2a 2f 0a 0a 73 74 | 61 74 69 63 20 50 20 66 |***/..st|atic P f|
|00004880| 72 70 74 72 73 3d 7b 7b | 26 66 72 70 74 72 73 2c |rptrs={{|&frptrs,|
|00004890| 26 66 72 70 74 72 73 7d | 7d 3b 0a 0a 73 74 61 74 |&frptrs}|};..stat|
|000048a0| 69 63 20 50 20 2a 70 61 | 6c 6c 6f 63 28 29 0a 7b |ic P *pa|lloc().{|
|000048b0| 0a 69 66 28 71 65 6d 70 | 74 79 28 50 2c 6c 69 6e |.if(qemp|ty(P,lin|
|000048c0| 6b 2c 26 66 72 70 74 72 | 73 29 29 0a 20 7b 0a 20 |k,&frptr|s)). {. |
|000048d0| 50 20 2a 68 3b 0a 20 69 | 6e 74 20 78 3b 0a 20 68 |P *h;. i|nt x;. h|
|000048e0| 3d 28 50 20 2a 29 6d 61 | 6c 6c 6f 63 28 73 69 7a |=(P *)ma|lloc(siz|
|000048f0| 65 6f 66 28 50 29 2a 36 | 34 29 3b 0a 20 66 6f 72 |eof(P)*6|4);. for|
|00004900| 28 78 3d 30 3b 78 21 3d | 36 34 3b 2b 2b 78 29 20 |(x=0;x!=|64;++x) |
|00004910| 65 6e 71 75 65 66 28 50 | 2c 6c 69 6e 6b 2c 26 66 |enquef(P|,link,&f|
|00004920| 72 70 74 72 73 2c 68 2b | 78 29 3b 0a 20 7d 0a 72 |rptrs,h+|x);. }.r|
|00004930| 65 74 75 72 6e 20 64 65 | 71 75 65 28 50 2c 6c 69 |eturn de|que(P,li|
|00004940| 6e 6b 2c 66 72 70 74 72 | 73 2e 6c 69 6e 6b 2e 6e |nk,frptr|s.link.n|
|00004950| 65 78 74 29 3b 0a 7d 0a | 0a 73 74 61 74 69 63 20 |ext);.}.|.static |
|00004960| 76 6f 69 64 20 70 66 72 | 65 65 28 70 29 0a 50 20 |void pfr|ee(p).P |
|00004970| 2a 70 3b 0a 7b 0a 65 6e | 71 75 65 66 28 50 2c 6c |*p;.{.en|quef(P,l|
|00004980| 69 6e 6b 2c 26 66 72 70 | 74 72 73 2c 70 29 3b 0a |ink,&frp|trs,p);.|
|00004990| 7d 0a 0a 2f 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |}../****|********|
|000049a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000049b0| 2f 0a 2f 2a 20 42 75 66 | 66 65 72 20 63 72 65 61 |/./* Buf|fer crea|
|000049c0| 74 69 6f 6e 2f 64 65 6c | 65 74 69 6f 6e 20 2a 2f |tion/del|etion */|
|000049d0| 0a 2f 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |./******|********|
|000049e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2f 0a |********|******/.|
|000049f0| 0a 2f 2a 20 44 6f 75 62 | 6c 79 20 6c 69 6e 6b 65 |./* Doub|ly linke|
|00004a00| 64 20 6c 69 73 74 20 6f | 66 20 62 75 66 66 65 72 |d list o|f buffer|
|00004a10| 73 20 2a 2f 0a 0a 73 74 | 61 74 69 63 20 42 20 62 |s */..st|atic B b|
|00004a20| 75 66 73 3d 7b 7b 26 62 | 75 66 73 2c 26 62 75 66 |ufs={{&b|ufs,&buf|
|00004a30| 73 7d 7d 3b 0a 69 6e 74 | 20 74 61 62 77 69 64 74 |s}};.int| tabwidt|
|00004a40| 68 3d 38 3b 0a 0a 42 20 | 2a 62 6d 6b 28 75 6e 64 |h=8;..B |*bmk(und|
|00004a50| 6f 29 0a 7b 0a 42 20 2a | 6e 65 77 3d 28 42 20 2a |o).{.B *|new=(B *|
|00004a60| 29 6d 61 6c 6c 6f 63 28 | 73 69 7a 65 6f 66 28 42 |)malloc(|sizeof(B|
|00004a70| 29 29 3b 0a 6e 65 77 2d | 3e 74 61 62 3d 74 61 62 |));.new-|>tab=tab|
|00004a80| 77 69 64 74 68 3b 0a 6e | 65 77 2d 3e 62 61 63 6b |width;.n|ew->back|
|00004a90| 75 70 3d 31 3b 0a 6e 65 | 77 2d 3e 63 68 6e 67 65 |up=1;.ne|w->chnge|
|00004aa0| 64 3d 30 3b 0a 6e 65 77 | 2d 3e 63 6f 75 6e 74 3d |d=0;.new|->count=|
|00004ab0| 31 3b 0a 6e 65 77 2d 3e | 6e 61 6d 65 3d 30 3b 0a |1;.new->|name=0;.|
|00004ac0| 6e 65 77 2d 3e 66 72 65 | 74 78 74 3d 30 3b 0a 6e |new->fre|txt=0;.n|
|00004ad0| 65 77 2d 3e 62 6f 66 3d | 70 61 6c 6c 6f 63 28 29 |ew->bof=|palloc()|
|00004ae0| 3b 0a 69 7a 71 75 65 28 | 50 2c 6c 69 6e 6b 2c 6e |;.izque(|P,link,n|
|00004af0| 65 77 2d 3e 62 6f 66 29 | 3b 0a 6e 65 77 2d 3e 74 |ew->bof)|;.new->t|
|00004b00| 65 78 74 3d 76 74 6d 70 | 28 29 3b 0a 6e 65 77 2d |ext=vtmp|();.new-|
|00004b10| 3e 62 6f 66 2d 3e 62 3d | 6e 65 77 3b 0a 6e 65 77 |>bof->b=|new;.new|
|00004b20| 2d 3e 62 6f 66 2d 3e 6f | 77 6e 65 72 3d 30 3b 0a |->bof->o|wner=0;.|
|00004b30| 6e 65 77 2d 3e 62 6f 66 | 2d 3e 6f 66 73 74 3d 30 |new->bof|->ofst=0|
|00004b40| 3b 0a 6e 65 77 2d 3e 62 | 6f 66 2d 3e 62 79 74 65 |;.new->b|of->byte|
|00004b50| 3d 30 3b 0a 6e 65 77 2d | 3e 62 6f 66 2d 3e 6c 69 |=0;.new-|>bof->li|
|00004b60| 6e 65 3d 30 3b 0a 6e 65 | 77 2d 3e 62 6f 66 2d 3e |ne=0;.ne|w->bof->|
|00004b70| 63 6f 6c 3d 30 3b 0a 6e | 65 77 2d 3e 62 6f 66 2d |col=0;.n|ew->bof-|
|00004b80| 3e 78 63 6f 6c 3d 30 3b | 0a 6e 65 77 2d 3e 62 6f |>xcol=0;|.new->bo|
|00004b90| 66 2d 3e 6c 62 79 74 65 | 3d 30 3b 0a 6e 65 77 2d |f->lbyte|=0;.new-|
|00004ba0| 3e 62 6f 66 2d 3e 68 64 | 72 3d 68 61 6c 6c 6f 63 |>bof->hd|r=halloc|
|00004bb0| 28 29 3b 0a 6e 65 77 2d | 3e 62 6f 66 2d 3e 68 64 |();.new-|>bof->hd|
|00004bc0| 72 2d 3e 68 6f 6c 65 3d | 30 3b 0a 6e 65 77 2d 3e |r->hole=|0;.new->|
|00004bd0| 62 6f 66 2d 3e 68 64 72 | 2d 3e 65 68 6f 6c 65 3d |bof->hdr|->ehole=|
|00004be0| 53 45 47 53 49 5a 3b 0a | 69 7a 71 75 65 28 48 2c |SEGSIZ;.|izque(H,|
|00004bf0| 6c 69 6e 6b 2c 6e 65 77 | 2d 3e 62 6f 66 2d 3e 68 |link,new|->bof->h|
|00004c00| 64 72 29 3b 0a 6e 65 77 | 2d 3e 62 6f 66 2d 3e 68 |dr);.new|->bof->h|
|00004c10| 64 72 2d 3e 73 65 67 3d | 73 61 6c 6c 6f 63 28 6e |dr->seg=|salloc(n|
|00004c20| 65 77 29 3b 0a 6e 65 77 | 2d 3e 62 6f 66 2d 3e 70 |ew);.new|->bof->p|
|00004c30| 74 72 3d 76 6c 6f 63 6b | 28 6e 65 77 2d 3e 74 65 |tr=vlock|(new->te|
|00004c40| 78 74 2c 6e 65 77 2d 3e | 62 6f 66 2d 3e 68 64 72 |xt,new->|bof->hdr|
|00004c50| 2d 3e 73 65 67 29 3b 0a | 6e 65 77 2d 3e 65 6f 66 |->seg);.|new->eof|
|00004c60| 3d 70 64 75 70 28 6e 65 | 77 2d 3e 62 6f 66 29 3b |=pdup(ne|w->bof);|
|00004c70| 0a 69 66 28 75 6e 64 6f | 29 20 75 6e 64 6f 6d 6b |.if(undo|) undomk|
|00004c80| 28 6e 65 77 29 3b 0a 65 | 6c 73 65 20 6e 65 77 2d |(new);.e|lse new-|
|00004c90| 3e 75 6e 64 6f 3d 30 3b | 0a 65 6e 71 75 65 66 28 |>undo=0;|.enquef(|
|00004ca0| 42 2c 6c 69 6e 6b 2c 26 | 62 75 66 73 2c 6e 65 77 |B,link,&|bufs,new|
|00004cb0| 29 3b 0a 72 65 74 75 72 | 6e 20 6e 65 77 3b 0a 7d |);.retur|n new;.}|
|00004cc0| 0a 0a 2f 2a 20 46 69 6e | 64 20 6c 6f 61 64 65 64 |../* Fin|d loaded|
|00004cd0| 20 66 69 6c 65 20 2a 2f | 0a 0a 42 20 2a 62 66 69 | file */|..B *bfi|
|00004ce0| 6e 64 28 6e 61 6d 65 29 | 0a 63 68 61 72 20 2a 6e |nd(name)|.char *n|
|00004cf0| 61 6d 65 3b 0a 7b 0a 42 | 20 2a 62 3b 0a 66 6f 72 |ame;.{.B| *b;.for|
|00004d00| 28 62 3d 62 75 66 73 2e | 6c 69 6e 6b 2e 6e 65 78 |(b=bufs.|link.nex|
|00004d10| 74 3b 62 21 3d 26 62 75 | 66 73 3b 62 3d 62 2d 3e |t;b!=&bu|fs;b=b->|
|00004d20| 6c 69 6e 6b 2e 6e 65 78 | 74 29 0a 20 69 66 28 62 |link.nex|t). if(b|
|00004d30| 2d 3e 6e 61 6d 65 20 26 | 26 20 21 7a 63 6d 70 28 |->name &|& !zcmp(|
|00004d40| 6e 61 6d 65 2c 62 2d 3e | 6e 61 6d 65 29 29 0a 20 |name,b->|name)). |
|00004d50| 20 7b 0a 20 20 2b 2b 62 | 2d 3e 63 6f 75 6e 74 3b | {. ++b|->count;|
|00004d60| 0a 20 20 72 65 74 75 72 | 6e 20 62 3b 0a 20 20 7d |. retur|n b;. }|
|00004d70| 0a 72 65 74 75 72 6e 20 | 30 3b 0a 7d 0a 0a 76 6f |.return |0;.}..vo|
|00004d80| 69 64 20 62 72 6d 28 62 | 29 0a 42 20 2a 62 3b 0a |id brm(b|).B *b;.|
|00004d90| 7b 0a 69 66 28 21 2d 2d | 62 2d 3e 63 6f 75 6e 74 |{.if(!--|b->count|
|00004da0| 29 0a 20 7b 0a 20 69 66 | 28 62 2d 3e 75 6e 64 6f |). {. if|(b->undo|
|00004db0| 29 20 75 6e 64 6f 72 6d | 28 62 29 3b 0a 20 73 70 |) undorm|(b);. sp|
|00004dc0| 6c 69 63 65 66 28 48 2c | 6c 69 6e 6b 2c 26 66 72 |licef(H,|link,&fr|
|00004dd0| 68 64 72 73 2c 62 2d 3e | 62 6f 66 2d 3e 68 64 72 |hdrs,b->|bof->hdr|
|00004de0| 29 3b 0a 20 77 68 69 6c | 65 28 21 71 65 6d 70 74 |);. whil|e(!qempt|
|00004df0| 79 28 50 2c 6c 69 6e 6b | 2c 62 2d 3e 62 6f 66 29 |y(P,link|,b->bof)|
|00004e00| 29 20 70 72 6d 28 62 2d | 3e 62 6f 66 2d 3e 6c 69 |) prm(b-|>bof->li|
|00004e10| 6e 6b 2e 6e 65 78 74 29 | 3b 0a 20 70 72 6d 28 62 |nk.next)|;. prm(b|
|00004e20| 2d 3e 62 6f 66 29 3b 0a | 20 69 66 28 62 2d 3e 6e |->bof);.| if(b->n|
|00004e30| 61 6d 65 29 20 66 72 65 | 65 28 62 2d 3e 6e 61 6d |ame) fre|e(b->nam|
|00004e40| 65 29 3b 0a 20 76 63 6c | 6f 73 65 28 62 2d 3e 74 |e);. vcl|ose(b->t|
|00004e50| 65 78 74 29 3b 0a 20 66 | 72 65 65 28 64 65 71 75 |ext);. f|ree(dequ|
|00004e60| 65 28 42 2c 6c 69 6e 6b | 2c 62 29 29 3b 0a 20 7d |e(B,link|,b));. }|
|00004e70| 0a 7d 0a 0a 2f 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.}../***|********|
|00004e80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0a 2f 2a 20 |********|***/./* |
|00004e90| 50 6f 69 6e 74 65 72 20 | 6d 61 6e 61 67 65 6d 65 |Pointer |manageme|
|00004ea0| 6e 74 20 2a 2f 0a 2f 2a | 2a 2a 2a 2a 2a 2a 2a 2a |nt */./*|********|
|00004eb0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2f 0a 0a |********|*****/..|
|00004ec0| 50 20 2a 70 73 65 74 28 | 6e 2c 70 29 0a 50 20 2a |P *pset(|n,p).P *|
|00004ed0| 6e 2c 20 2a 70 3b 0a 7b | 0a 6e 2d 3e 62 3d 70 2d |n, *p;.{|.n->b=p-|
|00004ee0| 3e 62 3b 0a 6e 2d 3e 6f | 66 73 74 3d 70 2d 3e 6f |>b;.n->o|fst=p->o|
|00004ef0| 66 73 74 3b 0a 6e 2d 3e | 68 64 72 3d 70 2d 3e 68 |fst;.n->|hdr=p->h|
|00004f00| 64 72 3b 0a 69 66 28 6e | 2d 3e 70 74 72 29 20 76 |dr;.if(n|->ptr) v|
|00004f10| 75 6e 6c 6f 63 6b 28 6e | 2d 3e 70 74 72 29 3b 20 |unlock(n|->ptr); |
|00004f20| 6e 2d 3e 70 74 72 3d 70 | 2d 3e 70 74 72 3b 20 76 |n->ptr=p|->ptr; v|
|00004f30| 75 70 63 6f 75 6e 74 28 | 6e 2d 3e 70 74 72 29 3b |upcount(|n->ptr);|
|00004f40| 0a 6e 2d 3e 62 79 74 65 | 3d 70 2d 3e 62 79 74 65 |.n->byte|=p->byte|
|00004f50| 3b 0a 6e 2d 3e 6c 69 6e | 65 3d 70 2d 3e 6c 69 6e |;.n->lin|e=p->lin|
|00004f60| 65 3b 0a 6e 2d 3e 63 6f | 6c 3d 70 2d 3e 63 6f 6c |e;.n->co|l=p->col|
|00004f70| 3b 0a 6e 2d 3e 78 63 6f | 6c 3d 70 2d 3e 78 63 6f |;.n->xco|l=p->xco|
|00004f80| 6c 3b 0a 6e 2d 3e 6c 62 | 79 74 65 3d 70 2d 3e 6c |l;.n->lb|yte=p->l|
|00004f90| 62 79 74 65 3b 0a 72 65 | 74 75 72 6e 20 6e 3b 0a |byte;.re|turn n;.|
|00004fa0| 7d 0a 0a 50 20 2a 70 64 | 75 70 28 70 29 0a 50 20 |}..P *pd|up(p).P |
|00004fb0| 2a 70 3b 0a 7b 0a 50 20 | 2a 6e 3d 70 61 6c 6c 6f |*p;.{.P |*n=pallo|
|00004fc0| 63 28 29 3b 0a 6e 2d 3e | 70 74 72 3d 30 3b 0a 6e |c();.n->|ptr=0;.n|
|00004fd0| 2d 3e 6f 77 6e 65 72 3d | 30 3b 0a 65 6e 71 75 65 |->owner=|0;.enque|
|00004fe0| 66 28 50 2c 6c 69 6e 6b | 2c 70 2c 6e 29 3b 0a 72 |f(P,link|,p,n);.r|
|00004ff0| 65 74 75 72 6e 20 70 73 | 65 74 28 6e 2c 70 29 3b |eturn ps|et(n,p);|
|00005000| 0a 7d 0a 0a 50 20 2a 70 | 64 75 70 6f 77 6e 28 70 |.}..P *p|dupown(p|
|00005010| 2c 6f 29 0a 50 20 2a 70 | 3b 0a 50 20 2a 2a 6f 3b |,o).P *p|;.P **o;|
|00005020| 0a 7b 0a 50 20 2a 6e 3d | 70 61 6c 6c 6f 63 28 29 |.{.P *n=|palloc()|
|00005030| 3b 0a 6e 2d 3e 70 74 72 | 3d 30 3b 0a 6e 2d 3e 6f |;.n->ptr|=0;.n->o|
|00005040| 77 6e 65 72 3d 6f 3b 0a | 65 6e 71 75 65 66 28 50 |wner=o;.|enquef(P|
|00005050| 2c 6c 69 6e 6b 2c 70 2c | 6e 29 3b 0a 70 73 65 74 |,link,p,|n);.pset|
|00005060| 28 6e 2c 70 29 3b 0a 69 | 66 28 2a 6f 29 20 70 72 |(n,p);.i|f(*o) pr|
|00005070| 6d 28 2a 6f 29 3b 0a 2a | 6f 3d 6e 3b 0a 72 65 74 |m(*o);.*|o=n;.ret|
|00005080| 75 72 6e 20 6e 3b 0a 7d | 0a 0a 50 20 2a 70 62 6f |urn n;.}|..P *pbo|
|00005090| 66 28 70 29 0a 50 20 2a | 70 3b 0a 7b 0a 72 65 74 |f(p).P *|p;.{.ret|
|000050a0| 75 72 6e 20 70 73 65 74 | 28 70 2c 70 2d 3e 62 2d |urn pset|(p,p->b-|
|000050b0| 3e 62 6f 66 29 3b 0a 7d | 0a 0a 50 20 2a 70 65 6f |>bof);.}|..P *peo|
|000050c0| 66 28 70 29 0a 50 20 2a | 70 3b 0a 7b 0a 72 65 74 |f(p).P *|p;.{.ret|
|000050d0| 75 72 6e 20 70 73 65 74 | 28 70 2c 70 2d 3e 62 2d |urn pset|(p,p->b-|
|000050e0| 3e 65 6f 66 29 3b 0a 7d | 0a 0a 76 6f 69 64 20 70 |>eof);.}|..void p|
|000050f0| 72 6d 28 70 29 0a 50 20 | 2a 70 3b 0a 7b 0a 69 66 |rm(p).P |*p;.{.if|
|00005100| 28 21 70 29 20 72 65 74 | 75 72 6e 3b 0a 69 66 28 |(!p) ret|urn;.if(|
|00005110| 70 2d 3e 6f 77 6e 65 72 | 29 20 2a 70 2d 3e 6f 77 |p->owner|) *p->ow|
|00005120| 6e 65 72 3d 30 3b 0a 76 | 75 6e 6c 6f 63 6b 28 70 |ner=0;.v|unlock(p|
|00005130| 2d 3e 70 74 72 29 3b 0a | 70 66 72 65 65 28 64 65 |->ptr);.|pfree(de|
|00005140| 71 75 65 28 50 2c 6c 69 | 6e 6b 2c 70 29 29 3b 0a |que(P,li|nk,p));.|
|00005150| 7d 0a 0a 69 6e 74 20 70 | 69 73 62 6f 66 28 70 29 |}..int p|isbof(p)|
|00005160| 0a 50 20 2a 70 3b 0a 7b | 0a 72 65 74 75 72 6e 20 |.P *p;.{|.return |
|00005170| 70 2d 3e 68 64 72 3d 3d | 70 2d 3e 62 2d 3e 62 6f |p->hdr==|p->b->bo|
|00005180| 66 2d 3e 68 64 72 20 26 | 26 20 21 70 2d 3e 6f 66 |f->hdr &|& !p->of|
|00005190| 73 74 3b 0a 7d 0a 0a 69 | 6e 74 20 70 69 73 65 6f |st;.}..i|nt piseo|
|000051a0| 66 28 70 29 0a 50 20 2a | 70 3b 0a 7b 0a 72 65 74 |f(p).P *|p;.{.ret|
|000051b0| 75 72 6e 20 70 2d 3e 68 | 64 72 3d 3d 70 2d 3e 62 |urn p->h|dr==p->b|
|000051c0| 2d 3e 62 6f 66 2d 3e 68 | 64 72 2d 3e 6c 69 6e 6b |->bof->h|dr->link|
|000051d0| 2e 70 72 65 76 3b 0a 7d | 0a 0a 69 6e 74 20 70 69 |.prev;.}|..int pi|
|000051e0| 73 65 6f 6c 28 70 29 0a | 50 20 2a 70 3b 0a 7b 0a |seol(p).|P *p;.{.|
|000051f0| 69 66 28 70 2d 3e 68 64 | 72 3d 3d 70 2d 3e 62 2d |if(p->hd|r==p->b-|
|00005200| 3e 62 6f 66 2d 3e 68 64 | 72 2d 3e 6c 69 6e 6b 2e |>bof->hd|r->link.|
|00005210| 70 72 65 76 29 20 72 65 | 74 75 72 6e 20 31 3b 0a |prev) re|turn 1;.|
|00005220| 69 66 28 70 2d 3e 6f 66 | 73 74 3e 3d 70 2d 3e 68 |if(p->of|st>=p->h|
|00005230| 64 72 2d 3e 68 6f 6c 65 | 29 0a 20 7b 20 69 66 28 |dr->hole|). { if(|
|00005240| 70 2d 3e 70 74 72 5b 70 | 2d 3e 6f 66 73 74 2b 70 |p->ptr[p|->ofst+p|
|00005250| 2d 3e 68 64 72 2d 3e 65 | 68 6f 6c 65 2d 70 2d 3e |->hdr->e|hole-p->|
|00005260| 68 64 72 2d 3e 68 6f 6c | 65 5d 3d 3d 27 5c 6e 27 |hdr->hol|e]=='\n'|
|00005270| 29 20 72 65 74 75 72 6e | 20 31 3b 20 7d 0a 65 6c |) return| 1; }.el|
|00005280| 73 65 20 69 66 28 70 2d | 3e 70 74 72 5b 70 2d 3e |se if(p-|>ptr[p->|
|00005290| 6f 66 73 74 5d 3d 3d 27 | 5c 6e 27 29 20 72 65 74 |ofst]=='|\n') ret|
|000052a0| 75 72 6e 20 31 3b 0a 72 | 65 74 75 72 6e 20 30 3b |urn 1;.r|eturn 0;|
|000052b0| 0a 7d 0a 0a 69 6e 74 20 | 70 69 73 62 6f 6c 28 70 |.}..int |pisbol(p|
|000052c0| 29 0a 50 20 2a 70 3b 0a | 7b 0a 63 68 61 72 20 63 |).P *p;.|{.char c|
|000052d0| 3b 0a 69 66 28 70 2d 3e | 68 64 72 3d 3d 70 2d 3e |;.if(p->|hdr==p->|
|000052e0| 62 2d 3e 62 6f 66 2d 3e | 68 64 72 20 26 26 20 21 |b->bof->|hdr && !|
|000052f0| 70 2d 3e 6f 66 73 74 29 | 20 72 65 74 75 72 6e 20 |p->ofst)| return |
|00005300| 31 3b 0a 63 3d 70 72 67 | 65 74 63 6e 28 70 29 3b |1;.c=prg|etcn(p);|
|00005310| 20 70 66 77 72 64 6e 28 | 70 2c 28 6c 6f 6e 67 29 | pfwrdn(|p,(long)|
|00005320| 31 29 3b 0a 72 65 74 75 | 72 6e 20 63 3d 3d 27 5c |1);.retu|rn c=='\|
|00005330| 6e 27 3b 0a 7d 0a 0a 69 | 6e 74 20 70 69 73 62 6f |n';.}..i|nt pisbo|
|00005340| 77 28 70 29 0a 50 20 2a | 70 3b 0a 7b 0a 50 20 2a |w(p).P *|p;.{.P *|
|00005350| 71 3d 70 64 75 70 28 70 | 29 3b 0a 69 6e 74 20 63 |q=pdup(p|);.int c|
|00005360| 3d 62 72 63 28 70 29 3b | 0a 69 6e 74 20 64 3d 70 |=brc(p);|.int d=p|
|00005370| 72 67 65 74 63 6e 28 71 | 29 3b 0a 70 72 6d 28 71 |rgetcn(q|);.prm(q|
|00005380| 29 3b 0a 69 66 28 28 63 | 3e 3d 27 61 27 20 26 26 |);.if((c|>='a' &&|
|00005390| 20 63 3c 3d 27 7a 27 20 | 7c 7c 20 63 3e 3d 27 41 | c<='z' ||| c>='A|
|000053a0| 27 20 26 26 20 63 3c 3d | 27 5a 27 20 7c 7c 20 63 |' && c<=|'Z' || c|
|000053b0| 3e 3d 27 30 27 20 26 26 | 20 63 3c 3d 27 39 27 29 |>='0' &&| c<='9')|
|000053c0| 20 26 26 0a 20 21 28 64 | 3e 3d 27 61 27 20 26 26 | &&. !(d|>='a' &&|
|000053d0| 20 64 3c 3d 27 7a 27 20 | 7c 7c 20 64 3e 3d 27 41 | d<='z' ||| d>='A|
|000053e0| 27 20 26 26 20 64 3c 3d | 27 5a 27 20 7c 7c 20 64 |' && d<=|'Z' || d|
|000053f0| 3e 3d 27 30 27 20 26 26 | 20 64 3c 3d 27 39 27 29 |>='0' &&| d<='9')|
|00005400| 29 20 72 65 74 75 72 6e | 20 31 3b 0a 72 65 74 75 |) return| 1;.retu|
|00005410| 72 6e 20 30 3b 0a 7d 0a | 0a 69 6e 74 20 70 69 73 |rn 0;.}.|.int pis|
|00005420| 65 6f 77 28 70 29 0a 50 | 20 2a 70 3b 0a 7b 0a 50 |eow(p).P| *p;.{.P|
|00005430| 20 2a 71 3d 70 64 75 70 | 28 70 29 3b 0a 69 6e 74 | *q=pdup|(p);.int|
|00005440| 20 64 3d 62 72 63 28 71 | 29 3b 0a 69 6e 74 20 63 | d=brc(q|);.int c|
|00005450| 3d 70 72 67 65 74 63 6e | 28 71 29 3b 0a 70 72 6d |=prgetcn|(q);.prm|
|00005460| 28 71 29 3b 0a 69 66 28 | 28 63 3e 3d 27 61 27 20 |(q);.if(|(c>='a' |
|00005470| 26 26 20 63 3c 3d 27 7a | 27 20 7c 7c 20 63 3e 3d |&& c<='z|' || c>=|
|00005480| 27 41 27 20 26 26 20 63 | 3c 3d 27 5a 27 20 7c 7c |'A' && c|<='Z' |||
|00005490| 20 63 3e 3d 27 30 27 20 | 26 26 20 63 3c 3d 27 39 | c>='0' |&& c<='9|
|000054a0| 27 29 20 26 26 0a 20 21 | 28 64 3e 3d 27 61 27 20 |') &&. !|(d>='a' |
|000054b0| 26 26 20 64 3c 3d 27 7a | 27 20 7c 7c 20 64 3e 3d |&& d<='z|' || d>=|
|000054c0| 27 41 27 20 26 26 20 64 | 3c 3d 27 5a 27 20 7c 7c |'A' && d|<='Z' |||
|000054d0| 20 64 3e 3d 27 30 27 20 | 26 26 20 64 3c 3d 27 39 | d>='0' |&& d<='9|
|000054e0| 27 29 29 20 72 65 74 75 | 72 6e 20 31 3b 0a 72 65 |')) retu|rn 1;.re|
|000054f0| 74 75 72 6e 20 30 3b 0a | 7d 0a 0a 69 6e 74 20 70 |turn 0;.|}..int p|
|00005500| 6e 65 78 74 28 70 29 0a | 50 20 2a 70 3b 0a 7b 0a |next(p).|P *p;.{.|
|00005510| 69 66 28 70 2d 3e 68 64 | 72 3d 3d 70 2d 3e 62 2d |if(p->hd|r==p->b-|
|00005520| 3e 62 6f 66 2d 3e 68 64 | 72 2d 3e 6c 69 6e 6b 2e |>bof->hd|r->link.|
|00005530| 70 72 65 76 29 20 72 65 | 74 75 72 6e 20 30 3b 0a |prev) re|turn 0;.|
|00005540| 70 2d 3e 68 64 72 3d 70 | 2d 3e 68 64 72 2d 3e 6c |p->hdr=p|->hdr->l|
|00005550| 69 6e 6b 2e 6e 65 78 74 | 3b 20 70 2d 3e 6f 66 73 |ink.next|; p->ofs|
|00005560| 74 3d 30 3b 0a 76 75 6e | 6c 6f 63 6b 28 70 2d 3e |t=0;.vun|lock(p->|
|00005570| 70 74 72 29 3b 20 70 2d | 3e 70 74 72 3d 76 6c 6f |ptr); p-|>ptr=vlo|
|00005580| 63 6b 28 70 2d 3e 62 2d | 3e 74 65 78 74 2c 70 2d |ck(p->b-|>text,p-|
|00005590| 3e 68 64 72 2d 3e 73 65 | 67 29 3b 0a 72 65 74 75 |>hdr->se|g);.retu|
|000055a0| 72 6e 20 47 53 49 5a 45 | 28 70 2d 3e 68 64 72 29 |rn GSIZE|(p->hdr)|
|000055b0| 21 3d 30 3b 0a 7d 0a 0a | 69 6e 74 20 70 70 72 65 |!=0;.}..|int ppre|
|000055c0| 76 28 70 29 0a 50 20 2a | 70 3b 0a 7b 0a 69 66 28 |v(p).P *|p;.{.if(|
|000055d0| 70 2d 3e 68 64 72 3d 3d | 70 2d 3e 62 2d 3e 62 6f |p->hdr==|p->b->bo|
|000055e0| 66 2d 3e 68 64 72 29 20 | 72 65 74 75 72 6e 20 30 |f->hdr) |return 0|
|000055f0| 3b 0a 70 2d 3e 68 64 72 | 3d 70 2d 3e 68 64 72 2d |;.p->hdr|=p->hdr-|
|00005600| 3e 6c 69 6e 6b 2e 70 72 | 65 76 3b 0a 70 2d 3e 6f |>link.pr|ev;.p->o|
|00005610| 66 73 74 3d 47 53 49 5a | 45 28 70 2d 3e 68 64 72 |fst=GSIZ|E(p->hdr|
|00005620| 29 3b 0a 76 75 6e 6c 6f | 63 6b 28 70 2d 3e 70 74 |);.vunlo|ck(p->pt|
|00005630| 72 29 3b 20 70 2d 3e 70 | 74 72 3d 76 6c 6f 63 6b |r); p->p|tr=vlock|
|00005640| 28 70 2d 3e 62 2d 3e 74 | 65 78 74 2c 70 2d 3e 68 |(p->b->t|ext,p->h|
|00005650| 64 72 2d 3e 73 65 67 29 | 3b 0a 72 65 74 75 72 6e |dr->seg)|;.return|
|00005660| 20 70 2d 3e 6f 66 73 74 | 3b 0a 7d 0a 0a 69 6e 74 | p->ofst|;.}..int|
|00005670| 20 70 67 65 74 63 6e 28 | 70 29 0a 50 20 2a 70 3b | pgetcn(|p).P *p;|
|00005680| 0a 7b 0a 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |.{.unsig|ned char|
|00005690| 20 63 3b 0a 69 66 28 70 | 2d 3e 6f 66 73 74 3d 3d | c;.if(p|->ofst==|
|000056a0| 47 53 49 5a 45 28 70 2d | 3e 68 64 72 29 29 20 72 |GSIZE(p-|>hdr)) r|
|000056b0| 65 74 75 72 6e 20 4d 41 | 58 49 4e 54 3b 0a 69 66 |eturn MA|XINT;.if|
|000056c0| 28 70 2d 3e 6f 66 73 74 | 3e 3d 70 2d 3e 68 64 72 |(p->ofst|>=p->hdr|
|000056d0| 2d 3e 68 6f 6c 65 29 20 | 63 3d 70 2d 3e 70 74 72 |->hole) |c=p->ptr|
|000056e0| 5b 70 2d 3e 6f 66 73 74 | 2b 70 2d 3e 68 64 72 2d |[p->ofst|+p->hdr-|
|000056f0| 3e 65 68 6f 6c 65 2d 70 | 2d 3e 68 64 72 2d 3e 68 |>ehole-p|->hdr->h|
|00005700| 6f 6c 65 5d 3b 0a 65 6c | 73 65 20 63 3d 70 2d 3e |ole];.el|se c=p->|
|00005710| 70 74 72 5b 70 2d 3e 6f | 66 73 74 5d 3b 0a 69 66 |ptr[p->o|fst];.if|
|00005720| 28 2b 2b 70 2d 3e 6f 66 | 73 74 3d 3d 47 53 49 5a |(++p->of|st==GSIZ|
|00005730| 45 28 70 2d 3e 68 64 72 | 29 29 20 70 6e 65 78 74 |E(p->hdr|)) pnext|
|00005740| 28 70 29 3b 20 0a 72 65 | 74 75 72 6e 20 63 3b 0a |(p); .re|turn c;.|
|00005750| 7d 0a 0a 69 6e 74 20 70 | 67 65 74 63 28 70 29 0a |}..int p|getc(p).|
|00005760| 50 20 2a 70 3b 0a 7b 0a | 75 6e 73 69 67 6e 65 64 |P *p;.{.|unsigned|
|00005770| 20 63 68 61 72 20 63 3b | 0a 69 66 28 70 2d 3e 6f | char c;|.if(p->o|
|00005780| 66 73 74 3d 3d 47 53 49 | 5a 45 28 70 2d 3e 68 64 |fst==GSI|ZE(p->hd|
|00005790| 72 29 29 20 72 65 74 75 | 72 6e 20 4d 41 58 49 4e |r)) retu|rn MAXIN|
|000057a0| 54 3b 0a 69 66 28 70 2d | 3e 6f 66 73 74 3e 3d 70 |T;.if(p-|>ofst>=p|
|000057b0| 2d 3e 68 64 72 2d 3e 68 | 6f 6c 65 29 20 63 3d 70 |->hdr->h|ole) c=p|
|000057c0| 2d 3e 70 74 72 5b 70 2d | 3e 6f 66 73 74 2b 70 2d |->ptr[p-|>ofst+p-|
|000057d0| 3e 68 64 72 2d 3e 65 68 | 6f 6c 65 2d 70 2d 3e 68 |>hdr->eh|ole-p->h|
|000057e0| 64 72 2d 3e 68 6f 6c 65 | 5d 3b 0a 65 6c 73 65 20 |dr->hole|];.else |
|000057f0| 63 3d 70 2d 3e 70 74 72 | 5b 70 2d 3e 6f 66 73 74 |c=p->ptr|[p->ofst|
|00005800| 5d 3b 0a 69 66 28 2b 2b | 70 2d 3e 6f 66 73 74 3d |];.if(++|p->ofst=|
|00005810| 3d 47 53 49 5a 45 28 70 | 2d 3e 68 64 72 29 29 20 |=GSIZE(p|->hdr)) |
|00005820| 70 6e 65 78 74 28 70 29 | 3b 20 0a 2b 2b 70 2d 3e |pnext(p)|; .++p->|
|00005830| 62 79 74 65 3b 0a 69 66 | 28 63 3d 3d 27 5c 6e 27 |byte;.if|(c=='\n'|
|00005840| 29 20 2b 2b 70 2d 3e 6c | 69 6e 65 2c 20 70 2d 3e |) ++p->l|ine, p->|
|00005850| 63 6f 6c 3d 30 2c 20 70 | 2d 3e 6c 62 79 74 65 3d |col=0, p|->lbyte=|
|00005860| 30 3b 0a 65 6c 73 65 0a | 20 7b 0a 20 2b 2b 70 2d |0;.else.| {. ++p-|
|00005870| 3e 6c 62 79 74 65 3b 0a | 20 69 66 28 63 3d 3d 27 |>lbyte;.| if(c=='|
|00005880| 5c 74 27 29 20 70 2d 3e | 63 6f 6c 2b 3d 70 2d 3e |\t') p->|col+=p->|
|00005890| 62 2d 3e 74 61 62 2d 70 | 2d 3e 63 6f 6c 25 70 2d |b->tab-p|->col%p-|
|000058a0| 3e 62 2d 3e 74 61 62 3b | 0a 20 65 6c 73 65 20 2b |>b->tab;|. else +|
|000058b0| 2b 70 2d 3e 63 6f 6c 3b | 0a 20 7d 0a 72 65 74 75 |+p->col;|. }.retu|
|000058c0| 72 6e 20 63 3b 0a 7d 0a | 0a 50 20 2a 70 66 77 72 |rn c;.}.|.P *pfwr|
|000058d0| 64 6e 28 70 2c 6e 29 0a | 50 20 2a 70 3b 0a 6c 6f |dn(p,n).|P *p;.lo|
|000058e0| 6e 67 20 6e 3b 0a 7b 0a | 77 68 69 6c 65 28 6e 3e |ng n;.{.|while(n>|
|000058f0| 3d 47 53 49 5a 45 28 70 | 2d 3e 68 64 72 29 2d 70 |=GSIZE(p|->hdr)-p|
|00005900| 2d 3e 6f 66 73 74 29 0a | 20 7b 0a 20 69 6e 74 20 |->ofst).| {. int |
|00005910| 61 64 6a 3d 47 53 49 5a | 45 28 70 2d 3e 68 64 72 |adj=GSIZ|E(p->hdr|
|00005920| 29 2d 70 2d 3e 6f 66 73 | 74 3b 0a 20 69 66 28 21 |)-p->ofs|t;. if(!|
|00005930| 61 64 6a 29 20 62 72 65 | 61 6b 3b 0a 20 6e 2d 3d |adj) bre|ak;. n-=|
|00005940| 61 64 6a 3b 0a 20 70 6e | 65 78 74 28 70 29 3b 0a |adj;. pn|ext(p);.|
|00005950| 20 7d 0a 69 66 28 6e 3e | 47 53 49 5a 45 28 70 2d | }.if(n>|GSIZE(p-|
|00005960| 3e 68 64 72 29 2d 70 2d | 3e 6f 66 73 74 29 20 72 |>hdr)-p-|>ofst) r|
|00005970| 65 74 75 72 6e 20 30 3b | 0a 70 2d 3e 6f 66 73 74 |eturn 0;|.p->ofst|
|00005980| 2b 3d 6e 3b 0a 72 65 74 | 75 72 6e 20 70 3b 0a 7d |+=n;.ret|urn p;.}|
|00005990| 0a 0a 50 20 2a 70 66 77 | 72 64 28 70 2c 6e 29 0a |..P *pfw|rd(p,n).|
|000059a0| 50 20 2a 70 3b 0a 6c 6f | 6e 67 20 6e 3b 0a 7b 0a |P *p;.lo|ng n;.{.|
|000059b0| 69 6e 74 20 63 3b 0a 77 | 68 69 6c 65 28 6e 2d 2d |int c;.w|hile(n--|
|000059c0| 29 20 69 66 28 70 67 65 | 74 63 28 70 29 3d 3d 20 |) if(pge|tc(p)== |
|000059d0| 4d 41 58 49 4e 54 29 20 | 72 65 74 75 72 6e 20 30 |MAXINT) |return 0|
|000059e0| 3b 0a 72 65 74 75 72 6e | 20 70 3b 0a 7d 0a 0a 69 |;.return| p;.}..i|
|000059f0| 6e 74 20 70 72 67 65 74 | 63 6e 28 70 29 0a 50 20 |nt prget|cn(p).P |
|00005a00| 2a 70 3b 0a 7b 0a 75 6e | 73 69 67 6e 65 64 20 63 |*p;.{.un|signed c|
|00005a10| 68 61 72 20 63 3b 0a 69 | 66 28 21 70 2d 3e 6f 66 |har c;.i|f(!p->of|
|00005a20| 73 74 29 20 69 66 28 21 | 70 70 72 65 76 28 70 29 |st) if(!|pprev(p)|
|00005a30| 29 20 72 65 74 75 72 6e | 20 4d 41 58 49 4e 54 3b |) return| MAXINT;|
|00005a40| 0a 2d 2d 70 2d 3e 6f 66 | 73 74 3b 0a 69 66 28 70 |.--p->of|st;.if(p|
|00005a50| 2d 3e 6f 66 73 74 3e 3d | 70 2d 3e 68 64 72 2d 3e |->ofst>=|p->hdr->|
|00005a60| 68 6f 6c 65 29 0a 20 63 | 3d 70 2d 3e 70 74 72 5b |hole). c|=p->ptr[|
|00005a70| 70 2d 3e 6f 66 73 74 2b | 70 2d 3e 68 64 72 2d 3e |p->ofst+|p->hdr->|
|00005a80| 65 68 6f 6c 65 2d 70 2d | 3e 68 64 72 2d 3e 68 6f |ehole-p-|>hdr->ho|
|00005a90| 6c 65 5d 3b 0a 65 6c 73 | 65 20 63 3d 70 2d 3e 70 |le];.els|e c=p->p|
|00005aa0| 74 72 5b 70 2d 3e 6f 66 | 73 74 5d 3b 0a 72 65 74 |tr[p->of|st];.ret|
|00005ab0| 75 72 6e 20 63 3b 0a 7d | 0a 0a 69 6e 74 20 70 72 |urn c;.}|..int pr|
|00005ac0| 67 65 74 63 28 70 29 0a | 50 20 2a 70 3b 0a 7b 0a |getc(p).|P *p;.{.|
|00005ad0| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 20 63 3b |unsigned| char c;|
|00005ae0| 0a 69 66 28 21 70 2d 3e | 6f 66 73 74 29 20 69 66 |.if(!p->|ofst) if|
|00005af0| 28 21 70 70 72 65 76 28 | 70 29 29 20 72 65 74 75 |(!pprev(|p)) retu|
|00005b00| 72 6e 20 4d 41 58 49 4e | 54 3b 0a 2d 2d 70 2d 3e |rn MAXIN|T;.--p->|
|00005b10| 6f 66 73 74 3b 0a 69 66 | 28 70 2d 3e 6f 66 73 74 |ofst;.if|(p->ofst|
|00005b20| 3e 3d 70 2d 3e 68 64 72 | 2d 3e 68 6f 6c 65 29 20 |>=p->hdr|->hole) |
|00005b30| 63 3d 70 2d 3e 70 74 72 | 5b 70 2d 3e 6f 66 73 74 |c=p->ptr|[p->ofst|
|00005b40| 2b 70 2d 3e 68 64 72 2d | 3e 65 68 6f 6c 65 2d 70 |+p->hdr-|>ehole-p|
|00005b50| 2d 3e 68 64 72 2d 3e 68 | 6f 6c 65 5d 3b 0a 65 6c |->hdr->h|ole];.el|
|00005b60| 73 65 20 63 3d 70 2d 3e | 70 74 72 5b 70 2d 3e 6f |se c=p->|ptr[p->o|
|00005b70| 66 73 74 5d 3b 0a 2d 2d | 70 2d 3e 62 79 74 65 3b |fst];.--|p->byte;|
|00005b80| 0a 69 66 28 63 3d 3d 27 | 5c 6e 27 29 0a 20 7b 0a |.if(c=='|\n'). {.|
|00005b90| 20 2d 2d 70 2d 3e 6c 69 | 6e 65 3b 0a 20 70 66 63 | --p->li|ne;. pfc|
|00005ba0| 6f 6c 28 70 29 3b 0a 20 | 7d 0a 65 6c 73 65 20 69 |ol(p);. |}.else i|
|00005bb0| 66 28 63 3d 3d 27 5c 74 | 27 29 20 70 66 63 6f 6c |f(c=='\t|') pfcol|
|00005bc0| 28 70 29 3b 0a 65 6c 73 | 65 0a 20 7b 0a 20 2d 2d |(p);.els|e. {. --|
|00005bd0| 70 2d 3e 6c 62 79 74 65 | 3b 0a 20 2d 2d 70 2d 3e |p->lbyte|;. --p->|
|00005be0| 63 6f 6c 3b 0a 20 7d 0a | 72 65 74 75 72 6e 20 63 |col;. }.|return c|
|00005bf0| 3b 0a 7d 0a 0a 50 20 2a | 70 62 6b 77 64 6e 28 70 |;.}..P *|pbkwdn(p|
|00005c00| 2c 6e 29 0a 50 20 2a 70 | 3b 0a 6c 6f 6e 67 20 6e |,n).P *p|;.long n|
|00005c10| 3b 0a 7b 0a 77 68 69 6c | 65 28 6e 3e 70 2d 3e 6f |;.{.whil|e(n>p->o|
|00005c20| 66 73 74 29 0a 20 7b 0a | 20 6e 2d 3d 70 2d 3e 6f |fst). {.| n-=p->o|
|00005c30| 66 73 74 3b 0a 20 69 66 | 28 21 70 70 72 65 76 28 |fst;. if|(!pprev(|
|00005c40| 70 29 29 20 62 72 65 61 | 6b 3b 0a 20 7d 0a 69 66 |p)) brea|k;. }.if|
|00005c50| 28 6e 3e 70 2d 3e 6f 66 | 73 74 29 20 72 65 74 75 |(n>p->of|st) retu|
|00005c60| 72 6e 20 30 3b 0a 70 2d | 3e 6f 66 73 74 2d 3d 6e |rn 0;.p-|>ofst-=n|
|00005c70| 3b 0a 72 65 74 75 72 6e | 20 70 3b 0a 7d 0a 0a 50 |;.return| p;.}..P|
|00005c80| 20 2a 70 62 6b 77 64 66 | 28 70 2c 6e 29 0a 50 20 | *pbkwdf|(p,n).P |
|00005c90| 2a 70 3b 0a 6c 6f 6e 67 | 20 6e 3b 0a 7b 0a 77 68 |*p;.long| n;.{.wh|
|00005ca0| 69 6c 65 28 6e 2d 2d 29 | 0a 20 7b 0a 20 69 66 28 |ile(n--)|. {. if(|
|00005cb0| 21 70 2d 3e 6f 66 73 74 | 29 20 69 66 28 21 70 70 |!p->ofst|) if(!pp|
|00005cc0| 72 65 76 28 70 29 29 20 | 72 65 74 75 72 6e 20 30 |rev(p)) |return 0|
|00005cd0| 3b 0a 20 2d 2d 70 2d 3e | 6f 66 73 74 3b 0a 20 2d |;. --p->|ofst;. -|
|00005ce0| 2d 70 2d 3e 62 79 74 65 | 3b 0a 20 69 66 28 70 2d |-p->byte|;. if(p-|
|00005cf0| 3e 6f 66 73 74 3e 3d 70 | 2d 3e 68 64 72 2d 3e 68 |>ofst>=p|->hdr->h|
|00005d00| 6f 6c 65 29 0a 20 20 7b | 0a 20 20 69 66 28 27 5c |ole). {|. if('\|
|00005d10| 6e 27 3d 3d 70 2d 3e 70 | 74 72 5b 70 2d 3e 6f 66 |n'==p->p|tr[p->of|
|00005d20| 73 74 2b 70 2d 3e 68 64 | 72 2d 3e 65 68 6f 6c 65 |st+p->hd|r->ehole|
|00005d30| 2d 70 2d 3e 68 64 72 2d | 3e 68 6f 6c 65 5d 29 0a |-p->hdr-|>hole]).|
|00005d40| 20 20 2d 2d 70 2d 3e 6c | 69 6e 65 3b 0a 20 20 7d | --p->l|ine;. }|
|00005d50| 0a 20 65 6c 73 65 20 69 | 66 28 27 5c 6e 27 3d 3d |. else i|f('\n'==|
|00005d60| 70 2d 3e 70 74 72 5b 70 | 2d 3e 6f 66 73 74 5d 29 |p->ptr[p|->ofst])|
|00005d70| 20 2d 2d 70 2d 3e 6c 69 | 6e 65 3b 0a 20 7d 0a 72 | --p->li|ne;. }.r|
|00005d80| 65 74 75 72 6e 20 70 3b | 0a 7d 0a 0a 50 20 2a 70 |eturn p;|.}..P *p|
|00005d90| 66 63 6f 6c 28 70 29 0a | 50 20 2a 70 3b 0a 7b 0a |fcol(p).|P *p;.{.|
|00005da0| 48 20 2a 68 64 72 3d 70 | 2d 3e 68 64 72 3b 0a 69 |H *hdr=p|->hdr;.i|
|00005db0| 6e 74 20 6f 66 73 74 3d | 70 2d 3e 6f 66 73 74 3b |nt ofst=|p->ofst;|
|00005dc0| 0a 70 62 6f 6c 6e 28 70 | 29 3b 0a 77 68 69 6c 65 |.pboln(p|);.while|
|00005dd0| 28 70 2d 3e 6f 66 73 74 | 21 3d 6f 66 73 74 20 7c |(p->ofst|!=ofst ||
|00005de0| 7c 20 70 2d 3e 68 64 72 | 21 3d 68 64 72 29 20 70 || p->hdr|!=hdr) p|
|00005df0| 67 65 74 63 28 70 29 3b | 0a 72 65 74 75 72 6e 20 |getc(p);|.return |
|00005e00| 70 3b 0a 7d 0a 0a 50 20 | 2a 70 62 6b 77 64 28 70 |p;.}..P |*pbkwd(p|
|00005e10| 2c 6e 29 0a 50 20 2a 70 | 3b 0a 6c 6f 6e 67 20 6e |,n).P *p|;.long n|
|00005e20| 3b 0a 7b 0a 50 20 2a 79 | 3d 70 62 6b 77 64 66 28 |;.{.P *y|=pbkwdf(|
|00005e30| 70 2c 6e 29 3b 0a 70 66 | 63 6f 6c 28 70 29 3b 0a |p,n);.pf|col(p);.|
|00005e40| 72 65 74 75 72 6e 20 79 | 3b 0a 7d 0a 0a 50 20 2a |return y|;.}..P *|
|00005e50| 70 62 6f 6c 28 70 29 0a | 50 20 2a 70 3b 0a 7b 0a |pbol(p).|P *p;.{.|
|00005e60| 69 66 28 70 2d 3e 6c 62 | 79 74 65 29 20 70 62 6b |if(p->lb|yte) pbk|
|00005e70| 77 64 6e 28 70 2c 70 2d | 3e 6c 62 79 74 65 29 3b |wdn(p,p-|>lbyte);|
|00005e80| 0a 70 2d 3e 62 79 74 65 | 2d 3d 70 2d 3e 6c 62 79 |.p->byte|-=p->lby|
|00005e90| 74 65 3b 20 70 2d 3e 6c | 62 79 74 65 3d 30 3b 20 |te; p->l|byte=0; |
|00005ea0| 70 2d 3e 63 6f 6c 3d 30 | 3b 0a 72 65 74 75 72 6e |p->col=0|;.return|
|00005eb0| 20 70 3b 0a 7d 0a 0a 50 | 20 2a 70 62 6f 6c 6e 28 | p;.}..P| *pboln(|
|00005ec0| 70 29 0a 50 20 2a 70 3b | 0a 7b 0a 69 66 28 70 70 |p).P *p;|.{.if(pp|
|00005ed0| 72 65 76 6c 28 70 29 29 | 20 70 67 65 74 63 28 70 |revl(p))| pgetc(p|
|00005ee0| 29 3b 0a 70 2d 3e 63 6f | 6c 3d 30 3b 20 70 2d 3e |);.p->co|l=0; p->|
|00005ef0| 6c 62 79 74 65 3d 30 3b | 0a 72 65 74 75 72 6e 20 |lbyte=0;|.return |
|00005f00| 70 3b 0a 7d 0a 0a 50 20 | 2a 70 65 6f 6c 28 70 29 |p;.}..P |*peol(p)|
|00005f10| 0a 50 20 2a 70 3b 0a 7b | 0a 77 68 69 6c 65 28 70 |.P *p;.{|.while(p|
|00005f20| 2d 3e 68 64 72 21 3d 70 | 2d 3e 62 2d 3e 62 6f 66 |->hdr!=p|->b->bof|
|00005f30| 2d 3e 68 64 72 2d 3e 6c | 69 6e 6b 2e 70 72 65 76 |->hdr->l|ink.prev|
|00005f40| 29 0a 20 7b 0a 20 75 6e | 73 69 67 6e 65 64 20 63 |). {. un|signed c|
|00005f50| 68 61 72 20 63 3b 0a 20 | 69 66 28 70 2d 3e 6f 66 |har c;. |if(p->of|
|00005f60| 73 74 3e 3d 70 2d 3e 68 | 64 72 2d 3e 68 6f 6c 65 |st>=p->h|dr->hole|
|00005f70| 29 20 63 3d 70 2d 3e 70 | 74 72 5b 70 2d 3e 6f 66 |) c=p->p|tr[p->of|
|00005f80| 73 74 2b 70 2d 3e 68 64 | 72 2d 3e 65 68 6f 6c 65 |st+p->hd|r->ehole|
|00005f90| 2d 70 2d 3e 68 64 72 2d | 3e 68 6f 6c 65 5d 3b 0a |-p->hdr-|>hole];.|
|00005fa0| 20 65 6c 73 65 20 63 3d | 70 2d 3e 70 74 72 5b 70 | else c=|p->ptr[p|
|00005fb0| 2d 3e 6f 66 73 74 5d 3b | 0a 20 69 66 28 63 3d 3d |->ofst];|. if(c==|
|00005fc0| 27 5c 6e 27 29 20 62 72 | 65 61 6b 3b 0a 20 65 6c |'\n') br|eak;. el|
|00005fd0| 73 65 0a 20 20 7b 0a 20 | 20 2b 2b 70 2d 3e 62 79 |se. {. | ++p->by|
|00005fe0| 74 65 3b 0a 20 20 2b 2b | 70 2d 3e 6f 66 73 74 3b |te;. ++|p->ofst;|
|00005ff0| 0a 20 20 2b 2b 70 2d 3e | 6c 62 79 74 65 3b 0a 20 |. ++p->|lbyte;. |
|00006000| 20 69 66 28 63 3d 3d 27 | 5c 74 27 29 20 70 2d 3e | if(c=='|\t') p->|
|00006010| 63 6f 6c 2b 3d 70 2d 3e | 62 2d 3e 74 61 62 2d 70 |col+=p->|b->tab-p|
|00006020| 2d 3e 63 6f 6c 25 70 2d | 3e 62 2d 3e 74 61 62 3b |->col%p-|>b->tab;|
|00006030| 0a 20 20 65 6c 73 65 20 | 2b 2b 70 2d 3e 63 6f 6c |. else |++p->col|
|00006040| 3b 0a 20 20 69 66 28 70 | 2d 3e 6f 66 73 74 3d 3d |;. if(p|->ofst==|
|00006050| 47 53 49 5a 45 28 70 2d | 3e 68 64 72 29 29 20 70 |GSIZE(p-|>hdr)) p|
|00006060| 6e 65 78 74 28 70 29 3b | 20 0a 20 20 7d 0a 20 7d |next(p);| . }. }|
|00006070| 0a 72 65 74 75 72 6e 20 | 70 3b 0a 7d 0a 0a 50 20 |.return |p;.}..P |
|00006080| 2a 70 6e 65 78 74 6c 28 | 70 29 0a 50 20 2a 70 3b |*pnextl(|p).P *p;|
|00006090| 0a 7b 0a 63 68 61 72 20 | 63 3b 0a 64 6f 0a 20 7b |.{.char |c;.do. {|
|000060a0| 0a 20 69 66 28 70 2d 3e | 6f 66 73 74 3d 3d 47 53 |. if(p->|ofst==GS|
|000060b0| 49 5a 45 28 70 2d 3e 68 | 64 72 29 29 20 69 66 28 |IZE(p->h|dr)) if(|
|000060c0| 21 70 6e 65 78 74 28 70 | 29 29 20 72 65 74 75 72 |!pnext(p|)) retur|
|000060d0| 6e 20 30 3b 0a 20 69 66 | 28 70 2d 3e 6f 66 73 74 |n 0;. if|(p->ofst|
|000060e0| 3e 3d 70 2d 3e 68 64 72 | 2d 3e 68 6f 6c 65 29 20 |>=p->hdr|->hole) |
|000060f0| 63 3d 70 2d 3e 70 74 72 | 5b 70 2d 3e 6f 66 73 74 |c=p->ptr|[p->ofst|
|00006100| 2b 70 2d 3e 68 64 72 2d | 3e 65 68 6f 6c 65 2d 70 |+p->hdr-|>ehole-p|
|00006110| 2d 3e 68 64 72 2d 3e 68 | 6f 6c 65 5d 3b 0a 20 65 |->hdr->h|ole];. e|
|00006120| 6c 73 65 20 63 3d 70 2d | 3e 70 74 72 5b 70 2d 3e |lse c=p-|>ptr[p->|
|00006130| 6f 66 73 74 5d 3b 0a 20 | 2b 2b 70 2d 3e 62 79 74 |ofst];. |++p->byt|
|00006140| 65 3b 20 2b 2b 70 2d 3e | 6f 66 73 74 3b 0a 20 7d |e; ++p->|ofst;. }|
|00006150| 0a 20 77 68 69 6c 65 28 | 63 21 3d 27 5c 6e 27 29 |. while(|c!='\n')|
|00006160| 3b 0a 2b 2b 70 2d 3e 6c | 69 6e 65 3b 0a 70 2d 3e |;.++p->l|ine;.p->|
|00006170| 63 6f 6c 3d 30 3b 20 70 | 2d 3e 6c 62 79 74 65 3d |col=0; p|->lbyte=|
|00006180| 30 3b 0a 69 66 28 70 2d | 3e 6f 66 73 74 3d 3d 47 |0;.if(p-|>ofst==G|
|00006190| 53 49 5a 45 28 70 2d 3e | 68 64 72 29 29 20 70 6e |SIZE(p->|hdr)) pn|
|000061a0| 65 78 74 28 70 29 3b 0a | 72 65 74 75 72 6e 20 70 |ext(p);.|return p|
|000061b0| 3b 0a 7d 0a 0a 50 20 2a | 70 70 72 65 76 6c 28 70 |;.}..P *|pprevl(p|
|000061c0| 29 0a 50 20 2a 70 3b 0a | 7b 0a 63 68 61 72 20 63 |).P *p;.|{.char c|
|000061d0| 3b 0a 64 6f 0a 20 7b 0a | 20 69 66 28 21 70 2d 3e |;.do. {.| if(!p->|
|000061e0| 6f 66 73 74 29 20 69 66 | 28 21 70 70 72 65 76 28 |ofst) if|(!pprev(|
|000061f0| 70 29 29 20 72 65 74 75 | 72 6e 20 30 3b 0a 20 2d |p)) retu|rn 0;. -|
|00006200| 2d 70 2d 3e 6f 66 73 74 | 3b 20 2d 2d 70 2d 3e 62 |-p->ofst|; --p->b|
|00006210| 79 74 65 3b 0a 20 69 66 | 28 70 2d 3e 6f 66 73 74 |yte;. if|(p->ofst|
|00006220| 3e 3d 70 2d 3e 68 64 72 | 2d 3e 68 6f 6c 65 29 20 |>=p->hdr|->hole) |
|00006230| 63 3d 70 2d 3e 70 74 72 | 5b 70 2d 3e 6f 66 73 74 |c=p->ptr|[p->ofst|
|00006240| 2b 70 2d 3e 68 64 72 2d | 3e 65 68 6f 6c 65 2d 70 |+p->hdr-|>ehole-p|
|00006250| 2d 3e 68 64 72 2d 3e 68 | 6f 6c 65 5d 3b 0a 20 65 |->hdr->h|ole];. e|
|00006260| 6c 73 65 20 63 3d 70 2d | 3e 70 74 72 5b 70 2d 3e |lse c=p-|>ptr[p->|
|00006270| 6f 66 73 74 5d 3b 0a 20 | 7d 0a 20 77 68 69 6c 65 |ofst];. |}. while|
|00006280| 28 63 21 3d 27 5c 6e 27 | 29 3b 0a 2d 2d 70 2d 3e |(c!='\n'|);.--p->|
|00006290| 6c 69 6e 65 3b 0a 72 65 | 74 75 72 6e 20 70 3b 0a |line;.re|turn p;.|
|000062a0| 7d 0a 0a 50 20 2a 70 6c | 69 6e 65 28 70 2c 6c 69 |}..P *pl|ine(p,li|
|000062b0| 6e 65 29 0a 50 20 2a 70 | 3b 0a 6c 6f 6e 67 20 6c |ne).P *p|;.long l|
|000062c0| 69 6e 65 3b 0a 7b 0a 69 | 66 28 6c 69 6e 65 3e 70 |ine;.{.i|f(line>p|
|000062d0| 2d 3e 62 2d 3e 65 6f 66 | 2d 3e 6c 69 6e 65 29 20 |->b->eof|->line) |
|000062e0| 7b 20 70 73 65 74 28 70 | 2c 70 2d 3e 62 2d 3e 65 |{ pset(p|,p->b->e|
|000062f0| 6f 66 29 3b 20 72 65 74 | 75 72 6e 20 70 3b 20 7d |of); ret|urn p; }|
|00006300| 0a 69 66 28 6c 69 6e 65 | 3c 49 61 62 73 28 70 2d |.if(line|<Iabs(p-|
|00006310| 3e 6c 69 6e 65 2d 6c 69 | 6e 65 29 29 20 70 73 65 |>line-li|ne)) pse|
|00006320| 74 28 70 2c 70 2d 3e 62 | 2d 3e 62 6f 66 29 3b 0a |t(p,p->b|->bof);.|
|00006330| 69 66 28 49 61 62 73 28 | 70 2d 3e 62 2d 3e 65 6f |if(Iabs(|p->b->eo|
|00006340| 66 2d 3e 6c 69 6e 65 2d | 6c 69 6e 65 29 3c 49 61 |f->line-|line)<Ia|
|00006350| 62 73 28 70 2d 3e 6c 69 | 6e 65 2d 6c 69 6e 65 29 |bs(p->li|ne-line)|
|00006360| 29 20 70 73 65 74 28 70 | 2c 70 2d 3e 62 2d 3e 65 |) pset(p|,p->b->e|
|00006370| 6f 66 29 3b 0a 69 66 28 | 70 2d 3e 6c 69 6e 65 3d |of);.if(|p->line=|
|00006380| 3d 6c 69 6e 65 29 20 7b | 20 70 62 6f 6c 28 70 29 |=line) {| pbol(p)|
|00006390| 3b 20 72 65 74 75 72 6e | 20 70 3b 20 7d 0a 77 68 |; return| p; }.wh|
|000063a0| 69 6c 65 28 6c 69 6e 65 | 3e 70 2d 3e 6c 69 6e 65 |ile(line|>p->line|
|000063b0| 29 20 70 6e 65 78 74 6c | 28 70 29 3b 0a 69 66 28 |) pnextl|(p);.if(|
|000063c0| 6c 69 6e 65 3c 70 2d 3e | 6c 69 6e 65 29 0a 20 7b |line<p->|line). {|
|000063d0| 0a 20 77 68 69 6c 65 28 | 6c 69 6e 65 3c 70 2d 3e |. while(|line<p->|
|000063e0| 6c 69 6e 65 29 20 70 70 | 72 65 76 6c 28 70 29 3b |line) pp|revl(p);|
|000063f0| 0a 20 70 62 6f 6c 6e 28 | 70 29 3b 0a 20 7d 0a 70 |. pboln(|p);. }.p|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.