home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| C source text
| default
| |
99%
| file
| C source, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 75 6e 69 78 0a 46 72 |.sources|.unix.Fr|
|00000020| 6f 6d 3a 20 6a 6e 77 65 | 69 67 65 72 40 69 6d 6d |om: jnwe|iger@imm|
|00000030| 64 34 2e 69 6e 66 6f 72 | 6d 61 74 69 6b 2e 75 6e |d4.infor|matik.un|
|00000040| 69 2d 65 72 6c 61 6e 67 | 65 6e 2e 64 65 20 28 4a |i-erlang|en.de (J|
|00000050| 75 65 72 67 65 6e 20 57 | 65 69 67 65 72 74 29 0a |uergen W|eigert).|
|00000060| 53 75 62 6a 65 63 74 3a | 20 76 32 35 69 30 34 37 |Subject:| v25i047|
|00000070| 3a 20 53 63 72 65 65 6e | 33 20 2d 20 6d 75 6c 74 |: Screen|3 - mult|
|00000080| 69 70 6c 65 20 77 69 6e | 64 6f 77 73 20 6f 6e 20 |iple win|dows on |
|00000090| 61 6e 20 41 53 43 49 49 | 20 74 65 72 6d 69 6e 61 |an ASCII| termina|
|000000a0| 6c 2c 20 50 61 72 74 30 | 37 2f 30 38 0a 53 65 6e |l, Part0|7/08.Sen|
|000000b0| 64 65 72 3a 20 73 6f 75 | 72 63 65 73 2d 6d 6f 64 |der: sou|rces-mod|
|000000c0| 65 72 61 74 6f 72 40 70 | 61 2e 64 65 63 2e 63 6f |erator@p|a.dec.co|
|000000d0| 6d 0a 41 70 70 72 6f 76 | 65 64 3a 20 76 69 78 69 |m.Approv|ed: vixi|
|000000e0| 65 40 70 61 2e 64 65 63 | 2e 63 6f 6d 0a 0a 53 75 |e@pa.dec|.com..Su|
|000000f0| 62 6d 69 74 74 65 64 2d | 42 79 3a 20 6a 6e 77 65 |bmitted-|By: jnwe|
|00000100| 69 67 65 72 40 69 6d 6d | 64 34 2e 69 6e 66 6f 72 |iger@imm|d4.infor|
|00000110| 6d 61 74 69 6b 2e 75 6e | 69 2d 65 72 6c 61 6e 67 |matik.un|i-erlang|
|00000120| 65 6e 2e 64 65 20 28 4a | 75 65 72 67 65 6e 20 57 |en.de (J|uergen W|
|00000130| 65 69 67 65 72 74 29 0a | 50 6f 73 74 69 6e 67 2d |eigert).|Posting-|
|00000140| 4e 75 6d 62 65 72 3a 20 | 56 6f 6c 75 6d 65 20 32 |Number: |Volume 2|
|00000150| 35 2c 20 49 73 73 75 65 | 20 34 37 0a 41 72 63 68 |5, Issue| 47.Arch|
|00000160| 69 76 65 2d 4e 61 6d 65 | 3a 20 73 63 72 65 65 6e |ive-Name|: screen|
|00000170| 33 2f 70 61 72 74 30 37 | 0a 0a 23 21 20 2f 62 69 |3/part07|..#! /bi|
|00000180| 6e 2f 73 68 0a 23 20 54 | 68 69 73 20 69 73 20 61 |n/sh.# T|his is a|
|00000190| 20 73 68 65 6c 6c 20 61 | 72 63 68 69 76 65 2e 20 | shell a|rchive. |
|000001a0| 20 52 65 6d 6f 76 65 20 | 61 6e 79 74 68 69 6e 67 | Remove |anything|
|000001b0| 20 62 65 66 6f 72 65 20 | 74 68 69 73 20 6c 69 6e | before |this lin|
|000001c0| 65 2c 20 74 68 65 6e 20 | 75 6e 70 61 63 6b 0a 23 |e, then |unpack.#|
|000001d0| 20 69 74 20 62 79 20 73 | 61 76 69 6e 67 20 69 74 | it by s|aving it|
|000001e0| 20 69 6e 74 6f 20 61 20 | 66 69 6c 65 20 61 6e 64 | into a |file and|
|000001f0| 20 74 79 70 69 6e 67 20 | 22 73 68 20 66 69 6c 65 | typing |"sh file|
|00000200| 22 2e 20 20 54 6f 20 6f | 76 65 72 77 72 69 74 65 |". To o|verwrite|
|00000210| 20 65 78 69 73 74 69 6e | 67 0a 23 20 66 69 6c 65 | existin|g.# file|
|00000220| 73 2c 20 74 79 70 65 20 | 22 73 68 20 66 69 6c 65 |s, type |"sh file|
|00000230| 20 2d 63 22 2e 20 20 59 | 6f 75 20 63 61 6e 20 61 | -c". Y|ou can a|
|00000240| 6c 73 6f 20 66 65 65 64 | 20 74 68 69 73 20 61 73 |lso feed| this as|
|00000250| 20 73 74 61 6e 64 61 72 | 64 20 69 6e 70 75 74 20 | standar|d input |
|00000260| 76 69 61 0a 23 20 75 6e | 73 68 61 72 2c 20 6f 72 |via.# un|shar, or|
|00000270| 20 62 79 20 74 79 70 69 | 6e 67 20 22 73 68 20 3c | by typi|ng "sh <|
|00000280| 66 69 6c 65 22 2c 20 65 | 2e 67 2e 2e 20 20 49 66 |file", e|.g.. If|
|00000290| 20 74 68 69 73 20 61 72 | 63 68 69 76 65 20 69 73 | this ar|chive is|
|000002a0| 20 63 6f 6d 70 6c 65 74 | 65 2c 20 79 6f 75 0a 23 | complet|e, you.#|
|000002b0| 20 77 69 6c 6c 20 73 65 | 65 20 74 68 65 20 66 6f | will se|e the fo|
|000002c0| 6c 6c 6f 77 69 6e 67 20 | 6d 65 73 73 61 67 65 20 |llowing |message |
|000002d0| 61 74 20 74 68 65 20 65 | 6e 64 3a 0a 23 09 09 22 |at the e|nd:.#.."|
|000002e0| 45 6e 64 20 6f 66 20 61 | 72 63 68 69 76 65 20 37 |End of a|rchive 7|
|000002f0| 20 28 6f 66 20 38 29 2e | 22 0a 23 20 43 6f 6e 74 | (of 8).|".# Cont|
|00000300| 65 6e 74 73 3a 20 20 61 | 6e 73 69 2e 63 0a 23 20 |ents: a|nsi.c.# |
|00000310| 57 72 61 70 70 65 64 20 | 62 79 20 76 69 78 69 65 |Wrapped |by vixie|
|00000320| 40 63 6f 67 6e 69 74 69 | 6f 6e 2e 70 61 2e 64 65 |@cogniti|on.pa.de|
|00000330| 63 2e 63 6f 6d 20 6f 6e | 20 54 68 75 20 44 65 63 |c.com on| Thu Dec|
|00000340| 20 31 39 20 31 37 3a 33 | 36 3a 30 36 20 31 39 39 | 19 17:3|6:06 199|
|00000350| 31 0a 50 41 54 48 3d 2f | 62 69 6e 3a 2f 75 73 72 |1.PATH=/|bin:/usr|
|00000360| 2f 62 69 6e 3a 2f 75 73 | 72 2f 75 63 62 20 3b 20 |/bin:/us|r/ucb ; |
|00000370| 65 78 70 6f 72 74 20 50 | 41 54 48 0a 69 66 20 74 |export P|ATH.if t|
|00000380| 65 73 74 20 2d 66 20 27 | 61 6e 73 69 2e 63 27 20 |est -f '|ansi.c' |
|00000390| 2d 61 20 22 24 7b 31 7d | 22 20 21 3d 20 22 2d 63 |-a "${1}|" != "-c|
|000003a0| 22 20 3b 20 74 68 65 6e | 20 0a 20 20 65 63 68 6f |" ; then| . echo|
|000003b0| 20 73 68 61 72 3a 20 57 | 69 6c 6c 20 6e 6f 74 20 | shar: W|ill not |
|000003c0| 63 6c 6f 62 62 65 72 20 | 65 78 69 73 74 69 6e 67 |clobber |existing|
|000003d0| 20 66 69 6c 65 20 5c 22 | 27 61 6e 73 69 2e 63 27 | file \"|'ansi.c'|
|000003e0| 5c 22 0a 65 6c 73 65 0a | 65 63 68 6f 20 73 68 61 |\".else.|echo sha|
|000003f0| 72 3a 20 45 78 74 72 61 | 63 74 69 6e 67 20 5c 22 |r: Extra|cting \"|
|00000400| 27 61 6e 73 69 2e 63 27 | 5c 22 20 5c 28 36 38 31 |'ansi.c'|\" \(681|
|00000410| 33 34 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |34 chara|cters\).|
|00000420| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 61 |sed "s/^|X//" >'a|
|00000430| 6e 73 69 2e 63 27 20 3c | 3c 27 45 4e 44 5f 4f 46 |nsi.c' <|<'END_OF|
|00000440| 5f 46 49 4c 45 27 0a 58 | 2f 2a 20 43 6f 70 79 72 |_FILE'.X|/* Copyr|
|00000450| 69 67 68 74 20 28 63 29 | 20 31 39 39 31 0a 58 20 |ight (c)| 1991.X |
|00000460| 2a 20 20 20 20 20 20 4a | 75 65 72 67 65 6e 20 57 |* J|uergen W|
|00000470| 65 69 67 65 72 74 20 28 | 6a 6e 77 65 69 67 65 72 |eigert (|jnweiger|
|00000480| 40 69 6d 6d 64 34 2e 69 | 6e 66 6f 72 6d 61 74 69 |@immd4.i|nformati|
|00000490| 6b 2e 75 6e 69 2d 65 72 | 6c 61 6e 67 65 6e 2e 64 |k.uni-er|langen.d|
|000004a0| 65 29 0a 58 20 2a 20 20 | 20 20 20 20 4d 69 63 68 |e).X * | Mich|
|000004b0| 61 65 6c 20 53 63 68 72 | 6f 65 64 65 72 20 28 6d |ael Schr|oeder (m|
|000004c0| 6c 73 63 68 72 6f 65 40 | 69 6d 6d 64 34 2e 69 6e |lschroe@|immd4.in|
|000004d0| 66 6f 72 6d 61 74 69 6b | 2e 75 6e 69 2d 65 72 6c |formatik|.uni-erl|
|000004e0| 61 6e 67 65 6e 2e 64 65 | 29 0a 58 20 2a 20 43 6f |angen.de|).X * Co|
|000004f0| 70 79 72 69 67 68 74 20 | 28 63 29 20 31 39 38 37 |pyright |(c) 1987|
|00000500| 20 4f 6c 69 76 65 72 20 | 4c 61 75 6d 61 6e 6e 0a | Oliver |Laumann.|
|00000510| 58 20 2a 20 41 6c 6c 20 | 72 69 67 68 74 73 20 72 |X * All |rights r|
|00000520| 65 73 65 72 76 65 64 2e | 20 20 4e 6f 74 20 64 65 |eserved.| Not de|
|00000530| 72 69 76 65 64 20 66 72 | 6f 6d 20 6c 69 63 65 6e |rived fr|om licen|
|00000540| 73 65 64 20 73 6f 66 74 | 77 61 72 65 2e 0a 58 20 |sed soft|ware..X |
|00000550| 2a 0a 58 20 2a 20 50 65 | 72 6d 69 73 73 69 6f 6e |*.X * Pe|rmission|
|00000560| 20 69 73 20 67 72 61 6e | 74 65 64 20 74 6f 20 66 | is gran|ted to f|
|00000570| 72 65 65 6c 79 20 75 73 | 65 2c 20 63 6f 70 79 2c |reely us|e, copy,|
|00000580| 20 6d 6f 64 69 66 79 2c | 20 61 6e 64 20 72 65 64 | modify,| and red|
|00000590| 69 73 74 72 69 62 75 74 | 65 0a 58 20 2a 20 74 68 |istribut|e.X * th|
|000005a0| 69 73 20 73 6f 66 74 77 | 61 72 65 2c 20 70 72 6f |is softw|are, pro|
|000005b0| 76 69 64 65 64 20 74 68 | 61 74 20 6e 6f 20 61 74 |vided th|at no at|
|000005c0| 74 65 6d 70 74 20 69 73 | 20 6d 61 64 65 20 74 6f |tempt is| made to|
|000005d0| 20 67 61 69 6e 20 70 72 | 6f 66 69 74 20 66 72 6f | gain pr|ofit fro|
|000005e0| 6d 20 69 74 2c 0a 58 20 | 2a 20 74 68 65 20 61 75 |m it,.X |* the au|
|000005f0| 74 68 6f 72 73 20 61 72 | 65 20 6e 6f 74 20 63 6f |thors ar|e not co|
|00000600| 6e 73 74 72 75 65 64 20 | 74 6f 20 62 65 20 6c 69 |nstrued |to be li|
|00000610| 61 62 6c 65 20 66 6f 72 | 20 61 6e 79 20 72 65 73 |able for| any res|
|00000620| 75 6c 74 73 20 6f 66 20 | 75 73 69 6e 67 20 74 68 |ults of |using th|
|00000630| 65 0a 58 20 2a 20 73 6f | 66 74 77 61 72 65 2c 20 |e.X * so|ftware, |
|00000640| 61 6c 74 65 72 61 74 69 | 6f 6e 73 20 61 72 65 20 |alterati|ons are |
|00000650| 63 6c 65 61 72 6c 79 20 | 6d 61 72 6b 65 64 20 61 |clearly |marked a|
|00000660| 73 20 73 75 63 68 2c 20 | 61 6e 64 20 74 68 69 73 |s such, |and this|
|00000670| 20 6e 6f 74 69 63 65 20 | 69 73 0a 58 20 2a 20 6e | notice |is.X * n|
|00000680| 6f 74 20 6d 6f 64 69 66 | 69 65 64 2e 0a 58 20 2a |ot modif|ied..X *|
|00000690| 0a 58 20 2a 20 4e 6f 74 | 65 77 6f 72 74 68 79 20 |.X * Not|eworthy |
|000006a0| 63 6f 6e 74 72 69 62 75 | 74 6f 72 73 20 74 6f 20 |contribu|tors to |
|000006b0| 73 63 72 65 65 6e 27 73 | 20 64 65 73 69 67 6e 20 |screen's| design |
|000006c0| 61 6e 64 20 69 6d 70 6c | 65 6d 65 6e 74 61 74 69 |and impl|ementati|
|000006d0| 6f 6e 3a 0a 58 20 2a 09 | 57 61 79 6e 65 20 44 61 |on:.X *.|Wayne Da|
|000006e0| 76 69 73 6f 6e 20 28 64 | 61 76 69 73 6f 6e 40 62 |vison (d|avison@b|
|000006f0| 6f 72 6c 61 6e 64 2e 63 | 6f 6d 29 0a 58 20 2a 09 |orland.c|om).X *.|
|00000700| 50 61 74 72 69 63 6b 20 | 57 6f 6c 66 65 20 28 70 |Patrick |Wolfe (p|
|00000710| 61 74 40 6b 61 69 2e 63 | 6f 6d 2c 20 6b 61 69 6c |at@kai.c|om, kail|
|00000720| 61 6e 64 21 70 61 74 29 | 0a 58 20 2a 09 42 61 72 |and!pat)|.X *.Bar|
|00000730| 74 20 53 63 68 61 65 66 | 65 72 20 28 73 63 68 61 |t Schaef|er (scha|
|00000740| 65 66 65 72 40 63 73 65 | 2e 6f 67 69 2e 65 64 75 |efer@cse|.ogi.edu|
|00000750| 29 0a 58 20 2a 09 4e 61 | 74 68 61 6e 20 47 6c 61 |).X *.Na|than Gla|
|00000760| 73 73 65 72 20 28 6e 61 | 74 68 61 6e 40 62 72 6f |sser (na|than@bro|
|00000770| 6b 61 77 2e 6c 63 73 2e | 6d 69 74 2e 65 64 75 29 |kaw.lcs.|mit.edu)|
|00000780| 0a 58 20 2a 09 4c 61 72 | 72 79 20 57 2e 20 56 69 |.X *.Lar|ry W. Vi|
|00000790| 72 64 65 6e 20 28 6c 77 | 76 32 37 25 63 61 73 2e |rden (lw|v27%cas.|
|000007a0| 42 49 54 4e 45 54 40 43 | 55 4e 59 56 4d 2e 43 55 |BITNET@C|UNYVM.CU|
|000007b0| 4e 59 2e 45 64 75 29 0a | 58 20 2a 09 48 6f 77 61 |NY.Edu).|X *.Howa|
|000007c0| 72 64 20 43 68 75 20 28 | 68 79 63 40 68 61 6e 61 |rd Chu (|hyc@hana|
|000007d0| 75 6d 61 2e 6a 70 6c 2e | 6e 61 73 61 2e 67 6f 76 |uma.jpl.|nasa.gov|
|000007e0| 29 0a 58 20 2a 09 54 69 | 6d 20 4d 61 63 4b 65 6e |).X *.Ti|m MacKen|
|000007f0| 7a 69 65 20 28 74 79 6d | 40 64 69 62 62 6c 65 72 |zie (tym|@dibbler|
|00000800| 2e 63 73 2e 6d 6f 6e 61 | 73 68 2e 65 64 75 2e 61 |.cs.mona|sh.edu.a|
|00000810| 75 29 0a 58 20 2a 09 4d | 61 72 6b 6b 75 20 4a 61 |u).X *.M|arkku Ja|
|00000820| 72 76 69 6e 65 6e 20 28 | 6d 74 61 40 7b 63 63 2c |rvinen (|mta@{cc,|
|00000830| 63 73 2c 65 65 7d 2e 74 | 75 74 2e 66 69 29 0a 58 |cs,ee}.t|ut.fi).X|
|00000840| 20 2a 09 4d 61 72 63 20 | 42 6f 75 63 68 65 72 20 | *.Marc |Boucher |
|00000850| 28 6d 61 72 63 40 43 41 | 4d 2e 4f 52 47 29 0a 58 |(marc@CA|M.ORG).X|
|00000860| 20 2a 0a 58 20 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *.X ***|********|
|00000870| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000880| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000890| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000008a0| 2a 2a 2a 2a 2a 0a 58 20 | 2a 2f 0a 58 0a 58 23 69 |*****.X |*/.X.X#i|
|000008b0| 66 6e 64 65 66 20 6c 69 | 6e 74 0a 58 20 20 73 74 |fndef li|nt.X st|
|000008c0| 61 74 69 63 20 63 68 61 | 72 20 72 63 73 5f 69 64 |atic cha|r rcs_id|
|000008d0| 5b 5d 20 3d 20 22 24 49 | 64 3a 20 61 6e 73 69 2e |[] = "$I|d: ansi.|
|000008e0| 63 2c 76 20 31 2e 38 38 | 20 39 31 2f 31 30 2f 31 |c,v 1.88| 91/10/1|
|000008f0| 31 20 31 31 3a 32 37 3a | 34 30 20 6a 6e 77 65 69 |1 11:27:|40 jnwei|
|00000900| 67 65 72 20 45 78 70 20 | 24 20 46 41 55 22 3b 0a |ger Exp |$ FAU";.|
|00000910| 58 23 65 6e 64 69 66 0a | 58 0a 58 23 69 6e 63 6c |X#endif.|X.X#incl|
|00000920| 75 64 65 20 3c 73 74 64 | 69 6f 2e 68 3e 0a 58 23 |ude <std|io.h>.X#|
|00000930| 69 66 20 64 65 66 69 6e | 65 64 28 42 53 44 29 20 |if defin|ed(BSD) |
|00000940| 7c 7c 20 64 65 66 69 6e | 65 64 28 73 65 71 75 65 ||| defin|ed(seque|
|00000950| 6e 74 29 20 7c 7c 20 64 | 65 66 69 6e 65 64 28 70 |nt) || d|efined(p|
|00000960| 79 72 29 0a 58 23 20 69 | 6e 63 6c 75 64 65 20 3c |yr).X# i|nclude <|
|00000970| 73 74 72 69 6e 67 73 2e | 68 3e 0a 58 23 65 6c 73 |strings.|h>.X#els|
|00000980| 65 0a 58 23 20 69 6e 63 | 6c 75 64 65 20 3c 73 74 |e.X# inc|lude <st|
|00000990| 72 69 6e 67 2e 68 3e 0a | 58 23 65 6e 64 69 66 0a |ring.h>.|X#endif.|
|000009a0| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 79 73 2f 74 |X#includ|e <sys/t|
|000009b0| 79 70 65 73 2e 68 3e 0a | 58 23 69 6e 63 6c 75 64 |ypes.h>.|X#includ|
|000009c0| 65 20 22 63 6f 6e 66 69 | 67 2e 68 22 0a 58 23 69 |e "confi|g.h".X#i|
|000009d0| 6e 63 6c 75 64 65 20 22 | 73 63 72 65 65 6e 2e 68 |nclude "|screen.h|
|000009e0| 22 0a 58 23 69 6e 63 6c | 75 64 65 20 22 61 6e 73 |".X#incl|ude "ans|
|000009f0| 69 2e 68 22 0a 58 23 69 | 6e 63 6c 75 64 65 20 22 |i.h".X#i|nclude "|
|00000a00| 65 78 74 65 72 6e 2e 68 | 22 0a 58 23 69 6e 63 6c |extern.h|".X#incl|
|00000a10| 75 64 65 20 3c 66 63 6e | 74 6c 2e 68 3e 0a 58 23 |ude <fcn|tl.h>.X#|
|00000a20| 69 66 6e 64 65 66 20 73 | 75 6e 20 2f 2a 20 77 65 |ifndef s|un /* we|
|00000a30| 20 77 61 6e 74 20 74 6f | 20 6b 6e 6f 77 20 61 62 | want to| know ab|
|00000a40| 6f 75 74 20 54 49 4f 43 | 47 57 49 4e 53 5a 2e 20 |out TIOC|GWINSZ. |
|00000a50| 6a 77 2e 20 2a 2f 0a 58 | 23 20 69 6e 63 6c 75 64 |jw. */.X|# includ|
|00000a60| 65 20 3c 73 79 73 2f 69 | 6f 63 74 6c 2e 68 3e 0a |e <sys/i|octl.h>.|
|00000a70| 58 23 65 6e 64 69 66 0a | 58 0a 65 78 74 65 72 6e |X#endif.|X.extern|
|00000a80| 20 63 68 61 72 20 2a 67 | 65 74 65 6e 76 28 29 2c | char *g|etenv(),|
|00000a90| 20 2a 74 67 65 74 73 74 | 72 28 29 2c 20 2a 74 67 | *tgetst|r(), *tg|
|00000aa0| 6f 74 6f 28 29 3b 0a 58 | 23 69 66 6e 64 65 66 20 |oto();.X|#ifndef |
|00000ab0| 5f 5f 53 54 44 43 5f 5f | 0a 65 78 74 65 72 6e 20 |__STDC__|.extern |
|00000ac0| 63 68 61 72 20 2a 6d 61 | 6c 6c 6f 63 28 29 3b 0a |char *ma|lloc();.|
|00000ad0| 58 23 65 6e 64 69 66 0a | 58 0a 65 78 74 65 72 6e |X#endif.|X.extern|
|00000ae0| 20 73 74 72 75 63 74 20 | 77 69 6e 20 2a 66 6f 72 | struct |win *for|
|00000af0| 65 3b 0a 65 78 74 65 72 | 6e 20 69 6e 74 20 46 6f |e;.exter|n int Fo|
|00000b00| 72 65 4e 75 6d 3b 0a 65 | 78 74 65 72 6e 20 66 6f |reNum;.e|xtern fo|
|00000b10| 72 63 65 5f 76 74 2c 20 | 61 73 73 75 6d 65 5f 4c |rce_vt, |assume_L|
|00000b20| 50 3b 0a 65 78 74 65 72 | 6e 20 69 6e 74 20 42 65 |P;.exter|n int Be|
|00000b30| 6c 6c 44 69 73 70 6c 61 | 79 65 64 3b 0a 65 78 74 |llDispla|yed;.ext|
|00000b40| 65 72 6e 20 69 6e 74 20 | 4d 73 67 4d 69 6e 57 61 |ern int |MsgMinWa|
|00000b50| 69 74 3b 0a 58 0a 58 23 | 69 66 64 65 66 20 54 49 |it;.X.X#|ifdef TI|
|00000b60| 4f 43 47 57 49 4e 53 5a | 0a 65 78 74 65 72 6e 20 |OCGWINSZ|.extern |
|00000b70| 73 74 72 75 63 74 20 77 | 69 6e 73 69 7a 65 20 67 |struct w|insize g|
|00000b80| 6c 77 7a 3b 0a 58 23 65 | 6e 64 69 66 0a 58 0a 73 |lwz;.X#e|ndif.X.s|
|00000b90| 74 61 74 69 63 20 69 6e | 74 20 72 6f 77 73 2c 20 |tatic in|t rows, |
|00000ba0| 63 6f 6c 73 3b 09 09 2f | 2a 20 77 69 6e 64 6f 77 |cols;../|* window|
|00000bb0| 20 73 69 7a 65 20 6f 66 | 20 74 68 65 20 63 75 72 | size of| the cur|
|00000bc0| 72 20 77 69 6e 64 6f 77 | 2e 20 2a 2f 0a 69 6e 74 |r window|. */.int|
|00000bd0| 20 54 65 72 6d 63 61 70 | 52 4f 57 53 2c 20 54 65 | Termcap|ROWS, Te|
|00000be0| 72 6d 63 61 70 43 4f 4c | 53 3b 09 2f 2a 20 64 65 |rmcapCOL|S;./* de|
|00000bf0| 66 61 75 6c 74 73 20 74 | 68 61 74 20 77 65 20 6c |faults t|hat we l|
|00000c00| 65 61 72 6e 65 64 20 66 | 72 6f 6d 20 74 65 72 6d |earned f|rom term|
|00000c10| 63 61 70 20 2a 2f 0a 69 | 6e 74 20 6d 61 78 77 69 |cap */.i|nt maxwi|
|00000c20| 64 74 68 2c 20 5a 30 77 | 69 64 74 68 2c 20 5a 31 |dth, Z0w|idth, Z1|
|00000c30| 77 69 64 74 68 3b 0a 69 | 6e 74 20 64 65 66 61 75 |width;.i|nt defau|
|00000c40| 6c 74 5f 77 69 64 74 68 | 2c 20 64 65 66 61 75 6c |lt_width|, defaul|
|00000c50| 74 5f 68 65 69 67 68 74 | 3b 09 2f 2a 20 77 69 64 |t_height|;./* wid|
|00000c60| 74 68 2f 68 65 69 67 68 | 74 20 61 20 6e 65 77 20 |th/heigh|t a new |
|00000c70| 77 69 6e 64 6f 77 20 77 | 69 6c 6c 20 67 65 74 20 |window w|ill get |
|00000c80| 2a 2f 0a 58 0a 69 6e 74 | 20 73 63 72 65 65 6e 77 |*/.X.int| screenw|
|00000c90| 69 64 74 68 2c 20 73 63 | 72 65 65 6e 68 65 69 67 |idth, sc|reenheig|
|00000ca0| 68 74 3b 09 2f 2a 20 77 | 69 64 74 68 2f 68 65 69 |ht;./* w|idth/hei|
|00000cb0| 67 68 74 20 6f 66 20 74 | 68 65 20 66 6f 72 65 20 |ght of t|he fore |
|00000cc0| 77 69 6e 64 6f 77 20 2a | 2f 0a 69 6e 74 20 73 63 |window *|/.int sc|
|00000cd0| 72 65 65 6e 74 6f 70 2c | 20 73 63 72 65 65 6e 62 |reentop,| screenb|
|00000ce0| 6f 74 3b 09 2f 2a 20 73 | 63 72 6f 6c 6c 72 65 67 |ot;./* s|crollreg|
|00000cf0| 69 6f 6e 20 73 74 61 72 | 74 2f 65 6e 64 20 2a 2f |ion star|t/end */|
|00000d00| 0a 69 6e 74 20 73 63 72 | 65 65 6e 78 2c 20 73 63 |.int scr|eenx, sc|
|00000d10| 72 65 65 6e 79 3b 09 09 | 2f 2a 20 63 75 72 73 6f |reeny;..|/* curso|
|00000d20| 72 20 70 6f 73 69 74 69 | 6f 6e 20 2a 2f 0a 63 68 |r positi|on */.ch|
|00000d30| 61 72 20 47 6c 6f 62 61 | 6c 41 74 74 72 2c 20 47 |ar Globa|lAttr, G|
|00000d40| 6c 6f 62 61 6c 43 68 61 | 72 73 65 74 3b 0a 69 6e |lobalCha|rset;.in|
|00000d50| 74 20 69 6e 73 65 72 74 | 3b 09 09 09 2f 2a 20 69 |t insert|;.../* i|
|00000d60| 6e 73 65 72 74 20 6d 6f | 64 65 20 2a 2f 0a 69 6e |nsert mo|de */.in|
|00000d70| 74 20 6b 65 79 70 61 64 | 3b 0a 69 6e 74 20 66 6c |t keypad|;.int fl|
|00000d80| 6f 77 3b 0a 58 0a 69 6e | 74 20 73 74 61 74 75 73 |ow;.X.in|t status|
|00000d90| 3b 0a 73 74 61 74 69 63 | 20 69 6e 74 20 73 74 61 |;.static| int sta|
|00000da0| 74 75 73 5f 6c 61 73 74 | 78 2c 20 73 74 61 74 75 |tus_last|x, statu|
|00000db0| 73 5f 6c 61 73 74 79 3b | 0a 58 0a 69 6e 74 20 66 |s_lasty;|.X.int f|
|00000dc0| 6c 6f 77 63 74 6c 2c 20 | 77 72 61 70 20 3d 20 31 |lowctl, |wrap = 1|
|00000dd0| 2c 20 64 65 66 61 75 6c | 74 5f 6d 6f 6e 69 74 6f |, defaul|t_monito|
|00000de0| 72 20 3d 20 30 3b 20 0a | 69 6e 74 20 76 69 73 75 |r = 0; .|int visu|
|00000df0| 61 6c 5f 62 65 6c 6c 20 | 3d 20 30 2c 20 74 65 72 |al_bell |= 0, ter|
|00000e00| 6d 63 61 70 48 53 2c 20 | 75 73 65 5f 68 61 72 64 |mcapHS, |use_hard|
|00000e10| 73 74 61 74 75 73 20 3d | 20 31 3b 0a 63 68 61 72 |status =| 1;.char|
|00000e20| 20 2a 54 65 72 6d 63 61 | 70 2c 20 2a 65 78 74 72 | *Termca|p, *extr|
|00000e30| 61 5f 69 6e 63 61 70 2c | 20 2a 65 78 74 72 61 5f |a_incap,| *extra_|
|00000e40| 6f 75 74 63 61 70 3b 0a | 73 74 61 74 69 63 20 69 |outcap;.|static i|
|00000e50| 6e 74 20 54 65 72 6d 63 | 61 70 6c 65 6e 3b 0a 63 |nt Termc|aplen;.c|
|00000e60| 68 61 72 20 2a 62 6c 61 | 6e 6b 2c 20 2a 6e 75 6c |har *bla|nk, *nul|
|00000e70| 6c 2c 20 2a 4c 61 73 74 | 4d 73 67 3b 0a 63 68 61 |l, *Last|Msg;.cha|
|00000e80| 72 20 54 65 72 6d 5b 4d | 41 58 53 54 52 2b 35 5d |r Term[M|AXSTR+5]|
|00000e90| 3b 09 2f 2a 20 2b 35 3a | 20 22 54 45 52 4d 3d 22 |;./* +5:| "TERM="|
|00000ea0| 20 2a 2f 0a 63 68 61 72 | 20 73 63 72 65 65 6e 74 | */.char| screent|
|00000eb0| 65 72 6d 5b 32 30 5d 20 | 3d 20 22 73 63 72 65 65 |erm[20] |= "scree|
|00000ec0| 6e 22 3b 0a 63 68 61 72 | 20 2a 5a 30 2c 20 2a 5a |n";.char| *Z0, *Z|
|00000ed0| 31 3b 0a 69 6e 74 20 49 | 53 4f 32 30 32 32 2c 20 |1;.int I|SO2022, |
|00000ee0| 48 53 3b 0a 74 69 6d 65 | 5f 74 20 54 69 6d 65 44 |HS;.time|_t TimeD|
|00000ef0| 69 73 70 6c 61 79 65 64 | 2c 20 74 69 6d 65 28 29 |isplayed|, time()|
|00000f00| 3b 0a 58 0a 58 2f 2a 0a | 58 20 2a 20 74 68 65 20 |;.X.X/*.|X * the |
|00000f10| 74 65 72 6d 63 61 70 20 | 72 6f 75 74 69 6e 65 73 |termcap |routines|
|00000f20| 20 6e 65 65 64 20 74 68 | 69 73 20 74 6f 20 77 6f | need th|is to wo|
|00000f30| 72 6b 0a 58 20 2a 2f 0a | 73 68 6f 72 74 20 6f 73 |rk.X */.|short os|
|00000f40| 70 65 65 64 3b 0a 63 68 | 61 72 20 2a 42 43 3b 0a |peed;.ch|ar *BC;.|
|00000f50| 63 68 61 72 20 2a 55 50 | 3b 0a 58 0a 73 74 61 74 |char *UP|;.X.stat|
|00000f60| 69 63 20 76 6f 69 64 20 | 41 64 64 43 61 70 20 5f |ic void |AddCap _|
|00000f70| 5f 50 28 28 63 68 61 72 | 20 2a 29 29 3b 0a 73 74 |_P((char| *));.st|
|00000f80| 61 74 69 63 20 76 6f 69 | 64 20 4d 61 6b 65 53 74 |atic voi|d MakeSt|
|00000f90| 72 69 6e 67 20 5f 5f 50 | 28 28 63 68 61 72 20 2a |ring __P|((char *|
|00000fa0| 2c 20 63 68 61 72 20 2a | 2c 20 69 6e 74 2c 20 63 |, char *|, int, c|
|00000fb0| 68 61 72 20 2a 29 29 3b | 0a 73 74 61 74 69 63 20 |har *));|.static |
|00000fc0| 69 6e 74 20 53 70 65 63 | 69 61 6c 20 5f 5f 50 28 |int Spec|ial __P(|
|00000fd0| 28 69 6e 74 29 29 3b 0a | 73 74 61 74 69 63 20 76 |(int));.|static v|
|00000fe0| 6f 69 64 20 44 6f 45 53 | 43 20 5f 5f 50 28 28 69 |oid DoES|C __P((i|
|00000ff0| 6e 74 2c 20 69 6e 74 20 | 29 29 3b 0a 73 74 61 74 |nt, int |));.stat|
|00001000| 69 63 20 76 6f 69 64 20 | 44 6f 43 53 49 20 5f 5f |ic void |DoCSI __|
|00001010| 50 28 28 69 6e 74 2c 20 | 69 6e 74 20 29 29 3b 0a |P((int, |int ));.|
|00001020| 73 74 61 74 69 63 20 76 | 6f 69 64 20 43 50 75 74 |static v|oid CPut|
|00001030| 53 74 72 20 5f 5f 50 28 | 28 63 68 61 72 20 2a 2c |Str __P(|(char *,|
|00001040| 20 69 6e 74 29 29 3b 0a | 73 74 61 74 69 63 20 76 | int));.|static v|
|00001050| 6f 69 64 20 53 65 74 43 | 68 61 72 20 5f 5f 50 28 |oid SetC|har __P(|
|00001060| 28 29 29 3b 0a 73 74 61 | 74 69 63 20 76 6f 69 64 |());.sta|tic void|
|00001070| 20 53 74 61 72 74 53 74 | 72 69 6e 67 20 5f 5f 50 | StartSt|ring __P|
|00001080| 28 28 65 6e 75 6d 20 73 | 74 72 69 6e 67 5f 74 29 |((enum s|tring_t)|
|00001090| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 41 |);.stati|c void A|
|000010a0| 64 64 43 68 61 72 20 5f | 5f 50 28 28 69 6e 74 20 |ddChar _|_P((int |
|000010b0| 29 29 3b 0a 73 74 61 74 | 69 63 20 76 6f 69 64 20 |));.stat|ic void |
|000010c0| 50 72 69 6e 74 43 68 61 | 72 20 5f 5f 50 28 28 69 |PrintCha|r __P((i|
|000010d0| 6e 74 20 29 29 3b 0a 73 | 74 61 74 69 63 20 76 6f |nt ));.s|tatic vo|
|000010e0| 69 64 20 50 72 69 6e 74 | 46 6c 75 73 68 20 5f 5f |id Print|Flush __|
|000010f0| 50 28 28 76 6f 69 64 29 | 29 3b 0a 73 74 61 74 69 |P((void)|);.stati|
|00001100| 63 20 76 6f 69 64 20 4b | 65 79 70 61 64 4d 6f 64 |c void K|eypadMod|
|00001110| 65 20 5f 5f 50 28 28 69 | 6e 74 29 29 3b 0a 73 74 |e __P((i|nt));.st|
|00001120| 61 74 69 63 20 76 6f 69 | 64 20 46 6c 6f 77 4d 6f |atic voi|d FlowMo|
|00001130| 64 65 20 5f 5f 50 28 28 | 69 6e 74 29 29 3b 0a 73 |de __P((|int));.s|
|00001140| 74 61 74 69 63 20 76 6f | 69 64 20 44 65 73 69 67 |tatic vo|id Desig|
|00001150| 6e 61 74 65 43 68 61 72 | 73 65 74 20 5f 5f 50 28 |nateChar|set __P(|
|00001160| 28 69 6e 74 2c 20 69 6e | 74 20 29 29 3b 0a 73 74 |(int, in|t ));.st|
|00001170| 61 74 69 63 20 76 6f 69 | 64 20 4d 61 70 43 68 61 |atic voi|d MapCha|
|00001180| 72 73 65 74 20 5f 5f 50 | 28 28 69 6e 74 29 29 3b |rset __P|((int));|
|00001190| 0a 73 74 61 74 69 63 20 | 76 6f 69 64 20 53 61 76 |.static |void Sav|
|000011a0| 65 43 75 72 73 6f 72 20 | 5f 5f 50 28 28 76 6f 69 |eCursor |__P((voi|
|000011b0| 64 29 29 3b 0a 73 74 61 | 74 69 63 20 76 6f 69 64 |d));.sta|tic void|
|000011c0| 20 52 65 73 74 6f 72 65 | 43 75 72 73 6f 72 20 5f | Restore|Cursor _|
|000011d0| 5f 50 28 28 76 6f 69 64 | 29 29 3b 0a 73 74 61 74 |_P((void|));.stat|
|000011e0| 69 63 20 76 6f 69 64 20 | 43 6f 75 6e 74 43 68 61 |ic void |CountCha|
|000011f0| 72 73 20 5f 5f 50 28 28 | 69 6e 74 29 29 3b 0a 73 |rs __P((|int));.s|
|00001200| 74 61 74 69 63 20 69 6e | 74 20 43 61 6c 63 43 6f |tatic in|t CalcCo|
|00001210| 73 74 20 5f 5f 50 28 28 | 63 68 61 72 20 2a 29 29 |st __P((|char *))|
|00001220| 3b 0a 73 74 61 74 69 63 | 20 69 6e 74 20 52 65 77 |;.static| int Rew|
|00001230| 72 69 74 65 20 5f 5f 50 | 28 28 69 6e 74 2c 20 69 |rite __P|((int, i|
|00001240| 6e 74 2c 20 69 6e 74 2c | 20 69 6e 74 29 29 3b 0a |nt, int,| int));.|
|00001250| 73 74 61 74 69 63 20 76 | 6f 69 64 20 42 61 63 6b |static v|oid Back|
|00001260| 53 70 61 63 65 20 5f 5f | 50 28 28 76 6f 69 64 29 |Space __|P((void)|
|00001270| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 52 |);.stati|c void R|
|00001280| 65 74 75 72 6e 20 5f 5f | 50 28 28 76 6f 69 64 29 |eturn __|P((void)|
|00001290| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 4c |);.stati|c void L|
|000012a0| 69 6e 65 46 65 65 64 20 | 5f 5f 50 28 28 69 6e 74 |ineFeed |__P((int|
|000012b0| 29 29 3b 0a 73 74 61 74 | 69 63 20 76 6f 69 64 20 |));.stat|ic void |
|000012c0| 52 65 76 65 72 73 65 4c | 69 6e 65 46 65 65 64 20 |ReverseL|ineFeed |
|000012d0| 5f 5f 50 28 28 76 6f 69 | 64 29 29 3b 0a 73 74 61 |__P((voi|d));.sta|
|000012e0| 74 69 63 20 76 6f 69 64 | 20 49 6e 73 65 72 74 41 |tic void| InsertA|
|000012f0| 43 68 61 72 20 5f 5f 50 | 28 28 69 6e 74 29 29 3b |Char __P|((int));|
|00001300| 0a 73 74 61 74 69 63 20 | 76 6f 69 64 20 49 6e 73 |.static |void Ins|
|00001310| 65 72 74 43 68 61 72 20 | 5f 5f 50 28 28 69 6e 74 |ertChar |__P((int|
|00001320| 29 29 3b 0a 73 74 61 74 | 69 63 20 76 6f 69 64 20 |));.stat|ic void |
|00001330| 44 65 6c 65 74 65 43 68 | 61 72 20 5f 5f 50 28 28 |DeleteCh|ar __P((|
|00001340| 69 6e 74 29 29 3b 0a 73 | 74 61 74 69 63 20 76 6f |int));.s|tatic vo|
|00001350| 69 64 20 44 65 6c 65 74 | 65 4c 69 6e 65 20 5f 5f |id Delet|eLine __|
|00001360| 50 28 28 69 6e 74 29 29 | 3b 0a 73 74 61 74 69 63 |P((int))|;.static|
|00001370| 20 76 6f 69 64 20 49 6e | 73 65 72 74 4c 69 6e 65 | void In|sertLine|
|00001380| 20 5f 5f 50 28 28 69 6e | 74 29 29 3b 0a 73 74 61 | __P((in|t));.sta|
|00001390| 74 69 63 20 76 6f 69 64 | 20 53 63 72 6f 6c 6c 55 |tic void| ScrollU|
|000013a0| 70 4d 61 70 20 5f 5f 50 | 28 28 69 6e 74 29 29 3b |pMap __P|((int));|
|000013b0| 0a 73 74 61 74 69 63 20 | 76 6f 69 64 20 53 63 72 |.static |void Scr|
|000013c0| 6f 6c 6c 44 6f 77 6e 4d | 61 70 20 5f 5f 50 28 28 |ollDownM|ap __P((|
|000013d0| 69 6e 74 29 29 3b 0a 73 | 74 61 74 69 63 20 76 6f |int));.s|tatic vo|
|000013e0| 69 64 20 53 63 72 6f 6c | 6c 20 5f 5f 50 28 28 63 |id Scrol|l __P((c|
|000013f0| 68 61 72 20 2a 2c 20 69 | 6e 74 2c 20 69 6e 74 2c |har *, i|nt, int,|
|00001400| 20 63 68 61 72 20 2a 29 | 29 3b 0a 73 74 61 74 69 | char *)|);.stati|
|00001410| 63 20 76 6f 69 64 20 46 | 6f 72 77 61 72 64 54 61 |c void F|orwardTa|
|00001420| 62 20 5f 5f 50 28 28 76 | 6f 69 64 29 29 3b 0a 73 |b __P((v|oid));.s|
|00001430| 74 61 74 69 63 20 76 6f | 69 64 20 42 61 63 6b 77 |tatic vo|id Backw|
|00001440| 61 72 64 54 61 62 20 5f | 5f 50 28 28 76 6f 69 64 |ardTab _|_P((void|
|00001450| 29 29 3b 0a 73 74 61 74 | 69 63 20 76 6f 69 64 20 |));.stat|ic void |
|00001460| 43 6c 65 61 72 53 63 72 | 65 65 6e 20 5f 5f 50 28 |ClearScr|een __P(|
|00001470| 28 76 6f 69 64 29 29 3b | 0a 73 74 61 74 69 63 20 |(void));|.static |
|00001480| 76 6f 69 64 20 43 6c 65 | 61 72 46 72 6f 6d 42 4f |void Cle|arFromBO|
|00001490| 53 20 5f 5f 50 28 28 76 | 6f 69 64 29 29 3b 0a 73 |S __P((v|oid));.s|
|000014a0| 74 61 74 69 63 20 76 6f | 69 64 20 43 6c 65 61 72 |tatic vo|id Clear|
|000014b0| 54 6f 45 4f 53 20 5f 5f | 50 28 28 76 6f 69 64 29 |ToEOS __|P((void)|
|000014c0| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 43 |);.stati|c void C|
|000014d0| 6c 65 61 72 4c 69 6e 65 | 20 5f 5f 50 28 28 76 6f |learLine| __P((vo|
|000014e0| 69 64 29 29 3b 0a 73 74 | 61 74 69 63 20 76 6f 69 |id));.st|atic voi|
|000014f0| 64 20 43 6c 65 61 72 54 | 6f 45 4f 4c 20 5f 5f 50 |d ClearT|oEOL __P|
|00001500| 28 28 76 6f 69 64 29 29 | 3b 0a 73 74 61 74 69 63 |((void))|;.static|
|00001510| 20 76 6f 69 64 20 43 6c | 65 61 72 46 72 6f 6d 42 | void Cl|earFromB|
|00001520| 4f 4c 20 5f 5f 50 28 28 | 76 6f 69 64 29 29 3b 0a |OL __P((|void));.|
|00001530| 73 74 61 74 69 63 20 76 | 6f 69 64 20 43 6c 65 61 |static v|oid Clea|
|00001540| 72 49 6e 4c 69 6e 65 20 | 5f 5f 50 28 28 69 6e 74 |rInLine |__P((int|
|00001550| 2c 20 69 6e 74 2c 20 69 | 6e 74 2c 20 69 6e 74 20 |, int, i|nt, int |
|00001560| 29 29 3b 0a 73 74 61 74 | 69 63 20 76 6f 69 64 20 |));.stat|ic void |
|00001570| 43 75 72 73 6f 72 52 69 | 67 68 74 20 5f 5f 50 28 |CursorRi|ght __P(|
|00001580| 28 29 29 3b 0a 73 74 61 | 74 69 63 20 76 6f 69 64 |());.sta|tic void|
|00001590| 20 43 75 72 73 6f 72 55 | 70 20 5f 5f 50 28 28 29 | CursorU|p __P(()|
|000015a0| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 43 |);.stati|c void C|
|000015b0| 75 72 73 6f 72 44 6f 77 | 6e 20 5f 5f 50 28 28 29 |ursorDow|n __P(()|
|000015c0| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 43 |);.stati|c void C|
|000015d0| 75 72 73 6f 72 4c 65 66 | 74 20 5f 5f 50 28 28 29 |ursorLef|t __P(()|
|000015e0| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 41 |);.stati|c void A|
|000015f0| 53 65 74 4d 6f 64 65 20 | 5f 5f 50 28 28 69 6e 74 |SetMode |__P((int|
|00001600| 29 29 3b 0a 73 74 61 74 | 69 63 20 76 6f 69 64 20 |));.stat|ic void |
|00001610| 53 65 6c 65 63 74 52 65 | 6e 64 69 74 69 6f 6e 20 |SelectRe|ndition |
|00001620| 5f 5f 50 28 28 76 6f 69 | 64 29 29 3b 0a 73 74 61 |__P((voi|d));.sta|
|00001630| 74 69 63 20 76 6f 69 64 | 20 46 69 6c 6c 57 69 74 |tic void| FillWit|
|00001640| 68 45 73 20 5f 5f 50 28 | 28 76 6f 69 64 29 29 3b |hEs __P(|(void));|
|00001650| 0a 73 74 61 74 69 63 20 | 76 6f 69 64 20 52 65 64 |.static |void Red|
|00001660| 69 73 70 6c 61 79 4c 69 | 6e 65 20 5f 5f 50 28 28 |isplayLi|ne __P((|
|00001670| 63 68 61 72 20 2a 2c 20 | 63 68 61 72 20 2a 2c 20 |char *, |char *, |
|00001680| 63 68 61 72 20 2a 2c 20 | 69 6e 74 2c 20 69 6e 74 |char *, |int, int|
|00001690| 2c 20 69 6e 74 20 29 29 | 3b 0a 73 74 61 74 69 63 |, int ))|;.static|
|000016a0| 20 76 6f 69 64 20 46 69 | 6e 64 41 4b 41 20 5f 5f | void Fi|ndAKA __|
|000016b0| 50 28 28 76 6f 69 64 29 | 29 3b 0a 73 74 61 74 69 |P((void)|);.stati|
|000016c0| 63 20 76 6f 69 64 20 53 | 65 74 43 75 72 72 20 5f |c void S|etCurr _|
|000016d0| 5f 50 28 28 73 74 72 75 | 63 74 20 77 69 6e 20 2a |_P((stru|ct win *|
|000016e0| 29 29 3b 0a 73 74 61 74 | 69 63 20 76 6f 69 64 20 |));.stat|ic void |
|000016f0| 69 6e 70 52 65 64 69 73 | 70 6c 61 79 4c 69 6e 65 |inpRedis|playLine|
|00001700| 20 5f 5f 50 28 28 69 6e | 74 2c 20 69 6e 74 2c 20 | __P((in|t, int, |
|00001710| 69 6e 74 2c 20 69 6e 74 | 29 29 3b 0a 73 74 61 74 |int, int|));.stat|
|00001720| 69 63 20 76 6f 69 64 20 | 70 72 6f 63 65 73 73 5f |ic void |process_|
|00001730| 69 6e 70 5f 69 6e 70 75 | 74 20 5f 5f 50 28 28 63 |inp_inpu|t __P((c|
|00001740| 68 61 72 20 2a 2a 2c 20 | 69 6e 74 20 2a 29 29 3b |har **, |int *));|
|00001750| 0a 73 74 61 74 69 63 20 | 76 6f 69 64 20 41 62 6f |.static |void Abo|
|00001760| 72 74 49 6e 70 20 5f 5f | 50 28 28 76 6f 69 64 29 |rtInp __|P((void)|
|00001770| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 41 |);.stati|c void A|
|00001780| 4b 41 66 69 6e 20 5f 5f | 50 28 28 63 68 61 72 20 |KAfin __|P((char |
|00001790| 2a 2c 20 69 6e 74 29 29 | 3b 0a 73 74 61 74 69 63 |*, int))|;.static|
|000017a0| 20 76 6f 69 64 20 43 6f | 6c 6f 6e 66 69 6e 20 5f | void Co|lonfin _|
|000017b0| 5f 50 28 28 63 68 61 72 | 20 2a 2c 20 69 6e 74 29 |_P((char| *, int)|
|000017c0| 29 3b 0a 73 74 61 74 69 | 63 20 76 6f 69 64 20 52 |);.stati|c void R|
|000017d0| 41 57 5f 50 55 54 43 48 | 41 52 20 5f 5f 50 28 28 |AW_PUTCH|AR __P((|
|000017e0| 69 6e 74 29 29 3b 0a 73 | 74 61 74 69 63 20 63 68 |int));.s|tatic ch|
|000017f0| 61 72 20 2a 65 5f 74 67 | 65 74 73 74 72 20 5f 5f |ar *e_tg|etstr __|
|00001800| 50 28 28 63 68 61 72 20 | 2a 2c 20 63 68 61 72 20 |P((char |*, char |
|00001810| 2a 2a 29 29 3b 0a 73 74 | 61 74 69 63 20 69 6e 74 |**));.st|atic int|
|00001820| 20 65 5f 74 67 65 74 66 | 6c 61 67 20 5f 5f 50 28 | e_tgetf|lag __P(|
|00001830| 28 63 68 61 72 20 2a 29 | 29 3b 0a 73 74 61 74 69 |(char *)|);.stati|
|00001840| 63 20 69 6e 74 20 65 5f | 74 67 65 74 6e 75 6d 20 |c int e_|tgetnum |
|00001850| 5f 5f 50 28 28 63 68 61 | 72 20 2a 29 29 3b 0a 58 |__P((cha|r *));.X|
|00001860| 0a 58 0a 73 74 61 74 69 | 63 20 63 68 61 72 20 2a |.X.stati|c char *|
|00001870| 74 62 75 66 2c 20 2a 74 | 65 6e 74 72 79 2c 20 2a |tbuf, *t|entry, *|
|00001880| 74 65 72 6d 6e 61 6d 65 | 3b 0a 73 74 61 74 69 63 |termname|;.static|
|00001890| 20 63 68 61 72 20 2a 74 | 70 3b 0a 73 74 61 74 69 | char *t|p;.stati|
|000018a0| 63 20 63 68 61 72 20 2a | 54 49 2c 20 2a 54 45 2c |c char *|TI, *TE,|
|000018b0| 20 2a 42 4c 2c 20 2a 56 | 42 2c 20 2a 43 52 2c 20 | *BL, *V|B, *CR, |
|000018c0| 2a 4e 4c 2c 20 2a 43 4c | 2c 20 2a 49 53 3b 0a 63 |*NL, *CL|, *IS;.c|
|000018d0| 68 61 72 20 2a 57 53 3b | 09 2f 2a 20 75 73 65 64 |har *WS;|./* used|
|000018e0| 20 69 6e 20 52 65 73 69 | 7a 65 53 63 72 65 65 6e | in Resi|zeScreen|
|000018f0| 28 29 20 2a 2f 0a 63 68 | 61 72 20 2a 43 45 3b 09 |() */.ch|ar *CE;.|
|00001900| 2f 2a 20 75 73 65 64 20 | 69 6e 20 68 65 6c 70 2e |/* used |in help.|
|00001910| 63 20 2a 2f 0a 73 74 61 | 74 69 63 20 63 68 61 72 |c */.sta|tic char|
|00001920| 20 2a 43 4d 2c 20 2a 55 | 53 2c 20 2a 55 45 2c 20 | *CM, *U|S, *UE, |
|00001930| 2a 53 4f 2c 20 2a 53 45 | 2c 20 2a 43 44 2c 20 2a |*SO, *SE|, *CD, *|
|00001940| 44 4f 2c 20 2a 53 52 2c | 20 2a 53 46 2c 20 2a 41 |DO, *SR,| *SF, *A|
|00001950| 4c 3b 0a 73 74 61 74 69 | 63 20 63 68 61 72 20 2a |L;.stati|c char *|
|00001960| 43 53 2c 20 2a 44 4c 2c | 20 2a 44 43 2c 20 2a 49 |CS, *DL,| *DC, *I|
|00001970| 43 2c 20 2a 49 4d 2c 20 | 2a 45 49 2c 20 2a 4e 44 |C, *IM, |*EI, *ND|
|00001980| 2c 20 2a 4b 53 2c 20 2a | 4b 45 3b 0a 73 74 61 74 |, *KS, *|KE;.stat|
|00001990| 69 63 20 63 68 61 72 20 | 2a 4d 42 2c 20 2a 4d 44 |ic char |*MB, *MD|
|000019a0| 2c 20 2a 4d 48 2c 20 2a | 4d 52 2c 20 2a 4d 45 2c |, *MH, *|MR, *ME,|
|000019b0| 20 2a 50 4f 2c 20 2a 50 | 46 2c 20 2a 48 4f 3b 0a | *PO, *P|F, *HO;.|
|000019c0| 73 74 61 74 69 63 20 63 | 68 61 72 20 2a 54 53 2c |static c|har *TS,|
|000019d0| 20 2a 46 53 2c 20 2a 44 | 53 2c 20 2a 56 49 2c 20 | *FS, *D|S, *VI, |
|000019e0| 2a 56 45 2c 20 2a 56 53 | 3b 0a 73 74 61 74 69 63 |*VE, *VS|;.static|
|000019f0| 20 63 68 61 72 20 2a 43 | 44 43 2c 20 2a 43 44 4c | char *C|DC, *CDL|
|00001a00| 2c 20 2a 43 41 4c 2c 20 | 2a 43 55 50 2c 20 2a 43 |, *CAL, |*CUP, *C|
|00001a10| 44 4f 2c 20 2a 43 4c 45 | 2c 20 2a 43 52 49 2c 20 |DO, *CLE|, *CRI, |
|00001a20| 2a 43 49 43 3b 0a 73 74 | 61 74 69 63 20 63 68 61 |*CIC;.st|atic cha|
|00001a30| 72 20 2a 61 74 74 72 74 | 61 62 5b 4e 41 54 54 52 |r *attrt|ab[NATTR|
|00001a40| 5d 3b 0a 73 74 61 74 69 | 63 20 41 4d 2c 20 4d 53 |];.stati|c AM, MS|
|00001a50| 2c 20 43 4f 50 3b 0a 69 | 6e 74 20 4c 50 3b 0a 58 |, COP;.i|nt LP;.X|
|00001a60| 2f 2a 0a 58 20 2a 20 44 | 6f 20 6e 6f 74 20 63 6f |/*.X * D|o not co|
|00001a70| 6e 66 75 73 65 20 53 30 | 20 28 65 73 2d 7a 65 72 |nfuse S0| (es-zer|
|00001a80| 6f 29 2c 20 45 30 20 28 | 65 2d 7a 65 72 6f 29 20 |o), E0 (|e-zero) |
|00001a90| 77 69 74 68 20 53 4f 20 | 28 65 73 2d 6f 68 29 2c |with SO |(es-oh),|
|00001aa0| 20 50 4f 20 28 70 65 2d | 6f 68 29 2c 0a 58 20 2a | PO (pe-|oh),.X *|
|00001ab0| 20 5a 30 20 28 7a 2d 7a | 65 72 6f 29 2c 20 44 4f | Z0 (z-z|ero), DO|
|00001ac0| 20 28 64 65 2d 6f 68 29 | 2e 2e 2e 20 3a 2d 29 0a | (de-oh)|... :-).|
|00001ad0| 58 20 2a 2f 0a 73 74 61 | 74 69 63 20 63 68 61 72 |X */.sta|tic char|
|00001ae0| 20 2a 43 30 2c 20 2a 53 | 30 2c 20 2a 45 30 3b 0a | *C0, *S|0, *E0;.|
|00001af0| 73 74 61 74 69 63 20 63 | 68 61 72 20 63 30 5f 74 |static c|har c0_t|
|00001b00| 61 62 5b 32 35 36 5d 3b | 0a 58 2f 2a 0a 58 20 2a |ab[256];|.X/*.X *|
|00001b10| 2f 0a 73 74 61 74 69 63 | 20 73 63 72 65 65 6e 63 |/.static| screenc|
|00001b20| 61 70 20 3d 20 30 3b 0a | 63 68 61 72 20 2a 4f 6c |ap = 0;.|char *Ol|
|00001b30| 64 49 6d 61 67 65 2c 20 | 2a 4f 6c 64 41 74 74 72 |dImage, |*OldAttr|
|00001b40| 2c 20 2a 4f 6c 64 46 6f | 6e 74 3b 0a 73 74 61 74 |, *OldFo|nt;.stat|
|00001b50| 69 63 20 73 74 72 75 63 | 74 20 77 69 6e 20 2a 63 |ic struc|t win *c|
|00001b60| 75 72 72 3b 0a 73 74 61 | 74 69 63 20 64 69 73 70 |urr;.sta|tic disp|
|00001b70| 6c 61 79 20 3d 20 31 3b | 0a 73 74 61 74 69 63 20 |lay = 1;|.static |
|00001b80| 53 74 72 43 6f 73 74 3b | 0a 73 74 61 74 69 63 20 |StrCost;|.static |
|00001b90| 55 50 63 6f 73 74 2c 20 | 44 4f 63 6f 73 74 2c 20 |UPcost, |DOcost, |
|00001ba0| 4c 45 63 6f 73 74 2c 20 | 4e 44 63 6f 73 74 2c 20 |LEcost, |NDcost, |
|00001bb0| 43 52 63 6f 73 74 2c 20 | 49 4d 63 6f 73 74 2c 20 |CRcost, |IMcost, |
|00001bc0| 45 49 63 6f 73 74 2c 20 | 4e 4c 63 6f 73 74 3b 0a |EIcost, |NLcost;.|
|00001bd0| 73 74 61 74 69 63 20 74 | 63 4c 69 6e 65 4c 65 6e |static t|cLineLen|
|00001be0| 3b 0a 73 74 61 74 69 63 | 20 53 74 61 74 4c 65 6e |;.static| StatLen|
|00001bf0| 3b 0a 73 74 61 74 69 63 | 20 6c 70 5f 6d 69 73 73 |;.static| lp_miss|
|00001c00| 69 6e 67 20 3d 20 30 3b | 0a 58 0a 69 6e 74 20 69 |ing = 0;|.X.int i|
|00001c10| 6e 5f 6f 76 6c 3b 0a 69 | 6e 74 20 6f 76 6c 5f 62 |n_ovl;.i|nt ovl_b|
|00001c20| 6c 6f 63 6b 66 6f 72 65 | 3b 0a 76 6f 69 64 20 28 |lockfore|;.void (|
|00001c30| 2a 6f 76 6c 5f 70 72 6f | 63 65 73 73 29 28 29 3b |*ovl_pro|cess)();|
|00001c40| 0a 76 6f 69 64 20 28 2a | 6f 76 6c 5f 52 65 64 69 |.void (*|ovl_Redi|
|00001c50| 73 70 6c 61 79 4c 69 6e | 65 29 28 29 3b 0a 69 6e |splayLin|e)();.in|
|00001c60| 74 20 28 2a 6f 76 6c 5f | 52 65 77 72 69 74 65 29 |t (*ovl_|Rewrite)|
|00001c70| 28 29 3b 0a 58 0a 73 74 | 61 74 69 63 20 63 68 61 |();.X.st|atic cha|
|00001c80| 72 20 2a 4b 65 79 43 61 | 70 73 5b 5d 20 3d 0a 58 |r *KeyCa|ps[] =.X|
|00001c90| 7b 0a 58 20 20 22 6b 30 | 22 2c 20 22 6b 31 22 2c |{.X "k0|", "k1",|
|00001ca0| 20 22 6b 32 22 2c 20 22 | 6b 33 22 2c 20 22 6b 34 | "k2", "|k3", "k4|
|00001cb0| 22 2c 20 22 6b 35 22 2c | 20 22 6b 36 22 2c 20 22 |", "k5",| "k6", "|
|00001cc0| 6b 37 22 2c 20 22 6b 38 | 22 2c 20 22 6b 39 22 2c |k7", "k8|", "k9",|
|00001cd0| 0a 58 20 20 22 6b 62 22 | 2c 20 22 6b 64 22 2c 20 |.X "kb"|, "kd", |
|00001ce0| 22 6b 68 22 2c 20 22 6b | 6c 22 2c 20 22 6b 6f 22 |"kh", "k|l", "ko"|
|00001cf0| 2c 20 22 6b 72 22 2c 20 | 22 6b 75 22 2c 0a 58 20 |, "kr", |"ku",.X |
|00001d00| 20 22 4b 31 22 2c 20 22 | 4b 32 22 2c 20 22 4b 33 | "K1", "|K2", "K3|
|00001d10| 22 2c 20 22 4b 34 22 2c | 20 22 4b 35 22 2c 0a 58 |", "K4",| "K5",.X|
|00001d20| 20 20 22 6c 30 22 2c 20 | 22 6c 31 22 2c 20 22 6c | "l0", |"l1", "l|
|00001d30| 32 22 2c 20 22 6c 33 22 | 2c 20 22 6c 34 22 2c 20 |2", "l3"|, "l4", |
|00001d40| 22 6c 35 22 2c 20 22 6c | 36 22 2c 20 22 6c 37 22 |"l5", "l|6", "l7"|
|00001d50| 2c 20 22 6c 38 22 2c 20 | 22 6c 39 22 0a 58 7d 3b |, "l8", |"l9".X};|
|00001d60| 0a 58 23 64 65 66 69 6e | 65 20 4e 4b 45 59 43 41 |.X#defin|e NKEYCA|
|00001d70| 50 53 20 28 73 69 7a 65 | 6f 66 28 4b 65 79 43 61 |PS (size|of(KeyCa|
|00001d80| 70 73 29 2f 73 69 7a 65 | 6f 66 28 2a 4b 65 79 43 |ps)/size|of(*KeyC|
|00001d90| 61 70 73 29 29 0a 73 74 | 61 74 69 63 20 63 68 61 |aps)).st|atic cha|
|00001da0| 72 20 2a 4b 65 79 43 61 | 70 73 41 72 72 5b 4e 4b |r *KeyCa|psArr[NK|
|00001db0| 45 59 43 41 50 53 5d 3b | 0a 58 0a 73 74 61 74 69 |EYCAPS];|.X.stati|
|00001dc0| 63 20 63 68 61 72 20 54 | 65 72 6d 63 61 70 43 6f |c char T|ermcapCo|
|00001dd0| 6e 73 74 5b 5d 20 3d 20 | 22 5c 5c 5c 6e 5c 0a 58 |nst[] = |"\\\n\.X|
|00001de0| 5c 74 3a 44 4f 3d 5c 5c | 45 5b 25 64 42 3a 4c 45 |\t:DO=\\|E[%dB:LE|
|00001df0| 3d 5c 5c 45 5b 25 64 44 | 3a 52 49 3d 5c 5c 45 5b |=\\E[%dD|:RI=\\E[|
|00001e00| 25 64 43 3a 55 50 3d 5c | 5c 45 5b 25 64 41 3a 62 |%dC:UP=\|\E[%dA:b|
|00001e10| 73 3a 62 74 3d 5c 5c 45 | 5b 5a 3a 5c 5c 5c 6e 5c |s:bt=\\E|[Z:\\\n\|
|00001e20| 0a 58 5c 74 3a 63 64 3d | 5c 5c 45 5b 4a 3a 63 65 |.X\t:cd=|\\E[J:ce|
|00001e30| 3d 5c 5c 45 5b 4b 3a 63 | 6c 3d 5c 5c 45 5b 48 5c |=\\E[K:c|l=\\E[H\|
|00001e40| 5c 45 5b 4a 3a 63 6d 3d | 5c 5c 45 5b 25 69 25 64 |\E[J:cm=|\\E[%i%d|
|00001e50| 3b 25 64 48 3a 63 74 3d | 5c 5c 45 5b 33 67 3a 5c |;%dH:ct=|\\E[3g:\|
|00001e60| 5c 5c 6e 5c 0a 58 5c 74 | 3a 64 6f 3d 5e 4a 3a 6e |\\n\.X\t|:do=^J:n|
|00001e70| 64 3d 5c 5c 45 5b 43 3a | 70 74 3a 72 63 3d 5c 5c |d=\\E[C:|pt:rc=\\|
|00001e80| 45 38 3a 72 73 3d 5c 5c | 45 63 3a 73 63 3d 5c 5c |E8:rs=\\|Ec:sc=\\|
|00001e90| 45 37 3a 73 74 3d 5c 5c | 45 48 3a 75 70 3d 5c 5c |E7:st=\\|EH:up=\\|
|00001ea0| 45 4d 3a 5c 5c 5c 6e 5c | 0a 58 5c 74 3a 6c 65 3d |EM:\\\n\|.X\t:le=|
|00001eb0| 5e 48 3a 62 6c 3d 5e 47 | 3a 63 72 3d 5e 4d 3a 69 |^H:bl=^G|:cr=^M:i|
|00001ec0| 74 23 38 3a 68 6f 3d 5c | 5c 45 5b 48 3a 6e 77 3d |t#8:ho=\|\E[H:nw=|
|00001ed0| 5c 5c 45 45 3a 74 61 3d | 5e 49 3a 69 73 3d 5c 5c |\\EE:ta=|^I:is=\\|
|00001ee0| 45 29 30 3a 78 76 3a 22 | 3b 0a 58 0a 76 6f 69 64 |E)0:xv:"|;.X.void|
|00001ef0| 0a 49 6e 69 74 54 65 72 | 6d 63 61 70 28 29 0a 58 |.InitTer|mcap().X|
|00001f00| 7b 0a 58 20 20 72 65 67 | 69 73 74 65 72 20 63 68 |{.X reg|ister ch|
|00001f10| 61 72 20 2a 73 3b 0a 58 | 20 20 69 6e 74 20 69 3b |ar *s;.X| int i;|
|00001f20| 0a 58 0a 58 20 20 73 63 | 72 65 65 6e 63 61 70 20 |.X.X sc|reencap |
|00001f30| 3d 20 30 3b 0a 58 20 20 | 69 66 20 28 28 73 20 3d |= 0;.X |if ((s =|
|00001f40| 20 67 65 74 65 6e 76 28 | 22 53 43 52 45 45 4e 43 | getenv(|"SCREENC|
|00001f50| 41 50 22 29 29 20 21 3d | 20 30 29 0a 58 20 20 20 |AP")) !=| 0).X |
|00001f60| 20 7b 0a 58 20 20 20 20 | 20 20 69 66 20 28 28 54 | {.X | if ((T|
|00001f70| 65 72 6d 63 61 70 20 3d | 20 6d 61 6c 6c 6f 63 28 |ermcap =| malloc(|
|00001f80| 28 75 6e 73 69 67 6e 65 | 64 29 20 73 74 72 6c 65 |(unsigne|d) strle|
|00001f90| 6e 28 73 29 20 2b 20 31 | 30 29 29 20 21 3d 20 30 |n(s) + 1|0)) != 0|
|00001fa0| 29 0a 58 09 7b 0a 58 09 | 20 20 73 70 72 69 6e 74 |).X.{.X.| sprint|
|00001fb0| 66 28 54 65 72 6d 63 61 | 70 2c 20 22 54 45 52 4d |f(Termca|p, "TERM|
|00001fc0| 43 41 50 3d 25 73 22 2c | 20 73 29 3b 0a 58 09 20 |CAP=%s",| s);.X. |
|00001fd0| 20 73 63 72 65 65 6e 63 | 61 70 20 3d 20 31 3b 0a | screenc|ap = 1;.|
|00001fe0| 58 09 7d 0a 58 20 20 20 | 20 7d 0a 58 20 20 65 6c |X.}.X | }.X el|
|00001ff0| 73 65 0a 58 20 20 20 20 | 54 65 72 6d 63 61 70 20 |se.X |Termcap |
|00002000| 3d 20 6d 61 6c 6c 6f 63 | 28 28 75 6e 73 69 67 6e |= malloc|((unsign|
|00002010| 65 64 29 20 31 30 32 34 | 29 3b 0a 58 20 20 54 65 |ed) 1024|);.X Te|
|00002020| 72 6d 63 61 70 6c 65 6e | 20 3d 20 30 3b 0a 58 20 |rmcaplen| = 0;.X |
|00002030| 20 74 62 75 66 20 3d 20 | 6d 61 6c 6c 6f 63 28 28 | tbuf = |malloc((|
|00002040| 75 6e 73 69 67 6e 65 64 | 29 20 31 30 32 34 29 3b |unsigned|) 1024);|
|00002050| 0a 58 20 20 74 65 6e 74 | 72 79 20 3d 20 74 70 20 |.X tent|ry = tp |
|00002060| 3d 20 6d 61 6c 6c 6f 63 | 28 28 75 6e 73 69 67 6e |= malloc|((unsign|
|00002070| 65 64 29 20 31 30 32 34 | 29 3b 0a 58 20 20 69 66 |ed) 1024|);.X if|
|00002080| 20 28 21 28 54 65 72 6d | 63 61 70 20 26 26 20 74 | (!(Term|cap && t|
|00002090| 62 75 66 20 26 26 20 74 | 65 6e 74 72 79 29 29 0a |buf && t|entry)).|
|000020a0| 58 20 20 20 20 4d 73 67 | 5f 6e 6f 6d 65 6d 3b 0a |X Msg|_nomem;.|
|000020b0| 58 20 20 62 7a 65 72 6f | 28 74 62 75 66 2c 20 31 |X bzero|(tbuf, 1|
|000020c0| 30 32 34 29 3b 0a 58 20 | 20 69 66 20 28 28 74 65 |024);.X | if ((te|
|000020d0| 72 6d 6e 61 6d 65 20 3d | 20 67 65 74 65 6e 76 28 |rmname =| getenv(|
|000020e0| 22 54 45 52 4d 22 29 29 | 20 3d 3d 20 30 29 0a 58 |"TERM"))| == 0).X|
|000020f0| 20 20 20 20 4d 73 67 28 | 30 2c 20 22 4e 6f 20 54 | Msg(|0, "No T|
|00002100| 45 52 4d 20 69 6e 20 65 | 6e 76 69 72 6f 6e 6d 65 |ERM in e|nvironme|
|00002110| 6e 74 2e 22 29 3b 0a 58 | 20 20 64 65 62 75 67 31 |nt.");.X| debug1|
|00002120| 28 22 49 6e 69 74 54 65 | 72 6d 63 61 70 3a 20 6c |("InitTe|rmcap: l|
|00002130| 6f 6f 6b 69 6e 67 20 66 | 6f 72 20 74 67 65 74 65 |ooking f|or tgete|
|00002140| 6e 74 28 27 25 73 27 29 | 3b 5c 6e 22 2c 20 74 65 |nt('%s')|;\n", te|
|00002150| 72 6d 6e 61 6d 65 29 3b | 0a 58 20 20 69 66 20 28 |rmname);|.X if (|
|00002160| 74 67 65 74 65 6e 74 28 | 74 62 75 66 2c 20 74 65 |tgetent(|tbuf, te|
|00002170| 72 6d 6e 61 6d 65 29 20 | 21 3d 20 31 29 0a 58 20 |rmname) |!= 1).X |
|00002180| 20 20 20 4d 73 67 28 30 | 2c 20 22 43 61 6e 6e 6f | Msg(0|, "Canno|
|00002190| 74 20 66 69 6e 64 20 74 | 65 72 6d 63 61 70 20 65 |t find t|ermcap e|
|000021a0| 6e 74 72 79 20 66 6f 72 | 20 25 73 2e 22 2c 20 74 |ntry for| %s.", t|
|000021b0| 65 72 6d 6e 61 6d 65 29 | 3b 0a 58 20 20 64 65 62 |ermname)|;.X deb|
|000021c0| 75 67 31 28 22 67 6f 74 | 20 69 74 3a 5c 6e 25 73 |ug1("got| it:\n%s|
|000021d0| 5c 6e 22 2c 74 62 75 66 | 29 3b 0a 58 23 69 66 64 |\n",tbuf|);.X#ifd|
|000021e0| 65 66 20 44 45 42 55 47 | 0a 58 20 20 69 66 20 28 |ef DEBUG|.X if (|
|000021f0| 65 78 74 72 61 5f 69 6e | 63 61 70 29 0a 58 20 20 |extra_in|cap).X |
|00002200| 20 20 64 65 62 75 67 31 | 28 22 45 78 74 72 61 20 | debug1|("Extra |
|00002210| 69 6e 63 61 70 3a 20 25 | 73 5c 6e 22 2c 20 65 78 |incap: %|s\n", ex|
|00002220| 74 72 61 5f 69 6e 63 61 | 70 29 3b 0a 58 20 20 69 |tra_inca|p);.X i|
|00002230| 66 20 28 65 78 74 72 61 | 5f 6f 75 74 63 61 70 29 |f (extra|_outcap)|
|00002240| 0a 58 20 20 20 20 64 65 | 62 75 67 31 28 22 45 78 |.X de|bug1("Ex|
|00002250| 74 72 61 20 6f 75 74 63 | 61 70 3a 20 25 73 5c 6e |tra outc|ap: %s\n|
|00002260| 22 2c 20 65 78 74 72 61 | 5f 6f 75 74 63 61 70 29 |", extra|_outcap)|
|00002270| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 0a 58 20 20 54 |;.X#endi|f.X.X T|
|00002280| 65 72 6d 63 61 70 43 4f | 4c 53 20 3d 20 54 65 72 |ermcapCO|LS = Ter|
|00002290| 6d 63 61 70 52 4f 57 53 | 20 3d 20 30 3b 0a 58 20 |mcapROWS| = 0;.X |
|000022a0| 20 69 66 20 28 73 20 3d | 20 67 65 74 65 6e 76 28 | if (s =| getenv(|
|000022b0| 22 43 4f 4c 55 4d 4e 53 | 22 29 29 0a 58 20 20 20 |"COLUMNS|")).X |
|000022c0| 20 54 65 72 6d 63 61 70 | 43 4f 4c 53 20 3d 20 61 | Termcap|COLS = a|
|000022d0| 74 6f 69 28 73 29 3b 0a | 58 20 20 69 66 20 28 54 |toi(s);.|X if (T|
|000022e0| 65 72 6d 63 61 70 43 4f | 4c 53 20 3c 3d 20 30 29 |ermcapCO|LS <= 0)|
|000022f0| 0a 58 20 20 20 20 54 65 | 72 6d 63 61 70 43 4f 4c |.X Te|rmcapCOL|
|00002300| 53 20 3d 20 65 5f 74 67 | 65 74 6e 75 6d 28 22 63 |S = e_tg|etnum("c|
|00002310| 6f 22 29 3b 0a 58 20 20 | 69 66 20 28 54 65 72 6d |o");.X |if (Term|
|00002320| 63 61 70 43 4f 4c 53 20 | 3c 3d 20 30 29 0a 58 20 |capCOLS |<= 0).X |
|00002330| 20 20 20 54 65 72 6d 63 | 61 70 43 4f 4c 53 20 3d | Termc|apCOLS =|
|00002340| 20 38 30 3b 0a 58 20 20 | 69 66 20 28 73 20 3d 20 | 80;.X |if (s = |
|00002350| 67 65 74 65 6e 76 28 22 | 4c 49 4e 45 53 22 29 29 |getenv("|LINES"))|
|00002360| 0a 58 20 20 20 20 54 65 | 72 6d 63 61 70 52 4f 57 |.X Te|rmcapROW|
|00002370| 53 20 3d 20 61 74 6f 69 | 28 73 29 3b 0a 58 20 20 |S = atoi|(s);.X |
|00002380| 69 66 20 28 54 65 72 6d | 63 61 70 52 4f 57 53 20 |if (Term|capROWS |
|00002390| 3c 3d 20 30 29 0a 58 20 | 20 20 20 54 65 72 6d 63 |<= 0).X | Termc|
|000023a0| 61 70 52 4f 57 53 20 3d | 20 65 5f 74 67 65 74 6e |apROWS =| e_tgetn|
|000023b0| 75 6d 28 22 6c 69 22 29 | 3b 0a 58 20 20 69 66 20 |um("li")|;.X if |
|000023c0| 28 54 65 72 6d 63 61 70 | 52 4f 57 53 20 3c 3d 20 |(Termcap|ROWS <= |
|000023d0| 30 29 0a 58 20 20 20 20 | 54 65 72 6d 63 61 70 52 |0).X |TermcapR|
|000023e0| 4f 57 53 20 3d 20 32 34 | 3b 0a 58 0a 58 20 20 69 |OWS = 24|;.X.X i|
|000023f0| 66 20 28 65 5f 74 67 65 | 74 66 6c 61 67 28 22 68 |f (e_tge|tflag("h|
|00002400| 63 22 29 29 0a 58 20 20 | 20 20 4d 73 67 28 30 2c |c")).X | Msg(0,|
|00002410| 20 22 59 6f 75 20 63 61 | 6e 27 74 20 72 75 6e 20 | "You ca|n't run |
|00002420| 73 63 72 65 65 6e 20 6f | 6e 20 61 20 68 61 72 64 |screen o|n a hard|
|00002430| 63 6f 70 79 20 74 65 72 | 6d 69 6e 61 6c 2e 22 29 |copy ter|minal.")|
|00002440| 3b 0a 58 20 20 69 66 20 | 28 65 5f 74 67 65 74 66 |;.X if |(e_tgetf|
|00002450| 6c 61 67 28 22 6f 73 22 | 29 29 0a 58 20 20 20 20 |lag("os"|)).X |
|00002460| 4d 73 67 28 30 2c 20 22 | 59 6f 75 20 63 61 6e 27 |Msg(0, "|You can'|
|00002470| 74 20 72 75 6e 20 73 63 | 72 65 65 6e 20 6f 6e 20 |t run sc|reen on |
|00002480| 61 20 74 65 72 6d 69 6e | 61 6c 20 74 68 61 74 20 |a termin|al that |
|00002490| 6f 76 65 72 73 74 72 69 | 6b 65 73 2e 22 29 3b 0a |overstri|kes.");.|
|000024a0| 58 20 20 69 66 20 28 65 | 5f 74 67 65 74 66 6c 61 |X if (e|_tgetfla|
|000024b0| 67 28 22 6e 73 22 29 29 | 0a 58 20 20 20 20 4d 73 |g("ns"))|.X Ms|
|000024c0| 67 28 30 2c 20 22 54 65 | 72 6d 69 6e 61 6c 20 6d |g(0, "Te|rminal m|
|000024d0| 75 73 74 20 73 75 70 70 | 6f 72 74 20 73 63 72 6f |ust supp|ort scro|
|000024e0| 6c 6c 69 6e 67 2e 22 29 | 3b 0a 58 20 20 69 66 20 |lling.")|;.X if |
|000024f0| 28 21 28 43 4c 20 3d 20 | 65 5f 74 67 65 74 73 74 |(!(CL = |e_tgetst|
|00002500| 72 28 22 63 6c 22 2c 20 | 26 74 70 29 29 29 0a 58 |r("cl", |&tp))).X|
|00002510| 20 20 20 20 4d 73 67 28 | 30 2c 20 22 43 6c 65 61 | Msg(|0, "Clea|
|00002520| 72 20 73 63 72 65 65 6e | 20 63 61 70 61 62 69 6c |r screen| capabil|
|00002530| 69 74 79 20 72 65 71 75 | 69 72 65 64 2e 22 29 3b |ity requ|ired.");|
|00002540| 0a 58 20 20 69 66 20 28 | 21 28 43 4d 20 3d 20 65 |.X if (|!(CM = e|
|00002550| 5f 74 67 65 74 73 74 72 | 28 22 63 6d 22 2c 20 26 |_tgetstr|("cm", &|
|00002560| 74 70 29 29 29 0a 58 20 | 20 20 20 4d 73 67 28 30 |tp))).X | Msg(0|
|00002570| 2c 20 22 41 64 64 72 65 | 73 73 61 62 6c 65 20 63 |, "Addre|ssable c|
|00002580| 75 72 73 6f 72 20 63 61 | 70 61 62 69 6c 69 74 79 |ursor ca|pability|
|00002590| 20 72 65 71 75 69 72 65 | 64 2e 22 29 3b 0a 58 20 | require|d.");.X |
|000025a0| 20 73 77 69 74 63 68 20 | 28 66 6c 6f 77 63 74 6c | switch |(flowctl|
|000025b0| 29 0a 58 20 20 20 20 7b | 0a 58 20 20 20 20 63 61 |).X {|.X ca|
|000025c0| 73 65 20 30 3a 0a 58 20 | 20 20 20 20 20 66 6c 6f |se 0:.X | flo|
|000025d0| 77 20 3d 20 21 65 5f 74 | 67 65 74 66 6c 61 67 28 |w = !e_t|getflag(|
|000025e0| 22 4e 46 22 29 3b 0a 58 | 20 20 20 20 20 20 66 6c |"NF");.X| fl|
|000025f0| 6f 77 63 74 6c 20 3d 20 | 66 6c 6f 77 20 2b 20 31 |owctl = |flow + 1|
|00002600| 3b 0a 58 20 20 20 20 20 | 20 62 72 65 61 6b 3b 0a |;.X | break;.|
|00002610| 58 20 20 20 20 63 61 73 | 65 20 31 3a 0a 58 20 20 |X cas|e 1:.X |
|00002620| 20 20 20 20 66 6c 6f 77 | 20 3d 20 30 3b 0a 58 20 | flow| = 0;.X |
|00002630| 20 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 20 20 20 | bre|ak;.X |
|00002640| 20 63 61 73 65 20 32 3a | 0a 58 20 20 20 20 63 61 | case 2:|.X ca|
|00002650| 73 65 20 33 3a 0a 58 20 | 20 20 20 20 20 66 6c 6f |se 3:.X | flo|
|00002660| 77 20 3d 20 31 3b 0a 58 | 20 20 20 20 20 20 62 72 |w = 1;.X| br|
|00002670| 65 61 6b 3b 0a 58 20 20 | 20 20 7d 0a 58 20 20 41 |eak;.X | }.X A|
|00002680| 4d 20 3d 20 65 5f 74 67 | 65 74 66 6c 61 67 28 22 |M = e_tg|etflag("|
|00002690| 61 6d 22 29 3b 0a 58 20 | 20 4c 50 20 3d 20 61 73 |am");.X | LP = as|
|000026a0| 73 75 6d 65 5f 4c 50 20 | 7c 7c 20 28 21 65 78 74 |sume_LP ||| (!ext|
|000026b0| 72 61 5f 69 6e 63 61 70 | 20 26 26 20 21 73 74 72 |ra_incap| && !str|
|000026c0| 6e 63 6d 70 28 74 65 72 | 6d 6e 61 6d 65 2c 20 22 |ncmp(ter|mname, "|
|000026d0| 76 74 22 2c 20 32 29 29 | 0a 58 20 20 09 09 20 7c |vt", 2))|.X .. ||
|000026e0| 7c 20 21 41 4d 20 7c 7c | 20 65 5f 74 67 65 74 66 || !AM ||| e_tgetf|
|000026f0| 6c 61 67 28 22 4c 50 22 | 29 20 7c 7c 20 65 5f 74 |lag("LP"|) || e_t|
|00002700| 67 65 74 66 6c 61 67 28 | 22 78 76 22 29 3b 0a 58 |getflag(|"xv");.X|
|00002710| 20 20 43 4f 50 20 3d 20 | 65 5f 74 67 65 74 66 6c | COP = |e_tgetfl|
|00002720| 61 67 28 22 4f 50 22 29 | 3b 0a 58 20 20 48 4f 20 |ag("OP")|;.X HO |
|00002730| 3d 20 65 5f 74 67 65 74 | 73 74 72 28 22 68 6f 22 |= e_tget|str("ho"|
|00002740| 2c 20 26 74 70 29 3b 0a | 58 20 20 54 49 20 3d 20 |, &tp);.|X TI = |
|00002750| 65 5f 74 67 65 74 73 74 | 72 28 22 74 69 22 2c 20 |e_tgetst|r("ti", |
|00002760| 26 74 70 29 3b 0a 58 20 | 20 54 45 20 3d 20 65 5f |&tp);.X | TE = e_|
|00002770| 74 67 65 74 73 74 72 28 | 22 74 65 22 2c 20 26 74 |tgetstr(|"te", &t|
|00002780| 70 29 3b 0a 58 20 20 69 | 66 20 28 21 28 42 4c 20 |p);.X i|f (!(BL |
|00002790| 3d 20 65 5f 74 67 65 74 | 73 74 72 28 22 62 6c 22 |= e_tget|str("bl"|
|000027a0| 2c 20 26 74 70 29 29 29 | 0a 58 20 20 20 20 42 4c |, &tp)))|.X BL|
|000027b0| 20 3d 20 22 5c 30 30 37 | 22 3b 0a 58 20 20 56 42 | = "\007|";.X VB|
|000027c0| 20 3d 20 65 5f 74 67 65 | 74 73 74 72 28 22 76 62 | = e_tge|tstr("vb|
|000027d0| 22 2c 20 26 74 70 29 3b | 0a 58 20 20 69 66 20 28 |", &tp);|.X if (|
|000027e0| 21 28 42 43 20 3d 20 65 | 5f 74 67 65 74 73 74 72 |!(BC = e|_tgetstr|
|000027f0| 28 22 62 63 22 2c 20 26 | 74 70 29 29 29 0a 58 20 |("bc", &|tp))).X |
|00002800| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 69 66 20 28 | {.X | if (|
|00002810| 65 5f 74 67 65 74 66 6c | 61 67 28 22 62 73 22 29 |e_tgetfl|ag("bs")|
|00002820| 29 0a 58 09 42 43 20 3d | 20 22 5c 62 22 3b 0a 58 |).X.BC =| "\b";.X|
|00002830| 20 20 20 20 20 20 65 6c | 73 65 0a 58 09 42 43 20 | el|se.X.BC |
|00002840| 3d 20 65 5f 74 67 65 74 | 73 74 72 28 22 6c 65 22 |= e_tget|str("le"|
|00002850| 2c 20 26 74 70 29 3b 0a | 58 20 20 20 20 7d 0a 58 |, &tp);.|X }.X|
|00002860| 20 20 69 66 20 28 21 28 | 43 52 20 3d 20 65 5f 74 | if (!(|CR = e_t|
|00002870| 67 65 74 73 74 72 28 22 | 63 72 22 2c 20 26 74 70 |getstr("|cr", &tp|
|00002880| 29 29 29 0a 58 20 20 20 | 20 43 52 20 3d 20 22 5c |))).X | CR = "\|
|00002890| 72 22 3b 0a 58 20 20 69 | 66 20 28 21 28 4e 4c 20 |r";.X i|f (!(NL |
|000028a0| 3d 20 65 5f 74 67 65 74 | 73 74 72 28 22 6e 6c 22 |= e_tget|str("nl"|
|000028b0| 2c 20 26 74 70 29 29 29 | 0a 58 20 20 20 20 4e 4c |, &tp)))|.X NL|
|000028c0| 20 3d 20 22 5c 6e 22 3b | 0a 58 20 20 49 53 20 3d | = "\n";|.X IS =|
|000028d0| 20 65 5f 74 67 65 74 73 | 74 72 28 22 69 73 22 2c | e_tgets|tr("is",|
|000028e0| 20 26 74 70 29 3b 0a 58 | 20 20 4d 53 20 3d 20 31 | &tp);.X| MS = 1|
|000028f0| 3b 0a 58 20 20 69 66 20 | 28 65 5f 74 67 65 74 6e |;.X if |(e_tgetn|
|00002900| 75 6d 28 22 73 67 22 29 | 20 3c 3d 20 30 20 26 26 |um("sg")| <= 0 &&|
|00002910| 20 65 5f 74 67 65 74 6e | 75 6d 28 22 75 67 22 29 | e_tgetn|um("ug")|
|00002920| 20 3c 3d 20 30 29 0a 58 | 20 20 20 20 7b 0a 58 20 | <= 0).X| {.X |
|00002930| 20 20 20 20 20 4d 53 20 | 3d 20 65 5f 74 67 65 74 | MS |= e_tget|
|00002940| 66 6c 61 67 28 22 6d 73 | 22 29 3b 0a 58 20 20 20 |flag("ms|");.X |
|00002950| 20 20 20 61 74 74 72 74 | 61 62 5b 41 54 54 52 5f | attrt|ab[ATTR_|
|00002960| 44 49 5d 20 3d 20 4d 48 | 20 3d 20 65 5f 74 67 65 |DI] = MH| = e_tge|
|00002970| 74 73 74 72 28 22 6d 68 | 22 2c 20 26 74 70 29 3b |tstr("mh|", &tp);|
|00002980| 09 2f 2a 20 44 69 6d 20 | 2a 2f 0a 58 20 20 20 20 |./* Dim |*/.X |
|00002990| 20 20 61 74 74 72 74 61 | 62 5b 41 54 54 52 5f 55 | attrta|b[ATTR_U|
|000029a0| 53 5d 20 3d 20 55 53 20 | 3d 20 65 5f 74 67 65 74 |S] = US |= e_tget|
|000029b0| 73 74 72 28 22 75 73 22 | 2c 20 26 74 70 29 3b 09 |str("us"|, &tp);.|
|000029c0| 2f 2a 20 55 6e 64 65 72 | 6c 69 6e 65 20 2a 2f 0a |/* Under|line */.|
|000029d0| 58 20 20 20 20 20 20 61 | 74 74 72 74 61 62 5b 41 |X a|ttrtab[A|
|000029e0| 54 54 52 5f 42 44 5d 20 | 3d 20 4d 44 20 3d 20 65 |TTR_BD] |= MD = e|
|000029f0| 5f 74 67 65 74 73 74 72 | 28 22 6d 64 22 2c 20 26 |_tgetstr|("md", &|
|00002a00| 74 70 29 3b 09 2f 2a 20 | 42 6f 6c 64 20 2a 2f 0a |tp);./* |Bold */.|
|00002a10| 58 20 20 20 20 20 20 61 | 74 74 72 74 61 62 5b 41 |X a|ttrtab[A|
|00002a20| 54 54 52 5f 52 56 5d 20 | 3d 20 4d 52 20 3d 20 65 |TTR_RV] |= MR = e|
|00002a30| 5f 74 67 65 74 73 74 72 | 28 22 6d 72 22 2c 20 26 |_tgetstr|("mr", &|
|00002a40| 74 70 29 3b 09 2f 2a 20 | 52 65 76 65 72 73 65 20 |tp);./* |Reverse |
|00002a50| 2a 2f 0a 58 20 20 20 20 | 20 20 61 74 74 72 74 61 |*/.X | attrta|
|00002a60| 62 5b 41 54 54 52 5f 53 | 4f 5d 20 3d 20 53 4f 20 |b[ATTR_S|O] = SO |
|00002a70| 3d 20 65 5f 74 67 65 74 | 73 74 72 28 22 73 6f 22 |= e_tget|str("so"|
|00002a80| 2c 20 26 74 70 29 3b 09 | 2f 2a 20 53 74 61 6e 64 |, &tp);.|/* Stand|
|00002a90| 6f 75 74 20 2a 2f 0a 58 | 20 20 20 20 20 20 61 74 |out */.X| at|
|00002aa0| 74 72 74 61 62 5b 41 54 | 54 52 5f 42 4c 5d 20 3d |trtab[AT|TR_BL] =|
|00002ab0| 20 4d 42 20 3d 20 65 5f | 74 67 65 74 73 74 72 28 | MB = e_|tgetstr(|
|00002ac0| 22 6d 62 22 2c 20 26 74 | 70 29 3b 09 2f 2a 20 42 |"mb", &t|p);./* B|
|00002ad0| 6c 69 6e 6b 69 6e 67 20 | 2a 2f 0a 58 20 20 20 20 |linking |*/.X |
|00002ae0| 20 20 4d 45 20 3d 20 65 | 5f 74 67 65 74 73 74 72 | ME = e|_tgetstr|
|00002af0| 28 22 6d 65 22 2c 20 26 | 74 70 29 3b 0a 58 20 20 |("me", &|tp);.X |
|00002b00| 20 20 20 20 53 45 20 3d | 20 65 5f 74 67 65 74 73 | SE =| e_tgets|
|00002b10| 74 72 28 22 73 65 22 2c | 20 26 74 70 29 3b 0a 58 |tr("se",| &tp);.X|
|00002b20| 20 20 20 20 20 20 55 45 | 20 3d 20 65 5f 74 67 65 | UE| = e_tge|
|00002b30| 74 73 74 72 28 22 75 65 | 22 2c 20 26 74 70 29 3b |tstr("ue|", &tp);|
|00002b40| 0a 58 20 20 20 20 20 20 | 2f 2a 0a 58 20 20 20 20 |.X |/*.X |
|00002b50| 20 20 20 2a 20 44 6f 65 | 73 20 4d 45 20 61 6c 73 | * Doe|s ME als|
|00002b60| 6f 20 72 65 76 65 72 73 | 65 20 74 68 65 20 65 66 |o revers|e the ef|
|00002b70| 66 65 63 74 20 6f 66 20 | 53 4f 20 61 6e 64 2f 6f |fect of |SO and/o|
|00002b80| 72 20 55 53 3f 20 20 54 | 68 69 73 20 69 73 20 6e |r US? T|his is n|
|00002b90| 6f 74 0a 58 20 20 20 20 | 20 20 20 2a 20 63 6c 65 |ot.X | * cle|
|00002ba0| 61 72 6c 79 20 73 70 65 | 63 69 66 69 65 64 20 62 |arly spe|cified b|
|00002bb0| 79 20 74 68 65 20 74 65 | 72 6d 63 61 70 20 6d 61 |y the te|rmcap ma|
|00002bc0| 6e 75 61 6c 2e 20 41 6e | 79 77 61 79 2c 20 77 65 |nual. An|yway, we|
|00002bd0| 20 73 68 6f 75 6c 64 20 | 61 74 0a 58 20 20 20 20 | should |at.X |
|00002be0| 20 20 20 2a 20 6c 65 61 | 73 74 20 6c 6f 6f 6b 20 | * lea|st look |
|00002bf0| 77 68 65 74 68 65 72 20 | 4d 45 20 61 6e 64 20 53 |whether |ME and S|
|00002c00| 45 2f 55 45 20 61 72 65 | 20 65 71 75 61 6c 3a 0a |E/UE are| equal:.|
|00002c10| 58 20 20 20 20 20 20 20 | 2a 2f 0a 58 20 20 20 20 |X |*/.X |
|00002c20| 20 20 69 66 20 28 55 45 | 20 26 26 20 28 28 53 45 | if (UE| && ((SE|
|00002c30| 20 26 26 20 73 74 72 63 | 6d 70 28 53 45 2c 20 55 | && strc|mp(SE, U|
|00002c40| 45 29 20 3d 3d 20 30 29 | 20 7c 7c 20 28 4d 45 20 |E) == 0)| || (ME |
|00002c50| 26 26 20 73 74 72 63 6d | 70 28 4d 45 2c 20 55 45 |&& strcm|p(ME, UE|
|00002c60| 29 20 3d 3d 20 30 29 29 | 29 0a 58 09 55 45 20 3d |) == 0))|).X.UE =|
|00002c70| 20 30 3b 0a 58 20 20 20 | 20 20 20 69 66 20 28 53 | 0;.X | if (S|
|00002c80| 45 20 26 26 20 28 4d 45 | 20 26 26 20 73 74 72 63 |E && (ME| && strc|
|00002c90| 6d 70 28 4d 45 2c 20 53 | 45 29 20 3d 3d 20 30 29 |mp(ME, S|E) == 0)|
|00002ca0| 29 0a 58 09 53 45 20 3d | 20 30 3b 0a 58 0a 58 20 |).X.SE =| 0;.X.X |
|00002cb0| 20 20 20 20 20 2f 2a 20 | 53 65 74 20 75 70 20 6d | /* |Set up m|
|00002cc0| 69 73 73 69 6e 67 20 65 | 6e 74 72 69 65 73 20 2a |issing e|ntries *|
|00002cd0| 2f 0a 58 20 20 20 20 20 | 20 73 20 3d 20 30 3b 0a |/.X | s = 0;.|
|00002ce0| 58 20 20 20 20 20 20 66 | 6f 72 20 28 69 20 3d 20 |X f|or (i = |
|00002cf0| 4e 41 54 54 52 2d 31 3b | 20 69 20 3e 3d 20 30 3b |NATTR-1;| i >= 0;|
|00002d00| 20 69 2d 2d 29 0a 58 09 | 69 66 20 28 61 74 74 72 | i--).X.|if (attr|
|00002d10| 74 61 62 5b 69 5d 29 0a | 58 09 20 20 73 20 3d 20 |tab[i]).|X. s = |
|00002d20| 61 74 74 72 74 61 62 5b | 69 5d 3b 0a 58 20 20 20 |attrtab[|i];.X |
|00002d30| 20 20 20 66 6f 72 20 28 | 69 20 3d 20 30 3b 20 69 | for (|i = 0; i|
|00002d40| 20 3c 20 4e 41 54 54 52 | 3b 20 69 2b 2b 29 0a 58 | < NATTR|; i++).X|
|00002d50| 09 7b 0a 58 09 20 20 69 | 66 20 28 61 74 74 72 74 |.{.X. i|f (attrt|
|00002d60| 61 62 5b 69 5d 20 3d 3d | 20 30 29 0a 58 09 20 20 |ab[i] ==| 0).X. |
|00002d70| 20 20 61 74 74 72 74 61 | 62 5b 69 5d 20 3d 20 73 | attrta|b[i] = s|
|00002d80| 3b 0a 58 09 20 20 65 6c | 73 65 0a 58 09 20 20 20 |;.X. el|se.X. |
|00002d90| 20 73 20 3d 20 61 74 74 | 72 74 61 62 5b 69 5d 3b | s = att|rtab[i];|
|00002da0| 0a 58 09 7d 0a 58 20 20 | 20 20 7d 0a 58 20 20 65 |.X.}.X | }.X e|
|00002db0| 6c 73 65 0a 58 20 20 20 | 20 7b 0a 58 20 20 20 20 |lse.X | {.X |
|00002dc0| 20 20 55 53 20 3d 20 55 | 45 20 3d 20 53 4f 20 3d | US = U|E = SO =|
|00002dd0| 20 53 45 20 3d 20 4d 42 | 20 3d 20 4d 44 20 3d 20 | SE = MB| = MD = |
|00002de0| 4d 48 20 3d 20 4d 52 20 | 3d 20 4d 45 20 3d 20 30 |MH = MR |= ME = 0|
|00002df0| 3b 0a 58 20 20 20 20 20 | 20 66 6f 72 20 28 69 20 |;.X | for (i |
|00002e00| 3d 20 30 3b 20 69 20 3c | 20 4e 41 54 54 52 3b 20 |= 0; i <| NATTR; |
|00002e10| 69 2b 2b 29 0a 58 09 61 | 74 74 72 74 61 62 5b 69 |i++).X.a|ttrtab[i|
|00002e20| 5d 20 3d 20 30 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |] = 0;.X| }.X |
|00002e30| 20 43 45 20 3d 20 65 5f | 74 67 65 74 73 74 72 28 | CE = e_|tgetstr(|
|00002e40| 22 63 65 22 2c 20 26 74 | 70 29 3b 0a 58 20 20 43 |"ce", &t|p);.X C|
|00002e50| 44 20 3d 20 65 5f 74 67 | 65 74 73 74 72 28 22 63 |D = e_tg|etstr("c|
|00002e60| 64 22 2c 20 26 74 70 29 | 3b 0a 58 20 20 69 66 20 |d", &tp)|;.X if |
|00002e70| 28 21 28 44 4f 20 3d 20 | 65 5f 74 67 65 74 73 74 |(!(DO = |e_tgetst|
|00002e80| 72 28 22 64 6f 22 2c 20 | 26 74 70 29 29 29 0a 58 |r("do", |&tp))).X|
|00002e90| 20 20 20 20 44 4f 20 3d | 20 4e 4c 3b 0a 58 20 20 | DO =| NL;.X |
|00002ea0| 55 50 20 3d 20 65 5f 74 | 67 65 74 73 74 72 28 22 |UP = e_t|getstr("|
|00002eb0| 75 70 22 2c 20 26 74 70 | 29 3b 0a 58 20 20 4e 44 |up", &tp|);.X ND|
|00002ec0| 20 3d 20 65 5f 74 67 65 | 74 73 74 72 28 22 6e 64 | = e_tge|tstr("nd|
|00002ed0| 22 2c 20 26 74 70 29 3b | 0a 58 20 20 53 52 20 3d |", &tp);|.X SR =|
|00002ee0| 20 65 5f 74 67 65 74 73 | 74 72 28 22 73 72 22 2c | e_tgets|tr("sr",|
|00002ef0| 20 26 74 70 29 3b 0a 58 | 20 20 69 66 20 28 21 28 | &tp);.X| if (!(|
|00002f00| 53 46 20 3d 20 65 5f 74 | 67 65 74 73 74 72 28 22 |SF = e_t|getstr("|
|00002f10| 73 66 22 2c 20 26 74 70 | 29 29 29 0a 58 20 20 20 |sf", &tp|))).X |
|00002f20| 20 53 46 20 3d 20 4e 4c | 3b 0a 58 20 20 41 4c 20 | SF = NL|;.X AL |
|00002f30| 3d 20 65 5f 74 67 65 74 | 73 74 72 28 22 61 6c 22 |= e_tget|str("al"|
|00002f40| 2c 20 26 74 70 29 3b 0a | 58 20 20 44 4c 20 3d 20 |, &tp);.|X DL = |
|00002f50| 65 5f 74 67 65 74 73 74 | 72 28 22 64 6c 22 2c 20 |e_tgetst|r("dl", |
|00002f60| 26 74 70 29 3b 0a 58 20 | 20 43 53 20 3d 20 65 5f |&tp);.X | CS = e_|
|00002f70| 74 67 65 74 73 74 72 28 | 22 63 73 22 2c 20 26 74 |tgetstr(|"cs", &t|
|00002f80| 70 29 3b 0a 58 20 20 44 | 43 20 3d 20 65 5f 74 67 |p);.X D|C = e_tg|
|00002f90| 65 74 73 74 72 28 22 64 | 63 22 2c 20 26 74 70 29 |etstr("d|c", &tp)|
|00002fa0| 3b 0a 58 20 20 49 43 20 | 3d 20 65 5f 74 67 65 74 |;.X IC |= e_tget|
|00002fb0| 73 74 72 28 22 69 63 22 | 2c 20 26 74 70 29 3b 0a |str("ic"|, &tp);.|
|00002fc0| 58 20 20 43 49 43 20 3d | 20 65 5f 74 67 65 74 73 |X CIC =| e_tgets|
|00002fd0| 74 72 28 22 49 43 22 2c | 20 26 74 70 29 3b 0a 58 |tr("IC",| &tp);.X|
|00002fe0| 20 20 43 44 43 20 3d 20 | 65 5f 74 67 65 74 73 74 | CDC = |e_tgetst|
|00002ff0| 72 28 22 44 43 22 2c 20 | 26 74 70 29 3b 0a 58 20 |r("DC", |&tp);.X |
|00003000| 20 43 44 4c 20 3d 20 65 | 5f 74 67 65 74 73 74 72 | CDL = e|_tgetstr|
|00003010| 28 22 44 4c 22 2c 20 26 | 74 70 29 3b 0a 58 20 20 |("DL", &|tp);.X |
|00003020| 43 41 4c 20 3d 20 65 5f | 74 67 65 74 73 74 72 28 |CAL = e_|tgetstr(|
|00003030| 22 41 4c 22 2c 20 26 74 | 70 29 3b 0a 58 20 20 43 |"AL", &t|p);.X C|
|00003040| 55 50 20 3d 20 65 5f 74 | 67 65 74 73 74 72 28 22 |UP = e_t|getstr("|
|00003050| 55 50 22 2c 20 26 74 70 | 29 3b 0a 58 20 20 43 44 |UP", &tp|);.X CD|
|00003060| 4f 20 3d 20 65 5f 74 67 | 65 74 73 74 72 28 22 44 |O = e_tg|etstr("D|
|00003070| 4f 22 2c 20 26 74 70 29 | 3b 0a 58 20 20 43 4c 45 |O", &tp)|;.X CLE|
|00003080| 20 3d 20 65 5f 74 67 65 | 74 73 74 72 28 22 4c 45 | = e_tge|tstr("LE|
|00003090| 22 2c 20 26 74 70 29 3b | 0a 58 20 20 43 52 49 20 |", &tp);|.X CRI |
|000030a0| 3d 20 65 5f 74 67 65 74 | 73 74 72 28 22 52 49 22 |= e_tget|str("RI"|
|000030b0| 2c 20 26 74 70 29 3b 0a | 58 20 20 49 4d 20 3d 20 |, &tp);.|X IM = |
|000030c0| 65 5f 74 67 65 74 73 74 | 72 28 22 69 6d 22 2c 20 |e_tgetst|r("im", |
|000030d0| 26 74 70 29 3b 0a 58 20 | 20 45 49 20 3d 20 65 5f |&tp);.X | EI = e_|
|000030e0| 74 67 65 74 73 74 72 28 | 22 65 69 22 2c 20 26 74 |tgetstr(|"ei", &t|
|000030f0| 70 29 3b 0a 58 20 20 69 | 66 20 28 65 5f 74 67 65 |p);.X i|f (e_tge|
|00003100| 74 66 6c 61 67 28 22 69 | 6e 22 29 29 0a 58 20 20 |tflag("i|n")).X |
|00003110| 20 20 49 43 20 3d 20 49 | 4d 20 3d 20 30 3b 0a 58 | IC = I|M = 0;.X|
|00003120| 20 20 69 66 20 28 49 43 | 20 26 26 20 49 43 5b 30 | if (IC| && IC[0|
|00003130| 5d 20 3d 3d 20 27 5c 30 | 27 29 0a 58 20 20 20 20 |] == '\0|').X |
|00003140| 49 43 20 3d 20 30 3b 0a | 58 20 20 69 66 20 28 43 |IC = 0;.|X if (C|
|00003150| 49 43 20 26 26 20 43 49 | 43 5b 30 5d 20 3d 3d 20 |IC && CI|C[0] == |
|00003160| 27 5c 30 27 29 0a 58 20 | 20 20 20 43 49 43 20 3d |'\0').X | CIC =|
|00003170| 20 30 3b 0a 58 20 20 69 | 66 20 28 49 4d 20 26 26 | 0;.X i|f (IM &&|
|00003180| 20 49 4d 5b 30 5d 20 3d | 3d 20 27 5c 30 27 29 0a | IM[0] =|= '\0').|
|00003190| 58 20 20 20 20 49 4d 20 | 3d 20 30 3b 0a 58 20 20 |X IM |= 0;.X |
|000031a0| 69 66 20 28 45 49 20 26 | 26 20 45 49 5b 30 5d 20 |if (EI &|& EI[0] |
|000031b0| 3d 3d 20 27 5c 30 27 29 | 0a 58 20 20 20 20 45 49 |== '\0')|.X EI|
|000031c0| 20 3d 20 30 3b 0a 58 20 | 20 69 66 20 28 45 49 20 | = 0;.X | if (EI |
|000031d0| 3d 3d 20 30 29 0a 58 20 | 20 20 20 49 4d 20 3d 20 |== 0).X | IM = |
|000031e0| 30 3b 0a 58 20 20 69 66 | 20 28 49 43 20 26 26 20 |0;.X if| (IC && |
|000031f0| 49 4d 20 26 26 20 73 74 | 72 63 6d 70 28 49 43 2c |IM && st|rcmp(IC,|
|00003200| 20 49 4d 29 20 3d 3d 20 | 30 29 0a 58 20 20 20 20 | IM) == |0).X |
|00003210| 49 43 20 3d 20 30 3b 0a | 58 20 20 4b 53 20 3d 20 |IC = 0;.|X KS = |
|00003220| 65 5f 74 67 65 74 73 74 | 72 28 22 6b 73 22 2c 20 |e_tgetst|r("ks", |
|00003230| 26 74 70 29 3b 0a 58 20 | 20 4b 45 20 3d 20 65 5f |&tp);.X | KE = e_|
|00003240| 74 67 65 74 73 74 72 28 | 22 6b 65 22 2c 20 26 74 |tgetstr(|"ke", &t|
|00003250| 70 29 3b 0a 58 20 20 69 | 66 20 28 4b 45 20 3d 3d |p);.X i|f (KE ==|
|00003260| 20 30 29 0a 58 20 20 20 | 20 4b 53 20 3d 20 30 3b | 0).X | KS = 0;|
|00003270| 0a 58 20 20 49 53 4f 32 | 30 32 32 20 3d 20 65 5f |.X ISO2|022 = e_|
|00003280| 74 67 65 74 66 6c 61 67 | 28 22 47 30 22 29 3b 0a |tgetflag|("G0");.|
|00003290| 58 20 20 69 66 20 28 49 | 53 4f 32 30 32 32 29 0a |X if (I|SO2022).|
|000032a0| 58 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 69 66 |X {.X| if|
|000032b0| 20 28 28 53 30 20 3d 20 | 65 5f 74 67 65 74 73 74 | ((S0 = |e_tgetst|
|000032c0| 72 28 22 53 30 22 2c 20 | 26 74 70 29 29 20 3d 3d |r("S0", |&tp)) ==|
|000032d0| 20 4e 55 4c 4c 29 0a 58 | 23 69 66 64 65 66 20 54 | NULL).X|#ifdef T|
|000032e0| 45 52 4d 49 4e 46 4f 0a | 58 09 53 30 20 3d 20 22 |ERMINFO.|X.S0 = "|
|000032f0| 5c 30 33 33 28 25 70 31 | 25 63 22 3b 0a 58 23 65 |\033(%p1|%c";.X#e|
|00003300| 6c 73 65 0a 58 09 53 30 | 20 3d 20 22 5c 30 33 33 |lse.X.S0| = "\033|
|00003310| 28 25 2e 22 3b 0a 58 23 | 65 6e 64 69 66 0a 58 20 |(%.";.X#|endif.X |
|00003320| 20 20 20 20 20 69 66 20 | 28 28 45 30 20 3d 20 65 | if |((E0 = e|
|00003330| 5f 74 67 65 74 73 74 72 | 28 22 45 30 22 2c 20 26 |_tgetstr|("E0", &|
|00003340| 74 70 29 29 20 3d 3d 20 | 4e 55 4c 4c 29 0a 58 09 |tp)) == |NULL).X.|
|00003350| 45 30 20 3d 20 22 5c 30 | 33 33 28 42 22 3b 0a 58 |E0 = "\0|33(B";.X|
|00003360| 20 20 20 20 20 20 43 30 | 20 3d 20 65 5f 74 67 65 | C0| = e_tge|
|00003370| 74 73 74 72 28 22 43 30 | 22 2c 20 26 74 70 29 3b |tstr("C0|", &tp);|
|00003380| 0a 58 20 20 20 20 7d 0a | 58 20 20 65 6c 73 65 20 |.X }.|X else |
|00003390| 69 66 20 28 28 53 30 20 | 3d 20 65 5f 74 67 65 74 |if ((S0 |= e_tget|
|000033a0| 73 74 72 28 22 61 73 22 | 2c 20 26 74 70 29 29 20 |str("as"|, &tp)) |
|000033b0| 21 3d 20 4e 55 4c 4c 0a | 58 20 20 20 20 20 20 20 |!= NULL.|X |
|000033c0| 20 26 26 20 28 45 30 20 | 3d 20 65 5f 74 67 65 74 | && (E0 |= e_tget|
|000033d0| 73 74 72 28 22 61 65 22 | 2c 20 26 74 70 29 29 20 |str("ae"|, &tp)) |
|000033e0| 21 3d 20 4e 55 4c 4c 29 | 0a 58 20 20 20 20 7b 0a |!= NULL)|.X {.|
|000033f0| 58 20 20 20 20 20 20 49 | 53 4f 32 30 32 32 20 3d |X I|SO2022 =|
|00003400| 20 31 3b 0a 58 20 20 20 | 20 20 20 43 30 20 3d 20 | 1;.X | C0 = |
|00003410| 65 5f 74 67 65 74 73 74 | 72 28 22 61 63 22 2c 20 |e_tgetst|r("ac", |
|00003420| 26 74 70 29 3b 0a 58 20 | 20 20 20 7d 0a 58 20 20 |&tp);.X | }.X |
|00003430| 65 6c 73 65 0a 58 20 20 | 20 20 7b 0a 58 20 20 20 |else.X | {.X |
|00003440| 20 20 20 53 30 20 3d 20 | 45 30 20 3d 20 22 22 3b | S0 = |E0 = "";|
|00003450| 0a 58 20 20 20 20 20 20 | 43 30 20 3d 20 22 67 2e |.X |C0 = "g.|
|00003460| 68 2e 69 27 6a 2d 6b 2d | 6c 2d 6d 2d 6e 2b 6f 7e |h.i'j-k-|l-m-n+o~|
|00003470| 70 5c 22 71 2d 72 2d 73 | 5f 74 2b 75 2b 76 2b 77 |p\"q-r-s|_t+u+v+w|
|00003480| 2b 78 7c 79 3c 7a 3e 22 | 3b 0a 58 20 20 20 20 7d |+x|y<z>"|;.X }|
|00003490| 0a 58 20 20 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 |.X for |(i = 0; |
|000034a0| 69 20 3c 20 32 35 36 3b | 20 69 2b 2b 29 0a 58 20 |i < 256;| i++).X |
|000034b0| 20 20 20 63 30 5f 74 61 | 62 5b 69 5d 20 3d 20 69 | c0_ta|b[i] = i|
|000034c0| 3b 0a 58 20 20 69 66 20 | 28 43 30 29 0a 58 20 20 |;.X if |(C0).X |
|000034d0| 20 20 66 6f 72 20 28 69 | 20 3d 20 73 74 72 6c 65 | for (i| = strle|
|000034e0| 6e 28 43 30 29 26 7e 31 | 3b 20 69 20 3e 3d 20 30 |n(C0)&~1|; i >= 0|
|000034f0| 3b 20 69 2d 3d 32 29 0a | 58 20 20 20 20 20 20 63 |; i-=2).|X c|
|00003500| 30 5f 74 61 62 5b 43 30 | 5b 69 5d 5d 20 3d 20 43 |0_tab[C0|[i]] = C|
|00003510| 30 5b 69 2b 31 5d 3b 0a | 58 20 20 64 65 62 75 67 |0[i+1];.|X debug|
|00003520| 31 28 22 49 53 4f 32 30 | 32 32 20 3d 20 25 64 5c |1("ISO20|22 = %d\|
|00003530| 6e 22 2c 20 49 53 4f 32 | 30 32 32 29 3b 0a 58 20 |n", ISO2|022);.X |
|00003540| 20 2f 2a 20 57 53 20 63 | 68 61 6e 67 65 73 20 74 | /* WS c|hanges t|
|00003550| 68 65 20 77 69 6e 64 6f | 77 20 73 69 7a 65 20 2a |he windo|w size *|
|00003560| 2f 0a 58 20 20 57 53 20 | 3d 20 65 5f 74 67 65 74 |/.X WS |= e_tget|
|00003570| 73 74 72 28 22 57 53 22 | 2c 20 26 74 70 29 3b 0a |str("WS"|, &tp);.|
|00003580| 58 20 20 56 49 20 3d 20 | 65 5f 74 67 65 74 73 74 |X VI = |e_tgetst|
|00003590| 72 28 22 76 69 22 2c 20 | 26 74 70 29 3b 0a 58 20 |r("vi", |&tp);.X |
|000035a0| 20 56 45 20 3d 20 65 5f | 74 67 65 74 73 74 72 28 | VE = e_|tgetstr(|
|000035b0| 22 76 65 22 2c 20 26 74 | 70 29 3b 0a 58 20 20 56 |"ve", &t|p);.X V|
|000035c0| 53 20 3d 20 65 5f 74 67 | 65 74 73 74 72 28 22 76 |S = e_tg|etstr("v|
|000035d0| 73 22 2c 20 26 74 70 29 | 3b 0a 58 20 20 50 4f 20 |s", &tp)|;.X PO |
|000035e0| 3d 20 65 5f 74 67 65 74 | 73 74 72 28 22 70 6f 22 |= e_tget|str("po"|
|000035f0| 2c 20 26 74 70 29 3b 0a | 58 20 20 69 66 20 28 21 |, &tp);.|X if (!|
|00003600| 28 50 46 20 3d 20 65 5f | 74 67 65 74 73 74 72 28 |(PF = e_|tgetstr(|
|00003610| 22 70 66 22 2c 20 26 74 | 70 29 29 29 0a 58 20 20 |"pf", &t|p))).X |
|00003620| 20 20 50 4f 20 3d 20 30 | 3b 0a 58 20 20 64 65 62 | PO = 0|;.X deb|
|00003630| 75 67 32 28 22 74 65 72 | 6d 69 6e 61 6c 20 73 69 |ug2("ter|minal si|
|00003640| 7a 65 20 69 73 20 25 64 | 2c 20 25 64 20 28 73 61 |ze is %d|, %d (sa|
|00003650| 79 73 20 54 45 52 4d 43 | 41 50 29 5c 6e 22 2c 20 |ys TERMC|AP)\n", |
|00003660| 54 65 72 6d 63 61 70 43 | 4f 4c 53 2c 20 54 65 72 |TermcapC|OLS, Ter|
|00003670| 6d 63 61 70 52 4f 57 53 | 29 3b 0a 58 20 20 2f 2a |mcapROWS|);.X /*|
|00003680| 20 54 65 72 6d 63 61 70 | 20 66 69 65 6c 64 73 20 | Termcap| fields |
|00003690| 5a 30 20 26 20 5a 31 20 | 63 6f 6e 74 61 69 6e 20 |Z0 & Z1 |contain |
|000036a0| 77 69 64 74 68 2d 63 68 | 61 6e 67 69 6e 67 20 73 |width-ch|anging s|
|000036b0| 65 71 75 65 6e 63 65 73 | 2e 20 2a 2f 0a 58 20 20 |equences|. */.X |
|000036c0| 69 66 20 28 28 5a 30 20 | 3d 20 65 5f 74 67 65 74 |if ((Z0 |= e_tget|
|000036d0| 73 74 72 28 22 5a 30 22 | 2c 20 26 74 70 29 29 20 |str("Z0"|, &tp)) |
|000036e0| 21 3d 20 4e 55 4c 4c 0a | 58 20 20 20 20 20 20 26 |!= NULL.|X &|
|000036f0| 26 20 28 5a 31 20 3d 20 | 65 5f 74 67 65 74 73 74 |& (Z1 = |e_tgetst|
|00003700| 72 28 22 5a 31 22 2c 20 | 26 74 70 29 29 20 3d 3d |r("Z1", |&tp)) ==|
|00003710| 20 4e 55 4c 4c 29 0a 58 | 20 20 20 20 5a 30 20 3d | NULL).X| Z0 =|
|00003720| 20 4e 55 4c 4c 3b 0a 58 | 0a 58 20 20 5a 30 77 69 | NULL;.X|.X Z0wi|
|00003730| 64 74 68 20 3d 20 31 33 | 32 3b 0a 58 20 20 5a 31 |dth = 13|2;.X Z1|
|00003740| 77 69 64 74 68 20 3d 20 | 38 30 3b 0a 58 0a 58 20 |width = |80;.X.X |
|00003750| 20 43 68 65 63 6b 53 63 | 72 65 65 6e 53 69 7a 65 | CheckSc|reenSize|
|00003760| 28 30 29 3b 0a 58 20 20 | 69 66 20 28 28 48 53 20 |(0);.X |if ((HS |
|00003770| 3d 20 65 5f 74 67 65 74 | 66 6c 61 67 28 22 68 73 |= e_tget|flag("hs|
|00003780| 22 29 29 20 21 3d 20 30 | 29 0a 58 20 20 20 20 7b |")) != 0|).X {|
|00003790| 0a 58 20 20 20 20 20 20 | 64 65 62 75 67 28 22 6f |.X |debug("o|
|000037a0| 79 21 20 77 65 20 68 61 | 76 65 20 61 20 68 61 72 |y! we ha|ve a har|
|000037b0| 64 77 61 72 65 20 73 74 | 61 74 75 73 20 6c 69 6e |dware st|atus lin|
|000037c0| 65 2c 20 73 61 79 73 20 | 74 65 72 6d 63 61 70 5c |e, says |termcap\|
|000037d0| 6e 22 29 3b 0a 58 20 20 | 20 20 20 20 54 53 20 3d |n");.X | TS =|
|000037e0| 20 65 5f 74 67 65 74 73 | 74 72 28 22 74 73 22 2c | e_tgets|tr("ts",|
|000037f0| 20 26 74 70 29 3b 0a 58 | 20 20 20 20 20 20 46 53 | &tp);.X| FS|
|00003800| 20 3d 20 65 5f 74 67 65 | 74 73 74 72 28 22 66 73 | = e_tge|tstr("fs|
|00003810| 22 2c 20 26 74 70 29 3b | 0a 58 20 20 20 20 20 20 |", &tp);|.X |
|00003820| 44 53 20 3d 20 65 5f 74 | 67 65 74 73 74 72 28 22 |DS = e_t|getstr("|
|00003830| 64 73 22 2c 20 26 74 70 | 29 3b 0a 58 20 20 20 20 |ds", &tp|);.X |
|00003840| 20 20 69 66 20 28 28 48 | 53 20 3d 20 65 5f 74 67 | if ((H|S = e_tg|
|00003850| 65 74 6e 75 6d 28 22 77 | 73 22 29 29 20 3c 3d 20 |etnum("w|s")) <= |
|00003860| 30 29 0a 58 09 48 53 20 | 3d 20 73 63 72 65 65 6e |0).X.HS |= screen|
|00003870| 77 69 64 74 68 3b 0a 58 | 20 20 20 20 20 20 69 66 |width;.X| if|
|00003880| 20 28 21 54 53 20 7c 7c | 20 21 46 53 20 7c 7c 20 | (!TS ||| !FS || |
|00003890| 21 44 53 29 0a 58 09 48 | 53 20 3d 20 30 3b 0a 58 |!DS).X.H|S = 0;.X|
|000038a0| 20 20 20 20 7d 0a 58 20 | 20 74 65 72 6d 63 61 70 | }.X | termcap|
|000038b0| 48 53 20 3d 20 48 53 3b | 0a 58 20 20 69 66 20 28 |HS = HS;|.X if (|
|000038c0| 21 75 73 65 5f 68 61 72 | 64 73 74 61 74 75 73 29 |!use_har|dstatus)|
|000038d0| 0a 58 20 20 20 20 48 53 | 20 3d 20 30 3b 0a 58 0a |.X HS| = 0;.X.|
|000038e0| 58 20 20 55 50 63 6f 73 | 74 20 3d 20 43 61 6c 63 |X UPcos|t = Calc|
|000038f0| 43 6f 73 74 28 55 50 29 | 3b 0a 58 20 20 44 4f 63 |Cost(UP)|;.X DOc|
|00003900| 6f 73 74 20 3d 20 43 61 | 6c 63 43 6f 73 74 28 44 |ost = Ca|lcCost(D|
|00003910| 4f 29 3b 0a 58 20 20 4e | 4c 63 6f 73 74 20 3d 20 |O);.X N|Lcost = |
|00003920| 43 61 6c 63 43 6f 73 74 | 28 4e 4c 29 3b 0a 58 20 |CalcCost|(NL);.X |
|00003930| 20 4c 45 63 6f 73 74 20 | 3d 20 43 61 6c 63 43 6f | LEcost |= CalcCo|
|00003940| 73 74 28 42 43 29 3b 0a | 58 20 20 4e 44 63 6f 73 |st(BC);.|X NDcos|
|00003950| 74 20 3d 20 43 61 6c 63 | 43 6f 73 74 28 4e 44 29 |t = Calc|Cost(ND)|
|00003960| 3b 0a 58 20 20 43 52 63 | 6f 73 74 20 3d 20 43 61 |;.X CRc|ost = Ca|
|00003970| 6c 63 43 6f 73 74 28 43 | 52 29 3b 0a 58 20 20 49 |lcCost(C|R);.X I|
|00003980| 4d 63 6f 73 74 20 3d 20 | 43 61 6c 63 43 6f 73 74 |Mcost = |CalcCost|
|00003990| 28 49 4d 29 3b 0a 58 20 | 20 45 49 63 6f 73 74 20 |(IM);.X | EIcost |
|000039a0| 3d 20 43 61 6c 63 43 6f | 73 74 28 45 49 29 3b 0a |= CalcCo|st(EI);.|
|000039b0| 58 20 20 66 6f 72 20 28 | 69 20 3d 20 30 3b 20 69 |X for (|i = 0; i|
|000039c0| 20 3c 20 4e 4b 45 59 43 | 41 50 53 3b 20 69 2b 2b | < NKEYC|APS; i++|
|000039d0| 29 0a 58 20 20 20 20 4b | 65 79 43 61 70 73 41 72 |).X K|eyCapsAr|
|000039e0| 72 5b 69 5d 20 3d 20 65 | 5f 74 67 65 74 73 74 72 |r[i] = e|_tgetstr|
|000039f0| 28 4b 65 79 43 61 70 73 | 5b 69 5d 2c 20 26 74 70 |(KeyCaps|[i], &tp|
|00003a00| 29 3b 0a 58 20 20 4d 61 | 6b 65 54 65 72 6d 63 61 |);.X Ma|keTermca|
|00003a10| 70 28 30 29 3b 0a 58 7d | 0a 58 0a 58 2f 2a 0a 58 |p(0);.X}|.X.X/*.X|
|00003a20| 20 2a 20 69 66 20 74 68 | 65 20 61 64 61 70 74 66 | * if th|e adaptf|
|00003a30| 6c 61 67 20 69 73 20 6f | 6e 2c 20 77 65 20 6b 65 |lag is o|n, we ke|
|00003a40| 65 70 20 74 68 65 20 73 | 69 7a 65 20 6f 66 20 74 |ep the s|ize of t|
|00003a50| 68 69 73 20 64 69 73 70 | 6c 61 79 2c 20 65 6c 73 |his disp|lay, els|
|00003a60| 65 0a 58 20 2a 20 77 65 | 20 6d 61 79 20 74 72 79 |e.X * we| may try|
|00003a70| 20 74 6f 20 72 65 73 74 | 6f 72 65 20 6f 75 72 20 | to rest|ore our |
|00003a80| 6f 6c 64 20 77 69 6e 64 | 6f 77 20 73 69 7a 65 73 |old wind|ow sizes|
|00003a90| 2e 0a 58 20 2a 2f 0a 76 | 6f 69 64 0a 49 6e 69 74 |..X */.v|oid.Init|
|00003aa0| 54 65 72 6d 28 61 64 61 | 70 74 29 0a 69 6e 74 20 |Term(ada|pt).int |
|00003ab0| 61 64 61 70 74 3b 0a 58 | 7b 0a 58 20 20 64 69 73 |adapt;.X|{.X dis|
|00003ac0| 70 6c 61 79 20 3d 20 31 | 3b 0a 58 20 20 73 63 72 |play = 1|;.X scr|
|00003ad0| 65 65 6e 74 6f 70 20 3d | 20 73 63 72 65 65 6e 62 |eentop =| screenb|
|00003ae0| 6f 74 20 3d 20 2d 31 3b | 0a 58 20 20 50 75 74 53 |ot = -1;|.X PutS|
|00003af0| 74 72 28 49 53 29 3b 0a | 58 20 20 50 75 74 53 74 |tr(IS);.|X PutSt|
|00003b00| 72 28 54 49 29 3b 0a 58 | 20 20 69 66 20 28 49 4d |r(TI);.X| if (IM|
|00003b10| 20 26 26 20 73 74 72 63 | 6d 70 28 49 4d 2c 20 45 | && strc|mp(IM, E|
|00003b20| 49 29 29 0a 58 20 20 20 | 20 50 75 74 53 74 72 28 |I)).X | PutStr(|
|00003b30| 45 49 29 3b 0a 58 20 20 | 69 6e 73 65 72 74 20 3d |EI);.X |insert =|
|00003b40| 20 30 3b 0a 58 20 20 69 | 66 20 28 4b 53 20 26 26 | 0;.X i|f (KS &&|
|00003b50| 20 73 74 72 63 6d 70 28 | 4b 53 2c 20 4b 45 29 29 | strcmp(|KS, KE))|
|00003b60| 0a 58 20 20 20 20 50 75 | 74 53 74 72 28 4b 45 29 |.X Pu|tStr(KE)|
|00003b70| 3b 0a 58 20 20 6b 65 79 | 70 61 64 20 3d 20 30 3b |;.X key|pad = 0;|
|00003b80| 0a 58 20 20 52 65 73 69 | 7a 65 53 63 72 65 65 6e |.X Resi|zeScreen|
|00003b90| 28 28 73 74 72 75 63 74 | 20 77 69 6e 20 2a 29 30 |((struct| win *)0|
|00003ba0| 29 3b 0a 58 20 20 43 68 | 61 6e 67 65 53 63 72 6f |);.X Ch|angeScro|
|00003bb0| 6c 6c 52 65 67 69 6f 6e | 28 30 2c 20 73 63 72 65 |llRegion|(0, scre|
|00003bc0| 65 6e 68 65 69 67 68 74 | 2d 31 29 3b 0a 58 20 20 |enheight|-1);.X |
|00003bd0| 50 75 74 53 74 72 28 43 | 4c 29 3b 0a 58 20 20 73 |PutStr(C|L);.X s|
|00003be0| 63 72 65 65 6e 78 20 3d | 20 73 63 72 65 65 6e 79 |creenx =| screeny|
|00003bf0| 20 3d 20 30 3b 0a 58 20 | 20 66 66 6c 75 73 68 28 | = 0;.X | fflush(|
|00003c00| 73 74 64 6f 75 74 29 3b | 0a 58 20 20 64 65 62 75 |stdout);|.X debu|
|00003c10| 67 31 28 22 77 65 20 25 | 73 77 61 6e 74 20 74 6f |g1("we %|swant to|
|00003c20| 20 61 64 61 70 74 20 61 | 6c 6c 20 6f 75 72 20 77 | adapt a|ll our w|
|00003c30| 69 6e 64 6f 77 73 20 74 | 6f 20 74 68 65 20 64 69 |indows t|o the di|
|00003c40| 73 70 6c 61 79 5c 6e 22 | 2c 20 0a 58 09 20 28 61 |splay\n"|, .X. (a|
|00003c50| 64 61 70 74 29 20 3f 20 | 22 22 20 3a 20 22 64 6f |dapt) ? |"" : "do|
|00003c60| 6e 27 74 20 22 29 3b 0a | 58 20 20 2f 2a 20 49 6e |n't ");.|X /* In|
|00003c70| 20 63 61 73 65 20 74 68 | 65 20 73 69 7a 65 20 77 | case th|e size w|
|00003c80| 61 73 20 63 68 61 6e 67 | 65 64 20 62 79 20 61 20 |as chang|ed by a |
|00003c90| 69 6e 69 74 20 73 65 71 | 75 65 6e 63 65 20 2a 2f |init seq|uence */|
|00003ca0| 0a 58 20 20 43 68 65 63 | 6b 53 63 72 65 65 6e 53 |.X Chec|kScreenS|
|00003cb0| 69 7a 65 28 28 61 64 61 | 70 74 29 20 3f 20 32 20 |ize((ada|pt) ? 2 |
|00003cc0| 3a 20 30 29 3b 0a 58 7d | 0a 58 0a 76 6f 69 64 0a |: 0);.X}|.X.void.|
|00003cd0| 58 46 69 6e 69 74 54 65 | 72 6d 28 29 0a 58 7b 0a |XFinitTe|rm().X{.|
|00003ce0| 58 20 20 64 69 73 70 6c | 61 79 20 3d 20 31 3b 0a |X displ|ay = 1;.|
|00003cf0| 58 20 20 66 6c 6f 77 20 | 3d 20 31 3b 0a 58 20 20 |X flow |= 1;.X |
|00003d00| 49 6e 73 65 72 74 4d 6f | 64 65 28 30 29 3b 0a 58 |InsertMo|de(0);.X|
|00003d10| 20 20 4b 65 79 70 61 64 | 4d 6f 64 65 28 30 29 3b | Keypad|Mode(0);|
|00003d20| 0a 58 20 20 52 65 73 69 | 7a 65 53 63 72 65 65 6e |.X Resi|zeScreen|
|00003d30| 28 28 73 74 72 75 63 74 | 20 77 69 6e 20 2a 29 30 |((struct| win *)0|
|00003d40| 29 3b 0a 58 20 20 43 68 | 61 6e 67 65 53 63 72 6f |);.X Ch|angeScro|
|00003d50| 6c 6c 52 65 67 69 6f 6e | 28 30 2c 20 73 63 72 65 |llRegion|(0, scre|
|00003d60| 65 6e 68 65 69 67 68 74 | 20 2d 20 31 29 3b 0a 58 |enheight| - 1);.X|
|00003d70| 20 20 53 61 76 65 53 65 | 74 41 74 74 72 28 30 2c | SaveSe|tAttr(0,|
|00003d80| 20 41 53 43 49 49 29 3b | 0a 58 20 20 73 63 72 65 | ASCII);|.X scre|
|00003d90| 65 6e 78 20 3d 20 73 63 | 72 65 65 6e 79 20 3d 20 |enx = sc|reeny = |
|00003da0| 2d 31 3b 0a 58 20 20 47 | 6f 74 6f 50 6f 73 28 30 |-1;.X G|otoPos(0|
|00003db0| 2c 20 73 63 72 65 65 6e | 68 65 69 67 68 74 20 2d |, screen|height -|
|00003dc0| 20 31 29 3b 0a 58 20 20 | 50 75 74 53 74 72 28 54 | 1);.X |PutStr(T|
|00003dd0| 45 29 3b 0a 58 20 20 66 | 66 6c 75 73 68 28 73 74 |E);.X f|flush(st|
|00003de0| 64 6f 75 74 29 3b 0a 58 | 20 20 69 66 20 28 54 65 |dout);.X| if (Te|
|00003df0| 72 6d 63 61 70 29 20 0a | 58 20 20 20 20 7b 0a 58 |rmcap) .|X {.X|
|00003e00| 20 20 20 20 20 20 46 72 | 65 65 28 54 65 72 6d 63 | Fr|ee(Termc|
|00003e10| 61 70 29 3b 0a 58 20 20 | 20 20 20 20 64 65 62 75 |ap);.X | debu|
|00003e20| 67 28 22 46 69 6e 69 74 | 54 65 72 6d 3a 20 6f 6c |g("Finit|Term: ol|
|00003e30| 64 20 74 65 72 6d 63 61 | 70 20 66 72 65 65 64 5c |d termca|p freed\|
|00003e40| 6e 22 29 3b 0a 58 20 20 | 20 20 7d 0a 58 20 20 69 |n");.X | }.X i|
|00003e50| 66 20 28 74 62 75 66 29 | 20 0a 58 20 20 20 20 7b |f (tbuf)| .X {|
|00003e60| 0a 58 20 20 20 20 20 20 | 46 72 65 65 28 74 62 75 |.X |Free(tbu|
|00003e70| 66 29 3b 0a 58 20 20 20 | 20 20 20 64 65 62 75 67 |f);.X | debug|
|00003e80| 28 22 46 69 6e 69 74 54 | 65 72 6d 3a 20 6f 6c 64 |("FinitT|erm: old|
|00003e90| 20 74 62 75 66 20 66 72 | 65 65 64 5c 6e 22 29 3b | tbuf fr|eed\n");|
|00003ea0| 0a 58 20 20 20 20 7d 0a | 58 20 20 69 66 20 28 74 |.X }.|X if (t|
|00003eb0| 65 6e 74 72 79 29 20 0a | 58 20 20 20 20 7b 0a 58 |entry) .|X {.X|
|00003ec0| 20 20 20 20 20 20 46 72 | 65 65 28 74 65 6e 74 72 | Fr|ee(tentr|
|00003ed0| 79 29 3b 0a 58 20 20 20 | 20 20 20 64 65 62 75 67 |y);.X | debug|
|00003ee0| 28 22 46 69 6e 69 74 54 | 65 72 6d 3a 20 6f 6c 64 |("FinitT|erm: old|
|00003ef0| 20 74 65 6e 74 72 79 20 | 66 72 65 65 64 5c 6e 22 | tentry |freed\n"|
|00003f00| 29 3b 0a 58 20 20 20 20 | 7d 0a 58 7d 0a 58 0a 73 |);.X |}.X}.X.s|
|00003f10| 74 61 74 69 63 20 76 6f | 69 64 20 41 64 64 43 61 |tatic vo|id AddCa|
|00003f20| 70 28 73 29 0a 63 68 61 | 72 20 2a 73 3b 0a 58 7b |p(s).cha|r *s;.X{|
|00003f30| 0a 58 20 20 72 65 67 69 | 73 74 65 72 20 69 6e 74 |.X regi|ster int|
|00003f40| 20 6e 3b 0a 58 0a 58 20 | 20 69 66 20 28 74 63 4c | n;.X.X | if (tcL|
|00003f50| 69 6e 65 4c 65 6e 20 2b | 20 28 6e 20 3d 20 73 74 |ineLen +| (n = st|
|00003f60| 72 6c 65 6e 28 73 29 29 | 20 3e 20 35 35 20 26 26 |rlen(s))| > 55 &&|
|00003f70| 20 54 65 72 6d 63 61 70 | 6c 65 6e 20 3c 20 31 30 | Termcap|len < 10|
|00003f80| 32 34 2d 34 29 0a 58 20 | 20 20 20 7b 0a 58 20 20 |24-4).X | {.X |
|00003f90| 20 20 20 20 73 74 72 63 | 70 79 28 54 65 72 6d 63 | strc|py(Termc|
|00003fa0| 61 70 20 2b 20 54 65 72 | 6d 63 61 70 6c 65 6e 2c |ap + Ter|mcaplen,|
|00003fb0| 20 22 5c 5c 5c 6e 5c 74 | 3a 22 29 3b 0a 58 20 20 | "\\\n\t|:");.X |
|00003fc0| 20 20 20 20 54 65 72 6d | 63 61 70 6c 65 6e 20 2b | Term|caplen +|
|00003fd0| 3d 20 34 3b 0a 58 20 20 | 20 20 20 20 74 63 4c 69 |= 4;.X | tcLi|
|00003fe0| 6e 65 4c 65 6e 20 3d 20 | 30 3b 0a 58 20 20 20 20 |neLen = |0;.X |
|00003ff0| 7d 0a 58 20 20 69 66 20 | 28 54 65 72 6d 63 61 70 |}.X if |(Termcap|
|00004000| 6c 65 6e 20 2b 20 6e 20 | 3c 20 31 30 32 34 29 0a |len + n |< 1024).|
|00004010| 58 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 73 74 |X {.X| st|
|00004020| 72 63 70 79 28 54 65 72 | 6d 63 61 70 20 2b 20 54 |rcpy(Ter|mcap + T|
|00004030| 65 72 6d 63 61 70 6c 65 | 6e 2c 20 73 29 3b 0a 58 |ermcaple|n, s);.X|
|00004040| 20 20 20 20 20 20 54 65 | 72 6d 63 61 70 6c 65 6e | Te|rmcaplen|
|00004050| 20 2b 3d 20 6e 3b 0a 58 | 20 20 20 20 20 20 74 63 | += n;.X| tc|
|00004060| 4c 69 6e 65 4c 65 6e 20 | 2b 3d 20 6e 3b 0a 58 20 |LineLen |+= n;.X |
|00004070| 20 20 20 7d 0a 58 20 20 | 65 6c 73 65 0a 58 20 20 | }.X |else.X |
|00004080| 20 20 4d 73 67 28 30 2c | 20 22 54 45 52 4d 43 41 | Msg(0,| "TERMCA|
|00004090| 50 20 6f 76 65 72 66 6c | 6f 77 20 2d 20 73 6f 72 |P overfl|ow - sor|
|000040a0| 72 79 2e 22 29 3b 0a 58 | 7d 0a 58 0a 63 68 61 72 |ry.");.X|}.X.char|
|000040b0| 20 2a 4d 61 6b 65 54 65 | 72 6d 63 61 70 28 61 66 | *MakeTe|rmcap(af|
|000040c0| 6c 61 67 29 0a 69 6e 74 | 20 61 66 6c 61 67 3b 0a |lag).int| aflag;.|
|000040d0| 58 7b 0a 58 20 20 63 68 | 61 72 20 62 75 66 5b 31 |X{.X ch|ar buf[1|
|000040e0| 30 32 34 5d 3b 0a 58 20 | 20 72 65 67 69 73 74 65 |024];.X | registe|
|000040f0| 72 20 63 68 61 72 20 2a | 70 2c 20 2a 63 70 2c 20 |r char *|p, *cp, |
|00004100| 63 68 3b 0a 58 20 20 69 | 6e 74 20 69 3b 0a 58 0a |ch;.X i|nt i;.X.|
|00004110| 58 20 20 69 66 20 28 73 | 63 72 65 65 6e 63 61 70 |X if (s|creencap|
|00004120| 29 0a 58 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |).X {|.X |
|00004130| 73 70 72 69 6e 74 66 28 | 54 65 72 6d 2c 20 22 54 |sprintf(|Term, "T|
|00004140| 45 52 4d 3d 73 63 72 65 | 65 6e 22 29 3b 0a 58 20 |ERM=scre|en");.X |
|00004150| 20 20 20 20 20 72 65 74 | 75 72 6e 20 54 65 72 6d | ret|urn Term|
|00004160| 63 61 70 3b 0a 58 20 20 | 20 20 7d 0a 58 20 20 69 |cap;.X | }.X i|
|00004170| 66 20 28 73 63 72 65 65 | 6e 74 65 72 6d 20 3d 3d |f (scree|nterm ==|
|00004180| 20 30 20 7c 7c 20 2a 73 | 63 72 65 65 6e 74 65 72 | 0 || *s|creenter|
|00004190| 6d 20 3d 3d 20 27 5c 30 | 27 29 0a 58 20 20 20 20 |m == '\0|').X |
|000041a0| 7b 0a 58 20 20 20 20 20 | 20 64 65 62 75 67 28 22 |{.X | debug("|
|000041b0| 4d 61 6b 65 54 65 72 6d | 63 61 70 20 73 65 74 73 |MakeTerm|cap sets|
|000041c0| 20 73 63 72 65 65 6e 74 | 65 72 6d 3d 73 63 72 65 | screent|erm=scre|
|000041d0| 65 6e 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 73 |en\n");.|X s|
|000041e0| 74 72 63 70 79 28 73 63 | 72 65 65 6e 74 65 72 6d |trcpy(sc|reenterm|
|000041f0| 2c 20 22 73 63 72 65 65 | 6e 22 29 3b 0a 58 20 20 |, "scree|n");.X |
|00004200| 20 20 7d 0a 58 20 20 66 | 6f 72 20 28 3b 3b 29 0a | }.X f|or (;;).|
|00004210| 58 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 73 70 |X {.X| sp|
|00004220| 72 69 6e 74 66 28 54 65 | 72 6d 2c 20 22 54 45 52 |rintf(Te|rm, "TER|
|00004230| 4d 3d 22 29 3b 0a 58 20 | 20 20 20 20 20 70 20 3d |M=");.X | p =|
|00004240| 20 54 65 72 6d 20 2b 20 | 35 3b 0a 58 20 20 20 20 | Term + |5;.X |
|00004250| 20 20 69 66 20 28 21 61 | 66 6c 61 67 20 26 26 20 | if (!a|flag && |
|00004260| 28 75 6e 73 69 67 6e 65 | 64 29 73 74 72 6c 65 6e |(unsigne|d)strlen|
|00004270| 28 73 63 72 65 65 6e 74 | 65 72 6d 29 2b 73 74 72 |(screent|erm)+str|
|00004280| 6c 65 6e 28 74 65 72 6d | 6e 61 6d 65 29 20 3c 20 |len(term|name) < |
|00004290| 4d 41 58 53 54 52 2d 31 | 29 0a 58 09 7b 0a 58 09 |MAXSTR-1|).X.{.X.|
|000042a0| 20 20 73 70 72 69 6e 74 | 66 28 70 2c 20 22 25 73 | sprint|f(p, "%s|
|000042b0| 2e 25 73 22 2c 20 73 63 | 72 65 65 6e 74 65 72 6d |.%s", sc|reenterm|
|000042c0| 2c 20 74 65 72 6d 6e 61 | 6d 65 29 3b 0a 58 09 20 |, termna|me);.X. |
|000042d0| 20 69 66 20 28 74 67 65 | 74 65 6e 74 28 62 75 66 | if (tge|tent(buf|
|000042e0| 2c 20 70 29 20 3d 3d 20 | 31 29 0a 58 09 20 20 20 |, p) == |1).X. |
|000042f0| 20 62 72 65 61 6b 3b 0a | 58 09 7d 0a 58 20 20 20 | break;.|X.}.X |
|00004300| 20 20 20 69 66 20 28 73 | 63 72 65 65 6e 77 69 64 | if (s|creenwid|
|00004310| 74 68 20 3e 3d 20 31 33 | 32 29 0a 58 09 7b 0a 58 |th >= 13|2).X.{.X|
|00004320| 09 20 20 73 70 72 69 6e | 74 66 28 70 2c 20 22 25 |. sprin|tf(p, "%|
|00004330| 73 2d 77 22 2c 20 73 63 | 72 65 65 6e 74 65 72 6d |s-w", sc|reenterm|
|00004340| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 69 66 |);.X | if|
|00004350| 20 28 74 67 65 74 65 6e | 74 28 62 75 66 2c 20 70 | (tgeten|t(buf, p|
|00004360| 29 20 3d 3d 20 31 29 0a | 58 09 20 20 20 20 62 72 |) == 1).|X. br|
|00004370| 65 61 6b 3b 0a 58 09 7d | 0a 58 20 20 20 20 20 20 |eak;.X.}|.X |
|00004380| 73 70 72 69 6e 74 66 28 | 70 2c 20 22 25 73 22 2c |sprintf(|p, "%s",|
|00004390| 20 73 63 72 65 65 6e 74 | 65 72 6d 29 3b 0a 58 20 | screent|erm);.X |
|000043a0| 20 20 20 20 20 69 66 20 | 28 74 67 65 74 65 6e 74 | if |(tgetent|
|000043b0| 28 62 75 66 2c 20 70 29 | 20 3d 3d 20 31 29 0a 58 |(buf, p)| == 1).X|
|000043c0| 09 62 72 65 61 6b 3b 0a | 58 20 20 20 20 20 20 73 |.break;.|X s|
|000043d0| 70 72 69 6e 74 66 28 70 | 2c 20 22 76 74 31 30 30 |printf(p|, "vt100|
|000043e0| 22 29 3b 0a 58 20 20 20 | 20 20 20 62 72 65 61 6b |");.X | break|
|000043f0| 3b 0a 58 20 20 20 20 7d | 0a 58 20 20 74 63 4c 69 |;.X }|.X tcLi|
|00004400| 6e 65 4c 65 6e 20 3d 20 | 31 30 30 3b 09 2f 2a 20 |neLen = |100;./* |
|00004410| 46 6f 72 63 65 20 4e 4c | 20 2a 2f 0a 58 20 20 73 |Force NL| */.X s|
|00004420| 70 72 69 6e 74 66 28 54 | 65 72 6d 63 61 70 2c 0a |printf(T|ermcap,.|
|00004430| 58 09 20 20 22 54 45 52 | 4d 43 41 50 3d 53 43 7c |X. "TER|MCAP=SC||
|00004440| 25 73 7c 56 54 20 31 30 | 30 2f 41 4e 53 49 20 58 |%s|VT 10|0/ANSI X|
|00004450| 33 2e 36 34 20 76 69 72 | 74 75 61 6c 20 74 65 72 |3.64 vir|tual ter|
|00004460| 6d 69 6e 61 6c 7c 22 2c | 20 70 29 3b 0a 58 20 20 |minal|",| p);.X |
|00004470| 54 65 72 6d 63 61 70 6c | 65 6e 20 3d 20 73 74 72 |Termcapl|en = str|
|00004480| 6c 65 6e 28 54 65 72 6d | 63 61 70 29 3b 0a 58 20 |len(Term|cap);.X |
|00004490| 20 69 66 20 28 65 78 74 | 72 61 5f 6f 75 74 63 61 | if (ext|ra_outca|
|000044a0| 70 20 26 26 20 2a 65 78 | 74 72 61 5f 6f 75 74 63 |p && *ex|tra_outc|
|000044b0| 61 70 29 0a 58 20 20 20 | 20 7b 0a 58 20 20 20 20 |ap).X | {.X |
|000044c0| 20 20 66 6f 72 20 28 63 | 70 20 3d 20 65 78 74 72 | for (c|p = extr|
|000044d0| 61 5f 6f 75 74 63 61 70 | 3b 20 70 20 3d 20 69 6e |a_outcap|; p = in|
|000044e0| 64 65 78 28 63 70 2c 20 | 27 3a 27 29 3b 20 63 70 |dex(cp, |':'); cp|
|000044f0| 20 3d 20 70 29 0a 58 09 | 7b 0a 58 09 20 20 63 68 | = p).X.|{.X. ch|
|00004500| 20 3d 20 2a 2b 2b 70 3b | 0a 58 09 20 20 2a 70 20 | = *++p;|.X. *p |
|00004510| 3d 20 27 5c 30 27 3b 0a | 58 09 20 20 41 64 64 43 |= '\0';.|X. AddC|
|00004520| 61 70 28 63 70 29 3b 0a | 58 09 20 20 2a 70 20 3d |ap(cp);.|X. *p =|
|00004530| 20 63 68 3b 0a 58 09 7d | 0a 58 20 20 20 20 20 20 | ch;.X.}|.X |
|00004540| 74 63 4c 69 6e 65 4c 65 | 6e 20 3d 20 31 30 30 3b |tcLineLe|n = 100;|
|00004550| 09 2f 2a 20 46 6f 72 63 | 65 20 4e 4c 20 2a 2f 0a |./* Forc|e NL */.|
|00004560| 58 20 20 20 20 7d 0a 58 | 20 20 69 66 20 28 54 65 |X }.X| if (Te|
|00004570| 72 6d 63 61 70 6c 65 6e | 20 2b 20 28 75 6e 73 69 |rmcaplen| + (unsi|
|00004580| 67 6e 65 64 29 73 74 72 | 6c 65 6e 28 54 65 72 6d |gned)str|len(Term|
|00004590| 63 61 70 43 6f 6e 73 74 | 29 20 3c 20 31 30 32 34 |capConst|) < 1024|
|000045a0| 29 0a 58 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |).X {|.X |
|000045b0| 73 74 72 63 70 79 28 54 | 65 72 6d 63 61 70 20 2b |strcpy(T|ermcap +|
|000045c0| 20 54 65 72 6d 63 61 70 | 6c 65 6e 2c 20 54 65 72 | Termcap|len, Ter|
|000045d0| 6d 63 61 70 43 6f 6e 73 | 74 29 3b 0a 58 20 20 20 |mcapCons|t);.X |
|000045e0| 20 20 20 54 65 72 6d 63 | 61 70 6c 65 6e 20 2b 3d | Termc|aplen +=|
|000045f0| 20 73 74 72 6c 65 6e 28 | 54 65 72 6d 63 61 70 43 | strlen(|TermcapC|
|00004600| 6f 6e 73 74 29 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |onst);.X| }.X |
|00004610| 20 73 70 72 69 6e 74 66 | 28 62 75 66 2c 20 22 6c | sprintf|(buf, "l|
|00004620| 69 23 25 64 3a 63 6f 23 | 25 64 3a 22 2c 20 73 63 |i#%d:co#|%d:", sc|
|00004630| 72 65 65 6e 68 65 69 67 | 68 74 2c 20 73 63 72 65 |reenheig|ht, scre|
|00004640| 65 6e 77 69 64 74 68 29 | 3b 0a 58 20 20 41 64 64 |enwidth)|;.X Add|
|00004650| 43 61 70 28 62 75 66 29 | 3b 0a 58 20 20 69 66 20 |Cap(buf)|;.X if |
|00004660| 28 28 66 6f 72 63 65 5f | 76 74 20 26 26 20 21 43 |((force_|vt && !C|
|00004670| 4f 50 29 20 7c 7c 20 4c | 50 20 7c 7c 20 21 41 4d |OP) || L|P || !AM|
|00004680| 29 0a 58 20 20 20 20 41 | 64 64 43 61 70 28 22 4c |).X A|ddCap("L|
|00004690| 50 3a 22 29 3b 0a 58 20 | 20 65 6c 73 65 0a 58 20 |P:");.X | else.X |
|000046a0| 20 20 20 41 64 64 43 61 | 70 28 22 61 6d 3a 22 29 | AddCa|p("am:")|
|000046b0| 3b 0a 58 20 20 69 66 20 | 28 56 42 29 0a 58 20 20 |;.X if |(VB).X |
|000046c0| 20 20 41 64 64 43 61 70 | 28 22 76 62 3d 5c 5c 45 | AddCap|("vb=\\E|
|000046d0| 5b 3f 35 68 5c 5c 45 5b | 3f 35 6c 3a 22 29 3b 0a |[?5h\\E[|?5l:");.|
|000046e0| 58 20 20 69 66 20 28 55 | 53 29 0a 58 20 20 20 20 |X if (U|S).X |
|000046f0| 7b 0a 58 20 20 20 20 20 | 20 41 64 64 43 61 70 28 |{.X | AddCap(|
|00004700| 22 75 73 3d 5c 5c 45 5b | 34 6d 3a 22 29 3b 0a 58 |"us=\\E[|4m:");.X|
|00004710| 20 20 20 20 20 20 41 64 | 64 43 61 70 28 22 75 65 | Ad|dCap("ue|
|00004720| 3d 5c 5c 45 5b 32 34 6d | 3a 22 29 3b 0a 58 20 20 |=\\E[24m|:");.X |
|00004730| 20 20 7d 0a 58 20 20 69 | 66 20 28 53 4f 29 0a 58 | }.X i|f (SO).X|
|00004740| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 41 64 64 | {.X | Add|
|00004750| 43 61 70 28 22 73 6f 3d | 5c 5c 45 5b 33 6d 3a 22 |Cap("so=|\\E[3m:"|
|00004760| 29 3b 0a 58 20 20 20 20 | 20 20 41 64 64 43 61 70 |);.X | AddCap|
|00004770| 28 22 73 65 3d 5c 5c 45 | 5b 32 33 6d 3a 22 29 3b |("se=\\E|[23m:");|
|00004780| 0a 58 20 20 20 20 7d 0a | 58 20 20 69 66 20 28 4d |.X }.|X if (M|
|00004790| 42 29 0a 58 20 20 20 20 | 41 64 64 43 61 70 28 22 |B).X |AddCap("|
|000047a0| 6d 62 3d 5c 5c 45 5b 35 | 6d 3a 22 29 3b 0a 58 20 |mb=\\E[5|m:");.X |
|000047b0| 20 69 66 20 28 4d 44 29 | 0a 58 20 20 20 20 41 64 | if (MD)|.X Ad|
|000047c0| 64 43 61 70 28 22 6d 64 | 3d 5c 5c 45 5b 31 6d 3a |dCap("md|=\\E[1m:|
|000047d0| 22 29 3b 0a 58 20 20 69 | 66 20 28 4d 48 29 0a 58 |");.X i|f (MH).X|
|000047e0| 20 20 20 20 41 64 64 43 | 61 70 28 22 6d 68 3d 5c | AddC|ap("mh=\|
|000047f0| 5c 45 5b 32 6d 3a 22 29 | 3b 0a 58 20 20 69 66 20 |\E[2m:")|;.X if |
|00004800| 28 4d 52 29 0a 58 20 20 | 20 20 41 64 64 43 61 70 |(MR).X | AddCap|
|00004810| 28 22 6d 72 3d 5c 5c 45 | 5b 37 6d 3a 22 29 3b 0a |("mr=\\E|[7m:");.|
|00004820| 58 20 20 69 66 20 28 4d | 42 20 7c 7c 20 4d 44 20 |X if (M|B || MD |
|00004830| 7c 7c 20 4d 48 20 7c 7c | 20 4d 52 29 0a 58 20 20 ||| MH ||| MR).X |
|00004840| 20 20 41 64 64 43 61 70 | 28 22 6d 65 3d 5c 5c 45 | AddCap|("me=\\E|
|00004850| 5b 6d 3a 6d 73 3a 22 29 | 3b 0a 58 20 20 69 66 20 |[m:ms:")|;.X if |
|00004860| 28 28 43 53 20 26 26 20 | 53 52 29 20 7c 7c 20 41 |((CS && |SR) || A|
|00004870| 4c 20 7c 7c 20 43 41 4c | 20 7c 7c 20 61 66 6c 61 |L || CAL| || afla|
|00004880| 67 29 0a 58 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |g).X |{.X |
|00004890| 20 41 64 64 43 61 70 28 | 22 73 72 3d 5c 5c 45 4d | AddCap(|"sr=\\EM|
|000048a0| 3a 22 29 3b 0a 58 20 20 | 20 20 20 20 41 64 64 43 |:");.X | AddC|
|000048b0| 61 70 28 22 61 6c 3d 5c | 5c 45 5b 4c 3a 22 29 3b |ap("al=\|\E[L:");|
|000048c0| 0a 58 20 20 20 20 20 20 | 41 64 64 43 61 70 28 22 |.X |AddCap("|
|000048d0| 41 4c 3d 5c 5c 45 5b 25 | 64 4c 3a 22 29 3b 0a 58 |AL=\\E[%|dL:");.X|
|000048e0| 20 20 20 20 7d 0a 58 20 | 20 65 6c 73 65 20 69 66 | }.X | else if|
|000048f0| 20 28 53 52 29 0a 58 20 | 20 20 20 41 64 64 43 61 | (SR).X | AddCa|
|00004900| 70 28 22 73 72 3d 5c 5c | 45 4d 3a 22 29 3b 0a 58 |p("sr=\\|EM:");.X|
|00004910| 20 20 69 66 20 28 43 53 | 20 7c 7c 20 44 4c 20 7c | if (CS| || DL ||
|00004920| 7c 20 43 44 4c 20 7c 7c | 20 61 66 6c 61 67 29 0a || CDL ||| aflag).|
|00004930| 58 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 41 64 |X {.X| Ad|
|00004940| 64 43 61 70 28 22 64 6c | 3d 5c 5c 45 5b 4d 3a 22 |dCap("dl|=\\E[M:"|
|00004950| 29 3b 0a 58 20 20 20 20 | 20 20 41 64 64 43 61 70 |);.X | AddCap|
|00004960| 28 22 44 4c 3d 5c 5c 45 | 5b 25 64 4d 3a 22 29 3b |("DL=\\E|[%dM:");|
|00004970| 0a 58 20 20 20 20 7d 0a | 58 20 20 69 66 20 28 43 |.X }.|X if (C|
|00004980| 53 29 0a 58 20 20 20 20 | 41 64 64 43 61 70 28 22 |S).X |AddCap("|
|00004990| 63 73 3d 5c 5c 45 5b 25 | 69 25 64 3b 25 64 72 3a |cs=\\E[%|i%d;%dr:|
|000049a0| 22 29 3b 0a 58 20 20 69 | 66 20 28 44 43 20 7c 7c |");.X i|f (DC |||
|000049b0| 20 43 44 43 20 7c 7c 20 | 61 66 6c 61 67 29 0a 58 | CDC || |aflag).X|
|000049c0| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 41 64 64 | {.X | Add|
|000049d0| 43 61 70 28 22 64 63 3d | 5c 5c 45 5b 50 3a 22 29 |Cap("dc=|\\E[P:")|
|000049e0| 3b 0a 58 20 20 20 20 20 | 20 41 64 64 43 61 70 28 |;.X | AddCap(|
|000049f0| 22 44 43 3d 5c 5c 45 5b | 25 64 50 3a 22 29 3b 0a |"DC=\\E[|%dP:");.|
|00004a00| 58 20 20 20 20 7d 0a 58 | 20 20 69 66 20 28 43 49 |X }.X| if (CI|
|00004a10| 43 20 7c 7c 20 49 43 20 | 7c 7c 20 49 4d 20 7c 7c |C || IC ||| IM |||
|00004a20| 20 61 66 6c 61 67 29 0a | 58 20 20 20 20 7b 0a 58 | aflag).|X {.X|
|00004a30| 20 20 20 20 20 20 41 64 | 64 43 61 70 28 22 69 6d | Ad|dCap("im|
|00004a40| 3d 5c 5c 45 5b 34 68 3a | 22 29 3b 0a 58 20 20 20 |=\\E[4h:|");.X |
|00004a50| 20 20 20 41 64 64 43 61 | 70 28 22 65 69 3d 5c 5c | AddCa|p("ei=\\|
|00004a60| 45 5b 34 6c 3a 22 29 3b | 0a 58 20 20 20 20 20 20 |E[4l:");|.X |
|00004a70| 41 64 64 43 61 70 28 22 | 6d 69 3a 22 29 3b 0a 58 |AddCap("|mi:");.X|
|00004a80| 20 20 20 20 20 20 41 64 | 64 43 61 70 28 22 69 63 | Ad|dCap("ic|
|00004a90| 3d 5c 5c 45 5b 40 3a 22 | 29 3b 0a 58 20 20 20 20 |=\\E[@:"|);.X |
|00004aa0| 20 20 41 64 64 43 61 70 | 28 22 49 43 3d 5c 5c 45 | AddCap|("IC=\\E|
|00004ab0| 5b 25 64 40 3a 22 29 3b | 0a 58 20 20 20 20 7d 0a |[%d@:");|.X }.|
|00004ac0| 58 20 20 69 66 20 28 4b | 53 29 0a 58 20 20 20 20 |X if (K|S).X |
|00004ad0| 41 64 64 43 61 70 28 22 | 6b 73 3d 5c 5c 45 3d 3a |AddCap("|ks=\\E=:|
|00004ae0| 22 29 3b 0a 58 20 20 69 | 66 20 28 4b 45 29 0a 58 |");.X i|f (KE).X|
|00004af0| 20 20 20 20 41 64 64 43 | 61 70 28 22 6b 65 3d 5c | AddC|ap("ke=\|
|00004b00| 5c 45 3e 3a 22 29 3b 0a | 58 20 20 69 66 20 28 49 |\E>:");.|X if (I|
|00004b10| 53 4f 32 30 32 32 29 0a | 58 20 20 20 20 41 64 64 |SO2022).|X Add|
|00004b20| 43 61 70 28 22 47 30 3a | 22 29 3b 0a 58 20 20 69 |Cap("G0:|");.X i|
|00004b30| 66 20 28 50 4f 29 0a 58 | 20 20 20 20 7b 0a 58 20 |f (PO).X| {.X |
|00004b40| 20 20 20 20 20 41 64 64 | 43 61 70 28 22 70 6f 3d | Add|Cap("po=|
|00004b50| 5c 5c 45 5b 35 69 3a 22 | 29 3b 0a 58 20 20 20 20 |\\E[5i:"|);.X |
|00004b60| 20 20 41 64 64 43 61 70 | 28 22 70 66 3d 5c 5c 45 | AddCap|("pf=\\E|
|00004b70| 5b 34 69 3a 22 29 3b 0a | 58 20 20 20 20 7d 0a 58 |[4i:");.|X }.X|
|00004b80| 20 20 69 66 20 28 5a 30 | 29 0a 58 20 20 20 20 7b | if (Z0|).X {|
|00004b90| 0a 58 20 20 20 20 20 20 | 41 64 64 43 61 70 28 22 |.X |AddCap("|
|00004ba0| 5a 30 3d 5c 5c 45 5b 3f | 33 68 3a 22 29 3b 0a 58 |Z0=\\E[?|3h:");.X|
|00004bb0| 20 20 20 20 20 20 41 64 | 64 43 61 70 28 22 5a 31 | Ad|dCap("Z1|
|00004bc0| 3d 5c 5c 45 5b 3f 33 6c | 3a 22 29 3b 0a 58 20 20 |=\\E[?3l|:");.X |
|00004bd0| 20 20 7d 0a 58 20 20 69 | 66 20 28 57 53 29 0a 58 | }.X i|f (WS).X|
|00004be0| 20 20 20 20 41 64 64 43 | 61 70 28 22 57 53 3d 5c | AddC|ap("WS=\|
|00004bf0| 5c 45 5b 38 3b 25 64 3b | 25 64 74 3a 22 29 3b 0a |\E[8;%d;|%dt:");.|
|00004c00| 58 20 20 66 6f 72 20 28 | 69 20 3d 20 30 3b 20 69 |X for (|i = 0; i|
|00004c10| 20 3c 20 4e 4b 45 59 43 | 41 50 53 3b 20 69 2b 2b | < NKEYC|APS; i++|
|00004c20| 29 0a 58 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |).X {|.X |
|00004c30| 69 66 20 28 4b 65 79 43 | 61 70 73 41 72 72 5b 69 |if (KeyC|apsArr[i|
|00004c40| 5d 20 3d 3d 20 30 29 0a | 58 09 63 6f 6e 74 69 6e |] == 0).|X.contin|
|00004c50| 75 65 3b 0a 58 20 20 20 | 20 20 20 4d 61 6b 65 53 |ue;.X | MakeS|
|00004c60| 74 72 69 6e 67 28 4b 65 | 79 43 61 70 73 5b 69 5d |tring(Ke|yCaps[i]|
|00004c70| 2c 20 62 75 66 2c 20 73 | 69 7a 65 6f 66 28 62 75 |, buf, s|izeof(bu|
|00004c80| 66 29 2c 20 4b 65 79 43 | 61 70 73 41 72 72 5b 69 |f), KeyC|apsArr[i|
|00004c90| 5d 29 3b 0a 58 20 20 20 | 20 20 20 41 64 64 43 61 |]);.X | AddCa|
|00004ca0| 70 28 62 75 66 29 3b 0a | 58 20 20 20 20 7d 0a 58 |p(buf);.|X }.X|
|00004cb0| 20 20 72 65 74 75 72 6e | 20 54 65 72 6d 63 61 70 | return| Termcap|
|00004cc0| 3b 0a 58 7d 0a 58 0a 73 | 74 61 74 69 63 20 76 6f |;.X}.X.s|tatic vo|
|00004cd0| 69 64 20 4d 61 6b 65 53 | 74 72 69 6e 67 28 63 61 |id MakeS|tring(ca|
|00004ce0| 70 2c 20 62 75 66 2c 20 | 62 75 66 6c 65 6e 2c 20 |p, buf, |buflen, |
|00004cf0| 73 29 0a 63 68 61 72 20 | 2a 63 61 70 2c 20 2a 62 |s).char |*cap, *b|
|00004d00| 75 66 3b 0a 69 6e 74 20 | 62 75 66 6c 65 6e 3b 0a |uf;.int |buflen;.|
|00004d10| 63 68 61 72 20 2a 73 3b | 0a 58 7b 0a 58 20 20 72 |char *s;|.X{.X r|
|00004d20| 65 67 69 73 74 65 72 20 | 63 68 61 72 20 2a 70 2c |egister |char *p,|
|00004d30| 20 2a 70 6d 61 78 3b 0a | 58 20 20 72 65 67 69 73 | *pmax;.|X regis|
|00004d40| 74 65 72 20 75 6e 73 69 | 67 6e 65 64 20 69 6e 74 |ter unsi|gned int|
|00004d50| 20 63 3b 0a 58 0a 58 20 | 20 70 20 3d 20 62 75 66 | c;.X.X | p = buf|
|00004d60| 3b 0a 58 20 20 70 6d 61 | 78 20 3d 20 70 20 2b 20 |;.X pma|x = p + |
|00004d70| 62 75 66 6c 65 6e 20 2d | 20 28 33 2b 34 2b 32 29 |buflen -| (3+4+2)|
|00004d80| 3b 0a 58 20 20 2a 70 2b | 2b 20 3d 20 2a 63 61 70 |;.X *p+|+ = *cap|
|00004d90| 2b 2b 3b 0a 58 20 20 2a | 70 2b 2b 20 3d 20 2a 63 |++;.X *|p++ = *c|
|00004da0| 61 70 3b 0a 58 20 20 2a | 70 2b 2b 20 3d 20 27 3d |ap;.X *|p++ = '=|
|00004db0| 27 3b 0a 58 20 20 77 68 | 69 6c 65 20 28 28 63 20 |';.X wh|ile ((c |
|00004dc0| 3d 20 2a 73 2b 2b 29 20 | 26 26 20 70 20 3c 20 70 |= *s++) |&& p < p|
|00004dd0| 6d 61 78 29 0a 58 20 20 | 20 20 7b 0a 58 20 20 20 |max).X | {.X |
|00004de0| 20 20 20 73 77 69 74 63 | 68 20 28 63 29 0a 58 09 | switc|h (c).X.|
|00004df0| 7b 0a 58 09 63 61 73 65 | 20 27 5c 30 33 33 27 3a |{.X.case| '\033':|
|00004e00| 0a 58 09 20 20 2a 70 2b | 2b 20 3d 20 27 5c 5c 27 |.X. *p+|+ = '\\'|
|00004e10| 3b 0a 58 09 20 20 2a 70 | 2b 2b 20 3d 20 27 45 27 |;.X. *p|++ = 'E'|
|00004e20| 3b 0a 58 09 20 20 62 72 | 65 61 6b 3b 0a 58 09 63 |;.X. br|eak;.X.c|
|00004e30| 61 73 65 20 27 3a 27 3a | 0a 58 09 20 20 73 70 72 |ase ':':|.X. spr|
|00004e40| 69 6e 74 66 28 70 2c 20 | 22 5c 5c 30 37 32 22 29 |intf(p, |"\\072")|
|00004e50| 3b 0a 58 09 20 20 70 20 | 2b 3d 20 34 3b 0a 58 09 |;.X. p |+= 4;.X.|
|00004e60| 20 20 62 72 65 61 6b 3b | 0a 58 09 63 61 73 65 20 | break;|.X.case |
|00004e70| 27 5e 27 3a 0a 58 09 63 | 61 73 65 20 27 5c 5c 27 |'^':.X.c|ase '\\'|
|00004e80| 3a 0a 58 09 20 20 2a 70 | 2b 2b 20 3d 20 27 5c 5c |:.X. *p|++ = '\\|
|00004e90| 27 3b 0a 58 09 20 20 2a | 70 2b 2b 20 3d 20 63 3b |';.X. *|p++ = c;|
|00004ea0| 0a 58 09 20 20 62 72 65 | 61 6b 3b 0a 58 09 64 65 |.X. bre|ak;.X.de|
|00004eb0| 66 61 75 6c 74 3a 0a 58 | 09 20 20 69 66 20 28 63 |fault:.X|. if (c|
|00004ec0| 20 3e 3d 20 32 30 30 29 | 0a 58 09 20 20 20 20 7b | >= 200)|.X. {|
|00004ed0| 0a 58 09 20 20 20 20 20 | 20 73 70 72 69 6e 74 66 |.X. | sprintf|
|00004ee0| 28 70 2c 20 22 5c 5c 25 | 30 33 6f 22 2c 20 63 20 |(p, "\\%|03o", c |
|00004ef0| 26 20 30 33 37 37 29 3b | 0a 58 09 20 20 20 20 20 |& 0377);|.X. |
|00004f00| 20 70 20 2b 3d 20 34 3b | 0a 58 09 20 20 20 20 7d | p += 4;|.X. }|
|00004f10| 0a 58 09 20 20 65 6c 73 | 65 20 69 66 20 28 63 20 |.X. els|e if (c |
|00004f20| 3c 20 27 20 27 29 0a 58 | 09 20 20 20 20 7b 0a 58 |< ' ').X|. {.X|
|00004f30| 09 20 20 20 20 20 20 2a | 70 2b 2b 20 3d 20 27 5e |. *|p++ = '^|
|00004f40| 27 3b 0a 58 09 20 20 20 | 20 20 20 2a 70 2b 2b 20 |';.X. | *p++ |
|00004f50| 3d 20 63 20 2b 20 27 40 | 27 3b 0a 58 09 20 20 20 |= c + '@|';.X. |
|00004f60| 20 7d 0a 58 09 20 20 65 | 6c 73 65 0a 58 09 20 20 | }.X. e|lse.X. |
|00004f70| 20 20 2a 70 2b 2b 20 3d | 20 63 3b 0a 58 09 7d 0a | *p++ =| c;.X.}.|
|00004f80| 58 20 20 20 20 7d 0a 58 | 20 20 2a 70 2b 2b 20 3d |X }.X| *p++ =|
|00004f90| 20 27 3a 27 3b 0a 58 20 | 20 2a 70 20 3d 20 27 5c | ':';.X | *p = '\|
|00004fa0| 30 27 3b 0a 58 7d 0a 58 | 0a 76 6f 69 64 0a 41 63 |0';.X}.X|.void.Ac|
|00004fb0| 74 69 76 61 74 65 28 29 | 0a 58 7b 0a 58 20 20 64 |tivate()|.X{.X d|
|00004fc0| 65 62 75 67 28 22 41 63 | 74 69 76 61 74 65 28 29 |ebug("Ac|tivate()|
|00004fd0| 5c 6e 22 29 3b 0a 58 20 | 20 69 66 20 28 64 69 73 |\n");.X | if (dis|
|00004fe0| 70 6c 61 79 29 0a 58 20 | 20 20 20 52 65 6d 6f 76 |play).X | Remov|
|00004ff0| 65 53 74 61 74 75 73 28 | 29 3b 0a 58 20 20 64 69 |eStatus(|);.X di|
|00005000| 73 70 6c 61 79 20 3d 20 | 66 6f 72 65 2d 3e 61 63 |splay = |fore->ac|
|00005010| 74 69 76 65 20 3d 20 31 | 3b 0a 58 20 20 52 65 73 |tive = 1|;.X Res|
|00005020| 69 7a 65 53 63 72 65 65 | 6e 28 66 6f 72 65 29 3b |izeScree|n(fore);|
|00005030| 0a 58 20 20 53 65 74 43 | 75 72 72 28 66 6f 72 65 |.X SetC|urr(fore|
|00005040| 29 3b 0a 58 20 20 64 65 | 62 75 67 33 28 22 46 6f |);.X de|bug3("Fo|
|00005050| 72 65 20 28 25 64 29 20 | 68 61 73 20 73 69 7a 65 |re (%d) |has size|
|00005060| 20 25 64 78 25 64 22 2c | 20 46 6f 72 65 4e 75 6d | %dx%d",| ForeNum|
|00005070| 2c 20 63 75 72 72 2d 3e | 77 69 64 74 68 2c 20 63 |, curr->|width, c|
|00005080| 75 72 72 2d 3e 68 65 69 | 67 68 74 29 3b 0a 58 20 |urr->hei|ght);.X |
|00005090| 20 64 65 62 75 67 31 28 | 22 28 25 64 29 5c 6e 22 | debug1(|"(%d)\n"|
|000050a0| 2c 20 63 75 72 72 2d 3e | 68 69 73 74 68 65 69 67 |, curr->|histheig|
|000050b0| 68 74 29 3b 0a 58 20 20 | 43 68 61 6e 67 65 53 63 |ht);.X |ChangeSc|
|000050c0| 72 6f 6c 6c 52 65 67 69 | 6f 6e 28 63 75 72 72 2d |rollRegi|on(curr-|
|000050d0| 3e 74 6f 70 2c 20 63 75 | 72 72 2d 3e 62 6f 74 29 |>top, cu|rr->bot)|
|000050e0| 3b 0a 58 20 20 4b 65 79 | 70 61 64 4d 6f 64 65 28 |;.X Key|padMode(|
|000050f0| 63 75 72 72 2d 3e 6b 65 | 79 70 61 64 29 3b 0a 58 |curr->ke|ypad);.X|
|00005100| 20 20 46 6c 6f 77 4d 6f | 64 65 28 63 75 72 72 2d | FlowMo|de(curr-|
|00005110| 3e 66 6c 6f 77 29 3b 0a | 58 20 20 69 66 20 28 63 |>flow);.|X if (c|
|00005120| 75 72 72 2d 3e 6d 6f 6e | 69 74 6f 72 20 21 3d 20 |urr->mon|itor != |
|00005130| 4d 4f 4e 5f 4f 46 46 29 | 0a 58 20 20 20 20 63 75 |MON_OFF)|.X cu|
|00005140| 72 72 2d 3e 6d 6f 6e 69 | 74 6f 72 20 3d 20 4d 4f |rr->moni|tor = MO|
|00005150| 4e 5f 4f 4e 3b 0a 58 20 | 20 63 75 72 72 2d 3e 62 |N_ON;.X | curr->b|
|00005160| 65 6c 6c 20 3d 20 42 45 | 4c 4c 5f 4f 46 46 3b 0a |ell = BE|LL_OFF;.|
|00005170| 58 20 20 52 65 64 69 73 | 70 6c 61 79 28 29 3b 0a |X Redis|play();.|
|00005180| 58 7d 0a 58 0a 76 6f 69 | 64 0a 52 65 73 65 74 53 |X}.X.voi|d.ResetS|
|00005190| 63 72 65 65 6e 28 70 29 | 0a 72 65 67 69 73 74 65 |creen(p)|.registe|
|000051a0| 72 20 73 74 72 75 63 74 | 20 77 69 6e 20 2a 70 3b |r struct| win *p;|
|000051b0| 0a 58 7b 0a 58 20 20 72 | 65 67 69 73 74 65 72 20 |.X{.X r|egister |
|000051c0| 69 6e 74 20 69 3b 0a 58 | 0a 58 20 20 70 2d 3e 77 |int i;.X|.X p->w|
|000051d0| 72 61 70 20 3d 20 77 72 | 61 70 3b 0a 58 20 20 70 |rap = wr|ap;.X p|
|000051e0| 2d 3e 6f 72 69 67 69 6e | 20 3d 20 30 3b 0a 58 20 |->origin| = 0;.X |
|000051f0| 20 70 2d 3e 69 6e 73 65 | 72 74 20 3d 20 30 3b 0a | p->inse|rt = 0;.|
|00005200| 58 20 20 70 2d 3e 76 62 | 77 61 69 74 20 3d 20 30 |X p->vb|wait = 0|
|00005210| 3b 0a 58 20 20 70 2d 3e | 6b 65 79 70 61 64 20 3d |;.X p->|keypad =|
|00005220| 20 30 3b 0a 58 20 20 70 | 2d 3e 74 6f 70 20 3d 20 | 0;.X p|->top = |
|00005230| 30 3b 0a 58 20 20 70 2d | 3e 62 6f 74 20 3d 20 70 |0;.X p-|>bot = p|
|00005240| 2d 3e 68 65 69 67 68 74 | 20 2d 20 31 3b 0a 58 20 |->height| - 1;.X |
|00005250| 20 70 2d 3e 73 61 76 65 | 64 20 3d 20 30 3b 0a 58 | p->save|d = 0;.X|
|00005260| 20 20 70 2d 3e 4c 6f 63 | 61 6c 41 74 74 72 20 3d | p->Loc|alAttr =|
|00005270| 20 30 3b 0a 58 20 20 70 | 2d 3e 78 20 3d 20 70 2d | 0;.X p|->x = p-|
|00005280| 3e 79 20 3d 20 30 3b 0a | 58 20 20 70 2d 3e 73 74 |>y = 0;.|X p->st|
|00005290| 61 74 65 20 3d 20 4c 49 | 54 3b 0a 58 20 20 70 2d |ate = LI|T;.X p-|
|000052a0| 3e 53 74 72 69 6e 67 54 | 79 70 65 20 3d 20 4e 4f |>StringT|ype = NO|
|000052b0| 4e 45 3b 0a 58 20 20 70 | 2d 3e 73 73 20 3d 20 30 |NE;.X p|->ss = 0|
|000052c0| 3b 0a 58 20 20 70 2d 3e | 4c 6f 63 61 6c 43 68 61 |;.X p->|LocalCha|
|000052d0| 72 73 65 74 20 3d 20 47 | 30 3b 0a 58 20 20 62 7a |rset = G|0;.X bz|
|000052e0| 65 72 6f 28 70 2d 3e 74 | 61 62 73 2c 20 70 2d 3e |ero(p->t|abs, p->|
|000052f0| 77 69 64 74 68 29 3b 0a | 58 20 20 66 6f 72 20 28 |width);.|X for (|
|00005300| 69 20 3d 20 38 3b 20 69 | 20 3c 20 70 2d 3e 77 69 |i = 8; i| < p->wi|
|00005310| 64 74 68 3b 20 69 20 2b | 3d 20 38 29 0a 58 20 20 |dth; i +|= 8).X |
|00005320| 20 20 70 2d 3e 74 61 62 | 73 5b 69 5d 20 3d 20 31 | p->tab|s[i] = 1|
|00005330| 3b 0a 58 20 20 66 6f 72 | 20 28 69 20 3d 20 47 30 |;.X for| (i = G0|
|00005340| 3b 20 69 20 3c 3d 20 47 | 33 3b 20 69 2b 2b 29 0a |; i <= G|3; i++).|
|00005350| 58 20 20 20 20 70 2d 3e | 63 68 61 72 73 65 74 73 |X p->|charsets|
|00005360| 5b 69 5d 20 3d 20 41 53 | 43 49 49 3b 0a 58 7d 0a |[i] = AS|CII;.X}.|
|00005370| 58 0a 76 6f 69 64 0a 57 | 72 69 74 65 53 74 72 69 |X.void.W|riteStri|
|00005380| 6e 67 28 77 70 2c 20 62 | 75 66 2c 20 6c 65 6e 29 |ng(wp, b|uf, len)|
|00005390| 0a 73 74 72 75 63 74 20 | 77 69 6e 20 2a 77 70 3b |.struct |win *wp;|
|000053a0| 0a 72 65 67 69 73 74 65 | 72 20 63 68 61 72 20 2a |.registe|r char *|
|000053b0| 62 75 66 3b 0a 69 6e 74 | 20 6c 65 6e 3b 0a 58 7b |buf;.int| len;.X{|
|000053c0| 0a 58 20 20 72 65 67 69 | 73 74 65 72 20 69 6e 74 |.X regi|ster int|
|000053d0| 20 63 2c 20 69 6e 74 65 | 72 6d 65 64 69 61 74 65 | c, inte|rmediate|
|000053e0| 20 3d 20 30 3b 0a 58 0a | 58 20 20 69 66 20 28 21 | = 0;.X.|X if (!|
|000053f0| 6c 65 6e 29 0a 58 20 20 | 20 20 72 65 74 75 72 6e |len).X | return|
|00005400| 3b 0a 58 20 20 69 66 20 | 28 77 70 2d 3e 6c 6f 67 |;.X if |(wp->log|
|00005410| 66 70 20 21 3d 20 4e 55 | 4c 4c 29 0a 58 20 20 20 |fp != NU|LL).X |
|00005420| 20 69 66 20 28 66 77 72 | 69 74 65 28 62 75 66 2c | if (fwr|ite(buf,|
|00005430| 20 6c 65 6e 2c 20 31 2c | 20 77 70 2d 3e 6c 6f 67 | len, 1,| wp->log|
|00005440| 66 70 29 20 3c 20 31 29 | 0a 58 20 20 20 20 20 20 |fp) < 1)|.X |
|00005450| 7b 0a 58 09 65 78 74 65 | 72 6e 20 69 6e 74 20 65 |{.X.exte|rn int e|
|00005460| 72 72 6e 6f 3b 0a 58 0a | 58 09 4d 73 67 28 65 72 |rrno;.X.|X.Msg(er|
|00005470| 72 6e 6f 2c 20 22 45 72 | 72 6f 72 20 77 72 69 74 |rno, "Er|ror writ|
|00005480| 69 6e 67 20 6c 6f 67 66 | 69 6c 65 22 29 3b 0a 58 |ing logf|ile");.X|
|00005490| 09 66 63 6c 6f 73 65 28 | 77 70 2d 3e 6c 6f 67 66 |.fclose(|wp->logf|
|000054a0| 70 29 3b 0a 58 09 77 70 | 2d 3e 6c 6f 67 66 70 20 |p);.X.wp|->logfp |
|000054b0| 3d 20 4e 55 4c 4c 3b 0a | 58 20 20 20 20 20 20 7d |= NULL;.|X }|
|000054c0| 0a 58 20 20 2f 2a 0a 58 | 20 20 20 2a 20 53 65 74 |.X /*.X| * Set|
|000054d0| 43 75 72 72 28 29 20 68 | 65 72 65 20 6d 61 79 20 |Curr() h|ere may |
|000054e0| 70 72 65 76 65 6e 74 20 | 6f 75 74 70 75 74 2c 20 |prevent |output, |
|000054f0| 61 73 20 69 74 20 6d 61 | 79 20 73 65 74 20 64 69 |as it ma|y set di|
|00005500| 73 70 6c 61 79 20 3d 20 | 30 0a 58 20 20 20 2a 2f |splay = |0.X */|
|00005510| 0a 58 20 20 53 65 74 43 | 75 72 72 28 77 70 29 3b |.X SetC|urr(wp);|
|00005520| 0a 58 20 20 69 66 20 28 | 64 69 73 70 6c 61 79 29 |.X if (|display)|
|00005530| 0a 58 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 69 |.X {.|X i|
|00005540| 66 20 28 21 48 53 29 0a | 58 09 52 65 6d 6f 76 65 |f (!HS).|X.Remove|
|00005550| 53 74 61 74 75 73 28 29 | 3b 0a 58 20 20 20 20 7d |Status()|;.X }|
|00005560| 0a 58 20 20 65 6c 73 65 | 20 69 66 20 28 63 75 72 |.X else| if (cur|
|00005570| 72 2d 3e 6d 6f 6e 69 74 | 6f 72 20 3d 3d 20 4d 4f |r->monit|or == MO|
|00005580| 4e 5f 4f 4e 29 0a 58 20 | 20 20 20 63 75 72 72 2d |N_ON).X | curr-|
|00005590| 3e 6d 6f 6e 69 74 6f 72 | 20 3d 20 4d 4f 4e 5f 46 |>monitor| = MON_F|
|000055a0| 4f 55 4e 44 3b 0a 58 0a | 58 20 20 64 6f 0a 58 20 |OUND;.X.|X do.X |
|000055b0| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 63 20 3d 20 | {.X | c = |
|000055c0| 2a 62 75 66 2b 2b 3b 0a | 58 20 20 20 20 20 20 69 |*buf++;.|X i|
|000055d0| 66 20 28 63 20 3d 3d 20 | 27 5c 30 27 20 7c 7c 20 |f (c == |'\0' || |
|000055e0| 63 20 3d 3d 20 27 5c 31 | 37 37 27 29 0a 58 09 63 |c == '\1|77').X.c|
|000055f0| 6f 6e 74 69 6e 75 65 3b | 0a 58 20 20 20 20 4e 65 |ontinue;|.X Ne|
|00005600| 78 74 43 68 61 72 3a 0a | 58 20 20 20 20 20 20 73 |xtChar:.|X s|
|00005610| 77 69 74 63 68 20 28 63 | 75 72 72 2d 3e 73 74 61 |witch (c|urr->sta|
|00005620| 74 65 29 0a 58 09 7b 0a | 58 09 63 61 73 65 20 50 |te).X.{.|X.case P|
|00005630| 52 49 4e 3a 0a 58 09 20 | 20 73 77 69 74 63 68 20 |RIN:.X. | switch |
|00005640| 28 63 29 0a 58 09 20 20 | 20 20 7b 0a 58 09 20 20 |(c).X. | {.X. |
|00005650| 20 20 63 61 73 65 20 27 | 5c 30 33 33 27 3a 0a 58 | case '|\033':.X|
|00005660| 09 20 20 20 20 20 20 63 | 75 72 72 2d 3e 73 74 61 |. c|urr->sta|
|00005670| 74 65 20 3d 20 50 52 49 | 4e 45 53 43 3b 0a 58 09 |te = PRI|NESC;.X.|
|00005680| 20 20 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 09 20 | br|eak;.X. |
|00005690| 20 20 20 64 65 66 61 75 | 6c 74 3a 0a 58 09 20 20 | defau|lt:.X. |
|000056a0| 20 20 20 20 50 72 69 6e | 74 43 68 61 72 28 63 29 | Prin|tChar(c)|
|000056b0| 3b 0a 58 09 20 20 20 20 | 7d 0a 58 09 20 20 62 72 |;.X. |}.X. br|
|000056c0| 65 61 6b 3b 0a 58 09 63 | 61 73 65 20 50 52 49 4e |eak;.X.c|ase PRIN|
|000056d0| 45 53 43 3a 0a 58 09 20 | 20 73 77 69 74 63 68 20 |ESC:.X. | switch |
|000056e0| 28 63 29 0a 58 09 20 20 | 20 20 7b 0a 58 09 20 20 |(c).X. | {.X. |
|000056f0| 20 20 63 61 73 65 20 27 | 5b 27 3a 0a 58 09 20 20 | case '|[':.X. |
|00005700| 20 20 20 20 63 75 72 72 | 2d 3e 73 74 61 74 65 20 | curr|->state |
|00005710| 3d 20 50 52 49 4e 43 53 | 49 3b 0a 58 09 20 20 20 |= PRINCS|I;.X. |
|00005720| 20 20 20 62 72 65 61 6b | 3b 0a 58 09 20 20 20 20 | break|;.X. |
|00005730| 64 65 66 61 75 6c 74 3a | 0a 58 09 20 20 20 20 20 |default:|.X. |
|00005740| 20 50 72 69 6e 74 43 68 | 61 72 28 27 5c 30 33 33 | PrintCh|ar('\033|
|00005750| 27 29 3b 0a 58 09 20 20 | 20 20 20 20 50 72 69 6e |');.X. | Prin|
|00005760| 74 43 68 61 72 28 63 29 | 3b 0a 58 09 20 20 20 20 |tChar(c)|;.X. |
|00005770| 20 20 63 75 72 72 2d 3e | 73 74 61 74 65 20 3d 20 | curr->|state = |
|00005780| 50 52 49 4e 3b 0a 58 09 | 20 20 20 20 7d 0a 58 09 |PRIN;.X.| }.X.|
|00005790| 20 20 62 72 65 61 6b 3b | 0a 58 09 63 61 73 65 20 | break;|.X.case |
|000057a0| 50 52 49 4e 43 53 49 3a | 0a 58 09 20 20 73 77 69 |PRINCSI:|.X. swi|
|000057b0| 74 63 68 20 28 63 29 0a | 58 09 20 20 20 20 7b 0a |tch (c).|X. {.|
|000057c0| 58 09 20 20 20 20 63 61 | 73 65 20 27 34 27 3a 0a |X. ca|se '4':.|
|000057d0| 58 09 20 20 20 20 20 20 | 63 75 72 72 2d 3e 73 74 |X. |curr->st|
|000057e0| 61 74 65 20 3d 20 50 52 | 49 4e 34 3b 0a 58 09 20 |ate = PR|IN4;.X. |
|000057f0| 20 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 09 20 20 | bre|ak;.X. |
|00005800| 20 20 64 65 66 61 75 6c | 74 3a 0a 58 09 20 20 20 | defaul|t:.X. |
|00005810| 20 20 20 50 72 69 6e 74 | 43 68 61 72 28 27 5c 30 | Print|Char('\0|
|00005820| 33 33 27 29 3b 0a 58 09 | 20 20 20 20 20 20 50 72 |33');.X.| Pr|
|00005830| 69 6e 74 43 68 61 72 28 | 27 5b 27 29 3b 0a 58 09 |intChar(|'[');.X.|
|00005840| 20 20 20 20 20 20 50 72 | 69 6e 74 43 68 61 72 28 | Pr|intChar(|
|00005850| 63 29 3b 0a 58 09 20 20 | 20 20 20 20 63 75 72 72 |c);.X. | curr|
|00005860| 2d 3e 73 74 61 74 65 20 | 3d 20 50 52 49 4e 3b 0a |->state |= PRIN;.|
|00005870| 58 09 20 20 20 20 7d 0a | 58 09 20 20 62 72 65 61 |X. }.|X. brea|
|00005880| 6b 3b 0a 58 09 63 61 73 | 65 20 50 52 49 4e 34 3a |k;.X.cas|e PRIN4:|
|00005890| 0a 58 09 20 20 73 77 69 | 74 63 68 20 28 63 29 0a |.X. swi|tch (c).|
|000058a0| 58 09 20 20 20 20 7b 0a | 58 09 20 20 20 20 63 61 |X. {.|X. ca|
|000058b0| 73 65 20 27 69 27 3a 0a | 58 09 20 20 20 20 20 20 |se 'i':.|X. |
|000058c0| 63 75 72 72 2d 3e 73 74 | 61 74 65 20 3d 20 4c 49 |curr->st|ate = LI|
|000058d0| 54 3b 0a 58 09 20 20 20 | 20 20 20 50 72 69 6e 74 |T;.X. | Print|
|000058e0| 46 6c 75 73 68 28 29 3b | 0a 58 09 20 20 20 20 20 |Flush();|.X. |
|000058f0| 20 62 72 65 61 6b 3b 0a | 58 09 20 20 20 20 64 65 | break;.|X. de|
|00005900| 66 61 75 6c 74 3a 0a 58 | 09 20 20 20 20 20 20 50 |fault:.X|. P|
|00005910| 72 69 6e 74 43 68 61 72 | 28 27 5c 30 33 33 27 29 |rintChar|('\033')|
|00005920| 3b 0a 58 09 20 20 20 20 | 20 20 50 72 69 6e 74 43 |;.X. | PrintC|
|00005930| 68 61 72 28 27 5b 27 29 | 3b 0a 58 09 20 20 20 20 |har('[')|;.X. |
|00005940| 20 20 50 72 69 6e 74 43 | 68 61 72 28 27 34 27 29 | PrintC|har('4')|
|00005950| 3b 0a 58 09 20 20 20 20 | 20 20 50 72 69 6e 74 43 |;.X. | PrintC|
|00005960| 68 61 72 28 63 29 3b 0a | 58 09 20 20 20 20 20 20 |har(c);.|X. |
|00005970| 63 75 72 72 2d 3e 73 74 | 61 74 65 20 3d 20 50 52 |curr->st|ate = PR|
|00005980| 49 4e 3b 0a 58 09 20 20 | 20 20 7d 0a 58 09 20 20 |IN;.X. | }.X. |
|00005990| 62 72 65 61 6b 3b 0a 58 | 09 63 61 73 65 20 53 54 |break;.X|.case ST|
|000059a0| 52 45 53 43 3a 0a 58 09 | 20 20 73 77 69 74 63 68 |RESC:.X.| switch|
|000059b0| 20 28 63 29 0a 58 09 20 | 20 20 20 7b 0a 58 09 20 | (c).X. | {.X. |
|000059c0| 20 20 20 63 61 73 65 20 | 27 5c 5c 27 3a 0a 58 09 | case |'\\':.X.|
|000059d0| 20 20 20 20 20 20 63 75 | 72 72 2d 3e 73 74 61 74 | cu|rr->stat|
|000059e0| 65 20 3d 20 4c 49 54 3b | 0a 58 09 20 20 20 20 20 |e = LIT;|.X. |
|000059f0| 20 2a 28 63 75 72 72 2d | 3e 73 74 72 69 6e 67 70 | *(curr-|>stringp|
|00005a00| 29 20 3d 20 27 5c 30 27 | 3b 0a 58 09 20 20 20 20 |) = '\0'|;.X. |
|00005a10| 20 20 73 77 69 74 63 68 | 20 28 63 75 72 72 2d 3e | switch| (curr->|
|00005a20| 53 74 72 69 6e 67 54 79 | 70 65 29 0a 58 09 09 7b |StringTy|pe).X..{|
|00005a30| 0a 58 09 09 63 61 73 65 | 20 50 4d 3a 0a 58 09 09 |.X..case| PM:.X..|
|00005a40| 20 20 69 66 20 28 21 64 | 69 73 70 6c 61 79 29 0a | if (!d|isplay).|
|00005a50| 58 09 09 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 09 |X.. b|reak;.X.|
|00005a60| 09 20 20 4d 61 6b 65 53 | 74 61 74 75 73 28 63 75 |. MakeS|tatus(cu|
|00005a70| 72 72 2d 3e 73 74 72 69 | 6e 67 29 3b 0a 58 09 09 |rr->stri|ng);.X..|
|00005a80| 20 20 69 66 20 28 21 48 | 53 20 26 26 20 73 74 61 | if (!H|S && sta|
|00005a90| 74 75 73 20 26 26 20 6c | 65 6e 20 3e 20 31 29 0a |tus && l|en > 1).|
|00005aa0| 58 09 09 20 20 20 20 7b | 0a 58 09 09 20 20 20 20 |X.. {|.X.. |
|00005ab0| 20 20 63 75 72 72 2d 3e | 6f 75 74 6c 65 6e 20 3d | curr->|outlen =|
|00005ac0| 20 6c 65 6e 20 2d 20 31 | 3b 0a 58 09 09 20 20 20 | len - 1|;.X.. |
|00005ad0| 20 20 20 62 63 6f 70 79 | 28 62 75 66 2c 20 63 75 | bcopy|(buf, cu|
|00005ae0| 72 72 2d 3e 6f 75 74 62 | 75 66 2c 20 63 75 72 72 |rr->outb|uf, curr|
|00005af0| 2d 3e 6f 75 74 6c 65 6e | 29 3b 0a 58 09 09 20 20 |->outlen|);.X.. |
|00005b00| 20 20 20 20 72 65 74 75 | 72 6e 3b 0a 58 09 09 20 | retu|rn;.X.. |
|00005b10| 20 20 20 7d 0a 58 09 09 | 20 20 62 72 65 61 6b 3b | }.X..| break;|
|00005b20| 0a 58 09 09 63 61 73 65 | 20 44 43 53 3a 0a 58 09 |.X..case| DCS:.X.|
|00005b30| 09 20 20 69 66 20 28 64 | 69 73 70 6c 61 79 29 0a |. if (d|isplay).|
|00005b40| 58 09 09 20 20 20 20 70 | 72 69 6e 74 66 28 22 25 |X.. p|rintf("%|
|00005b50| 73 22 2c 20 63 75 72 72 | 2d 3e 73 74 72 69 6e 67 |s", curr|->string|
|00005b60| 29 3b 0a 58 09 09 20 20 | 62 72 65 61 6b 3b 0a 58 |);.X.. |break;.X|
|00005b70| 09 09 63 61 73 65 20 41 | 4b 41 3a 0a 58 09 09 20 |..case A|KA:.X.. |
|00005b80| 20 69 66 20 28 63 75 72 | 72 2d 3e 61 6b 61 70 6f | if (cur|r->akapo|
|00005b90| 73 20 3d 3d 20 30 20 26 | 26 20 21 2a 63 75 72 72 |s == 0 &|& !*curr|
|00005ba0| 2d 3e 73 74 72 69 6e 67 | 29 0a 58 09 09 20 20 20 |->string|).X.. |
|00005bb0| 20 62 72 65 61 6b 3b 0a | 58 09 09 20 20 73 74 72 | break;.|X.. str|
|00005bc0| 6e 63 70 79 28 63 75 72 | 72 2d 3e 63 6d 64 20 2b |ncpy(cur|r->cmd +|
|00005bd0| 20 63 75 72 72 2d 3e 61 | 6b 61 70 6f 73 2c 20 63 | curr->a|kapos, c|
|00005be0| 75 72 72 2d 3e 73 74 72 | 69 6e 67 2c 20 32 30 29 |urr->str|ing, 20)|
|00005bf0| 3b 0a 58 09 09 20 20 69 | 66 20 28 21 2a 63 75 72 |;.X.. i|f (!*cur|
|00005c00| 72 2d 3e 73 74 72 69 6e | 67 29 0a 58 09 09 20 20 |r->strin|g).X.. |
|00005c10| 20 20 63 75 72 72 2d 3e | 61 75 74 6f 61 6b 61 20 | curr->|autoaka |
|00005c20| 3d 20 63 75 72 72 2d 3e | 79 20 2b 20 31 3b 0a 58 |= curr->|y + 1;.X|
|00005c30| 09 09 20 20 62 72 65 61 | 6b 3b 0a 58 09 09 64 65 |.. brea|k;.X..de|
|00005c40| 66 61 75 6c 74 3a 0a 58 | 09 09 20 20 62 72 65 61 |fault:.X|.. brea|
|00005c50| 6b 3b 0a 58 09 09 7d 0a | 58 09 20 20 20 20 20 20 |k;.X..}.|X. |
|00005c60| 62 72 65 61 6b 3b 0a 58 | 09 20 20 20 20 64 65 66 |break;.X|. def|
|00005c70| 61 75 6c 74 3a 0a 58 09 | 20 20 20 20 20 20 63 75 |ault:.X.| cu|
|00005c80| 72 72 2d 3e 73 74 61 74 | 65 20 3d 20 41 53 54 52 |rr->stat|e = ASTR|
|00005c90| 3b 0a 58 09 20 20 20 20 | 20 20 41 64 64 43 68 61 |;.X. | AddCha|
|00005ca0| 72 28 27 5c 30 33 33 27 | 29 3b 0a 58 09 20 20 20 |r('\033'|);.X. |
|00005cb0| 20 20 20 41 64 64 43 68 | 61 72 28 63 29 3b 0a 58 | AddCh|ar(c);.X|
|00005cc0| 09 20 20 20 20 7d 0a 58 | 09 20 20 62 72 65 61 6b |. }.X|. break|
|00005cd0| 3b 0a 58 09 63 61 73 65 | 20 41 53 54 52 3a 0a 58 |;.X.case| ASTR:.X|
|00005ce0| 09 20 20 73 77 69 74 63 | 68 20 28 63 29 0a 58 09 |. switc|h (c).X.|
|00005cf0| 20 20 20 20 7b 0a 58 09 | 20 20 20 20 63 61 73 65 | {.X.| case|
|00005d00| 20 27 5c 30 27 3a 0a 58 | 09 20 20 20 20 20 20 62 | '\0':.X|. b|
|00005d10| 72 65 61 6b 3b 0a 58 09 | 20 20 20 20 63 61 73 65 |reak;.X.| case|
|00005d20| 20 27 5c 30 33 33 27 3a | 0a 58 09 20 20 20 20 20 | '\033':|.X. |
|00005d30| 20 63 75 72 72 2d 3e 73 | 74 61 74 65 20 3d 20 53 | curr->s|tate = S|
|00005d40| 54 52 45 53 43 3b 0a 58 | 09 20 20 20 20 20 20 62 |TRESC;.X|. b|
|00005d50| 72 65 61 6b 3b 0a 58 09 | 20 20 20 20 64 65 66 61 |reak;.X.| defa|
|00005d60| 75 6c 74 3a 0a 58 09 20 | 20 20 20 20 20 41 64 64 |ult:.X. | Add|
|00005d70| 43 68 61 72 28 63 29 3b | 0a 58 09 20 20 20 20 7d |Char(c);|.X. }|
|00005d80| 0a 58 09 20 20 62 72 65 | 61 6b 3b 0a 58 09 63 61 |.X. bre|ak;.X.ca|
|00005d90| 73 65 20 45 53 43 3a 0a | 58 09 20 20 73 77 69 74 |se ESC:.|X. swit|
|00005da0| 63 68 20 28 63 29 0a 58 | 09 20 20 20 20 7b 0a 58 |ch (c).X|. {.X|
|00005db0| 09 20 20 20 20 63 61 73 | 65 20 27 5b 27 3a 0a 58 |. cas|e '[':.X|
|00005dc0| 09 20 20 20 20 20 20 63 | 75 72 72 2d 3e 4e 75 6d |. c|urr->Num|
|00005dd0| 41 72 67 73 20 3d 20 30 | 3b 0a 58 09 20 20 20 20 |Args = 0|;.X. |
|00005de0| 20 20 69 6e 74 65 72 6d | 65 64 69 61 74 65 20 3d | interm|ediate =|
|00005df0| 20 30 3b 0a 58 09 20 20 | 20 20 20 20 62 7a 65 72 | 0;.X. | bzer|
|00005e00| 6f 28 28 63 68 61 72 20 | 2a 29 20 63 75 72 72 2d |o((char |*) curr-|
|00005e10| 3e 61 72 67 73 2c 20 4d | 41 58 41 52 47 53 20 2a |>args, M|AXARGS *|
|00005e20| 20 73 69 7a 65 6f 66 28 | 69 6e 74 29 29 3b 0a 58 | sizeof(|int));.X|
|00005e30| 09 20 20 20 20 20 20 63 | 75 72 72 2d 3e 73 74 61 |. c|urr->sta|
|00005e40| 74 65 20 3d 20 43 53 49 | 3b 0a 58 09 20 20 20 20 |te = CSI|;.X. |
|00005e50| 20 20 62 72 65 61 6b 3b | 0a 58 09 20 20 20 20 63 | break;|.X. c|
|00005e60| 61 73 65 20 27 5d 27 3a | 0a 58 09 20 20 20 20 20 |ase ']':|.X. |
|00005e70| 20 53 74 61 72 74 53 74 | 72 69 6e 67 28 4f 53 43 | StartSt|ring(OSC|
|00005e80| 29 3b 0a 58 09 20 20 20 | 20 20 20 62 72 65 61 6b |);.X. | break|
|00005e90| 3b 0a 58 09 20 20 20 20 | 63 61 73 65 20 27 5f 27 |;.X. |case '_'|
|00005ea0| 3a 0a 58 09 20 20 20 20 | 20 20 53 74 61 72 74 53 |:.X. | StartS|
|00005eb0| 74 72 69 6e 67 28 41 50 | 43 29 3b 0a 58 09 20 20 |tring(AP|C);.X. |
|00005ec0| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 09 20 20 20 | brea|k;.X. |
|00005ed0| 20 63 61 73 65 20 27 50 | 27 3a 0a 58 09 20 20 20 | case 'P|':.X. |
|00005ee0| 20 20 20 53 74 61 72 74 | 53 74 72 69 6e 67 28 44 | Start|String(D|
|00005ef0| 43 53 29 3b 0a 58 09 20 | 20 20 20 20 20 62 72 65 |CS);.X. | bre|
|00005f00| 61 6b 3b 0a 58 09 20 20 | 20 20 63 61 73 65 20 27 |ak;.X. | case '|
|00005f10| 5e 27 3a 0a 58 09 20 20 | 20 20 20 20 53 74 61 72 |^':.X. | Star|
|00005f20| 74 53 74 72 69 6e 67 28 | 50 4d 29 3b 0a 58 09 20 |tString(|PM);.X. |
|00005f30| 20 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 09 20 20 | bre|ak;.X. |
|00005f40| 20 20 63 61 73 65 20 27 | 22 27 3a 0a 58 09 20 20 | case '|"':.X. |
|00005f50| 20 20 63 61 73 65 20 27 | 6b 27 3a 0a 58 09 20 20 | case '|k':.X. |
|00005f60| 20 20 20 20 53 74 61 72 | 74 53 74 72 69 6e 67 28 | Star|tString(|
|00005f70| 41 4b 41 29 3b 0a 58 09 | 20 20 20 20 20 20 62 72 |AKA);.X.| br|
|00005f80| 65 61 6b 3b 0a 58 09 20 | 20 20 20 64 65 66 61 75 |eak;.X. | defau|
|00005f90| 6c 74 3a 0a 58 09 20 20 | 20 20 20 20 69 66 20 28 |lt:.X. | if (|
|00005fa0| 53 70 65 63 69 61 6c 28 | 63 29 29 0a 58 09 09 62 |Special(|c)).X..b|
|00005fb0| 72 65 61 6b 3b 0a 58 09 | 20 20 20 20 20 20 69 66 |reak;.X.| if|
|00005fc0| 20 28 63 20 3e 3d 20 27 | 20 27 20 26 26 20 63 20 | (c >= '| ' && c |
|00005fd0| 3c 3d 20 27 2f 27 29 0a | 58 09 09 69 6e 74 65 72 |<= '/').|X..inter|
|00005fe0| 6d 65 64 69 61 74 65 20 | 3d 20 69 6e 74 65 72 6d |mediate |= interm|
|00005ff0| 65 64 69 61 74 65 20 3f | 20 2d 31 20 3a 20 63 3b |ediate ?| -1 : c;|
|00006000| 0a 58 09 20 20 20 20 20 | 20 65 6c 73 65 20 69 66 |.X. | else if|
|00006010| 20 28 63 20 3e 3d 20 27 | 30 27 20 26 26 20 63 20 | (c >= '|0' && c |
|00006020| 3c 3d 20 27 7e 27 29 0a | 58 09 09 7b 0a 58 09 09 |<= '~').|X..{.X..|
|00006030| 20 20 44 6f 45 53 43 28 | 63 2c 20 69 6e 74 65 72 | DoESC(|c, inter|
|00006040| 6d 65 64 69 61 74 65 29 | 3b 0a 58 09 09 20 20 63 |mediate)|;.X.. c|
|00006050| 75 72 72 2d 3e 73 74 61 | 74 65 20 3d 20 4c 49 54 |urr->sta|te = LIT|
|00006060| 3b 0a 58 09 09 7d 0a 58 | 09 20 20 20 20 20 20 65 |;.X..}.X|. e|
|00006070| 6c 73 65 0a 58 09 09 7b | 0a 58 09 09 20 20 63 75 |lse.X..{|.X.. cu|
|00006080| 72 72 2d 3e 73 74 61 74 | 65 20 3d 20 4c 49 54 3b |rr->stat|e = LIT;|
|00006090| 0a 58 09 09 20 20 67 6f | 74 6f 20 4e 65 78 74 43 |.X.. go|to NextC|
|000060a0| 68 61 72 3b 0a 58 09 09 | 7d 0a 58 09 20 20 20 20 |har;.X..|}.X. |
|000060b0| 7d 0a 58 09 20 20 62 72 | 65 61 6b 3b 0a 58 09 63 |}.X. br|eak;.X.c|
|000060c0| 61 73 65 20 43 53 49 3a | 0a 58 09 20 20 73 77 69 |ase CSI:|.X. swi|
|000060d0| 74 63 68 20 28 63 29 0a | 58 09 20 20 20 20 7b 0a |tch (c).|X. {.|
|000060e0| 58 09 20 20 20 20 63 61 | 73 65 20 27 30 27 3a 0a |X. ca|se '0':.|
|000060f0| 58 09 20 20 20 20 63 61 | 73 65 20 27 31 27 3a 0a |X. ca|se '1':.|
|00006100| 58 09 20 20 20 20 63 61 | 73 65 20 27 32 27 3a 0a |X. ca|se '2':.|
|00006110| 58 09 20 20 20 20 63 61 | 73 65 20 27 33 27 3a 0a |X. ca|se '3':.|
|00006120| 58 09 20 20 20 20 63 61 | 73 65 20 27 34 27 3a 0a |X. ca|se '4':.|
|00006130| 58 09 20 20 20 20 63 61 | 73 65 20 27 35 27 3a 0a |X. ca|se '5':.|
|00006140| 58 09 20 20 20 20 63 61 | 73 65 20 27 36 27 3a 0a |X. ca|se '6':.|
|00006150| 58 09 20 20 20 20 63 61 | 73 65 20 27 37 27 3a 0a |X. ca|se '7':.|
|00006160| 58 09 20 20 20 20 63 61 | 73 65 20 27 38 27 3a 0a |X. ca|se '8':.|
|00006170| 58 09 20 20 20 20 63 61 | 73 65 20 27 39 27 3a 0a |X. ca|se '9':.|
|00006180| 58 09 20 20 20 20 20 20 | 69 66 20 28 63 75 72 72 |X. |if (curr|
|00006190| 2d 3e 4e 75 6d 41 72 67 | 73 20 3c 20 4d 41 58 41 |->NumArg|s < MAXA|
|000061a0| 52 47 53 29 0a 58 09 09 | 7b 0a 58 09 09 20 20 63 |RGS).X..|{.X.. c|
|000061b0| 75 72 72 2d 3e 61 72 67 | 73 5b 63 75 72 72 2d 3e |urr->arg|s[curr->|
|000061c0| 4e 75 6d 41 72 67 73 5d | 20 3d 0a 58 09 09 20 20 |NumArgs]| =.X.. |
|000061d0| 20 20 31 30 20 2a 20 63 | 75 72 72 2d 3e 61 72 67 | 10 * c|urr->arg|
|000061e0| 73 5b 63 75 72 72 2d 3e | 4e 75 6d 41 72 67 73 5d |s[curr->|NumArgs]|
|000061f0| 20 2b 20 63 20 2d 20 27 | 30 27 3b 0a 58 09 09 7d | + c - '|0';.X..}|
|00006200| 0a 58 09 20 20 20 20 20 | 20 62 72 65 61 6b 3b 0a |.X. | break;.|
|00006210| 58 09 20 20 20 20 63 61 | 73 65 20 27 3b 27 3a 0a |X. ca|se ';':.|
|00006220| 58 09 20 20 20 20 63 61 | 73 65 20 27 3a 27 3a 0a |X. ca|se ':':.|
|00006230| 58 09 20 20 20 20 20 20 | 63 75 72 72 2d 3e 4e 75 |X. |curr->Nu|
|00006240| 6d 41 72 67 73 2b 2b 3b | 0a 58 09 20 20 20 20 20 |mArgs++;|.X. |
|00006250| 20 62 72 65 61 6b 3b 0a | 58 09 20 20 20 20 64 65 | break;.|X. de|
|00006260| 66 61 75 6c 74 3a 0a 58 | 09 20 20 20 20 20 20 69 |fault:.X|. i|
|00006270| 66 20 28 53 70 65 63 69 | 61 6c 28 63 29 29 0a 58 |f (Speci|al(c)).X|
|00006280| 09 09 62 72 65 61 6b 3b | 0a 58 09 20 20 20 20 20 |..break;|.X. |
|00006290| 20 69 66 20 28 63 20 3e | 3d 20 27 40 27 20 26 26 | if (c >|= '@' &&|
|000062a0| 20 63 20 3c 3d 20 27 7e | 27 29 0a 58 09 09 7b 0a | c <= '~|').X..{.|
|000062b0| 58 09 09 20 20 63 75 72 | 72 2d 3e 4e 75 6d 41 72 |X.. cur|r->NumAr|
|000062c0| 67 73 2b 2b 3b 0a 58 09 | 09 20 20 44 6f 43 53 49 |gs++;.X.|. DoCSI|
|000062d0| 28 63 2c 20 69 6e 74 65 | 72 6d 65 64 69 61 74 65 |(c, inte|rmediate|
|000062e0| 29 3b 0a 58 09 09 20 20 | 69 66 20 28 63 75 72 72 |);.X.. |if (curr|
|000062f0| 2d 3e 73 74 61 74 65 20 | 21 3d 20 50 52 49 4e 29 |->state |!= PRIN)|
|00006300| 0a 58 09 09 20 20 20 20 | 63 75 72 72 2d 3e 73 74 |.X.. |curr->st|
|00006310| 61 74 65 20 3d 20 4c 49 | 54 3b 0a 58 09 09 7d 0a |ate = LI|T;.X..}.|
|00006320| 58 09 20 20 20 20 20 20 | 65 6c 73 65 20 69 66 20 |X. |else if |
|00006330| 28 28 63 20 3e 3d 20 27 | 20 27 20 26 26 20 63 20 |((c >= '| ' && c |
|00006340| 3c 3d 20 27 2f 27 29 20 | 7c 7c 20 28 63 20 3e 3d |<= '/') ||| (c >=|
|00006350| 20 27 3c 27 20 26 26 20 | 63 20 3c 3d 20 27 3f 27 | '<' && |c <= '?'|
|00006360| 29 29 0a 58 09 09 69 6e | 74 65 72 6d 65 64 69 61 |)).X..in|termedia|
|00006370| 74 65 20 3d 20 69 6e 74 | 65 72 6d 65 64 69 61 74 |te = int|ermediat|
|00006380| 65 20 3f 20 2d 31 20 3a | 20 63 3b 0a 58 09 20 20 |e ? -1 :| c;.X. |
|00006390| 20 20 20 20 65 6c 73 65 | 0a 58 09 09 7b 0a 58 09 | else|.X..{.X.|
|000063a0| 09 20 20 63 75 72 72 2d | 3e 73 74 61 74 65 20 3d |. curr-|>state =|
|000063b0| 20 4c 49 54 3b 0a 58 09 | 09 20 20 67 6f 74 6f 20 | LIT;.X.|. goto |
|000063c0| 4e 65 78 74 43 68 61 72 | 3b 0a 58 09 09 7d 0a 58 |NextChar|;.X..}.X|
|000063d0| 09 20 20 20 20 7d 0a 58 | 09 20 20 62 72 65 61 6b |. }.X|. break|
|000063e0| 3b 0a 58 09 63 61 73 65 | 20 4c 49 54 3a 0a 58 09 |;.X.case| LIT:.X.|
|000063f0| 64 65 66 61 75 6c 74 3a | 0a 58 09 20 20 69 66 20 |default:|.X. if |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.