home *** CD-ROM | disk | FTP | other *** search
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: part14
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
| 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 78 0a 46 72 6f 6d 3a |.sources|.x.From:|
|00000020| 20 65 6e 76 62 76 73 40 | 65 70 62 39 2e 6c 62 6c | envbvs@|epb9.lbl|
|00000030| 2e 67 6f 76 20 28 42 72 | 69 61 6e 20 56 2e 20 53 |.gov (Br|ian V. S|
|00000040| 6d 69 74 68 29 0a 53 75 | 62 6a 65 63 74 3a 20 76 |mith).Su|bject: v|
|00000050| 31 39 69 31 32 36 3a 20 | 20 78 66 69 67 20 2d 20 |19i126: | xfig - |
|00000060| 44 72 61 77 20 61 6d 64 | 20 6d 61 6e 69 70 75 6c |Draw amd| manipul|
|00000070| 61 74 65 20 6f 62 6a 65 | 63 74 73 20 69 6e 20 61 |ate obje|cts in a|
|00000080| 6e 20 58 2d 57 69 6e 64 | 6f 77 2c 20 50 61 72 74 |n X-Wind|ow, Part|
|00000090| 31 34 2f 32 37 0a 4d 65 | 73 73 61 67 65 2d 49 44 |14/27.Me|ssage-ID|
|000000a0| 3a 20 3c 31 39 39 33 4d | 61 79 32 31 2e 30 32 31 |: <1993M|ay21.021|
|000000b0| 35 34 32 2e 36 33 38 31 | 40 73 70 61 72 6b 79 2e |542.6381|@sparky.|
|000000c0| 69 6d 64 2e 73 74 65 72 | 6c 69 6e 67 2e 63 6f 6d |imd.ster|ling.com|
|000000d0| 3e 0a 58 2d 4d 64 34 2d | 53 69 67 6e 61 74 75 72 |>.X-Md4-|Signatur|
|000000e0| 65 3a 20 36 62 39 33 39 | 63 39 37 65 62 66 37 31 |e: 6b939|c97ebf71|
|000000f0| 63 33 34 31 61 31 33 31 | 38 61 38 63 63 62 32 31 |c341a131|8a8ccb21|
|00000100| 33 65 38 0a 53 65 6e 64 | 65 72 3a 20 63 68 72 69 |3e8.Send|er: chri|
|00000110| 73 40 73 70 61 72 6b 79 | 2e 69 6d 64 2e 73 74 65 |s@sparky|.imd.ste|
|00000120| 72 6c 69 6e 67 2e 63 6f | 6d 20 28 43 68 72 69 73 |rling.co|m (Chris|
|00000130| 20 4f 6c 73 6f 6e 29 0a | 4f 72 67 61 6e 69 7a 61 | Olson).|Organiza|
|00000140| 74 69 6f 6e 3a 20 53 74 | 65 72 6c 69 6e 67 20 53 |tion: St|erling S|
|00000150| 6f 66 74 77 61 72 65 0a | 44 61 74 65 3a 20 46 72 |oftware.|Date: Fr|
|00000160| 69 2c 20 32 31 20 4d 61 | 79 20 31 39 39 33 20 30 |i, 21 Ma|y 1993 0|
|00000170| 32 3a 31 35 3a 34 32 20 | 47 4d 54 0a 41 70 70 72 |2:15:42 |GMT.Appr|
|00000180| 6f 76 65 64 3a 20 63 68 | 72 69 73 40 73 70 61 72 |oved: ch|ris@spar|
|00000190| 6b 79 2e 69 6d 64 2e 73 | 74 65 72 6c 69 6e 67 2e |ky.imd.s|terling.|
|000001a0| 63 6f 6d 0a 0a 53 75 62 | 6d 69 74 74 65 64 2d 62 |com..Sub|mitted-b|
|000001b0| 79 3a 20 65 6e 76 62 76 | 73 40 65 70 62 39 2e 6c |y: envbv|s@epb9.l|
|000001c0| 62 6c 2e 67 6f 76 20 28 | 42 72 69 61 6e 20 56 2e |bl.gov (|Brian V.|
|000001d0| 20 53 6d 69 74 68 29 0a | 50 6f 73 74 69 6e 67 2d | Smith).|Posting-|
|000001e0| 6e 75 6d 62 65 72 3a 20 | 56 6f 6c 75 6d 65 20 31 |number: |Volume 1|
|000001f0| 39 2c 20 49 73 73 75 65 | 20 31 32 36 0a 41 72 63 |9, Issue| 126.Arc|
|00000200| 68 69 76 65 2d 6e 61 6d | 65 3a 20 78 66 69 67 2f |hive-nam|e: xfig/|
|00000210| 70 61 72 74 31 34 0a 45 | 6e 76 69 72 6f 6e 6d 65 |part14.E|nvironme|
|00000220| 6e 74 3a 20 58 31 31 0a | 53 75 70 65 72 73 65 64 |nt: X11.|Supersed|
|00000230| 65 73 3a 20 78 66 69 67 | 3a 20 56 6f 6c 75 6d 65 |es: xfig|: Volume|
|00000240| 20 31 36 2c 20 49 73 73 | 75 65 20 36 2d 33 30 2c | 16, Iss|ue 6-30,|
|00000250| 33 39 0a 0a 23 21 20 2f | 62 69 6e 2f 73 68 0a 23 |39..#! /|bin/sh.#|
|00000260| 20 54 68 69 73 20 69 73 | 20 61 20 73 68 65 6c 6c | This is| a shell|
|00000270| 20 61 72 63 68 69 76 65 | 2e 20 20 52 65 6d 6f 76 | archive|. Remov|
|00000280| 65 20 61 6e 79 74 68 69 | 6e 67 20 62 65 66 6f 72 |e anythi|ng befor|
|00000290| 65 20 74 68 69 73 20 6c | 69 6e 65 2c 20 74 68 65 |e this l|ine, the|
|000002a0| 6e 20 75 6e 70 61 63 6b | 0a 23 20 69 74 20 62 79 |n unpack|.# it by|
|000002b0| 20 73 61 76 69 6e 67 20 | 69 74 20 69 6e 74 6f 20 | saving |it into |
|000002c0| 61 20 66 69 6c 65 20 61 | 6e 64 20 74 79 70 69 6e |a file a|nd typin|
|000002d0| 67 20 22 73 68 20 66 69 | 6c 65 22 2e 20 20 54 6f |g "sh fi|le". To|
|000002e0| 20 6f 76 65 72 77 72 69 | 74 65 20 65 78 69 73 74 | overwri|te exist|
|000002f0| 69 6e 67 0a 23 20 66 69 | 6c 65 73 2c 20 74 79 70 |ing.# fi|les, typ|
|00000300| 65 20 22 73 68 20 66 69 | 6c 65 20 2d 63 22 2e 20 |e "sh fi|le -c". |
|00000310| 20 59 6f 75 20 63 61 6e | 20 61 6c 73 6f 20 66 65 | You can| also fe|
|00000320| 65 64 20 74 68 69 73 20 | 61 73 20 73 74 61 6e 64 |ed this |as stand|
|00000330| 61 72 64 20 69 6e 70 75 | 74 20 76 69 61 0a 23 20 |ard inpu|t via.# |
|00000340| 75 6e 73 68 61 72 2c 20 | 6f 72 20 62 79 20 74 79 |unshar, |or by ty|
|00000350| 70 69 6e 67 20 22 73 68 | 20 3c 66 69 6c 65 22 2c |ping "sh| <file",|
|00000360| 20 65 2e 67 2e 2e 20 20 | 49 66 20 74 68 69 73 20 | e.g.. |If this |
|00000370| 61 72 63 68 69 76 65 20 | 69 73 20 63 6f 6d 70 6c |archive |is compl|
|00000380| 65 74 65 2c 20 79 6f 75 | 0a 23 20 77 69 6c 6c 20 |ete, you|.# will |
|00000390| 73 65 65 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |see the |followin|
|000003a0| 67 20 6d 65 73 73 61 67 | 65 20 61 74 20 74 68 65 |g messag|e at the|
|000003b0| 20 65 6e 64 3a 0a 23 09 | 09 22 45 6e 64 20 6f 66 | end:.#.|."End of|
|000003c0| 20 61 72 63 68 69 76 65 | 20 31 34 20 28 6f 66 20 | archive| 14 (of |
|000003d0| 32 37 29 2e 22 0a 23 20 | 43 6f 6e 74 65 6e 74 73 |27).".# |Contents|
|000003e0| 3a 20 20 64 5f 74 65 78 | 74 2e 63 20 75 5f 65 6c |: d_tex|t.c u_el|
|000003f0| 61 73 74 69 63 2e 63 20 | 77 5f 72 6f 74 74 65 78 |astic.c |w_rottex|
|00000400| 74 2e 63 0a 23 20 57 72 | 61 70 70 65 64 20 62 79 |t.c.# Wr|apped by|
|00000410| 20 65 6e 76 62 76 73 40 | 65 70 62 39 2e 6c 62 6c | envbvs@|epb9.lbl|
|00000420| 2e 67 6f 76 2e 6c 62 6c | 2e 67 6f 76 20 6f 6e 20 |.gov.lbl|.gov on |
|00000430| 4d 6f 6e 20 4d 61 79 20 | 20 33 20 31 32 3a 30 35 |Mon May | 3 12:05|
|00000440| 3a 35 37 20 31 39 39 33 | 0a 50 41 54 48 3d 2f 62 |:57 1993|.PATH=/b|
|00000450| 69 6e 3a 2f 75 73 72 2f | 62 69 6e 3a 2f 75 73 72 |in:/usr/|bin:/usr|
|00000460| 2f 75 63 62 20 3b 20 65 | 78 70 6f 72 74 20 50 41 |/ucb ; e|xport PA|
|00000470| 54 48 0a 69 66 20 74 65 | 73 74 20 2d 66 20 27 64 |TH.if te|st -f 'd|
|00000480| 5f 74 65 78 74 2e 63 27 | 20 2d 61 20 22 24 7b 31 |_text.c'| -a "${1|
|00000490| 7d 22 20 21 3d 20 22 2d | 63 22 20 3b 20 74 68 65 |}" != "-|c" ; the|
|000004a0| 6e 20 0a 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |n . ech|o shar: |
|000004b0| 57 69 6c 6c 20 6e 6f 74 | 20 63 6c 6f 62 62 65 72 |Will not| clobber|
|000004c0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 5c | existin|g file \|
|000004d0| 22 27 64 5f 74 65 78 74 | 2e 63 27 5c 22 0a 65 6c |"'d_text|.c'\".el|
|000004e0| 73 65 0a 65 63 68 6f 20 | 73 68 61 72 3a 20 45 78 |se.echo |shar: Ex|
|000004f0| 74 72 61 63 74 69 6e 67 | 20 5c 22 27 64 5f 74 65 |tracting| \"'d_te|
|00000500| 78 74 2e 63 27 5c 22 20 | 5c 28 32 31 31 39 33 20 |xt.c'\" |\(21193 |
|00000510| 63 68 61 72 61 63 74 65 | 72 73 5c 29 0a 73 65 64 |characte|rs\).sed|
|00000520| 20 22 73 2f 5e 58 2f 2f | 22 20 3e 27 64 5f 74 65 | "s/^X//|" >'d_te|
|00000530| 78 74 2e 63 27 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |xt.c' <<|'END_OF_|
|00000540| 46 49 4c 45 27 0a 58 2f | 2a 0a 58 20 2a 20 46 49 |FILE'.X/|*.X * FI|
|00000550| 47 20 3a 20 46 61 63 69 | 6c 69 74 79 20 66 6f 72 |G : Faci|lity for|
|00000560| 20 49 6e 74 65 72 61 63 | 74 69 76 65 20 47 65 6e | Interac|tive Gen|
|00000570| 65 72 61 74 69 6f 6e 20 | 6f 66 20 66 69 67 75 72 |eration |of figur|
|00000580| 65 73 0a 58 20 2a 20 43 | 6f 70 79 72 69 67 68 74 |es.X * C|opyright|
|00000590| 20 28 63 29 20 31 39 38 | 35 20 62 79 20 53 75 70 | (c) 198|5 by Sup|
|000005a0| 6f 6a 20 53 75 74 61 6e | 74 68 61 76 69 62 75 6c |oj Sutan|thavibul|
|000005b0| 0a 58 20 2a 20 43 6f 70 | 79 72 69 67 68 74 20 28 |.X * Cop|yright (|
|000005c0| 63 29 20 31 39 39 32 20 | 62 79 20 42 72 69 61 6e |c) 1992 |by Brian|
|000005d0| 20 56 2e 20 53 6d 69 74 | 68 0a 58 20 2a 20 22 50 | V. Smit|h.X * "P|
|000005e0| 65 72 6d 69 73 73 69 6f | 6e 20 74 6f 20 75 73 65 |ermissio|n to use|
|000005f0| 2c 20 63 6f 70 79 2c 20 | 6d 6f 64 69 66 79 2c 20 |, copy, |modify, |
|00000600| 64 69 73 74 72 69 62 75 | 74 65 2c 20 61 6e 64 20 |distribu|te, and |
|00000610| 73 65 6c 6c 20 74 68 69 | 73 20 73 6f 66 74 77 61 |sell thi|s softwa|
|00000620| 72 65 20 61 6e 64 20 69 | 74 73 0a 58 20 2a 20 64 |re and i|ts.X * d|
|00000630| 6f 63 75 6d 65 6e 74 61 | 74 69 6f 6e 20 66 6f 72 |ocumenta|tion for|
|00000640| 20 61 6e 79 20 70 75 72 | 70 6f 73 65 20 69 73 20 | any pur|pose is |
|00000650| 68 65 72 65 62 79 20 67 | 72 61 6e 74 65 64 20 77 |hereby g|ranted w|
|00000660| 69 74 68 6f 75 74 20 66 | 65 65 2c 20 70 72 6f 76 |ithout f|ee, prov|
|00000670| 69 64 65 64 20 74 68 61 | 74 0a 58 20 2a 20 74 68 |ided tha|t.X * th|
|00000680| 65 20 61 62 6f 76 65 20 | 63 6f 70 79 72 69 67 68 |e above |copyrigh|
|00000690| 74 20 6e 6f 74 69 63 65 | 20 61 70 70 65 61 72 20 |t notice| appear |
|000006a0| 69 6e 20 61 6c 6c 20 63 | 6f 70 69 65 73 20 61 6e |in all c|opies an|
|000006b0| 64 20 74 68 61 74 20 62 | 6f 74 68 20 74 68 65 20 |d that b|oth the |
|000006c0| 63 6f 70 79 72 69 67 68 | 74 0a 58 20 2a 20 6e 6f |copyrigh|t.X * no|
|000006d0| 74 69 63 65 20 61 6e 64 | 20 74 68 69 73 20 70 65 |tice and| this pe|
|000006e0| 72 6d 69 73 73 69 6f 6e | 20 6e 6f 74 69 63 65 20 |rmission| notice |
|000006f0| 61 70 70 65 61 72 20 69 | 6e 20 73 75 70 70 6f 72 |appear i|n suppor|
|00000700| 74 69 6e 67 20 64 6f 63 | 75 6d 65 6e 74 61 74 69 |ting doc|umentati|
|00000710| 6f 6e 2e 20 0a 58 20 2a | 20 4e 6f 20 72 65 70 72 |on. .X *| No repr|
|00000720| 65 73 65 6e 74 61 74 69 | 6f 6e 73 20 61 72 65 20 |esentati|ons are |
|00000730| 6d 61 64 65 20 61 62 6f | 75 74 20 74 68 65 20 73 |made abo|ut the s|
|00000740| 75 69 74 61 62 69 6c 69 | 74 79 20 6f 66 20 74 68 |uitabili|ty of th|
|00000750| 69 73 20 73 6f 66 74 77 | 61 72 65 20 66 6f 72 20 |is softw|are for |
|00000760| 0a 58 20 2a 20 61 6e 79 | 20 70 75 72 70 6f 73 65 |.X * any| purpose|
|00000770| 2e 20 20 49 74 20 69 73 | 20 70 72 6f 76 69 64 65 |. It is| provide|
|00000780| 64 20 22 61 73 20 69 73 | 22 20 77 69 74 68 6f 75 |d "as is|" withou|
|00000790| 74 20 65 78 70 72 65 73 | 73 20 6f 72 20 69 6d 70 |t expres|s or imp|
|000007a0| 6c 69 65 64 20 77 61 72 | 72 61 6e 74 79 2e 22 0a |lied war|ranty.".|
|000007b0| 58 20 2a 2f 0a 58 0a 58 | 23 69 6e 63 6c 75 64 65 |X */.X.X|#include|
|000007c0| 20 22 66 69 67 2e 68 22 | 0a 58 23 69 6e 63 6c 75 | "fig.h"|.X#inclu|
|000007d0| 64 65 20 22 72 65 73 6f | 75 72 63 65 73 2e 68 22 |de "reso|urces.h"|
|000007e0| 0a 58 23 69 6e 63 6c 75 | 64 65 20 22 6d 6f 64 65 |.X#inclu|de "mode|
|000007f0| 2e 68 22 0a 58 23 69 6e | 63 6c 75 64 65 20 22 6f |.h".X#in|clude "o|
|00000800| 62 6a 65 63 74 2e 68 22 | 0a 58 23 69 6e 63 6c 75 |bject.h"|.X#inclu|
|00000810| 64 65 20 22 70 61 69 6e | 74 6f 70 2e 68 22 0a 58 |de "pain|top.h".X|
|00000820| 23 69 6e 63 6c 75 64 65 | 20 22 75 5f 63 72 65 61 |#include| "u_crea|
|00000830| 74 65 2e 68 22 0a 58 23 | 69 6e 63 6c 75 64 65 20 |te.h".X#|include |
|00000840| 22 75 5f 66 6f 6e 74 73 | 2e 68 22 0a 58 23 69 6e |"u_fonts|.h".X#in|
|00000850| 63 6c 75 64 65 20 22 75 | 5f 6c 69 73 74 2e 68 22 |clude "u|_list.h"|
|00000860| 0a 58 23 69 6e 63 6c 75 | 64 65 20 22 75 5f 73 65 |.X#inclu|de "u_se|
|00000870| 61 72 63 68 2e 68 22 0a | 58 23 69 6e 63 6c 75 64 |arch.h".|X#includ|
|00000880| 65 20 22 77 5f 63 61 6e | 76 61 73 2e 68 22 0a 58 |e "w_can|vas.h".X|
|00000890| 23 69 6e 63 6c 75 64 65 | 20 22 77 5f 64 72 61 77 |#include| "w_draw|
|000008a0| 70 72 69 6d 2e 68 22 0a | 58 23 69 6e 63 6c 75 64 |prim.h".|X#includ|
|000008b0| 65 20 22 77 5f 6d 6f 75 | 73 65 66 75 6e 2e 68 22 |e "w_mou|sefun.h"|
|000008c0| 0a 58 23 69 6e 63 6c 75 | 64 65 20 22 77 5f 73 65 |.X#inclu|de "w_se|
|000008d0| 74 75 70 2e 68 22 0a 58 | 23 69 6e 63 6c 75 64 65 |tup.h".X|#include|
|000008e0| 20 22 77 5f 7a 6f 6f 6d | 2e 68 22 0a 58 0a 58 65 | "w_zoom|.h".X.Xe|
|000008f0| 78 74 65 72 6e 20 50 49 | 58 5f 52 4f 54 5f 46 4f |xtern PI|X_ROT_FO|
|00000900| 4e 54 20 6c 6f 6f 6b 66 | 6f 6e 74 28 29 3b 0a 58 |NT lookf|ont();.X|
|00000910| 0a 58 23 64 65 66 69 6e | 65 20 43 54 52 4c 5f 48 |.X#defin|e CTRL_H|
|00000920| 09 38 0a 58 23 64 65 66 | 69 6e 65 20 4e 4c 09 31 |.8.X#def|ine NL.1|
|00000930| 30 0a 58 23 64 65 66 69 | 6e 65 20 43 52 09 31 33 |0.X#defi|ne CR.13|
|00000940| 0a 58 23 64 65 66 69 6e | 65 20 43 54 52 4c 5f 58 |.X#defin|e CTRL_X|
|00000950| 09 32 34 0a 58 23 64 65 | 66 69 6e 65 20 53 50 09 |.24.X#de|fine SP.|
|00000960| 33 32 0a 58 23 64 65 66 | 69 6e 65 20 44 45 4c 09 |32.X#def|ine DEL.|
|00000970| 31 32 37 0a 58 0a 58 23 | 64 65 66 69 6e 65 09 09 |127.X.X#|define..|
|00000980| 09 42 55 46 5f 53 49 5a | 45 09 34 30 30 0a 58 0a |.BUF_SIZ|E.400.X.|
|00000990| 58 63 68 61 72 09 09 70 | 72 65 66 69 78 5b 42 55 |Xchar..p|refix[BU|
|000009a0| 46 5f 53 49 5a 45 5d 2c | 09 2f 2a 20 70 61 72 74 |F_SIZE],|./* part|
|000009b0| 20 6f 66 20 73 74 72 69 | 6e 67 20 6c 65 66 74 20 | of stri|ng left |
|000009c0| 6f 66 20 6d 6f 75 73 65 | 20 63 6c 69 63 6b 20 2a |of mouse| click *|
|000009d0| 2f 0a 58 09 09 73 75 66 | 66 69 78 5b 42 55 46 5f |/.X..suf|fix[BUF_|
|000009e0| 53 49 5a 45 5d 3b 09 2f | 2a 20 70 61 72 74 20 74 |SIZE];./|* part t|
|000009f0| 6f 20 72 69 67 68 74 20 | 6f 66 20 63 6c 69 63 6b |o right |of click|
|00000a00| 20 2a 2f 0a 58 69 6e 74 | 09 09 6c 65 6e 67 5f 70 | */.Xint|..leng_p|
|00000a10| 72 65 66 69 78 2c 20 6c | 65 6e 67 5f 73 75 66 66 |refix, l|eng_suff|
|00000a20| 69 78 3b 0a 58 73 74 61 | 74 69 63 20 69 6e 74 09 |ix;.Xsta|tic int.|
|00000a30| 63 68 61 72 5f 68 74 3b | 0a 58 73 74 61 74 69 63 |char_ht;|.Xstatic|
|00000a40| 20 69 6e 74 09 62 61 73 | 65 5f 78 2c 20 62 61 73 | int.bas|e_x, bas|
|00000a50| 65 5f 79 3b 0a 58 73 74 | 61 74 69 63 20 50 49 58 |e_y;.Xst|atic PIX|
|00000a60| 5f 52 4f 54 5f 46 4f 4e | 54 20 63 61 6e 76 61 73 |_ROT_FON|T canvas|
|00000a70| 5f 7a 6f 6f 6d 65 64 5f | 66 6f 6e 74 3b 0a 58 0a |_zoomed_|font;.X.|
|00000a80| 58 73 74 61 74 69 63 20 | 69 6e 74 09 77 6f 72 6b |Xstatic |int.work|
|00000a90| 5f 70 73 66 6c 61 67 2c | 20 77 6f 72 6b 5f 66 6f |_psflag,| work_fo|
|00000aa0| 6e 74 2c 20 77 6f 72 6b | 5f 66 6f 6e 74 73 69 7a |nt, work|_fontsiz|
|00000ab0| 65 2c 20 77 6f 72 6b 5f | 74 65 78 74 6a 75 73 74 |e, work_|textjust|
|00000ac0| 3b 0a 58 73 74 61 74 69 | 63 20 50 49 58 5f 52 4f |;.Xstati|c PIX_RO|
|00000ad0| 54 5f 46 4f 4e 54 20 77 | 6f 72 6b 5f 66 6f 6e 74 |T_FONT w|ork_font|
|00000ae0| 73 74 72 75 63 74 3b 0a | 58 73 74 61 74 69 63 20 |struct;.|Xstatic |
|00000af0| 66 6c 6f 61 74 09 77 6f | 72 6b 5f 61 6e 67 6c 65 |float.wo|rk_angle|
|00000b00| 3b 0a 58 73 74 61 74 69 | 63 09 09 66 69 6e 69 73 |;.Xstati|c..finis|
|00000b10| 68 5f 6e 5f 73 74 61 72 | 74 28 29 3b 0a 58 73 74 |h_n_star|t();.Xst|
|00000b20| 61 74 69 63 09 09 69 6e | 69 74 5f 74 65 78 74 5f |atic..in|it_text_|
|00000b30| 69 6e 70 75 74 28 29 2c | 20 63 61 6e 63 65 6c 5f |input(),| cancel_|
|00000b40| 74 65 78 74 5f 69 6e 70 | 75 74 28 29 3b 0a 58 73 |text_inp|ut();.Xs|
|00000b50| 74 61 74 69 63 09 09 77 | 72 61 70 5f 75 70 28 29 |tatic..w|rap_up()|
|00000b60| 3b 0a 58 69 6e 74 09 09 | 63 68 61 72 5f 68 61 6e |;.Xint..|char_han|
|00000b70| 64 6c 65 72 28 29 3b 0a | 58 73 74 61 74 69 63 20 |dler();.|Xstatic |
|00000b80| 46 5f 74 65 78 74 20 20 | 2a 6e 65 77 5f 74 65 78 |F_text |*new_tex|
|00000b90| 74 28 29 3b 0a 58 0a 58 | 73 74 61 74 69 63 20 69 |t();.X.X|static i|
|00000ba0| 6e 74 09 63 70 79 5f 6e | 5f 63 68 61 72 28 29 3b |nt.cpy_n|_char();|
|00000bb0| 0a 58 73 74 61 74 69 63 | 20 69 6e 74 09 70 72 65 |.Xstatic| int.pre|
|00000bc0| 66 69 78 5f 6c 65 6e 67 | 74 68 28 29 3b 0a 58 73 |fix_leng|th();.Xs|
|00000bd0| 74 61 74 69 63 20 69 6e | 74 09 69 6e 69 74 69 61 |tatic in|t.initia|
|00000be0| 6c 69 7a 65 5f 63 68 61 | 72 5f 68 61 6e 64 6c 65 |lize_cha|r_handle|
|00000bf0| 72 28 29 3b 0a 58 73 74 | 61 74 69 63 20 69 6e 74 |r();.Xst|atic int|
|00000c00| 09 74 65 72 6d 69 6e 61 | 74 65 5f 63 68 61 72 5f |.termina|te_char_|
|00000c10| 68 61 6e 64 6c 65 72 28 | 29 3b 0a 58 73 74 61 74 |handler(|);.Xstat|
|00000c20| 69 63 20 69 6e 74 09 65 | 72 61 73 65 5f 63 68 61 |ic int.e|rase_cha|
|00000c30| 72 5f 73 74 72 69 6e 67 | 28 29 3b 0a 58 73 74 61 |r_string|();.Xsta|
|00000c40| 74 69 63 20 69 6e 74 09 | 64 72 61 77 5f 63 68 61 |tic int.|draw_cha|
|00000c50| 72 5f 73 74 72 69 6e 67 | 28 29 3b 0a 58 73 74 61 |r_string|();.Xsta|
|00000c60| 74 69 63 20 69 6e 74 09 | 74 75 72 6e 5f 6f 6e 5f |tic int.|turn_on_|
|00000c70| 62 6c 69 6e 6b 69 6e 67 | 5f 63 75 72 73 6f 72 28 |blinking|_cursor(|
|00000c80| 29 3b 0a 58 73 74 61 74 | 69 63 20 69 6e 74 09 74 |);.Xstat|ic int.t|
|00000c90| 75 72 6e 5f 6f 66 66 5f | 62 6c 69 6e 6b 69 6e 67 |urn_off_|blinking|
|00000ca0| 5f 63 75 72 73 6f 72 28 | 29 3b 0a 58 73 74 61 74 |_cursor(|);.Xstat|
|00000cb0| 69 63 20 69 6e 74 09 6d | 6f 76 65 5f 62 6c 69 6e |ic int.m|ove_blin|
|00000cc0| 6b 69 6e 67 5f 63 75 72 | 73 6f 72 28 29 3b 0a 58 |king_cur|sor();.X|
|00000cd0| 0a 58 74 65 78 74 5f 64 | 72 61 77 69 6e 67 5f 73 |.Xtext_d|rawing_s|
|00000ce0| 65 6c 65 63 74 65 64 28 | 29 0a 58 7b 0a 58 20 20 |elected(|).X{.X |
|00000cf0| 20 20 63 61 6e 76 61 73 | 5f 6b 62 64 5f 70 72 6f | canvas|_kbd_pro|
|00000d00| 63 20 3d 20 6e 75 6c 6c | 5f 70 72 6f 63 3b 0a 58 |c = null|_proc;.X|
|00000d10| 20 20 20 20 63 61 6e 76 | 61 73 5f 6c 6f 63 6d 6f | canv|as_locmo|
|00000d20| 76 65 5f 70 72 6f 63 20 | 3d 20 6e 75 6c 6c 5f 70 |ve_proc |= null_p|
|00000d30| 72 6f 63 3b 0a 58 20 20 | 20 20 63 61 6e 76 61 73 |roc;.X | canvas|
|00000d40| 5f 6d 69 64 64 6c 65 62 | 75 74 5f 70 72 6f 63 20 |_middleb|ut_proc |
|00000d50| 3d 20 6e 75 6c 6c 5f 70 | 72 6f 63 3b 0a 58 20 20 |= null_p|roc;.X |
|00000d60| 20 20 63 61 6e 76 61 73 | 5f 6c 65 66 74 62 75 74 | canvas|_leftbut|
|00000d70| 5f 70 72 6f 63 20 3d 20 | 69 6e 69 74 5f 74 65 78 |_proc = |init_tex|
|00000d80| 74 5f 69 6e 70 75 74 3b | 0a 58 20 20 20 20 63 61 |t_input;|.X ca|
|00000d90| 6e 76 61 73 5f 72 69 67 | 68 74 62 75 74 5f 70 72 |nvas_rig|htbut_pr|
|00000da0| 6f 63 20 3d 20 6e 75 6c | 6c 5f 70 72 6f 63 3b 0a |oc = nul|l_proc;.|
|00000db0| 58 20 20 20 20 73 65 74 | 5f 6d 6f 75 73 65 66 75 |X set|_mousefu|
|00000dc0| 6e 28 22 70 6f 73 6e 20 | 63 75 72 73 6f 72 22 2c |n("posn |cursor",|
|00000dd0| 20 22 22 2c 20 22 22 29 | 3b 0a 58 20 20 20 20 73 | "", "")|;.X s|
|00000de0| 65 74 5f 63 75 72 73 6f | 72 28 70 65 6e 63 69 6c |et_curso|r(pencil|
|00000df0| 5f 63 75 72 73 6f 72 29 | 3b 0a 58 7d 0a 58 0a 58 |_cursor)|;.X}.X.X|
|00000e00| 73 74 61 74 69 63 0a 58 | 66 69 6e 69 73 68 5f 6e |static.X|finish_n|
|00000e10| 5f 73 74 61 72 74 28 78 | 2c 20 79 29 0a 58 7b 0a |_start(x|, y).X{.|
|00000e20| 58 20 20 20 20 77 72 61 | 70 5f 75 70 28 29 3b 0a |X wra|p_up();.|
|00000e30| 58 20 20 20 20 69 6e 69 | 74 5f 74 65 78 74 5f 69 |X ini|t_text_i|
|00000e40| 6e 70 75 74 28 78 2c 20 | 79 29 3b 0a 58 7d 0a 58 |nput(x, |y);.X}.X|
|00000e50| 0a 58 66 69 6e 69 73 68 | 5f 74 65 78 74 5f 69 6e |.Xfinish|_text_in|
|00000e60| 70 75 74 28 29 0a 58 7b | 0a 58 20 20 20 20 77 72 |put().X{|.X wr|
|00000e70| 61 70 5f 75 70 28 29 3b | 0a 58 20 20 20 20 74 65 |ap_up();|.X te|
|00000e80| 78 74 5f 64 72 61 77 69 | 6e 67 5f 73 65 6c 65 63 |xt_drawi|ng_selec|
|00000e90| 74 65 64 28 29 3b 0a 58 | 20 20 20 20 64 72 61 77 |ted();.X| draw|
|00000ea0| 5f 6d 6f 75 73 65 66 75 | 6e 5f 63 61 6e 76 61 73 |_mousefu|n_canvas|
|00000eb0| 28 29 3b 0a 58 7d 0a 58 | 0a 58 73 74 61 74 69 63 |();.X}.X|.Xstatic|
|00000ec0| 0a 58 63 61 6e 63 65 6c | 5f 74 65 78 74 5f 69 6e |.Xcancel|_text_in|
|00000ed0| 70 75 74 28 29 0a 58 7b | 0a 58 20 20 20 20 65 72 |put().X{|.X er|
|00000ee0| 61 73 65 5f 63 68 61 72 | 5f 73 74 72 69 6e 67 28 |ase_char|_string(|
|00000ef0| 29 3b 0a 58 20 20 20 20 | 74 65 72 6d 69 6e 61 74 |);.X |terminat|
|00000f00| 65 5f 63 68 61 72 5f 68 | 61 6e 64 6c 65 72 28 29 |e_char_h|andler()|
|00000f10| 3b 0a 58 20 20 20 20 69 | 66 20 28 63 75 72 5f 74 |;.X i|f (cur_t|
|00000f20| 20 21 3d 20 4e 55 4c 4c | 29 20 7b 0a 58 09 64 72 | != NULL|) {.X.dr|
|00000f30| 61 77 5f 74 65 78 74 28 | 63 75 72 5f 74 2c 20 50 |aw_text(|cur_t, P|
|00000f40| 41 49 4e 54 29 3b 0a 58 | 09 74 6f 67 67 6c 65 5f |AINT);.X|.toggle_|
|00000f50| 74 65 78 74 6d 61 72 6b | 65 72 28 63 75 72 5f 74 |textmark|er(cur_t|
|00000f60| 29 3b 0a 58 20 20 20 20 | 7d 0a 58 20 20 20 20 74 |);.X |}.X t|
|00000f70| 65 78 74 5f 64 72 61 77 | 69 6e 67 5f 73 65 6c 65 |ext_draw|ing_sele|
|00000f80| 63 74 65 64 28 29 3b 0a | 58 20 20 20 20 64 72 61 |cted();.|X dra|
|00000f90| 77 5f 6d 6f 75 73 65 66 | 75 6e 5f 63 61 6e 76 61 |w_mousef|un_canva|
|00000fa0| 73 28 29 3b 0a 58 20 20 | 20 20 72 65 73 65 74 5f |s();.X | reset_|
|00000fb0| 61 63 74 69 6f 6e 5f 6f | 6e 28 29 3b 0a 58 7d 0a |action_o|n();.X}.|
|00000fc0| 58 0a 58 73 74 61 74 69 | 63 0a 58 6e 65 77 5f 74 |X.Xstati|c.Xnew_t|
|00000fd0| 65 78 74 5f 6c 69 6e 65 | 28 29 0a 58 7b 0a 58 20 |ext_line|().X{.X |
|00000fe0| 20 20 20 77 72 61 70 5f | 75 70 28 29 3b 0a 58 20 | wrap_|up();.X |
|00000ff0| 20 20 20 69 66 20 28 77 | 6f 72 6b 5f 61 6e 67 6c | if (w|ork_angl|
|00001000| 65 20 3c 20 39 30 2e 30 | 20 2d 20 30 2e 30 30 31 |e < 90.0| - 0.001|
|00001010| 29 20 7b 0a 58 09 63 75 | 72 5f 79 20 2b 3d 20 28 |) {.X.cu|r_y += (|
|00001020| 69 6e 74 29 20 28 28 66 | 6c 6f 61 74 29 20 63 68 |int) ((f|loat) ch|
|00001030| 61 72 5f 68 74 20 2a 20 | 63 75 72 5f 74 65 78 74 |ar_ht * |cur_text|
|00001040| 73 74 65 70 29 3b 0a 58 | 09 63 75 72 5f 78 20 3d |step);.X|.cur_x =|
|00001050| 20 62 61 73 65 5f 78 3b | 0a 58 20 20 20 20 7d 20 | base_x;|.X } |
|00001060| 65 6c 73 65 20 69 66 20 | 28 77 6f 72 6b 5f 61 6e |else if |(work_an|
|00001070| 67 6c 65 20 3c 20 31 38 | 30 2e 30 20 2d 20 30 2e |gle < 18|0.0 - 0.|
|00001080| 30 30 31 29 20 7b 0a 58 | 09 63 75 72 5f 78 20 2b |001) {.X|.cur_x +|
|00001090| 3d 20 28 69 6e 74 29 20 | 28 28 66 6c 6f 61 74 29 |= (int) |((float)|
|000010a0| 20 63 68 61 72 5f 68 74 | 20 2a 20 63 75 72 5f 74 | char_ht| * cur_t|
|000010b0| 65 78 74 73 74 65 70 29 | 3b 0a 58 09 63 75 72 5f |extstep)|;.X.cur_|
|000010c0| 79 20 3d 20 62 61 73 65 | 5f 79 3b 0a 58 20 20 20 |y = base|_y;.X |
|000010d0| 20 7d 20 65 6c 73 65 20 | 69 66 20 28 77 6f 72 6b | } else |if (work|
|000010e0| 5f 61 6e 67 6c 65 20 3c | 20 32 37 30 2e 30 20 2d |_angle <| 270.0 -|
|000010f0| 20 30 2e 30 30 31 29 20 | 7b 0a 58 09 63 75 72 5f | 0.001) |{.X.cur_|
|00001100| 79 20 2d 3d 20 28 69 6e | 74 29 20 28 28 66 6c 6f |y -= (in|t) ((flo|
|00001110| 61 74 29 20 63 68 61 72 | 5f 68 74 20 2a 20 63 75 |at) char|_ht * cu|
|00001120| 72 5f 74 65 78 74 73 74 | 65 70 29 3b 0a 58 09 63 |r_textst|ep);.X.c|
|00001130| 75 72 5f 78 20 3d 20 62 | 61 73 65 5f 78 3b 0a 58 |ur_x = b|ase_x;.X|
|00001140| 20 20 20 20 7d 20 65 6c | 73 65 20 7b 0a 58 09 63 | } el|se {.X.c|
|00001150| 75 72 5f 78 20 2d 3d 20 | 28 69 6e 74 29 20 28 28 |ur_x -= |(int) ((|
|00001160| 66 6c 6f 61 74 29 20 63 | 68 61 72 5f 68 74 20 2a |float) c|har_ht *|
|00001170| 20 63 75 72 5f 74 65 78 | 74 73 74 65 70 29 3b 0a | cur_tex|tstep);.|
|00001180| 58 09 63 75 72 5f 79 20 | 3d 20 62 61 73 65 5f 79 |X.cur_y |= base_y|
|00001190| 3b 0a 58 20 20 20 20 7d | 0a 58 20 20 20 20 69 6e |;.X }|.X in|
|000011a0| 69 74 5f 74 65 78 74 5f | 69 6e 70 75 74 28 63 75 |it_text_|input(cu|
|000011b0| 72 5f 78 2c 20 63 75 72 | 5f 79 29 3b 0a 58 7d 0a |r_x, cur|_y);.X}.|
|000011c0| 58 0a 58 73 74 61 74 69 | 63 0a 58 77 72 61 70 5f |X.Xstati|c.Xwrap_|
|000011d0| 75 70 28 29 0a 58 7b 0a | 58 20 20 20 20 50 52 5f |up().X{.|X PR_|
|000011e0| 53 49 5a 45 09 20 20 20 | 20 73 69 7a 65 3b 0a 58 |SIZE. | size;.X|
|000011f0| 0a 58 20 20 20 20 72 65 | 73 65 74 5f 61 63 74 69 |.X re|set_acti|
|00001200| 6f 6e 5f 6f 6e 28 29 3b | 0a 58 20 20 20 20 65 72 |on_on();|.X er|
|00001210| 61 73 65 5f 63 68 61 72 | 5f 73 74 72 69 6e 67 28 |ase_char|_string(|
|00001220| 29 3b 0a 58 20 20 20 20 | 74 65 72 6d 69 6e 61 74 |);.X |terminat|
|00001230| 65 5f 63 68 61 72 5f 68 | 61 6e 64 6c 65 72 28 29 |e_char_h|andler()|
|00001240| 3b 0a 58 0a 58 20 20 20 | 20 69 66 20 28 63 75 72 |;.X.X | if (cur|
|00001250| 5f 74 20 3d 3d 20 4e 55 | 4c 4c 29 20 7b 09 2f 2a |_t == NU|LL) {./*|
|00001260| 20 61 20 62 72 61 6e 64 | 20 6e 65 77 20 74 65 78 | a brand| new tex|
|00001270| 74 20 2a 2f 0a 58 09 69 | 66 20 28 6c 65 6e 67 5f |t */.X.i|f (leng_|
|00001280| 70 72 65 66 69 78 20 3d | 3d 20 30 29 0a 58 09 20 |prefix =|= 0).X. |
|00001290| 20 20 20 72 65 74 75 72 | 6e 3b 0a 58 09 63 75 72 | retur|n;.X.cur|
|000012a0| 5f 74 20 3d 20 6e 65 77 | 5f 74 65 78 74 28 29 3b |_t = new|_text();|
|000012b0| 0a 58 09 61 64 64 5f 74 | 65 78 74 28 63 75 72 5f |.X.add_t|ext(cur_|
|000012c0| 74 29 3b 0a 58 20 20 20 | 20 7d 20 65 6c 73 65 20 |t);.X | } else |
|000012d0| 7b 09 09 09 2f 2a 20 65 | 78 69 73 74 69 6e 67 20 |{.../* e|xisting |
|000012e0| 74 65 78 74 20 6d 6f 64 | 69 66 69 65 64 20 2a 2f |text mod|ified */|
|000012f0| 0a 58 09 73 74 72 63 61 | 74 28 70 72 65 66 69 78 |.X.strca|t(prefix|
|00001300| 2c 20 73 75 66 66 69 78 | 29 3b 0a 58 09 6c 65 6e |, suffix|);.X.len|
|00001310| 67 5f 70 72 65 66 69 78 | 20 2b 3d 20 6c 65 6e 67 |g_prefix| += leng|
|00001320| 5f 73 75 66 66 69 78 3b | 0a 58 09 69 66 20 28 6c |_suffix;|.X.if (l|
|00001330| 65 6e 67 5f 70 72 65 66 | 69 78 20 3d 3d 20 30 29 |eng_pref|ix == 0)|
|00001340| 20 7b 0a 58 09 20 20 20 | 20 64 65 6c 65 74 65 5f | {.X. | delete_|
|00001350| 74 65 78 74 28 63 75 72 | 5f 74 29 3b 0a 58 09 20 |text(cur|_t);.X. |
|00001360| 20 20 20 72 65 74 75 72 | 6e 3b 0a 58 09 7d 0a 58 | retur|n;.X.}.X|
|00001370| 09 69 66 20 28 21 73 74 | 72 63 6d 70 28 63 75 72 |.if (!st|rcmp(cur|
|00001380| 5f 74 2d 3e 63 73 74 72 | 69 6e 67 2c 20 70 72 65 |_t->cstr|ing, pre|
|00001390| 66 69 78 29 29 20 7b 0a | 58 09 20 20 20 20 2f 2a |fix)) {.|X. /*|
|000013a0| 20 77 65 20 64 69 64 6e | 27 74 20 63 68 61 6e 67 | we didn|'t chang|
|000013b0| 65 20 61 6e 79 74 68 69 | 6e 67 20 2a 2f 0a 58 09 |e anythi|ng */.X.|
|000013c0| 20 20 20 20 64 72 61 77 | 5f 74 65 78 74 28 63 75 | draw|_text(cu|
|000013d0| 72 5f 74 2c 20 50 41 49 | 4e 54 29 3b 0a 58 09 20 |r_t, PAI|NT);.X. |
|000013e0| 20 20 20 74 6f 67 67 6c | 65 5f 74 65 78 74 6d 61 | toggl|e_textma|
|000013f0| 72 6b 65 72 28 63 75 72 | 5f 74 29 3b 0a 58 09 20 |rker(cur|_t);.X. |
|00001400| 20 20 20 72 65 74 75 72 | 6e 3b 0a 58 09 7d 0a 58 | retur|n;.X.}.X|
|00001410| 09 6e 65 77 5f 74 20 3d | 20 63 6f 70 79 5f 74 65 |.new_t =| copy_te|
|00001420| 78 74 28 63 75 72 5f 74 | 29 3b 0a 58 09 63 68 61 |xt(cur_t|);.X.cha|
|00001430| 6e 67 65 5f 74 65 78 74 | 28 63 75 72 5f 74 2c 20 |nge_text|(cur_t, |
|00001440| 6e 65 77 5f 74 29 3b 0a | 58 09 69 66 20 28 73 74 |new_t);.|X.if (st|
|00001450| 72 6c 65 6e 28 6e 65 77 | 5f 74 2d 3e 63 73 74 72 |rlen(new|_t->cstr|
|00001460| 69 6e 67 29 20 3e 3d 20 | 6c 65 6e 67 5f 70 72 65 |ing) >= |leng_pre|
|00001470| 66 69 78 29 20 7b 0a 58 | 09 20 20 20 20 73 74 72 |fix) {.X|. str|
|00001480| 63 70 79 28 6e 65 77 5f | 74 2d 3e 63 73 74 72 69 |cpy(new_|t->cstri|
|00001490| 6e 67 2c 20 70 72 65 66 | 69 78 29 3b 0a 58 09 7d |ng, pref|ix);.X.}|
|000014a0| 20 65 6c 73 65 20 7b 09 | 09 2f 2a 20 66 72 65 65 | else {.|./* free|
|000014b0| 20 6f 6c 64 20 61 6e 64 | 20 61 6c 6c 6f 63 61 74 | old and| allocat|
|000014c0| 65 20 6e 65 77 20 2a 2f | 0a 58 09 20 20 20 20 66 |e new */|.X. f|
|000014d0| 72 65 65 28 6e 65 77 5f | 74 2d 3e 63 73 74 72 69 |ree(new_|t->cstri|
|000014e0| 6e 67 29 3b 0a 58 09 20 | 20 20 20 69 66 20 28 28 |ng);.X. | if ((|
|000014f0| 6e 65 77 5f 74 2d 3e 63 | 73 74 72 69 6e 67 20 3d |new_t->c|string =|
|00001500| 20 6e 65 77 5f 73 74 72 | 69 6e 67 28 6c 65 6e 67 | new_str|ing(leng|
|00001510| 5f 70 72 65 66 69 78 20 | 2b 20 31 29 29 20 21 3d |_prefix |+ 1)) !=|
|00001520| 20 4e 55 4c 4c 29 0a 58 | 09 09 73 74 72 63 70 79 | NULL).X|..strcpy|
|00001530| 28 6e 65 77 5f 74 2d 3e | 63 73 74 72 69 6e 67 2c |(new_t->|cstring,|
|00001540| 20 70 72 65 66 69 78 29 | 3b 0a 58 09 7d 0a 58 09 | prefix)|;.X.}.X.|
|00001550| 73 69 7a 65 20 3d 20 70 | 66 5f 74 65 78 74 77 69 |size = p|f_textwi|
|00001560| 64 74 68 28 63 61 6e 76 | 61 73 5f 66 6f 6e 74 2c |dth(canv|as_font,|
|00001570| 20 6c 65 6e 67 5f 70 72 | 65 66 69 78 2c 20 70 72 | leng_pr|efix, pr|
|00001580| 65 66 69 78 29 3b 0a 58 | 09 6e 65 77 5f 74 2d 3e |efix);.X|.new_t->|
|00001590| 68 65 69 67 68 74 20 3d | 20 73 69 7a 65 2e 79 3b |height =| size.y;|
|000015a0| 0a 58 09 6e 65 77 5f 74 | 2d 3e 6c 65 6e 67 74 68 |.X.new_t|->length|
|000015b0| 20 3d 20 73 69 7a 65 2e | 78 3b 20 2f 2a 20 69 6e | = size.|x; /* in|
|000015c0| 20 70 69 78 65 6c 73 20 | 2a 2f 0a 58 09 63 75 72 | pixels |*/.X.cur|
|000015d0| 5f 74 20 3d 20 6e 65 77 | 5f 74 3b 0a 58 20 20 20 |_t = new|_t;.X |
|000015e0| 20 7d 0a 58 20 20 20 20 | 64 72 61 77 5f 74 65 78 | }.X |draw_tex|
|000015f0| 74 28 63 75 72 5f 74 2c | 20 50 41 49 4e 54 29 3b |t(cur_t,| PAINT);|
|00001600| 0a 58 20 20 20 20 6d 61 | 73 6b 5f 74 6f 67 67 6c |.X ma|sk_toggl|
|00001610| 65 5f 74 65 78 74 6d 61 | 72 6b 65 72 28 63 75 72 |e_textma|rker(cur|
|00001620| 5f 74 29 3b 0a 58 7d 0a | 58 0a 58 73 74 61 74 69 |_t);.X}.|X.Xstati|
|00001630| 63 0a 58 69 6e 69 74 5f | 74 65 78 74 5f 69 6e 70 |c.Xinit_|text_inp|
|00001640| 75 74 28 78 2c 20 79 29 | 0a 58 20 20 20 20 69 6e |ut(x, y)|.X in|
|00001650| 74 09 09 20 20 20 20 78 | 2c 20 79 3b 0a 58 7b 0a |t.. x|, y;.X{.|
|00001660| 58 20 20 20 20 69 6e 74 | 09 09 20 20 20 20 6c 65 |X int|.. le|
|00001670| 6e 67 74 68 2c 20 64 3b | 0a 58 20 20 20 20 50 52 |ngth, d;|.X PR|
|00001680| 5f 53 49 5a 45 09 20 20 | 20 20 74 73 69 7a 65 3b |_SIZE. | tsize;|
|00001690| 0a 58 0a 58 20 20 20 20 | 63 75 72 5f 78 20 3d 20 |.X.X |cur_x = |
|000016a0| 78 3b 0a 58 20 20 20 20 | 63 75 72 5f 79 20 3d 20 |x;.X |cur_y = |
|000016b0| 79 3b 0a 58 0a 58 20 20 | 20 20 73 65 74 5f 61 63 |y;.X.X | set_ac|
|000016c0| 74 69 6f 6e 5f 6f 6e 28 | 29 3b 0a 58 20 20 20 20 |tion_on(|);.X |
|000016d0| 73 65 74 5f 6d 6f 75 73 | 65 66 75 6e 28 22 72 65 |set_mous|efun("re|
|000016e0| 70 6f 73 6e 20 63 75 72 | 73 6f 72 22 2c 20 22 66 |posn cur|sor", "f|
|000016f0| 69 6e 69 73 68 20 74 65 | 78 74 22 2c 20 22 63 61 |inish te|xt", "ca|
|00001700| 6e 63 65 6c 22 29 3b 0a | 58 20 20 20 20 64 72 61 |ncel");.|X dra|
|00001710| 77 5f 6d 6f 75 73 65 66 | 75 6e 5f 63 61 6e 76 61 |w_mousef|un_canva|
|00001720| 73 28 29 3b 0a 58 20 20 | 20 20 63 61 6e 76 61 73 |s();.X | canvas|
|00001730| 5f 6b 62 64 5f 70 72 6f | 63 20 3d 20 63 68 61 72 |_kbd_pro|c = char|
|00001740| 5f 68 61 6e 64 6c 65 72 | 3b 0a 58 20 20 20 20 63 |_handler|;.X c|
|00001750| 61 6e 76 61 73 5f 6d 69 | 64 64 6c 65 62 75 74 5f |anvas_mi|ddlebut_|
|00001760| 70 72 6f 63 20 3d 20 66 | 69 6e 69 73 68 5f 74 65 |proc = f|inish_te|
|00001770| 78 74 5f 69 6e 70 75 74 | 3b 0a 58 20 20 20 20 63 |xt_input|;.X c|
|00001780| 61 6e 76 61 73 5f 6c 65 | 66 74 62 75 74 5f 70 72 |anvas_le|ftbut_pr|
|00001790| 6f 63 20 3d 20 66 69 6e | 69 73 68 5f 6e 5f 73 74 |oc = fin|ish_n_st|
|000017a0| 61 72 74 3b 0a 58 20 20 | 20 20 63 61 6e 76 61 73 |art;.X | canvas|
|000017b0| 5f 72 69 67 68 74 62 75 | 74 5f 70 72 6f 63 20 3d |_rightbu|t_proc =|
|000017c0| 20 63 61 6e 63 65 6c 5f | 74 65 78 74 5f 69 6e 70 | cancel_|text_inp|
|000017d0| 75 74 3b 0a 58 0a 58 20 | 20 20 20 2f 2a 0a 58 20 |ut;.X.X | /*.X |
|000017e0| 20 20 20 20 2a 20 73 65 | 74 20 77 6f 72 6b 69 6e | * se|t workin|
|000017f0| 67 20 66 6f 6e 74 20 69 | 6e 66 6f 20 74 6f 20 63 |g font i|nfo to c|
|00001800| 75 72 72 65 6e 74 20 73 | 65 74 74 69 6e 67 73 2e |urrent s|ettings.|
|00001810| 20 54 68 69 73 20 61 6c | 6c 6f 77 73 20 75 73 65 | This al|lows use|
|00001820| 72 20 74 6f 20 63 68 61 | 6e 67 65 0a 58 20 20 20 |r to cha|nge.X |
|00001830| 20 20 2a 20 66 6f 6e 74 | 20 73 65 74 74 69 6e 67 | * font| setting|
|00001840| 73 20 77 68 69 6c 65 20 | 77 65 20 61 72 65 20 69 |s while |we are i|
|00001850| 6e 20 74 68 65 20 6d 69 | 64 64 6c 65 20 6f 66 20 |n the mi|ddle of |
|00001860| 61 63 63 65 70 74 69 6e | 67 20 74 65 78 74 20 77 |acceptin|g text w|
|00001870| 69 74 68 6f 75 74 0a 58 | 20 20 20 20 20 2a 20 61 |ithout.X| * a|
|00001880| 66 66 65 63 74 69 6e 67 | 20 74 68 69 73 20 74 65 |ffecting| this te|
|00001890| 78 74 20 69 2e 65 2e 20 | 77 65 20 64 6f 6e 27 74 |xt i.e. |we don't|
|000018a0| 20 61 6c 6c 6f 77 20 74 | 68 65 20 74 65 78 74 20 | allow t|he text |
|000018b0| 74 6f 20 63 68 61 6e 67 | 65 20 6d 69 64 77 61 79 |to chang|e midway|
|000018c0| 0a 58 20 20 20 20 20 2a | 20 74 68 72 6f 75 67 68 |.X *| through|
|000018d0| 0a 58 20 20 20 20 20 2a | 2f 0a 58 0a 58 20 20 20 |.X *|/.X.X |
|000018e0| 20 70 75 74 5f 6d 73 67 | 28 22 52 65 61 64 79 20 | put_msg|("Ready |
|000018f0| 66 6f 72 20 74 65 78 74 | 20 69 6e 70 75 74 20 28 |for text| input (|
|00001900| 66 72 6f 6d 20 6b 65 79 | 62 6f 61 72 64 29 22 29 |from key|board)")|
|00001910| 3b 0a 58 20 20 20 20 69 | 66 20 28 28 63 75 72 5f |;.X i|f ((cur_|
|00001920| 74 20 3d 20 74 65 78 74 | 5f 73 65 61 72 63 68 28 |t = text|_search(|
|00001930| 63 75 72 5f 78 2c 20 63 | 75 72 5f 79 29 29 20 3d |cur_x, c|ur_y)) =|
|00001940| 3d 20 4e 55 4c 4c 29 20 | 7b 09 2f 2a 20 6e 65 77 |= NULL) |{./* new|
|00001950| 20 74 65 78 74 20 69 6e | 70 75 74 20 2a 2f 0a 58 | text in|put */.X|
|00001960| 09 6c 65 6e 67 5f 70 72 | 65 66 69 78 20 3d 20 6c |.leng_pr|efix = l|
|00001970| 65 6e 67 5f 73 75 66 66 | 69 78 20 3d 20 30 3b 0a |eng_suff|ix = 0;.|
|00001980| 58 09 2a 73 75 66 66 69 | 78 20 3d 20 30 3b 0a 58 |X.*suffi|x = 0;.X|
|00001990| 09 70 72 65 66 69 78 5b | 6c 65 6e 67 5f 70 72 65 |.prefix[|leng_pre|
|000019a0| 66 69 78 5d 20 3d 20 27 | 5c 30 27 3b 0a 58 09 62 |fix] = '|\0';.X.b|
|000019b0| 61 73 65 5f 78 20 3d 20 | 63 75 72 5f 78 3b 0a 58 |ase_x = |cur_x;.X|
|000019c0| 09 62 61 73 65 5f 79 20 | 3d 20 63 75 72 5f 79 3b |.base_y |= cur_y;|
|000019d0| 0a 58 0a 58 09 77 6f 72 | 6b 5f 66 6f 6e 74 73 69 |.X.X.wor|k_fontsi|
|000019e0| 7a 65 20 3d 20 63 75 72 | 5f 66 6f 6e 74 73 69 7a |ze = cur|_fontsiz|
|000019f0| 65 3b 0a 58 09 77 6f 72 | 6b 5f 66 6f 6e 74 20 20 |e;.X.wor|k_font |
|00001a00| 20 20 20 3d 20 75 73 69 | 6e 67 5f 70 73 20 3f 20 | = usi|ng_ps ? |
|00001a10| 63 75 72 5f 70 73 5f 66 | 6f 6e 74 20 3a 20 63 75 |cur_ps_f|ont : cu|
|00001a20| 72 5f 6c 61 74 65 78 5f | 66 6f 6e 74 3b 0a 58 09 |r_latex_|font;.X.|
|00001a30| 77 6f 72 6b 5f 70 73 66 | 6c 61 67 20 20 20 3d 20 |work_psf|lag = |
|00001a40| 75 73 69 6e 67 5f 70 73 | 3b 0a 58 09 77 6f 72 6b |using_ps|;.X.work|
|00001a50| 5f 74 65 78 74 6a 75 73 | 74 20 3d 20 63 75 72 5f |_textjus|t = cur_|
|00001a60| 74 65 78 74 6a 75 73 74 | 3b 0a 58 09 77 6f 72 6b |textjust|;.X.work|
|00001a70| 5f 61 6e 67 6c 65 20 20 | 20 20 3d 20 63 75 72 5f |_angle | = cur_|
|00001a80| 65 6c 6c 74 65 78 74 61 | 6e 67 6c 65 3b 0a 58 09 |elltexta|ngle;.X.|
|00001a90| 69 66 20 28 77 6f 72 6b | 5f 61 6e 67 6c 65 20 3c |if (work|_angle <|
|00001aa0| 20 30 2e 30 29 0a 58 09 | 09 77 6f 72 6b 5f 61 6e | 0.0).X.|.work_an|
|00001ab0| 67 6c 65 20 2b 3d 20 33 | 36 30 2e 30 3b 0a 58 0a |gle += 3|60.0;.X.|
|00001ac0| 58 09 2f 2a 20 6c 6f 61 | 64 20 74 68 65 20 58 20 |X./* loa|d the X |
|00001ad0| 66 6f 6e 74 20 61 6e 64 | 20 67 65 74 20 69 74 73 |font and| get its|
|00001ae0| 20 69 64 20 66 6f 72 20 | 74 68 69 73 20 66 6f 6e | id for |this fon|
|00001af0| 74 2c 20 73 69 7a 65 20 | 61 6e 64 20 61 6e 67 6c |t, size |and angl|
|00001b00| 65 20 55 4e 5a 4f 4f 4d | 45 44 20 2a 2f 0a 58 09 |e UNZOOM|ED */.X.|
|00001b10| 2f 2a 20 74 68 69 73 20 | 69 73 20 74 6f 20 67 65 |/* this |is to ge|
|00001b20| 74 20 77 69 64 74 68 73 | 20 65 74 63 20 66 6f 72 |t widths| etc for|
|00001b30| 20 74 68 65 20 75 6e 7a | 6f 6f 6d 65 64 20 63 68 | the unz|oomed ch|
|00001b40| 61 72 73 20 2a 2f 0a 58 | 09 63 61 6e 76 61 73 5f |ars */.X|.canvas_|
|00001b50| 66 6f 6e 74 20 3d 20 6c | 6f 6f 6b 66 6f 6e 74 28 |font = l|ookfont(|
|00001b60| 78 5f 66 6f 6e 74 6e 75 | 6d 28 77 6f 72 6b 5f 70 |x_fontnu|m(work_p|
|00001b70| 73 66 6c 61 67 2c 20 77 | 6f 72 6b 5f 66 6f 6e 74 |sflag, w|ork_font|
|00001b80| 29 2c 20 0a 58 09 09 09 | 20 20 20 77 6f 72 6b 5f |), .X...| work_|
|00001b90| 66 6f 6e 74 73 69 7a 65 | 2c 20 77 6f 72 6b 5f 61 |fontsize|, work_a|
|00001ba0| 6e 67 6c 65 2a 4d 5f 50 | 49 2f 31 38 30 2e 30 29 |ngle*M_P|I/180.0)|
|00001bb0| 3b 0a 58 09 2f 2a 20 67 | 65 74 20 74 68 65 20 5a |;.X./* g|et the Z|
|00001bc0| 4f 4f 4d 45 44 20 66 6f | 6e 74 20 66 6f 72 20 61 |OOMED fo|nt for a|
|00001bd0| 63 74 75 61 6c 6c 79 20 | 64 72 61 77 69 6e 67 20 |ctually |drawing |
|00001be0| 6f 6e 20 74 68 65 20 63 | 61 6e 76 61 73 20 2a 2f |on the c|anvas */|
|00001bf0| 0a 58 09 63 61 6e 76 61 | 73 5f 7a 6f 6f 6d 65 64 |.X.canva|s_zoomed|
|00001c00| 5f 66 6f 6e 74 20 3d 20 | 6c 6f 6f 6b 66 6f 6e 74 |_font = |lookfont|
|00001c10| 28 78 5f 66 6f 6e 74 6e | 75 6d 28 77 6f 72 6b 5f |(x_fontn|um(work_|
|00001c20| 70 73 66 6c 61 67 2c 20 | 77 6f 72 6b 5f 66 6f 6e |psflag, |work_fon|
|00001c30| 74 29 2c 20 0a 58 09 09 | 09 20 20 20 72 6f 75 6e |t), .X..|. roun|
|00001c40| 64 28 77 6f 72 6b 5f 66 | 6f 6e 74 73 69 7a 65 2a |d(work_f|ontsize*|
|00001c50| 7a 6f 6f 6d 73 63 61 6c | 65 29 2c 20 77 6f 72 6b |zoomscal|e), work|
|00001c60| 5f 61 6e 67 6c 65 2a 4d | 5f 50 49 2f 31 38 30 2e |_angle*M|_PI/180.|
|00001c70| 30 29 3b 0a 58 09 2f 2a | 20 73 61 76 65 20 74 68 |0);.X./*| save th|
|00001c80| 65 20 77 6f 72 6b 69 6e | 67 20 66 6f 6e 74 20 73 |e workin|g font s|
|00001c90| 74 72 75 63 74 75 72 65 | 20 2a 2f 0a 58 09 77 6f |tructure| */.X.wo|
|00001ca0| 72 6b 5f 66 6f 6e 74 73 | 74 72 75 63 74 20 3d 20 |rk_fonts|truct = |
|00001cb0| 63 61 6e 76 61 73 5f 7a | 6f 6f 6d 65 64 5f 66 6f |canvas_z|oomed_fo|
|00001cc0| 6e 74 3b 0a 58 20 20 20 | 20 7d 20 65 6c 73 65 20 |nt;.X | } else |
|00001cd0| 7b 09 09 09 2f 2a 20 63 | 6c 69 63 6b 65 64 20 6f |{.../* c|licked o|
|00001ce0| 6e 20 65 78 69 73 74 69 | 6e 67 20 74 65 78 74 20 |n existi|ng text |
|00001cf0| 2a 2f 0a 58 09 69 66 20 | 28 68 69 64 64 65 6e 5f |*/.X.if |(hidden_|
|00001d00| 74 65 78 74 28 63 75 72 | 5f 74 29 29 20 7b 0a 58 |text(cur|_t)) {.X|
|00001d10| 09 20 20 20 20 70 75 74 | 5f 6d 73 67 28 22 43 61 |. put|_msg("Ca|
|00001d20| 6e 27 74 20 65 64 69 74 | 20 68 69 64 64 65 6e 20 |n't edit| hidden |
|00001d30| 74 65 78 74 22 29 3b 0a | 58 09 20 20 20 20 72 65 |text");.|X. re|
|00001d40| 73 65 74 5f 61 63 74 69 | 6f 6e 5f 6f 6e 28 29 3b |set_acti|on_on();|
|00001d50| 0a 58 09 20 20 20 20 74 | 65 78 74 5f 64 72 61 77 |.X. t|ext_draw|
|00001d60| 69 6e 67 5f 73 65 6c 65 | 63 74 65 64 28 29 3b 0a |ing_sele|cted();.|
|00001d70| 58 09 20 20 20 20 72 65 | 74 75 72 6e 3b 0a 58 09 |X. re|turn;.X.|
|00001d80| 7d 0a 58 09 2f 2a 20 75 | 70 64 61 74 65 20 74 68 |}.X./* u|pdate th|
|00001d90| 65 20 77 6f 72 6b 69 6e | 67 20 74 65 78 74 20 70 |e workin|g text p|
|00001da0| 61 72 61 6d 65 74 65 72 | 73 20 2a 2f 0a 58 09 77 |arameter|s */.X.w|
|00001db0| 6f 72 6b 5f 66 6f 6e 74 | 20 3d 20 63 75 72 5f 74 |ork_font| = cur_t|
|00001dc0| 2d 3e 66 6f 6e 74 3b 0a | 58 09 77 6f 72 6b 5f 66 |->font;.|X.work_f|
|00001dd0| 6f 6e 74 73 74 72 75 63 | 74 20 3d 20 63 61 6e 76 |ontstruc|t = canv|
|00001de0| 61 73 5f 7a 6f 6f 6d 65 | 64 5f 66 6f 6e 74 20 3d |as_zoome|d_font =|
|00001df0| 20 63 75 72 5f 74 2d 3e | 66 6f 6e 74 73 74 72 75 | cur_t->|fontstru|
|00001e00| 63 74 3b 0a 58 09 77 6f | 72 6b 5f 66 6f 6e 74 73 |ct;.X.wo|rk_fonts|
|00001e10| 69 7a 65 20 3d 20 63 75 | 72 5f 74 2d 3e 73 69 7a |ize = cu|r_t->siz|
|00001e20| 65 3b 0a 58 09 77 6f 72 | 6b 5f 70 73 66 6c 61 67 |e;.X.wor|k_psflag|
|00001e30| 20 20 20 3d 20 63 75 72 | 5f 74 2d 3e 66 6c 61 67 | = cur|_t->flag|
|00001e40| 73 3b 0a 58 09 77 6f 72 | 6b 5f 74 65 78 74 6a 75 |s;.X.wor|k_textju|
|00001e50| 73 74 20 3d 20 63 75 72 | 5f 74 2d 3e 74 79 70 65 |st = cur|_t->type|
|00001e60| 3b 0a 58 09 77 6f 72 6b | 5f 61 6e 67 6c 65 20 20 |;.X.work|_angle |
|00001e70| 20 20 3d 20 63 75 72 5f | 74 2d 3e 61 6e 67 6c 65 | = cur_|t->angle|
|00001e80| 2a 31 38 30 2e 30 2f 4d | 5f 50 49 3b 0a 58 09 69 |*180.0/M|_PI;.X.i|
|00001e90| 66 20 28 77 6f 72 6b 5f | 61 6e 67 6c 65 20 3c 20 |f (work_|angle < |
|00001ea0| 30 2e 30 29 0a 58 09 09 | 77 6f 72 6b 5f 61 6e 67 |0.0).X..|work_ang|
|00001eb0| 6c 65 20 2b 3d 20 33 36 | 30 2e 30 3b 0a 58 09 2f |le += 36|0.0;.X./|
|00001ec0| 2a 20 6c 6f 61 64 20 74 | 68 65 20 58 20 66 6f 6e |* load t|he X fon|
|00001ed0| 74 20 61 6e 64 20 67 65 | 74 20 69 74 73 20 69 64 |t and ge|t its id|
|00001ee0| 20 66 6f 72 20 74 68 69 | 73 20 66 6f 6e 74 2c 20 | for thi|s font, |
|00001ef0| 73 69 7a 65 20 61 6e 64 | 20 61 6e 67 6c 65 20 55 |size and| angle U|
|00001f00| 4e 5a 4f 4f 4d 45 44 20 | 2a 2f 0a 58 09 2f 2a 20 |NZOOMED |*/.X./* |
|00001f10| 74 68 69 73 20 69 73 20 | 74 6f 20 67 65 74 20 77 |this is |to get w|
|00001f20| 69 64 74 68 73 20 65 74 | 63 20 66 6f 72 20 74 68 |idths et|c for th|
|00001f30| 65 20 75 6e 7a 6f 6f 6d | 65 64 20 63 68 61 72 73 |e unzoom|ed chars|
|00001f40| 20 2a 2f 0a 58 09 63 61 | 6e 76 61 73 5f 66 6f 6e | */.X.ca|nvas_fon|
|00001f50| 74 20 3d 20 6c 6f 6f 6b | 66 6f 6e 74 28 78 5f 66 |t = look|font(x_f|
|00001f60| 6f 6e 74 6e 75 6d 28 77 | 6f 72 6b 5f 70 73 66 6c |ontnum(w|ork_psfl|
|00001f70| 61 67 2c 20 77 6f 72 6b | 5f 66 6f 6e 74 29 2c 20 |ag, work|_font), |
|00001f80| 0a 58 09 09 09 20 20 20 | 77 6f 72 6b 5f 66 6f 6e |.X... |work_fon|
|00001f90| 74 73 69 7a 65 2c 20 77 | 6f 72 6b 5f 61 6e 67 6c |tsize, w|ork_angl|
|00001fa0| 65 2a 4d 5f 50 49 2f 31 | 38 30 2e 30 29 3b 0a 58 |e*M_PI/1|80.0);.X|
|00001fb0| 0a 58 09 74 6f 67 67 6c | 65 5f 74 65 78 74 6d 61 |.X.toggl|e_textma|
|00001fc0| 72 6b 65 72 28 63 75 72 | 5f 74 29 3b 0a 58 09 64 |rker(cur|_t);.X.d|
|00001fd0| 72 61 77 5f 74 65 78 74 | 28 63 75 72 5f 74 2c 20 |raw_text|(cur_t, |
|00001fe0| 45 52 41 53 45 29 3b 0a | 58 09 62 61 73 65 5f 78 |ERASE);.|X.base_x|
|00001ff0| 20 3d 20 63 75 72 5f 74 | 2d 3e 62 61 73 65 5f 78 | = cur_t|->base_x|
|00002000| 3b 0a 58 09 62 61 73 65 | 5f 79 20 3d 20 63 75 72 |;.X.base|_y = cur|
|00002010| 5f 74 2d 3e 62 61 73 65 | 5f 79 3b 0a 58 09 6c 65 |_t->base|_y;.X.le|
|00002020| 6e 67 74 68 20 3d 20 63 | 75 72 5f 74 2d 3e 6c 65 |ngth = c|ur_t->le|
|00002030| 6e 67 74 68 3b 0a 58 09 | 73 77 69 74 63 68 20 28 |ngth;.X.|switch (|
|00002040| 63 75 72 5f 74 2d 3e 74 | 79 70 65 29 20 7b 0a 58 |cur_t->t|ype) {.X|
|00002050| 09 63 61 73 65 20 54 5f | 43 45 4e 54 45 52 5f 4a |.case T_|CENTER_J|
|00002060| 55 53 54 49 46 49 45 44 | 3a 0a 58 09 20 20 20 20 |USTIFIED|:.X. |
|00002070| 69 66 20 28 77 6f 72 6b | 5f 61 6e 67 6c 65 20 3c |if (work|_angle <|
|00002080| 20 39 30 2e 30 20 2d 20 | 30 2e 30 30 31 29 20 0a | 90.0 - |0.001) .|
|00002090| 58 09 09 62 61 73 65 5f | 78 20 2d 3d 20 6c 65 6e |X..base_|x -= len|
|000020a0| 67 74 68 20 2f 20 32 3b | 0a 58 09 20 20 20 20 65 |gth / 2;|.X. e|
|000020b0| 6c 73 65 20 69 66 20 28 | 77 6f 72 6b 5f 61 6e 67 |lse if (|work_ang|
|000020c0| 6c 65 20 3c 20 31 38 30 | 2e 30 20 2d 20 30 2e 30 |le < 180|.0 - 0.0|
|000020d0| 30 31 29 0a 58 09 09 62 | 61 73 65 5f 79 20 2b 3d |01).X..b|ase_y +=|
|000020e0| 20 6c 65 6e 67 74 68 20 | 2f 20 32 3b 0a 58 09 20 | length |/ 2;.X. |
|000020f0| 20 20 20 65 6c 73 65 20 | 69 66 20 28 77 6f 72 6b | else |if (work|
|00002100| 5f 61 6e 67 6c 65 20 3c | 20 32 37 30 2e 30 20 2d |_angle <| 270.0 -|
|00002110| 20 30 2e 30 30 31 29 0a | 58 09 09 62 61 73 65 5f | 0.001).|X..base_|
|00002120| 78 20 2b 3d 20 6c 65 6e | 67 74 68 20 2f 20 32 3b |x += len|gth / 2;|
|00002130| 0a 58 09 20 20 20 20 65 | 6c 73 65 0a 58 09 09 62 |.X. e|lse.X..b|
|00002140| 61 73 65 5f 79 20 2d 3d | 20 6c 65 6e 67 74 68 20 |ase_y -=| length |
|00002150| 2f 20 32 3b 0a 58 09 20 | 20 20 20 62 72 65 61 6b |/ 2;.X. | break|
|00002160| 3b 0a 58 0a 58 09 63 61 | 73 65 20 54 5f 52 49 47 |;.X.X.ca|se T_RIG|
|00002170| 48 54 5f 4a 55 53 54 49 | 46 49 45 44 3a 0a 58 09 |HT_JUSTI|FIED:.X.|
|00002180| 20 20 20 20 69 66 20 28 | 77 6f 72 6b 5f 61 6e 67 | if (|work_ang|
|00002190| 6c 65 20 3c 20 39 30 2e | 30 20 2d 20 30 2e 30 30 |le < 90.|0 - 0.00|
|000021a0| 31 29 20 0a 58 09 09 62 | 61 73 65 5f 78 20 2d 3d |1) .X..b|ase_x -=|
|000021b0| 20 6c 65 6e 67 74 68 3b | 0a 58 09 20 20 20 20 65 | length;|.X. e|
|000021c0| 6c 73 65 20 69 66 20 28 | 77 6f 72 6b 5f 61 6e 67 |lse if (|work_ang|
|000021d0| 6c 65 20 3c 20 31 38 30 | 2e 30 20 2d 20 30 2e 30 |le < 180|.0 - 0.0|
|000021e0| 30 31 29 0a 58 09 09 62 | 61 73 65 5f 79 20 2b 3d |01).X..b|ase_y +=|
|000021f0| 20 6c 65 6e 67 74 68 3b | 0a 58 09 20 20 20 20 65 | length;|.X. e|
|00002200| 6c 73 65 20 69 66 20 28 | 77 6f 72 6b 5f 61 6e 67 |lse if (|work_ang|
|00002210| 6c 65 20 3c 20 32 37 30 | 2e 30 20 2d 20 30 2e 30 |le < 270|.0 - 0.0|
|00002220| 30 31 29 0a 58 09 09 62 | 61 73 65 5f 78 20 2b 3d |01).X..b|ase_x +=|
|00002230| 20 6c 65 6e 67 74 68 3b | 0a 58 09 20 20 20 20 65 | length;|.X. e|
|00002240| 6c 73 65 0a 58 09 09 62 | 61 73 65 5f 79 20 2d 3d |lse.X..b|ase_y -=|
|00002250| 20 6c 65 6e 67 74 68 3b | 0a 58 09 20 20 20 20 62 | length;|.X. b|
|00002260| 72 65 61 6b 3b 0a 58 09 | 7d 20 2f 2a 20 73 77 69 |reak;.X.|} /* swi|
|00002270| 74 63 68 20 2a 2f 0a 58 | 09 69 66 20 28 77 6f 72 |tch */.X|.if (wor|
|00002280| 6b 5f 61 6e 67 6c 65 20 | 3c 20 39 30 2e 30 20 2d |k_angle |< 90.0 -|
|00002290| 20 30 2e 30 30 31 20 7c | 7c 20 28 77 6f 72 6b 5f | 0.001 ||| (work_|
|000022a0| 61 6e 67 6c 65 20 3e 3d | 20 31 38 30 2e 30 20 2d |angle >=| 180.0 -|
|000022b0| 20 30 2e 30 30 31 20 0a | 58 09 20 20 20 20 26 26 | 0.001 .|X. &&|
|000022c0| 20 77 6f 72 6b 5f 61 6e | 67 6c 65 20 3c 20 32 37 | work_an|gle < 27|
|000022d0| 30 2e 30 20 2d 20 30 2e | 30 30 31 29 29 0a 58 09 |0.0 - 0.|001)).X.|
|000022e0| 09 64 20 3d 20 61 62 73 | 28 63 75 72 5f 78 20 2d |.d = abs|(cur_x -|
|000022f0| 20 62 61 73 65 5f 78 29 | 3b 0a 58 09 65 6c 73 65 | base_x)|;.X.else|
|00002300| 0a 58 09 09 64 20 3d 20 | 61 62 73 28 63 75 72 5f |.X..d = |abs(cur_|
|00002310| 79 20 2d 20 62 61 73 65 | 5f 79 29 3b 0a 58 09 6c |y - base|_y);.X.l|
|00002320| 65 6e 67 5f 73 75 66 66 | 69 78 20 3d 20 73 74 72 |eng_suff|ix = str|
|00002330| 6c 65 6e 28 63 75 72 5f | 74 2d 3e 63 73 74 72 69 |len(cur_|t->cstri|
|00002340| 6e 67 29 3b 0a 58 09 2f | 2a 20 6c 65 6e 67 5f 70 |ng);.X./|* leng_p|
|00002350| 72 65 66 69 78 20 69 73 | 20 23 20 6f 66 20 63 68 |refix is| # of ch|
|00002360| 61 72 20 69 6e 20 74 68 | 65 20 74 65 78 74 20 62 |ar in th|e text b|
|00002370| 65 66 6f 72 65 20 74 68 | 65 20 63 75 72 73 6f 72 |efore th|e cursor|
|00002380| 20 2a 2f 0a 58 09 6c 65 | 6e 67 5f 70 72 65 66 69 | */.X.le|ng_prefi|
|00002390| 78 20 3d 20 70 72 65 66 | 69 78 5f 6c 65 6e 67 74 |x = pref|ix_lengt|
|000023a0| 68 28 63 75 72 5f 74 2d | 3e 63 73 74 72 69 6e 67 |h(cur_t-|>cstring|
|000023b0| 2c 20 64 29 3b 0a 58 09 | 6c 65 6e 67 5f 73 75 66 |, d);.X.|leng_suf|
|000023c0| 66 69 78 20 2d 3d 20 6c | 65 6e 67 5f 70 72 65 66 |fix -= l|eng_pref|
|000023d0| 69 78 3b 0a 58 09 63 70 | 79 5f 6e 5f 63 68 61 72 |ix;.X.cp|y_n_char|
|000023e0| 28 70 72 65 66 69 78 2c | 20 63 75 72 5f 74 2d 3e |(prefix,| cur_t->|
|000023f0| 63 73 74 72 69 6e 67 2c | 20 6c 65 6e 67 5f 70 72 |cstring,| leng_pr|
|00002400| 65 66 69 78 29 3b 0a 58 | 09 73 74 72 63 70 79 28 |efix);.X|.strcpy(|
|00002410| 73 75 66 66 69 78 2c 20 | 26 63 75 72 5f 74 2d 3e |suffix, |&cur_t->|
|00002420| 63 73 74 72 69 6e 67 5b | 6c 65 6e 67 5f 70 72 65 |cstring[|leng_pre|
|00002430| 66 69 78 5d 29 3b 0a 58 | 09 74 73 69 7a 65 20 3d |fix]);.X|.tsize =|
|00002440| 20 70 66 5f 74 65 78 74 | 77 69 64 74 68 28 63 61 | pf_text|width(ca|
|00002450| 6e 76 61 73 5f 66 6f 6e | 74 2c 20 6c 65 6e 67 5f |nvas_fon|t, leng_|
|00002460| 70 72 65 66 69 78 2c 20 | 70 72 65 66 69 78 29 3b |prefix, |prefix);|
|00002470| 0a 58 0a 58 09 69 66 20 | 28 77 6f 72 6b 5f 61 6e |.X.X.if |(work_an|
|00002480| 67 6c 65 20 3c 20 39 30 | 2e 30 20 2d 20 30 2e 30 |gle < 90|.0 - 0.0|
|00002490| 30 31 29 20 7b 0a 58 09 | 20 20 20 20 63 75 72 5f |01) {.X.| cur_|
|000024a0| 78 20 3d 20 62 61 73 65 | 5f 78 20 2b 20 74 73 69 |x = base|_x + tsi|
|000024b0| 7a 65 2e 78 3b 0a 58 09 | 20 20 20 20 63 75 72 5f |ze.x;.X.| cur_|
|000024c0| 79 20 3d 20 62 61 73 65 | 5f 79 3b 0a 58 09 7d 20 |y = base|_y;.X.} |
|000024d0| 65 6c 73 65 20 69 66 20 | 28 77 6f 72 6b 5f 61 6e |else if |(work_an|
|000024e0| 67 6c 65 20 3c 20 31 38 | 30 2e 30 20 2d 20 30 2e |gle < 18|0.0 - 0.|
|000024f0| 30 30 31 29 20 7b 0a 58 | 09 20 20 20 20 63 75 72 |001) {.X|. cur|
|00002500| 5f 78 20 3d 20 62 61 73 | 65 5f 78 3b 0a 58 09 20 |_x = bas|e_x;.X. |
|00002510| 20 20 20 63 75 72 5f 79 | 20 3d 20 62 61 73 65 5f | cur_y| = base_|
|00002520| 79 20 2d 20 74 73 69 7a | 65 2e 78 3b 0a 58 09 7d |y - tsiz|e.x;.X.}|
|00002530| 20 65 6c 73 65 20 69 66 | 20 28 77 6f 72 6b 5f 61 | else if| (work_a|
|00002540| 6e 67 6c 65 20 3c 20 32 | 37 30 2e 30 20 2d 20 30 |ngle < 2|70.0 - 0|
|00002550| 2e 30 30 31 29 20 7b 0a | 58 09 20 20 20 20 63 75 |.001) {.|X. cu|
|00002560| 72 5f 78 20 3d 20 62 61 | 73 65 5f 78 20 2d 20 74 |r_x = ba|se_x - t|
|00002570| 73 69 7a 65 2e 78 3b 0a | 58 09 20 20 20 20 63 75 |size.x;.|X. cu|
|00002580| 72 5f 79 20 3d 20 62 61 | 73 65 5f 79 3b 0a 58 09 |r_y = ba|se_y;.X.|
|00002590| 7d 20 65 6c 73 65 20 7b | 0a 58 09 20 20 20 20 63 |} else {|.X. c|
|000025a0| 75 72 5f 78 20 3d 20 62 | 61 73 65 5f 78 3b 0a 58 |ur_x = b|ase_x;.X|
|000025b0| 09 20 20 20 20 63 75 72 | 5f 79 20 3d 20 62 61 73 |. cur|_y = bas|
|000025c0| 65 5f 79 20 2b 20 74 73 | 69 7a 65 2e 78 3b 0a 58 |e_y + ts|ize.x;.X|
|000025d0| 09 7d 0a 58 20 20 20 20 | 7d 0a 58 20 20 20 20 63 |.}.X |}.X c|
|000025e0| 68 61 72 5f 68 74 20 3d | 20 72 6f 74 5f 63 68 61 |har_ht =| rot_cha|
|000025f0| 72 5f 68 65 69 67 68 74 | 28 63 61 6e 76 61 73 5f |r_height|(canvas_|
|00002600| 66 6f 6e 74 29 3b 0a 58 | 20 20 20 20 69 6e 69 74 |font);.X| init|
|00002610| 69 61 6c 69 7a 65 5f 63 | 68 61 72 5f 68 61 6e 64 |ialize_c|har_hand|
|00002620| 6c 65 72 28 63 61 6e 76 | 61 73 5f 77 69 6e 2c 20 |ler(canv|as_win, |
|00002630| 66 69 6e 69 73 68 5f 74 | 65 78 74 5f 69 6e 70 75 |finish_t|ext_inpu|
|00002640| 74 2c 0a 58 09 09 09 20 | 20 20 20 62 61 73 65 5f |t,.X... | base_|
|00002650| 78 2c 20 62 61 73 65 5f | 79 29 3b 0a 58 20 20 20 |x, base_|y);.X |
|00002660| 20 64 72 61 77 5f 63 68 | 61 72 5f 73 74 72 69 6e | draw_ch|ar_strin|
|00002670| 67 28 29 3b 0a 58 7d 0a | 58 0a 58 73 74 61 74 69 |g();.X}.|X.Xstati|
|00002680| 63 0a 58 46 5f 74 65 78 | 74 09 20 20 20 20 20 20 |c.XF_tex|t. |
|00002690| 20 2a 0a 58 6e 65 77 5f | 74 65 78 74 28 29 0a 58 | *.Xnew_|text().X|
|000026a0| 7b 0a 58 20 20 20 20 46 | 5f 74 65 78 74 09 20 20 |{.X F|_text. |
|000026b0| 20 2a 74 65 78 74 3b 0a | 58 20 20 20 20 50 52 5f | *text;.|X PR_|
|000026c0| 53 49 5a 45 09 20 20 20 | 20 73 69 7a 65 3b 0a 58 |SIZE. | size;.X|
|000026d0| 0a 58 20 20 20 20 69 66 | 20 28 28 74 65 78 74 20 |.X if| ((text |
|000026e0| 3d 20 63 72 65 61 74 65 | 5f 74 65 78 74 28 29 29 |= create|_text())|
|000026f0| 20 3d 3d 20 4e 55 4c 4c | 29 0a 58 09 72 65 74 75 | == NULL|).X.retu|
|00002700| 72 6e 20 28 4e 55 4c 4c | 29 3b 0a 58 0a 58 20 20 |rn (NULL|);.X.X |
|00002710| 20 20 69 66 20 28 28 74 | 65 78 74 2d 3e 63 73 74 | if ((t|ext->cst|
|00002720| 72 69 6e 67 20 3d 20 6e | 65 77 5f 73 74 72 69 6e |ring = n|ew_strin|
|00002730| 67 28 6c 65 6e 67 5f 70 | 72 65 66 69 78 20 2b 20 |g(leng_p|refix + |
|00002740| 31 29 29 20 3d 3d 20 4e | 55 4c 4c 29 20 7b 0a 58 |1)) == N|ULL) {.X|
|00002750| 09 66 72 65 65 28 28 63 | 68 61 72 20 2a 29 20 74 |.free((c|har *) t|
|00002760| 65 78 74 29 3b 0a 58 09 | 72 65 74 75 72 6e 20 28 |ext);.X.|return (|
|00002770| 4e 55 4c 4c 29 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |NULL);.X| }.X |
|00002780| 20 20 20 74 65 78 74 2d | 3e 74 79 70 65 20 3d 20 | text-|>type = |
|00002790| 77 6f 72 6b 5f 74 65 78 | 74 6a 75 73 74 3b 0a 58 |work_tex|tjust;.X|
|000027a0| 20 20 20 20 74 65 78 74 | 2d 3e 66 6f 6e 74 20 3d | text|->font =|
|000027b0| 20 77 6f 72 6b 5f 66 6f | 6e 74 3b 09 2f 2a 20 70 | work_fo|nt;./* p|
|000027c0| 75 74 20 69 6e 20 63 75 | 72 72 65 6e 74 20 66 6f |ut in cu|rrent fo|
|000027d0| 6e 74 20 6e 75 6d 62 65 | 72 20 2a 2f 0a 58 20 20 |nt numbe|r */.X |
|000027e0| 20 20 74 65 78 74 2d 3e | 66 6f 6e 74 73 74 72 75 | text->|fontstru|
|000027f0| 63 74 20 3d 20 77 6f 72 | 6b 5f 66 6f 6e 74 73 74 |ct = wor|k_fontst|
|00002800| 72 75 63 74 3b 0a 58 20 | 20 20 20 74 65 78 74 2d |ruct;.X | text-|
|00002810| 3e 73 69 7a 65 20 3d 20 | 77 6f 72 6b 5f 66 6f 6e |>size = |work_fon|
|00002820| 74 73 69 7a 65 3b 0a 58 | 20 20 20 20 74 65 78 74 |tsize;.X| text|
|00002830| 2d 3e 61 6e 67 6c 65 20 | 3d 20 77 6f 72 6b 5f 61 |->angle |= work_a|
|00002840| 6e 67 6c 65 2f 31 38 30 | 2e 30 2a 4d 5f 50 49 3b |ngle/180|.0*M_PI;|
|00002850| 09 2f 2a 20 63 6f 6e 76 | 65 72 74 20 74 6f 20 72 |./* conv|ert to r|
|00002860| 61 64 69 61 6e 73 20 2a | 2f 0a 58 20 20 20 20 74 |adians *|/.X t|
|00002870| 65 78 74 2d 3e 66 6c 61 | 67 73 20 3d 20 63 75 72 |ext->fla|gs = cur|
|00002880| 5f 74 65 78 74 66 6c 61 | 67 73 3b 0a 58 20 20 20 |_textfla|gs;.X |
|00002890| 20 74 65 78 74 2d 3e 63 | 6f 6c 6f 72 20 3d 20 63 | text->c|olor = c|
|000028a0| 75 72 5f 63 6f 6c 6f 72 | 3b 0a 58 20 20 20 20 74 |ur_color|;.X t|
|000028b0| 65 78 74 2d 3e 64 65 70 | 74 68 20 3d 20 63 75 72 |ext->dep|th = cur|
|000028c0| 5f 64 65 70 74 68 3b 0a | 58 20 20 20 20 74 65 78 |_depth;.|X tex|
|000028d0| 74 2d 3e 70 65 6e 20 3d | 20 30 3b 0a 58 20 20 20 |t->pen =| 0;.X |
|000028e0| 20 73 69 7a 65 20 3d 20 | 70 66 5f 74 65 78 74 77 | size = |pf_textw|
|000028f0| 69 64 74 68 28 63 61 6e | 76 61 73 5f 66 6f 6e 74 |idth(can|vas_font|
|00002900| 2c 20 6c 65 6e 67 5f 70 | 72 65 66 69 78 2c 20 70 |, leng_p|refix, p|
|00002910| 72 65 66 69 78 29 3b 0a | 58 20 20 20 20 74 65 78 |refix);.|X tex|
|00002920| 74 2d 3e 6c 65 6e 67 74 | 68 20 3d 20 73 69 7a 65 |t->lengt|h = size|
|00002930| 2e 78 3b 09 2f 2a 20 69 | 6e 20 70 69 78 65 6c 73 |.x;./* i|n pixels|
|00002940| 20 2a 2f 0a 58 20 20 20 | 20 74 65 78 74 2d 3e 68 | */.X | text->h|
|00002950| 65 69 67 68 74 20 3d 20 | 73 69 7a 65 2e 79 3b 09 |eight = |size.y;.|
|00002960| 2f 2a 20 69 6e 20 70 69 | 78 65 6c 73 20 2a 2f 0a |/* in pi|xels */.|
|00002970| 58 20 20 20 20 74 65 78 | 74 2d 3e 62 61 73 65 5f |X tex|t->base_|
|00002980| 78 20 3d 20 62 61 73 65 | 5f 78 3b 0a 58 20 20 20 |x = base|_x;.X |
|00002990| 20 74 65 78 74 2d 3e 62 | 61 73 65 5f 79 20 3d 20 | text->b|ase_y = |
|000029a0| 62 61 73 65 5f 79 3b 0a | 58 20 20 20 20 73 74 72 |base_y;.|X str|
|000029b0| 63 70 79 28 74 65 78 74 | 2d 3e 63 73 74 72 69 6e |cpy(text|->cstrin|
|000029c0| 67 2c 20 70 72 65 66 69 | 78 29 3b 0a 58 20 20 20 |g, prefi|x);.X |
|000029d0| 20 74 65 78 74 2d 3e 6e | 65 78 74 20 3d 20 4e 55 | text->n|ext = NU|
|000029e0| 4c 4c 3b 0a 58 20 20 20 | 20 72 65 74 75 72 6e 20 |LL;.X | return |
|000029f0| 28 74 65 78 74 29 3b 0a | 58 7d 0a 58 0a 58 73 74 |(text);.|X}.X.Xst|
|00002a00| 61 74 69 63 20 69 6e 74 | 0a 58 63 70 79 5f 6e 5f |atic int|.Xcpy_n_|
|00002a10| 63 68 61 72 28 64 73 74 | 2c 20 73 72 63 2c 20 6e |char(dst|, src, n|
|00002a20| 29 0a 58 20 20 20 20 63 | 68 61 72 09 20 20 20 2a |).X c|har. *|
|00002a30| 64 73 74 2c 20 2a 73 72 | 63 3b 0a 58 20 20 20 20 |dst, *sr|c;.X |
|00002a40| 69 6e 74 09 09 20 20 20 | 20 6e 3b 0a 58 7b 0a 58 |int.. | n;.X{.X|
|00002a50| 20 20 20 20 2f 2a 20 73 | 72 63 20 6d 75 73 74 20 | /* s|rc must |
|00002a60| 62 65 20 6c 6f 6e 67 65 | 72 20 74 68 61 6e 20 6e |be longe|r than n|
|00002a70| 20 63 68 61 72 73 20 2a | 2f 0a 58 0a 58 20 20 20 | chars *|/.X.X |
|00002a80| 20 77 68 69 6c 65 20 28 | 6e 2d 2d 29 0a 58 09 2a | while (|n--).X.*|
|00002a90| 64 73 74 2b 2b 20 3d 20 | 2a 73 72 63 2b 2b 3b 0a |dst++ = |*src++;.|
|00002aa0| 58 20 20 20 20 2a 64 73 | 74 20 3d 20 27 5c 30 27 |X *ds|t = '\0'|
|00002ab0| 3b 0a 58 7d 0a 58 0a 58 | 73 74 61 74 69 63 20 69 |;.X}.X.X|static i|
|00002ac0| 6e 74 0a 58 70 72 65 66 | 69 78 5f 6c 65 6e 67 74 |nt.Xpref|ix_lengt|
|00002ad0| 68 28 73 74 72 69 6e 67 | 2c 20 77 68 65 72 65 5f |h(string|, where_|
|00002ae0| 70 29 0a 58 20 20 20 20 | 63 68 61 72 09 20 20 20 |p).X |char. |
|00002af0| 2a 73 74 72 69 6e 67 3b | 0a 58 20 20 20 20 69 6e |*string;|.X in|
|00002b00| 74 09 09 20 20 20 20 77 | 68 65 72 65 5f 70 3b 0a |t.. w|here_p;.|
|00002b10| 58 7b 0a 58 20 20 20 20 | 2f 2a 20 63 20 73 74 61 |X{.X |/* c sta|
|00002b20| 6e 64 73 20 66 6f 72 20 | 63 68 61 72 61 63 74 65 |nds for |characte|
|00002b30| 72 20 75 6e 69 74 20 61 | 6e 64 20 70 20 66 6f 72 |r unit a|nd p for|
|00002b40| 20 70 69 78 65 6c 20 75 | 6e 69 74 20 2a 2f 0a 58 | pixel u|nit */.X|
|00002b50| 20 20 20 20 69 6e 74 09 | 09 20 20 20 20 6c 2c 20 | int.|. l, |
|00002b60| 6c 65 6e 5f 63 2c 20 6c | 65 6e 5f 70 3b 0a 58 20 |len_c, l|en_p;.X |
|00002b70| 20 20 20 69 6e 74 09 09 | 20 20 20 20 63 68 61 72 | int..| char|
|00002b80| 5f 77 69 64 2c 20 77 68 | 65 72 65 5f 63 3b 0a 58 |_wid, wh|ere_c;.X|
|00002b90| 20 20 20 20 50 52 5f 53 | 49 5a 45 09 20 20 20 20 | PR_S|IZE. |
|00002ba0| 73 69 7a 65 3b 0a 58 0a | 58 20 20 20 20 6c 65 6e |size;.X.|X len|
|00002bb0| 5f 63 20 3d 20 73 74 72 | 6c 65 6e 28 73 74 72 69 |_c = str|len(stri|
|00002bc0| 6e 67 29 3b 0a 58 20 20 | 20 20 73 69 7a 65 20 3d |ng);.X | size =|
|00002bd0| 20 70 66 5f 74 65 78 74 | 77 69 64 74 68 28 63 61 | pf_text|width(ca|
|00002be0| 6e 76 61 73 5f 66 6f 6e | 74 2c 20 6c 65 6e 5f 63 |nvas_fon|t, len_c|
|00002bf0| 2c 20 73 74 72 69 6e 67 | 29 3b 0a 58 20 20 20 20 |, string|);.X |
|00002c00| 6c 65 6e 5f 70 20 3d 20 | 73 69 7a 65 2e 78 3b 0a |len_p = |size.x;.|
|00002c10| 58 20 20 20 20 69 66 20 | 28 77 68 65 72 65 5f 70 |X if |(where_p|
|00002c20| 20 3e 3d 20 6c 65 6e 5f | 70 29 0a 58 09 72 65 74 | >= len_|p).X.ret|
|00002c30| 75 72 6e 20 28 6c 65 6e | 5f 63 29 3b 09 09 2f 2a |urn (len|_c);../*|
|00002c40| 20 65 6e 74 69 72 65 20 | 73 74 72 69 6e 67 20 69 | entire |string i|
|00002c50| 73 20 74 68 65 20 70 72 | 65 66 69 78 20 2a 2f 0a |s the pr|efix */.|
|00002c60| 58 0a 58 20 20 20 20 63 | 68 61 72 5f 77 69 64 20 |X.X c|har_wid |
|00002c70| 3d 20 72 6f 74 5f 63 68 | 61 72 5f 77 69 64 74 68 |= rot_ch|ar_width|
|00002c80| 28 63 61 6e 76 61 73 5f | 66 6f 6e 74 29 3b 0a 58 |(canvas_|font);.X|
|00002c90| 20 20 20 20 77 68 65 72 | 65 5f 63 20 3d 20 77 68 | wher|e_c = wh|
|00002ca0| 65 72 65 5f 70 20 2f 20 | 63 68 61 72 5f 77 69 64 |ere_p / |char_wid|
|00002cb0| 3b 09 2f 2a 20 65 73 74 | 69 6d 61 74 65 64 20 63 |;./* est|imated c|
|00002cc0| 68 61 72 20 70 6f 73 69 | 74 69 6f 6e 20 2a 2f 0a |har posi|tion */.|
|00002cd0| 58 20 20 20 20 73 69 7a | 65 20 3d 20 70 66 5f 74 |X siz|e = pf_t|
|00002ce0| 65 78 74 77 69 64 74 68 | 28 63 61 6e 76 61 73 5f |extwidth|(canvas_|
|00002cf0| 66 6f 6e 74 2c 20 77 68 | 65 72 65 5f 63 2c 20 73 |font, wh|ere_c, s|
|00002d00| 74 72 69 6e 67 29 3b 0a | 58 20 20 20 20 6c 20 3d |tring);.|X l =|
|00002d10| 20 73 69 7a 65 2e 78 3b | 09 09 09 2f 2a 20 61 63 | size.x;|.../* ac|
|00002d20| 74 75 61 6c 20 6c 65 6e | 67 74 68 20 28 70 69 78 |tual len|gth (pix|
|00002d30| 65 6c 73 29 20 6f 66 20 | 73 74 72 69 6e 67 20 6f |els) of |string o|
|00002d40| 66 0a 58 09 09 09 09 20 | 2a 20 77 68 65 72 65 5f |f.X.... |* where_|
|00002d50| 63 20 63 68 61 72 73 20 | 2a 2f 0a 58 20 20 20 20 |c chars |*/.X |
|00002d60| 69 66 20 28 6c 20 3c 20 | 77 68 65 72 65 5f 70 29 |if (l < |where_p)|
|00002d70| 20 7b 0a 58 09 64 6f 20 | 7b 09 09 09 2f 2a 20 61 | {.X.do |{.../* a|
|00002d80| 64 64 20 74 68 65 20 77 | 69 64 74 68 20 6f 66 20 |dd the w|idth of |
|00002d90| 6e 65 78 74 20 63 68 61 | 72 20 74 6f 20 6c 20 2a |next cha|r to l *|
|00002da0| 2f 0a 58 09 20 20 20 20 | 6c 20 2b 3d 20 28 63 68 |/.X. |l += (ch|
|00002db0| 61 72 5f 77 69 64 20 3d | 20 72 6f 74 5f 63 68 61 |ar_wid =| rot_cha|
|00002dc0| 72 5f 61 64 76 61 6e 63 | 65 28 63 61 6e 76 61 73 |r_advanc|e(canvas|
|00002dd0| 5f 66 6f 6e 74 2c 20 0a | 58 09 09 09 09 28 75 6e |_font, .|X....(un|
|00002de0| 73 69 67 6e 65 64 20 63 | 68 61 72 29 20 73 74 72 |signed c|har) str|
|00002df0| 69 6e 67 5b 77 68 65 72 | 65 5f 63 2b 2b 5d 29 29 |ing[wher|e_c++]))|
|00002e00| 3b 0a 58 09 7d 20 77 68 | 69 6c 65 20 28 6c 20 3c |;.X.} wh|ile (l <|
|00002e10| 20 77 68 65 72 65 5f 70 | 29 3b 0a 58 09 69 66 20 | where_p|);.X.if |
|00002e20| 28 6c 20 2d 20 28 63 68 | 61 72 5f 77 69 64 20 3e |(l - (ch|ar_wid >|
|00002e30| 3e 20 31 29 20 3e 3d 20 | 77 68 65 72 65 5f 70 29 |> 1) >= |where_p)|
|00002e40| 0a 58 09 20 20 20 20 77 | 68 65 72 65 5f 63 2d 2d |.X. w|here_c--|
|00002e50| 3b 0a 58 20 20 20 20 7d | 20 65 6c 73 65 20 69 66 |;.X }| else if|
|00002e60| 20 28 6c 20 3e 20 77 68 | 65 72 65 5f 70 29 20 7b | (l > wh|ere_p) {|
|00002e70| 0a 58 09 64 6f 20 7b 09 | 09 09 2f 2a 20 73 75 62 |.X.do {.|../* sub|
|00002e80| 74 72 61 63 74 20 74 68 | 65 20 77 69 64 74 68 20 |tract th|e width |
|00002e90| 6f 66 20 6c 61 73 74 20 | 63 68 61 72 20 66 72 6f |of last |char fro|
|00002ea0| 6d 20 6c 20 2a 2f 0a 58 | 09 20 20 20 20 6c 20 2d |m l */.X|. l -|
|00002eb0| 3d 20 28 63 68 61 72 5f | 77 69 64 20 3d 20 72 6f |= (char_|wid = ro|
|00002ec0| 74 5f 63 68 61 72 5f 61 | 64 76 61 6e 63 65 28 63 |t_char_a|dvance(c|
|00002ed0| 61 6e 76 61 73 5f 66 6f | 6e 74 2c 20 0a 58 09 09 |anvas_fo|nt, .X..|
|00002ee0| 09 09 28 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |..(unsig|ned char|
|00002ef0| 29 20 73 74 72 69 6e 67 | 5b 2d 2d 77 68 65 72 65 |) string|[--where|
|00002f00| 5f 63 5d 29 29 3b 0a 58 | 09 7d 20 77 68 69 6c 65 |_c]));.X|.} while|
|00002f10| 20 28 6c 20 3e 20 77 68 | 65 72 65 5f 70 29 3b 0a | (l > wh|ere_p);.|
|00002f20| 58 09 69 66 20 28 6c 20 | 2b 20 28 63 68 61 72 5f |X.if (l |+ (char_|
|00002f30| 77 69 64 20 3e 3e 20 31 | 29 20 3e 3d 20 77 68 65 |wid >> 1|) >= whe|
|00002f40| 72 65 5f 70 29 0a 58 09 | 20 20 20 20 77 68 65 72 |re_p).X.| wher|
|00002f50| 65 5f 63 2b 2b 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |e_c++;.X| }.X |
|00002f60| 20 20 20 69 66 20 28 77 | 68 65 72 65 5f 63 20 3c | if (w|here_c <|
|00002f70| 20 30 29 20 7b 0a 58 09 | 66 70 72 69 6e 74 66 28 | 0) {.X.|fprintf(|
|00002f80| 73 74 64 65 72 72 2c 20 | 22 78 66 69 67 20 66 69 |stderr, |"xfig fi|
|00002f90| 6c 65 20 25 73 20 6c 69 | 6e 65 20 25 64 3a 20 45 |le %s li|ne %d: E|
|00002fa0| 72 72 6f 72 20 69 6e 20 | 70 72 65 66 69 78 5f 6c |rror in |prefix_l|
|00002fb0| 65 6e 67 74 68 20 2d 20 | 61 64 6a 75 73 74 65 64 |ength - |adjusted|
|00002fc0| 5c 6e 22 2c 20 5f 5f 46 | 49 4c 45 5f 5f 2c 20 5f |\n", __F|ILE__, _|
|00002fd0| 5f 4c 49 4e 45 5f 5f 29 | 3b 0a 58 09 77 68 65 72 |_LINE__)|;.X.wher|
|00002fe0| 65 5f 63 20 3d 20 30 3b | 0a 58 20 20 20 20 7d 0a |e_c = 0;|.X }.|
|00002ff0| 58 20 20 20 20 72 65 74 | 75 72 6e 20 28 77 68 65 |X ret|urn (whe|
|00003000| 72 65 5f 63 29 3b 0a 58 | 7d 0a 58 0a 58 2f 2a 2a |re_c);.X|}.X.X/**|
|00003010| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003020| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003030| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003040| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003050| 2a 0a 58 0a 58 09 63 68 | 61 72 20 68 61 6e 64 6c |*.X.X.ch|ar handl|
|00003060| 69 6e 67 20 72 6f 75 74 | 69 6e 65 73 0a 58 0a 58 |ing rout|ines.X.X|
|00003070| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003080| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000030a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000030b0| 2a 2a 2a 2f 0a 58 0a 58 | 23 64 65 66 69 6e 65 09 |***/.X.X|#define.|
|000030c0| 09 09 42 4c 49 4e 4b 5f | 49 4e 54 45 52 56 41 4c |..BLINK_|INTERVAL|
|000030d0| 09 37 30 30 09 2f 2a 20 | 6d 69 6c 6c 69 73 65 63 |.700./* |millisec|
|000030e0| 6f 6e 64 73 20 62 6c 69 | 6e 6b 20 72 61 74 65 20 |onds bli|nk rate |
|000030f0| 2a 2f 0a 58 0a 58 73 74 | 61 74 69 63 20 57 69 6e |*/.X.Xst|atic Win|
|00003100| 64 6f 77 09 70 77 3b 0a | 58 73 74 61 74 69 63 20 |dow.pw;.|Xstatic |
|00003110| 69 6e 74 09 63 68 5f 68 | 65 69 67 68 74 3b 0a 58 |int.ch_h|eight;.X|
|00003120| 73 74 61 74 69 63 20 69 | 6e 74 09 63 62 61 73 65 |static i|nt.cbase|
|00003130| 5f 78 2c 20 63 62 61 73 | 65 5f 79 3b 0a 58 73 74 |_x, cbas|e_y;.Xst|
|00003140| 61 74 69 63 20 66 6c 6f | 61 74 09 72 62 61 73 65 |atic flo|at.rbase|
|00003150| 5f 78 2c 20 72 62 61 73 | 65 5f 79 2c 20 72 63 75 |_x, rbas|e_y, rcu|
|00003160| 72 5f 78 2c 20 72 63 75 | 72 5f 79 3b 0a 58 0a 58 |r_x, rcu|r_y;.X.X|
|00003170| 73 74 61 74 69 63 09 09 | 28 2a 63 72 5f 70 72 6f |static..|(*cr_pro|
|00003180| 63 29 20 28 29 3b 0a 58 | 0a 58 73 74 61 74 69 63 |c) ();.X|.Xstatic|
|00003190| 0a 58 64 72 61 77 5f 63 | 75 72 73 6f 72 28 78 2c |.Xdraw_c|ursor(x,|
|000031a0| 20 79 29 0a 58 20 20 20 | 20 69 6e 74 09 09 20 20 | y).X | int.. |
|000031b0| 20 20 78 2c 20 79 3b 0a | 58 7b 0a 58 20 20 20 20 | x, y;.|X{.X |
|000031c0| 69 66 20 28 77 6f 72 6b | 5f 61 6e 67 6c 65 20 3c |if (work|_angle <|
|000031d0| 20 39 30 2e 30 20 2d 20 | 30 2e 30 30 31 29 09 09 | 90.0 - |0.001)..|
|000031e0| 2f 2a 20 30 2d 38 39 20 | 64 65 67 72 65 65 73 20 |/* 0-89 |degrees |
|000031f0| 2a 2f 0a 58 09 20 20 20 | 20 70 77 5f 76 65 63 74 |*/.X. | pw_vect|
|00003200| 6f 72 28 70 77 2c 20 78 | 2c 20 79 2c 20 78 2c 20 |or(pw, x|, y, x, |
|00003210| 79 2d 63 68 5f 68 65 69 | 67 68 74 2c 20 49 4e 56 |y-ch_hei|ght, INV|
|00003220| 5f 50 41 49 4e 54 2c 20 | 31 2c 20 52 55 42 42 45 |_PAINT, |1, RUBBE|
|00003230| 52 5f 4c 49 4e 45 2c 20 | 30 2e 30 2c 0a 58 09 09 |R_LINE, |0.0,.X..|
|00003240| 44 45 46 41 55 4c 54 5f | 43 4f 4c 4f 52 29 3b 0a |DEFAULT_|COLOR);.|
|00003250| 58 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 77 6f |X els|e if (wo|
|00003260| 72 6b 5f 61 6e 67 6c 65 | 20 3c 20 31 38 30 2e 30 |rk_angle| < 180.0|
|00003270| 20 2d 20 30 2e 30 30 31 | 29 09 2f 2a 20 39 30 2d | - 0.001|)./* 90-|
|00003280| 31 37 39 20 64 65 67 72 | 65 65 73 20 2a 2f 0a 58 |179 degr|ees */.X|
|00003290| 09 20 20 20 20 70 77 5f | 76 65 63 74 6f 72 28 70 |. pw_|vector(p|
|000032a0| 77 2c 20 78 2d 63 68 5f | 68 65 69 67 68 74 2c 20 |w, x-ch_|height, |
|000032b0| 79 2c 20 78 2c 20 79 2c | 20 49 4e 56 5f 50 41 49 |y, x, y,| INV_PAI|
|000032c0| 4e 54 2c 20 31 2c 20 52 | 55 42 42 45 52 5f 4c 49 |NT, 1, R|UBBER_LI|
|000032d0| 4e 45 2c 20 30 2e 30 2c | 0a 58 09 09 44 45 46 41 |NE, 0.0,|.X..DEFA|
|000032e0| 55 4c 54 5f 43 4f 4c 4f | 52 29 3b 0a 58 20 20 20 |ULT_COLO|R);.X |
|000032f0| 20 65 6c 73 65 20 69 66 | 20 28 77 6f 72 6b 5f 61 | else if| (work_a|
|00003300| 6e 67 6c 65 20 3c 20 32 | 37 30 2e 30 20 2d 20 30 |ngle < 2|70.0 - 0|
|00003310| 2e 30 30 31 29 09 2f 2a | 20 31 38 30 2d 32 36 39 |.001)./*| 180-269|
|00003320| 20 64 65 67 72 65 65 73 | 20 2a 2f 0a 58 09 20 20 | degrees| */.X. |
|00003330| 20 20 70 77 5f 76 65 63 | 74 6f 72 28 70 77 2c 20 | pw_vec|tor(pw, |
|00003340| 78 2c 20 79 2b 63 68 5f | 68 65 69 67 68 74 2c 20 |x, y+ch_|height, |
|00003350| 78 2c 20 79 2c 20 49 4e | 56 5f 50 41 49 4e 54 2c |x, y, IN|V_PAINT,|
|00003360| 20 31 2c 20 52 55 42 42 | 45 52 5f 4c 49 4e 45 2c | 1, RUBB|ER_LINE,|
|00003370| 20 30 2e 30 2c 0a 58 09 | 09 44 45 46 41 55 4c 54 | 0.0,.X.|.DEFAULT|
|00003380| 5f 43 4f 4c 4f 52 29 3b | 0a 58 20 20 20 20 65 6c |_COLOR);|.X el|
|00003390| 73 65 09 09 09 09 2f 2a | 20 32 37 30 2d 33 35 39 |se..../*| 270-359|
|000033a0| 20 64 65 67 72 65 65 73 | 20 2a 2f 0a 58 09 20 20 | degrees| */.X. |
|000033b0| 20 20 70 77 5f 76 65 63 | 74 6f 72 28 70 77 2c 20 | pw_vec|tor(pw, |
|000033c0| 78 2c 20 79 2c 20 78 2b | 63 68 5f 68 65 69 67 68 |x, y, x+|ch_heigh|
|000033d0| 74 2c 20 79 2c 20 49 4e | 56 5f 50 41 49 4e 54 2c |t, y, IN|V_PAINT,|
|000033e0| 20 31 2c 20 52 55 42 42 | 45 52 5f 4c 49 4e 45 2c | 1, RUBB|ER_LINE,|
|000033f0| 20 30 2e 30 2c 0a 58 09 | 09 44 45 46 41 55 4c 54 | 0.0,.X.|.DEFAULT|
|00003400| 5f 43 4f 4c 4f 52 29 3b | 0a 58 7d 0a 58 0a 58 73 |_COLOR);|.X}.X.Xs|
|00003410| 74 61 74 69 63 20 69 6e | 74 0a 58 69 6e 69 74 69 |tatic in|t.Xiniti|
|00003420| 61 6c 69 7a 65 5f 63 68 | 61 72 5f 68 61 6e 64 6c |alize_ch|ar_handl|
|00003430| 65 72 28 70 2c 20 63 72 | 2c 20 62 78 2c 20 62 79 |er(p, cr|, bx, by|
|00003440| 29 0a 58 20 20 20 20 57 | 69 6e 64 6f 77 09 20 20 |).X W|indow. |
|00003450| 20 20 70 3b 0a 58 20 20 | 20 20 69 6e 74 09 09 20 | p;.X | int.. |
|00003460| 20 20 20 28 2a 63 72 29 | 20 28 29 3b 0a 58 20 20 | (*cr)| ();.X |
|00003470| 20 20 69 6e 74 09 09 20 | 20 20 20 62 78 2c 20 62 | int.. | bx, b|
|00003480| 79 3b 0a 58 7b 0a 58 20 | 20 20 20 70 77 20 3d 20 |y;.X{.X | pw = |
|00003490| 70 3b 0a 58 20 20 20 20 | 63 72 5f 70 72 6f 63 20 |p;.X |cr_proc |
|000034a0| 3d 20 63 72 3b 0a 58 20 | 20 20 20 72 62 61 73 65 |= cr;.X | rbase|
|000034b0| 5f 78 20 3d 20 63 62 61 | 73 65 5f 78 20 3d 20 62 |_x = cba|se_x = b|
|000034c0| 78 3b 09 2f 2a 20 6b 65 | 65 70 20 72 65 61 6c 20 |x;./* ke|ep real |
|000034d0| 62 61 73 65 20 73 6f 20 | 64 6f 6e 74 20 68 61 76 |base so |dont hav|
|000034e0| 65 20 72 6f 75 6e 64 6f | 66 66 20 2a 2f 0a 58 20 |e roundo|ff */.X |
|000034f0| 20 20 20 72 62 61 73 65 | 5f 79 20 3d 20 63 62 61 | rbase|_y = cba|
|00003500| 73 65 5f 79 20 3d 20 62 | 79 3b 0a 58 20 20 20 20 |se_y = b|y;.X |
|00003510| 72 63 75 72 5f 78 20 3d | 20 63 75 72 5f 78 3b 0a |rcur_x =| cur_x;.|
|00003520| 58 20 20 20 20 72 63 75 | 72 5f 79 20 3d 20 63 75 |X rcu|r_y = cu|
|00003530| 72 5f 79 3b 0a 58 0a 58 | 20 20 20 20 63 68 5f 68 |r_y;.X.X| ch_h|
|00003540| 65 69 67 68 74 20 3d 20 | 72 6f 74 5f 63 68 61 72 |eight = |rot_char|
|00003550| 5f 68 65 69 67 68 74 28 | 63 61 6e 76 61 73 5f 66 |_height(|canvas_f|
|00003560| 6f 6e 74 29 3b 0a 58 20 | 20 20 20 74 75 72 6e 5f |ont);.X | turn_|
|00003570| 6f 6e 5f 62 6c 69 6e 6b | 69 6e 67 5f 63 75 72 73 |on_blink|ing_curs|
|00003580| 6f 72 28 64 72 61 77 5f | 63 75 72 73 6f 72 2c 20 |or(draw_|cursor, |
|00003590| 64 72 61 77 5f 63 75 72 | 73 6f 72 2c 0a 58 09 09 |draw_cur|sor,.X..|
|000035a0| 09 20 20 20 20 63 75 72 | 5f 78 2c 20 63 75 72 5f |. cur|_x, cur_|
|000035b0| 79 2c 20 28 6c 6f 6e 67 | 29 20 42 4c 49 4e 4b 5f |y, (long|) BLINK_|
|000035c0| 49 4e 54 45 52 56 41 4c | 29 3b 0a 58 7d 0a 58 0a |INTERVAL|);.X}.X.|
|000035d0| 58 73 74 61 74 69 63 20 | 69 6e 74 0a 58 74 65 72 |Xstatic |int.Xter|
|000035e0| 6d 69 6e 61 74 65 5f 63 | 68 61 72 5f 68 61 6e 64 |minate_c|har_hand|
|000035f0| 6c 65 72 28 29 0a 58 7b | 0a 58 20 20 20 20 74 75 |ler().X{|.X tu|
|00003600| 72 6e 5f 6f 66 66 5f 62 | 6c 69 6e 6b 69 6e 67 5f |rn_off_b|linking_|
|00003610| 63 75 72 73 6f 72 28 29 | 3b 0a 58 20 20 20 20 63 |cursor()|;.X c|
|00003620| 72 5f 70 72 6f 63 20 3d | 20 4e 55 4c 4c 3b 0a 58 |r_proc =| NULL;.X|
|00003630| 7d 0a 58 0a 58 2f 2a 0a | 58 20 2a 20 77 65 20 75 |}.X.X/*.|X * we u|
|00003640| 73 65 20 49 4e 56 5f 50 | 41 49 4e 54 20 62 65 6c |se INV_P|AINT bel|
|00003650| 6f 77 20 69 6e 73 74 65 | 61 64 20 6f 66 20 45 52 |ow inste|ad of ER|
|00003660| 41 53 45 20 61 6e 64 20 | 50 41 49 4e 54 20 74 6f |ASE and |PAINT to|
|00003670| 20 61 76 6f 69 64 20 69 | 6e 74 65 72 61 63 74 69 | avoid i|nteracti|
|00003680| 6f 6e 73 0a 58 20 2a 20 | 77 69 74 68 20 74 68 65 |ons.X * |with the|
|00003690| 20 63 75 72 73 6f 72 2e | 20 20 49 74 20 6d 65 61 | cursor.| It mea|
|000036a0| 6e 73 20 74 68 61 74 20 | 77 65 20 6e 65 65 64 20 |ns that |we need |
|000036b0| 74 6f 20 64 6f 20 61 20 | 45 52 41 53 45 20 62 65 |to do a |ERASE be|
|000036c0| 66 6f 72 65 20 77 65 20 | 73 74 61 72 74 20 74 68 |fore we |start th|
|000036d0| 65 0a 58 20 2a 20 63 75 | 72 73 6f 72 20 61 6e 64 |e.X * cu|rsor and|
|000036e0| 20 61 20 50 41 49 4e 54 | 20 61 66 74 65 72 20 69 | a PAINT| after i|
|000036f0| 74 20 69 73 20 74 75 72 | 6e 65 64 20 6f 66 66 2e |t is tur|ned off.|
|00003700| 0a 58 20 2a 2f 0a 58 0a | 58 73 74 61 74 69 63 20 |.X */.X.|Xstatic |
|00003710| 69 6e 74 0a 58 65 72 61 | 73 65 5f 63 68 61 72 5f |int.Xera|se_char_|
|00003720| 73 74 72 69 6e 67 28 29 | 0a 58 7b 0a 58 20 20 20 |string()|.X{.X |
|00003730| 20 70 77 5f 74 65 78 74 | 28 70 77 2c 20 63 62 61 | pw_text|(pw, cba|
|00003740| 73 65 5f 78 2c 20 63 62 | 61 73 65 5f 79 2c 20 49 |se_x, cb|ase_y, I|
|00003750| 4e 56 5f 50 41 49 4e 54 | 2c 20 63 61 6e 76 61 73 |NV_PAINT|, canvas|
|00003760| 5f 7a 6f 6f 6d 65 64 5f | 66 6f 6e 74 2c 20 0a 58 |_zoomed_|font, .X|
|00003770| 09 20 20 20 20 70 72 65 | 66 69 78 2c 20 44 45 46 |. pre|fix, DEF|
|00003780| 41 55 4c 54 5f 43 4f 4c | 4f 52 29 3b 0a 58 20 20 |AULT_COL|OR);.X |
|00003790| 20 20 69 66 20 28 6c 65 | 6e 67 5f 73 75 66 66 69 | if (le|ng_suffi|
|000037a0| 78 29 0a 58 09 70 77 5f | 74 65 78 74 28 70 77 2c |x).X.pw_|text(pw,|
|000037b0| 20 63 75 72 5f 78 2c 20 | 63 75 72 5f 79 2c 20 49 | cur_x, |cur_y, I|
|000037c0| 4e 56 5f 50 41 49 4e 54 | 2c 20 63 61 6e 76 61 73 |NV_PAINT|, canvas|
|000037d0| 5f 7a 6f 6f 6d 65 64 5f | 66 6f 6e 74 2c 20 0a 58 |_zoomed_|font, .X|
|000037e0| 09 09 73 75 66 66 69 78 | 2c 20 44 45 46 41 55 4c |..suffix|, DEFAUL|
|000037f0| 54 5f 43 4f 4c 4f 52 29 | 3b 0a 58 7d 0a 58 0a 58 |T_COLOR)|;.X}.X.X|
|00003800| 73 74 61 74 69 63 20 69 | 6e 74 0a 58 64 72 61 77 |static i|nt.Xdraw|
|00003810| 5f 63 68 61 72 5f 73 74 | 72 69 6e 67 28 29 0a 58 |_char_st|ring().X|
|00003820| 7b 0a 58 20 20 20 20 70 | 77 5f 74 65 78 74 28 70 |{.X p|w_text(p|
|00003830| 77 2c 20 63 62 61 73 65 | 5f 78 2c 20 63 62 61 73 |w, cbase|_x, cbas|
|00003840| 65 5f 79 2c 20 49 4e 56 | 5f 50 41 49 4e 54 2c 20 |e_y, INV|_PAINT, |
|00003850| 63 61 6e 76 61 73 5f 7a | 6f 6f 6d 65 64 5f 66 6f |canvas_z|oomed_fo|
|00003860| 6e 74 2c 20 0a 58 09 20 | 20 20 20 70 72 65 66 69 |nt, .X. | prefi|
|00003870| 78 2c 20 44 45 46 41 55 | 4c 54 5f 43 4f 4c 4f 52 |x, DEFAU|LT_COLOR|
|00003880| 29 3b 0a 58 20 20 20 20 | 69 66 20 28 6c 65 6e 67 |);.X |if (leng|
|00003890| 5f 73 75 66 66 69 78 29 | 0a 58 09 70 77 5f 74 65 |_suffix)|.X.pw_te|
|000038a0| 78 74 28 70 77 2c 20 63 | 75 72 5f 78 2c 20 63 75 |xt(pw, c|ur_x, cu|
|000038b0| 72 5f 79 2c 20 49 4e 56 | 5f 50 41 49 4e 54 2c 20 |r_y, INV|_PAINT, |
|000038c0| 63 61 6e 76 61 73 5f 7a | 6f 6f 6d 65 64 5f 66 6f |canvas_z|oomed_fo|
|000038d0| 6e 74 2c 20 0a 58 09 09 | 73 75 66 66 69 78 2c 20 |nt, .X..|suffix, |
|000038e0| 44 45 46 41 55 4c 54 5f | 43 4f 4c 4f 52 29 3b 0a |DEFAULT_|COLOR);.|
|000038f0| 58 20 20 20 20 6d 6f 76 | 65 5f 62 6c 69 6e 6b 69 |X mov|e_blinki|
|00003900| 6e 67 5f 63 75 72 73 6f | 72 28 63 75 72 5f 78 2c |ng_curso|r(cur_x,|
|00003910| 20 63 75 72 5f 79 29 3b | 0a 58 7d 0a 58 0a 58 73 | cur_y);|.X}.X.Xs|
|00003920| 74 61 74 69 63 20 69 6e | 74 0a 58 64 72 61 77 5f |tatic in|t.Xdraw_|
|00003930| 73 75 66 66 69 78 28 29 | 0a 58 7b 0a 58 20 20 20 |suffix()|.X{.X |
|00003940| 20 69 66 20 28 6c 65 6e | 67 5f 73 75 66 66 69 78 | if (len|g_suffix|
|00003950| 29 0a 58 09 70 77 5f 74 | 65 78 74 28 70 77 2c 20 |).X.pw_t|ext(pw, |
|00003960| 63 75 72 5f 78 2c 20 63 | 75 72 5f 79 2c 20 50 41 |cur_x, c|ur_y, PA|
|00003970| 49 4e 54 2c 20 63 61 6e | 76 61 73 5f 7a 6f 6f 6d |INT, can|vas_zoom|
|00003980| 65 64 5f 66 6f 6e 74 2c | 20 0a 58 09 09 73 75 66 |ed_font,| .X..suf|
|00003990| 66 69 78 2c 20 44 45 46 | 41 55 4c 54 5f 43 4f 4c |fix, DEF|AULT_COL|
|000039a0| 4f 52 29 3b 0a 58 7d 0a | 58 0a 58 73 74 61 74 69 |OR);.X}.|X.Xstati|
|000039b0| 63 20 69 6e 74 0a 58 65 | 72 61 73 65 5f 73 75 66 |c int.Xe|rase_suf|
|000039c0| 66 69 78 28 29 0a 58 7b | 0a 58 20 20 20 20 69 66 |fix().X{|.X if|
|000039d0| 20 28 6c 65 6e 67 5f 73 | 75 66 66 69 78 29 0a 58 | (leng_s|uffix).X|
|000039e0| 09 70 77 5f 74 65 78 74 | 28 70 77 2c 20 63 75 72 |.pw_text|(pw, cur|
|000039f0| 5f 78 2c 20 63 75 72 5f | 79 2c 20 49 4e 56 5f 50 |_x, cur_|y, INV_P|
|00003a00| 41 49 4e 54 2c 20 63 61 | 6e 76 61 73 5f 7a 6f 6f |AINT, ca|nvas_zoo|
|00003a10| 6d 65 64 5f 66 6f 6e 74 | 2c 20 0a 58 09 09 73 75 |med_font|, .X..su|
|00003a20| 66 66 69 78 2c 20 44 45 | 46 41 55 4c 54 5f 43 4f |ffix, DE|FAULT_CO|
|00003a30| 4c 4f 52 29 3b 0a 58 7d | 0a 58 0a 58 73 74 61 74 |LOR);.X}|.X.Xstat|
|00003a40| 69 63 20 69 6e 74 0a 58 | 64 72 61 77 5f 63 68 61 |ic int.X|draw_cha|
|00003a50| 72 28 63 29 0a 58 63 68 | 61 72 09 63 3b 0a 58 7b |r(c).Xch|ar.c;.X{|
|00003a60| 0a 58 20 20 20 20 63 68 | 61 72 09 73 5b 32 5d 3b |.X ch|ar.s[2];|
|00003a70| 0a 58 20 20 20 20 73 5b | 30 5d 3d 63 3b 0a 58 20 |.X s[|0]=c;.X |
|00003a80| 20 20 20 73 5b 31 5d 3d | 27 5c 30 27 3b 0a 58 20 | s[1]=|'\0';.X |
|00003a90| 20 20 20 70 77 5f 74 65 | 78 74 28 70 77 2c 20 63 | pw_te|xt(pw, c|
|00003aa0| 75 72 5f 78 2c 20 63 75 | 72 5f 79 2c 20 49 4e 56 |ur_x, cu|r_y, INV|
|00003ab0| 5f 50 41 49 4e 54 2c 20 | 63 61 6e 76 61 73 5f 7a |_PAINT, |canvas_z|
|00003ac0| 6f 6f 6d 65 64 5f 66 6f | 6e 74 2c 20 0a 58 09 20 |oomed_fo|nt, .X. |
|00003ad0| 20 20 20 73 2c 20 44 45 | 46 41 55 4c 54 5f 43 4f | s, DE|FAULT_CO|
|00003ae0| 4c 4f 52 29 3b 0a 58 7d | 0a 58 0a 58 63 68 61 72 |LOR);.X}|.X.Xchar|
|00003af0| 5f 68 61 6e 64 6c 65 72 | 28 63 29 0a 58 20 20 20 |_handler|(c).X |
|00003b00| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 20 | unsigne|d char |
|00003b10| 20 63 3b 0a 58 7b 0a 58 | 20 20 20 20 66 6c 6f 61 | c;.X{.X| floa|
|00003b20| 74 09 20 20 20 20 63 77 | 69 64 74 68 2c 20 63 77 |t. cw|idth, cw|
|00003b30| 32 3b 0a 58 0a 58 20 20 | 20 20 69 66 20 28 63 72 |2;.X.X | if (cr|
|00003b40| 5f 70 72 6f 63 20 3d 3d | 20 4e 55 4c 4c 29 0a 58 |_proc ==| NULL).X|
|00003b50| 09 72 65 74 75 72 6e 3b | 0a 58 0a 58 20 20 20 20 |.return;|.X.X |
|00003b60| 69 66 20 28 63 20 3d 3d | 20 43 52 20 7c 7c 20 63 |if (c ==| CR || c|
|00003b70| 20 3d 3d 20 4e 4c 29 20 | 7b 0a 58 09 6e 65 77 5f | == NL) |{.X.new_|
|00003b80| 74 65 78 74 5f 6c 69 6e | 65 28 29 3b 0a 58 20 20 |text_lin|e();.X |
|00003b90| 20 20 7d 20 65 6c 73 65 | 20 69 66 20 28 63 20 3d | } else| if (c =|
|00003ba0| 3d 20 44 45 4c 20 7c 7c | 20 63 20 3d 3d 20 43 54 |= DEL ||| c == CT|
|00003bb0| 52 4c 5f 48 29 20 7b 0a | 58 09 69 66 20 28 6c 65 |RL_H) {.|X.if (le|
|00003bc0| 6e 67 5f 70 72 65 66 69 | 78 20 3e 20 30 29 20 7b |ng_prefi|x > 0) {|
|00003bd0| 0a 58 09 20 20 20 20 65 | 72 61 73 65 5f 63 68 61 |.X. e|rase_cha|
|00003be0| 72 5f 73 74 72 69 6e 67 | 28 29 3b 0a 58 09 20 20 |r_string|();.X. |
|00003bf0| 20 20 63 77 69 64 74 68 | 20 3d 20 28 66 6c 6f 61 | cwidth| = (floa|
|00003c00| 74 29 20 72 6f 74 5f 63 | 68 61 72 5f 61 64 76 61 |t) rot_c|har_adva|
|00003c10| 6e 63 65 28 63 61 6e 76 | 61 73 5f 66 6f 6e 74 2c |nce(canv|as_font,|
|00003c20| 20 0a 58 09 09 09 28 75 | 6e 73 69 67 6e 65 64 20 | .X...(u|nsigned |
|00003c30| 63 68 61 72 29 20 70 72 | 65 66 69 78 5b 6c 65 6e |char) pr|efix[len|
|00003c40| 67 5f 70 72 65 66 69 78 | 20 2d 20 31 5d 29 3b 0a |g_prefix| - 1]);.|
|00003c50| 58 09 20 20 20 20 63 77 | 32 20 3d 20 63 77 69 64 |X. cw|2 = cwid|
|00003c60| 74 68 2f 32 2e 30 3b 0a | 58 09 20 20 20 20 2f 2a |th/2.0;.|X. /*|
|00003c70| 20 63 6f 72 72 65 63 74 | 20 74 65 78 74 2f 63 75 | correct| text/cu|
|00003c80| 72 73 6f 72 20 70 6f 73 | 6e 20 66 6f 72 20 6a 75 |rsor pos|n for ju|
|00003c90| 73 74 69 66 69 63 61 74 | 69 6f 6e 20 61 6e 64 20 |stificat|ion and |
|00003ca0| 7a 6f 6f 6d 20 66 61 63 | 74 6f 72 20 2a 2f 0a 58 |zoom fac|tor */.X|
|00003cb0| 09 20 20 20 20 73 77 69 | 74 63 68 20 28 77 6f 72 |. swi|tch (wor|
|00003cc0| 6b 5f 74 65 78 74 6a 75 | 73 74 29 20 7b 0a 58 09 |k_textju|st) {.X.|
|00003cd0| 20 20 20 20 63 61 73 65 | 20 54 5f 4c 45 46 54 5f | case| T_LEFT_|
|00003ce0| 4a 55 53 54 49 46 49 45 | 44 3a 0a 58 09 09 69 66 |JUSTIFIE|D:.X..if|
|00003cf0| 20 28 77 6f 72 6b 5f 61 | 6e 67 6c 65 20 3c 20 39 | (work_a|ngle < 9|
|00003d00| 30 2e 30 20 2d 20 30 2e | 30 30 31 29 0a 58 09 09 |0.0 - 0.|001).X..|
|00003d10| 20 20 20 20 72 63 75 72 | 5f 78 20 2d 3d 20 63 77 | rcur|_x -= cw|
|00003d20| 69 64 74 68 3b 09 09 20 | 20 20 2f 2a 20 30 2d 38 |idth;.. | /* 0-8|
|00003d30| 39 20 64 65 67 2c 20 6d | 6f 76 65 20 74 68 65 20 |9 deg, m|ove the |
|00003d40| 73 75 66 66 69 78 20 6c | 65 66 74 20 2a 2f 0a 58 |suffix l|eft */.X|
|00003d50| 09 09 65 6c 73 65 20 69 | 66 20 28 77 6f 72 6b 5f |..else i|f (work_|
|00003d60| 61 6e 67 6c 65 20 3c 20 | 31 38 30 2e 30 20 2d 20 |angle < |180.0 - |
|00003d70| 30 2e 30 30 31 29 20 0a | 58 09 09 20 20 20 20 72 |0.001) .|X.. r|
|00003d80| 63 75 72 5f 79 20 2b 3d | 20 63 77 69 64 74 68 3b |cur_y +=| cwidth;|
|00003d90| 09 09 20 20 20 2f 2a 20 | 39 30 2d 31 37 39 20 64 |.. /* |90-179 d|
|00003da0| 65 67 2c 20 6d 6f 76 65 | 20 73 75 66 66 69 78 20 |eg, move| suffix |
|00003db0| 64 6f 77 6e 20 2a 2f 0a | 58 09 09 65 6c 73 65 20 |down */.|X..else |
|00003dc0| 69 66 20 28 77 6f 72 6b | 5f 61 6e 67 6c 65 20 3c |if (work|_angle <|
|00003dd0| 20 32 37 30 2e 30 20 2d | 20 30 2e 30 30 31 29 20 | 270.0 -| 0.001) |
|00003de0| 0a 58 09 09 20 20 20 20 | 72 63 75 72 5f 78 20 2b |.X.. |rcur_x +|
|00003df0| 3d 20 63 77 69 64 74 68 | 3b 09 09 20 20 20 2f 2a |= cwidth|;.. /*|
|00003e00| 20 31 38 30 2d 32 36 39 | 20 64 65 67 2c 20 6d 6f | 180-269| deg, mo|
|00003e10| 76 65 20 73 75 66 66 69 | 78 20 72 69 67 68 74 20 |ve suffi|x right |
|00003e20| 2a 2f 0a 58 09 09 65 6c | 73 65 20 0a 58 09 09 20 |*/.X..el|se .X.. |
|00003e30| 20 20 20 72 63 75 72 5f | 79 20 2d 3d 20 63 77 69 | rcur_|y -= cwi|
|00003e40| 64 74 68 3b 09 09 20 20 | 20 2f 2a 20 32 37 30 2d |dth;.. | /* 270-|
|00003e50| 33 35 39 20 64 65 67 2c | 20 6d 6f 76 65 20 73 75 |359 deg,| move su|
|00003e60| 66 66 69 78 20 75 70 20 | 2a 2f 0a 58 09 09 62 72 |ffix up |*/.X..br|
|00003e70| 65 61 6b 3b 0a 58 09 20 | 20 20 20 63 61 73 65 20 |eak;.X. | case |
|00003e80| 54 5f 43 45 4e 54 45 52 | 5f 4a 55 53 54 49 46 49 |T_CENTER|_JUSTIFI|
|00003e90| 45 44 3a 0a 58 09 09 69 | 66 20 28 77 6f 72 6b 5f |ED:.X..i|f (work_|
|00003ea0| 61 6e 67 6c 65 20 3c 20 | 39 30 2e 30 20 2d 20 30 |angle < |90.0 - 0|
|00003eb0| 2e 30 30 31 29 20 7b 20 | 0a 58 09 09 20 20 20 20 |.001) { |.X.. |
|00003ec0| 72 62 61 73 65 5f 78 20 | 2b 3d 20 63 77 32 3b 09 |rbase_x |+= cw2;.|
|00003ed0| 2f 2a 20 30 2d 38 39 20 | 64 65 67 2c 20 6d 6f 76 |/* 0-89 |deg, mov|
|00003ee0| 65 20 62 61 73 65 20 72 | 69 67 68 74 20 63 77 2f |e base r|ight cw/|
|00003ef0| 32 20 2a 2f 0a 58 09 09 | 20 20 20 20 72 63 75 72 |2 */.X..| rcur|
|00003f00| 5f 78 20 2d 3d 20 63 77 | 32 3b 09 2f 2a 20 6d 6f |_x -= cw|2;./* mo|
|00003f10| 76 65 20 73 75 66 66 69 | 78 20 6c 65 66 74 20 62 |ve suffi|x left b|
|00003f20| 79 20 63 77 2f 32 20 2a | 2f 0a 58 09 09 7d 20 65 |y cw/2 *|/.X..} e|
|00003f30| 6c 73 65 20 69 66 20 28 | 77 6f 72 6b 5f 61 6e 67 |lse if (|work_ang|
|00003f40| 6c 65 20 3c 20 31 38 30 | 2e 30 20 2d 20 30 2e 30 |le < 180|.0 - 0.0|
|00003f50| 30 31 29 20 7b 20 0a 58 | 09 09 20 20 20 20 72 62 |01) { .X|.. rb|
|00003f60| 61 73 65 5f 79 20 2d 3d | 20 63 77 32 3b 09 2f 2a |ase_y -=| cw2;./*|
|00003f70| 20 39 30 2d 31 37 39 20 | 64 65 67 2c 20 6d 6f 76 | 90-179 |deg, mov|
|00003f80| 65 20 62 61 73 65 20 75 | 70 20 63 77 2f 32 20 2a |e base u|p cw/2 *|
|00003f90| 2f 0a 58 09 09 20 20 20 | 20 72 63 75 72 5f 79 20 |/.X.. | rcur_y |
|00003fa0| 2b 3d 20 63 77 32 3b 09 | 2f 2a 20 6d 6f 76 65 20 |+= cw2;.|/* move |
|00003fb0| 73 75 66 66 69 78 20 64 | 6f 77 6e 20 63 77 2f 32 |suffix d|own cw/2|
|00003fc0| 20 2a 2f 0a 58 09 09 7d | 20 65 6c 73 65 20 69 66 | */.X..}| else if|
|00003fd0| 20 28 77 6f 72 6b 5f 61 | 6e 67 6c 65 20 3c 20 32 | (work_a|ngle < 2|
|00003fe0| 37 30 2e 30 20 2d 20 30 | 2e 30 30 31 29 20 7b 0a |70.0 - 0|.001) {.|
|00003ff0| 58 09 09 20 20 20 20 72 | 62 61 73 65 5f 78 20 2d |X.. r|base_x -|
|00004000| 3d 20 63 77 32 3b 09 2f | 2a 20 31 38 30 2d 32 36 |= cw2;./|* 180-26|
|00004010| 39 20 64 65 67 2c 20 6d | 6f 76 65 20 62 61 73 65 |9 deg, m|ove base|
|00004020| 20 6c 65 66 74 20 63 77 | 2f 32 20 2a 2f 0a 58 09 | left cw|/2 */.X.|
|00004030| 09 20 20 20 20 72 63 75 | 72 5f 78 20 2b 3d 20 63 |. rcu|r_x += c|
|00004040| 77 32 3b 09 2f 2a 20 6d | 6f 76 65 20 73 75 66 66 |w2;./* m|ove suff|
|00004050| 69 78 20 72 69 67 68 74 | 20 63 77 2f 32 20 2a 2f |ix right| cw/2 */|
|00004060| 0a 58 09 09 7d 20 65 6c | 73 65 20 7b 20 09 09 09 |.X..} el|se { ...|
|00004070| 09 20 20 20 20 20 0a 58 | 09 09 20 20 20 20 72 62 |. .X|.. rb|
|00004080| 61 73 65 5f 79 20 2b 3d | 20 63 77 32 3b 09 2f 2a |ase_y +=| cw2;./*|
|00004090| 20 32 37 30 2d 33 35 39 | 20 64 65 67 2c 20 6d 6f | 270-359| deg, mo|
|000040a0| 76 65 20 62 61 73 65 20 | 64 6f 77 6e 20 63 77 2f |ve base |down cw/|
|000040b0| 32 20 2a 2f 0a 58 09 09 | 20 20 20 20 72 63 75 72 |2 */.X..| rcur|
|000040c0| 5f 79 20 2d 3d 20 63 77 | 32 3b 09 2f 2a 20 6d 6f |_y -= cw|2;./* mo|
|000040d0| 76 65 20 73 75 66 66 69 | 78 20 75 70 20 63 77 2f |ve suffi|x up cw/|
|000040e0| 32 20 2a 2f 0a 58 09 09 | 7d 0a 58 09 09 62 72 65 |2 */.X..|}.X..bre|
|000040f0| 61 6b 3b 0a 58 09 20 20 | 20 20 63 61 73 65 20 54 |ak;.X. | case T|
|00004100| 5f 52 49 47 48 54 5f 4a | 55 53 54 49 46 49 45 44 |_RIGHT_J|USTIFIED|
|00004110| 3a 0a 58 09 09 69 66 20 | 28 77 6f 72 6b 5f 61 6e |:.X..if |(work_an|
|00004120| 67 6c 65 20 3c 20 39 30 | 2e 30 20 2d 20 30 2e 30 |gle < 90|.0 - 0.0|
|00004130| 30 31 29 20 0a 58 09 09 | 20 20 20 20 72 62 61 73 |01) .X..| rbas|
|00004140| 65 5f 78 20 2b 3d 20 63 | 77 69 64 74 68 3b 09 09 |e_x += c|width;..|
|00004150| 20 20 20 2f 2a 20 30 2d | 38 39 20 64 65 67 2c 20 | /* 0-|89 deg, |
|00004160| 6d 6f 76 65 20 74 68 65 | 20 70 72 65 66 69 78 20 |move the| prefix |
|00004170| 72 69 67 68 74 20 2a 2f | 0a 58 09 09 65 6c 73 65 |right */|.X..else|
|00004180| 20 69 66 20 28 77 6f 72 | 6b 5f 61 6e 67 6c 65 20 | if (wor|k_angle |
|00004190| 3c 20 31 38 30 2e 30 20 | 2d 20 30 2e 30 30 31 29 |< 180.0 |- 0.001)|
|000041a0| 0a 58 09 09 20 20 20 20 | 72 62 61 73 65 5f 79 20 |.X.. |rbase_y |
|000041b0| 2d 3d 20 63 77 69 64 74 | 68 3b 09 09 20 20 20 2f |-= cwidt|h;.. /|
|000041c0| 2a 20 39 30 2d 31 37 39 | 20 64 65 67 2c 20 6d 6f |* 90-179| deg, mo|
|000041d0| 76 65 20 70 72 65 66 69 | 78 20 75 70 20 2a 2f 0a |ve prefi|x up */.|
|000041e0| 58 09 09 65 6c 73 65 20 | 69 66 20 28 77 6f 72 6b |X..else |if (work|
|000041f0| 5f 61 6e 67 6c 65 20 3c | 20 32 37 30 2e 30 20 2d |_angle <| 270.0 -|
|00004200| 20 30 2e 30 30 31 29 0a | 58 09 09 20 20 20 20 72 | 0.001).|X.. r|
|00004210| 62 61 73 65 5f 78 20 2d | 3d 20 63 77 69 64 74 68 |base_x -|= cwidth|
|00004220| 3b 09 09 20 20 20 2f 2a | 20 31 38 30 2d 32 36 39 |;.. /*| 180-269|
|00004230| 20 64 65 67 2c 20 6d 6f | 76 65 20 70 72 65 66 69 | deg, mo|ve prefi|
|00004240| 78 20 6c 65 66 74 20 2a | 2f 0a 58 09 09 65 6c 73 |x left *|/.X..els|
|00004250| 65 0a 58 09 09 20 20 20 | 20 72 62 61 73 65 5f 79 |e.X.. | rbase_y|
|00004260| 20 2b 3d 20 63 77 69 64 | 74 68 3b 09 09 20 20 20 | += cwid|th;.. |
|00004270| 2f 2a 20 32 37 30 2d 33 | 35 39 20 64 65 67 2c 20 |/* 270-3|59 deg, |
|00004280| 6d 6f 76 65 20 70 72 65 | 66 69 78 20 64 6f 77 6e |move pre|fix down|
|00004290| 20 2a 2f 0a 58 09 09 62 | 72 65 61 6b 3b 0a 58 09 | */.X..b|reak;.X.|
|000042a0| 20 20 20 20 7d 0a 58 09 | 20 20 20 20 70 72 65 66 | }.X.| pref|
|000042b0| 69 78 5b 2d 2d 6c 65 6e | 67 5f 70 72 65 66 69 78 |ix[--len|g_prefix|
|000042c0| 5d 20 3d 20 27 5c 30 27 | 3b 0a 58 09 20 20 20 20 |] = '\0'|;.X. |
|000042d0| 63 62 61 73 65 5f 78 20 | 3d 20 72 62 61 73 65 5f |cbase_x |= rbase_|
|000042e0| 78 3b 09 2f 2a 20 66 69 | 78 20 2a 2f 0a 58 09 20 |x;./* fi|x */.X. |
|000042f0| 20 20 20 63 62 61 73 65 | 5f 79 20 3d 20 72 62 61 | cbase|_y = rba|
|00004300| 73 65 5f 79 3b 0a 58 09 | 20 20 20 20 63 75 72 5f |se_y;.X.| cur_|
|00004310| 78 20 3d 20 72 63 75 72 | 5f 78 3b 0a 58 09 20 20 |x = rcur|_x;.X. |
|00004320| 20 20 63 75 72 5f 79 20 | 3d 20 72 63 75 72 5f 79 | cur_y |= rcur_y|
|00004330| 3b 0a 58 09 20 20 20 20 | 64 72 61 77 5f 63 68 61 |;.X. |draw_cha|
|00004340| 72 5f 73 74 72 69 6e 67 | 28 29 3b 0a 58 09 7d 0a |r_string|();.X.}.|
|00004350| 58 20 20 20 20 7d 20 65 | 6c 73 65 20 69 66 20 28 |X } e|lse if (|
|00004360| 63 20 3d 3d 20 43 54 52 | 4c 5f 58 29 20 7b 0a 58 |c == CTR|L_X) {.X|
|00004370| 09 69 66 20 28 6c 65 6e | 67 5f 70 72 65 66 69 78 |.if (len|g_prefix|
|00004380| 20 3e 20 30 29 20 7b 0a | 58 09 20 20 20 20 65 72 | > 0) {.|X. er|
|00004390| 61 73 65 5f 63 68 61 72 | 5f 73 74 72 69 6e 67 28 |ase_char|_string(|
|000043a0| 29 3b 0a 58 09 20 20 20 | 20 73 77 69 74 63 68 20 |);.X. | switch |
|000043b0| 28 77 6f 72 6b 5f 74 65 | 78 74 6a 75 73 74 29 20 |(work_te|xtjust) |
|000043c0| 7b 0a 58 09 20 20 20 20 | 63 61 73 65 20 54 5f 43 |{.X. |case T_C|
|000043d0| 45 4e 54 45 52 5f 4a 55 | 53 54 49 46 49 45 44 3a |ENTER_JU|STIFIED:|
|000043e0| 0a 58 09 09 77 68 69 6c | 65 20 28 6c 65 6e 67 5f |.X..whil|e (leng_|
|000043f0| 70 72 65 66 69 78 2d 2d | 29 09 2f 2a 20 73 75 62 |prefix--|)./* sub|
|00004400| 74 72 61 63 74 20 63 68 | 61 72 20 77 69 64 74 68 |tract ch|ar width|
|00004410| 2f 32 20 70 65 72 20 63 | 68 61 72 20 2a 2f 0a 58 |/2 per c|har */.X|
|00004420| 09 09 20 20 20 20 69 66 | 20 28 77 6f 72 6b 5f 61 |.. if| (work_a|
|00004430| 6e 67 6c 65 20 3c 20 39 | 30 2e 30 20 2d 20 30 2e |ngle < 9|0.0 - 0.|
|00004440| 30 30 31 29 09 2f 2a 20 | 30 2d 38 39 20 64 65 67 |001)./* |0-89 deg|
|00004450| 72 65 65 73 20 2a 2f 0a | 58 09 09 09 72 63 75 72 |rees */.|X...rcur|
|00004460| 5f 78 20 2d 3d 20 72 6f | 74 5f 63 68 61 72 5f 61 |_x -= ro|t_char_a|
|00004470| 64 76 61 6e 63 65 28 63 | 61 6e 76 61 73 5f 66 6f |dvance(c|anvas_fo|
|00004480| 6e 74 2c 20 0a 58 09 09 | 09 09 28 75 6e 73 69 67 |nt, .X..|..(unsig|
|00004490| 6e 65 64 20 63 68 61 72 | 29 20 70 72 65 66 69 78 |ned char|) prefix|
|000044a0| 5b 6c 65 6e 67 5f 70 72 | 65 66 69 78 5d 29 20 2f |[leng_pr|efix]) /|
|000044b0| 20 32 2e 30 3b 0a 58 09 | 09 65 6c 73 65 20 69 66 | 2.0;.X.|.else if|
|000044c0| 20 28 77 6f 72 6b 5f 61 | 6e 67 6c 65 20 3c 20 31 | (work_a|ngle < 1|
|000044d0| 38 30 2e 30 20 2d 20 30 | 2e 30 30 31 29 20 09 2f |80.0 - 0|.001) ./|
|000044e0| 2a 20 39 30 2d 31 37 39 | 20 64 65 67 72 65 65 73 |* 90-179| degrees|
|000044f0| 20 2a 2f 0a 58 09 09 09 | 72 63 75 72 5f 79 20 2b | */.X...|rcur_y +|
|00004500| 3d 20 72 6f 74 5f 63 68 | 61 72 5f 61 64 76 61 6e |= rot_ch|ar_advan|
|00004510| 63 65 28 63 61 6e 76 61 | 73 5f 66 6f 6e 74 2c 20 |ce(canva|s_font, |
|00004520| 0a 58 09 09 09 09 28 75 | 6e 73 69 67 6e 65 64 20 |.X....(u|nsigned |
|00004530| 63 68 61 72 29 20 70 72 | 65 66 69 78 5b 6c 65 6e |char) pr|efix[len|
|00004540| 67 5f 70 72 65 66 69 78 | 5d 29 20 2f 20 32 2e 30 |g_prefix|]) / 2.0|
|00004550| 3b 0a 58 09 09 65 6c 73 | 65 20 69 66 20 28 77 6f |;.X..els|e if (wo|
|00004560| 72 6b 5f 61 6e 67 6c 65 | 20 3c 20 32 37 30 2e 30 |rk_angle| < 270.0|
|00004570| 20 2d 20 30 2e 30 30 31 | 29 20 09 2f 2a 20 31 38 | - 0.001|) ./* 18|
|00004580| 30 2d 32 36 39 20 64 65 | 67 72 65 65 73 20 2a 2f |0-269 de|grees */|
|00004590| 0a 58 09 09 09 72 63 75 | 72 5f 78 20 2b 3d 20 72 |.X...rcu|r_x += r|
|000045a0| 6f 74 5f 63 68 61 72 5f | 61 64 76 61 6e 63 65 28 |ot_char_|advance(|
|000045b0| 63 61 6e 76 61 73 5f 66 | 6f 6e 74 2c 20 0a 58 09 |canvas_f|ont, .X.|
|000045c0| 09 09 09 28 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |...(unsi|gned cha|
|000045d0| 72 29 20 70 72 65 66 69 | 78 5b 6c 65 6e 67 5f 70 |r) prefi|x[leng_p|
|000045e0| 72 65 66 69 78 5d 29 20 | 2f 20 32 2e 30 3b 0a 58 |refix]) |/ 2.0;.X|
|000045f0| 09 09 65 6c 73 65 20 09 | 09 09 09 09 2f 2a 20 32 |..else .|..../* 2|
|00004600| 37 30 2d 33 35 39 20 64 | 65 67 72 65 65 73 20 2a |70-359 d|egrees *|
|00004610| 2f 0a 58 09 09 09 72 63 | 75 72 5f 79 20 2d 3d 20 |/.X...rc|ur_y -= |
|00004620| 72 6f 74 5f 63 68 61 72 | 5f 61 64 76 61 6e 63 65 |rot_char|_advance|
|00004630| 28 63 61 6e 76 61 73 5f | 66 6f 6e 74 2c 20 0a 58 |(canvas_|font, .X|
|00004640| 09 09 09 09 28 75 6e 73 | 69 67 6e 65 64 20 63 68 |....(uns|igned ch|
|00004650| 61 72 29 20 70 72 65 66 | 69 78 5b 6c 65 6e 67 5f |ar) pref|ix[leng_|
|00004660| 70 72 65 66 69 78 5d 29 | 20 2f 20 32 2e 30 3b 0a |prefix])| / 2.0;.|
|00004670| 58 09 09 63 75 72 5f 78 | 20 3d 20 63 62 61 73 65 |X..cur_x| = cbase|
|00004680| 5f 78 20 3d 20 72 62 61 | 73 65 5f 78 20 3d 20 72 |_x = rba|se_x = r|
|00004690| 63 75 72 5f 78 3b 0a 58 | 09 09 63 75 72 5f 79 20 |cur_x;.X|..cur_y |
|000046a0| 3d 20 63 62 61 73 65 5f | 79 20 3d 20 72 62 61 73 |= cbase_|y = rbas|
|000046b0| 65 5f 79 20 3d 20 72 63 | 75 72 5f 79 3b 0a 58 09 |e_y = rc|ur_y;.X.|
|000046c0| 09 62 72 65 61 6b 3b 0a | 58 09 20 20 20 20 63 61 |.break;.|X. ca|
|000046d0| 73 65 20 54 5f 52 49 47 | 48 54 5f 4a 55 53 54 49 |se T_RIG|HT_JUSTI|
|000046e0| 46 49 45 44 3a 0a 58 09 | 09 63 62 61 73 65 5f 78 |FIED:.X.|.cbase_x|
|000046f0| 20 3d 20 72 62 61 73 65 | 5f 78 20 3d 20 63 75 72 | = rbase|_x = cur|
|00004700| 5f 78 20 3d 20 72 63 75 | 72 5f 78 3b 0a 58 09 09 |_x = rcu|r_x;.X..|
|00004710| 63 62 61 73 65 5f 79 20 | 3d 20 72 62 61 73 65 5f |cbase_y |= rbase_|
|00004720| 79 20 3d 20 63 75 72 5f | 79 20 3d 20 72 63 75 72 |y = cur_|y = rcur|
|00004730| 5f 79 3b 0a 58 09 09 62 | 72 65 61 6b 3b 0a 58 09 |_y;.X..b|reak;.X.|
|00004740| 20 20 20 20 63 61 73 65 | 20 54 5f 4c 45 46 54 5f | case| T_LEFT_|
|00004750| 4a 55 53 54 49 46 49 45 | 44 3a 0a 58 09 09 63 75 |JUSTIFIE|D:.X..cu|
|00004760| 72 5f 78 20 3d 20 72 63 | 75 72 5f 78 20 3d 20 63 |r_x = rc|ur_x = c|
|00004770| 62 61 73 65 5f 78 20 3d | 20 72 62 61 73 65 5f 78 |base_x =| rbase_x|
|00004780| 3b 0a 58 09 09 63 75 72 | 5f 79 20 3d 20 72 63 75 |;.X..cur|_y = rcu|
|00004790| 72 5f 79 20 3d 20 63 62 | 61 73 65 5f 79 20 3d 20 |r_y = cb|ase_y = |
|000047a0| 72 62 61 73 65 5f 79 3b | 0a 58 09 09 62 72 65 61 |rbase_y;|.X..brea|
|000047b0| 6b 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 20 20 20 |k;.X. | }.X. |
|000047c0| 20 6c 65 6e 67 5f 70 72 | 65 66 69 78 20 3d 20 30 | leng_pr|efix = 0|
|000047d0| 3b 0a 58 09 20 20 20 20 | 2a 70 72 65 66 69 78 20 |;.X. |*prefix |
|000047e0| 3d 20 27 5c 30 27 3b 0a | 58 09 20 20 20 20 64 72 |= '\0';.|X. dr|
|000047f0| 61 77 5f 63 68 61 72 5f | 73 74 72 69 6e 67 28 29 |aw_char_|string()|
|00004800| 3b 0a 58 09 7d 0a 58 20 | 20 20 20 7d 20 65 6c 73 |;.X.}.X | } els|
|00004810| 65 20 69 66 20 28 63 20 | 3c 20 53 50 29 20 7b 0a |e if (c |< SP) {.|
|00004820| 58 09 70 75 74 5f 6d 73 | 67 28 22 49 6e 76 61 6c |X.put_ms|g("Inval|
|00004830| 69 64 20 63 68 61 72 61 | 63 74 65 72 20 69 67 6e |id chara|cter ign|
|00004840| 6f 72 65 64 22 29 3b 0a | 58 20 20 20 20 7d 20 65 |ored");.|X } e|
|00004850| 6c 73 65 20 69 66 20 28 | 6c 65 6e 67 5f 70 72 65 |lse if (|leng_pre|
|00004860| 66 69 78 20 2b 20 6c 65 | 6e 67 5f 73 75 66 66 69 |fix + le|ng_suffi|
|00004870| 78 20 3d 3d 20 42 55 46 | 5f 53 49 5a 45 29 20 7b |x == BUF|_SIZE) {|
|00004880| 0a 58 09 70 75 74 5f 6d | 73 67 28 22 54 65 78 74 |.X.put_m|sg("Text|
|00004890| 20 62 75 66 66 65 72 20 | 69 73 20 66 75 6c 6c 2c | buffer |is full,|
|000048a0| 20 63 68 61 72 61 63 74 | 65 72 20 69 73 20 69 67 | charact|er is ig|
|000048b0| 6e 6f 72 65 64 22 29 3b | 0a 58 0a 58 20 20 20 20 |nored");|.X.X |
|000048c0| 2f 2a 20 6e 6f 72 6d 61 | 6c 20 74 65 78 74 20 63 |/* norma|l text c|
|000048d0| 68 61 72 61 63 74 65 72 | 20 2a 2f 0a 58 20 20 20 |haracter| */.X |
|000048e0| 20 7d 20 65 6c 73 65 20 | 7b 09 0a 58 09 64 72 61 | } else |{..X.dra|
|000048f0| 77 5f 63 68 61 72 5f 73 | 74 72 69 6e 67 28 29 3b |w_char_s|tring();|
|00004900| 0a 58 09 63 77 69 64 74 | 68 20 3d 20 72 6f 74 5f |.X.cwidt|h = rot_|
|00004910| 63 68 61 72 5f 61 64 76 | 61 6e 63 65 28 63 61 6e |char_adv|ance(can|
|00004920| 76 61 73 5f 66 6f 6e 74 | 2c 20 28 75 6e 73 69 67 |vas_font|, (unsig|
|00004930| 6e 65 64 20 63 68 61 72 | 29 20 63 29 3b 0a 58 09 |ned char|) c);.X.|
|00004940| 63 77 32 20 3d 20 63 77 | 69 64 74 68 2f 32 2e 30 |cw2 = cw|idth/2.0|
|00004950| 3b 0a 58 09 2f 2a 20 63 | 6f 72 72 65 63 74 20 74 |;.X./* c|orrect t|
|00004960| 65 78 74 2f 63 75 72 73 | 6f 72 20 70 6f 73 6e 20 |ext/curs|or posn |
|00004970| 66 6f 72 20 6a 75 73 74 | 69 66 69 63 61 74 69 6f |for just|ificatio|
|00004980| 6e 20 61 6e 64 20 7a 6f | 6f 6d 20 66 61 63 74 6f |n and zo|om facto|
|00004990| 72 20 2a 2f 0a 58 09 73 | 77 69 74 63 68 20 28 77 |r */.X.s|witch (w|
|000049a0| 6f 72 6b 5f 74 65 78 74 | 6a 75 73 74 29 20 7b 0a |ork_text|just) {.|
|000049b0| 58 09 20 20 63 61 73 65 | 20 54 5f 4c 45 46 54 5f |X. case| T_LEFT_|
|000049c0| 4a 55 53 54 49 46 49 45 | 44 3a 0a 58 09 20 20 20 |JUSTIFIE|D:.X. |
|000049d0| 20 69 66 20 28 77 6f 72 | 6b 5f 61 6e 67 6c 65 20 | if (wor|k_angle |
|000049e0| 3c 20 39 30 2e 30 20 2d | 20 30 2e 30 30 31 29 0a |< 90.0 -| 0.001).|
|000049f0| 58 09 09 72 63 75 72 5f | 78 20 2b 3d 20 63 77 69 |X..rcur_|x += cwi|
|00004a00| 64 74 68 3b 09 09 20 20 | 20 2f 2a 20 30 2d 38 39 |dth;.. | /* 0-89|
|00004a10| 20 64 65 67 2c 20 6d 6f | 76 65 20 74 68 65 20 73 | deg, mo|ve the s|
|00004a20| 75 66 66 69 78 20 72 69 | 67 68 74 20 2a 2f 0a 58 |uffix ri|ght */.X|
|00004a30| 09 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 77 6f |. els|e if (wo|
|00004a40| 72 6b 5f 61 6e 67 6c 65 | 20 3c 20 31 38 30 2e 30 |rk_angle| < 180.0|
|00004a50| 20 2d 20 30 2e 30 30 31 | 29 20 0a 58 09 09 72 63 | - 0.001|) .X..rc|
|00004a60| 75 72 5f 79 20 2d 3d 20 | 63 77 69 64 74 68 3b 09 |ur_y -= |cwidth;.|
|00004a70| 09 20 20 20 2f 2a 20 39 | 30 2d 31 37 39 20 64 65 |. /* 9|0-179 de|
|00004a80| 67 2c 20 6d 6f 76 65 20 | 73 75 66 66 69 78 20 75 |g, move |suffix u|
|00004a90| 70 20 2a 2f 0a 58 09 20 | 20 20 20 65 6c 73 65 20 |p */.X. | else |
|00004aa0| 69 66 20 28 77 6f 72 6b | 5f 61 6e 67 6c 65 20 3c |if (work|_angle <|
|00004ab0| 20 32 37 30 2e 30 20 2d | 20 30 2e 30 30 31 29 20 | 270.0 -| 0.001) |
|00004ac0| 0a 58 09 09 72 63 75 72 | 5f 78 20 2d 3d 20 63 77 |.X..rcur|_x -= cw|
|00004ad0| 69 64 74 68 3b 09 09 20 | 20 20 2f 2a 20 31 38 30 |idth;.. | /* 180|
|00004ae0| 2d 32 36 39 20 64 65 67 | 2c 20 6d 6f 76 65 20 73 |-269 deg|, move s|
|00004af0| 75 66 66 69 78 20 6c 65 | 66 74 20 2a 2f 0a 58 09 |uffix le|ft */.X.|
|00004b00| 20 20 20 20 65 6c 73 65 | 20 0a 58 09 09 72 63 75 | else| .X..rcu|
|00004b10| 72 5f 79 20 2b 3d 20 63 | 77 69 64 74 68 3b 09 09 |r_y += c|width;..|
|00004b20| 20 20 20 2f 2a 20 32 37 | 30 2d 33 35 39 20 64 65 | /* 27|0-359 de|
|00004b30| 67 2c 20 6d 6f 76 65 20 | 73 75 66 66 69 78 20 64 |g, move |suffix d|
|00004b40| 6f 77 6e 20 2a 2f 0a 58 | 09 20 20 20 20 62 72 65 |own */.X|. bre|
|00004b50| 61 6b 3b 0a 58 09 20 20 | 63 61 73 65 20 54 5f 43 |ak;.X. |case T_C|
|00004b60| 45 4e 54 45 52 5f 4a 55 | 53 54 49 46 49 45 44 3a |ENTER_JU|STIFIED:|
|00004b70| 0a 58 09 20 20 20 20 69 | 66 20 28 77 6f 72 6b 5f |.X. i|f (work_|
|00004b80| 61 6e 67 6c 65 20 3c 20 | 39 30 2e 30 20 2d 20 30 |angle < |90.0 - 0|
|00004b90| 2e 30 30 31 29 20 7b 20 | 0a 58 09 09 72 62 61 73 |.001) { |.X..rbas|
|00004ba0| 65 5f 78 20 2d 3d 20 63 | 77 32 3b 09 2f 2a 20 30 |e_x -= c|w2;./* 0|
|00004bb0| 2d 38 39 20 64 65 67 2c | 20 6d 6f 76 65 20 62 61 |-89 deg,| move ba|
|00004bc0| 73 65 20 6c 65 66 74 20 | 63 77 2f 32 20 2a 2f 0a |se left |cw/2 */.|
|00004bd0| 58 09 09 72 63 75 72 5f | 78 20 2b 3d 20 63 77 32 |X..rcur_|x += cw2|
|00004be0| 3b 09 2f 2a 20 6d 6f 76 | 65 20 73 75 66 66 69 78 |;./* mov|e suffix|
|00004bf0| 20 72 69 67 68 74 20 62 | 79 20 63 77 2f 32 20 2a | right b|y cw/2 *|
|00004c00| 2f 0a 58 09 20 20 20 20 | 7d 20 65 6c 73 65 20 69 |/.X. |} else i|
|00004c10| 66 20 28 77 6f 72 6b 5f | 61 6e 67 6c 65 20 3c 20 |f (work_|angle < |
|00004c20| 31 38 30 2e 30 20 2d 20 | 30 2e 30 30 31 29 20 7b |180.0 - |0.001) {|
|00004c30| 20 0a 58 09 09 72 62 61 | 73 65 5f 79 20 2b 3d 20 | .X..rba|se_y += |
|00004c40| 63 77 32 3b 09 2f 2a 20 | 39 30 2d 31 37 39 20 64 |cw2;./* |90-179 d|
|00004c50| 65 67 2c 20 6d 6f 76 65 | 20 62 61 73 65 20 64 6f |eg, move| base do|
|00004c60| 77 6e 20 63 77 2f 32 20 | 2a 2f 0a 58 09 09 72 63 |wn cw/2 |*/.X..rc|
|00004c70| 75 72 5f 79 20 2d 3d 20 | 63 77 32 3b 09 2f 2a 20 |ur_y -= |cw2;./* |
|00004c80| 6d 6f 76 65 20 73 75 66 | 66 69 78 20 75 70 20 63 |move suf|fix up c|
|00004c90| 77 2f 32 20 2a 2f 0a 58 | 09 20 20 20 20 7d 20 65 |w/2 */.X|. } e|
|00004ca0| 6c 73 65 20 69 66 20 28 | 77 6f 72 6b 5f 61 6e 67 |lse if (|work_ang|
|00004cb0| 6c 65 20 3c 20 32 37 30 | 2e 30 20 2d 20 30 2e 30 |le < 270|.0 - 0.0|
|00004cc0| 30 31 29 20 7b 0a 58 09 | 09 72 62 61 73 65 5f 78 |01) {.X.|.rbase_x|
|00004cd0| 20 2b 3d 20 63 77 32 3b | 09 2f 2a 20 31 38 30 2d | += cw2;|./* 180-|
|00004ce0| 32 36 39 20 64 65 67 2c | 20 6d 6f 76 65 20 62 61 |269 deg,| move ba|
|00004cf0| 73 65 20 72 69 67 68 74 | 20 63 77 2f 32 20 2a 2f |se right| cw/2 */|
|00004d00| 0a 58 09 09 72 63 75 72 | 5f 78 20 2d 3d 20 63 77 |.X..rcur|_x -= cw|
|00004d10| 32 3b 09 2f 2a 20 6d 6f | 76 65 20 73 75 66 66 69 |2;./* mo|ve suffi|
|00004d20| 78 20 6c 65 66 74 20 63 | 77 2f 32 20 2a 2f 0a 58 |x left c|w/2 */.X|
|00004d30| 09 20 20 20 20 7d 20 65 | 6c 73 65 20 7b 20 09 09 |. } e|lse { ..|
|00004d40| 09 09 20 20 20 20 20 0a | 58 09 09 72 62 61 73 65 |.. .|X..rbase|
|00004d50| 5f 79 20 2d 3d 20 63 77 | 32 3b 09 2f 2a 20 32 37 |_y -= cw|2;./* 27|
|00004d60| 30 2d 33 35 39 20 64 65 | 67 2c 20 6d 6f 76 65 20 |0-359 de|g, move |
|00004d70| 62 61 73 65 20 75 70 20 | 63 77 2f 32 20 2a 2f 0a |base up |cw/2 */.|
|00004d80| 58 09 09 72 63 75 72 5f | 79 20 2b 3d 20 63 77 32 |X..rcur_|y += cw2|
|00004d90| 3b 09 2f 2a 20 6d 6f 76 | 65 20 73 75 66 66 69 78 |;./* mov|e suffix|
|00004da0| 20 64 6f 77 6e 20 63 77 | 2f 32 20 2a 2f 0a 58 09 | down cw|/2 */.X.|
|00004db0| 20 20 20 20 7d 0a 58 09 | 20 20 20 20 62 72 65 61 | }.X.| brea|
|00004dc0| 6b 3b 0a 58 09 20 20 63 | 61 73 65 20 54 5f 52 49 |k;.X. c|ase T_RI|
|00004dd0| 47 48 54 5f 4a 55 53 54 | 49 46 49 45 44 3a 0a 58 |GHT_JUST|IFIED:.X|
|00004de0| 09 20 20 20 20 69 66 20 | 28 77 6f 72 6b 5f 61 6e |. if |(work_an|
|00004df0| 67 6c 65 20 3c 20 39 30 | 2e 30 20 2d 20 30 2e 30 |gle < 90|.0 - 0.0|
|00004e00| 30 31 29 20 0a 58 09 09 | 72 62 61 73 65 5f 78 20 |01) .X..|rbase_x |
|00004e10| 2d 3d 20 63 77 69 64 74 | 68 3b 09 09 20 20 20 2f |-= cwidt|h;.. /|
|00004e20| 2a 20 30 2d 38 39 20 64 | 65 67 2c 20 6d 6f 76 65 |* 0-89 d|eg, move|
|00004e30| 20 74 68 65 20 70 72 65 | 66 69 78 20 6c 65 66 74 | the pre|fix left|
|00004e40| 20 2a 2f 0a 58 09 20 20 | 20 20 65 6c 73 65 20 69 | */.X. | else i|
|00004e50| 66 20 28 77 6f 72 6b 5f | 61 6e 67 6c 65 20 3c 20 |f (work_|angle < |
|00004e60| 31 38 30 2e 30 20 2d 20 | 30 2e 30 30 31 29 0a 58 |180.0 - |0.001).X|
|00004e70| 09 09 72 62 61 73 65 5f | 79 20 2b 3d 20 63 77 69 |..rbase_|y += cwi|
|00004e80| 64 74 68 3b 09 09 20 20 | 20 2f 2a 20 39 30 2d 31 |dth;.. | /* 90-1|
|00004e90| 37 39 20 64 65 67 2c 20 | 6d 6f 76 65 20 70 72 65 |79 deg, |move pre|
|00004ea0| 66 69 78 20 64 6f 77 6e | 20 2a 2f 0a 58 09 20 20 |fix down| */.X. |
|00004eb0| 20 20 65 6c 73 65 20 69 | 66 20 28 77 6f 72 6b 5f | else i|f (work_|
|00004ec0| 61 6e 67 6c 65 20 3c 20 | 32 37 30 2e 30 20 2d 20 |angle < |270.0 - |
|00004ed0| 30 2e 30 30 31 29 0a 58 | 09 09 72 62 61 73 65 5f |0.001).X|..rbase_|
|00004ee0| 78 20 2b 3d 20 63 77 69 | 64 74 68 3b 09 09 20 20 |x += cwi|dth;.. |
|00004ef0| 20 2f 2a 20 31 38 30 2d | 32 36 39 20 64 65 67 2c | /* 180-|269 deg,|
|00004f00| 20 6d 6f 76 65 20 70 72 | 65 66 69 78 20 72 69 67 | move pr|efix rig|
|00004f10| 68 74 20 2a 2f 0a 58 09 | 20 20 20 20 65 6c 73 65 |ht */.X.| else|
|00004f20| 0a 58 09 09 72 62 61 73 | 65 5f 79 20 2d 3d 20 63 |.X..rbas|e_y -= c|
|00004f30| 77 69 64 74 68 3b 09 09 | 20 20 20 2f 2a 20 32 37 |width;..| /* 27|
|00004f40| 30 2d 33 35 39 20 64 65 | 67 2c 20 6d 6f 76 65 20 |0-359 de|g, move |
|00004f50| 70 72 65 66 69 78 20 75 | 70 20 2a 2f 0a 58 09 20 |prefix u|p */.X. |
|00004f60| 20 20 20 62 72 65 61 6b | 3b 0a 58 09 7d 0a 58 09 | break|;.X.}.X.|
|00004f70| 70 72 65 66 69 78 5b 6c | 65 6e 67 5f 70 72 65 66 |prefix[l|eng_pref|
|00004f80| 69 78 2b 2b 5d 20 3d 20 | 63 3b 0a 58 09 70 72 65 |ix++] = |c;.X.pre|
|00004f90| 66 69 78 5b 6c 65 6e 67 | 5f 70 72 65 66 69 78 5d |fix[leng|_prefix]|
|00004fa0| 20 3d 20 27 5c 30 27 3b | 0a 58 09 63 62 61 73 65 | = '\0';|.X.cbase|
|00004fb0| 5f 78 20 3d 20 72 62 61 | 73 65 5f 78 3b 0a 58 09 |_x = rba|se_x;.X.|
|00004fc0| 63 62 61 73 65 5f 79 20 | 3d 20 72 62 61 73 65 5f |cbase_y |= rbase_|
|00004fd0| 79 3b 0a 58 09 63 75 72 | 5f 78 20 3d 20 72 63 75 |y;.X.cur|_x = rcu|
|00004fe0| 72 5f 78 3b 0a 58 09 63 | 75 72 5f 79 20 3d 20 72 |r_x;.X.c|ur_y = r|
|00004ff0| 63 75 72 5f 79 3b 0a 58 | 09 64 72 61 77 5f 63 68 |cur_y;.X|.draw_ch|
|00005000| 61 72 5f 73 74 72 69 6e | 67 28 29 3b 0a 58 20 20 |ar_strin|g();.X |
|00005010| 20 20 7d 0a 58 7d 0a 58 | 0a 58 2f 2a 2a 2a 2a 2a | }.X}.X|.X/*****|
|00005020| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005030| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005040| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005050| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 0a 58 |********|******.X|
|00005060| 0a 58 09 62 6c 69 6e 6b | 69 6e 67 20 63 75 72 73 |.X.blink|ing curs|
|00005070| 6f 72 20 68 61 6e 64 6c | 69 6e 67 20 72 6f 75 74 |or handl|ing rout|
|00005080| 69 6e 65 73 0a 58 0a 58 | 2a 2a 2a 2a 2a 2a 2a 2a |ines.X.X|********|
|00005090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000050a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000050b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000050c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0a 58 0a 58 |********|***/.X.X|
|000050d0| 73 74 61 74 69 63 20 69 | 6e 74 09 63 75 72 73 6f |static i|nt.curso|
|000050e0| 72 5f 6f 6e 2c 20 63 75 | 72 73 6f 72 5f 69 73 5f |r_on, cu|rsor_is_|
|000050f0| 6d 6f 76 69 6e 67 3b 0a | 58 73 74 61 74 69 63 20 |moving;.|Xstatic |
|00005100| 69 6e 74 09 63 75 72 73 | 6f 72 5f 78 2c 20 63 75 |int.curs|or_x, cu|
|00005110| 72 73 6f 72 5f 79 3b 0a | 58 73 74 61 74 69 63 20 |rsor_y;.|Xstatic |
|00005120| 69 6e 74 09 28 2a 65 72 | 61 73 65 29 20 28 29 3b |int.(*er|ase) ();|
|00005130| 0a 58 73 74 61 74 69 63 | 20 69 6e 74 09 28 2a 64 |.Xstatic| int.(*d|
|00005140| 72 61 77 29 20 28 29 3b | 0a 58 73 74 61 74 69 63 |raw) ();|.Xstatic|
|00005150| 20 58 74 54 69 6d 65 72 | 43 61 6c 6c 62 61 63 6b | XtTimer|Callback|
|00005160| 50 72 6f 63 20 62 6c 69 | 6e 6b 28 29 3b 0a 58 73 |Proc bli|nk();.Xs|
|00005170| 74 61 74 69 63 20 75 6e | 73 69 67 6e 65 64 20 6c |tatic un|signed l|
|00005180| 6f 6e 67 20 62 6c 69 6e | 6b 5f 74 69 6d 65 72 3b |ong blin|k_timer;|
|00005190| 0a 58 73 74 61 74 69 63 | 20 58 74 49 6e 74 65 72 |.Xstatic| XtInter|
|000051a0| 76 61 6c 49 64 20 62 6c | 69 6e 6b 69 64 3b 0a 58 |valId bl|inkid;.X|
|000051b0| 73 74 61 74 69 63 20 69 | 6e 74 09 73 74 6f 70 5f |static i|nt.stop_|
|000051c0| 62 6c 69 6e 6b 69 6e 67 | 20 3d 20 46 61 6c 73 65 |blinking| = False|
|000051d0| 3b 0a 58 73 74 61 74 69 | 63 20 69 6e 74 09 63 75 |;.Xstati|c int.cu|
|000051e0| 72 5f 69 73 5f 62 6c 69 | 6e 6b 69 6e 67 20 3d 20 |r_is_bli|nking = |
|000051f0| 46 61 6c 73 65 3b 0a 58 | 0a 58 73 74 61 74 69 63 |False;.X|.Xstatic|
|00005200| 20 69 6e 74 0a 58 74 75 | 72 6e 5f 6f 6e 5f 62 6c | int.Xtu|rn_on_bl|
|00005210| 69 6e 6b 69 6e 67 5f 63 | 75 72 73 6f 72 28 64 72 |inking_c|ursor(dr|
|00005220| 61 77 5f 63 75 72 73 6f | 72 2c 20 65 72 61 73 65 |aw_curso|r, erase|
|00005230| 5f 63 75 72 73 6f 72 2c | 20 78 2c 20 79 2c 20 6d |_cursor,| x, y, m|
|00005240| 73 65 63 29 0a 58 20 20 | 20 20 69 6e 74 09 09 20 |sec).X | int.. |
|00005250| 20 20 20 28 2a 64 72 61 | 77 5f 63 75 72 73 6f 72 | (*dra|w_cursor|
|00005260| 29 20 28 29 3b 0a 58 20 | 20 20 20 69 6e 74 09 09 |) ();.X | int..|
|00005270| 20 20 20 20 28 2a 65 72 | 61 73 65 5f 63 75 72 73 | (*er|ase_curs|
|00005280| 6f 72 29 20 28 29 3b 0a | 58 20 20 20 20 69 6e 74 |or) ();.|X int|
|00005290| 09 09 20 20 20 20 78 2c | 20 79 3b 0a 58 20 20 20 |.. x,| y;.X |
|000052a0| 20 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 20 | unsigne|d long |
|000052b0| 20 6d 73 65 63 3b 0a 58 | 7b 0a 58 20 20 20 20 64 | msec;.X|{.X d|
|000052c0| 72 61 77 20 3d 20 64 72 | 61 77 5f 63 75 72 73 6f |raw = dr|aw_curso|
|000052d0| 72 3b 0a 58 20 20 20 20 | 65 72 61 73 65 20 3d 20 |r;.X |erase = |
|000052e0| 65 72 61 73 65 5f 63 75 | 72 73 6f 72 3b 0a 58 20 |erase_cu|rsor;.X |
|000052f0| 20 20 20 63 75 72 73 6f | 72 5f 69 73 5f 6d 6f 76 | curso|r_is_mov|
|00005300| 69 6e 67 20 3d 20 30 3b | 0a 58 20 20 20 20 63 75 |ing = 0;|.X cu|
|00005310| 72 73 6f 72 5f 78 20 3d | 20 78 3b 0a 58 20 20 20 |rsor_x =| x;.X |
|00005320| 20 63 75 72 73 6f 72 5f | 79 20 3d 20 79 3b 0a 58 | cursor_|y = y;.X|
|00005330| 20 20 20 20 62 6c 69 6e | 6b 5f 74 69 6d 65 72 20 | blin|k_timer |
|00005340| 3d 20 6d 73 65 63 3b 0a | 58 20 20 20 20 64 72 61 |= msec;.|X dra|
|00005350| 77 28 78 2c 20 79 29 3b | 0a 58 20 20 20 20 63 75 |w(x, y);|.X cu|
|00005360| 72 73 6f 72 5f 6f 6e 20 | 3d 20 31 3b 0a 58 20 20 |rsor_on |= 1;.X |
|00005370| 20 20 69 66 20 28 21 63 | 75 72 5f 69 73 5f 62 6c | if (!c|ur_is_bl|
|00005380| 69 6e 6b 69 6e 67 29 20 | 7b 09 2f 2a 20 69 66 20 |inking) |{./* if |
|00005390| 77 65 20 61 72 65 20 61 | 6c 72 65 61 64 79 20 62 |we are a|lready b|
|000053a0| 6c 69 6e 6b 69 6e 67 2c | 20 64 6f 6e 27 74 20 72 |linking,| don't r|
|000053b0| 65 71 75 65 73 74 0a 58 | 09 09 09 09 20 2a 20 61 |equest.X|.... * a|
|000053c0| 6e 6f 74 68 65 72 20 2a | 2f 0a 58 09 62 6c 69 6e |nother *|/.X.blin|
|000053d0| 6b 69 64 20 3d 20 58 74 | 41 70 70 41 64 64 54 69 |kid = Xt|AppAddTi|
|000053e0| 6d 65 4f 75 74 28 74 6f | 6f 6c 5f 61 70 70 2c 20 |meOut(to|ol_app, |
|000053f0| 62 6c 69 6e 6b 5f 74 69 | 6d 65 72 2c 20 28 58 74 |blink_ti|mer, (Xt|
|00005400| 54 69 6d 65 72 43 61 6c | 6c 62 61 63 6b 50 72 6f |TimerCal|lbackPro|
|00005410| 63 29 20 62 6c 69 6e 6b | 2c 0a 58 09 09 09 09 20 |c) blink|,.X.... |
|00005420| 20 28 58 74 50 6f 69 6e | 74 65 72 29 20 4e 55 4c | (XtPoin|ter) NUL|
|00005430| 4c 29 3b 0a 58 09 63 75 | 72 5f 69 73 5f 62 6c 69 |L);.X.cu|r_is_bli|
|00005440| 6e 6b 69 6e 67 20 3d 20 | 54 72 75 65 3b 0a 58 20 |nking = |True;.X |
|00005450| 20 20 20 7d 0a 58 20 20 | 20 20 73 74 6f 70 5f 62 | }.X | stop_b|
|00005460| 6c 69 6e 6b 69 6e 67 20 | 3d 20 46 61 6c 73 65 3b |linking |= False;|
|00005470| 0a 58 7d 0a 58 0a 58 73 | 74 61 74 69 63 20 69 6e |.X}.X.Xs|tatic in|
|00005480| 74 0a 58 74 75 72 6e 5f | 6f 66 66 5f 62 6c 69 6e |t.Xturn_|off_blin|
|00005490| 6b 69 6e 67 5f 63 75 72 | 73 6f 72 28 29 0a 58 7b |king_cur|sor().X{|
|000054a0| 0a 58 20 20 20 20 69 66 | 20 28 63 75 72 73 6f 72 |.X if| (cursor|
|000054b0| 5f 6f 6e 29 0a 58 09 65 | 72 61 73 65 28 63 75 72 |_on).X.e|rase(cur|
|000054c0| 73 6f 72 5f 78 2c 20 63 | 75 72 73 6f 72 5f 79 29 |sor_x, c|ursor_y)|
|000054d0| 3b 0a 58 20 20 20 20 73 | 74 6f 70 5f 62 6c 69 6e |;.X s|top_blin|
|000054e0| 6b 69 6e 67 20 3d 20 54 | 72 75 65 3b 0a 58 7d 0a |king = T|rue;.X}.|
|000054f0| 58 0a 58 73 74 61 74 69 | 63 09 09 58 74 54 69 6d |X.Xstati|c..XtTim|
|00005500| 65 72 43 61 6c 6c 62 61 | 63 6b 50 72 6f 63 0a 58 |erCallba|ckProc.X|
|00005510| 62 6c 69 6e 6b 28 63 6c | 69 65 6e 74 5f 64 61 74 |blink(cl|ient_dat|
|00005520| 61 2c 20 69 64 29 0a 58 | 20 20 20 20 58 74 50 6f |a, id).X| XtPo|
|00005530| 69 6e 74 65 72 09 20 20 | 20 20 63 6c 69 65 6e 74 |inter. | client|
|00005540| 5f 64 61 74 61 3b 0a 58 | 20 20 20 20 58 74 49 6e |_data;.X| XtIn|
|00005550| 74 65 72 76 61 6c 49 64 | 20 20 20 2a 69 64 3b 0a |tervalId| *id;.|
|00005560| 58 7b 0a 58 20 20 20 20 | 69 66 20 28 21 73 74 6f |X{.X |if (!sto|
|00005570| 70 5f 62 6c 69 6e 6b 69 | 6e 67 29 20 7b 0a 58 09 |p_blinki|ng) {.X.|
|00005580| 69 66 20 28 63 75 72 73 | 6f 72 5f 69 73 5f 6d 6f |if (curs|or_is_mo|
|00005590| 76 69 6e 67 29 0a 58 09 | 20 20 20 20 72 65 74 75 |ving).X.| retu|
|000055a0| 72 6e 20 28 30 29 3b 0a | 58 09 69 66 20 28 63 75 |rn (0);.|X.if (cu|
|000055b0| 72 73 6f 72 5f 6f 6e 29 | 20 7b 0a 58 09 20 20 20 |rsor_on)| {.X. |
|000055c0| 20 65 72 61 73 65 28 63 | 75 72 73 6f 72 5f 78 2c | erase(c|ursor_x,|
|000055d0| 20 63 75 72 73 6f 72 5f | 79 29 3b 0a 58 09 20 20 | cursor_|y);.X. |
|000055e0| 20 20 63 75 72 73 6f 72 | 5f 6f 6e 20 3d 20 30 3b | cursor|_on = 0;|
|000055f0| 0a 58 09 7d 20 65 6c 73 | 65 20 7b 0a 58 09 20 20 |.X.} els|e {.X. |
|00005600| 20 20 64 72 61 77 28 63 | 75 72 73 6f 72 5f 78 2c | draw(c|ursor_x,|
|00005610| 20 63 75 72 73 6f 72 5f | 79 29 3b 0a 58 09 20 20 | cursor_|y);.X. |
|00005620| 20 20 63 75 72 73 6f 72 | 5f 6f 6e 20 3d 20 31 3b | cursor|_on = 1;|
|00005630| 0a 58 09 7d 0a 58 09 62 | 6c 69 6e 6b 69 64 20 3d |.X.}.X.b|linkid =|
|00005640| 20 58 74 41 70 70 41 64 | 64 54 69 6d 65 4f 75 74 | XtAppAd|dTimeOut|
|00005650| 28 74 6f 6f 6c 5f 61 70 | 70 2c 20 62 6c 69 6e 6b |(tool_ap|p, blink|
|00005660| 5f 74 69 6d 65 72 2c 20 | 28 58 74 54 69 6d 65 72 |_timer, |(XtTimer|
|00005670| 43 61 6c 6c 62 61 63 6b | 50 72 6f 63 29 20 62 6c |Callback|Proc) bl|
|00005680| 69 6e 6b 2c 0a 58 09 09 | 09 09 20 20 28 58 74 50 |ink,.X..|.. (XtP|
|00005690| 6f 69 6e 74 65 72 29 20 | 4e 55 4c 4c 29 3b 0a 58 |ointer) |NULL);.X|
|000056a0| 20 20 20 20 7d 20 65 6c | 73 65 20 7b 0a 58 09 73 | } el|se {.X.s|
|000056b0| 74 6f 70 5f 62 6c 69 6e | 6b 69 6e 67 20 3d 20 46 |top_blin|king = F|
|000056c0| 61 6c 73 65 3b 09 2f 2a | 20 73 69 67 6e 61 6c 20 |alse;./*| signal |
|000056d0| 74 68 61 74 20 77 65 27 | 76 65 20 73 74 6f 70 70 |that we'|ve stopp|
|000056e0| 65 64 20 2a 2f 0a 58 09 | 63 75 72 5f 69 73 5f 62 |ed */.X.|cur_is_b|
|000056f0| 6c 69 6e 6b 69 6e 67 20 | 3d 20 46 61 6c 73 65 3b |linking |= False;|
|00005700| 0a 58 20 20 20 20 7d 0a | 58 20 20 20 20 72 65 74 |.X }.|X ret|
|00005710| 75 72 6e 20 28 30 29 3b | 0a 58 7d 0a 58 0a 58 73 |urn (0);|.X}.X.Xs|
|00005720| 74 61 74 69 63 20 69 6e | 74 0a 58 6d 6f 76 65 5f |tatic in|t.Xmove_|
|00005730| 62 6c 69 6e 6b 69 6e 67 | 5f 63 75 72 73 6f 72 28 |blinking|_cursor(|
|00005740| 78 2c 20 79 29 0a 58 20 | 20 20 20 69 6e 74 09 09 |x, y).X | int..|
|00005750| 20 20 20 20 78 2c 20 79 | 3b 0a 58 7b 0a 58 20 20 | x, y|;.X{.X |
|00005760| 20 20 63 75 72 73 6f 72 | 5f 69 73 5f 6d 6f 76 69 | cursor|_is_movi|
|00005770| 6e 67 20 3d 20 31 3b 0a | 58 20 20 20 20 69 66 20 |ng = 1;.|X if |
|00005780| 28 63 75 72 73 6f 72 5f | 6f 6e 29 0a 58 09 65 72 |(cursor_|on).X.er|
|00005790| 61 73 65 28 63 75 72 73 | 6f 72 5f 78 2c 20 63 75 |ase(curs|or_x, cu|
|000057a0| 72 73 6f 72 5f 79 29 3b | 0a 58 20 20 20 20 63 75 |rsor_y);|.X cu|
|000057b0| 72 73 6f 72 5f 78 20 3d | 20 78 3b 0a 58 20 20 20 |rsor_x =| x;.X |
|000057c0| 20 63 75 72 73 6f 72 5f | 79 20 3d 20 79 3b 0a 58 | cursor_|y = y;.X|
|000057d0| 20 20 20 20 64 72 61 77 | 28 63 75 72 73 6f 72 5f | draw|(cursor_|
|000057e0| 78 2c 20 63 75 72 73 6f | 72 5f 79 29 3b 0a 58 20 |x, curso|r_y);.X |
|000057f0| 20 20 20 63 75 72 73 6f | 72 5f 6f 6e 20 3d 20 31 | curso|r_on = 1|
|00005800| 3b 0a 58 20 20 20 20 63 | 75 72 73 6f 72 5f 69 73 |;.X c|ursor_is|
|00005810| 5f 6d 6f 76 69 6e 67 20 | 3d 20 30 3b 0a 58 7d 0a |_moving |= 0;.X}.|
|00005820| 58 0a 58 72 65 6c 6f 61 | 64 5f 74 65 78 74 5f 66 |X.Xreloa|d_text_f|
|00005830| 73 74 72 75 63 74 73 28 | 29 0a 58 7b 0a 58 20 20 |structs(|).X{.X |
|00005840| 20 20 46 5f 74 65 78 74 | 09 20 20 20 2a 74 3b 0a | F_text|. *t;.|
|00005850| 58 0a 58 20 20 20 20 2f | 2a 20 72 65 6c 6f 61 64 |X.X /|* reload|
|00005860| 20 74 68 65 20 63 6f 6d | 70 6f 75 6e 64 20 6f 62 | the com|pound ob|
|00005870| 6a 65 63 74 73 27 20 74 | 65 78 74 73 20 2a 2f 0a |jects' t|exts */.|
|00005880| 58 20 20 20 20 72 65 6c | 6f 61 64 5f 63 6f 6d 70 |X rel|oad_comp|
|00005890| 6f 75 6e 64 66 6f 6e 74 | 28 6f 62 6a 65 63 74 73 |oundfont|(objects|
|000058a0| 2e 63 6f 6d 70 6f 75 6e | 64 73 29 3b 0a 58 20 20 |.compoun|ds);.X |
|000058b0| 20 20 2f 2a 20 61 6e 64 | 20 74 68 65 20 73 65 70 | /* and| the sep|
|000058c0| 61 72 61 74 65 20 74 65 | 78 74 73 20 2a 2f 0a 58 |arate te|xts */.X|
|000058d0| 20 20 20 20 66 6f 72 20 | 28 74 3d 6f 62 6a 65 63 | for |(t=objec|
|000058e0| 74 73 2e 74 65 78 74 73 | 3b 20 74 20 21 3d 20 4e |ts.texts|; t != N|
|000058f0| 55 4c 4c 3b 20 74 20 3d | 20 74 2d 3e 6e 65 78 74 |ULL; t =| t->next|
|00005900| 29 0a 58 09 72 65 6c 6f | 61 64 5f 74 65 78 74 5f |).X.relo|ad_text_|
|00005910| 66 73 74 72 75 63 74 28 | 74 29 3b 0a 58 7d 0a 58 |fstruct(|t);.X}.X|
|00005920| 0a 58 2f 2a 0a 58 20 2a | 20 52 65 6c 6f 61 64 20 |.X/*.X *| Reload |
|00005930| 74 68 65 20 66 6f 6e 74 | 20 73 74 72 75 63 74 75 |the font| structu|
|00005940| 72 65 20 66 6f 72 20 74 | 65 78 74 73 20 69 6e 20 |re for t|exts in |
|00005950| 63 6f 6d 70 6f 75 6e 64 | 73 2e 0a 58 20 2a 2f 0a |compound|s..X */.|
|00005960| 58 0a 58 72 65 6c 6f 61 | 64 5f 63 6f 6d 70 6f 75 |X.Xreloa|d_compou|
|00005970| 6e 64 66 6f 6e 74 28 63 | 6f 6d 70 6f 75 6e 64 73 |ndfont(c|ompounds|
|00005980| 29 0a 58 20 20 20 20 46 | 5f 63 6f 6d 70 6f 75 6e |).X F|_compoun|
|00005990| 64 09 20 20 20 2a 63 6f | 6d 70 6f 75 6e 64 73 3b |d. *co|mpounds;|
|000059a0| 0a 58 7b 0a 58 20 20 20 | 20 46 5f 63 6f 6d 70 6f |.X{.X | F_compo|
|000059b0| 75 6e 64 09 20 20 20 2a | 63 3b 0a 58 20 20 20 20 |und. *|c;.X |
|000059c0| 46 5f 74 65 78 74 09 20 | 20 20 2a 74 3b 0a 58 0a |F_text. | *t;.X.|
|000059d0| 58 20 20 20 20 66 6f 72 | 20 28 63 20 3d 20 63 6f |X for| (c = co|
|000059e0| 6d 70 6f 75 6e 64 73 3b | 20 63 20 21 3d 20 4e 55 |mpounds;| c != NU|
|000059f0| 4c 4c 3b 20 63 20 3d 20 | 63 2d 3e 6e 65 78 74 29 |LL; c = |c->next)|
|00005a00| 20 7b 0a 58 09 72 65 6c | 6f 61 64 5f 63 6f 6d 70 | {.X.rel|oad_comp|
|00005a10| 6f 75 6e 64 66 6f 6e 74 | 28 63 2d 3e 63 6f 6d 70 |oundfont|(c->comp|
|00005a20| 6f 75 6e 64 73 29 3b 0a | 58 09 66 6f 72 20 28 74 |ounds);.|X.for (t|
|00005a30| 3d 63 2d 3e 74 65 78 74 | 73 3b 20 74 20 21 3d 20 |=c->text|s; t != |
|00005a40| 4e 55 4c 4c 3b 20 74 20 | 3d 20 74 2d 3e 6e 65 78 |NULL; t |= t->nex|
|00005a50| 74 29 0a 58 09 20 20 20 | 20 72 65 6c 6f 61 64 5f |t).X. | reload_|
|00005a60| 74 65 78 74 5f 66 73 74 | 72 75 63 74 28 74 29 3b |text_fst|ruct(t);|
|00005a70| 0a 58 20 20 20 20 7d 0a | 58 7d 0a 58 0a 58 72 65 |.X }.|X}.X.Xre|
|00005a80| 6c 6f 61 64 5f 74 65 78 | 74 5f 66 73 74 72 75 63 |load_tex|t_fstruc|
|00005a90| 74 28 74 29 0a 58 20 20 | 20 20 46 5f 74 65 78 74 |t(t).X | F_text|
|00005aa0| 09 20 20 20 2a 74 3b 0a | 58 7b 0a 58 20 20 20 20 |. *t;.|X{.X |
|00005ab0| 74 2d 3e 66 6f 6e 74 73 | 74 72 75 63 74 20 3d 20 |t->fonts|truct = |
|00005ac0| 6c 6f 6f 6b 66 6f 6e 74 | 28 78 5f 66 6f 6e 74 6e |lookfont|(x_fontn|
|00005ad0| 75 6d 28 74 2d 3e 66 6c | 61 67 73 2c 20 74 2d 3e |um(t->fl|ags, t->|
|00005ae0| 66 6f 6e 74 29 2c 20 0a | 58 09 09 09 72 6f 75 6e |font), .|X...roun|
|00005af0| 64 28 74 2d 3e 73 69 7a | 65 2a 7a 6f 6f 6d 73 63 |d(t->siz|e*zoomsc|
|00005b00| 61 6c 65 29 2c 20 74 2d | 3e 61 6e 67 6c 65 29 3b |ale), t-|>angle);|
|00005b10| 0a 58 7d 0a 45 4e 44 5f | 4f 46 5f 46 49 4c 45 0a |.X}.END_|OF_FILE.|
|00005b20| 69 66 20 74 65 73 74 20 | 32 31 31 39 33 20 2d 6e |if test |21193 -n|
|00005b30| 65 20 60 77 63 20 2d 63 | 20 3c 27 64 5f 74 65 78 |e `wc -c| <'d_tex|
|00005b40| 74 2e 63 27 60 3b 20 74 | 68 65 6e 0a 20 20 20 20 |t.c'`; t|hen. |
|00005b50| 65 63 68 6f 20 73 68 61 | 72 3a 20 5c 22 27 64 5f |echo sha|r: \"'d_|
|00005b60| 74 65 78 74 2e 63 27 5c | 22 20 75 6e 70 61 63 6b |text.c'\|" unpack|
|00005b70| 65 64 20 77 69 74 68 20 | 77 72 6f 6e 67 20 73 69 |ed with |wrong si|
|00005b80| 7a 65 21 0a 66 69 0a 23 | 20 65 6e 64 20 6f 66 20 |ze!.fi.#| end of |
|00005b90| 27 64 5f 74 65 78 74 2e | 63 27 0a 66 69 0a 69 66 |'d_text.|c'.fi.if|
|00005ba0| 20 74 65 73 74 20 2d 66 | 20 27 75 5f 65 6c 61 73 | test -f| 'u_elas|
|00005bb0| 74 69 63 2e 63 27 20 2d | 61 20 22 24 7b 31 7d 22 |tic.c' -|a "${1}"|
|00005bc0| 20 21 3d 20 22 2d 63 22 | 20 3b 20 74 68 65 6e 20 | != "-c"| ; then |
|00005bd0| 0a 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 57 69 |. echo |shar: Wi|
|00005be0| 6c 6c 20 6e 6f 74 20 63 | 6c 6f 62 62 65 72 20 65 |ll not c|lobber e|
|00005bf0| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 5c 22 27 |xisting |file \"'|
|00005c00| 75 5f 65 6c 61 73 74 69 | 63 2e 63 27 5c 22 0a 65 |u_elasti|c.c'\".e|
|00005c10| 6c 73 65 0a 65 63 68 6f | 20 73 68 61 72 3a 20 45 |lse.echo| shar: E|
|00005c20| 78 74 72 61 63 74 69 6e | 67 20 5c 22 27 75 5f 65 |xtractin|g \"'u_e|
|00005c30| 6c 61 73 74 69 63 2e 63 | 27 5c 22 20 5c 28 32 30 |lastic.c|'\" \(20|
|00005c40| 34 33 35 20 63 68 61 72 | 61 63 74 65 72 73 5c 29 |435 char|acters\)|
|00005c50| 0a 73 65 64 20 22 73 2f | 5e 58 2f 2f 22 20 3e 27 |.sed "s/|^X//" >'|
|00005c60| 75 5f 65 6c 61 73 74 69 | 63 2e 63 27 20 3c 3c 27 |u_elasti|c.c' <<'|
|00005c70| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 27 0a 58 2f 2a |END_OF_F|ILE'.X/*|
|00005c80| 0a 58 20 2a 20 46 49 47 | 20 3a 20 46 61 63 69 6c |.X * FIG| : Facil|
|00005c90| 69 74 79 20 66 6f 72 20 | 49 6e 74 65 72 61 63 74 |ity for |Interact|
|00005ca0| 69 76 65 20 47 65 6e 65 | 72 61 74 69 6f 6e 20 6f |ive Gene|ration o|
|00005cb0| 66 20 66 69 67 75 72 65 | 73 0a 58 20 2a 20 43 6f |f figure|s.X * Co|
|00005cc0| 70 79 72 69 67 68 74 20 | 28 63 29 20 31 39 38 35 |pyright |(c) 1985|
|00005cd0| 20 62 79 20 53 75 70 6f | 6a 20 53 75 74 61 6e 74 | by Supo|j Sutant|
|00005ce0| 68 61 76 69 62 75 6c 0a | 58 20 2a 0a 58 20 2a 20 |havibul.|X *.X * |
|00005cf0| 22 50 65 72 6d 69 73 73 | 69 6f 6e 20 74 6f 20 75 |"Permiss|ion to u|
|00005d00| 73 65 2c 20 63 6f 70 79 | 2c 20 6d 6f 64 69 66 79 |se, copy|, modify|
|00005d10| 2c 20 64 69 73 74 72 69 | 62 75 74 65 2c 20 61 6e |, distri|bute, an|
|00005d20| 64 20 73 65 6c 6c 20 74 | 68 69 73 20 73 6f 66 74 |d sell t|his soft|
|00005d30| 77 61 72 65 20 61 6e 64 | 20 69 74 73 0a 58 20 2a |ware and| its.X *|
|00005d40| 20 64 6f 63 75 6d 65 6e | 74 61 74 69 6f 6e 20 66 | documen|tation f|
|00005d50| 6f 72 20 61 6e 79 20 70 | 75 72 70 6f 73 65 20 69 |or any p|urpose i|
|00005d60| 73 20 68 65 72 65 62 79 | 20 67 72 61 6e 74 65 64 |s hereby| granted|
|00005d70| 20 77 69 74 68 6f 75 74 | 20 66 65 65 2c 20 70 72 | without| fee, pr|
|00005d80| 6f 76 69 64 65 64 20 74 | 68 61 74 0a 58 20 2a 20 |ovided t|hat.X * |
|00005d90| 74 68 65 20 61 62 6f 76 | 65 20 63 6f 70 79 72 69 |the abov|e copyri|
|00005da0| 67 68 74 20 6e 6f 74 69 | 63 65 20 61 70 70 65 61 |ght noti|ce appea|
|00005db0| 72 20 69 6e 20 61 6c 6c | 20 63 6f 70 69 65 73 20 |r in all| copies |
|00005dc0| 61 6e 64 20 74 68 61 74 | 20 62 6f 74 68 20 74 68 |and that| both th|
|00005dd0| 65 20 63 6f 70 79 72 69 | 67 68 74 0a 58 20 2a 20 |e copyri|ght.X * |
|00005de0| 6e 6f 74 69 63 65 20 61 | 6e 64 20 74 68 69 73 20 |notice a|nd this |
|00005df0| 70 65 72 6d 69 73 73 69 | 6f 6e 20 6e 6f 74 69 63 |permissi|on notic|
|00005e00| 65 20 61 70 70 65 61 72 | 20 69 6e 20 73 75 70 70 |e appear| in supp|
|00005e10| 6f 72 74 69 6e 67 20 64 | 6f 63 75 6d 65 6e 74 61 |orting d|ocumenta|
|00005e20| 74 69 6f 6e 2e 20 0a 58 | 20 2a 20 4e 6f 20 72 65 |tion. .X| * No re|
|00005e30| 70 72 65 73 65 6e 74 61 | 74 69 6f 6e 73 20 61 72 |presenta|tions ar|
|00005e40| 65 20 6d 61 64 65 20 61 | 62 6f 75 74 20 74 68 65 |e made a|bout the|
|00005e50| 20 73 75 69 74 61 62 69 | 6c 69 74 79 20 6f 66 20 | suitabi|lity of |
|00005e60| 74 68 69 73 20 73 6f 66 | 74 77 61 72 65 20 66 6f |this sof|tware fo|
|00005e70| 72 20 0a 58 20 2a 20 61 | 6e 79 20 70 75 72 70 6f |r .X * a|ny purpo|
|00005e80| 73 65 2e 20 20 49 74 20 | 69 73 20 70 72 6f 76 69 |se. It |is provi|
|00005e90| 64 65 64 20 22 61 73 20 | 69 73 22 20 77 69 74 68 |ded "as |is" with|
|00005ea0| 6f 75 74 20 65 78 70 72 | 65 73 73 20 6f 72 20 69 |out expr|ess or i|
|00005eb0| 6d 70 6c 69 65 64 20 77 | 61 72 72 61 6e 74 79 2e |mplied w|arranty.|
|00005ec0| 22 0a 58 20 2a 2f 0a 58 | 0a 58 23 69 6e 63 6c 75 |".X */.X|.X#inclu|
|00005ed0| 64 65 20 22 66 69 67 2e | 68 22 0a 58 23 69 6e 63 |de "fig.|h".X#inc|
|00005ee0| 6c 75 64 65 20 22 72 65 | 73 6f 75 72 63 65 73 2e |lude "re|sources.|
|00005ef0| 68 22 0a 58 23 69 6e 63 | 6c 75 64 65 20 22 6d 6f |h".X#inc|lude "mo|
|00005f00| 64 65 2e 68 22 0a 58 23 | 69 6e 63 6c 75 64 65 20 |de.h".X#|include |
|00005f10| 22 6f 62 6a 65 63 74 2e | 68 22 0a 58 23 69 6e 63 |"object.|h".X#inc|
|00005f20| 6c 75 64 65 20 22 70 61 | 69 6e 74 6f 70 2e 68 22 |lude "pa|intop.h"|
|00005f30| 0a 58 23 69 6e 63 6c 75 | 64 65 20 22 75 5f 65 6c |.X#inclu|de "u_el|
|00005f40| 61 73 74 69 63 2e 68 22 | 0a 58 23 69 6e 63 6c 75 |astic.h"|.X#inclu|
|00005f50| 64 65 20 22 77 5f 63 61 | 6e 76 61 73 2e 68 22 0a |de "w_ca|nvas.h".|
|00005f60| 58 23 69 6e 63 6c 75 64 | 65 20 22 77 5f 73 65 74 |X#includ|e "w_set|
|00005f70| 75 70 2e 68 22 0a 58 23 | 69 6e 63 6c 75 64 65 20 |up.h".X#|include |
|00005f80| 22 77 5f 7a 6f 6f 6d 2e | 68 22 0a 58 0a 58 65 78 |"w_zoom.|h".X.Xex|
|00005f90| 74 65 72 6e 20 66 6c 6f | 61 74 09 63 6f 6d 70 75 |tern flo|at.compu|
|00005fa0| 74 65 5f 61 6e 67 6c 65 | 28 29 3b 0a 58 0a 58 2f |te_angle|();.X.X/|
|00005fb0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005fc0| 2a 2a 2a 2a 2a 2a 20 45 | 58 50 4f 52 54 53 20 2a |****** E|XPORTS *|
|00005fd0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2f 0a 58 |********|*****/.X|
|00005fe0| 0a 58 69 6e 74 09 09 63 | 6f 6e 73 74 72 61 69 6e |.Xint..c|onstrain|
|00005ff0| 65 64 3b 0a 58 69 6e 74 | 09 09 66 69 78 5f 78 2c |ed;.Xint|..fix_x,|
|00006000| 20 66 69 78 5f 79 2c 20 | 77 6f 72 6b 5f 6e 75 6d | fix_y, |work_num|
|00006010| 73 69 64 65 73 3b 0a 58 | 66 6c 6f 61 74 09 09 63 |sides;.X|float..c|
|00006020| 75 72 5f 61 6e 67 6c 65 | 3b 0a 58 69 6e 74 09 09 |ur_angle|;.Xint..|
|00006030| 78 31 6f 66 66 2c 20 78 | 32 6f 66 66 2c 20 79 31 |x1off, x|2off, y1|
|00006040| 6f 66 66 2c 20 79 32 6f | 66 66 3b 0a 58 43 75 72 |off, y2o|ff;.XCur|
|00006050| 73 6f 72 09 09 63 75 72 | 5f 6c 61 74 65 78 63 75 |sor..cur|_latexcu|
|00006060| 72 73 6f 72 3b 0a 58 69 | 6e 74 09 09 66 72 6f 6d |rsor;.Xi|nt..from|
|00006070| 5f 78 2c 20 66 72 6f 6d | 5f 79 3b 0a 58 64 6f 75 |_x, from|_y;.Xdou|
|00006080| 62 6c 65 09 09 63 6f 73 | 61 2c 20 73 69 6e 61 3b |ble..cos|a, sina;|
|00006090| 0a 58 69 6e 74 09 09 6d | 6f 76 65 64 70 6f 69 6e |.Xint..m|ovedpoin|
|000060a0| 74 5f 6e 75 6d 3b 0a 58 | 46 5f 70 6f 69 6e 74 09 |t_num;.X|F_point.|
|000060b0| 20 20 20 20 20 20 20 2a | 6c 65 66 74 5f 70 6f 69 | *|left_poi|
|000060c0| 6e 74 2c 20 2a 72 69 67 | 68 74 5f 70 6f 69 6e 74 |nt, *rig|ht_point|
|000060d0| 3b 0a 58 0a 58 2f 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |;.X.X/**|********|
|000060e0| 2a 2a 2a 2a 2a 2a 20 4c | 4f 43 41 4c 20 2a 2a 2a |****** L|OCAL ***|
|000060f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2f 0a 58 0a 58 73 74 61 |********|/.X.Xsta|
|00006100| 74 69 63 20 76 6f 69 64 | 09 65 6c 61 73 74 69 63 |tic void|.elastic|
|00006110| 5f 6c 69 6e 6b 73 28 29 | 3b 0a 58 0a 58 2f 2a 2a |_links()|;.X.X/**|
|00006120| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00006130| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 20 42 4f 58 45 53 20 |********|* BOXES |
|00006140| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00006150| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2f 0a 58 0a 58 65 6c |********|*/.X.Xel|
|00006160| 61 73 74 69 63 5f 62 6f | 78 28 78 31 2c 20 79 31 |astic_bo|x(x1, y1|
|00006170| 2c 20 78 32 2c 20 79 32 | 29 0a 58 20 20 20 20 69 |, x2, y2|).X i|
|00006180| 6e 74 09 09 20 20 20 20 | 78 31 2c 20 79 31 2c 20 |nt.. |x1, y1, |
|00006190| 78 32 2c 20 79 32 3b 0a | 58 7b 0a 58 20 20 20 20 |x2, y2;.|X{.X |
|000061a0| 2f 2a 20 6c 69 6e 65 5f | 73 74 79 6c 65 20 3d 20 |/* line_|style = |
|000061b0| 52 55 42 42 45 52 5f 4c | 49 4e 45 20 73 6f 20 74 |RUBBER_L|INE so t|
|000061c0| 68 61 74 20 77 65 20 64 | 6f 6e 27 74 20 73 63 61 |hat we d|on't sca|
|000061d0| 6c 65 20 69 74 20 2a 2f | 0a 58 20 20 20 20 70 77 |le it */|.X pw|
|000061e0| 5f 76 65 63 74 6f 72 28 | 63 61 6e 76 61 73 5f 77 |_vector(|canvas_w|
|000061f0| 69 6e 2c 20 78 31 2c 20 | 79 31 2c 20 78 31 2c 20 |in, x1, |y1, x1, |
|00006200| 79 32 2c 20 49 4e 56 5f | 50 41 49 4e 54 2c 20 31 |y2, INV_|PAINT, 1|
|00006210| 2c 20 52 55 42 42 45 52 | 5f 4c 49 4e 45 2c 20 30 |, RUBBER|_LINE, 0|
|00006220| 2e 30 2c 0a 58 09 20 20 | 20 20 20 20 44 45 46 41 |.0,.X. | DEFA|
|00006230| 55 4c 54 5f 43 4f 4c 4f | 52 29 3b 0a 58 20 20 20 |ULT_COLO|R);.X |
|00006240| 20 70 77 5f 76 65 63 74 | 6f 72 28 63 61 6e 76 61 | pw_vect|or(canva|
|00006250| 73 5f 77 69 6e 2c 20 78 | 31 2c 20 79 32 2c 20 78 |s_win, x|1, y2, x|
|00006260| 32 2c 20 79 32 2c 20 49 | 4e 56 5f 50 41 49 4e 54 |2, y2, I|NV_PAINT|
|00006270| 2c 20 31 2c 20 52 55 42 | 42 45 52 5f 4c 49 4e 45 |, 1, RUB|BER_LINE|
|00006280| 2c 20 30 2e 30 2c 0a 58 | 09 20 20 20 20 20 20 44 |, 0.0,.X|. D|
|00006290| 45 46 41 55 4c 54 5f 43 | 4f 4c 4f 52 29 3b 0a 58 |EFAULT_C|OLOR);.X|
|000062a0| 20 20 20 20 70 77 5f 76 | 65 63 74 6f 72 28 63 61 | pw_v|ector(ca|
|000062b0| 6e 76 61 73 5f 77 69 6e | 2c 20 78 32 2c 20 79 32 |nvas_win|, x2, y2|
|000062c0| 2c 20 78 32 2c 20 79 31 | 2c 20 49 4e 56 5f 50 41 |, x2, y1|, INV_PA|
|000062d0| 49 4e 54 2c 20 31 2c 20 | 52 55 42 42 45 52 5f 4c |INT, 1, |RUBBER_L|
|000062e0| 49 4e 45 2c 20 30 2e 30 | 2c 0a 58 09 20 20 20 20 |INE, 0.0|,.X. |
|000062f0| 20 20 44 45 46 41 55 4c | 54 5f 43 4f 4c 4f 52 29 | DEFAUL|T_COLOR)|
|00006300| 3b 0a 58 20 20 20 20 70 | 77 5f 76 65 63 74 6f 72 |;.X p|w_vector|
|00006310| 28 63 61 6e 76 61 73 5f | 77 69 6e 2c 20 78 32 2c |(canvas_|win, x2,|
|00006320| 20 79 31 2c 20 78 31 2c | 20 79 31 2c 20 49 4e 56 | y1, x1,| y1, INV|
|00006330| 5f 50 41 49 4e 54 2c 20 | 31 2c 20 52 55 42 42 45 |_PAINT, |1, RUBBE|
|00006340| 52 5f 4c 49 4e 45 2c 20 | 30 2e 30 2c 0a 58 09 20 |R_LINE, |0.0,.X. |
|00006350| 20 20 20 20 20 44 45 46 | 41 55 4c 54 5f 43 4f 4c | DEF|AULT_COL|
|00006360| 4f 52 29 3b 0a 58 7d 0a | 58 0a 58 65 6c 61 73 74 |OR);.X}.|X.Xelast|
|00006370| 69 63 5f 6d 6f 76 65 62 | 6f 78 28 29 0a 58 7b 0a |ic_moveb|ox().X{.|
|00006380| 58 20 20 20 20 72 65 67 | 69 73 74 65 72 20 69 6e |X reg|ister in|
|00006390| 74 20 20 20 20 78 31 2c | 20 79 31 2c 20 78 32 2c |t x1,| y1, x2,|
|000063a0| 20 79 32 3b 0a 58 0a 58 | 20 20 20 20 78 31 20 3d | y2;.X.X| x1 =|
|000063b0| 20 63 75 72 5f 78 20 2b | 20 78 31 6f 66 66 3b 0a | cur_x +| x1off;.|
|000063c0| 58 20 20 20 20 78 32 20 | 3d 20 63 75 72 5f 78 20 |X x2 |= cur_x |
|000063d0| 2b 20 78 32 6f 66 66 3b | 0a 58 20 20 20 20 79 31 |+ x2off;|.X y1|
|000063e0| 20 3d 20 63 75 72 5f 79 | 20 2b 20 79 31 6f 66 66 | = cur_y| + y1off|
|000063f0| 3b 0a 58 20 20 20 20 79 | 32 20 3d 20 63 75 72 5f |;.X y|2 = cur_|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.