home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume10 / lemming / part02 < prev    next >
SHell self-extracting ARchive  |  1987-08-05  |  36.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


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

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news text default
99% file C source text default
98% file C source, ASCII text default
100% checkBytes Printable ASCII default
100% dexmagic PrintFox/Pagefox WEAK default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/news default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 50 61 74 68 3a 20 75 75 | 6e 65 74 21 72 73 0a 46 |Path: uu|net!rs.F|
|00000010| 72 6f 6d 3a 20 72 73 40 | 75 75 6e 65 74 2e 55 55 |rom: rs@|uunet.UU|
|00000020| 2e 4e 45 54 20 28 52 69 | 63 68 20 53 61 6c 7a 29 |.NET (Ri|ch Salz)|
|00000030| 0a 4e 65 77 73 67 72 6f | 75 70 73 3a 20 63 6f 6d |.Newsgro|ups: com|
|00000040| 70 2e 73 6f 75 72 63 65 | 73 2e 75 6e 69 78 0a 53 |p.source|s.unix.S|
|00000050| 75 62 6a 65 63 74 3a 20 | 76 31 30 69 30 39 32 3a |ubject: |v10i092:|
|00000060| 20 20 41 20 67 72 61 70 | 68 69 63 73 20 65 64 69 | A grap|hics edi|
|00000070| 74 6f 72 2c 20 50 61 72 | 74 30 32 2f 30 34 0a 4d |tor, Par|t02/04.M|
|00000080| 65 73 73 61 67 65 2d 49 | 44 3a 20 3c 37 37 38 40 |essage-I|D: <778@|
|00000090| 75 75 6e 65 74 2e 55 55 | 2e 4e 45 54 3e 0a 44 61 |uunet.UU|.NET>.Da|
|000000a0| 74 65 3a 20 36 20 41 75 | 67 20 38 37 20 32 30 3a |te: 6 Au|g 87 20:|
|000000b0| 32 38 3a 31 30 20 47 4d | 54 0a 4f 72 67 61 6e 69 |28:10 GM|T.Organi|
|000000c0| 7a 61 74 69 6f 6e 3a 20 | 55 55 4e 45 54 20 43 6f |zation: |UUNET Co|
|000000d0| 6d 6d 75 6e 69 63 61 74 | 69 6f 6e 73 20 53 65 72 |mmunicat|ions Ser|
|000000e0| 76 69 63 65 73 2c 20 41 | 72 6c 69 6e 67 74 6f 6e |vices, A|rlington|
|000000f0| 2c 20 56 41 0a 4c 69 6e | 65 73 3a 20 31 38 30 30 |, VA.Lin|es: 1800|
|00000100| 0a 41 70 70 72 6f 76 65 | 64 3a 20 72 73 40 75 75 |.Approve|d: rs@uu|
|00000110| 6e 65 74 2e 55 55 2e 4e | 45 54 0a 0a 53 75 62 6d |net.UU.N|ET..Subm|
|00000120| 69 74 74 65 64 2d 62 79 | 3a 20 22 41 6c 61 6e 20 |itted-by|: "Alan |
|00000130| 57 2e 20 50 61 65 74 68 | 22 20 3c 61 77 70 61 65 |W. Paeth|" <awpae|
|00000140| 74 68 25 77 61 74 63 67 | 6c 2e 77 61 74 65 72 6c |th%watcg|l.waterl|
|00000150| 6f 6f 2e 65 64 75 40 52 | 45 4c 41 59 2e 43 53 2e |oo.edu@R|ELAY.CS.|
|00000160| 4e 45 54 3e 0a 50 6f 73 | 74 69 6e 67 2d 6e 75 6d |NET>.Pos|ting-num|
|00000170| 62 65 72 3a 20 56 6f 6c | 75 6d 65 20 31 30 2c 20 |ber: Vol|ume 10, |
|00000180| 49 73 73 75 65 20 39 32 | 0a 41 72 63 68 69 76 65 |Issue 92|.Archive|
|00000190| 2d 6e 61 6d 65 3a 20 6c | 65 6d 6d 69 6e 67 2f 50 |-name: l|emming/P|
|000001a0| 61 72 74 30 32 0a 0a 23 | 21 2f 62 69 6e 2f 73 68 |art02..#|!/bin/sh|
|000001b0| 0a 23 20 54 68 69 73 20 | 69 73 20 61 20 73 68 65 |.# This |is a she|
|000001c0| 6c 6c 20 61 72 63 68 69 | 76 65 2c 20 6d 65 61 6e |ll archi|ve, mean|
|000001d0| 69 6e 67 3a 0a 23 20 31 | 2e 20 52 65 6d 6f 76 65 |ing:.# 1|. Remove|
|000001e0| 20 65 76 65 72 79 74 68 | 69 6e 67 20 61 62 6f 76 | everyth|ing abov|
|000001f0| 65 20 74 68 65 20 23 21 | 2f 62 69 6e 2f 73 68 20 |e the #!|/bin/sh |
|00000200| 6c 69 6e 65 2e 0a 23 20 | 32 2e 20 53 61 76 65 20 |line..# |2. Save |
|00000210| 74 68 65 20 72 65 73 75 | 6c 74 69 6e 67 20 74 65 |the resu|lting te|
|00000220| 78 74 20 69 6e 20 61 20 | 66 69 6c 65 2e 0a 23 20 |xt in a |file..# |
|00000230| 33 2e 20 45 78 65 63 75 | 74 65 20 74 68 65 20 66 |3. Execu|te the f|
|00000240| 69 6c 65 20 77 69 74 68 | 20 2f 62 69 6e 2f 73 68 |ile with| /bin/sh|
|00000250| 20 28 6e 6f 74 20 63 73 | 68 29 20 74 6f 20 63 72 | (not cs|h) to cr|
|00000260| 65 61 74 65 20 74 68 65 | 20 66 69 6c 65 73 3a 0a |eate the| files:.|
|00000270| 23 09 6c 65 6d 6d 61 69 | 6e 2e 63 0a 23 09 6c 65 |#.lemmai|n.c.#.le|
|00000280| 6d 6d 61 72 6b 2e 63 0a | 23 09 6c 65 6d 6d 69 73 |mmark.c.|#.lemmis|
|00000290| 63 2e 63 0a 23 09 6c 65 | 6d 6f 62 6a 2e 63 0a 23 |c.c.#.le|mobj.c.#|
|000002a0| 09 6c 65 6d 6f 62 6a 73 | 75 70 2e 63 0a 23 09 6c |.lemobjs|up.c.#.l|
|000002b0| 65 6d 6f 70 2e 63 0a 23 | 09 6c 65 6d 70 69 63 2e |emop.c.#|.lempic.|
|000002c0| 63 0a 23 09 6c 65 6d 72 | 63 2e 63 0a 23 09 6c 65 |c.#.lemr|c.c.#.le|
|000002d0| 6d 73 65 6c 65 63 74 2e | 63 0a 23 09 6c 65 6d 73 |mselect.|c.#.lems|
|000002e0| 70 65 63 69 61 6c 2e 63 | 0a 23 09 6c 65 6d 73 74 |pecial.c|.#.lemst|
|000002f0| 61 72 74 2e 63 0a 23 09 | 6c 65 6d 73 74 6f 70 2e |art.c.#.|lemstop.|
|00000300| 63 0a 23 09 6c 65 6d 74 | 65 78 74 2e 63 0a 23 09 |c.#.lemt|ext.c.#.|
|00000310| 6c 65 6d 74 69 63 6b 2e | 63 0a 23 09 6c 65 6d 75 |lemtick.|c.#.lemu|
|00000320| 6e 64 6f 2e 63 0a 23 09 | 6c 65 6d 76 65 63 2e 63 |ndo.c.#.|lemvec.c|
|00000330| 0a 23 09 6c 65 6d 78 2e | 63 0a 23 20 54 68 69 73 |.#.lemx.|c.# This|
|00000340| 20 61 72 63 68 69 76 65 | 20 63 72 65 61 74 65 64 | archive| created|
|00000350| 3a 20 46 72 69 20 4a 75 | 6e 20 31 32 20 31 38 3a |: Fri Ju|n 12 18:|
|00000360| 33 35 3a 31 30 20 31 39 | 38 37 0a 23 20 42 79 3a |35:10 19|87.# By:|
|00000370| 09 77 61 74 63 67 6c 21 | 61 77 70 61 65 74 68 65 |.watcgl!|awpaethe|
|00000380| 78 70 6f 72 74 20 50 41 | 54 48 3b 20 50 41 54 48 |xport PA|TH; PATH|
|00000390| 3d 2f 62 69 6e 3a 24 50 | 41 54 48 0a 69 66 20 74 |=/bin:$P|ATH.if t|
|000003a0| 65 73 74 20 2d 66 20 27 | 6c 65 6d 6d 61 69 6e 2e |est -f '|lemmain.|
|000003b0| 63 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |c'.then.|.echo sh|
|000003c0| 61 72 3a 20 6f 76 65 72 | 2d 77 72 69 74 69 6e 67 |ar: over|-writing|
|000003d0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|000003e0| 27 6c 65 6d 6d 61 69 6e | 2e 63 27 22 0a 66 69 0a |'lemmain|.c'".fi.|
|000003f0| 63 61 74 20 3c 3c 20 5c | 53 48 41 52 5f 45 4f 46 |cat << \|SHAR_EOF|
|00000400| 20 3e 20 27 6c 65 6d 6d | 61 69 6e 2e 63 27 0a 2f | > 'lemm|ain.c'./|
|00000410| 2a 0a 20 2a 20 6c 65 6d | 6d 61 69 6e 2e 63 20 2d |*. * lem|main.c -|
|00000420| 20 6c 69 74 74 6c 65 20 | 65 64 69 74 6f 72 20 66 | little |editor f|
|00000430| 6f 72 20 6d 69 63 65 20 | 61 6e 64 20 6f 74 68 65 |or mice |and othe|
|00000440| 72 20 66 75 72 72 79 20 | 72 6f 64 65 6e 74 73 20 |r furry |rodents |
|00000450| 28 61 6b 61 20 6c 65 6d | 6d 69 6e 67 29 0a 20 2a |(aka lem|ming). *|
|00000460| 0a 20 2a 20 63 6f 70 79 | 72 69 67 68 74 20 28 63 |. * copy|right (c|
|00000470| 29 20 62 79 20 41 6c 61 | 6e 20 57 2e 20 50 61 65 |) by Ala|n W. Pae|
|00000480| 74 68 2c 20 31 39 38 37 | 2e 20 41 6c 6c 20 72 69 |th, 1987|. All ri|
|00000490| 67 68 74 73 20 72 65 73 | 65 72 76 65 64 2e 0a 20 |ghts res|erved.. |
|000004a0| 2a 2f 0a 0a 23 69 6e 63 | 6c 75 64 65 20 22 6c 65 |*/..#inc|lude "le|
|000004b0| 6d 2e 68 22 0a 0a 6d 61 | 69 6e 28 61 72 67 63 2c |m.h"..ma|in(argc,|
|000004c0| 20 61 72 67 76 29 0a 20 | 20 20 20 63 68 61 72 20 | argv). | char |
|000004d0| 2a 2a 61 72 67 76 3b 0a | 20 20 20 20 7b 0a 20 20 |**argv;.| {. |
|000004e0| 20 20 69 6e 74 20 78 2c | 20 79 2c 20 78 75 70 2c | int x,| y, xup,|
|000004f0| 20 79 75 70 2c 20 6d 75 | 70 3b 0a 20 20 20 20 69 | yup, mu|p;. i|
|00000500| 6e 74 20 65 76 65 6e 74 | 2c 20 6e 65 61 72 2c 20 |nt event|, near, |
|00000510| 64 72 61 67 2c 20 64 72 | 61 67 64 69 73 74 3b 0a |drag, dr|agdist;.|
|00000520| 20 20 20 20 63 68 61 72 | 20 63 68 3b 0a 0a 20 20 | char| ch;.. |
|00000530| 20 20 73 74 61 72 74 75 | 70 28 61 72 67 63 2c 20 | startu|p(argc, |
|00000540| 61 72 67 76 29 3b 0a 0a | 20 20 20 20 77 68 69 6c |argv);..| whil|
|00000550| 65 28 31 29 0a 09 7b 0a | 09 65 76 65 6e 74 20 3d |e(1)..{.|.event =|
|00000560| 20 67 65 74 65 76 65 6e | 74 28 26 78 2c 20 26 79 | geteven|t(&x, &y|
|00000570| 2c 20 26 78 75 70 2c 20 | 26 79 75 70 2c 20 26 63 |, &xup, |&yup, &c|
|00000580| 68 29 3b 0a 09 69 66 20 | 28 65 76 65 6e 74 20 21 |h);..if |(event !|
|00000590| 3d 20 4e 4f 45 56 54 29 | 20 6d 73 67 63 6c 65 61 |= NOEVT)| msgclea|
|000005a0| 72 28 29 3b 0a 09 73 77 | 69 74 63 68 28 65 76 65 |r();..sw|itch(eve|
|000005b0| 6e 74 29 0a 09 20 20 20 | 20 7b 0a 63 61 73 65 20 |nt).. | {.case |
|000005c0| 4e 4f 45 56 54 3a 20 69 | 64 6c 65 28 29 3b 20 62 |NOEVT: i|dle(); b|
|000005d0| 72 65 61 6b 3b 0a 63 61 | 73 65 20 41 4c 50 48 41 |reak;.ca|se ALPHA|
|000005e0| 3a 20 63 68 61 72 61 64 | 64 28 6c 69 6e 65 2c 20 |: charad|d(line, |
|000005f0| 63 68 29 3b 20 62 72 65 | 61 6b 3b 0a 63 61 73 65 |ch); bre|ak;.case|
|00000600| 20 43 4e 54 52 4c 3a 20 | 73 77 69 74 63 68 28 63 | CNTRL: |switch(c|
|00000610| 68 29 0a 09 09 7b 0a 09 | 09 63 61 73 65 20 43 28 |h)...{..|.case C(|
|00000620| 51 29 3a 20 69 66 20 28 | 71 75 69 74 63 6f 6e 66 |Q): if (|quitconf|
|00000630| 69 72 6d 28 29 29 20 62 | 72 65 61 6b 3b 0a 09 09 |irm()) b|reak;...|
|00000640| 63 61 73 65 20 43 28 41 | 29 3a 20 61 6c 6c 28 53 |case C(A|): all(S|
|00000650| 45 4c 45 43 54 2c 20 30 | 29 3b 20 62 72 65 61 6b |ELECT, 0|); break|
|00000660| 3b 0a 09 09 63 61 73 65 | 20 43 28 42 29 3a 20 72 |;...case| C(B): r|
|00000670| 65 6d 61 6b 65 28 42 4f | 58 29 3b 20 62 72 65 61 |emake(BO|X); brea|
|00000680| 6b 3b 0a 09 09 63 61 73 | 65 20 43 28 43 29 3a 20 |k;...cas|e C(C): |
|00000690| 63 6f 70 79 73 65 6c 28 | 29 3b 20 62 72 65 61 6b |copysel(|); break|
|000006a0| 3b 0a 09 09 63 61 73 65 | 20 43 28 44 29 3a 20 6f |;...case| C(D): o|
|000006b0| 62 6a 63 6f 6d 70 72 65 | 73 73 28 29 3b 20 61 6c |bjcompre|ss(); al|
|000006c0| 6c 28 44 45 4c 45 54 45 | 2c 20 30 29 3b 20 75 6e |l(DELETE|, 0); un|
|000006d0| 64 6f 3d 55 4e 44 4f 44 | 45 4c 3b 20 62 72 65 61 |do=UNDOD|EL; brea|
|000006e0| 6b 3b 0a 09 09 63 61 73 | 65 20 43 28 45 29 3a 20 |k;...cas|e C(E): |
|000006f0| 72 65 6d 61 6b 65 28 45 | 4c 4c 49 29 3b 20 62 72 |remake(E|LLI); br|
|00000700| 65 61 6b 3b 0a 09 09 63 | 61 73 65 20 43 28 46 29 |eak;...c|ase C(F)|
|00000710| 3a 20 66 6f 72 63 65 61 | 74 74 72 28 29 3b 20 62 |: forcea|ttr(); b|
|00000720| 72 65 61 6b 3b 0a 09 09 | 63 61 73 65 20 43 28 47 |reak;...|case C(G|
|00000730| 29 3a 20 61 64 64 67 72 | 6f 75 70 28 29 3b 20 62 |): addgr|oup(); b|
|00000740| 72 65 61 6b 3b 0a 09 09 | 63 61 73 65 20 27 5c 31 |reak;...|case '\1|
|00000750| 37 37 27 3a 20 09 09 09 | 09 09 2f 2a 20 3c 44 45 |77': ...|../* <DE|
|00000760| 4c 3e 20 20 2a 2f 0a 09 | 09 63 61 73 65 20 43 28 |L> */..|.case C(|
|00000770| 48 29 3a 20 63 68 61 72 | 64 65 6c 28 6c 69 6e 65 |H): char|del(line|
|00000780| 2c 31 29 3b 20 62 72 65 | 61 6b 3b 09 09 2f 2a 20 |,1); bre|ak;../* |
|00000790| 3c 42 53 3e 20 20 2a 2f | 0a 09 09 63 61 73 65 20 |<BS> */|...case |
|000007a0| 43 28 49 29 3a 20 63 79 | 63 6c 65 73 65 6c 65 63 |C(I): cy|cleselec|
|000007b0| 74 28 29 3b 20 6d 61 72 | 6b 64 65 6c 65 74 65 28 |t(); mar|kdelete(|
|000007c0| 29 3b 20 62 72 65 61 6b | 3b 09 2f 2a 20 3c 54 41 |); break|;./* <TA|
|000007d0| 42 3e 20 2a 2f 0a 09 09 | 63 61 73 65 20 43 28 4a |B> */...|case C(J|
|000007e0| 29 3a 09 09 09 09 09 2f | 2a 20 3c 4c 46 3e 2c 20 |):...../|* <LF>, |
|000007f0| 2a 2f 0a 09 09 63 61 73 | 65 20 43 28 4d 29 3a 20 |*/...cas|e C(M): |
|00000800| 69 66 20 28 6d 61 72 6b | 6f 6e 29 20 73 74 72 69 |if (mark|on) stri|
|00000810| 6e 67 61 64 64 28 29 3b | 20 62 72 65 61 6b 3b 09 |ngadd();| break;.|
|00000820| 2f 2a 20 3c 43 52 3e 20 | 20 2a 2f 0a 2f 2a 09 09 |/* <CR> | */./*..|
|00000830| 63 61 73 65 20 43 28 4b | 29 3a 20 63 75 72 76 65 |case C(K|): curve|
|00000840| 69 66 79 28 29 3b 20 62 | 72 65 61 6b 3b 20 2a 2f |ify(); b|reak; */|
|00000850| 0a 09 09 63 61 73 65 20 | 43 28 4c 29 3a 20 72 65 |...case |C(L): re|
|00000860| 64 72 61 77 28 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |draw(); |break;..|
|00000870| 09 63 61 73 65 20 43 28 | 4e 29 3a 20 61 6c 6c 28 |.case C(|N): all(|
|00000880| 44 45 53 45 4c 45 43 54 | 2c 20 30 29 3b 20 62 72 |DESELECT|, 0); br|
|00000890| 65 61 6b 3b 0a 09 09 63 | 61 73 65 20 43 28 4f 29 |eak;...c|ase C(O)|
|000008a0| 3a 20 77 72 69 74 65 70 | 69 63 28 29 3b 20 62 72 |: writep|ic(); br|
|000008b0| 65 61 6b 3b 0a 09 09 63 | 61 73 65 20 43 28 50 29 |eak;...c|ase C(P)|
|000008c0| 3a 20 72 65 6d 6f 76 65 | 67 72 6f 75 70 28 29 3b |: remove|group();|
|000008d0| 20 62 72 65 61 6b 3b 0a | 09 09 63 61 73 65 20 43 | break;.|..case C|
|000008e0| 28 52 29 3a 20 72 65 61 | 64 66 69 6c 65 28 29 3b |(R): rea|dfile();|
|000008f0| 20 62 72 65 61 6b 3b 0a | 09 09 63 61 73 65 20 43 | break;.|..case C|
|00000900| 28 53 29 3a 20 73 70 65 | 63 69 61 6c 66 75 6e 63 |(S): spe|cialfunc|
|00000910| 28 29 3b 20 62 72 65 61 | 6b 3b 0a 09 09 63 61 73 |(); brea|k;...cas|
|00000920| 65 20 43 28 54 29 3a 20 | 74 69 63 6b 73 65 74 28 |e C(T): |tickset(|
|00000930| 29 3b 20 62 72 65 61 6b | 3b 0a 09 09 63 61 73 65 |); break|;...case|
|00000940| 20 43 28 55 29 3a 20 75 | 6e 64 6f 63 6d 64 28 29 | C(U): u|ndocmd()|
|00000950| 3b 20 62 72 65 61 6b 3b | 0a 09 09 63 61 73 65 20 |; break;|...case |
|00000960| 43 28 56 29 3a 20 72 65 | 6d 61 6b 65 28 4c 49 4e |C(V): re|make(LIN|
|00000970| 45 29 3b 20 62 72 65 61 | 6b 3b 0a 09 09 63 61 73 |E); brea|k;...cas|
|00000980| 65 20 43 28 57 29 3a 20 | 77 72 69 74 65 66 69 6c |e C(W): |writefil|
|00000990| 65 28 29 3b 20 62 72 65 | 61 6b 3b 0a 09 09 63 61 |e(); bre|ak;...ca|
|000009a0| 73 65 20 43 28 58 29 3a | 20 63 75 74 6c 69 6e 65 |se C(X):| cutline|
|000009b0| 73 28 29 3b 20 62 72 65 | 61 6b 3b 0a 09 09 63 61 |s(); bre|ak;...ca|
|000009c0| 73 65 20 43 28 5b 29 3a | 20 61 6c 6c 28 44 45 53 |se C([):| all(DES|
|000009d0| 45 4c 45 43 54 2c 20 30 | 29 3b 20 6d 61 72 6b 64 |ELECT, 0|); markd|
|000009e0| 65 6c 65 74 65 28 29 3b | 20 62 72 65 61 6b 3b 20 |elete();| break; |
|000009f0| 2f 2a 20 3c 45 53 43 3e | 20 2a 2f 0a 09 09 63 61 |/* <ESC>| */...ca|
|00000a00| 73 65 20 43 28 5e 29 3a | 20 68 65 6c 70 28 29 3b |se C(^):| help();|
|00000a10| 20 62 72 65 61 6b 3b 09 | 09 09 2f 2a 20 5e 5e 20 | break;.|../* ^^ |
|00000a20| 2a 2f 0a 09 09 64 65 66 | 61 75 6c 74 3a 20 20 20 |*/...def|ault: |
|00000a30| 62 72 65 61 6b 3b 0a 09 | 09 7d 20 62 72 65 61 6b |break;..|.} break|
|00000a40| 3b 0a 63 61 73 65 20 4d | 4f 55 53 45 3a 20 6d 61 |;.case M|OUSE: ma|
|00000a50| 72 6b 6f 62 6a 20 3d 20 | 6f 62 6a 6e 65 61 72 61 |rkobj = |objneara|
|00000a60| 6e 79 28 78 2c 20 79 29 | 3b 0a 09 20 20 20 20 6e |ny(x, y)|;.. n|
|00000a70| 65 61 72 20 3d 20 6d 61 | 72 6b 6f 6e 20 26 26 20 |ear = ma|rkon && |
|00000a80| 28 64 69 73 74 28 78 2c | 20 79 2c 20 6d 61 72 6b |(dist(x,| y, mark|
|00000a90| 78 2c 20 6d 61 72 6b 79 | 29 20 3c 20 4d 41 52 4b |x, marky|) < MARK|
|00000aa0| 54 4f 4c 29 3b 0a 09 20 | 20 20 20 64 72 61 67 64 |TOL);.. | dragd|
|00000ab0| 69 73 74 20 3d 20 6e 65 | 61 72 20 3f 20 28 61 6e |ist = ne|ar ? (an|
|00000ac0| 79 73 65 6c 20 3f 20 30 | 20 3a 20 4d 41 52 4b 54 |ysel ? 0| : MARKT|
|00000ad0| 4f 4c 29 20 3a 20 44 52 | 41 47 54 4f 4c 3b 0a 09 |OL) : DR|AGTOL;..|
|00000ae0| 20 20 20 20 64 72 61 67 | 20 3d 20 64 69 73 74 28 | drag| = dist(|
|00000af0| 78 2c 79 2c 78 75 70 2c | 79 75 70 29 20 3e 20 64 |x,y,xup,|yup) > d|
|00000b00| 72 61 67 64 69 73 74 3b | 0a 09 20 20 20 20 69 66 |ragdist;|.. if|
|00000b10| 20 28 6d 61 72 6b 6f 62 | 6a 29 20 6f 62 6a 65 63 | (markob|j) objec|
|00000b20| 74 61 6c 69 67 6e 28 6d | 61 72 6b 6f 62 6a 2c 20 |talign(m|arkobj, |
|00000b30| 26 78 2c 20 26 79 29 3b | 20 65 6c 73 65 20 73 70 |&x, &y);| else sp|
|00000b40| 61 63 65 61 6c 69 67 6e | 28 26 78 2c 20 26 79 29 |acealign|(&x, &y)|
|00000b50| 3b 0a 09 20 20 20 20 69 | 66 20 28 64 72 61 67 29 |;.. i|f (drag)|
|00000b60| 09 09 2f 2a 20 64 72 61 | 67 20 73 74 75 66 66 20 |../* dra|g stuff |
|00000b70| 2a 2f 0a 09 09 7b 0a 09 | 09 69 66 20 28 6e 65 61 |*/...{..|.if (nea|
|00000b80| 72 29 0a 09 09 20 20 20 | 20 7b 0a 09 09 20 20 20 |r)... | {... |
|00000b90| 20 6d 61 72 6b 68 69 64 | 65 28 29 3b 09 09 2f 2a | markhid|e();../*|
|00000ba0| 20 66 6f 72 20 63 6c 65 | 61 6e 65 72 20 75 70 64 | for cle|aner upd|
|00000bb0| 61 74 65 20 2a 2f 0a 09 | 09 20 20 20 20 6d 75 70 |ate */..|. mup|
|00000bc0| 20 3d 20 6f 62 6a 6e 65 | 61 72 61 6e 79 28 78 75 | = objne|arany(xu|
|00000bd0| 70 2c 20 79 75 70 29 3b | 0a 09 09 20 20 20 20 69 |p, yup);|... i|
|00000be0| 66 20 28 6d 75 70 20 26 | 26 20 28 6d 75 70 20 21 |f (mup &|& (mup !|
|00000bf0| 3d 20 6d 61 72 6b 6f 62 | 6a 29 29 20 6f 62 6a 65 |= markob|j)) obje|
|00000c00| 63 74 61 6c 69 67 6e 28 | 6d 75 70 2c 20 26 78 75 |ctalign(|mup, &xu|
|00000c10| 70 2c 20 26 79 75 70 29 | 3b 0a 09 09 20 20 20 20 |p, &yup)|;... |
|00000c20| 65 6c 73 65 20 73 70 61 | 63 65 61 6c 69 67 6e 28 |else spa|cealign(|
|00000c30| 26 78 75 70 2c 20 26 79 | 75 70 29 3b 0a 09 09 20 |&xup, &y|up);... |
|00000c40| 20 20 20 69 66 20 28 61 | 6e 79 73 65 6c 29 20 6d | if (a|nysel) m|
|00000c50| 6f 76 65 73 65 6c 65 63 | 74 28 78 75 70 2d 6d 61 |oveselec|t(xup-ma|
|00000c60| 72 6b 78 2c 20 79 75 70 | 2d 6d 61 72 6b 79 29 3b |rkx, yup|-marky);|
|00000c70| 0a 09 09 20 20 20 20 65 | 6c 73 65 20 69 66 20 28 |... e|lse if (|
|00000c80| 6d 61 72 6b 6f 62 6a 29 | 20 74 75 67 75 6e 73 65 |markobj)| tugunse|
|00000c90| 6c 65 63 74 28 6d 61 72 | 6b 78 2c 20 6d 61 72 6b |lect(mar|kx, mark|
|00000ca0| 79 2c 20 78 75 70 2c 20 | 79 75 70 29 3b 0a 09 09 |y, xup, |yup);...|
|00000cb0| 20 20 20 20 6d 61 72 6b | 75 70 64 61 74 65 28 78 | mark|update(x|
|00000cc0| 75 70 2c 20 79 75 70 29 | 3b 0a 09 09 20 20 20 20 |up, yup)|;... |
|00000cd0| 7d 0a 09 09 65 6c 73 65 | 20 72 65 63 74 73 65 6c |}...else| rectsel|
|00000ce0| 65 63 74 28 78 2c 20 79 | 2c 20 78 75 70 2c 20 79 |ect(x, y|, xup, y|
|00000cf0| 75 70 29 3b 0a 09 09 7d | 0a 09 20 20 20 20 65 6c |up);...}|.. el|
|00000d00| 73 65 09 09 2f 2a 20 64 | 72 61 77 20 28 6d 6f 76 |se../* d|raw (mov|
|00000d10| 65 20 6d 61 72 6b 29 20 | 63 61 73 65 73 20 2a 2f |e mark) |cases */|
|00000d20| 0a 09 09 7b 0a 09 09 69 | 66 20 28 6e 65 61 72 29 |...{...i|f (near)|
|00000d30| 20 6d 61 72 6b 64 65 6c | 65 74 65 28 29 3b 0a 09 | markdel|ete();..|
|00000d40| 09 65 6c 73 65 0a 09 09 | 20 20 20 20 7b 0a 09 09 |.else...| {...|
|00000d50| 20 20 20 20 6d 61 72 6b | 68 69 64 65 28 29 3b 09 | mark|hide();.|
|00000d60| 09 2f 2a 20 66 6f 72 20 | 63 6c 65 61 6e 65 72 20 |./* for |cleaner |
|00000d70| 75 70 64 61 74 65 20 2a | 2f 0a 09 09 20 20 20 20 |update *|/... |
|00000d80| 69 66 20 28 6d 61 72 6b | 6f 6e 20 26 26 20 21 61 |if (mark|on && !a|
|00000d90| 6e 79 73 65 6c 29 20 6c | 69 6e 65 61 64 64 28 6d |nysel) l|ineadd(m|
|00000da0| 61 72 6b 78 2c 20 6d 61 | 72 6b 79 2c 20 78 2c 20 |arkx, ma|rky, x, |
|00000db0| 79 29 3b 0a 09 09 20 20 | 20 20 6d 61 72 6b 75 70 |y);... | markup|
|00000dc0| 64 61 74 65 28 78 2c 20 | 79 29 3b 0a 09 09 20 20 |date(x, |y);... |
|00000dd0| 20 20 7d 0a 09 09 7d 0a | 09 20 20 20 20 62 72 65 | }...}.|. bre|
|00000de0| 61 6b 3b 0a 09 20 20 20 | 20 7d 0a 09 7d 0a 20 20 |ak;.. | }..}. |
|00000df0| 20 20 7d 0a 53 48 41 52 | 5f 45 4f 46 0a 69 66 20 | }.SHAR|_EOF.if |
|00000e00| 74 65 73 74 20 2d 66 20 | 27 6c 65 6d 6d 61 72 6b |test -f |'lemmark|
|00000e10| 2e 63 27 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |.c'.then|..echo s|
|00000e20| 68 61 72 3a 20 6f 76 65 | 72 2d 77 72 69 74 69 6e |har: ove|r-writin|
|00000e30| 67 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |g existi|ng file |
|00000e40| 22 27 6c 65 6d 6d 61 72 | 6b 2e 63 27 22 0a 66 69 |"'lemmar|k.c'".fi|
|00000e50| 0a 63 61 74 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |.cat << |\SHAR_EO|
|00000e60| 46 20 3e 20 27 6c 65 6d | 6d 61 72 6b 2e 63 27 0a |F > 'lem|mark.c'.|
|00000e70| 2f 2a 0a 20 2a 20 6c 65 | 6d 6d 61 72 6b 2e 63 20 |/*. * le|mmark.c |
|00000e80| 2d 20 6d 61 72 6b 20 63 | 6f 6e 74 72 6f 6c 0a 20 |- mark c|ontrol. |
|00000e90| 2a 0a 20 2a 20 63 6f 70 | 79 72 69 67 68 74 20 28 |*. * cop|yright (|
|00000ea0| 63 29 20 62 79 20 41 6c | 61 6e 20 57 2e 20 50 61 |c) by Al|an W. Pa|
|00000eb0| 65 74 68 2c 20 31 39 38 | 37 2e 20 41 6c 6c 20 72 |eth, 198|7. All r|
|00000ec0| 69 67 68 74 73 20 72 65 | 73 65 72 76 65 64 2e 0a |ights re|served..|
|00000ed0| 20 2a 2f 0a 0a 23 69 6e | 63 6c 75 64 65 20 22 6c | */..#in|clude "l|
|00000ee0| 65 6d 2e 68 22 0a 0a 6d | 61 72 6b 61 64 64 28 78 |em.h"..m|arkadd(x|
|00000ef0| 2c 20 79 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 6d |, y). | {. m|
|00000f00| 61 72 6b 64 72 61 77 28 | 78 2c 20 79 2c 20 6d 61 |arkdraw(|x, y, ma|
|00000f10| 72 6b 6f 62 6a 20 3f 20 | 4d 41 52 4b 4f 4e 4f 42 |rkobj ? |MARKONOB|
|00000f20| 4a 43 4f 4c 20 3a 20 4d | 41 52 4b 4f 4e 52 45 47 |JCOL : M|ARKONREG|
|00000f30| 43 4f 4c 29 3b 0a 20 20 | 20 20 6d 61 72 6b 78 20 |COL);. | markx |
|00000f40| 3d 20 78 3b 0a 20 20 20 | 20 6d 61 72 6b 79 20 3d |= x;. | marky =|
|00000f50| 20 79 3b 0a 20 20 20 20 | 6d 61 72 6b 6f 6e 20 3d | y;. |markon =|
|00000f60| 20 31 3b 0a 20 20 20 20 | 7d 0a 0a 6d 61 72 6b 64 | 1;. |}..markd|
|00000f70| 65 6c 65 74 65 28 29 0a | 20 20 20 20 7b 0a 20 20 |elete().| {. |
|00000f80| 20 20 6d 61 72 6b 68 69 | 64 65 28 29 3b 0a 20 20 | markhi|de();. |
|00000f90| 20 20 6d 61 72 6b 6f 6e | 20 3d 20 30 3b 0a 20 20 | markon| = 0;. |
|00000fa0| 20 20 7d 0a 0a 6d 61 72 | 6b 68 69 64 65 28 29 0a | }..mar|khide().|
|00000fb0| 20 20 20 20 7b 0a 20 20 | 20 20 69 66 20 28 6d 61 | {. | if (ma|
|00000fc0| 72 6b 6f 6e 29 20 6d 61 | 72 6b 64 72 61 77 28 6d |rkon) ma|rkdraw(m|
|00000fd0| 61 72 6b 78 2c 20 6d 61 | 72 6b 79 2c 20 4d 41 52 |arkx, ma|rky, MAR|
|00000fe0| 4b 4f 46 46 43 4f 4c 29 | 3b 0a 20 20 20 20 7d 0a |KOFFCOL)|;. }.|
|00000ff0| 0a 6d 61 72 6b 75 70 64 | 61 74 65 28 78 2c 20 79 |.markupd|ate(x, y|
|00001000| 29 0a 20 20 20 20 7b 0a | 20 20 20 20 6d 61 72 6b |). {.| mark|
|00001010| 64 65 6c 65 74 65 28 29 | 3b 0a 20 20 20 20 6d 61 |delete()|;. ma|
|00001020| 72 6b 6f 62 6a 20 3d 20 | 6f 62 6a 6e 65 61 72 61 |rkobj = |objneara|
|00001030| 6e 79 28 78 2c 20 79 29 | 3b 0a 20 20 20 20 6d 61 |ny(x, y)|;. ma|
|00001040| 72 6b 61 64 64 28 78 2c | 20 79 29 3b 0a 20 20 20 |rkadd(x,| y);. |
|00001050| 20 7d 0a 0a 6d 61 72 6b | 64 72 61 77 28 78 2c 20 | }..mark|draw(x, |
|00001060| 79 2c 20 63 6f 6c 29 0a | 20 20 20 20 7b 0a 20 20 |y, col).| {. |
|00001070| 20 20 64 72 61 77 76 65 | 63 28 78 2d 4d 41 52 4b | drawve|c(x-MARK|
|00001080| 53 49 5a 45 2c 20 79 2c | 20 78 2b 4d 41 52 4b 53 |SIZE, y,| x+MARKS|
|00001090| 49 5a 45 2c 20 79 2c 20 | 63 6f 6c 2c 20 31 2c 20 |IZE, y, |col, 1, |
|000010a0| 45 4d 50 48 4e 4f 4e 45 | 29 3b 0a 20 20 20 20 64 |EMPHNONE|);. d|
|000010b0| 72 61 77 76 65 63 28 78 | 2c 20 79 2d 4d 41 52 4b |rawvec(x|, y-MARK|
|000010c0| 53 49 5a 45 2c 20 78 2c | 20 79 2b 4d 41 52 4b 53 |SIZE, x,| y+MARKS|
|000010d0| 49 5a 45 2c 20 63 6f 6c | 2c 20 31 2c 20 45 4d 50 |IZE, col|, 1, EMP|
|000010e0| 48 4e 4f 4e 45 29 3b 0a | 20 20 20 20 7d 0a 53 48 |HNONE);.| }.SH|
|000010f0| 41 52 5f 45 4f 46 0a 69 | 66 20 74 65 73 74 20 2d |AR_EOF.i|f test -|
|00001100| 66 20 27 6c 65 6d 6d 69 | 73 63 2e 63 27 0a 74 68 |f 'lemmi|sc.c'.th|
|00001110| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 6f |en..echo| shar: o|
|00001120| 76 65 72 2d 77 72 69 74 | 69 6e 67 20 65 78 69 73 |ver-writ|ing exis|
|00001130| 74 69 6e 67 20 66 69 6c | 65 20 22 27 6c 65 6d 6d |ting fil|e "'lemm|
|00001140| 69 73 63 2e 63 27 22 0a | 66 69 0a 63 61 74 20 3c |isc.c'".|fi.cat <|
|00001150| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 6c |< \SHAR_|EOF > 'l|
|00001160| 65 6d 6d 69 73 63 2e 63 | 27 0a 2f 2a 0a 20 2a 20 |emmisc.c|'./*. * |
|00001170| 6c 65 6d 6d 69 73 63 2e | 63 20 2d 20 6c 6f 77 2d |lemmisc.|c - low-|
|00001180| 6c 65 76 65 6c 20 72 6f | 75 74 69 6e 65 73 0a 20 |level ro|utines. |
|00001190| 2a 0a 20 2a 20 63 6f 70 | 79 72 69 67 68 74 20 28 |*. * cop|yright (|
|000011a0| 63 29 20 62 79 20 41 6c | 61 6e 20 57 2e 20 50 61 |c) by Al|an W. Pa|
|000011b0| 65 74 68 2c 20 31 39 38 | 37 2e 20 41 6c 6c 20 72 |eth, 198|7. All r|
|000011c0| 69 67 68 74 73 20 72 65 | 73 65 72 76 65 64 2e 0a |ights re|served..|
|000011d0| 20 2a 2f 0a 0a 23 69 6e | 63 6c 75 64 65 20 22 6c | */..#in|clude "l|
|000011e0| 65 6d 2e 68 22 0a 0a 72 | 65 64 72 61 77 28 29 0a |em.h"..r|edraw().|
|000011f0| 20 20 20 20 7b 0a 20 20 | 20 20 69 6e 74 20 69 3b | {. | int i;|
|00001200| 0a 20 20 20 20 65 72 61 | 73 65 28 29 3b 0a 20 20 |. era|se();. |
|00001210| 20 20 69 66 20 28 74 69 | 63 6b 66 6c 61 67 29 20 | if (ti|ckflag) |
|00001220| 74 69 63 6b 64 72 61 77 | 28 29 3b 0a 20 20 20 20 |tickdraw|();. |
|00001230| 66 6f 72 6f 62 6a 65 63 | 74 73 0a 09 7b 0a 09 6f |forobjec|ts..{..o|
|00001240| 62 6a 65 63 74 6f 70 28 | 69 2c 20 55 4e 44 45 4c |bjectop(|i, UNDEL|
|00001250| 2c 20 55 4e 44 45 4c 29 | 3b 0a 09 6f 62 6a 65 63 |, UNDEL)|;..objec|
|00001260| 74 6f 70 28 69 2c 20 53 | 45 4c 2c 20 53 45 4c 29 |top(i, S|EL, SEL)|
|00001270| 3b 0a 09 7d 0a 20 20 20 | 20 69 66 20 28 6d 61 72 |;..}. | if (mar|
|00001280| 6b 6f 6e 29 20 6d 61 72 | 6b 61 64 64 28 6d 61 72 |kon) mar|kadd(mar|
|00001290| 6b 78 2c 20 6d 61 72 6b | 79 29 3b 0a 20 20 20 20 |kx, mark|y);. |
|000012a0| 7d 0a 0a 69 64 6c 65 28 | 29 0a 20 20 20 20 7b 0a |}..idle(|). {.|
|000012b0| 20 20 20 20 7d 0a 53 48 | 41 52 5f 45 4f 46 0a 69 | }.SH|AR_EOF.i|
|000012c0| 66 20 74 65 73 74 20 2d | 66 20 27 6c 65 6d 6f 62 |f test -|f 'lemob|
|000012d0| 6a 2e 63 27 0a 74 68 65 | 6e 0a 09 65 63 68 6f 20 |j.c'.the|n..echo |
|000012e0| 73 68 61 72 3a 20 6f 76 | 65 72 2d 77 72 69 74 69 |shar: ov|er-writi|
|000012f0| 6e 67 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |ng exist|ing file|
|00001300| 20 22 27 6c 65 6d 6f 62 | 6a 2e 63 27 22 0a 66 69 | "'lemob|j.c'".fi|
|00001310| 0a 63 61 74 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |.cat << |\SHAR_EO|
|00001320| 46 20 3e 20 27 6c 65 6d | 6f 62 6a 2e 63 27 0a 2f |F > 'lem|obj.c'./|
|00001330| 2a 0a 20 2a 20 6c 65 6d | 6f 62 6a 2e 63 20 2d 20 |*. * lem|obj.c - |
|00001340| 6f 62 6a 65 63 74 20 64 | 69 73 70 61 74 63 68 0a |object d|ispatch.|
|00001350| 20 2a 0a 20 2a 20 63 6f | 70 79 72 69 67 68 74 20 | *. * co|pyright |
|00001360| 28 63 29 20 62 79 20 41 | 6c 61 6e 20 57 2e 20 50 |(c) by A|lan W. P|
|00001370| 61 65 74 68 2c 20 31 39 | 38 37 2e 20 41 6c 6c 20 |aeth, 19|87. All |
|00001380| 72 69 67 68 74 73 20 72 | 65 73 65 72 76 65 64 2e |rights r|eserved.|
|00001390| 0a 20 2a 2f 0a 0a 23 69 | 6e 63 6c 75 64 65 20 22 |. */..#i|nclude "|
|000013a0| 6c 65 6d 2e 68 22 0a 0a | 6f 62 6a 72 65 73 69 7a |lem.h"..|objresiz|
|000013b0| 65 28 69 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 73 |e(i). | {. s|
|000013c0| 77 69 74 63 68 28 4f 74 | 79 70 65 29 0a 09 7b 0a |witch(Ot|ype)..{.|
|000013d0| 09 63 61 73 65 20 4c 49 | 4e 45 3a 20 6c 69 6e 65 |.case LI|NE: line|
|000013e0| 72 65 73 69 7a 65 28 69 | 29 3b 20 62 72 65 61 6b |resize(i|); break|
|000013f0| 3b 0a 09 63 61 73 65 20 | 54 45 58 54 3a 20 74 65 |;..case |TEXT: te|
|00001400| 78 74 72 65 73 69 7a 65 | 28 69 29 3b 20 62 72 65 |xtresize|(i); bre|
|00001410| 61 6b 3b 0a 09 63 61 73 | 65 20 42 4f 58 3a 20 20 |ak;..cas|e BOX: |
|00001420| 62 6f 78 72 65 73 69 7a | 65 28 69 29 3b 20 62 72 |boxresiz|e(i); br|
|00001430| 65 61 6b 3b 0a 09 63 61 | 73 65 20 45 4c 4c 49 3a |eak;..ca|se ELLI:|
|00001440| 20 65 6c 6c 69 72 65 73 | 69 7a 65 28 69 29 3b 20 | ellires|ize(i); |
|00001450| 62 72 65 61 6b 3b 0a 09 | 7d 0a 20 20 20 20 7d 0a |break;..|}. }.|
|00001460| 0a 6f 62 6a 6e 65 61 72 | 70 74 28 69 2c 20 78 2c |.objnear|pt(i, x,|
|00001470| 20 79 29 0a 20 20 20 20 | 7b 0a 20 20 20 20 73 77 | y). |{. sw|
|00001480| 69 74 63 68 28 4f 74 79 | 70 65 29 0a 09 7b 0a 09 |itch(Oty|pe)..{..|
|00001490| 63 61 73 65 20 4c 49 4e | 45 3a 20 72 65 74 75 72 |case LIN|E: retur|
|000014a0| 6e 28 6c 69 6e 65 6e 65 | 61 72 70 74 28 69 2c 20 |n(linene|arpt(i, |
|000014b0| 78 2c 20 79 29 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |x, y)); |break;..|
|000014c0| 63 61 73 65 20 54 45 58 | 54 3a 20 72 65 74 75 72 |case TEX|T: retur|
|000014d0| 6e 28 74 65 78 74 6e 65 | 61 72 70 74 28 69 2c 20 |n(textne|arpt(i, |
|000014e0| 78 2c 20 79 29 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |x, y)); |break;..|
|000014f0| 63 61 73 65 20 42 4f 58 | 3a 20 20 72 65 74 75 72 |case BOX|: retur|
|00001500| 6e 28 20 62 6f 78 6e 65 | 61 72 70 74 28 69 2c 20 |n( boxne|arpt(i, |
|00001510| 78 2c 20 79 29 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |x, y)); |break;..|
|00001520| 63 61 73 65 20 45 4c 4c | 49 3a 20 72 65 74 75 72 |case ELL|I: retur|
|00001530| 6e 28 65 6c 6c 69 6e 65 | 61 72 70 74 28 69 2c 20 |n(elline|arpt(i, |
|00001540| 78 2c 20 79 29 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |x, y)); |break;..|
|00001550| 7d 0a 20 20 20 20 7d 0a | 0a 6f 62 6a 69 6e 72 65 |}. }.|.objinre|
|00001560| 63 74 28 69 2c 20 78 6c | 2c 20 79 6c 2c 20 78 68 |ct(i, xl|, yl, xh|
|00001570| 2c 20 79 68 29 0a 20 20 | 20 20 7b 0a 20 20 20 20 |, yh). | {. |
|00001580| 73 77 69 74 63 68 28 4f | 74 79 70 65 29 0a 09 7b |switch(O|type)..{|
|00001590| 0a 09 63 61 73 65 20 54 | 45 58 54 3a 20 72 65 74 |..case T|EXT: ret|
|000015a0| 75 72 6e 28 74 65 78 74 | 69 6e 72 65 63 74 28 69 |urn(text|inrect(i|
|000015b0| 2c 20 78 6c 2c 20 79 6c | 2c 20 78 68 2c 20 79 68 |, xl, yl|, xh, yh|
|000015c0| 29 29 3b 20 62 72 65 61 | 6b 3b 0a 09 63 61 73 65 |)); brea|k;..case|
|000015d0| 20 4c 49 4e 45 3a 20 72 | 65 74 75 72 6e 28 6c 69 | LINE: r|eturn(li|
|000015e0| 6e 65 69 6e 72 65 63 74 | 28 69 2c 20 78 6c 2c 20 |neinrect|(i, xl, |
|000015f0| 79 6c 2c 20 78 68 2c 20 | 79 68 29 29 3b 20 62 72 |yl, xh, |yh)); br|
|00001600| 65 61 6b 3b 0a 09 63 61 | 73 65 20 42 4f 58 3a 20 |eak;..ca|se BOX: |
|00001610| 20 72 65 74 75 72 6e 28 | 20 62 6f 78 69 6e 72 65 | return(| boxinre|
|00001620| 63 74 28 69 2c 20 78 6c | 2c 20 79 6c 2c 20 78 68 |ct(i, xl|, yl, xh|
|00001630| 2c 20 79 68 29 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |, yh)); |break;..|
|00001640| 63 61 73 65 20 45 4c 4c | 49 3a 20 72 65 74 75 72 |case ELL|I: retur|
|00001650| 6e 28 65 6c 6c 69 69 6e | 72 65 63 74 28 69 2c 20 |n(elliin|rect(i, |
|00001660| 78 6c 2c 20 79 6c 2c 20 | 78 68 2c 20 79 68 29 29 |xl, yl, |xh, yh))|
|00001670| 3b 20 62 72 65 61 6b 3b | 0a 09 7d 0a 20 20 20 20 |; break;|..}. |
|00001680| 7d 0a 0a 6f 62 6a 63 61 | 6e 74 75 67 28 69 2c 20 |}..objca|ntug(i, |
|00001690| 78 2c 20 79 29 0a 20 20 | 20 20 7b 0a 20 20 20 20 |x, y). | {. |
|000016a0| 73 77 69 74 63 68 28 4f | 74 79 70 65 29 0a 09 7b |switch(O|type)..{|
|000016b0| 0a 09 63 61 73 65 20 54 | 45 58 54 3a 20 72 65 74 |..case T|EXT: ret|
|000016c0| 75 72 6e 28 74 65 78 74 | 63 61 6e 74 75 67 28 69 |urn(text|cantug(i|
|000016d0| 2c 20 78 2c 20 79 29 29 | 3b 20 62 72 65 61 6b 3b |, x, y))|; break;|
|000016e0| 0a 09 63 61 73 65 20 4c | 49 4e 45 3a 20 72 65 74 |..case L|INE: ret|
|000016f0| 75 72 6e 28 6c 69 6e 65 | 63 61 6e 74 75 67 28 69 |urn(line|cantug(i|
|00001700| 2c 20 78 2c 20 79 29 29 | 3b 20 62 72 65 61 6b 3b |, x, y))|; break;|
|00001710| 0a 09 63 61 73 65 20 42 | 4f 58 3a 20 20 72 65 74 |..case B|OX: ret|
|00001720| 75 72 6e 28 20 62 6f 78 | 63 61 6e 74 75 67 28 69 |urn( box|cantug(i|
|00001730| 2c 20 78 2c 20 79 29 29 | 3b 20 62 72 65 61 6b 3b |, x, y))|; break;|
|00001740| 0a 09 63 61 73 65 20 45 | 4c 4c 49 3a 20 72 65 74 |..case E|LLI: ret|
|00001750| 75 72 6e 28 65 6c 6c 69 | 63 61 6e 74 75 67 28 69 |urn(elli|cantug(i|
|00001760| 2c 20 78 2c 20 79 29 29 | 3b 20 62 72 65 61 6b 3b |, x, y))|; break;|
|00001770| 0a 09 7d 0a 20 20 20 20 | 7d 0a 0a 6f 62 6a 74 75 |..}. |}..objtu|
|00001780| 67 28 69 2c 20 78 73 2c | 20 79 73 2c 20 78 65 2c |g(i, xs,| ys, xe,|
|00001790| 20 79 65 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 73 | ye). | {. s|
|000017a0| 77 69 74 63 68 28 4f 74 | 79 70 65 29 0a 09 7b 0a |witch(Ot|ype)..{.|
|000017b0| 09 63 61 73 65 20 54 45 | 58 54 3a 20 74 65 78 74 |.case TE|XT: text|
|000017c0| 74 75 67 28 69 2c 20 78 | 73 2c 20 79 73 2c 20 78 |tug(i, x|s, ys, x|
|000017d0| 65 2c 20 79 65 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |e, ye); |break;..|
|000017e0| 63 61 73 65 20 4c 49 4e | 45 3a 20 6c 69 6e 65 74 |case LIN|E: linet|
|000017f0| 75 67 28 69 2c 20 78 73 | 2c 20 79 73 2c 20 78 65 |ug(i, xs|, ys, xe|
|00001800| 2c 20 79 65 29 3b 20 62 | 72 65 61 6b 3b 0a 09 63 |, ye); b|reak;..c|
|00001810| 61 73 65 20 42 4f 58 3a | 20 20 20 62 6f 78 74 75 |ase BOX:| boxtu|
|00001820| 67 28 69 2c 20 78 73 2c | 20 79 73 2c 20 78 65 2c |g(i, xs,| ys, xe,|
|00001830| 20 79 65 29 3b 20 62 72 | 65 61 6b 3b 0a 09 63 61 | ye); br|eak;..ca|
|00001840| 73 65 20 45 4c 4c 49 3a | 20 65 6c 6c 69 74 75 67 |se ELLI:| ellitug|
|00001850| 28 69 2c 20 78 73 2c 20 | 79 73 2c 20 78 65 2c 20 |(i, xs, |ys, xe, |
|00001860| 79 65 29 3b 20 62 72 65 | 61 6b 3b 0a 09 7d 0a 20 |ye); bre|ak;..}. |
|00001870| 20 20 20 7d 0a 0a 6f 62 | 6a 65 63 74 61 6c 69 67 | }..ob|jectalig|
|00001880| 6e 28 69 2c 20 78 2c 20 | 79 29 0a 20 20 20 20 69 |n(i, x, |y). i|
|00001890| 6e 74 20 2a 78 2c 20 2a | 79 3b 0a 20 20 20 20 7b |nt *x, *|y;. {|
|000018a0| 0a 20 20 20 20 73 77 69 | 74 63 68 28 4f 74 79 70 |. swi|tch(Otyp|
|000018b0| 65 29 0a 09 7b 0a 09 63 | 61 73 65 20 54 45 58 54 |e)..{..c|ase TEXT|
|000018c0| 3a 20 74 65 78 74 61 6c | 69 67 6e 28 69 2c 20 78 |: textal|ign(i, x|
|000018d0| 2c 20 79 29 3b 20 62 72 | 65 61 6b 3b 0a 09 63 61 |, y); br|eak;..ca|
|000018e0| 73 65 20 42 4f 58 3a 20 | 20 20 62 6f 78 61 6c 69 |se BOX: | boxali|
|000018f0| 67 6e 28 69 2c 20 78 2c | 20 79 29 3b 20 62 72 65 |gn(i, x,| y); bre|
|00001900| 61 6b 3b 0a 09 63 61 73 | 65 20 4c 49 4e 45 3a 20 |ak;..cas|e LINE: |
|00001910| 6c 69 6e 65 61 6c 69 67 | 6e 28 69 2c 20 78 2c 20 |linealig|n(i, x, |
|00001920| 79 29 3b 20 62 72 65 61 | 6b 3b 0a 09 63 61 73 65 |y); brea|k;..case|
|00001930| 20 45 4c 4c 49 3a 20 65 | 6c 6c 69 61 6c 69 67 6e | ELLI: e|llialign|
|00001940| 28 69 2c 20 78 2c 20 79 | 29 3b 20 62 72 65 61 6b |(i, x, y|); break|
|00001950| 3b 0a 09 7d 0a 20 20 20 | 20 7d 0a 0a 6f 62 6a 6d |;..}. | }..objm|
|00001960| 6f 76 65 28 69 2c 20 78 | 2c 20 79 29 0a 20 20 20 |ove(i, x|, y). |
|00001970| 20 7b 0a 20 20 20 20 73 | 77 69 74 63 68 28 4f 74 | {. s|witch(Ot|
|00001980| 79 70 65 29 0a 09 7b 0a | 09 63 61 73 65 20 4c 49 |ype)..{.|.case LI|
|00001990| 4e 45 3a 20 6c 69 6e 65 | 6d 6f 76 65 28 69 2c 20 |NE: line|move(i, |
|000019a0| 78 2c 20 79 29 3b 20 62 | 72 65 61 6b 3b 0a 09 63 |x, y); b|reak;..c|
|000019b0| 61 73 65 20 54 45 58 54 | 3a 20 74 65 78 74 6d 6f |ase TEXT|: textmo|
|000019c0| 76 65 28 69 2c 20 78 2c | 20 79 29 3b 20 62 72 65 |ve(i, x,| y); bre|
|000019d0| 61 6b 3b 0a 09 63 61 73 | 65 20 42 4f 58 3a 20 20 |ak;..cas|e BOX: |
|000019e0| 20 62 6f 78 6d 6f 76 65 | 28 69 2c 20 78 2c 20 79 | boxmove|(i, x, y|
|000019f0| 29 3b 20 62 72 65 61 6b | 3b 0a 09 63 61 73 65 20 |); break|;..case |
|00001a00| 45 4c 4c 49 3a 20 65 6c | 6c 69 6d 6f 76 65 28 69 |ELLI: el|limove(i|
|00001a10| 2c 20 78 2c 20 79 29 3b | 20 62 72 65 61 6b 3b 0a |, x, y);| break;.|
|00001a20| 09 7d 0a 20 20 20 20 7d | 0a 0a 6f 62 6a 61 66 66 |.}. }|..objaff|
|00001a30| 69 6e 65 28 69 2c 20 6d | 31 31 2c 20 6d 31 32 2c |ine(i, m|11, m12,|
|00001a40| 20 6d 32 31 2c 20 6d 32 | 32 29 0a 20 20 20 20 66 | m21, m2|2). f|
|00001a50| 6c 6f 61 74 20 6d 31 31 | 2c 20 6d 31 32 2c 20 6d |loat m11|, m12, m|
|00001a60| 32 31 2c 20 6d 32 32 3b | 0a 20 20 20 20 7b 0a 20 |21, m22;|. {. |
|00001a70| 20 20 20 73 77 69 74 63 | 68 28 4f 74 79 70 65 29 | switc|h(Otype)|
|00001a80| 0a 09 7b 0a 09 63 61 73 | 65 20 4c 49 4e 45 3a 20 |..{..cas|e LINE: |
|00001a90| 6c 69 6e 65 61 66 66 69 | 6e 65 28 69 2c 20 6d 31 |lineaffi|ne(i, m1|
|00001aa0| 31 2c 20 6d 31 32 2c 20 | 6d 32 31 2c 20 6d 32 32 |1, m12, |m21, m22|
|00001ab0| 29 3b 20 62 72 65 61 6b | 3b 0a 09 63 61 73 65 20 |); break|;..case |
|00001ac0| 54 45 58 54 3a 20 74 65 | 78 74 61 66 66 69 6e 65 |TEXT: te|xtaffine|
|00001ad0| 28 69 2c 20 6d 31 31 2c | 20 6d 31 32 2c 20 6d 32 |(i, m11,| m12, m2|
|00001ae0| 31 2c 20 6d 32 32 29 3b | 20 62 72 65 61 6b 3b 0a |1, m22);| break;.|
|00001af0| 09 63 61 73 65 20 42 4f | 58 3a 20 20 20 62 6f 78 |.case BO|X: box|
|00001b00| 61 66 66 69 6e 65 28 69 | 2c 20 6d 31 31 2c 20 6d |affine(i|, m11, m|
|00001b10| 31 32 2c 20 6d 32 31 2c | 20 6d 32 32 29 3b 20 62 |12, m21,| m22); b|
|00001b20| 72 65 61 6b 3b 0a 09 63 | 61 73 65 20 45 4c 4c 49 |reak;..c|ase ELLI|
|00001b30| 3a 20 65 6c 6c 69 61 66 | 66 69 6e 65 28 69 2c 20 |: elliaf|fine(i, |
|00001b40| 6d 31 31 2c 20 6d 31 32 | 2c 20 6d 32 31 2c 20 6d |m11, m12|, m21, m|
|00001b50| 32 32 29 3b 20 62 72 65 | 61 6b 3b 0a 09 7d 0a 20 |22); bre|ak;..}. |
|00001b60| 20 20 20 7d 0a 0a 6f 62 | 6a 64 72 61 77 28 69 2c | }..ob|jdraw(i,|
|00001b70| 20 63 6f 6c 29 0a 20 20 | 20 20 7b 0a 20 20 20 20 | col). | {. |
|00001b80| 73 77 69 74 63 68 28 4f | 74 79 70 65 29 0a 09 7b |switch(O|type)..{|
|00001b90| 0a 09 63 61 73 65 20 4c | 49 4e 45 3a 20 6c 69 6e |..case L|INE: lin|
|00001ba0| 65 64 72 61 77 28 69 2c | 20 63 6f 6c 29 3b 20 62 |edraw(i,| col); b|
|00001bb0| 72 65 61 6b 3b 0a 09 63 | 61 73 65 20 54 45 58 54 |reak;..c|ase TEXT|
|00001bc0| 3a 20 74 65 78 74 64 72 | 61 77 28 69 2c 20 63 6f |: textdr|aw(i, co|
|00001bd0| 6c 29 3b 20 62 72 65 61 | 6b 3b 0a 09 63 61 73 65 |l); brea|k;..case|
|00001be0| 20 42 4f 58 3a 20 20 20 | 62 6f 78 64 72 61 77 28 | BOX: |boxdraw(|
|00001bf0| 69 2c 20 63 6f 6c 29 3b | 20 62 72 65 61 6b 3b 0a |i, col);| break;.|
|00001c00| 09 63 61 73 65 20 45 4c | 4c 49 3a 20 65 6c 6c 69 |.case EL|LI: elli|
|00001c10| 64 72 61 77 28 69 2c 20 | 63 6f 6c 29 3b 20 62 72 |draw(i, |col); br|
|00001c20| 65 61 6b 3b 0a 09 7d 0a | 20 20 20 20 7d 0a 53 48 |eak;..}.| }.SH|
|00001c30| 41 52 5f 45 4f 46 0a 69 | 66 20 74 65 73 74 20 2d |AR_EOF.i|f test -|
|00001c40| 66 20 27 6c 65 6d 6f 62 | 6a 73 75 70 2e 63 27 0a |f 'lemob|jsup.c'.|
|00001c50| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00001c60| 20 6f 76 65 72 2d 77 72 | 69 74 69 6e 67 20 65 78 | over-wr|iting ex|
|00001c70| 69 73 74 69 6e 67 20 66 | 69 6c 65 20 22 27 6c 65 |isting f|ile "'le|
|00001c80| 6d 6f 62 6a 73 75 70 2e | 63 27 22 0a 66 69 0a 63 |mobjsup.|c'".fi.c|
|00001c90| 61 74 20 3c 3c 20 5c 53 | 48 41 52 5f 45 4f 46 20 |at << \S|HAR_EOF |
|00001ca0| 3e 20 27 6c 65 6d 6f 62 | 6a 73 75 70 2e 63 27 0a |> 'lemob|jsup.c'.|
|00001cb0| 2f 2a 0a 20 2a 20 6c 65 | 6d 6f 62 6a 73 75 70 2e |/*. * le|mobjsup.|
|00001cc0| 63 20 2d 20 73 75 70 65 | 72 63 6c 61 73 73 20 66 |c - supe|rclass f|
|00001cd0| 6f 72 20 67 65 6e 65 72 | 69 63 20 6f 62 6a 65 63 |or gener|ic objec|
|00001ce0| 74 20 6f 70 65 72 61 74 | 69 6f 6e 73 0a 20 2a 0a |t operat|ions. *.|
|00001cf0| 20 2a 20 63 6f 70 79 72 | 69 67 68 74 20 28 63 29 | * copyr|ight (c)|
|00001d00| 20 62 79 20 41 6c 61 6e | 20 57 2e 20 50 61 65 74 | by Alan| W. Paet|
|00001d10| 68 2c 20 31 39 38 37 2e | 20 41 6c 6c 20 72 69 67 |h, 1987.| All rig|
|00001d20| 68 74 73 20 72 65 73 65 | 72 76 65 64 2e 0a 20 2a |hts rese|rved.. *|
|00001d30| 2f 0a 0a 23 69 6e 63 6c | 75 64 65 20 3c 6d 61 74 |/..#incl|ude <mat|
|00001d40| 68 2e 68 3e 09 09 2f 2a | 20 74 6f 20 64 65 66 69 |h.h>../*| to defi|
|00001d50| 6e 65 20 22 64 6f 75 62 | 6c 65 20 66 6c 6f 6f 72 |ne "doub|le floor|
|00001d60| 28 29 22 20 2a 2f 0a 23 | 69 6e 63 6c 75 64 65 20 |()" */.#|include |
|00001d70| 22 6c 65 6d 2e 68 22 0a | 0a 6f 62 6a 73 75 70 6e |"lem.h".|.objsupn|
|00001d80| 65 61 72 70 74 28 69 2c | 20 78 2c 20 79 29 0a 20 |earpt(i,| x, y). |
|00001d90| 20 20 20 7b 0a 20 20 20 | 20 69 66 20 28 70 74 69 | {. | if (pti|
|00001da0| 6e 72 65 63 74 28 78 2c | 20 79 2c 20 4f 78 6c 2c |nrect(x,| y, Oxl,|
|00001db0| 20 4f 79 6c 2c 20 4f 78 | 68 2c 20 4f 79 68 2c 20 | Oyl, Ox|h, Oyh, |
|00001dc0| 4c 49 4e 45 54 4f 4c 29 | 20 3d 3d 20 30 29 20 72 |LINETOL)| == 0) r|
|00001dd0| 65 74 75 72 6e 28 30 29 | 3b 0a 20 20 20 20 72 65 |eturn(0)|;. re|
|00001de0| 74 75 72 6e 28 31 29 3b | 0a 20 20 20 20 7d 0a 0a |turn(1);|. }..|
|00001df0| 6f 62 6a 73 75 70 69 6e | 72 65 63 74 28 69 2c 20 |objsupin|rect(i, |
|00001e00| 78 6c 2c 20 79 6c 2c 20 | 78 68 2c 20 79 68 29 0a |xl, yl, |xh, yh).|
|00001e10| 20 20 20 20 7b 0a 20 20 | 20 20 72 65 74 75 72 6e | {. | return|
|00001e20| 28 70 74 69 6e 72 65 63 | 74 28 4f 78 6c 2c 20 4f |(ptinrec|t(Oxl, O|
|00001e30| 79 6c 2c 20 78 6c 2c 20 | 79 6c 2c 20 78 68 2c 20 |yl, xl, |yl, xh, |
|00001e40| 79 68 2c 20 4c 49 4e 45 | 54 4f 4c 29 20 26 26 0a |yh, LINE|TOL) &&.|
|00001e50| 09 70 74 69 6e 72 65 63 | 74 28 4f 78 68 2c 20 4f |.ptinrec|t(Oxh, O|
|00001e60| 79 68 2c 20 78 6c 2c 20 | 79 6c 2c 20 78 68 2c 20 |yh, xl, |yl, xh, |
|00001e70| 79 68 2c 20 4c 49 4e 45 | 54 4f 4c 29 29 3b 0a 20 |yh, LINE|TOL));. |
|00001e80| 20 20 20 7d 0a 0a 6f 62 | 6a 73 75 70 63 61 6e 74 | }..ob|jsupcant|
|00001e90| 75 67 28 69 2c 20 78 2c | 20 79 29 0a 20 20 20 20 |ug(i, x,| y). |
|00001ea0| 7b 0a 20 20 20 20 72 65 | 74 75 72 6e 28 6f 62 6a |{. re|turn(obj|
|00001eb0| 6e 65 61 72 70 74 28 69 | 2c 20 78 2c 20 79 29 29 |nearpt(i|, x, y))|
|00001ec0| 3b 0a 20 20 20 20 7d 0a | 0a 6f 62 6a 73 75 70 74 |;. }.|.objsupt|
|00001ed0| 75 67 28 69 2c 20 78 73 | 2c 20 79 73 2c 20 78 65 |ug(i, xs|, ys, xe|
|00001ee0| 2c 20 79 65 29 0a 20 20 | 20 20 7b 0a 20 20 20 20 |, ye). | {. |
|00001ef0| 69 66 20 28 64 69 73 74 | 28 4f 78 73 2c 20 4f 79 |if (dist|(Oxs, Oy|
|00001f00| 73 2c 20 78 73 2c 20 79 | 73 29 20 3c 20 54 55 47 |s, xs, y|s) < TUG|
|00001f10| 50 52 4f 58 29 20 6f 62 | 6a 6d 6f 76 65 28 69 2c |PROX) ob|jmove(i,|
|00001f20| 20 78 65 2d 78 73 2c 20 | 79 65 2d 79 73 29 3b 0a | xe-xs, |ye-ys);.|
|00001f30| 20 20 20 20 7d 0a 0a 6f | 62 6a 73 75 70 61 6c 69 | }..o|bjsupali|
|00001f40| 67 6e 28 69 2c 20 78 2c | 20 79 29 0a 20 20 20 20 |gn(i, x,| y). |
|00001f50| 69 6e 74 20 2a 78 2c 20 | 2a 79 3b 0a 20 20 20 20 |int *x, |*y;. |
|00001f60| 7b 0a 20 20 20 20 69 66 | 20 28 64 69 73 74 28 4f |{. if| (dist(O|
|00001f70| 78 73 2c 20 4f 79 73 2c | 20 2a 78 2c 20 2a 79 29 |xs, Oys,| *x, *y)|
|00001f80| 20 3c 20 45 4e 44 54 4f | 4c 29 0a 09 7b 0a 09 2a | < ENDTO|L)..{..*|
|00001f90| 78 20 3d 20 4f 78 73 3b | 0a 09 2a 79 20 3d 20 4f |x = Oxs;|..*y = O|
|00001fa0| 79 73 3b 0a 09 7d 0a 20 | 20 20 20 7d 0a 0a 6f 62 |ys;..}. | }..ob|
|00001fb0| 6a 73 75 70 6d 6f 76 65 | 28 69 2c 20 78 2c 20 79 |jsupmove|(i, x, y|
|00001fc0| 29 0a 20 20 20 20 7b 0a | 20 20 20 20 4f 78 73 20 |). {.| Oxs |
|00001fd0| 2b 3d 20 78 3b 0a 20 20 | 20 20 4f 78 65 20 2b 3d |+= x;. | Oxe +=|
|00001fe0| 20 78 3b 0a 20 20 20 20 | 4f 79 73 20 2b 3d 20 79 | x;. |Oys += y|
|00001ff0| 3b 0a 20 20 20 20 4f 79 | 65 20 2b 3d 20 79 3b 0a |;. Oy|e += y;.|
|00002000| 20 20 20 20 7d 0a 0a 6f | 62 6a 73 75 70 61 66 66 | }..o|bjsupaff|
|00002010| 69 6e 65 28 69 2c 20 6d | 31 31 2c 20 6d 31 32 2c |ine(i, m|11, m12,|
|00002020| 20 6d 32 31 2c 20 6d 32 | 32 2c 20 62 6f 74 68 29 | m21, m2|2, both)|
|00002030| 0a 20 20 20 20 66 6c 6f | 61 74 20 6d 31 31 2c 20 |. flo|at m11, |
|00002040| 6d 31 32 2c 20 6d 32 31 | 2c 20 6d 32 32 3b 0a 20 |m12, m21|, m22;. |
|00002050| 20 20 20 7b 0a 20 20 20 | 20 66 6c 6f 61 74 20 78 | {. | float x|
|00002060| 31 2c 20 79 31 3b 0a 20 | 20 20 20 69 66 20 28 62 |1, y1;. | if (b|
|00002070| 6f 74 68 29 0a 09 7b 0a | 09 78 31 20 3d 20 66 6c |oth)..{.|.x1 = fl|
|00002080| 6f 6f 72 28 28 6d 31 31 | 2a 4f 78 73 20 2b 20 6d |oor((m11|*Oxs + m|
|00002090| 31 32 2a 4f 79 73 29 20 | 2b 20 30 2e 35 29 3b 0a |12*Oys) |+ 0.5);.|
|000020a0| 20 20 20 20 20 20 20 20 | 79 31 20 3d 20 66 6c 6f | |y1 = flo|
|000020b0| 6f 72 28 28 6d 32 31 2a | 4f 78 73 20 2b 20 6d 32 |or((m21*|Oxs + m2|
|000020c0| 32 2a 4f 79 73 29 20 2b | 20 30 2e 35 29 3b 0a 09 |2*Oys) +| 0.5);..|
|000020d0| 4f 78 73 20 3d 20 78 31 | 3b 0a 09 4f 79 73 20 3d |Oxs = x1|;..Oys =|
|000020e0| 20 79 31 3b 0a 09 78 31 | 20 3d 20 66 6c 6f 6f 72 | y1;..x1| = floor|
|000020f0| 28 28 6d 31 31 2a 4f 78 | 65 20 2b 20 6d 31 32 2a |((m11*Ox|e + m12*|
|00002100| 4f 79 65 29 20 2b 20 30 | 2e 35 29 3b 0a 20 20 20 |Oye) + 0|.5);. |
|00002110| 20 20 20 20 20 79 31 20 | 3d 20 66 6c 6f 6f 72 28 | y1 |= floor(|
|00002120| 28 6d 32 31 2a 4f 78 65 | 20 2b 20 6d 32 32 2a 4f |(m21*Oxe| + m22*O|
|00002130| 79 65 29 20 2b 20 30 2e | 35 29 3b 0a 09 4f 78 65 |ye) + 0.|5);..Oxe|
|00002140| 20 3d 20 78 31 3b 0a 09 | 4f 79 65 20 3d 20 79 31 | = x1;..|Oye = y1|
|00002150| 3b 0a 09 7d 0a 20 20 20 | 20 65 6c 73 65 0a 09 7b |;..}. | else..{|
|00002160| 0a 20 20 20 20 20 20 20 | 20 78 31 20 3d 20 66 6c |. | x1 = fl|
|00002170| 6f 6f 72 28 28 6d 31 31 | 2a 4f 78 63 65 6e 20 2b |oor((m11|*Oxcen +|
|00002180| 20 6d 31 32 2a 4f 79 63 | 65 6e 29 20 2b 20 30 2e | m12*Oyc|en) + 0.|
|00002190| 35 29 3b 0a 20 20 20 20 | 20 20 20 20 79 31 20 3d |5);. | y1 =|
|000021a0| 20 66 6c 6f 6f 72 28 28 | 6d 32 31 2a 4f 78 63 65 | floor((|m21*Oxce|
|000021b0| 6e 20 2b 20 6d 32 32 2a | 4f 79 63 65 6e 29 20 2b |n + m22*|Oycen) +|
|000021c0| 20 30 2e 35 29 3b 0a 2f | 2a 0a 20 2a 20 20 6d 6f | 0.5);./|*. * mo|
|000021d0| 76 65 20 6f 6e 6c 79 20 | 74 68 65 20 63 65 6e 74 |ve only |the cent|
|000021e0| 65 72 20 70 6f 69 6e 74 | 2c 20 64 6f 6e 27 74 20 |er point|, don't |
|000021f0| 74 68 65 20 6f 74 68 65 | 72 20 65 6e 64 70 6f 69 |the othe|r endpoi|
|00002200| 6e 74 0a 20 2a 20 28 70 | 72 65 73 75 6d 61 62 6c |nt. * (p|resumabl|
|00002210| 79 20 6f 62 6a 65 63 74 | 20 64 69 6d 65 6e 73 69 |y object| dimensi|
|00002220| 6f 6e 73 20 2d 2d 20 74 | 68 69 73 20 69 73 20 61 |ons -- t|his is a|
|00002230| 20 74 65 78 74 20 65 6c | 65 6d 65 6e 74 29 2e 0a | text el|ement)..|
|00002240| 20 2a 2f 0a 09 6f 62 6a | 6d 6f 76 65 28 69 2c 20 | */..obj|move(i, |
|00002250| 28 69 6e 74 29 28 78 31 | 2d 4f 78 63 65 6e 29 2c |(int)(x1|-Oxcen),|
|00002260| 20 28 69 6e 74 29 28 79 | 31 2d 4f 79 63 65 6e 29 | (int)(y|1-Oycen)|
|00002270| 29 3b 0a 09 7d 0a 20 20 | 20 20 7d 0a 53 48 41 52 |);..}. | }.SHAR|
|00002280| 5f 45 4f 46 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |_EOF.if |test -f |
|00002290| 27 6c 65 6d 6f 70 2e 63 | 27 0a 74 68 65 6e 0a 09 |'lemop.c|'.then..|
|000022a0| 65 63 68 6f 20 73 68 61 | 72 3a 20 6f 76 65 72 2d |echo sha|r: over-|
|000022b0| 77 72 69 74 69 6e 67 20 | 65 78 69 73 74 69 6e 67 |writing |existing|
|000022c0| 20 66 69 6c 65 20 22 27 | 6c 65 6d 6f 70 2e 63 27 | file "'|lemop.c'|
|000022d0| 22 0a 66 69 0a 63 61 74 | 20 3c 3c 20 5c 53 48 41 |".fi.cat| << \SHA|
|000022e0| 52 5f 45 4f 46 20 3e 20 | 27 6c 65 6d 6f 70 2e 63 |R_EOF > |'lemop.c|
|000022f0| 27 0a 2f 2a 0a 20 2a 20 | 6c 65 6d 6f 70 2e 63 20 |'./*. * |lemop.c |
|00002300| 2d 20 6f 70 65 72 61 74 | 65 20 6f 6e 20 6f 62 6a |- operat|e on obj|
|00002310| 65 63 74 73 20 28 61 6e | 64 20 75 70 64 61 74 65 |ects (an|d update|
|00002320| 20 74 68 65 20 64 69 73 | 70 6c 61 79 29 0a 20 2a | the dis|play). *|
|00002330| 0a 20 2a 20 63 6f 70 79 | 72 69 67 68 74 20 28 63 |. * copy|right (c|
|00002340| 29 20 62 79 20 41 6c 61 | 6e 20 57 2e 20 50 61 65 |) by Ala|n W. Pae|
|00002350| 74 68 2c 20 31 39 38 37 | 2e 20 41 6c 6c 20 72 69 |th, 1987|. All ri|
|00002360| 67 68 74 73 20 72 65 73 | 65 72 76 65 64 2e 0a 20 |ghts res|erved.. |
|00002370| 2a 2f 0a 0a 23 69 6e 63 | 6c 75 64 65 20 22 6c 65 |*/..#inc|lude "le|
|00002380| 6d 2e 68 22 0a 0a 6f 62 | 6a 65 63 74 6f 70 28 69 |m.h"..ob|jectop(i|
|00002390| 2c 20 69 6e 73 74 61 74 | 75 73 2c 20 6f 75 74 73 |, instat|us, outs|
|000023a0| 74 61 74 75 73 29 0a 20 | 20 20 20 7b 0a 20 20 20 |tatus). | {. |
|000023b0| 20 69 6e 74 20 63 6f 6c | 3b 0a 20 20 20 20 69 66 | int col|;. if|
|000023c0| 20 28 69 20 26 26 20 28 | 4f 73 74 61 74 20 3d 3d | (i && (|Ostat ==|
|000023d0| 20 69 6e 73 74 61 74 75 | 73 29 29 0a 09 7b 0a 09 | instatu|s))..{..|
|000023e0| 69 66 20 28 20 69 6e 73 | 74 61 74 75 73 20 3d 3d |if ( ins|tatus ==|
|000023f0| 20 53 45 4c 29 20 61 6e | 79 73 65 6c 2d 2d 3b 0a | SEL) an|ysel--;.|
|00002400| 09 69 66 20 28 6f 75 74 | 73 74 61 74 75 73 20 3d |.if (out|status =|
|00002410| 3d 20 53 45 4c 29 20 61 | 6e 79 73 65 6c 2b 2b 3b |= SEL) a|nysel++;|
|00002420| 0a 09 4f 73 74 61 74 20 | 3d 20 6f 75 74 73 74 61 |..Ostat |= outsta|
|00002430| 74 75 73 3b 0a 09 73 77 | 69 74 63 68 28 4f 73 74 |tus;..sw|itch(Ost|
|00002440| 61 74 29 0a 09 20 20 20 | 20 7b 0a 09 20 20 20 20 |at).. | {.. |
|00002450| 63 61 73 65 20 44 45 4c | 3a 20 20 20 63 6f 6c 20 |case DEL|: col |
|00002460| 3d 20 45 52 41 53 45 43 | 4f 4c 3b 20 62 72 65 61 |= ERASEC|OL; brea|
|00002470| 6b 3b 0a 09 20 20 20 20 | 63 61 73 65 20 55 4e 44 |k;.. |case UND|
|00002480| 45 4c 3a 20 63 6f 6c 20 | 3d 20 44 52 41 57 43 4f |EL: col |= DRAWCO|
|00002490| 4c 3b 20 62 72 65 61 6b | 3b 0a 09 20 20 20 20 63 |L; break|;.. c|
|000024a0| 61 73 65 20 53 45 4c 3a | 20 20 20 63 6f 6c 20 3d |ase SEL:| col =|
|000024b0| 20 53 45 4c 45 43 54 43 | 4f 4c 3b 20 62 72 65 61 | SELECTC|OL; brea|
|000024c0| 6b 3b 0a 09 20 20 20 20 | 7d 0a 09 6f 62 6a 64 72 |k;.. |}..objdr|
|000024d0| 61 77 28 69 2c 20 63 6f | 6c 29 3b 0a 09 69 66 20 |aw(i, co|l);..if |
|000024e0| 28 4f 64 65 6c 20 26 26 | 20 28 69 20 3d 3d 20 6d |(Odel &&| (i == m|
|000024f0| 61 72 6b 6f 62 6a 29 29 | 20 6d 61 72 6b 6f 62 6a |arkobj))| markobj|
|00002500| 20 3d 20 30 3b 0a 09 63 | 68 61 6e 67 65 73 20 7c | = 0;..c|hanges ||
|00002510| 3d 20 28 20 28 69 6e 73 | 74 61 74 75 73 20 3d 3d |= ( (ins|tatus ==|
|00002520| 20 44 45 4c 29 20 7c 7c | 20 28 6f 75 74 73 74 61 | DEL) ||| (outsta|
|00002530| 74 75 73 20 3d 3d 20 44 | 45 4c 29 20 29 3b 0a 09 |tus == D|EL) );..|
|00002540| 69 66 20 28 20 69 6e 73 | 74 61 74 75 73 20 3d 3d |if ( ins|tatus ==|
|00002550| 20 44 45 4c 29 0a 09 72 | 65 74 75 72 6e 28 31 29 | DEL)..r|eturn(1)|
|00002560| 3b 0a 09 7d 0a 20 20 20 | 20 72 65 74 75 72 6e 28 |;..}. | return(|
|00002570| 30 29 3b 0a 20 20 20 20 | 7d 0a 0a 61 6e 79 28 69 |0);. |}..any(i|
|00002580| 2c 20 6f 70 63 6f 64 65 | 29 0a 20 20 20 20 7b 0a |, opcode|). {.|
|00002590| 20 20 20 20 69 66 20 28 | 4f 67 72 6f 75 70 29 20 | if (|Ogroup) |
|000025a0| 61 6c 6c 28 6f 70 63 6f | 64 65 2c 20 4f 67 72 6f |all(opco|de, Ogro|
|000025b0| 75 70 29 3b 0a 20 20 20 | 20 65 6c 73 65 0a 20 20 |up);. | else. |
|000025c0| 20 20 73 77 69 74 63 68 | 28 6f 70 63 6f 64 65 29 | switch|(opcode)|
|000025d0| 0a 09 7b 0a 09 63 61 73 | 65 20 53 45 4c 45 43 54 |..{..cas|e SELECT|
|000025e0| 3a 20 20 20 6f 62 6a 65 | 63 74 6f 70 28 69 2c 20 |: obje|ctop(i, |
|000025f0| 55 4e 44 45 4c 2c 20 53 | 45 4c 29 3b 20 62 72 65 |UNDEL, S|EL); bre|
|00002600| 61 6b 3b 0a 09 63 61 73 | 65 20 44 45 53 45 4c 45 |ak;..cas|e DESELE|
|00002610| 43 54 3a 20 6f 62 6a 65 | 63 74 6f 70 28 69 2c 20 |CT: obje|ctop(i, |
|00002620| 53 45 4c 2c 20 55 4e 44 | 45 4c 29 3b 20 62 72 65 |SEL, UND|EL); bre|
|00002630| 61 6b 3b 0a 09 63 61 73 | 65 20 44 45 4c 45 54 45 |ak;..cas|e DELETE|
|00002640| 3a 20 20 20 6f 62 6a 65 | 63 74 6f 70 28 69 2c 20 |: obje|ctop(i, |
|00002650| 53 45 4c 2c 20 44 45 4c | 29 3b 20 20 62 72 65 61 |SEL, DEL|); brea|
|00002660| 6b 3b 0a 09 63 61 73 65 | 20 55 4e 44 45 4c 45 54 |k;..case| UNDELET|
|00002670| 45 3a 20 6f 62 6a 65 63 | 74 6f 70 28 69 2c 20 44 |E: objec|top(i, D|
|00002680| 45 4c 2c 20 53 45 4c 29 | 3b 20 20 62 72 65 61 6b |EL, SEL)|; break|
|00002690| 3b 0a 09 7d 0a 20 20 20 | 20 7d 0a 0a 61 6c 6c 28 |;..}. | }..all(|
|000026a0| 6f 70 63 6f 64 65 2c 20 | 67 72 6f 75 70 29 0a 20 |opcode, |group). |
|000026b0| 20 20 20 7b 0a 20 20 20 | 20 69 6e 74 20 69 2c 20 | {. | int i, |
|000026c0| 73 61 76 65 67 3b 0a 20 | 20 20 20 66 6f 72 6f 62 |saveg;. | forob|
|000026d0| 6a 65 63 74 73 0a 09 7b | 0a 09 69 66 20 28 21 67 |jects..{|..if (!g|
|000026e0| 72 6f 75 70 20 7c 7c 20 | 4f 67 72 6f 75 70 20 3d |roup || |Ogroup =|
|000026f0| 3d 20 67 72 6f 75 70 29 | 0a 09 20 20 20 20 7b 0a |= group)|.. {.|
|00002700| 09 20 20 20 20 73 61 76 | 65 67 20 3d 20 4f 67 72 |. sav|eg = Ogr|
|00002710| 6f 75 70 3b 0a 09 20 20 | 20 20 4f 67 72 6f 75 70 |oup;.. | Ogroup|
|00002720| 20 3d 20 30 3b 0a 09 20 | 20 20 20 61 6e 79 28 69 | = 0;.. | any(i|
|00002730| 2c 20 6f 70 63 6f 64 65 | 29 3b 0a 09 20 20 20 20 |, opcode|);.. |
|00002740| 4f 67 72 6f 75 70 20 3d | 20 73 61 76 65 67 3b 0a |Ogroup =| saveg;.|
|00002750| 09 20 20 20 20 7d 0a 09 | 7d 0a 20 20 20 20 7d 0a |. }..|}. }.|
|00002760| 53 48 41 52 5f 45 4f 46 | 0a 69 66 20 74 65 73 74 |SHAR_EOF|.if test|
|00002770| 20 2d 66 20 27 6c 65 6d | 70 69 63 2e 63 27 0a 74 | -f 'lem|pic.c'.t|
|00002780| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|00002790| 6f 76 65 72 2d 77 72 69 | 74 69 6e 67 20 65 78 69 |over-wri|ting exi|
|000027a0| 73 74 69 6e 67 20 66 69 | 6c 65 20 22 27 6c 65 6d |sting fi|le "'lem|
|000027b0| 70 69 63 2e 63 27 22 0a | 66 69 0a 63 61 74 20 3c |pic.c'".|fi.cat <|
|000027c0| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 6c |< \SHAR_|EOF > 'l|
|000027d0| 65 6d 70 69 63 2e 63 27 | 0a 2f 2a 0a 20 2a 20 6c |empic.c'|./*. * l|
|000027e0| 65 6d 70 69 63 2e 63 20 | 2d 20 50 49 43 20 6f 75 |empic.c |- PIC ou|
|000027f0| 74 70 75 74 20 70 72 6f | 63 65 73 73 6f 72 0a 20 |tput pro|cessor. |
|00002800| 2a 0a 20 2a 20 63 6f 70 | 79 72 69 67 68 74 20 28 |*. * cop|yright (|
|00002810| 63 29 20 62 79 20 41 6c | 61 6e 20 57 2e 20 50 61 |c) by Al|an W. Pa|
|00002820| 65 74 68 2c 20 31 39 38 | 37 2e 20 41 6c 6c 20 72 |eth, 198|7. All r|
|00002830| 69 67 68 74 73 20 72 65 | 73 65 72 76 65 64 2e 0a |ights re|served..|
|00002840| 20 2a 2f 0a 0a 23 69 6e | 63 6c 75 64 65 20 22 6c | */..#in|clude "l|
|00002850| 65 6d 2e 68 22 0a 0a 23 | 64 65 66 69 6e 65 20 50 |em.h"..#|define P|
|00002860| 54 53 53 43 41 4c 45 20 | 39 36 2e 30 0a 23 64 65 |TSSCALE |96.0.#de|
|00002870| 66 69 6e 65 20 50 45 4e | 53 43 41 4c 45 20 31 32 |fine PEN|SCALE 12|
|00002880| 09 2f 2a 20 6c 6e 30 33 | 20 64 69 6d 70 20 74 72 |./* ln03| dimp tr|
|00002890| 6f 66 66 20 64 72 69 76 | 65 72 73 20 6c 69 6b 65 |off driv|ers like|
|000028a0| 20 31 33 20 28 21 61 20 | 63 6f 6d 6d 6f 6e 20 50 | 13 (!a |common P|
|000028b0| 6e 74 53 7a 29 20 2a 2f | 0a 0a 69 6e 74 20 63 75 |ntSz) */|..int cu|
|000028c0| 72 78 2c 20 63 75 72 79 | 2c 20 63 75 72 77 2c 20 |rx, cury|, curw, |
|000028d0| 63 75 72 68 2c 20 70 73 | 2c 20 70 65 6d 70 68 3b |curh, ps|, pemph;|
|000028e0| 0a 0a 46 49 4c 45 20 2a | 66 3b 0a 0a 77 72 69 74 |..FILE *|f;..writ|
|000028f0| 65 70 69 63 69 6e 74 28 | 66 6e 61 6d 65 29 0a 20 |epicint(|fname). |
|00002900| 20 20 20 63 68 61 72 20 | 2a 66 6e 61 6d 65 3b 0a | char |*fname;.|
|00002910| 20 20 20 20 7b 0a 20 20 | 20 20 69 6e 74 20 69 3b | {. | int i;|
|00002920| 0a 20 20 20 20 66 20 3d | 20 28 66 6e 61 6d 65 20 |. f =| (fname |
|00002930| 26 26 20 28 73 74 72 6c | 65 6e 28 66 6e 61 6d 65 |&& (strl|en(fname|
|00002940| 29 20 3e 20 31 29 29 20 | 3f 20 66 6f 70 65 6e 28 |) > 1)) |? fopen(|
|00002950| 66 6e 61 6d 65 2c 20 22 | 77 22 29 20 3a 20 30 3b |fname, "|w") : 0;|
|00002960| 0a 20 20 20 20 69 66 20 | 28 66 29 0a 09 7b 0a 09 |. if |(f)..{..|
|00002970| 63 75 72 78 20 3d 20 63 | 75 72 79 20 3d 20 63 75 |curx = c|ury = cu|
|00002980| 72 77 20 3d 20 63 75 72 | 68 20 3d 20 70 73 20 3d |rw = cur|h = ps =|
|00002990| 20 70 65 6d 70 68 3d 20 | 2d 31 3b 0a 09 66 70 72 | pemph= |-1;..fpr|
|000029a0| 69 6e 74 66 28 66 2c 20 | 22 2e 50 53 5c 6e 22 29 |intf(f, |".PS\n")|
|000029b0| 3b 0a 09 66 6f 72 6f 62 | 6a 65 63 74 73 0a 09 20 |;..forob|jects.. |
|000029c0| 20 20 20 7b 0a 09 20 20 | 20 20 69 66 20 28 4f 64 | {.. | if (Od|
|000029d0| 65 6c 29 20 63 6f 6e 74 | 69 6e 75 65 3b 0a 09 20 |el) cont|inue;.. |
|000029e0| 20 20 20 73 77 69 74 63 | 68 20 28 4f 74 79 70 65 | switc|h (Otype|
|000029f0| 29 0a 09 09 7b 0a 09 09 | 63 61 73 65 20 54 45 58 |)...{...|case TEX|
|00002a00| 54 3a 09 70 74 65 78 74 | 28 69 29 3b 0a 09 09 09 |T:.ptext|(i);....|
|00002a10| 09 61 74 28 4f 78 73 2c | 20 4f 79 73 29 3b 0a 09 |.at(Oxs,| Oys);..|
|00002a20| 09 09 09 62 72 65 61 6b | 3b 0a 09 09 63 61 73 65 |...break|;...case|
|00002a30| 20 4c 49 4e 45 3a 09 74 | 68 69 63 6b 28 69 29 3b | LINE:.t|hick(i);|
|00002a40| 0a 09 09 09 09 70 6c 69 | 6e 65 28 69 29 3b 0a 09 |.....pli|ne(i);..|
|00002a50| 09 09 09 65 6d 28 69 29 | 3b 0a 09 09 09 09 66 72 |...em(i)|;.....fr|
|00002a60| 6f 6d 28 4f 78 73 2c 20 | 4f 79 73 29 3b 0a 09 09 |om(Oxs, |Oys);...|
|00002a70| 09 09 74 6f 28 4f 78 65 | 2c 20 4f 79 65 29 3b 0a |..to(Oxe|, Oye);.|
|00002a80| 09 09 09 09 62 72 65 61 | 6b 3b 0a 09 09 63 61 73 |....brea|k;...cas|
|00002a90| 65 20 42 4f 58 3a 09 74 | 68 69 63 6b 28 69 29 3b |e BOX:.t|hick(i);|
|00002aa0| 0a 09 09 09 09 66 70 72 | 69 6e 74 66 28 66 2c 20 |.....fpr|intf(f, |
|00002ab0| 22 62 6f 78 22 29 3b 0a | 09 09 09 09 65 6d 28 69 |"box");.|....em(i|
|00002ac0| 29 3b 0a 09 09 09 09 61 | 74 28 4f 78 2c 20 4f 79 |);.....a|t(Ox, Oy|
|00002ad0| 29 3b 0a 09 09 09 09 73 | 69 7a 65 28 4f 77 2c 20 |);.....s|ize(Ow, |
|00002ae0| 4f 68 29 3b 0a 09 09 09 | 09 62 72 65 61 6b 3b 0a |Oh);....|.break;.|
|00002af0| 09 09 63 61 73 65 20 45 | 4c 4c 49 3a 09 74 68 69 |..case E|LLI:.thi|
|00002b00| 63 6b 28 69 29 3b 0a 09 | 09 09 09 66 70 72 69 6e |ck(i);..|...fprin|
|00002b10| 74 66 28 66 2c 20 22 65 | 6c 6c 69 70 73 65 22 29 |tf(f, "e|llipse")|
|00002b20| 3b 0a 09 09 09 09 65 6d | 28 69 29 3b 0a 09 09 09 |;.....em|(i);....|
|00002b30| 09 61 74 28 4f 78 2c 20 | 4f 79 29 3b 0a 09 09 09 |.at(Ox, |Oy);....|
|00002b40| 09 73 69 7a 65 28 4f 77 | 2c 4f 68 29 3b 0a 09 09 |.size(Ow|,Oh);...|
|00002b50| 09 09 62 72 65 61 6b 3b | 0a 09 09 7d 0a 09 20 20 |..break;|...}.. |
|00002b60| 20 20 66 70 72 69 6e 74 | 66 28 66 2c 20 22 3b 5c | fprint|f(f, ";\|
|00002b70| 6e 22 29 3b 0a 09 20 20 | 20 20 7d 0a 09 66 70 72 |n");.. | }..fpr|
|00002b80| 69 6e 74 66 28 66 2c 20 | 22 2e 50 45 5c 6e 22 29 |intf(f, |".PE\n")|
|00002b90| 3b 0a 09 66 63 6c 6f 73 | 65 28 66 29 3b 0a 09 6d |;..fclos|e(f);..m|
|00002ba0| 73 67 70 6f 73 74 28 22 | 70 69 63 20 6f 75 74 70 |sgpost("|pic outp|
|00002bb0| 75 74 20 64 6f 6e 65 22 | 29 3b 0a 09 7d 0a 20 20 |ut done"|);..}. |
|00002bc0| 20 20 65 6c 73 65 20 6d | 73 67 70 6f 73 74 28 22 | else m|sgpost("|
|00002bd0| 70 69 63 20 6f 75 74 70 | 75 74 20 66 61 69 6c 65 |pic outp|ut faile|
|00002be0| 64 22 29 3b 0a 20 20 20 | 20 66 72 65 65 28 66 6e |d");. | free(fn|
|00002bf0| 61 6d 65 29 3b 0a 20 20 | 20 20 7d 0a 0a 0a 77 72 |ame);. | }...wr|
|00002c00| 69 74 65 70 69 63 28 29 | 0a 20 20 20 20 7b 0a 20 |itepic()|. {. |
|00002c10| 20 20 20 63 68 61 72 20 | 2a 66 6e 61 6d 65 3b 0a | char |*fname;.|
|00002c20| 20 20 20 20 66 6e 61 6d | 65 20 3d 20 70 72 6f 6d | fnam|e = prom|
|00002c30| 70 74 28 22 70 69 63 20 | 66 69 6c 65 3a 20 22 29 |pt("pic |file: ")|
|00002c40| 3b 0a 20 20 20 20 77 72 | 69 74 65 70 69 63 69 6e |;. wr|itepicin|
|00002c50| 74 28 66 6e 61 6d 65 29 | 3b 0a 20 20 20 20 66 72 |t(fname)|;. fr|
|00002c60| 65 65 28 66 6e 61 6d 65 | 29 3b 0a 20 20 20 20 7d |ee(fname|);. }|
|00002c70| 0a 0a 74 68 69 63 6b 28 | 69 29 0a 20 20 20 20 7b |..thick(|i). {|
|00002c80| 0a 20 20 20 20 69 66 20 | 28 70 73 20 21 3d 20 6c |. if |(ps != l|
|00002c90| 65 6d 66 6f 6e 74 5b 4f | 73 69 7a 65 72 5d 2e 74 |emfont[O|sizer].t|
|00002ca0| 68 69 63 6b 29 0a 09 7b | 0a 09 70 73 20 3d 20 6c |hick)..{|..ps = l|
|00002cb0| 65 6d 66 6f 6e 74 5b 4f | 73 69 7a 65 72 5d 2e 74 |emfont[O|sizer].t|
|00002cc0| 68 69 63 6b 3b 0a 09 66 | 70 72 69 6e 74 66 28 66 |hick;..f|printf(f|
|00002cd0| 2c 20 22 2e 70 73 20 25 | 64 5c 6e 22 2c 20 70 73 |, ".ps %|d\n", ps|
|00002ce0| 2a 50 45 4e 53 43 41 4c | 45 29 3b 0a 09 7d 0a 20 |*PENSCAL|E);..}. |
|00002cf0| 20 20 20 7d 0a 0a 70 74 | 28 78 2c 20 79 29 0a 20 | }..pt|(x, y). |
|00002d00| 20 20 20 7b 0a 20 20 20 | 20 66 70 72 69 6e 74 66 | {. | fprintf|
|00002d10| 28 66 2c 20 22 20 25 2e | 33 66 69 2c 25 2e 33 66 |(f, " %.|3fi,%.3f|
|00002d20| 69 22 2c 20 28 66 6c 6f | 61 74 29 28 78 29 2f 50 |i", (flo|at)(x)/P|
|00002d30| 54 53 53 43 41 4c 45 2c | 20 28 66 6c 6f 61 74 29 |TSSCALE,| (float)|
|00002d40| 28 79 29 2f 50 54 53 53 | 43 41 4c 45 29 3b 0a 20 |(y)/PTSS|CALE);. |
|00002d50| 20 20 20 7d 0a 0a 61 74 | 28 78 2c 20 79 29 0a 20 | }..at|(x, y). |
|00002d60| 20 20 20 7b 0a 20 20 20 | 20 66 70 72 69 6e 74 66 | {. | fprintf|
|00002d70| 28 66 2c 20 22 20 61 74 | 22 29 3b 0a 20 20 20 20 |(f, " at|");. |
|00002d80| 70 74 28 78 2c 20 79 29 | 3b 0a 20 20 20 20 7d 0a |pt(x, y)|;. }.|
|00002d90| 0a 66 72 6f 6d 28 78 2c | 20 79 29 0a 20 20 20 20 |.from(x,| y). |
|00002da0| 7b 0a 20 20 20 20 69 66 | 20 28 28 78 20 3d 3d 20 |{. if| ((x == |
|00002db0| 63 75 72 78 29 20 26 26 | 20 28 79 20 3d 3d 20 63 |curx) &&| (y == c|
|00002dc0| 75 72 79 29 29 20 72 65 | 74 75 72 6e 3b 0a 20 20 |ury)) re|turn;. |
|00002dd0| 20 20 66 70 72 69 6e 74 | 66 28 66 2c 20 22 20 66 | fprint|f(f, " f|
|00002de0| 72 6f 6d 22 29 3b 0a 20 | 20 20 20 70 74 28 78 2c |rom");. | pt(x,|
|00002df0| 20 79 29 3b 0a 20 20 20 | 20 63 75 72 78 20 3d 20 | y);. | curx = |
|00002e00| 78 3b 0a 20 20 20 20 63 | 75 72 79 20 3d 20 79 3b |x;. c|ury = y;|
|00002e10| 0a 20 20 20 20 7d 0a 0a | 74 6f 28 78 2c 20 79 29 |. }..|to(x, y)|
|00002e20| 0a 20 20 20 20 7b 0a 20 | 20 20 20 66 70 72 69 6e |. {. | fprin|
|00002e30| 74 66 28 66 2c 20 22 20 | 74 6f 22 29 3b 0a 20 20 |tf(f, " |to");. |
|00002e40| 20 20 70 74 28 78 2c 79 | 29 3b 0a 20 20 20 20 63 | pt(x,y|);. c|
|00002e50| 75 72 78 20 3d 20 78 3b | 0a 20 20 20 20 63 75 72 |urx = x;|. cur|
|00002e60| 79 20 3d 20 79 3b 0a 20 | 20 20 20 7d 0a 0a 73 69 |y = y;. | }..si|
|00002e70| 7a 65 28 77 2c 20 68 29 | 0a 20 20 20 20 7b 0a 20 |ze(w, h)|. {. |
|00002e80| 20 20 20 77 20 3d 20 41 | 42 53 28 77 29 3b 0a 20 | w = A|BS(w);. |
|00002e90| 20 20 20 68 20 3d 20 41 | 42 53 28 68 29 3b 0a 20 | h = A|BS(h);. |
|00002ea0| 20 20 20 69 66 20 28 28 | 77 20 3d 3d 20 63 75 72 | if ((|w == cur|
|00002eb0| 77 29 20 26 26 20 28 68 | 20 3d 3d 20 63 75 72 68 |w) && (h| == curh|
|00002ec0| 29 29 20 66 70 72 69 6e | 74 66 28 66 2c 20 22 20 |)) fprin|tf(f, " |
|00002ed0| 73 61 6d 65 22 29 3b 0a | 20 20 20 20 65 6c 73 65 |same");.| else|
|00002ee0| 0a 09 7b 0a 09 66 70 72 | 69 6e 74 66 28 66 2c 20 |..{..fpr|intf(f, |
|00002ef0| 22 20 77 69 64 20 25 2e | 33 66 69 20 68 74 20 25 |" wid %.|3fi ht %|
|00002f00| 2e 33 66 69 22 2c 0a 09 | 20 20 20 20 28 66 6c 6f |.3fi",..| (flo|
|00002f10| 61 74 29 28 77 29 2f 50 | 54 53 53 43 41 4c 45 2c |at)(w)/P|TSSCALE,|
|00002f20| 20 28 66 6c 6f 61 74 29 | 28 68 29 2f 50 54 53 53 | (float)|(h)/PTSS|
|00002f30| 43 41 4c 45 29 3b 0a 09 | 63 75 72 77 20 3d 20 77 |CALE);..|curw = w|
|00002f40| 3b 0a 09 63 75 72 68 20 | 3d 20 68 3b 0a 09 7d 0a |;..curh |= h;..}.|
|00002f50| 20 20 20 20 7d 0a 0a 70 | 74 65 78 74 28 69 29 0a | }..p|text(i).|
|00002f60| 20 20 20 20 7b 0a 20 20 | 20 20 69 6e 74 20 66 6f | {. | int fo|
|00002f70| 6e 74 66 6c 61 67 3b 0a | 20 20 20 20 63 68 61 72 |ntflag;.| char|
|00002f80| 20 2a 66 74 3b 0a 20 20 | 20 20 66 6f 6e 74 66 6c | *ft;. | fontfl|
|00002f90| 61 67 20 3d 20 28 28 4f | 65 6d 70 68 20 21 3d 20 |ag = ((O|emph != |
|00002fa0| 70 65 6d 70 68 29 20 7c | 7c 20 28 6c 65 6d 66 6f |pemph) ||| (lemfo|
|00002fb0| 6e 74 5b 4f 73 69 7a 65 | 72 5d 2e 70 73 69 7a 65 |nt[Osize|r].psize|
|00002fc0| 20 21 3d 20 70 73 29 29 | 3b 0a 20 20 20 20 70 65 | != ps))|;. pe|
|00002fd0| 6d 70 68 20 3d 20 4f 65 | 6d 70 68 3b 0a 20 20 20 |mph = Oe|mph;. |
|00002fe0| 20 70 73 20 3d 20 6c 65 | 6d 66 6f 6e 74 5b 4f 73 | ps = le|mfont[Os|
|00002ff0| 69 7a 65 72 5d 2e 70 73 | 69 7a 65 3b 0a 20 20 20 |izer].ps|ize;. |
|00003000| 20 66 70 72 69 6e 74 66 | 28 66 2c 20 22 5c 22 22 | fprintf|(f, "\""|
|00003010| 29 3b 0a 20 20 20 20 69 | 66 20 28 66 6f 6e 74 66 |);. i|f (fontf|
|00003020| 6c 61 67 29 0a 09 7b 0a | 09 73 77 69 74 63 68 28 |lag)..{.|.switch(|
|00003030| 4f 65 6d 70 68 29 0a 09 | 20 20 20 20 7b 0a 09 20 |Oemph)..| {.. |
|00003040| 20 20 20 63 61 73 65 20 | 45 4d 50 48 4e 4f 4e 45 | case |EMPHNONE|
|00003050| 3a 20 66 74 20 3d 20 6c | 65 6d 66 6f 6e 74 5b 4f |: ft = l|emfont[O|
|00003060| 73 69 7a 65 72 5d 2e 74 | 79 72 3b 20 62 72 65 61 |sizer].t|yr; brea|
|00003070| 6b 3b 0a 09 20 20 20 20 | 63 61 73 65 20 45 4d 50 |k;.. |case EMP|
|00003080| 48 42 4f 4c 44 3a 20 66 | 74 20 3d 20 6c 65 6d 66 |HBOLD: f|t = lemf|
|00003090| 6f 6e 74 5b 4f 73 69 7a | 65 72 5d 2e 74 79 62 3b |ont[Osiz|er].tyb;|
|000030a0| 20 62 72 65 61 6b 3b 0a | 09 20 20 20 20 63 61 73 | break;.|. cas|
|000030b0| 65 20 45 4d 50 48 49 54 | 41 4c 3a 20 66 74 20 3d |e EMPHIT|AL: ft =|
|000030c0| 20 6c 65 6d 66 6f 6e 74 | 5b 4f 73 69 7a 65 72 5d | lemfont|[Osizer]|
|000030d0| 2e 74 79 69 3b 20 62 72 | 65 61 6b 3b 0a 09 20 20 |.tyi; br|eak;.. |
|000030e0| 20 20 7d 0a 09 66 70 72 | 69 6e 74 66 28 66 2c 20 | }..fpr|intf(f, |
|000030f0| 22 5c 5c 66 25 73 25 73 | 22 2c 20 73 74 72 6c 65 |"\\f%s%s|", strle|
|00003100| 6e 28 66 74 29 20 3e 20 | 31 20 3f 20 22 28 22 20 |n(ft) > |1 ? "(" |
|00003110| 3a 20 22 22 2c 20 66 74 | 20 29 3b 0a 09 7d 0a 20 |: "", ft| );..}. |
|00003120| 20 20 20 66 70 72 69 6e | 74 66 28 66 2c 20 22 5c | fprin|tf(f, "\|
|00003130| 5c 73 25 64 25 73 5c 22 | 22 2c 6c 65 6d 66 6f 6e |\s%d%s\"|",lemfon|
|00003140| 74 5b 4f 73 69 7a 65 72 | 5d 2e 70 73 69 7a 65 2c |t[Osizer|].psize,|
|00003150| 20 4f 74 65 78 74 29 3b | 0a 20 20 20 20 73 77 69 | Otext);|. swi|
|00003160| 74 63 68 28 4f 61 6c 69 | 67 6e 29 0a 09 7b 0a 09 |tch(Oali|gn)..{..|
|00003170| 63 61 73 65 20 41 4c 49 | 47 4e 4c 45 46 54 3a 09 |case ALI|GNLEFT:.|
|00003180| 66 70 72 69 6e 74 66 28 | 66 2c 20 22 20 6c 6a 75 |fprintf(|f, " lju|
|00003190| 73 74 22 29 3b 20 62 72 | 65 61 6b 3b 0a 09 63 61 |st"); br|eak;..ca|
|000031a0| 73 65 20 41 4c 49 47 4e | 52 47 48 54 3a 09 66 70 |se ALIGN|RGHT:.fp|
|000031b0| 72 69 6e 74 66 28 66 2c | 20 22 20 72 6a 75 73 74 |rintf(f,| " rjust|
|000031c0| 22 29 3b 20 62 72 65 61 | 6b 3b 0a 09 63 61 73 65 |"); brea|k;..case|
|000031d0| 20 41 4c 49 47 4e 43 45 | 4e 54 3a 0a 09 64 65 66 | ALIGNCE|NT:..def|
|000031e0| 61 75 6c 74 3a 09 62 72 | 65 61 6b 3b 0a 09 7d 0a |ault:.br|eak;..}.|
|000031f0| 20 20 20 20 7d 0a 0a 70 | 6c 69 6e 65 28 69 29 0a | }..p|line(i).|
|00003200| 20 20 20 20 7b 0a 20 20 | 20 20 66 70 72 69 6e 74 | {. | fprint|
|00003210| 66 28 66 2c 20 22 6c 69 | 6e 65 22 29 3b 0a 20 20 |f(f, "li|ne");. |
|00003220| 20 20 73 77 69 74 63 68 | 28 4f 61 6c 69 67 6e 29 | switch|(Oalign)|
|00003230| 0a 09 7b 0a 09 63 61 73 | 65 20 41 4c 49 47 4e 4c |..{..cas|e ALIGNL|
|00003240| 45 46 54 3a 20 66 70 72 | 69 6e 74 66 28 66 2c 20 |EFT: fpr|intf(f, |
|00003250| 22 20 3c 2d 22 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |" <-"); |break;..|
|00003260| 63 61 73 65 20 41 4c 49 | 47 4e 52 47 48 54 3a 20 |case ALI|GNRGHT: |
|00003270| 66 70 72 69 6e 74 66 28 | 66 2c 20 22 20 2d 3e 22 |fprintf(|f, " ->"|
|00003280| 29 3b 20 62 72 65 61 6b | 3b 0a 09 63 61 73 65 20 |); break|;..case |
|00003290| 41 4c 49 47 4e 43 45 4e | 54 3a 0a 09 64 65 66 61 |ALIGNCEN|T:..defa|
|000032a0| 75 6c 74 3a 09 62 72 65 | 61 6b 3b 0a 09 7d 0a 20 |ult:.bre|ak;..}. |
|000032b0| 20 20 20 7d 0a 0a 65 6d | 28 69 29 0a 20 20 20 20 | }..em|(i). |
|000032c0| 7b 0a 20 20 20 20 73 77 | 69 74 63 68 28 4f 65 6d |{. sw|itch(Oem|
|000032d0| 70 68 29 0a 09 7b 0a 09 | 63 61 73 65 20 45 4d 50 |ph)..{..|case EMP|
|000032e0| 48 42 4f 4c 44 3a 20 66 | 70 72 69 6e 74 66 28 66 |HBOLD: f|printf(f|
|000032f0| 2c 20 22 20 64 61 73 68 | 65 64 22 29 3b 20 62 72 |, " dash|ed"); br|
|00003300| 65 61 6b 3b 0a 09 63 61 | 73 65 20 45 4d 50 48 49 |eak;..ca|se EMPHI|
|00003310| 54 41 4c 3a 20 66 70 72 | 69 6e 74 66 28 66 2c 20 |TAL: fpr|intf(f, |
|00003320| 22 20 64 6f 74 74 65 64 | 22 29 3b 20 62 72 65 61 |" dotted|"); brea|
|00003330| 6b 3b 0a 09 63 61 73 65 | 20 45 4d 50 48 4e 4f 4e |k;..case| EMPHNON|
|00003340| 45 3a 0a 09 64 65 66 61 | 75 6c 74 3a 20 20 62 72 |E:..defa|ult: br|
|00003350| 65 61 6b 3b 0a 09 7d 0a | 20 20 20 20 7d 0a 53 48 |eak;..}.| }.SH|
|00003360| 41 52 5f 45 4f 46 0a 69 | 66 20 74 65 73 74 20 2d |AR_EOF.i|f test -|
|00003370| 66 20 27 6c 65 6d 72 63 | 2e 63 27 0a 74 68 65 6e |f 'lemrc|.c'.then|
|00003380| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 6f 76 65 |..echo s|har: ove|
|00003390| 72 2d 77 72 69 74 69 6e | 67 20 65 78 69 73 74 69 |r-writin|g existi|
|000033a0| 6e 67 20 66 69 6c 65 20 | 22 27 6c 65 6d 72 63 2e |ng file |"'lemrc.|
|000033b0| 63 27 22 0a 66 69 0a 63 | 61 74 20 3c 3c 20 5c 53 |c'".fi.c|at << \S|
|000033c0| 48 41 52 5f 45 4f 46 20 | 3e 20 27 6c 65 6d 72 63 |HAR_EOF |> 'lemrc|
|000033d0| 2e 63 27 0a 2f 2a 0a 20 | 2a 20 6c 65 6d 72 63 2e |.c'./*. |* lemrc.|
|000033e0| 63 20 2d 20 67 65 74 20 | 64 65 66 61 75 6c 74 20 |c - get |default |
|000033f0| 66 6f 6e 74 73 20 66 72 | 6f 6d 20 6c 6f 63 61 6c |fonts fr|om local|
|00003400| 20 66 69 6c 65 2e 0a 20 | 2a 0a 20 2a 20 63 6f 70 | file.. |*. * cop|
|00003410| 79 72 69 67 68 74 20 28 | 63 29 20 62 79 20 41 6c |yright (|c) by Al|
|00003420| 61 6e 20 57 2e 20 50 61 | 65 74 68 2c 20 31 39 38 |an W. Pa|eth, 198|
|00003430| 37 2e 20 41 6c 6c 20 72 | 69 67 68 74 73 20 72 65 |7. All r|ights re|
|00003440| 73 65 72 76 65 64 2e 0a | 20 2a 2f 0a 0a 23 69 6e |served..| */..#in|
|00003450| 63 6c 75 64 65 20 22 6c | 65 6d 2e 68 22 0a 23 69 |clude "l|em.h".#i|
|00003460| 6e 63 6c 75 64 65 20 22 | 6c 65 6d 66 6f 6e 74 2e |nclude "|lemfont.|
|00003470| 68 22 0a 0a 23 64 65 66 | 69 6e 65 20 46 4f 4e 54 |h"..#def|ine FONT|
|00003480| 50 41 54 48 20 22 2f 75 | 73 72 2f 6c 6f 63 61 6c |PATH "/u|sr/local|
|00003490| 2f 6c 69 62 2f 42 46 6f | 6e 74 2f 22 0a 23 64 65 |/lib/BFo|nt/".#de|
|000034a0| 66 69 6e 65 20 46 4f 4e | 54 45 58 54 4e 20 22 2e |fine FON|TEXTN ".|
|000034b0| 62 66 22 0a 0a 63 68 61 | 72 20 2a 67 65 74 65 6e |bf"..cha|r *geten|
|000034c0| 76 28 29 3b 0a 0a 6c 65 | 6d 69 6e 69 74 28 29 0a |v();..le|minit().|
|000034d0| 20 20 20 20 7b 0a 20 20 | 20 20 63 68 61 72 20 72 | {. | char r|
|000034e0| 63 6e 61 6d 65 5b 31 30 | 30 5d 2c 20 72 63 6c 69 |cname[10|0], rcli|
|000034f0| 6e 65 5b 52 43 4c 49 4e | 45 5d 3b 0a 20 20 20 20 |ne[RCLIN|E];. |
|00003500| 46 49 4c 45 20 2a 66 3b | 0a 20 20 20 20 69 6e 74 |FILE *f;|. int|
|00003510| 20 69 2c 20 69 74 65 6d | 73 3b 0a 2f 2a 0a 20 2a | i, item|s;./*. *|
|00003520| 20 67 65 6e 65 72 61 74 | 65 20 6c 6f 63 61 6c 20 | generat|e local |
|00003530| 61 6e 64 20 67 6c 6f 62 | 61 6c 20 6e 61 6d 65 73 |and glob|al names|
|00003540| 0a 20 2a 2f 0a 20 20 20 | 20 73 70 72 69 6e 74 66 |. */. | sprintf|
|00003550| 28 72 63 6e 61 6d 65 2c | 20 22 2e 2f 25 73 22 2c |(rcname,| "./%s",|
|00003560| 20 52 43 4e 41 4d 45 29 | 3b 0a 20 20 20 20 66 20 | RCNAME)|;. f |
|00003570| 3d 20 66 6f 70 65 6e 28 | 72 63 6e 61 6d 65 2c 20 |= fopen(|rcname, |
|00003580| 22 72 22 29 3b 0a 20 20 | 20 20 69 66 20 28 21 66 |"r");. | if (!f|
|00003590| 29 0a 09 7b 0a 20 20 20 | 20 20 20 20 20 73 70 72 |)..{. | spr|
|000035a0| 69 6e 74 66 28 72 63 6e | 61 6d 65 2c 20 22 25 73 |intf(rcn|ame, "%s|
|000035b0| 2f 25 73 22 2c 20 67 65 | 74 65 6e 76 28 22 48 4f |/%s", ge|tenv("HO|
|000035c0| 4d 45 22 29 2c 20 52 43 | 4e 41 4d 45 29 3b 0a 09 |ME"), RC|NAME);..|
|000035d0| 66 20 3d 20 66 6f 70 65 | 6e 28 72 63 6e 61 6d 65 |f = fope|n(rcname|
|000035e0| 2c 20 22 72 22 29 3b 0a | 09 7d 0a 20 20 20 20 69 |, "r");.|.}. i|
|000035f0| 66 20 28 21 66 29 0a 09 | 7b 0a 2f 2a 09 65 72 72 |f (!f)..|{./*.err|
|00003600| 28 22 6e 6f 20 25 73 20 | 66 69 6c 65 20 65 78 69 |("no %s |file exi|
|00003610| 73 74 73 22 2c 20 52 43 | 47 4c 4f 42 41 4c 29 3b |sts", RC|GLOBAL);|
|00003620| 20 2a 2f 0a 09 6c 65 6d | 66 6f 6e 74 5b 31 5d 2e | */..lem|font[1].|
|00003630| 70 73 69 7a 65 20 3d 20 | 44 45 46 50 53 49 5a 45 |psize = |DEFPSIZE|
|00003640| 46 54 3b 0a 09 6c 65 6d | 66 6f 6e 74 5b 31 5d 2e |FT;..lem|font[1].|
|00003650| 74 68 69 63 6b 20 3d 20 | 44 45 46 44 45 4e 53 45 |thick = |DEFDENSE|
|00003660| 46 54 3b 0a 09 6c 65 6d | 66 6f 6e 74 5b 31 5d 2e |FT;..lem|font[1].|
|00003670| 64 73 70 20 3d 20 44 45 | 46 49 4b 52 46 54 3b 0a |dsp = DE|FIKRFT;.|
|00003680| 09 6c 65 6d 66 6f 6e 74 | 5b 31 5d 2e 74 79 72 20 |.lemfont|[1].tyr |
|00003690| 3d 20 44 45 46 54 59 52 | 46 54 3b 0a 09 6c 65 6d |= DEFTYR|FT;..lem|
|000036a0| 66 6f 6e 74 5b 31 5d 2e | 74 79 62 20 3d 20 44 45 |font[1].|tyb = DE|
|000036b0| 46 54 59 42 46 54 3b 0a | 09 6c 65 6d 66 6f 6e 74 |FTYBFT;.|.lemfont|
|000036c0| 5b 31 5d 2e 74 79 69 20 | 3d 20 44 45 46 54 59 49 |[1].tyi |= DEFTYI|
|000036d0| 46 54 3b 0a 09 6c 65 6d | 66 6f 6e 74 5b 31 5d 2e |FT;..lem|font[1].|
|000036e0| 70 73 72 20 3d 20 44 45 | 46 50 53 52 46 54 3b 0a |psr = DE|FPSRFT;.|
|000036f0| 09 6c 65 6d 66 6f 6e 74 | 5b 31 5d 2e 70 73 62 20 |.lemfont|[1].psb |
|00003700| 3d 20 44 45 46 50 53 42 | 46 54 3b 0a 09 6c 65 6d |= DEFPSB|FT;..lem|
|00003710| 66 6f 6e 74 5b 31 5d 2e | 70 73 69 20 3d 20 44 45 |font[1].|psi = DE|
|00003720| 46 50 53 49 46 54 3b 0a | 09 72 63 6c 65 6e 20 3d |FPSIFT;.|.rclen =|
|00003730| 20 31 3b 0a 09 7d 0a 20 | 20 20 20 65 6c 73 65 0a | 1;..}. | else.|
|00003740| 09 7b 0a 09 77 68 69 6c | 65 28 31 29 0a 09 20 20 |.{..whil|e(1).. |
|00003750| 20 20 7b 0a 09 20 20 20 | 20 63 68 61 72 20 64 73 | {.. | char ds|
|00003760| 70 5b 32 30 5d 2c 20 74 | 79 72 5b 32 30 5d 2c 20 |p[20], t|yr[20], |
|00003770| 74 79 62 5b 32 30 5d 2c | 20 74 79 69 5b 32 30 5d |tyb[20],| tyi[20]|
|00003780| 3b 0a 09 20 20 20 20 63 | 68 61 72 20 70 73 72 5b |;.. c|har psr[|
|00003790| 32 30 5d 2c 20 70 73 62 | 5b 32 30 5d 2c 20 70 73 |20], psb|[20], ps|
|000037a0| 69 5b 32 30 5d 3b 0a 09 | 20 20 20 20 66 67 65 74 |i[20];..| fget|
|000037b0| 73 28 72 63 6c 69 6e 65 | 2c 20 52 43 4c 49 4e 45 |s(rcline|, RCLINE|
|000037c0| 2c 20 66 29 3b 0a 09 20 | 20 20 20 69 66 20 28 66 |, f);.. | if (f|
|000037d0| 65 6f 66 28 66 29 29 20 | 62 72 65 61 6b 3b 0a 09 |eof(f)) |break;..|
|000037e0| 20 20 20 20 69 66 20 28 | 28 72 63 6c 69 6e 65 5b | if (|(rcline[|
|000037f0| 30 5d 20 3e 3d 20 27 30 | 27 29 20 26 26 20 28 72 |0] >= '0|') && (r|
|00003800| 63 6c 69 6e 65 5b 30 5d | 20 3c 3d 20 27 39 27 29 |cline[0]| <= '9')|
|00003810| 29 0a 09 09 7b 0a 09 09 | 72 63 6c 65 6e 2b 2b 3b |)...{...|rclen++;|
|00003820| 0a 09 09 69 66 20 28 72 | 63 6c 65 6e 20 3e 3d 20 |...if (r|clen >= |
|00003830| 52 43 4c 45 4e 29 20 65 | 72 72 28 22 2e 72 63 20 |RCLEN) e|rr(".rc |
|00003840| 66 69 6c 65 20 74 6f 6f | 20 6c 6f 6e 67 22 29 3b |file too| long");|
|00003850| 0a 09 09 69 74 65 6d 73 | 20 3d 20 73 73 63 61 6e |...items| = sscan|
|00003860| 66 28 72 63 6c 69 6e 65 | 2c 20 22 25 64 20 25 64 |f(rcline|, "%d %d|
|00003870| 20 25 73 20 25 73 20 25 | 73 20 25 73 20 25 73 20 | %s %s %|s %s %s |
|00003880| 25 73 20 25 73 22 2c 0a | 09 09 20 20 20 20 26 6c |%s %s",.|.. &l|
|00003890| 65 6d 66 6f 6e 74 5b 72 | 63 6c 65 6e 5d 2e 70 73 |emfont[r|clen].ps|
|000038a0| 69 7a 65 2c 20 26 6c 65 | 6d 66 6f 6e 74 5b 72 63 |ize, &le|mfont[rc|
|000038b0| 6c 65 6e 5d 2e 74 68 69 | 63 6b 2c 0a 09 09 20 20 |len].thi|ck,... |
|000038c0| 20 20 64 73 70 2c 20 74 | 79 72 2c 20 74 79 62 2c | dsp, t|yr, tyb,|
|000038d0| 20 74 79 69 2c 20 70 73 | 72 2c 20 70 73 62 2c 20 | tyi, ps|r, psb, |
|000038e0| 70 73 69 29 3b 0a 09 09 | 69 66 20 28 69 74 65 6d |psi);...|if (item|
|000038f0| 73 20 21 3d 20 52 43 57 | 49 44 54 48 29 20 65 72 |s != RCW|IDTH) er|
|00003900| 72 28 22 77 72 6f 6e 67 | 20 6c 69 6e 65 20 6c 65 |r("wrong| line le|
|00003910| 6e 67 74 68 20 69 6e 20 | 2e 72 63 20 66 69 6c 65 |ngth in |.rc file|
|00003920| 22 29 3b 0a 09 09 6c 65 | 6d 66 6f 6e 74 5b 72 63 |");...le|mfont[rc|
|00003930| 6c 65 6e 5d 2e 64 73 70 | 20 3d 20 73 61 6c 6c 6f |len].dsp| = sallo|
|00003940| 63 28 64 73 70 29 3b 0a | 09 09 6c 65 6d 66 6f 6e |c(dsp);.|..lemfon|
|00003950| 74 5b 72 63 6c 65 6e 5d | 2e 74 79 72 20 3d 20 73 |t[rclen]|.tyr = s|
|00003960| 61 6c 6c 6f 63 28 74 79 | 72 29 3b 0a 09 09 6c 65 |alloc(ty|r);...le|
|00003970| 6d 66 6f 6e 74 5b 72 63 | 6c 65 6e 5d 2e 74 79 62 |mfont[rc|len].tyb|
|00003980| 20 3d 20 73 61 6c 6c 6f | 63 28 74 79 62 29 3b 0a | = sallo|c(tyb);.|
|00003990| 09 09 6c 65 6d 66 6f 6e | 74 5b 72 63 6c 65 6e 5d |..lemfon|t[rclen]|
|000039a0| 2e 74 79 69 20 3d 20 73 | 61 6c 6c 6f 63 28 74 79 |.tyi = s|alloc(ty|
|000039b0| 69 29 3b 0a 09 09 6c 65 | 6d 66 6f 6e 74 5b 72 63 |i);...le|mfont[rc|
|000039c0| 6c 65 6e 5d 2e 70 73 72 | 20 3d 20 73 61 6c 6c 6f |len].psr| = sallo|
|000039d0| 63 28 70 73 72 29 3b 0a | 09 09 6c 65 6d 66 6f 6e |c(psr);.|..lemfon|
|000039e0| 74 5b 72 63 6c 65 6e 5d | 2e 70 73 62 20 3d 20 73 |t[rclen]|.psb = s|
|000039f0| 61 6c 6c 6f 63 28 70 73 | 62 29 3b 0a 09 09 6c 65 |alloc(ps|b);...le|
|00003a00| 6d 66 6f 6e 74 5b 72 63 | 6c 65 6e 5d 2e 70 73 69 |mfont[rc|len].psi|
|00003a10| 20 3d 20 73 61 6c 6c 6f | 63 28 70 73 69 29 3b 0a | = sallo|c(psi);.|
|00003a20| 09 09 7d 0a 09 20 20 20 | 20 7d 0a 09 69 66 20 28 |..}.. | }..if (|
|00003a30| 72 63 6c 65 6e 20 3d 3d | 20 30 29 20 65 72 72 28 |rclen ==| 0) err(|
|00003a40| 22 2e 6c 65 6d 72 63 20 | 66 69 6c 65 20 77 61 73 |".lemrc |file was|
|00003a50| 20 65 6d 70 74 79 22 29 | 3b 0a 09 7d 0a 20 20 20 | empty")|;..}. |
|00003a60| 20 72 63 6c 65 6e 2b 2b | 3b 0a 20 20 20 20 69 66 | rclen++|;. if|
|00003a70| 20 28 66 29 20 66 63 6c | 6f 73 65 28 66 29 3b 0a | (f) fcl|ose(f);.|
|00003a80| 2f 2a 0a 20 2a 20 6e 6f | 77 20 73 65 74 20 75 70 |/*. * no|w set up|
|00003a90| 20 64 65 66 61 75 6c 74 | 20 64 69 73 70 6c 61 79 | default| display|
|00003aa0| 20 66 6f 6e 74 73 0a 20 | 2a 2f 0a 20 20 20 20 66 | fonts. |*/. f|
|00003ab0| 6f 72 20 28 69 3d 31 3b | 20 69 3c 72 63 6c 65 6e |or (i=1;| i<rclen|
|00003ac0| 3b 20 69 2b 2b 29 0a 09 | 7b 0a 09 63 68 61 72 20 |; i++)..|{..char |
|00003ad0| 66 6f 6e 74 6e 61 6d 65 | 5b 31 30 30 5d 3b 0a 09 |fontname|[100];..|
|00003ae0| 73 70 72 69 6e 74 66 28 | 66 6f 6e 74 6e 61 6d 65 |sprintf(|fontname|
|00003af0| 2c 20 22 25 73 25 73 25 | 64 25 73 22 2c 0a 09 20 |, "%s%s%|d%s",.. |
|00003b00| 20 20 20 46 4f 4e 54 50 | 41 54 48 2c 20 6c 65 6d | FONTP|ATH, lem|
|00003b10| 66 6f 6e 74 5b 69 5d 2e | 64 73 70 2c 20 6c 65 6d |font[i].|dsp, lem|
|00003b20| 66 6f 6e 74 5b 69 5d 2e | 70 73 69 7a 65 2c 20 46 |font[i].|psize, F|
|00003b30| 4f 4e 54 45 58 54 4e 29 | 3b 0a 09 62 66 6f 6e 74 |ONTEXTN)|;..bfont|
|00003b40| 5b 69 5d 20 3d 20 66 6f | 6e 74 6c 6f 61 64 28 66 |[i] = fo|ntload(f|
|00003b50| 6f 6e 74 6e 61 6d 65 29 | 3b 0a 09 69 66 20 28 21 |ontname)|;..if (!|
|00003b60| 62 66 6f 6e 74 5b 69 5d | 29 20 65 72 72 28 22 63 |bfont[i]|) err("c|
|00003b70| 61 6e 27 74 20 6c 6f 61 | 64 20 66 6f 6e 74 20 5c |an't loa|d font \|
|00003b80| 22 25 73 5c 22 22 2c 20 | 66 6f 6e 74 6e 61 6d 65 |"%s\"", |fontname|
|00003b90| 29 3b 0a 09 7d 0a 20 20 | 20 20 7d 0a 53 48 41 52 |);..}. | }.SHAR|
|00003ba0| 5f 45 4f 46 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |_EOF.if |test -f |
|00003bb0| 27 6c 65 6d 73 65 6c 65 | 63 74 2e 63 27 0a 74 68 |'lemsele|ct.c'.th|
|00003bc0| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 6f |en..echo| shar: o|
|00003bd0| 76 65 72 2d 77 72 69 74 | 69 6e 67 20 65 78 69 73 |ver-writ|ing exis|
|00003be0| 74 69 6e 67 20 66 69 6c | 65 20 22 27 6c 65 6d 73 |ting fil|e "'lems|
|00003bf0| 65 6c 65 63 74 2e 63 27 | 22 0a 66 69 0a 63 61 74 |elect.c'|".fi.cat|
|00003c00| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|00003c10| 27 6c 65 6d 73 65 6c 65 | 63 74 2e 63 27 0a 2f 2a |'lemsele|ct.c'./*|
|00003c20| 0a 20 2a 20 6c 65 6d 73 | 65 6c 65 63 74 2e 63 20 |. * lems|elect.c |
|00003c30| 2d 20 6f 62 6a 65 63 74 | 20 73 65 6c 65 63 74 69 |- object| selecti|
|00003c40| 6f 6e 20 61 6e 64 20 70 | 72 6f 78 69 6d 69 74 79 |on and p|roximity|
|00003c50| 20 74 65 73 74 69 6e 67 | 0a 20 2a 0a 20 2a 20 63 | testing|. *. * c|
|00003c60| 6f 70 79 72 69 67 68 74 | 20 28 63 29 20 62 79 20 |opyright| (c) by |
|00003c70| 41 6c 61 6e 20 57 2e 20 | 50 61 65 74 68 2c 20 31 |Alan W. |Paeth, 1|
|00003c80| 39 38 37 2e 20 41 6c 6c | 20 72 69 67 68 74 73 20 |987. All| rights |
|00003c90| 72 65 73 65 72 76 65 64 | 2e 0a 20 2a 2f 0a 0a 23 |reserved|.. */..#|
|00003ca0| 69 6e 63 6c 75 64 65 20 | 22 6c 65 6d 2e 68 22 0a |include |"lem.h".|
|00003cb0| 0a 63 79 63 6c 65 73 65 | 6c 65 63 74 28 29 0a 20 |.cyclese|lect(). |
|00003cc0| 20 20 20 7b 0a 20 20 20 | 20 69 66 20 28 6d 61 72 | {. | if (mar|
|00003cd0| 6b 6f 62 6a 29 0a 09 7b | 0a 09 69 66 20 28 6f 62 |kobj)..{|..if (ob|
|00003ce0| 6a 73 5b 6d 61 72 6b 6f | 62 6a 5d 2d 3e 73 74 61 |js[marko|bj]->sta|
|00003cf0| 74 20 3d 3d 20 55 4e 44 | 45 4c 29 20 61 6e 79 28 |t == UND|EL) any(|
|00003d00| 6d 61 72 6b 6f 62 6a 2c | 20 53 45 4c 45 43 54 29 |markobj,| SELECT)|
|00003d10| 3b 0a 09 65 6c 73 65 20 | 69 66 20 28 6f 62 6a 73 |;..else |if (objs|
|00003d20| 5b 6d 61 72 6b 6f 62 6a | 5d 2d 3e 73 74 61 74 20 |[markobj|]->stat |
|00003d30| 3d 3d 20 53 45 4c 29 20 | 61 6e 79 28 6d 61 72 6b |== SEL) |any(mark|
|00003d40| 6f 62 6a 2c 20 44 45 53 | 45 4c 45 43 54 29 3b 0a |obj, DES|ELECT);.|
|00003d50| 09 7d 0a 20 20 20 20 7d | 0a 0a 72 65 63 74 73 65 |.}. }|..rectse|
|00003d60| 6c 65 63 74 28 78 30 2c | 20 79 30 2c 20 78 31 2c |lect(x0,| y0, x1,|
|00003d70| 20 79 31 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 69 | y1). | {. i|
|00003d80| 6e 74 20 69 2c 20 6d 6f | 64 65 2c 20 78 6c 2c 20 |nt i, mo|de, xl, |
|00003d90| 79 6c 2c 20 78 68 2c 20 | 79 68 3b 0a 20 20 20 20 |yl, xh, |yh;. |
|00003da0| 78 6c 20 3d 20 4d 49 4e | 28 78 30 2c 20 78 31 29 |xl = MIN|(x0, x1)|
|00003db0| 3b 0a 20 20 20 20 79 6c | 20 3d 20 4d 49 4e 28 79 |;. yl| = MIN(y|
|00003dc0| 30 2c 20 79 31 29 3b 0a | 20 20 20 20 78 68 20 3d |0, y1);.| xh =|
|00003dd0| 20 4d 41 58 28 78 30 2c | 20 78 31 29 3b 0a 20 20 | MAX(x0,| x1);. |
|00003de0| 20 20 79 68 20 3d 20 4d | 41 58 28 79 30 2c 20 79 | yh = M|AX(y0, y|
|00003df0| 31 29 3b 0a 20 20 20 20 | 6d 6f 64 65 20 3d 20 28 |1);. |mode = (|
|00003e00| 79 30 20 3c 20 79 31 29 | 20 3f 20 44 45 53 45 4c |y0 < y1)| ? DESEL|
|00003e10| 45 43 54 20 3a 20 53 45 | 4c 45 43 54 3b 0a 20 20 |ECT : SE|LECT;. |
|00003e20| 20 20 66 6f 72 6f 62 6a | 65 63 74 73 0a 09 7b 0a | forobj|ects..{.|
|00003e30| 09 69 66 20 28 6f 62 6a | 69 6e 72 65 63 74 28 69 |.if (obj|inrect(i|
|00003e40| 2c 20 78 6c 2c 20 79 6c | 2c 20 78 68 2c 20 79 68 |, xl, yl|, xh, yh|
|00003e50| 29 29 20 61 6e 79 28 69 | 2c 20 6d 6f 64 65 29 3b |)) any(i|, mode);|
|00003e60| 0a 09 7d 0a 20 20 20 20 | 7d 0a 0a 6f 62 6a 6e 65 |..}. |}..objne|
|00003e70| 61 72 61 6e 79 28 78 2c | 20 79 29 0a 20 20 20 20 |arany(x,| y). |
|00003e80| 7b 0a 20 20 20 20 69 6e | 74 20 69 3b 0a 20 20 20 |{. in|t i;. |
|00003e90| 20 69 66 20 28 69 20 3d | 20 6f 62 6a 6e 65 61 72 | if (i =| objnear|
|00003ea0| 28 78 2c 20 79 2c 20 55 | 4e 44 45 4c 29 29 20 72 |(x, y, U|NDEL)) r|
|00003eb0| 65 74 75 72 6e 28 69 29 | 3b 0a 20 20 20 20 72 65 |eturn(i)|;. re|
|00003ec0| 74 75 72 6e 28 6f 62 6a | 6e 65 61 72 28 78 2c 20 |turn(obj|near(x, |
|00003ed0| 79 2c 20 53 45 4c 29 29 | 3b 0a 20 20 20 20 7d 0a |y, SEL))|;. }.|
|00003ee0| 0a 6f 62 6a 6e 65 61 72 | 28 78 2c 20 79 2c 20 73 |.objnear|(x, y, s|
|00003ef0| 74 61 74 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 69 |tat). | {. i|
|00003f00| 6e 74 20 69 3b 0a 20 20 | 20 20 66 6f 72 6f 62 6a |nt i;. | forobj|
|00003f10| 73 72 65 76 09 09 2f 2a | 20 72 65 76 65 72 73 65 |srev../*| reverse|
|00003f20| 20 6f 72 64 65 72 20 73 | 65 61 72 63 68 20 2d 20 | order s|earch - |
|00003f30| 6d 6f 73 74 20 72 65 63 | 65 6e 74 20 61 70 70 65 |most rec|ent appe|
|00003f40| 61 72 73 20 66 69 72 73 | 74 20 2a 2f 0a 09 7b 0a |ars firs|t */..{.|
|00003f50| 09 69 66 20 28 4f 73 74 | 61 74 20 3d 3d 20 73 74 |.if (Ost|at == st|
|00003f60| 61 74 29 0a 09 20 20 20 | 20 7b 0a 09 20 20 20 20 |at).. | {.. |
|00003f70| 69 66 20 28 6f 62 6a 6e | 65 61 72 70 74 28 69 2c |if (objn|earpt(i,|
|00003f80| 20 78 2c 20 79 29 29 20 | 72 65 74 75 72 6e 28 69 | x, y)) |return(i|
|00003f90| 29 3b 0a 09 20 20 20 20 | 7d 0a 09 7d 0a 20 20 20 |);.. |}..}. |
|00003fa0| 20 72 65 74 75 72 6e 28 | 30 29 3b 0a 20 20 20 20 | return(|0);. |
|00003fb0| 7d 0a 53 48 41 52 5f 45 | 4f 46 0a 69 66 20 74 65 |}.SHAR_E|OF.if te|
|00003fc0| 73 74 20 2d 66 20 27 6c | 65 6d 73 70 65 63 69 61 |st -f 'l|emspecia|
|00003fd0| 6c 2e 63 27 0a 74 68 65 | 6e 0a 09 65 63 68 6f 20 |l.c'.the|n..echo |
|00003fe0| 73 68 61 72 3a 20 6f 76 | 65 72 2d 77 72 69 74 69 |shar: ov|er-writi|
|00003ff0| 6e 67 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |ng exist|ing file|
|00004000| 20 22 27 6c 65 6d 73 70 | 65 63 69 61 6c 2e 63 27 | "'lemsp|ecial.c'|
|00004010| 22 0a 66 69 0a 63 61 74 | 20 3c 3c 20 5c 53 48 41 |".fi.cat| << \SHA|
|00004020| 52 5f 45 4f 46 20 3e 20 | 27 6c 65 6d 73 70 65 63 |R_EOF > |'lemspec|
|00004030| 69 61 6c 2e 63 27 0a 2f | 2a 0a 20 2a 20 6c 65 6d |ial.c'./|*. * lem|
|00004040| 73 70 65 63 69 61 6c 2e | 63 20 2d 20 65 78 74 72 |special.|c - extr|
|00004050| 61 20 66 75 6e 63 74 69 | 6f 6e 73 20 66 6f 72 20 |a functi|ons for |
|00004060| 72 61 6e 64 6f 6d 20 61 | 70 70 6c 69 63 61 74 69 |random a|pplicati|
|00004070| 6f 6e 73 0a 20 2a 0a 20 | 2a 20 63 6f 70 79 72 69 |ons. *. |* copyri|
|00004080| 67 68 74 20 28 63 29 20 | 62 79 20 41 6c 61 6e 20 |ght (c) |by Alan |
|00004090| 57 2e 20 50 61 65 74 68 | 2c 20 31 39 38 37 2e 20 |W. Paeth|, 1987. |
|000040a0| 41 6c 6c 20 72 69 67 68 | 74 73 20 72 65 73 65 72 |All righ|ts reser|
|000040b0| 76 65 64 2e 0a 20 2a 2f | 0a 0a 23 69 6e 63 6c 75 |ved.. */|..#inclu|
|000040c0| 64 65 20 22 6c 65 6d 2e | 68 22 0a 23 69 6e 63 6c |de "lem.|h".#incl|
|000040d0| 75 64 65 20 3c 6d 61 74 | 68 2e 68 3e 0a 0a 73 70 |ude <mat|h.h>..sp|
|000040e0| 65 63 69 61 6c 66 75 6e | 63 28 29 0a 20 20 20 20 |ecialfun|c(). |
|000040f0| 7b 0a 20 20 20 20 63 68 | 61 72 20 63 68 3b 0a 20 |{. ch|ar ch;. |
|00004100| 20 20 20 6d 73 67 70 6f | 73 74 28 22 3c 46 3e 6c | msgpo|st("<F>l|
|00004110| 69 70 20 3c 43 3e 63 77 | 20 3c 4d 3e 61 67 6e 69 |ip <C>cw| <M>agni|
|00004120| 66 79 20 3c 52 3e 6f 74 | 61 74 65 20 3c 53 3e 74 |fy <R>ot|ate <S>t|
|00004130| 72 65 74 63 68 20 3c 41 | 3e 6c 69 67 6e 3a 20 22 |retch <A|>lign: "|
|00004140| 29 3b 0a 20 20 20 20 63 | 68 20 3d 20 67 65 74 73 |);. c|h = gets|
|00004150| 74 72 6f 6b 65 28 29 3b | 0a 20 20 20 20 73 77 69 |troke();|. swi|
|00004160| 74 63 68 28 55 43 28 63 | 68 29 29 0a 09 7b 0a 09 |tch(UC(c|h))..{..|
|00004170| 63 61 73 65 20 27 46 27 | 3a 20 66 6c 69 70 28 29 |case 'F'|: flip()|
|00004180| 3b 20 62 72 65 61 6b 3b | 0a 09 63 61 73 65 20 27 |; break;|..case '|
|00004190| 43 27 3a 20 63 63 77 28 | 29 3b 20 62 72 65 61 6b |C': ccw(|); break|
|000041a0| 3b 0a 09 63 61 73 65 20 | 27 4d 27 3a 20 6d 61 67 |;..case |'M': mag|
|000041b0| 6e 69 66 79 28 29 3b 20 | 62 72 65 61 6b 3b 0a 09 |nify(); |break;..|
|000041c0| 63 61 73 65 20 27 52 27 | 3a 20 72 6f 74 61 74 65 |case 'R'|: rotate|
|000041d0| 28 29 3b 20 62 72 65 61 | 6b 3b 0a 09 63 61 73 65 |(); brea|k;..case|
|000041e0| 20 27 53 27 3a 20 73 74 | 72 65 74 63 68 28 29 3b | 'S': st|retch();|
|000041f0| 20 62 72 65 61 6b 3b 0a | 09 63 61 73 65 20 27 41 | break;.|.case 'A|
|00004200| 27 3a 20 61 6c 69 67 6e | 28 29 3b 20 62 72 65 61 |': align|(); brea|
|00004210| 6b 3b 0a 09 64 65 66 61 | 75 6c 74 3a 20 6d 73 67 |k;..defa|ult: msg|
|00004220| 70 6f 73 74 28 22 75 6e | 6b 6e 6f 77 6e 20 74 72 |post("un|known tr|
|00004230| 61 6e 73 66 6f 72 6d 61 | 74 69 6f 6e 22 29 3b 20 |ansforma|tion"); |
|00004240| 62 72 65 61 6b 3b 0a 09 | 7d 0a 20 20 20 20 7d 0a |break;..|}. }.|
|00004250| 0a 74 72 61 6e 73 66 6f | 72 6d 28 6d 31 31 2c 20 |.transfo|rm(m11, |
|00004260| 6d 31 32 2c 20 6d 32 31 | 2c 20 6d 32 32 29 0a 20 |m12, m21|, m22). |
|00004270| 20 20 20 66 6c 6f 61 74 | 20 6d 31 31 2c 20 6d 31 | float| m11, m1|
|00004280| 32 2c 20 6d 32 31 2c 20 | 6d 32 32 3b 0a 20 20 20 |2, m21, |m22;. |
|00004290| 20 7b 0a 20 20 20 20 69 | 6e 74 20 69 3b 0a 2f 2a | {. i|nt i;./*|
|000042a0| 0a 20 2a 20 72 65 63 6f | 72 64 20 69 6e 76 65 72 |. * reco|rd inver|
|000042b0| 73 65 20 74 72 61 6e 73 | 66 6f 72 6d 61 74 69 6f |se trans|formatio|
|000042c0| 6e 20 61 6e 64 20 73 65 | 74 20 75 6e 64 6f 20 66 |n and se|t undo f|
|000042d0| 6c 61 67 20 66 6f 72 20 | 75 6e 64 6f 69 6e 67 0a |lag for |undoing.|
|000042e0| 20 2a 2f 0a 20 20 20 20 | 75 6e 64 6f 20 3d 20 55 | */. |undo = U|
|000042f0| 4e 44 4f 41 46 46 3b 0a | 20 20 20 20 75 6e 78 20 |NDOAFF;.| unx |
|00004300| 3d 20 6d 61 72 6b 78 3b | 0a 20 20 20 20 75 6e 79 |= markx;|. uny|
|00004310| 20 3d 20 6d 61 72 6b 79 | 3b 0a 20 20 20 20 75 6e | = marky|;. un|
|00004320| 31 31 20 3d 20 6d 31 31 | 3b 0a 20 20 20 20 75 6e |11 = m11|;. un|
|00004330| 31 32 20 3d 20 6d 31 32 | 3b 0a 20 20 20 20 75 6e |12 = m12|;. un|
|00004340| 32 31 20 3d 20 6d 32 31 | 3b 0a 20 20 20 20 75 6e |21 = m21|;. un|
|00004350| 32 32 20 3d 20 6d 32 32 | 3b 0a 2f 2a 0a 20 2a 20 |22 = m22|;./*. * |
|00004360| 6e 6f 77 20 64 6f 20 74 | 68 65 20 74 72 61 6e 73 |now do t|he trans|
|00004370| 66 6f 72 6d 61 74 69 6f | 6e 73 0a 20 2a 2f 0a 20 |formatio|ns. */. |
|00004380| 66 6f 72 6f 62 6a 65 63 | 74 73 0a 09 7b 0a 09 69 |forobjec|ts..{..i|
|00004390| 66 20 28 4f 73 65 6c 29 | 0a 09 20 20 20 20 7b 0a |f (Osel)|.. {.|
|000043a0| 09 20 20 20 20 6f 62 6a | 65 63 74 6f 70 28 69 2c |. obj|ectop(i,|
|000043b0| 20 53 45 4c 2c 20 44 45 | 4c 29 3b 0a 09 20 20 20 | SEL, DE|L);.. |
|000043c0| 20 6f 62 6a 6d 6f 76 65 | 28 69 2c 20 2d 6d 61 72 | objmove|(i, -mar|
|000043d0| 6b 78 2c 20 2d 6d 61 72 | 6b 79 29 3b 0a 09 20 20 |kx, -mar|ky);.. |
|000043e0| 20 20 6f 62 6a 61 66 66 | 69 6e 65 28 69 2c 20 6d | objaff|ine(i, m|
|000043f0| 31 31 2c 20 6d 31 32 2c | 20 6d 32 31 2c 20 6d 32 |11, m12,| m21, m2|
|00004400| 32 29 3b 0a 09 20 20 20 | 20 6f 62 6a 6d 6f 76 65 |2);.. | objmove|
|00004410| 28 69 2c 20 20 6d 61 72 | 6b 78 2c 20 20 6d 61 72 |(i, mar|kx, mar|
|00004420| 6b 79 29 3b 0a 09 20 20 | 20 20 6f 62 6a 72 65 73 |ky);.. | objres|
|00004430| 69 7a 65 28 69 29 3b 0a | 09 20 20 20 20 6f 62 6a |ize(i);.|. obj|
|00004440| 65 63 74 6f 70 28 69 2c | 20 44 45 4c 2c 20 53 45 |ectop(i,| DEL, SE|
|00004450| 4c 29 3b 0a 09 20 20 20 | 20 7d 0a 09 7d 0a 20 20 |L);.. | }..}. |
|00004460| 20 20 7d 0a 0a 66 6c 69 | 70 28 29 0a 20 20 20 20 | }..fli|p(). |
|00004470| 7b 0a 20 20 20 20 69 66 | 20 28 6d 61 72 6b 6f 6e |{. if| (markon|
|00004480| 29 0a 09 7b 0a 09 74 72 | 61 6e 73 66 6f 72 6d 28 |)..{..tr|ansform(|
|00004490| 2d 31 2e 30 2c 20 30 2e | 30 2c 20 30 2e 30 2c 20 |-1.0, 0.|0, 0.0, |
|000044a0| 31 2e 30 2c 20 31 29 3b | 0a 09 6d 73 67 70 6f 73 |1.0, 1);|..msgpos|
|000044b0| 74 28 22 66 6c 69 70 20 | 64 6f 6e 65 22 29 3b 0a |t("flip |done");.|
|000044c0| 09 7d 0a 20 20 20 20 65 | 6c 73 65 20 6d 73 67 70 |.}. e|lse msgp|
|000044d0| 6f 73 74 28 22 66 6c 69 | 70 20 2d 2d 20 6e 6f 20 |ost("fli|p -- no |
|000044e0| 6d 61 72 6b 20 70 72 65 | 73 65 6e 74 22 29 3b 0a |mark pre|sent");.|
|000044f0| 20 20 20 20 7d 0a 0a 63 | 63 77 28 29 0a 20 20 20 | }..c|cw(). |
|00004500| 20 7b 0a 20 20 20 20 69 | 66 20 28 6d 61 72 6b 6f | {. i|f (marko|
|00004510| 6e 29 0a 09 7b 0a 09 74 | 72 61 6e 73 66 6f 72 6d |n)..{..t|ransform|
|00004520| 28 30 2e 30 2c 20 2d 31 | 2e 30 2c 20 31 2e 30 2c |(0.0, -1|.0, 1.0,|
|00004530| 20 30 2e 30 2c 20 30 29 | 3b 0a 09 6d 73 67 70 6f | 0.0, 0)|;..msgpo|
|00004540| 73 74 28 22 63 63 77 20 | 74 75 72 6e 20 64 6f 6e |st("ccw |turn don|
|00004550| 65 22 29 3b 0a 09 7d 0a | 20 20 20 20 65 6c 73 65 |e");..}.| else|
|00004560| 20 6d 73 67 70 6f 73 74 | 28 22 63 63 77 20 2d 2d | msgpost|("ccw --|
|00004570| 20 6e 6f 20 6d 61 72 6b | 20 70 72 65 73 65 6e 74 | no mark| present|
|00004580| 22 29 3b 0a 20 20 20 20 | 7d 0a 0a 6d 61 67 6e 69 |");. |}..magni|
|00004590| 66 79 28 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 69 |fy(). | {. i|
|000045a0| 6e 74 20 78 31 2c 20 79 | 31 2c 20 78 32 2c 20 79 |nt x1, y|1, x2, y|
|000045b0| 32 2c 20 78 73 2c 20 79 | 73 2c 20 78 65 2c 20 79 |2, xs, y|s, xe, y|
|000045c0| 65 3b 0a 20 20 20 20 66 | 6c 6f 61 74 20 6d 61 67 |e;. f|loat mag|
|000045d0| 2c 20 6f 75 74 6c 65 6e | 3b 0a 20 20 20 20 69 66 |, outlen|;. if|
|000045e0| 20 28 66 69 6e 64 6d 61 | 72 6b 28 26 78 31 2c 20 | (findma|rk(&x1, |
|000045f0| 26 79 31 2c 20 26 78 32 | 2c 20 26 79 32 29 29 0a |&y1, &x2|, &y2)).|
|00004600| 09 7b 0a 09 78 73 20 3d | 20 78 32 2d 6d 61 72 6b |.{..xs =| x2-mark|
|00004610| 78 3b 0a 09 79 73 20 3d | 20 79 32 2d 6d 61 72 6b |x;..ys =| y2-mark|
|00004620| 79 3b 0a 09 78 65 20 3d | 20 78 31 2d 6d 61 72 6b |y;..xe =| x1-mark|
|00004630| 78 3b 0a 09 79 65 20 3d | 20 79 31 2d 6d 61 72 6b |x;..ye =| y1-mark|
|00004640| 79 3b 0a 09 6f 75 74 6c | 65 6e 20 3d 20 78 73 2a |y;..outl|en = xs*|
|00004650| 78 73 2b 79 73 2a 79 73 | 3b 0a 09 69 66 20 28 6f |xs+ys*ys|;..if (o|
|00004660| 75 74 6c 65 6e 20 21 3d | 20 30 2e 30 29 0a 09 20 |utlen !=| 0.0).. |
|00004670| 20 20 20 7b 0a 09 20 20 | 20 20 6d 61 67 20 3d 20 | {.. | mag = |
|00004680| 73 71 72 74 28 28 66 6c | 6f 61 74 29 28 78 65 2a |sqrt((fl|oat)(xe*|
|00004690| 78 65 2b 79 65 2a 79 65 | 29 2f 6f 75 74 6c 65 6e |xe+ye*ye|)/outlen|
|000046a0| 29 3b 0a 09 20 20 20 20 | 6d 61 67 20 3d 20 28 6d |);.. |mag = (m|
|000046b0| 61 67 20 3c 20 30 2e 31 | 29 20 3f 20 30 2e 31 20 |ag < 0.1|) ? 0.1 |
|000046c0| 3a 20 28 6d 61 67 20 3e | 20 31 30 2e 30 20 3f 20 |: (mag >| 10.0 ? |
|000046d0| 31 30 2e 30 20 3a 20 6d | 61 67 29 3b 0a 09 20 20 |10.0 : m|ag);.. |
|000046e0| 20 20 74 72 61 6e 73 66 | 6f 72 6d 28 6d 61 67 2c | transf|orm(mag,|
|000046f0| 20 30 2e 30 2c 20 30 2e | 30 2c 20 6d 61 67 2c 20 | 0.0, 0.|0, mag, |
|00004700| 31 29 3b 0a 09 20 20 20 | 20 6d 73 67 70 6f 73 74 |1);.. | msgpost|
|00004710| 28 22 6d 61 67 6e 69 66 | 79 20 64 6f 6e 65 22 29 |("magnif|y done")|
|00004720| 3b 0a 09 20 20 20 20 7d | 0a 09 6d 73 67 70 6f 73 |;.. }|..msgpos|
|00004730| 74 28 22 6e 75 6c 6c 20 | 6d 61 67 6e 69 66 79 20 |t("null |magnify |
|00004740| 69 67 6e 6f 72 65 64 22 | 29 3b 0a 09 7d 0a 20 20 |ignored"|);..}. |
|00004750| 20 20 7d 0a 0a 73 74 72 | 65 74 63 68 28 29 0a 20 | }..str|etch(). |
|00004760| 20 20 20 7b 0a 20 20 20 | 20 69 6e 74 20 78 31 2c | {. | int x1,|
|00004770| 20 79 31 2c 20 78 32 2c | 20 79 32 2c 20 78 73 2c | y1, x2,| y2, xs,|
|00004780| 20 79 73 2c 20 78 65 2c | 20 79 65 3b 0a 20 20 20 | ys, xe,| ye;. |
|00004790| 20 66 6c 6f 61 74 20 78 | 6d 61 67 2c 20 79 6d 61 | float x|mag, yma|
|000047a0| 67 3b 0a 20 20 20 20 69 | 66 20 28 66 69 6e 64 6d |g;. i|f (findm|
|000047b0| 61 72 6b 28 26 78 31 2c | 20 26 79 31 2c 20 26 78 |ark(&x1,| &y1, &x|
|000047c0| 32 2c 20 26 79 32 29 29 | 0a 09 7b 0a 09 78 73 20 |2, &y2))|..{..xs |
|000047d0| 3d 20 78 32 2d 6d 61 72 | 6b 78 3b 0a 09 79 73 20 |= x2-mar|kx;..ys |
|000047e0| 3d 20 79 32 2d 6d 61 72 | 6b 79 3b 0a 09 78 65 20 |= y2-mar|ky;..xe |
|000047f0| 3d 20 78 31 2d 6d 61 72 | 6b 78 3b 0a 09 79 65 20 |= x1-mar|kx;..ye |
|00004800| 3d 20 79 31 2d 6d 61 72 | 6b 79 3b 0a 09 78 6d 61 |= y1-mar|ky;..xma|
|00004810| 67 20 3d 20 28 78 73 20 | 3d 3d 20 30 29 20 3f 20 |g = (xs |== 0) ? |
|00004820| 31 2e 30 20 3a 20 28 66 | 6c 6f 61 74 29 28 78 65 |1.0 : (f|loat)(xe|
|00004830| 29 2f 78 73 3b 0a 09 79 | 6d 61 67 20 3d 20 28 79 |)/xs;..y|mag = (y|
|00004840| 73 20 3d 3d 20 30 29 20 | 3f 20 31 2e 30 20 3a 20 |s == 0) |? 1.0 : |
|00004850| 28 66 6c 6f 61 74 29 28 | 79 65 29 2f 79 73 3b 0a |(float)(|ye)/ys;.|
|00004860| 09 78 6d 61 67 20 3d 20 | 28 78 6d 61 67 20 3c 20 |.xmag = |(xmag < |
|00004870| 30 2e 31 29 20 3f 20 30 | 2e 31 20 3a 20 28 78 6d |0.1) ? 0|.1 : (xm|
|00004880| 61 67 20 3e 20 31 30 2e | 30 20 3f 20 31 30 2e 30 |ag > 10.|0 ? 10.0|
|00004890| 20 3a 20 78 6d 61 67 29 | 3b 0a 09 79 6d 61 67 20 | : xmag)|;..ymag |
|000048a0| 3d 20 28 79 6d 61 67 20 | 3c 20 30 2e 31 29 20 3f |= (ymag |< 0.1) ?|
|000048b0| 20 30 2e 31 20 3a 20 28 | 79 6d 61 67 20 3e 20 31 | 0.1 : (|ymag > 1|
|000048c0| 30 2e 30 20 3f 20 31 30 | 2e 30 20 3a 20 79 6d 61 |0.0 ? 10|.0 : yma|
|000048d0| 67 29 3b 0a 09 74 72 61 | 6e 73 66 6f 72 6d 28 78 |g);..tra|nsform(x|
|000048e0| 6d 61 67 2c 20 30 2e 30 | 2c 20 30 2e 30 2c 20 79 |mag, 0.0|, 0.0, y|
|000048f0| 6d 61 67 2c 20 31 29 3b | 0a 09 6d 73 67 70 6f 73 |mag, 1);|..msgpos|
|00004900| 74 28 22 73 74 72 65 74 | 63 68 20 64 6f 6e 65 22 |t("stret|ch done"|
|00004910| 29 3b 0a 09 7d 0a 20 20 | 20 20 7d 0a 0a 72 6f 74 |);..}. | }..rot|
|00004920| 61 74 65 28 29 0a 20 20 | 20 20 7b 0a 20 20 20 20 |ate(). | {. |
|00004930| 69 6e 74 20 78 31 2c 20 | 79 31 2c 20 78 32 2c 20 |int x1, |y1, x2, |
|00004940| 79 32 2c 20 78 73 2c 20 | 79 73 2c 20 78 65 2c 20 |y2, xs, |ys, xe, |
|00004950| 79 65 3b 0a 20 20 20 20 | 66 6c 6f 61 74 20 73 2c |ye;. |float s,|
|00004960| 20 63 2c 20 68 79 3b 0a | 20 20 20 20 69 66 20 28 | c, hy;.| if (|
|00004970| 66 69 6e 64 6d 61 72 6b | 28 26 78 31 2c 20 26 79 |findmark|(&x1, &y|
|00004980| 31 2c 20 26 78 32 2c 20 | 26 79 32 29 29 0a 09 7b |1, &x2, |&y2))..{|
|00004990| 0a 09 78 73 20 3d 20 78 | 32 2d 6d 61 72 6b 78 3b |..xs = x|2-markx;|
|000049a0| 0a 09 79 73 20 3d 20 79 | 32 2d 6d 61 72 6b 79 3b |..ys = y|2-marky;|
|000049b0| 0a 09 78 65 20 3d 20 78 | 31 2d 6d 61 72 6b 78 3b |..xe = x|1-markx;|
|000049c0| 0a 09 79 65 20 3d 20 79 | 31 2d 6d 61 72 6b 79 3b |..ye = y|1-marky;|
|000049d0| 0a 09 68 79 20 3d 20 73 | 71 72 74 28 28 66 6c 6f |..hy = s|qrt((flo|
|000049e0| 61 74 29 28 20 28 78 73 | 2a 78 73 20 2b 20 79 73 |at)( (xs|*xs + ys|
|000049f0| 2a 79 73 29 20 2a 20 28 | 78 65 2a 78 65 20 2b 20 |*ys) * (|xe*xe + |
|00004a00| 79 65 2a 79 65 29 20 29 | 29 3b 0a 09 69 66 20 28 |ye*ye) )|);..if (|
|00004a10| 68 79 20 21 3d 20 30 2e | 30 29 0a 09 20 20 20 20 |hy != 0.|0).. |
|00004a20| 7b 0a 09 20 20 20 20 63 | 20 3d 20 20 28 78 73 2a |{.. c| = (xs*|
|00004a30| 78 65 2b 79 73 2a 79 65 | 29 2f 68 79 3b 0a 09 20 |xe+ys*ye|)/hy;.. |
|00004a40| 20 20 20 73 20 3d 20 20 | 28 78 73 2a 79 65 2d 78 | s = |(xs*ye-x|
|00004a50| 65 2a 79 73 29 2f 68 79 | 3b 0a 09 20 20 20 20 74 |e*ys)/hy|;.. t|
|00004a60| 72 61 6e 73 66 6f 72 6d | 28 63 2c 20 2d 73 2c 20 |ransform|(c, -s, |
|00004a70| 73 2c 20 63 2c 20 30 29 | 3b 0a 09 20 20 20 20 6d |s, c, 0)|;.. m|
|00004a80| 73 67 70 6f 73 74 28 22 | 72 6f 74 61 74 65 20 64 |sgpost("|rotate d|
|00004a90| 6f 6e 65 22 29 3b 0a 09 | 20 20 20 20 7d 0a 09 65 |one");..| }..e|
|00004aa0| 6c 73 65 20 6d 73 67 70 | 6f 73 74 28 22 6e 75 6c |lse msgp|ost("nul|
|00004ab0| 6c 20 72 6f 74 61 74 69 | 6f 6e 20 69 67 6e 6f 72 |l rotati|on ignor|
|00004ac0| 65 64 22 29 3b 0a 09 7d | 0a 20 20 20 20 7d 0a 0a |ed");..}|. }..|
|00004ad0| 61 6c 69 67 6e 28 29 0a | 20 20 20 20 7b 0a 20 20 |align().| {. |
|00004ae0| 20 20 69 6e 74 20 78 31 | 2c 20 79 31 2c 20 78 32 | int x1|, y1, x2|
|00004af0| 2c 20 79 32 2c 20 78 73 | 2c 20 79 73 2c 20 78 65 |, y2, xs|, ys, xe|
|00004b00| 2c 20 79 65 2c 20 73 63 | 61 6c 65 3b 0a 20 20 20 |, ye, sc|ale;. |
|00004b10| 20 66 6c 6f 61 74 20 6d | 31 31 2c 20 6d 31 32 2c | float m|11, m12,|
|00004b20| 20 6d 32 31 2c 20 6d 32 | 32 2c 20 64 65 74 3b 0a | m21, m2|2, det;.|
|00004b30| 20 20 20 20 69 66 20 28 | 66 69 6e 64 6d 61 72 6b | if (|findmark|
|00004b40| 28 26 78 31 2c 20 26 79 | 31 2c 20 26 78 32 2c 20 |(&x1, &y|1, &x2, |
|00004b50| 26 79 32 29 29 0a 09 7b | 0a 09 78 73 20 3d 20 78 |&y2))..{|..xs = x|
|00004b60| 32 2d 6d 61 72 6b 78 3b | 0a 09 79 73 20 3d 20 79 |2-markx;|..ys = y|
|00004b70| 32 2d 6d 61 72 6b 79 3b | 0a 09 78 65 20 3d 20 78 |2-marky;|..xe = x|
|00004b80| 31 2d 6d 61 72 6b 78 3b | 0a 09 79 65 20 3d 20 79 |1-markx;|..ye = y|
|00004b90| 31 2d 6d 61 72 6b 79 3b | 0a 09 73 63 61 6c 65 20 |1-marky;|..scale |
|00004ba0| 3d 20 4d 41 58 28 4d 41 | 58 28 41 42 53 28 78 73 |= MAX(MA|X(ABS(xs|
|00004bb0| 29 2c 41 42 53 28 79 73 | 29 29 2c 4d 41 58 28 41 |),ABS(ys|)),MAX(A|
|00004bc0| 42 53 28 78 65 29 2c 41 | 42 53 28 79 65 29 29 29 |BS(xe),A|BS(ye)))|
|00004bd0| 3b 0a 09 64 65 74 20 3d | 20 78 65 2a 79 73 20 2d |;..det =| xe*ys -|
|00004be0| 20 78 73 2a 79 65 3b 20 | 0a 09 6d 31 31 20 3d 20 | xs*ye; |..m11 = |
|00004bf0| 28 66 6c 6f 61 74 29 28 | 20 79 73 2a 73 63 61 6c |(float)(| ys*scal|
|00004c00| 65 29 2f 64 65 74 3b 0a | 09 6d 31 32 20 3d 20 28 |e)/det;.|.m12 = (|
|00004c10| 66 6c 6f 61 74 29 28 2d | 78 73 2a 73 63 61 6c 65 |float)(-|xs*scale|
|00004c20| 29 2f 64 65 74 3b 0a 09 | 6d 32 31 20 3d 20 28 66 |)/det;..|m21 = (f|
|00004c30| 6c 6f 61 74 29 28 2d 79 | 65 2a 73 63 61 6c 65 29 |loat)(-y|e*scale)|
|00004c40| 2f 64 65 74 3b 0a 09 6d | 32 32 20 3d 20 28 66 6c |/det;..m|22 = (fl|
|00004c50| 6f 61 74 29 28 20 78 65 | 2a 73 63 61 6c 65 29 2f |oat)( xe|*scale)/|
|00004c60| 64 65 74 3b 0a 09 74 72 | 61 6e 73 66 6f 72 6d 28 |det;..tr|ansform(|
|00004c70| 6d 31 31 2c 20 6d 31 32 | 2c 20 6d 32 31 2c 20 6d |m11, m12|, m21, m|
|00004c80| 32 32 2c 20 31 29 3b 0a | 09 6d 73 67 70 6f 73 74 |22, 1);.|.msgpost|
|00004c90| 28 22 61 6c 69 67 6e 20 | 64 6f 6e 65 22 29 3b 0a |("align |done");.|
|00004ca0| 09 7d 0a 20 20 20 20 7d | 0a 20 20 20 20 0a 66 69 |.}. }|. .fi|
|00004cb0| 6e 64 6d 61 72 6b 28 78 | 31 2c 20 79 31 2c 20 78 |ndmark(x|1, y1, x|
|00004cc0| 32 2c 20 79 32 29 0a 20 | 20 20 20 69 6e 74 20 2a |2, y2). | int *|
|00004cd0| 78 31 2c 20 2a 79 31 2c | 20 2a 78 32 2c 20 2a 79 |x1, *y1,| *x2, *y|
|00004ce0| 32 3b 0a 20 20 20 20 7b | 0a 20 20 20 20 69 6e 74 |2;. {|. int|
|00004cf0| 20 69 2c 20 73 2c 20 65 | 2c 20 61 72 72 6f 77 2c | i, s, e|, arrow,|
|00004d00| 20 73 74 72 61 69 67 68 | 74 3b 0a 20 20 20 20 61 | straigh|t;. a|
|00004d10| 72 72 6f 77 20 3d 20 73 | 74 72 61 69 67 68 74 20 |rrow = s|traight |
|00004d20| 3d 20 30 3b 0a 20 20 20 | 20 69 66 20 28 21 6d 61 |= 0;. | if (!ma|
|00004d30| 72 6b 6f 6e 29 0a 09 7b | 0a 09 6d 73 67 70 6f 73 |rkon)..{|..msgpos|
|00004d40| 74 28 22 74 72 61 6e 73 | 66 6f 72 6d 3a 20 6e 6f |t("trans|form: no|
|00004d50| 20 6d 61 72 6b 20 70 72 | 65 73 65 6e 74 22 29 3b | mark pr|esent");|
|00004d60| 0a 09 72 65 74 75 72 6e | 28 30 29 3b 0a 09 7d 0a |..return|(0);..}.|
|00004d70| 20 20 20 20 65 6c 73 65 | 0a 09 7b 0a 09 66 6f 72 | else|..{..for|
|00004d80| 6f 62 6a 65 63 74 73 0a | 09 20 20 20 20 7b 0a 09 |objects.|. {..|
|00004d90| 20 20 20 20 69 66 20 28 | 4f 74 79 70 65 20 21 3d | if (|Otype !=|
|00004da0| 20 4c 49 4e 45 29 20 63 | 6f 6e 74 69 6e 75 65 3b | LINE) c|ontinue;|
|00004db0| 0a 09 20 20 20 20 73 20 | 3d 20 28 4f 78 73 20 3d |.. s |= (Oxs =|
|00004dc0| 3d 20 6d 61 72 6b 78 29 | 20 26 26 20 28 4f 79 73 |= markx)| && (Oys|
|00004dd0| 20 3d 3d 20 6d 61 72 6b | 79 29 3b 0a 09 20 20 20 | == mark|y);.. |
|00004de0| 20 65 20 3d 20 28 4f 78 | 65 20 3d 3d 20 6d 61 72 | e = (Ox|e == mar|
|00004df0| 6b 78 29 20 26 26 20 28 | 4f 79 65 20 3d 3d 20 6d |kx) && (|Oye == m|
|00004e00| 61 72 6b 79 29 3b 0a 09 | 20 20 20 20 69 66 20 28 |arky);..| if (|
|00004e10| 73 20 7c 7c 20 65 29 20 | 0a 09 09 7b 0a 09 09 73 |s || e) |...{...s|
|00004e20| 77 69 74 63 68 20 28 4f | 61 6c 69 67 6e 29 0a 09 |witch (O|align)..|
|00004e30| 09 20 20 20 20 7b 0a 63 | 61 73 65 20 41 4c 49 47 |. {.c|ase ALIG|
|00004e40| 4e 43 45 4e 54 3a 09 20 | 20 20 20 2a 78 31 20 3d |NCENT:. | *x1 =|
|00004e50| 20 73 20 3f 20 4f 78 65 | 20 3a 20 4f 78 73 3b 0a | s ? Oxe| : Oxs;.|
|00004e60| 09 09 20 20 20 20 2a 79 | 31 20 3d 20 73 20 3f 20 |.. *y|1 = s ? |
|00004e70| 4f 79 65 20 3a 20 4f 79 | 73 3b 0a 09 09 20 20 20 |Oye : Oy|s;... |
|00004e80| 20 73 74 72 61 69 67 68 | 74 2b 2b 3b 0a 09 09 20 | straigh|t++;... |
|00004e90| 20 20 20 62 72 65 61 6b | 3b 0a 63 61 73 65 20 41 | break|;.case A|
|00004ea0| 4c 49 47 4e 4c 45 46 54 | 3a 09 20 20 20 20 69 66 |LIGNLEFT|:. if|
|00004eb0| 20 28 73 29 0a 09 09 09 | 7b 0a 09 09 09 6d 73 67 | (s)....|{....msg|
|00004ec0| 70 6f 73 74 28 22 74 72 | 61 6e 73 66 6f 72 6d 3a |post("tr|ansform:|
|00004ed0| 20 61 72 72 6f 77 68 65 | 61 64 20 61 74 20 6f 72 | arrowhe|ad at or|
|00004ee0| 69 67 69 6e 22 29 3b 0a | 09 09 09 72 65 74 75 72 |igin");.|...retur|
|00004ef0| 6e 28 30 29 3b 0a 09 09 | 09 7d 0a 09 09 20 20 20 |n(0);...|.}... |
|00004f00| 20 2a 78 32 20 3d 20 4f | 78 73 3b 0a 09 09 20 20 | *x2 = O|xs;... |
|00004f10| 20 20 2a 79 32 20 3d 20 | 4f 79 73 3b 0a 09 09 20 | *y2 = |Oys;... |
|00004f20| 20 20 20 61 72 72 6f 77 | 2b 2b 3b 0a 09 09 20 20 | arrow|++;... |
|00004f30| 20 20 62 72 65 61 6b 3b | 0a 63 61 73 65 20 41 4c | break;|.case AL|
|00004f40| 49 47 4e 52 47 48 54 3a | 09 20 20 20 20 69 66 20 |IGNRGHT:|. if |
|00004f50| 28 65 29 0a 09 09 09 7b | 0a 09 09 09 6d 73 67 70 |(e)....{|....msgp|
|00004f60| 6f 73 74 28 22 74 72 61 | 6e 73 66 6f 72 6d 3a 20 |ost("tra|nsform: |
|00004f70| 61 72 72 6f 77 68 65 61 | 64 20 61 74 20 6f 72 69 |arrowhea|d at ori|
|00004f80| 67 69 6e 22 29 3b 0a 09 | 09 09 72 65 74 75 72 6e |gin");..|..return|
|00004f90| 28 30 29 3b 0a 09 09 09 | 7d 0a 09 09 20 20 20 20 |(0);....|}... |
|00004fa0| 2a 78 32 20 3d 20 4f 78 | 65 3b 0a 09 09 20 20 20 |*x2 = Ox|e;... |
|00004fb0| 20 2a 79 32 20 3d 20 4f | 79 65 3b 0a 09 09 20 20 | *y2 = O|ye;... |
|00004fc0| 20 20 61 72 72 6f 77 2b | 2b 3b 0a 09 09 20 20 20 | arrow+|+;... |
|00004fd0| 20 62 72 65 61 6b 3b 0a | 09 09 20 20 20 20 7d 0a | break;.|.. }.|
|00004fe0| 09 09 7d 0a 09 20 20 20 | 20 7d 0a 09 7d 0a 20 20 |..}.. | }..}. |
|00004ff0| 20 20 69 66 20 28 28 61 | 72 72 6f 77 20 3d 3d 20 | if ((a|rrow == |
|00005000| 31 29 20 26 26 20 28 73 | 74 72 61 69 67 68 74 20 |1) && (s|traight |
|00005010| 3d 3d 20 31 29 29 20 72 | 65 74 75 72 6e 28 31 29 |== 1)) r|eturn(1)|
|00005020| 3b 0a 2f 2a 0a 20 2a 20 | 65 72 72 6f 72 73 20 0a |;./*. * |errors .|
|00005030| 20 2a 2f 0a 20 20 20 20 | 69 66 20 28 61 72 72 6f | */. |if (arro|
|00005040| 77 2b 73 74 72 61 69 67 | 68 74 20 3d 3d 20 30 29 |w+straig|ht == 0)|
|00005050| 0a 09 6d 73 67 70 6f 73 | 74 28 22 74 72 61 6e 73 |..msgpos|t("trans|
|00005060| 66 6f 72 6d 3a 20 6e 6f | 20 62 61 73 69 73 20 76 |form: no| basis v|
|00005070| 65 63 74 6f 72 73 20 61 | 74 20 6d 61 72 6b 22 29 |ectors a|t mark")|
|00005080| 3b 0a 20 20 20 20 65 6c | 73 65 20 69 66 20 28 61 |;. el|se if (a|
|00005090| 72 72 6f 77 20 21 3d 20 | 31 29 0a 09 6d 73 67 70 |rrow != |1)..msgp|
|000050a0| 6f 73 74 28 22 74 72 61 | 6e 73 66 6f 72 6d 3a 20 |ost("tra|nsform: |
|000050b0| 65 78 61 63 74 6c 79 20 | 6f 6e 65 20 61 72 72 6f |exactly |one arro|
|000050c0| 77 20 62 61 73 69 73 20 | 76 65 63 74 6f 72 20 6e |w basis |vector n|
|000050d0| 65 65 64 65 64 22 29 3b | 0a 20 20 20 20 65 6c 73 |eeded");|. els|
|000050e0| 65 20 69 66 20 28 73 74 | 72 61 69 67 68 74 20 21 |e if (st|raight !|
|000050f0| 3d 20 31 29 0a 09 6d 73 | 67 70 6f 73 74 28 22 74 |= 1)..ms|gpost("t|
|00005100| 72 61 6e 73 66 6f 72 6d | 3a 20 65 78 61 63 74 6c |ransform|: exactl|
|00005110| 79 20 6f 6e 65 20 6e 6f | 6e 2d 61 72 72 6f 77 20 |y one no|n-arrow |
|00005120| 62 61 73 69 73 20 76 65 | 63 74 6f 72 20 6e 65 65 |basis ve|ctor nee|
|00005130| 64 65 64 22 29 3b 0a 20 | 20 20 20 72 65 74 75 72 |ded");. | retur|
|00005140| 6e 28 30 29 3b 0a 20 20 | 20 20 7d 0a 53 48 41 52 |n(0);. | }.SHAR|
|00005150| 5f 45 4f 46 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |_EOF.if |test -f |
|00005160| 27 6c 65 6d 73 74 61 72 | 74 2e 63 27 0a 74 68 65 |'lemstar|t.c'.the|
|00005170| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 6f 76 |n..echo |shar: ov|
|00005180| 65 72 2d 77 72 69 74 69 | 6e 67 20 65 78 69 73 74 |er-writi|ng exist|
|00005190| 69 6e 67 20 66 69 6c 65 | 20 22 27 6c 65 6d 73 74 |ing file| "'lemst|
|000051a0| 61 72 74 2e 63 27 22 0a | 66 69 0a 63 61 74 20 3c |art.c'".|fi.cat <|
|000051b0| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 6c |< \SHAR_|EOF > 'l|
|000051c0| 65 6d 73 74 61 72 74 2e | 63 27 0a 2f 2a 0a 20 2a |emstart.|c'./*. *|
|000051d0| 20 6c 65 6d 73 74 61 72 | 74 2e 63 20 2d 20 63 68 | lemstar|t.c - ch|
|000051e0| 65 63 6b 20 63 6f 6d 6d | 61 6e 64 20 6c 69 6e 65 |eck comm|and line|
|000051f0| 2c 20 70 6c 75 73 20 73 | 6f 6d 65 20 68 6f 75 73 |, plus s|ome hous|
|00005200| 65 63 6c 65 61 6e 69 6e | 67 0a 20 2a 0a 20 2a 20 |ecleanin|g. *. * |
|00005210| 63 6f 70 79 72 69 67 68 | 74 20 28 63 29 20 62 79 |copyrigh|t (c) by|
|00005220| 20 41 6c 61 6e 20 57 2e | 20 50 61 65 74 68 2c 20 | Alan W.| Paeth, |
|00005230| 31 39 38 37 2e 20 41 6c | 6c 20 72 69 67 68 74 73 |1987. Al|l rights|
|00005240| 20 72 65 73 65 72 76 65 | 64 2e 0a 20 2a 2f 0a 0a | reserve|d.. */..|
|00005250| 23 69 6e 63 6c 75 64 65 | 20 22 6c 65 6d 2e 68 22 |#include| "lem.h"|
|00005260| 0a 0a 73 74 61 72 74 75 | 70 28 61 72 67 63 2c 20 |..startu|p(argc, |
|00005270| 61 72 67 76 29 0a 20 20 | 20 20 63 68 61 72 20 2a |argv). | char *|
|00005280| 2a 61 72 67 76 3b 0a 20 | 20 20 20 7b 0a 20 20 20 |*argv;. | {. |
|00005290| 20 69 6e 74 20 69 2c 20 | 70 6c 6f 74 6d 6f 64 65 | int i, |plotmode|
|000052a0| 3b 0a 20 20 20 20 70 6c | 6f 74 6d 6f 64 65 20 3d |;. pl|otmode =|
|000052b0| 20 30 3b 0a 2f 2a 0a 20 | 2a 20 69 6e 69 74 69 61 | 0;./*. |* initia|
|000052c0| 6c 69 7a 65 20 62 61 73 | 65 64 20 6f 6e 20 70 72 |lize bas|ed on pr|
|000052d0| 6f 62 61 62 6c 65 20 2e | 72 63 20 66 69 6c 65 0a |obable .|rc file.|
|000052e0| 20 2a 2f 0a 20 20 20 20 | 6c 65 6d 69 6e 69 74 28 | */. |leminit(|
|000052f0| 29 3b 0a 2f 2a 0a 20 2a | 20 73 65 74 20 75 70 20 |);./*. *| set up |
|00005300| 6f 62 6a 65 63 74 20 64 | 65 66 61 75 6c 74 73 0a |object d|efaults.|
|00005310| 20 2a 2f 0a 20 20 20 20 | 6c 61 73 74 6f 62 6a 20 | */. |lastobj |
|00005320| 3d 20 31 3b 09 09 2f 2a | 20 6e 6f 20 6f 62 6a 65 |= 1;../*| no obje|
|00005330| 63 74 73 20 2a 2f 0a 20 | 20 20 20 73 65 74 61 74 |cts */. | setat|
|00005340| 74 72 28 27 30 27 29 3b | 09 09 2f 2a 20 64 65 66 |tr('0');|../* def|
|00005350| 61 75 6c 74 20 61 74 74 | 72 27 73 20 28 61 73 20 |ault att|r's (as |
|00005360| 69 66 20 27 30 27 20 74 | 79 70 65 64 29 20 2a 2f |if '0' t|yped) */|
|00005370| 0a 20 20 20 20 67 74 79 | 70 65 20 3d 20 4c 49 4e |. gty|pe = LIN|
|00005380| 45 3b 09 09 2f 2a 20 64 | 72 61 77 20 6c 69 6e 65 |E;../* d|raw line|
|00005390| 73 20 62 79 20 64 65 66 | 61 75 6c 74 20 2a 2f 0a |s by def|ault */.|
|000053a0| 20 20 20 20 75 6e 64 6f | 20 3d 20 55 4e 44 4f 4e | undo| = UNDON|
|000053b0| 4f 4e 45 3b 09 09 2f 2a | 20 6e 6f 20 6f 70 65 72 |ONE;../*| no oper|
|000053c0| 61 74 69 6f 6e 20 74 6f | 20 75 6e 64 6f 20 2a 2f |ation to| undo */|
|000053d0| 0a 2f 2a 0a 20 2a 20 73 | 74 61 72 74 20 75 73 65 |./*. * s|tart use|
|000053e0| 72 20 63 6f 64 65 20 61 | 6e 64 20 72 65 66 72 65 |r code a|nd refre|
|000053f0| 73 68 20 74 68 65 20 64 | 69 73 70 6c 61 79 0a 20 |sh the d|isplay. |
|00005400| 2a 2f 0a 20 20 20 20 73 | 74 61 72 74 28 29 3b 09 |*/. s|tart();.|
|00005410| 0a 20 20 20 20 72 65 64 | 72 61 77 28 29 3b 0a 2f |. red|raw();./|
|00005420| 2a 0a 20 2a 20 63 6f 6d | 6d 61 6e 64 20 6c 69 6e |*. * com|mand lin|
|00005430| 65 20 70 72 6f 6d 70 74 | 0a 20 2a 2f 0a 20 20 20 |e prompt|. */. |
|00005440| 20 6d 73 67 70 6f 73 74 | 28 22 6c 65 6d 6d 69 6e | msgpost|("lemmin|
|00005450| 67 20 76 65 72 20 31 20 | 2d 2d 20 27 63 74 72 6c |g ver 1 |-- 'ctrl|
|00005460| 20 5e 27 20 66 6f 72 20 | 68 65 6c 70 22 29 3b 0a | ^' for |help");.|
|00005470| 2f 2a 0a 20 2a 20 70 6f | 73 73 69 62 6c 65 20 66 |/*. * po|ssible f|
|00005480| 69 6c 65 20 6e 61 6d 65 | 20 6f 6e 20 63 6d 64 20 |ile name| on cmd |
|00005490| 6c 69 6e 65 0a 20 2a 2f | 0a 20 20 20 20 63 68 61 |line. */|. cha|
|000054a0| 6e 67 65 73 20 3d 20 30 | 3b 09 2f 2a 20 6e 6f 20 |nges = 0|;./* no |
|000054b0| 63 68 61 6e 67 65 73 20 | 61 74 20 70 72 65 73 65 |changes |at prese|
|000054c0| 6e 74 20 2a 2f 0a 2f 2a | 0a 20 2a 20 64 6f 20 61 |nt */./*|. * do a|
|000054d0| 6c 6c 20 63 6f 6d 6d 61 | 6e 64 20 6c 69 6e 65 20 |ll comma|nd line |
|000054e0| 70 61 72 73 69 6e 67 0a | 20 2a 2f 0a 20 20 20 20 |parsing.| */. |
|000054f0| 66 6f 72 28 69 3d 31 3b | 20 69 3c 61 72 67 63 3b |for(i=1;| i<argc;|
|00005500| 20 69 2b 2b 29 0a 20 20 | 20 20 20 20 20 20 7b 0a | i++). | {.|
|00005510| 09 69 66 20 28 61 72 67 | 76 5b 69 5d 5b 30 5d 20 |.if (arg|v[i][0] |
|00005520| 3d 3d 20 27 2d 27 29 0a | 09 20 20 20 20 7b 0a 09 |== '-').|. {..|
|00005530| 20 20 20 20 73 77 69 74 | 63 68 28 61 72 67 76 5b | swit|ch(argv[|
|00005540| 69 5d 5b 31 5d 29 0a 09 | 09 7b 0a 09 09 63 61 73 |i][1])..|.{...cas|
|00005550| 65 20 27 70 27 3a 0a 09 | 09 63 61 73 65 20 27 50 |e 'p':..|.case 'P|
|00005560| 27 3a 20 70 6c 6f 74 6d | 6f 64 65 20 3d 20 31 3b |': plotm|ode = 1;|
|00005570| 20 62 72 65 61 6b 3b 0a | 09 09 64 65 66 61 75 6c | break;.|..defaul|
|00005580| 74 3a 20 65 72 72 28 22 | 75 6e 6b 6e 6f 77 6e 20 |t: err("|unknown |
|00005590| 63 6f 6d 6d 61 6e 64 20 | 6c 69 6e 65 20 66 6c 61 |command |line fla|
|000055a0| 67 22 29 3b 20 62 72 65 | 61 6b 3b 0a 09 09 7d 0a |g"); bre|ak;...}.|
|000055b0| 09 20 20 20 20 7d 0a 09 | 65 6c 73 65 0a 09 20 20 |. }..|else.. |
|000055c0| 20 20 7b 0a 09 20 20 20 | 20 69 66 20 28 21 66 69 | {.. | if (!fi|
|000055d0| 72 73 74 66 69 6c 65 29 | 20 66 69 72 73 74 66 69 |rstfile)| firstfi|
|000055e0| 6c 65 20 3d 20 61 72 67 | 76 5b 69 5d 3b 20 2f 2a |le = arg|v[i]; /*|
|000055f0| 20 72 65 63 6f 72 64 20 | 66 69 72 73 74 20 69 6e | record |first in|
|00005600| 70 75 74 20 66 69 6c 65 | 20 2a 2f 0a 09 20 20 20 |put file| */.. |
|00005610| 20 72 65 61 64 66 69 6c | 65 69 6e 74 28 61 72 67 | readfil|eint(arg|
|00005620| 76 5b 69 5d 29 3b 0a 09 | 20 20 20 20 7d 0a 09 7d |v[i]);..| }..}|
|00005630| 0a 20 20 20 20 69 66 20 | 28 70 6c 6f 74 6d 6f 64 |. if |(plotmod|
|00005640| 65 29 0a 09 7b 0a 09 63 | 68 61 72 20 6f 75 74 6e |e)..{..c|har outn|
|00005650| 61 6d 65 5b 38 30 5d 3b | 0a 09 73 70 72 69 6e 74 |ame[80];|..sprint|
|00005660| 66 28 6f 75 74 6e 61 6d | 65 2c 20 22 25 73 2e 70 |f(outnam|e, "%s.p|
|00005670| 69 63 22 2c 20 66 69 72 | 73 74 66 69 6c 65 29 3b |ic", fir|stfile);|
|00005680| 0a 09 77 72 69 74 65 70 | 69 63 69 6e 74 28 6f 75 |..writep|icint(ou|
|00005690| 74 6e 61 6d 65 29 3b 0a | 09 73 74 6f 70 28 29 3b |tname);.|.stop();|
|000056a0| 0a 09 65 78 69 74 28 30 | 29 3b 0a 09 7d 0a 20 20 |..exit(0|);..}. |
|000056b0| 20 20 7d 0a 53 48 41 52 | 5f 45 4f 46 0a 69 66 20 | }.SHAR|_EOF.if |
|000056c0| 74 65 73 74 20 2d 66 20 | 27 6c 65 6d 73 74 6f 70 |test -f |'lemstop|
|000056d0| 2e 63 27 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |.c'.then|..echo s|
|000056e0| 68 61 72 3a 20 6f 76 65 | 72 2d 77 72 69 74 69 6e |har: ove|r-writin|
|000056f0| 67 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |g existi|ng file |
|00005700| 22 27 6c 65 6d 73 74 6f | 70 2e 63 27 22 0a 66 69 |"'lemsto|p.c'".fi|
|00005710| 0a 63 61 74 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |.cat << |\SHAR_EO|
|00005720| 46 20 3e 20 27 6c 65 6d | 73 74 6f 70 2e 63 27 0a |F > 'lem|stop.c'.|
|00005730| 2f 2a 0a 20 2a 20 6c 65 | 6d 73 74 6f 70 2e 63 20 |/*. * le|mstop.c |
|00005740| 2d 20 71 75 69 74 20 61 | 6e 64 20 65 72 72 6f 72 |- quit a|nd error|
|00005750| 20 72 65 74 75 72 6e 73 | 20 66 72 6f 6d 20 6c 65 | returns| from le|
|00005760| 6d 6d 69 6e 67 2e 0a 20 | 2a 0a 20 2a 20 63 6f 70 |mming.. |*. * cop|
|00005770| 79 72 69 67 68 74 20 28 | 63 29 20 62 79 20 41 6c |yright (|c) by Al|
|00005780| 61 6e 20 57 2e 20 50 61 | 65 74 68 2c 20 31 39 38 |an W. Pa|eth, 198|
|00005790| 37 2e 20 41 6c 6c 20 72 | 69 67 68 74 73 20 72 65 |7. All r|ights re|
|000057a0| 73 65 72 76 65 64 2e 0a | 20 2a 2f 0a 0a 23 69 6e |served..| */..#in|
|000057b0| 63 6c 75 64 65 20 22 6c | 65 6d 2e 68 22 0a 0a 71 |clude "l|em.h"..q|
|000057c0| 75 69 74 63 6f 6e 66 69 | 72 6d 28 29 0a 20 20 20 |uitconfi|rm(). |
|000057d0| 20 7b 0a 20 20 20 20 63 | 68 61 72 20 63 3b 0a 20 | {. c|har c;. |
|000057e0| 20 20 20 69 66 20 28 63 | 68 61 6e 67 65 73 29 0a | if (c|hanges).|
|000057f0| 09 7b 0a 09 6d 73 67 70 | 6f 73 74 28 22 71 75 69 |.{..msgp|ost("qui|
|00005800| 74 3a 20 5b 79 5d 20 74 | 6f 20 63 6f 6e 66 69 72 |t: [y] t|o confir|
|00005810| 6d 3a 20 22 29 3b 0a 09 | 63 20 3d 20 67 65 74 73 |m: ");..|c = gets|
|00005820| 74 72 6f 6b 65 28 29 3b | 0a 09 69 66 20 28 55 43 |troke();|..if (UC|
|00005830| 28 63 29 20 21 3d 20 27 | 59 27 29 0a 09 20 20 20 |(c) != '|Y').. |
|00005840| 20 7b 0a 09 20 20 20 20 | 6d 73 67 70 6f 73 74 28 | {.. |msgpost(|
|00005850| 22 71 75 69 74 20 61 62 | 6f 72 74 65 64 2e 22 29 |"quit ab|orted.")|
|00005860| 3b 0a 09 20 20 20 20 72 | 65 74 75 72 6e 28 31 29 |;.. r|eturn(1)|
|00005870| 3b 0a 09 20 20 20 20 7d | 0a 09 7d 0a 20 20 20 20 |;.. }|..}. |
|00005880| 6d 61 72 6b 64 65 6c 65 | 74 65 28 29 3b 0a 20 20 |markdele|te();. |
|00005890| 20 20 73 74 6f 70 28 29 | 3b 0a 20 20 20 20 65 78 | stop()|;. ex|
|000058a0| 69 74 28 30 29 3b 0a 20 | 20 20 20 7d 0a 0a 65 72 |it(0);. | }..er|
|000058b0| 72 28 6d 73 67 2c 20 61 | 72 67 29 0a 20 20 20 20 |r(msg, a|rg). |
|000058c0| 63 68 61 72 20 2a 6d 73 | 67 3b 0a 20 20 20 20 7b |char *ms|g;. {|
|000058d0| 0a 20 20 20 20 66 70 72 | 69 6e 74 66 28 73 74 64 |. fpr|intf(std|
|000058e0| 65 72 72 2c 20 22 5c 6e | 6c 65 6d 3a 20 22 2c 20 |err, "\n|lem: ", |
|000058f0| 6d 73 67 2c 20 61 72 67 | 29 3b 0a 20 20 20 20 66 |msg, arg|);. f|
|00005900| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 6d |printf(s|tderr, m|
|00005910| 73 67 2c 20 61 72 67 29 | 3b 0a 20 20 20 20 66 70 |sg, arg)|;. fp|
|00005920| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 5c |rintf(st|derr, "\|
|00005930| 6e 22 29 3b 0a 20 20 20 | 20 65 78 69 74 28 31 29 |n");. | exit(1)|
|00005940| 3b 0a 20 20 20 20 7d 0a | 53 48 41 52 5f 45 4f 46 |;. }.|SHAR_EOF|
|00005950| 0a 69 66 20 74 65 73 74 | 20 2d 66 20 27 6c 65 6d |.if test| -f 'lem|
|00005960| 74 65 78 74 2e 63 27 0a | 74 68 65 6e 0a 09 65 63 |text.c'.|then..ec|
|00005970| 68 6f 20 73 68 61 72 3a | 20 6f 76 65 72 2d 77 72 |ho shar:| over-wr|
|00005980| 69 74 69 6e 67 20 65 78 | 69 73 74 69 6e 67 20 66 |iting ex|isting f|
|00005990| 69 6c 65 20 22 27 6c 65 | 6d 74 65 78 74 2e 63 27 |ile "'le|mtext.c'|
|000059a0| 22 0a 66 69 0a 63 61 74 | 20 3c 3c 20 5c 53 48 41 |".fi.cat| << \SHA|
|000059b0| 52 5f 45 4f 46 20 3e 20 | 27 6c 65 6d 74 65 78 74 |R_EOF > |'lemtext|
|000059c0| 2e 63 27 0a 2f 2a 0a 20 | 2a 20 6c 65 6d 74 65 78 |.c'./*. |* lemtex|
|000059d0| 74 2e 63 20 2d 20 74 65 | 78 74 20 70 72 69 6d 69 |t.c - te|xt primi|
|000059e0| 74 69 76 65 73 0a 20 2a | 0a 20 2a 20 63 6f 70 79 |tives. *|. * copy|
|000059f0| 72 69 67 68 74 20 28 63 | 29 20 62 79 20 41 6c 61 |right (c|) by Ala|
|00005a00| 6e 20 57 2e 20 50 61 65 | 74 68 2c 20 31 39 38 37 |n W. Pae|th, 1987|
|00005a10| 2e 20 41 6c 6c 20 72 69 | 67 68 74 73 20 72 65 73 |. All ri|ghts res|
|00005a20| 65 72 76 65 64 2e 0a 20 | 2a 2f 0a 0a 23 69 6e 63 |erved.. |*/..#inc|
|00005a30| 6c 75 64 65 20 22 6c 65 | 6d 2e 68 22 0a 23 69 6e |lude "le|m.h".#in|
|00005a40| 63 6c 75 64 65 20 22 6c | 65 6d 66 6f 6e 74 2e 68 |clude "l|emfont.h|
|00005a50| 22 0a 0a 74 65 78 74 61 | 64 64 28 78 30 2c 20 79 |"..texta|dd(x0, y|
|00005a60| 30 2c 20 73 29 0a 20 20 | 20 20 63 68 61 72 20 2a |0, s). | char *|
|00005a70| 73 3b 0a 20 20 20 20 7b | 0a 20 20 20 20 69 6e 74 |s;. {|. int|
|00005a80| 20 69 3b 0a 20 20 20 20 | 69 66 20 28 28 21 73 29 | i;. |if ((!s)|
|00005a90| 20 7c 7c 20 28 73 74 72 | 6c 65 6e 28 73 29 20 3d | || (str|len(s) =|
|00005aa0| 3d 20 30 29 29 20 72 65 | 74 75 72 6e 3b 0a 20 20 |= 0)) re|turn;. |
|00005ab0| 20 20 69 20 3d 20 6f 62 | 6a 61 6c 6c 6f 63 28 54 | i = ob|jalloc(T|
|00005ac0| 45 58 54 29 3b 0a 20 20 | 20 20 4f 74 65 78 74 20 |EXT);. | Otext |
|00005ad0| 3d 20 73 61 6c 6c 6f 63 | 28 73 29 3b 0a 20 20 20 |= salloc|(s);. |
|00005ae0| 20 4f 78 73 20 3d 20 78 | 30 3b 0a 20 20 20 20 4f | Oxs = x|0;. O|
|00005af0| 79 73 20 3d 20 79 30 3b | 0a 20 20 20 20 74 65 78 |ys = y0;|. tex|
|00005b00| 74 72 65 73 69 7a 65 28 | 69 29 3b 0a 20 20 20 20 |tresize(|i);. |
|00005b10| 6f 62 6a 6e 65 77 28 69 | 29 3b 0a 20 20 20 20 7d |objnew(i|);. }|
|00005b20| 0a 0a 74 65 78 74 72 65 | 73 69 7a 65 28 69 29 0a |..textre|size(i).|
|00005b30| 20 20 20 20 7b 0a 20 20 | 20 20 4f 78 65 20 3d 20 | {. | Oxe = |
|00005b40| 66 6f 6e 74 6d 65 61 73 | 75 72 65 28 62 66 6f 6e |fontmeas|ure(bfon|
|00005b50| 74 5b 4f 73 69 7a 65 72 | 5d 2c 20 4f 74 65 78 74 |t[Osizer|], Otext|
|00005b60| 2c 20 4f 65 6d 70 68 29 | 3b 0a 20 20 20 20 4f 79 |, Oemph)|;. Oy|
|00005b70| 65 20 3d 20 6c 65 6d 66 | 6f 6e 74 5b 4f 73 69 7a |e = lemf|ont[Osiz|
|00005b80| 65 72 5d 2e 70 73 69 7a | 65 3b 0a 20 20 20 20 7d |er].psiz|e;. }|
|00005b90| 0a 0a 74 65 78 74 6e 65 | 61 72 70 74 28 69 2c 20 |..textne|arpt(i, |
|00005ba0| 78 2c 20 79 29 0a 20 20 | 20 20 7b 0a 20 20 20 20 |x, y). | {. |
|00005bb0| 72 65 74 75 72 6e 28 70 | 74 69 6e 72 65 63 74 28 |return(p|tinrect(|
|00005bc0| 78 2c 20 79 2c 20 4f 78 | 6c 74 2c 20 4f 79 6c 74 |x, y, Ox|lt, Oylt|
|00005bd0| 2c 20 4f 78 68 74 2c 20 | 4f 79 68 74 2c 20 54 45 |, Oxht, |Oyht, TE|
|00005be0| 58 54 54 4f 4c 29 29 3b | 09 2f 2a 20 6d 75 73 74 |XTTOL));|./* must|
|00005bf0| 20 62 65 20 4f 4e 20 74 | 68 65 20 74 65 78 74 20 | be ON t|he text |
|00005c00| 2a 2f 0a 20 20 20 20 7d | 0a 0a 74 65 78 74 69 6e |*/. }|..textin|
|00005c10| 72 65 63 74 28 69 2c 20 | 78 6c 2c 20 79 6c 2c 20 |rect(i, |xl, yl, |
|00005c20| 78 68 2c 20 79 68 29 0a | 20 20 20 20 7b 0a 20 20 |xh, yh).| {. |
|00005c30| 20 20 72 65 74 75 72 6e | 28 70 74 69 6e 72 65 63 | return|(ptinrec|
|00005c40| 74 28 4f 78 6c 74 2c 20 | 4f 79 6c 74 2c 20 78 6c |t(Oxlt, |Oylt, xl|
|00005c50| 2c 20 79 6c 2c 20 78 68 | 2c 20 79 68 2c 20 54 45 |, yl, xh|, yh, TE|
|00005c60| 58 54 54 4f 4c 29 20 26 | 26 0a 09 70 74 69 6e 72 |XTTOL) &|&..ptinr|
|00005c70| 65 63 74 28 4f 78 68 74 | 2c 20 4f 79 68 74 2c 20 |ect(Oxht|, Oyht, |
|00005c80| 78 6c 2c 20 79 6c 2c 20 | 78 68 2c 20 79 68 2c 20 |xl, yl, |xh, yh, |
|00005c90| 54 45 58 54 54 4f 4c 29 | 20 29 3b 0a 20 20 20 20 |TEXTTOL)| );. |
|00005ca0| 7d 0a 0a 74 65 78 74 63 | 61 6e 74 75 67 28 69 2c |}..textc|antug(i,|
|00005cb0| 20 78 2c 20 79 29 0a 20 | 20 20 20 7b 0a 20 20 20 | x, y). | {. |
|00005cc0| 20 72 65 74 75 72 6e 28 | 74 65 78 74 6e 65 61 72 | return(|textnear|
|00005cd0| 70 74 28 69 2c 20 78 2c | 20 79 29 29 3b 0a 20 20 |pt(i, x,| y));. |
|00005ce0| 20 20 7d 0a 0a 74 65 78 | 74 74 75 67 28 69 2c 20 | }..tex|ttug(i, |
|00005cf0| 78 73 2c 20 79 73 2c 20 | 78 65 2c 20 79 65 29 0a |xs, ys, |xe, ye).|
|00005d00| 20 20 20 20 7b 0a 20 20 | 20 20 4f 78 73 20 2b 3d | {. | Oxs +=|
|00005d10| 20 78 65 2d 78 73 3b 0a | 20 20 20 20 4f 79 73 20 | xe-xs;.| Oys |
|00005d20| 2b 3d 20 79 65 2d 79 73 | 3b 0a 20 20 20 20 7d 0a |+= ye-ys|;. }.|
|00005d30| 0a 74 65 78 74 61 6c 69 | 67 6e 28 69 2c 20 78 2c |.textali|gn(i, x,|
|00005d40| 20 79 29 0a 20 20 20 20 | 69 6e 74 20 2a 78 2c 20 | y). |int *x, |
|00005d50| 2a 79 3b 0a 20 20 20 20 | 7b 0a 20 20 20 20 2a 78 |*y;. |{. *x|
|00005d60| 20 3d 20 4f 78 73 3b 0a | 20 20 20 20 2a 79 20 3d | = Oxs;.| *y =|
|00005d70| 20 4f 79 73 3b 0a 20 20 | 20 20 7d 0a 0a 74 65 78 | Oys;. | }..tex|
|00005d80| 74 6d 6f 76 65 28 69 2c | 20 78 2c 20 79 29 0a 20 |tmove(i,| x, y). |
|00005d90| 20 20 20 7b 0a 20 20 20 | 20 4f 78 73 20 2b 3d 20 | {. | Oxs += |
|00005da0| 78 3b 0a 20 20 20 20 4f | 79 73 20 2b 3d 20 79 3b |x;. O|ys += y;|
|00005db0| 0a 20 20 20 20 7d 0a 0a | 74 65 78 74 61 66 66 69 |. }..|textaffi|
|00005dc0| 6e 65 28 69 2c 20 6d 31 | 31 2c 20 6d 31 32 2c 20 |ne(i, m1|1, m12, |
|00005dd0| 6d 32 31 2c 20 6d 32 32 | 29 0a 20 20 20 20 66 6c |m21, m22|). fl|
|00005de0| 6f 61 74 20 6d 31 31 2c | 20 6d 31 32 2c 20 6d 32 |oat m11,| m12, m2|
|00005df0| 31 2c 20 6d 32 32 3b 0a | 20 20 20 20 7b 0a 20 20 |1, m22;.| {. |
|00005e00| 20 20 6f 62 6a 73 75 70 | 61 66 66 69 6e 65 28 69 | objsup|affine(i|
|00005e10| 2c 20 6d 31 31 2c 20 6d | 31 32 2c 20 6d 32 31 2c |, m11, m|12, m21,|
|00005e20| 20 6d 32 32 2c 20 30 29 | 3b 0a 20 20 20 20 7d 0a | m22, 0)|;. }.|
|00005e30| 0a 74 65 78 74 64 72 61 | 77 28 69 2c 20 63 6f 6c |.textdra|w(i, col|
|00005e40| 29 0a 20 20 20 20 7b 0a | 20 20 20 20 66 6f 6e 74 |). {.| font|
|00005e50| 77 72 69 74 65 28 4f 73 | 69 7a 65 72 2c 20 4f 78 |write(Os|izer, Ox|
|00005e60| 6c 74 2c 20 4f 79 73 2c | 20 4f 74 65 78 74 2c 20 |lt, Oys,| Otext, |
|00005e70| 4f 65 6d 70 68 2c 20 63 | 6f 6c 29 3b 0a 20 20 20 |Oemph, c|ol);. |
|00005e80| 20 7d 0a 53 48 41 52 5f | 45 4f 46 0a 69 66 20 74 | }.SHAR_|EOF.if t|
|00005e90| 65 73 74 20 2d 66 20 27 | 6c 65 6d 74 69 63 6b 2e |est -f '|lemtick.|
|00005ea0| 63 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |c'.then.|.echo sh|
|00005eb0| 61 72 3a 20 6f 76 65 72 | 2d 77 72 69 74 69 6e 67 |ar: over|-writing|
|00005ec0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00005ed0| 27 6c 65 6d 74 69 63 6b | 2e 63 27 22 0a 66 69 0a |'lemtick|.c'".fi.|
|00005ee0| 63 61 74 20 3c 3c 20 5c | 53 48 41 52 5f 45 4f 46 |cat << \|SHAR_EOF|
|00005ef0| 20 3e 20 27 6c 65 6d 74 | 69 63 6b 2e 63 27 0a 2f | > 'lemt|ick.c'./|
|00005f00| 2a 0a 20 2a 20 6c 65 6d | 74 69 63 6b 2e 63 20 2d |*. * lem|tick.c -|
|00005f10| 20 70 65 72 66 6f 72 6d | 20 74 69 63 6b 69 6e 67 | perform| ticking|
|00005f20| 0a 20 2a 0a 20 2a 20 63 | 6f 70 79 72 69 67 68 74 |. *. * c|opyright|
|00005f30| 20 28 63 29 20 62 79 20 | 41 6c 61 6e 20 57 2e 20 | (c) by |Alan W. |
|00005f40| 50 61 65 74 68 2c 20 31 | 39 38 37 2e 20 41 6c 6c |Paeth, 1|987. All|
|00005f50| 20 72 69 67 68 74 73 20 | 72 65 73 65 72 76 65 64 | rights |reserved|
|00005f60| 2e 0a 20 2a 2f 0a 0a 23 | 69 6e 63 6c 75 64 65 20 |.. */..#|include |
|00005f70| 22 6c 65 6d 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |"lem.h".|#include|
|00005f80| 20 22 6c 65 6d 66 6f 6e | 74 2e 68 22 0a 0a 74 69 | "lemfon|t.h"..ti|
|00005f90| 63 6b 61 6c 69 67 6e 28 | 78 2c 20 79 29 0a 20 20 |ckalign(|x, y). |
|00005fa0| 20 20 69 6e 74 20 2a 78 | 2c 20 2a 79 3b 0a 20 20 | int *x|, *y;. |
|00005fb0| 20 20 7b 0a 20 20 20 20 | 69 66 20 28 74 69 63 6b | {. |if (tick|
|00005fc0| 66 6c 61 67 20 26 26 20 | 28 74 69 63 6b 73 69 7a |flag && |(ticksiz|
|00005fd0| 65 20 3c 20 36 29 29 0a | 09 7b 0a 09 74 78 20 3d |e < 6)).|.{..tx =|
|00005fe0| 20 31 3c 3c 74 69 63 6b | 73 69 7a 65 3b 0a 09 74 | 1<<tick|size;..t|
|00005ff0| 79 20 3d 20 31 3c 3c 74 | 69 63 6b 73 69 7a 65 3b |y = 1<<t|icksize;|
|00006000| 0a 09 2a 78 20 3d 20 28 | 28 2a 78 2d 74 78 6f 66 |..*x = (|(*x-txof|
|00006010| 66 2b 74 78 2f 32 29 20 | 2f 20 74 78 29 20 2a 20 |f+tx/2) |/ tx) * |
|00006020| 74 78 20 2b 20 74 78 6f | 66 66 3b 0a 20 20 20 20 |tx + txo|ff;. |
|00006030| 20 20 20 20 2a 79 20 3d | 20 28 28 2a 79 2d 74 79 | *y =| ((*y-ty|
|00006040| 6f 66 66 2b 74 79 2f 32 | 29 20 2f 20 74 79 29 20 |off+ty/2|) / ty) |
|00006050| 2a 20 74 79 20 2b 20 74 | 79 6f 66 66 3b 0a 09 7d |* ty + t|yoff;..}|
|00006060| 0a 20 20 20 20 69 66 20 | 28 74 69 63 6b 66 6c 61 |. if |(tickfla|
|00006070| 67 20 26 26 20 28 74 69 | 63 6b 73 69 7a 65 20 3e |g && (ti|cksize >|
|00006080| 3d 20 36 29 29 0a 09 7b | 0a 09 69 6e 74 20 78 6c |= 6))..{|..int xl|
|00006090| 2c 20 79 69 2c 20 79 6c | 2c 20 64 31 2c 20 64 32 |, yi, yl|, d1, d2|
|000060a0| 2c 20 64 33 2c 20 64 34 | 3b 0a 09 74 78 20 3d 20 |, d3, d4|;..tx = |
|000060b0| 31 3c 3c 28 74 69 63 6b | 73 69 7a 65 2d 33 29 3b |1<<(tick|size-3);|
|000060c0| 0a 09 74 79 20 3d 20 28 | 74 78 2a 31 34 2b 37 29 |..ty = (|tx*14+7)|
|000060d0| 2f 31 36 3b 0a 20 20 20 | 20 20 20 20 20 79 69 20 |/16;. | yi |
|000060e0| 3d 20 28 28 2a 79 2d 74 | 79 6f 66 66 29 2f 74 79 |= ((*y-t|yoff)/ty|
|000060f0| 29 3b 0a 20 20 20 20 20 | 20 20 20 79 6c 20 3d 20 |);. | yl = |
|00006100| 79 69 2a 74 79 20 2b 20 | 74 79 6f 66 66 3b 0a 09 |yi*ty + |tyoff;..|
|00006110| 78 6c 20 3d 20 28 28 28 | 2a 78 2d 74 78 6f 66 66 |xl = (((|*x-txoff|
|00006120| 2b 28 28 79 69 26 30 78 | 31 29 3f 74 78 2f 32 3a |+((yi&0x|1)?tx/2:|
|00006130| 30 29 29 2f 74 78 29 2a | 74 78 2d 28 28 79 69 26 |0))/tx)*|tx-((yi&|
|00006140| 30 78 31 29 3f 74 78 2f | 32 3a 30 29 29 2b 74 78 |0x1)?tx/|2:0))+tx|
|00006150| 6f 66 66 3b 0a 09 0a 09 | 64 31 20 3d 20 64 69 73 |off;....|d1 = dis|
|00006160| 74 28 2a 78 2c 2a 79 2c | 78 6c 20 20 20 20 20 20 |t(*x,*y,|xl |
|00006170| 20 2c 79 6c 29 3b 0a 09 | 64 32 20 3d 20 64 69 73 | ,yl);..|d2 = dis|
|00006180| 74 28 2a 78 2c 2a 79 2c | 78 6c 2b 74 78 2f 32 20 |t(*x,*y,|xl+tx/2 |
|00006190| 20 2c 79 6c 2b 74 79 29 | 3b 0a 09 64 33 20 3d 20 | ,yl+ty)|;..d3 = |
|000061a0| 64 69 73 74 28 2a 78 2c | 2a 79 2c 78 6c 2b 74 78 |dist(*x,|*y,xl+tx|
|000061b0| 20 20 20 20 2c 79 6c 29 | 3b 0a 09 64 34 20 3d 20 | ,yl)|;..d4 = |
|000061c0| 64 69 73 74 28 2a 78 2c | 2a 79 2c 78 6c 2b 33 2a |dist(*x,|*y,xl+3*|
|000061d0| 74 78 2f 32 2c 79 6c 2b | 74 79 29 3b 0a 09 69 66 |tx/2,yl+|ty);..if|
|000061e0| 20 28 28 64 31 3c 3d 64 | 32 29 20 26 26 20 28 64 | ((d1<=d|2) && (d|
|000061f0| 31 3c 3d 64 33 29 20 26 | 26 20 28 64 31 3c 3d 64 |1<=d3) &|& (d1<=d|
|00006200| 34 29 29 20 7b 20 2a 78 | 20 3d 20 78 6c 3b 20 20 |4)) { *x| = xl; |
|00006210| 20 20 20 20 20 20 2a 79 | 20 3d 20 79 6c 3b 20 7d | *y| = yl; }|
|00006220| 0a 09 69 66 20 28 28 64 | 32 3c 3d 64 31 29 20 26 |..if ((d|2<=d1) &|
|00006230| 26 20 28 64 32 3c 3d 64 | 33 29 20 26 26 20 28 64 |& (d2<=d|3) && (d|
|00006240| 32 3c 3d 64 34 29 29 20 | 7b 20 2a 78 20 3d 20 78 |2<=d4)) |{ *x = x|
|00006250| 6c 2b 74 78 2f 32 3b 20 | 20 20 2a 79 20 3d 20 79 |l+tx/2; | *y = y|
|00006260| 6c 2b 74 79 3b 20 7d 0a | 09 69 66 20 28 28 64 33 |l+ty; }.|.if ((d3|
|00006270| 3c 3d 64 31 29 20 26 26 | 20 28 64 33 3c 3d 64 32 |<=d1) &&| (d3<=d2|
|00006280| 29 20 26 26 20 28 64 33 | 3c 3d 64 34 29 29 20 7b |) && (d3|<=d4)) {|
|00006290| 20 2a 78 20 3d 20 78 6c | 2b 74 78 3b 20 20 20 20 | *x = xl|+tx; |
|000062a0| 20 2a 79 20 3d 20 79 6c | 3b 20 7d 0a 09 69 66 20 | *y = yl|; }..if |
|000062b0| 28 28 64 34 3c 3d 64 31 | 29 20 26 26 20 28 64 34 |((d4<=d1|) && (d4|
|000062c0| 3c 3d 64 32 29 20 26 26 | 20 28 64 34 3c 3d 64 33 |<=d2) &&| (d4<=d3|
|000062d0| 29 29 20 7b 20 2a 78 20 | 3d 20 78 6c 2b 33 2a 74 |)) { *x |= xl+3*t|
|000062e0| 78 2f 32 3b 20 2a 79 20 | 3d 20 79 6c 2b 74 79 3b |x/2; *y |= yl+ty;|
|000062f0| 20 7d 0a 09 7d 0a 20 20 | 20 20 7d 0a 0a 74 69 63 | }..}. | }..tic|
|00006300| 6b 73 65 74 28 29 0a 20 | 20 20 20 7b 0a 20 20 20 |kset(). | {. |
|00006310| 20 63 68 61 72 20 63 68 | 3b 0a 20 20 20 20 69 6e | char ch|;. in|
|00006320| 74 20 74 6d 70 78 2c 20 | 74 6d 70 79 3b 0a 20 20 |t tmpx, |tmpy;. |
|00006330| 20 20 74 69 63 6b 66 6c | 61 67 20 3d 20 21 74 69 | tickfl|ag = !ti|
|00006340| 63 6b 66 6c 61 67 3b 0a | 20 20 20 20 69 66 20 28 |ckflag;.| if (|
|00006350| 74 69 63 6b 66 6c 61 67 | 29 0a 09 7b 0a 09 6d 73 |tickflag|)..{..ms|
|00006360| 67 70 6f 73 74 28 22 74 | 69 63 6b 73 69 7a 65 5b |gpost("t|icksize[|
|00006370| 31 2d 35 2f 36 2d 39 5d | 3a 20 22 29 3b 0a 09 63 |1-5/6-9]|: ");..c|
|00006380| 68 20 3d 20 67 65 74 73 | 74 72 6f 6b 65 28 29 3b |h = gets|troke();|
|00006390| 0a 09 6d 73 67 63 6c 65 | 61 72 28 29 3b 0a 09 69 |..msgcle|ar();..i|
|000063a0| 66 20 28 28 63 68 20 3c | 20 27 30 27 29 20 7c 7c |f ((ch <| '0') |||
|000063b0| 20 28 63 68 20 3e 20 27 | 39 27 29 29 0a 09 20 20 | (ch > '|9')).. |
|000063c0| 20 20 7b 0a 09 20 20 20 | 20 74 69 63 6b 66 6c 61 | {.. | tickfla|
|000063d0| 67 20 3d 20 30 3b 0a 09 | 20 20 20 20 72 65 74 75 |g = 0;..| retu|
|000063e0| 72 6e 3b 0a 09 20 20 20 | 20 7d 0a 09 74 69 63 6b |rn;.. | }..tick|
|000063f0| 73 69 7a 65 20 3d 20 63 | 68 20 2d 20 27 30 27 3b |size = c|h - '0';|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.