home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| 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 or mail, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 75 62 6a 65 63 74 3a | 20 20 76 31 35 69 30 36 |Subject:| v15i06|
|00000010| 38 3a 20 20 47 72 61 70 | 68 69 63 73 20 62 65 6e |8: Grap|hics ben|
|00000020| 63 68 6d 61 72 6b 20 74 | 6f 6f 6c 6b 69 74 20 66 |chmark t|oolkit f|
|00000030| 6f 72 20 58 2c 20 50 61 | 72 74 30 31 2f 30 32 0a |or X, Pa|rt01/02.|
|00000040| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000050| 2e 73 6f 75 72 63 65 73 | 2e 75 6e 69 78 0a 53 65 |.sources|.unix.Se|
|00000060| 6e 64 65 72 3a 20 73 6f | 75 72 63 65 73 0a 41 70 |nder: so|urces.Ap|
|00000070| 70 72 6f 76 65 64 3a 20 | 72 73 61 6c 7a 40 75 75 |proved: |rsalz@uu|
|00000080| 6e 65 74 2e 55 55 2e 4e | 45 54 0a 0a 53 75 62 6d |net.UU.N|ET..Subm|
|00000090| 69 74 74 65 64 2d 62 79 | 3a 20 43 72 61 69 67 20 |itted-by|: Craig |
|000000a0| 44 75 6e 77 6f 6f 64 79 | 20 3c 64 75 6e 77 6f 6f |Dunwoody| <dunwoo|
|000000b0| 64 79 40 6c 75 72 63 68 | 2e 73 74 61 6e 66 6f 72 |dy@lurch|.stanfor|
|000000c0| 64 2e 65 64 75 3e 0a 50 | 6f 73 74 69 6e 67 2d 6e |d.edu>.P|osting-n|
|000000d0| 75 6d 62 65 72 3a 20 56 | 6f 6c 75 6d 65 20 31 35 |umber: V|olume 15|
|000000e0| 2c 20 49 73 73 75 65 20 | 36 38 0a 41 72 63 68 69 |, Issue |68.Archi|
|000000f0| 76 65 2d 6e 61 6d 65 3a | 20 67 62 65 6e 63 68 2f |ve-name:| gbench/|
|00000100| 70 61 72 74 30 31 0a 0a | 47 62 65 6e 63 68 20 69 |part01..|Gbench i|
|00000110| 73 20 61 20 67 72 61 70 | 68 69 63 73 20 62 65 6e |s a grap|hics ben|
|00000120| 63 68 6d 61 72 6b 20 74 | 6f 6f 6c 2e 20 20 49 74 |chmark t|ool. It|
|00000130| 20 63 75 72 72 65 6e 74 | 6c 79 20 73 75 70 70 6f | current|ly suppo|
|00000140| 72 74 73 20 32 44 0a 69 | 6d 6d 65 64 69 61 74 65 |rts 2D.i|mmediate|
|00000150| 2d 6d 6f 64 65 20 67 72 | 61 70 68 69 63 73 20 61 |-mode gr|aphics a|
|00000160| 6e 64 20 72 75 6e 73 20 | 6f 6e 20 74 6f 70 20 6f |nd runs |on top o|
|00000170| 66 20 74 68 65 20 58 20 | 57 69 6e 64 6f 77 20 53 |f the X |Window S|
|00000180| 79 73 74 65 6d 20 28 62 | 6f 74 68 0a 56 65 72 73 |ystem (b|oth.Vers|
|00000190| 69 6f 6e 20 31 30 20 61 | 6e 64 20 56 65 72 73 69 |ion 10 a|nd Versi|
|000001a0| 6f 6e 20 31 31 29 20 61 | 6e 64 20 55 6e 69 78 2e |on 11) a|nd Unix.|
|000001b0| 20 20 49 74 20 69 73 20 | 77 72 69 74 74 65 6e 20 | It is |written |
|000001c0| 69 6e 20 43 20 61 6e 64 | 20 69 74 20 64 69 72 65 |in C and| it dire|
|000001d0| 63 74 6c 79 0a 63 61 6c | 6c 73 20 74 68 65 20 6c |ctly.cal|ls the l|
|000001e0| 6f 77 2d 6c 65 76 65 6c | 20 77 69 6e 64 6f 77 20 |ow-level| window |
|000001f0| 73 79 73 74 65 6d 20 63 | 6c 69 65 6e 74 20 6c 69 |system c|lient li|
|00000200| 62 72 61 72 79 3b 20 6e | 6f 20 74 6f 6f 6c 6b 69 |brary; n|o toolki|
|00000210| 74 20 69 73 20 75 73 65 | 64 2e 20 20 49 74 0a 69 |t is use|d. It.i|
|00000220| 73 20 62 65 69 6e 67 20 | 64 65 76 65 6c 6f 70 65 |s being |develope|
|00000230| 64 20 62 79 20 43 72 61 | 69 67 20 44 75 6e 77 6f |d by Cra|ig Dunwo|
|00000240| 6f 64 79 20 61 6e 64 20 | 4d 61 72 6b 20 4c 69 6e |ody and |Mark Lin|
|00000250| 74 6f 6e 20 61 74 20 53 | 74 61 6e 66 6f 72 64 0a |ton at S|tanford.|
|00000260| 55 6e 69 76 65 72 73 69 | 74 79 27 73 20 43 6f 6d |Universi|ty's Com|
|00000270| 70 75 74 65 72 20 53 79 | 73 74 65 6d 73 20 4c 61 |puter Sy|stems La|
|00000280| 62 20 75 6e 64 65 72 20 | 74 68 65 20 51 75 61 6e |b under |the Quan|
|00000290| 74 75 6d 20 70 72 6f 6a | 65 63 74 2c 20 74 68 72 |tum proj|ect, thr|
|000002a0| 6f 75 67 68 20 61 0a 67 | 69 66 74 20 66 72 6f 6d |ough a.g|ift from|
|000002b0| 20 44 69 67 69 74 61 6c | 20 45 71 75 69 70 6d 65 | Digital| Equipme|
|000002c0| 6e 74 20 43 6f 72 70 6f | 72 61 74 69 6f 6e 2e 20 |nt Corpo|ration. |
|000002d0| 20 49 74 20 6d 61 79 20 | 62 65 20 66 72 65 65 6c | It may |be freel|
|000002e0| 79 20 64 69 73 74 72 69 | 62 75 74 65 64 0a 75 6e |y distri|buted.un|
|000002f0| 64 65 72 20 74 68 65 20 | 63 6f 6e 64 69 74 69 6f |der the |conditio|
|00000300| 6e 73 20 6c 69 73 74 65 | 64 20 69 6e 20 74 68 65 |ns liste|d in the|
|00000310| 20 61 63 63 6f 6d 70 61 | 6e 79 69 6e 67 20 63 6f | accompa|nying co|
|00000320| 70 79 72 69 67 68 74 20 | 6e 6f 74 69 63 65 2e 0a |pyright |notice..|
|00000330| 0a 47 62 65 6e 63 68 20 | 69 73 20 6e 6f 74 20 61 |.Gbench |is not a|
|00000340| 20 67 72 61 70 68 69 63 | 73 20 62 65 6e 63 68 6d | graphic|s benchm|
|00000350| 61 72 6b 2e 20 20 52 61 | 74 68 65 72 2c 20 69 74 |ark. Ra|ther, it|
|00000360| 20 69 73 20 61 20 74 6f | 6f 6c 20 74 68 61 74 20 | is a to|ol that |
|00000370| 6c 65 74 73 20 79 6f 75 | 0a 63 6f 6e 73 74 72 75 |lets you|.constru|
|00000380| 63 74 20 61 6e 64 20 72 | 75 6e 20 79 6f 75 72 20 |ct and r|un your |
|00000390| 6f 77 6e 20 62 65 6e 63 | 68 6d 61 72 6b 73 2e 20 |own benc|hmarks. |
|000003a0| 20 57 68 65 6e 20 67 62 | 65 6e 63 68 20 73 74 61 | When gb|ench sta|
|000003b0| 72 74 73 20 75 70 2c 20 | 69 74 20 63 72 65 61 74 |rts up, |it creat|
|000003c0| 65 73 0a 61 6e 20 58 20 | 77 69 6e 64 6f 77 20 61 |es.an X |window a|
|000003d0| 6e 64 20 72 65 61 64 73 | 20 63 6f 6d 6d 61 6e 64 |nd reads| command|
|000003e0| 73 20 66 72 6f 6d 20 73 | 74 61 6e 64 61 72 64 20 |s from s|tandard |
|000003f0| 69 6e 70 75 74 2c 20 6f | 6e 65 20 70 65 72 20 6c |input, o|ne per l|
|00000400| 69 6e 65 2e 20 20 45 61 | 63 68 0a 63 6f 6d 6d 61 |ine. Ea|ch.comma|
|00000410| 6e 64 20 64 69 72 65 63 | 74 73 20 67 62 65 6e 63 |nd direc|ts gbenc|
|00000420| 68 20 74 6f 20 72 65 70 | 65 61 74 65 64 6c 79 20 |h to rep|eatedly |
|00000430| 70 65 72 66 6f 72 6d 20 | 61 20 70 61 72 74 69 63 |perform |a partic|
|00000440| 75 6c 61 72 20 64 72 61 | 77 69 6e 67 0a 6f 70 65 |ular dra|wing.ope|
|00000450| 72 61 74 69 6f 6e 2e 20 | 20 47 62 65 6e 63 68 20 |ration. | Gbench |
|00000460| 63 6f 70 69 65 73 20 74 | 68 65 20 63 6f 6d 6d 61 |copies t|he comma|
|00000470| 6e 64 20 6c 69 6e 65 20 | 74 6f 20 73 74 61 6e 64 |nd line |to stand|
|00000480| 61 72 64 20 6f 75 74 70 | 75 74 2c 20 65 78 65 63 |ard outp|ut, exec|
|00000490| 75 74 65 73 0a 74 68 65 | 20 63 6f 6d 6d 61 6e 64 |utes.the| command|
|000004a0| 2c 20 61 6e 64 20 70 72 | 69 6e 74 73 20 6f 6e 20 |, and pr|ints on |
|000004b0| 73 74 61 6e 64 61 72 64 | 20 6f 75 74 70 75 74 20 |standard| output |
|000004c0| 74 68 65 20 68 6f 73 74 | 20 6c 6f 61 64 20 61 76 |the host| load av|
|000004d0| 65 72 61 67 65 2c 20 74 | 68 65 20 74 69 6d 65 0a |erage, t|he time.|
|000004e0| 66 6f 72 20 65 61 63 68 | 20 69 74 65 72 61 74 69 |for each| iterati|
|000004f0| 6f 6e 2c 20 61 6e 64 20 | 74 68 65 20 6e 75 6d 62 |on, and |the numb|
|00000500| 65 72 20 6f 66 20 69 74 | 65 72 61 74 69 6f 6e 73 |er of it|erations|
|00000510| 20 70 65 72 20 73 65 63 | 6f 6e 64 2e 20 20 41 6c | per sec|ond. Al|
|00000520| 6c 20 74 69 6d 65 73 0a | 61 72 65 20 6d 65 61 73 |l times.|are meas|
|00000530| 75 72 65 64 20 69 6e 20 | 72 65 61 6c 20 28 77 61 |ured in |real (wa|
|00000540| 6c 6c 2d 63 6c 6f 63 6b | 29 20 74 69 6d 65 2e 0a |ll-clock|) time..|
|00000550| 0a 0a 54 68 61 6e 6b 73 | 20 61 20 6c 6f 74 2c 0a |..Thanks| a lot,.|
|00000560| 43 72 61 69 67 20 44 75 | 6e 77 6f 6f 64 79 0a 49 |Craig Du|nwoody.I|
|00000570| 6e 74 65 72 6e 65 74 3a | 20 20 20 64 75 6e 77 6f |nternet:| dunwo|
|00000580| 6f 64 79 40 6c 75 72 63 | 68 2e 73 74 61 6e 66 6f |ody@lurc|h.stanfo|
|00000590| 72 64 2e 65 64 75 0a 55 | 53 45 6e 65 74 3a 20 20 |rd.edu.U|SEnet: |
|000005a0| 20 20 20 7b 75 63 62 76 | 61 78 2c 64 65 63 76 61 | {ucbv|ax,decva|
|000005b0| 78 7d 21 64 65 63 77 72 | 6c 21 6c 75 72 63 68 2e |x}!decwr|l!lurch.|
|000005c0| 73 74 61 6e 66 6f 72 64 | 2e 65 64 75 21 64 75 6e |stanford|.edu!dun|
|000005d0| 77 6f 6f 64 79 0a 50 68 | 6f 6e 65 3a 20 20 20 20 |woody.Ph|one: |
|000005e0| 20 20 28 34 31 35 29 20 | 37 32 35 2d 33 37 33 33 | (415) |725-3733|
|000005f0| 0a 0a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..------|--------|
|00000600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0a 23 21 20 |--------|----.#! |
|00000610| 2f 62 69 6e 2f 73 68 0a | 23 20 54 68 69 73 20 69 |/bin/sh.|# This i|
|00000620| 73 20 61 20 73 68 65 6c | 6c 20 61 72 63 68 69 76 |s a shel|l archiv|
|00000630| 65 2e 20 20 52 65 6d 6f | 76 65 20 61 6e 79 74 68 |e. Remo|ve anyth|
|00000640| 69 6e 67 20 62 65 66 6f | 72 65 20 74 68 69 73 20 |ing befo|re this |
|00000650| 6c 69 6e 65 2c 20 74 68 | 65 6e 20 75 6e 70 61 63 |line, th|en unpac|
|00000660| 6b 0a 23 20 69 74 20 62 | 79 20 73 61 76 69 6e 67 |k.# it b|y saving|
|00000670| 20 69 74 20 69 6e 74 6f | 20 61 20 66 69 6c 65 20 | it into| a file |
|00000680| 61 6e 64 20 74 79 70 69 | 6e 67 20 22 73 68 20 66 |and typi|ng "sh f|
|00000690| 69 6c 65 22 2e 20 20 54 | 6f 20 6f 76 65 72 77 72 |ile". T|o overwr|
|000006a0| 69 74 65 20 65 78 69 73 | 74 69 6e 67 0a 23 20 66 |ite exis|ting.# f|
|000006b0| 69 6c 65 73 2c 20 74 79 | 70 65 20 22 73 68 20 66 |iles, ty|pe "sh f|
|000006c0| 69 6c 65 20 2d 63 22 2e | 20 20 59 6f 75 20 63 61 |ile -c".| You ca|
|000006d0| 6e 20 61 6c 73 6f 20 66 | 65 65 64 20 74 68 69 73 |n also f|eed this|
|000006e0| 20 61 73 20 73 74 61 6e | 64 61 72 64 20 69 6e 70 | as stan|dard inp|
|000006f0| 75 74 20 76 69 61 0a 23 | 20 75 6e 73 68 61 72 2c |ut via.#| unshar,|
|00000700| 20 6f 72 20 62 79 20 74 | 79 70 69 6e 67 20 22 73 | or by t|yping "s|
|00000710| 68 20 3c 66 69 6c 65 22 | 2c 20 65 2e 67 2e 2e 20 |h <file"|, e.g.. |
|00000720| 20 49 66 20 74 68 69 73 | 20 61 72 63 68 69 76 65 | If this| archive|
|00000730| 20 69 73 20 63 6f 6d 70 | 6c 65 74 65 2c 20 79 6f | is comp|lete, yo|
|00000740| 75 0a 23 20 77 69 6c 6c | 20 73 65 65 20 74 68 65 |u.# will| see the|
|00000750| 20 66 6f 6c 6c 6f 77 69 | 6e 67 20 6d 65 73 73 61 | followi|ng messa|
|00000760| 67 65 20 61 74 20 74 68 | 65 20 65 6e 64 3a 0a 23 |ge at th|e end:.#|
|00000770| 09 09 22 45 6e 64 20 6f | 66 20 61 72 63 68 69 76 |.."End o|f archiv|
|00000780| 65 20 31 20 28 6f 66 20 | 32 29 2e 22 0a 23 20 43 |e 1 (of |2).".# C|
|00000790| 6f 6e 74 65 6e 74 73 3a | 20 20 43 4f 50 59 52 49 |ontents:| COPYRI|
|000007a0| 47 48 54 20 4d 61 6b 65 | 66 69 6c 65 2d 64 69 73 |GHT Make|file-dis|
|000007b0| 74 20 52 45 41 44 4d 45 | 20 63 6d 64 73 2e 63 20 |t README| cmds.c |
|000007c0| 65 78 65 63 2e 63 20 67 | 62 65 6e 63 68 2e 68 0a |exec.c g|bench.h.|
|000007d0| 23 20 20 20 6d 61 69 6e | 2e 63 20 75 74 69 6c 73 |# main|.c utils|
|000007e0| 2e 63 0a 23 20 57 72 61 | 70 70 65 64 20 62 79 20 |.c.# Wra|pped by |
|000007f0| 72 73 61 6c 7a 40 66 69 | 67 2e 62 62 6e 2e 63 6f |rsalz@fi|g.bbn.co|
|00000800| 6d 20 6f 6e 20 4d 6f 6e | 20 4a 75 6e 20 31 33 20 |m on Mon| Jun 13 |
|00000810| 31 35 3a 33 32 3a 34 36 | 20 31 39 38 38 0a 50 41 |15:32:46| 1988.PA|
|00000820| 54 48 3d 2f 62 69 6e 3a | 2f 75 73 72 2f 62 69 6e |TH=/bin:|/usr/bin|
|00000830| 3a 2f 75 73 72 2f 75 63 | 62 20 3b 20 65 78 70 6f |:/usr/uc|b ; expo|
|00000840| 72 74 20 50 41 54 48 0a | 69 66 20 74 65 73 74 20 |rt PATH.|if test |
|00000850| 2d 66 20 27 43 4f 50 59 | 52 49 47 48 54 27 20 2d |-f 'COPY|RIGHT' -|
|00000860| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|00000870| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|00000880| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|00000890| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|000008a0| 66 69 6c 65 20 5c 22 27 | 43 4f 50 59 52 49 47 48 |file \"'|COPYRIGH|
|000008b0| 54 27 5c 22 0a 65 6c 73 | 65 0a 65 63 68 6f 20 73 |T'\".els|e.echo s|
|000008c0| 68 61 72 3a 20 45 78 74 | 72 61 63 74 69 6e 67 20 |har: Ext|racting |
|000008d0| 5c 22 27 43 4f 50 59 52 | 49 47 48 54 27 5c 22 20 |\"'COPYR|IGHT'\" |
|000008e0| 5c 28 37 30 32 20 63 68 | 61 72 61 63 74 65 72 73 |\(702 ch|aracters|
|000008f0| 5c 29 0a 73 65 64 20 22 | 73 2f 5e 58 2f 2f 22 20 |\).sed "|s/^X//" |
|00000900| 3e 27 43 4f 50 59 52 49 | 47 48 54 27 20 3c 3c 27 |>'COPYRI|GHT' <<'|
|00000910| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 27 0a 58 43 6f |END_OF_F|ILE'.XCo|
|00000920| 70 79 72 69 67 68 74 20 | 28 63 29 20 31 39 38 38 |pyright |(c) 1988|
|00000930| 20 62 79 20 54 68 65 20 | 42 6f 61 72 64 20 6f 66 | by The |Board of|
|00000940| 20 54 72 75 73 74 65 65 | 73 0a 58 6f 66 20 74 68 | Trustee|s.Xof th|
|00000950| 65 20 4c 65 6c 61 6e 64 | 20 53 74 61 6e 66 6f 72 |e Leland| Stanfor|
|00000960| 64 20 4a 75 6e 69 6f 72 | 20 55 6e 69 76 65 72 73 |d Junior| Univers|
|00000970| 69 74 79 2e 0a 58 0a 58 | 50 65 72 6d 69 73 73 69 |ity..X.X|Permissi|
|00000980| 6f 6e 20 74 6f 20 75 73 | 65 2c 20 63 6f 70 79 2c |on to us|e, copy,|
|00000990| 20 6d 6f 64 69 66 79 2c | 20 61 6e 64 20 64 69 73 | modify,| and dis|
|000009a0| 74 72 69 62 75 74 65 20 | 74 68 69 73 0a 58 73 6f |tribute |this.Xso|
|000009b0| 66 74 77 61 72 65 20 61 | 6e 64 20 69 74 73 20 64 |ftware a|nd its d|
|000009c0| 6f 63 75 6d 65 6e 74 61 | 74 69 6f 6e 20 66 6f 72 |ocumenta|tion for|
|000009d0| 20 61 6e 79 20 70 75 72 | 70 6f 73 65 20 61 6e 64 | any pur|pose and|
|000009e0| 20 77 69 74 68 6f 75 74 | 0a 58 66 65 65 20 69 73 | without|.Xfee is|
|000009f0| 20 68 65 72 65 62 79 20 | 67 72 61 6e 74 65 64 2c | hereby |granted,|
|00000a00| 20 70 72 6f 76 69 64 65 | 64 20 74 68 61 74 20 74 | provide|d that t|
|00000a10| 68 65 20 61 62 6f 76 65 | 20 63 6f 70 79 72 69 67 |he above| copyrig|
|00000a20| 68 74 0a 58 6e 6f 74 69 | 63 65 20 61 70 70 65 61 |ht.Xnoti|ce appea|
|00000a30| 72 20 69 6e 20 61 6c 6c | 20 63 6f 70 69 65 73 20 |r in all| copies |
|00000a40| 61 6e 64 20 74 68 61 74 | 20 62 6f 74 68 20 74 68 |and that| both th|
|00000a50| 61 74 20 63 6f 70 79 72 | 69 67 68 74 0a 58 6e 6f |at copyr|ight.Xno|
|00000a60| 74 69 63 65 20 61 6e 64 | 20 74 68 69 73 20 70 65 |tice and| this pe|
|00000a70| 72 6d 69 73 73 69 6f 6e | 20 6e 6f 74 69 63 65 20 |rmission| notice |
|00000a80| 61 70 70 65 61 72 20 69 | 6e 20 73 75 70 70 6f 72 |appear i|n suppor|
|00000a90| 74 69 6e 67 0a 58 64 6f | 63 75 6d 65 6e 74 61 74 |ting.Xdo|cumentat|
|00000aa0| 69 6f 6e 2c 20 61 6e 64 | 20 74 68 61 74 20 74 68 |ion, and| that th|
|00000ab0| 65 20 6e 61 6d 65 20 6f | 66 20 53 74 61 6e 66 6f |e name o|f Stanfo|
|00000ac0| 72 64 20 6e 6f 74 20 62 | 65 20 75 73 65 64 20 69 |rd not b|e used i|
|00000ad0| 6e 0a 58 61 64 76 65 72 | 74 69 73 69 6e 67 20 6f |n.Xadver|tising o|
|00000ae0| 72 20 70 75 62 6c 69 63 | 69 74 79 20 70 65 72 74 |r public|ity pert|
|00000af0| 61 69 6e 69 6e 67 20 74 | 6f 20 64 69 73 74 72 69 |aining t|o distri|
|00000b00| 62 75 74 69 6f 6e 20 6f | 66 20 74 68 65 0a 58 73 |bution o|f the.Xs|
|00000b10| 6f 66 74 77 61 72 65 20 | 77 69 74 68 6f 75 74 20 |oftware |without |
|00000b20| 73 70 65 63 69 66 69 63 | 2c 20 77 72 69 74 74 65 |specific|, writte|
|00000b30| 6e 20 70 72 69 6f 72 20 | 70 65 72 6d 69 73 73 69 |n prior |permissi|
|00000b40| 6f 6e 2e 0a 58 0a 58 53 | 74 61 6e 66 6f 72 64 20 |on..X.XS|tanford |
|00000b50| 6d 61 6b 65 73 20 6e 6f | 20 72 65 70 72 65 73 65 |makes no| represe|
|00000b60| 6e 74 61 74 69 6f 6e 73 | 20 61 62 6f 75 74 20 74 |ntations| about t|
|00000b70| 68 65 20 73 75 69 74 61 | 62 69 6c 69 74 79 20 6f |he suita|bility o|
|00000b80| 66 0a 58 74 68 69 73 20 | 73 6f 66 74 77 61 72 65 |f.Xthis |software|
|00000b90| 20 66 6f 72 20 61 6e 79 | 20 70 75 72 70 6f 73 65 | for any| purpose|
|00000ba0| 2e 20 20 54 68 65 20 53 | 6f 66 74 77 61 72 65 20 |. The S|oftware |
|00000bb0| 69 73 20 70 72 6f 76 69 | 64 65 64 20 22 61 73 20 |is provi|ded "as |
|00000bc0| 69 73 22 0a 58 77 69 74 | 68 6f 75 74 20 65 78 70 |is".Xwit|hout exp|
|00000bd0| 72 65 73 73 20 6f 72 20 | 69 6d 70 6c 69 65 64 20 |ress or |implied |
|00000be0| 77 61 72 72 61 6e 74 79 | 2e 0a 45 4e 44 5f 4f 46 |warranty|..END_OF|
|00000bf0| 5f 46 49 4c 45 0a 69 66 | 20 74 65 73 74 20 37 30 |_FILE.if| test 70|
|00000c00| 32 20 2d 6e 65 20 60 77 | 63 20 2d 63 20 3c 27 43 |2 -ne `w|c -c <'C|
|00000c10| 4f 50 59 52 49 47 48 54 | 27 60 3b 20 74 68 65 6e |OPYRIGHT|'`; then|
|00000c20| 0a 20 20 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |. ech|o shar: |
|00000c30| 5c 22 27 43 4f 50 59 52 | 49 47 48 54 27 5c 22 20 |\"'COPYR|IGHT'\" |
|00000c40| 75 6e 70 61 63 6b 65 64 | 20 77 69 74 68 20 77 72 |unpacked| with wr|
|00000c50| 6f 6e 67 20 73 69 7a 65 | 21 0a 66 69 0a 23 20 65 |ong size|!.fi.# e|
|00000c60| 6e 64 20 6f 66 20 27 43 | 4f 50 59 52 49 47 48 54 |nd of 'C|OPYRIGHT|
|00000c70| 27 0a 66 69 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |'.fi.if |test -f |
|00000c80| 27 4d 61 6b 65 66 69 6c | 65 2d 64 69 73 74 27 20 |'Makefil|e-dist' |
|00000c90| 2d 61 20 22 24 7b 31 7d | 22 20 21 3d 20 22 2d 63 |-a "${1}|" != "-c|
|00000ca0| 22 20 3b 20 74 68 65 6e | 20 0a 20 20 65 63 68 6f |" ; then| . echo|
|00000cb0| 20 73 68 61 72 3a 20 57 | 69 6c 6c 20 6e 6f 74 20 | shar: W|ill not |
|00000cc0| 63 6c 6f 62 62 65 72 20 | 65 78 69 73 74 69 6e 67 |clobber |existing|
|00000cd0| 20 66 69 6c 65 20 5c 22 | 27 4d 61 6b 65 66 69 6c | file \"|'Makefil|
|00000ce0| 65 2d 64 69 73 74 27 5c | 22 0a 65 6c 73 65 0a 65 |e-dist'\|".else.e|
|00000cf0| 63 68 6f 20 73 68 61 72 | 3a 20 45 78 74 72 61 63 |cho shar|: Extrac|
|00000d00| 74 69 6e 67 20 5c 22 27 | 4d 61 6b 65 66 69 6c 65 |ting \"'|Makefile|
|00000d10| 2d 64 69 73 74 27 5c 22 | 20 5c 28 34 30 37 20 63 |-dist'\"| \(407 c|
|00000d20| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|00000d30| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 4d 61 6b 65 66 |"s/^X//"| >'Makef|
|00000d40| 69 6c 65 2d 64 69 73 74 | 27 20 3c 3c 27 45 4e 44 |ile-dist|' <<'END|
|00000d50| 5f 4f 46 5f 46 49 4c 45 | 27 0a 58 2e 53 49 4c 45 |_OF_FILE|'.X.SILE|
|00000d60| 4e 54 3a 0a 58 0a 58 4d | 41 43 48 49 4e 45 20 3d |NT:.X.XM|ACHINE =|
|00000d70| 20 56 41 58 0a 58 58 56 | 45 52 53 49 4f 4e 3d 20 | VAX.XXV|ERSION= |
|00000d80| 58 31 31 0a 58 0a 58 23 | 20 66 6f 72 20 67 70 72 |X11.X.X#| for gpr|
|00000d90| 6f 66 20 70 72 6f 66 69 | 6c 69 6e 67 2c 20 70 75 |of profi|ling, pu|
|00000da0| 74 20 2d 44 47 50 52 4f | 46 20 69 6e 20 43 46 4c |t -DGPRO|F in CFL|
|00000db0| 41 47 53 20 61 6e 64 20 | 2d 70 67 20 69 6e 20 4c |AGS and |-pg in L|
|00000dc0| 44 46 4c 41 47 53 0a 58 | 0a 58 43 43 09 3d 20 63 |DFLAGS.X|.XCC.= c|
|00000dd0| 63 0a 58 43 46 4c 41 47 | 53 20 09 3d 20 2d 4f 20 |c.XCFLAG|S .= -O |
|00000de0| 2d 49 2e 20 2d 44 24 7b | 4d 41 43 48 49 4e 45 7d |-I. -D${|MACHINE}|
|00000df0| 20 2d 44 24 7b 58 56 45 | 52 53 49 4f 4e 7d 0a 58 | -D${XVE|RSION}.X|
|00000e00| 4c 44 09 3d 20 63 63 0a | 58 4c 44 46 4c 41 47 53 |LD.= cc.|XLDFLAGS|
|00000e10| 09 3d 0a 58 4c 49 42 53 | 09 3d 20 2d 6c 24 7b 58 |.=.XLIBS|.= -l${X|
|00000e20| 56 45 52 53 49 4f 4e 7d | 20 2d 6c 6d 0a 58 4f 42 |VERSION}| -lm.XOB|
|00000e30| 4a 53 09 3d 20 63 6d 64 | 73 2e 6f 20 65 78 65 63 |JS.= cmd|s.o exec|
|00000e40| 2e 6f 20 6d 61 69 6e 2e | 6f 20 6f 70 73 2e 6f 20 |.o main.|o ops.o |
|00000e50| 75 74 69 6c 73 2e 6f 0a | 58 50 52 4f 47 09 3d 20 |utils.o.|XPROG.= |
|00000e60| 67 62 65 6e 63 68 0a 58 | 0a 58 2e 63 2e 6f 3a 0a |gbench.X|.X.c.o:.|
|00000e70| 58 09 65 63 68 6f 20 63 | 6f 6d 70 69 6c 69 6e 67 |X.echo c|ompiling|
|00000e80| 20 24 2a 2e 63 0a 58 09 | 24 7b 43 43 7d 20 24 7b | $*.c.X.|${CC} ${|
|00000e90| 43 46 4c 41 47 53 7d 20 | 2d 63 20 24 2a 2e 63 0a |CFLAGS} |-c $*.c.|
|00000ea0| 58 0a 58 24 7b 50 52 4f | 47 7d 3a 20 24 7b 4f 42 |X.X${PRO|G}: ${OB|
|00000eb0| 4a 53 7d 0a 58 09 65 63 | 68 6f 20 6c 69 6e 6b 69 |JS}.X.ec|ho linki|
|00000ec0| 6e 67 20 24 7b 50 52 4f | 47 7d 0a 58 09 24 7b 4c |ng ${PRO|G}.X.${L|
|00000ed0| 44 7d 20 24 7b 4c 44 46 | 4c 41 47 53 7d 20 2d 6f |D} ${LDF|LAGS} -o|
|00000ee0| 20 24 40 20 24 7b 4f 42 | 4a 53 7d 20 24 7b 4c 49 | $@ ${OB|JS} ${LI|
|00000ef0| 42 53 7d 0a 58 0a 58 24 | 7b 4f 42 4a 53 7d 3a 20 |BS}.X.X$|{OBJS}: |
|00000f00| 67 62 65 6e 63 68 2e 68 | 0a 45 4e 44 5f 4f 46 5f |gbench.h|.END_OF_|
|00000f10| 46 49 4c 45 0a 69 66 20 | 74 65 73 74 20 34 30 37 |FILE.if |test 407|
|00000f20| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 4d 61 | -ne `wc| -c <'Ma|
|00000f30| 6b 65 66 69 6c 65 2d 64 | 69 73 74 27 60 3b 20 74 |kefile-d|ist'`; t|
|00000f40| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 68 61 |hen. |echo sha|
|00000f50| 72 3a 20 5c 22 27 4d 61 | 6b 65 66 69 6c 65 2d 64 |r: \"'Ma|kefile-d|
|00000f60| 69 73 74 27 5c 22 20 75 | 6e 70 61 63 6b 65 64 20 |ist'\" u|npacked |
|00000f70| 77 69 74 68 20 77 72 6f | 6e 67 20 73 69 7a 65 21 |with wro|ng size!|
|00000f80| 0a 66 69 0a 23 20 65 6e | 64 20 6f 66 20 27 4d 61 |.fi.# en|d of 'Ma|
|00000f90| 6b 65 66 69 6c 65 2d 64 | 69 73 74 27 0a 66 69 0a |kefile-d|ist'.fi.|
|00000fa0| 69 66 20 74 65 73 74 20 | 2d 66 20 27 52 45 41 44 |if test |-f 'READ|
|00000fb0| 4d 45 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |ME' -a "|${1}" !=|
|00000fc0| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|00000fd0| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|00000fe0| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|00000ff0| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 52 45 41 |ting fil|e \"'REA|
|00001000| 44 4d 45 27 5c 22 0a 65 | 6c 73 65 0a 65 63 68 6f |DME'\".e|lse.echo|
|00001010| 20 73 68 61 72 3a 20 45 | 78 74 72 61 63 74 69 6e | shar: E|xtractin|
|00001020| 67 20 5c 22 27 52 45 41 | 44 4d 45 27 5c 22 20 5c |g \"'REA|DME'\" \|
|00001030| 28 34 33 38 36 20 63 68 | 61 72 61 63 74 65 72 73 |(4386 ch|aracters|
|00001040| 5c 29 0a 73 65 64 20 22 | 73 2f 5e 58 2f 2f 22 20 |\).sed "|s/^X//" |
|00001050| 3e 27 52 45 41 44 4d 45 | 27 20 3c 3c 27 45 4e 44 |>'README|' <<'END|
|00001060| 5f 4f 46 5f 46 49 4c 45 | 27 0a 58 67 62 65 6e 63 |_OF_FILE|'.Xgbenc|
|00001070| 68 20 56 65 72 73 69 6f | 6e 20 31 2e 30 0a 58 0a |h Versio|n 1.0.X.|
|00001080| 58 47 62 65 6e 63 68 20 | 69 73 20 61 20 67 72 61 |XGbench |is a gra|
|00001090| 70 68 69 63 73 20 62 65 | 6e 63 68 6d 61 72 6b 20 |phics be|nchmark |
|000010a0| 74 6f 6f 6c 2e 20 20 49 | 74 20 63 75 72 72 65 6e |tool. I|t curren|
|000010b0| 74 6c 79 20 73 75 70 70 | 6f 72 74 73 20 32 44 20 |tly supp|orts 2D |
|000010c0| 69 6d 6d 65 64 69 61 74 | 65 2d 6d 6f 64 65 0a 58 |immediat|e-mode.X|
|000010d0| 67 72 61 70 68 69 63 73 | 20 61 6e 64 20 72 75 6e |graphics| and run|
|000010e0| 73 20 6f 6e 20 74 6f 70 | 20 6f 66 20 74 68 65 20 |s on top| of the |
|000010f0| 58 20 57 69 6e 64 6f 77 | 20 53 79 73 74 65 6d 20 |X Window| System |
|00001100| 28 62 6f 74 68 20 56 65 | 72 73 69 6f 6e 20 31 30 |(both Ve|rsion 10|
|00001110| 20 61 6e 64 20 56 65 72 | 73 69 6f 6e 0a 58 31 31 | and Ver|sion.X11|
|00001120| 29 20 61 6e 64 20 55 6e | 69 78 2e 20 20 49 74 20 |) and Un|ix. It |
|00001130| 69 73 20 77 72 69 74 74 | 65 6e 20 69 6e 20 43 20 |is writt|en in C |
|00001140| 61 6e 64 20 69 74 20 64 | 69 72 65 63 74 6c 79 20 |and it d|irectly |
|00001150| 63 61 6c 6c 73 20 74 68 | 65 20 6c 6f 77 2d 6c 65 |calls th|e low-le|
|00001160| 76 65 6c 20 77 69 6e 64 | 6f 77 0a 58 73 79 73 74 |vel wind|ow.Xsyst|
|00001170| 65 6d 20 63 6c 69 65 6e | 74 20 6c 69 62 72 61 72 |em clien|t librar|
|00001180| 79 3b 20 6e 6f 20 74 6f | 6f 6c 6b 69 74 20 69 73 |y; no to|olkit is|
|00001190| 20 75 73 65 64 2e 20 20 | 49 74 20 69 73 20 62 65 | used. |It is be|
|000011a0| 69 6e 67 20 64 65 76 65 | 6c 6f 70 65 64 20 62 79 |ing deve|loped by|
|000011b0| 20 43 72 61 69 67 0a 58 | 44 75 6e 77 6f 6f 64 79 | Craig.X|Dunwoody|
|000011c0| 20 61 6e 64 20 4d 61 72 | 6b 20 4c 69 6e 74 6f 6e | and Mar|k Linton|
|000011d0| 20 61 74 20 53 74 61 6e | 66 6f 72 64 20 55 6e 69 | at Stan|ford Uni|
|000011e0| 76 65 72 73 69 74 79 27 | 73 20 43 6f 6d 70 75 74 |versity'|s Comput|
|000011f0| 65 72 20 53 79 73 74 65 | 6d 73 20 4c 61 62 20 75 |er Syste|ms Lab u|
|00001200| 6e 64 65 72 0a 58 74 68 | 65 20 51 75 61 6e 74 75 |nder.Xth|e Quantu|
|00001210| 6d 20 70 72 6f 6a 65 63 | 74 2c 20 74 68 72 6f 75 |m projec|t, throu|
|00001220| 67 68 20 61 20 67 69 66 | 74 20 66 72 6f 6d 20 44 |gh a gif|t from D|
|00001230| 69 67 69 74 61 6c 20 45 | 71 75 69 70 6d 65 6e 74 |igital E|quipment|
|00001240| 20 43 6f 72 70 6f 72 61 | 74 69 6f 6e 2e 20 20 49 | Corpora|tion. I|
|00001250| 74 20 6d 61 79 0a 58 62 | 65 20 66 72 65 65 6c 79 |t may.Xb|e freely|
|00001260| 20 64 69 73 74 72 69 62 | 75 74 65 64 20 75 6e 64 | distrib|uted und|
|00001270| 65 72 20 74 68 65 20 63 | 6f 6e 64 69 74 69 6f 6e |er the c|ondition|
|00001280| 73 20 6c 69 73 74 65 64 | 20 69 6e 20 74 68 65 20 |s listed| in the |
|00001290| 61 63 63 6f 6d 70 61 6e | 79 69 6e 67 20 63 6f 70 |accompan|ying cop|
|000012a0| 79 72 69 67 68 74 0a 58 | 6e 6f 74 69 63 65 2e 0a |yright.X|notice..|
|000012b0| 58 0a 58 47 62 65 6e 63 | 68 20 69 73 20 6e 6f 74 |X.XGbenc|h is not|
|000012c0| 20 61 20 67 72 61 70 68 | 69 63 73 20 62 65 6e 63 | a graph|ics benc|
|000012d0| 68 6d 61 72 6b 2e 20 20 | 52 61 74 68 65 72 2c 20 |hmark. |Rather, |
|000012e0| 69 74 20 69 73 20 61 20 | 74 6f 6f 6c 20 74 68 61 |it is a |tool tha|
|000012f0| 74 20 6c 65 74 73 20 79 | 6f 75 0a 58 63 6f 6e 73 |t lets y|ou.Xcons|
|00001300| 74 72 75 63 74 20 61 6e | 64 20 72 75 6e 20 79 6f |truct an|d run yo|
|00001310| 75 72 20 6f 77 6e 20 62 | 65 6e 63 68 6d 61 72 6b |ur own b|enchmark|
|00001320| 73 2e 20 20 57 68 65 6e | 20 67 62 65 6e 63 68 20 |s. When| gbench |
|00001330| 73 74 61 72 74 73 20 75 | 70 2c 20 69 74 20 63 72 |starts u|p, it cr|
|00001340| 65 61 74 65 73 20 61 6e | 20 58 0a 58 77 69 6e 64 |eates an| X.Xwind|
|00001350| 6f 77 20 61 6e 64 20 72 | 65 61 64 73 20 63 6f 6d |ow and r|eads com|
|00001360| 6d 61 6e 64 73 20 66 72 | 6f 6d 20 73 74 61 6e 64 |mands fr|om stand|
|00001370| 61 72 64 20 69 6e 70 75 | 74 2c 20 6f 6e 65 20 70 |ard inpu|t, one p|
|00001380| 65 72 20 6c 69 6e 65 2e | 20 20 45 61 63 68 20 63 |er line.| Each c|
|00001390| 6f 6d 6d 61 6e 64 0a 58 | 64 69 72 65 63 74 73 20 |ommand.X|directs |
|000013a0| 67 62 65 6e 63 68 20 74 | 6f 20 72 65 70 65 61 74 |gbench t|o repeat|
|000013b0| 65 64 6c 79 20 70 65 72 | 66 6f 72 6d 20 61 20 70 |edly per|form a p|
|000013c0| 61 72 74 69 63 75 6c 61 | 72 20 64 72 61 77 69 6e |articula|r drawin|
|000013d0| 67 20 6f 70 65 72 61 74 | 69 6f 6e 2e 20 20 47 62 |g operat|ion. Gb|
|000013e0| 65 6e 63 68 0a 58 63 6f | 70 69 65 73 20 74 68 65 |ench.Xco|pies the|
|000013f0| 20 63 6f 6d 6d 61 6e 64 | 20 6c 69 6e 65 20 74 6f | command| line to|
|00001400| 20 73 74 61 6e 64 61 72 | 64 20 6f 75 74 70 75 74 | standar|d output|
|00001410| 2c 20 65 78 65 63 75 74 | 65 73 20 74 68 65 20 63 |, execut|es the c|
|00001420| 6f 6d 6d 61 6e 64 2c 20 | 61 6e 64 20 70 72 69 6e |ommand, |and prin|
|00001430| 74 73 20 6f 6e 0a 58 73 | 74 61 6e 64 61 72 64 20 |ts on.Xs|tandard |
|00001440| 6f 75 74 70 75 74 20 74 | 68 65 20 68 6f 73 74 20 |output t|he host |
|00001450| 6c 6f 61 64 20 61 76 65 | 72 61 67 65 2c 20 74 68 |load ave|rage, th|
|00001460| 65 20 74 69 6d 65 20 66 | 6f 72 20 65 61 63 68 20 |e time f|or each |
|00001470| 69 74 65 72 61 74 69 6f | 6e 2c 20 61 6e 64 20 74 |iteratio|n, and t|
|00001480| 68 65 0a 58 6e 75 6d 62 | 65 72 20 6f 66 20 69 74 |he.Xnumb|er of it|
|00001490| 65 72 61 74 69 6f 6e 73 | 20 70 65 72 20 73 65 63 |erations| per sec|
|000014a0| 6f 6e 64 2e 20 20 41 6c | 6c 20 74 69 6d 65 73 20 |ond. Al|l times |
|000014b0| 61 72 65 20 6d 65 61 73 | 75 72 65 64 20 69 6e 20 |are meas|ured in |
|000014c0| 72 65 61 6c 20 28 77 61 | 6c 6c 2d 63 6c 6f 63 6b |real (wa|ll-clock|
|000014d0| 29 0a 58 74 69 6d 65 2e | 0a 58 0a 58 59 6f 75 20 |).Xtime.|.X.XYou |
|000014e0| 63 61 6e 20 75 73 65 20 | 67 62 65 6e 63 68 20 65 |can use |gbench e|
|000014f0| 69 74 68 65 72 20 69 6e | 74 65 72 61 63 74 69 76 |ither in|teractiv|
|00001500| 65 6c 79 2c 20 62 79 20 | 74 79 70 69 6e 67 20 63 |ely, by |typing c|
|00001510| 6f 6d 6d 61 6e 64 73 20 | 61 6e 64 20 76 69 65 77 |ommands |and view|
|00001520| 69 6e 67 0a 58 74 68 65 | 20 72 65 73 75 6c 74 73 |ing.Xthe| results|
|00001530| 20 69 6d 6d 65 64 69 61 | 74 65 6c 79 2c 20 6f 72 | immedia|tely, or|
|00001540| 20 69 6e 20 62 61 74 63 | 68 20 6d 6f 64 65 2c 20 | in batc|h mode, |
|00001550| 77 69 74 68 20 73 74 61 | 6e 64 61 72 64 20 69 6e |with sta|ndard in|
|00001560| 70 75 74 20 72 65 64 69 | 72 65 63 74 65 64 0a 58 |put redi|rected.X|
|00001570| 74 6f 20 61 20 73 63 72 | 69 70 74 20 66 69 6c 65 |to a scr|ipt file|
|00001580| 20 61 6e 64 20 6f 75 74 | 70 75 74 20 72 65 64 69 | and out|put redi|
|00001590| 72 65 63 74 65 64 20 74 | 6f 20 61 20 6c 6f 67 20 |rected t|o a log |
|000015a0| 66 69 6c 65 2e 20 20 49 | 66 20 79 6f 75 20 64 6f |file. I|f you do|
|000015b0| 6e 27 74 20 77 61 6e 74 | 20 74 6f 0a 58 63 72 65 |n't want| to.Xcre|
|000015c0| 61 74 65 20 79 6f 75 72 | 20 6f 77 6e 20 73 63 72 |ate your| own scr|
|000015d0| 69 70 74 20 66 69 6c 65 | 2c 20 74 68 65 72 65 20 |ipt file|, there |
|000015e0| 69 73 20 61 20 62 75 69 | 6c 74 2d 69 6e 20 64 65 |is a bui|lt-in de|
|000015f0| 66 61 75 6c 74 20 73 63 | 72 69 70 74 2e 0a 58 0a |fault sc|ript..X.|
|00001600| 58 47 62 65 6e 63 68 20 | 69 73 20 70 72 69 6d 61 |XGbench |is prima|
|00001610| 72 69 6c 79 20 69 6e 74 | 65 6e 64 65 64 20 61 73 |rily int|ended as|
|00001620| 20 61 20 62 65 6e 63 68 | 6d 61 72 6b 69 6e 67 20 | a bench|marking |
|00001630| 74 6f 6f 6c 2e 20 20 59 | 6f 75 20 6d 61 79 20 61 |tool. Y|ou may a|
|00001640| 6c 73 6f 20 66 69 6e 64 | 20 69 74 0a 58 75 73 65 |lso find| it.Xuse|
|00001650| 66 75 6c 20 61 73 20 61 | 20 67 72 61 70 68 69 63 |ful as a| graphic|
|00001660| 73 20 73 79 73 74 65 6d | 20 65 78 65 72 63 69 73 |s system| exercis|
|00001670| 65 72 2e 20 20 49 66 20 | 79 6f 75 20 61 72 65 20 |er. If |you are |
|00001680| 64 65 76 65 6c 6f 70 69 | 6e 67 20 61 6e 20 61 70 |developi|ng an ap|
|00001690| 70 6c 69 63 61 74 69 6f | 6e 0a 58 70 72 6f 67 72 |plicatio|n.Xprogr|
|000016a0| 61 6d 2c 20 61 6e 64 20 | 73 6f 6d 65 20 67 72 61 |am, and |some gra|
|000016b0| 70 68 69 63 73 20 6f 70 | 65 72 61 74 69 6f 6e 20 |phics op|eration |
|000016c0| 69 73 6e 27 74 20 62 65 | 68 61 76 69 6e 67 20 70 |isn't be|having p|
|000016d0| 72 6f 70 65 72 6c 79 2c | 20 79 6f 75 20 6d 61 79 |roperly,| you may|
|000016e0| 20 62 65 20 61 62 6c 65 | 0a 58 74 6f 20 75 73 65 | be able|.Xto use|
|000016f0| 20 67 62 65 6e 63 68 20 | 74 6f 20 66 69 6e 64 20 | gbench |to find |
|00001700| 6f 75 74 20 69 66 20 74 | 68 65 20 75 6e 64 65 72 |out if t|he under|
|00001710| 6c 79 69 6e 67 20 67 72 | 61 70 68 69 63 73 20 73 |lying gr|aphics s|
|00001720| 79 73 74 65 6d 20 69 6d | 70 6c 65 6d 65 6e 74 61 |ystem im|plementa|
|00001730| 74 69 6f 6e 20 69 73 0a | 58 64 6f 69 6e 67 20 74 |tion is.|Xdoing t|
|00001740| 68 65 20 72 69 67 68 74 | 20 74 68 69 6e 67 2e 20 |he right| thing. |
|00001750| 20 47 62 65 6e 63 68 20 | 69 73 20 4e 4f 54 2c 20 | Gbench |is NOT, |
|00001760| 68 6f 77 65 76 65 72 2c | 20 69 6e 74 65 6e 64 65 |however,| intende|
|00001770| 64 20 61 73 20 61 20 67 | 72 61 70 68 69 63 73 20 |d as a g|raphics |
|00001780| 73 79 73 74 65 6d 0a 58 | 76 65 72 69 66 69 63 61 |system.X|verifica|
|00001790| 74 69 6f 6e 20 74 6f 6f | 6c 2e 20 20 49 74 20 61 |tion too|l. It a|
|000017a0| 6c 6c 6f 77 73 20 79 6f | 75 20 74 6f 20 65 78 65 |llows yo|u to exe|
|000017b0| 72 63 69 73 65 20 6d 6f | 73 74 20 6f 66 20 74 68 |rcise mo|st of th|
|000017c0| 65 20 64 72 61 77 69 6e | 67 20 66 75 6e 63 74 69 |e drawin|g functi|
|000017d0| 6f 6e 73 0a 58 73 75 70 | 70 6f 72 74 65 64 20 62 |ons.Xsup|ported b|
|000017e0| 79 20 74 68 65 20 67 72 | 61 70 68 69 63 73 20 73 |y the gr|aphics s|
|000017f0| 65 72 76 65 72 2c 20 62 | 75 74 20 66 6f 72 20 61 |erver, b|ut for a|
|00001800| 6e 79 20 67 69 76 65 6e | 20 66 75 6e 63 74 69 6f |ny given| functio|
|00001810| 6e 2c 20 74 68 65 20 6f | 6e 6c 79 0a 58 70 61 72 |n, the o|nly.Xpar|
|00001820| 61 6d 65 74 65 72 73 20 | 74 68 61 74 20 67 62 65 |ameters |that gbe|
|00001830| 6e 63 68 20 6c 65 74 73 | 20 79 6f 75 20 76 61 72 |nch lets| you var|
|00001840| 79 20 61 72 65 20 74 68 | 6f 73 65 20 28 73 75 63 |y are th|ose (suc|
|00001850| 68 20 61 73 20 73 69 7a | 65 29 20 74 68 61 74 20 |h as siz|e) that |
|00001860| 77 65 0a 58 63 6f 6e 73 | 69 64 65 72 20 74 6f 20 |we.Xcons|ider to |
|00001870| 62 65 20 6c 69 6b 65 6c | 79 20 74 6f 20 61 66 66 |be likel|y to aff|
|00001880| 65 63 74 20 70 65 72 66 | 6f 72 6d 61 6e 63 65 2e |ect perf|ormance.|
|00001890| 0a 58 0a 58 49 6e 20 74 | 68 65 20 66 75 74 75 72 |.X.XIn t|he futur|
|000018a0| 65 2c 20 77 65 20 68 6f | 70 65 20 74 6f 20 65 78 |e, we ho|pe to ex|
|000018b0| 74 65 6e 64 20 67 62 65 | 6e 63 68 20 61 6e 64 20 |tend gbe|nch and |
|000018c0| 70 72 6f 76 69 64 65 20 | 74 6f 6f 6c 73 20 66 6f |provide |tools fo|
|000018d0| 72 20 63 6f 6d 62 69 6e | 69 6e 67 20 61 6e 64 0a |r combin|ing and.|
|000018e0| 58 66 6f 72 6d 61 74 74 | 69 6e 67 20 72 61 77 20 |Xformatt|ing raw |
|000018f0| 6c 6f 67 20 66 69 6c 65 | 73 2e 20 20 50 72 6f 70 |log file|s. Prop|
|00001900| 6f 73 65 64 20 65 78 74 | 65 6e 73 69 6f 6e 73 20 |osed ext|ensions |
|00001910| 69 6e 63 6c 75 64 65 20 | 33 44 20 67 72 61 70 68 |include |3D graph|
|00001920| 69 63 73 20 61 6e 64 0a | 58 69 6e 74 65 67 72 61 |ics and.|Xintegra|
|00001930| 74 69 6f 6e 20 77 69 74 | 68 20 61 20 6d 6f 72 65 |tion wit|h a more|
|00001940| 20 63 6f 6d 70 72 65 68 | 65 6e 73 69 76 65 20 73 | compreh|ensive s|
|00001950| 65 74 20 6f 66 20 77 6f | 72 6b 73 74 61 74 69 6f |et of wo|rkstatio|
|00001960| 6e 20 62 65 6e 63 68 6d | 61 72 6b 73 2e 20 20 49 |n benchm|arks. I|
|00001970| 66 20 74 68 65 72 65 0a | 58 69 73 20 69 6e 74 65 |f there.|Xis inte|
|00001980| 72 65 73 74 2c 20 77 65 | 20 61 72 65 20 77 69 6c |rest, we| are wil|
|00001990| 6c 69 6e 67 20 74 6f 20 | 61 63 74 20 61 73 20 61 |ling to |act as a|
|000019a0| 20 63 6c 65 61 72 69 6e | 67 68 6f 75 73 65 20 66 | clearin|ghouse f|
|000019b0| 6f 72 20 62 65 6e 63 68 | 6d 61 72 6b 20 73 63 72 |or bench|mark scr|
|000019c0| 69 70 74 73 20 61 6e 64 | 0a 58 72 65 73 75 6c 74 |ipts and|.Xresult|
|000019d0| 73 2e 0a 58 0a 58 56 65 | 72 73 69 6f 6e 20 31 2e |s..X.XVe|rsion 1.|
|000019e0| 30 20 6f 66 20 67 62 65 | 6e 63 68 20 72 65 70 72 |0 of gbe|nch repr|
|000019f0| 65 73 65 6e 74 73 20 6f | 75 72 20 66 69 72 73 74 |esents o|ur first|
|00001a00| 20 61 74 74 65 6d 70 74 | 20 74 6f 20 61 64 64 72 | attempt| to addr|
|00001a10| 65 73 73 20 74 68 65 20 | 70 72 6f 62 6c 65 6d 20 |ess the |problem |
|00001a20| 6f 66 0a 58 63 68 61 72 | 61 63 74 65 72 69 7a 69 |of.Xchar|acterizi|
|00001a30| 6e 67 20 67 72 61 70 68 | 69 63 73 20 70 65 72 66 |ng graph|ics perf|
|00001a40| 6f 72 6d 61 6e 63 65 20 | 69 6e 20 61 20 64 69 73 |ormance |in a dis|
|00001a50| 74 72 69 62 75 74 65 64 | 20 65 6e 76 69 72 6f 6e |tributed| environ|
|00001a60| 6d 65 6e 74 2e 20 20 54 | 68 65 72 65 20 61 72 65 |ment. T|here are|
|00001a70| 0a 58 6d 61 6e 79 20 63 | 6f 6d 70 6c 65 78 20 69 |.Xmany c|omplex i|
|00001a80| 73 73 75 65 73 20 69 6e | 20 74 68 69 73 20 61 72 |ssues in| this ar|
|00001a90| 65 61 20 74 68 61 74 20 | 72 65 6d 61 69 6e 20 75 |ea that |remain u|
|00001aa0| 6e 72 65 73 6f 6c 76 65 | 64 2c 20 61 6e 64 20 77 |nresolve|d, and w|
|00001ab0| 65 20 65 78 70 65 63 74 | 20 74 68 61 74 20 77 65 |e expect| that we|
|00001ac0| 0a 58 77 69 6c 6c 20 62 | 65 20 61 62 6c 65 20 74 |.Xwill b|e able t|
|00001ad0| 6f 20 73 75 62 73 74 61 | 6e 74 69 61 6c 6c 79 20 |o substa|ntially |
|00001ae0| 69 6d 70 72 6f 76 65 20 | 67 62 65 6e 63 68 20 61 |improve |gbench a|
|00001af0| 73 20 77 65 20 6c 65 61 | 72 6e 20 6d 6f 72 65 2e |s we lea|rn more.|
|00001b00| 20 20 42 79 20 6d 61 6b | 69 6e 67 0a 58 67 62 65 | By mak|ing.Xgbe|
|00001b10| 6e 63 68 20 77 69 64 65 | 6c 79 20 61 76 61 69 6c |nch wide|ly avail|
|00001b20| 61 62 6c 65 2c 20 77 65 | 20 68 6f 70 65 20 74 6f |able, we| hope to|
|00001b30| 20 68 61 73 74 65 6e 20 | 74 68 65 20 70 72 6f 63 | hasten |the proc|
|00001b40| 65 73 73 20 6f 66 20 6d | 61 6b 69 6e 67 20 69 74 |ess of m|aking it|
|00001b50| 20 61 73 0a 58 70 6f 72 | 74 61 62 6c 65 2c 20 62 | as.Xpor|table, b|
|00001b60| 75 67 2d 66 72 65 65 2c | 20 63 6f 6d 70 6c 65 74 |ug-free,| complet|
|00001b70| 65 2c 20 61 6e 64 20 66 | 61 69 72 20 61 73 20 70 |e, and f|air as p|
|00001b80| 6f 73 73 69 62 6c 65 2e | 0a 58 0a 58 53 70 65 61 |ossible.|.X.XSpea|
|00001b90| 6b 69 6e 67 20 6f 66 20 | 62 75 67 73 2c 20 74 68 |king of |bugs, th|
|00001ba0| 65 72 65 20 69 73 20 61 | 70 70 61 72 65 6e 74 6c |ere is a|pparentl|
|00001bb0| 79 20 61 20 62 75 67 20 | 69 6e 20 74 68 65 20 62 |y a bug |in the b|
|00001bc0| 65 74 61 20 72 65 6c 65 | 61 73 65 20 6f 66 20 74 |eta rele|ase of t|
|00001bd0| 68 65 0a 58 61 77 6d 20 | 77 69 6e 64 6f 77 20 6d |he.Xawm |window m|
|00001be0| 61 6e 61 67 65 72 20 66 | 6f 72 20 58 31 31 52 32 |anager f|or X11R2|
|00001bf0| 20 74 68 61 74 20 63 61 | 75 73 65 73 20 74 68 65 | that ca|uses the|
|00001c00| 20 22 6d 61 70 22 20 63 | 6f 6d 6d 61 6e 64 20 74 | "map" c|ommand t|
|00001c10| 6f 20 68 61 6e 67 0a 58 | 5c 66 49 67 62 65 6e 63 |o hang.X|\fIgbenc|
|00001c20| 68 5c 66 50 2e 20 20 46 | 6f 72 20 74 68 69 73 20 |h\fP. F|or this |
|00001c30| 72 65 61 73 6f 6e 2c 20 | 77 65 20 68 61 76 65 20 |reason, |we have |
|00001c40| 72 65 6d 6f 76 65 64 20 | 22 6d 61 70 22 20 66 72 |removed |"map" fr|
|00001c50| 6f 6d 20 74 68 65 20 64 | 65 66 61 75 6c 74 0a 58 |om the d|efault.X|
|00001c60| 73 63 72 69 70 74 2e 20 | 20 57 65 20 68 61 76 65 |script. | We have|
|00001c70| 20 6e 6f 74 20 66 6f 75 | 6e 64 20 74 68 69 73 20 | not fou|nd this |
|00001c80| 70 72 6f 62 6c 65 6d 20 | 75 6e 64 65 72 20 61 6e |problem |under an|
|00001c90| 79 20 6f 66 20 74 68 65 | 20 6f 74 68 65 72 20 58 |y of the| other X|
|00001ca0| 31 31 52 32 0a 58 77 69 | 6e 64 6f 77 20 6d 61 6e |11R2.Xwi|ndow man|
|00001cb0| 61 67 65 72 73 2c 20 69 | 6e 63 6c 75 64 69 6e 67 |agers, i|ncluding|
|00001cc0| 20 74 68 65 20 73 74 61 | 6e 64 61 72 64 20 75 77 | the sta|ndard uw|
|00001cd0| 6d 2e 0a 58 0a 58 57 65 | 20 77 6f 75 6c 64 20 62 |m..X.XWe| would b|
|00001ce0| 65 20 6d 6f 73 74 20 70 | 6c 65 61 73 65 64 20 74 |e most p|leased t|
|00001cf0| 6f 20 72 65 63 65 69 76 | 65 20 61 6e 79 20 63 6f |o receiv|e any co|
|00001d00| 6d 6d 65 6e 74 73 2c 20 | 62 75 67 66 69 78 65 73 |mments, |bugfixes|
|00001d10| 2c 20 73 63 72 69 70 74 | 73 2c 20 6f 72 20 72 65 |, script|s, or re|
|00001d20| 73 75 6c 74 73 0a 58 74 | 68 61 74 20 79 6f 75 20 |sults.Xt|hat you |
|00001d30| 6d 69 67 68 74 20 68 61 | 76 65 2e 20 20 4f 75 72 |might ha|ve. Our|
|00001d40| 20 61 64 64 72 65 73 73 | 20 69 73 3a 0a 58 0a 58 | address| is:.X.X|
|00001d50| 49 6e 74 65 72 6e 65 74 | 3a 20 20 67 62 65 6e 63 |Internet|: gbenc|
|00001d60| 68 40 6c 75 72 63 68 2e | 73 74 61 6e 66 6f 72 64 |h@lurch.|stanford|
|00001d70| 2e 65 64 75 0a 58 55 53 | 45 6e 65 74 3a 20 20 20 |.edu.XUS|Enet: |
|00001d80| 20 7b 75 63 62 76 61 78 | 2c 64 65 63 76 61 78 7d | {ucbvax|,decvax}|
|00001d90| 21 64 65 63 77 72 6c 21 | 6c 75 72 63 68 2e 73 74 |!decwrl!|lurch.st|
|00001da0| 61 6e 66 6f 72 64 2e 65 | 64 75 21 67 62 65 6e 63 |anford.e|du!gbenc|
|00001db0| 68 0a 58 0a 58 47 62 65 | 6e 63 68 20 73 6f 75 72 |h.X.XGbe|nch sour|
|00001dc0| 63 65 20 63 6f 64 65 20 | 69 73 20 61 76 61 69 6c |ce code |is avail|
|00001dd0| 61 62 6c 65 20 69 6e 20 | 63 6f 6d 70 72 65 73 73 |able in |compress|
|00001de0| 65 64 20 61 6e 64 20 75 | 6e 63 6f 6d 70 72 65 73 |ed and u|ncompres|
|00001df0| 73 65 64 20 73 68 61 72 | 20 61 6e 64 20 74 61 72 |sed shar| and tar|
|00001e00| 0a 58 66 6f 72 6d 61 74 | 73 20 74 68 72 6f 75 67 |.Xformat|s throug|
|00001e10| 68 20 61 6e 6f 6e 79 6d | 6f 75 73 20 46 54 50 20 |h anonym|ous FTP |
|00001e20| 74 6f 20 6c 75 72 63 68 | 2e 73 74 61 6e 66 6f 72 |to lurch|.stanfor|
|00001e30| 64 2e 65 64 75 20 28 33 | 36 2e 32 32 2e 30 2e 31 |d.edu (3|6.22.0.1|
|00001e40| 34 29 2e 0a 58 0a 58 54 | 6f 20 62 75 69 6c 64 20 |4)..X.XT|o build |
|00001e50| 67 62 65 6e 63 68 3a 0a | 58 0a 58 31 2e 20 20 43 |gbench:.|X.X1. C|
|00001e60| 6f 70 79 20 4d 61 6b 65 | 66 69 6c 65 2d 64 69 73 |opy Make|file-dis|
|00001e70| 74 20 74 6f 20 4d 61 6b | 65 66 69 6c 65 2e 0a 58 |t to Mak|efile..X|
|00001e80| 0a 58 32 2e 20 20 49 6e | 20 4d 61 6b 65 66 69 6c |.X2. In| Makefil|
|00001e90| 65 2c 20 73 65 74 20 4d | 41 43 48 49 4e 45 20 74 |e, set M|ACHINE t|
|00001ea0| 6f 20 79 6f 75 72 20 6d | 61 63 68 69 6e 65 20 74 |o your m|achine t|
|00001eb0| 79 70 65 2e 20 20 47 62 | 65 6e 63 68 20 68 61 73 |ype. Gb|ench has|
|00001ec0| 20 62 65 65 6e 20 74 65 | 73 74 65 64 0a 58 20 20 | been te|sted.X |
|00001ed0| 20 20 77 69 74 68 20 58 | 31 30 20 61 6e 64 20 58 | with X|10 and X|
|00001ee0| 31 31 20 6f 6e 20 6d 61 | 63 68 69 6e 65 20 74 79 |11 on ma|chine ty|
|00001ef0| 70 65 73 20 56 41 58 2c | 20 53 55 4e 33 2c 20 61 |pes VAX,| SUN3, a|
|00001f00| 6e 64 20 53 55 4e 34 2e | 20 20 54 68 65 20 63 6f |nd SUN4.| The co|
|00001f10| 64 65 20 73 68 6f 75 6c | 64 0a 58 20 20 20 20 62 |de shoul|d.X b|
|00001f20| 65 20 71 75 69 74 65 20 | 70 6f 72 74 61 62 6c 65 |e quite |portable|
|00001f30| 2e 20 20 54 68 65 20 64 | 69 66 66 65 72 65 6e 63 |. The d|ifferenc|
|00001f40| 65 20 62 65 74 77 65 65 | 6e 20 74 68 65 20 56 41 |e betwee|n the VA|
|00001f50| 58 20 61 6e 64 20 53 55 | 4e 20 76 65 72 73 69 6f |X and SU|N versio|
|00001f60| 6e 73 0a 58 20 20 20 20 | 69 73 20 69 6e 20 74 68 |ns.X |is in th|
|00001f70| 65 20 64 65 66 69 6e 69 | 74 69 6f 6e 20 6f 66 20 |e defini|tion of |
|00001f80| 47 65 74 4c 6f 61 64 28 | 29 20 69 6e 20 75 74 69 |GetLoad(|) in uti|
|00001f90| 6c 73 2e 63 2e 20 20 57 | 68 65 6e 20 74 68 65 72 |ls.c. W|hen ther|
|00001fa0| 65 20 69 73 20 61 20 6d | 6f 72 65 0a 58 20 20 20 |e is a m|ore.X |
|00001fb0| 20 72 65 61 73 6f 6e 61 | 62 6c 65 20 77 61 79 20 | reasona|ble way |
|00001fc0| 74 6f 20 67 65 74 20 74 | 68 65 20 6c 6f 61 64 20 |to get t|he load |
|00001fd0| 28 73 75 67 67 65 73 74 | 69 6f 6e 73 20 61 72 65 |(suggest|ions are|
|00001fe0| 20 77 65 6c 63 6f 6d 65 | 29 2c 20 74 68 69 73 20 | welcome|), this |
|00001ff0| 70 72 6f 62 6c 65 6d 0a | 58 20 20 20 20 77 69 6c |problem.|X wil|
|00002000| 6c 20 67 6f 20 61 77 61 | 79 2e 0a 58 0a 58 33 2e |l go awa|y..X.X3.|
|00002010| 20 20 49 6e 20 4d 61 6b | 65 66 69 6c 65 2c 20 73 | In Mak|efile, s|
|00002020| 65 74 20 58 56 45 52 53 | 49 4f 4e 20 74 6f 20 58 |et XVERS|ION to X|
|00002030| 31 30 20 6f 72 20 58 31 | 31 20 61 73 20 61 70 70 |10 or X1|1 as app|
|00002040| 72 6f 70 72 69 61 74 65 | 2e 0a 58 0a 58 34 2e 20 |ropriate|..X.X4. |
|00002050| 20 49 6e 20 4d 61 6b 65 | 66 69 6c 65 2c 20 61 64 | In Make|file, ad|
|00002060| 64 20 74 68 65 20 69 6e | 64 69 63 61 74 65 64 20 |d the in|dicated |
|00002070| 66 6c 61 67 73 20 74 6f | 20 43 46 4c 41 47 53 20 |flags to| CFLAGS |
|00002080| 61 6e 64 20 4c 44 46 4c | 41 47 53 20 69 66 20 79 |and LDFL|AGS if y|
|00002090| 6f 75 20 77 61 6e 74 0a | 58 20 20 20 20 74 6f 20 |ou want.|X to |
|000020a0| 64 6f 20 67 70 72 6f 66 | 20 70 72 6f 66 69 6c 69 |do gprof| profili|
|000020b0| 6e 67 2e 0a 58 0a 58 35 | 2e 20 20 49 66 20 79 6f |ng..X.X5|. If yo|
|000020c0| 75 72 20 58 20 68 65 61 | 64 65 72 20 66 69 6c 65 |ur X hea|der file|
|000020d0| 73 20 61 72 65 20 6e 6f | 74 20 69 6e 20 2f 75 73 |s are no|t in /us|
|000020e0| 72 2f 69 6e 63 6c 75 64 | 65 2f 24 7b 58 56 45 52 |r/includ|e/${XVER|
|000020f0| 53 49 4f 4e 7d 2c 0a 58 | 20 20 20 20 63 72 65 61 |SION},.X| crea|
|00002100| 74 65 20 74 68 65 20 20 | 73 79 6d 62 6f 6c 69 63 |te the |symbolic|
|00002110| 20 6c 69 6e 6b 20 22 58 | 31 30 22 20 6f 72 20 22 | link "X|10" or "|
|00002120| 58 31 31 22 2c 20 70 6f | 69 6e 74 69 6e 67 20 74 |X11", po|inting t|
|00002130| 6f 20 74 68 65 20 61 70 | 70 72 6f 70 72 69 61 74 |o the ap|propriat|
|00002140| 65 0a 58 20 20 20 20 58 | 20 68 65 61 64 65 72 20 |e.X X| header |
|00002150| 66 69 6c 65 20 64 69 72 | 65 63 74 6f 72 79 2c 20 |file dir|ectory, |
|00002160| 69 6e 20 74 68 65 20 6d | 61 69 6e 20 67 62 65 6e |in the m|ain gben|
|00002170| 63 68 20 64 69 72 65 63 | 74 6f 72 79 2e 0a 58 0a |ch direc|tory..X.|
|00002180| 58 36 2e 20 20 4d 61 6b | 65 20 73 75 72 65 20 74 |X6. Mak|e sure t|
|00002190| 68 61 74 20 6c 69 62 24 | 7b 58 56 45 52 53 49 4f |hat lib$|{XVERSIO|
|000021a0| 4e 7d 2e 61 20 65 78 69 | 73 74 73 20 69 6e 20 79 |N}.a exi|sts in y|
|000021b0| 6f 75 72 20 73 74 61 6e | 64 61 72 64 20 6c 69 62 |our stan|dard lib|
|000021c0| 72 61 72 79 0a 58 20 20 | 20 20 64 69 72 65 63 74 |rary.X | direct|
|000021d0| 6f 72 79 2e 0a 58 0a 58 | 37 2e 20 20 22 6d 61 6b |ory..X.X|7. "mak|
|000021e0| 65 22 0a 45 4e 44 5f 4f | 46 5f 46 49 4c 45 0a 69 |e".END_O|F_FILE.i|
|000021f0| 66 20 74 65 73 74 20 34 | 33 38 36 20 2d 6e 65 20 |f test 4|386 -ne |
|00002200| 60 77 63 20 2d 63 20 3c | 27 52 45 41 44 4d 45 27 |`wc -c <|'README'|
|00002210| 60 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f |`; then.| echo|
|00002220| 20 73 68 61 72 3a 20 5c | 22 27 52 45 41 44 4d 45 | shar: \|"'README|
|00002230| 27 5c 22 20 75 6e 70 61 | 63 6b 65 64 20 77 69 74 |'\" unpa|cked wit|
|00002240| 68 20 77 72 6f 6e 67 20 | 73 69 7a 65 21 0a 66 69 |h wrong |size!.fi|
|00002250| 0a 23 20 65 6e 64 20 6f | 66 20 27 52 45 41 44 4d |.# end o|f 'READM|
|00002260| 45 27 0a 66 69 0a 69 66 | 20 74 65 73 74 20 2d 66 |E'.fi.if| test -f|
|00002270| 20 27 63 6d 64 73 2e 63 | 27 20 2d 61 20 22 24 7b | 'cmds.c|' -a "${|
|00002280| 31 7d 22 20 21 3d 20 22 | 2d 63 22 20 3b 20 74 68 |1}" != "|-c" ; th|
|00002290| 65 6e 20 0a 20 20 65 63 | 68 6f 20 73 68 61 72 3a |en . ec|ho shar:|
|000022a0| 20 57 69 6c 6c 20 6e 6f | 74 20 63 6c 6f 62 62 65 | Will no|t clobbe|
|000022b0| 72 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |r existi|ng file |
|000022c0| 5c 22 27 63 6d 64 73 2e | 63 27 5c 22 0a 65 6c 73 |\"'cmds.|c'\".els|
|000022d0| 65 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 |e.echo s|har: Ext|
|000022e0| 72 61 63 74 69 6e 67 20 | 5c 22 27 63 6d 64 73 2e |racting |\"'cmds.|
|000022f0| 63 27 5c 22 20 5c 28 37 | 34 31 35 20 63 68 61 72 |c'\" \(7|415 char|
|00002300| 61 63 74 65 72 73 5c 29 | 0a 73 65 64 20 22 73 2f |acters\)|.sed "s/|
|00002310| 5e 58 2f 2f 22 20 3e 27 | 63 6d 64 73 2e 63 27 20 |^X//" >'|cmds.c' |
|00002320| 3c 3c 27 45 4e 44 5f 4f | 46 5f 46 49 4c 45 27 0a |<<'END_O|F_FILE'.|
|00002330| 58 23 69 6e 63 6c 75 64 | 65 20 3c 67 62 65 6e 63 |X#includ|e <gbenc|
|00002340| 68 2e 68 3e 0a 58 0a 58 | 52 65 73 75 6c 74 20 50 |h.h>.X.X|Result P|
|00002350| 61 72 73 65 4f 70 74 73 | 28 6f 73 2c 73 66 70 2c |arseOpts|(os,sfp,|
|00002360| 6f 66 70 29 0a 58 20 20 | 20 20 63 68 61 72 2a 09 |ofp).X | char*.|
|00002370| 6f 73 3b 0a 58 20 20 20 | 20 4f 70 74 46 6c 61 67 |os;.X | OptFlag|
|00002380| 73 2a 09 73 66 70 3b 0a | 58 20 20 20 20 4f 70 74 |s*.sfp;.|X Opt|
|00002390| 46 6c 61 67 73 2a 09 6f | 66 70 3b 0a 58 7b 0a 58 |Flags*.o|fp;.X{.X|
|000023a0| 20 20 20 20 69 6e 74 09 | 09 69 3b 0a 58 20 20 20 | int.|.i;.X |
|000023b0| 20 63 68 61 72 09 70 73 | 5b 4d 61 78 53 74 72 5d | char.ps|[MaxStr]|
|000023c0| 3b 0a 58 20 20 20 20 62 | 6f 6f 6c 2a 09 6f 66 61 |;.X b|ool*.ofa|
|000023d0| 20 3d 20 28 62 6f 6f 6c | 2a 29 6f 66 70 3b 0a 58 | = (bool|*)ofp;.X|
|000023e0| 20 20 20 20 63 68 61 72 | 2a 09 6f 73 70 20 3d 20 | char|*.osp = |
|000023f0| 6f 73 3b 0a 58 20 20 20 | 20 52 65 73 75 6c 74 09 |os;.X | Result.|
|00002400| 72 65 73 75 6c 74 20 3d | 20 53 75 63 63 65 65 64 |result =| Succeed|
|00002410| 65 64 3b 0a 58 20 20 20 | 20 62 6f 6f 6c 2a 09 73 |ed;.X | bool*.s|
|00002420| 66 61 20 3d 20 28 62 6f | 6f 6c 2a 29 73 66 70 3b |fa = (bo|ol*)sfp;|
|00002430| 0a 58 20 20 20 20 63 68 | 61 72 2a 09 74 3b 0a 58 |.X ch|ar*.t;.X|
|00002440| 20 20 20 20 54 6f 6b 65 | 6e 53 74 61 74 65 09 74 | Toke|nState.t|
|00002450| 73 3b 0a 58 0a 58 20 20 | 20 20 66 6f 72 20 28 69 |s;.X.X | for (i|
|00002460| 3d 30 3b 69 3c 28 73 69 | 7a 65 6f 66 28 4f 70 74 |=0;i<(si|zeof(Opt|
|00002470| 46 6c 61 67 73 29 2f 73 | 69 7a 65 6f 66 28 62 6f |Flags)/s|izeof(bo|
|00002480| 6f 6c 29 29 3b 69 2b 2b | 29 20 6f 66 61 5b 69 5d |ol));i++|) ofa[i]|
|00002490| 20 3d 20 66 61 6c 73 65 | 3b 0a 58 20 20 20 20 73 | = false|;.X s|
|000024a0| 74 72 63 70 79 28 70 73 | 2c 6f 73 70 29 3b 0a 58 |trcpy(ps|,osp);.X|
|000024b0| 20 20 20 20 2a 6f 73 70 | 20 3d 20 27 5c 30 27 3b | *osp| = '\0';|
|000024c0| 0a 58 20 20 20 20 69 66 | 20 28 74 3d 53 74 72 54 |.X if| (t=StrT|
|000024d0| 6f 6b 65 6e 28 70 73 2c | 22 2c 22 2c 26 74 73 29 |oken(ps,|",",&ts)|
|000024e0| 29 20 64 6f 20 7b 0a 58 | 09 69 20 3d 20 2d 31 3b |) do {.X|.i = -1;|
|000024f0| 0a 58 09 69 66 20 28 21 | 73 74 72 63 6d 70 28 74 |.X.if (!|strcmp(t|
|00002500| 2c 22 61 63 22 29 29 20 | 69 20 3d 20 26 6f 66 70 |,"ac")) |i = &ofp|
|00002510| 2d 3e 61 6c 74 63 6f 6c | 6f 72 2d 6f 66 61 3b 0a |->altcol|or-ofa;.|
|00002520| 58 09 65 6c 73 65 20 69 | 66 20 28 21 73 74 72 63 |X.else i|f (!strc|
|00002530| 6d 70 28 74 2c 22 61 66 | 22 29 29 20 69 20 3d 20 |mp(t,"af|")) i = |
|00002540| 26 6f 66 70 2d 3e 61 6c | 74 66 6f 6e 74 2d 6f 66 |&ofp->al|tfont-of|
|00002550| 61 3b 0a 58 09 65 6c 73 | 65 20 69 66 20 28 21 73 |a;.X.els|e if (!s|
|00002560| 74 72 63 6d 70 28 74 2c | 22 61 67 22 29 29 20 69 |trcmp(t,|"ag")) i|
|00002570| 20 3d 20 26 6f 66 70 2d | 3e 61 6c 74 67 63 2d 6f | = &ofp-|>altgc-o|
|00002580| 66 61 3b 0a 58 09 65 6c | 73 65 20 69 66 20 28 21 |fa;.X.el|se if (!|
|00002590| 73 74 72 63 6d 70 28 74 | 2c 22 61 77 22 29 29 20 |strcmp(t|,"aw")) |
|000025a0| 69 20 3d 20 26 6f 66 70 | 2d 3e 61 6c 74 77 69 6e |i = &ofp|->altwin|
|000025b0| 2d 6f 66 61 3b 0a 58 09 | 65 6c 73 65 20 69 66 20 |-ofa;.X.|else if |
|000025c0| 28 21 73 74 72 63 6d 70 | 28 74 2c 22 64 22 29 29 |(!strcmp|(t,"d"))|
|000025d0| 20 69 20 3d 20 26 6f 66 | 70 2d 3e 64 72 61 67 2d | i = &of|p->drag-|
|000025e0| 6f 66 61 3b 0a 58 09 65 | 6c 73 65 20 69 66 20 28 |ofa;.X.e|lse if (|
|000025f0| 21 73 74 72 63 6d 70 28 | 74 2c 22 66 22 29 29 20 |!strcmp(|t,"f")) |
|00002600| 69 20 3d 20 26 6f 66 70 | 2d 3e 66 69 6c 6c 2d 6f |i = &ofp|->fill-o|
|00002610| 66 61 3b 0a 58 09 65 6c | 73 65 20 69 66 20 28 21 |fa;.X.el|se if (!|
|00002620| 73 74 72 63 6d 70 28 74 | 2c 22 69 22 29 29 20 69 |strcmp(t|,"i")) i|
|00002630| 20 3d 20 26 6f 66 70 2d | 3e 69 6e 76 65 72 74 2d | = &ofp-|>invert-|
|00002640| 6f 66 61 3b 0a 58 09 65 | 6c 73 65 20 69 66 20 28 |ofa;.X.e|lse if (|
|00002650| 21 73 74 72 63 6d 70 28 | 74 2c 22 6d 22 29 29 20 |!strcmp(|t,"m")) |
|00002660| 69 20 3d 20 26 6f 66 70 | 2d 3e 70 72 6f 66 69 6c |i = &ofp|->profil|
|00002670| 65 2d 6f 66 61 3b 0a 58 | 09 65 6c 73 65 20 69 66 |e-ofa;.X|.else if|
|00002680| 20 28 21 73 74 72 63 6d | 70 28 74 2c 22 6f 22 29 | (!strcm|p(t,"o")|
|00002690| 29 20 69 20 3d 20 26 6f | 66 70 2d 3e 6f 76 65 72 |) i = &o|fp->over|
|000026a0| 6c 61 70 2d 6f 66 61 3b | 0a 58 09 65 6c 73 65 20 |lap-ofa;|.X.else |
|000026b0| 69 66 20 28 21 73 74 72 | 63 6d 70 28 74 2c 22 6f |if (!str|cmp(t,"o|
|000026c0| 73 22 29 29 20 69 20 3d | 20 26 6f 66 70 2d 3e 6f |s")) i =| &ofp->o|
|000026d0| 66 66 73 72 63 2d 6f 66 | 61 3b 0a 58 09 65 6c 73 |ffsrc-of|a;.X.els|
|000026e0| 65 20 69 66 20 28 21 73 | 74 72 63 6d 70 28 74 2c |e if (!s|trcmp(t,|
|000026f0| 22 6f 64 22 29 29 20 69 | 20 3d 20 26 6f 66 70 2d |"od")) i| = &ofp-|
|00002700| 3e 6f 66 66 64 65 73 74 | 2d 6f 66 61 3b 0a 58 09 |>offdest|-ofa;.X.|
|00002710| 65 6c 73 65 20 69 66 20 | 28 21 73 74 72 63 6d 70 |else if |(!strcmp|
|00002720| 28 74 2c 22 70 22 29 29 | 20 69 20 3d 20 26 6f 66 |(t,"p"))| i = &of|
|00002730| 70 2d 3e 70 6f 6c 6c 2d | 6f 66 61 3b 0a 58 09 65 |p->poll-|ofa;.X.e|
|00002740| 6c 73 65 20 69 66 20 28 | 21 73 74 72 63 6d 70 28 |lse if (|!strcmp(|
|00002750| 74 2c 22 70 73 22 29 29 | 20 69 20 3d 20 26 6f 66 |t,"ps"))| i = &of|
|00002760| 70 2d 3e 70 6f 6c 79 73 | 65 6c 66 2d 6f 66 61 3b |p->polys|elf-ofa;|
|00002770| 0a 58 09 65 6c 73 65 20 | 69 66 20 28 21 73 74 72 |.X.else |if (!str|
|00002780| 63 6d 70 28 74 2c 22 70 | 77 22 29 29 20 69 20 3d |cmp(t,"p|w")) i =|
|00002790| 20 26 6f 66 70 2d 3e 70 | 6f 6c 79 77 69 6e 64 2d | &ofp->p|olywind-|
|000027a0| 6f 66 61 3b 0a 58 09 65 | 6c 73 65 20 69 66 20 28 |ofa;.X.e|lse if (|
|000027b0| 21 73 74 72 63 6d 70 28 | 74 2c 22 72 22 29 29 20 |!strcmp(|t,"r")) |
|000027c0| 69 20 3d 20 26 6f 66 70 | 2d 3e 73 65 74 64 65 66 |i = &ofp|->setdef|
|000027d0| 61 75 6c 74 73 2d 6f 66 | 61 3b 0a 58 09 65 6c 73 |aults-of|a;.X.els|
|000027e0| 65 20 69 66 20 28 21 73 | 74 72 63 6d 70 28 74 2c |e if (!s|trcmp(t,|
|000027f0| 22 73 22 29 29 20 69 20 | 3d 20 26 6f 66 70 2d 3e |"s")) i |= &ofp->|
|00002800| 73 74 69 70 70 6c 65 2d | 6f 66 61 3b 0a 58 09 65 |stipple-|ofa;.X.e|
|00002810| 6c 73 65 20 69 66 20 28 | 21 73 74 72 63 6d 70 28 |lse if (|!strcmp(|
|00002820| 74 2c 22 74 22 29 29 20 | 69 20 3d 20 26 6f 66 70 |t,"t")) |i = &ofp|
|00002830| 2d 3e 74 69 6c 65 2d 6f | 66 61 3b 0a 58 09 65 6c |->tile-o|fa;.X.el|
|00002840| 73 65 20 69 66 20 28 21 | 73 74 72 63 6d 70 28 74 |se if (!|strcmp(t|
|00002850| 2c 22 75 22 29 29 20 69 | 20 3d 20 26 6f 66 70 2d |,"u")) i| = &ofp-|
|00002860| 3e 75 6e 62 61 74 63 68 | 65 64 2d 6f 66 61 3b 0a |>unbatch|ed-ofa;.|
|00002870| 58 09 69 66 20 28 28 69 | 3e 3d 30 29 26 26 21 6f |X.if ((i|>=0)&&!o|
|00002880| 66 61 5b 69 5d 29 20 7b | 0a 58 09 20 20 20 20 69 |fa[i]) {|.X. i|
|00002890| 66 20 28 21 73 66 61 5b | 69 5d 29 20 72 65 73 75 |f (!sfa[|i]) resu|
|000028a0| 6c 74 20 3d 20 4f 70 74 | 4e 6f 74 53 75 70 70 6f |lt = Opt|NotSuppo|
|000028b0| 72 74 65 64 3b 0a 58 09 | 20 20 20 20 6f 66 61 5b |rted;.X.| ofa[|
|000028c0| 69 5d 20 3d 20 74 72 75 | 65 3b 0a 58 09 20 20 20 |i] = tru|e;.X. |
|000028d0| 20 73 70 72 69 6e 74 66 | 28 6f 73 70 2c 22 25 73 | sprintf|(osp,"%s|
|000028e0| 2c 22 2c 74 29 3b 0a 58 | 09 20 20 20 20 6f 73 70 |,",t);.X|. osp|
|000028f0| 20 2b 3d 20 73 74 72 6c | 65 6e 28 6f 73 70 29 3b | += strl|en(osp);|
|00002900| 0a 58 09 7d 0a 58 20 20 | 20 20 7d 20 77 68 69 6c |.X.}.X | } whil|
|00002910| 65 20 28 74 3d 53 74 72 | 54 6f 6b 65 6e 28 6e 69 |e (t=Str|Token(ni|
|00002920| 6c 2c 22 2c 22 2c 26 74 | 73 29 29 3b 0a 58 20 20 |l,",",&t|s));.X |
|00002930| 20 20 69 66 20 28 6f 73 | 70 3e 6f 73 29 20 2a 2d | if (os|p>os) *-|
|00002940| 2d 6f 73 70 20 3d 20 27 | 5c 30 27 3b 0a 58 20 20 |-osp = '|\0';.X |
|00002950| 20 20 72 65 74 75 72 6e | 20 72 65 73 75 6c 74 3b | return| result;|
|00002960| 0a 58 7d 0a 58 0a 58 63 | 68 61 72 2a 20 47 65 74 |.X}.X.Xc|har* Get|
|00002970| 54 6f 6b 65 6e 28 73 70 | 2c 66 69 72 73 74 29 0a |Token(sp|,first).|
|00002980| 58 20 20 20 20 53 74 61 | 74 65 2a 20 20 73 70 3b |X Sta|te* sp;|
|00002990| 0a 58 20 20 20 20 62 6f | 6f 6c 20 20 20 20 66 69 |.X bo|ol fi|
|000029a0| 72 73 74 3b 0a 58 7b 0a | 58 20 20 20 20 69 66 20 |rst;.X{.|X if |
|000029b0| 28 21 73 70 2d 3e 73 74 | 72 69 6e 70 75 74 29 20 |(!sp->st|rinput) |
|000029c0| 7b 0a 58 09 69 66 20 28 | 66 69 72 73 74 29 20 7b |{.X.if (|first) {|
|000029d0| 0a 58 09 20 20 20 20 77 | 68 69 6c 65 28 28 73 70 |.X. w|hile((sp|
|000029e0| 2d 3e 61 72 67 69 6e 64 | 65 78 3c 73 70 2d 3e 61 |->argind|ex<sp->a|
|000029f0| 72 67 63 29 26 26 28 2a | 73 70 2d 3e 61 72 67 76 |rgc)&&(*|sp->argv|
|00002a00| 5b 73 70 2d 3e 61 72 67 | 69 6e 64 65 78 5d 21 3d |[sp->arg|index]!=|
|00002a10| 27 2d 27 29 29 20 7b 0a | 58 09 09 73 70 2d 3e 61 |'-')) {.|X..sp->a|
|00002a20| 72 67 69 6e 64 65 78 2b | 2b 3b 0a 58 09 20 20 20 |rgindex+|+;.X. |
|00002a30| 20 7d 0a 58 09 20 20 20 | 20 69 66 20 28 73 70 2d | }.X. | if (sp-|
|00002a40| 3e 61 72 67 69 6e 64 65 | 78 3e 3d 73 70 2d 3e 61 |>arginde|x>=sp->a|
|00002a50| 72 67 63 29 20 72 65 74 | 75 72 6e 20 6e 69 6c 3b |rgc) ret|urn nil;|
|00002a60| 0a 58 09 20 20 20 20 65 | 6c 73 65 20 72 65 74 75 |.X. e|lse retu|
|00002a70| 72 6e 20 73 70 2d 3e 61 | 72 67 76 5b 73 70 2d 3e |rn sp->a|rgv[sp->|
|00002a80| 61 72 67 69 6e 64 65 78 | 2b 2b 5d 3b 0a 58 09 7d |argindex|++];.X.}|
|00002a90| 0a 58 09 65 6c 73 65 20 | 7b 0a 58 09 20 20 20 20 |.X.else |{.X. |
|00002aa0| 69 66 20 28 2a 73 70 2d | 3e 61 72 67 76 5b 73 70 |if (*sp-|>argv[sp|
|00002ab0| 2d 3e 61 72 67 69 6e 64 | 65 78 5d 3d 3d 27 2d 27 |->argind|ex]=='-'|
|00002ac0| 29 20 72 65 74 75 72 6e | 20 6e 69 6c 3b 0a 58 09 |) return| nil;.X.|
|00002ad0| 20 20 20 20 65 6c 73 65 | 20 72 65 74 75 72 6e 20 | else| return |
|00002ae0| 73 70 2d 3e 61 72 67 76 | 5b 73 70 2d 3e 61 72 67 |sp->argv|[sp->arg|
|00002af0| 69 6e 64 65 78 2b 2b 5d | 3b 0a 58 09 7d 0a 58 20 |index++]|;.X.}.X |
|00002b00| 20 20 20 7d 0a 58 20 20 | 20 20 65 6c 73 65 20 72 | }.X | else r|
|00002b10| 65 74 75 72 6e 20 53 74 | 72 54 6f 6b 65 6e 28 66 |eturn St|rToken(f|
|00002b20| 69 72 73 74 3f 73 70 2d | 3e 69 6e 73 74 72 3a 6e |irst?sp-|>instr:n|
|00002b30| 69 6c 2c 22 20 22 2c 26 | 73 70 2d 3e 74 73 29 3b |il," ",&|sp->ts);|
|00002b40| 0a 58 7d 0a 58 0a 58 69 | 6e 74 20 53 63 61 6e 49 |.X}.X.Xi|nt ScanI|
|00002b50| 6e 74 28 73 2c 6d 69 6e | 2c 6d 61 78 29 0a 58 20 |nt(s,min|,max).X |
|00002b60| 20 20 20 63 68 61 72 2a | 20 20 20 73 3b 0a 58 20 | char*| s;.X |
|00002b70| 20 20 20 69 6e 74 09 20 | 20 20 20 6d 69 6e 3b 0a | int. | min;.|
|00002b80| 58 20 20 20 20 69 6e 74 | 09 20 20 20 20 6d 61 78 |X int|. max|
|00002b90| 3b 0a 58 7b 0a 58 20 20 | 20 20 69 6e 74 20 69 3b |;.X{.X | int i;|
|00002ba0| 0a 58 0a 58 20 20 20 20 | 73 73 63 61 6e 66 28 73 |.X.X |sscanf(s|
|00002bb0| 2c 22 25 64 22 2c 26 69 | 29 3b 0a 58 20 20 20 20 |,"%d",&i|);.X |
|00002bc0| 72 65 74 75 72 6e 20 69 | 20 3d 20 4c 69 6d 69 74 |return i| = Limit|
|00002bd0| 28 69 2c 6d 69 6e 2c 6d | 61 78 29 3b 0a 58 7d 0a |(i,min,m|ax);.X}.|
|00002be0| 58 0a 58 76 6f 69 64 20 | 53 65 74 50 61 72 61 6d |X.Xvoid |SetParam|
|00002bf0| 28 73 70 2c 70 70 2c 6e | 2c 76 2c 63 6f 6e 63 61 |(sp,pp,n|,v,conca|
|00002c00| 74 29 0a 58 20 20 20 20 | 53 74 61 74 65 2a 20 20 |t).X |State* |
|00002c10| 73 70 3b 0a 58 20 20 20 | 20 50 61 72 61 6d 73 2a |sp;.X | Params*|
|00002c20| 20 70 70 3b 0a 58 20 20 | 20 20 63 68 61 72 2a 20 | pp;.X | char* |
|00002c30| 20 20 6e 3b 0a 58 20 20 | 20 20 63 68 61 72 2a 20 | n;.X | char* |
|00002c40| 20 20 76 3b 0a 58 20 20 | 20 20 62 6f 6f 6c 20 20 | v;.X | bool |
|00002c50| 20 20 63 6f 6e 63 61 74 | 3b 0a 58 7b 0a 58 20 20 | concat|;.X{.X |
|00002c60| 20 20 69 66 20 28 21 73 | 74 72 63 6d 70 28 6e 2c | if (!s|trcmp(n,|
|00002c70| 22 61 6e 67 6c 65 22 29 | 29 20 70 70 2d 3e 61 6e |"angle")|) pp->an|
|00002c80| 67 6c 65 20 3d 20 53 63 | 61 6e 49 6e 74 28 76 2c |gle = Sc|anInt(v,|
|00002c90| 30 2c 33 36 30 29 3b 0a | 58 20 20 20 20 65 6c 73 |0,360);.|X els|
|00002ca0| 65 20 69 66 20 28 21 73 | 74 72 63 6d 70 28 6e 2c |e if (!s|trcmp(n,|
|00002cb0| 22 61 73 70 65 63 74 22 | 29 29 20 7b 0a 58 09 73 |"aspect"|)) {.X.s|
|00002cc0| 73 63 61 6e 66 28 76 2c | 22 25 66 22 2c 26 70 70 |scanf(v,|"%f",&pp|
|00002cd0| 2d 3e 61 73 70 65 63 74 | 29 3b 0a 58 09 69 66 20 |->aspect|);.X.if |
|00002ce0| 28 70 70 2d 3e 61 73 70 | 65 63 74 3c 4d 69 6e 41 |(pp->asp|ect<MinA|
|00002cf0| 73 70 65 63 74 29 20 70 | 70 2d 3e 61 73 70 65 63 |spect) p|p->aspec|
|00002d00| 74 20 3d 20 4d 69 6e 41 | 73 70 65 63 74 3b 0a 58 |t = MinA|spect;.X|
|00002d10| 20 20 20 20 7d 0a 58 20 | 20 20 20 65 6c 73 65 20 | }.X | else |
|00002d20| 69 66 20 28 21 73 74 72 | 63 6d 70 28 6e 2c 22 63 |if (!str|cmp(n,"c|
|00002d30| 6f 75 6e 74 22 29 29 20 | 70 70 2d 3e 63 6f 75 6e |ount")) |pp->coun|
|00002d40| 74 20 3d 20 53 63 61 6e | 49 6e 74 28 76 2c 30 2c |t = Scan|Int(v,0,|
|00002d50| 4d 61 78 4e 75 6d 29 3b | 0a 58 20 20 20 20 65 6c |MaxNum);|.X el|
|00002d60| 73 65 20 69 66 20 28 21 | 73 74 72 63 6d 70 28 6e |se if (!|strcmp(n|
|00002d70| 2c 22 66 6f 6e 74 73 22 | 29 29 20 73 74 72 63 70 |,"fonts"|)) strcp|
|00002d80| 79 28 70 70 2d 3e 66 6f | 6e 74 73 2c 76 29 3b 0a |y(pp->fo|nts,v);.|
|00002d90| 58 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 21 73 |X els|e if (!s|
|00002da0| 74 72 63 6d 70 28 6e 2c | 22 6c 77 69 64 74 68 22 |trcmp(n,|"lwidth"|
|00002db0| 29 29 20 70 70 2d 3e 6c | 77 69 64 74 68 20 3d 20 |)) pp->l|width = |
|00002dc0| 53 63 61 6e 49 6e 74 28 | 76 2c 30 2c 5f 44 69 73 |ScanInt(|v,0,_Dis|
|00002dd0| 70 6c 61 79 57 69 64 74 | 68 29 3b 0a 58 20 20 20 |playWidt|h);.X |
|00002de0| 20 65 6c 73 65 20 69 66 | 20 28 21 73 74 72 63 6d | else if| (!strcm|
|00002df0| 70 28 6e 2c 22 6d 61 78 | 73 68 69 66 74 22 29 29 |p(n,"max|shift"))|
|00002e00| 20 70 70 2d 3e 6d 61 78 | 73 68 69 66 74 20 3d 20 | pp->max|shift = |
|00002e10| 53 63 61 6e 49 6e 74 28 | 76 2c 30 2c 5f 44 69 73 |ScanInt(|v,0,_Dis|
|00002e20| 70 6c 61 79 57 69 64 74 | 68 29 3b 0a 58 20 20 20 |playWidt|h);.X |
|00002e30| 20 65 6c 73 65 20 69 66 | 20 28 21 73 74 72 63 6d | else if| (!strcm|
|00002e40| 70 28 6e 2c 22 6e 63 68 | 61 72 22 29 29 20 70 70 |p(n,"nch|ar")) pp|
|00002e50| 2d 3e 6e 63 68 61 72 20 | 3d 20 53 63 61 6e 49 6e |->nchar |= ScanIn|
|00002e60| 74 28 76 2c 30 2c 4d 61 | 78 53 74 72 29 3b 0a 58 |t(v,0,Ma|xStr);.X|
|00002e70| 20 20 20 20 65 6c 73 65 | 20 69 66 20 28 21 73 74 | else| if (!st|
|00002e80| 72 63 6d 70 28 6e 2c 22 | 6e 76 65 72 74 22 29 29 |rcmp(n,"|nvert"))|
|00002e90| 20 70 70 2d 3e 6e 76 65 | 72 74 20 3d 20 53 63 61 | pp->nve|rt = Sca|
|00002ea0| 6e 49 6e 74 28 76 2c 33 | 2c 4d 61 78 56 65 72 74 |nInt(v,3|,MaxVert|
|00002eb0| 29 3b 0a 58 20 20 20 20 | 65 6c 73 65 20 69 66 20 |);.X |else if |
|00002ec0| 28 21 73 74 72 63 6d 70 | 28 6e 2c 22 6e 77 69 6e |(!strcmp|(n,"nwin|
|00002ed0| 22 29 29 20 70 70 2d 3e | 6e 77 69 6e 20 3d 20 53 |")) pp->|nwin = S|
|00002ee0| 63 61 6e 49 6e 74 28 76 | 2c 30 2c 4d 61 78 4e 75 |canInt(v|,0,MaxNu|
|00002ef0| 6d 29 3b 0a 58 20 20 20 | 20 65 6c 73 65 20 69 66 |m);.X | else if|
|00002f00| 20 28 21 73 74 72 63 6d | 70 28 6e 2c 22 6f 66 66 | (!strcm|p(n,"off|
|00002f10| 73 65 74 22 29 29 20 73 | 73 63 61 6e 66 28 76 2c |set")) s|scanf(v,|
|00002f20| 22 25 66 22 2c 26 70 70 | 2d 3e 6f 66 66 73 65 74 |"%f",&pp|->offset|
|00002f30| 29 3b 0a 58 20 20 20 20 | 65 6c 73 65 20 69 66 20 |);.X |else if |
|00002f40| 28 21 73 74 72 63 6d 70 | 28 6e 2c 22 6f 70 74 73 |(!strcmp|(n,"opts|
|00002f50| 22 29 29 20 7b 0a 58 09 | 69 66 20 28 63 6f 6e 63 |")) {.X.|if (conc|
|00002f60| 61 74 29 20 7b 0a 58 09 | 20 20 20 20 69 66 20 28 |at) {.X.| if (|
|00002f70| 73 74 72 6c 65 6e 28 70 | 70 2d 3e 6f 70 74 73 29 |strlen(p|p->opts)|
|00002f80| 26 26 73 74 72 6c 65 6e | 28 76 29 29 20 73 74 72 |&&strlen|(v)) str|
|00002f90| 63 61 74 28 70 70 2d 3e | 6f 70 74 73 2c 22 2c 22 |cat(pp->|opts,","|
|00002fa0| 29 3b 0a 58 09 20 20 20 | 20 73 74 72 63 61 74 28 |);.X. | strcat(|
|00002fb0| 70 70 2d 3e 6f 70 74 73 | 2c 76 29 3b 0a 58 09 7d |pp->opts|,v);.X.}|
|00002fc0| 0a 58 09 65 6c 73 65 20 | 73 74 72 63 70 79 28 70 |.X.else |strcpy(p|
|00002fd0| 70 2d 3e 6f 70 74 73 2c | 76 29 3b 0a 58 20 20 20 |p->opts,|v);.X |
|00002fe0| 20 7d 0a 58 20 20 20 20 | 65 6c 73 65 20 69 66 20 | }.X |else if |
|00002ff0| 28 21 73 74 72 63 6d 70 | 28 6e 2c 22 6f 75 74 66 |(!strcmp|(n,"outf|
|00003000| 69 6c 65 22 29 29 20 73 | 74 72 63 70 79 28 70 70 |ile")) s|trcpy(pp|
|00003010| 2d 3e 6f 75 74 66 69 6c | 65 2c 76 29 3b 0a 58 20 |->outfil|e,v);.X |
|00003020| 20 20 20 65 6c 73 65 20 | 69 66 20 28 21 73 74 72 | else |if (!str|
|00003030| 63 6d 70 28 6e 2c 22 70 | 74 73 69 7a 65 22 29 29 |cmp(n,"p|tsize"))|
|00003040| 20 70 70 2d 3e 70 74 73 | 69 7a 65 20 3d 20 53 63 | pp->pts|ize = Sc|
|00003050| 61 6e 49 6e 74 28 76 2c | 30 2c 5f 44 69 73 70 6c |anInt(v,|0,_Displ|
|00003060| 61 79 48 65 69 67 68 74 | 29 3b 0a 58 20 20 20 20 |ayHeight|);.X |
|00003070| 65 6c 73 65 20 69 66 20 | 28 21 73 74 72 63 6d 70 |else if |(!strcmp|
|00003080| 28 6e 2c 22 73 69 7a 65 | 22 29 29 20 70 70 2d 3e |(n,"size|")) pp->|
|00003090| 73 69 7a 65 20 3d 20 53 | 63 61 6e 49 6e 74 28 76 |size = S|canInt(v|
|000030a0| 2c 30 2c 5f 44 69 73 70 | 6c 61 79 57 69 64 74 68 |,0,_Disp|layWidth|
|000030b0| 29 3b 0a 58 20 20 20 20 | 65 6c 73 65 20 69 66 20 |);.X |else if |
|000030c0| 28 21 73 74 72 63 6d 70 | 28 6e 2c 22 74 61 67 22 |(!strcmp|(n,"tag"|
|000030d0| 29 29 20 73 74 72 63 70 | 79 28 70 70 2d 3e 74 61 |)) strcp|y(pp->ta|
|000030e0| 67 2c 76 29 3b 0a 58 20 | 20 20 20 65 6c 73 65 20 |g,v);.X | else |
|000030f0| 69 66 20 28 21 73 74 72 | 63 6d 70 28 6e 2c 22 74 |if (!str|cmp(n,"t|
|00003100| 69 6d 65 67 6f 61 6c 22 | 29 29 20 70 70 2d 3e 74 |imegoal"|)) pp->t|
|00003110| 69 6d 65 67 6f 61 6c 20 | 3d 20 53 63 61 6e 49 6e |imegoal |= ScanIn|
|00003120| 74 28 76 2c 30 2c 4d 61 | 78 4e 75 6d 29 3b 0a 58 |t(v,0,Ma|xNum);.X|
|00003130| 20 20 20 20 65 6c 73 65 | 20 69 66 20 28 21 73 74 | else| if (!st|
|00003140| 72 63 6d 70 28 6e 2c 22 | 77 69 6e 73 69 7a 65 22 |rcmp(n,"|winsize"|
|00003150| 29 29 20 70 70 2d 3e 77 | 69 6e 73 69 7a 65 20 3d |)) pp->w|insize =|
|00003160| 20 53 63 61 6e 49 6e 74 | 28 76 2c 31 2c 5f 44 69 | ScanInt|(v,1,_Di|
|00003170| 73 70 6c 61 79 48 65 69 | 67 68 74 29 3b 0a 58 7d |splayHei|ght);.X}|
|00003180| 0a 58 0a 58 76 6f 69 64 | 20 50 61 72 73 65 50 61 |.X.Xvoid| ParsePa|
|00003190| 72 61 6d 73 28 73 70 2c | 63 70 2c 70 70 2c 70 72 |rams(sp,|cp,pp,pr|
|000031a0| 69 6e 74 29 0a 58 20 20 | 20 20 53 74 61 74 65 2a |int).X | State*|
|000031b0| 09 73 70 3b 0a 58 20 20 | 20 20 43 6d 64 2a 09 63 |.sp;.X | Cmd*.c|
|000031c0| 70 3b 0a 58 20 20 20 20 | 50 61 72 61 6d 73 2a 09 |p;.X |Params*.|
|000031d0| 70 70 3b 0a 58 20 20 20 | 20 62 6f 6f 6c 09 70 72 |pp;.X | bool.pr|
|000031e0| 69 6e 74 3b 0a 58 7b 0a | 58 20 20 20 20 69 6e 74 |int;.X{.|X int|
|000031f0| 09 20 20 20 20 69 3b 0a | 58 20 20 20 20 63 68 61 |. i;.|X cha|
|00003200| 72 2a 20 20 20 74 20 3d | 20 6e 69 6c 3b 0a 58 20 |r* t =| nil;.X |
|00003210| 20 20 20 63 68 61 72 2a | 20 20 20 76 3b 0a 58 0a | char*| v;.X.|
|00003220| 58 20 20 20 20 69 66 20 | 28 63 70 2d 3e 69 6e 64 |X if |(cp->ind|
|00003230| 65 78 21 3d 4e 69 6c 49 | 6e 64 65 78 29 20 7b 0a |ex!=NilI|ndex) {.|
|00003240| 58 09 66 6f 72 20 28 0a | 58 09 20 20 20 20 69 3d |X.for (.|X. i=|
|00003250| 30 3b 0a 58 09 20 20 20 | 20 28 69 3c 4d 61 78 50 |0;.X. | (i<MaxP|
|00003260| 6f 73 69 74 69 6f 6e 61 | 6c 29 26 26 4f 70 4e 61 |ositiona|l)&&OpNa|
|00003270| 6d 65 73 5b 28 69 6e 74 | 29 63 70 2d 3e 69 6e 64 |mes[(int|)cp->ind|
|00003280| 65 78 5d 5b 31 2b 69 5d | 26 26 0a 58 09 09 28 74 |ex][1+i]|&&.X..(t|
|00003290| 3d 47 65 74 54 6f 6b 65 | 6e 28 73 70 2c 66 61 6c |=GetToke|n(sp,fal|
|000032a0| 73 65 29 29 26 26 21 73 | 74 72 63 68 72 28 74 2c |se))&&!s|trchr(t,|
|000032b0| 27 3d 27 29 3b 0a 58 09 | 20 20 20 20 69 2b 2b 0a |'=');.X.| i++.|
|000032c0| 58 09 29 20 7b 0a 58 09 | 20 20 20 20 53 65 74 50 |X.) {.X.| SetP|
|000032d0| 61 72 61 6d 28 73 70 2c | 70 70 2c 4f 70 4e 61 6d |aram(sp,|pp,OpNam|
|000032e0| 65 73 5b 28 69 6e 74 29 | 63 70 2d 3e 69 6e 64 65 |es[(int)|cp->inde|
|000032f0| 78 5d 5b 31 2b 69 5d 2c | 74 2c 74 72 75 65 29 3b |x][1+i],|t,true);|
|00003300| 0a 58 09 7d 0a 58 20 20 | 20 20 7d 0a 58 20 20 20 |.X.}.X | }.X |
|00003310| 20 64 6f 20 69 66 20 28 | 74 26 26 28 76 3d 73 74 | do if (|t&&(v=st|
|00003320| 72 63 68 72 28 74 2c 27 | 3d 27 29 29 29 20 7b 0a |rchr(t,'|='))) {.|
|00003330| 58 09 2a 76 2b 2b 20 3d | 20 27 5c 30 27 3b 0a 58 |X.*v++ =| '\0';.X|
|00003340| 09 53 65 74 50 61 72 61 | 6d 28 73 70 2c 70 70 2c |.SetPara|m(sp,pp,|
|00003350| 74 2c 76 2c 66 61 6c 73 | 65 29 3b 0a 58 09 69 66 |t,v,fals|e);.X.if|
|00003360| 20 28 70 72 69 6e 74 29 | 20 50 72 69 6e 74 50 61 | (print)| PrintPa|
|00003370| 72 61 6d 28 4f 75 74 28 | 73 70 2c 63 70 29 2c 70 |ram(Out(|sp,cp),p|
|00003380| 70 2c 22 20 20 22 2c 74 | 2c 22 22 29 3b 0a 58 09 |p," ",t|,"");.X.|
|00003390| 2a 2d 2d 76 20 3d 20 27 | 3d 27 3b 0a 58 20 20 20 |*--v = '|=';.X |
|000033a0| 20 7d 20 77 68 69 6c 65 | 20 28 74 3d 47 65 74 54 | } while| (t=GetT|
|000033b0| 6f 6b 65 6e 28 73 70 2c | 66 61 6c 73 65 29 29 3b |oken(sp,|false));|
|000033c0| 0a 58 20 20 20 20 69 66 | 20 28 70 72 69 6e 74 29 |.X if| (print)|
|000033d0| 20 7b 0a 58 09 70 75 74 | 63 28 27 5c 6e 27 2c 4f | {.X.put|c('\n',O|
|000033e0| 75 74 28 73 70 2c 63 70 | 29 29 3b 0a 58 09 66 66 |ut(sp,cp|));.X.ff|
|000033f0| 6c 75 73 68 28 4f 75 74 | 28 73 70 2c 63 70 29 29 |lush(Out|(sp,cp))|
|00003400| 3b 0a 58 20 20 20 20 7d | 0a 58 20 20 20 20 69 66 |;.X }|.X if|
|00003410| 20 28 73 74 72 63 6d 70 | 28 73 70 2d 3e 66 6f 6e | (strcmp|(sp->fon|
|00003420| 74 73 2c 70 70 2d 3e 66 | 6f 6e 74 73 29 29 20 53 |ts,pp->f|onts)) S|
|00003430| 65 74 46 6f 6e 74 73 28 | 73 70 2c 70 70 29 3b 0a |etFonts(|sp,pp);.|
|00003440| 58 20 20 20 20 69 66 20 | 28 73 74 72 63 6d 70 28 |X if |(strcmp(|
|00003450| 73 70 2d 3e 6f 75 74 66 | 69 6c 65 2c 70 70 2d 3e |sp->outf|ile,pp->|
|00003460| 6f 75 74 66 69 6c 65 29 | 29 20 53 65 74 4f 75 74 |outfile)|) SetOut|
|00003470| 66 69 6c 65 28 73 70 2c | 70 70 29 3b 0a 58 20 20 |file(sp,|pp);.X |
|00003480| 20 20 69 66 20 28 73 70 | 2d 3e 77 69 6e 73 69 7a | if (sp|->winsiz|
|00003490| 65 21 3d 70 70 2d 3e 77 | 69 6e 73 69 7a 65 29 20 |e!=pp->w|insize) |
|000034a0| 53 65 74 57 69 6e 73 69 | 7a 65 28 73 70 2c 70 70 |SetWinsi|ze(sp,pp|
|000034b0| 29 3b 0a 58 20 20 20 20 | 69 66 20 28 50 61 72 73 |);.X |if (Pars|
|000034c0| 65 4f 70 74 73 28 70 70 | 2d 3e 6f 70 74 73 2c 26 |eOpts(pp|->opts,&|
|000034d0| 73 70 2d 3e 73 75 70 6f | 70 74 73 2c 26 63 70 2d |sp->supo|pts,&cp-|
|000034e0| 3e 6f 29 21 3d 53 75 63 | 63 65 65 64 65 64 29 20 |>o)!=Suc|ceeded) |
|000034f0| 7b 0a 58 09 63 70 2d 3e | 72 65 73 75 6c 74 20 3d |{.X.cp->|result =|
|00003500| 20 4f 70 74 4e 6f 74 53 | 75 70 70 6f 72 74 65 64 | OptNotS|upported|
|00003510| 3b 0a 58 20 20 20 20 7d | 0a 58 7d 0a 58 0a 58 76 |;.X }|.X}.X.Xv|
|00003520| 6f 69 64 20 50 61 72 73 | 65 43 6d 64 28 73 70 2c |oid Pars|eCmd(sp,|
|00003530| 63 70 29 0a 58 20 20 20 | 20 53 74 61 74 65 2a 20 |cp).X | State* |
|00003540| 20 73 70 3b 0a 58 20 20 | 20 20 43 6d 64 2a 20 20 | sp;.X | Cmd* |
|00003550| 20 20 63 70 3b 0a 58 7b | 0a 58 20 20 20 20 63 70 | cp;.X{|.X cp|
|00003560| 2d 3e 72 65 73 75 6c 74 | 20 3d 20 73 70 2d 3e 73 |->result| = sp->s|
|00003570| 75 70 63 6d 64 73 5b 28 | 69 6e 74 29 63 70 2d 3e |upcmds[(|int)cp->|
|00003580| 69 6e 64 65 78 5d 3f 53 | 75 63 63 65 65 64 65 64 |index]?S|ucceeded|
|00003590| 3a 43 6d 64 4e 6f 74 53 | 75 70 70 6f 72 74 65 64 |:CmdNotS|upported|
|000035a0| 3b 0a 58 20 20 20 20 50 | 61 72 73 65 50 61 72 61 |;.X P|arsePara|
|000035b0| 6d 73 28 73 70 2c 63 70 | 2c 26 63 70 2d 3e 70 2c |ms(sp,cp|,&cp->p,|
|000035c0| 66 61 6c 73 65 29 3b 0a | 58 20 20 20 20 63 70 2d |false);.|X cp-|
|000035d0| 3e 66 75 6e 63 20 3d 20 | 63 70 2d 3e 6f 2e 69 6e |>func = |cp->o.in|
|000035e0| 76 65 72 74 3f 47 58 69 | 6e 76 65 72 74 3a 47 58 |vert?GXi|nvert:GX|
|000035f0| 63 6f 70 79 3b 0a 58 20 | 20 20 20 73 70 2d 3e 70 |copy;.X | sp->p|
|00003600| 72 65 76 69 6e 64 65 78 | 20 3d 20 63 70 2d 3e 69 |revindex| = cp->i|
|00003610| 6e 64 65 78 3b 0a 58 20 | 20 20 20 43 6f 70 79 50 |ndex;.X | CopyP|
|00003620| 61 72 61 6d 73 28 26 73 | 70 2d 3e 70 72 65 76 70 |arams(&s|p->prevp|
|00003630| 61 72 61 6d 73 2c 26 63 | 70 2d 3e 70 29 3b 0a 58 |arams,&c|p->p);.X|
|00003640| 20 20 20 20 69 66 20 28 | 63 70 2d 3e 6f 2e 73 65 | if (|cp->o.se|
|00003650| 74 64 65 66 61 75 6c 74 | 73 29 20 43 6f 70 79 50 |tdefault|s) CopyP|
|00003660| 61 72 61 6d 73 28 26 73 | 70 2d 3e 64 65 66 61 75 |arams(&s|p->defau|
|00003670| 6c 74 73 2c 26 63 70 2d | 3e 70 29 3b 0a 58 7d 0a |lts,&cp-|>p);.X}.|
|00003680| 58 0a 58 76 6f 69 64 20 | 50 75 73 68 49 6e 70 75 |X.Xvoid |PushInpu|
|00003690| 74 28 73 70 2c 66 6e 29 | 0a 58 20 20 20 20 53 74 |t(sp,fn)|.X St|
|000036a0| 61 74 65 2a 20 20 73 70 | 3b 0a 58 20 20 20 20 63 |ate* sp|;.X c|
|000036b0| 68 61 72 2a 20 20 20 66 | 6e 3b 0a 58 7b 0a 58 20 |har* f|n;.X{.X |
|000036c0| 20 20 20 69 66 20 28 28 | 73 70 2d 3e 69 6e 64 65 | if ((|sp->inde|
|000036d0| 70 74 68 3c 4d 61 78 49 | 6e 64 65 70 74 68 29 26 |pth<MaxI|ndepth)&|
|000036e0| 26 21 28 73 70 2d 3e 69 | 6e 66 64 73 5b 2b 2b 73 |&!(sp->i|nfds[++s|
|000036f0| 70 2d 3e 69 6e 64 65 70 | 74 68 5d 3d 66 6f 70 65 |p->indep|th]=fope|
|00003700| 6e 28 66 6e 2c 22 72 22 | 29 29 29 20 7b 0a 58 09 |n(fn,"r"|))) {.X.|
|00003710| 73 70 2d 3e 69 6e 64 65 | 70 74 68 2d 2d 3b 0a 58 |sp->inde|pth--;.X|
|00003720| 20 20 20 20 7d 0a 58 7d | 0a 58 0a 58 62 6f 6f 6c | }.X}|.X.Xbool|
|00003730| 20 50 6f 70 49 6e 70 75 | 74 28 73 70 29 0a 58 20 | PopInpu|t(sp).X |
|00003740| 20 20 20 53 74 61 74 65 | 2a 20 20 73 70 3b 0a 58 | State|* sp;.X|
|00003750| 7b 0a 58 20 20 20 20 62 | 6f 6f 6c 20 6e 6f 6e 65 |{.X b|ool none|
|00003760| 6d 70 74 79 20 3d 20 28 | 62 6f 6f 6c 29 28 73 70 |mpty = (|bool)(sp|
|00003770| 2d 3e 69 6e 64 65 70 74 | 68 3e 30 29 3b 0a 58 0a |->indept|h>0);.X.|
|00003780| 58 20 20 20 20 69 66 20 | 28 6e 6f 6e 65 6d 70 74 |X if |(nonempt|
|00003790| 79 29 20 73 70 2d 3e 69 | 6e 64 65 70 74 68 2d 2d |y) sp->i|ndepth--|
|000037a0| 3b 0a 58 20 20 20 20 72 | 65 74 75 72 6e 20 6e 6f |;.X r|eturn no|
|000037b0| 6e 65 6d 70 74 79 3b 0a | 58 7d 0a 58 0a 58 76 6f |nempty;.|X}.X.Xvo|
|000037c0| 69 64 20 50 72 69 6e 74 | 43 6f 6d 6d 65 6e 74 28 |id Print|Comment(|
|000037d0| 73 70 2c 63 70 2c 74 29 | 0a 58 20 20 20 20 53 74 |sp,cp,t)|.X St|
|000037e0| 61 74 65 2a 20 20 73 70 | 3b 20 0a 58 20 20 20 20 |ate* sp|; .X |
|000037f0| 43 6d 64 2a 20 20 20 20 | 63 70 3b 0a 58 20 20 20 |Cmd* |cp;.X |
|00003800| 20 63 68 61 72 2a 20 20 | 20 74 3b 0a 58 7b 0a 58 | char* | t;.X{.X|
|00003810| 20 20 20 20 63 68 61 72 | 2a 20 74 65 3b 0a 58 0a | char|* te;.X.|
|00003820| 58 20 20 20 20 69 66 20 | 28 73 70 2d 3e 73 74 72 |X if |(sp->str|
|00003830| 69 6e 70 75 74 29 20 7b | 0a 58 09 74 65 20 3d 20 |input) {|.X.te = |
|00003840| 74 2b 73 74 72 6c 65 6e | 28 74 29 3b 0a 58 20 09 |t+strlen|(t);.X .|
|00003850| 69 66 20 28 74 65 3c 73 | 70 2d 3e 74 73 2e 65 6e |if (te<s|p->ts.en|
|00003860| 64 29 20 2a 74 65 20 3d | 20 27 20 27 3b 0a 58 09 |d) *te =| ' ';.X.|
|00003870| 66 70 72 69 6e 74 66 28 | 4f 75 74 28 73 70 2c 63 |fprintf(|Out(sp,c|
|00003880| 70 29 2c 22 25 73 5c 6e | 22 2c 74 29 3b 0a 58 20 |p),"%s\n|",t);.X |
|00003890| 20 20 20 7d 0a 58 20 20 | 20 20 65 6c 73 65 20 7b | }.X | else {|
|000038a0| 0a 58 09 64 6f 20 66 70 | 72 69 6e 74 66 28 4f 75 |.X.do fp|rintf(Ou|
|000038b0| 74 28 73 70 2c 63 70 29 | 2c 22 25 73 20 22 2c 74 |t(sp,cp)|,"%s ",t|
|000038c0| 29 3b 20 77 68 69 6c 65 | 20 28 74 3d 47 65 74 54 |); while| (t=GetT|
|000038d0| 6f 6b 65 6e 28 73 70 2c | 66 61 6c 73 65 29 29 3b |oken(sp,|false));|
|000038e0| 0a 58 09 70 75 74 63 28 | 27 5c 6e 27 2c 4f 75 74 |.X.putc(|'\n',Out|
|000038f0| 28 73 70 2c 63 70 29 29 | 3b 0a 58 20 20 20 20 7d |(sp,cp))|;.X }|
|00003900| 0a 58 7d 0a 58 0a 58 62 | 6f 6f 6c 20 47 65 74 4c |.X}.X.Xb|ool GetL|
|00003910| 69 6e 65 28 73 70 29 0a | 58 20 20 20 20 53 74 61 |ine(sp).|X Sta|
|00003920| 74 65 2a 20 20 73 70 3b | 0a 58 7b 0a 58 20 20 20 |te* sp;|.X{.X |
|00003930| 20 63 68 61 72 2a 20 63 | 70 3b 0a 58 0a 58 20 20 | char* c|p;.X.X |
|00003940| 20 20 69 66 20 28 73 70 | 2d 3e 73 63 72 69 70 74 | if (sp|->script|
|00003950| 69 6e 64 65 78 3e 3d 30 | 29 20 7b 0a 58 09 73 74 |index>=0|) {.X.st|
|00003960| 72 63 70 79 28 73 70 2d | 3e 69 6e 73 74 72 2c 53 |rcpy(sp-|>instr,S|
|00003970| 63 72 69 70 74 5b 73 70 | 2d 3e 73 63 72 69 70 74 |cript[sp|->script|
|00003980| 69 6e 64 65 78 5d 29 3b | 0a 58 09 69 66 20 28 21 |index]);|.X.if (!|
|00003990| 53 63 72 69 70 74 5b 2b | 2b 73 70 2d 3e 73 63 72 |Script[+|+sp->scr|
|000039a0| 69 70 74 69 6e 64 65 78 | 5d 29 20 73 70 2d 3e 73 |iptindex|]) sp->s|
|000039b0| 63 72 69 70 74 69 6e 64 | 65 78 20 3d 20 2d 31 3b |criptind|ex = -1;|
|000039c0| 0a 58 09 73 70 2d 3e 73 | 74 72 69 6e 70 75 74 20 |.X.sp->s|trinput |
|000039d0| 3d 20 74 72 75 65 3b 0a | 58 20 20 20 20 7d 0a 58 |= true;.|X }.X|
|000039e0| 20 20 20 20 65 6c 73 65 | 20 69 66 20 28 73 70 2d | else| if (sp-|
|000039f0| 3e 61 72 67 69 6e 64 65 | 78 3e 3d 73 70 2d 3e 61 |>arginde|x>=sp->a|
|00003a00| 72 67 63 29 20 7b 0a 58 | 09 77 68 69 6c 65 20 28 |rgc) {.X|.while (|
|00003a10| 21 66 67 65 74 73 28 73 | 70 2d 3e 69 6e 73 74 72 |!fgets(s|p->instr|
|00003a20| 2c 4d 61 78 53 74 72 2c | 73 70 2d 3e 69 6e 66 64 |,MaxStr,|sp->infd|
|00003a30| 73 5b 73 70 2d 3e 69 6e | 64 65 70 74 68 5d 29 29 |s[sp->in|depth]))|
|00003a40| 20 7b 0a 58 09 20 20 20 | 20 69 66 20 28 21 50 6f | {.X. | if (!Po|
|00003a50| 70 49 6e 70 75 74 28 73 | 70 29 29 20 72 65 74 75 |pInput(s|p)) retu|
|00003a60| 72 6e 20 66 61 6c 73 65 | 3b 0a 58 09 7d 0a 58 09 |rn false|;.X.}.X.|
|00003a70| 69 66 20 28 63 70 3d 73 | 74 72 63 68 72 28 73 70 |if (cp=s|trchr(sp|
|00003a80| 2d 3e 69 6e 73 74 72 2c | 27 5c 6e 27 29 29 20 2a |->instr,|'\n')) *|
|00003a90| 63 70 3d 27 5c 30 27 3b | 0a 58 09 73 70 2d 3e 73 |cp='\0';|.X.sp->s|
|00003aa0| 74 72 69 6e 70 75 74 20 | 3d 20 74 72 75 65 3b 0a |trinput |= true;.|
|00003ab0| 58 20 20 20 20 7d 0a 58 | 20 20 20 20 65 6c 73 65 |X }.X| else|
|00003ac0| 20 73 70 2d 3e 73 74 72 | 69 6e 70 75 74 20 3d 20 | sp->str|input = |
|00003ad0| 66 61 6c 73 65 3b 0a 58 | 20 20 20 20 72 65 74 75 |false;.X| retu|
|00003ae0| 72 6e 20 74 72 75 65 3b | 0a 58 7d 0a 58 0a 58 62 |rn true;|.X}.X.Xb|
|00003af0| 6f 6f 6c 20 47 65 74 43 | 6d 64 28 73 70 2c 63 70 |ool GetC|md(sp,cp|
|00003b00| 29 0a 58 20 20 20 20 53 | 74 61 74 65 2a 20 20 73 |).X S|tate* s|
|00003b10| 70 3b 0a 58 20 20 20 20 | 43 6d 64 2a 20 20 20 20 |p;.X |Cmd* |
|00003b20| 63 70 3b 0a 58 7b 0a 58 | 20 20 20 20 63 68 61 72 |cp;.X{.X| char|
|00003b30| 2a 20 20 20 74 3b 0a 58 | 20 20 20 20 69 6e 74 20 |* t;.X| int |
|00003b40| 20 20 20 20 74 6c 65 6e | 3b 0a 58 0a 58 20 20 20 | tlen|;.X.X |
|00003b50| 20 77 68 69 6c 65 20 28 | 74 72 75 65 29 20 7b 0a | while (|true) {.|
|00003b60| 58 09 63 70 2d 3e 69 6e | 64 65 78 20 3d 20 4e 69 |X.cp->in|dex = Ni|
|00003b70| 6c 49 6e 64 65 78 3b 0a | 58 09 69 66 20 28 21 47 |lIndex;.|X.if (!G|
|00003b80| 65 74 4c 69 6e 65 28 73 | 70 29 29 20 72 65 74 75 |etLine(s|p)) retu|
|00003b90| 72 6e 20 66 61 6c 73 65 | 3b 0a 58 09 69 66 20 28 |rn false|;.X.if (|
|00003ba0| 74 3d 47 65 74 54 6f 6b | 65 6e 28 73 70 2c 74 72 |t=GetTok|en(sp,tr|
|00003bb0| 75 65 29 29 20 7b 0a 58 | 09 20 20 20 20 69 66 20 |ue)) {.X|. if |
|00003bc0| 28 2a 74 3d 3d 27 2d 27 | 29 20 74 2b 2b 3b 0a 58 |(*t=='-'|) t++;.X|
|00003bd0| 09 20 20 20 20 69 66 20 | 28 2a 74 3d 3d 27 40 27 |. if |(*t=='@'|
|00003be0| 29 20 7b 0a 58 09 09 74 | 2b 2b 3b 0a 58 09 09 63 |) {.X..t|++;.X..c|
|00003bf0| 70 2d 3e 6f 2e 73 69 6c | 65 6e 74 20 3d 20 74 72 |p->o.sil|ent = tr|
|00003c00| 75 65 3b 0a 58 09 20 20 | 20 20 7d 0a 58 09 20 20 |ue;.X. | }.X. |
|00003c10| 20 20 65 6c 73 65 20 63 | 70 2d 3e 6f 2e 73 69 6c | else c|p->o.sil|
|00003c20| 65 6e 74 20 3d 20 66 61 | 6c 73 65 3b 0a 58 09 20 |ent = fa|lse;.X. |
|00003c30| 20 20 20 74 6c 65 6e 20 | 3d 20 73 74 72 6c 65 6e | tlen |= strlen|
|00003c40| 28 74 29 3b 0a 58 09 20 | 20 20 20 69 66 20 28 21 |(t);.X. | if (!|
|00003c50| 73 74 72 6e 63 6d 70 28 | 74 2c 22 63 6f 6e 66 69 |strncmp(|t,"confi|
|00003c60| 67 22 2c 74 6c 65 6e 29 | 29 20 7b 0a 58 09 09 66 |g",tlen)|) {.X..f|
|00003c70| 70 72 69 6e 74 66 28 4f | 75 74 28 73 70 2c 63 70 |printf(O|ut(sp,cp|
|00003c80| 29 2c 22 63 6f 6e 66 69 | 67 5c 6e 22 29 3b 0a 58 |),"confi|g\n");.X|
|00003c90| 09 09 50 72 69 6e 74 43 | 6f 6e 66 69 67 28 4f 75 |..PrintC|onfig(Ou|
|00003ca0| 74 28 73 70 2c 63 70 29 | 2c 73 70 29 3b 0a 58 09 |t(sp,cp)|,sp);.X.|
|00003cb0| 09 70 75 74 63 28 27 5c | 6e 27 2c 4f 75 74 28 73 |.putc('\|n',Out(s|
|00003cc0| 70 2c 63 70 29 29 3b 0a | 58 09 20 20 20 20 7d 0a |p,cp));.|X. }.|
|00003cd0| 58 09 20 20 20 20 65 6c | 73 65 20 69 66 20 28 21 |X. el|se if (!|
|00003ce0| 73 74 72 6e 63 6d 70 28 | 74 2c 22 64 65 66 61 75 |strncmp(|t,"defau|
|00003cf0| 6c 74 73 22 2c 74 6c 65 | 6e 29 29 20 7b 0a 58 09 |lts",tle|n)) {.X.|
|00003d00| 09 66 70 72 69 6e 74 66 | 28 4f 75 74 28 73 70 2c |.fprintf|(Out(sp,|
|00003d10| 63 70 29 2c 22 64 65 66 | 61 75 6c 74 73 22 29 3b |cp),"def|aults");|
|00003d20| 0a 58 09 09 50 61 72 73 | 65 50 61 72 61 6d 73 28 |.X..Pars|eParams(|
|00003d30| 73 70 2c 63 70 2c 26 73 | 70 2d 3e 64 65 66 61 75 |sp,cp,&s|p->defau|
|00003d40| 6c 74 73 2c 74 72 75 65 | 29 3b 0a 58 09 09 50 72 |lts,true|);.X..Pr|
|00003d50| 69 6e 74 50 61 72 61 6d | 73 28 73 74 64 65 72 72 |intParam|s(stderr|
|00003d60| 2c 73 70 2c 26 73 70 2d | 3e 64 65 66 61 75 6c 74 |,sp,&sp-|>default|
|00003d70| 73 29 3b 0a 58 09 09 70 | 75 74 63 28 27 5c 6e 27 |s);.X..p|utc('\n'|
|00003d80| 2c 73 74 64 65 72 72 29 | 3b 0a 58 09 20 20 20 20 |,stderr)|;.X. |
|00003d90| 7d 0a 58 09 20 20 20 20 | 65 6c 73 65 20 69 66 20 |}.X. |else if |
|00003da0| 28 21 73 74 72 6e 63 6d | 70 28 74 2c 22 68 65 6c |(!strncm|p(t,"hel|
|00003db0| 70 22 2c 74 6c 65 6e 29 | 29 20 7b 0a 58 09 09 50 |p",tlen)|) {.X..P|
|00003dc0| 72 69 6e 74 48 65 6c 70 | 28 4f 75 74 28 73 70 2c |rintHelp|(Out(sp,|
|00003dd0| 63 70 29 29 3b 0a 58 09 | 09 70 75 74 63 28 27 5c |cp));.X.|.putc('\|
|00003de0| 6e 27 2c 73 74 64 65 72 | 72 29 3b 0a 58 09 20 20 |n',stder|r);.X. |
|00003df0| 20 20 7d 0a 58 09 20 20 | 20 20 65 6c 73 65 20 69 | }.X. | else i|
|00003e00| 66 20 28 21 73 74 72 6e | 63 6d 70 28 74 2c 22 69 |f (!strn|cmp(t,"i|
|00003e10| 6e 69 74 22 2c 74 6c 65 | 6e 29 29 20 7b 0a 58 09 |nit",tle|n)) {.X.|
|00003e20| 09 66 70 72 69 6e 74 66 | 28 4f 75 74 28 73 70 2c |.fprintf|(Out(sp,|
|00003e30| 63 70 29 2c 22 69 6e 69 | 74 5c 6e 22 29 3b 0a 58 |cp),"ini|t\n");.X|
|00003e40| 09 09 49 6e 69 74 50 61 | 72 61 6d 73 28 73 70 2c |..InitPa|rams(sp,|
|00003e50| 26 73 70 2d 3e 64 65 66 | 61 75 6c 74 73 29 3b 0a |&sp->def|aults);.|
|00003e60| 58 09 09 50 72 69 6e 74 | 50 61 72 61 6d 73 28 73 |X..Print|Params(s|
|00003e70| 74 64 65 72 72 2c 73 70 | 2c 26 73 70 2d 3e 64 65 |tderr,sp|,&sp->de|
|00003e80| 66 61 75 6c 74 73 29 3b | 0a 58 09 09 70 75 74 63 |faults);|.X..putc|
|00003e90| 28 27 5c 6e 27 2c 73 74 | 64 65 72 72 29 3b 0a 58 |('\n',st|derr);.X|
|00003ea0| 09 20 20 20 20 7d 0a 58 | 09 20 20 20 20 65 6c 73 |. }.X|. els|
|00003eb0| 65 20 69 66 20 28 21 73 | 74 72 6e 63 6d 70 28 74 |e if (!s|trncmp(t|
|00003ec0| 2c 22 71 75 69 74 22 2c | 74 6c 65 6e 29 29 20 7b |,"quit",|tlen)) {|
|00003ed0| 0a 58 09 09 72 65 74 75 | 72 6e 20 66 61 6c 73 65 |.X..retu|rn false|
|00003ee0| 3b 0a 58 09 20 20 20 20 | 7d 0a 58 09 20 20 20 20 |;.X. |}.X. |
|00003ef0| 65 6c 73 65 20 69 66 20 | 28 21 73 74 72 6e 63 6d |else if |(!strncm|
|00003f00| 70 28 74 2c 22 73 63 72 | 69 70 74 22 2c 74 6c 65 |p(t,"scr|ipt",tle|
|00003f10| 6e 29 29 20 7b 0a 58 09 | 09 66 70 72 69 6e 74 66 |n)) {.X.|.fprintf|
|00003f20| 28 4f 75 74 28 73 70 2c | 63 70 29 2c 22 73 63 72 |(Out(sp,|cp),"scr|
|00003f30| 69 70 74 22 29 3b 0a 58 | 09 09 69 66 20 28 74 3d |ipt");.X|..if (t=|
|00003f40| 47 65 74 54 6f 6b 65 6e | 28 73 70 2c 66 61 6c 73 |GetToken|(sp,fals|
|00003f50| 65 29 29 20 66 70 72 69 | 6e 74 66 28 4f 75 74 28 |e)) fpri|ntf(Out(|
|00003f60| 73 70 2c 63 70 29 2c 22 | 20 25 73 22 2c 74 29 3b |sp,cp),"| %s",t);|
|00003f70| 0a 58 09 09 70 75 74 63 | 28 27 5c 6e 27 2c 4f 75 |.X..putc|('\n',Ou|
|00003f80| 74 28 73 70 2c 63 70 29 | 29 3b 0a 58 09 09 69 66 |t(sp,cp)|);.X..if|
|00003f90| 20 28 74 29 20 50 75 73 | 68 49 6e 70 75 74 28 73 | (t) Pus|hInput(s|
|00003fa0| 70 2c 74 29 3b 0a 58 09 | 09 65 6c 73 65 20 73 70 |p,t);.X.|.else sp|
|00003fb0| 2d 3e 73 63 72 69 70 74 | 69 6e 64 65 78 20 3d 20 |->script|index = |
|00003fc0| 30 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 20 20 20 |0;.X. | }.X. |
|00003fd0| 20 65 6c 73 65 20 69 66 | 20 28 2a 74 3d 3d 27 23 | else if| (*t=='#|
|00003fe0| 27 29 20 7b 0a 58 09 09 | 50 72 69 6e 74 43 6f 6d |') {.X..|PrintCom|
|00003ff0| 6d 65 6e 74 28 73 70 2c | 63 70 2c 74 29 3b 0a 58 |ment(sp,|cp,t);.X|
|00004000| 09 20 20 20 20 7d 0a 58 | 09 20 20 20 20 65 6c 73 |. }.X|. els|
|00004010| 65 20 69 66 20 28 28 2a | 74 3d 3d 27 21 27 29 26 |e if ((*|t=='!')&|
|00004020| 26 28 28 63 70 2d 3e 69 | 6e 64 65 78 3d 73 70 2d |&((cp->i|ndex=sp-|
|00004030| 3e 70 72 65 76 69 6e 64 | 65 78 29 21 3d 4e 69 6c |>prevind|ex)!=Nil|
|00004040| 49 6e 64 65 78 29 29 20 | 7b 0a 58 09 09 43 6f 70 |Index)) |{.X..Cop|
|00004050| 79 50 61 72 61 6d 73 28 | 26 63 70 2d 3e 70 2c 26 |yParams(|&cp->p,&|
|00004060| 73 70 2d 3e 70 72 65 76 | 70 61 72 61 6d 73 29 3b |sp->prev|params);|
|00004070| 0a 58 09 09 50 61 72 73 | 65 43 6d 64 28 73 70 2c |.X..Pars|eCmd(sp,|
|00004080| 63 70 29 3b 0a 58 09 09 | 72 65 74 75 72 6e 20 74 |cp);.X..|return t|
|00004090| 72 75 65 3b 0a 58 09 20 | 20 20 20 7d 0a 58 09 20 |rue;.X. | }.X. |
|000040a0| 20 20 20 65 6c 73 65 20 | 69 66 20 28 28 63 70 2d | else |if ((cp-|
|000040b0| 3e 69 6e 64 65 78 3d 47 | 65 74 4f 70 49 6e 64 65 |>index=G|etOpInde|
|000040c0| 78 28 74 29 29 21 3d 4e | 69 6c 49 6e 64 65 78 29 |x(t))!=N|ilIndex)|
|000040d0| 20 7b 0a 58 09 09 43 6f | 70 79 50 61 72 61 6d 73 | {.X..Co|pyParams|
|000040e0| 28 26 63 70 2d 3e 70 2c | 26 73 70 2d 3e 64 65 66 |(&cp->p,|&sp->def|
|000040f0| 61 75 6c 74 73 29 3b 0a | 58 09 09 50 61 72 73 65 |aults);.|X..Parse|
|00004100| 43 6d 64 28 73 70 2c 63 | 70 29 3b 0a 58 09 09 72 |Cmd(sp,c|p);.X..r|
|00004110| 65 74 75 72 6e 20 74 72 | 75 65 3b 0a 58 09 20 20 |eturn tr|ue;.X. |
|00004120| 20 20 7d 0a 58 09 7d 0a | 58 09 65 6c 73 65 20 70 | }.X.}.|X.else p|
|00004130| 75 74 63 68 61 72 28 27 | 5c 6e 27 29 3b 0a 58 20 |utchar('|\n');.X |
|00004140| 20 20 20 7d 0a 58 7d 0a | 45 4e 44 5f 4f 46 5f 46 | }.X}.|END_OF_F|
|00004150| 49 4c 45 0a 69 66 20 74 | 65 73 74 20 37 34 31 35 |ILE.if t|est 7415|
|00004160| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 63 6d | -ne `wc| -c <'cm|
|00004170| 64 73 2e 63 27 60 3b 20 | 74 68 65 6e 0a 20 20 20 |ds.c'`; |then. |
|00004180| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 5c 22 27 63 | echo sh|ar: \"'c|
|00004190| 6d 64 73 2e 63 27 5c 22 | 20 75 6e 70 61 63 6b 65 |mds.c'\"| unpacke|
|000041a0| 64 20 77 69 74 68 20 77 | 72 6f 6e 67 20 73 69 7a |d with w|rong siz|
|000041b0| 65 21 0a 66 69 0a 23 20 | 65 6e 64 20 6f 66 20 27 |e!.fi.# |end of '|
|000041c0| 63 6d 64 73 2e 63 27 0a | 66 69 0a 69 66 20 74 65 |cmds.c'.|fi.if te|
|000041d0| 73 74 20 2d 66 20 27 65 | 78 65 63 2e 63 27 20 2d |st -f 'e|xec.c' -|
|000041e0| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|000041f0| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|00004200| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|00004210| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|00004220| 66 69 6c 65 20 5c 22 27 | 65 78 65 63 2e 63 27 5c |file \"'|exec.c'\|
|00004230| 22 0a 65 6c 73 65 0a 65 | 63 68 6f 20 73 68 61 72 |".else.e|cho shar|
|00004240| 3a 20 45 78 74 72 61 63 | 74 69 6e 67 20 5c 22 27 |: Extrac|ting \"'|
|00004250| 65 78 65 63 2e 63 27 5c | 22 20 5c 28 36 37 37 30 |exec.c'\|" \(6770|
|00004260| 20 63 68 61 72 61 63 74 | 65 72 73 5c 29 0a 73 65 | charact|ers\).se|
|00004270| 64 20 22 73 2f 5e 58 2f | 2f 22 20 3e 27 65 78 65 |d "s/^X/|/" >'exe|
|00004280| 63 2e 63 27 20 3c 3c 27 | 45 4e 44 5f 4f 46 5f 46 |c.c' <<'|END_OF_F|
|00004290| 49 4c 45 27 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |ILE'.X#i|nclude <|
|000042a0| 67 62 65 6e 63 68 2e 68 | 3e 0a 58 0a 58 76 6f 69 |gbench.h|>.X.Xvoi|
|000042b0| 64 20 53 74 61 72 74 28 | 73 70 2c 63 70 29 0a 58 |d Start(|sp,cp).X|
|000042c0| 20 20 20 20 53 74 61 74 | 65 2a 20 20 73 70 3b 0a | Stat|e* sp;.|
|000042d0| 58 20 20 20 20 43 6d 64 | 2a 20 20 20 20 63 70 3b |X Cmd|* cp;|
|000042e0| 0a 58 7b 0a 58 20 20 20 | 20 69 6e 74 20 69 3b 0a |.X{.X | int i;.|
|000042f0| 58 20 20 20 20 69 6e 74 | 09 73 74 79 6c 65 3b 0a |X int|.style;.|
|00004300| 58 0a 58 20 20 20 20 63 | 70 2d 3e 63 6f 6c 6f 72 |X.X c|p->color|
|00004310| 66 67 20 3d 20 5f 57 68 | 69 74 65 50 69 78 65 6c |fg = _Wh|itePixel|
|00004320| 3b 0a 58 20 20 20 20 63 | 70 2d 3e 63 6f 6c 6f 72 |;.X c|p->color|
|00004330| 62 67 20 3d 20 5f 42 6c | 61 63 6b 50 69 78 65 6c |bg = _Bl|ackPixel|
|00004340| 3b 0a 58 20 20 20 20 69 | 66 20 28 63 70 2d 3e 70 |;.X i|f (cp->p|
|00004350| 2e 6d 61 78 73 68 69 66 | 74 3e 30 29 20 63 70 2d |.maxshif|t>0) cp-|
|00004360| 3e 64 78 20 3d 20 63 70 | 2d 3e 64 79 20 3d 20 31 |>dx = cp|->dy = 1|
|00004370| 3b 0a 58 20 20 20 20 65 | 6c 73 65 20 63 70 2d 3e |;.X e|lse cp->|
|00004380| 64 78 20 3d 20 63 70 2d | 3e 64 79 20 3d 20 30 3b |dx = cp-|>dy = 0;|
|00004390| 0a 58 20 20 20 20 63 70 | 2d 3e 67 63 20 3d 20 73 |.X cp|->gc = s|
|000043a0| 70 2d 3e 67 63 31 3b 0a | 58 20 20 20 20 63 70 2d |p->gc1;.|X cp-|
|000043b0| 3e 73 68 69 66 74 20 3d | 20 30 3b 0a 58 20 20 20 |>shift =| 0;.X |
|000043c0| 20 63 70 2d 3e 77 20 3d | 20 73 70 2d 3e 77 31 3b | cp->w =| sp->w1;|
|000043d0| 0a 58 20 20 20 20 73 70 | 2d 3e 64 65 73 74 31 20 |.X sp|->dest1 |
|000043e0| 3d 20 73 70 2d 3e 77 31 | 3b 0a 58 20 20 20 20 73 |= sp->w1|;.X s|
|000043f0| 70 2d 3e 73 72 63 31 20 | 3d 20 73 70 2d 3e 77 31 |p->src1 |= sp->w1|
|00004400| 3b 0a 58 23 20 20 20 69 | 66 64 65 66 20 58 31 31 |;.X# i|fdef X11|
|00004410| 0a 58 09 69 66 20 28 63 | 70 2d 3e 6f 2e 6f 66 66 |.X.if (c|p->o.off|
|00004420| 64 65 73 74 7c 7c 63 70 | 2d 3e 6f 2e 6f 66 66 73 |dest||cp|->o.offs|
|00004430| 72 63 29 20 7b 0a 58 09 | 20 20 20 20 69 66 20 28 |rc) {.X.| if (|
|00004440| 21 73 70 2d 3e 6f 66 66 | 70 69 78 29 20 7b 0a 58 |!sp->off|pix) {.X|
|00004450| 09 09 63 70 2d 3e 6f 2e | 6f 66 66 64 65 73 74 20 |..cp->o.|offdest |
|00004460| 3d 20 63 70 2d 3e 6f 2e | 6f 66 66 73 72 63 20 3d |= cp->o.|offsrc =|
|00004470| 20 66 61 6c 73 65 3b 0a | 58 09 09 63 70 2d 3e 72 | false;.|X..cp->r|
|00004480| 65 73 75 6c 74 20 3d 20 | 4e 6f 4f 66 66 73 63 72 |esult = |NoOffscr|
|00004490| 65 65 6e 4d 65 6d 3b 0a | 58 09 20 20 20 20 7d 0a |eenMem;.|X. }.|
|000044a0| 58 09 20 20 20 20 65 6c | 73 65 20 7b 0a 58 09 09 |X. el|se {.X..|
|000044b0| 69 66 20 28 63 70 2d 3e | 6f 2e 6f 66 66 64 65 73 |if (cp->|o.offdes|
|000044c0| 74 29 20 73 70 2d 3e 64 | 65 73 74 31 20 3d 20 73 |t) sp->d|est1 = s|
|000044d0| 70 2d 3e 6f 66 66 70 69 | 78 3b 0a 58 09 09 69 66 |p->offpi|x;.X..if|
|000044e0| 20 28 63 70 2d 3e 6f 2e | 6f 66 66 73 72 63 29 20 | (cp->o.|offsrc) |
|000044f0| 73 70 2d 3e 73 72 63 31 | 20 3d 20 73 70 2d 3e 6f |sp->src1| = sp->o|
|00004500| 66 66 70 69 78 3b 0a 58 | 09 09 58 46 69 6c 6c 52 |ffpix;.X|..XFillR|
|00004510| 65 63 74 61 6e 67 6c 65 | 28 0a 58 09 09 20 20 20 |ectangle|(.X.. |
|00004520| 20 73 70 2d 3e 64 2c 73 | 70 2d 3e 6f 66 66 70 69 | sp->d,s|p->offpi|
|00004530| 78 2c 44 65 66 61 75 6c | 74 47 43 28 73 70 2d 3e |x,Defaul|tGC(sp->|
|00004540| 64 2c 44 65 66 61 75 6c | 74 53 63 72 65 65 6e 28 |d,Defaul|tScreen(|
|00004550| 73 70 2d 3e 64 29 29 2c | 30 2c 30 2c 0a 58 09 09 |sp->d)),|0,0,.X..|
|00004560| 20 20 20 20 73 70 2d 3e | 77 69 6e 73 69 7a 65 2c | sp->|winsize,|
|00004570| 73 70 2d 3e 77 69 6e 73 | 69 7a 65 0a 58 09 09 29 |sp->wins|ize.X..)|
|00004580| 3b 0a 58 09 20 20 20 20 | 7d 0a 58 09 7d 0a 58 23 |;.X. |}.X.}.X#|
|00004590| 20 20 20 65 6e 64 69 66 | 20 58 31 31 0a 58 20 20 | endif| X11.X |
|000045a0| 20 20 63 70 2d 3e 64 65 | 73 74 20 3d 20 73 70 2d | cp->de|st = sp-|
|000045b0| 3e 64 65 73 74 31 3b 0a | 58 20 20 20 20 63 70 2d |>dest1;.|X cp-|
|000045c0| 3e 73 72 63 20 3d 20 73 | 70 2d 3e 73 72 63 31 3b |>src = s|p->src1;|
|000045d0| 0a 58 20 20 20 20 66 70 | 72 69 6e 74 66 28 4f 75 |.X fp|rintf(Ou|
|000045e0| 74 28 73 70 2c 63 70 29 | 2c 22 25 73 22 2c 4f 70 |t(sp,cp)|,"%s",Op|
|000045f0| 4e 61 6d 65 73 5b 28 69 | 6e 74 29 63 70 2d 3e 69 |Names[(i|nt)cp->i|
|00004600| 6e 64 65 78 5d 5b 30 5d | 29 3b 0a 58 20 20 20 20 |ndex][0]|);.X |
|00004610| 66 6f 72 20 28 69 3d 30 | 3b 28 69 3c 4d 61 78 50 |for (i=0|;(i<MaxP|
|00004620| 6f 73 69 74 69 6f 6e 61 | 6c 29 26 26 4f 70 4e 61 |ositiona|l)&&OpNa|
|00004630| 6d 65 73 5b 28 69 6e 74 | 29 63 70 2d 3e 69 6e 64 |mes[(int|)cp->ind|
|00004640| 65 78 5d 5b 31 2b 69 5d | 3b 69 2b 2b 29 20 7b 0a |ex][1+i]|;i++) {.|
|00004650| 58 09 50 72 69 6e 74 50 | 61 72 61 6d 28 4f 75 74 |X.PrintP|aram(Out|
|00004660| 28 73 70 2c 63 70 29 2c | 26 63 70 2d 3e 70 2c 22 |(sp,cp),|&cp->p,"|
|00004670| 20 20 22 2c 4f 70 4e 61 | 6d 65 73 5b 28 69 6e 74 | ",OpNa|mes[(int|
|00004680| 29 63 70 2d 3e 69 6e 64 | 65 78 5d 5b 31 2b 69 5d |)cp->ind|ex][1+i]|
|00004690| 2c 22 22 29 3b 0a 58 20 | 20 20 20 7d 0a 58 20 20 |,"");.X | }.X |
|000046a0| 20 20 50 72 69 6e 74 50 | 61 72 61 6d 28 4f 75 74 | PrintP|aram(Out|
|000046b0| 28 73 70 2c 63 70 29 2c | 26 63 70 2d 3e 70 2c 22 |(sp,cp),|&cp->p,"|
|000046c0| 20 20 22 2c 22 63 6f 75 | 6e 74 22 2c 22 5c 6e 22 | ","cou|nt","\n"|
|000046d0| 29 3b 0a 58 20 20 20 20 | 66 66 6c 75 73 68 28 4f |);.X |fflush(O|
|000046e0| 75 74 28 73 70 2c 63 70 | 29 29 3b 0a 58 20 20 20 |ut(sp,cp|));.X |
|000046f0| 20 69 66 20 28 63 70 2d | 3e 6f 2e 61 6c 74 77 69 | if (cp-|>o.altwi|
|00004700| 6e 26 26 21 73 70 2d 3e | 61 6c 74 77 69 6e 29 20 |n&&!sp->|altwin) |
|00004710| 7b 0a 58 09 4d 61 70 57 | 69 6e 28 73 70 2c 73 70 |{.X.MapW|in(sp,sp|
|00004720| 2d 3e 77 32 29 3b 0a 58 | 09 73 70 2d 3e 61 6c 74 |->w2);.X|.sp->alt|
|00004730| 77 69 6e 20 3d 20 74 72 | 75 65 3b 0a 58 20 20 20 |win = tr|ue;.X |
|00004740| 20 7d 0a 58 20 20 20 20 | 65 6c 73 65 20 69 66 20 | }.X |else if |
|00004750| 28 73 70 2d 3e 61 6c 74 | 77 69 6e 26 26 21 63 70 |(sp->alt|win&&!cp|
|00004760| 2d 3e 6f 2e 61 6c 74 77 | 69 6e 29 20 7b 0a 58 09 |->o.altw|in) {.X.|
|00004770| 55 6e 6d 61 70 57 69 6e | 28 73 70 2c 73 70 2d 3e |UnmapWin|(sp,sp->|
|00004780| 77 32 29 3b 0a 58 09 73 | 70 2d 3e 61 6c 74 77 69 |w2);.X.s|p->altwi|
|00004790| 6e 20 3d 20 66 61 6c 73 | 65 3b 0a 58 20 20 20 20 |n = fals|e;.X |
|000047a0| 7d 0a 58 20 20 20 20 69 | 66 20 28 63 70 2d 3e 6f |}.X i|f (cp->o|
|000047b0| 2e 6f 76 65 72 6c 61 70 | 29 20 7b 0a 58 09 58 4d |.overlap|) {.X.XM|
|000047c0| 61 70 57 69 6e 64 6f 77 | 28 44 41 52 47 43 20 73 |apWindow|(DARGC s|
|000047d0| 70 2d 3e 63 77 31 29 3b | 0a 58 09 69 66 20 28 63 |p->cw1);|.X.if (c|
|000047e0| 70 2d 3e 6f 2e 61 6c 74 | 77 69 6e 29 20 58 4d 61 |p->o.alt|win) XMa|
|000047f0| 70 57 69 6e 64 6f 77 28 | 44 41 52 47 43 20 73 70 |pWindow(|DARGC sp|
|00004800| 2d 3e 63 77 32 29 3b 0a | 58 20 20 20 20 7d 0a 58 |->cw2);.|X }.X|
|00004810| 20 20 20 20 58 43 6c 65 | 61 72 57 69 6e 64 6f 77 | XCle|arWindow|
|00004820| 28 44 41 52 47 43 20 73 | 70 2d 3e 77 31 29 3b 0a |(DARGC s|p->w1);.|
|00004830| 58 20 20 20 20 58 43 6c | 65 61 72 57 69 6e 64 6f |X XCl|earWindo|
|00004840| 77 28 44 41 52 47 43 20 | 73 70 2d 3e 77 32 29 3b |w(DARGC |sp->w2);|
|00004850| 0a 58 20 20 20 20 58 52 | 61 69 73 65 57 69 6e 64 |.X XR|aiseWind|
|00004860| 6f 77 28 44 41 52 47 43 | 20 73 70 2d 3e 77 31 29 |ow(DARGC| sp->w1)|
|00004870| 3b 0a 58 20 20 20 20 69 | 66 20 28 63 70 2d 3e 6f |;.X i|f (cp->o|
|00004880| 2e 61 6c 74 77 69 6e 29 | 20 58 52 61 69 73 65 57 |.altwin)| XRaiseW|
|00004890| 69 6e 64 6f 77 28 44 41 | 52 47 43 20 73 70 2d 3e |indow(DA|RGC sp->|
|000048a0| 77 32 29 3b 0a 58 20 20 | 20 20 58 53 65 6c 65 63 |w2);.X | XSelec|
|000048b0| 74 49 6e 70 75 74 28 44 | 41 52 47 43 20 73 70 2d |tInput(D|ARGC sp-|
|000048c0| 3e 77 31 2c 49 6e 70 75 | 74 4d 61 73 6b 28 63 70 |>w1,Inpu|tMask(cp|
|000048d0| 29 29 3b 0a 58 20 20 20 | 20 69 66 20 28 63 70 2d |));.X | if (cp-|
|000048e0| 3e 6f 2e 61 6c 74 77 69 | 6e 29 20 58 53 65 6c 65 |>o.altwi|n) XSele|
|000048f0| 63 74 49 6e 70 75 74 28 | 44 41 52 47 43 20 73 70 |ctInput(|DARGC sp|
|00004900| 2d 3e 77 32 2c 49 6e 70 | 75 74 4d 61 73 6b 28 63 |->w2,Inp|utMask(c|
|00004910| 70 29 29 3b 0a 58 23 20 | 20 20 69 66 64 65 66 20 |p));.X# | ifdef |
|00004920| 58 31 31 0a 58 09 58 53 | 65 74 42 61 63 6b 67 72 |X11.X.XS|etBackgr|
|00004930| 6f 75 6e 64 28 73 70 2d | 3e 64 2c 73 70 2d 3e 67 |ound(sp-|>d,sp->g|
|00004940| 63 31 2c 63 70 2d 3e 63 | 6f 6c 6f 72 62 67 29 3b |c1,cp->c|olorbg);|
|00004950| 0a 58 09 58 53 65 74 46 | 6f 72 65 67 72 6f 75 6e |.X.XSetF|oregroun|
|00004960| 64 28 73 70 2d 3e 64 2c | 73 70 2d 3e 67 63 31 2c |d(sp->d,|sp->gc1,|
|00004970| 63 70 2d 3e 63 6f 6c 6f | 72 66 67 29 3b 0a 58 09 |cp->colo|rfg);.X.|
|00004980| 58 53 65 74 46 75 6e 63 | 74 69 6f 6e 28 73 70 2d |XSetFunc|tion(sp-|
|00004990| 3e 64 2c 73 70 2d 3e 67 | 63 31 2c 63 70 2d 3e 66 |>d,sp->g|c1,cp->f|
|000049a0| 75 6e 63 29 3b 0a 58 09 | 58 53 65 74 46 75 6e 63 |unc);.X.|XSetFunc|
|000049b0| 74 69 6f 6e 28 73 70 2d | 3e 64 2c 73 70 2d 3e 67 |tion(sp-|>d,sp->g|
|000049c0| 63 32 2c 63 70 2d 3e 66 | 75 6e 63 29 3b 0a 58 09 |c2,cp->f|unc);.X.|
|000049d0| 69 66 20 28 63 70 2d 3e | 6f 2e 73 74 69 70 70 6c |if (cp->|o.stippl|
|000049e0| 65 26 26 63 70 2d 3e 6f | 2e 74 69 6c 65 29 20 73 |e&&cp->o|.tile) s|
|000049f0| 74 79 6c 65 20 3d 20 46 | 69 6c 6c 4f 70 61 71 75 |tyle = F|illOpaqu|
|00004a00| 65 53 74 69 70 70 6c 65 | 64 3b 0a 58 09 65 6c 73 |eStipple|d;.X.els|
|00004a10| 65 20 69 66 20 28 63 70 | 2d 3e 6f 2e 73 74 69 70 |e if (cp|->o.stip|
|00004a20| 70 6c 65 29 20 73 74 79 | 6c 65 20 3d 20 46 69 6c |ple) sty|le = Fil|
|00004a30| 6c 53 74 69 70 70 6c 65 | 64 3b 0a 58 09 65 6c 73 |lStipple|d;.X.els|
|00004a40| 65 20 69 66 20 28 63 70 | 2d 3e 6f 2e 74 69 6c 65 |e if (cp|->o.tile|
|00004a50| 29 20 73 74 79 6c 65 20 | 3d 20 46 69 6c 6c 54 69 |) style |= FillTi|
|00004a60| 6c 65 64 3b 0a 58 09 65 | 6c 73 65 20 73 74 79 6c |led;.X.e|lse styl|
|00004a70| 65 20 3d 20 46 69 6c 6c | 53 6f 6c 69 64 3b 0a 58 |e = Fill|Solid;.X|
|00004a80| 09 58 53 65 74 46 69 6c | 6c 53 74 79 6c 65 28 73 |.XSetFil|lStyle(s|
|00004a90| 70 2d 3e 64 2c 73 70 2d | 3e 67 63 31 2c 73 74 79 |p->d,sp-|>gc1,sty|
|00004aa0| 6c 65 29 3b 0a 58 09 58 | 53 65 74 46 69 6c 6c 53 |le);.X.X|SetFillS|
|00004ab0| 74 79 6c 65 28 73 70 2d | 3e 64 2c 73 70 2d 3e 67 |tyle(sp-|>d,sp->g|
|00004ac0| 63 32 2c 73 74 79 6c 65 | 29 3b 0a 58 09 69 66 20 |c2,style|);.X.if |
|00004ad0| 28 63 70 2d 3e 6f 2e 73 | 74 69 70 70 6c 65 29 20 |(cp->o.s|tipple) |
|00004ae0| 73 74 79 6c 65 20 3d 20 | 4c 69 6e 65 4f 6e 4f 66 |style = |LineOnOf|
|00004af0| 66 44 61 73 68 3b 0a 58 | 09 65 6c 73 65 20 69 66 |fDash;.X|.else if|
|00004b00| 20 28 63 70 2d 3e 6f 2e | 74 69 6c 65 29 20 73 74 | (cp->o.|tile) st|
|00004b10| 79 6c 65 20 3d 20 4c 69 | 6e 65 44 6f 75 62 6c 65 |yle = Li|neDouble|
|00004b20| 44 61 73 68 3b 0a 58 09 | 65 6c 73 65 20 73 74 79 |Dash;.X.|else sty|
|00004b30| 6c 65 20 3d 20 4c 69 6e | 65 53 6f 6c 69 64 3b 0a |le = Lin|eSolid;.|
|00004b40| 58 09 58 53 65 74 4c 69 | 6e 65 41 74 74 72 69 62 |X.XSetLi|neAttrib|
|00004b50| 75 74 65 73 28 73 70 2d | 3e 64 2c 73 70 2d 3e 67 |utes(sp-|>d,sp->g|
|00004b60| 63 31 2c 63 70 2d 3e 70 | 2e 6c 77 69 64 74 68 2c |c1,cp->p|.lwidth,|
|00004b70| 73 74 79 6c 65 2c 43 61 | 70 42 75 74 74 2c 4a 6f |style,Ca|pButt,Jo|
|00004b80| 69 6e 4d 69 74 65 72 29 | 3b 0a 58 09 58 53 65 74 |inMiter)|;.X.XSet|
|00004b90| 4c 69 6e 65 41 74 74 72 | 69 62 75 74 65 73 28 73 |LineAttr|ibutes(s|
|00004ba0| 70 2d 3e 64 2c 73 70 2d | 3e 67 63 32 2c 63 70 2d |p->d,sp-|>gc2,cp-|
|00004bb0| 3e 70 2e 6c 77 69 64 74 | 68 2c 73 74 79 6c 65 2c |>p.lwidt|h,style,|
|00004bc0| 43 61 70 42 75 74 74 2c | 4a 6f 69 6e 4d 69 74 65 |CapButt,|JoinMite|
|00004bd0| 72 29 3b 0a 58 23 20 20 | 20 65 6e 64 69 66 20 58 |r);.X# | endif X|
|00004be0| 31 31 0a 58 20 20 20 20 | 58 53 79 6e 63 28 44 41 |11.X |XSync(DA|
|00004bf0| 52 47 43 20 31 29 3b 0a | 58 20 20 20 20 69 66 20 |RGC 1);.|X if |
|00004c00| 28 63 70 2d 3e 6f 2e 70 | 72 6f 66 69 6c 65 29 20 |(cp->o.p|rofile) |
|00004c10| 50 72 6f 66 43 6f 6e 74 | 72 6f 6c 28 31 29 3b 0a |ProfCont|rol(1);.|
|00004c20| 58 7d 0a 58 0a 58 76 6f | 69 64 20 53 74 61 72 74 |X}.X.Xvo|id Start|
|00004c30| 49 74 65 72 61 74 69 6f | 6e 28 73 70 2c 63 70 29 |Iteratio|n(sp,cp)|
|00004c40| 0a 58 20 20 20 20 53 74 | 61 74 65 2a 20 20 73 70 |.X St|ate* sp|
|00004c50| 3b 0a 58 20 20 20 20 43 | 6d 64 2a 20 20 20 20 63 |;.X C|md* c|
|00004c60| 70 3b 0a 58 7b 0a 58 20 | 20 20 20 50 69 78 65 6c |p;.X{.X | Pixel|
|00004c70| 20 63 6f 6c 6f 72 74 65 | 6d 70 3b 0a 58 0a 58 20 | colorte|mp;.X.X |
|00004c80| 20 20 20 69 66 20 28 21 | 63 70 2d 3e 6f 2e 64 72 | if (!|cp->o.dr|
|00004c90| 61 67 29 20 7b 0a 58 09 | 63 70 2d 3e 73 68 69 66 |ag) {.X.|cp->shif|
|00004ca0| 74 20 2b 3d 20 63 70 2d | 3e 64 78 3b 0a 58 09 69 |t += cp-|>dx;.X.i|
|00004cb0| 66 20 28 28 63 70 2d 3e | 73 68 69 66 74 3c 30 29 |f ((cp->|shift<0)|
|00004cc0| 7c 7c 28 63 70 2d 3e 73 | 68 69 66 74 3e 63 70 2d |||(cp->s|hift>cp-|
|00004cd0| 3e 70 2e 6d 61 78 73 68 | 69 66 74 29 29 20 7b 0a |>p.maxsh|ift)) {.|
|00004ce0| 58 09 20 20 20 20 63 70 | 2d 3e 64 78 20 3d 20 2d |X. cp|->dx = -|
|00004cf0| 63 70 2d 3e 64 78 3b 0a | 58 09 20 20 20 20 63 70 |cp->dx;.|X. cp|
|00004d00| 2d 3e 64 79 20 3d 20 2d | 63 70 2d 3e 64 79 3b 0a |->dy = -|cp->dy;.|
|00004d10| 58 09 20 20 20 20 63 70 | 2d 3e 73 68 69 66 74 20 |X. cp|->shift |
|00004d20| 2b 3d 20 32 2a 63 70 2d | 3e 64 78 3b 0a 58 09 7d |+= 2*cp-|>dx;.X.}|
|00004d30| 0a 58 09 63 70 2d 3e 78 | 20 2b 3d 20 63 70 2d 3e |.X.cp->x| += cp->|
|00004d40| 64 78 3b 0a 58 09 63 70 | 2d 3e 79 20 2b 3d 20 63 |dx;.X.cp|->y += c|
|00004d50| 70 2d 3e 64 79 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |p->dy;.X| }.X |
|00004d60| 20 20 20 69 66 20 28 63 | 70 2d 3e 6f 2e 61 6c 74 | if (c|p->o.alt|
|00004d70| 63 6f 6c 6f 72 29 20 7b | 0a 58 09 63 6f 6c 6f 72 |color) {|.X.color|
|00004d80| 74 65 6d 70 20 3d 20 63 | 70 2d 3e 63 6f 6c 6f 72 |temp = c|p->color|
|00004d90| 62 67 3b 0a 58 09 63 70 | 2d 3e 63 6f 6c 6f 72 62 |bg;.X.cp|->colorb|
|00004da0| 67 20 3d 20 63 70 2d 3e | 63 6f 6c 6f 72 66 67 3b |g = cp->|colorfg;|
|00004db0| 0a 58 09 63 70 2d 3e 63 | 6f 6c 6f 72 66 67 20 3d |.X.cp->c|olorfg =|
|00004dc0| 20 63 6f 6c 6f 72 74 65 | 6d 70 3b 0a 58 23 09 69 | colorte|mp;.X#.i|
|00004dd0| 66 64 65 66 20 58 31 31 | 0a 58 09 20 20 20 20 58 |fdef X11|.X. X|
|00004de0| 53 65 74 42 61 63 6b 67 | 72 6f 75 6e 64 28 73 70 |SetBackg|round(sp|
|00004df0| 2d 3e 64 2c 73 70 2d 3e | 67 63 31 2c 63 70 2d 3e |->d,sp->|gc1,cp->|
|00004e00| 63 6f 6c 6f 72 62 67 29 | 3b 0a 58 09 20 20 20 20 |colorbg)|;.X. |
|00004e10| 58 53 65 74 46 6f 72 65 | 67 72 6f 75 6e 64 28 73 |XSetFore|ground(s|
|00004e20| 70 2d 3e 64 2c 73 70 2d | 3e 67 63 31 2c 63 70 2d |p->d,sp-|>gc1,cp-|
|00004e30| 3e 63 6f 6c 6f 72 66 67 | 29 3b 0a 58 23 09 65 6e |>colorfg|);.X#.en|
|00004e40| 64 69 66 20 58 31 31 0a | 58 20 20 20 20 7d 0a 58 |dif X11.|X }.X|
|00004e50| 20 20 20 20 69 66 20 28 | 28 63 70 2d 3e 6f 2e 61 | if (|(cp->o.a|
|00004e60| 6c 74 67 63 29 26 26 28 | 63 70 2d 3e 67 63 3d 3d |ltgc)&&(|cp->gc==|
|00004e70| 73 70 2d 3e 67 63 31 29 | 29 20 63 70 2d 3e 67 63 |sp->gc1)|) cp->gc|
|00004e80| 20 3d 20 73 70 2d 3e 67 | 63 32 3b 0a 58 20 20 20 | = sp->g|c2;.X |
|00004e90| 20 65 6c 73 65 20 63 70 | 2d 3e 67 63 20 3d 20 73 | else cp|->gc = s|
|00004ea0| 70 2d 3e 67 63 31 3b 0a | 58 20 20 20 20 69 66 20 |p->gc1;.|X if |
|00004eb0| 28 28 63 70 2d 3e 6f 2e | 61 6c 74 77 69 6e 29 26 |((cp->o.|altwin)&|
|00004ec0| 26 28 63 70 2d 3e 77 3d | 3d 73 70 2d 3e 77 31 29 |&(cp->w=|=sp->w1)|
|00004ed0| 29 20 7b 0a 58 09 63 70 | 2d 3e 64 65 73 74 20 3d |) {.X.cp|->dest =|
|00004ee0| 20 73 70 2d 3e 64 65 73 | 74 32 3b 0a 58 09 63 70 | sp->des|t2;.X.cp|
|00004ef0| 2d 3e 73 72 63 20 3d 20 | 73 70 2d 3e 73 72 63 32 |->src = |sp->src2|
|00004f00| 3b 0a 58 09 63 70 2d 3e | 77 20 3d 20 73 70 2d 3e |;.X.cp->|w = sp->|
|00004f10| 77 32 3b 0a 58 20 20 20 | 20 7d 0a 58 20 20 20 20 |w2;.X | }.X |
|00004f20| 65 6c 73 65 20 7b 0a 58 | 09 63 70 2d 3e 64 65 73 |else {.X|.cp->des|
|00004f30| 74 20 3d 20 73 70 2d 3e | 64 65 73 74 31 3b 0a 58 |t = sp->|dest1;.X|
|00004f40| 09 63 70 2d 3e 73 72 63 | 20 3d 20 73 70 2d 3e 73 |.cp->src| = sp->s|
|00004f50| 72 63 31 3b 0a 58 09 63 | 70 2d 3e 77 20 3d 20 73 |rc1;.X.c|p->w = s|
|00004f60| 70 2d 3e 77 31 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |p->w1;.X| }.X |
|00004f70| 20 20 20 69 66 20 28 63 | 70 2d 3e 6f 2e 75 6e 62 | if (c|p->o.unb|
|00004f80| 61 74 63 68 65 64 29 20 | 58 46 6c 75 73 68 28 44 |atched) |XFlush(D|
|00004f90| 41 52 47 29 3b 0a 58 7d | 0a 58 0a 58 76 6f 69 64 |ARG);.X}|.X.Xvoid|
|00004fa0| 20 45 72 61 73 65 28 73 | 70 2c 63 70 29 0a 58 20 | Erase(s|p,cp).X |
|00004fb0| 20 20 20 53 74 61 74 65 | 2a 20 20 73 70 3b 0a 58 | State|* sp;.X|
|00004fc0| 20 20 20 20 43 6d 64 2a | 20 20 20 20 63 70 3b 0a | Cmd*| cp;.|
|00004fd0| 58 7b 0a 58 20 20 20 20 | 69 6e 74 20 78 20 3d 20 |X{.X |int x = |
|00004fe0| 63 70 2d 3e 78 3b 0a 58 | 20 20 20 20 69 6e 74 20 |cp->x;.X| int |
|00004ff0| 79 20 3d 20 63 70 2d 3e | 79 3b 0a 58 20 20 20 20 |y = cp->|y;.X |
|00005000| 69 6e 74 20 62 62 78 20 | 3d 20 63 70 2d 3e 62 62 |int bbx |= cp->bb|
|00005010| 78 3b 0a 58 20 20 20 20 | 69 6e 74 20 62 62 79 20 |x;.X |int bby |
|00005020| 3d 20 63 70 2d 3e 62 62 | 79 3b 0a 58 0a 58 20 20 |= cp->bb|y;.X.X |
|00005030| 20 20 69 66 20 28 63 70 | 2d 3e 62 62 78 3c 30 29 | if (cp|->bbx<0)|
|00005040| 20 7b 0a 58 09 78 20 2b | 3d 20 63 70 2d 3e 62 62 | {.X.x +|= cp->bb|
|00005050| 78 3b 0a 58 09 62 62 78 | 20 3d 20 2d 62 62 78 3b |x;.X.bbx| = -bbx;|
|00005060| 0a 58 20 20 20 20 7d 0a | 58 20 20 20 20 69 66 20 |.X }.|X if |
|00005070| 28 63 70 2d 3e 62 62 79 | 3c 30 29 20 7b 0a 58 09 |(cp->bby|<0) {.X.|
|00005080| 79 20 2b 3d 20 63 70 2d | 3e 62 62 79 3b 0a 58 09 |y += cp-|>bby;.X.|
|00005090| 62 62 79 20 3d 20 2d 62 | 62 79 3b 0a 58 20 20 20 |bby = -b|by;.X |
|000050a0| 20 7d 0a 58 23 20 20 20 | 69 66 64 65 66 20 58 31 | }.X# |ifdef X1|
|000050b0| 30 0a 58 09 58 50 69 78 | 46 69 6c 6c 28 63 70 2d |0.X.XPix|Fill(cp-|
|000050c0| 3e 77 2c 78 2c 79 2c 62 | 62 78 2c 62 62 79 2c 5f |>w,x,y,b|bx,bby,_|
|000050d0| 42 6c 61 63 6b 50 69 78 | 65 6c 2c 30 2c 47 58 63 |BlackPix|el,0,GXc|
|000050e0| 6f 70 79 2c 41 6c 6c 50 | 6c 61 6e 65 73 29 3b 0a |opy,AllP|lanes);.|
|000050f0| 58 23 20 20 20 65 6c 73 | 65 0a 58 09 58 46 69 6c |X# els|e.X.XFil|
|00005100| 6c 52 65 63 74 61 6e 67 | 6c 65 28 0a 58 09 20 20 |lRectang|le(.X. |
|00005110| 20 20 73 70 2d 3e 64 2c | 63 70 2d 3e 64 65 73 74 | sp->d,|cp->dest|
|00005120| 2c 44 65 66 61 75 6c 74 | 47 43 28 73 70 2d 3e 64 |,Default|GC(sp->d|
|00005130| 2c 44 65 66 61 75 6c 74 | 53 63 72 65 65 6e 28 73 |,Default|Screen(s|
|00005140| 70 2d 3e 64 29 29 2c 78 | 2c 79 2c 62 62 78 2c 62 |p->d)),x|,y,bbx,b|
|00005150| 62 79 0a 58 09 29 3b 0a | 58 23 20 20 20 65 6e 64 |by.X.);.|X# end|
|00005160| 69 66 0a 58 7d 0a 58 0a | 58 76 6f 69 64 20 46 69 |if.X}.X.|Xvoid Fi|
|00005170| 6e 69 73 68 28 73 70 2c | 63 70 29 0a 58 20 20 20 |nish(sp,|cp).X |
|00005180| 20 53 74 61 74 65 2a 20 | 20 73 70 3b 0a 58 20 20 | State* | sp;.X |
|00005190| 20 20 43 6d 64 2a 20 20 | 20 20 63 70 3b 0a 58 7b | Cmd* | cp;.X{|
|000051a0| 0a 58 20 20 20 20 69 6e | 74 09 20 20 20 20 69 3b |.X in|t. i;|
|000051b0| 0a 58 0a 58 20 20 20 20 | 69 66 20 28 63 70 2d 3e |.X.X |if (cp->|
|000051c0| 6f 2e 70 72 6f 66 69 6c | 65 29 20 50 72 6f 66 43 |o.profil|e) ProfC|
|000051d0| 6f 6e 74 72 6f 6c 28 30 | 29 3b 0a 58 20 20 20 20 |ontrol(0|);.X |
|000051e0| 69 66 20 28 63 70 2d 3e | 6f 2e 6f 76 65 72 6c 61 |if (cp->|o.overla|
|000051f0| 70 29 20 7b 0a 58 09 58 | 55 6e 6d 61 70 57 69 6e |p) {.X.X|UnmapWin|
|00005200| 64 6f 77 28 44 41 52 47 | 43 20 73 70 2d 3e 63 77 |dow(DARG|C sp->cw|
|00005210| 31 29 3b 0a 58 09 69 66 | 20 28 63 70 2d 3e 6f 2e |1);.X.if| (cp->o.|
|00005220| 61 6c 74 77 69 6e 29 20 | 58 55 6e 6d 61 70 57 69 |altwin) |XUnmapWi|
|00005230| 6e 64 6f 77 28 44 41 52 | 47 43 20 73 70 2d 3e 63 |ndow(DAR|GC sp->c|
|00005240| 77 32 29 3b 0a 58 20 20 | 20 20 7d 0a 58 23 20 20 |w2);.X | }.X# |
|00005250| 20 69 66 64 65 66 20 58 | 31 31 0a 58 09 69 66 20 | ifdef X|11.X.if |
|00005260| 28 63 70 2d 3e 6f 2e 6f | 66 66 64 65 73 74 29 20 |(cp->o.o|ffdest) |
|00005270| 7b 0a 58 09 20 20 20 20 | 58 43 6f 70 79 41 72 65 |{.X. |XCopyAre|
|00005280| 61 28 0a 58 09 09 73 70 | 2d 3e 64 2c 73 70 2d 3e |a(.X..sp|->d,sp->|
|00005290| 6f 66 66 70 69 78 2c 73 | 70 2d 3e 77 31 2c 73 70 |offpix,s|p->w1,sp|
|000052a0| 2d 3e 67 63 31 2c 30 2c | 30 2c 73 70 2d 3e 77 69 |->gc1,0,|0,sp->wi|
|000052b0| 6e 73 69 7a 65 2c 73 70 | 2d 3e 77 69 6e 73 69 7a |nsize,sp|->winsiz|
|000052c0| 65 2c 30 2c 30 0a 58 09 | 20 20 20 20 29 3b 0a 58 |e,0,0.X.| );.X|
|000052d0| 09 7d 0a 58 23 20 20 20 | 65 6e 64 69 66 20 58 31 |.}.X# |endif X1|
|000052e0| 31 0a 58 20 20 20 20 58 | 53 79 6e 63 28 44 41 52 |1.X X|Sync(DAR|
|000052f0| 47 43 20 30 29 3b 0a 58 | 20 20 20 20 66 70 72 69 |GC 0);.X| fpri|
|00005300| 6e 74 66 28 4f 75 74 28 | 73 70 2c 63 70 29 2c 22 |ntf(Out(|sp,cp),"|
|00005310| 23 20 22 29 3b 0a 58 20 | 20 20 20 69 66 20 28 63 |# ");.X | if (c|
|00005320| 70 2d 3e 72 65 73 75 6c | 74 21 3d 53 75 63 63 65 |p->resul|t!=Succe|
|00005330| 65 64 65 64 29 20 7b 0a | 58 09 66 70 72 69 6e 74 |eded) {.|X.fprint|
|00005340| 66 28 4f 75 74 28 73 70 | 2c 63 70 29 2c 22 72 65 |f(Out(sp|,cp),"re|
|00005350| 73 75 6c 74 3d 25 73 22 | 2c 52 65 73 75 6c 74 4d |sult=%s"|,ResultM|
|00005360| 73 67 73 5b 28 69 6e 74 | 29 63 70 2d 3e 72 65 73 |sgs[(int|)cp->res|
|00005370| 75 6c 74 5d 29 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |ult]);.X| }.X |
|00005380| 20 20 20 65 6c 73 65 20 | 7b 0a 58 09 66 70 72 69 | else |{.X.fpri|
|00005390| 6e 74 66 28 0a 58 09 20 | 20 20 20 4f 75 74 28 73 |ntf(.X. | Out(s|
|000053a0| 70 2c 63 70 29 2c 22 68 | 6c 6f 61 64 3d 25 2e 31 |p,cp),"h|load=%.1|
|000053b0| 66 20 20 74 69 6d 65 3d | 25 2e 33 66 6d 73 65 63 |f time=|%.3fmsec|
|000053c0| 20 20 72 61 74 65 3d 25 | 2e 31 66 2f 73 65 63 22 | rate=%|.1f/sec"|
|000053d0| 2c 47 65 74 4c 6f 61 64 | 28 29 2c 0a 58 09 20 20 |,GetLoad|(),.X. |
|000053e0| 20 20 63 70 2d 3e 74 69 | 6d 65 2a 31 30 30 30 2f | cp->ti|me*1000/|
|000053f0| 63 70 2d 3e 69 74 65 72 | 61 74 69 6f 6e 73 2c 63 |cp->iter|ations,c|
|00005400| 70 2d 3e 69 74 65 72 61 | 74 69 6f 6e 73 2f 63 70 |p->itera|tions/cp|
|00005410| 2d 3e 74 69 6d 65 0a 58 | 09 29 3b 0a 58 20 20 20 |->time.X|.);.X |
|00005420| 20 7d 0a 58 20 20 20 20 | 69 66 20 28 73 74 72 6c | }.X |if (strl|
|00005430| 65 6e 28 63 70 2d 3e 70 | 2e 74 61 67 29 29 20 66 |en(cp->p|.tag)) f|
|00005440| 70 72 69 6e 74 66 28 4f | 75 74 28 73 70 2c 63 70 |printf(O|ut(sp,cp|
|00005450| 29 2c 22 20 20 74 61 67 | 3d 25 73 20 20 22 2c 63 |)," tag|=%s ",c|
|00005460| 70 2d 3e 70 2e 74 61 67 | 29 3b 0a 58 20 20 20 20 |p->p.tag|);.X |
|00005470| 70 75 74 63 28 27 5c 6e | 27 2c 4f 75 74 28 73 70 |putc('\n|',Out(sp|
|00005480| 2c 63 70 29 29 3b 0a 58 | 20 20 20 20 70 75 74 63 |,cp));.X| putc|
|00005490| 28 27 5c 6e 27 2c 73 74 | 64 65 72 72 29 3b 0a 58 |('\n',st|derr);.X|
|000054a0| 20 20 20 20 66 66 6c 75 | 73 68 28 4f 75 74 28 73 | fflu|sh(Out(s|
|000054b0| 70 2c 63 70 29 29 3b 0a | 58 20 20 20 20 66 66 6c |p,cp));.|X ffl|
|000054c0| 75 73 68 28 73 74 64 65 | 72 72 29 3b 0a 58 20 20 |ush(stde|rr);.X |
|000054d0| 20 20 69 66 20 28 73 74 | 72 63 6d 70 28 73 70 2d | if (st|rcmp(sp-|
|000054e0| 3e 66 6f 6e 74 73 2c 73 | 70 2d 3e 64 65 66 61 75 |>fonts,s|p->defau|
|000054f0| 6c 74 73 2e 66 6f 6e 74 | 73 29 29 20 53 65 74 46 |lts.font|s)) SetF|
|00005500| 6f 6e 74 73 28 73 70 2c | 26 73 70 2d 3e 64 65 66 |onts(sp,|&sp->def|
|00005510| 61 75 6c 74 73 29 3b 0a | 58 20 20 20 20 69 66 20 |aults);.|X if |
|00005520| 28 73 74 72 63 6d 70 28 | 73 70 2d 3e 6f 75 74 66 |(strcmp(|sp->outf|
|00005530| 69 6c 65 2c 73 70 2d 3e | 64 65 66 61 75 6c 74 73 |ile,sp->|defaults|
|00005540| 2e 6f 75 74 66 69 6c 65 | 29 29 20 53 65 74 4f 75 |.outfile|)) SetOu|
|00005550| 74 66 69 6c 65 28 73 70 | 2c 26 73 70 2d 3e 64 65 |tfile(sp|,&sp->de|
|00005560| 66 61 75 6c 74 73 29 3b | 0a 58 20 20 20 20 69 66 |faults);|.X if|
|00005570| 20 28 73 70 2d 3e 77 69 | 6e 73 69 7a 65 21 3d 73 | (sp->wi|nsize!=s|
|00005580| 70 2d 3e 64 65 66 61 75 | 6c 74 73 2e 77 69 6e 73 |p->defau|lts.wins|
|00005590| 69 7a 65 29 20 53 65 74 | 57 69 6e 73 69 7a 65 28 |ize) Set|Winsize(|
|000055a0| 73 70 2c 26 73 70 2d 3e | 64 65 66 61 75 6c 74 73 |sp,&sp->|defaults|
|000055b0| 29 3b 0a 58 7d 0a 58 0a | 58 76 6f 69 64 20 45 78 |);.X}.X.|Xvoid Ex|
|000055c0| 65 63 44 72 61 67 28 73 | 70 2c 63 70 29 0a 58 20 |ecDrag(s|p,cp).X |
|000055d0| 20 20 20 53 74 61 74 65 | 2a 20 20 73 70 3b 0a 58 | State|* sp;.X|
|000055e0| 20 20 20 20 43 6d 64 2a | 20 20 20 20 63 70 3b 0a | Cmd*| cp;.|
|000055f0| 58 7b 0a 58 20 20 20 20 | 58 45 76 65 6e 74 09 20 |X{.X |XEvent. |
|00005600| 20 20 20 65 3b 0a 58 20 | 20 20 20 69 6e 74 09 09 | e;.X | int..|
|00005610| 20 20 20 20 69 3b 0a 58 | 20 20 20 20 58 4d 6f 74 | i;.X| XMot|
|00005620| 69 6f 6e 45 76 65 6e 74 | 2a 20 20 20 6d 65 70 3b |ionEvent|* mep;|
|00005630| 0a 58 20 20 20 20 64 6f | 75 62 6c 65 09 20 20 20 |.X do|uble. |
|00005640| 20 74 31 3b 0a 58 20 20 | 20 20 57 69 6e 64 6f 77 | t1;.X | Window|
|00005650| 09 20 20 20 20 71 77 3b | 0a 58 0a 58 23 20 20 20 |. qw;|.X.X# |
|00005660| 69 66 64 65 66 20 58 31 | 30 0a 58 09 6d 65 70 20 |ifdef X1|0.X.mep |
|00005670| 3d 20 28 58 4d 6f 74 69 | 6f 6e 45 76 65 6e 74 2a |= (XMoti|onEvent*|
|00005680| 29 26 65 3b 0a 58 23 20 | 20 20 65 6c 73 65 0a 58 |)&e;.X# | else.X|
|00005690| 09 6d 65 70 20 3d 20 26 | 65 2e 78 6d 6f 74 69 6f |.mep = &|e.xmotio|
|000056a0| 6e 3b 0a 58 23 20 20 20 | 65 6e 64 69 66 0a 58 20 |n;.X# |endif.X |
|000056b0| 20 20 20 63 70 2d 3e 69 | 74 65 72 61 74 69 6f 6e | cp->i|teration|
|000056c0| 73 20 3d 20 30 3b 0a 58 | 20 20 20 20 63 70 2d 3e |s = 0;.X| cp->|
|000056d0| 6f 2e 61 6c 74 77 69 6e | 20 3d 20 66 61 6c 73 65 |o.altwin| = false|
|000056e0| 3b 0a 58 20 20 20 20 58 | 43 6c 65 61 72 57 69 6e |;.X X|ClearWin|
|000056f0| 64 6f 77 28 44 41 52 47 | 43 20 73 70 2d 3e 77 31 |dow(DARG|C sp->w1|
|00005700| 29 3b 0a 58 20 20 20 20 | 28 2a 4f 70 73 5b 28 69 |);.X |(*Ops[(i|
|00005710| 6e 74 29 63 70 2d 3e 69 | 6e 64 65 78 5d 5b 28 69 |nt)cp->i|ndex][(i|
|00005720| 6e 74 29 53 74 61 72 74 | 4f 70 5d 29 28 73 70 2c |nt)Start|Op])(sp,|
|00005730| 63 70 29 3b 0a 58 20 20 | 20 20 48 65 6c 70 28 0a |cp);.X | Help(.|
|00005740| 58 09 73 74 64 65 72 72 | 2c 0a 58 09 22 20 20 20 |X.stderr|,.X." |
|00005750| 20 44 72 61 67 20 74 65 | 73 74 3a 20 6d 6f 76 65 | Drag te|st: move|
|00005760| 20 63 75 72 73 6f 72 20 | 69 6e 20 77 69 6e 64 6f | cursor |in windo|
|00005770| 77 20 77 68 69 6c 65 20 | 70 72 65 73 73 69 6e 67 |w while |pressing|
|00005780| 20 61 20 6d 6f 75 73 65 | 20 62 75 74 74 6f 6e 22 | a mouse| button"|
|00005790| 0a 58 20 20 20 20 29 3b | 0a 58 20 20 20 20 66 66 |.X );|.X ff|
|000057a0| 6c 75 73 68 28 73 74 64 | 65 72 72 29 3b 0a 58 20 |lush(std|err);.X |
|000057b0| 20 20 20 58 44 65 66 69 | 6e 65 43 75 72 73 6f 72 | XDefi|neCursor|
|000057c0| 28 44 41 52 47 43 20 63 | 70 2d 3e 77 2c 73 70 2d |(DARGC c|p->w,sp-|
|000057d0| 3e 63 75 72 73 6f 72 29 | 3b 0a 58 20 20 20 20 64 |>cursor)|;.X d|
|000057e0| 6f 20 58 4e 65 78 74 45 | 76 65 6e 74 28 44 41 52 |o XNextE|vent(DAR|
|000057f0| 47 43 20 26 65 29 3b 20 | 77 68 69 6c 65 20 28 65 |GC &e); |while (e|
|00005800| 2e 74 79 70 65 21 3d 42 | 75 74 74 6f 6e 50 72 65 |.type!=B|uttonPre|
|00005810| 73 73 29 3b 0a 58 20 20 | 20 20 74 31 20 3d 20 47 |ss);.X | t1 = G|
|00005820| 65 74 54 69 6d 65 28 73 | 70 29 3b 0a 58 20 20 20 |etTime(s|p);.X |
|00005830| 20 77 68 69 6c 65 20 28 | 65 2e 74 79 70 65 21 3d | while (|e.type!=|
|00005840| 42 75 74 74 6f 6e 52 65 | 6c 65 61 73 65 29 20 7b |ButtonRe|lease) {|
|00005850| 0a 58 09 58 53 79 6e 63 | 28 44 41 52 47 43 20 66 |.X.XSync|(DARGC f|
|00005860| 61 6c 73 65 29 3b 0a 58 | 09 69 66 20 28 63 70 2d |alse);.X|.if (cp-|
|00005870| 3e 6f 2e 70 6f 6c 6c 29 | 20 7b 0a 58 09 20 20 20 |>o.poll)| {.X. |
|00005880| 20 69 66 20 28 21 58 43 | 68 65 63 6b 4d 61 73 6b | if (!XC|heckMask|
|00005890| 45 76 65 6e 74 28 44 41 | 52 47 43 20 42 75 74 74 |Event(DA|RGC Butt|
|000058a0| 6f 6e 52 65 6c 65 61 73 | 65 4d 61 73 6b 2c 26 65 |onReleas|eMask,&e|
|000058b0| 29 29 20 7b 0a 58 09 09 | 65 2e 74 79 70 65 20 3d |)) {.X..|e.type =|
|000058c0| 20 4d 6f 74 69 6f 6e 4e | 6f 74 69 66 79 3b 0a 58 | MotionN|otify;.X|
|000058d0| 23 09 09 69 66 64 65 66 | 20 58 31 30 0a 58 09 09 |#..ifdef| X10.X..|
|000058e0| 20 20 20 20 58 51 75 65 | 72 79 4d 6f 75 73 65 28 | XQue|ryMouse(|
|000058f0| 63 70 2d 3e 77 2c 26 6d | 65 70 2d 3e 78 2c 26 6d |cp->w,&m|ep->x,&m|
|00005900| 65 70 2d 3e 79 2c 26 71 | 77 29 3b 0a 58 23 09 09 |ep->y,&q|w);.X#..|
|00005910| 65 6c 73 65 0a 58 09 09 | 20 20 20 20 58 51 75 65 |else.X..| XQue|
|00005920| 72 79 50 6f 69 6e 74 65 | 72 28 0a 58 09 09 09 73 |ryPointe|r(.X...s|
|00005930| 70 2d 3e 64 2c 63 70 2d | 3e 77 2c 26 71 77 2c 26 |p->d,cp-|>w,&qw,&|
|00005940| 71 77 2c 26 69 2c 26 69 | 2c 26 6d 65 70 2d 3e 78 |qw,&i,&i|,&mep->x|
|00005950| 2c 26 6d 65 70 2d 3e 79 | 2c 26 69 0a 58 09 09 20 |,&mep->y|,&i.X.. |
|00005960| 20 20 20 29 3b 0a 58 23 | 09 09 65 6e 64 69 66 0a | );.X#|..endif.|
|00005970| 58 09 20 20 20 20 7d 0a | 58 09 7d 0a 58 09 65 6c |X. }.|X.}.X.el|
|00005980| 73 65 20 64 6f 20 7b 0a | 58 09 20 20 20 20 58 4e |se do {.|X. XN|
|00005990| 65 78 74 45 76 65 6e 74 | 28 44 41 52 47 43 20 26 |extEvent|(DARGC &|
|000059a0| 65 29 3b 0a 58 09 7d 20 | 77 68 69 6c 65 20 28 51 |e);.X.} |while (Q|
|000059b0| 4c 65 6e 67 74 68 28 44 | 41 52 47 29 20 26 26 20 |Length(D|ARG) && |
|000059c0| 28 65 2e 74 79 70 65 3d | 3d 4d 6f 74 69 6f 6e 4e |(e.type=|=MotionN|
|000059d0| 6f 74 69 66 79 29 29 3b | 0a 58 09 28 2a 4f 70 73 |otify));|.X.(*Ops|
|000059e0| 5b 28 69 6e 74 29 63 70 | 2d 3e 69 6e 64 65 78 5d |[(int)cp|->index]|
|000059f0| 5b 28 69 6e 74 29 45 72 | 61 73 65 4f 70 5d 29 28 |[(int)Er|aseOp])(|
|00005a00| 73 70 2c 63 70 29 3b 0a | 58 09 63 70 2d 3e 64 78 |sp,cp);.|X.cp->dx|
|00005a10| 20 3d 20 6d 65 70 2d 3e | 78 2d 63 70 2d 3e 78 3b | = mep->|x-cp->x;|
|00005a20| 0a 58 09 63 70 2d 3e 64 | 79 20 3d 20 6d 65 70 2d |.X.cp->d|y = mep-|
|00005a30| 3e 79 2d 63 70 2d 3e 79 | 3b 0a 58 09 63 70 2d 3e |>y-cp->y|;.X.cp->|
|00005a40| 78 20 3d 20 6d 65 70 2d | 3e 78 3b 0a 58 09 63 70 |x = mep-|>x;.X.cp|
|00005a50| 2d 3e 79 20 3d 20 6d 65 | 70 2d 3e 79 3b 0a 58 09 |->y = me|p->y;.X.|
|00005a60| 28 2a 4f 70 73 5b 28 69 | 6e 74 29 63 70 2d 3e 69 |(*Ops[(i|nt)cp->i|
|00005a70| 6e 64 65 78 5d 5b 28 69 | 6e 74 29 44 6f 4f 70 5d |ndex][(i|nt)DoOp]|
|00005a80| 29 28 73 70 2c 63 70 29 | 3b 0a 58 09 63 70 2d 3e |)(sp,cp)|;.X.cp->|
|00005a90| 69 74 65 72 61 74 69 6f | 6e 73 2b 2b 3b 0a 58 20 |iteratio|ns++;.X |
|00005aa0| 20 20 20 7d 0a 58 20 20 | 20 20 63 70 2d 3e 74 69 | }.X | cp->ti|
|00005ab0| 6d 65 20 3d 20 47 65 74 | 54 69 6d 65 28 73 70 29 |me = Get|Time(sp)|
|00005ac0| 2d 74 31 3b 0a 58 20 20 | 20 20 58 55 6e 64 65 66 |-t1;.X | XUndef|
|00005ad0| 69 6e 65 43 75 72 73 6f | 72 28 44 41 52 47 43 20 |ineCurso|r(DARGC |
|00005ae0| 63 70 2d 3e 77 29 3b 0a | 58 20 20 20 20 28 2a 4f |cp->w);.|X (*O|
|00005af0| 70 73 5b 28 69 6e 74 29 | 63 70 2d 3e 69 6e 64 65 |ps[(int)|cp->inde|
|00005b00| 78 5d 5b 28 69 6e 74 29 | 46 69 6e 69 73 68 4f 70 |x][(int)|FinishOp|
|00005b10| 5d 29 28 73 70 2c 63 70 | 29 3b 0a 58 20 20 20 20 |])(sp,cp|);.X |
|00005b20| 58 46 6c 75 73 68 28 44 | 41 52 47 29 3b 0a 58 7d |XFlush(D|ARG);.X}|
|00005b30| 0a 58 0a 58 76 6f 69 64 | 20 45 78 65 63 4f 70 28 |.X.Xvoid| ExecOp(|
|00005b40| 73 70 2c 63 70 29 0a 58 | 20 20 20 20 53 74 61 74 |sp,cp).X| Stat|
|00005b50| 65 2a 20 20 73 70 3b 0a | 58 20 20 20 20 43 6d 64 |e* sp;.|X Cmd|
|00005b60| 2a 20 20 20 20 63 70 3b | 0a 58 7b 0a 58 20 20 20 |* cp;|.X{.X |
|00005b70| 20 0a 58 20 20 20 20 62 | 6f 6f 6c 20 20 20 20 64 | .X b|ool d|
|00005b80| 6f 6e 65 3b 0a 58 20 20 | 20 20 69 6e 74 09 20 20 |one;.X | int. |
|00005b90| 20 20 69 3b 0a 58 20 20 | 20 20 64 6f 75 62 6c 65 | i;.X | double|
|00005ba0| 20 20 74 31 3b 0a 58 0a | 58 20 20 20 20 28 2a 4f | t1;.X.|X (*O|
|00005bb0| 70 73 5b 28 69 6e 74 29 | 63 70 2d 3e 69 6e 64 65 |ps[(int)|cp->inde|
|00005bc0| 78 5d 5b 28 69 6e 74 29 | 53 74 61 72 74 4f 70 5d |x][(int)|StartOp]|
|00005bd0| 29 28 73 70 2c 63 70 29 | 3b 0a 58 20 20 20 20 63 |)(sp,cp)|;.X c|
|00005be0| 70 2d 3e 69 74 65 72 61 | 74 69 6f 6e 73 20 3d 20 |p->itera|tions = |
|00005bf0| 31 3b 0a 58 20 20 20 20 | 64 6f 6e 65 20 3d 20 28 |1;.X |done = (|
|00005c00| 62 6f 6f 6c 29 28 63 70 | 2d 3e 72 65 73 75 6c 74 |bool)(cp|->result|
|00005c10| 21 3d 53 75 63 63 65 65 | 64 65 64 29 3b 0a 58 20 |!=Succee|ded);.X |
|00005c20| 20 20 20 77 68 69 6c 65 | 20 28 21 64 6f 6e 65 29 | while| (!done)|
|00005c30| 20 7b 0a 58 09 74 31 20 | 3d 20 47 65 74 54 69 6d | {.X.t1 |= GetTim|
|00005c40| 65 28 73 70 29 3b 0a 58 | 09 66 6f 72 20 28 69 3d |e(sp);.X|.for (i=|
|00005c50| 30 3b 69 3c 63 70 2d 3e | 69 74 65 72 61 74 69 6f |0;i<cp->|iteratio|
|00005c60| 6e 73 3b 69 2b 2b 29 20 | 7b 0a 58 09 20 20 20 20 |ns;i++) |{.X. |
|00005c70| 28 2a 4f 70 73 5b 28 69 | 6e 74 29 63 70 2d 3e 69 |(*Ops[(i|nt)cp->i|
|00005c80| 6e 64 65 78 5d 5b 28 69 | 6e 74 29 44 6f 4f 70 5d |ndex][(i|nt)DoOp]|
|00005c90| 29 28 73 70 2c 63 70 29 | 3b 0a 58 09 7d 0a 58 09 |)(sp,cp)|;.X.}.X.|
|00005ca0| 63 70 2d 3e 74 69 6d 65 | 20 3d 20 47 65 74 54 69 |cp->time| = GetTi|
|00005cb0| 6d 65 28 73 70 29 2d 74 | 31 3b 0a 58 09 69 66 20 |me(sp)-t|1;.X.if |
|00005cc0| 28 28 28 69 6e 74 29 63 | 70 2d 3e 74 69 6d 65 29 |(((int)c|p->time)|
|00005cd0| 3e 3d 63 70 2d 3e 70 2e | 74 69 6d 65 67 6f 61 6c |>=cp->p.|timegoal|
|00005ce0| 29 20 64 6f 6e 65 20 3d | 20 74 72 75 65 3b 0a 58 |) done =| true;.X|
|00005cf0| 09 65 6c 73 65 20 7b 0a | 58 09 20 20 20 20 63 70 |.else {.|X. cp|
|00005d00| 2d 3e 69 74 65 72 61 74 | 69 6f 6e 73 20 3d 0a 58 |->iterat|ions =.X|
|00005d10| 09 09 28 69 6e 74 29 28 | 63 70 2d 3e 69 74 65 72 |..(int)(|cp->iter|
|00005d20| 61 74 69 6f 6e 73 2a 63 | 70 2d 3e 70 2e 74 69 6d |ations*c|p->p.tim|
|00005d30| 65 67 6f 61 6c 2f 28 63 | 70 2d 3e 74 69 6d 65 2b |egoal/(c|p->time+|
|00005d40| 2e 30 30 30 31 29 29 2b | 31 3b 0a 58 09 7d 0a 58 |.0001))+|1;.X.}.X|
|00005d50| 20 20 20 20 7d 0a 58 20 | 20 20 20 28 2a 4f 70 73 | }.X | (*Ops|
|00005d60| 5b 28 69 6e 74 29 63 70 | 2d 3e 69 6e 64 65 78 5d |[(int)cp|->index]|
|00005d70| 5b 28 69 6e 74 29 46 69 | 6e 69 73 68 4f 70 5d 29 |[(int)Fi|nishOp])|
|00005d80| 28 73 70 2c 63 70 29 3b | 0a 58 7d 0a 58 0a 58 76 |(sp,cp);|.X}.X.Xv|
|00005d90| 6f 69 64 20 45 78 65 63 | 43 6d 64 73 28 73 70 29 |oid Exec|Cmds(sp)|
|00005da0| 0a 58 20 20 20 20 53 74 | 61 74 65 2a 20 73 70 3b |.X St|ate* sp;|
|00005db0| 0a 58 7b 0a 58 20 20 20 | 20 43 6d 64 09 63 3b 0a |.X{.X | Cmd.c;.|
|00005dc0| 58 0a 58 20 20 20 20 77 | 68 69 6c 65 20 28 47 65 |X.X w|hile (Ge|
|00005dd0| 74 43 6d 64 28 73 70 2c | 26 63 29 29 20 7b 0a 58 |tCmd(sp,|&c)) {.X|
|00005de0| 09 69 66 20 28 63 2e 6f | 2e 64 72 61 67 29 20 45 |.if (c.o|.drag) E|
|00005df0| 78 65 63 44 72 61 67 28 | 73 70 2c 26 63 29 3b 0a |xecDrag(|sp,&c);.|
|00005e00| 58 09 65 6c 73 65 20 45 | 78 65 63 4f 70 28 73 70 |X.else E|xecOp(sp|
|00005e10| 2c 26 63 29 3b 0a 58 20 | 20 20 20 7d 0a 58 7d 0a |,&c);.X | }.X}.|
|00005e20| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 0a 69 66 20 74 |END_OF_F|ILE.if t|
|00005e30| 65 73 74 20 36 37 37 30 | 20 2d 6e 65 20 60 77 63 |est 6770| -ne `wc|
|00005e40| 20 2d 63 20 3c 27 65 78 | 65 63 2e 63 27 60 3b 20 | -c <'ex|ec.c'`; |
|00005e50| 74 68 65 6e 0a 20 20 20 | 20 65 63 68 6f 20 73 68 |then. | echo sh|
|00005e60| 61 72 3a 20 5c 22 27 65 | 78 65 63 2e 63 27 5c 22 |ar: \"'e|xec.c'\"|
|00005e70| 20 75 6e 70 61 63 6b 65 | 64 20 77 69 74 68 20 77 | unpacke|d with w|
|00005e80| 72 6f 6e 67 20 73 69 7a | 65 21 0a 66 69 0a 23 20 |rong siz|e!.fi.# |
|00005e90| 65 6e 64 20 6f 66 20 27 | 65 78 65 63 2e 63 27 0a |end of '|exec.c'.|
|00005ea0| 66 69 0a 69 66 20 74 65 | 73 74 20 2d 66 20 27 67 |fi.if te|st -f 'g|
|00005eb0| 62 65 6e 63 68 2e 68 27 | 20 2d 61 20 22 24 7b 31 |bench.h'| -a "${1|
|00005ec0| 7d 22 20 21 3d 20 22 2d | 63 22 20 3b 20 74 68 65 |}" != "-|c" ; the|
|00005ed0| 6e 20 0a 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |n . ech|o shar: |
|00005ee0| 57 69 6c 6c 20 6e 6f 74 | 20 63 6c 6f 62 62 65 72 |Will not| clobber|
|00005ef0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 5c | existin|g file \|
|00005f00| 22 27 67 62 65 6e 63 68 | 2e 68 27 5c 22 0a 65 6c |"'gbench|.h'\".el|
|00005f10| 73 65 0a 65 63 68 6f 20 | 73 68 61 72 3a 20 45 78 |se.echo |shar: Ex|
|00005f20| 74 72 61 63 74 69 6e 67 | 20 5c 22 27 67 62 65 6e |tracting| \"'gben|
|00005f30| 63 68 2e 68 27 5c 22 20 | 5c 28 35 36 39 30 20 63 |ch.h'\" |\(5690 c|
|00005f40| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|00005f50| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 67 62 65 6e 63 |"s/^X//"| >'gbenc|
|00005f60| 68 2e 68 27 20 3c 3c 27 | 45 4e 44 5f 4f 46 5f 46 |h.h' <<'|END_OF_F|
|00005f70| 49 4c 45 27 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |ILE'.X#i|nclude <|
|00005f80| 63 74 79 70 65 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |ctype.h>|.X#inclu|
|00005f90| 64 65 20 3c 6e 6c 69 73 | 74 2e 68 3e 0a 58 23 69 |de <nlis|t.h>.X#i|
|00005fa0| 6e 63 6c 75 64 65 20 3c | 6d 61 74 68 2e 68 3e 0a |nclude <|math.h>.|
|00005fb0| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 74 64 69 6f |X#includ|e <stdio|
|00005fc0| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 73 |.h>.X#in|clude <s|
|00005fd0| 74 72 69 6e 67 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |tring.h>|.X#inclu|
|00005fe0| 64 65 20 3c 73 79 73 2f | 74 69 6d 65 2e 68 3e 0a |de <sys/|time.h>.|
|00005ff0| 58 0a 58 23 69 66 64 65 | 66 20 53 55 4e 33 0a 58 |X.X#ifde|f SUN3.X|
|00006000| 23 64 65 66 69 6e 65 20 | 46 49 58 4c 4f 41 44 0a |#define |FIXLOAD.|
|00006010| 58 23 65 6e 64 69 66 0a | 58 23 69 66 64 65 66 20 |X#endif.|X#ifdef |
|00006020| 53 55 4e 34 0a 58 23 64 | 65 66 69 6e 65 20 46 49 |SUN4.X#d|efine FI|
|00006030| 58 4c 4f 41 44 0a 58 23 | 65 6e 64 69 66 0a 58 0a |XLOAD.X#|endif.X.|
|00006040| 58 23 69 66 64 65 66 20 | 58 31 30 0a 58 23 20 20 |X#ifdef |X10.X# |
|00006050| 20 69 6e 63 6c 75 64 65 | 20 3c 58 31 30 2f 58 6c | include| <X10/Xl|
|00006060| 69 62 2e 68 3e 0a 58 23 | 20 20 20 64 65 66 69 6e |ib.h>.X#| defin|
|00006070| 65 20 5f 42 6c 61 63 6b | 50 69 78 65 6c 09 09 42 |e _Black|Pixel..B|
|00006080| 6c 61 63 6b 50 69 78 65 | 6c 0a 58 23 20 20 20 64 |lackPixe|l.X# d|
|00006090| 65 66 69 6e 65 20 42 75 | 74 74 6f 6e 50 72 65 73 |efine Bu|ttonPres|
|000060a0| 73 09 09 42 75 74 74 6f | 6e 50 72 65 73 73 65 64 |s..Butto|nPressed|
|000060b0| 0a 58 23 20 20 20 64 65 | 66 69 6e 65 20 42 75 74 |.X# de|fine But|
|000060c0| 74 6f 6e 50 72 65 73 73 | 4d 61 73 6b 09 42 75 74 |tonPress|Mask.But|
|000060d0| 74 6f 6e 50 72 65 73 73 | 65 64 0a 58 23 20 20 20 |tonPress|ed.X# |
|000060e0| 64 65 66 69 6e 65 20 42 | 75 74 74 6f 6e 52 65 6c |define B|uttonRel|
|000060f0| 65 61 73 65 09 42 75 74 | 74 6f 6e 52 65 6c 65 61 |ease.But|tonRelea|
|00006100| 73 65 64 0a 58 23 20 20 | 20 64 65 66 69 6e 65 20 |sed.X# | define |
|00006110| 42 75 74 74 6f 6e 52 65 | 6c 65 61 73 65 4d 61 73 |ButtonRe|leaseMas|
|00006120| 6b 09 42 75 74 74 6f 6e | 52 65 6c 65 61 73 65 64 |k.Button|Released|
|00006130| 0a 58 23 20 20 20 64 65 | 66 69 6e 65 20 44 41 52 |.X# de|fine DAR|
|00006140| 47 0a 58 23 20 20 20 64 | 65 66 69 6e 65 20 44 41 |G.X# d|efine DA|
|00006150| 52 47 43 0a 58 23 20 20 | 20 64 65 66 69 6e 65 20 |RGC.X# | define |
|00006160| 44 65 66 61 75 6c 74 46 | 6f 6e 74 73 09 09 22 34 |DefaultF|onts.."4|
|00006170| 78 36 2c 36 78 31 30 2c | 36 78 31 33 2c 39 78 31 |x6,6x10,|6x13,9x1|
|00006180| 35 2c 69 63 65 33 34 22 | 0a 58 23 20 20 20 64 65 |5,ice34"|.X# de|
|00006190| 66 69 6e 65 20 5f 44 69 | 73 70 6c 61 79 48 65 69 |fine _Di|splayHei|
|000061a0| 67 68 74 09 44 69 73 70 | 6c 61 79 48 65 69 67 68 |ght.Disp|layHeigh|
|000061b0| 74 28 29 0a 58 23 20 20 | 20 64 65 66 69 6e 65 20 |t().X# | define |
|000061c0| 5f 44 69 73 70 6c 61 79 | 57 69 64 74 68 09 44 69 |_Display|Width.Di|
|000061d0| 73 70 6c 61 79 57 69 64 | 74 68 28 29 0a 58 23 20 |splayWid|th().X# |
|000061e0| 20 20 64 65 66 69 6e 65 | 20 44 72 61 77 61 62 6c | define| Drawabl|
|000061f0| 65 09 09 57 69 6e 64 6f | 77 0a 58 23 20 20 20 64 |e..Windo|w.X# d|
|00006200| 65 66 69 6e 65 20 45 78 | 70 6f 73 65 52 65 67 69 |efine Ex|poseRegi|
|00006210| 6f 6e 4d 61 73 6b 09 45 | 78 70 6f 73 65 52 65 67 |onMask.E|xposeReg|
|00006220| 69 6f 6e 0a 58 23 20 20 | 20 64 65 66 69 6e 65 20 |ion.X# | define |
|00006230| 45 78 70 6f 73 75 72 65 | 4d 61 73 6b 09 09 45 78 |Exposure|Mask..Ex|
|00006240| 70 6f 73 65 43 6f 70 79 | 0a 58 23 20 20 20 64 65 |poseCopy|.X# de|
|00006250| 66 69 6e 65 20 47 43 09 | 09 09 69 6e 74 0a 58 23 |fine GC.|..int.X#|
|00006260| 20 20 20 64 65 66 69 6e | 65 20 4d 6f 74 69 6f 6e | defin|e Motion|
|00006270| 4e 6f 74 69 66 79 09 09 | 4d 6f 75 73 65 4d 6f 76 |Notify..|MouseMov|
|00006280| 65 64 0a 58 23 20 20 20 | 64 65 66 69 6e 65 20 50 |ed.X# |define P|
|00006290| 6f 69 6e 74 65 72 4d 6f | 74 69 6f 6e 4d 61 73 6b |ointerMo|tionMask|
|000062a0| 09 4d 6f 75 73 65 4d 6f | 76 65 64 0a 58 23 20 20 |.MouseMo|ved.X# |
|000062b0| 20 64 65 66 69 6e 65 20 | 5f 52 6f 6f 74 57 69 6e | define |_RootWin|
|000062c0| 64 6f 77 09 09 52 6f 6f | 74 57 69 6e 64 6f 77 0a |dow..Roo|tWindow.|
|000062d0| 58 23 20 20 20 64 65 66 | 69 6e 65 20 5f 57 68 69 |X# def|ine _Whi|
|000062e0| 74 65 50 69 78 65 6c 09 | 09 57 68 69 74 65 50 69 |tePixel.|.WhitePi|
|000062f0| 78 65 6c 0a 58 23 20 20 | 20 64 65 66 69 6e 65 20 |xel.X# | define |
|00006300| 58 43 6c 65 61 72 57 69 | 6e 64 6f 77 09 09 58 43 |XClearWi|ndow..XC|
|00006310| 6c 65 61 72 0a 58 23 20 | 20 20 64 65 66 69 6e 65 |lear.X# | define|
|00006320| 20 58 43 72 65 61 74 65 | 53 69 6d 70 6c 65 57 69 | XCreate|SimpleWi|
|00006330| 6e 64 6f 77 09 58 43 72 | 65 61 74 65 57 69 6e 64 |ndow.XCr|eateWind|
|00006340| 6f 77 0a 58 23 20 20 20 | 64 65 66 69 6e 65 20 58 |ow.X# |define X|
|00006350| 46 6f 6e 74 53 74 72 75 | 63 74 09 09 46 6f 6e 74 |FontStru|ct..Font|
|00006360| 49 6e 66 6f 0a 58 23 20 | 20 20 64 65 66 69 6e 65 |Info.X# | define|
|00006370| 20 58 46 72 65 65 46 6f | 6e 74 09 09 58 43 6c 6f | XFreeFo|nt..XClo|
|00006380| 73 65 46 6f 6e 74 0a 58 | 23 20 20 20 64 65 66 69 |seFont.X|# defi|
|00006390| 6e 65 20 58 47 72 61 70 | 68 69 63 73 45 78 70 6f |ne XGrap|hicsExpo|
|000063a0| 73 65 45 76 65 6e 74 09 | 58 45 78 70 6f 73 65 45 |seEvent.|XExposeE|
|000063b0| 76 65 6e 74 0a 58 23 20 | 20 20 64 65 66 69 6e 65 |vent.X# | define|
|000063c0| 20 58 50 6f 69 6e 74 09 | 09 56 65 72 74 65 78 0a | XPoint.|.Vertex.|
|000063d0| 58 23 20 20 20 64 65 66 | 69 6e 65 20 58 54 65 78 |X# def|ine XTex|
|000063e0| 74 49 74 65 6d 09 09 63 | 68 61 72 0a 58 23 20 20 |tItem..c|har.X# |
|000063f0| 20 64 65 66 69 6e 65 20 | 58 4d 6f 74 69 6f 6e 45 | define |XMotionE|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.