home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 0a 50 61 |.sources|.misc.Pa|
|00000020| 74 68 3a 20 73 70 61 72 | 6b 79 21 6b 65 6e 74 0a |th: spar|ky!kent.|
|00000030| 46 72 6f 6d 3a 20 6a 70 | 65 67 2d 69 6e 66 6f 40 |From: jp|eg-info@|
|00000040| 75 75 6e 65 74 2e 75 75 | 2e 6e 65 74 20 28 49 6e |uunet.uu|.net (In|
|00000050| 64 65 70 65 6e 64 65 6e | 74 20 4a 50 45 47 20 47 |dependen|t JPEG G|
|00000060| 72 6f 75 70 29 0a 53 75 | 62 6a 65 63 74 3a 20 20 |roup).Su|bject: |
|00000070| 76 33 34 69 30 37 32 3a | 20 20 6a 70 65 67 20 2d |v34i072:| jpeg -|
|00000080| 20 4a 50 45 47 20 69 6d | 61 67 65 20 63 6f 6d 70 | JPEG im|age comp|
|00000090| 72 65 73 73 69 6f 6e 2c | 20 50 61 72 74 31 38 2f |ression,| Part18/|
|000000a0| 31 38 0a 4d 65 73 73 61 | 67 65 2d 49 44 3a 20 3c |18.Messa|ge-ID: <|
|000000b0| 31 39 39 32 44 65 63 31 | 37 2e 31 36 35 32 32 32 |1992Dec1|7.165222|
|000000c0| 2e 37 30 33 31 40 73 70 | 61 72 6b 79 2e 69 6d 64 |.7031@sp|arky.imd|
|000000d0| 2e 73 74 65 72 6c 69 6e | 67 2e 63 6f 6d 3e 0a 46 |.sterlin|g.com>.F|
|000000e0| 6f 6c 6c 6f 77 75 70 2d | 54 6f 3a 20 63 6f 6d 70 |ollowup-|To: comp|
|000000f0| 2e 73 6f 75 72 63 65 73 | 2e 64 0a 58 2d 4d 64 34 |.sources|.d.X-Md4|
|00000100| 2d 53 69 67 6e 61 74 75 | 72 65 3a 20 34 33 36 38 |-Signatu|re: 4368|
|00000110| 62 36 34 30 39 37 35 31 | 64 63 63 66 36 61 33 35 |b6409751|dccf6a35|
|00000120| 32 32 36 35 30 33 63 64 | 32 36 62 35 0a 4b 65 79 |226503cd|26b5.Key|
|00000130| 77 6f 72 64 73 3a 20 4a | 50 45 47 2c 20 69 6d 61 |words: J|PEG, ima|
|00000140| 67 65 20 63 6f 6d 70 72 | 65 73 73 69 6f 6e 0a 53 |ge compr|ession.S|
|00000150| 65 6e 64 65 72 3a 20 6b | 65 6e 74 40 73 70 61 72 |ender: k|ent@spar|
|00000160| 6b 79 2e 69 6d 64 2e 73 | 74 65 72 6c 69 6e 67 2e |ky.imd.s|terling.|
|00000170| 63 6f 6d 20 28 4b 65 6e | 74 20 4c 61 6e 64 66 69 |com (Ken|t Landfi|
|00000180| 65 6c 64 29 0a 4f 72 67 | 61 6e 69 7a 61 74 69 6f |eld).Org|anizatio|
|00000190| 6e 3a 20 49 6e 64 65 70 | 65 6e 64 65 6e 74 20 4a |n: Indep|endent J|
|000001a0| 50 45 47 20 47 72 6f 75 | 70 0a 52 65 66 65 72 65 |PEG Grou|p.Refere|
|000001b0| 6e 63 65 73 3a 20 3c 63 | 73 6d 2d 76 33 34 69 30 |nces: <c|sm-v34i0|
|000001c0| 35 35 3d 6a 70 65 67 2e | 32 32 30 34 32 34 40 73 |55=jpeg.|220424@s|
|000001d0| 70 61 72 6b 79 2e 49 4d | 44 2e 53 74 65 72 6c 69 |parky.IM|D.Sterli|
|000001e0| 6e 67 2e 43 4f 4d 3e 0a | 44 61 74 65 3a 20 54 68 |ng.COM>.|Date: Th|
|000001f0| 75 2c 20 31 37 20 44 65 | 63 20 31 39 39 32 20 31 |u, 17 De|c 1992 1|
|00000200| 36 3a 35 32 3a 32 32 20 | 47 4d 54 0a 41 70 70 72 |6:52:22 |GMT.Appr|
|00000210| 6f 76 65 64 3a 20 6b 65 | 6e 74 40 73 70 61 72 6b |oved: ke|nt@spark|
|00000220| 79 2e 69 6d 64 2e 73 74 | 65 72 6c 69 6e 67 2e 63 |y.imd.st|erling.c|
|00000230| 6f 6d 0a 4c 69 6e 65 73 | 3a 20 31 33 38 35 0a 0a |om.Lines|: 1385..|
|00000240| 53 75 62 6d 69 74 74 65 | 64 2d 62 79 3a 20 6a 70 |Submitte|d-by: jp|
|00000250| 65 67 2d 69 6e 66 6f 40 | 75 75 6e 65 74 2e 75 75 |eg-info@|uunet.uu|
|00000260| 2e 6e 65 74 20 28 49 6e | 64 65 70 65 6e 64 65 6e |.net (In|dependen|
|00000270| 74 20 4a 50 45 47 20 47 | 72 6f 75 70 29 0a 50 6f |t JPEG G|roup).Po|
|00000280| 73 74 69 6e 67 2d 6e 75 | 6d 62 65 72 3a 20 56 6f |sting-nu|mber: Vo|
|00000290| 6c 75 6d 65 20 33 34 2c | 20 49 73 73 75 65 20 37 |lume 34,| Issue 7|
|000002a0| 32 0a 41 72 63 68 69 76 | 65 2d 6e 61 6d 65 3a 20 |2.Archiv|e-name: |
|000002b0| 6a 70 65 67 2f 70 61 72 | 74 31 38 0a 45 6e 76 69 |jpeg/par|t18.Envi|
|000002c0| 72 6f 6e 6d 65 6e 74 3a | 20 55 4e 49 58 2c 20 56 |ronment:| UNIX, V|
|000002d0| 4d 53 2c 20 4d 53 2d 44 | 4f 53 2c 20 4d 61 63 2c |MS, MS-D|OS, Mac,|
|000002e0| 20 41 6d 69 67 61 2c 20 | 41 74 61 72 69 2c 20 43 | Amiga, |Atari, C|
|000002f0| 72 61 79 0a 53 75 70 65 | 72 73 65 64 65 73 3a 20 |ray.Supe|rsedes: |
|00000300| 6a 70 65 67 3a 20 56 6f | 6c 75 6d 65 20 32 39 2c |jpeg: Vo|lume 29,|
|00000310| 20 49 73 73 75 65 20 31 | 2d 31 38 0a 0a 23 21 20 | Issue 1|-18..#! |
|00000320| 2f 62 69 6e 2f 73 68 0a | 23 20 54 68 69 73 20 69 |/bin/sh.|# This i|
|00000330| 73 20 61 20 73 68 65 6c | 6c 20 61 72 63 68 69 76 |s a shel|l archiv|
|00000340| 65 2e 20 20 52 65 6d 6f | 76 65 20 61 6e 79 74 68 |e. Remo|ve anyth|
|00000350| 69 6e 67 20 62 65 66 6f | 72 65 20 74 68 69 73 20 |ing befo|re this |
|00000360| 6c 69 6e 65 2c 20 74 68 | 65 6e 20 66 65 65 64 20 |line, th|en feed |
|00000370| 69 74 0a 23 20 69 6e 74 | 6f 20 61 20 73 68 65 6c |it.# int|o a shel|
|00000380| 6c 20 76 69 61 20 22 73 | 68 20 66 69 6c 65 22 20 |l via "s|h file" |
|00000390| 6f 72 20 73 69 6d 69 6c | 61 72 2e 20 20 54 6f 20 |or simil|ar. To |
|000003a0| 6f 76 65 72 77 72 69 74 | 65 20 65 78 69 73 74 69 |overwrit|e existi|
|000003b0| 6e 67 20 66 69 6c 65 73 | 2c 0a 23 20 74 79 70 65 |ng files|,.# type|
|000003c0| 20 22 73 68 20 66 69 6c | 65 20 2d 63 22 2e 0a 23 | "sh fil|e -c"..#|
|000003d0| 20 43 6f 6e 74 65 6e 74 | 73 3a 20 20 43 48 41 4e | Content|s: CHAN|
|000003e0| 47 45 4c 4f 47 20 64 6a | 70 65 67 2e 31 20 6a 62 |GELOG dj|peg.1 jb|
|000003f0| 73 6d 6f 6f 74 68 2e 63 | 20 6a 63 6d 61 73 74 65 |smooth.c| jcmaste|
|00000400| 72 2e 63 20 6a 65 72 72 | 6f 72 2e 63 0a 23 20 20 |r.c jerr|or.c.# |
|00000410| 20 6a 6d 65 6d 61 6e 73 | 69 2e 63 20 6a 6d 65 6d | jmemans|i.c jmem|
|00000420| 6e 6f 62 73 2e 63 20 6a | 75 74 69 6c 73 2e 63 20 |nobs.c j|utils.c |
|00000430| 6d 61 6b 63 6a 70 65 67 | 2e 73 74 20 6d 61 6b 64 |makcjpeg|.st makd|
|00000440| 6a 70 65 67 2e 73 74 0a | 23 20 20 20 6d 61 6b 65 |jpeg.st.|# make|
|00000450| 66 69 6c 65 2e 76 6d 73 | 20 6d 61 6b 6c 6a 70 65 |file.vms| makljpe|
|00000460| 67 2e 73 74 0a 23 20 57 | 72 61 70 70 65 64 20 62 |g.st.# W|rapped b|
|00000470| 79 20 6b 65 6e 74 40 73 | 70 61 72 6b 79 20 6f 6e |y kent@s|parky on|
|00000480| 20 57 65 64 20 44 65 63 | 20 31 36 20 32 30 3a 35 | Wed Dec| 16 20:5|
|00000490| 32 3a 33 32 20 31 39 39 | 32 0a 50 41 54 48 3d 2f |2:32 199|2.PATH=/|
|000004a0| 62 69 6e 3a 2f 75 73 72 | 2f 62 69 6e 3a 2f 75 73 |bin:/usr|/bin:/us|
|000004b0| 72 2f 75 63 62 3a 2f 75 | 73 72 2f 6c 6f 63 61 6c |r/ucb:/u|sr/local|
|000004c0| 2f 62 69 6e 3a 2f 75 73 | 72 2f 6c 62 69 6e 20 3b |/bin:/us|r/lbin ;|
|000004d0| 20 65 78 70 6f 72 74 20 | 50 41 54 48 0a 65 63 68 | export |PATH.ech|
|000004e0| 6f 20 49 66 20 74 68 69 | 73 20 61 72 63 68 69 76 |o If thi|s archiv|
|000004f0| 65 20 69 73 20 63 6f 6d | 70 6c 65 74 65 2c 20 79 |e is com|plete, y|
|00000500| 6f 75 20 77 69 6c 6c 20 | 73 65 65 20 74 68 65 20 |ou will |see the |
|00000510| 66 6f 6c 6c 6f 77 69 6e | 67 20 6d 65 73 73 61 67 |followin|g messag|
|00000520| 65 3a 0a 65 63 68 6f 20 | 27 20 20 20 20 20 20 20 |e:.echo |' |
|00000530| 20 20 20 22 73 68 61 72 | 3a 20 45 6e 64 20 6f 66 | "shar|: End of|
|00000540| 20 61 72 63 68 69 76 65 | 20 31 38 20 28 6f 66 20 | archive| 18 (of |
|00000550| 31 38 29 2e 22 27 0a 69 | 66 20 74 65 73 74 20 2d |18)."'.i|f test -|
|00000560| 66 20 27 43 48 41 4e 47 | 45 4c 4f 47 27 20 2d 61 |f 'CHANG|ELOG' -a|
|00000570| 20 22 24 7b 31 7d 22 20 | 21 3d 20 22 2d 63 22 20 | "${1}" |!= "-c" |
|00000580| 3b 20 74 68 65 6e 20 0a | 20 20 65 63 68 6f 20 73 |; then .| echo s|
|00000590| 68 61 72 3a 20 57 69 6c | 6c 20 6e 6f 74 20 63 6c |har: Wil|l not cl|
|000005a0| 6f 62 62 65 72 20 65 78 | 69 73 74 69 6e 67 20 66 |obber ex|isting f|
|000005b0| 69 6c 65 20 5c 22 27 43 | 48 41 4e 47 45 4c 4f 47 |ile \"'C|HANGELOG|
|000005c0| 27 5c 22 0a 65 6c 73 65 | 0a 20 20 65 63 68 6f 20 |'\".else|. echo |
|000005d0| 73 68 61 72 3a 20 45 78 | 74 72 61 63 74 69 6e 67 |shar: Ex|tracting|
|000005e0| 20 5c 22 27 43 48 41 4e | 47 45 4c 4f 47 27 5c 22 | \"'CHAN|GELOG'\"|
|000005f0| 20 5c 28 35 30 30 32 20 | 63 68 61 72 61 63 74 65 | \(5002 |characte|
|00000600| 72 73 5c 29 0a 20 20 73 | 65 64 20 22 73 2f 5e 58 |rs\). s|ed "s/^X|
|00000610| 2f 2f 22 20 3e 27 43 48 | 41 4e 47 45 4c 4f 47 27 |//" >'CH|ANGELOG'|
|00000620| 20 3c 3c 27 45 4e 44 5f | 4f 46 5f 46 49 4c 45 27 | <<'END_|OF_FILE'|
|00000630| 0a 58 43 48 41 4e 47 45 | 4c 4f 47 20 66 6f 72 20 |.XCHANGE|LOG for |
|00000640| 49 6e 64 65 70 65 6e 64 | 65 6e 74 20 4a 50 45 47 |Independ|ent JPEG|
|00000650| 20 47 72 6f 75 70 27 73 | 20 4a 50 45 47 20 73 6f | Group's| JPEG so|
|00000660| 66 74 77 61 72 65 0a 58 | 0a 58 56 65 72 73 69 6f |ftware.X|.XVersio|
|00000670| 6e 20 34 20 20 31 30 2d | 44 65 63 2d 39 32 0a 58 |n 4 10-|Dec-92.X|
|00000680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000690| 2d 2d 2d 2d 0a 58 0a 58 | 52 65 76 69 73 65 64 20 |----.X.X|Revised |
|000006a0| 75 73 65 72 20 69 6e 74 | 65 72 66 61 63 65 3a 20 |user int|erface: |
|000006b0| 73 77 69 74 63 68 65 73 | 20 6e 6f 77 20 75 73 65 |switches| now use|
|000006c0| 20 6e 61 6d 65 73 20 69 | 6e 73 74 65 61 64 20 6f | names i|nstead o|
|000006d0| 66 20 73 69 6e 67 6c 65 | 20 6c 65 74 74 65 72 73 |f single| letters|
|000006e0| 2e 0a 58 28 4f 6c 64 20 | 73 77 69 74 63 68 20 6c |..X(Old |switch l|
|000006f0| 65 74 74 65 72 73 20 61 | 72 65 20 61 63 63 65 70 |etters a|re accep|
|00000700| 74 61 62 6c 65 20 61 62 | 62 72 65 76 69 61 74 69 |table ab|breviati|
|00000710| 6f 6e 73 20 6f 66 20 6e | 65 77 20 73 77 69 74 63 |ons of n|ew switc|
|00000720| 68 20 6e 61 6d 65 73 2c | 20 45 58 43 45 50 54 0a |h names,| EXCEPT.|
|00000730| 58 66 6f 72 20 64 6a 70 | 65 67 27 73 20 6f 6c 64 |Xfor djp|eg's old|
|00000740| 20 2d 67 2c 20 2d 44 2c | 20 2d 31 20 73 77 69 74 | -g, -D,| -1 swit|
|00000750| 63 68 65 73 2e 29 20 20 | 63 6a 70 65 67 20 68 61 |ches.) |cjpeg ha|
|00000760| 73 20 73 65 76 65 72 61 | 6c 20 6e 65 77 20 73 77 |s severa|l new sw|
|00000770| 69 74 63 68 65 73 2e 0a | 58 0a 58 50 72 6f 76 69 |itches..|X.XProvi|
|00000780| 73 69 6f 6e 20 66 6f 72 | 20 73 6d 6f 6f 74 68 69 |sion for| smoothi|
|00000790| 6e 67 20 74 68 65 20 69 | 6e 70 75 74 20 69 6d 61 |ng the i|nput ima|
|000007a0| 67 65 20 61 64 64 65 64 | 20 74 6f 20 63 6a 70 65 |ge added| to cjpe|
|000007b0| 67 2e 20 20 54 68 69 73 | 20 68 65 6c 70 73 20 61 |g. This| helps a|
|000007c0| 20 6c 6f 74 20 77 69 74 | 68 0a 58 63 6f 6e 76 65 | lot wit|h.Xconve|
|000007d0| 72 74 69 6e 67 20 64 69 | 74 68 65 72 65 64 20 47 |rting di|thered G|
|000007e0| 49 46 73 20 74 6f 20 4a | 50 45 47 2e 0a 58 0a 58 |IFs to J|PEG..X.X|
|000007f0| 44 65 63 6f 64 65 72 20 | 75 70 73 61 6d 70 6c 69 |Decoder |upsampli|
|00000800| 6e 67 20 6e 6f 77 20 75 | 73 65 73 20 69 6e 74 65 |ng now u|ses inte|
|00000810| 72 70 6f 6c 61 74 69 6f | 6e 20 69 6e 73 74 65 61 |rpolatio|n instea|
|00000820| 64 20 6f 66 20 70 69 78 | 65 6c 20 72 65 70 6c 69 |d of pix|el repli|
|00000830| 63 61 74 69 6f 6e 3b 20 | 74 68 69 73 0a 58 69 6d |cation; |this.Xim|
|00000840| 70 72 6f 76 65 73 20 72 | 65 6e 64 65 72 69 6e 67 |proves r|endering|
|00000850| 20 6f 66 20 73 68 61 72 | 70 20 63 6f 6c 6f 72 65 | of shar|p colore|
|00000860| 64 20 65 64 67 65 73 2e | 0a 58 0a 58 54 68 65 20 |d edges.|.X.XThe |
|00000870| 64 65 63 6f 6d 70 72 65 | 73 73 6f 72 20 77 69 6c |decompre|ssor wil|
|00000880| 6c 20 6e 6f 77 20 74 72 | 79 20 74 6f 20 63 6f 6e |l now tr|y to con|
|00000890| 74 69 6e 75 65 20 61 66 | 74 65 72 20 64 65 74 65 |tinue af|ter dete|
|000008a0| 63 74 69 6e 67 20 61 6e | 20 65 72 72 6f 72 20 69 |cting an| error i|
|000008b0| 6e 20 74 68 65 0a 58 63 | 6f 6d 70 72 65 73 73 65 |n the.Xc|ompresse|
|000008c0| 64 20 64 61 74 61 2c 20 | 69 6e 73 74 65 61 64 20 |d data, |instead |
|000008d0| 6f 66 20 6a 75 73 74 20 | 61 62 6f 72 74 69 6e 67 |of just |aborting|
|000008e0| 2e 20 20 49 66 20 74 68 | 65 20 69 6e 70 75 74 20 |. If th|e input |
|000008f0| 66 69 6c 65 20 68 61 73 | 20 72 65 73 74 61 72 74 |file has| restart|
|00000900| 0a 58 6d 61 72 6b 65 72 | 73 2c 20 66 75 6c 6c 20 |.Xmarker|s, full |
|00000910| 73 79 6e 63 68 72 6f 6e | 69 7a 61 74 69 6f 6e 20 |synchron|ization |
|00000920| 77 69 6c 6c 20 75 73 75 | 61 6c 6c 79 20 62 65 20 |will usu|ally be |
|00000930| 72 65 67 61 69 6e 65 64 | 20 61 74 20 74 68 65 20 |regained| at the |
|00000940| 6e 65 78 74 20 75 6e 64 | 61 6d 61 67 65 64 0a 58 |next und|amaged.X|
|00000950| 72 65 73 74 61 72 74 20 | 6d 61 72 6b 65 72 2e 20 |restart |marker. |
|00000960| 20 28 42 75 74 20 79 6f | 75 27 72 65 20 73 74 69 | (But yo|u're sti|
|00000970| 6c 6c 20 6f 75 74 20 6f | 66 20 6c 75 63 6b 20 69 |ll out o|f luck i|
|00000980| 66 20 61 6e 79 20 6f 66 | 20 74 68 65 20 68 65 61 |f any of| the hea|
|00000990| 64 65 72 20 6d 61 72 6b | 65 72 73 0a 58 61 72 65 |der mark|ers.Xare|
|000009a0| 20 63 6f 72 72 75 70 74 | 2e 29 0a 58 0a 58 53 75 | corrupt|.).X.XSu|
|000009b0| 62 73 74 61 6e 74 69 61 | 6c 20 69 6d 70 72 6f 76 |bstantia|l improv|
|000009c0| 65 6d 65 6e 74 73 20 69 | 6e 20 73 70 65 65 64 3b |ements i|n speed;|
|000009d0| 20 44 43 54 20 61 63 63 | 75 72 61 63 79 20 69 6d | DCT acc|uracy im|
|000009e0| 70 72 6f 76 65 64 20 74 | 6f 6f 2e 0a 58 0a 58 4e |proved t|oo..X.XN|
|000009f0| 75 6d 65 72 6f 75 73 20 | 6d 69 6e 6f 72 20 63 68 |umerous |minor ch|
|00000a00| 61 6e 67 65 73 20 74 6f | 20 69 6d 70 72 6f 76 65 |anges to| improve|
|00000a10| 20 70 6f 72 74 61 62 69 | 6c 69 74 79 2e 20 20 65 | portabi|lity. e|
|00000a20| 67 65 74 6f 70 74 2e 63 | 2c 20 77 68 69 63 68 20 |getopt.c|, which |
|00000a30| 77 61 73 20 62 79 20 66 | 61 72 0a 58 74 68 65 20 |was by f|ar.Xthe |
|00000a40| 77 6f 72 73 74 20 70 6f | 72 74 61 62 69 6c 69 74 |worst po|rtabilit|
|00000a50| 79 20 70 72 6f 62 6c 65 | 6d 2c 20 69 73 20 67 6f |y proble|m, is go|
|00000a60| 6e 65 20 61 6c 74 6f 67 | 65 74 68 65 72 2e 0a 58 |ne altog|ether..X|
|00000a70| 0a 58 41 20 66 65 77 20 | 62 75 67 66 69 78 65 73 |.XA few |bugfixes|
|00000a80| 2c 20 73 69 67 68 20 28 | 6d 6f 73 74 6c 79 20 61 |, sigh (|mostly a|
|00000a90| 66 66 65 63 74 69 6e 67 | 20 44 4f 53 20 69 6d 70 |ffecting| DOS imp|
|00000aa0| 6c 65 6d 65 6e 74 61 74 | 69 6f 6e 73 20 6f 6e 6c |lementat|ions onl|
|00000ab0| 79 29 2e 0a 58 42 75 67 | 66 69 78 3a 20 6f 6e 20 |y)..XBug|fix: on |
|00000ac0| 44 4f 53 20 6d 61 63 68 | 69 6e 65 73 2c 20 63 6a |DOS mach|ines, cj|
|00000ad0| 70 65 67 20 2d 6f 20 77 | 6f 75 6c 64 20 66 61 69 |peg -o w|ould fai|
|00000ae0| 6c 20 6f 6e 20 67 72 61 | 79 73 63 61 6c 65 20 69 |l on gra|yscale i|
|00000af0| 6e 70 75 74 20 66 69 6c | 65 73 2e 0a 58 42 75 67 |nput fil|es..XBug|
|00000b00| 66 69 78 3a 20 6f 6e 65 | 2d 70 61 73 73 20 71 75 |fix: one|-pass qu|
|00000b10| 61 6e 74 69 7a 61 74 69 | 6f 6e 20 74 6f 20 6d 6f |antizati|on to mo|
|00000b20| 72 65 20 74 68 61 6e 20 | 36 34 20 63 6f 6c 6f 72 |re than |64 color|
|00000b30| 20 6c 65 76 65 6c 73 20 | 77 6f 75 6c 64 20 66 61 | levels |would fa|
|00000b40| 69 6c 20 6f 6e 0a 58 31 | 36 2d 62 69 74 2d 69 6e |il on.X1|6-bit-in|
|00000b50| 74 20 6d 61 63 68 69 6e | 65 73 2e 20 20 54 68 69 |t machin|es. Thi|
|00000b60| 73 20 63 6f 75 6c 64 20 | 6f 6e 6c 79 20 68 61 70 |s could |only hap|
|00000b70| 70 65 6e 20 77 69 74 68 | 20 71 75 61 6e 74 69 7a |pen with| quantiz|
|00000b80| 65 64 20 67 72 61 79 73 | 63 61 6c 65 20 6f 75 74 |ed grays|cale out|
|00000b90| 70 75 74 2e 0a 58 0a 58 | 41 20 63 6f 75 70 6c 65 |put..X.X|A couple|
|00000ba0| 20 6f 66 20 63 68 61 6e | 67 65 73 20 61 66 66 65 | of chan|ges affe|
|00000bb0| 63 74 20 63 6f 64 65 20 | 74 68 61 74 20 63 61 6c |ct code |that cal|
|00000bc0| 6c 73 20 74 68 65 20 4a | 50 45 47 20 73 75 62 72 |ls the J|PEG subr|
|00000bd0| 6f 75 74 69 6e 65 20 6c | 69 62 72 61 72 79 3a 0a |outine l|ibrary:.|
|00000be0| 58 0a 58 31 2e 20 54 68 | 65 20 70 61 72 61 6d 65 |X.X1. Th|e parame|
|00000bf0| 74 65 72 20 73 74 72 75 | 63 74 20 74 61 67 20 6e |ter stru|ct tag n|
|00000c00| 61 6d 65 73 20 61 72 65 | 20 6e 6f 77 20 63 61 70 |ames are| now cap|
|00000c10| 69 74 61 6c 69 7a 65 64 | 20 28 43 6f 6d 70 72 65 |italized| (Compre|
|00000c20| 73 73 5f 69 6e 66 6f 5f | 73 74 72 75 63 74 2c 0a |ss_info_|struct,.|
|00000c30| 58 43 6f 6d 70 72 65 73 | 73 5f 6d 65 74 68 6f 64 |XCompres|s_method|
|00000c40| 73 5f 73 74 72 75 63 74 | 2c 20 44 65 63 6f 6d 70 |s_struct|, Decomp|
|00000c50| 72 65 73 73 5f 69 6e 66 | 6f 5f 73 74 72 75 63 74 |ress_inf|o_struct|
|00000c60| 2c 20 44 65 63 6f 6d 70 | 72 65 73 73 5f 6d 65 74 |, Decomp|ress_met|
|00000c70| 68 6f 64 73 5f 73 74 72 | 75 63 74 2c 0a 58 61 6e |hods_str|uct,.Xan|
|00000c80| 64 20 45 78 74 65 72 6e | 61 6c 5f 6d 65 74 68 6f |d Extern|al_metho|
|00000c90| 64 73 5f 73 74 72 75 63 | 74 29 2e 20 20 54 68 69 |ds_struc|t). Thi|
|00000ca0| 73 20 6d 61 6b 65 73 20 | 69 74 20 65 61 73 69 65 |s makes |it easie|
|00000cb0| 72 20 74 6f 20 6c 69 76 | 65 20 77 69 74 68 20 62 |r to liv|e with b|
|00000cc0| 72 61 69 6e 2d 64 61 6d | 61 67 65 64 0a 58 63 6f |rain-dam|aged.Xco|
|00000cd0| 6d 70 69 6c 65 72 73 20 | 77 69 74 68 20 73 68 6f |mpilers |with sho|
|00000ce0| 72 74 20 69 64 65 6e 74 | 69 66 69 65 72 20 6c 65 |rt ident|ifier le|
|00000cf0| 6e 67 74 68 73 2e 20 20 | 28 41 6c 6c 20 69 64 65 |ngths. |(All ide|
|00000d00| 6e 74 69 66 69 65 72 73 | 20 75 73 65 64 20 69 6e |ntifiers| used in|
|00000d10| 20 74 68 65 20 4a 50 45 | 47 0a 58 63 6f 64 65 20 | the JPE|G.Xcode |
|00000d20| 61 72 65 20 6e 6f 77 20 | 75 6e 69 71 75 65 20 77 |are now |unique w|
|00000d30| 69 74 68 69 6e 20 74 68 | 65 20 66 69 72 73 74 20 |ithin th|e first |
|00000d40| 31 36 20 63 68 61 72 61 | 63 74 65 72 73 2e 29 0a |16 chara|cters.).|
|00000d50| 58 0a 58 32 2e 20 49 66 | 20 79 6f 75 20 61 72 65 |X.X2. If| you are|
|00000d60| 20 6e 6f 74 20 63 61 6c | 6c 69 6e 67 20 6a 73 65 | not cal|ling jse|
|00000d70| 6c 65 72 72 6f 72 28 29 | 2c 20 79 6f 75 20 6e 65 |lerror()|, you ne|
|00000d80| 65 64 20 74 6f 20 69 6e | 69 74 69 61 6c 69 7a 65 |ed to in|itialize|
|00000d90| 20 74 68 72 65 65 20 6e | 65 77 20 66 69 65 6c 64 | three n|ew field|
|00000da0| 73 0a 58 69 6e 20 74 68 | 65 20 65 6d 65 74 68 6f |s.Xin th|e emetho|
|00000db0| 64 73 20 73 74 72 75 63 | 74 75 72 65 2c 20 74 79 |ds struc|ture, ty|
|00000dc0| 70 69 63 61 6c 6c 79 20 | 61 73 20 66 6f 6c 6c 6f |pically |as follo|
|00000dd0| 77 73 3a 0a 58 20 20 20 | 20 65 5f 6d 65 74 68 6f |ws:.X | e_metho|
|00000de0| 64 73 2e 6e 75 6d 5f 77 | 61 72 6e 69 6e 67 73 20 |ds.num_w|arnings |
|00000df0| 3d 20 30 3b 20 2f 2a 20 | 6e 6f 20 77 61 72 6e 69 |= 0; /* |no warni|
|00000e00| 6e 67 73 20 65 6d 69 74 | 74 65 64 20 79 65 74 20 |ngs emit|ted yet |
|00000e10| 2a 2f 0a 58 20 20 20 20 | 65 5f 6d 65 74 68 6f 64 |*/.X |e_method|
|00000e20| 73 2e 66 69 72 73 74 5f | 77 61 72 6e 69 6e 67 5f |s.first_|warning_|
|00000e30| 6c 65 76 65 6c 20 3d 20 | 30 3b 20 2f 2a 20 64 69 |level = |0; /* di|
|00000e40| 73 70 6c 61 79 20 66 69 | 72 73 74 20 63 6f 72 72 |splay fi|rst corr|
|00000e50| 75 70 74 2d 64 61 74 61 | 20 77 61 72 6e 69 6e 67 |upt-data| warning|
|00000e60| 20 2a 2f 0a 58 20 20 20 | 20 65 5f 6d 65 74 68 6f | */.X | e_metho|
|00000e70| 64 73 2e 6d 6f 72 65 5f | 77 61 72 6e 69 6e 67 5f |ds.more_|warning_|
|00000e80| 6c 65 76 65 6c 20 3d 20 | 33 3b 20 2f 2a 20 62 75 |level = |3; /* bu|
|00000e90| 74 20 73 75 70 70 72 65 | 73 73 20 61 64 64 69 74 |t suppre|ss addit|
|00000ea0| 69 6f 6e 61 6c 20 6f 6e | 65 73 20 2a 2f 0a 58 54 |ional on|es */.XT|
|00000eb0| 68 65 73 65 20 66 69 65 | 6c 64 73 20 63 6f 6e 74 |hese fie|lds cont|
|00000ec0| 72 6f 6c 20 68 61 6e 64 | 6c 69 6e 67 20 6f 66 20 |rol hand|ling of |
|00000ed0| 63 6f 72 72 75 70 74 2d | 64 61 74 61 20 77 61 72 |corrupt-|data war|
|00000ee0| 6e 69 6e 67 73 2e 0a 58 | 0a 58 0a 58 56 65 72 73 |nings..X|.X.XVers|
|00000ef0| 69 6f 6e 20 33 20 20 31 | 37 2d 4d 61 72 2d 39 32 |ion 3 1|7-Mar-92|
|00000f00| 0a 58 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.X------|--------|
|00000f10| 2d 2d 2d 2d 2d 2d 0a 58 | 0a 58 4d 65 6d 6f 72 79 |------.X|.XMemory|
|00000f20| 20 6d 61 6e 61 67 65 72 | 20 69 73 20 66 69 6e 61 | manager| is fina|
|00000f30| 6c 6c 79 20 63 61 70 61 | 62 6c 65 20 6f 66 20 73 |lly capa|ble of s|
|00000f40| 77 61 70 70 69 6e 67 20 | 74 6f 20 74 65 6d 70 20 |wapping |to temp |
|00000f50| 66 69 6c 65 73 2e 20 20 | 54 68 65 72 65 20 61 72 |files. |There ar|
|00000f60| 65 0a 58 73 65 70 61 72 | 61 74 65 20 76 65 72 73 |e.Xsepar|ate vers|
|00000f70| 69 6f 6e 73 20 6f 66 20 | 6a 6d 65 6d 73 79 73 2e |ions of |jmemsys.|
|00000f80| 63 20 66 6f 72 20 6e 6f | 20 74 65 6d 70 20 66 69 |c for no| temp fi|
|00000f90| 6c 65 73 20 28 73 61 6d | 65 20 62 65 68 61 76 69 |les (sam|e behavi|
|00000fa0| 6f 72 20 61 73 20 6f 6c | 64 65 72 0a 58 76 65 72 |or as ol|der.Xver|
|00000fb0| 73 69 6f 6e 73 29 2c 20 | 73 69 6d 70 6c 65 20 74 |sions), |simple t|
|00000fc0| 65 6d 70 20 66 69 6c 65 | 73 20 77 69 74 68 20 6f |emp file|s with o|
|00000fd0| 72 20 77 69 74 68 6f 75 | 74 20 74 6d 70 66 69 6c |r withou|t tmpfil|
|00000fe0| 65 28 29 2c 20 61 6e 64 | 20 61 20 44 4f 53 2d 73 |e(), and| a DOS-s|
|00000ff0| 70 65 63 69 66 69 63 0a | 58 76 65 72 73 69 6f 6e |pecific.|Xversion|
|00001000| 20 28 69 6e 63 6c 75 64 | 69 6e 67 20 73 70 65 63 | (includ|ing spec|
|00001010| 69 61 6c 20 63 6f 64 65 | 20 66 6f 72 20 45 4d 53 |ial code| for EMS|
|00001020| 20 61 6e 64 20 58 4d 53 | 29 2e 20 20 54 68 69 73 | and XMS|). This|
|00001030| 20 69 73 20 70 72 6f 62 | 61 62 6c 79 20 6d 75 63 | is prob|ably muc|
|00001040| 68 20 6d 6f 72 65 0a 58 | 73 79 73 74 65 6d 2d 64 |h more.X|system-d|
|00001050| 65 70 65 6e 64 65 6e 74 | 20 74 68 61 6e 20 61 6e |ependent| than an|
|00001060| 79 20 6f 66 20 74 68 65 | 20 6f 6c 64 65 72 20 63 |y of the| older c|
|00001070| 6f 64 65 3b 20 73 6f 6d | 65 20 62 75 67 73 20 6d |ode; som|e bugs m|
|00001080| 61 79 20 73 75 72 66 61 | 63 65 20 68 65 72 65 2e |ay surfa|ce here.|
|00001090| 0a 58 0a 58 48 6f 6f 6b | 73 20 61 64 64 65 64 20 |.X.XHook|s added |
|000010a0| 66 6f 72 20 75 73 65 72 | 20 69 6e 74 65 72 66 61 |for user| interfa|
|000010b0| 63 65 20 74 6f 20 69 6e | 73 74 61 6c 6c 20 70 72 |ce to in|stall pr|
|000010c0| 6f 67 72 65 73 73 20 6d | 6f 6e 69 74 6f 72 69 6e |ogress m|onitorin|
|000010d0| 67 20 72 6f 75 74 69 6e | 65 0a 58 28 70 65 72 63 |g routin|e.X(perc|
|000010e0| 65 6e 74 2d 64 6f 6e 65 | 20 62 61 72 2c 20 65 74 |ent-done| bar, et|
|000010f0| 63 29 2e 20 20 53 65 65 | 20 63 6f 6d 6d 65 6e 74 |c). See| comment|
|00001100| 73 20 77 69 74 68 20 64 | 75 6d 6d 79 20 70 72 6f |s with d|ummy pro|
|00001110| 67 72 65 73 73 5f 6d 6f | 6e 69 74 6f 72 0a 58 72 |gress_mo|nitor.Xr|
|00001120| 6f 75 74 69 6e 65 73 20 | 69 6e 20 6a 63 64 65 66 |outines |in jcdef|
|00001130| 6c 74 73 2e 63 2c 20 6a | 64 64 65 66 6c 74 73 2e |lts.c, j|ddeflts.|
|00001140| 63 2e 0a 58 0a 58 54 77 | 6f 2d 70 61 73 73 20 63 |c..X.XTw|o-pass c|
|00001150| 6f 6c 6f 72 20 71 75 61 | 6e 74 69 7a 61 74 69 6f |olor qua|ntizatio|
|00001160| 6e 20 28 66 69 6e 61 6c | 6c 79 21 29 2e 20 20 54 |n (final|ly!). T|
|00001170| 68 69 73 20 69 73 20 6e | 6f 77 20 74 68 65 20 64 |his is n|ow the d|
|00001180| 65 66 61 75 6c 74 20 6d | 65 74 68 6f 64 20 77 68 |efault m|ethod wh|
|00001190| 65 6e 0a 58 71 75 61 6e | 74 69 7a 69 6e 67 3b 20 |en.Xquan|tizing; |
|000011a0| 73 61 79 20 27 2d 31 27 | 20 74 6f 20 64 6a 70 65 |say '-1'| to djpe|
|000011b0| 67 20 66 6f 72 20 71 75 | 69 63 6b 2d 61 6e 64 2d |g for qu|ick-and-|
|000011c0| 75 67 6c 79 20 31 2d 70 | 61 73 73 20 6d 65 74 68 |ugly 1-p|ass meth|
|000011d0| 6f 64 2e 20 20 54 68 65 | 72 65 20 69 73 0a 58 61 |od. The|re is.Xa|
|000011e0| 20 74 65 73 74 20 66 69 | 6c 65 20 66 6f 72 20 63 | test fi|le for c|
|000011f0| 68 65 63 6b 69 6e 67 20 | 32 2d 70 61 73 73 20 71 |hecking |2-pass q|
|00001200| 75 61 6e 74 69 7a 61 74 | 69 6f 6e 20 61 6e 64 20 |uantizat|ion and |
|00001210| 47 49 46 20 6f 75 74 70 | 75 74 2e 0a 58 0a 58 46 |GIF outp|ut..X.XF|
|00001220| 69 78 65 64 20 62 75 67 | 20 69 6e 20 6a 63 6f 70 |ixed bug| in jcop|
|00001230| 79 5f 62 6c 6f 63 6b 5f | 72 6f 77 20 74 68 61 74 |y_block_|row that|
|00001240| 20 62 72 6f 6b 65 20 63 | 6a 70 65 67 20 2d 6f 20 | broke c|jpeg -o |
|00001250| 6f 70 74 69 6f 6e 20 61 | 6e 64 20 64 6a 70 65 67 |option a|nd djpeg|
|00001260| 20 2d 62 20 6f 70 74 69 | 6f 6e 0a 58 6f 6e 20 4d | -b opti|on.Xon M|
|00001270| 53 44 4f 53 20 6d 61 63 | 68 69 6e 65 73 2e 0a 58 |SDOS mac|hines..X|
|00001280| 0a 58 4d 69 73 63 65 6c | 6c 61 6e 65 6f 75 73 20 |.XMiscel|laneous |
|00001290| 73 6d 61 6c 6c 20 73 70 | 65 65 64 75 70 73 3b 20 |small sp|eedups; |
|000012a0| 6e 6f 74 61 62 6c 79 2c | 20 44 43 54 20 63 6f 6d |notably,| DCT com|
|000012b0| 70 75 74 61 74 69 6f 6e | 20 72 65 61 72 72 61 6e |putation| rearran|
|000012c0| 67 65 64 20 73 6f 20 74 | 68 61 74 0a 58 47 43 43 |ged so t|hat.XGCC|
|000012d0| 20 22 69 6e 6c 69 6e 65 | 22 20 66 65 61 74 75 72 | "inline|" featur|
|000012e0| 65 20 69 73 20 6e 6f 20 | 6c 6f 6e 67 65 72 20 6e |e is no |longer n|
|000012f0| 65 65 64 65 64 20 66 6f | 72 20 67 6f 6f 64 20 63 |eeded fo|r good c|
|00001300| 6f 64 65 20 71 75 61 6c | 69 74 79 2e 0a 58 0a 58 |ode qual|ity..X.X|
|00001310| 46 69 6c 65 20 63 6f 6e | 66 69 67 2e 63 20 72 65 |File con|fig.c re|
|00001320| 6e 61 6d 65 64 20 63 6b | 63 6f 6e 66 69 67 2e 63 |named ck|config.c|
|00001330| 20 74 6f 20 61 76 6f 69 | 64 20 6e 61 6d 65 20 63 | to avoi|d name c|
|00001340| 6f 6e 66 6c 69 63 74 20 | 77 69 74 68 20 2f 65 74 |onflict |with /et|
|00001350| 63 2f 63 6f 6e 66 69 67 | 0a 58 6f 6e 20 55 6e 69 |c/config|.Xon Uni|
|00001360| 78 20 73 79 73 74 65 6d | 73 2e 0a 58 0a 58 41 64 |x system|s..X.XAd|
|00001370| 64 65 64 20 65 78 61 6d | 70 6c 65 2e 63 20 74 6f |ded exam|ple.c to|
|00001380| 20 64 6f 63 75 6d 65 6e | 74 20 75 73 61 67 65 20 | documen|t usage |
|00001390| 6f 66 20 4a 50 45 47 20 | 73 75 62 72 6f 75 74 69 |of JPEG |subrouti|
|000013a0| 6e 65 73 20 62 65 74 74 | 65 72 2e 0a 58 0a 58 4d |nes bett|er..X.XM|
|000013b0| 65 6d 6f 72 79 20 6d 61 | 6e 61 67 65 72 20 6e 6f |emory ma|nager no|
|000013c0| 77 20 6b 6e 6f 77 73 20 | 68 6f 77 20 74 6f 20 72 |w knows |how to r|
|000013d0| 65 6c 65 61 73 65 20 61 | 6c 6c 20 73 74 6f 72 61 |elease a|ll stora|
|000013e0| 67 65 20 64 75 72 69 6e | 67 20 65 72 72 6f 72 20 |ge durin|g error |
|000013f0| 65 78 69 74 20 2d 2d 2d | 0a 58 61 76 6f 69 64 73 |exit ---|.Xavoids|
|00001400| 20 6d 65 6d 6f 72 79 20 | 6c 65 61 6b 20 77 68 65 | memory |leak whe|
|00001410| 6e 20 75 73 69 6e 67 20 | 4a 50 45 47 20 61 73 20 |n using |JPEG as |
|00001420| 73 75 62 72 6f 75 74 69 | 6e 65 73 2e 20 20 54 68 |subrouti|nes. Th|
|00001430| 69 73 20 69 6d 70 6c 69 | 65 73 20 61 20 63 6f 75 |is impli|es a cou|
|00001440| 70 6c 65 0a 58 73 6d 61 | 6c 6c 20 63 68 61 6e 67 |ple.Xsma|ll chang|
|00001450| 65 73 20 74 6f 20 74 68 | 65 20 73 75 62 72 6f 75 |es to th|e subrou|
|00001460| 74 69 6e 65 20 69 6e 74 | 65 72 66 61 63 65 3a 20 |tine int|erface: |
|00001470| 74 68 65 20 6f 6c 64 20 | 66 72 65 65 5f 64 65 66 |the old |free_def|
|00001480| 61 75 6c 74 73 20 73 75 | 62 72 6f 75 74 69 6e 65 |aults su|broutine|
|00001490| 73 0a 58 61 72 65 20 6e | 6f 20 6c 6f 6e 67 65 72 |s.Xare n|o longer|
|000014a0| 20 6e 65 65 64 65 64 2c | 20 62 75 74 20 69 66 20 | needed,| but if |
|000014b0| 79 6f 75 20 68 61 76 65 | 20 61 20 72 65 70 6c 61 |you have| a repla|
|000014c0| 63 65 6d 65 6e 74 20 65 | 72 72 6f 72 5f 65 78 69 |cement e|rror_exi|
|000014d0| 74 20 6d 65 74 68 6f 64 | 20 74 68 65 6e 20 69 74 |t method| then it|
|000014e0| 0a 58 6d 75 73 74 20 63 | 61 6c 6c 20 74 68 65 20 |.Xmust c|all the |
|000014f0| 6e 65 77 20 66 72 65 65 | 5f 61 6c 6c 20 6d 65 74 |new free|_all met|
|00001500| 68 6f 64 2e 20 20 41 6c | 73 6f 2c 20 6a 73 65 6c |hod. Al|so, jsel|
|00001510| 76 69 72 74 6d 65 6d 20 | 72 65 6e 61 6d 65 64 20 |virtmem |renamed |
|00001520| 74 6f 20 6a 73 65 6c 6d | 65 6d 6d 67 72 2e 0a 58 |to jselm|emmgr..X|
|00001530| 0a 58 43 6f 64 65 20 66 | 6f 72 20 72 65 61 64 69 |.XCode f|or readi|
|00001540| 6e 67 20 54 61 72 67 61 | 20 66 69 6c 65 73 20 77 |ng Targa| files w|
|00001550| 69 74 68 20 33 32 2d 62 | 69 74 20 70 69 78 65 6c |ith 32-b|it pixel|
|00001560| 73 20 77 61 73 20 69 6e | 63 6f 72 72 65 63 74 2e |s was in|correct.|
|00001570| 0a 58 0a 58 43 6f 6c 6f | 72 73 70 61 63 65 20 63 |.X.XColo|rspace c|
|00001580| 6f 6e 76 65 72 73 69 6f | 6e 20 73 6c 69 67 68 74 |onversio|n slight|
|00001590| 6c 79 20 66 61 73 74 65 | 72 20 61 6e 64 20 6d 6f |ly faste|r and mo|
|000015a0| 72 65 20 61 63 63 75 72 | 61 74 65 3b 20 62 65 63 |re accur|ate; bec|
|000015b0| 61 75 73 65 20 6f 66 0a | 58 74 68 69 73 2c 20 6f |ause of.|Xthis, o|
|000015c0| 6c 64 20 22 74 65 73 74 | 22 20 66 69 6c 65 73 20 |ld "test|" files |
|000015d0| 77 69 6c 6c 20 6e 6f 20 | 6c 6f 6e 67 65 72 20 6d |will no |longer m|
|000015e0| 61 74 63 68 20 62 69 74 | 2d 66 6f 72 2d 62 69 74 |atch bit|-for-bit|
|000015f0| 2e 0a 58 0a 58 0a 58 56 | 65 72 73 69 6f 6e 20 32 |..X.X.XV|ersion 2|
|00001600| 20 20 31 33 2d 44 65 63 | 2d 39 31 0a 58 2d 2d 2d | 13-Dec|-91.X---|
|00001610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001620| 2d 0a 58 0a 58 44 6f 63 | 75 6d 65 6e 74 61 74 69 |-.X.XDoc|umentati|
|00001630| 6f 6e 20 69 6d 70 72 6f | 76 65 64 20 61 20 6c 69 |on impro|ved a li|
|00001640| 74 74 6c 65 20 2d 2d 2d | 20 74 68 65 72 65 20 61 |ttle ---| there a|
|00001650| 72 65 20 6d 61 6e 20 70 | 61 67 65 73 20 6e 6f 77 |re man p|ages now|
|00001660| 2e 0a 58 49 6e 73 74 61 | 6c 6c 61 74 69 6f 6e 20 |..XInsta|llation |
|00001670| 69 6e 73 74 72 75 63 74 | 69 6f 6e 73 20 6d 6f 76 |instruct|ions mov|
|00001680| 65 64 20 66 72 6f 6d 20 | 52 45 41 44 4d 45 20 74 |ed from |README t|
|00001690| 6f 20 61 20 73 65 70 61 | 72 61 74 65 20 66 69 6c |o a sepa|rate fil|
|000016a0| 65 20 53 45 54 55 50 2e | 0a 58 0a 58 4e 65 77 20 |e SETUP.|.X.XNew |
|000016b0| 70 72 6f 67 72 61 6d 20 | 63 6f 6e 66 69 67 2e 63 |program |config.c|
|000016c0| 20 69 73 20 70 72 6f 76 | 69 64 65 64 20 74 6f 20 | is prov|ided to |
|000016d0| 68 65 6c 70 20 79 6f 75 | 20 67 65 74 20 74 68 65 |help you| get the|
|000016e0| 20 63 6f 6e 66 69 67 75 | 72 61 74 69 6f 6e 20 6f | configu|ration o|
|000016f0| 70 74 69 6f 6e 73 0a 58 | 72 69 67 68 74 2e 20 20 |ptions.X|right. |
|00001700| 54 68 69 73 20 73 68 6f | 75 6c 64 20 6d 61 6b 65 |This sho|uld make|
|00001710| 20 69 6e 73 74 61 6c 6c | 61 74 69 6f 6e 20 61 20 | install|ation a |
|00001720| 6c 6f 74 20 6d 6f 72 65 | 20 66 6f 6f 6c 70 72 6f |lot more| foolpro|
|00001730| 6f 66 2e 0a 58 0a 58 53 | 65 6e 73 65 20 6f 66 20 |of..X.XS|ense of |
|00001740| 64 6a 70 65 67 20 2d 44 | 20 73 77 69 74 63 68 20 |djpeg -D| switch |
|00001750| 72 65 76 65 72 73 65 64 | 3a 20 64 69 74 68 65 72 |reversed|: dither|
|00001760| 69 6e 67 20 69 73 20 6e | 6f 77 20 4f 4e 20 62 79 |ing is n|ow ON by|
|00001770| 20 64 65 66 61 75 6c 74 | 2e 0a 58 0a 58 52 4c 45 | default|..X.XRLE|
|00001780| 20 69 6d 61 67 65 20 66 | 69 6c 65 20 73 75 70 70 | image f|ile supp|
|00001790| 6f 72 74 20 61 64 64 65 | 64 20 28 74 68 61 6e 6b |ort adde|d (thank|
|000017a0| 73 20 74 6f 20 4d 69 6b | 65 20 4c 69 6a 65 77 73 |s to Mik|e Lijews|
|000017b0| 6b 69 29 2e 0a 58 0a 58 | 54 61 72 67 61 20 69 6d |ki)..X.X|Targa im|
|000017c0| 61 67 65 20 66 69 6c 65 | 20 73 75 70 70 6f 72 74 |age file| support|
|000017d0| 20 61 64 64 65 64 20 28 | 74 68 61 6e 6b 73 20 74 | added (|thanks t|
|000017e0| 6f 20 4c 65 65 20 43 72 | 6f 63 6b 65 72 29 2e 0a |o Lee Cr|ocker)..|
|000017f0| 58 0a 58 50 50 4d 20 69 | 6e 70 75 74 20 6e 6f 77 |X.XPPM i|nput now|
|00001800| 20 61 63 63 65 70 74 73 | 20 61 6c 6c 20 50 50 4d | accepts| all PPM|
|00001810| 20 61 6e 64 20 50 47 4d | 20 66 69 6c 65 73 2e 0a | and PGM| files..|
|00001820| 58 0a 58 42 75 67 20 66 | 69 78 3a 20 6f 6e 20 6d |X.XBug f|ix: on m|
|00001830| 61 63 68 69 6e 65 73 20 | 77 68 65 72 65 20 27 69 |achines |where 'i|
|00001840| 6e 74 27 20 69 73 20 31 | 36 20 62 69 74 73 2c 20 |nt' is 1|6 bits, |
|00001850| 68 69 67 68 2d 51 2d 73 | 65 74 74 69 6e 67 20 4a |high-Q-s|etting J|
|00001860| 50 45 47 20 66 69 6c 65 | 73 0a 58 77 65 72 65 20 |PEG file|s.Xwere |
|00001870| 6e 6f 74 20 64 65 63 6f | 64 65 64 20 63 6f 72 72 |not deco|ded corr|
|00001880| 65 63 74 6c 79 2e 0a 58 | 0a 58 4e 75 6d 65 72 6f |ectly..X|.XNumero|
|00001890| 75 73 20 63 68 61 6e 67 | 65 73 20 74 6f 20 69 6d |us chang|es to im|
|000018a0| 70 72 6f 76 65 20 70 6f | 72 74 61 62 69 6c 69 74 |prove po|rtabilit|
|000018b0| 79 2e 20 20 54 68 65 72 | 65 20 73 68 6f 75 6c 64 |y. Ther|e should|
|000018c0| 20 62 65 20 66 65 77 20 | 6f 72 20 6e 6f 20 63 6f | be few |or no co|
|000018d0| 6d 70 69 6c 65 72 0a 58 | 77 61 72 6e 69 6e 67 73 |mpiler.X|warnings|
|000018e0| 20 6e 6f 77 2e 0a 58 0a | 58 4d 61 6b 65 66 69 6c | now..X.|XMakefil|
|000018f0| 65 73 20 63 6c 65 61 6e | 65 64 20 75 70 3b 20 64 |es clean|ed up; d|
|00001900| 65 66 61 75 6c 74 73 20 | 6e 6f 77 20 61 70 70 72 |efaults |now appr|
|00001910| 6f 70 72 69 61 74 65 20 | 66 6f 72 20 70 72 6f 64 |opriate |for prod|
|00001920| 75 63 74 69 6f 6e 20 75 | 73 65 20 72 61 74 68 65 |uction u|se rathe|
|00001930| 72 20 74 68 61 6e 0a 58 | 64 65 62 75 67 67 69 6e |r than.X|debuggin|
|00001940| 67 2e 0a 58 0a 58 53 75 | 62 72 6f 75 74 69 6e 65 |g..X.XSu|broutine|
|00001950| 20 69 6e 74 65 72 66 61 | 63 65 20 63 6c 65 61 6e | interfa|ce clean|
|00001960| 65 64 20 75 70 2e 20 20 | 49 66 20 79 6f 75 20 77 |ed up. |If you w|
|00001970| 72 6f 74 65 20 63 6f 64 | 65 20 62 61 73 65 64 20 |rote cod|e based |
|00001980| 6f 6e 20 76 65 72 73 69 | 6f 6e 20 31 27 73 0a 58 |on versi|on 1's.X|
|00001990| 6a 63 6d 61 69 6e 2f 6a | 64 6d 61 69 6e 2c 20 79 |jcmain/j|dmain, y|
|000019a0| 6f 75 27 6c 6c 20 6e 65 | 65 64 20 74 6f 20 63 68 |ou'll ne|ed to ch|
|000019b0| 61 6e 67 65 20 69 74 2c | 20 62 75 74 20 69 74 20 |ange it,| but it |
|000019c0| 73 68 6f 75 6c 64 20 67 | 65 74 20 61 20 6c 69 74 |should g|et a lit|
|000019d0| 74 6c 65 20 73 68 6f 72 | 74 65 72 0a 58 61 6e 64 |tle shor|ter.Xand|
|000019e0| 20 73 69 6d 70 6c 65 72 | 2e 0a 58 0a 58 0a 58 56 | simpler|..X.X.XV|
|000019f0| 65 72 73 69 6f 6e 20 31 | 20 20 20 37 2d 4f 63 74 |ersion 1| 7-Oct|
|00001a00| 2d 39 31 0a 58 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |-91.X---|--------|
|00001a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0a 58 0a 58 49 6e 69 |--------|-.X.XIni|
|00001a20| 74 69 61 6c 20 70 75 62 | 6c 69 63 20 72 65 6c 65 |tial pub|lic rele|
|00001a30| 61 73 65 2e 0a 45 4e 44 | 5f 4f 46 5f 46 49 4c 45 |ase..END|_OF_FILE|
|00001a40| 0a 20 20 69 66 20 74 65 | 73 74 20 35 30 30 32 20 |. if te|st 5002 |
|00001a50| 2d 6e 65 20 60 77 63 20 | 2d 63 20 3c 27 43 48 41 |-ne `wc |-c <'CHA|
|00001a60| 4e 47 45 4c 4f 47 27 60 | 3b 20 74 68 65 6e 0a 20 |NGELOG'`|; then. |
|00001a70| 20 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 5c 22 | echo |shar: \"|
|00001a80| 27 43 48 41 4e 47 45 4c | 4f 47 27 5c 22 20 75 6e |'CHANGEL|OG'\" un|
|00001a90| 70 61 63 6b 65 64 20 77 | 69 74 68 20 77 72 6f 6e |packed w|ith wron|
|00001aa0| 67 20 73 69 7a 65 21 0a | 20 20 66 69 0a 20 20 23 |g size!.| fi. #|
|00001ab0| 20 65 6e 64 20 6f 66 20 | 27 43 48 41 4e 47 45 4c | end of |'CHANGEL|
|00001ac0| 4f 47 27 0a 66 69 0a 69 | 66 20 74 65 73 74 20 2d |OG'.fi.i|f test -|
|00001ad0| 66 20 27 64 6a 70 65 67 | 2e 31 27 20 2d 61 20 22 |f 'djpeg|.1' -a "|
|00001ae0| 24 7b 31 7d 22 20 21 3d | 20 22 2d 63 22 20 3b 20 |${1}" !=| "-c" ; |
|00001af0| 74 68 65 6e 20 0a 20 20 | 65 63 68 6f 20 73 68 61 |then . |echo sha|
|00001b00| 72 3a 20 57 69 6c 6c 20 | 6e 6f 74 20 63 6c 6f 62 |r: Will |not clob|
|00001b10| 62 65 72 20 65 78 69 73 | 74 69 6e 67 20 66 69 6c |ber exis|ting fil|
|00001b20| 65 20 5c 22 27 64 6a 70 | 65 67 2e 31 27 5c 22 0a |e \"'djp|eg.1'\".|
|00001b30| 65 6c 73 65 0a 20 20 65 | 63 68 6f 20 73 68 61 72 |else. e|cho shar|
|00001b40| 3a 20 45 78 74 72 61 63 | 74 69 6e 67 20 5c 22 27 |: Extrac|ting \"'|
|00001b50| 64 6a 70 65 67 2e 31 27 | 5c 22 20 5c 28 34 35 32 |djpeg.1'|\" \(452|
|00001b60| 30 20 63 68 61 72 61 63 | 74 65 72 73 5c 29 0a 20 |0 charac|ters\). |
|00001b70| 20 73 65 64 20 22 73 2f | 5e 58 2f 2f 22 20 3e 27 | sed "s/|^X//" >'|
|00001b80| 64 6a 70 65 67 2e 31 27 | 20 3c 3c 27 45 4e 44 5f |djpeg.1'| <<'END_|
|00001b90| 4f 46 5f 46 49 4c 45 27 | 0a 58 2e 54 48 20 44 4a |OF_FILE'|.X.TH DJ|
|00001ba0| 50 45 47 20 31 20 22 32 | 20 41 75 67 75 73 74 20 |PEG 1 "2| August |
|00001bb0| 31 39 39 32 22 0a 58 2e | 53 48 20 4e 41 4d 45 0a |1992".X.|SH NAME.|
|00001bc0| 58 64 6a 70 65 67 20 5c | 2d 20 64 65 63 6f 6d 70 |Xdjpeg \|- decomp|
|00001bd0| 72 65 73 73 20 61 20 4a | 50 45 47 20 66 69 6c 65 |ress a J|PEG file|
|00001be0| 20 74 6f 20 61 6e 20 69 | 6d 61 67 65 20 66 69 6c | to an i|mage fil|
|00001bf0| 65 0a 58 2e 53 48 20 53 | 59 4e 4f 50 53 49 53 0a |e.X.SH S|YNOPSIS.|
|00001c00| 58 2e 42 20 64 6a 70 65 | 67 0a 58 5b 0a 58 2e 42 |X.B djpe|g.X[.X.B|
|00001c10| 49 20 5c 2d 63 6f 6c 6f | 72 73 20 22 20 4e 22 0a |I \-colo|rs " N".|
|00001c20| 58 5d 0a 58 5b 0a 58 2e | 42 20 5c 2d 67 69 66 0a |X].X[.X.|B \-gif.|
|00001c30| 58 5d 0a 58 5b 0a 58 2e | 42 20 5c 2d 70 6e 6d 0a |X].X[.X.|B \-pnm.|
|00001c40| 58 5d 0a 58 5b 0a 58 2e | 42 20 5c 2d 72 6c 65 0a |X].X[.X.|B \-rle.|
|00001c50| 58 5d 0a 58 5b 0a 58 2e | 42 20 5c 2d 74 61 72 67 |X].X[.X.|B \-targ|
|00001c60| 61 0a 58 5d 0a 58 5b 0a | 58 2e 42 20 5c 2d 62 6c |a.X].X[.|X.B \-bl|
|00001c70| 6f 63 6b 73 6d 6f 6f 74 | 68 0a 58 5d 0a 58 5b 0a |ocksmoot|h.X].X[.|
|00001c80| 58 2e 42 20 5c 2d 67 72 | 61 79 73 63 61 6c 65 0a |X.B \-gr|ayscale.|
|00001c90| 58 5d 0a 58 5b 0a 58 2e | 42 49 20 5c 2d 6d 61 78 |X].X[.X.|BI \-max|
|00001ca0| 6d 65 6d 6f 72 79 20 22 | 20 4e 22 0a 58 5d 0a 58 |memory "| N".X].X|
|00001cb0| 5b 0a 58 2e 42 20 5c 2d | 6e 6f 64 69 74 68 65 72 |[.X.B \-|nodither|
|00001cc0| 0a 58 5d 0a 58 5b 0a 58 | 2e 42 20 5c 2d 6f 6e 65 |.X].X[.X|.B \-one|
|00001cd0| 70 61 73 73 0a 58 5d 0a | 58 5b 0a 58 2e 42 20 5c |pass.X].|X[.X.B \|
|00001ce0| 2d 76 65 72 62 6f 73 65 | 0a 58 5d 0a 58 5b 0a 58 |-verbose|.X].X[.X|
|00001cf0| 2e 42 20 5c 2d 64 65 62 | 75 67 0a 58 5d 0a 58 5b |.B \-deb|ug.X].X[|
|00001d00| 0a 58 2e 49 20 66 69 6c | 65 6e 61 6d 65 0a 58 5d |.X.I fil|ename.X]|
|00001d10| 0a 58 2e 4c 50 0a 58 2e | 53 48 20 44 45 53 43 52 |.X.LP.X.|SH DESCR|
|00001d20| 49 50 54 49 4f 4e 0a 58 | 2e 4c 50 0a 58 2e 42 20 |IPTION.X|.LP.X.B |
|00001d30| 64 6a 70 65 67 0a 58 64 | 65 63 6f 6d 70 72 65 73 |djpeg.Xd|ecompres|
|00001d40| 73 65 73 20 74 68 65 20 | 6e 61 6d 65 64 20 4a 50 |ses the |named JP|
|00001d50| 45 47 20 66 69 6c 65 2c | 20 6f 72 20 74 68 65 20 |EG file,| or the |
|00001d60| 73 74 61 6e 64 61 72 64 | 20 69 6e 70 75 74 20 69 |standard| input i|
|00001d70| 66 20 6e 6f 20 66 69 6c | 65 20 69 73 20 6e 61 6d |f no fil|e is nam|
|00001d80| 65 64 2c 0a 58 61 6e 64 | 20 70 72 6f 64 75 63 65 |ed,.Xand| produce|
|00001d90| 73 20 61 6e 20 69 6d 61 | 67 65 20 66 69 6c 65 20 |s an ima|ge file |
|00001da0| 6f 6e 20 74 68 65 20 73 | 74 61 6e 64 61 72 64 20 |on the s|tandard |
|00001db0| 6f 75 74 70 75 74 2e 20 | 20 50 42 4d 50 4c 55 53 |output. | PBMPLUS|
|00001dc0| 20 28 50 50 4d 2f 50 47 | 4d 29 2c 20 47 49 46 2c | (PPM/PG|M), GIF,|
|00001dd0| 0a 58 54 61 72 67 61 2c | 20 6f 72 20 52 4c 45 20 |.XTarga,| or RLE |
|00001de0| 28 55 74 61 68 20 52 61 | 73 74 65 72 20 54 6f 6f |(Utah Ra|ster Too|
|00001df0| 6c 6b 69 74 29 20 6f 75 | 74 70 75 74 20 66 6f 72 |lkit) ou|tput for|
|00001e00| 6d 61 74 20 63 61 6e 20 | 62 65 20 73 65 6c 65 63 |mat can |be selec|
|00001e10| 74 65 64 2e 20 20 28 52 | 4c 45 20 69 73 0a 58 73 |ted. (R|LE is.Xs|
|00001e20| 75 70 70 6f 72 74 65 64 | 20 6f 6e 6c 79 20 69 66 |upported| only if|
|00001e30| 20 74 68 65 20 55 52 54 | 20 6c 69 62 72 61 72 79 | the URT| library|
|00001e40| 20 69 73 20 61 76 61 69 | 6c 61 62 6c 65 2e 29 0a | is avai|lable.).|
|00001e50| 58 2e 53 48 20 4f 50 54 | 49 4f 4e 53 0a 58 41 6c |X.SH OPT|IONS.XAl|
|00001e60| 6c 20 73 77 69 74 63 68 | 20 6e 61 6d 65 73 20 6d |l switch| names m|
|00001e70| 61 79 20 62 65 20 61 62 | 62 72 65 76 69 61 74 65 |ay be ab|breviate|
|00001e80| 64 3b 20 66 6f 72 20 65 | 78 61 6d 70 6c 65 2c 0a |d; for e|xample,.|
|00001e90| 58 2e 42 20 5c 2d 67 72 | 61 79 73 63 61 6c 65 0a |X.B \-gr|ayscale.|
|00001ea0| 58 6d 61 79 20 62 65 20 | 77 72 69 74 74 65 6e 0a |Xmay be |written.|
|00001eb0| 58 2e 42 20 5c 2d 67 72 | 61 79 0a 58 6f 72 0a 58 |X.B \-gr|ay.Xor.X|
|00001ec0| 2e 42 52 20 5c 2d 67 72 | 20 2e 0a 58 4d 6f 73 74 |.BR \-gr| ..XMost|
|00001ed0| 20 6f 66 20 74 68 65 20 | 22 62 61 73 69 63 22 20 | of the |"basic" |
|00001ee0| 73 77 69 74 63 68 65 73 | 20 63 61 6e 20 62 65 20 |switches| can be |
|00001ef0| 61 62 62 72 65 76 69 61 | 74 65 64 20 74 6f 20 61 |abbrevia|ted to a|
|00001f00| 73 20 6c 69 74 74 6c 65 | 20 61 73 20 6f 6e 65 20 |s little| as one |
|00001f10| 6c 65 74 74 65 72 2e 0a | 58 55 70 70 65 72 20 61 |letter..|XUpper a|
|00001f20| 6e 64 20 6c 6f 77 65 72 | 20 63 61 73 65 20 61 72 |nd lower| case ar|
|00001f30| 65 20 65 71 75 69 76 61 | 6c 65 6e 74 20 28 74 68 |e equiva|lent (th|
|00001f40| 75 73 0a 58 2e 42 20 5c | 2d 47 49 46 0a 58 69 73 |us.X.B \|-GIF.Xis|
|00001f50| 20 74 68 65 20 73 61 6d | 65 20 61 73 0a 58 2e 42 | the sam|e as.X.B|
|00001f60| 52 20 5c 2d 67 69 66 20 | 29 2e 0a 58 42 72 69 74 |R \-gif |)..XBrit|
|00001f70| 69 73 68 20 73 70 65 6c | 6c 69 6e 67 73 20 61 72 |ish spel|lings ar|
|00001f80| 65 20 61 6c 73 6f 20 61 | 63 63 65 70 74 65 64 20 |e also a|ccepted |
|00001f90| 28 65 2e 67 2e 2c 0a 58 | 2e 42 52 20 5c 2d 67 72 |(e.g.,.X|.BR \-gr|
|00001fa0| 65 79 73 63 61 6c 65 20 | 29 2c 0a 58 74 68 6f 75 |eyscale |),.Xthou|
|00001fb0| 67 68 20 66 6f 72 20 62 | 72 65 76 69 74 79 20 74 |gh for b|revity t|
|00001fc0| 68 65 73 65 20 61 72 65 | 20 6e 6f 74 20 6d 65 6e |hese are| not men|
|00001fd0| 74 69 6f 6e 65 64 20 62 | 65 6c 6f 77 2e 0a 58 2e |tioned b|elow..X.|
|00001fe0| 50 50 0a 58 54 68 65 20 | 62 61 73 69 63 20 73 77 |PP.XThe |basic sw|
|00001ff0| 69 74 63 68 65 73 20 61 | 72 65 3a 0a 58 2e 54 50 |itches a|re:.X.TP|
|00002000| 0a 58 2e 42 49 20 5c 2d | 63 6f 6c 6f 72 73 20 22 |.X.BI \-|colors "|
|00002010| 20 4e 22 0a 58 52 65 64 | 75 63 65 20 69 6d 61 67 | N".XRed|uce imag|
|00002020| 65 20 74 6f 20 61 74 20 | 6d 6f 73 74 20 4e 20 63 |e to at |most N c|
|00002030| 6f 6c 6f 72 73 2e 20 20 | 54 68 69 73 20 72 65 64 |olors. |This red|
|00002040| 75 63 65 73 20 74 68 65 | 20 6e 75 6d 62 65 72 20 |uces the| number |
|00002050| 6f 66 20 63 6f 6c 6f 72 | 73 20 75 73 65 64 20 69 |of color|s used i|
|00002060| 6e 0a 58 74 68 65 20 6f | 75 74 70 75 74 20 69 6d |n.Xthe o|utput im|
|00002070| 61 67 65 2c 20 73 6f 20 | 74 68 61 74 20 69 74 20 |age, so |that it |
|00002080| 63 61 6e 20 62 65 20 64 | 69 73 70 6c 61 79 65 64 |can be d|isplayed|
|00002090| 20 6f 6e 20 61 20 63 6f | 6c 6f 72 6d 61 70 70 65 | on a co|lormappe|
|000020a0| 64 20 64 69 73 70 6c 61 | 79 20 6f 72 0a 58 73 74 |d displa|y or.Xst|
|000020b0| 6f 72 65 64 20 69 6e 20 | 61 20 63 6f 6c 6f 72 6d |ored in |a colorm|
|000020c0| 61 70 70 65 64 20 66 69 | 6c 65 20 66 6f 72 6d 61 |apped fi|le forma|
|000020d0| 74 2e 20 20 46 6f 72 20 | 65 78 61 6d 70 6c 65 2c |t. For |example,|
|000020e0| 20 69 66 20 79 6f 75 20 | 68 61 76 65 20 61 6e 20 | if you |have an |
|000020f0| 38 2d 62 69 74 0a 58 64 | 69 73 70 6c 61 79 2c 20 |8-bit.Xd|isplay, |
|00002100| 79 6f 75 27 64 20 6e 65 | 65 64 20 74 6f 20 72 65 |you'd ne|ed to re|
|00002110| 64 75 63 65 20 74 6f 20 | 32 35 36 20 6f 72 20 66 |duce to |256 or f|
|00002120| 65 77 65 72 20 63 6f 6c | 6f 72 73 2e 0a 58 2e 54 |ewer col|ors..X.T|
|00002130| 50 0a 58 2e 42 49 20 5c | 2d 71 75 61 6e 74 69 7a |P.X.BI \|-quantiz|
|00002140| 65 20 22 20 4e 22 0a 58 | 53 61 6d 65 20 61 73 0a |e " N".X|Same as.|
|00002150| 58 2e 42 52 20 5c 2d 63 | 6f 6c 6f 72 73 20 2e 0a |X.BR \-c|olors ..|
|00002160| 58 2e 42 20 5c 2d 63 6f | 6c 6f 72 73 0a 58 69 73 |X.B \-co|lors.Xis|
|00002170| 20 74 68 65 20 72 65 63 | 6f 6d 6d 65 6e 64 65 64 | the rec|ommended|
|00002180| 20 6e 61 6d 65 2c 0a 58 | 2e 42 20 5c 2d 71 75 61 | name,.X|.B \-qua|
|00002190| 6e 74 69 7a 65 0a 58 69 | 73 20 70 72 6f 76 69 64 |ntize.Xi|s provid|
|000021a0| 65 64 20 6f 6e 6c 79 20 | 66 6f 72 20 62 61 63 6b |ed only |for back|
|000021b0| 77 61 72 64 73 20 63 6f | 6d 70 61 74 69 62 69 6c |wards co|mpatibil|
|000021c0| 69 74 79 2e 0a 58 2e 54 | 50 0a 58 2e 42 20 5c 2d |ity..X.T|P.X.B \-|
|000021d0| 67 69 66 0a 58 53 65 6c | 65 63 74 20 47 49 46 20 |gif.XSel|ect GIF |
|000021e0| 6f 75 74 70 75 74 20 66 | 6f 72 6d 61 74 2e 20 20 |output f|ormat. |
|000021f0| 53 69 6e 63 65 20 47 49 | 46 20 64 6f 65 73 20 6e |Since GI|F does n|
|00002200| 6f 74 20 73 75 70 70 6f | 72 74 20 6d 6f 72 65 20 |ot suppo|rt more |
|00002210| 74 68 61 6e 20 32 35 36 | 20 63 6f 6c 6f 72 73 2c |than 256| colors,|
|00002220| 0a 58 2e 42 20 5c 2d 63 | 6f 6c 6f 72 73 20 32 35 |.X.B \-c|olors 25|
|00002230| 36 0a 58 69 73 20 61 73 | 73 75 6d 65 64 20 28 75 |6.Xis as|sumed (u|
|00002240| 6e 6c 65 73 73 20 79 6f | 75 20 73 70 65 63 69 66 |nless yo|u specif|
|00002250| 79 20 61 20 73 6d 61 6c | 6c 65 72 20 6e 75 6d 62 |y a smal|ler numb|
|00002260| 65 72 20 6f 66 20 63 6f | 6c 6f 72 73 29 2e 0a 58 |er of co|lors)..X|
|00002270| 2e 54 50 0a 58 2e 42 20 | 5c 2d 70 6e 6d 0a 58 53 |.TP.X.B |\-pnm.XS|
|00002280| 65 6c 65 63 74 20 50 42 | 4d 50 4c 55 53 20 28 50 |elect PB|MPLUS (P|
|00002290| 50 4d 2f 50 47 4d 29 20 | 6f 75 74 70 75 74 20 66 |PM/PGM) |output f|
|000022a0| 6f 72 6d 61 74 20 28 74 | 68 69 73 20 69 73 20 74 |ormat (t|his is t|
|000022b0| 68 65 20 64 65 66 61 75 | 6c 74 20 66 6f 72 6d 61 |he defau|lt forma|
|000022c0| 74 29 2e 0a 58 50 47 4d | 20 69 73 20 65 6d 69 74 |t)..XPGM| is emit|
|000022d0| 74 65 64 20 69 66 20 74 | 68 65 20 4a 50 45 47 20 |ted if t|he JPEG |
|000022e0| 66 69 6c 65 20 69 73 20 | 67 72 61 79 2d 73 63 61 |file is |gray-sca|
|000022f0| 6c 65 20 6f 72 20 69 66 | 0a 58 2e 42 20 5c 2d 67 |le or if|.X.B \-g|
|00002300| 72 61 79 73 63 61 6c 65 | 0a 58 69 73 20 73 70 65 |rayscale|.Xis spe|
|00002310| 63 69 66 69 65 64 3b 20 | 6f 74 68 65 72 77 69 73 |cified; |otherwis|
|00002320| 65 20 50 50 4d 20 69 73 | 20 65 6d 69 74 74 65 64 |e PPM is| emitted|
|00002330| 2e 0a 58 2e 54 50 0a 58 | 2e 42 20 5c 2d 72 6c 65 |..X.TP.X|.B \-rle|
|00002340| 0a 58 53 65 6c 65 63 74 | 20 52 4c 45 20 6f 75 74 |.XSelect| RLE out|
|00002350| 70 75 74 20 66 6f 72 6d | 61 74 2e 20 20 28 52 65 |put form|at. (Re|
|00002360| 71 75 69 72 65 73 20 55 | 52 54 20 6c 69 62 72 61 |quires U|RT libra|
|00002370| 72 79 2e 29 0a 58 2e 54 | 50 0a 58 2e 42 20 5c 2d |ry.).X.T|P.X.B \-|
|00002380| 74 61 72 67 61 0a 58 53 | 65 6c 65 63 74 20 54 61 |targa.XS|elect Ta|
|00002390| 72 67 61 20 6f 75 74 70 | 75 74 20 66 6f 72 6d 61 |rga outp|ut forma|
|000023a0| 74 2e 20 20 47 72 61 79 | 2d 73 63 61 6c 65 20 66 |t. Gray|-scale f|
|000023b0| 6f 72 6d 61 74 20 69 73 | 20 65 6d 69 74 74 65 64 |ormat is| emitted|
|000023c0| 20 69 66 20 74 68 65 20 | 4a 50 45 47 20 66 69 6c | if the |JPEG fil|
|000023d0| 65 20 69 73 0a 58 67 72 | 61 79 2d 73 63 61 6c 65 |e is.Xgr|ay-scale|
|000023e0| 20 6f 72 20 69 66 0a 58 | 2e 42 20 5c 2d 67 72 61 | or if.X|.B \-gra|
|000023f0| 79 73 63 61 6c 65 0a 58 | 69 73 20 73 70 65 63 69 |yscale.X|is speci|
|00002400| 66 69 65 64 3b 20 6f 74 | 68 65 72 77 69 73 65 2c |fied; ot|herwise,|
|00002410| 20 63 6f 6c 6f 72 6d 61 | 70 70 65 64 20 66 6f 72 | colorma|pped for|
|00002420| 6d 61 74 20 69 73 20 65 | 6d 69 74 74 65 64 20 69 |mat is e|mitted i|
|00002430| 66 0a 58 2e 42 20 5c 2d | 63 6f 6c 6f 72 73 0a 58 |f.X.B \-|colors.X|
|00002440| 69 73 20 73 70 65 63 69 | 66 69 65 64 3b 20 6f 74 |is speci|fied; ot|
|00002450| 68 65 72 77 69 73 65 2c | 20 32 34 2d 62 69 74 20 |herwise,| 24-bit |
|00002460| 66 75 6c 6c 2d 63 6f 6c | 6f 72 20 66 6f 72 6d 61 |full-col|or forma|
|00002470| 74 20 69 73 20 65 6d 69 | 74 74 65 64 2e 0a 58 2e |t is emi|tted..X.|
|00002480| 50 50 0a 58 53 77 69 74 | 63 68 65 73 20 66 6f 72 |PP.XSwit|ches for|
|00002490| 20 61 64 76 61 6e 63 65 | 64 20 75 73 65 72 73 3a | advance|d users:|
|000024a0| 0a 58 2e 54 50 0a 58 2e | 42 20 5c 2d 62 6c 6f 63 |.X.TP.X.|B \-bloc|
|000024b0| 6b 73 6d 6f 6f 74 68 0a | 58 50 65 72 66 6f 72 6d |ksmooth.|XPerform|
|000024c0| 20 63 72 6f 73 73 2d 62 | 6c 6f 63 6b 20 73 6d 6f | cross-b|lock smo|
|000024d0| 6f 74 68 69 6e 67 2e 20 | 20 54 68 69 73 20 69 73 |othing. | This is|
|000024e0| 20 71 75 69 74 65 20 6d | 65 6d 6f 72 79 2d 69 6e | quite m|emory-in|
|000024f0| 74 65 6e 73 69 76 65 20 | 61 6e 64 20 6f 6e 6c 79 |tensive |and only|
|00002500| 20 73 65 65 6d 73 0a 58 | 74 6f 20 69 6d 70 72 6f | seems.X|to impro|
|00002510| 76 65 20 74 68 65 20 69 | 6d 61 67 65 20 61 74 20 |ve the i|mage at |
|00002520| 76 65 72 79 20 6c 6f 77 | 20 71 75 61 6c 69 74 79 |very low| quality|
|00002530| 20 73 65 74 74 69 6e 67 | 73 20 28 5c 66 42 5c 2d | setting|s (\fB\-|
|00002540| 71 75 61 6c 69 74 79 5c | 66 52 20 31 30 20 74 6f |quality\|fR 10 to|
|00002550| 20 32 30 20 6f 72 0a 58 | 73 6f 29 2e 20 20 41 74 | 20 or.X|so). At|
|00002560| 20 6e 6f 72 6d 61 6c 20 | 71 75 61 6c 69 74 79 20 | normal |quality |
|00002570| 73 65 74 74 69 6e 67 73 | 20 69 74 20 6d 61 79 20 |settings| it may |
|00002580| 6d 61 6b 65 20 74 68 65 | 20 69 6d 61 67 65 20 77 |make the| image w|
|00002590| 6f 72 73 65 2e 0a 58 2e | 54 50 0a 58 2e 42 20 5c |orse..X.|TP.X.B \|
|000025a0| 2d 67 72 61 79 73 63 61 | 6c 65 0a 58 46 6f 72 63 |-graysca|le.XForc|
|000025b0| 65 20 67 72 61 79 2d 73 | 63 61 6c 65 20 6f 75 74 |e gray-s|cale out|
|000025c0| 70 75 74 20 65 76 65 6e | 20 69 66 20 4a 50 45 47 |put even| if JPEG|
|000025d0| 20 66 69 6c 65 20 69 73 | 20 63 6f 6c 6f 72 2e 0a | file is| color..|
|000025e0| 58 55 73 65 66 75 6c 20 | 66 6f 72 20 76 69 65 77 |XUseful |for view|
|000025f0| 69 6e 67 20 6f 6e 20 6d | 6f 6e 6f 63 68 72 6f 6d |ing on m|onochrom|
|00002600| 65 20 64 69 73 70 6c 61 | 79 73 2e 0a 58 2e 54 50 |e displa|ys..X.TP|
|00002610| 0a 58 2e 42 49 20 5c 2d | 6d 61 78 6d 65 6d 6f 72 |.X.BI \-|maxmemor|
|00002620| 79 20 22 20 4e 22 0a 58 | 53 65 74 20 6c 69 6d 69 |y " N".X|Set limi|
|00002630| 74 20 66 6f 72 20 61 6d | 6f 75 6e 74 20 6f 66 20 |t for am|ount of |
|00002640| 6d 65 6d 6f 72 79 20 74 | 6f 20 75 73 65 20 69 6e |memory t|o use in|
|00002650| 20 70 72 6f 63 65 73 73 | 69 6e 67 20 6c 61 72 67 | process|ing larg|
|00002660| 65 20 69 6d 61 67 65 73 | 2e 20 20 56 61 6c 75 65 |e images|. Value|
|00002670| 20 69 73 0a 58 69 6e 20 | 74 68 6f 75 73 61 6e 64 | is.Xin |thousand|
|00002680| 73 20 6f 66 20 62 79 74 | 65 73 2c 20 6f 72 20 6d |s of byt|es, or m|
|00002690| 69 6c 6c 69 6f 6e 73 20 | 6f 66 20 62 79 74 65 73 |illions |of bytes|
|000026a0| 20 69 66 20 22 4d 22 20 | 69 73 20 61 74 74 61 63 | if "M" |is attac|
|000026b0| 68 65 64 20 74 6f 20 74 | 68 65 0a 58 6e 75 6d 62 |hed to t|he.Xnumb|
|000026c0| 65 72 2e 20 20 46 6f 72 | 20 65 78 61 6d 70 6c 65 |er. For| example|
|000026d0| 2c 0a 58 2e 42 20 5c 2d | 6d 61 78 20 34 6d 0a 58 |,.X.B \-|max 4m.X|
|000026e0| 73 65 6c 65 63 74 73 20 | 34 30 30 30 30 30 30 20 |selects |4000000 |
|000026f0| 62 79 74 65 73 2e 20 20 | 49 66 20 6d 6f 72 65 20 |bytes. |If more |
|00002700| 73 70 61 63 65 20 69 73 | 20 6e 65 65 64 65 64 2c |space is| needed,|
|00002710| 20 74 65 6d 70 6f 72 61 | 72 79 20 66 69 6c 65 73 | tempora|ry files|
|00002720| 20 77 69 6c 6c 20 62 65 | 20 75 73 65 64 2e 0a 58 | will be| used..X|
|00002730| 2e 54 50 0a 58 2e 42 20 | 5c 2d 6e 6f 64 69 74 68 |.TP.X.B |\-nodith|
|00002740| 65 72 0a 58 44 6f 20 6e | 6f 74 20 75 73 65 20 64 |er.XDo n|ot use d|
|00002750| 69 74 68 65 72 69 6e 67 | 20 69 6e 20 63 6f 6c 6f |ithering| in colo|
|00002760| 72 20 71 75 61 6e 74 69 | 7a 61 74 69 6f 6e 2e 20 |r quanti|zation. |
|00002770| 20 42 79 20 64 65 66 61 | 75 6c 74 2c 20 46 6c 6f | By defa|ult, Flo|
|00002780| 79 64 2d 53 74 65 69 6e | 62 65 72 67 0a 58 64 69 |yd-Stein|berg.Xdi|
|00002790| 74 68 65 72 69 6e 67 20 | 69 73 20 61 70 70 6c 69 |thering |is appli|
|000027a0| 65 64 20 77 68 65 6e 20 | 71 75 61 6e 74 69 7a 69 |ed when |quantizi|
|000027b0| 6e 67 20 63 6f 6c 6f 72 | 73 2c 20 62 75 74 20 6f |ng color|s, but o|
|000027c0| 6e 20 73 6f 6d 65 20 69 | 6d 61 67 65 73 20 64 69 |n some i|mages di|
|000027d0| 74 68 65 72 69 6e 67 20 | 6d 61 79 0a 58 72 65 73 |thering |may.Xres|
|000027e0| 75 6c 74 20 69 6e 20 6f | 62 6a 65 63 74 69 6f 6e |ult in o|bjection|
|000027f0| 61 62 6c 65 20 22 67 72 | 61 69 6e 69 6e 65 73 73 |able "gr|aininess|
|00002800| 22 2e 20 20 49 66 20 74 | 68 61 74 20 68 61 70 70 |". If t|hat happ|
|00002810| 65 6e 73 2c 20 79 6f 75 | 20 63 61 6e 20 74 75 72 |ens, you| can tur|
|00002820| 6e 20 6f 66 66 0a 58 64 | 69 74 68 65 72 69 6e 67 |n off.Xd|ithering|
|00002830| 20 77 69 74 68 0a 58 2e | 42 52 20 5c 2d 6e 6f 64 | with.X.|BR \-nod|
|00002840| 69 74 68 65 72 20 2e 0a | 58 2e 42 20 5c 2d 6e 6f |ither ..|X.B \-no|
|00002850| 64 69 74 68 65 72 0a 58 | 69 73 20 69 67 6e 6f 72 |dither.X|is ignor|
|00002860| 65 64 20 75 6e 6c 65 73 | 73 20 79 6f 75 20 61 6c |ed unles|s you al|
|00002870| 73 6f 20 73 61 79 0a 58 | 2e 42 20 5c 2d 63 6f 6c |so say.X|.B \-col|
|00002880| 6f 72 73 0a 58 2e 49 52 | 20 4e 20 2e 0a 58 2e 54 |ors.X.IR| N ..X.T|
|00002890| 50 0a 58 2e 42 20 5c 2d | 6f 6e 65 70 61 73 73 0a |P.X.B \-|onepass.|
|000028a0| 58 55 73 65 20 6f 6e 65 | 2d 70 61 73 73 20 69 6e |XUse one|-pass in|
|000028b0| 73 74 65 61 64 20 6f 66 | 20 74 77 6f 2d 70 61 73 |stead of| two-pas|
|000028c0| 73 20 63 6f 6c 6f 72 20 | 71 75 61 6e 74 69 7a 61 |s color |quantiza|
|000028d0| 74 69 6f 6e 2e 20 20 54 | 68 65 20 6f 6e 65 2d 70 |tion. T|he one-p|
|000028e0| 61 73 73 20 6d 65 74 68 | 6f 64 20 69 73 0a 58 66 |ass meth|od is.Xf|
|000028f0| 61 73 74 65 72 20 61 6e | 64 20 6e 65 65 64 73 20 |aster an|d needs |
|00002900| 6c 65 73 73 20 6d 65 6d | 6f 72 79 2c 20 62 75 74 |less mem|ory, but|
|00002910| 20 69 74 20 70 72 6f 64 | 75 63 65 73 20 61 20 6c | it prod|uces a l|
|00002920| 6f 77 65 72 2d 71 75 61 | 6c 69 74 79 20 69 6d 61 |ower-qua|lity ima|
|00002930| 67 65 2e 0a 58 2e 42 20 | 5c 2d 6f 6e 65 70 61 73 |ge..X.B |\-onepas|
|00002940| 73 0a 58 69 73 20 69 67 | 6e 6f 72 65 64 20 75 6e |s.Xis ig|nored un|
|00002950| 6c 65 73 73 20 79 6f 75 | 20 61 6c 73 6f 20 73 61 |less you| also sa|
|00002960| 79 0a 58 2e 42 20 5c 2d | 63 6f 6c 6f 72 73 0a 58 |y.X.B \-|colors.X|
|00002970| 2e 49 52 20 4e 20 2e 0a | 58 41 6c 73 6f 2c 20 74 |.IR N ..|XAlso, t|
|00002980| 68 65 20 6f 6e 65 2d 70 | 61 73 73 20 6d 65 74 68 |he one-p|ass meth|
|00002990| 6f 64 20 69 73 20 61 6c | 77 61 79 73 20 75 73 65 |od is al|ways use|
|000029a0| 64 20 66 6f 72 20 67 72 | 61 79 2d 73 63 61 6c 65 |d for gr|ay-scale|
|000029b0| 20 6f 75 74 70 75 74 20 | 28 74 68 65 20 74 77 6f | output |(the two|
|000029c0| 2d 70 61 73 73 0a 58 6d | 65 74 68 6f 64 20 69 73 |-pass.Xm|ethod is|
|000029d0| 20 6e 6f 20 69 6d 70 72 | 6f 76 65 6d 65 6e 74 20 | no impr|ovement |
|000029e0| 74 68 65 6e 29 2e 0a 58 | 2e 54 50 0a 58 2e 42 20 |then)..X|.TP.X.B |
|000029f0| 5c 2d 76 65 72 62 6f 73 | 65 0a 58 45 6e 61 62 6c |\-verbos|e.XEnabl|
|00002a00| 65 20 64 65 62 75 67 20 | 70 72 69 6e 74 6f 75 74 |e debug |printout|
|00002a10| 2e 20 20 4d 6f 72 65 0a | 58 2e 42 52 20 5c 2d 76 |. More.|X.BR \-v|
|00002a20| 20 27 73 0a 58 67 69 76 | 65 20 6d 6f 72 65 20 6f | 's.Xgiv|e more o|
|00002a30| 75 74 70 75 74 2e 20 20 | 41 6c 73 6f 2c 20 76 65 |utput. |Also, ve|
|00002a40| 72 73 69 6f 6e 20 69 6e | 66 6f 72 6d 61 74 69 6f |rsion in|formatio|
|00002a50| 6e 20 69 73 20 70 72 69 | 6e 74 65 64 20 61 74 20 |n is pri|nted at |
|00002a60| 73 74 61 72 74 75 70 2e | 0a 58 2e 54 50 0a 58 2e |startup.|.X.TP.X.|
|00002a70| 42 20 5c 2d 64 65 62 75 | 67 0a 58 53 61 6d 65 20 |B \-debu|g.XSame |
|00002a80| 61 73 0a 58 2e 42 52 20 | 5c 2d 76 65 72 62 6f 73 |as.X.BR |\-verbos|
|00002a90| 65 20 2e 0a 58 2e 53 48 | 20 45 58 41 4d 50 4c 45 |e ..X.SH| EXAMPLE|
|00002aa0| 53 0a 58 2e 4c 50 0a 58 | 54 68 69 73 20 65 78 61 |S.X.LP.X|This exa|
|00002ab0| 6d 70 6c 65 20 64 65 63 | 6f 6d 70 72 65 73 73 65 |mple dec|ompresse|
|00002ac0| 73 20 74 68 65 20 4a 50 | 45 47 20 66 69 6c 65 20 |s the JP|EG file |
|00002ad0| 66 6f 6f 2e 6a 70 67 2c | 20 61 75 74 6f 6d 61 74 |foo.jpg,| automat|
|00002ae0| 69 63 61 6c 6c 79 20 71 | 75 61 6e 74 69 7a 65 73 |ically q|uantizes|
|00002af0| 20 74 6f 0a 58 32 35 36 | 20 63 6f 6c 6f 72 73 2c | to.X256| colors,|
|00002b00| 20 61 6e 64 20 73 61 76 | 65 73 20 74 68 65 20 6f | and sav|es the o|
|00002b10| 75 74 70 75 74 20 69 6e | 20 47 49 46 20 66 6f 72 |utput in| GIF for|
|00002b20| 6d 61 74 20 69 6e 20 66 | 6f 6f 2e 67 69 66 3a 0a |mat in f|oo.gif:.|
|00002b30| 58 2e 49 50 0a 58 2e 42 | 20 64 6a 70 65 67 20 5c |X.IP.X.B| djpeg \|
|00002b40| 2d 67 69 66 0a 58 2e 49 | 20 66 6f 6f 2e 6a 70 67 |-gif.X.I| foo.jpg|
|00002b50| 0a 58 2e 42 20 3e 0a 58 | 2e 49 20 66 6f 6f 2e 67 |.X.B >.X|.I foo.g|
|00002b60| 69 66 0a 58 2e 53 48 20 | 45 4e 56 49 52 4f 4e 4d |if.X.SH |ENVIRONM|
|00002b70| 45 4e 54 0a 58 2e 54 50 | 0a 58 2e 42 20 4a 50 45 |ENT.X.TP|.X.B JPE|
|00002b80| 47 4d 45 4d 0a 58 49 66 | 20 74 68 69 73 20 65 6e |GMEM.XIf| this en|
|00002b90| 76 69 72 6f 6e 6d 65 6e | 74 20 76 61 72 69 61 62 |vironmen|t variab|
|00002ba0| 6c 65 20 69 73 20 73 65 | 74 2c 20 69 74 73 20 76 |le is se|t, its v|
|00002bb0| 61 6c 75 65 20 69 73 20 | 74 68 65 20 64 65 66 61 |alue is |the defa|
|00002bc0| 75 6c 74 20 6d 65 6d 6f | 72 79 20 6c 69 6d 69 74 |ult memo|ry limit|
|00002bd0| 2e 0a 58 54 68 65 20 76 | 61 6c 75 65 20 69 73 20 |..XThe v|alue is |
|00002be0| 73 70 65 63 69 66 69 65 | 64 20 61 73 20 64 65 73 |specifie|d as des|
|00002bf0| 63 72 69 62 65 64 20 66 | 6f 72 20 74 68 65 0a 58 |cribed f|or the.X|
|00002c00| 2e 42 20 5c 2d 6d 61 78 | 6d 65 6d 6f 72 79 0a 58 |.B \-max|memory.X|
|00002c10| 73 77 69 74 63 68 2e 0a | 58 2e 42 20 4a 50 45 47 |switch..|X.B JPEG|
|00002c20| 4d 45 4d 0a 58 6f 76 65 | 72 72 69 64 65 73 20 74 |MEM.Xove|rrides t|
|00002c30| 68 65 20 64 65 66 61 75 | 6c 74 20 76 61 6c 75 65 |he defau|lt value|
|00002c40| 20 73 70 65 63 69 66 69 | 65 64 20 77 68 65 6e 20 | specifi|ed when |
|00002c50| 74 68 65 20 70 72 6f 67 | 72 61 6d 20 77 61 73 20 |the prog|ram was |
|00002c60| 63 6f 6d 70 69 6c 65 64 | 2c 20 61 6e 64 0a 58 69 |compiled|, and.Xi|
|00002c70| 74 73 65 6c 66 20 69 73 | 20 6f 76 65 72 72 69 64 |tself is| overrid|
|00002c80| 64 65 6e 20 62 79 20 61 | 6e 20 65 78 70 6c 69 63 |den by a|n explic|
|00002c90| 69 74 0a 58 2e 42 52 20 | 5c 2d 6d 61 78 6d 65 6d |it.X.BR |\-maxmem|
|00002ca0| 6f 72 79 20 2e 0a 58 2e | 53 48 20 53 45 45 20 41 |ory ..X.|SH SEE A|
|00002cb0| 4c 53 4f 0a 58 2e 42 52 | 20 63 6a 70 65 67 20 28 |LSO.X.BR| cjpeg (|
|00002cc0| 31 29 0a 58 2e 62 72 0a | 58 2e 42 52 20 70 70 6d |1).X.br.|X.BR ppm|
|00002cd0| 20 28 35 29 2c 0a 58 2e | 42 52 20 70 67 6d 20 28 | (5),.X.|BR pgm (|
|00002ce0| 35 29 0a 58 2e 62 72 0a | 58 57 61 6c 6c 61 63 65 |5).X.br.|XWallace|
|00002cf0| 2c 20 47 72 65 67 6f 72 | 79 20 4b 2e 20 20 22 54 |, Gregor|y K. "T|
|00002d00| 68 65 20 4a 50 45 47 20 | 53 74 69 6c 6c 20 50 69 |he JPEG |Still Pi|
|00002d10| 63 74 75 72 65 20 43 6f | 6d 70 72 65 73 73 69 6f |cture Co|mpressio|
|00002d20| 6e 20 53 74 61 6e 64 61 | 72 64 22 2c 0a 58 43 6f |n Standa|rd",.XCo|
|00002d30| 6d 6d 75 6e 69 63 61 74 | 69 6f 6e 73 20 6f 66 20 |mmunicat|ions of |
|00002d40| 74 68 65 20 41 43 4d 2c | 20 41 70 72 69 6c 20 31 |the ACM,| April 1|
|00002d50| 39 39 31 20 28 76 6f 6c | 2e 20 33 34 2c 20 6e 6f |991 (vol|. 34, no|
|00002d60| 2e 20 34 29 2c 20 70 70 | 2e 20 33 30 2d 34 34 2e |. 4), pp|. 30-44.|
|00002d70| 0a 58 2e 53 48 20 41 55 | 54 48 4f 52 0a 58 49 6e |.X.SH AU|THOR.XIn|
|00002d80| 64 65 70 65 6e 64 65 6e | 74 20 4a 50 45 47 20 47 |dependen|t JPEG G|
|00002d90| 72 6f 75 70 0a 58 2e 53 | 48 20 42 55 47 53 0a 58 |roup.X.S|H BUGS.X|
|00002da0| 41 72 69 74 68 6d 65 74 | 69 63 20 63 6f 64 69 6e |Arithmet|ic codin|
|00002db0| 67 20 69 73 20 6e 6f 74 | 20 73 75 70 70 6f 72 74 |g is not| support|
|00002dc0| 65 64 20 66 6f 72 20 6c | 65 67 61 6c 20 72 65 61 |ed for l|egal rea|
|00002dd0| 73 6f 6e 73 2e 0a 58 2e | 50 50 0a 58 53 74 69 6c |sons..X.|PP.XStil|
|00002de0| 6c 20 6e 6f 74 20 61 73 | 20 66 61 73 74 20 61 73 |l not as| fast as|
|00002df0| 20 77 65 27 64 20 6c 69 | 6b 65 2e 0a 45 4e 44 5f | we'd li|ke..END_|
|00002e00| 4f 46 5f 46 49 4c 45 0a | 20 20 69 66 20 74 65 73 |OF_FILE.| if tes|
|00002e10| 74 20 34 35 32 30 20 2d | 6e 65 20 60 77 63 20 2d |t 4520 -|ne `wc -|
|00002e20| 63 20 3c 27 64 6a 70 65 | 67 2e 31 27 60 3b 20 74 |c <'djpe|g.1'`; t|
|00002e30| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 68 61 |hen. |echo sha|
|00002e40| 72 3a 20 5c 22 27 64 6a | 70 65 67 2e 31 27 5c 22 |r: \"'dj|peg.1'\"|
|00002e50| 20 75 6e 70 61 63 6b 65 | 64 20 77 69 74 68 20 77 | unpacke|d with w|
|00002e60| 72 6f 6e 67 20 73 69 7a | 65 21 0a 20 20 66 69 0a |rong siz|e!. fi.|
|00002e70| 20 20 23 20 65 6e 64 20 | 6f 66 20 27 64 6a 70 65 | # end |of 'djpe|
|00002e80| 67 2e 31 27 0a 66 69 0a | 69 66 20 74 65 73 74 20 |g.1'.fi.|if test |
|00002e90| 2d 66 20 27 6a 62 73 6d | 6f 6f 74 68 2e 63 27 20 |-f 'jbsm|ooth.c' |
|00002ea0| 2d 61 20 22 24 7b 31 7d | 22 20 21 3d 20 22 2d 63 |-a "${1}|" != "-c|
|00002eb0| 22 20 3b 20 74 68 65 6e | 20 0a 20 20 65 63 68 6f |" ; then| . echo|
|00002ec0| 20 73 68 61 72 3a 20 57 | 69 6c 6c 20 6e 6f 74 20 | shar: W|ill not |
|00002ed0| 63 6c 6f 62 62 65 72 20 | 65 78 69 73 74 69 6e 67 |clobber |existing|
|00002ee0| 20 66 69 6c 65 20 5c 22 | 27 6a 62 73 6d 6f 6f 74 | file \"|'jbsmoot|
|00002ef0| 68 2e 63 27 5c 22 0a 65 | 6c 73 65 0a 20 20 65 63 |h.c'\".e|lse. ec|
|00002f00| 68 6f 20 73 68 61 72 3a | 20 45 78 74 72 61 63 74 |ho shar:| Extract|
|00002f10| 69 6e 67 20 5c 22 27 6a | 62 73 6d 6f 6f 74 68 2e |ing \"'j|bsmooth.|
|00002f20| 63 27 5c 22 20 5c 28 33 | 32 35 39 20 63 68 61 72 |c'\" \(3|259 char|
|00002f30| 61 63 74 65 72 73 5c 29 | 0a 20 20 73 65 64 20 22 |acters\)|. sed "|
|00002f40| 73 2f 5e 58 2f 2f 22 20 | 3e 27 6a 62 73 6d 6f 6f |s/^X//" |>'jbsmoo|
|00002f50| 74 68 2e 63 27 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |th.c' <<|'END_OF_|
|00002f60| 46 49 4c 45 27 0a 58 2f | 2a 0a 58 20 2a 20 6a 62 |FILE'.X/|*.X * jb|
|00002f70| 73 6d 6f 6f 74 68 2e 63 | 0a 58 20 2a 0a 58 20 2a |smooth.c|.X *.X *|
|00002f80| 20 43 6f 70 79 72 69 67 | 68 74 20 28 43 29 20 31 | Copyrig|ht (C) 1|
|00002f90| 39 39 31 2c 20 31 39 39 | 32 2c 20 54 68 6f 6d 61 |991, 199|2, Thoma|
|00002fa0| 73 20 47 2e 20 4c 61 6e | 65 2e 0a 58 20 2a 20 54 |s G. Lan|e..X * T|
|00002fb0| 68 69 73 20 66 69 6c 65 | 20 69 73 20 70 61 72 74 |his file| is part|
|00002fc0| 20 6f 66 20 74 68 65 20 | 49 6e 64 65 70 65 6e 64 | of the |Independ|
|00002fd0| 65 6e 74 20 4a 50 45 47 | 20 47 72 6f 75 70 27 73 |ent JPEG| Group's|
|00002fe0| 20 73 6f 66 74 77 61 72 | 65 2e 0a 58 20 2a 20 46 | softwar|e..X * F|
|00002ff0| 6f 72 20 63 6f 6e 64 69 | 74 69 6f 6e 73 20 6f 66 |or condi|tions of|
|00003000| 20 64 69 73 74 72 69 62 | 75 74 69 6f 6e 20 61 6e | distrib|ution an|
|00003010| 64 20 75 73 65 2c 20 73 | 65 65 20 74 68 65 20 61 |d use, s|ee the a|
|00003020| 63 63 6f 6d 70 61 6e 79 | 69 6e 67 20 52 45 41 44 |ccompany|ing READ|
|00003030| 4d 45 20 66 69 6c 65 2e | 0a 58 20 2a 0a 58 20 2a |ME file.|.X *.X *|
|00003040| 20 54 68 69 73 20 66 69 | 6c 65 20 63 6f 6e 74 61 | This fi|le conta|
|00003050| 69 6e 73 20 63 72 6f 73 | 73 2d 62 6c 6f 63 6b 20 |ins cros|s-block |
|00003060| 73 6d 6f 6f 74 68 69 6e | 67 20 72 6f 75 74 69 6e |smoothin|g routin|
|00003070| 65 73 2e 0a 58 20 2a 20 | 54 68 65 73 65 20 72 6f |es..X * |These ro|
|00003080| 75 74 69 6e 65 73 20 61 | 72 65 20 69 6e 76 6f 6b |utines a|re invok|
|00003090| 65 64 20 76 69 61 20 74 | 68 65 20 73 6d 6f 6f 74 |ed via t|he smoot|
|000030a0| 68 5f 63 6f 65 66 66 69 | 63 69 65 6e 74 73 20 6d |h_coeffi|cients m|
|000030b0| 65 74 68 6f 64 2e 0a 58 | 20 2a 2f 0a 58 0a 58 23 |ethod..X| */.X.X#|
|000030c0| 69 6e 63 6c 75 64 65 20 | 22 6a 69 6e 63 6c 75 64 |include |"jinclud|
|000030d0| 65 2e 68 22 0a 58 0a 58 | 23 69 66 64 65 66 20 42 |e.h".X.X|#ifdef B|
|000030e0| 4c 4f 43 4b 5f 53 4d 4f | 4f 54 48 49 4e 47 5f 53 |LOCK_SMO|OTHING_S|
|000030f0| 55 50 50 4f 52 54 45 44 | 0a 58 0a 58 0a 58 2f 2a |UPPORTED|.X.X.X/*|
|00003100| 0a 58 20 2a 20 43 72 6f | 73 73 2d 62 6c 6f 63 6b |.X * Cro|ss-block|
|00003110| 20 63 6f 65 66 66 69 63 | 69 65 6e 74 20 73 6d 6f | coeffic|ient smo|
|00003120| 6f 74 68 69 6e 67 2e 0a | 58 20 2a 2f 0a 58 0a 58 |othing..|X */.X.X|
|00003130| 4d 45 54 48 4f 44 44 45 | 46 20 76 6f 69 64 0a 58 |METHODDE|F void.X|
|00003140| 73 6d 6f 6f 74 68 5f 63 | 6f 65 66 66 69 63 69 65 |smooth_c|oefficie|
|00003150| 6e 74 73 20 28 64 65 63 | 6f 6d 70 72 65 73 73 5f |nts (dec|ompress_|
|00003160| 69 6e 66 6f 5f 70 74 72 | 20 63 69 6e 66 6f 2c 0a |info_ptr| cinfo,.|
|00003170| 58 09 09 20 20 20 20 20 | 6a 70 65 67 5f 63 6f 6d |X.. |jpeg_com|
|00003180| 70 6f 6e 65 6e 74 5f 69 | 6e 66 6f 20 2a 63 6f 6d |ponent_i|nfo *com|
|00003190| 70 70 74 72 2c 0a 58 09 | 09 20 20 20 20 20 4a 42 |pptr,.X.|. JB|
|000031a0| 4c 4f 43 4b 52 4f 57 20 | 61 62 6f 76 65 2c 0a 58 |LOCKROW |above,.X|
|000031b0| 09 09 20 20 20 20 20 4a | 42 4c 4f 43 4b 52 4f 57 |.. J|BLOCKROW|
|000031c0| 20 63 75 72 72 6f 77 2c | 0a 58 09 09 20 20 20 20 | currow,|.X.. |
|000031d0| 20 4a 42 4c 4f 43 4b 52 | 4f 57 20 62 65 6c 6f 77 | JBLOCKR|OW below|
|000031e0| 2c 0a 58 09 09 20 20 20 | 20 20 4a 42 4c 4f 43 4b |,.X.. | JBLOCK|
|000031f0| 52 4f 57 20 6f 75 74 70 | 75 74 29 0a 58 7b 0a 58 |ROW outp|ut).X{.X|
|00003200| 20 20 51 55 41 4e 54 5f | 54 42 4c 5f 50 54 52 20 | QUANT_|TBL_PTR |
|00003210| 51 70 74 72 20 3d 20 63 | 69 6e 66 6f 2d 3e 71 75 |Qptr = c|info->qu|
|00003220| 61 6e 74 5f 74 62 6c 5f | 70 74 72 73 5b 63 6f 6d |ant_tbl_|ptrs[com|
|00003230| 70 70 74 72 2d 3e 71 75 | 61 6e 74 5f 74 62 6c 5f |pptr->qu|ant_tbl_|
|00003240| 6e 6f 5d 3b 0a 58 20 20 | 6c 6f 6e 67 20 62 6c 6f |no];.X |long blo|
|00003250| 63 6b 73 5f 69 6e 5f 72 | 6f 77 20 3d 20 63 6f 6d |cks_in_r|ow = com|
|00003260| 70 70 74 72 2d 3e 64 6f | 77 6e 73 61 6d 70 6c 65 |pptr->do|wnsample|
|00003270| 64 5f 77 69 64 74 68 20 | 2f 20 44 43 54 53 49 5a |d_width |/ DCTSIZ|
|00003280| 45 3b 0a 58 20 20 6c 6f | 6e 67 20 63 6f 6c 3b 0a |E;.X lo|ng col;.|
|00003290| 58 0a 58 20 20 2f 2a 20 | 46 69 72 73 74 2c 20 63 |X.X /* |First, c|
|000032a0| 6f 70 79 20 74 68 65 20 | 62 6c 6f 63 6b 20 72 6f |opy the |block ro|
|000032b0| 77 20 61 73 2d 69 73 2e | 0a 58 20 20 20 2a 20 54 |w as-is.|.X * T|
|000032c0| 68 69 73 20 74 61 6b 65 | 73 20 63 61 72 65 20 6f |his take|s care o|
|000032d0| 66 20 74 68 65 20 66 69 | 72 73 74 20 26 20 6c 61 |f the fi|rst & la|
|000032e0| 73 74 20 62 6c 6f 63 6b | 73 20 69 6e 20 74 68 65 |st block|s in the|
|000032f0| 20 72 6f 77 2c 20 74 68 | 65 20 74 6f 70 2f 62 6f | row, th|e top/bo|
|00003300| 74 74 6f 6d 0a 58 20 20 | 20 2a 20 73 70 65 63 69 |ttom.X | * speci|
|00003310| 61 6c 20 63 61 73 65 73 | 2c 20 61 6e 64 20 74 68 |al cases|, and th|
|00003320| 65 20 68 69 67 68 65 72 | 2d 6f 72 64 65 72 20 63 |e higher|-order c|
|00003330| 6f 65 66 66 69 63 69 65 | 6e 74 73 20 69 6e 20 65 |oefficie|nts in e|
|00003340| 61 63 68 20 62 6c 6f 63 | 6b 2e 0a 58 20 20 20 2a |ach bloc|k..X *|
|00003350| 2f 0a 58 20 20 6a 63 6f | 70 79 5f 62 6c 6f 63 6b |/.X jco|py_block|
|00003360| 5f 72 6f 77 28 63 75 72 | 72 6f 77 2c 20 6f 75 74 |_row(cur|row, out|
|00003370| 70 75 74 2c 20 62 6c 6f | 63 6b 73 5f 69 6e 5f 72 |put, blo|cks_in_r|
|00003380| 6f 77 29 3b 0a 58 0a 58 | 20 20 2f 2a 20 4e 6f 77 |ow);.X.X| /* Now|
|00003390| 20 61 70 70 6c 79 20 74 | 68 65 20 73 6d 6f 6f 74 | apply t|he smoot|
|000033a0| 68 69 6e 67 20 63 61 6c | 63 75 6c 61 74 69 6f 6e |hing cal|culation|
|000033b0| 2c 20 62 75 74 20 6e 6f | 74 20 74 6f 20 61 6e 79 |, but no|t to any|
|000033c0| 20 62 6c 6f 63 6b 73 20 | 6f 6e 20 74 68 65 0a 58 | blocks |on the.X|
|000033d0| 20 20 20 2a 20 65 64 67 | 65 73 20 6f 66 20 74 68 | * edg|es of th|
|000033e0| 65 20 69 6d 61 67 65 2e | 0a 58 20 20 20 2a 2f 0a |e image.|.X */.|
|000033f0| 58 0a 58 20 20 69 66 20 | 28 61 62 6f 76 65 20 21 |X.X if |(above !|
|00003400| 3d 20 4e 55 4c 4c 20 26 | 26 20 62 65 6c 6f 77 20 |= NULL &|& below |
|00003410| 21 3d 20 4e 55 4c 4c 29 | 20 7b 0a 58 20 20 20 20 |!= NULL)| {.X |
|00003420| 66 6f 72 20 28 63 6f 6c | 20 3d 20 31 3b 20 63 6f |for (col| = 1; co|
|00003430| 6c 20 3c 20 62 6c 6f 63 | 6b 73 5f 69 6e 5f 72 6f |l < bloc|ks_in_ro|
|00003440| 77 2d 31 3b 20 63 6f 6c | 2b 2b 29 20 7b 0a 58 0a |w-1; col|++) {.X.|
|00003450| 58 20 20 20 20 20 20 2f | 2a 20 53 65 65 20 73 65 |X /|* See se|
|00003460| 63 74 69 6f 6e 20 4b 2e | 38 20 6f 66 20 74 68 65 |ction K.|8 of the|
|00003470| 20 4a 50 45 47 20 73 74 | 61 6e 64 61 72 64 2e 0a | JPEG st|andard..|
|00003480| 58 20 20 20 20 20 20 20 | 2a 0a 58 20 20 20 20 20 |X |*.X |
|00003490| 20 20 2a 20 41 73 20 49 | 20 75 6e 64 65 72 73 74 | * As I| underst|
|000034a0| 61 6e 64 20 69 74 2c 20 | 74 68 69 73 20 70 72 6f |and it, |this pro|
|000034b0| 64 75 63 65 73 20 61 70 | 70 72 6f 78 69 6d 61 74 |duces ap|proximat|
|000034c0| 69 6f 6e 73 0a 58 20 20 | 20 20 20 20 20 2a 20 66 |ions.X | * f|
|000034d0| 6f 72 20 74 68 65 20 6c | 6f 77 20 66 72 65 71 75 |or the l|ow frequ|
|000034e0| 65 6e 63 79 20 41 43 20 | 63 6f 6d 70 6f 6e 65 6e |ency AC |componen|
|000034f0| 74 73 2c 20 62 61 73 65 | 64 20 6f 6e 20 74 68 65 |ts, base|d on the|
|00003500| 0a 58 20 20 20 20 20 20 | 20 2a 20 44 43 20 76 61 |.X | * DC va|
|00003510| 6c 75 65 73 20 6f 66 20 | 74 68 65 20 62 6c 6f 63 |lues of |the bloc|
|00003520| 6b 20 61 6e 64 20 69 74 | 73 20 65 69 67 68 74 20 |k and it|s eight |
|00003530| 6e 65 69 67 68 62 6f 72 | 69 6e 67 20 62 6c 6f 63 |neighbor|ing bloc|
|00003540| 6b 73 2e 0a 58 20 20 20 | 20 20 20 20 2a 20 28 54 |ks..X | * (T|
|00003550| 68 75 73 20 69 74 20 63 | 61 6e 27 74 20 62 65 20 |hus it c|an't be |
|00003560| 75 73 65 64 20 66 6f 72 | 20 62 6c 6f 63 6b 73 20 |used for| blocks |
|00003570| 6f 6e 20 74 68 65 20 69 | 6d 61 67 65 20 65 64 67 |on the i|mage edg|
|00003580| 65 73 2e 29 0a 58 20 20 | 20 20 20 20 20 2a 2f 0a |es.).X | */.|
|00003590| 58 0a 58 20 20 20 20 20 | 20 2f 2a 20 54 68 65 20 |X.X | /* The |
|000035a0| 6c 61 79 6f 75 74 20 6f | 66 20 74 68 65 73 65 20 |layout o|f these |
|000035b0| 76 61 72 69 61 62 6c 65 | 73 20 63 6f 72 72 65 73 |variable|s corres|
|000035c0| 70 6f 6e 64 73 20 74 6f | 20 74 65 78 74 20 61 6e |ponds to| text an|
|000035d0| 64 20 66 69 67 75 72 65 | 20 69 6e 20 4b 2e 38 20 |d figure| in K.8 |
|000035e0| 2a 2f 0a 58 20 20 20 20 | 20 20 0a 58 20 20 20 20 |*/.X | .X |
|000035f0| 20 20 4a 43 4f 45 46 20 | 44 43 31 2c 20 44 43 32 | JCOEF |DC1, DC2|
|00003600| 2c 20 44 43 33 3b 0a 58 | 20 20 20 20 20 20 4a 43 |, DC3;.X| JC|
|00003610| 4f 45 46 20 44 43 34 2c | 20 44 43 35 2c 20 44 43 |OEF DC4,| DC5, DC|
|00003620| 36 3b 0a 58 20 20 20 20 | 20 20 4a 43 4f 45 46 20 |6;.X | JCOEF |
|00003630| 44 43 37 2c 20 44 43 38 | 2c 20 44 43 39 3b 0a 58 |DC7, DC8|, DC9;.X|
|00003640| 20 20 20 20 20 20 0a 58 | 20 20 20 20 20 20 6c 6f | .X| lo|
|00003650| 6e 67 20 20 20 20 20 20 | 20 41 43 30 31 2c 20 41 |ng | AC01, A|
|00003660| 43 30 32 3b 0a 58 20 20 | 20 20 20 20 6c 6f 6e 67 |C02;.X | long|
|00003670| 20 41 43 31 30 2c 20 41 | 43 31 31 3b 0a 58 20 20 | AC10, A|C11;.X |
|00003680| 20 20 20 20 6c 6f 6e 67 | 20 41 43 32 30 3b 0a 58 | long| AC20;.X|
|00003690| 20 20 20 20 20 20 0a 58 | 20 20 20 20 20 20 44 43 | .X| DC|
|000036a0| 31 20 3d 20 61 62 6f 76 | 65 20 5b 63 6f 6c 2d 31 |1 = abov|e [col-1|
|000036b0| 5d 5b 30 5d 3b 0a 58 20 | 20 20 20 20 20 44 43 32 |][0];.X | DC2|
|000036c0| 20 3d 20 61 62 6f 76 65 | 20 5b 63 6f 6c 20 20 5d | = above| [col ]|
|000036d0| 5b 30 5d 3b 0a 58 20 20 | 20 20 20 20 44 43 33 20 |[0];.X | DC3 |
|000036e0| 3d 20 61 62 6f 76 65 20 | 5b 63 6f 6c 2b 31 5d 5b |= above |[col+1][|
|000036f0| 30 5d 3b 0a 58 20 20 20 | 20 20 20 44 43 34 20 3d |0];.X | DC4 =|
|00003700| 20 63 75 72 72 6f 77 5b | 63 6f 6c 2d 31 5d 5b 30 | currow[|col-1][0|
|00003710| 5d 3b 0a 58 20 20 20 20 | 20 20 44 43 35 20 3d 20 |];.X | DC5 = |
|00003720| 63 75 72 72 6f 77 5b 63 | 6f 6c 20 20 5d 5b 30 5d |currow[c|ol ][0]|
|00003730| 3b 0a 58 20 20 20 20 20 | 20 44 43 36 20 3d 20 63 |;.X | DC6 = c|
|00003740| 75 72 72 6f 77 5b 63 6f | 6c 2b 31 5d 5b 30 5d 3b |urrow[co|l+1][0];|
|00003750| 0a 58 20 20 20 20 20 20 | 44 43 37 20 3d 20 62 65 |.X |DC7 = be|
|00003760| 6c 6f 77 20 5b 63 6f 6c | 2d 31 5d 5b 30 5d 3b 0a |low [col|-1][0];.|
|00003770| 58 20 20 20 20 20 20 44 | 43 38 20 3d 20 62 65 6c |X D|C8 = bel|
|00003780| 6f 77 20 5b 63 6f 6c 20 | 20 5d 5b 30 5d 3b 0a 58 |ow [col | ][0];.X|
|00003790| 20 20 20 20 20 20 44 43 | 39 20 3d 20 62 65 6c 6f | DC|9 = belo|
|000037a0| 77 20 5b 63 6f 6c 2b 31 | 5d 5b 30 5d 3b 0a 58 20 |w [col+1|][0];.X |
|000037b0| 20 20 20 20 20 0a 58 23 | 64 65 66 69 6e 65 20 44 | .X#|define D|
|000037c0| 49 56 49 44 45 5f 32 35 | 36 28 78 29 09 78 20 3d |IVIDE_25|6(x).x =|
|000037d0| 20 28 20 28 78 29 20 3c | 20 30 20 3f 20 2d 28 28 | ( (x) <| 0 ? -((|
|000037e0| 31 32 38 2d 28 78 29 29 | 2f 32 35 36 29 20 3a 20 |128-(x))|/256) : |
|000037f0| 28 28 78 29 2b 31 32 38 | 29 2f 32 35 36 20 29 0a |((x)+128|)/256 ).|
|00003800| 58 20 20 20 20 20 20 0a | 58 20 20 20 20 20 20 41 |X .|X A|
|00003810| 43 30 31 20 3d 20 28 33 | 36 20 2a 20 28 44 43 34 |C01 = (3|6 * (DC4|
|00003820| 20 2d 20 44 43 36 29 29 | 3b 0a 58 20 20 20 20 20 | - DC6))|;.X |
|00003830| 20 44 49 56 49 44 45 5f | 32 35 36 28 41 43 30 31 | DIVIDE_|256(AC01|
|00003840| 29 3b 0a 58 20 20 20 20 | 20 20 41 43 31 30 20 3d |);.X | AC10 =|
|00003850| 20 28 33 36 20 2a 20 28 | 44 43 32 20 2d 20 44 43 | (36 * (|DC2 - DC|
|00003860| 38 29 29 3b 0a 58 20 20 | 20 20 20 20 44 49 56 49 |8));.X | DIVI|
|00003870| 44 45 5f 32 35 36 28 41 | 43 31 30 29 3b 0a 58 20 |DE_256(A|C10);.X |
|00003880| 20 20 20 20 20 41 43 32 | 30 20 3d 20 28 39 20 2a | AC2|0 = (9 *|
|00003890| 20 28 44 43 32 20 2b 20 | 44 43 38 20 2d 20 32 2a | (DC2 + |DC8 - 2*|
|000038a0| 44 43 35 29 29 3b 0a 58 | 20 20 20 20 20 20 44 49 |DC5));.X| DI|
|000038b0| 56 49 44 45 5f 32 35 36 | 28 41 43 32 30 29 3b 0a |VIDE_256|(AC20);.|
|000038c0| 58 20 20 20 20 20 20 41 | 43 31 31 20 3d 20 28 35 |X A|C11 = (5|
|000038d0| 20 2a 20 28 28 44 43 31 | 20 2d 20 44 43 33 29 20 | * ((DC1| - DC3) |
|000038e0| 2d 20 28 44 43 37 20 2d | 20 44 43 39 29 29 29 3b |- (DC7 -| DC9)));|
|000038f0| 0a 58 20 20 20 20 20 20 | 44 49 56 49 44 45 5f 32 |.X |DIVIDE_2|
|00003900| 35 36 28 41 43 31 31 29 | 3b 0a 58 20 20 20 20 20 |56(AC11)|;.X |
|00003910| 20 41 43 30 32 20 3d 20 | 28 39 20 2a 20 28 44 43 | AC02 = |(9 * (DC|
|00003920| 34 20 2b 20 44 43 36 20 | 2d 20 32 2a 44 43 35 29 |4 + DC6 |- 2*DC5)|
|00003930| 29 3b 0a 58 20 20 20 20 | 20 20 44 49 56 49 44 45 |);.X | DIVIDE|
|00003940| 5f 32 35 36 28 41 43 30 | 32 29 3b 0a 58 20 20 20 |_256(AC0|2);.X |
|00003950| 20 20 20 0a 58 20 20 20 | 20 20 20 2f 2a 20 49 20 | .X | /* I |
|00003960| 74 68 69 6e 6b 20 74 68 | 61 74 20 74 68 69 73 20 |think th|at this |
|00003970| 63 68 65 63 6b 73 20 74 | 6f 20 73 65 65 20 69 66 |checks t|o see if|
|00003980| 20 74 68 65 20 71 75 61 | 6e 74 69 73 61 74 69 6f | the qua|ntisatio|
|00003990| 6e 0a 58 20 20 20 20 20 | 20 20 2a 20 6f 6e 20 74 |n.X | * on t|
|000039a0| 68 65 20 74 72 61 6e 73 | 6d 69 74 74 69 6e 67 20 |he trans|mitting |
|000039b0| 73 69 64 65 20 77 6f 75 | 6c 64 20 68 61 76 65 20 |side wou|ld have |
|000039c0| 70 72 6f 64 75 63 65 64 | 20 74 68 69 73 0a 58 20 |produced| this.X |
|000039d0| 20 20 20 20 20 20 2a 20 | 61 6e 73 77 65 72 2e 20 | * |answer. |
|000039e0| 49 66 20 73 6f 2c 20 74 | 68 65 6e 20 77 65 20 75 |If so, t|hen we u|
|000039f0| 73 65 20 6f 75 72 20 28 | 68 6f 70 65 66 75 6c 6c |se our (|hopefull|
|00003a00| 79 20 62 65 74 74 65 72 | 29 0a 58 20 20 20 20 20 |y better|).X |
|00003a10| 20 20 2a 20 65 73 74 69 | 6d 61 74 65 2e 0a 58 20 | * esti|mate..X |
|00003a20| 20 20 20 20 20 20 2a 2f | 0a 58 0a 58 23 64 65 66 | */|.X.X#def|
|00003a30| 69 6e 65 20 41 42 53 28 | 78 29 09 28 28 78 29 20 |ine ABS(|x).((x) |
|00003a40| 3c 20 30 20 3f 20 2d 28 | 78 29 20 3a 20 28 78 29 |< 0 ? -(|x) : (x)|
|00003a50| 29 0a 58 0a 58 23 64 65 | 66 69 6e 65 20 43 4f 4e |).X.X#de|fine CON|
|00003a60| 44 5f 41 53 53 49 47 4e | 28 5f 61 63 2c 5f 6e 2c |D_ASSIGN|(_ac,_n,|
|00003a70| 5f 7a 29 20 20 20 69 66 | 20 28 28 41 42 53 28 6f |_z) if| ((ABS(o|
|00003a80| 75 74 70 75 74 5b 63 6f | 6c 5d 5b 5f 6e 5d 20 2d |utput[co|l][_n] -|
|00003a90| 20 28 5f 61 63 29 29 3c | 3c 31 29 20 3c 3d 20 51 | (_ac))<|<1) <= Q|
|00003aa0| 70 74 72 5b 5f 7a 5d 29 | 20 6f 75 74 70 75 74 5b |ptr[_z])| output[|
|00003ab0| 63 6f 6c 5d 5b 5f 6e 5d | 20 3d 20 28 4a 43 4f 45 |col][_n]| = (JCOE|
|00003ac0| 46 29 20 28 5f 61 63 29 | 0a 58 0a 58 20 20 20 20 |F) (_ac)|.X.X |
|00003ad0| 20 20 43 4f 4e 44 5f 41 | 53 53 49 47 4e 28 41 43 | COND_A|SSIGN(AC|
|00003ae0| 30 31 2c 20 20 31 2c 20 | 31 29 3b 0a 58 20 20 20 |01, 1, |1);.X |
|00003af0| 20 20 20 43 4f 4e 44 5f | 41 53 53 49 47 4e 28 41 | COND_|ASSIGN(A|
|00003b00| 43 30 32 2c 20 20 32 2c | 20 35 29 3b 0a 58 20 20 |C02, 2,| 5);.X |
|00003b10| 20 20 20 20 43 4f 4e 44 | 5f 41 53 53 49 47 4e 28 | COND|_ASSIGN(|
|00003b20| 41 43 31 30 2c 20 20 38 | 2c 20 32 29 3b 0a 58 20 |AC10, 8|, 2);.X |
|00003b30| 20 20 20 20 20 43 4f 4e | 44 5f 41 53 53 49 47 4e | CON|D_ASSIGN|
|00003b40| 28 41 43 31 31 2c 20 20 | 39 2c 20 34 29 3b 0a 58 |(AC11, |9, 4);.X|
|00003b50| 20 20 20 20 20 20 43 4f | 4e 44 5f 41 53 53 49 47 | CO|ND_ASSIG|
|00003b60| 4e 28 41 43 32 30 2c 20 | 31 36 2c 20 33 29 3b 0a |N(AC20, |16, 3);.|
|00003b70| 58 20 20 20 20 7d 0a 58 | 20 20 7d 0a 58 7d 0a 58 |X }.X| }.X}.X|
|00003b80| 0a 58 0a 58 2f 2a 0a 58 | 20 2a 20 54 68 65 20 6d |.X.X/*.X| * The m|
|00003b90| 65 74 68 6f 64 20 73 65 | 6c 65 63 74 69 6f 6e 20 |ethod se|lection |
|00003ba0| 72 6f 75 74 69 6e 65 20 | 66 6f 72 20 63 72 6f 73 |routine |for cros|
|00003bb0| 73 2d 62 6c 6f 63 6b 20 | 73 6d 6f 6f 74 68 69 6e |s-block |smoothin|
|00003bc0| 67 2e 0a 58 20 2a 2f 0a | 58 0a 58 47 4c 4f 42 41 |g..X */.|X.XGLOBA|
|00003bd0| 4c 20 76 6f 69 64 0a 58 | 6a 73 65 6c 62 73 6d 6f |L void.X|jselbsmo|
|00003be0| 6f 74 68 20 28 64 65 63 | 6f 6d 70 72 65 73 73 5f |oth (dec|ompress_|
|00003bf0| 69 6e 66 6f 5f 70 74 72 | 20 63 69 6e 66 6f 29 0a |info_ptr| cinfo).|
|00003c00| 58 7b 0a 58 20 20 2f 2a | 20 6a 75 73 74 20 6f 6e |X{.X /*| just on|
|00003c10| 65 20 69 6d 70 6c 65 6d | 65 6e 74 61 74 69 6f 6e |e implem|entation|
|00003c20| 20 66 6f 72 20 6e 6f 77 | 20 2a 2f 0a 58 20 20 63 | for now| */.X c|
|00003c30| 69 6e 66 6f 2d 3e 6d 65 | 74 68 6f 64 73 2d 3e 73 |info->me|thods->s|
|00003c40| 6d 6f 6f 74 68 5f 63 6f | 65 66 66 69 63 69 65 6e |mooth_co|efficien|
|00003c50| 74 73 20 3d 20 73 6d 6f | 6f 74 68 5f 63 6f 65 66 |ts = smo|oth_coef|
|00003c60| 66 69 63 69 65 6e 74 73 | 3b 0a 58 7d 0a 58 0a 58 |ficients|;.X}.X.X|
|00003c70| 23 65 6e 64 69 66 20 2f | 2a 20 42 4c 4f 43 4b 5f |#endif /|* BLOCK_|
|00003c80| 53 4d 4f 4f 54 48 49 4e | 47 5f 53 55 50 50 4f 52 |SMOOTHIN|G_SUPPOR|
|00003c90| 54 45 44 20 2a 2f 0a 45 | 4e 44 5f 4f 46 5f 46 49 |TED */.E|ND_OF_FI|
|00003ca0| 4c 45 0a 20 20 69 66 20 | 74 65 73 74 20 33 32 35 |LE. if |test 325|
|00003cb0| 39 20 2d 6e 65 20 60 77 | 63 20 2d 63 20 3c 27 6a |9 -ne `w|c -c <'j|
|00003cc0| 62 73 6d 6f 6f 74 68 2e | 63 27 60 3b 20 74 68 65 |bsmooth.|c'`; the|
|00003cd0| 6e 0a 20 20 20 20 65 63 | 68 6f 20 73 68 61 72 3a |n. ec|ho shar:|
|00003ce0| 20 5c 22 27 6a 62 73 6d | 6f 6f 74 68 2e 63 27 5c | \"'jbsm|ooth.c'\|
|00003cf0| 22 20 75 6e 70 61 63 6b | 65 64 20 77 69 74 68 20 |" unpack|ed with |
|00003d00| 77 72 6f 6e 67 20 73 69 | 7a 65 21 0a 20 20 66 69 |wrong si|ze!. fi|
|00003d10| 0a 20 20 23 20 65 6e 64 | 20 6f 66 20 27 6a 62 73 |. # end| of 'jbs|
|00003d20| 6d 6f 6f 74 68 2e 63 27 | 0a 66 69 0a 69 66 20 74 |mooth.c'|.fi.if t|
|00003d30| 65 73 74 20 2d 66 20 27 | 6a 63 6d 61 73 74 65 72 |est -f '|jcmaster|
|00003d40| 2e 63 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |.c' -a "|${1}" !=|
|00003d50| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|00003d60| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|00003d70| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|00003d80| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 6a 63 6d |ting fil|e \"'jcm|
|00003d90| 61 73 74 65 72 2e 63 27 | 5c 22 0a 65 6c 73 65 0a |aster.c'|\".else.|
|00003da0| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 | echo s|har: Ext|
|00003db0| 72 61 63 74 69 6e 67 20 | 5c 22 27 6a 63 6d 61 73 |racting |\"'jcmas|
|00003dc0| 74 65 72 2e 63 27 5c 22 | 20 5c 28 34 32 30 36 20 |ter.c'\"| \(4206 |
|00003dd0| 63 68 61 72 61 63 74 65 | 72 73 5c 29 0a 20 20 73 |characte|rs\). s|
|00003de0| 65 64 20 22 73 2f 5e 58 | 2f 2f 22 20 3e 27 6a 63 |ed "s/^X|//" >'jc|
|00003df0| 6d 61 73 74 65 72 2e 63 | 27 20 3c 3c 27 45 4e 44 |master.c|' <<'END|
|00003e00| 5f 4f 46 5f 46 49 4c 45 | 27 0a 58 2f 2a 0a 58 20 |_OF_FILE|'.X/*.X |
|00003e10| 2a 20 6a 63 6d 61 73 74 | 65 72 2e 63 0a 58 20 2a |* jcmast|er.c.X *|
|00003e20| 0a 58 20 2a 20 43 6f 70 | 79 72 69 67 68 74 20 28 |.X * Cop|yright (|
|00003e30| 43 29 20 31 39 39 31 2c | 20 31 39 39 32 2c 20 54 |C) 1991,| 1992, T|
|00003e40| 68 6f 6d 61 73 20 47 2e | 20 4c 61 6e 65 2e 0a 58 |homas G.| Lane..X|
|00003e50| 20 2a 20 54 68 69 73 20 | 66 69 6c 65 20 69 73 20 | * This |file is |
|00003e60| 70 61 72 74 20 6f 66 20 | 74 68 65 20 49 6e 64 65 |part of |the Inde|
|00003e70| 70 65 6e 64 65 6e 74 20 | 4a 50 45 47 20 47 72 6f |pendent |JPEG Gro|
|00003e80| 75 70 27 73 20 73 6f 66 | 74 77 61 72 65 2e 0a 58 |up's sof|tware..X|
|00003e90| 20 2a 20 46 6f 72 20 63 | 6f 6e 64 69 74 69 6f 6e | * For c|ondition|
|00003ea0| 73 20 6f 66 20 64 69 73 | 74 72 69 62 75 74 69 6f |s of dis|tributio|
|00003eb0| 6e 20 61 6e 64 20 75 73 | 65 2c 20 73 65 65 20 74 |n and us|e, see t|
|00003ec0| 68 65 20 61 63 63 6f 6d | 70 61 6e 79 69 6e 67 20 |he accom|panying |
|00003ed0| 52 45 41 44 4d 45 20 66 | 69 6c 65 2e 0a 58 20 2a |README f|ile..X *|
|00003ee0| 0a 58 20 2a 20 54 68 69 | 73 20 66 69 6c 65 20 63 |.X * Thi|s file c|
|00003ef0| 6f 6e 74 61 69 6e 73 20 | 74 68 65 20 6d 61 69 6e |ontains |the main|
|00003f00| 20 63 6f 6e 74 72 6f 6c | 20 66 6f 72 20 74 68 65 | control| for the|
|00003f10| 20 4a 50 45 47 20 63 6f | 6d 70 72 65 73 73 6f 72 | JPEG co|mpressor|
|00003f20| 2e 0a 58 20 2a 20 54 68 | 65 20 73 79 73 74 65 6d |..X * Th|e system|
|00003f30| 2d 64 65 70 65 6e 64 65 | 6e 74 20 28 75 73 65 72 |-depende|nt (user|
|00003f40| 20 69 6e 74 65 72 66 61 | 63 65 29 20 63 6f 64 65 | interfa|ce) code|
|00003f50| 20 73 68 6f 75 6c 64 20 | 63 61 6c 6c 20 6a 70 65 | should |call jpe|
|00003f60| 67 5f 63 6f 6d 70 72 65 | 73 73 28 29 0a 58 20 2a |g_compre|ss().X *|
|00003f70| 20 61 66 74 65 72 20 64 | 6f 69 6e 67 20 61 70 70 | after d|oing app|
|00003f80| 72 6f 70 72 69 61 74 65 | 20 73 65 74 75 70 20 6f |ropriate| setup o|
|00003f90| 66 20 74 68 65 20 63 6f | 6d 70 72 65 73 73 5f 69 |f the co|mpress_i|
|00003fa0| 6e 66 6f 5f 73 74 72 75 | 63 74 20 70 61 72 61 6d |nfo_stru|ct param|
|00003fb0| 65 74 65 72 2e 0a 58 20 | 2a 2f 0a 58 0a 58 23 69 |eter..X |*/.X.X#i|
|00003fc0| 6e 63 6c 75 64 65 20 22 | 6a 69 6e 63 6c 75 64 65 |nclude "|jinclude|
|00003fd0| 2e 68 22 0a 58 0a 58 0a | 58 4d 45 54 48 4f 44 44 |.h".X.X.|XMETHODD|
|00003fe0| 45 46 20 76 6f 69 64 0a | 58 63 5f 70 65 72 5f 73 |EF void.|Xc_per_s|
|00003ff0| 63 61 6e 5f 6d 65 74 68 | 6f 64 5f 73 65 6c 65 63 |can_meth|od_selec|
|00004000| 74 69 6f 6e 20 28 63 6f | 6d 70 72 65 73 73 5f 69 |tion (co|mpress_i|
|00004010| 6e 66 6f 5f 70 74 72 20 | 63 69 6e 66 6f 29 0a 58 |nfo_ptr |cinfo).X|
|00004020| 2f 2a 20 43 65 6e 74 72 | 61 6c 20 70 6f 69 6e 74 |/* Centr|al point|
|00004030| 20 66 6f 72 20 70 65 72 | 2d 73 63 61 6e 20 6d 65 | for per|-scan me|
|00004040| 74 68 6f 64 20 73 65 6c | 65 63 74 69 6f 6e 20 2a |thod sel|ection *|
|00004050| 2f 0a 58 7b 0a 58 20 20 | 2f 2a 20 45 64 67 65 20 |/.X{.X |/* Edge |
|00004060| 65 78 70 61 6e 73 69 6f | 6e 20 2a 2f 0a 58 20 20 |expansio|n */.X |
|00004070| 6a 73 65 6c 65 78 70 61 | 6e 64 28 63 69 6e 66 6f |jselexpa|nd(cinfo|
|00004080| 29 3b 0a 58 20 20 2f 2a | 20 44 6f 77 6e 73 61 6d |);.X /*| Downsam|
|00004090| 70 6c 69 6e 67 20 6f 66 | 20 70 69 78 65 6c 73 20 |pling of| pixels |
|000040a0| 2a 2f 0a 58 20 20 6a 73 | 65 6c 64 6f 77 6e 73 61 |*/.X js|eldownsa|
|000040b0| 6d 70 6c 65 28 63 69 6e | 66 6f 29 3b 0a 58 20 20 |mple(cin|fo);.X |
|000040c0| 2f 2a 20 4d 43 55 20 65 | 78 74 72 61 63 74 69 6f |/* MCU e|xtractio|
|000040d0| 6e 20 2a 2f 0a 58 20 20 | 6a 73 65 6c 63 6d 63 75 |n */.X |jselcmcu|
|000040e0| 28 63 69 6e 66 6f 29 3b | 0a 58 7d 0a 58 0a 58 0a |(cinfo);|.X}.X.X.|
|000040f0| 58 4c 4f 43 41 4c 20 76 | 6f 69 64 0a 58 63 5f 69 |XLOCAL v|oid.Xc_i|
|00004100| 6e 69 74 69 61 6c 5f 6d | 65 74 68 6f 64 5f 73 65 |nitial_m|ethod_se|
|00004110| 6c 65 63 74 69 6f 6e 20 | 28 63 6f 6d 70 72 65 73 |lection |(compres|
|00004120| 73 5f 69 6e 66 6f 5f 70 | 74 72 20 63 69 6e 66 6f |s_info_p|tr cinfo|
|00004130| 29 0a 58 2f 2a 20 43 65 | 6e 74 72 61 6c 20 70 6f |).X/* Ce|ntral po|
|00004140| 69 6e 74 20 66 6f 72 20 | 69 6e 69 74 69 61 6c 20 |int for |initial |
|00004150| 6d 65 74 68 6f 64 20 73 | 65 6c 65 63 74 69 6f 6e |method s|election|
|00004160| 20 2a 2f 0a 58 7b 0a 58 | 20 20 2f 2a 20 49 6e 70 | */.X{.X| /* Inp|
|00004170| 75 74 20 69 6d 61 67 65 | 20 72 65 61 64 69 6e 67 |ut image| reading|
|00004180| 20 6d 65 74 68 6f 64 20 | 73 65 6c 65 63 74 69 6f | method |selectio|
|00004190| 6e 20 69 73 20 61 6c 72 | 65 61 64 79 20 64 6f 6e |n is alr|eady don|
|000041a0| 65 2e 20 2a 2f 0a 58 20 | 20 2f 2a 20 53 6f 20 69 |e. */.X | /* So i|
|000041b0| 73 20 6f 75 74 70 75 74 | 20 66 69 6c 65 20 68 65 |s output| file he|
|000041c0| 61 64 65 72 20 66 6f 72 | 6d 61 74 74 69 6e 67 20 |ader for|matting |
|000041d0| 28 62 6f 74 68 20 61 72 | 65 20 64 6f 6e 65 20 62 |(both ar|e done b|
|000041e0| 79 20 75 73 65 72 20 69 | 6e 74 65 72 66 61 63 65 |y user i|nterface|
|000041f0| 29 2e 20 2a 2f 0a 58 0a | 58 20 20 2f 2a 20 47 61 |). */.X.|X /* Ga|
|00004200| 6d 6d 61 20 61 6e 64 20 | 63 6f 6c 6f 72 20 73 70 |mma and |color sp|
|00004210| 61 63 65 20 63 6f 6e 76 | 65 72 73 69 6f 6e 20 2a |ace conv|ersion *|
|00004220| 2f 0a 58 20 20 6a 73 65 | 6c 63 63 6f 6c 6f 72 28 |/.X jse|lccolor(|
|00004230| 63 69 6e 66 6f 29 3b 0a | 58 20 20 2f 2a 20 45 6e |cinfo);.|X /* En|
|00004240| 74 72 6f 70 79 20 65 6e | 63 6f 64 69 6e 67 3a 20 |tropy en|coding: |
|00004250| 65 69 74 68 65 72 20 48 | 75 66 66 6d 61 6e 20 6f |either H|uffman o|
|00004260| 72 20 61 72 69 74 68 6d | 65 74 69 63 20 63 6f 64 |r arithm|etic cod|
|00004270| 69 6e 67 2e 20 2a 2f 0a | 58 23 69 66 64 65 66 20 |ing. */.|X#ifdef |
|00004280| 43 5f 41 52 49 54 48 5f | 43 4f 44 49 4e 47 5f 53 |C_ARITH_|CODING_S|
|00004290| 55 50 50 4f 52 54 45 44 | 0a 58 20 20 6a 73 65 6c |UPPORTED|.X jsel|
|000042a0| 63 61 72 69 74 68 6d 65 | 74 69 63 28 63 69 6e 66 |carithme|tic(cinf|
|000042b0| 6f 29 3b 0a 58 23 65 6c | 73 65 0a 58 20 20 63 69 |o);.X#el|se.X ci|
|000042c0| 6e 66 6f 2d 3e 61 72 69 | 74 68 5f 63 6f 64 65 20 |nfo->ari|th_code |
|000042d0| 3d 20 46 41 4c 53 45 3b | 09 2f 2a 20 66 6f 72 63 |= FALSE;|./* forc|
|000042e0| 65 20 48 75 66 66 6d 61 | 6e 20 6d 6f 64 65 20 2a |e Huffma|n mode *|
|000042f0| 2f 0a 58 23 65 6e 64 69 | 66 0a 58 20 20 6a 73 65 |/.X#endi|f.X jse|
|00004300| 6c 63 68 75 66 66 6d 61 | 6e 28 63 69 6e 66 6f 29 |lchuffma|n(cinfo)|
|00004310| 3b 0a 58 20 20 2f 2a 20 | 50 69 70 65 6c 69 6e 65 |;.X /* |Pipeline|
|00004320| 20 63 6f 6e 74 72 6f 6c | 20 2a 2f 0a 58 20 20 6a | control| */.X j|
|00004330| 73 65 6c 63 70 69 70 65 | 6c 69 6e 65 28 63 69 6e |selcpipe|line(cin|
|00004340| 66 6f 29 3b 0a 58 20 20 | 2f 2a 20 4f 76 65 72 61 |fo);.X |/* Overa|
|00004350| 6c 6c 20 63 6f 6e 74 72 | 6f 6c 20 28 74 68 61 74 |ll contr|ol (that|
|00004360| 27 73 20 6d 65 21 29 20 | 2a 2f 0a 58 20 20 63 69 |'s me!) |*/.X ci|
|00004370| 6e 66 6f 2d 3e 6d 65 74 | 68 6f 64 73 2d 3e 63 5f |nfo->met|hods->c_|
|00004380| 70 65 72 5f 73 63 61 6e | 5f 6d 65 74 68 6f 64 5f |per_scan|_method_|
|00004390| 73 65 6c 65 63 74 69 6f | 6e 20 3d 20 63 5f 70 65 |selectio|n = c_pe|
|000043a0| 72 5f 73 63 61 6e 5f 6d | 65 74 68 6f 64 5f 73 65 |r_scan_m|ethod_se|
|000043b0| 6c 65 63 74 69 6f 6e 3b | 0a 58 7d 0a 58 0a 58 0a |lection;|.X}.X.X.|
|000043c0| 58 4c 4f 43 41 4c 20 76 | 6f 69 64 0a 58 69 6e 69 |XLOCAL v|oid.Xini|
|000043d0| 74 69 61 6c 5f 73 65 74 | 75 70 20 28 63 6f 6d 70 |tial_set|up (comp|
|000043e0| 72 65 73 73 5f 69 6e 66 | 6f 5f 70 74 72 20 63 69 |ress_inf|o_ptr ci|
|000043f0| 6e 66 6f 29 0a 58 2f 2a | 20 44 6f 20 63 6f 6d 70 |nfo).X/*| Do comp|
|00004400| 75 74 61 74 69 6f 6e 73 | 20 74 68 61 74 20 61 72 |utations| that ar|
|00004410| 65 20 6e 65 65 64 65 64 | 20 62 65 66 6f 72 65 20 |e needed| before |
|00004420| 69 6e 69 74 69 61 6c 20 | 6d 65 74 68 6f 64 20 73 |initial |method s|
|00004430| 65 6c 65 63 74 69 6f 6e | 20 2a 2f 0a 58 7b 0a 58 |election| */.X{.X|
|00004440| 20 20 73 68 6f 72 74 20 | 63 69 3b 0a 58 20 20 6a | short |ci;.X j|
|00004450| 70 65 67 5f 63 6f 6d 70 | 6f 6e 65 6e 74 5f 69 6e |peg_comp|onent_in|
|00004460| 66 6f 20 2a 63 6f 6d 70 | 70 74 72 3b 0a 58 0a 58 |fo *comp|ptr;.X.X|
|00004470| 20 20 2f 2a 20 43 6f 6d | 70 75 74 65 20 6d 61 78 | /* Com|pute max|
|00004480| 69 6d 75 6d 20 73 61 6d | 70 6c 69 6e 67 20 66 61 |imum sam|pling fa|
|00004490| 63 74 6f 72 73 3b 20 63 | 68 65 63 6b 20 66 61 63 |ctors; c|heck fac|
|000044a0| 74 6f 72 20 76 61 6c 69 | 64 69 74 79 20 2a 2f 0a |tor vali|dity */.|
|000044b0| 58 20 20 63 69 6e 66 6f | 2d 3e 6d 61 78 5f 68 5f |X cinfo|->max_h_|
|000044c0| 73 61 6d 70 5f 66 61 63 | 74 6f 72 20 3d 20 31 3b |samp_fac|tor = 1;|
|000044d0| 0a 58 20 20 63 69 6e 66 | 6f 2d 3e 6d 61 78 5f 76 |.X cinf|o->max_v|
|000044e0| 5f 73 61 6d 70 5f 66 61 | 63 74 6f 72 20 3d 20 31 |_samp_fa|ctor = 1|
|000044f0| 3b 0a 58 20 20 66 6f 72 | 20 28 63 69 20 3d 20 30 |;.X for| (ci = 0|
|00004500| 3b 20 63 69 20 3c 20 63 | 69 6e 66 6f 2d 3e 6e 75 |; ci < c|info->nu|
|00004510| 6d 5f 63 6f 6d 70 6f 6e | 65 6e 74 73 3b 20 63 69 |m_compon|ents; ci|
|00004520| 2b 2b 29 20 7b 0a 58 20 | 20 20 20 63 6f 6d 70 70 |++) {.X | compp|
|00004530| 74 72 20 3d 20 26 63 69 | 6e 66 6f 2d 3e 63 6f 6d |tr = &ci|nfo->com|
|00004540| 70 5f 69 6e 66 6f 5b 63 | 69 5d 3b 0a 58 20 20 20 |p_info[c|i];.X |
|00004550| 20 69 66 20 28 63 6f 6d | 70 70 74 72 2d 3e 68 5f | if (com|pptr->h_|
|00004560| 73 61 6d 70 5f 66 61 63 | 74 6f 72 3c 3d 30 20 7c |samp_fac|tor<=0 ||
|00004570| 7c 20 63 6f 6d 70 70 74 | 72 2d 3e 68 5f 73 61 6d || comppt|r->h_sam|
|00004580| 70 5f 66 61 63 74 6f 72 | 3e 4d 41 58 5f 53 41 4d |p_factor|>MAX_SAM|
|00004590| 50 5f 46 41 43 54 4f 52 | 20 7c 7c 0a 58 09 63 6f |P_FACTOR| ||.X.co|
|000045a0| 6d 70 70 74 72 2d 3e 76 | 5f 73 61 6d 70 5f 66 61 |mpptr->v|_samp_fa|
|000045b0| 63 74 6f 72 3c 3d 30 20 | 7c 7c 20 63 6f 6d 70 70 |ctor<=0 ||| compp|
|000045c0| 74 72 2d 3e 76 5f 73 61 | 6d 70 5f 66 61 63 74 6f |tr->v_sa|mp_facto|
|000045d0| 72 3e 4d 41 58 5f 53 41 | 4d 50 5f 46 41 43 54 4f |r>MAX_SA|MP_FACTO|
|000045e0| 52 29 0a 58 20 20 20 20 | 20 20 45 52 52 45 58 49 |R).X | ERREXI|
|000045f0| 54 28 63 69 6e 66 6f 2d | 3e 65 6d 65 74 68 6f 64 |T(cinfo-|>emethod|
|00004600| 73 2c 20 22 42 6f 67 75 | 73 20 73 61 6d 70 6c 69 |s, "Bogu|s sampli|
|00004610| 6e 67 20 66 61 63 74 6f | 72 73 22 29 3b 0a 58 20 |ng facto|rs");.X |
|00004620| 20 20 20 63 69 6e 66 6f | 2d 3e 6d 61 78 5f 68 5f | cinfo|->max_h_|
|00004630| 73 61 6d 70 5f 66 61 63 | 74 6f 72 20 3d 20 4d 41 |samp_fac|tor = MA|
|00004640| 58 28 63 69 6e 66 6f 2d | 3e 6d 61 78 5f 68 5f 73 |X(cinfo-|>max_h_s|
|00004650| 61 6d 70 5f 66 61 63 74 | 6f 72 2c 0a 58 09 09 09 |amp_fact|or,.X...|
|00004660| 09 20 20 20 63 6f 6d 70 | 70 74 72 2d 3e 68 5f 73 |. comp|ptr->h_s|
|00004670| 61 6d 70 5f 66 61 63 74 | 6f 72 29 3b 0a 58 20 20 |amp_fact|or);.X |
|00004680| 20 20 63 69 6e 66 6f 2d | 3e 6d 61 78 5f 76 5f 73 | cinfo-|>max_v_s|
|00004690| 61 6d 70 5f 66 61 63 74 | 6f 72 20 3d 20 4d 41 58 |amp_fact|or = MAX|
|000046a0| 28 63 69 6e 66 6f 2d 3e | 6d 61 78 5f 76 5f 73 61 |(cinfo->|max_v_sa|
|000046b0| 6d 70 5f 66 61 63 74 6f | 72 2c 0a 58 09 09 09 09 |mp_facto|r,.X....|
|000046c0| 20 20 20 63 6f 6d 70 70 | 74 72 2d 3e 76 5f 73 61 | compp|tr->v_sa|
|000046d0| 6d 70 5f 66 61 63 74 6f | 72 29 3b 0a 58 0a 58 20 |mp_facto|r);.X.X |
|000046e0| 20 7d 0a 58 0a 58 20 20 | 2f 2a 20 43 6f 6d 70 75 | }.X.X |/* Compu|
|000046f0| 74 65 20 6c 6f 67 69 63 | 61 6c 20 64 6f 77 6e 73 |te logic|al downs|
|00004700| 61 6d 70 6c 65 64 20 64 | 69 6d 65 6e 73 69 6f 6e |ampled d|imension|
|00004710| 73 20 6f 66 20 63 6f 6d | 70 6f 6e 65 6e 74 73 20 |s of com|ponents |
|00004720| 2a 2f 0a 58 20 20 66 6f | 72 20 28 63 69 20 3d 20 |*/.X fo|r (ci = |
|00004730| 30 3b 20 63 69 20 3c 20 | 63 69 6e 66 6f 2d 3e 6e |0; ci < |cinfo->n|
|00004740| 75 6d 5f 63 6f 6d 70 6f | 6e 65 6e 74 73 3b 20 63 |um_compo|nents; c|
|00004750| 69 2b 2b 29 20 7b 0a 58 | 20 20 20 20 63 6f 6d 70 |i++) {.X| comp|
|00004760| 70 74 72 20 3d 20 26 63 | 69 6e 66 6f 2d 3e 63 6f |ptr = &c|info->co|
|00004770| 6d 70 5f 69 6e 66 6f 5b | 63 69 5d 3b 0a 58 20 20 |mp_info[|ci];.X |
|00004780| 20 20 63 6f 6d 70 70 74 | 72 2d 3e 74 72 75 65 5f | comppt|r->true_|
|00004790| 63 6f 6d 70 5f 77 69 64 | 74 68 20 3d 20 28 63 69 |comp_wid|th = (ci|
|000047a0| 6e 66 6f 2d 3e 69 6d 61 | 67 65 5f 77 69 64 74 68 |nfo->ima|ge_width|
|000047b0| 20 2a 20 63 6f 6d 70 70 | 74 72 2d 3e 68 5f 73 61 | * compp|tr->h_sa|
|000047c0| 6d 70 5f 66 61 63 74 6f | 72 0a 58 09 09 09 09 2b |mp_facto|r.X....+|
|000047d0| 20 63 69 6e 66 6f 2d 3e | 6d 61 78 5f 68 5f 73 61 | cinfo->|max_h_sa|
|000047e0| 6d 70 5f 66 61 63 74 6f | 72 20 2d 20 31 29 0a 58 |mp_facto|r - 1).X|
|000047f0| 09 09 09 09 2f 20 63 69 | 6e 66 6f 2d 3e 6d 61 78 |..../ ci|nfo->max|
|00004800| 5f 68 5f 73 61 6d 70 5f | 66 61 63 74 6f 72 3b 0a |_h_samp_|factor;.|
|00004810| 58 20 20 20 20 63 6f 6d | 70 70 74 72 2d 3e 74 72 |X com|pptr->tr|
|00004820| 75 65 5f 63 6f 6d 70 5f | 68 65 69 67 68 74 20 3d |ue_comp_|height =|
|00004830| 20 28 63 69 6e 66 6f 2d | 3e 69 6d 61 67 65 5f 68 | (cinfo-|>image_h|
|00004840| 65 69 67 68 74 20 2a 20 | 63 6f 6d 70 70 74 72 2d |eight * |compptr-|
|00004850| 3e 76 5f 73 61 6d 70 5f | 66 61 63 74 6f 72 0a 58 |>v_samp_|factor.X|
|00004860| 09 09 09 09 20 2b 20 63 | 69 6e 66 6f 2d 3e 6d 61 |.... + c|info->ma|
|00004870| 78 5f 76 5f 73 61 6d 70 | 5f 66 61 63 74 6f 72 20 |x_v_samp|_factor |
|00004880| 2d 20 31 29 0a 58 09 09 | 09 09 20 2f 20 63 69 6e |- 1).X..|.. / cin|
|00004890| 66 6f 2d 3e 6d 61 78 5f | 76 5f 73 61 6d 70 5f 66 |fo->max_|v_samp_f|
|000048a0| 61 63 74 6f 72 3b 0a 58 | 20 20 7d 0a 58 7d 0a 58 |actor;.X| }.X}.X|
|000048b0| 0a 58 0a 58 2f 2a 0a 58 | 20 2a 20 54 68 69 73 20 |.X.X/*.X| * This |
|000048c0| 69 73 20 74 68 65 20 6d | 61 69 6e 20 65 6e 74 72 |is the m|ain entr|
|000048d0| 79 20 70 6f 69 6e 74 20 | 74 6f 20 74 68 65 20 4a |y point |to the J|
|000048e0| 50 45 47 20 63 6f 6d 70 | 72 65 73 73 6f 72 2e 0a |PEG comp|ressor..|
|000048f0| 58 20 2a 2f 0a 58 0a 58 | 0a 58 47 4c 4f 42 41 4c |X */.X.X|.XGLOBAL|
|00004900| 20 76 6f 69 64 0a 58 6a | 70 65 67 5f 63 6f 6d 70 | void.Xj|peg_comp|
|00004910| 72 65 73 73 20 28 63 6f | 6d 70 72 65 73 73 5f 69 |ress (co|mpress_i|
|00004920| 6e 66 6f 5f 70 74 72 20 | 63 69 6e 66 6f 29 0a 58 |nfo_ptr |cinfo).X|
|00004930| 7b 0a 58 20 20 2f 2a 20 | 49 6e 69 74 20 70 61 73 |{.X /* |Init pas|
|00004940| 73 20 63 6f 75 6e 74 73 | 20 74 6f 20 30 20 2d 2d |s counts| to 0 --|
|00004950| 2d 20 74 6f 74 61 6c 5f | 70 61 73 73 65 73 20 69 |- total_|passes i|
|00004960| 73 20 61 64 6a 75 73 74 | 65 64 20 69 6e 20 6d 65 |s adjust|ed in me|
|00004970| 74 68 6f 64 20 73 65 6c | 65 63 74 69 6f 6e 20 2a |thod sel|ection *|
|00004980| 2f 0a 58 20 20 63 69 6e | 66 6f 2d 3e 74 6f 74 61 |/.X cin|fo->tota|
|00004990| 6c 5f 70 61 73 73 65 73 | 20 3d 20 30 3b 0a 58 20 |l_passes| = 0;.X |
|000049a0| 20 63 69 6e 66 6f 2d 3e | 63 6f 6d 70 6c 65 74 65 | cinfo->|complete|
|000049b0| 64 5f 70 61 73 73 65 73 | 20 3d 20 30 3b 0a 58 0a |d_passes| = 0;.X.|
|000049c0| 58 20 20 2f 2a 20 52 65 | 61 64 20 74 68 65 20 69 |X /* Re|ad the i|
|000049d0| 6e 70 75 74 20 66 69 6c | 65 20 68 65 61 64 65 72 |nput fil|e header|
|000049e0| 3a 20 64 65 74 65 72 6d | 69 6e 65 20 69 6d 61 67 |: determ|ine imag|
|000049f0| 65 20 73 69 7a 65 20 26 | 20 63 6f 6d 70 6f 6e 65 |e size &| compone|
|00004a00| 6e 74 20 63 6f 75 6e 74 | 2e 0a 58 20 20 20 2a 20 |nt count|..X * |
|00004a10| 4e 4f 54 45 3a 20 74 68 | 65 20 75 73 65 72 20 69 |NOTE: th|e user i|
|00004a20| 6e 74 65 72 66 61 63 65 | 20 6d 75 73 74 20 68 61 |nterface| must ha|
|00004a30| 76 65 20 69 6e 69 74 69 | 61 6c 69 7a 65 64 20 74 |ve initi|alized t|
|00004a40| 68 65 20 69 6e 70 75 74 | 5f 69 6e 69 74 20 6d 65 |he input|_init me|
|00004a50| 74 68 6f 64 0a 58 20 20 | 20 2a 20 70 6f 69 6e 74 |thod.X | * point|
|00004a60| 65 72 20 28 65 67 2c 20 | 62 79 20 63 61 6c 6c 69 |er (eg, |by calli|
|00004a70| 6e 67 20 6a 73 65 6c 72 | 70 70 6d 29 20 62 65 66 |ng jselr|ppm) bef|
|00004a80| 6f 72 65 20 63 61 6c 6c | 69 6e 67 20 6d 65 2e 0a |ore call|ing me..|
|00004a90| 58 20 20 20 2a 20 54 68 | 65 20 6f 74 68 65 72 20 |X * Th|e other |
|00004aa0| 66 69 6c 65 20 72 65 61 | 64 69 6e 67 20 6d 65 74 |file rea|ding met|
|00004ab0| 68 6f 64 73 20 28 67 65 | 74 5f 69 6e 70 75 74 5f |hods (ge|t_input_|
|00004ac0| 72 6f 77 20 65 74 63 2e | 29 20 77 65 72 65 20 70 |row etc.|) were p|
|00004ad0| 72 6f 62 61 62 6c 79 0a | 58 20 20 20 2a 20 73 65 |robably.|X * se|
|00004ae0| 74 20 61 74 20 74 68 65 | 20 73 61 6d 65 20 74 69 |t at the| same ti|
|00004af0| 6d 65 2c 20 62 75 74 20 | 63 6f 75 6c 64 20 62 65 |me, but |could be|
|00004b00| 20 73 65 74 20 75 70 20 | 62 79 20 69 6e 70 75 74 | set up |by input|
|00004b10| 5f 69 6e 69 74 20 69 74 | 73 65 6c 66 2c 0a 58 20 |_init it|self,.X |
|00004b20| 20 20 2a 20 6f 72 20 62 | 79 20 63 5f 75 69 5f 6d | * or b|y c_ui_m|
|00004b30| 65 74 68 6f 64 5f 73 65 | 6c 65 63 74 69 6f 6e 2e |ethod_se|lection.|
|00004b40| 0a 58 20 20 20 2a 2f 0a | 58 20 20 28 2a 63 69 6e |.X */.|X (*cin|
|00004b50| 66 6f 2d 3e 6d 65 74 68 | 6f 64 73 2d 3e 69 6e 70 |fo->meth|ods->inp|
|00004b60| 75 74 5f 69 6e 69 74 29 | 20 28 63 69 6e 66 6f 29 |ut_init)| (cinfo)|
|00004b70| 3b 0a 58 0a 58 20 20 2f | 2a 20 47 69 76 65 20 55 |;.X.X /|* Give U|
|00004b80| 49 20 61 20 63 68 61 6e | 63 65 20 74 6f 20 61 64 |I a chan|ce to ad|
|00004b90| 6a 75 73 74 20 63 6f 6d | 70 72 65 73 73 69 6f 6e |just com|pression|
|00004ba0| 20 70 61 72 61 6d 65 74 | 65 72 73 20 61 6e 64 20 | paramet|ers and |
|00004bb0| 73 65 6c 65 63 74 20 2a | 2f 0a 58 20 20 2f 2a 20 |select *|/.X /* |
|00004bc0| 6f 75 74 70 75 74 20 66 | 69 6c 65 20 66 6f 72 6d |output f|ile form|
|00004bd0| 61 74 20 62 61 73 65 64 | 20 6f 6e 20 72 65 73 75 |at based| on resu|
|00004be0| 6c 74 73 20 6f 66 20 69 | 6e 70 75 74 5f 69 6e 69 |lts of i|nput_ini|
|00004bf0| 74 2e 20 2a 2f 0a 58 20 | 20 28 2a 63 69 6e 66 6f |t. */.X | (*cinfo|
|00004c00| 2d 3e 6d 65 74 68 6f 64 | 73 2d 3e 63 5f 75 69 5f |->method|s->c_ui_|
|00004c10| 6d 65 74 68 6f 64 5f 73 | 65 6c 65 63 74 69 6f 6e |method_s|election|
|00004c20| 29 20 28 63 69 6e 66 6f | 29 3b 0a 58 0a 58 20 20 |) (cinfo|);.X.X |
|00004c30| 2f 2a 20 4e 6f 77 20 73 | 65 6c 65 63 74 20 6d 65 |/* Now s|elect me|
|00004c40| 74 68 6f 64 73 20 66 6f | 72 20 63 6f 6d 70 72 65 |thods fo|r compre|
|00004c50| 73 73 69 6f 6e 20 73 74 | 65 70 73 2e 20 2a 2f 0a |ssion st|eps. */.|
|00004c60| 58 20 20 69 6e 69 74 69 | 61 6c 5f 73 65 74 75 70 |X initi|al_setup|
|00004c70| 28 63 69 6e 66 6f 29 3b | 0a 58 20 20 63 5f 69 6e |(cinfo);|.X c_in|
|00004c80| 69 74 69 61 6c 5f 6d 65 | 74 68 6f 64 5f 73 65 6c |itial_me|thod_sel|
|00004c90| 65 63 74 69 6f 6e 28 63 | 69 6e 66 6f 29 3b 0a 58 |ection(c|info);.X|
|00004ca0| 0a 58 20 20 2f 2a 20 49 | 6e 69 74 69 61 6c 69 7a |.X /* I|nitializ|
|00004cb0| 65 20 74 68 65 20 6f 75 | 74 70 75 74 20 66 69 6c |e the ou|tput fil|
|00004cc0| 65 20 26 20 6f 74 68 65 | 72 20 6d 6f 64 75 6c 65 |e & othe|r module|
|00004cd0| 73 20 61 73 20 6e 65 65 | 64 65 64 20 2a 2f 0a 58 |s as nee|ded */.X|
|00004ce0| 20 20 2f 2a 20 28 65 6e | 74 72 6f 70 79 5f 65 6e | /* (en|tropy_en|
|00004cf0| 63 6f 64 65 72 20 69 73 | 20 69 6e 69 74 65 64 20 |coder is| inited |
|00004d00| 62 79 20 70 69 70 65 6c | 69 6e 65 20 63 6f 6e 74 |by pipel|ine cont|
|00004d10| 72 6f 6c 6c 65 72 29 20 | 2a 2f 0a 58 0a 58 20 20 |roller) |*/.X.X |
|00004d20| 28 2a 63 69 6e 66 6f 2d | 3e 6d 65 74 68 6f 64 73 |(*cinfo-|>methods|
|00004d30| 2d 3e 63 6f 6c 6f 72 69 | 6e 5f 69 6e 69 74 29 20 |->colori|n_init) |
|00004d40| 28 63 69 6e 66 6f 29 3b | 0a 58 20 20 28 2a 63 69 |(cinfo);|.X (*ci|
|00004d50| 6e 66 6f 2d 3e 6d 65 74 | 68 6f 64 73 2d 3e 77 72 |nfo->met|hods->wr|
|00004d60| 69 74 65 5f 66 69 6c 65 | 5f 68 65 61 64 65 72 29 |ite_file|_header)|
|00004d70| 20 28 63 69 6e 66 6f 29 | 3b 0a 58 0a 58 20 20 2f | (cinfo)|;.X.X /|
|00004d80| 2a 20 41 6e 64 20 6c 65 | 74 20 74 68 65 20 70 69 |* And le|t the pi|
|00004d90| 70 65 6c 69 6e 65 20 63 | 6f 6e 74 72 6f 6c 6c 65 |peline c|ontrolle|
|00004da0| 72 20 64 6f 20 74 68 65 | 20 72 65 73 74 2e 20 2a |r do the| rest. *|
|00004db0| 2f 0a 58 20 20 28 2a 63 | 69 6e 66 6f 2d 3e 6d 65 |/.X (*c|info->me|
|00004dc0| 74 68 6f 64 73 2d 3e 63 | 5f 70 69 70 65 6c 69 6e |thods->c|_pipelin|
|00004dd0| 65 5f 63 6f 6e 74 72 6f | 6c 6c 65 72 29 20 28 63 |e_contro|ller) (c|
|00004de0| 69 6e 66 6f 29 3b 0a 58 | 0a 58 20 20 2f 2a 20 46 |info);.X|.X /* F|
|00004df0| 69 6e 69 73 68 20 6f 75 | 74 70 75 74 20 66 69 6c |inish ou|tput fil|
|00004e00| 65 2c 20 72 65 6c 65 61 | 73 65 20 77 6f 72 6b 69 |e, relea|se worki|
|00004e10| 6e 67 20 73 74 6f 72 61 | 67 65 2c 20 65 74 63 20 |ng stora|ge, etc |
|00004e20| 2a 2f 0a 58 20 20 28 2a | 63 69 6e 66 6f 2d 3e 6d |*/.X (*|cinfo->m|
|00004e30| 65 74 68 6f 64 73 2d 3e | 77 72 69 74 65 5f 66 69 |ethods->|write_fi|
|00004e40| 6c 65 5f 74 72 61 69 6c | 65 72 29 20 28 63 69 6e |le_trail|er) (cin|
|00004e50| 66 6f 29 3b 0a 58 20 20 | 28 2a 63 69 6e 66 6f 2d |fo);.X |(*cinfo-|
|00004e60| 3e 6d 65 74 68 6f 64 73 | 2d 3e 63 6f 6c 6f 72 69 |>methods|->colori|
|00004e70| 6e 5f 74 65 72 6d 29 20 | 28 63 69 6e 66 6f 29 3b |n_term) |(cinfo);|
|00004e80| 0a 58 20 20 28 2a 63 69 | 6e 66 6f 2d 3e 6d 65 74 |.X (*ci|nfo->met|
|00004e90| 68 6f 64 73 2d 3e 69 6e | 70 75 74 5f 74 65 72 6d |hods->in|put_term|
|00004ea0| 29 20 28 63 69 6e 66 6f | 29 3b 0a 58 0a 58 20 20 |) (cinfo|);.X.X |
|00004eb0| 28 2a 63 69 6e 66 6f 2d | 3e 65 6d 65 74 68 6f 64 |(*cinfo-|>emethod|
|00004ec0| 73 2d 3e 66 72 65 65 5f | 61 6c 6c 29 20 28 29 3b |s->free_|all) ();|
|00004ed0| 0a 58 0a 58 20 20 2f 2a | 20 4d 79 2c 20 74 68 61 |.X.X /*| My, tha|
|00004ee0| 74 20 77 61 73 20 65 61 | 73 79 2c 20 77 61 73 6e |t was ea|sy, wasn|
|00004ef0| 27 74 20 69 74 3f 20 2a | 2f 0a 58 7d 0a 45 4e 44 |'t it? *|/.X}.END|
|00004f00| 5f 4f 46 5f 46 49 4c 45 | 0a 20 20 69 66 20 74 65 |_OF_FILE|. if te|
|00004f10| 73 74 20 34 32 30 36 20 | 2d 6e 65 20 60 77 63 20 |st 4206 |-ne `wc |
|00004f20| 2d 63 20 3c 27 6a 63 6d | 61 73 74 65 72 2e 63 27 |-c <'jcm|aster.c'|
|00004f30| 60 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f |`; then.| echo|
|00004f40| 20 73 68 61 72 3a 20 5c | 22 27 6a 63 6d 61 73 74 | shar: \|"'jcmast|
|00004f50| 65 72 2e 63 27 5c 22 20 | 75 6e 70 61 63 6b 65 64 |er.c'\" |unpacked|
|00004f60| 20 77 69 74 68 20 77 72 | 6f 6e 67 20 73 69 7a 65 | with wr|ong size|
|00004f70| 21 0a 20 20 66 69 0a 20 | 20 23 20 65 6e 64 20 6f |!. fi. | # end o|
|00004f80| 66 20 27 6a 63 6d 61 73 | 74 65 72 2e 63 27 0a 66 |f 'jcmas|ter.c'.f|
|00004f90| 69 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 6a 65 |i.if tes|t -f 'je|
|00004fa0| 72 72 6f 72 2e 63 27 20 | 2d 61 20 22 24 7b 31 7d |rror.c' |-a "${1}|
|00004fb0| 22 20 21 3d 20 22 2d 63 | 22 20 3b 20 74 68 65 6e |" != "-c|" ; then|
|00004fc0| 20 0a 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 57 | . echo| shar: W|
|00004fd0| 69 6c 6c 20 6e 6f 74 20 | 63 6c 6f 62 62 65 72 20 |ill not |clobber |
|00004fe0| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 5c 22 |existing| file \"|
|00004ff0| 27 6a 65 72 72 6f 72 2e | 63 27 5c 22 0a 65 6c 73 |'jerror.|c'\".els|
|00005000| 65 0a 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 45 |e. echo| shar: E|
|00005010| 78 74 72 61 63 74 69 6e | 67 20 5c 22 27 6a 65 72 |xtractin|g \"'jer|
|00005020| 72 6f 72 2e 63 27 5c 22 | 20 5c 28 32 36 34 30 20 |ror.c'\"| \(2640 |
|00005030| 63 68 61 72 61 63 74 65 | 72 73 5c 29 0a 20 20 73 |characte|rs\). s|
|00005040| 65 64 20 22 73 2f 5e 58 | 2f 2f 22 20 3e 27 6a 65 |ed "s/^X|//" >'je|
|00005050| 72 72 6f 72 2e 63 27 20 | 3c 3c 27 45 4e 44 5f 4f |rror.c' |<<'END_O|
|00005060| 46 5f 46 49 4c 45 27 0a | 58 2f 2a 0a 58 20 2a 20 |F_FILE'.|X/*.X * |
|00005070| 6a 65 72 72 6f 72 2e 63 | 0a 58 20 2a 0a 58 20 2a |jerror.c|.X *.X *|
|00005080| 20 43 6f 70 79 72 69 67 | 68 74 20 28 43 29 20 31 | Copyrig|ht (C) 1|
|00005090| 39 39 31 2c 20 31 39 39 | 32 2c 20 54 68 6f 6d 61 |991, 199|2, Thoma|
|000050a0| 73 20 47 2e 20 4c 61 6e | 65 2e 0a 58 20 2a 20 54 |s G. Lan|e..X * T|
|000050b0| 68 69 73 20 66 69 6c 65 | 20 69 73 20 70 61 72 74 |his file| is part|
|000050c0| 20 6f 66 20 74 68 65 20 | 49 6e 64 65 70 65 6e 64 | of the |Independ|
|000050d0| 65 6e 74 20 4a 50 45 47 | 20 47 72 6f 75 70 27 73 |ent JPEG| Group's|
|000050e0| 20 73 6f 66 74 77 61 72 | 65 2e 0a 58 20 2a 20 46 | softwar|e..X * F|
|000050f0| 6f 72 20 63 6f 6e 64 69 | 74 69 6f 6e 73 20 6f 66 |or condi|tions of|
|00005100| 20 64 69 73 74 72 69 62 | 75 74 69 6f 6e 20 61 6e | distrib|ution an|
|00005110| 64 20 75 73 65 2c 20 73 | 65 65 20 74 68 65 20 61 |d use, s|ee the a|
|00005120| 63 63 6f 6d 70 61 6e 79 | 69 6e 67 20 52 45 41 44 |ccompany|ing READ|
|00005130| 4d 45 20 66 69 6c 65 2e | 0a 58 20 2a 0a 58 20 2a |ME file.|.X *.X *|
|00005140| 20 54 68 69 73 20 66 69 | 6c 65 20 63 6f 6e 74 61 | This fi|le conta|
|00005150| 69 6e 73 20 73 69 6d 70 | 6c 65 20 65 72 72 6f 72 |ins simp|le error|
|00005160| 2d 72 65 70 6f 72 74 69 | 6e 67 20 61 6e 64 20 74 |-reporti|ng and t|
|00005170| 72 61 63 65 2d 6d 65 73 | 73 61 67 65 20 72 6f 75 |race-mes|sage rou|
|00005180| 74 69 6e 65 73 2e 0a 58 | 20 2a 20 54 68 65 73 65 |tines..X| * These|
|00005190| 20 61 72 65 20 73 75 69 | 74 61 62 6c 65 20 66 6f | are sui|table fo|
|000051a0| 72 20 55 6e 69 78 2d 6c | 69 6b 65 20 73 79 73 74 |r Unix-l|ike syst|
|000051b0| 65 6d 73 20 61 6e 64 20 | 6f 74 68 65 72 73 20 77 |ems and |others w|
|000051c0| 68 65 72 65 20 77 72 69 | 74 69 6e 67 20 74 6f 0a |here wri|ting to.|
|000051d0| 58 20 2a 20 73 74 64 65 | 72 72 20 69 73 20 74 68 |X * stde|rr is th|
|000051e0| 65 20 72 69 67 68 74 20 | 74 68 69 6e 67 20 74 6f |e right |thing to|
|000051f0| 20 64 6f 2e 20 20 49 66 | 20 74 68 65 20 4a 50 45 | do. If| the JPE|
|00005200| 47 20 73 6f 66 74 77 61 | 72 65 20 69 73 20 69 6e |G softwa|re is in|
|00005210| 74 65 67 72 61 74 65 64 | 0a 58 20 2a 20 69 6e 74 |tegrated|.X * int|
|00005220| 6f 20 61 20 6c 61 72 67 | 65 72 20 61 70 70 6c 69 |o a larg|er appli|
|00005230| 63 61 74 69 6f 6e 2c 20 | 79 6f 75 20 6d 61 79 20 |cation, |you may |
|00005240| 77 65 6c 6c 20 6e 65 65 | 64 20 74 6f 20 72 65 70 |well nee|d to rep|
|00005250| 6c 61 63 65 20 74 68 65 | 73 65 2e 0a 58 20 2a 0a |lace the|se..X *.|
|00005260| 58 20 2a 20 54 68 65 20 | 65 72 72 6f 72 5f 65 78 |X * The |error_ex|
|00005270| 69 74 28 29 20 72 6f 75 | 74 69 6e 65 20 73 68 6f |it() rou|tine sho|
|00005280| 75 6c 64 20 6e 6f 74 20 | 72 65 74 75 72 6e 20 74 |uld not |return t|
|00005290| 6f 20 69 74 73 20 63 61 | 6c 6c 65 72 2e 20 20 57 |o its ca|ller. W|
|000052a0| 69 74 68 69 6e 20 61 0a | 58 20 2a 20 6c 61 72 67 |ithin a.|X * larg|
|000052b0| 65 72 20 61 70 70 6c 69 | 63 61 74 69 6f 6e 2c 20 |er appli|cation, |
|000052c0| 79 6f 75 20 6d 69 67 68 | 74 20 77 61 6e 74 20 74 |you migh|t want t|
|000052d0| 6f 20 68 61 76 65 20 69 | 74 20 64 6f 20 61 20 6c |o have i|t do a l|
|000052e0| 6f 6e 67 6a 6d 70 28 29 | 20 74 6f 20 72 65 74 75 |ongjmp()| to retu|
|000052f0| 72 6e 0a 58 20 2a 20 63 | 6f 6e 74 72 6f 6c 20 74 |rn.X * c|ontrol t|
|00005300| 6f 20 74 68 65 20 6f 75 | 74 65 72 20 75 73 65 72 |o the ou|ter user|
|00005310| 20 69 6e 74 65 72 66 61 | 63 65 20 72 6f 75 74 69 | interfa|ce routi|
|00005320| 6e 65 2e 20 20 54 68 69 | 73 20 73 68 6f 75 6c 64 |ne. Thi|s should|
|00005330| 20 77 6f 72 6b 20 73 69 | 6e 63 65 0a 58 20 2a 20 | work si|nce.X * |
|00005340| 74 68 65 20 70 6f 72 74 | 61 62 6c 65 20 4a 50 45 |the port|able JPE|
|00005350| 47 20 63 6f 64 65 20 64 | 6f 65 73 6e 27 74 20 75 |G code d|oesn't u|
|00005360| 73 65 20 73 65 74 6a 6d | 70 2f 6c 6f 6e 67 6a 6d |se setjm|p/longjm|
|00005370| 70 2e 20 20 59 6f 75 20 | 73 68 6f 75 6c 64 20 6d |p. You |should m|
|00005380| 61 6b 65 20 73 75 72 65 | 0a 58 20 2a 20 74 68 61 |ake sure|.X * tha|
|00005390| 74 20 66 72 65 65 5f 61 | 6c 6c 20 69 73 20 63 61 |t free_a|ll is ca|
|000053a0| 6c 6c 65 64 20 65 69 74 | 68 65 72 20 77 69 74 68 |lled eit|her with|
|000053b0| 69 6e 20 65 72 72 6f 72 | 5f 65 78 69 74 20 6f 72 |in error|_exit or|
|000053c0| 20 61 66 74 65 72 20 74 | 68 65 20 72 65 74 75 72 | after t|he retur|
|000053d0| 6e 20 74 6f 0a 58 20 2a | 20 74 68 65 20 6f 75 74 |n to.X *| the out|
|000053e0| 65 72 2d 6c 65 76 65 6c | 20 72 6f 75 74 69 6e 65 |er-level| routine|
|000053f0| 2e 0a 58 20 2a 0a 58 20 | 2a 20 54 68 65 73 65 20 |..X *.X |* These |
|00005400| 72 6f 75 74 69 6e 65 73 | 20 61 72 65 20 75 73 65 |routines| are use|
|00005410| 64 20 62 79 20 62 6f 74 | 68 20 74 68 65 20 63 6f |d by bot|h the co|
|00005420| 6d 70 72 65 73 73 69 6f | 6e 20 61 6e 64 20 64 65 |mpressio|n and de|
|00005430| 63 6f 6d 70 72 65 73 73 | 69 6f 6e 20 63 6f 64 65 |compress|ion code|
|00005440| 2e 0a 58 20 2a 2f 0a 58 | 0a 58 23 69 6e 63 6c 75 |..X */.X|.X#inclu|
|00005450| 64 65 20 22 6a 69 6e 63 | 6c 75 64 65 2e 68 22 0a |de "jinc|lude.h".|
|00005460| 58 23 69 66 64 65 66 20 | 49 4e 43 4c 55 44 45 53 |X#ifdef |INCLUDES|
|00005470| 5f 41 52 45 5f 41 4e 53 | 49 0a 58 23 69 6e 63 6c |_ARE_ANS|I.X#incl|
|00005480| 75 64 65 20 3c 73 74 64 | 6c 69 62 2e 68 3e 09 09 |ude <std|lib.h>..|
|00005490| 2f 2a 20 74 6f 20 64 65 | 63 6c 61 72 65 20 65 78 |/* to de|clare ex|
|000054a0| 69 74 28 29 20 2a 2f 0a | 58 23 65 6e 64 69 66 0a |it() */.|X#endif.|
|000054b0| 58 0a 58 23 69 66 6e 64 | 65 66 20 45 58 49 54 5f |X.X#ifnd|ef EXIT_|
|000054c0| 46 41 49 4c 55 52 45 09 | 09 2f 2a 20 64 65 66 69 |FAILURE.|./* defi|
|000054d0| 6e 65 20 65 78 69 74 28 | 29 20 63 6f 64 65 73 20 |ne exit(|) codes |
|000054e0| 69 66 20 6e 6f 74 20 70 | 72 6f 76 69 64 65 64 20 |if not p|rovided |
|000054f0| 2a 2f 0a 58 23 64 65 66 | 69 6e 65 20 45 58 49 54 |*/.X#def|ine EXIT|
|00005500| 5f 46 41 49 4c 55 52 45 | 20 20 31 0a 58 23 65 6e |_FAILURE| 1.X#en|
|00005510| 64 69 66 0a 58 0a 58 0a | 58 73 74 61 74 69 63 20 |dif.X.X.|Xstatic |
|00005520| 65 78 74 65 72 6e 61 6c | 5f 6d 65 74 68 6f 64 73 |external|_methods|
|00005530| 5f 70 74 72 20 6d 65 74 | 68 6f 64 73 3b 20 2f 2a |_ptr met|hods; /*|
|00005540| 20 73 61 76 65 64 20 66 | 6f 72 20 61 63 63 65 73 | saved f|or acces|
|00005550| 73 20 74 6f 20 6d 65 73 | 73 61 67 65 5f 70 61 72 |s to mes|sage_par|
|00005560| 6d 2c 20 66 72 65 65 5f | 61 6c 6c 20 2a 2f 0a 58 |m, free_|all */.X|
|00005570| 0a 58 0a 58 4d 45 54 48 | 4f 44 44 45 46 20 76 6f |.X.XMETH|ODDEF vo|
|00005580| 69 64 0a 58 74 72 61 63 | 65 5f 6d 65 73 73 61 67 |id.Xtrac|e_messag|
|00005590| 65 20 28 63 6f 6e 73 74 | 20 63 68 61 72 20 2a 6d |e (const| char *m|
|000055a0| 73 67 74 65 78 74 29 0a | 58 7b 0a 58 20 20 66 70 |sgtext).|X{.X fp|
|000055b0| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 6d 73 |rintf(st|derr, ms|
|000055c0| 67 74 65 78 74 2c 0a 58 | 09 20 20 6d 65 74 68 6f |gtext,.X|. metho|
|000055d0| 64 73 2d 3e 6d 65 73 73 | 61 67 65 5f 70 61 72 6d |ds->mess|age_parm|
|000055e0| 5b 30 5d 2c 20 6d 65 74 | 68 6f 64 73 2d 3e 6d 65 |[0], met|hods->me|
|000055f0| 73 73 61 67 65 5f 70 61 | 72 6d 5b 31 5d 2c 0a 58 |ssage_pa|rm[1],.X|
|00005600| 09 20 20 6d 65 74 68 6f | 64 73 2d 3e 6d 65 73 73 |. metho|ds->mess|
|00005610| 61 67 65 5f 70 61 72 6d | 5b 32 5d 2c 20 6d 65 74 |age_parm|[2], met|
|00005620| 68 6f 64 73 2d 3e 6d 65 | 73 73 61 67 65 5f 70 61 |hods->me|ssage_pa|
|00005630| 72 6d 5b 33 5d 2c 0a 58 | 09 20 20 6d 65 74 68 6f |rm[3],.X|. metho|
|00005640| 64 73 2d 3e 6d 65 73 73 | 61 67 65 5f 70 61 72 6d |ds->mess|age_parm|
|00005650| 5b 34 5d 2c 20 6d 65 74 | 68 6f 64 73 2d 3e 6d 65 |[4], met|hods->me|
|00005660| 73 73 61 67 65 5f 70 61 | 72 6d 5b 35 5d 2c 0a 58 |ssage_pa|rm[5],.X|
|00005670| 09 20 20 6d 65 74 68 6f | 64 73 2d 3e 6d 65 73 73 |. metho|ds->mess|
|00005680| 61 67 65 5f 70 61 72 6d | 5b 36 5d 2c 20 6d 65 74 |age_parm|[6], met|
|00005690| 68 6f 64 73 2d 3e 6d 65 | 73 73 61 67 65 5f 70 61 |hods->me|ssage_pa|
|000056a0| 72 6d 5b 37 5d 29 3b 0a | 58 20 20 66 70 72 69 6e |rm[7]);.|X fprin|
|000056b0| 74 66 28 73 74 64 65 72 | 72 2c 20 22 5c 6e 22 29 |tf(stder|r, "\n")|
|000056c0| 3b 0a 58 7d 0a 58 0a 58 | 0a 58 4d 45 54 48 4f 44 |;.X}.X.X|.XMETHOD|
|000056d0| 44 45 46 20 76 6f 69 64 | 0a 58 65 72 72 6f 72 5f |DEF void|.Xerror_|
|000056e0| 65 78 69 74 20 28 63 6f | 6e 73 74 20 63 68 61 72 |exit (co|nst char|
|000056f0| 20 2a 6d 73 67 74 65 78 | 74 29 0a 58 7b 0a 58 20 | *msgtex|t).X{.X |
|00005700| 20 28 2a 6d 65 74 68 6f | 64 73 2d 3e 74 72 61 63 | (*metho|ds->trac|
|00005710| 65 5f 6d 65 73 73 61 67 | 65 29 20 28 6d 73 67 74 |e_messag|e) (msgt|
|00005720| 65 78 74 29 3b 0a 58 20 | 20 28 2a 6d 65 74 68 6f |ext);.X | (*metho|
|00005730| 64 73 2d 3e 66 72 65 65 | 5f 61 6c 6c 29 20 28 29 |ds->free|_all) ()|
|00005740| 3b 09 2f 2a 20 63 6c 65 | 61 6e 20 75 70 20 6d 65 |;./* cle|an up me|
|00005750| 6d 6f 72 79 20 61 6c 6c | 6f 63 61 74 69 6f 6e 20 |mory all|ocation |
|00005760| 2a 2f 0a 58 20 20 65 78 | 69 74 28 45 58 49 54 5f |*/.X ex|it(EXIT_|
|00005770| 46 41 49 4c 55 52 45 29 | 3b 0a 58 7d 0a 58 0a 58 |FAILURE)|;.X}.X.X|
|00005780| 0a 58 2f 2a 0a 58 20 2a | 20 54 68 65 20 6d 65 74 |.X/*.X *| The met|
|00005790| 68 6f 64 20 73 65 6c 65 | 63 74 69 6f 6e 20 72 6f |hod sele|ction ro|
|000057a0| 75 74 69 6e 65 20 66 6f | 72 20 73 69 6d 70 6c 65 |utine fo|r simple|
|000057b0| 20 65 72 72 6f 72 20 68 | 61 6e 64 6c 69 6e 67 2e | error h|andling.|
|000057c0| 0a 58 20 2a 20 54 68 65 | 20 73 79 73 74 65 6d 2d |.X * The| system-|
|000057d0| 64 65 70 65 6e 64 65 6e | 74 20 73 65 74 75 70 20 |dependen|t setup |
|000057e0| 72 6f 75 74 69 6e 65 20 | 73 68 6f 75 6c 64 20 63 |routine |should c|
|000057f0| 61 6c 6c 20 74 68 69 73 | 20 72 6f 75 74 69 6e 65 |all this| routine|
|00005800| 0a 58 20 2a 20 74 6f 20 | 69 6e 73 74 61 6c 6c 20 |.X * to |install |
|00005810| 74 68 65 20 6e 65 63 65 | 73 73 61 72 79 20 6d 65 |the nece|ssary me|
|00005820| 74 68 6f 64 20 70 6f 69 | 6e 74 65 72 73 20 69 6e |thod poi|nters in|
|00005830| 20 74 68 65 20 73 75 70 | 70 6c 69 65 64 20 73 74 | the sup|plied st|
|00005840| 72 75 63 74 2e 0a 58 20 | 2a 2f 0a 58 0a 58 47 4c |ruct..X |*/.X.XGL|
|00005850| 4f 42 41 4c 20 76 6f 69 | 64 0a 58 6a 73 65 6c 65 |OBAL voi|d.Xjsele|
|00005860| 72 72 6f 72 20 28 65 78 | 74 65 72 6e 61 6c 5f 6d |rror (ex|ternal_m|
|00005870| 65 74 68 6f 64 73 5f 70 | 74 72 20 65 6d 65 74 68 |ethods_p|tr emeth|
|00005880| 6f 64 73 29 0a 58 7b 0a | 58 20 20 6d 65 74 68 6f |ods).X{.|X metho|
|00005890| 64 73 20 3d 20 65 6d 65 | 74 68 6f 64 73 3b 09 09 |ds = eme|thods;..|
|000058a0| 2f 2a 20 73 61 76 65 20 | 73 74 72 75 63 74 20 61 |/* save |struct a|
|000058b0| 64 64 72 20 66 6f 72 20 | 6c 61 74 65 72 20 61 63 |ddr for |later ac|
|000058c0| 63 65 73 73 20 2a 2f 0a | 58 0a 58 20 20 65 6d 65 |cess */.|X.X eme|
|000058d0| 74 68 6f 64 73 2d 3e 65 | 72 72 6f 72 5f 65 78 69 |thods->e|rror_exi|
|000058e0| 74 20 3d 20 65 72 72 6f | 72 5f 65 78 69 74 3b 0a |t = erro|r_exit;.|
|000058f0| 58 20 20 65 6d 65 74 68 | 6f 64 73 2d 3e 74 72 61 |X emeth|ods->tra|
|00005900| 63 65 5f 6d 65 73 73 61 | 67 65 20 3d 20 74 72 61 |ce_messa|ge = tra|
|00005910| 63 65 5f 6d 65 73 73 61 | 67 65 3b 0a 58 0a 58 20 |ce_messa|ge;.X.X |
|00005920| 20 65 6d 65 74 68 6f 64 | 73 2d 3e 74 72 61 63 65 | emethod|s->trace|
|00005930| 5f 6c 65 76 65 6c 20 3d | 20 30 3b 09 2f 2a 20 64 |_level =| 0;./* d|
|00005940| 65 66 61 75 6c 74 20 3d | 20 6e 6f 20 74 72 61 63 |efault =| no trac|
|00005950| 69 6e 67 20 2a 2f 0a 58 | 0a 58 20 20 65 6d 65 74 |ing */.X|.X emet|
|00005960| 68 6f 64 73 2d 3e 6e 75 | 6d 5f 77 61 72 6e 69 6e |hods->nu|m_warnin|
|00005970| 67 73 20 3d 20 30 3b 09 | 2f 2a 20 6e 6f 20 77 61 |gs = 0;.|/* no wa|
|00005980| 72 6e 69 6e 67 73 20 65 | 6d 69 74 74 65 64 20 79 |rnings e|mitted y|
|00005990| 65 74 20 2a 2f 0a 58 20 | 20 2f 2a 20 42 79 20 64 |et */.X | /* By d|
|000059a0| 65 66 61 75 6c 74 2c 20 | 74 68 65 20 66 69 72 73 |efault, |the firs|
|000059b0| 74 20 63 6f 72 72 75 70 | 74 2d 64 61 74 61 20 77 |t corrup|t-data w|
|000059c0| 61 72 6e 69 6e 67 20 77 | 69 6c 6c 20 62 65 20 64 |arning w|ill be d|
|000059d0| 69 73 70 6c 61 79 65 64 | 2c 0a 58 20 20 20 2a 20 |isplayed|,.X * |
|000059e0| 62 75 74 20 61 64 64 69 | 74 69 6f 6e 61 6c 20 6f |but addi|tional o|
|000059f0| 6e 65 73 20 77 69 6c 6c | 20 61 70 70 65 61 72 20 |nes will| appear |
|00005a00| 6f 6e 6c 79 20 69 66 20 | 74 72 61 63 65 20 6c 65 |only if |trace le|
|00005a10| 76 65 6c 20 69 73 20 61 | 74 20 6c 65 61 73 74 20 |vel is a|t least |
|00005a20| 33 2e 0a 58 20 20 20 2a | 20 41 20 63 6f 72 72 75 |3..X *| A corru|
|00005a30| 70 74 20 64 61 74 61 20 | 66 69 6c 65 20 63 6f 75 |pt data |file cou|
|00005a40| 6c 64 20 67 65 6e 65 72 | 61 74 65 20 6d 61 6e 79 |ld gener|ate many|
|00005a50| 20 77 61 72 6e 69 6e 67 | 73 2c 20 73 6f 20 69 74 | warning|s, so it|
|00005a60| 27 73 20 61 20 67 6f 6f | 64 20 69 64 65 61 0a 58 |'s a goo|d idea.X|
|00005a70| 20 20 20 2a 20 74 6f 20 | 73 75 70 70 72 65 73 73 | * to |suppress|
|00005a80| 20 61 64 64 69 74 69 6f | 6e 61 6c 20 6d 65 73 73 | additio|nal mess|
|00005a90| 61 67 65 73 20 65 78 63 | 65 70 74 20 61 74 20 68 |ages exc|ept at h|
|00005aa0| 69 67 68 20 74 72 61 63 | 69 6e 67 20 6c 65 76 65 |igh trac|ing leve|
|00005ab0| 6c 73 2e 0a 58 20 20 20 | 2a 2f 0a 58 20 20 65 6d |ls..X |*/.X em|
|00005ac0| 65 74 68 6f 64 73 2d 3e | 66 69 72 73 74 5f 77 61 |ethods->|first_wa|
|00005ad0| 72 6e 69 6e 67 5f 6c 65 | 76 65 6c 20 3d 20 30 3b |rning_le|vel = 0;|
|00005ae0| 0a 58 20 20 65 6d 65 74 | 68 6f 64 73 2d 3e 6d 6f |.X emet|hods->mo|
|00005af0| 72 65 5f 77 61 72 6e 69 | 6e 67 5f 6c 65 76 65 6c |re_warni|ng_level|
|00005b00| 20 3d 20 33 3b 0a 58 7d | 0a 45 4e 44 5f 4f 46 5f | = 3;.X}|.END_OF_|
|00005b10| 46 49 4c 45 0a 20 20 69 | 66 20 74 65 73 74 20 32 |FILE. i|f test 2|
|00005b20| 36 34 30 20 2d 6e 65 20 | 60 77 63 20 2d 63 20 3c |640 -ne |`wc -c <|
|00005b30| 27 6a 65 72 72 6f 72 2e | 63 27 60 3b 20 74 68 65 |'jerror.|c'`; the|
|00005b40| 6e 0a 20 20 20 20 65 63 | 68 6f 20 73 68 61 72 3a |n. ec|ho shar:|
|00005b50| 20 5c 22 27 6a 65 72 72 | 6f 72 2e 63 27 5c 22 20 | \"'jerr|or.c'\" |
|00005b60| 75 6e 70 61 63 6b 65 64 | 20 77 69 74 68 20 77 72 |unpacked| with wr|
|00005b70| 6f 6e 67 20 73 69 7a 65 | 21 0a 20 20 66 69 0a 20 |ong size|!. fi. |
|00005b80| 20 23 20 65 6e 64 20 6f | 66 20 27 6a 65 72 72 6f | # end o|f 'jerro|
|00005b90| 72 2e 63 27 0a 66 69 0a | 69 66 20 74 65 73 74 20 |r.c'.fi.|if test |
|00005ba0| 2d 66 20 27 6a 6d 65 6d | 61 6e 73 69 2e 63 27 20 |-f 'jmem|ansi.c' |
|00005bb0| 2d 61 20 22 24 7b 31 7d | 22 20 21 3d 20 22 2d 63 |-a "${1}|" != "-c|
|00005bc0| 22 20 3b 20 74 68 65 6e | 20 0a 20 20 65 63 68 6f |" ; then| . echo|
|00005bd0| 20 73 68 61 72 3a 20 57 | 69 6c 6c 20 6e 6f 74 20 | shar: W|ill not |
|00005be0| 63 6c 6f 62 62 65 72 20 | 65 78 69 73 74 69 6e 67 |clobber |existing|
|00005bf0| 20 66 69 6c 65 20 5c 22 | 27 6a 6d 65 6d 61 6e 73 | file \"|'jmemans|
|00005c00| 69 2e 63 27 5c 22 0a 65 | 6c 73 65 0a 20 20 65 63 |i.c'\".e|lse. ec|
|00005c10| 68 6f 20 73 68 61 72 3a | 20 45 78 74 72 61 63 74 |ho shar:| Extract|
|00005c20| 69 6e 67 20 5c 22 27 6a | 6d 65 6d 61 6e 73 69 2e |ing \"'j|memansi.|
|00005c30| 63 27 5c 22 20 5c 28 34 | 33 30 33 20 63 68 61 72 |c'\" \(4|303 char|
|00005c40| 61 63 74 65 72 73 5c 29 | 0a 20 20 73 65 64 20 22 |acters\)|. sed "|
|00005c50| 73 2f 5e 58 2f 2f 22 20 | 3e 27 6a 6d 65 6d 61 6e |s/^X//" |>'jmeman|
|00005c60| 73 69 2e 63 27 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |si.c' <<|'END_OF_|
|00005c70| 46 49 4c 45 27 0a 58 2f | 2a 0a 58 20 2a 20 6a 6d |FILE'.X/|*.X * jm|
|00005c80| 65 6d 61 6e 73 69 2e 63 | 20 20 28 6a 6d 65 6d 73 |emansi.c| (jmems|
|00005c90| 79 73 2e 63 29 0a 58 20 | 2a 0a 58 20 2a 20 43 6f |ys.c).X |*.X * Co|
|00005ca0| 70 79 72 69 67 68 74 20 | 28 43 29 20 31 39 39 32 |pyright |(C) 1992|
|00005cb0| 2c 20 54 68 6f 6d 61 73 | 20 47 2e 20 4c 61 6e 65 |, Thomas| G. Lane|
|00005cc0| 2e 0a 58 20 2a 20 54 68 | 69 73 20 66 69 6c 65 20 |..X * Th|is file |
|00005cd0| 69 73 20 70 61 72 74 20 | 6f 66 20 74 68 65 20 49 |is part |of the I|
|00005ce0| 6e 64 65 70 65 6e 64 65 | 6e 74 20 4a 50 45 47 20 |ndepende|nt JPEG |
|00005cf0| 47 72 6f 75 70 27 73 20 | 73 6f 66 74 77 61 72 65 |Group's |software|
|00005d00| 2e 0a 58 20 2a 20 46 6f | 72 20 63 6f 6e 64 69 74 |..X * Fo|r condit|
|00005d10| 69 6f 6e 73 20 6f 66 20 | 64 69 73 74 72 69 62 75 |ions of |distribu|
|00005d20| 74 69 6f 6e 20 61 6e 64 | 20 75 73 65 2c 20 73 65 |tion and| use, se|
|00005d30| 65 20 74 68 65 20 61 63 | 63 6f 6d 70 61 6e 79 69 |e the ac|companyi|
|00005d40| 6e 67 20 52 45 41 44 4d | 45 20 66 69 6c 65 2e 0a |ng READM|E file..|
|00005d50| 58 20 2a 0a 58 20 2a 20 | 54 68 69 73 20 66 69 6c |X *.X * |This fil|
|00005d60| 65 20 70 72 6f 76 69 64 | 65 73 20 61 20 73 69 6d |e provid|es a sim|
|00005d70| 70 6c 65 20 67 65 6e 65 | 72 69 63 20 69 6d 70 6c |ple gene|ric impl|
|00005d80| 65 6d 65 6e 74 61 74 69 | 6f 6e 20 6f 66 20 74 68 |ementati|on of th|
|00005d90| 65 20 73 79 73 74 65 6d | 2d 0a 58 20 2a 20 64 65 |e system|-.X * de|
|00005da0| 70 65 6e 64 65 6e 74 20 | 70 6f 72 74 69 6f 6e 20 |pendent |portion |
|00005db0| 6f 66 20 74 68 65 20 4a | 50 45 47 20 6d 65 6d 6f |of the J|PEG memo|
|00005dc0| 72 79 20 6d 61 6e 61 67 | 65 72 2e 20 20 54 68 69 |ry manag|er. Thi|
|00005dd0| 73 20 69 6d 70 6c 65 6d | 65 6e 74 61 74 69 6f 6e |s implem|entation|
|00005de0| 0a 58 20 2a 20 61 73 73 | 75 6d 65 73 20 74 68 61 |.X * ass|umes tha|
|00005df0| 74 20 79 6f 75 20 68 61 | 76 65 20 74 68 65 20 41 |t you ha|ve the A|
|00005e00| 4e 53 49 2d 73 74 61 6e | 64 61 72 64 20 6c 69 62 |NSI-stan|dard lib|
|00005e10| 72 61 72 79 20 72 6f 75 | 74 69 6e 65 20 74 6d 70 |rary rou|tine tmp|
|00005e20| 66 69 6c 65 28 29 2e 0a | 58 20 2a 20 41 6c 73 6f |file()..|X * Also|
|00005e30| 2c 20 74 68 65 20 70 72 | 6f 62 6c 65 6d 20 6f 66 |, the pr|oblem of|
|00005e40| 20 64 65 74 65 72 6d 69 | 6e 69 6e 67 20 74 68 65 | determi|ning the|
|00005e50| 20 61 6d 6f 75 6e 74 20 | 6f 66 20 6d 65 6d 6f 72 | amount |of memor|
|00005e60| 79 20 61 76 61 69 6c 61 | 62 6c 65 0a 58 20 2a 20 |y availa|ble.X * |
|00005e70| 69 73 20 73 68 6f 76 65 | 64 20 6f 6e 74 6f 20 74 |is shove|d onto t|
|00005e80| 68 65 20 75 73 65 72 2e | 0a 58 20 2a 2f 0a 58 0a |he user.|.X */.X.|
|00005e90| 58 23 69 6e 63 6c 75 64 | 65 20 22 6a 69 6e 63 6c |X#includ|e "jincl|
|00005ea0| 75 64 65 2e 68 22 0a 58 | 23 69 6e 63 6c 75 64 65 |ude.h".X|#include|
|00005eb0| 20 22 6a 6d 65 6d 73 79 | 73 2e 68 22 0a 58 0a 58 | "jmemsy|s.h".X.X|
|00005ec0| 23 69 66 64 65 66 20 49 | 4e 43 4c 55 44 45 53 5f |#ifdef I|NCLUDES_|
|00005ed0| 41 52 45 5f 41 4e 53 49 | 0a 58 23 69 6e 63 6c 75 |ARE_ANSI|.X#inclu|
|00005ee0| 64 65 20 3c 73 74 64 6c | 69 62 2e 68 3e 09 09 2f |de <stdl|ib.h>../|
|00005ef0| 2a 20 74 6f 20 64 65 63 | 6c 61 72 65 20 6d 61 6c |* to dec|lare mal|
|00005f00| 6c 6f 63 28 29 2c 20 66 | 72 65 65 28 29 20 2a 2f |loc(), f|ree() */|
|00005f10| 0a 58 23 65 6c 73 65 0a | 58 65 78 74 65 72 6e 20 |.X#else.|Xextern |
|00005f20| 76 6f 69 64 20 2a 20 6d | 61 6c 6c 6f 63 20 50 50 |void * m|alloc PP|
|00005f30| 28 28 73 69 7a 65 5f 74 | 20 73 69 7a 65 29 29 3b |((size_t| size));|
|00005f40| 0a 58 65 78 74 65 72 6e | 20 76 6f 69 64 20 66 72 |.Xextern| void fr|
|00005f50| 65 65 20 50 50 28 28 76 | 6f 69 64 20 2a 70 74 72 |ee PP((v|oid *ptr|
|00005f60| 29 29 3b 0a 58 23 65 6e | 64 69 66 0a 58 0a 58 23 |));.X#en|dif.X.X#|
|00005f70| 69 66 6e 64 65 66 20 53 | 45 45 4b 5f 53 45 54 09 |ifndef S|EEK_SET.|
|00005f80| 09 2f 2a 20 70 72 65 2d | 41 4e 53 49 20 73 79 73 |./* pre-|ANSI sys|
|00005f90| 74 65 6d 73 20 6d 61 79 | 20 6e 6f 74 20 64 65 66 |tems may| not def|
|00005fa0| 69 6e 65 20 74 68 69 73 | 3b 20 2a 2f 0a 58 23 64 |ine this|; */.X#d|
|00005fb0| 65 66 69 6e 65 20 53 45 | 45 4b 5f 53 45 54 20 20 |efine SE|EK_SET |
|00005fc0| 30 09 09 2f 2a 20 69 66 | 20 6e 6f 74 2c 20 61 73 |0../* if| not, as|
|00005fd0| 73 75 6d 65 20 30 20 69 | 73 20 63 6f 72 72 65 63 |sume 0 i|s correc|
|00005fe0| 74 20 2a 2f 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |t */.X#e|ndif.X.X|
|00005ff0| 0a 58 73 74 61 74 69 63 | 20 65 78 74 65 72 6e 61 |.Xstatic| externa|
|00006000| 6c 5f 6d 65 74 68 6f 64 | 73 5f 70 74 72 20 6d 65 |l_method|s_ptr me|
|00006010| 74 68 6f 64 73 3b 20 2f | 2a 20 73 61 76 65 64 20 |thods; /|* saved |
|00006020| 66 6f 72 20 61 63 63 65 | 73 73 20 74 6f 20 65 72 |for acce|ss to er|
|00006030| 72 6f 72 5f 65 78 69 74 | 20 2a 2f 0a 58 0a 58 73 |ror_exit| */.X.Xs|
|00006040| 74 61 74 69 63 20 6c 6f | 6e 67 20 74 6f 74 61 6c |tatic lo|ng total|
|00006050| 5f 75 73 65 64 3b 09 09 | 2f 2a 20 74 6f 74 61 6c |_used;..|/* total|
|00006060| 20 6d 65 6d 6f 72 79 20 | 72 65 71 75 65 73 74 65 | memory |requeste|
|00006070| 64 20 73 6f 20 66 61 72 | 20 2a 2f 0a 58 0a 58 0a |d so far| */.X.X.|
|00006080| 58 2f 2a 0a 58 20 2a 20 | 4d 65 6d 6f 72 79 20 61 |X/*.X * |Memory a|
|00006090| 6c 6c 6f 63 61 74 69 6f | 6e 20 61 6e 64 20 66 72 |llocatio|n and fr|
|000060a0| 65 65 69 6e 67 20 61 72 | 65 20 63 6f 6e 74 72 6f |eeing ar|e contro|
|000060b0| 6c 6c 65 64 20 62 79 20 | 74 68 65 20 72 65 67 75 |lled by |the regu|
|000060c0| 6c 61 72 20 6c 69 62 72 | 61 72 79 0a 58 20 2a 20 |lar libr|ary.X * |
|000060d0| 72 6f 75 74 69 6e 65 73 | 20 6d 61 6c 6c 6f 63 28 |routines| malloc(|
|000060e0| 29 20 61 6e 64 20 66 72 | 65 65 28 29 2e 0a 58 20 |) and fr|ee()..X |
|000060f0| 2a 2f 0a 58 0a 58 47 4c | 4f 42 41 4c 20 76 6f 69 |*/.X.XGL|OBAL voi|
|00006100| 64 20 2a 0a 58 6a 67 65 | 74 5f 73 6d 61 6c 6c 20 |d *.Xjge|t_small |
|00006110| 28 73 69 7a 65 5f 74 20 | 73 69 7a 65 6f 66 6f 62 |(size_t |sizeofob|
|00006120| 6a 65 63 74 29 0a 58 7b | 0a 58 20 20 74 6f 74 61 |ject).X{|.X tota|
|00006130| 6c 5f 75 73 65 64 20 2b | 3d 20 73 69 7a 65 6f 66 |l_used +|= sizeof|
|00006140| 6f 62 6a 65 63 74 3b 0a | 58 20 20 72 65 74 75 72 |object;.|X retur|
|00006150| 6e 20 28 76 6f 69 64 20 | 2a 29 20 6d 61 6c 6c 6f |n (void |*) mallo|
|00006160| 63 28 73 69 7a 65 6f 66 | 6f 62 6a 65 63 74 29 3b |c(sizeof|object);|
|00006170| 0a 58 7d 0a 58 0a 58 47 | 4c 4f 42 41 4c 20 76 6f |.X}.X.XG|LOBAL vo|
|00006180| 69 64 0a 58 6a 66 72 65 | 65 5f 73 6d 61 6c 6c 20 |id.Xjfre|e_small |
|00006190| 28 76 6f 69 64 20 2a 20 | 6f 62 6a 65 63 74 29 0a |(void * |object).|
|000061a0| 58 7b 0a 58 20 20 66 72 | 65 65 28 6f 62 6a 65 63 |X{.X fr|ee(objec|
|000061b0| 74 29 3b 0a 58 7d 0a 58 | 0a 58 2f 2a 0a 58 20 2a |t);.X}.X|.X/*.X *|
|000061c0| 20 57 65 20 61 73 73 75 | 6d 65 20 4e 45 45 44 5f | We assu|me NEED_|
|000061d0| 46 41 52 5f 50 4f 49 4e | 54 45 52 53 20 69 73 20 |FAR_POIN|TERS is |
|000061e0| 6e 6f 74 20 64 65 66 69 | 6e 65 64 20 61 6e 64 20 |not defi|ned and |
|000061f0| 73 6f 20 74 68 65 20 73 | 65 70 61 72 61 74 65 20 |so the s|eparate |
|00006200| 65 6e 74 72 79 20 70 6f | 69 6e 74 73 0a 58 20 2a |entry po|ints.X *|
|00006210| 20 6a 67 65 74 5f 6c 61 | 72 67 65 2c 20 6a 66 72 | jget_la|rge, jfr|
|00006220| 65 65 5f 6c 61 72 67 65 | 20 61 72 65 20 6e 6f 74 |ee_large| are not|
|00006230| 20 6e 65 65 64 65 64 2e | 0a 58 20 2a 2f 0a 58 0a | needed.|.X */.X.|
|00006240| 58 0a 58 2f 2a 0a 58 20 | 2a 20 54 68 69 73 20 72 |X.X/*.X |* This r|
|00006250| 6f 75 74 69 6e 65 20 63 | 6f 6d 70 75 74 65 73 20 |outine c|omputes |
|00006260| 74 68 65 20 74 6f 74 61 | 6c 20 6d 65 6d 6f 72 79 |the tota|l memory|
|00006270| 20 73 70 61 63 65 20 61 | 76 61 69 6c 61 62 6c 65 | space a|vailable|
|00006280| 20 66 6f 72 20 61 6c 6c | 6f 63 61 74 69 6f 6e 2e | for all|ocation.|
|00006290| 0a 58 20 2a 20 49 74 27 | 73 20 69 6d 70 6f 73 73 |.X * It'|s imposs|
|000062a0| 69 62 6c 65 20 74 6f 20 | 64 6f 20 74 68 69 73 20 |ible to |do this |
|000062b0| 69 6e 20 61 20 70 6f 72 | 74 61 62 6c 65 20 77 61 |in a por|table wa|
|000062c0| 79 3b 20 6f 75 72 20 63 | 75 72 72 65 6e 74 20 73 |y; our c|urrent s|
|000062d0| 6f 6c 75 74 69 6f 6e 20 | 69 73 0a 58 20 2a 20 74 |olution |is.X * t|
|000062e0| 6f 20 6d 61 6b 65 20 74 | 68 65 20 75 73 65 72 20 |o make t|he user |
|000062f0| 74 65 6c 6c 20 75 73 20 | 28 77 69 74 68 20 61 20 |tell us |(with a |
|00006300| 64 65 66 61 75 6c 74 20 | 76 61 6c 75 65 20 73 65 |default |value se|
|00006310| 74 20 61 74 20 63 6f 6d | 70 69 6c 65 20 74 69 6d |t at com|pile tim|
|00006320| 65 29 2e 0a 58 20 2a 20 | 49 66 20 79 6f 75 20 63 |e)..X * |If you c|
|00006330| 61 6e 20 61 63 74 75 61 | 6c 6c 79 20 67 65 74 20 |an actua|lly get |
|00006340| 74 68 65 20 61 76 61 69 | 6c 61 62 6c 65 20 73 70 |the avai|lable sp|
|00006350| 61 63 65 2c 20 69 74 27 | 73 20 61 20 67 6f 6f 64 |ace, it'|s a good|
|00006360| 20 69 64 65 61 20 74 6f | 20 73 75 62 74 72 61 63 | idea to| subtrac|
|00006370| 74 0a 58 20 2a 20 61 20 | 73 6c 6f 70 20 66 61 63 |t.X * a |slop fac|
|00006380| 74 6f 72 20 6f 66 20 35 | 25 20 6f 72 20 73 6f 2e |tor of 5|% or so.|
|00006390| 0a 58 20 2a 2f 0a 58 0a | 58 23 69 66 6e 64 65 66 |.X */.X.|X#ifndef|
|000063a0| 20 44 45 46 41 55 4c 54 | 5f 4d 41 58 5f 4d 45 4d | DEFAULT|_MAX_MEM|
|000063b0| 09 09 2f 2a 20 73 6f 20 | 63 61 6e 20 6f 76 65 72 |../* so |can over|
|000063c0| 72 69 64 65 20 66 72 6f | 6d 20 6d 61 6b 65 66 69 |ride fro|m makefi|
|000063d0| 6c 65 20 2a 2f 0a 58 23 | 64 65 66 69 6e 65 20 44 |le */.X#|define D|
|000063e0| 45 46 41 55 4c 54 5f 4d | 41 58 5f 4d 45 4d 09 09 |EFAULT_M|AX_MEM..|
|000063f0| 31 30 30 30 30 30 30 4c | 20 2f 2a 20 64 65 66 61 |1000000L| /* defa|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.