home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3939 < prev    next >
SHell self-extracting ARchive  |  1991-08-30  |  32.3 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

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

You can browse this item here: 3939

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news, 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 77 75 | 70 6f 73 74 21 75 75 6e |Path: wu|post!uun|
|00000010| 65 74 21 6d 63 73 75 6e | 21 75 6b 63 21 61 78 69 |et!mcsun|!ukc!axi|
|00000020| 6f 6e 21 75 7a 69 2d 39 | 6d 6d 2e 66 75 6c 63 72 |on!uzi-9|mm.fulcr|
|00000030| 75 6d 2e 62 74 2e 63 6f | 2e 75 6b 21 63 61 74 2e |um.bt.co|.uk!cat.|
|00000040| 66 75 6c 63 72 75 6d 2e | 62 74 2e 63 6f 2e 75 6b |fulcrum.|bt.co.uk|
|00000050| 21 63 6e 69 78 21 6b 6c | 61 75 73 0a 46 72 6f 6d |!cnix!kl|aus.From|
|00000060| 3a 20 6b 6c 61 75 73 40 | 63 6e 69 78 2e 75 75 63 |: klaus@|cnix.uuc|
|00000070| 70 20 28 6b 6c 61 75 73 | 20 75 20 73 63 68 61 6c |p (klaus| u schal|
|00000080| 6c 68 6f 72 6e 29 0a 4e | 65 77 73 67 72 6f 75 70 |lhorn).N|ewsgroup|
|00000090| 73 3a 20 61 6c 74 2e 73 | 6f 75 72 63 65 73 0a 53 |s: alt.s|ources.S|
|000000a0| 75 62 6a 65 63 74 3a 20 | 70 73 72 6f 66 66 2f 74 |ubject: |psroff/t|
|000000b0| 72 6f 66 66 2f 6c 61 73 | 65 72 6a 65 74 20 68 70 |roff/las|erjet hp|
|000000c0| 63 6c 20 2d 3e 20 66 61 | 78 20 61 6e 64 20 6f 74 |cl -> fa|x and ot|
|000000d0| 68 65 72 73 20 28 33 20 | 6f 66 20 34 29 0a 4d 65 |hers (3 |of 4).Me|
|000000e0| 73 73 61 67 65 2d 49 44 | 3a 20 3c 31 39 39 31 41 |ssage-ID|: <1991A|
|000000f0| 75 67 32 39 2e 31 33 32 | 30 31 34 2e 39 30 35 30 |ug29.132|014.9050|
|00000100| 40 63 6e 69 78 2e 75 75 | 63 70 3e 0a 44 61 74 65 |@cnix.uu|cp>.Date|
|00000110| 3a 20 32 39 20 41 75 67 | 20 39 31 20 31 33 3a 32 |: 29 Aug| 91 13:2|
|00000120| 30 3a 31 34 20 47 4d 54 | 0a 53 65 6e 64 65 72 3a |0:14 GMT|.Sender:|
|00000130| 20 6b 6c 61 75 73 40 63 | 6e 69 78 2e 75 75 63 70 | klaus@c|nix.uucp|
|00000140| 20 28 6b 6c 61 75 73 20 | 75 20 73 63 68 61 6c 6c | (klaus |u schall|
|00000150| 68 6f 72 6e 29 0a 4f 72 | 67 61 6e 69 7a 61 74 69 |horn).Or|ganizati|
|00000160| 6f 6e 3a 20 70 69 6f 6e | 69 65 72 20 70 75 62 6c |on: pion|ier publ|
|00000170| 69 63 61 74 69 6f 6e 73 | 0a 4c 69 6e 65 73 3a 20 |ications|.Lines: |
|00000180| 31 35 37 31 0a 0a 23 21 | 20 2f 62 69 6e 2f 73 68 |1571..#!| /bin/sh|
|00000190| 0a 23 20 54 68 69 73 20 | 69 73 20 61 20 73 68 65 |.# This |is a she|
|000001a0| 6c 6c 20 61 72 63 68 69 | 76 65 2e 20 20 52 65 6d |ll archi|ve. Rem|
|000001b0| 6f 76 65 20 61 6e 79 74 | 68 69 6e 67 20 62 65 66 |ove anyt|hing bef|
|000001c0| 6f 72 65 20 74 68 69 73 | 20 6c 69 6e 65 2c 20 74 |ore this| line, t|
|000001d0| 68 65 6e 20 75 6e 70 61 | 63 6b 0a 23 20 69 74 20 |hen unpa|ck.# it |
|000001e0| 62 79 20 73 61 76 69 6e | 67 20 69 74 20 69 6e 74 |by savin|g it int|
|000001f0| 6f 20 61 20 66 69 6c 65 | 20 61 6e 64 20 74 79 70 |o a file| and typ|
|00000200| 69 6e 67 20 22 73 68 20 | 66 69 6c 65 22 2e 20 20 |ing "sh |file". |
|00000210| 54 6f 20 6f 76 65 72 77 | 72 69 74 65 20 65 78 69 |To overw|rite exi|
|00000220| 73 74 69 6e 67 0a 23 20 | 66 69 6c 65 73 2c 20 74 |sting.# |files, t|
|00000230| 79 70 65 20 22 73 68 20 | 66 69 6c 65 20 2d 63 22 |ype "sh |file -c"|
|00000240| 2e 20 20 59 6f 75 20 63 | 61 6e 20 61 6c 73 6f 20 |. You c|an also |
|00000250| 66 65 65 64 20 74 68 69 | 73 20 61 73 20 73 74 61 |feed thi|s as sta|
|00000260| 6e 64 61 72 64 20 69 6e | 70 75 74 20 76 69 61 0a |ndard in|put via.|
|00000270| 23 20 75 6e 73 68 61 72 | 2c 20 6f 72 20 62 79 20 |# unshar|, or by |
|00000280| 74 79 70 69 6e 67 20 22 | 73 68 20 3c 66 69 6c 65 |typing "|sh <file|
|00000290| 22 2c 20 65 2e 67 2e 2e | 20 20 49 66 20 74 68 69 |", e.g..| If thi|
|000002a0| 73 20 61 72 63 68 69 76 | 65 20 69 73 20 63 6f 6d |s archiv|e is com|
|000002b0| 70 6c 65 74 65 2c 20 79 | 6f 75 0a 23 20 77 69 6c |plete, y|ou.# wil|
|000002c0| 6c 20 73 65 65 20 74 68 | 65 20 66 6f 6c 6c 6f 77 |l see th|e follow|
|000002d0| 69 6e 67 20 6d 65 73 73 | 61 67 65 20 61 74 20 74 |ing mess|age at t|
|000002e0| 68 65 20 65 6e 64 3a 0a | 23 09 09 22 45 6e 64 20 |he end:.|#.."End |
|000002f0| 6f 66 20 61 72 63 68 69 | 76 65 20 33 20 28 6f 66 |of archi|ve 3 (of|
|00000300| 20 34 29 2e 22 0a 23 20 | 43 6f 6e 74 65 6e 74 73 | 4).".# |Contents|
|00000310| 3a 20 20 2e 2f 68 70 66 | 6e 74 77 72 69 74 65 2e |: ./hpf|ntwrite.|
|00000320| 63 0a 23 20 57 72 61 70 | 70 65 64 20 62 79 20 6b |c.# Wrap|ped by k|
|00000330| 6c 61 75 73 40 63 6e 69 | 78 20 6f 6e 20 54 68 75 |laus@cni|x on Thu|
|00000340| 20 41 75 67 20 32 39 20 | 31 34 3a 30 30 3a 34 37 | Aug 29 |14:00:47|
|00000350| 20 31 39 39 31 0a 50 41 | 54 48 3d 2f 62 69 6e 3a | 1991.PA|TH=/bin:|
|00000360| 2f 75 73 72 2f 62 69 6e | 3a 2f 75 73 72 2f 75 63 |/usr/bin|:/usr/uc|
|00000370| 62 20 3b 20 65 78 70 6f | 72 74 20 50 41 54 48 0a |b ; expo|rt PATH.|
|00000380| 69 66 20 74 65 73 74 20 | 2d 66 20 27 2e 2f 68 70 |if test |-f './hp|
|00000390| 66 6e 74 77 72 69 74 65 | 2e 63 27 20 2d 61 20 22 |fntwrite|.c' -a "|
|000003a0| 24 7b 31 7d 22 20 21 3d | 20 22 2d 63 22 20 3b 20 |${1}" !=| "-c" ; |
|000003b0| 74 68 65 6e 20 0a 20 20 | 65 63 68 6f 20 73 68 61 |then . |echo sha|
|000003c0| 72 3a 20 57 69 6c 6c 20 | 6e 6f 74 20 63 6c 6f 62 |r: Will |not clob|
|000003d0| 62 65 72 20 65 78 69 73 | 74 69 6e 67 20 66 69 6c |ber exis|ting fil|
|000003e0| 65 20 5c 22 27 2e 2f 68 | 70 66 6e 74 77 72 69 74 |e \"'./h|pfntwrit|
|000003f0| 65 2e 63 27 5c 22 0a 65 | 6c 73 65 0a 65 63 68 6f |e.c'\".e|lse.echo|
|00000400| 20 73 68 61 72 3a 20 45 | 78 74 72 61 63 74 69 6e | shar: E|xtractin|
|00000410| 67 20 5c 22 27 2e 2f 68 | 70 66 6e 74 77 72 69 74 |g \"'./h|pfntwrit|
|00000420| 65 2e 63 27 5c 22 20 5c | 28 32 39 38 35 35 20 63 |e.c'\" \|(29855 c|
|00000430| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|00000440| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 2e 2f 68 70 66 |"s/^X//"| >'./hpf|
|00000450| 6e 74 77 72 69 74 65 2e | 63 27 20 3c 3c 27 45 4e |ntwrite.|c' <<'EN|
|00000460| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 2f 2a 0a 58 |D_OF_FIL|E'.X/*.X|
|00000470| 09 68 70 66 6e 74 77 72 | 69 74 65 2e 63 0a 58 0a |.hpfntwr|ite.c.X.|
|00000480| 58 09 63 6f 6e 76 65 72 | 74 73 20 68 70 63 6c 20 |X.conver|ts hpcl |
|00000490| 6f 75 74 70 75 74 20 69 | 6e 74 6f 20 61 20 5b 73 |output i|nto a [s|
|000004a0| 65 72 69 65 73 20 6f 66 | 5d 20 70 62 6d 20 66 69 |eries of|] pbm fi|
|000004b0| 6c 65 5b 73 5d 2e 0a 58 | 09 62 61 73 65 64 20 6f |le[s]..X|.based o|
|000004c0| 6e 20 66 61 78 70 61 6b | 27 73 20 66 6e 74 77 72 |n faxpak|'s fntwr|
|000004d0| 69 74 65 20 66 6f 72 20 | 74 65 78 74 74 6f 70 62 |ite for |texttopb|
|000004e0| 6d 2c 20 77 68 69 63 68 | 20 77 61 73 20 72 69 70 |m, which| was rip|
|000004f0| 70 65 64 20 6f 66 66 20 | 0a 58 09 66 72 6f 6d 20 |ped off |.X.from |
|00000500| 63 68 61 72 74 2e 63 0a | 58 0a 58 09 76 65 72 73 |chart.c.|X.X.vers|
|00000510| 69 6f 6e 20 31 2e 30 2c | 20 43 6f 70 79 72 69 67 |ion 1.0,| Copyrig|
|00000520| 68 74 20 28 43 29 20 31 | 39 39 31 2c 20 6b 6c 61 |ht (C) 1|991, kla|
|00000530| 75 73 20 73 63 68 61 6c | 6c 68 6f 72 6e 2c 20 3c |us schal|lhorn, <|
|00000540| 6b 6c 61 75 73 40 63 6e | 69 78 2e 75 75 63 70 3e |klaus@cn|ix.uucp>|
|00000550| 0a 58 0a 58 09 50 65 72 | 6d 69 73 73 69 6f 6e 20 |.X.X.Per|mission |
|00000560| 74 6f 20 75 73 65 2c 20 | 63 6f 70 79 2c 20 6d 6f |to use, |copy, mo|
|00000570| 64 69 66 79 2c 20 61 6e | 64 20 64 69 73 74 72 69 |dify, an|d distri|
|00000580| 62 75 74 65 20 74 68 69 | 73 20 73 6f 66 74 77 61 |bute thi|s softwa|
|00000590| 72 65 20 61 6e 64 20 69 | 74 73 0a 58 09 64 6f 63 |re and i|ts.X.doc|
|000005a0| 75 6d 65 6e 74 61 74 69 | 6f 6e 20 66 6f 72 20 61 |umentati|on for a|
|000005b0| 6e 79 20 70 75 72 70 6f | 73 65 20 61 6e 64 20 77 |ny purpo|se and w|
|000005c0| 69 74 68 6f 75 74 20 66 | 65 65 20 69 73 20 68 65 |ithout f|ee is he|
|000005d0| 72 65 62 79 20 67 72 61 | 6e 74 65 64 2c 20 70 72 |reby gra|nted, pr|
|000005e0| 6f 76 69 64 65 64 0a 58 | 09 74 68 61 74 20 74 68 |ovided.X|.that th|
|000005f0| 65 20 61 62 6f 76 65 20 | 63 6f 70 79 72 69 67 68 |e above |copyrigh|
|00000600| 74 20 6e 6f 74 69 63 65 | 20 61 70 70 65 61 72 20 |t notice| appear |
|00000610| 69 6e 20 61 6c 6c 20 63 | 6f 70 69 65 73 20 61 6e |in all c|opies an|
|00000620| 64 20 74 68 61 74 20 62 | 6f 74 68 20 74 68 61 74 |d that b|oth that|
|00000630| 0a 58 09 63 6f 70 79 72 | 69 67 68 74 20 6e 6f 74 |.X.copyr|ight not|
|00000640| 69 63 65 20 61 6e 64 20 | 74 68 69 73 20 70 65 72 |ice and |this per|
|00000650| 6d 69 73 73 69 6f 6e 20 | 6e 6f 74 69 63 65 20 61 |mission |notice a|
|00000660| 70 70 65 61 72 20 69 6e | 20 73 75 70 70 6f 72 74 |ppear in| support|
|00000670| 69 6e 67 0a 58 09 64 6f | 63 75 6d 65 6e 74 61 74 |ing.X.do|cumentat|
|00000680| 69 6f 6e 2e 20 20 54 68 | 69 73 20 73 6f 66 74 77 |ion. Th|is softw|
|00000690| 61 72 65 20 69 73 20 70 | 72 6f 76 69 64 65 64 20 |are is p|rovided |
|000006a0| 22 61 73 20 69 73 22 20 | 77 69 74 68 6f 75 74 20 |"as is" |without |
|000006b0| 65 78 70 72 65 73 73 20 | 6f 72 0a 58 09 69 6d 70 |express |or.X.imp|
|000006c0| 6c 69 65 64 20 77 61 72 | 72 61 6e 74 79 2e 0a 58 |lied war|ranty..X|
|000006d0| 2a 2f 0a 58 0a 58 23 69 | 6e 63 6c 75 64 65 20 22 |*/.X.X#i|nclude "|
|000006e0| 68 70 74 6f 70 62 6d 2e | 68 22 0a 58 0a 58 23 69 |hptopbm.|h".X.X#i|
|000006f0| 66 64 65 66 09 46 41 58 | 50 41 4b 0a 58 65 78 74 |fdef.FAX|PAK.Xext|
|00000700| 65 72 6e 09 73 74 72 75 | 63 74 20 46 41 58 43 4f |ern.stru|ct FAXCO|
|00000710| 4e 46 49 47 20 66 63 3b | 0a 58 23 65 6e 64 69 66 |NFIG fc;|.X#endif|
|00000720| 0a 58 0a 58 23 69 66 6e | 64 65 66 09 4d 41 58 5f |.X.X#ifn|def.MAX_|
|00000730| 48 49 54 45 0a 58 23 64 | 65 66 69 6e 65 09 4d 41 |HITE.X#d|efine.MA|
|00000740| 58 5f 48 49 54 45 09 34 | 32 30 30 09 2f 2a 20 31 |X_HITE.4|200./* 1|
|00000750| 34 20 69 6e 20 40 20 33 | 30 30 20 64 70 69 20 2a |4 in @ 3|00 dpi *|
|00000760| 2f 0a 58 23 65 6e 64 69 | 66 0a 58 23 69 66 6e 64 |/.X#endi|f.X#ifnd|
|00000770| 65 66 09 4d 41 58 5f 57 | 49 44 54 48 0a 58 23 64 |ef.MAX_W|IDTH.X#d|
|00000780| 65 66 69 6e 65 09 4d 41 | 58 5f 57 49 44 54 48 09 |efine.MA|X_WIDTH.|
|00000790| 32 38 30 30 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |2800.X#e|ndif.X.X|
|000007a0| 23 64 65 66 69 6e 65 09 | 4d 41 58 5f 46 4f 4e 54 |#define.|MAX_FONT|
|000007b0| 09 4d 41 58 5f 42 55 49 | 4c 54 49 4e 2b 4d 41 58 |.MAX_BUI|LTIN+MAX|
|000007c0| 5f 44 4f 57 4e 4c 4f 41 | 44 0a 58 23 64 65 66 69 |_DOWNLOA|D.X#defi|
|000007d0| 6e 65 09 4d 41 58 5f 4d | 41 43 52 4f 09 33 32 0a |ne.MAX_M|ACRO.32.|
|000007e0| 58 23 64 65 66 69 6e 65 | 09 4d 41 58 5f 50 41 54 |X#define|.MAX_PAT|
|000007f0| 09 09 31 34 0a 58 0a 58 | 23 64 65 66 69 6e 65 09 |..14.X.X|#define.|
|00000800| 45 53 43 09 09 27 5c 30 | 33 33 27 0a 58 23 64 65 |ESC..'\0|33'.X#de|
|00000810| 66 69 6e 65 09 73 65 74 | 70 69 78 28 79 2c 78 29 |fine.set|pix(y,x)|
|00000820| 09 28 62 6c 6f 63 6b 5b | 79 5d 5b 78 3e 3e 33 5d |.(block[|y][x>>3]|
|00000830| 20 7c 3d 20 62 69 74 5b | 78 26 37 5d 29 0a 58 0a | |= bit[|x&7]).X.|
|00000840| 58 23 69 66 6e 64 65 66 | 09 6d 69 6e 0a 58 23 64 |X#ifndef|.min.X#d|
|00000850| 65 66 69 6e 65 09 6d 69 | 6e 28 61 2c 62 29 09 28 |efine.mi|n(a,b).(|
|00000860| 28 61 3c 62 29 3f 61 3a | 62 29 0a 58 23 64 65 66 |(a<b)?a:|b).X#def|
|00000870| 69 6e 65 09 6d 61 78 28 | 61 2c 62 29 09 28 28 61 |ine.max(|a,b).((a|
|00000880| 3e 62 29 3f 61 3a 62 29 | 0a 58 23 65 6e 64 69 66 |>b)?a:b)|.X#endif|
|00000890| 0a 58 0a 58 0a 58 23 64 | 65 66 69 6e 65 09 72 65 |.X.X.X#d|efine.re|
|000008a0| 6c 61 74 69 76 65 28 29 | 09 6d 6f 76 65 74 79 70 |lative()|.movetyp|
|000008b0| 65 0a 58 0a 58 65 78 74 | 65 72 6e 09 69 6e 74 20 |e.X.Xext|ern.int |
|000008c0| 62 75 69 6c 74 69 6e 2c | 20 64 6f 74 74 65 64 2c |builtin,| dotted,|
|000008d0| 20 6d 6f 76 65 74 79 70 | 65 2c 20 6c 61 73 74 66 | movetyp|e, lastf|
|000008e0| 6f 6e 74 69 64 3b 0a 58 | 0a 58 73 74 61 74 69 63 |ontid;.X|.Xstatic|
|000008f0| 09 75 63 68 61 72 20 2a | 62 6c 6f 63 6b 5b 4d 41 |.uchar *|block[MA|
|00000900| 58 5f 48 49 54 45 5d 3b | 0a 58 0a 58 73 74 61 74 |X_HITE];|.X.Xstat|
|00000910| 69 63 20 73 74 72 75 63 | 74 09 4d 43 45 4e 56 0a |ic struc|t.MCENV.|
|00000920| 58 7b 0a 58 09 69 6e 74 | 09 70 61 67 65 5f 6c 65 |X{.X.int|.page_le|
|00000930| 6e 2c 0a 58 09 09 74 6f | 70 5f 6d 61 72 67 69 6e |n,.X..to|p_margin|
|00000940| 2c 0a 58 09 09 6c 65 66 | 74 5f 6d 61 72 67 69 6e |,.X..lef|t_margin|
|00000950| 2c 0a 58 09 09 72 69 74 | 65 5f 6d 61 72 67 69 6e |,.X..rit|e_margin|
|00000960| 2c 0a 58 09 09 63 75 72 | 5f 66 6e 74 2c 0a 58 09 |,.X..cur|_fnt,.X.|
|00000970| 09 63 75 72 5f 66 49 44 | 2c 0a 58 09 09 63 75 72 |.cur_fID|,.X..cur|
|00000980| 5f 6d 61 63 2c 0a 58 09 | 09 70 66 6f 6e 74 2c 0a |_mac,.X.|.pfont,.|
|00000990| 58 09 09 63 75 72 5f 63 | 68 72 2c 0a 58 09 09 75 |X..cur_c|hr,.X..u|
|000009a0| 6e 64 65 72 6c 69 6e 65 | 2c 0a 58 09 09 64 70 69 |nderline|,.X..dpi|
|000009b0| 2c 0a 58 09 09 70 49 44 | 2c 0a 58 09 09 74 6f 70 |,.X..pID|,.X..top|
|000009c0| 5f 64 6f 74 73 2c 0a 58 | 09 09 6c 65 66 74 5f 64 |_dots,.X|..left_d|
|000009d0| 6f 74 73 2c 0a 58 09 09 | 74 65 78 74 5f 6c 65 6e |ots,.X..|text_len|
|000009e0| 3b 0a 58 09 64 6f 75 62 | 6c 65 09 68 6d 69 2c 0a |;.X.doub|le.hmi,.|
|000009f0| 58 09 09 6c 68 69 74 65 | 2c 0a 58 09 09 48 6c 65 |X..lhite|,.X..Hle|
|00000a00| 6e 2c 20 56 6c 65 6e 3b | 0a 58 7d 20 4d 63 45 6e |n, Vlen;|.X} McEn|
|00000a10| 76 2c 20 6f 72 67 65 6e | 76 2c 20 2a 63 75 72 65 |v, orgen|v, *cure|
|00000a20| 6e 76 3b 0a 58 0a 58 73 | 74 61 74 69 63 20 73 74 |nv;.X.Xs|tatic st|
|00000a30| 72 75 63 74 09 4f 56 4c | 59 0a 58 7b 0a 58 09 73 |ruct.OVL|Y.X{.X.s|
|00000a40| 74 72 75 63 74 09 4d 43 | 45 4e 56 20 6f 76 6c 79 |truct.MC|ENV ovly|
|00000a50| 5f 65 6e 76 3b 0a 58 09 | 69 6e 74 09 73 66 6f 6e |_env;.X.|int.sfon|
|00000a60| 74 3b 0a 58 09 64 6f 75 | 62 6c 65 09 42 4d 58 2c |t;.X.dou|ble.BMX,|
|00000a70| 20 42 4d 59 2c 20 09 09 | 2f 2a 20 63 75 72 72 65 | BMY, ..|/* curre|
|00000a80| 6e 74 20 61 62 73 20 78 | 79 20 2a 2f 0a 58 09 09 |nt abs x|y */.X..|
|00000a90| 47 52 41 50 48 58 2c 20 | 47 52 41 50 48 59 3b 20 |GRAPHX, |GRAPHY; |
|00000aa0| 09 2f 2a 20 63 75 72 72 | 65 6e 74 20 67 72 61 70 |./* curr|ent grap|
|00000ab0| 68 69 63 73 20 63 75 72 | 73 6f 72 20 2a 2f 0a 58 |hics cur|sor */.X|
|00000ac0| 09 64 6f 75 62 6c 65 09 | 6c 70 69 3b 0a 58 7d 20 |.double.|lpi;.X} |
|00000ad0| 6f 76 6c 79 2c 20 72 65 | 73 74 6f 72 65 3b 0a 58 |ovly, re|store;.X|
|00000ae0| 0a 58 73 74 72 75 63 74 | 09 46 4f 4e 54 5f 41 54 |.Xstruct|.FONT_AT|
|00000af0| 54 53 0a 58 7b 0a 58 09 | 69 6e 74 09 6f 72 69 65 |TS.X{.X.|int.orie|
|00000b00| 6e 74 2c 0a 58 09 09 73 | 79 6d 73 65 74 2c 0a 58 |nt,.X..s|ymset,.X|
|00000b10| 09 09 70 72 6f 70 5f 73 | 70 61 63 65 64 2c 0a 58 |..prop_s|paced,.X|
|00000b20| 09 09 73 74 79 6c 65 2c | 0a 58 09 09 73 74 72 6f |..style,|.X..stro|
|00000b30| 6b 65 2c 0a 58 09 09 74 | 79 70 65 66 61 63 65 3b |ke,.X..t|ypeface;|
|00000b40| 0a 58 09 64 6f 75 62 6c | 65 09 70 69 74 63 68 2c |.X.doubl|e.pitch,|
|00000b50| 0a 58 09 09 70 6f 69 6e | 74 73 3b 0a 58 7d 20 6c |.X..poin|ts;.X} l|
|00000b60| 61 73 74 73 70 65 63 3b | 0a 58 0a 58 73 74 61 74 |astspec;|.X.Xstat|
|00000b70| 69 63 09 69 6e 74 20 73 | 66 6f 6e 74 2c 0a 58 09 |ic.int s|font,.X.|
|00000b80| 6d 61 78 5f 6c 6e 2c 20 | 6d 61 78 5f 63 6f 6c 2c |max_ln, |max_col,|
|00000b90| 20 09 2f 2a 20 6d 61 78 | 20 64 69 6d 65 6e 20 61 | ./* max| dimen a|
|00000ba0| 62 73 20 70 65 6c 73 20 | 2a 2f 0a 58 09 78 6d 61 |bs pels |*/.X.xma|
|00000bb0| 78 5f 75 73 65 64 2c 20 | 79 6d 61 78 5f 75 73 65 |x_used, |ymax_use|
|00000bc0| 64 2c 20 09 2f 2a 20 6d | 61 78 20 61 62 73 20 75 |d, ./* m|ax abs u|
|00000bd0| 73 65 64 20 2a 2f 0a 58 | 09 62 6d 78 2c 20 62 6d |sed */.X|.bmx, bm|
|00000be0| 79 2c 20 09 09 2f 2a 20 | 63 75 72 72 65 6e 74 20 |y, ../* |current |
|00000bf0| 61 62 73 20 78 79 20 2a | 2f 0a 58 09 73 65 65 5f |abs xy *|/.X.see_|
|00000c00| 74 68 72 75 2c 20 09 09 | 2f 2a 20 64 6f 6e 74 20 |thru, ..|/* dont |
|00000c10| 70 61 69 6e 74 20 61 6e | 79 74 68 69 6e 67 20 2a |paint an|ything *|
|00000c20| 2f 0a 58 09 6e 65 77 5f | 74 6f 70 6d 61 72 67 69 |/.X.new_|topmargi|
|00000c30| 6e 2c 20 09 09 2f 2a 20 | 74 61 6b 65 73 20 65 66 |n, ../* |takes ef|
|00000c40| 66 65 63 74 20 6f 6e 20 | 6e 65 78 74 20 70 61 67 |fect on |next pag|
|00000c50| 65 20 75 6e 6c 65 73 73 | 20 3c 45 53 43 3e 26 61 |e unless| <ESC>&a|
|00000c60| 30 52 20 2a 2f 0a 58 09 | 65 6e 76 5f 73 61 76 65 |0R */.X.|env_save|
|00000c70| 64 2c 0a 58 09 73 74 61 | 63 6b 70 6f 73 2c 0a 58 |d,.X.sta|ckpos,.X|
|00000c80| 09 61 75 74 6f 5f 6d 61 | 63 72 6f 2c 0a 58 09 74 |.auto_ma|cro,.X.t|
|00000c90| 72 79 5f 73 65 6c 65 63 | 74 2c 0a 58 09 76 69 72 |ry_selec|t,.X.vir|
|00000ca0| 67 69 6e 20 3d 20 54 52 | 55 45 2c 0a 58 09 6e 6f |gin = TR|UE,.X.no|
|00000cb0| 5f 62 69 74 6d 61 70 20 | 3d 20 54 52 55 45 3b 0a |_bitmap |= TRUE;.|
|00000cc0| 58 0a 58 73 74 61 74 69 | 63 09 69 6e 74 20 78 73 |X.Xstati|c.int xs|
|00000cd0| 63 61 6c 65 5b 4d 41 58 | 5f 57 49 44 54 48 5d 2c |cale[MAX|_WIDTH],|
|00000ce0| 20 79 73 63 61 6c 65 5b | 4d 41 58 5f 48 49 54 45 | yscale[|MAX_HITE|
|00000cf0| 5d 3b 0a 58 0a 58 73 74 | 61 74 69 63 09 64 6f 75 |];.X.Xst|atic.dou|
|00000d00| 62 6c 65 20 78 64 70 69 | 2c 20 79 64 70 69 2c 20 |ble xdpi|, ydpi, |
|00000d10| 6c 70 69 2c 20 42 4d 58 | 2c 20 42 4d 59 2c 20 47 |lpi, BMX|, BMY, G|
|00000d20| 52 41 50 48 58 2c 20 47 | 52 41 50 48 59 3b 0a 58 |RAPHX, G|RAPHY;.X|
|00000d30| 0a 58 73 74 61 74 69 63 | 09 75 63 68 61 72 20 62 |.Xstatic|.uchar b|
|00000d40| 69 74 5b 5d 20 3d 0a 58 | 7b 0a 58 09 30 78 38 30 |it[] =.X|{.X.0x80|
|00000d50| 2c 30 78 34 30 2c 30 78 | 32 30 2c 30 78 31 30 2c |,0x40,0x|20,0x10,|
|00000d60| 30 78 30 38 2c 30 78 30 | 34 2c 30 78 30 32 2c 30 |0x08,0x0|4,0x02,0|
|00000d70| 78 30 31 0a 58 7d 3b 0a | 58 0a 58 73 74 72 75 63 |x01.X};.|X.Xstruc|
|00000d80| 74 09 43 48 41 52 5f 42 | 49 54 4d 41 50 0a 58 7b |t.CHAR_B|ITMAP.X{|
|00000d90| 0a 58 09 73 68 6f 72 74 | 20 6c 65 6e 2c 20 68 69 |.X.short| len, hi|
|00000da0| 74 65 2c 20 63 6c 65 6e | 2c 20 74 6f 66 66 73 2c |te, clen|, toffs,|
|00000db0| 20 6c 6f 66 66 73 3b 0a | 58 09 75 63 68 61 72 20 | loffs;.|X.uchar |
|00000dc0| 2a 2a 43 48 3b 0a 58 7d | 3b 0a 58 0a 58 73 74 72 |**CH;.X}|;.X.Xstr|
|00000dd0| 75 63 74 09 48 50 46 4f | 4e 54 0a 58 7b 0a 58 09 |uct.HPFO|NT.X{.X.|
|00000de0| 69 6e 74 09 66 49 44 2c | 0a 58 09 09 61 63 74 69 |int.fID,|.X..acti|
|00000df0| 76 65 2c 0a 58 09 09 70 | 72 6f 70 5f 73 70 61 63 |ve,.X..p|rop_spac|
|00000e00| 65 64 2c 0a 58 09 09 72 | 65 61 6c 5f 73 70 61 63 |ed,.X..r|eal_spac|
|00000e10| 65 64 2c 0a 58 09 09 70 | 65 72 6d 74 79 70 65 2c |ed,.X..p|ermtype,|
|00000e20| 0a 58 09 09 70 72 69 6d | 74 79 70 65 2c 0a 58 09 |.X..prim|type,.X.|
|00000e30| 09 62 75 69 6c 74 69 6e | 3b 0a 58 09 64 6f 75 62 |.builtin|;.X.doub|
|00000e40| 6c 65 09 73 70 61 63 65 | 5f 6c 65 6e 2c 0a 58 09 |le.space|_len,.X.|
|00000e50| 09 72 65 61 6c 5f 73 70 | 61 63 65 5f 6c 65 6e 3b |.real_sp|ace_len;|
|00000e60| 09 09 2f 2a 20 74 6f 20 | 72 65 73 74 6f 72 65 20 |../* to |restore |
|00000e70| 72 65 61 6c 69 74 79 20 | 2a 2f 0a 58 09 73 74 72 |reality |*/.X.str|
|00000e80| 75 63 74 09 46 4f 4e 54 | 5f 41 54 54 53 20 66 6f |uct.FONT|_ATTS fo|
|00000e90| 6e 74 5f 61 74 74 73 3b | 0a 58 09 73 74 72 75 63 |nt_atts;|.X.struc|
|00000ea0| 74 09 43 48 41 52 5f 42 | 49 54 4d 41 50 20 63 68 |t.CHAR_B|ITMAP ch|
|00000eb0| 61 72 73 5b 32 35 36 5d | 3b 0a 58 7d 20 68 70 66 |ars[256]|;.X} hpf|
|00000ec0| 6f 6e 74 73 5b 4d 41 58 | 5f 46 4f 4e 54 5d 2c 20 |onts[MAX|_FONT], |
|00000ed0| 2a 63 66 6e 2c 20 2a 67 | 65 74 63 66 6e 28 29 2c |*cfn, *g|etcfn(),|
|00000ee0| 20 2a 66 69 6e 64 6c 73 | 74 69 64 28 29 3b 0a 58 | *findls|tid();.X|
|00000ef0| 0a 58 73 74 72 75 63 74 | 09 4d 41 43 52 4f 0a 58 |.Xstruct|.MACRO.X|
|00000f00| 7b 0a 58 09 69 6e 74 09 | 61 63 74 69 76 65 2c 0a |{.X.int.|active,.|
|00000f10| 58 09 09 70 65 72 6d 74 | 79 70 65 2c 0a 58 09 09 |X..permt|ype,.X..|
|00000f20| 6d 61 67 69 63 2c 0a 58 | 09 09 6c 65 6e 3b 0a 58 |magic,.X|..len;.X|
|00000f30| 09 75 63 68 61 72 09 2a | 6d 61 63 72 6f 3b 0a 58 |.uchar.*|macro;.X|
|00000f40| 7d 20 6d 61 63 72 6f 73 | 5b 4d 41 58 5f 4d 41 43 |} macros|[MAX_MAC|
|00000f50| 52 4f 5d 2c 20 2a 63 6d | 63 2c 20 2a 67 65 74 63 |RO], *cm|c, *getc|
|00000f60| 6d 63 28 29 3b 0a 58 0a | 58 73 74 72 75 63 74 09 |mc();.X.|Xstruct.|
|00000f70| 53 54 41 43 4b 0a 58 7b | 0a 58 09 64 6f 75 62 6c |STACK.X{|.X.doubl|
|00000f80| 65 20 42 4d 58 2c 20 42 | 4d 59 3b 0a 58 7d 20 73 |e BMX, B|MY;.X} s|
|00000f90| 74 61 63 6b 5b 4d 41 58 | 5f 50 55 53 48 4e 50 4f |tack[MAX|_PUSHNPO|
|00000fa0| 50 5d 3b 0a 58 0a 58 73 | 74 72 75 63 74 20 50 41 |P];.X.Xs|truct PA|
|00000fb0| 54 0a 58 7b 0a 58 09 75 | 63 68 61 72 20 70 3b 0a |T.X{.X.u|char p;.|
|00000fc0| 58 09 73 74 72 75 63 74 | 20 50 41 54 20 2a 78 6e |X.struct| PAT *xn|
|00000fd0| 65 78 74 2c 20 2a 79 6e | 65 78 74 3b 0a 58 7d 20 |ext, *yn|ext;.X} |
|00000fe0| 70 61 74 5b 4d 41 58 5f | 50 41 54 5d 5b 33 32 5d |pat[MAX_|PAT][32]|
|00000ff0| 5b 34 5d 3b 0a 58 0a 58 | 63 68 61 72 09 2a 42 75 |[4];.X.X|char.*Bu|
|00001000| 69 6c 74 69 6e 46 6f 6e | 74 73 5b 5d 3d 0a 58 7b |iltinFon|ts[]=.X{|
|00001010| 0a 58 2f 2a 20 30 2a 2f | 09 22 6c 70 2e 73 66 70 |.X/* 0*/|."lp.sfp|
|00001020| 22 2c 0a 58 2f 2a 20 31 | 2a 2f 09 22 22 2c 0a 58 |",.X/* 1|*/."",.X|
|00001030| 2f 2a 20 32 2a 2f 09 22 | 22 2c 0a 58 2f 2a 20 33 |/* 2*/."|",.X/* 3|
|00001040| 2a 2f 09 22 63 6f 75 72 | 2e 73 66 70 22 2c 0a 58 |*/."cour|.sfp",.X|
|00001050| 2f 2a 20 34 2a 2f 09 22 | 22 2c 0a 58 2f 2a 20 35 |/* 4*/."|",.X/* 5|
|00001060| 2a 2f 09 22 22 2c 0a 58 | 2f 2a 20 36 2a 2f 09 22 |*/."",.X|/* 6*/."|
|00001070| 22 2c 0a 58 2f 2a 20 37 | 2a 2f 09 22 22 2c 0a 58 |",.X/* 7|*/."",.X|
|00001080| 09 4e 55 4c 4c 0a 58 7d | 3b 0a 58 0a 58 23 64 65 |.NULL.X}|;.X.X#de|
|00001090| 66 69 6e 65 09 47 52 41 | 59 09 09 32 0a 58 23 64 |fine.GRA|Y..2.X#d|
|000010a0| 65 66 69 6e 65 09 47 52 | 41 59 5f 42 41 53 45 09 |efine.GR|AY_BASE.|
|000010b0| 30 0a 58 23 64 65 66 69 | 6e 65 09 52 55 4c 45 09 |0.X#defi|ne.RULE.|
|000010c0| 09 33 0a 58 23 64 65 66 | 69 6e 65 09 52 55 4c 45 |.3.X#def|ine.RULE|
|000010d0| 5f 42 41 53 45 09 37 0a | 58 23 64 65 66 69 6e 65 |_BASE.7.|X#define|
|000010e0| 09 53 4f 4c 49 44 09 09 | 37 0a 58 0a 58 63 68 61 |.SOLID..|7.X.Xcha|
|000010f0| 72 09 2a 42 75 69 6c 74 | 69 6e 50 61 74 73 5b 5d |r.*Built|inPats[]|
|00001100| 3d 0a 58 7b 0a 58 09 22 | 68 70 72 61 73 74 31 22 |=.X{.X."|hprast1"|
|00001110| 2c 0a 58 09 22 68 70 72 | 61 73 74 32 22 2c 0a 58 |,.X."hpr|ast2",.X|
|00001120| 09 22 68 70 72 61 73 74 | 33 22 2c 0a 58 09 22 68 |."hprast|3",.X."h|
|00001130| 70 72 61 73 74 34 22 2c | 0a 58 09 22 68 70 72 61 |prast4",|.X."hpra|
|00001140| 73 74 35 22 2c 0a 58 09 | 22 68 70 72 61 73 74 36 |st5",.X.|"hprast6|
|00001150| 22 2c 0a 58 09 22 68 70 | 72 61 73 74 37 22 2c 0a |",.X."hp|rast7",.|
|00001160| 58 09 22 68 70 72 61 73 | 74 38 22 2c 0a 58 09 22 |X."hpras|t8",.X."|
|00001170| 68 70 70 61 74 31 22 2c | 0a 58 09 22 68 70 70 61 |hppat1",|.X."hppa|
|00001180| 74 32 22 2c 0a 58 09 22 | 68 70 70 61 74 33 22 2c |t2",.X."|hppat3",|
|00001190| 0a 58 09 22 68 70 70 61 | 74 34 22 2c 0a 58 09 22 |.X."hppa|t4",.X."|
|000011a0| 68 70 70 61 74 35 22 2c | 0a 58 09 22 68 70 70 61 |hppat5",|.X."hppa|
|000011b0| 74 36 22 2c 0a 58 09 4e | 55 4c 4c 0a 58 7d 3b 0a |t6",.X.N|ULL.X};.|
|000011c0| 58 0a 58 0a 58 2f 2a 20 | 53 54 41 52 54 55 50 2c |X.X.X/* |STARTUP,|
|000011d0| 20 61 75 74 6f 6d 61 67 | 69 63 61 6c 6c 79 20 63 | automag|ically c|
|000011e0| 61 6c 6c 65 64 20 66 72 | 6f 6d 20 6d 61 69 6e 20 |alled fr|om main |
|000011f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001200| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001210| 2a 20 2a 2f 0a 58 72 73 | 5f 72 61 73 74 73 69 7a |* */.Xrs|_rastsiz|
|00001220| 65 28 78 2c 79 29 0a 58 | 64 6f 75 62 6c 65 20 78 |e(x,y).X|double x|
|00001230| 2c 79 3b 0a 58 7b 0a 58 | 09 78 64 70 69 20 3d 20 |,y;.X{.X|.xdpi = |
|00001240| 78 3b 0a 58 09 79 64 70 | 69 20 3d 20 79 3b 0a 58 |x;.X.ydp|i = y;.X|
|00001250| 09 73 65 65 5f 74 68 72 | 75 20 3d 20 30 3b 0a 58 |.see_thr|u = 0;.X|
|00001260| 09 6c 70 69 20 3d 20 36 | 2e 30 3b 0a 58 09 6f 72 |.lpi = 6|.0;.X.or|
|00001270| 67 65 6e 76 2e 70 61 67 | 65 5f 6c 65 6e 20 3d 20 |genv.pag|e_len = |
|00001280| 50 41 47 45 5f 4c 45 4e | 3b 0a 58 09 6f 72 67 65 |PAGE_LEN|;.X.orge|
|00001290| 6e 76 2e 74 6f 70 5f 6d | 61 72 67 69 6e 20 3d 20 |nv.top_m|argin = |
|000012a0| 6e 65 77 5f 74 6f 70 6d | 61 72 67 69 6e 20 3d 20 |new_topm|argin = |
|000012b0| 54 4f 50 5f 4d 41 52 47 | 49 4e 3b 0a 58 09 6f 72 |TOP_MARG|IN;.X.or|
|000012c0| 67 65 6e 76 2e 6c 65 66 | 74 5f 6d 61 72 67 69 6e |genv.lef|t_margin|
|000012d0| 20 3d 20 4c 45 46 54 5f | 4d 41 52 47 49 4e 3b 0a | = LEFT_|MARGIN;.|
|000012e0| 58 09 6f 72 67 65 6e 76 | 2e 72 69 74 65 5f 6d 61 |X.orgenv|.rite_ma|
|000012f0| 72 67 69 6e 20 3d 20 52 | 49 54 45 5f 4d 41 52 47 |rgin = R|ITE_MARG|
|00001300| 49 4e 3b 0a 58 09 6f 72 | 67 65 6e 76 2e 74 65 78 |IN;.X.or|genv.tex|
|00001310| 74 5f 6c 65 6e 20 3d 20 | 50 41 47 45 5f 4c 45 4e |t_len = |PAGE_LEN|
|00001320| 20 2d 20 54 4f 50 5f 4d | 41 52 47 49 4e 3b 0a 58 | - TOP_M|ARGIN;.X|
|00001330| 09 6f 72 67 65 6e 76 2e | 74 65 78 74 5f 6c 65 6e |.orgenv.|text_len|
|00001340| 20 2d 3d 20 33 3b 0a 58 | 09 6f 72 67 65 6e 76 2e | -= 3;.X|.orgenv.|
|00001350| 6c 68 69 74 65 20 3d 20 | 35 30 3b 0a 58 09 6f 72 |lhite = |50;.X.or|
|00001360| 67 65 6e 76 2e 74 6f 70 | 5f 64 6f 74 73 20 3d 20 |genv.top|_dots = |
|00001370| 6f 72 67 65 6e 76 2e 74 | 6f 70 5f 6d 61 72 67 69 |orgenv.t|op_margi|
|00001380| 6e 2a 6f 72 67 65 6e 76 | 2e 6c 68 69 74 65 3b 0a |n*orgenv|.lhite;.|
|00001390| 58 09 6f 72 67 65 6e 76 | 2e 6c 65 66 74 5f 64 6f |X.orgenv|.left_do|
|000013a0| 74 73 20 3d 20 34 37 3b | 09 2f 2a 20 64 6f 74 73 |ts = 47;|./* dots|
|000013b0| 20 3d 20 2e 31 35 37 20 | 69 6e 20 2a 2f 0a 58 09 | = .157 |in */.X.|
|000013c0| 6f 72 67 65 6e 76 2e 64 | 70 69 20 3d 20 37 35 3b |orgenv.d|pi = 75;|
|000013d0| 09 2f 2a 20 68 70 20 32 | 36 38 36 61 20 2a 2f 0a |./* hp 2|686a */.|
|000013e0| 58 09 73 74 61 63 6b 70 | 6f 73 20 3d 20 30 3b 0a |X.stackp|os = 0;.|
|000013f0| 58 09 74 72 79 5f 73 65 | 6c 65 63 74 20 3d 20 30 |X.try_se|lect = 0|
|00001400| 3b 0a 58 09 62 75 69 6c | 74 69 6e 20 3d 20 2d 31 |;.X.buil|tin = -1|
|00001410| 3b 0a 58 09 6f 72 67 65 | 6e 76 2e 63 75 72 5f 66 |;.X.orge|nv.cur_f|
|00001420| 49 44 20 3d 20 6f 72 67 | 65 6e 76 2e 63 75 72 5f |ID = org|env.cur_|
|00001430| 63 68 72 20 3d 20 2d 31 | 3b 0a 58 09 6f 72 67 65 |chr = -1|;.X.orge|
|00001440| 6e 76 2e 63 75 72 5f 6d | 61 63 20 3d 20 2d 31 3b |nv.cur_m|ac = -1;|
|00001450| 0a 58 09 63 75 72 65 6e | 76 20 3d 20 26 6f 72 67 |.X.curen|v = &org|
|00001460| 65 6e 76 3b 0a 58 09 61 | 75 74 6f 5f 6d 61 63 72 |env;.X.a|uto_macr|
|00001470| 6f 20 3d 20 2d 31 3b 0a | 58 09 63 66 6e 20 3d 20 |o = -1;.|X.cfn = |
|00001480| 4e 55 4c 4c 3b 0a 58 09 | 63 6d 63 20 3d 20 4e 55 |NULL;.X.|cmc = NU|
|00001490| 4c 4c 3b 0a 58 09 66 6f | 6e 74 69 6e 69 74 28 29 |LL;.X.fo|ntinit()|
|000014a0| 3b 0a 58 09 78 79 69 6e | 69 74 28 29 3b 0a 58 09 |;.X.xyin|it();.X.|
|000014b0| 6d 61 63 69 6e 69 74 28 | 29 3b 0a 58 09 6f 76 6c |macinit(|);.X.ovl|
|000014c0| 79 69 6e 69 74 28 29 3b | 0a 58 09 62 75 69 6c 74 |yinit();|.X.built|
|000014d0| 69 6e 5f 66 6f 6e 74 69 | 6e 69 74 28 29 3b 0a 58 |in_fonti|nit();.X|
|000014e0| 09 62 75 69 6c 74 69 6e | 5f 70 61 74 69 6e 69 74 |.builtin|_patinit|
|000014f0| 28 29 3b 0a 58 7d 0a 58 | 66 6f 6e 74 69 6e 69 74 |();.X}.X|fontinit|
|00001500| 28 29 0a 58 7b 0a 58 09 | 69 6e 74 20 69 2c 20 6a |().X{.X.|int i, j|
|00001510| 2c 20 2a 59 70 74 72 3b | 0a 58 09 73 74 72 75 63 |, *Yptr;|.X.struc|
|00001520| 74 20 48 50 46 4f 4e 54 | 20 2a 68 66 3b 0a 58 09 |t HPFONT| *hf;.X.|
|00001530| 73 74 72 75 63 74 20 43 | 48 41 52 5f 42 49 54 4d |struct C|HAR_BITM|
|00001540| 41 50 20 2a 63 66 3b 0a | 58 09 64 6f 75 62 6c 65 |AP *cf;.|X.double|
|00001550| 20 78 3b 0a 58 0a 58 09 | 66 6f 72 20 28 6a 3d 30 | x;.X.X.|for (j=0|
|00001560| 3b 20 6a 3c 4d 41 58 5f | 46 4f 4e 54 3b 20 6a 2b |; j<MAX_|FONT; j+|
|00001570| 2b 29 0a 58 09 7b 0a 58 | 09 09 68 66 20 3d 20 26 |+).X.{.X|..hf = &|
|00001580| 68 70 66 6f 6e 74 73 5b | 6a 5d 3b 0a 58 09 09 68 |hpfonts[|j];.X..h|
|00001590| 66 2d 3e 66 49 44 20 3d | 20 68 66 2d 3e 70 72 6f |f->fID =| hf->pro|
|000015a0| 70 5f 73 70 61 63 65 64 | 20 3d 20 68 66 2d 3e 72 |p_spaced| = hf->r|
|000015b0| 65 61 6c 5f 73 70 61 63 | 65 64 20 3d 20 2d 31 3b |eal_spac|ed = -1;|
|000015c0| 0a 58 09 09 68 66 2d 3e | 70 65 72 6d 74 79 70 65 |.X..hf->|permtype|
|000015d0| 20 3d 20 68 66 2d 3e 70 | 72 69 6d 74 79 70 65 20 | = hf->p|rimtype |
|000015e0| 3d 20 2d 31 3b 0a 58 09 | 09 68 66 2d 3e 73 70 61 |= -1;.X.|.hf->spa|
|000015f0| 63 65 5f 6c 65 6e 20 3d | 20 2d 31 2e 30 3b 0a 58 |ce_len =| -1.0;.X|
|00001600| 09 09 68 66 2d 3e 72 65 | 61 6c 5f 73 70 61 63 65 |..hf->re|al_space|
|00001610| 5f 6c 65 6e 20 3d 20 2d | 31 2e 30 3b 0a 58 09 09 |_len = -|1.0;.X..|
|00001620| 68 66 2d 3e 61 63 74 69 | 76 65 20 3d 20 68 66 2d |hf->acti|ve = hf-|
|00001630| 3e 62 75 69 6c 74 69 6e | 20 3d 20 46 41 4c 53 45 |>builtin| = FALSE|
|00001640| 3b 0a 58 09 09 66 6f 72 | 20 28 69 3d 30 3b 20 69 |;.X..for| (i=0; i|
|00001650| 3c 32 35 36 3b 20 69 2b | 2b 29 09 2f 2a 20 6a 75 |<256; i+|+)./* ju|
|00001660| 73 74 20 74 6f 20 62 65 | 20 73 61 66 65 20 2a 2f |st to be| safe */|
|00001670| 0a 58 09 09 7b 0a 58 09 | 09 09 63 66 20 3d 20 26 |.X..{.X.|..cf = &|
|00001680| 68 66 2d 3e 63 68 61 72 | 73 5b 69 5d 3b 0a 58 09 |hf->char|s[i];.X.|
|00001690| 09 09 63 66 2d 3e 43 48 | 20 3d 20 28 75 63 68 61 |..cf->CH| = (ucha|
|000016a0| 72 20 2a 2a 29 4e 55 4c | 4c 3b 0a 58 09 09 09 63 |r **)NUL|L;.X...c|
|000016b0| 66 2d 3e 6c 65 6e 20 3d | 20 63 66 2d 3e 68 69 74 |f->len =| cf->hit|
|000016c0| 65 20 3d 20 63 66 2d 3e | 63 6c 65 6e 20 3d 20 63 |e = cf->|clen = c|
|000016d0| 66 2d 3e 74 6f 66 66 73 | 20 3d 20 63 66 2d 3e 6c |f->toffs| = cf->l|
|000016e0| 6f 66 66 73 20 3d 20 30 | 3b 0a 58 09 09 7d 0a 58 |offs = 0|;.X..}.X|
|000016f0| 09 7d 0a 58 09 68 66 20 | 3d 20 26 68 70 66 6f 6e |.}.X.hf |= &hpfon|
|00001700| 74 73 5b 4c 49 4e 45 50 | 52 49 4e 54 45 52 5d 3b |ts[LINEP|RINTER];|
|00001710| 0a 58 09 68 66 2d 3e 70 | 72 6f 70 5f 73 70 61 63 |.X.hf->p|rop_spac|
|00001720| 65 64 20 3d 20 68 66 2d | 3e 72 65 61 6c 5f 73 70 |ed = hf-|>real_sp|
|00001730| 61 63 65 64 20 3d 20 30 | 3b 0a 58 09 68 66 2d 3e |aced = 0|;.X.hf->|
|00001740| 73 70 61 63 65 5f 6c 65 | 6e 20 3d 20 31 38 3b 0a |space_le|n = 18;.|
|00001750| 58 09 68 66 2d 3e 72 65 | 61 6c 5f 73 70 61 63 65 |X.hf->re|al_space|
|00001760| 5f 6c 65 6e 20 3d 20 31 | 38 3b 0a 58 09 68 66 2d |_len = 1|8;.X.hf-|
|00001770| 3e 61 63 74 69 76 65 20 | 3d 20 68 66 2d 3e 62 75 |>active |= hf->bu|
|00001780| 69 6c 74 69 6e 20 3d 20 | 54 52 55 45 3b 0a 58 0a |iltin = |TRUE;.X.|
|00001790| 58 09 68 66 20 3d 20 26 | 68 70 66 6f 6e 74 73 5b |X.hf = &|hpfonts[|
|000017a0| 43 4f 55 52 49 45 52 5d | 3b 0a 58 09 68 66 2d 3e |COURIER]|;.X.hf->|
|000017b0| 70 72 6f 70 5f 73 70 61 | 63 65 64 20 3d 20 68 66 |prop_spa|ced = hf|
|000017c0| 2d 3e 72 65 61 6c 5f 73 | 70 61 63 65 64 20 3d 20 |->real_s|paced = |
|000017d0| 30 3b 0a 58 09 68 66 2d | 3e 73 70 61 63 65 5f 6c |0;.X.hf-|>space_l|
|000017e0| 65 6e 20 3d 20 33 30 3b | 0a 58 09 68 66 2d 3e 72 |en = 30;|.X.hf->r|
|000017f0| 65 61 6c 5f 73 70 61 63 | 65 5f 6c 65 6e 20 3d 20 |eal_spac|e_len = |
|00001800| 33 30 3b 0a 58 09 68 66 | 2d 3e 61 63 74 69 76 65 |30;.X.hf|->active|
|00001810| 20 3d 20 68 66 2d 3e 62 | 75 69 6c 74 69 6e 20 3d | = hf->b|uiltin =|
|00001820| 20 54 52 55 45 3b 0a 58 | 0a 58 09 69 66 20 28 28 | TRUE;.X|.X.if ((|
|00001830| 28 69 6e 74 29 78 64 70 | 69 20 3d 3d 20 33 30 30 |(int)xdp|i == 300|
|00001840| 29 20 26 26 20 28 28 69 | 6e 74 29 79 64 70 69 20 |) && ((i|nt)ydpi |
|00001850| 3d 3d 20 33 30 30 29 29 | 0a 58 09 7b 0a 58 09 09 |== 300))|.X.{.X..|
|00001860| 59 70 74 72 20 3d 20 78 | 73 63 61 6c 65 3b 0a 58 |Yptr = x|scale;.X|
|00001870| 09 09 66 6f 72 20 28 69 | 3d 30 3b 20 69 3c 4d 41 |..for (i|=0; i<MA|
|00001880| 58 5f 57 49 44 54 48 3b | 20 69 2b 2b 29 0a 58 09 |X_WIDTH;| i++).X.|
|00001890| 09 09 2a 59 70 74 72 2b | 2b 20 3d 20 69 3b 0a 58 |..*Yptr+|+ = i;.X|
|000018a0| 09 09 59 70 74 72 20 3d | 20 79 73 63 61 6c 65 3b |..Yptr =| yscale;|
|000018b0| 0a 58 09 09 66 6f 72 20 | 28 69 3d 30 3b 20 69 3c |.X..for |(i=0; i<|
|000018c0| 4d 41 58 5f 48 49 54 45 | 3b 20 69 2b 2b 29 0a 58 |MAX_HITE|; i++).X|
|000018d0| 09 09 09 2a 59 70 74 72 | 2b 2b 20 3d 20 69 3b 0a |...*Yptr|++ = i;.|
|000018e0| 58 09 7d 0a 58 09 65 6c | 73 65 0a 58 09 7b 0a 58 |X.}.X.el|se.X.{.X|
|000018f0| 09 09 59 70 74 72 20 3d | 20 26 78 73 63 61 6c 65 |..Yptr =| &xscale|
|00001900| 5b 31 5d 3b 0a 58 09 09 | 66 6f 72 20 28 69 3d 31 |[1];.X..|for (i=1|
|00001910| 3b 20 69 3c 4d 41 58 5f | 57 49 44 54 48 3b 20 69 |; i<MAX_|WIDTH; i|
|00001920| 2b 2b 29 0a 58 09 09 7b | 0a 58 09 09 09 78 20 3d |++).X..{|.X...x =|
|00001930| 20 2e 35 20 2b 20 28 28 | 64 6f 75 62 6c 65 29 69 | .5 + ((|double)i|
|00001940| 20 2a 20 78 64 70 69 29 | 3b 0a 58 09 09 09 78 20 | * xdpi)|;.X...x |
|00001950| 2f 3d 20 33 30 30 2e 30 | 3b 0a 58 09 09 09 2a 59 |/= 300.0|;.X...*Y|
|00001960| 70 74 72 2b 2b 20 3d 20 | 28 69 6e 74 29 78 3b 0a |ptr++ = |(int)x;.|
|00001970| 58 09 09 7d 0a 58 09 09 | 59 70 74 72 20 3d 20 26 |X..}.X..|Yptr = &|
|00001980| 79 73 63 61 6c 65 5b 31 | 5d 3b 0a 58 09 09 66 6f |yscale[1|];.X..fo|
|00001990| 72 20 28 69 3d 31 3b 20 | 69 3c 4d 41 58 5f 48 49 |r (i=1; |i<MAX_HI|
|000019a0| 54 45 3b 20 69 2b 2b 29 | 0a 58 09 09 7b 0a 58 09 |TE; i++)|.X..{.X.|
|000019b0| 09 09 78 20 3d 20 2e 35 | 20 2b 20 28 28 64 6f 75 |..x = .5| + ((dou|
|000019c0| 62 6c 65 29 69 20 2a 20 | 79 64 70 69 29 3b 0a 58 |ble)i * |ydpi);.X|
|000019d0| 09 09 09 78 20 2f 3d 20 | 33 30 30 2e 30 3b 0a 58 |...x /= |300.0;.X|
|000019e0| 09 09 09 2a 59 70 74 72 | 2b 2b 20 3d 20 28 69 6e |...*Yptr|++ = (in|
|000019f0| 74 29 78 3b 0a 58 09 09 | 7d 0a 58 09 7d 0a 58 7d |t)x;.X..|}.X.}.X}|
|00001a00| 0a 58 78 79 69 6e 69 74 | 28 29 0a 58 7b 0a 58 09 |.Xxyinit|().X{.X.|
|00001a10| 42 4d 59 20 3d 20 6f 72 | 67 65 6e 76 2e 74 6f 70 |BMY = or|genv.top|
|00001a20| 5f 64 6f 74 73 3b 0a 58 | 09 42 4d 58 20 3d 20 30 |_dots;.X|.BMX = 0|
|00001a30| 2e 30 3b 0a 58 09 47 52 | 41 50 48 58 20 3d 20 30 |.0;.X.GR|APHX = 0|
|00001a40| 2e 30 3b 0a 58 09 47 52 | 41 50 48 59 20 3d 20 30 |.0;.X.GR|APHY = 0|
|00001a50| 2e 30 3b 0a 58 7d 0a 58 | 6f 76 6c 79 69 6e 69 74 |.0;.X}.X|ovlyinit|
|00001a60| 28 29 0a 58 7b 0a 58 09 | 6f 76 6c 79 2e 6f 76 6c |().X{.X.|ovly.ovl|
|00001a70| 79 5f 65 6e 76 20 3d 20 | 6f 72 67 65 6e 76 3b 0a |y_env = |orgenv;.|
|00001a80| 58 09 6f 76 6c 79 2e 73 | 66 6f 6e 74 20 3d 20 73 |X.ovly.s|font = s|
|00001a90| 66 6f 6e 74 3b 0a 58 09 | 6f 76 6c 79 2e 42 4d 58 |font;.X.|ovly.BMX|
|00001aa0| 20 3d 20 42 4d 58 3b 0a | 58 09 6f 76 6c 79 2e 42 | = BMX;.|X.ovly.B|
|00001ab0| 4d 59 20 3d 20 42 4d 59 | 3b 0a 58 09 6f 76 6c 79 |MY = BMY|;.X.ovly|
|00001ac0| 2e 47 52 41 50 48 58 20 | 3d 20 47 52 41 50 48 58 |.GRAPHX |= GRAPHX|
|00001ad0| 3b 0a 58 09 6f 76 6c 79 | 2e 47 52 41 50 48 59 20 |;.X.ovly|.GRAPHY |
|00001ae0| 3d 20 47 52 41 50 48 59 | 3b 0a 58 09 6f 76 6c 79 |= GRAPHY|;.X.ovly|
|00001af0| 2e 6c 70 69 20 3d 20 6c | 70 69 3b 0a 58 7d 0a 58 |.lpi = l|pi;.X}.X|
|00001b00| 62 75 69 6c 74 69 6e 5f | 66 6f 6e 74 69 6e 69 74 |builtin_|fontinit|
|00001b10| 28 29 0a 58 7b 0a 58 09 | 69 6e 74 20 69 3b 0a 58 |().X{.X.|int i;.X|
|00001b20| 0a 58 09 66 6f 72 20 28 | 69 3d 30 3b 20 69 3c 4d |.X.for (|i=0; i<M|
|00001b30| 41 58 5f 42 55 49 4c 54 | 49 4e 3b 20 69 2b 2b 29 |AX_BUILT|IN; i++)|
|00001b40| 0a 58 09 09 69 66 20 28 | 42 75 69 6c 74 69 6e 46 |.X..if (|BuiltinF|
|00001b50| 6f 6e 74 73 5b 69 5d 20 | 26 26 20 2a 42 75 69 6c |onts[i] |&& *Buil|
|00001b60| 74 69 6e 46 6f 6e 74 73 | 5b 69 5d 29 0a 58 09 09 |tinFonts|[i]).X..|
|00001b70| 7b 0a 58 09 09 09 62 75 | 69 6c 74 69 6e 20 3d 20 |{.X...bu|iltin = |
|00001b80| 69 3b 0a 58 09 09 09 6c | 6f 61 64 62 75 69 6c 74 |i;.X...l|oadbuilt|
|00001b90| 69 6e 28 42 75 69 6c 74 | 69 6e 46 6f 6e 74 73 5b |in(Built|inFonts[|
|00001ba0| 69 5d 29 3b 0a 58 09 09 | 7d 0a 58 09 62 75 69 6c |i]);.X..|}.X.buil|
|00001bb0| 74 69 6e 20 3d 20 2d 31 | 3b 0a 58 09 63 75 72 65 |tin = -1|;.X.cure|
|00001bc0| 6e 76 2d 3e 63 75 72 5f | 66 6e 74 20 3d 20 43 4f |nv->cur_|fnt = CO|
|00001bd0| 55 52 49 45 52 3b 0a 58 | 7d 0a 58 62 75 69 6c 74 |URIER;.X|}.Xbuilt|
|00001be0| 69 6e 5f 70 61 74 69 6e | 69 74 28 29 0a 58 7b 0a |in_patin|it().X{.|
|00001bf0| 58 09 69 6e 74 20 69 2c | 6a 2c 6b 2c 78 2c 79 3b |X.int i,|j,k,x,y;|
|00001c00| 0a 58 09 46 49 4c 45 20 | 2a 66 70 3b 0a 58 09 63 |.X.FILE |*fp;.X.c|
|00001c10| 68 61 72 20 62 75 66 5b | 32 35 36 5d 2c 20 66 6e |har buf[|256], fn|
|00001c20| 61 6d 65 5b 32 35 36 5d | 3b 0a 58 09 73 74 72 75 |ame[256]|;.X.stru|
|00001c30| 63 74 20 50 41 54 20 2a | 70 74 72 3b 0a 58 0a 58 |ct PAT *|ptr;.X.X|
|00001c40| 09 66 6f 72 20 28 6b 3d | 30 3b 20 6b 3c 4d 41 58 |.for (k=|0; k<MAX|
|00001c50| 5f 50 41 54 3b 20 6b 2b | 2b 29 0a 58 09 7b 0a 58 |_PAT; k+|+).X.{.X|
|00001c60| 23 69 66 64 65 66 09 46 | 41 58 50 41 4b 0a 58 09 |#ifdef.F|AXPAK.X.|
|00001c70| 09 73 70 72 69 6e 74 66 | 28 66 6e 61 6d 65 2c 20 |.sprintf|(fname, |
|00001c80| 22 25 73 2f 68 70 6c 69 | 62 2f 25 73 22 2c 20 66 |"%s/hpli|b/%s", f|
|00001c90| 63 2e 66 61 78 6c 69 62 | 2c 20 42 75 69 6c 74 69 |c.faxlib|, Builti|
|00001ca0| 6e 50 61 74 73 5b 6b 5d | 29 3b 0a 58 23 65 6c 73 |nPats[k]|);.X#els|
|00001cb0| 65 0a 58 09 09 73 70 72 | 69 6e 74 66 28 66 6e 61 |e.X..spr|intf(fna|
|00001cc0| 6d 65 2c 20 42 55 49 4c | 54 49 4e 44 49 52 2c 20 |me, BUIL|TINDIR, |
|00001cd0| 4c 49 42 44 49 52 2c 20 | 42 75 69 6c 74 69 6e 50 |LIBDIR, |BuiltinP|
|00001ce0| 61 74 73 5b 6b 5d 29 3b | 0a 58 23 65 6e 64 69 66 |ats[k]);|.X#endif|
|00001cf0| 0a 58 09 09 69 66 20 28 | 28 66 70 20 3d 20 66 6f |.X..if (|(fp = fo|
|00001d00| 70 65 6e 28 66 6e 61 6d | 65 2c 20 22 72 22 29 29 |pen(fnam|e, "r"))|
|00001d10| 20 3d 3d 20 4e 55 4c 4c | 29 0a 58 09 09 09 64 69 | == NULL|).X...di|
|00001d20| 65 28 22 63 61 6e 27 74 | 20 6f 70 65 6e 20 25 73 |e("can't| open %s|
|00001d30| 5c 6e 22 2c 66 6e 61 6d | 65 29 3b 0a 58 09 09 69 |\n",fnam|e);.X..i|
|00001d40| 66 20 28 66 67 65 74 73 | 28 62 75 66 2c 20 38 30 |f (fgets|(buf, 80|
|00001d50| 2c 20 66 70 29 20 3d 3d | 20 4e 55 4c 4c 20 7c 7c |, fp) ==| NULL |||
|00001d60| 20 73 74 72 6e 63 6d 70 | 28 62 75 66 2c 20 22 50 | strncmp|(buf, "P|
|00001d70| 34 22 2c 20 32 29 29 0a | 58 09 09 09 64 69 65 28 |4", 2)).|X...die(|
|00001d80| 22 25 73 20 64 6f 65 73 | 6e 27 74 20 6c 6f 6f 6b |"%s does|n't look|
|00001d90| 20 6c 69 6b 65 20 61 20 | 70 62 6d 20 66 69 6c 65 | like a |pbm file|
|00001da0| 5c 6e 22 2c 66 6e 61 6d | 65 29 3b 0a 58 09 09 66 |\n",fnam|e);.X..f|
|00001db0| 6f 72 20 28 3b 3b 29 0a | 58 09 09 7b 0a 58 09 09 |or (;;).|X..{.X..|
|00001dc0| 09 69 66 20 28 66 67 65 | 74 73 28 62 75 66 2c 20 |.if (fge|ts(buf, |
|00001dd0| 32 35 36 2c 20 66 70 29 | 20 3d 3d 20 4e 55 4c 4c |256, fp)| == NULL|
|00001de0| 29 0a 58 09 09 09 09 64 | 69 65 28 22 41 3a 20 25 |).X....d|ie("A: %|
|00001df0| 73 20 64 6f 65 73 6e 27 | 74 20 6c 6f 6f 6b 20 6c |s doesn'|t look l|
|00001e00| 69 6b 65 20 61 20 70 62 | 6d 20 66 69 6c 65 5c 6e |ike a pb|m file\n|
|00001e10| 22 2c 66 6e 61 6d 65 29 | 3b 0a 58 09 09 09 69 66 |",fname)|;.X...if|
|00001e20| 20 28 62 75 66 5b 30 5d | 20 21 3d 20 27 23 27 29 | (buf[0]| != '#')|
|00001e30| 0a 58 09 09 09 7b 0a 58 | 09 09 09 09 69 66 20 28 |.X...{.X|....if (|
|00001e40| 73 73 63 61 6e 66 28 62 | 75 66 2c 20 22 25 64 20 |sscanf(b|uf, "%d |
|00001e50| 25 64 22 2c 26 78 2c 26 | 79 29 20 21 3d 20 32 29 |%d",&x,&|y) != 2)|
|00001e60| 0a 58 09 09 09 09 09 64 | 69 65 28 22 42 3a 20 25 |.X.....d|ie("B: %|
|00001e70| 73 20 64 6f 65 73 6e 27 | 74 20 6c 6f 6f 6b 20 6c |s doesn'|t look l|
|00001e80| 69 6b 65 20 61 20 70 62 | 6d 20 66 69 6c 65 5c 6e |ike a pb|m file\n|
|00001e90| 22 2c 66 6e 61 6d 65 29 | 3b 0a 58 09 09 09 09 62 |",fname)|;.X....b|
|00001ea0| 72 65 61 6b 3b 0a 58 09 | 09 09 7d 0a 58 09 09 7d |reak;.X.|..}.X..}|
|00001eb0| 0a 58 09 09 69 66 20 28 | 21 28 78 20 25 20 38 29 |.X..if (|!(x % 8)|
|00001ec0| 29 0a 58 09 09 09 78 20 | 2f 3d 20 38 3b 0a 58 09 |).X...x |/= 8;.X.|
|00001ed0| 09 65 6c 73 65 20 78 20 | 3d 20 31 2b 28 78 2f 38 |.else x |= 1+(x/8|
|00001ee0| 29 3b 0a 58 09 09 69 66 | 20 28 78 20 3c 20 34 20 |);.X..if| (x < 4 |
|00001ef0| 7c 7c 20 79 20 3c 20 33 | 32 29 0a 58 09 09 09 64 ||| y < 3|2).X...d|
|00001f00| 69 65 28 22 25 73 20 69 | 73 20 6e 6f 74 20 61 20 |ie("%s i|s not a |
|00001f10| 6b 6e 6f 77 6e 20 70 61 | 74 74 65 72 6e 5c 6e 22 |known pa|ttern\n"|
|00001f20| 2c 66 6e 61 6d 65 29 3b | 0a 58 0a 58 20 09 09 66 |,fname);|.X.X ..f|
|00001f30| 6f 72 20 28 6a 3d 30 3b | 20 6a 3c 33 31 3b 20 6a |or (j=0;| j<31; j|
|00001f40| 2b 2b 29 0a 58 09 09 7b | 0a 58 09 09 09 66 6f 72 |++).X..{|.X...for|
|00001f50| 20 28 69 3d 30 3b 20 69 | 3c 33 3b 20 69 2b 2b 29 | (i=0; i|<3; i++)|
|00001f60| 0a 58 09 09 09 7b 0a 58 | 09 09 09 09 70 74 72 20 |.X...{.X|....ptr |
|00001f70| 3d 20 26 70 61 74 5b 6b | 5d 5b 6a 5d 5b 69 5d 3b |= &pat[k|][j][i];|
|00001f80| 0a 58 09 09 09 09 70 74 | 72 2d 3e 70 20 3d 20 67 |.X....pt|r->p = g|
|00001f90| 65 74 63 28 66 70 29 3b | 0a 58 09 09 09 09 70 74 |etc(fp);|.X....pt|
|00001fa0| 72 2d 3e 78 6e 65 78 74 | 20 3d 20 26 70 61 74 5b |r->xnext| = &pat[|
|00001fb0| 6b 5d 5b 6a 5d 5b 69 2b | 31 5d 3b 0a 58 09 09 09 |k][j][i+|1];.X...|
|00001fc0| 09 70 74 72 2d 3e 79 6e | 65 78 74 20 3d 20 26 70 |.ptr->yn|ext = &p|
|00001fd0| 61 74 5b 6b 5d 5b 6a 2b | 31 5d 5b 69 5d 3b 0a 58 |at[k][j+|1][i];.X|
|00001fe0| 09 09 09 7d 0a 58 09 09 | 09 70 74 72 20 3d 20 26 |...}.X..|.ptr = &|
|00001ff0| 70 61 74 5b 6b 5d 5b 6a | 5d 5b 33 5d 3b 0a 58 09 |pat[k][j|][3];.X.|
|00002000| 09 09 70 74 72 2d 3e 70 | 20 3d 20 67 65 74 63 28 |..ptr->p| = getc(|
|00002010| 66 70 29 3b 0a 58 09 09 | 09 70 74 72 2d 3e 78 6e |fp);.X..|.ptr->xn|
|00002020| 65 78 74 20 3d 20 26 70 | 61 74 5b 6b 5d 5b 6a 5d |ext = &p|at[k][j]|
|00002030| 5b 30 5d 3b 0a 58 09 09 | 09 70 74 72 2d 3e 79 6e |[0];.X..|.ptr->yn|
|00002040| 65 78 74 20 3d 20 26 70 | 61 74 5b 6b 5d 5b 6a 2b |ext = &p|at[k][j+|
|00002050| 31 5d 5b 33 5d 3b 0a 58 | 09 09 7d 0a 58 09 09 66 |1][3];.X|..}.X..f|
|00002060| 6f 72 20 28 69 3d 30 3b | 20 69 3c 33 3b 20 69 2b |or (i=0;| i<3; i+|
|00002070| 2b 29 0a 58 09 09 7b 0a | 58 09 09 09 70 74 72 20 |+).X..{.|X...ptr |
|00002080| 3d 20 26 70 61 74 5b 6b | 5d 5b 6a 5d 5b 69 5d 3b |= &pat[k|][j][i];|
|00002090| 0a 58 09 09 09 70 74 72 | 2d 3e 70 20 3d 20 67 65 |.X...ptr|->p = ge|
|000020a0| 74 63 28 66 70 29 3b 0a | 58 09 09 09 70 74 72 2d |tc(fp);.|X...ptr-|
|000020b0| 3e 78 6e 65 78 74 20 3d | 20 26 70 61 74 5b 6b 5d |>xnext =| &pat[k]|
|000020c0| 5b 6a 5d 5b 69 2b 31 5d | 3b 0a 58 09 09 09 70 74 |[j][i+1]|;.X...pt|
|000020d0| 72 2d 3e 79 6e 65 78 74 | 20 3d 20 26 70 61 74 5b |r->ynext| = &pat[|
|000020e0| 6b 5d 5b 30 5d 5b 69 5d | 3b 0a 58 09 09 7d 0a 58 |k][0][i]|;.X..}.X|
|000020f0| 09 09 70 74 72 20 3d 20 | 26 70 61 74 5b 6b 5d 5b |..ptr = |&pat[k][|
|00002100| 6a 5d 5b 33 5d 3b 0a 58 | 09 09 70 74 72 2d 3e 70 |j][3];.X|..ptr->p|
|00002110| 20 3d 20 67 65 74 63 28 | 66 70 29 3b 0a 58 09 09 | = getc(|fp);.X..|
|00002120| 70 74 72 2d 3e 78 6e 65 | 78 74 20 3d 20 26 70 61 |ptr->xne|xt = &pa|
|00002130| 74 5b 6b 5d 5b 6a 5d 5b | 30 5d 3b 0a 58 09 09 70 |t[k][j][|0];.X..p|
|00002140| 74 72 2d 3e 79 6e 65 78 | 74 20 3d 20 26 70 61 74 |tr->ynex|t = &pat|
|00002150| 5b 6b 5d 5b 30 5d 5b 33 | 5d 3b 0a 58 09 09 66 63 |[k][0][3|];.X..fc|
|00002160| 6c 6f 73 65 28 66 70 29 | 3b 0a 58 09 7d 0a 58 7d |lose(fp)|;.X.}.X}|
|00002170| 0a 58 6d 61 6b 65 5f 62 | 69 74 6d 61 70 28 78 2c |.Xmake_b|itmap(x,|
|00002180| 79 29 0a 58 69 6e 74 20 | 78 2c 79 3b 0a 58 7b 0a |y).Xint |x,y;.X{.|
|00002190| 58 09 69 6e 74 20 69 2c | 20 6f 72 67 78 2c 20 78 |X.int i,| orgx, x|
|000021a0| 61 2c 20 79 61 3b 0a 58 | 0a 58 09 69 66 20 28 78 |a, ya;.X|.X.if (x|
|000021b0| 20 3e 20 4d 41 58 5f 57 | 49 44 54 48 20 7c 7c 20 | > MAX_W|IDTH || |
|000021c0| 79 20 3e 20 4d 41 58 5f | 48 49 54 45 29 0a 58 09 |y > MAX_|HITE).X.|
|000021d0| 09 64 69 65 28 22 72 65 | 71 75 65 73 74 65 64 20 |.die("re|quested |
|000021e0| 62 69 74 6d 61 70 20 74 | 6f 6f 20 6c 61 72 67 65 |bitmap t|oo large|
|000021f0| 5c 6e 22 29 3b 0a 58 0a | 58 09 6f 72 67 78 20 3d |\n");.X.|X.orgx =|
|00002200| 20 78 3b 0a 58 09 69 66 | 20 28 78 25 33 32 29 09 | x;.X.if| (x%32).|
|00002210| 09 09 2f 2a 20 73 65 74 | 20 74 6f 20 33 32 62 69 |../* set| to 32bi|
|00002220| 74 2f 34 62 79 74 65 20 | 62 6f 75 6e 64 61 72 79 |t/4byte |boundary|
|00002230| 20 2a 2f 0a 58 09 09 78 | 20 3d 20 78 2b 33 32 2d | */.X..x| = x+32-|
|00002240| 28 78 25 33 32 29 3b 0a | 58 09 78 20 2f 3d 20 38 |(x%32);.|X.x /= 8|
|00002250| 3b 0a 58 0a 58 09 78 61 | 20 3d 20 78 73 63 61 6c |;.X.X.xa| = xscal|
|00002260| 65 5b 78 5d 3b 0a 58 09 | 79 61 20 3d 20 79 73 63 |e[x];.X.|ya = ysc|
|00002270| 61 6c 65 5b 79 5d 3b 0a | 58 0a 58 09 66 6f 72 20 |ale[y];.|X.X.for |
|00002280| 28 69 3d 30 3b 20 69 3c | 79 61 3b 20 69 2b 2b 29 |(i=0; i<|ya; i++)|
|00002290| 0a 58 09 09 69 66 20 28 | 28 62 6c 6f 63 6b 5b 69 |.X..if (|(block[i|
|000022a0| 5d 20 3d 20 28 75 63 68 | 61 72 20 2a 29 63 61 6c |] = (uch|ar *)cal|
|000022b0| 6c 6f 63 28 78 61 2c 73 | 69 7a 65 6f 66 28 75 63 |loc(xa,s|izeof(uc|
|000022c0| 68 61 72 29 29 29 20 3d | 3d 20 4e 55 4c 4c 29 0a |har))) =|= NULL).|
|000022d0| 58 09 09 09 64 69 65 28 | 22 6e 6f 74 20 65 6e 6f |X...die(|"not eno|
|000022e0| 75 67 68 20 6d 65 6d 6f | 72 79 5c 6e 22 29 3b 0a |ugh memo|ry\n");.|
|000022f0| 58 09 66 6f 72 20 28 3b | 20 69 3c 4d 41 58 5f 48 |X.for (;| i<MAX_H|
|00002300| 49 54 45 3b 20 69 2b 2b | 29 0a 58 09 09 62 6c 6f |ITE; i++|).X..blo|
|00002310| 63 6b 5b 69 5d 20 3d 20 | 4e 55 4c 4c 3b 0a 58 0a |ck[i] = |NULL;.X.|
|00002320| 58 09 6d 61 78 5f 6c 6e | 20 3d 20 79 2d 31 3b 0a |X.max_ln| = y-1;.|
|00002330| 58 09 6d 61 78 5f 63 6f | 6c 20 3d 20 28 6f 72 67 |X.max_co|l = (org|
|00002340| 78 29 2d 31 3b 0a 58 09 | 6e 6f 5f 62 69 74 6d 61 |x)-1;.X.|no_bitma|
|00002350| 70 20 3d 20 46 41 4c 53 | 45 3b 0a 58 7d 0a 58 0a |p = FALS|E;.X}.X.|
|00002360| 58 65 6e 64 5f 62 69 74 | 6d 61 70 28 74 6e 61 6d |Xend_bit|map(tnam|
|00002370| 65 29 0a 58 63 68 61 72 | 20 2a 74 6e 61 6d 65 3b |e).Xchar| *tname;|
|00002380| 0a 58 7b 0a 58 09 69 6e | 74 20 69 2c 20 6a 2c 20 |.X{.X.in|t i, j, |
|00002390| 78 6d 61 78 3b 0a 58 09 | 46 49 4c 45 20 2a 66 70 |xmax;.X.|FILE *fp|
|000023a0| 3b 0a 58 0a 58 09 69 66 | 20 28 28 66 70 20 3d 20 |;.X.X.if| ((fp = |
|000023b0| 66 6f 70 65 6e 28 74 6e | 61 6d 65 2c 20 22 77 22 |fopen(tn|ame, "w"|
|000023c0| 29 29 20 3d 3d 20 4e 55 | 4c 4c 29 0a 58 09 09 64 |)) == NU|LL).X..d|
|000023d0| 69 65 28 22 63 61 6e 6e | 6f 74 20 63 72 65 61 74 |ie("cann|ot creat|
|000023e0| 65 20 70 62 6d 20 66 69 | 6c 65 20 25 73 5c 6e 22 |e pbm fi|le %s\n"|
|000023f0| 2c 74 6e 61 6d 65 29 3b | 0a 58 0a 58 23 69 66 6e |,tname);|.X.X#ifn|
|00002400| 64 65 66 09 54 52 49 4d | 50 41 47 45 0a 58 09 79 |def.TRIM|PAGE.X.y|
|00002410| 6d 61 78 5f 75 73 65 64 | 20 3d 20 79 73 63 61 6c |max_used| = yscal|
|00002420| 65 5b 6d 61 78 5f 6c 6e | 2d 31 5d 3b 0a 58 09 78 |e[max_ln|-1];.X.x|
|00002430| 6d 61 78 20 3d 20 78 73 | 63 61 6c 65 5b 28 6d 61 |max = xs|cale[(ma|
|00002440| 78 5f 63 6f 6c 2b 38 29 | 2f 38 5d 3b 0a 58 23 65 |x_col+8)|/8];.X#e|
|00002450| 6c 73 65 0a 58 09 79 6d | 61 78 5f 75 73 65 64 20 |lse.X.ym|ax_used |
|00002460| 3d 20 6d 69 6e 28 79 6d | 61 78 5f 75 73 65 64 2b |= min(ym|ax_used+|
|00002470| 34 2c 20 4d 41 58 5f 48 | 49 54 45 29 3b 0a 58 09 |4, MAX_H|ITE);.X.|
|00002480| 78 6d 61 78 20 3d 20 28 | 38 2b 78 6d 61 78 5f 75 |xmax = (|8+xmax_u|
|00002490| 73 65 64 29 2f 38 3b 0a | 58 23 65 6e 64 69 66 0a |sed)/8;.|X#endif.|
|000024a0| 58 09 69 66 20 28 66 70 | 72 69 6e 74 66 28 66 70 |X.if (fp|rintf(fp|
|000024b0| 2c 22 50 34 5c 6e 25 64 | 20 25 64 5c 6e 22 2c 78 |,"P4\n%d| %d\n",x|
|000024c0| 6d 61 78 2a 38 2c 79 6d | 61 78 5f 75 73 65 64 29 |max*8,ym|ax_used)|
|000024d0| 20 3d 3d 20 45 4f 46 29 | 0a 58 09 09 64 69 65 28 | == EOF)|.X..die(|
|000024e0| 22 63 61 6e 27 74 20 69 | 6e 69 74 20 70 62 6d 66 |"can't i|nit pbmf|
|000024f0| 69 6c 65 20 25 73 5c 6e | 22 2c 74 6e 61 6d 65 29 |ile %s\n|",tname)|
|00002500| 3b 0a 58 0a 58 09 66 6f | 72 20 28 69 3d 30 3b 20 |;.X.X.fo|r (i=0; |
|00002510| 69 3c 79 6d 61 78 5f 75 | 73 65 64 3b 20 69 2b 2b |i<ymax_u|sed; i++|
|00002520| 29 0a 58 09 7b 0a 58 09 | 09 69 66 20 28 28 6a 20 |).X.{.X.|.if ((j |
|00002530| 3d 20 66 77 72 69 74 65 | 28 28 63 68 61 72 2a 29 |= fwrite|((char*)|
|00002540| 62 6c 6f 63 6b 5b 69 5d | 2c 20 31 2c 20 78 6d 61 |block[i]|, 1, xma|
|00002550| 78 2c 20 66 70 29 29 20 | 21 3d 20 78 6d 61 78 29 |x, fp)) |!= xmax)|
|00002560| 0a 58 09 09 09 64 69 65 | 28 22 70 72 65 6d 61 74 |.X...die|("premat|
|00002570| 75 72 65 20 45 4f 46 20 | 61 66 74 65 72 20 25 64 |ure EOF |after %d|
|00002580| 20 62 79 74 65 73 20 6f | 66 20 25 64 2c 20 6c 69 | bytes o|f %d, li|
|00002590| 6e 65 20 25 64 20 6f 66 | 20 25 64 5c 6e 22 2c 0a |ne %d of| %d\n",.|
|000025a0| 58 09 09 09 09 6a 2c 78 | 6d 61 78 2c 69 2c 79 6d |X....j,x|max,i,ym|
|000025b0| 61 78 5f 75 73 65 64 29 | 3b 0a 58 09 09 28 76 6f |ax_used)|;.X..(vo|
|000025c0| 69 64 29 6d 65 6d 73 65 | 74 28 28 63 68 61 72 2a |id)memse|t((char*|
|000025d0| 29 62 6c 6f 63 6b 5b 69 | 5d 2c 20 27 5c 30 27 2c |)block[i|], '\0',|
|000025e0| 20 78 6d 61 78 29 3b 0a | 58 09 7d 0a 58 09 66 63 | xmax);.|X.}.X.fc|
|000025f0| 6c 6f 73 65 28 66 70 29 | 3b 0a 58 0a 58 09 79 6d |lose(fp)|;.X.X.ym|
|00002600| 61 78 5f 75 73 65 64 20 | 3d 20 78 6d 61 78 5f 75 |ax_used |= xmax_u|
|00002610| 73 65 64 20 3d 20 30 3b | 0a 58 09 6f 72 67 65 6e |sed = 0;|.X.orgen|
|00002620| 76 2e 74 6f 70 5f 6d 61 | 72 67 69 6e 20 3d 20 6e |v.top_ma|rgin = n|
|00002630| 65 77 5f 74 6f 70 6d 61 | 72 67 69 6e 3b 0a 58 09 |ew_topma|rgin;.X.|
|00002640| 6f 72 67 65 6e 76 2e 74 | 6f 70 5f 64 6f 74 73 20 |orgenv.t|op_dots |
|00002650| 3d 20 6f 72 67 65 6e 76 | 2e 74 6f 70 5f 6d 61 72 |= orgenv|.top_mar|
|00002660| 67 69 6e 2a 6f 72 67 65 | 6e 76 2e 6c 68 69 74 65 |gin*orge|nv.lhite|
|00002670| 3b 0a 58 09 63 75 72 65 | 6e 76 20 3d 20 26 6f 72 |;.X.cure|nv = &or|
|00002680| 67 65 6e 76 3b 0a 58 09 | 64 6f 74 74 65 64 20 3d |genv;.X.|dotted =|
|00002690| 20 46 41 4c 53 45 3b 0a | 58 09 76 69 72 67 69 6e | FALSE;.|X.virgin|
|000026a0| 20 3d 20 54 52 55 45 3b | 0a 58 09 73 74 61 63 6b | = TRUE;|.X.stack|
|000026b0| 70 6f 73 20 3d 20 30 3b | 0a 58 7d 0a 58 0a 58 2f |pos = 0;|.X}.X.X/|
|000026c0| 2a 20 46 4f 4e 54 20 73 | 74 75 66 66 20 2a 2a 2a |* FONT s|tuff ***|
|000026d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000026e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000026f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002700| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 20 2a 2f 0a 58 |********|*** */.X|
|00002710| 73 74 72 75 63 74 20 48 | 50 46 4f 4e 54 20 2a 67 |struct H|PFONT *g|
|00002720| 65 74 63 66 6e 28 29 0a | 58 7b 0a 58 09 73 74 72 |etcfn().|X{.X.str|
|00002730| 75 63 74 20 48 50 46 4f | 4e 54 20 2a 68 70 66 3b |uct HPFO|NT *hpf;|
|00002740| 0a 58 0a 58 09 69 66 20 | 28 63 75 72 65 6e 76 2d |.X.X.if |(curenv-|
|00002750| 3e 63 75 72 5f 66 6e 74 | 20 3c 20 30 20 7c 7c 20 |>cur_fnt| < 0 || |
|00002760| 63 75 72 65 6e 76 2d 3e | 63 75 72 5f 66 6e 74 20 |curenv->|cur_fnt |
|00002770| 3e 3d 20 4d 41 58 5f 46 | 4f 4e 54 29 0a 58 09 09 |>= MAX_F|ONT).X..|
|00002780| 64 69 65 28 22 64 6f 6e | 27 74 20 6b 6e 6f 77 20 |die("don|'t know |
|00002790| 66 6f 6e 74 20 25 64 5c | 6e 22 2c 63 75 72 65 6e |font %d\|n",curen|
|000027a0| 76 2d 3e 63 75 72 5f 66 | 6e 74 29 3b 0a 58 09 68 |v->cur_f|nt);.X.h|
|000027b0| 70 66 20 3d 20 26 68 70 | 66 6f 6e 74 73 5b 63 75 |pf = &hp|fonts[cu|
|000027c0| 72 65 6e 76 2d 3e 63 75 | 72 5f 66 6e 74 5d 3b 0a |renv->cu|r_fnt];.|
|000027d0| 58 09 69 66 20 28 21 68 | 70 66 2d 3e 61 63 74 69 |X.if (!h|pf->acti|
|000027e0| 76 65 29 0a 58 09 09 64 | 69 65 28 22 66 6f 6e 74 |ve).X..d|ie("font|
|000027f0| 20 25 64 20 6e 6f 74 20 | 61 63 74 69 76 65 5c 6e | %d not |active\n|
|00002800| 22 2c 63 75 72 65 6e 76 | 2d 3e 63 75 72 5f 66 6e |",curenv|->cur_fn|
|00002810| 74 29 3b 0a 58 09 63 75 | 72 65 6e 76 2d 3e 63 75 |t);.X.cu|renv->cu|
|00002820| 72 5f 66 49 44 20 3d 20 | 68 70 66 2d 3e 66 49 44 |r_fID = |hpf->fID|
|00002830| 3b 0a 58 09 72 65 74 75 | 72 6e 28 68 70 66 29 3b |;.X.retu|rn(hpf);|
|00002840| 0a 58 7d 0a 58 73 74 72 | 75 63 74 20 48 50 46 4f |.X}.Xstr|uct HPFO|
|00002850| 4e 54 20 2a 66 69 6e 64 | 6c 73 74 69 64 28 29 0a |NT *find|lstid().|
|00002860| 58 7b 0a 58 09 73 74 72 | 75 63 74 20 48 50 46 4f |X{.X.str|uct HPFO|
|00002870| 4e 54 20 2a 68 70 66 3b | 0a 58 09 69 6e 74 20 69 |NT *hpf;|.X.int i|
|00002880| 3b 0a 58 0a 58 09 66 6f | 72 20 28 69 3d 30 3b 20 |;.X.X.fo|r (i=0; |
|00002890| 69 3c 4d 41 58 5f 46 4f | 4e 54 3b 20 69 2b 2b 29 |i<MAX_FO|NT; i++)|
|000028a0| 0a 58 09 7b 0a 58 09 09 | 68 70 66 20 3d 20 26 68 |.X.{.X..|hpf = &h|
|000028b0| 70 66 6f 6e 74 73 5b 69 | 5d 3b 0a 58 09 09 69 66 |pfonts[i|];.X..if|
|000028c0| 20 28 68 70 66 2d 3e 61 | 63 74 69 76 65 20 26 26 | (hpf->a|ctive &&|
|000028d0| 20 68 70 66 2d 3e 66 49 | 44 20 3d 3d 20 6c 61 73 | hpf->fI|D == las|
|000028e0| 74 66 6f 6e 74 69 64 29 | 0a 58 09 09 09 72 65 74 |tfontid)|.X...ret|
|000028f0| 75 72 6e 28 68 70 66 29 | 3b 0a 58 09 7d 0a 58 09 |urn(hpf)|;.X.}.X.|
|00002900| 72 65 74 75 72 6e 28 4e | 55 4c 4c 29 3b 0a 58 7d |return(N|ULL);.X}|
|00002910| 0a 58 2f 2a 20 64 65 66 | 61 75 6c 74 73 20 61 72 |.X/* def|aults ar|
|00002920| 65 20 73 65 74 20 66 72 | 6f 6d 20 76 61 72 69 6f |e set fr|om vario|
|00002930| 75 73 20 70 6c 61 63 65 | 73 20 61 66 74 65 72 20 |us place|s after |
|00002940| 76 61 72 69 6f 75 73 20 | 65 76 65 6e 74 73 2c 20 |various |events, |
|00002950| 61 6c 6d 6f 73 74 20 63 | 69 72 63 75 6c 61 72 20 |almost c|ircular |
|00002960| 2a 2f 0a 58 74 6c 65 6e | 5f 64 65 66 61 75 6c 74 |*/.Xtlen|_default|
|00002970| 28 29 0a 58 7b 0a 58 09 | 63 75 72 65 6e 76 2d 3e |().X{.X.|curenv->|
|00002980| 74 65 78 74 5f 6c 65 6e | 20 3d 20 63 75 72 65 6e |text_len| = curen|
|00002990| 76 2d 3e 70 61 67 65 5f | 6c 65 6e 20 2d 20 63 75 |v->page_|len - cu|
|000029a0| 72 65 6e 76 2d 3e 74 6f | 70 5f 6d 61 72 67 69 6e |renv->to|p_margin|
|000029b0| 3b 0a 58 09 63 75 72 65 | 6e 76 2d 3e 74 65 78 74 |;.X.cure|nv->text|
|000029c0| 5f 6c 65 6e 20 2d 3d 20 | 28 33 30 30 2f 63 75 72 |_len -= |(300/cur|
|000029d0| 65 6e 76 2d 3e 6c 68 69 | 74 65 29 2f 32 3b 0a 58 |env->lhi|te)/2;.X|
|000029e0| 7d 0a 58 6d 74 6f 70 5f | 64 65 66 61 75 6c 74 28 |}.Xmtop_|default(|
|000029f0| 29 0a 58 7b 0a 58 09 63 | 75 72 65 6e 76 2d 3e 74 |).X{.X.c|urenv->t|
|00002a00| 6f 70 5f 6d 61 72 67 69 | 6e 20 3d 20 54 4f 50 5f |op_margi|n = TOP_|
|00002a10| 4d 41 52 47 49 4e 3b 0a | 58 09 63 75 72 65 6e 76 |MARGIN;.|X.curenv|
|00002a20| 2d 3e 74 6f 70 5f 64 6f | 74 73 20 3d 20 63 75 72 |->top_do|ts = cur|
|00002a30| 65 6e 76 2d 3e 74 6f 70 | 5f 6d 61 72 67 69 6e 2a |env->top|_margin*|
|00002a40| 63 75 72 65 6e 76 2d 3e | 6c 68 69 74 65 3b 0a 58 |curenv->|lhite;.X|
|00002a50| 7d 0a 58 6c 72 5f 64 65 | 66 61 75 6c 74 28 29 0a |}.Xlr_de|fault().|
|00002a60| 58 7b 0a 58 09 63 75 72 | 65 6e 76 2d 3e 6c 65 66 |X{.X.cur|env->lef|
|00002a70| 74 5f 6d 61 72 67 69 6e | 20 3d 20 4c 45 46 54 5f |t_margin| = LEFT_|
|00002a80| 4d 41 52 47 49 4e 3b 0a | 58 09 63 75 72 65 6e 76 |MARGIN;.|X.curenv|
|00002a90| 2d 3e 6c 65 66 74 5f 64 | 6f 74 73 20 3d 20 34 37 |->left_d|ots = 47|
|00002aa0| 3b 0a 58 09 63 75 72 65 | 6e 76 2d 3e 72 69 74 65 |;.X.cure|nv->rite|
|00002ab0| 5f 6d 61 72 67 69 6e 20 | 3d 20 52 49 54 45 5f 4d |_margin |= RITE_M|
|00002ac0| 41 52 47 49 4e 3b 0a 58 | 7d 0a 58 68 6d 69 5f 64 |ARGIN;.X|}.Xhmi_d|
|00002ad0| 65 66 61 75 6c 74 28 29 | 0a 58 7b 0a 58 09 63 66 |efault()|.X{.X.cf|
|00002ae0| 6e 20 3d 20 67 65 74 63 | 66 6e 28 29 3b 0a 58 09 |n = getc|fn();.X.|
|00002af0| 63 75 72 65 6e 76 2d 3e | 68 6d 69 20 3d 20 63 66 |curenv->|hmi = cf|
|00002b00| 6e 2d 3e 72 65 61 6c 5f | 73 70 61 63 65 5f 6c 65 |n->real_|space_le|
|00002b10| 6e 3b 0a 58 09 63 66 6e | 2d 3e 73 70 61 63 65 5f |n;.X.cfn|->space_|
|00002b20| 6c 65 6e 20 3d 20 63 66 | 6e 2d 3e 72 65 61 6c 5f |len = cf|n->real_|
|00002b30| 73 70 61 63 65 5f 6c 65 | 6e 3b 0a 58 7d 0a 58 73 |space_le|n;.X}.Xs|
|00002b40| 65 74 73 68 69 66 74 28 | 6e 29 0a 58 69 6e 74 20 |etshift(|n).Xint |
|00002b50| 6e 3b 0a 58 7b 0a 58 09 | 69 66 20 28 74 72 79 5f |n;.X{.X.|if (try_|
|00002b60| 73 65 6c 65 63 74 29 0a | 58 09 09 62 65 73 74 5f |select).|X..best_|
|00002b70| 6d 61 74 63 68 28 29 3b | 0a 58 0a 58 09 63 66 6e |match();|.X.X.cfn|
|00002b80| 20 3d 20 67 65 74 63 66 | 6e 28 29 3b 0a 58 09 63 | = getcf|n();.X.c|
|00002b90| 66 6e 2d 3e 70 72 69 6d | 74 79 70 65 20 3d 20 6e |fn->prim|type = n|
|00002ba0| 3b 0a 58 09 63 75 72 65 | 6e 76 2d 3e 63 75 72 5f |;.X.cure|nv->cur_|
|00002bb0| 66 49 44 20 3d 20 63 66 | 6e 2d 3e 66 49 44 3b 0a |fID = cf|n->fID;.|
|00002bc0| 58 09 68 6d 69 5f 64 65 | 66 61 75 6c 74 28 29 3b |X.hmi_de|fault();|
|00002bd0| 0a 58 7d 0a 58 0a 58 2f | 2a 20 63 6c 65 61 72 69 |.X}.X.X/|* cleari|
|00002be0| 6e 67 20 66 6f 6e 74 73 | 20 6f 72 20 63 68 61 72 |ng fonts| or char|
|00002bf0| 73 20 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |s ******|********|
|00002c00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c20| 2a 2a 2a 20 2a 2f 0a 58 | 63 6c 65 61 72 63 68 61 |*** */.X|clearcha|
|00002c30| 72 28 63 70 74 72 29 0a | 58 73 74 72 75 63 74 20 |r(cptr).|Xstruct |
|00002c40| 43 48 41 52 5f 42 49 54 | 4d 41 50 20 2a 63 70 74 |CHAR_BIT|MAP *cpt|
|00002c50| 72 3b 0a 58 7b 0a 58 09 | 69 6e 74 20 69 3b 0a 58 |r;.X{.X.|int i;.X|
|00002c60| 0a 58 09 66 6f 72 20 28 | 69 3d 30 20 3b 69 3c 63 |.X.for (|i=0 ;i<c|
|00002c70| 70 74 72 2d 3e 68 69 74 | 65 3b 20 69 2b 2b 29 0a |ptr->hit|e; i++).|
|00002c80| 58 09 09 69 66 20 28 63 | 70 74 72 2d 3e 43 48 5b |X..if (c|ptr->CH[|
|00002c90| 69 5d 29 0a 58 09 09 09 | 66 72 65 65 28 28 63 68 |i]).X...|free((ch|
|00002ca0| 61 72 2a 29 63 70 74 72 | 2d 3e 43 48 5b 69 5d 29 |ar*)cptr|->CH[i])|
|00002cb0| 3b 0a 58 09 69 66 20 28 | 63 70 74 72 2d 3e 43 48 |;.X.if (|cptr->CH|
|00002cc0| 29 0a 58 09 09 66 72 65 | 65 28 28 63 68 61 72 2a |).X..fre|e((char*|
|00002cd0| 29 63 70 74 72 2d 3e 43 | 48 29 3b 0a 58 09 63 70 |)cptr->C|H);.X.cp|
|00002ce0| 74 72 2d 3e 43 48 20 3d | 20 28 75 63 68 61 72 20 |tr->CH =| (uchar |
|00002cf0| 2a 2a 29 4e 55 4c 4c 3b | 0a 58 09 63 70 74 72 2d |**)NULL;|.X.cptr-|
|00002d00| 3e 6c 65 6e 20 3d 20 63 | 70 74 72 2d 3e 68 69 74 |>len = c|ptr->hit|
|00002d10| 65 20 3d 20 63 70 74 72 | 2d 3e 63 6c 65 6e 20 3d |e = cptr|->clen =|
|00002d20| 20 63 70 74 72 2d 3e 74 | 6f 66 66 73 20 3d 20 63 | cptr->t|offs = c|
|00002d30| 70 74 72 2d 3e 6c 6f 66 | 66 73 20 3d 20 30 3b 0a |ptr->lof|fs = 0;.|
|00002d40| 58 7d 0a 58 63 6c 65 61 | 72 31 66 6f 6e 74 28 66 |X}.Xclea|r1font(f|
|00002d50| 70 74 72 29 0a 58 73 74 | 72 75 63 74 20 48 50 46 |ptr).Xst|ruct HPF|
|00002d60| 4f 4e 54 20 2a 66 70 74 | 72 3b 0a 58 7b 0a 58 09 |ONT *fpt|r;.X{.X.|
|00002d70| 69 6e 74 20 69 3b 0a 58 | 0a 58 09 66 6f 72 20 28 |int i;.X|.X.for (|
|00002d80| 69 3d 33 32 3b 20 69 3c | 32 35 36 3b 20 69 2b 2b |i=32; i<|256; i++|
|00002d90| 29 0a 58 09 09 63 6c 65 | 61 72 63 68 61 72 28 26 |).X..cle|archar(&|
|00002da0| 66 70 74 72 2d 3e 63 68 | 61 72 73 5b 69 5d 29 3b |fptr->ch|ars[i]);|
|00002db0| 0a 58 09 66 70 74 72 2d | 3e 66 49 44 20 3d 20 66 |.X.fptr-|>fID = f|
|00002dc0| 70 74 72 2d 3e 70 72 6f | 70 5f 73 70 61 63 65 64 |ptr->pro|p_spaced|
|00002dd0| 20 3d 20 66 70 74 72 2d | 3e 72 65 61 6c 5f 73 70 | = fptr-|>real_sp|
|00002de0| 61 63 65 64 20 3d 20 0a | 58 09 09 66 70 74 72 2d |aced = .|X..fptr-|
|00002df0| 3e 70 65 72 6d 74 79 70 | 65 20 3d 20 66 70 74 72 |>permtyp|e = fptr|
|00002e00| 2d 3e 70 72 69 6d 74 79 | 70 65 20 3d 20 2d 31 3b |->primty|pe = -1;|
|00002e10| 0a 58 09 66 70 74 72 2d | 3e 73 70 61 63 65 5f 6c |.X.fptr-|>space_l|
|00002e20| 65 6e 20 3d 20 2d 31 3b | 0a 58 09 66 70 74 72 2d |en = -1;|.X.fptr-|
|00002e30| 3e 72 65 61 6c 5f 73 70 | 61 63 65 5f 6c 65 6e 20 |>real_sp|ace_len |
|00002e40| 3d 20 2d 31 3b 0a 58 09 | 66 70 74 72 2d 3e 61 63 |= -1;.X.|fptr->ac|
|00002e50| 74 69 76 65 20 3d 20 46 | 41 4c 53 45 3b 0a 58 7d |tive = F|ALSE;.X}|
|00002e60| 0a 58 63 6c 65 61 72 61 | 6c 6c 66 6f 6e 74 73 28 |.Xcleara|llfonts(|
|00002e70| 29 0a 58 7b 0a 58 09 63 | 6c 65 61 72 66 6f 6e 74 |).X{.X.c|learfont|
|00002e80| 73 28 54 45 4d 50 4f 52 | 41 52 59 29 3b 0a 58 09 |s(TEMPOR|ARY);.X.|
|00002e90| 63 6c 65 61 72 66 6f 6e | 74 73 28 50 45 52 4d 41 |clearfon|ts(PERMA|
|00002ea0| 4e 45 4e 54 29 3b 0a 58 | 09 6f 72 67 65 6e 76 2e |NENT);.X|.orgenv.|
|00002eb0| 63 75 72 5f 66 6e 74 20 | 3d 20 43 4f 55 52 49 45 |cur_fnt |= COURIE|
|00002ec0| 52 3b 0a 58 09 6f 72 67 | 65 6e 76 2e 63 75 72 5f |R;.X.org|env.cur_|
|00002ed0| 66 49 44 20 3d 20 2d 31 | 3b 0a 58 09 65 6e 76 5f |fID = -1|;.X.env_|
|00002ee0| 73 61 76 65 64 20 3d 20 | 46 41 4c 53 45 3b 0a 58 |saved = |FALSE;.X|
|00002ef0| 09 63 75 72 65 6e 76 20 | 3d 20 26 6f 72 67 65 6e |.curenv |= &orgen|
|00002f00| 76 3b 0a 58 7d 0a 58 63 | 6c 65 61 72 66 6f 6e 74 |v;.X}.Xc|learfont|
|00002f10| 73 28 74 79 70 65 29 0a | 58 69 6e 74 20 74 79 70 |s(type).|Xint typ|
|00002f20| 65 3b 0a 58 7b 0a 58 09 | 69 6e 74 20 69 3b 0a 58 |e;.X{.X.|int i;.X|
|00002f30| 09 73 74 72 75 63 74 20 | 48 50 46 4f 4e 54 20 2a |.struct |HPFONT *|
|00002f40| 63 66 3b 0a 58 0a 58 09 | 66 6f 72 20 28 69 3d 30 |cf;.X.X.|for (i=0|
|00002f50| 3b 20 69 3c 4d 41 58 5f | 46 4f 4e 54 3b 20 69 2b |; i<MAX_|FONT; i+|
|00002f60| 2b 29 0a 58 09 7b 0a 58 | 09 09 63 66 20 3d 20 26 |+).X.{.X|..cf = &|
|00002f70| 68 70 66 6f 6e 74 73 5b | 69 5d 3b 0a 58 09 09 69 |hpfonts[|i];.X..i|
|00002f80| 66 20 28 28 21 63 66 2d | 3e 62 75 69 6c 74 69 6e |f ((!cf-|>builtin|
|00002f90| 29 20 26 26 20 63 66 2d | 3e 61 63 74 69 76 65 20 |) && cf-|>active |
|00002fa0| 26 26 20 63 66 2d 3e 70 | 65 72 6d 74 79 70 65 20 |&& cf->p|ermtype |
|00002fb0| 3d 3d 20 74 79 70 65 29 | 0a 58 09 09 7b 0a 58 09 |== type)|.X..{.X.|
|00002fc0| 09 09 69 66 20 28 63 75 | 72 65 6e 76 2d 3e 63 75 |..if (cu|renv->cu|
|00002fd0| 72 5f 66 6e 74 20 3d 3d | 20 69 20 26 26 20 64 6f |r_fnt ==| i && do|
|00002fe0| 74 74 65 64 29 0a 58 09 | 09 09 7b 0a 58 09 09 09 |tted).X.|..{.X...|
|00002ff0| 09 70 62 6d 65 6a 65 63 | 74 28 54 52 55 45 29 3b |.pbmejec|t(TRUE);|
|00003000| 0a 58 09 09 09 09 63 75 | 72 65 6e 76 20 3d 20 26 |.X....cu|renv = &|
|00003010| 6f 72 67 65 6e 76 3b 0a | 58 09 09 09 09 63 75 72 |orgenv;.|X....cur|
|00003020| 65 6e 76 2d 3e 63 75 72 | 5f 66 49 44 20 3d 20 2d |env->cur|_fID = -|
|00003030| 31 3b 0a 58 09 09 09 09 | 63 75 72 65 6e 76 2d 3e |1;.X....|curenv->|
|00003040| 63 75 72 5f 66 6e 74 20 | 3d 20 43 4f 55 52 49 45 |cur_fnt |= COURIE|
|00003050| 52 3b 0a 58 09 09 09 09 | 65 6e 76 5f 73 61 76 65 |R;.X....|env_save|
|00003060| 64 20 3d 20 46 41 4c 53 | 45 3b 0a 58 09 09 09 7d |d = FALS|E;.X...}|
|00003070| 0a 58 09 09 09 63 6c 65 | 61 72 31 66 6f 6e 74 28 |.X...cle|ar1font(|
|00003080| 26 68 70 66 6f 6e 74 73 | 5b 69 5d 29 3b 0a 58 09 |&hpfonts|[i]);.X.|
|00003090| 09 7d 0a 58 09 7d 0a 58 | 7d 0a 58 63 6c 65 61 72 |.}.X.}.X|}.Xclear|
|000030a0| 63 75 72 66 6f 6e 74 28 | 29 0a 58 7b 0a 58 09 73 |curfont(|).X{.X.s|
|000030b0| 74 72 75 63 74 20 48 50 | 46 4f 4e 54 20 2a 68 70 |truct HP|FONT *hp|
|000030c0| 3b 0a 58 0a 58 09 69 66 | 20 28 28 68 70 20 3d 20 |;.X.X.if| ((hp = |
|000030d0| 66 69 6e 64 6c 73 74 69 | 64 28 29 29 20 21 3d 20 |findlsti|d()) != |
|000030e0| 28 73 74 72 75 63 74 20 | 48 50 46 4f 4e 54 2a 29 |(struct |HPFONT*)|
|000030f0| 4e 55 4c 4c 29 0a 58 09 | 09 69 66 20 28 21 63 66 |NULL).X.|.if (!cf|
|00003100| 6e 2d 3e 62 75 69 6c 74 | 69 6e 29 0a 58 09 09 7b |n->built|in).X..{|
|00003110| 0a 58 09 09 09 69 66 20 | 28 68 70 20 3d 3d 20 63 |.X...if |(hp == c|
|00003120| 66 6e 29 0a 58 09 09 09 | 09 6f 72 67 65 6e 76 2e |fn).X...|.orgenv.|
|00003130| 63 75 72 5f 66 6e 74 20 | 3d 20 43 4f 55 52 49 45 |cur_fnt |= COURIE|
|00003140| 52 3b 0a 58 09 09 09 63 | 6c 65 61 72 31 66 6f 6e |R;.X...c|lear1fon|
|00003150| 74 28 68 70 29 3b 0a 58 | 09 09 09 63 75 72 65 6e |t(hp);.X|...curen|
|00003160| 76 20 3d 20 26 6f 72 67 | 65 6e 76 3b 0a 58 09 09 |v = &org|env;.X..|
|00003170| 09 63 75 72 65 6e 76 2d | 3e 63 75 72 5f 66 49 44 |.curenv-|>cur_fID|
|00003180| 20 3d 20 2d 31 3b 0a 58 | 09 09 09 65 6e 76 5f 73 | = -1;.X|...env_s|
|00003190| 61 76 65 64 20 3d 20 46 | 41 4c 53 45 3b 0a 58 09 |aved = F|ALSE;.X.|
|000031a0| 09 09 69 66 20 28 64 6f | 74 74 65 64 29 0a 58 09 |..if (do|tted).X.|
|000031b0| 09 09 09 70 62 6d 65 6a | 65 63 74 28 54 52 55 45 |...pbmej|ect(TRUE|
|000031c0| 29 3b 0a 58 09 09 7d 0a | 58 7d 0a 58 63 6c 65 61 |);.X..}.|X}.Xclea|
|000031d0| 72 6c 61 73 74 63 68 61 | 72 28 29 0a 58 7b 0a 58 |rlastcha|r().X{.X|
|000031e0| 09 63 66 6e 20 3d 20 67 | 65 74 63 66 6e 28 29 3b |.cfn = g|etcfn();|
|000031f0| 0a 58 09 69 66 20 28 28 | 21 63 66 6e 2d 3e 62 75 |.X.if ((|!cfn->bu|
|00003200| 69 6c 74 69 6e 29 20 26 | 26 20 63 66 6e 2d 3e 63 |iltin) &|& cfn->c|
|00003210| 68 61 72 73 5b 63 75 72 | 65 6e 76 2d 3e 63 75 72 |hars[cur|env->cur|
|00003220| 5f 63 68 72 5d 2e 6c 65 | 6e 29 0a 58 09 09 63 6c |_chr].le|n).X..cl|
|00003230| 65 61 72 63 68 61 72 28 | 26 63 66 6e 2d 3e 63 68 |earchar(|&cfn->ch|
|00003240| 61 72 73 5b 63 75 72 65 | 6e 76 2d 3e 63 75 72 5f |ars[cure|nv->cur_|
|00003250| 63 68 72 5d 29 3b 0a 58 | 7d 0a 58 6d 61 6b 65 66 |chr]);.X|}.Xmakef|
|00003260| 74 79 70 65 28 77 68 61 | 74 29 0a 58 69 6e 74 20 |type(wha|t).Xint |
|00003270| 77 68 61 74 3b 0a 58 7b | 0a 58 09 69 6e 74 20 69 |what;.X{|.X.int i|
|00003280| 3b 0a 58 09 73 74 72 75 | 63 74 20 48 50 46 4f 4e |;.X.stru|ct HPFON|
|00003290| 54 20 2a 68 70 66 3b 0a | 58 0a 58 09 69 66 20 28 |T *hpf;.|X.X.if (|
|000032a0| 6c 61 73 74 66 6f 6e 74 | 69 64 20 3d 3d 20 2d 31 |lastfont|id == -1|
|000032b0| 29 0a 58 09 09 72 65 74 | 75 72 6e 3b 0a 58 09 69 |).X..ret|urn;.X.i|
|000032c0| 66 20 28 28 68 70 66 20 | 3d 20 66 69 6e 64 6c 73 |f ((hpf |= findls|
|000032d0| 74 69 64 28 29 29 20 21 | 3d 20 28 73 74 72 75 63 |tid()) !|= (struc|
|000032e0| 74 20 48 50 46 4f 4e 54 | 20 2a 29 4e 55 4c 4c 29 |t HPFONT| *)NULL)|
|000032f0| 0a 58 09 09 68 70 66 2d | 3e 70 65 72 6d 74 79 70 |.X..hpf-|>permtyp|
|00003300| 65 20 3d 20 77 68 61 74 | 3b 0a 58 09 65 6c 73 65 |e = what|;.X.else|
|00003310| 0a 58 09 7b 0a 58 09 09 | 66 6f 72 20 28 69 3d 30 |.X.{.X..|for (i=0|
|00003320| 3b 20 69 3c 4d 41 58 5f | 46 4f 4e 54 3b 20 69 2b |; i<MAX_|FONT; i+|
|00003330| 2b 29 0a 58 09 09 7b 0a | 58 09 09 09 68 70 66 20 |+).X..{.|X...hpf |
|00003340| 3d 20 26 68 70 66 6f 6e | 74 73 5b 69 5d 3b 0a 58 |= &hpfon|ts[i];.X|
|00003350| 09 09 09 69 66 20 28 21 | 68 70 66 2d 3e 61 63 74 |...if (!|hpf->act|
|00003360| 69 76 65 29 0a 58 09 09 | 09 7b 0a 58 09 09 09 09 |ive).X..|.{.X....|
|00003370| 68 70 66 2d 3e 61 63 74 | 69 76 65 20 3d 20 54 52 |hpf->act|ive = TR|
|00003380| 55 45 3b 0a 58 09 09 09 | 09 68 70 66 2d 3e 66 49 |UE;.X...|.hpf->fI|
|00003390| 44 20 3d 20 6c 61 73 74 | 66 6f 6e 74 69 64 3b 0a |D = last|fontid;.|
|000033a0| 58 09 09 09 09 68 70 66 | 2d 3e 70 65 72 6d 74 79 |X....hpf|->permty|
|000033b0| 70 65 20 3d 20 77 68 61 | 74 3b 0a 58 09 09 09 09 |pe = wha|t;.X....|
|000033c0| 62 72 65 61 6b 3b 0a 58 | 09 09 09 7d 0a 58 09 09 |break;.X|...}.X..|
|000033d0| 7d 0a 58 09 09 69 66 20 | 28 69 20 3d 3d 20 4d 41 |}.X..if |(i == MA|
|000033e0| 58 5f 46 4f 4e 54 29 0a | 58 09 09 09 64 69 65 28 |X_FONT).|X...die(|
|000033f0| 22 74 6f 6f 20 6d 61 6e | 79 20 66 6f 6e 74 73 5c |"too man|y fonts\|
|00003400| 6e 22 29 3b 0a 58 09 7d | 0a 58 7d 0a 58 62 65 73 |n");.X.}|.X}.Xbes|
|00003410| 74 5f 6d 61 74 63 68 28 | 29 0a 58 7b 0a 58 09 69 |t_match(|).X{.X.i|
|00003420| 6e 74 20 69 2c 20 2a 69 | 70 2c 20 62 65 73 74 2c |nt i, *i|p, best,|
|00003430| 20 62 65 73 74 66 6e 74 | 2c 20 63 61 6e 75 73 65 | bestfnt|, canuse|
|00003440| 5b 4d 41 58 5f 46 4f 4e | 54 5d 3b 0a 58 09 73 74 |[MAX_FON|T];.X.st|
|00003450| 72 75 63 74 20 48 50 46 | 4f 4e 54 20 2a 68 66 3b |ruct HPF|ONT *hf;|
|00003460| 0a 58 0a 58 09 74 72 79 | 5f 73 65 6c 65 63 74 20 |.X.X.try|_select |
|00003470| 3d 20 46 41 4c 53 45 3b | 0a 58 0a 58 09 69 70 20 |= FALSE;|.X.X.ip |
|00003480| 3d 20 63 61 6e 75 73 65 | 3b 0a 58 09 66 6f 72 20 |= canuse|;.X.for |
|00003490| 28 69 3d 30 3b 20 69 3c | 4d 41 58 5f 46 4f 4e 54 |(i=0; i<|MAX_FONT|
|000034a0| 3b 20 69 2b 2b 29 0a 58 | 09 09 2a 69 70 2b 2b 20 |; i++).X|..*ip++ |
|000034b0| 3d 20 30 3b 0a 58 0a 58 | 09 69 70 20 3d 20 63 61 |= 0;.X.X|.ip = ca|
|000034c0| 6e 75 73 65 3b 0a 58 09 | 66 6f 72 20 28 69 3d 30 |nuse;.X.|for (i=0|
|000034d0| 3b 20 69 3c 4d 41 58 5f | 46 4f 4e 54 3b 20 69 2b |; i<MAX_|FONT; i+|
|000034e0| 2b 2c 20 69 70 2b 2b 29 | 0a 58 09 7b 0a 58 09 09 |+, ip++)|.X.{.X..|
|000034f0| 68 66 20 3d 20 26 68 70 | 66 6f 6e 74 73 5b 69 5d |hf = &hp|fonts[i]|
|00003500| 3b 0a 58 09 09 69 66 20 | 28 68 66 2d 3e 61 63 74 |;.X..if |(hf->act|
|00003510| 69 76 65 29 0a 58 09 09 | 7b 0a 58 09 09 09 69 66 |ive).X..|{.X...if|
|00003520| 20 28 68 66 2d 3e 66 6f | 6e 74 5f 61 74 74 73 2e | (hf->fo|nt_atts.|
|00003530| 6f 72 69 65 6e 74 20 3d | 3d 20 6c 61 73 74 73 70 |orient =|= lastsp|
|00003540| 65 63 2e 6f 72 69 65 6e | 74 29 0a 58 09 09 09 09 |ec.orien|t).X....|
|00003550| 2a 69 70 20 3d 20 38 3b | 0a 58 09 09 09 69 66 20 |*ip = 8;|.X...if |
|00003560| 28 68 66 2d 3e 66 6f 6e | 74 5f 61 74 74 73 2e 73 |(hf->fon|t_atts.s|
|00003570| 79 6d 73 65 74 20 3d 3d | 20 6c 61 73 74 73 70 65 |ymset ==| lastspe|
|00003580| 63 2e 73 79 6d 73 65 74 | 29 0a 58 09 09 09 09 2a |c.symset|).X....*|
|00003590| 69 70 20 2b 3d 20 37 3b | 0a 58 09 09 09 69 66 20 |ip += 7;|.X...if |
|000035a0| 28 68 66 2d 3e 66 6f 6e | 74 5f 61 74 74 73 2e 70 |(hf->fon|t_atts.p|
|000035b0| 72 6f 70 5f 73 70 61 63 | 65 64 20 3d 3d 20 6c 61 |rop_spac|ed == la|
|000035c0| 73 74 73 70 65 63 2e 70 | 72 6f 70 5f 73 70 61 63 |stspec.p|rop_spac|
|000035d0| 65 64 29 0a 58 09 09 09 | 09 2a 69 70 20 2b 3d 20 |ed).X...|.*ip += |
|000035e0| 36 3b 0a 58 09 09 09 69 | 66 20 28 68 66 2d 3e 66 |6;.X...i|f (hf->f|
|000035f0| 6f 6e 74 5f 61 74 74 73 | 2e 70 69 74 63 68 20 3d |ont_atts|.pitch =|
|00003600| 3d 20 6c 61 73 74 73 70 | 65 63 2e 70 69 74 63 68 |= lastsp|ec.pitch|
|00003610| 29 0a 58 09 09 09 09 2a | 69 70 20 2b 3d 20 35 3b |).X....*|ip += 5;|
|00003620| 0a 58 09 09 09 69 66 20 | 28 68 66 2d 3e 66 6f 6e |.X...if |(hf->fon|
|00003630| 74 5f 61 74 74 73 2e 70 | 6f 69 6e 74 73 20 3d 3d |t_atts.p|oints ==|
|00003640| 20 6c 61 73 74 73 70 65 | 63 2e 70 6f 69 6e 74 73 | lastspe|c.points|
|00003650| 29 0a 58 09 09 09 09 2a | 69 70 20 2b 3d 20 34 3b |).X....*|ip += 4;|
|00003660| 0a 58 09 09 09 69 66 20 | 28 68 66 2d 3e 66 6f 6e |.X...if |(hf->fon|
|00003670| 74 5f 61 74 74 73 2e 73 | 74 79 6c 65 20 3d 3d 20 |t_atts.s|tyle == |
|00003680| 6c 61 73 74 73 70 65 63 | 2e 73 74 79 6c 65 29 0a |lastspec|.style).|
|00003690| 58 09 09 09 09 2a 69 70 | 20 2b 3d 20 33 3b 0a 58 |X....*ip| += 3;.X|
|000036a0| 09 09 09 69 66 20 28 68 | 66 2d 3e 66 6f 6e 74 5f |...if (h|f->font_|
|000036b0| 61 74 74 73 2e 73 74 72 | 6f 6b 65 20 3d 3d 20 6c |atts.str|oke == l|
|000036c0| 61 73 74 73 70 65 63 2e | 73 74 72 6f 6b 65 29 0a |astspec.|stroke).|
|000036d0| 58 09 09 09 09 2a 69 70 | 20 2b 3d 20 32 3b 0a 58 |X....*ip| += 2;.X|
|000036e0| 09 09 09 69 66 20 28 68 | 66 2d 3e 66 6f 6e 74 5f |...if (h|f->font_|
|000036f0| 61 74 74 73 2e 74 79 70 | 65 66 61 63 65 20 3d 3d |atts.typ|eface ==|
|00003700| 20 6c 61 73 74 73 70 65 | 63 2e 74 79 70 65 66 61 | lastspe|c.typefa|
|00003710| 63 65 29 0a 58 09 09 09 | 09 2a 69 70 20 2b 3d 20 |ce).X...|.*ip += |
|00003720| 31 3b 0a 58 09 09 7d 0a | 58 09 7d 0a 58 09 69 70 |1;.X..}.|X.}.X.ip|
|00003730| 20 3d 20 63 61 6e 75 73 | 65 3b 0a 58 09 66 6f 72 | = canus|e;.X.for|
|00003740| 20 28 62 65 73 74 66 6e | 74 20 3d 20 62 65 73 74 | (bestfn|t = best|
|00003750| 20 3d 20 2d 31 2c 20 69 | 3d 30 3b 20 69 3c 4d 41 | = -1, i|=0; i<MA|
|00003760| 58 5f 46 4f 4e 54 3b 20 | 69 2b 2b 2c 20 69 70 2b |X_FONT; |i++, ip+|
|00003770| 2b 29 0a 58 09 09 69 66 | 20 28 2a 69 70 20 3e 20 |+).X..if| (*ip > |
|00003780| 62 65 73 74 29 0a 58 09 | 09 7b 0a 58 09 09 09 62 |best).X.|.{.X...b|
|00003790| 65 73 74 20 3d 20 2a 69 | 70 3b 0a 58 09 09 09 62 |est = *i|p;.X...b|
|000037a0| 65 73 74 66 6e 74 20 3d | 20 69 3b 0a 58 09 09 7d |estfnt =| i;.X..}|
|000037b0| 0a 58 09 69 66 20 28 62 | 65 73 74 66 6e 74 20 3e |.X.if (b|estfnt >|
|000037c0| 20 2d 31 20 26 26 20 62 | 65 73 74 66 6e 74 20 3c | -1 && b|estfnt <|
|000037d0| 20 4d 41 58 5f 46 4f 4e | 54 29 0a 58 09 7b 0a 58 | MAX_FON|T).X.{.X|
|000037e0| 09 09 63 75 72 65 6e 76 | 2d 3e 63 75 72 5f 66 6e |..curenv|->cur_fn|
|000037f0| 74 20 3d 20 62 65 73 74 | 66 6e 74 3b 0a 58 09 09 |t = best|fnt;.X..|
|00003800| 68 66 20 3d 20 67 65 74 | 63 66 6e 28 29 3b 0a 58 |hf = get|cfn();.X|
|00003810| 09 7d 0a 58 7d 0a 58 0a | 58 2f 2a 20 6d 6f 73 74 |.}.X}.X.|X/* most|
|00003820| 6c 79 20 63 68 61 72 2f | 6c 69 6e 65 20 62 61 73 |ly char/|line bas|
|00003830| 65 64 20 64 69 6d 65 6e | 73 69 6f 6e 20 64 65 66 |ed dimen|sion def|
|00003840| 61 75 6c 74 73 20 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |aults **|********|
|00003850| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003860| 2a 2a 2a 2a 2a 20 2a 2f | 0a 58 72 73 5f 70 6c 65 |***** */|.Xrs_ple|
|00003870| 6e 28 6e 29 0a 58 64 6f | 75 62 6c 65 20 6e 3b 0a |n(n).Xdo|uble n;.|
|00003880| 58 7b 0a 58 09 69 66 20 | 28 6e 20 26 26 20 63 75 |X{.X.if |(n && cu|
|00003890| 72 65 6e 76 2d 3e 6c 68 | 69 74 65 20 26 26 20 63 |renv->lh|ite && c|
|000038a0| 75 72 65 6e 76 2d 3e 6c | 68 69 74 65 2a 6e 20 3c |urenv->l|hite*n <|
|000038b0| 20 31 34 2a 33 30 30 29 | 0a 58 09 7b 0a 58 09 09 | 14*300)|.X.{.X..|
|000038c0| 63 75 72 65 6e 76 2d 3e | 70 61 67 65 5f 6c 65 6e |curenv->|page_len|
|000038d0| 20 3d 20 28 69 6e 74 29 | 6e 3b 0a 58 09 09 6d 74 | = (int)|n;.X..mt|
|000038e0| 6f 70 5f 64 65 66 61 75 | 6c 74 28 29 3b 0a 58 09 |op_defau|lt();.X.|
|000038f0| 09 74 6c 65 6e 5f 64 65 | 66 61 75 6c 74 28 29 3b |.tlen_de|fault();|
|00003900| 0a 58 09 09 6c 72 5f 64 | 65 66 61 75 6c 74 28 29 |.X..lr_d|efault()|
|00003910| 3b 0a 58 09 7d 0a 58 09 | 28 76 6f 69 64 29 72 73 |;.X.}.X.|(void)rs|
|00003920| 5f 61 75 74 6f 5f 65 6e | 61 62 6c 65 28 46 41 4c |_auto_en|able(FAL|
|00003930| 53 45 29 3b 0a 58 7d 0a | 58 72 73 5f 6d 74 6f 70 |SE);.X}.|Xrs_mtop|
|00003940| 28 6e 29 0a 58 64 6f 75 | 62 6c 65 20 6e 3b 0a 58 |(n).Xdou|ble n;.X|
|00003950| 7b 0a 58 09 69 66 20 28 | 63 75 72 65 6e 76 2d 3e |{.X.if (|curenv->|
|00003960| 6c 68 69 74 65 20 26 26 | 20 63 75 72 65 6e 76 2d |lhite &&| curenv-|
|00003970| 3e 6c 68 69 74 65 2a 6e | 20 3c 20 63 75 72 65 6e |>lhite*n| < curen|
|00003980| 76 2d 3e 6c 68 69 74 65 | 2a 63 75 72 65 6e 76 2d |v->lhite|*curenv-|
|00003990| 3e 70 61 67 65 5f 6c 65 | 6e 29 0a 58 09 7b 0a 58 |>page_le|n).X.{.X|
|000039a0| 09 09 6e 65 77 5f 74 6f | 70 6d 61 72 67 69 6e 20 |..new_to|pmargin |
|000039b0| 3d 20 28 69 6e 74 29 6e | 3b 0a 58 09 09 69 66 20 |= (int)n|;.X..if |
|000039c0| 28 76 69 72 67 69 6e 29 | 0a 58 09 09 7b 0a 58 09 |(virgin)|.X..{.X.|
|000039d0| 09 09 63 75 72 65 6e 76 | 2d 3e 74 6f 70 5f 6d 61 |..curenv|->top_ma|
|000039e0| 72 67 69 6e 20 3d 20 6e | 65 77 5f 74 6f 70 6d 61 |rgin = n|ew_topma|
|000039f0| 72 67 69 6e 3b 0a 58 09 | 09 09 63 75 72 65 6e 76 |rgin;.X.|..curenv|
|00003a00| 2d 3e 74 6f 70 5f 64 6f | 74 73 20 3d 20 63 75 72 |->top_do|ts = cur|
|00003a10| 65 6e 76 2d 3e 74 6f 70 | 5f 6d 61 72 67 69 6e 2a |env->top|_margin*|
|00003a20| 63 75 72 65 6e 76 2d 3e | 6c 68 69 74 65 3b 0a 58 |curenv->|lhite;.X|
|00003a30| 09 09 7d 0a 58 09 09 74 | 6c 65 6e 5f 64 65 66 61 |..}.X..t|len_defa|
|00003a40| 75 6c 74 28 29 3b 0a 58 | 09 7d 0a 58 7d 0a 58 72 |ult();.X|.}.X}.Xr|
|00003a50| 73 5f 74 6c 65 6e 28 6e | 29 0a 58 64 6f 75 62 6c |s_tlen(n|).Xdoubl|
|00003a60| 65 20 6e 3b 0a 58 7b 0a | 58 09 69 66 20 28 6e 20 |e n;.X{.|X.if (n |
|00003a70| 26 26 20 28 6e 20 3c 3d | 20 28 63 75 72 65 6e 76 |&& (n <=| (curenv|
|00003a80| 2d 3e 70 61 67 65 5f 6c | 65 6e 20 2d 20 63 75 72 |->page_l|en - cur|
|00003a90| 65 6e 76 2d 3e 74 6f 70 | 5f 6d 61 72 67 69 6e 29 |env->top|_margin)|
|00003aa0| 29 29 0a 58 09 09 63 75 | 72 65 6e 76 2d 3e 74 65 |)).X..cu|renv->te|
|00003ab0| 78 74 5f 6c 65 6e 20 3d | 20 28 69 6e 74 29 6e 3b |xt_len =| (int)n;|
|00003ac0| 0a 58 09 65 6c 73 65 20 | 69 66 20 28 21 6e 29 0a |.X.else |if (!n).|
|00003ad0| 58 09 09 74 6c 65 6e 5f | 64 65 66 61 75 6c 74 28 |X..tlen_|default(|
|00003ae0| 29 3b 0a 58 7d 0a 58 72 | 73 5f 6d 6c 65 66 74 28 |);.X}.Xr|s_mleft(|
|00003af0| 6e 29 0a 58 64 6f 75 62 | 6c 65 20 6e 3b 0a 58 7b |n).Xdoub|le n;.X{|
|00003b00| 0a 58 09 63 66 6e 20 3d | 20 67 65 74 63 66 6e 28 |.X.cfn =| getcfn(|
|00003b10| 29 3b 0a 58 09 69 66 20 | 28 6e 20 3c 20 63 75 72 |);.X.if |(n < cur|
|00003b20| 65 6e 76 2d 3e 72 69 74 | 65 5f 6d 61 72 67 69 6e |env->rit|e_margin|
|00003b30| 29 0a 58 09 7b 0a 58 09 | 09 63 75 72 65 6e 76 2d |).X.{.X.|.curenv-|
|00003b40| 3e 6c 65 66 74 5f 6d 61 | 72 67 69 6e 20 3d 20 28 |>left_ma|rgin = (|
|00003b50| 69 6e 74 29 6e 3b 0a 58 | 09 09 63 75 72 65 6e 76 |int)n;.X|..curenv|
|00003b60| 2d 3e 6c 65 66 74 5f 64 | 6f 74 73 20 3d 20 63 75 |->left_d|ots = cu|
|00003b70| 72 65 6e 76 2d 3e 6c 65 | 66 74 5f 6d 61 72 67 69 |renv->le|ft_margi|
|00003b80| 6e 20 2a 20 63 66 6e 2d | 3e 73 70 61 63 65 5f 6c |n * cfn-|>space_l|
|00003b90| 65 6e 3b 0a 58 09 7d 0a | 58 7d 0a 58 72 73 5f 6d |en;.X.}.|X}.Xrs_m|
|00003ba0| 72 69 67 68 74 28 6e 29 | 0a 58 64 6f 75 62 6c 65 |right(n)|.Xdouble|
|00003bb0| 20 6e 3b 0a 58 7b 0a 58 | 09 69 66 20 28 6e 20 3e | n;.X{.X|.if (n >|
|00003bc0| 20 63 75 72 65 6e 76 2d | 3e 6c 65 66 74 5f 6d 61 | curenv-|>left_ma|
|00003bd0| 72 67 69 6e 29 0a 58 09 | 09 63 75 72 65 6e 76 2d |rgin).X.|.curenv-|
|00003be0| 3e 72 69 74 65 5f 6d 61 | 72 67 69 6e 20 3d 20 28 |>rite_ma|rgin = (|
|00003bf0| 69 6e 74 29 6e 3b 0a 58 | 7d 0a 58 72 73 5f 63 6f |int)n;.X|}.Xrs_co|
|00003c00| 6c 28 6e 29 0a 58 64 6f | 75 62 6c 65 20 6e 3b 0a |l(n).Xdo|uble n;.|
|00003c10| 58 7b 0a 58 09 63 66 6e | 20 3d 20 67 65 74 63 66 |X{.X.cfn| = getcf|
|00003c20| 6e 28 29 3b 0a 58 09 69 | 66 20 28 72 65 6c 61 74 |n();.X.i|f (relat|
|00003c30| 69 76 65 28 29 29 0a 58 | 09 09 42 4d 58 20 2b 3d |ive()).X|..BMX +=|
|00003c40| 20 6e 2a 63 66 6e 2d 3e | 73 70 61 63 65 5f 6c 65 | n*cfn->|space_le|
|00003c50| 6e 3b 0a 58 09 65 6c 73 | 65 20 69 66 20 28 21 28 |n;.X.els|e if (!(|
|00003c60| 69 6e 74 29 6e 29 0a 58 | 09 09 42 4d 58 20 3d 20 |int)n).X|..BMX = |
|00003c70| 63 75 72 65 6e 76 2d 3e | 6c 65 66 74 5f 64 6f 74 |curenv->|left_dot|
|00003c80| 73 3b 0a 58 09 65 6c 73 | 65 20 42 4d 58 20 3d 20 |s;.X.els|e BMX = |
|00003c90| 6e 2a 63 66 6e 2d 3e 73 | 70 61 63 65 5f 6c 65 6e |n*cfn->s|pace_len|
|00003ca0| 3b 0a 58 09 42 4d 58 20 | 3d 20 6d 61 78 28 30 2e |;.X.BMX |= max(0.|
|00003cb0| 30 2c 20 42 4d 58 29 3b | 0a 58 09 42 4d 58 20 3d |0, BMX);|.X.BMX =|
|00003cc0| 20 6d 69 6e 28 42 4d 58 | 2c 20 28 64 6f 75 62 6c | min(BMX|, (doubl|
|00003cd0| 65 29 28 28 52 49 54 45 | 5f 4d 41 52 47 49 4e 2d |e)((RITE|_MARGIN-|
|00003ce0| 31 29 2a 33 30 29 29 3b | 09 2f 2a 20 75 73 69 6e |1)*30));|./* usin|
|00003cf0| 67 20 31 30 63 70 69 20 | 66 6f 72 20 6d 61 78 20 |g 10cpi |for max |
|00003d00| 2a 2f 0a 58 7d 0a 58 72 | 73 5f 72 6f 77 28 6e 29 |*/.X}.Xr|s_row(n)|
|00003d10| 0a 58 64 6f 75 62 6c 65 | 20 6e 3b 0a 58 7b 0a 58 |.Xdouble| n;.X{.X|
|00003d20| 09 64 6f 75 62 6c 65 20 | 6c 61 72 67 65 73 74 3b |.double |largest;|
|00003d30| 0a 58 0a 58 09 69 66 20 | 28 21 28 69 6e 74 29 6e |.X.X.if |(!(int)n|
|00003d40| 29 0a 58 09 7b 0a 58 09 | 09 63 75 72 65 6e 76 2d |).X.{.X.|.curenv-|
|00003d50| 3e 74 6f 70 5f 6d 61 72 | 67 69 6e 20 3d 20 6e 65 |>top_mar|gin = ne|
|00003d60| 77 5f 74 6f 70 6d 61 72 | 67 69 6e 3b 0a 58 09 09 |w_topmar|gin;.X..|
|00003d70| 63 75 72 65 6e 76 2d 3e | 74 6f 70 5f 64 6f 74 73 |curenv->|top_dots|
|00003d80| 20 3d 20 63 75 72 65 6e | 76 2d 3e 74 6f 70 5f 6d | = curen|v->top_m|
|00003d90| 61 72 67 69 6e 2a 63 75 | 72 65 6e 76 2d 3e 6c 68 |argin*cu|renv->lh|
|00003da0| 69 74 65 3b 0a 58 09 09 | 42 4d 59 20 3d 20 28 64 |ite;.X..|BMY = (d|
|00003db0| 6f 75 62 6c 65 29 63 75 | 72 65 6e 76 2d 3e 74 6f |ouble)cu|renv->to|
|00003dc0| 70 5f 64 6f 74 73 20 2a | 20 63 75 72 65 6e 76 2d |p_dots *| curenv-|
|00003dd0| 3e 6c 68 69 74 65 3b 0a | 58 09 09 72 65 74 75 72 |>lhite;.|X..retur|
|00003de0| 6e 3b 0a 58 09 7d 0a 58 | 09 69 66 20 28 72 65 6c |n;.X.}.X|.if (rel|
|00003df0| 61 74 69 76 65 28 29 29 | 0a 58 09 7b 0a 58 09 09 |ative())|.X.{.X..|
|00003e00| 42 4d 59 20 2b 3d 20 6e | 2a 63 75 72 65 6e 76 2d |BMY += n|*curenv-|
|00003e10| 3e 6c 68 69 74 65 3b 0a | 58 09 09 69 66 20 28 6e |>lhite;.|X..if (n|
|00003e20| 20 3e 20 30 20 26 26 20 | 42 4d 59 20 3e 20 28 63 | > 0 && |BMY > (c|
|00003e30| 75 72 65 6e 76 2d 3e 74 | 6f 70 5f 6d 61 72 67 69 |urenv->t|op_margi|
|00003e40| 6e 2b 63 75 72 65 6e 76 | 2d 3e 74 65 78 74 5f 6c |n+curenv|->text_l|
|00003e50| 65 6e 29 2a 63 75 72 65 | 6e 76 2d 3e 6c 68 69 74 |en)*cure|nv->lhit|
|00003e60| 65 29 0a 58 09 09 7b 0a | 58 09 09 09 70 62 6d 65 |e).X..{.|X...pbme|
|00003e70| 6a 65 63 74 28 54 52 55 | 45 29 3b 0a 58 09 09 09 |ject(TRU|E);.X...|
|00003e80| 72 73 5f 72 6f 77 28 30 | 2e 30 29 3b 0a 58 09 09 |rs_row(0|.0);.X..|
|00003e90| 09 72 65 74 75 72 6e 3b | 0a 58 09 09 7d 0a 58 09 |.return;|.X..}.X.|
|00003ea0| 09 65 6c 73 65 20 69 66 | 20 28 42 4d 59 20 3c 20 |.else if| (BMY < |
|00003eb0| 30 29 0a 58 09 09 09 42 | 4d 59 20 3d 20 63 75 72 |0).X...B|MY = cur|
|00003ec0| 65 6e 76 2d 3e 74 6f 70 | 5f 64 6f 74 73 20 2a 20 |env->top|_dots * |
|00003ed0| 63 75 72 65 6e 76 2d 3e | 6c 68 69 74 65 3b 0a 58 |curenv->|lhite;.X|
|00003ee0| 09 7d 0a 58 09 65 6c 73 | 65 0a 58 09 09 42 4d 59 |.}.X.els|e.X..BMY|
|00003ef0| 20 3d 20 63 75 72 65 6e | 76 2d 3e 74 6f 70 5f 64 | = curen|v->top_d|
|00003f00| 6f 74 73 20 2b 20 6e 20 | 2a 20 63 75 72 65 6e 76 |ots + n |* curenv|
|00003f10| 2d 3e 6c 68 69 74 65 3b | 0a 58 09 42 4d 59 20 3d |->lhite;|.X.BMY =|
|00003f20| 20 6d 61 78 28 30 2e 30 | 2c 20 42 4d 59 29 3b 0a | max(0.0|, BMY);.|
|00003f30| 58 09 6c 61 72 67 65 73 | 74 20 3d 20 28 64 6f 75 |X.larges|t = (dou|
|00003f40| 62 6c 65 29 28 63 75 72 | 65 6e 76 2d 3e 74 6f 70 |ble)(cur|env->top|
|00003f50| 5f 6d 61 72 67 69 6e 2b | 63 75 72 65 6e 76 2d 3e |_margin+|curenv->|
|00003f60| 74 65 78 74 5f 6c 65 6e | 29 2a 63 75 72 65 6e 76 |text_len|)*curenv|
|00003f70| 2d 3e 6c 68 69 74 65 3b | 0a 58 09 42 4d 59 20 3d |->lhite;|.X.BMY =|
|00003f80| 20 6d 69 6e 28 42 4d 59 | 2c 20 6c 61 72 67 65 73 | min(BMY|, larges|
|00003f90| 74 29 3b 0a 58 7d 0a 58 | 68 61 6c 66 5f 6c 69 6e |t);.X}.X|half_lin|
|00003fa0| 65 66 65 65 64 28 29 0a | 58 7b 0a 58 09 42 4d 59 |efeed().|X{.X.BMY|
|00003fb0| 20 2b 3d 20 63 75 72 65 | 6e 76 2d 3e 6c 68 69 74 | += cure|nv->lhit|
|00003fc0| 65 2f 32 2e 30 3b 0a 58 | 7d 0a 58 2f 2a 20 64 6f |e/2.0;.X|}.X/* do|
|00003fd0| 74 74 79 20 73 74 75 66 | 66 20 2a 2a 2a 2a 2a 2a |tty stuf|f ******|
|00003fe0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003ff0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004000| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004010| 2a 2a 2a 2a 2a 2a 2a 20 | 2a 2f 0a 58 72 73 5f 6c |******* |*/.Xrs_l|
|00004020| 70 69 28 6e 29 0a 58 64 | 6f 75 62 6c 65 20 6e 3b |pi(n).Xd|ouble n;|
|00004030| 0a 58 7b 0a 58 09 69 6e | 74 20 70 65 6c 73 3b 0a |.X{.X.in|t pels;.|
|00004040| 58 0a 58 09 70 65 6c 73 | 20 3d 20 28 69 6e 74 29 |X.X.pels| = (int)|
|00004050| 6e 3b 0a 58 09 73 77 69 | 74 63 68 28 70 65 6c 73 |n;.X.swi|tch(pels|
|00004060| 29 0a 58 09 7b 0a 58 09 | 63 61 73 65 20 31 3a 09 |).X.{.X.|case 1:.|
|00004070| 09 63 75 72 65 6e 76 2d | 3e 6c 68 69 74 65 20 3d |.curenv-|>lhite =|
|00004080| 20 33 30 30 2e 30 3b 09 | 62 72 65 61 6b 3b 0a 58 | 300.0;.|break;.X|
|00004090| 09 63 61 73 65 20 32 3a | 09 09 63 75 72 65 6e 76 |.case 2:|..curenv|
|000040a0| 2d 3e 6c 68 69 74 65 20 | 3d 20 31 35 30 2e 30 3b |->lhite |= 150.0;|
|000040b0| 09 62 72 65 61 6b 3b 0a | 58 09 63 61 73 65 20 33 |.break;.|X.case 3|
|000040c0| 3a 09 09 63 75 72 65 6e | 76 2d 3e 6c 68 69 74 65 |:..curen|v->lhite|
|000040d0| 20 3d 20 31 30 30 2e 30 | 3b 09 62 72 65 61 6b 3b | = 100.0|;.break;|
|000040e0| 0a 58 09 63 61 73 65 20 | 34 3a 09 09 63 75 72 65 |.X.case |4:..cure|
|000040f0| 6e 76 2d 3e 6c 68 69 74 | 65 20 3d 20 20 37 35 2e |nv->lhit|e = 75.|
|00004100| 30 3b 09 62 72 65 61 6b | 3b 0a 58 09 63 61 73 65 |0;.break|;.X.case|
|00004110| 20 36 3a 09 09 63 75 72 | 65 6e 76 2d 3e 6c 68 69 | 6:..cur|env->lhi|
|00004120| 74 65 20 3d 20 20 35 30 | 2e 30 3b 09 62 72 65 61 |te = 50|.0;.brea|
|00004130| 6b 3b 0a 58 09 63 61 73 | 65 20 38 3a 09 09 63 75 |k;.X.cas|e 8:..cu|
|00004140| 72 65 6e 76 2d 3e 6c 68 | 69 74 65 20 3d 20 20 33 |renv->lh|ite = 3|
|00004150| 37 2e 35 3b 09 62 72 65 | 61 6b 3b 0a 58 09 63 61 |7.5;.bre|ak;.X.ca|
|00004160| 73 65 20 31 32 3a 09 63 | 75 72 65 6e 76 2d 3e 6c |se 12:.c|urenv->l|
|00004170| 68 69 74 65 20 3d 20 20 | 32 35 2e 30 3b 09 62 72 |hite = |25.0;.br|
|00004180| 65 61 6b 3b 0a 58 09 63 | 61 73 65 20 31 36 3a 09 |eak;.X.c|ase 16:.|
|00004190| 63 75 72 65 6e 76 2d 3e | 6c 68 69 74 65 20 3d 20 |curenv->|lhite = |
|000041a0| 20 31 38 2e 37 35 3b 09 | 62 72 65 61 6b 3b 0a 58 | 18.75;.|break;.X|
|000041b0| 09 63 61 73 65 20 32 34 | 3a 09 63 75 72 65 6e 76 |.case 24|:.curenv|
|000041c0| 2d 3e 6c 68 69 74 65 20 | 3d 20 20 31 32 2e 35 3b |->lhite |= 12.5;|
|000041d0| 09 62 72 65 61 6b 3b 0a | 58 09 63 61 73 65 20 34 |.break;.|X.case 4|
|000041e0| 38 3a 09 63 75 72 65 6e | 76 2d 3e 6c 68 69 74 65 |8:.curen|v->lhite|
|000041f0| 20 3d 20 20 20 36 2e 32 | 35 3b 09 62 72 65 61 6b | = 6.2|5;.break|
|00004200| 3b 0a 58 09 64 65 66 61 | 75 6c 74 3a 09 72 65 74 |;.X.defa|ult:.ret|
|00004210| 75 72 6e 3b 0a 58 09 7d | 0a 58 09 6c 70 69 20 3d |urn;.X.}|.X.lpi =|
|00004220| 20 6e 3b 0a 58 7d 0a 58 | 72 73 5f 76 6d 69 28 6e | n;.X}.X|rs_vmi(n|
|00004230| 29 0a 58 64 6f 75 62 6c | 65 20 6e 3b 0a 58 7b 0a |).Xdoubl|e n;.X{.|
|00004240| 58 09 69 66 20 28 6e 20 | 3e 3d 20 30 20 26 26 20 |X.if (n |>= 0 && |
|00004250| 6e 20 3c 20 31 32 36 29 | 0a 58 09 09 63 75 72 65 |n < 126)|.X..cure|
|00004260| 6e 76 2d 3e 6c 68 69 74 | 65 20 3d 20 6e 2a 33 30 |nv->lhit|e = n*30|
|00004270| 30 2f 34 38 3b 0a 58 7d | 0a 58 72 73 5f 68 6d 69 |0/48;.X}|.Xrs_hmi|
|00004280| 28 6e 29 0a 58 64 6f 75 | 62 6c 65 20 6e 3b 0a 58 |(n).Xdou|ble n;.X|
|00004290| 7b 0a 58 09 63 66 6e 20 | 3d 20 67 65 74 63 66 6e |{.X.cfn |= getcfn|
|000042a0| 28 29 3b 0a 58 09 69 66 | 20 28 6e 20 3e 3d 20 30 |();.X.if| (n >= 0|
|000042b0| 20 26 26 20 6e 20 3c 20 | 31 32 36 20 26 26 20 63 | && n < |126 && c|
|000042c0| 66 6e 2d 3e 61 63 74 69 | 76 65 29 20 7b 0a 58 09 |fn->acti|ve) {.X.|
|000042d0| 09 63 66 6e 2d 3e 73 70 | 61 63 65 5f 6c 65 6e 20 |.cfn->sp|ace_len |
|000042e0| 3d 20 6e 2a 33 30 30 2f | 31 32 30 3b 0a 58 09 09 |= n*300/|120;.X..|
|000042f0| 63 75 72 65 6e 76 2d 3e | 68 6d 69 20 3d 20 63 66 |curenv->|hmi = cf|
|00004300| 6e 2d 3e 73 70 61 63 65 | 5f 6c 65 6e 3b 0a 58 09 |n->space|_len;.X.|
|00004310| 7d 0a 58 7d 0a 58 72 73 | 5f 58 28 78 29 0a 58 64 |}.X}.Xrs|_X(x).Xd|
|00004320| 6f 75 62 6c 65 20 78 3b | 0a 58 7b 0a 58 09 69 66 |ouble x;|.X{.X.if|
|00004330| 20 28 72 65 6c 61 74 69 | 76 65 28 29 29 0a 58 09 | (relati|ve()).X.|
|00004340| 09 42 4d 58 20 2b 3d 20 | 78 3b 0a 58 09 65 6c 73 |.BMX += |x;.X.els|
|00004350| 65 20 42 4d 58 20 3d 20 | 78 3b 0a 58 09 42 4d 58 |e BMX = |x;.X.BMX|
|00004360| 20 3d 20 6d 61 78 28 30 | 2e 30 2c 20 42 4d 58 29 | = max(0|.0, BMX)|
|00004370| 3b 0a 58 09 09 09 2f 2a | 20 6d 61 78 20 3d 3d 20 |;.X.../*| max == |
|00004380| 72 69 67 68 74 6d 6f 73 | 74 20 6c 65 67 61 6c 20 |rightmos|t legal |
|00004390| 70 69 78 65 6c 20 2a 2f | 0a 58 09 09 09 2f 2a 20 |pixel */|.X.../* |
|000043a0| 77 6f 75 6c 64 20 62 65 | 20 70 69 78 65 6c 20 32 |would be| pixel 2|
|000043b0| 39 20 69 66 20 52 49 47 | 48 54 5f 4d 41 52 47 49 |9 if RIG|HT_MARGI|
|000043c0| 4e 20 3d 3d 20 30 20 2a | 2f 0a 58 09 42 4d 58 20 |N == 0 *|/.X.BMX |
|000043d0| 3d 20 6d 69 6e 28 42 4d | 58 2c 20 28 64 6f 75 62 |= min(BM|X, (doub|
|000043e0| 6c 65 29 28 28 31 2b 52 | 49 54 45 5f 4d 41 52 47 |le)((1+R|ITE_MARG|
|000043f0| 49 4e 29 2a 33 30 29 2d | 31 29 3b 09 0a 58 7d 0a |IN)*30)-|1);..X}.|
|00004400| 58 72 73 5f 59 28 79 2c | 64 65 63 69 70 74 29 0a |Xrs_Y(y,|decipt).|
|00004410| 58 64 6f 75 62 6c 65 20 | 79 3b 0a 58 69 6e 74 20 |Xdouble |y;.Xint |
|00004420| 64 65 63 69 70 74 3b 0a | 58 7b 0a 58 09 69 66 20 |decipt;.|X{.X.if |
|00004430| 28 72 65 6c 61 74 69 76 | 65 28 29 29 0a 58 09 09 |(relativ|e()).X..|
|00004440| 42 4d 59 20 2b 3d 20 79 | 3b 0a 58 09 65 6c 73 65 |BMY += y|;.X.else|
|00004450| 20 42 4d 59 20 3d 20 63 | 75 72 65 6e 76 2d 3e 74 | BMY = c|urenv->t|
|00004460| 6f 70 5f 64 6f 74 73 2b | 79 3b 0a 58 09 42 4d 59 |op_dots+|y;.X.BMY|
|00004470| 20 3d 20 6d 61 78 28 30 | 2e 30 2c 20 42 4d 59 29 | = max(0|.0, BMY)|
|00004480| 3b 0a 58 09 69 66 20 28 | 64 65 63 69 70 74 29 0a |;.X.if (|decipt).|
|00004490| 58 09 09 79 20 3d 20 50 | 41 47 45 5f 4c 45 4e 20 |X..y = P|AGE_LEN |
|000044a0| 2a 20 35 30 3b 0a 58 09 | 65 6c 73 65 20 79 20 3d |* 50;.X.|else y =|
|000044b0| 20 28 63 75 72 65 6e 76 | 2d 3e 74 6f 70 5f 6d 61 | (curenv|->top_ma|
|000044c0| 72 67 69 6e 2b 63 75 72 | 65 6e 76 2d 3e 74 65 78 |rgin+cur|env->tex|
|000044d0| 74 5f 6c 65 6e 29 2a 63 | 75 72 65 6e 76 2d 3e 6c |t_len)*c|urenv->l|
|000044e0| 68 69 74 65 3b 0a 58 09 | 42 4d 59 20 3d 20 6d 69 |hite;.X.|BMY = mi|
|000044f0| 6e 28 42 4d 59 2c 20 79 | 29 3b 0a 58 7d 0a 58 2f |n(BMY, y|);.X}.X/|
|00004500| 2a 20 66 6f 6e 74 20 73 | 65 74 74 69 6e 67 73 20 |* font s|ettings |
|00004510| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004520| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004530| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004540| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 20 2a 2f 0a 58 |********|*** */.X|
|00004550| 72 73 5f 73 79 6d 73 65 | 74 28 73 65 74 29 0a 58 |rs_symse|t(set).X|
|00004560| 69 6e 74 20 73 65 74 3b | 0a 58 7b 0a 58 09 6c 61 |int set;|.X{.X.la|
|00004570| 73 74 73 70 65 63 2e 73 | 79 6d 73 65 74 20 3d 20 |stspec.s|ymset = |
|00004580| 73 65 74 3b 0a 58 7d 0a | 58 72 73 5f 73 70 61 63 |set;.X}.|Xrs_spac|
|00004590| 69 6e 67 28 6e 29 0a 58 | 69 6e 74 20 6e 3b 0a 58 |ing(n).X|int n;.X|
|000045a0| 7b 0a 58 09 63 66 6e 20 | 3d 20 67 65 74 63 66 6e |{.X.cfn |= getcfn|
|000045b0| 28 29 3b 0a 58 09 63 66 | 6e 2d 3e 70 72 6f 70 5f |();.X.cf|n->prop_|
|000045c0| 73 70 61 63 65 64 20 3d | 20 6e 3b 0a 58 09 69 66 |spaced =| n;.X.if|
|000045d0| 20 28 63 66 6e 2d 3e 72 | 65 61 6c 5f 73 70 61 63 | (cfn->r|eal_spac|
|000045e0| 65 64 29 0a 58 09 7b 0a | 58 09 09 63 66 6e 2d 3e |ed).X.{.|X..cfn->|
|000045f0| 73 70 61 63 65 5f 6c 65 | 6e 20 3d 20 63 66 6e 2d |space_le|n = cfn-|
|00004600| 3e 72 65 61 6c 5f 73 70 | 61 63 65 5f 6c 65 6e 3b |>real_sp|ace_len;|
|00004610| 0a 58 09 09 63 75 72 65 | 6e 76 2d 3e 68 6d 69 20 |.X..cure|nv->hmi |
|00004620| 3d 20 63 66 6e 2d 3e 72 | 65 61 6c 5f 73 70 61 63 |= cfn->r|eal_spac|
|00004630| 65 5f 6c 65 6e 3b 0a 58 | 09 7d 0a 58 09 6c 61 73 |e_len;.X|.}.X.las|
|00004640| 74 73 70 65 63 2e 70 72 | 6f 70 5f 73 70 61 63 65 |tspec.pr|op_space|
|00004650| 64 20 3d 20 6e 3b 0a 58 | 7d 0a 58 72 73 5f 70 69 |d = n;.X|}.Xrs_pi|
|00004660| 74 63 68 28 6e 29 0a 58 | 64 6f 75 62 6c 65 20 6e |tch(n).X|double n|
|00004670| 3b 0a 58 7b 0a 58 09 6c | 61 73 74 73 70 65 63 2e |;.X{.X.l|astspec.|
|00004680| 70 69 74 63 68 20 3d 20 | 6e 3b 0a 58 09 74 72 79 |pitch = |n;.X.try|
|00004690| 5f 73 65 6c 65 63 74 20 | 3d 20 31 3b 0a 58 7d 0a |_select |= 1;.X}.|
|000046a0| 58 72 73 5f 70 6f 69 6e | 74 73 28 6e 29 0a 58 64 |Xrs_poin|ts(n).Xd|
|000046b0| 6f 75 62 6c 65 20 6e 3b | 0a 58 7b 0a 58 09 6c 61 |ouble n;|.X{.X.la|
|000046c0| 73 74 73 70 65 63 2e 70 | 6f 69 6e 74 73 20 3d 20 |stspec.p|oints = |
|000046d0| 6e 3b 0a 58 09 74 72 79 | 5f 73 65 6c 65 63 74 20 |n;.X.try|_select |
|000046e0| 3d 20 31 3b 0a 58 7d 0a | 58 72 73 5f 73 74 79 6c |= 1;.X}.|Xrs_styl|
|000046f0| 65 28 6e 29 0a 58 69 6e | 74 20 6e 3b 0a 58 7b 0a |e(n).Xin|t n;.X{.|
|00004700| 58 09 6c 61 73 74 73 70 | 65 63 2e 73 74 79 6c 65 |X.lastsp|ec.style|
|00004710| 20 3d 20 6e 3b 0a 58 09 | 74 72 79 5f 73 65 6c 65 | = n;.X.|try_sele|
|00004720| 63 74 20 3d 20 31 3b 0a | 58 7d 0a 58 72 73 5f 73 |ct = 1;.|X}.Xrs_s|
|00004730| 74 72 6f 6b 65 28 6e 29 | 0a 58 69 6e 74 20 6e 3b |troke(n)|.Xint n;|
|00004740| 0a 58 7b 0a 58 09 6c 61 | 73 74 73 70 65 63 2e 73 |.X{.X.la|stspec.s|
|00004750| 74 72 6f 6b 65 20 3d 20 | 6e 3b 0a 58 09 74 72 79 |troke = |n;.X.try|
|00004760| 5f 73 65 6c 65 63 74 20 | 3d 20 31 3b 0a 58 7d 0a |_select |= 1;.X}.|
|00004770| 58 72 73 5f 74 79 70 65 | 66 61 63 65 28 6e 29 0a |Xrs_type|face(n).|
|00004780| 58 69 6e 74 20 6e 3b 0a | 58 7b 0a 58 09 6c 61 73 |Xint n;.|X{.X.las|
|00004790| 74 73 70 65 63 2e 74 79 | 70 65 66 61 63 65 20 3d |tspec.ty|peface =|
|000047a0| 20 6e 3b 0a 58 09 74 72 | 79 5f 73 65 6c 65 63 74 | n;.X.tr|y_select|
|000047b0| 20 3d 20 31 3b 0a 58 7d | 0a 58 72 73 5f 73 65 74 | = 1;.X}|.Xrs_set|
|000047c0| 70 69 74 63 68 28 6e 29 | 0a 58 64 6f 75 62 6c 65 |pitch(n)|.Xdouble|
|000047d0| 20 6e 3b 0a 58 7b 0a 58 | 09 63 66 6e 20 3d 20 67 | n;.X{.X|.cfn = g|
|000047e0| 65 74 63 66 6e 28 29 3b | 0a 58 09 69 66 20 28 21 |etcfn();|.X.if (!|
|000047f0| 63 66 6e 2d 3e 70 72 6f | 70 5f 73 70 61 63 65 64 |cfn->pro|p_spaced|
|00004800| 29 0a 58 09 7b 0a 58 09 | 09 63 66 6e 2d 3e 73 70 |).X.{.X.|.cfn->sp|
|00004810| 61 63 65 5f 6c 65 6e 20 | 3d 20 33 30 30 2f 6e 3b |ace_len |= 300/n;|
|00004820| 0a 58 09 09 63 75 72 65 | 6e 76 2d 3e 68 6d 69 20 |.X..cure|nv->hmi |
|00004830| 3d 20 63 66 6e 2d 3e 73 | 70 61 63 65 5f 6c 65 6e |= cfn->s|pace_len|
|00004840| 3b 0a 58 09 7d 0a 58 7d | 0a 58 2f 2a 20 75 6e 63 |;.X.}.X}|.X/* unc|
|00004850| 6c 61 73 73 69 66 69 65 | 64 20 2a 2a 2a 2a 2a 2a |lassifie|d ******|
|00004860| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004870| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004880| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004890| 2a 2a 2a 2a 2a 2a 20 2a | 2f 0a 58 72 73 5f 75 6c |****** *|/.Xrs_ul|
|000048a0| 28 6e 29 0a 58 64 6f 75 | 62 6c 65 20 6e 3b 0a 58 |(n).Xdou|ble n;.X|
|000048b0| 7b 0a 58 09 63 75 72 65 | 6e 76 2d 3e 75 6e 64 65 |{.X.cure|nv->unde|
|000048c0| 72 6c 69 6e 65 20 3d 20 | 28 69 6e 74 29 6e 3b 0a |rline = |(int)n;.|
|000048d0| 58 7d 0a 58 72 73 5f 74 | 68 72 75 28 6e 29 0a 58 |X}.Xrs_t|hru(n).X|
|000048e0| 64 6f 75 62 6c 65 20 6e | 3b 0a 58 7b 0a 58 09 73 |double n|;.X{.X.s|
|000048f0| 65 65 5f 74 68 72 75 20 | 3d 20 28 69 6e 74 29 6e |ee_thru |= (int)n|
|00004900| 3b 0a 58 7d 0a 58 72 73 | 5f 73 74 61 63 6b 28 6e |;.X}.Xrs|_stack(n|
|00004910| 29 0a 58 64 6f 75 62 6c | 65 20 6e 3b 0a 58 7b 0a |).Xdoubl|e n;.X{.|
|00004920| 58 09 73 74 72 75 63 74 | 20 53 54 41 43 4b 20 2a |X.struct| STACK *|
|00004930| 73 74 3b 0a 58 0a 58 09 | 69 66 20 28 6e 20 26 26 |st;.X.X.|if (n &&|
|00004940| 20 73 74 61 63 6b 70 6f | 73 20 3e 20 30 29 0a 58 | stackpo|s > 0).X|
|00004950| 09 7b 0a 58 09 09 73 74 | 20 3d 20 26 73 74 61 63 |.{.X..st| = &stac|
|00004960| 6b 5b 2d 2d 73 74 61 63 | 6b 70 6f 73 5d 3b 0a 58 |k[--stac|kpos];.X|
|00004970| 09 09 42 4d 58 20 3d 20 | 73 74 2d 3e 42 4d 58 3b |..BMX = |st->BMX;|
|00004980| 0a 58 09 09 42 4d 59 20 | 3d 20 73 74 2d 3e 42 4d |.X..BMY |= st->BM|
|00004990| 59 3b 0a 58 09 7d 0a 58 | 09 65 6c 73 65 20 69 66 |Y;.X.}.X|.else if|
|000049a0| 20 28 28 21 6e 29 20 26 | 26 20 73 74 61 63 6b 70 | ((!n) &|& stackp|
|000049b0| 6f 73 20 3c 20 4d 41 58 | 5f 50 55 53 48 4e 50 4f |os < MAX|_PUSHNPO|
|000049c0| 50 2d 31 29 0a 58 09 7b | 0a 58 09 09 73 74 20 3d |P-1).X.{|.X..st =|
|000049d0| 20 26 73 74 61 63 6b 5b | 73 74 61 63 6b 70 6f 73 | &stack[|stackpos|
|000049e0| 2b 2b 5d 3b 0a 58 09 09 | 73 74 2d 3e 42 4d 58 20 |++];.X..|st->BMX |
|000049f0| 3d 20 42 4d 58 3b 0a 58 | 09 09 73 74 2d 3e 42 4d |= BMX;.X|..st->BM|
|00004a00| 59 20 3d 20 42 4d 59 3b | 0a 58 09 7d 0a 58 7d 0a |Y = BMY;|.X.}.X}.|
|00004a10| 58 23 69 66 64 65 66 09 | 54 52 49 4d 50 41 47 45 |X#ifdef.|TRIMPAGE|
|00004a20| 0a 58 72 73 5f 79 6d 61 | 78 28 6e 29 09 2f 2a 20 |.Xrs_yma|x(n)./* |
|00004a30| 75 73 65 64 20 74 6f 20 | 66 6f 72 63 65 20 66 75 |used to |force fu|
|00004a40| 6c 6c 20 68 65 69 67 68 | 74 20 31 73 74 20 70 61 |ll heigh|t 1st pa|
|00004a50| 67 65 2c 20 66 61 78 70 | 61 6b 20 72 65 6c 61 74 |ge, faxp|ak relat|
|00004a60| 65 64 20 2a 2f 0a 58 69 | 6e 74 20 6e 3b 0a 58 7b |ed */.Xi|nt n;.X{|
|00004a70| 0a 58 09 79 6d 61 78 5f | 75 73 65 64 20 3d 20 79 |.X.ymax_|used = y|
|00004a80| 73 63 61 6c 65 5b 6e 5d | 3b 0a 58 7d 0a 58 23 65 |scale[n]|;.X}.X#e|
|00004a90| 6e 64 69 66 0a 58 2f 2a | 20 66 6f 6e 74 20 77 6f |ndif.X/*| font wo|
|00004aa0| 72 6b 20 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |rk *****|********|
|00004ab0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004ac0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004ad0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004ae0| 2a 2a 20 2a 2f 0a 58 72 | 73 5f 66 6f 6e 74 28 6e |** */.Xr|s_font(n|
|00004af0| 2c 20 70 74 79 70 65 29 | 0a 58 69 6e 74 20 6e 2c |, ptype)|.Xint n,|
|00004b00| 20 70 74 79 70 65 3b 09 | 2f 2a 20 73 65 63 6f 6e | ptype;.|/* secon|
|00004b10| 64 61 72 79 20 6f 72 20 | 70 72 69 6d 61 72 79 2c |dary or |primary,|
|00004b20| 20 6e 6f 74 20 79 65 74 | 20 75 73 65 64 20 2a 2f | not yet| used */|
|00004b30| 0a 58 7b 0a 58 09 69 6e | 74 20 69 3b 0a 58 09 73 |.X{.X.in|t i;.X.s|
|00004b40| 74 72 75 63 74 20 48 50 | 46 4f 4e 54 20 2a 63 66 |truct HP|FONT *cf|
|00004b50| 3b 0a 58 0a 58 09 66 6f | 72 20 28 69 3d 30 3b 20 |;.X.X.fo|r (i=0; |
|00004b60| 69 3c 4d 41 58 5f 46 4f | 4e 54 3b 20 69 2b 2b 29 |i<MAX_FO|NT; i++)|
|00004b70| 0a 58 09 7b 0a 58 09 09 | 63 66 20 3d 20 26 68 70 |.X.{.X..|cf = &hp|
|00004b80| 66 6f 6e 74 73 5b 69 5d | 3b 0a 58 09 09 69 66 20 |fonts[i]|;.X..if |
|00004b90| 28 63 66 2d 3e 61 63 74 | 69 76 65 20 26 26 20 63 |(cf->act|ive && c|
|00004ba0| 66 2d 3e 66 49 44 20 3d | 3d 20 6e 29 0a 58 09 09 |f->fID =|= n).X..|
|00004bb0| 7b 0a 58 09 09 09 6f 72 | 67 65 6e 76 2e 63 75 72 |{.X...or|genv.cur|
|00004bc0| 5f 66 6e 74 20 3d 20 69 | 3b 0a 58 09 09 09 6f 72 |_fnt = i|;.X...or|
|00004bd0| 67 65 6e 76 2e 63 75 72 | 5f 66 49 44 20 3d 20 6e |genv.cur|_fID = n|
|00004be0| 3b 0a 58 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 09 |;.X...br|eak;.X..|
|00004bf0| 7d 0a 58 09 7d 0a 58 09 | 69 66 20 28 69 20 3d 3d |}.X.}.X.|if (i ==|
|00004c00| 20 4d 41 58 5f 46 4f 4e | 54 29 0a 58 09 09 64 69 | MAX_FON|T).X..di|
|00004c10| 65 28 22 66 6f 6e 74 20 | 25 64 20 6e 6f 74 20 66 |e("font |%d not f|
|00004c20| 6f 75 6e 64 5c 6e 22 2c | 6e 29 3b 0a 58 0a 58 09 |ound\n",|n);.X.X.|
|00004c30| 63 66 6e 20 3d 20 26 68 | 70 66 6f 6e 74 73 5b 6f |cfn = &h|pfonts[o|
|00004c40| 72 67 65 6e 76 2e 63 75 | 72 5f 66 6e 74 5d 3b 0a |rgenv.cu|r_fnt];.|
|00004c50| 58 09 63 66 6e 2d 3e 73 | 70 61 63 65 5f 6c 65 6e |X.cfn->s|pace_len|
|00004c60| 20 3d 20 63 66 6e 2d 3e | 72 65 61 6c 5f 73 70 61 | = cfn->|real_spa|
|00004c70| 63 65 5f 6c 65 6e 3b 0a | 58 09 63 75 72 65 6e 76 |ce_len;.|X.curenv|
|00004c80| 2d 3e 68 6d 69 20 3d 20 | 63 66 6e 2d 3e 73 70 61 |->hmi = |cfn->spa|
|00004c90| 63 65 5f 6c 65 6e 3b 0a | 58 09 63 75 72 65 6e 76 |ce_len;.|X.curenv|
|00004ca0| 2d 3e 63 75 72 5f 66 49 | 44 20 3d 20 6e 3b 0a 58 |->cur_fI|D = n;.X|
|00004cb0| 7d 0a 58 72 73 5f 66 63 | 5f 63 74 6c 28 6e 29 0a |}.Xrs_fc|_ctl(n).|
|00004cc0| 58 64 6f 75 62 6c 65 20 | 6e 3b 0a 58 7b 0a 58 09 |Xdouble |n;.X{.X.|
|00004cd0| 73 77 69 74 63 68 28 28 | 69 6e 74 29 6e 29 0a 58 |switch((|int)n).X|
|00004ce0| 09 7b 0a 58 09 63 61 73 | 65 20 30 3a 09 09 63 6c |.{.X.cas|e 0:..cl|
|00004cf0| 65 61 72 61 6c 6c 66 6f | 6e 74 73 28 29 3b 09 62 |earallfo|nts();.b|
|00004d00| 72 65 61 6b 3b 0a 58 09 | 63 61 73 65 20 31 3a 09 |reak;.X.|case 1:.|
|00004d10| 09 63 6c 65 61 72 66 6f | 6e 74 73 28 54 45 4d 50 |.clearfo|nts(TEMP|
|00004d20| 4f 52 41 52 59 29 3b 09 | 62 72 65 61 6b 3b 0a 58 |ORARY);.|break;.X|
|00004d30| 09 63 61 73 65 20 32 3a | 09 09 63 6c 65 61 72 63 |.case 2:|..clearc|
|00004d40| 75 72 66 6f 6e 74 28 29 | 3b 09 09 62 72 65 61 6b |urfont()|;..break|
|00004d50| 3b 0a 58 09 63 61 73 65 | 20 33 3a 09 09 63 6c 65 |;.X.case| 3:..cle|
|00004d60| 61 72 6c 61 73 74 63 68 | 61 72 28 29 3b 09 62 72 |arlastch|ar();.br|
|00004d70| 65 61 6b 3b 0a 58 09 63 | 61 73 65 20 34 3a 09 09 |eak;.X.c|ase 4:..|
|00004d80| 6d 61 6b 65 66 74 79 70 | 65 28 54 45 4d 50 4f 52 |makeftyp|e(TEMPOR|
|00004d90| 41 52 59 29 3b 09 62 72 | 65 61 6b 3b 0a 58 09 63 |ARY);.br|eak;.X.c|
|00004da0| 61 73 65 20 35 3a 09 09 | 6d 61 6b 65 66 74 79 70 |ase 5:..|makeftyp|
|00004db0| 65 28 50 45 52 4d 41 4e | 45 4e 54 29 3b 09 62 72 |e(PERMAN|ENT);.br|
|00004dc0| 65 61 6b 3b 0a 58 09 63 | 61 73 65 20 36 3a 09 09 |eak;.X.c|ase 6:..|
|00004dd0| 63 66 6e 20 3d 20 67 65 | 74 63 66 6e 28 29 3b 0a |cfn = ge|tcfn();.|
|00004de0| 58 09 09 09 63 66 6e 2d | 3e 66 49 44 20 3d 20 63 |X...cfn-|>fID = c|
|00004df0| 75 72 65 6e 76 2d 3e 63 | 75 72 5f 66 49 44 20 3d |urenv->c|ur_fID =|
|00004e00| 20 6c 61 73 74 66 6f 6e | 74 69 64 3b 0a 58 09 09 | lastfon|tid;.X..|
|00004e10| 09 69 66 20 28 21 63 66 | 6e 2d 3e 62 75 69 6c 74 |.if (!cf|n->built|
|00004e20| 69 6e 29 0a 58 09 09 09 | 09 63 66 6e 2d 3e 70 65 |in).X...|.cfn->pe|
|00004e30| 72 6d 74 79 70 65 20 3d | 20 54 45 4d 50 4f 52 41 |rmtype =| TEMPORA|
|00004e40| 52 59 3b 0a 58 09 09 09 | 62 72 65 61 6b 3b 0a 58 |RY;.X...|break;.X|
|00004e50| 09 7d 0a 58 7d 0a 58 63 | 72 65 61 74 65 5f 66 6e |.}.X}.Xc|reate_fn|
|00004e60| 74 68 64 72 28 6f 72 69 | 65 6e 74 2c 73 79 6d 73 |thdr(ori|ent,syms|
|00004e70| 65 74 2c 70 72 6f 70 2c | 70 69 74 63 68 2c 73 74 |et,prop,|pitch,st|
|00004e80| 79 6c 65 2c 73 74 72 6f | 6b 65 2c 66 61 63 65 2c |yle,stro|ke,face,|
|00004e90| 70 74 29 0a 58 69 6e 74 | 20 6f 72 69 65 6e 74 2c |pt).Xint| orient,|
|00004ea0| 73 79 6d 73 65 74 2c 70 | 72 6f 70 2c 70 69 74 63 |symset,p|rop,pitc|
|00004eb0| 68 2c 73 74 79 6c 65 2c | 73 74 72 6f 6b 65 2c 66 |h,style,|stroke,f|
|00004ec0| 61 63 65 3b 0a 58 64 6f | 75 62 6c 65 20 70 74 3b |ace;.Xdo|uble pt;|
|00004ed0| 0a 58 7b 0a 58 09 73 74 | 61 74 69 63 20 73 74 72 |.X{.X.st|atic str|
|00004ee0| 75 63 74 20 48 50 46 4f | 4e 54 20 2a 68 70 66 3b |uct HPFO|NT *hpf;|
|00004ef0| 0a 58 09 69 6e 74 20 69 | 3b 0a 58 0a 58 09 69 66 |.X.int i|;.X.X.if|
|00004f00| 20 28 63 75 72 65 6e 76 | 2d 3e 63 75 72 5f 66 6e | (curenv|->cur_fn|
|00004f10| 74 20 3c 20 30 20 7c 7c | 20 63 75 72 65 6e 76 2d |t < 0 ||| curenv-|
|00004f20| 3e 63 75 72 5f 66 6e 74 | 20 3e 3d 20 4d 41 58 5f |>cur_fnt| >= MAX_|
|00004f30| 46 4f 4e 54 29 0a 58 09 | 09 64 69 65 28 22 64 6f |FONT).X.|.die("do|
|00004f40| 6e 27 74 20 6b 6e 6f 77 | 20 66 6f 6e 74 20 25 64 |n't know| font %d|
|00004f50| 5c 6e 22 2c 63 75 72 65 | 6e 76 2d 3e 63 75 72 5f |\n",cure|nv->cur_|
|00004f60| 66 6e 74 29 3b 0a 58 09 | 69 66 20 28 62 75 69 6c |fnt);.X.|if (buil|
|00004f70| 74 69 6e 20 3e 20 2d 31 | 20 26 26 20 62 75 69 6c |tin > -1| && buil|
|00004f80| 74 69 6e 20 3c 20 4d 41 | 58 5f 46 4f 4e 54 29 0a |tin < MA|X_FONT).|
|00004f90| 58 09 09 68 70 66 20 3d | 20 26 68 70 66 6f 6e 74 |X..hpf =| &hpfont|
|00004fa0| 73 5b 62 75 69 6c 74 69 | 6e 5d 3b 0a 58 09 65 6c |s[builti|n];.X.el|
|00004fb0| 73 65 0a 58 09 7b 0a 58 | 09 09 69 66 20 28 28 68 |se.X.{.X|..if ((h|
|00004fc0| 70 66 20 3d 20 66 69 6e | 64 6c 73 74 69 64 28 29 |pf = fin|dlstid()|
|00004fd0| 29 20 3d 3d 20 28 73 74 | 72 75 63 74 20 48 50 46 |) == (st|ruct HPF|
|00004fe0| 4f 4e 54 2a 29 4e 55 4c | 4c 29 0a 58 09 09 7b 0a |ONT*)NUL|L).X..{.|
|00004ff0| 58 09 09 09 66 6f 72 20 | 28 69 3d 30 3b 20 69 3c |X...for |(i=0; i<|
|00005000| 4d 41 58 5f 46 4f 4e 54 | 3b 20 69 2b 2b 29 0a 58 |MAX_FONT|; i++).X|
|00005010| 09 09 09 7b 0a 58 09 09 | 09 09 68 70 66 20 3d 20 |...{.X..|..hpf = |
|00005020| 26 68 70 66 6f 6e 74 73 | 5b 69 5d 3b 0a 58 09 09 |&hpfonts|[i];.X..|
|00005030| 09 09 69 66 20 28 21 68 | 70 66 2d 3e 61 63 74 69 |..if (!h|pf->acti|
|00005040| 76 65 29 0a 58 09 09 09 | 09 7b 0a 58 09 09 09 09 |ve).X...|.{.X....|
|00005050| 09 68 70 66 2d 3e 61 63 | 74 69 76 65 20 3d 20 54 |.hpf->ac|tive = T|
|00005060| 52 55 45 3b 0a 58 09 09 | 09 09 09 68 70 66 2d 3e |RUE;.X..|...hpf->|
|00005070| 66 49 44 20 3d 20 63 75 | 72 65 6e 76 2d 3e 63 75 |fID = cu|renv->cu|
|00005080| 72 5f 66 49 44 20 3d 20 | 6c 61 73 74 66 6f 6e 74 |r_fID = |lastfont|
|00005090| 69 64 3b 0a 58 09 09 09 | 09 09 6f 72 67 65 6e 76 |id;.X...|..orgenv|
|000050a0| 2e 63 75 72 5f 66 6e 74 | 20 3d 20 63 75 72 65 6e |.cur_fnt| = curen|
|000050b0| 76 2d 3e 63 75 72 5f 66 | 6e 74 20 3d 20 69 3b 0a |v->cur_f|nt = i;.|
|000050c0| 58 09 09 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 09 |X.....br|eak;.X..|
|000050d0| 09 09 7d 0a 58 09 09 09 | 7d 0a 58 09 09 09 69 66 |..}.X...|}.X...if|
|000050e0| 20 28 69 20 3d 3d 20 4d | 41 58 5f 46 4f 4e 54 29 | (i == M|AX_FONT)|
|000050f0| 0a 58 09 09 09 09 64 69 | 65 28 22 74 6f 6f 20 6d |.X....di|e("too m|
|00005100| 61 6e 79 20 66 6f 6e 74 | 73 5c 6e 22 29 3b 0a 58 |any font|s\n");.X|
|00005110| 09 09 7d 0a 58 09 7d 0a | 58 0a 58 09 68 70 66 2d |..}.X.}.|X.X.hpf-|
|00005120| 3e 72 65 61 6c 5f 73 70 | 61 63 65 5f 6c 65 6e 20 |>real_sp|ace_len |
|00005130| 3d 20 70 69 74 63 68 2f | 34 3b 0a 58 09 68 70 66 |= pitch/|4;.X.hpf|
|00005140| 2d 3e 73 70 61 63 65 5f | 6c 65 6e 20 3d 20 68 70 |->space_|len = hp|
|00005150| 66 2d 3e 72 65 61 6c 5f | 73 70 61 63 65 5f 6c 65 |f->real_|space_le|
|00005160| 6e 3b 0a 58 09 68 70 66 | 2d 3e 63 68 61 72 73 5b |n;.X.hpf|->chars[|
|00005170| 27 20 27 5d 2e 63 6c 65 | 6e 20 3d 20 68 70 66 2d |' '].cle|n = hpf-|
|00005180| 3e 73 70 61 63 65 5f 6c | 65 6e 3b 0a 58 09 63 75 |>space_l|en;.X.cu|
|00005190| 72 65 6e 76 2d 3e 68 6d | 69 20 3d 20 68 70 66 2d |renv->hm|i = hpf-|
|000051a0| 3e 73 70 61 63 65 5f 6c | 65 6e 3b 0a 58 0a 58 09 |>space_l|en;.X.X.|
|000051b0| 68 70 66 2d 3e 70 72 6f | 70 5f 73 70 61 63 65 64 |hpf->pro|p_spaced|
|000051c0| 20 3d 20 68 70 66 2d 3e | 72 65 61 6c 5f 73 70 61 | = hpf->|real_spa|
|000051d0| 63 65 64 20 3d 20 70 72 | 6f 70 3b 0a 58 09 68 70 |ced = pr|op;.X.hp|
|000051e0| 66 2d 3e 70 72 69 6d 74 | 79 70 65 20 3d 20 54 45 |f->primt|ype = TE|
|000051f0| 4d 50 4f 52 41 52 59 3b | 09 2f 2a 20 68 70 20 75 |MPORARY;|./* hp u|
|00005200| 73 65 72 73 20 6d 61 6e | 75 61 6c 20 68 70 32 36 |sers man|ual hp26|
|00005210| 38 36 61 2c 20 34 2d 34 | 39 20 2a 2f 0a 58 09 68 |86a, 4-4|9 */.X.h|
|00005220| 70 66 2d 3e 66 6f 6e 74 | 5f 61 74 74 73 2e 6f 72 |pf->font|_atts.or|
|00005230| 69 65 6e 74 20 3d 20 6f | 72 69 65 6e 74 3b 0a 58 |ient = o|rient;.X|
|00005240| 09 68 70 66 2d 3e 66 6f | 6e 74 5f 61 74 74 73 2e |.hpf->fo|nt_atts.|
|00005250| 73 79 6d 73 65 74 20 3d | 20 73 79 6d 73 65 74 3b |symset =| symset;|
|00005260| 0a 58 09 68 70 66 2d 3e | 66 6f 6e 74 5f 61 74 74 |.X.hpf->|font_att|
|00005270| 73 2e 70 72 6f 70 5f 73 | 70 61 63 65 64 20 3d 20 |s.prop_s|paced = |
|00005280| 70 72 6f 70 3b 0a 58 09 | 68 70 66 2d 3e 66 6f 6e |prop;.X.|hpf->fon|
|00005290| 74 5f 61 74 74 73 2e 70 | 69 74 63 68 20 3d 20 34 |t_atts.p|itch = 4|
|000052a0| 2e 30 2a 33 30 30 2e 30 | 2f 28 64 6f 75 62 6c 65 |.0*300.0|/(double|
|000052b0| 29 70 69 74 63 68 3b 0a | 58 09 68 70 66 2d 3e 66 |)pitch;.|X.hpf->f|
|000052c0| 6f 6e 74 5f 61 74 74 73 | 2e 70 6f 69 6e 74 73 20 |ont_atts|.points |
|000052d0| 3d 20 70 74 3b 0a 58 09 | 68 70 66 2d 3e 66 6f 6e |= pt;.X.|hpf->fon|
|000052e0| 74 5f 61 74 74 73 2e 73 | 74 79 6c 65 20 3d 20 73 |t_atts.s|tyle = s|
|000052f0| 74 79 6c 65 3b 0a 58 09 | 68 70 66 2d 3e 66 6f 6e |tyle;.X.|hpf->fon|
|00005300| 74 5f 61 74 74 73 2e 73 | 74 72 6f 6b 65 20 3d 20 |t_atts.s|troke = |
|00005310| 73 74 72 6f 6b 65 3b 0a | 58 09 68 70 66 2d 3e 66 |stroke;.|X.hpf->f|
|00005320| 6f 6e 74 5f 61 74 74 73 | 2e 74 79 70 65 66 61 63 |ont_atts|.typefac|
|00005330| 65 20 3d 20 66 61 63 65 | 3b 0a 58 7d 0a 58 63 68 |e = face|;.X}.Xch|
|00005340| 61 72 5f 64 6f 77 6e 6c | 6f 61 64 28 63 2c 69 64 |ar_downl|oad(c,id|
|00005350| 2c 6c 65 66 74 2c 74 6f | 70 2c 77 69 64 74 68 2c |,left,to|p,width,|
|00005360| 68 69 74 65 2c 64 65 6c | 74 61 2c 62 75 66 29 0a |hite,del|ta,buf).|
|00005370| 58 69 6e 74 20 63 2c 69 | 64 2c 6c 65 66 74 2c 74 |Xint c,i|d,left,t|
|00005380| 6f 70 2c 77 69 64 74 68 | 2c 68 69 74 65 2c 64 65 |op,width|,hite,de|
|00005390| 6c 74 61 3b 0a 58 75 63 | 68 61 72 20 2a 62 75 66 |lta;.Xuc|har *buf|
|000053a0| 3b 0a 58 7b 0a 58 09 73 | 74 72 75 63 74 20 43 48 |;.X{.X.s|truct CH|
|000053b0| 41 52 5f 42 49 54 4d 41 | 50 20 2a 63 62 6d 3b 0a |AR_BITMA|P *cbm;.|
|000053c0| 58 09 73 74 72 75 63 74 | 20 48 50 46 4f 4e 54 20 |X.struct| HPFONT |
|000053d0| 2a 63 66 3b 0a 58 09 69 | 6e 74 20 69 3b 0a 58 0a |*cf;.X.i|nt i;.X.|
|000053e0| 58 09 69 66 20 28 62 75 | 69 6c 74 69 6e 20 3e 20 |X.if (bu|iltin > |
|000053f0| 2d 31 20 26 26 20 62 75 | 69 6c 74 69 6e 20 3c 20 |-1 && bu|iltin < |
|00005400| 4d 41 58 5f 46 4f 4e 54 | 29 0a 58 09 7b 0a 58 09 |MAX_FONT|).X.{.X.|
|00005410| 09 63 66 20 3d 20 26 68 | 70 66 6f 6e 74 73 5b 62 |.cf = &h|pfonts[b|
|00005420| 75 69 6c 74 69 6e 5d 3b | 0a 58 09 09 69 20 3d 20 |uiltin];|.X..i = |
|00005430| 62 75 69 6c 74 69 6e 3b | 0a 58 09 7d 0a 58 09 65 |builtin;|.X.}.X.e|
|00005440| 6c 73 65 0a 58 09 7b 0a | 58 09 09 66 6f 72 20 28 |lse.X.{.|X..for (|
|00005450| 69 3d 30 3b 20 69 3c 4d | 41 58 5f 46 4f 4e 54 3b |i=0; i<M|AX_FONT;|
|00005460| 20 69 2b 2b 29 0a 58 09 | 09 7b 0a 58 09 09 09 63 | i++).X.|.{.X...c|
|00005470| 66 20 3d 20 26 68 70 66 | 6f 6e 74 73 5b 69 5d 3b |f = &hpf|onts[i];|
|00005480| 0a 58 09 09 09 69 66 20 | 28 63 66 2d 3e 61 63 74 |.X...if |(cf->act|
|00005490| 69 76 65 20 26 26 20 63 | 66 2d 3e 66 49 44 20 3d |ive && c|f->fID =|
|000054a0| 3d 20 69 64 29 0a 58 09 | 09 09 09 62 72 65 61 6b |= id).X.|...break|
|000054b0| 3b 0a 58 09 09 7d 0a 58 | 09 7d 0a 58 09 69 66 20 |;.X..}.X|.}.X.if |
|000054c0| 28 69 20 3d 3d 20 4d 41 | 58 5f 46 4f 4e 54 29 0a |(i == MA|X_FONT).|
|000054d0| 58 09 09 64 69 65 28 22 | 63 61 6e 27 74 20 64 6f |X..die("|can't do|
|000054e0| 77 6e 6c 6f 61 64 20 61 | 20 63 68 61 72 20 77 69 |wnload a| char wi|
|000054f0| 74 68 6f 75 74 20 66 6f | 6e 74 20 68 65 61 64 65 |thout fo|nt heade|
|00005500| 72 5c 6e 22 29 3b 0a 58 | 0a 58 09 63 62 6d 20 3d |r\n");.X|.X.cbm =|
|00005510| 20 26 63 66 2d 3e 63 68 | 61 72 73 5b 63 5d 3b 0a | &cf->ch|ars[c];.|
|00005520| 58 09 63 75 72 65 6e 76 | 2d 3e 63 75 72 5f 63 68 |X.curenv|->cur_ch|
|00005530| 72 20 3d 20 63 3b 0a 58 | 0a 58 09 69 66 20 28 63 |r = c;.X|.X.if (c|
|00005540| 62 6d 2d 3e 68 69 74 65 | 20 26 26 20 63 62 6d 2d |bm->hite| && cbm-|
|00005550| 3e 43 48 29 0a 58 09 09 | 63 6c 65 61 72 63 68 61 |>CH).X..|clearcha|
|00005560| 72 28 63 62 6d 29 3b 0a | 58 0a 58 09 63 62 6d 2d |r(cbm);.|X.X.cbm-|
|00005570| 3e 6c 6f 66 66 73 20 3d | 20 6c 65 66 74 3b 0a 58 |>loffs =| left;.X|
|00005580| 09 63 62 6d 2d 3e 74 6f | 66 66 73 20 3d 20 74 6f |.cbm->to|ffs = to|
|00005590| 70 3b 0a 58 09 69 66 20 | 28 77 69 64 74 68 25 38 |p;.X.if |(width%8|
|000055a0| 29 0a 58 09 09 63 62 6d | 2d 3e 6c 65 6e 20 3d 20 |).X..cbm|->len = |
|000055b0| 77 69 64 74 68 2f 38 20 | 2b 20 31 3b 0a 58 09 65 |width/8 |+ 1;.X.e|
|000055c0| 6c 73 65 20 63 62 6d 2d | 3e 6c 65 6e 20 3d 20 77 |lse cbm-|>len = w|
|000055d0| 69 64 74 68 2f 38 3b 0a | 58 09 63 62 6d 2d 3e 68 |idth/8;.|X.cbm->h|
|000055e0| 69 74 65 20 3d 20 68 69 | 74 65 3b 0a 58 09 69 66 |ite = hi|te;.X.if|
|000055f0| 20 28 28 63 62 6d 2d 3e | 63 6c 65 6e 20 3d 20 64 | ((cbm->|clen = d|
|00005600| 65 6c 74 61 2f 34 29 20 | 3d 3d 20 30 29 0a 58 09 |elta/4) |== 0).X.|
|00005610| 09 63 62 6d 2d 3e 63 6c | 65 6e 20 3d 20 38 2a 63 |.cbm->cl|en = 8*c|
|00005620| 62 6d 2d 3e 6c 65 6e 3b | 09 2f 2a 20 79 65 73 2c |bm->len;|./* yes,|
|00005630| 20 49 20 64 6f 20 68 61 | 76 65 20 73 6f 6d 65 20 | I do ha|ve some |
|00005640| 73 74 72 61 6e 67 65 20 | 66 6f 6e 74 73 20 2a 2f |strange |fonts */|
|00005650| 0a 58 0a 58 09 69 66 20 | 28 21 63 66 2d 3e 70 72 |.X.X.if |(!cf->pr|
|00005660| 6f 70 5f 73 70 61 63 65 | 64 20 26 26 20 63 20 3d |op_space|d && c =|
|00005670| 3d 20 27 78 27 20 26 26 | 20 28 21 63 66 2d 3e 63 |= 'x' &&| (!cf->c|
|00005680| 68 61 72 73 5b 27 20 27 | 5d 2e 63 6c 65 6e 29 29 |hars[' '|].clen))|
|00005690| 0a 58 09 09 63 66 2d 3e | 73 70 61 63 65 5f 6c 65 |.X..cf->|space_le|
|000056a0| 6e 20 3d 20 63 62 6d 2d | 3e 63 6c 65 6e 3b 0a 58 |n = cbm-|>clen;.X|
|000056b0| 0a 58 09 62 75 66 20 2b | 3d 20 73 69 7a 65 6f 66 |.X.buf +|= sizeof|
|000056c0| 28 73 74 72 75 63 74 20 | 64 6f 77 6e 6c 6f 61 64 |(struct |download|
|000056d0| 29 3b 0a 58 09 69 66 20 | 28 28 63 62 6d 2d 3e 43 |);.X.if |((cbm->C|
|000056e0| 48 20 3d 20 28 75 63 68 | 61 72 2a 2a 29 6d 61 6c |H = (uch|ar**)mal|
|000056f0| 6c 6f 63 28 68 69 74 65 | 20 2a 20 73 69 7a 65 6f |loc(hite| * sizeo|
|00005700| 66 28 75 63 68 61 72 20 | 2a 29 29 29 20 3d 3d 20 |f(uchar |*))) == |
|00005710| 28 75 63 68 61 72 20 2a | 2a 29 4e 55 4c 4c 29 0a |(uchar *|*)NULL).|
|00005720| 58 09 09 64 69 65 28 22 | 6e 6f 74 20 65 6e 6f 75 |X..die("|not enou|
|00005730| 67 68 20 6d 65 6d 6f 72 | 79 20 66 6f 72 20 62 69 |gh memor|y for bi|
|00005740| 74 6d 61 70 20 61 72 72 | 61 79 20 63 68 61 72 20 |tmap arr|ay char |
|00005750| 25 64 5c 6e 22 2c 63 29 | 3b 0a 58 0a 58 09 66 6f |%d\n",c)|;.X.X.fo|
|00005760| 72 20 28 69 3d 30 3b 20 | 69 3c 63 62 6d 2d 3e 68 |r (i=0; |i<cbm->h|
|00005770| 69 74 65 3b 20 69 2b 2b | 29 0a 58 09 7b 0a 58 09 |ite; i++|).X.{.X.|
|00005780| 09 69 66 20 28 28 63 62 | 6d 2d 3e 43 48 5b 69 5d |.if ((cb|m->CH[i]|
|00005790| 20 3d 20 28 75 63 68 61 | 72 20 2a 29 6d 61 6c 6c | = (ucha|r *)mall|
|000057a0| 6f 63 28 63 62 6d 2d 3e | 6c 65 6e 29 29 20 3d 3d |oc(cbm->|len)) ==|
|000057b0| 20 28 75 63 68 61 72 20 | 2a 29 4e 55 4c 4c 29 0a | (uchar |*)NULL).|
|000057c0| 58 09 09 09 64 69 65 28 | 22 6e 6f 74 20 65 6e 6f |X...die(|"not eno|
|000057d0| 75 67 68 20 6d 65 6d 6f | 72 79 20 66 6f 72 20 62 |ugh memo|ry for b|
|000057e0| 69 74 6d 61 70 20 61 74 | 20 63 68 61 72 20 25 64 |itmap at| char %d|
|000057f0| 5c 6e 22 2c 63 29 3b 0a | 58 09 09 28 76 6f 69 64 |\n",c);.|X..(void|
|00005800| 29 6d 65 6d 63 70 79 28 | 28 63 68 61 72 2a 29 63 |)memcpy(|(char*)c|
|00005810| 62 6d 2d 3e 43 48 5b 69 | 5d 2c 20 28 63 68 61 72 |bm->CH[i|], (char|
|00005820| 2a 29 62 75 66 2c 20 63 | 62 6d 2d 3e 6c 65 6e 29 |*)buf, c|bm->len)|
|00005830| 3b 0a 58 09 09 62 75 66 | 20 2b 3d 20 63 62 6d 2d |;.X..buf| += cbm-|
|00005840| 3e 6c 65 6e 3b 0a 58 09 | 7d 0a 58 7d 0a 58 2f 2a |>len;.X.|}.X}.X/*|
|00005850| 20 70 61 69 6e 74 77 6f | 72 6b 20 2a 2a 2a 2a 2a | paintwo|rk *****|
|00005860| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005870| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005880| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005890| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 20 2a 2f 0a 58 72 |********|** */.Xr|
|000058a0| 73 5f 64 70 69 28 6e 29 | 0a 58 64 6f 75 62 6c 65 |s_dpi(n)|.Xdouble|
|000058b0| 20 6e 3b 0a 58 7b 0a 58 | 09 63 75 72 65 6e 76 2d | n;.X{.X|.curenv-|
|000058c0| 3e 64 70 69 20 3d 20 28 | 69 6e 74 29 6e 3b 0a 58 |>dpi = (|int)n;.X|
|000058d0| 7d 0a 58 72 73 5f 67 72 | 61 70 68 78 79 28 6e 29 |}.Xrs_gr|aphxy(n)|
|000058e0| 0a 58 64 6f 75 62 6c 65 | 20 6e 3b 0a 58 7b 0a 58 |.Xdouble| n;.X{.X|
|000058f0| 09 69 66 20 28 28 69 6e | 74 29 6e 29 0a 58 09 09 |.if ((in|t)n).X..|
|00005900| 47 52 41 50 48 58 20 3d | 20 42 4d 58 3b 0a 58 09 |GRAPHX =| BMX;.X.|
|00005910| 65 6c 73 65 20 47 52 41 | 50 48 58 20 3d 20 30 2e |else GRA|PHX = 0.|
|00005920| 30 3b 0a 58 09 47 52 41 | 50 48 59 20 3d 20 42 4d |0;.X.GRA|PHY = BM|
|00005930| 59 3b 0a 58 7d 0a 58 72 | 73 5f 70 69 78 28 70 65 |Y;.X}.Xr|s_pix(pe|
|00005940| 6c 73 2c 20 6c 65 6e 29 | 0a 58 75 63 68 61 72 20 |ls, len)|.Xuchar |
|00005950| 2a 70 65 6c 73 3b 0a 58 | 69 6e 74 20 6c 65 6e 3b |*pels;.X|int len;|
|00005960| 0a 58 7b 0a 58 09 69 6e | 74 20 69 2c 20 6b 2c 20 |.X{.X.in|t i, k, |
|00005970| 6c 6f 63 61 6c 79 2c 20 | 69 6e 63 2c 20 67 72 61 |localy, |inc, gra|
|00005980| 70 68 78 2c 20 67 72 61 | 70 68 79 3b 0a 58 0a 58 |phx, gra|phy;.X.X|
|00005990| 09 69 66 20 28 73 65 65 | 5f 74 68 72 75 29 0a 58 |.if (see|_thru).X|
|000059a0| 09 09 72 65 74 75 72 6e | 3b 0a 58 09 69 66 20 28 |..return|;.X.if (|
|000059b0| 6e 6f 5f 62 69 74 6d 61 | 70 29 0a 58 09 09 64 69 |no_bitma|p).X..di|
|000059c0| 65 28 22 6e 6f 20 63 61 | 6e 20 64 6f 20 77 69 74 |e("no ca|n do wit|
|000059d0| 68 6f 75 74 20 61 20 62 | 69 74 6d 61 70 5c 6e 22 |hout a b|itmap\n"|
|000059e0| 29 3b 0a 58 0a 58 09 69 | 6e 63 20 3d 20 33 30 30 |);.X.X.i|nc = 300|
|000059f0| 2f 63 75 72 65 6e 76 2d | 3e 64 70 69 3b 0a 58 0a |/curenv-|>dpi;.X.|
|00005a00| 58 09 67 72 61 70 68 79 | 20 3d 20 28 69 6e 74 29 |X.graphy| = (int)|
|00005a10| 28 47 52 41 50 48 59 20 | 2b 20 2e 35 29 3b 0a 58 |(GRAPHY |+ .5);.X|
|00005a20| 09 67 72 61 70 68 78 20 | 3d 20 28 69 6e 74 29 28 |.graphx |= (int)(|
|00005a30| 47 52 41 50 48 58 20 2b | 20 2e 35 29 3b 0a 58 09 |GRAPHX +| .5);.X.|
|00005a40| 69 66 20 28 67 72 61 70 | 68 79 20 3c 20 30 20 7c |if (grap|hy < 0 ||
|00005a50| 7c 20 69 6e 63 2b 67 72 | 61 70 68 79 20 3e 3d 20 || inc+gr|aphy >= |
|00005a60| 6d 61 78 5f 6c 6e 29 0a | 58 09 09 72 65 74 75 72 |max_ln).|X..retur|
|00005a70| 6e 3b 0a 58 09 6c 6f 63 | 61 6c 79 20 3d 20 79 73 |n;.X.loc|aly = ys|
|00005a80| 63 61 6c 65 5b 67 72 61 | 70 68 79 5d 3b 0a 58 0a |cale[gra|phy];.X.|
|00005a90| 58 09 69 66 20 28 67 72 | 61 70 68 78 20 2b 20 28 |X.if (gr|aphx + (|
|00005aa0| 69 6e 63 2a 6c 65 6e 2a | 38 29 20 3e 20 6d 61 78 |inc*len*|8) > max|
|00005ab0| 5f 63 6f 6c 29 0a 58 09 | 09 6c 65 6e 20 3d 20 28 |_col).X.|.len = (|
|00005ac0| 28 6d 61 78 5f 63 6f 6c | 2d 67 72 61 70 68 78 29 |(max_col|-graphx)|
|00005ad0| 2f 38 29 2f 69 6e 63 3b | 0a 58 0a 58 09 73 77 69 |/8)/inc;|.X.X.swi|
|00005ae0| 74 63 68 28 63 75 72 65 | 6e 76 2d 3e 64 70 69 29 |tch(cure|nv->dpi)|
|00005af0| 09 2f 2a 20 68 65 79 2c | 20 77 68 6f 20 73 61 79 |./* hey,| who say|
|00005b00| 73 20 77 65 27 72 65 20 | 74 72 79 69 6e 67 20 74 |s we're |trying t|
|00005b10| 6f 20 62 65 20 65 66 66 | 69 63 69 65 6e 74 3f 20 |o be eff|icient? |
|00005b20| 2a 2f 0a 58 09 7b 0a 58 | 09 63 61 73 65 20 33 30 |*/.X.{.X|.case 30|
|00005b30| 30 3a 09 66 6f 72 20 28 | 69 3d 30 3b 20 69 3c 6c |0:.for (|i=0; i<l|
|00005b40| 65 6e 3b 20 69 2b 2b 2c | 20 70 65 6c 73 2b 2b 29 |en; i++,| pels++)|
|00005b50| 0a 58 09 09 09 09 66 6f | 72 20 28 6b 3d 30 3b 20 |.X....fo|r (k=0; |
|00005b60| 6b 3c 38 3b 20 6b 2b 2b | 2c 20 67 72 61 70 68 78 |k<8; k++|, graphx|
|00005b70| 2b 2b 29 0a 58 09 09 09 | 09 09 69 66 20 28 2a 70 |++).X...|..if (*p|
|00005b80| 65 6c 73 20 26 20 62 69 | 74 5b 6b 5d 29 0a 58 09 |els & bi|t[k]).X.|
|00005b90| 09 09 09 09 09 73 65 74 | 70 69 78 28 6c 6f 63 61 |.....set|pix(loca|
|00005ba0| 6c 79 2c 20 78 73 63 61 | 6c 65 5b 67 72 61 70 68 |ly, xsca|le[graph|
|00005bb0| 78 5d 29 3b 0a 58 09 09 | 09 62 72 65 61 6b 3b 0a |x]);.X..|.break;.|
|00005bc0| 58 09 63 61 73 65 20 31 | 35 30 3a 09 66 6f 72 20 |X.case 1|50:.for |
|00005bd0| 28 69 3d 30 3b 20 69 3c | 6c 65 6e 3b 20 69 2b 2b |(i=0; i<|len; i++|
|00005be0| 2c 20 70 65 6c 73 2b 2b | 29 0a 58 09 09 09 09 66 |, pels++|).X....f|
|00005bf0| 6f 72 20 28 6b 3d 30 3b | 20 6b 3c 38 3b 20 6b 2b |or (k=0;| k<8; k+|
|00005c00| 2b 2c 20 67 72 61 70 68 | 78 20 2b 3d 20 69 6e 63 |+, graph|x += inc|
|00005c10| 29 0a 58 09 09 09 09 09 | 69 66 20 28 2a 70 65 6c |).X.....|if (*pel|
|00005c20| 73 20 26 20 62 69 74 5b | 6b 5d 29 0a 58 09 09 09 |s & bit[|k]).X...|
|00005c30| 09 09 7b 0a 58 09 09 09 | 09 09 09 73 65 74 70 69 |..{.X...|...setpi|
|00005c40| 78 28 6c 6f 63 61 6c 79 | 2c 20 78 73 63 61 6c 65 |x(localy|, xscale|
|00005c50| 5b 67 72 61 70 68 78 5d | 29 3b 0a 58 09 09 09 09 |[graphx]|);.X....|
|00005c60| 09 09 73 65 74 70 69 78 | 28 6c 6f 63 61 6c 79 2c |..setpix|(localy,|
|00005c70| 20 78 73 63 61 6c 65 5b | 67 72 61 70 68 78 2b 31 | xscale[|graphx+1|
|00005c80| 5d 29 3b 0a 58 0a 58 09 | 09 09 09 09 09 73 65 74 |]);.X.X.|.....set|
|00005c90| 70 69 78 28 6c 6f 63 61 | 6c 79 2b 31 2c 20 78 73 |pix(loca|ly+1, xs|
|00005ca0| 63 61 6c 65 5b 67 72 61 | 70 68 78 5d 29 3b 0a 58 |cale[gra|phx]);.X|
|00005cb0| 09 09 09 09 09 09 73 65 | 74 70 69 78 28 6c 6f 63 |......se|tpix(loc|
|00005cc0| 61 6c 79 2b 31 2c 20 78 | 73 63 61 6c 65 5b 67 72 |aly+1, x|scale[gr|
|00005cd0| 61 70 68 78 2b 31 5d 29 | 3b 0a 58 09 09 09 09 09 |aphx+1])|;.X.....|
|00005ce0| 7d 0a 58 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 63 |}.X...br|eak;.X.c|
|00005cf0| 61 73 65 20 31 30 30 3a | 09 66 6f 72 20 28 69 3d |ase 100:|.for (i=|
|00005d00| 30 3b 20 69 3c 6c 65 6e | 3b 20 69 2b 2b 2c 20 70 |0; i<len|; i++, p|
|00005d10| 65 6c 73 2b 2b 29 0a 58 | 09 09 09 09 66 6f 72 20 |els++).X|....for |
|00005d20| 28 6b 3d 30 3b 20 6b 3c | 38 3b 20 6b 2b 2b 2c 20 |(k=0; k<|8; k++, |
|00005d30| 67 72 61 70 68 78 20 2b | 3d 20 69 6e 63 29 0a 58 |graphx +|= inc).X|
|00005d40| 09 09 09 09 09 69 66 20 | 28 2a 70 65 6c 73 20 26 |.....if |(*pels &|
|00005d50| 20 62 69 74 5b 6b 5d 29 | 0a 58 09 09 09 09 09 7b | bit[k])|.X.....{|
|00005d60| 0a 58 09 09 09 09 09 09 | 73 65 74 70 69 78 28 6c |.X......|setpix(l|
|00005d70| 6f 63 61 6c 79 2c 20 78 | 73 63 61 6c 65 5b 67 72 |ocaly, x|scale[gr|
|00005d80| 61 70 68 78 5d 29 3b 0a | 58 09 09 09 09 09 09 73 |aphx]);.|X......s|
|00005d90| 65 74 70 69 78 28 6c 6f | 63 61 6c 79 2c 20 78 73 |etpix(lo|caly, xs|
|00005da0| 63 61 6c 65 5b 67 72 61 | 70 68 78 2b 31 5d 29 3b |cale[gra|phx+1]);|
|00005db0| 0a 58 09 09 09 09 09 09 | 73 65 74 70 69 78 28 6c |.X......|setpix(l|
|00005dc0| 6f 63 61 6c 79 2c 20 78 | 73 63 61 6c 65 5b 67 72 |ocaly, x|scale[gr|
|00005dd0| 61 70 68 78 2b 32 5d 29 | 3b 0a 58 0a 58 09 09 09 |aphx+2])|;.X.X...|
|00005de0| 09 09 09 73 65 74 70 69 | 78 28 6c 6f 63 61 6c 79 |...setpi|x(localy|
|00005df0| 2b 31 2c 20 78 73 63 61 | 6c 65 5b 67 72 61 70 68 |+1, xsca|le[graph|
|00005e00| 78 5d 29 3b 0a 58 09 09 | 09 09 09 09 73 65 74 70 |x]);.X..|....setp|
|00005e10| 69 78 28 6c 6f 63 61 6c | 79 2b 31 2c 20 78 73 63 |ix(local|y+1, xsc|
|00005e20| 61 6c 65 5b 67 72 61 70 | 68 78 2b 31 5d 29 3b 0a |ale[grap|hx+1]);.|
|00005e30| 58 09 09 09 09 09 09 73 | 65 74 70 69 78 28 6c 6f |X......s|etpix(lo|
|00005e40| 63 61 6c 79 2b 31 2c 20 | 78 73 63 61 6c 65 5b 67 |caly+1, |xscale[g|
|00005e50| 72 61 70 68 78 2b 32 5d | 29 3b 0a 58 0a 58 09 09 |raphx+2]|);.X.X..|
|00005e60| 09 09 09 09 73 65 74 70 | 69 78 28 6c 6f 63 61 6c |....setp|ix(local|
|00005e70| 79 2b 32 2c 20 78 73 63 | 61 6c 65 5b 67 72 61 70 |y+2, xsc|ale[grap|
|00005e80| 68 78 5d 29 3b 0a 58 09 | 09 09 09 09 09 73 65 74 |hx]);.X.|.....set|
|00005e90| 70 69 78 28 6c 6f 63 61 | 6c 79 2b 32 2c 20 78 73 |pix(loca|ly+2, xs|
|00005ea0| 63 61 6c 65 5b 67 72 61 | 70 68 78 2b 31 5d 29 3b |cale[gra|phx+1]);|
|00005eb0| 0a 58 09 09 09 09 09 09 | 73 65 74 70 69 78 28 6c |.X......|setpix(l|
|00005ec0| 6f 63 61 6c 79 2b 32 2c | 20 78 73 63 61 6c 65 5b |ocaly+2,| xscale[|
|00005ed0| 67 72 61 70 68 78 2b 32 | 5d 29 3b 0a 58 09 09 09 |graphx+2|]);.X...|
|00005ee0| 09 09 7d 0a 58 09 09 09 | 62 72 65 61 6b 3b 0a 58 |..}.X...|break;.X|
|00005ef0| 09 63 61 73 65 20 37 35 | 3a 09 66 6f 72 20 28 69 |.case 75|:.for (i|
|00005f00| 3d 30 3b 20 69 3c 6c 65 | 6e 3b 20 69 2b 2b 2c 20 |=0; i<le|n; i++, |
|00005f10| 70 65 6c 73 2b 2b 29 0a | 58 09 09 09 09 66 6f 72 |pels++).|X....for|
|00005f20| 20 28 6b 3d 30 3b 20 6b | 3c 38 3b 20 6b 2b 2b 2c | (k=0; k|<8; k++,|
|00005f30| 20 67 72 61 70 68 78 20 | 2b 3d 20 69 6e 63 29 0a | graphx |+= inc).|
|00005f40| 58 09 09 09 09 09 69 66 | 20 28 2a 70 65 6c 73 20 |X.....if| (*pels |
|00005f50| 26 20 62 69 74 5b 6b 5d | 29 0a 58 09 09 09 09 09 |& bit[k]|).X.....|
|00005f60| 7b 0a 58 09 09 09 09 09 | 09 73 65 74 70 69 78 28 |{.X.....|.setpix(|
|00005f70| 6c 6f 63 61 6c 79 2c 20 | 78 73 63 61 6c 65 5b 67 |localy, |xscale[g|
|00005f80| 72 61 70 68 78 5d 29 3b | 0a 58 09 09 09 09 09 09 |raphx]);|.X......|
|00005f90| 73 65 74 70 69 78 28 6c | 6f 63 61 6c 79 2c 20 78 |setpix(l|ocaly, x|
|00005fa0| 73 63 61 6c 65 5b 67 72 | 61 70 68 78 2b 31 5d 29 |scale[gr|aphx+1])|
|00005fb0| 3b 0a 58 09 09 09 09 09 | 09 73 65 74 70 69 78 28 |;.X.....|.setpix(|
|00005fc0| 6c 6f 63 61 6c 79 2c 20 | 78 73 63 61 6c 65 5b 67 |localy, |xscale[g|
|00005fd0| 72 61 70 68 78 2b 32 5d | 29 3b 0a 58 09 09 09 09 |raphx+2]|);.X....|
|00005fe0| 09 09 73 65 74 70 69 78 | 28 6c 6f 63 61 6c 79 2c |..setpix|(localy,|
|00005ff0| 20 78 73 63 61 6c 65 5b | 67 72 61 70 68 78 2b 33 | xscale[|graphx+3|
|00006000| 5d 29 3b 0a 58 0a 58 09 | 09 09 09 09 09 73 65 74 |]);.X.X.|.....set|
|00006010| 70 69 78 28 6c 6f 63 61 | 6c 79 2b 31 2c 20 78 73 |pix(loca|ly+1, xs|
|00006020| 63 61 6c 65 5b 67 72 61 | 70 68 78 5d 29 3b 0a 58 |cale[gra|phx]);.X|
|00006030| 09 09 09 09 09 09 73 65 | 74 70 69 78 28 6c 6f 63 |......se|tpix(loc|
|00006040| 61 6c 79 2b 31 2c 20 78 | 73 63 61 6c 65 5b 67 72 |aly+1, x|scale[gr|
|00006050| 61 70 68 78 2b 31 5d 29 | 3b 0a 58 09 09 09 09 09 |aphx+1])|;.X.....|
|00006060| 09 73 65 74 70 69 78 28 | 6c 6f 63 61 6c 79 2b 31 |.setpix(|localy+1|
|00006070| 2c 20 78 73 63 61 6c 65 | 5b 67 72 61 70 68 78 2b |, xscale|[graphx+|
|00006080| 32 5d 29 3b 0a 58 09 09 | 09 09 09 09 73 65 74 70 |2]);.X..|....setp|
|00006090| 69 78 28 6c 6f 63 61 6c | 79 2b 31 2c 20 78 73 63 |ix(local|y+1, xsc|
|000060a0| 61 6c 65 5b 67 72 61 70 | 68 78 2b 33 5d 29 3b 0a |ale[grap|hx+3]);.|
|000060b0| 58 0a 58 09 09 09 09 09 | 09 73 65 74 70 69 78 28 |X.X.....|.setpix(|
|000060c0| 6c 6f 63 61 6c 79 2b 32 | 2c 20 78 73 63 61 6c 65 |localy+2|, xscale|
|000060d0| 5b 67 72 61 70 68 78 5d | 29 3b 0a 58 09 09 09 09 |[graphx]|);.X....|
|000060e0| 09 09 73 65 74 70 69 78 | 28 6c 6f 63 61 6c 79 2b |..setpix|(localy+|
|000060f0| 32 2c 20 78 73 63 61 6c | 65 5b 67 72 61 70 68 78 |2, xscal|e[graphx|
|00006100| 2b 31 5d 29 3b 0a 58 09 | 09 09 09 09 09 73 65 74 |+1]);.X.|.....set|
|00006110| 70 69 78 28 6c 6f 63 61 | 6c 79 2b 32 2c 20 78 73 |pix(loca|ly+2, xs|
|00006120| 63 61 6c 65 5b 67 72 61 | 70 68 78 2b 32 5d 29 3b |cale[gra|phx+2]);|
|00006130| 0a 58 09 09 09 09 09 09 | 73 65 74 70 69 78 28 6c |.X......|setpix(l|
|00006140| 6f 63 61 6c 79 2b 32 2c | 20 78 73 63 61 6c 65 5b |ocaly+2,| xscale[|
|00006150| 67 72 61 70 68 78 2b 33 | 5d 29 3b 0a 58 0a 58 09 |graphx+3|]);.X.X.|
|00006160| 09 09 09 09 09 73 65 74 | 70 69 78 28 6c 6f 63 61 |.....set|pix(loca|
|00006170| 6c 79 2b 33 2c 20 78 73 | 63 61 6c 65 5b 67 72 61 |ly+3, xs|cale[gra|
|00006180| 70 68 78 5d 29 3b 0a 58 | 09 09 09 09 09 09 73 65 |phx]);.X|......se|
|00006190| 74 70 69 78 28 6c 6f 63 | 61 6c 79 2b 33 2c 20 78 |tpix(loc|aly+3, x|
|000061a0| 73 63 61 6c 65 5b 67 72 | 61 70 68 78 2b 31 5d 29 |scale[gr|aphx+1])|
|000061b0| 3b 0a 58 09 09 09 09 09 | 09 73 65 74 70 69 78 28 |;.X.....|.setpix(|
|000061c0| 6c 6f 63 61 6c 79 2b 33 | 2c 20 78 73 63 61 6c 65 |localy+3|, xscale|
|000061d0| 5b 67 72 61 70 68 78 2b | 32 5d 29 3b 0a 58 09 09 |[graphx+|2]);.X..|
|000061e0| 09 09 09 09 73 65 74 70 | 69 78 28 6c 6f 63 61 6c |....setp|ix(local|
|000061f0| 79 2b 33 2c 20 78 73 63 | 61 6c 65 5b 67 72 61 70 |y+3, xsc|ale[grap|
|00006200| 68 78 2b 33 5d 29 3b 0a | 58 09 09 09 09 09 7d 0a |hx+3]);.|X.....}.|
|00006210| 58 09 09 09 62 72 65 61 | 6b 3b 0a 58 09 7d 0a 58 |X...brea|k;.X.}.X|
|00006220| 09 67 72 61 70 68 79 20 | 2b 3d 20 69 6e 63 3b 0a |.graphy |+= inc;.|
|00006230| 58 09 79 6d 61 78 5f 75 | 73 65 64 20 3d 20 6d 61 |X.ymax_u|sed = ma|
|00006240| 78 28 79 6d 61 78 5f 75 | 73 65 64 2c 28 6c 6f 63 |x(ymax_u|sed,(loc|
|00006250| 61 6c 79 2d 31 29 2b 69 | 6e 63 29 3b 0a 58 09 78 |aly-1)+i|nc);.X.x|
|00006260| 6d 61 78 5f 75 73 65 64 | 20 3d 20 6d 61 78 28 78 |max_used| = max(x|
|00006270| 6d 61 78 5f 75 73 65 64 | 2c 78 73 63 61 6c 65 5b |max_used|,xscale[|
|00006280| 28 67 72 61 70 68 78 2d | 31 29 2b 69 6e 63 5d 29 |(graphx-|1)+inc])|
|00006290| 3b 0a 58 09 64 6f 74 74 | 65 64 20 3d 20 54 52 55 |;.X.dott|ed = TRU|
|000062a0| 45 3b 0a 58 09 76 69 72 | 67 69 6e 20 3d 20 46 41 |E;.X.vir|gin = FA|
|000062b0| 4c 53 45 3b 0a 58 7d 0a | 58 2f 2a 20 62 75 69 6c |LSE;.X}.|X/* buil|
|000062c0| 64 20 69 6e 20 72 75 6c | 65 73 2c 20 70 61 74 74 |d in rul|es, patt|
|000062d0| 65 72 6e 73 2c 20 73 68 | 61 64 65 73 20 2a 2a 2a |erns, sh|ades ***|
|000062e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000062f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00006300| 2a 2a 2a 2a 2a 20 2a 2f | 0a 58 72 73 5f 68 73 69 |***** */|.Xrs_hsi|
|00006310| 7a 65 28 6e 29 0a 58 64 | 6f 75 62 6c 65 20 6e 3b |ze(n).Xd|ouble n;|
|00006320| 0a 58 7b 0a 58 09 63 75 | 72 65 6e 76 2d 3e 48 6c |.X{.X.cu|renv->Hl|
|00006330| 65 6e 20 3d 20 6e 3b 0a | 58 7d 0a 58 72 73 5f 68 |en = n;.|X}.Xrs_h|
|00006340| 64 73 69 7a 65 28 6e 29 | 0a 58 64 6f 75 62 6c 65 |dsize(n)|.Xdouble|
|00006350| 20 6e 3b 0a 58 7b 0a 58 | 09 63 75 72 65 6e 76 2d | n;.X{.X|.curenv-|
|00006360| 3e 48 6c 65 6e 20 3d 20 | 6e 2a 33 30 30 2e 30 2f |>Hlen = |n*300.0/|
|00006370| 37 32 30 2e 30 3b 0a 58 | 7d 0a 58 72 73 5f 76 73 |720.0;.X|}.Xrs_vs|
|00006380| 69 7a 65 28 6e 29 0a 58 | 64 6f 75 62 6c 65 20 6e |ize(n).X|double n|
|00006390| 3b 0a 58 7b 0a 58 09 63 | 75 72 65 6e 76 2d 3e 56 |;.X{.X.c|urenv->V|
|000063a0| 6c 65 6e 20 3d 20 6e 3b | 0a 58 7d 0a 58 72 73 5f |len = n;|.X}.Xrs_|
|000063b0| 76 64 73 69 7a 65 28 6e | 29 0a 58 64 6f 75 62 6c |vdsize(n|).Xdoubl|
|000063c0| 65 20 6e 3b 0a 58 7b 0a | 58 09 63 75 72 65 6e 76 |e n;.X{.|X.curenv|
|000063d0| 2d 3e 56 6c 65 6e 20 3d | 20 6e 2a 33 30 30 2e 30 |->Vlen =| n*300.0|
|000063e0| 2f 37 32 30 2e 30 3b 0a | 58 7d 0a 58 72 73 5f 70 |/720.0;.|X}.Xrs_p|
|000063f0| 69 64 28 6e 29 0a 58 64 | 6f 75 62 6c 65 20 6e 3b |id(n).Xd|ouble n;|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.