home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume2 / pbm / Part4 < prev    next >
SHell self-extracting ARchive  |  1991-08-07  |  38.9 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

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

You can browse this item here: Part4

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news or mail, ASCII text default
100% TrID E-Mail message (Var. 2) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/rfc822 default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 6a 65 | 66 40 77 65 62 73 74 65 |From: je|f@webste|
|00000010| 72 2e 55 55 43 50 20 28 | 4a 65 66 20 50 6f 73 6b |r.UUCP (|Jef Posk|
|00000020| 61 6e 7a 65 72 29 0a 4e | 65 77 73 67 72 6f 75 70 |anzer).N|ewsgroup|
|00000030| 73 3a 20 63 6f 6d 70 2e | 73 6f 75 72 63 65 73 2e |s: comp.|sources.|
|00000040| 6d 69 73 63 0a 53 75 62 | 6a 65 63 74 3a 20 76 30 |misc.Sub|ject: v0|
|00000050| 32 69 30 38 32 3a 20 70 | 62 6d 20 2d 20 50 6f 72 |2i082: p|bm - Por|
|00000060| 74 61 62 6c 65 20 42 69 | 74 6d 61 70 20 70 72 6f |table Bi|tmap pro|
|00000070| 67 72 61 6d 73 2c 20 50 | 61 72 74 20 34 2f 34 0a |grams, P|art 4/4.|
|00000080| 4d 65 73 73 61 67 65 2d | 49 44 3a 20 3c 38 38 30 |Message-|ID: <880|
|00000090| 33 32 39 32 30 30 32 2e | 41 41 32 34 35 36 37 40 |3292002.|AA24567@|
|000000a0| 77 65 62 73 74 65 72 2e | 73 79 62 61 73 65 2e 75 |webster.|sybase.u|
|000000b0| 75 63 70 3e 0a 44 61 74 | 65 3a 20 32 39 20 4d 61 |ucp>.Dat|e: 29 Ma|
|000000c0| 72 20 38 38 20 32 30 3a | 30 32 3a 35 39 20 47 4d |r 88 20:|02:59 GM|
|000000d0| 54 0a 41 70 70 72 6f 76 | 65 64 3a 20 61 6c 6c 62 |T.Approv|ed: allb|
|000000e0| 65 72 79 40 6e 63 6f 61 | 73 74 2e 55 55 43 50 0a |ery@ncoa|st.UUCP.|
|000000f0| 0a 63 6f 6d 70 2e 73 6f | 75 72 63 65 73 2e 6d 69 |.comp.so|urces.mi|
|00000100| 73 63 3a 20 56 6f 6c 75 | 6d 65 20 32 2c 20 49 73 |sc: Volu|me 2, Is|
|00000110| 73 75 65 20 38 32 0a 53 | 75 62 6d 69 74 74 65 64 |sue 82.S|ubmitted|
|00000120| 2d 42 79 3a 20 22 4a 65 | 66 20 50 6f 73 6b 61 6e |-By: "Je|f Poskan|
|00000130| 7a 65 72 22 20 3c 6a 65 | 66 40 77 65 62 73 74 65 |zer" <je|f@webste|
|00000140| 72 2e 55 55 43 50 3e 0a | 41 72 63 68 69 76 65 2d |r.UUCP>.|Archive-|
|00000150| 4e 61 6d 65 3a 20 70 62 | 6d 2f 50 61 72 74 34 0a |Name: pb|m/Part4.|
|00000160| 0a 23 21 20 2f 62 69 6e | 2f 73 68 0a 23 20 54 68 |.#! /bin|/sh.# Th|
|00000170| 69 73 20 69 73 20 61 20 | 73 68 65 6c 6c 20 61 72 |is is a |shell ar|
|00000180| 63 68 69 76 65 2c 20 6d | 65 61 6e 69 6e 67 3a 0a |chive, m|eaning:.|
|00000190| 23 20 31 2e 20 52 65 6d | 6f 76 65 20 65 76 65 72 |# 1. Rem|ove ever|
|000001a0| 79 74 68 69 6e 67 20 61 | 62 6f 76 65 20 74 68 65 |ything a|bove the|
|000001b0| 20 23 21 20 2f 62 69 6e | 2f 73 68 20 6c 69 6e 65 | #! /bin|/sh line|
|000001c0| 2e 0a 23 20 32 2e 20 53 | 61 76 65 20 74 68 65 20 |..# 2. S|ave the |
|000001d0| 72 65 73 75 6c 74 69 6e | 67 20 74 65 78 74 20 69 |resultin|g text i|
|000001e0| 6e 20 61 20 66 69 6c 65 | 2e 0a 23 20 33 2e 20 45 |n a file|..# 3. E|
|000001f0| 78 65 63 75 74 65 20 74 | 68 65 20 66 69 6c 65 20 |xecute t|he file |
|00000200| 77 69 74 68 20 2f 62 69 | 6e 2f 73 68 20 28 6e 6f |with /bi|n/sh (no|
|00000210| 74 20 63 73 68 29 20 74 | 6f 20 63 72 65 61 74 65 |t csh) t|o create|
|00000220| 20 74 68 65 20 66 69 6c | 65 73 3a 0a 23 09 70 62 | the fil|es:.#.pb|
|00000230| 6d 63 72 6f 70 2e 63 0a | 23 09 70 62 6d 63 72 6f |mcrop.c.|#.pbmcro|
|00000240| 70 2e 6d 61 6e 0a 23 09 | 70 62 6d 74 72 6e 73 70 |p.man.#.|pbmtrnsp|
|00000250| 6f 73 2e 63 0a 23 09 70 | 62 6d 74 72 6e 73 70 6f |os.c.#.p|bmtrnspo|
|00000260| 73 2e 6d 61 6e 0a 23 09 | 70 62 6d 63 75 74 2e 63 |s.man.#.|pbmcut.c|
|00000270| 0a 23 09 70 62 6d 63 75 | 74 2e 6d 61 6e 0a 23 09 |.#.pbmcu|t.man.#.|
|00000280| 70 62 6d 70 61 73 74 65 | 2e 63 0a 23 09 70 62 6d |pbmpaste|.c.#.pbm|
|00000290| 70 61 73 74 65 2e 6d 61 | 6e 0a 23 09 78 78 78 74 |paste.ma|n.#.xxxt|
|000002a0| 6f 70 62 6d 2e 63 0a 23 | 09 78 78 78 74 6f 70 62 |opbm.c.#|.xxxtopb|
|000002b0| 6d 2e 6d 61 6e 0a 23 09 | 70 62 6d 65 6e 6c 61 72 |m.man.#.|pbmenlar|
|000002c0| 67 65 2e 63 0a 23 09 70 | 62 6d 65 6e 6c 61 72 67 |ge.c.#.p|bmenlarg|
|000002d0| 65 2e 6d 61 6e 0a 23 09 | 70 62 6d 6d 61 6b 65 2e |e.man.#.|pbmmake.|
|000002e0| 63 0a 23 09 70 62 6d 6d | 61 6b 65 2e 6d 61 6e 0a |c.#.pbmm|ake.man.|
|000002f0| 23 09 6c 69 62 70 62 6d | 2e 63 0a 23 09 70 62 6d |#.libpbm|.c.#.pbm|
|00000300| 2e 68 0a 23 09 70 62 6d | 2e 6d 61 6e 0a 23 09 62 |.h.#.pbm|.man.#.b|
|00000310| 6d 61 6c 69 61 73 65 73 | 0a 23 09 62 69 74 5f 72 |maliases|.#.bit_r|
|00000320| 65 76 65 72 73 65 2e 68 | 0a 23 20 54 68 69 73 20 |everse.h|.# This |
|00000330| 61 72 63 68 69 76 65 20 | 63 72 65 61 74 65 64 3a |archive |created:|
|00000340| 20 4d 6f 6e 20 4d 61 72 | 20 32 38 20 31 32 3a 31 | Mon Mar| 28 12:1|
|00000350| 32 3a 31 31 20 31 39 38 | 38 0a 23 20 42 79 3a 09 |2:11 198|8.# By:.|
|00000360| 4a 65 66 20 50 6f 73 6b | 61 6e 7a 65 72 20 28 50 |Jef Posk|anzer (P|
|00000370| 61 72 61 74 68 65 6f 2d | 41 6e 61 6d 65 74 61 6d |aratheo-|Anametam|
|00000380| 79 73 74 69 6b 68 6f 6f | 64 20 4f 66 20 45 72 69 |ystikhoo|d Of Eri|
|00000390| 73 20 45 73 6f 74 65 72 | 69 63 2c 20 41 64 61 20 |s Esoter|ic, Ada |
|000003a0| 4c 6f 76 65 6c 61 63 65 | 20 43 61 62 61 6c 29 0a |Lovelace| Cabal).|
|000003b0| 65 78 70 6f 72 74 20 50 | 41 54 48 3b 20 50 41 54 |export P|ATH; PAT|
|000003c0| 48 3d 2f 62 69 6e 3a 24 | 50 41 54 48 0a 65 63 68 |H=/bin:$|PATH.ech|
|000003d0| 6f 20 73 68 61 72 3a 20 | 65 78 74 72 61 63 74 69 |o shar: |extracti|
|000003e0| 6e 67 20 22 27 70 62 6d | 63 72 6f 70 2e 63 27 22 |ng "'pbm|crop.c'"|
|000003f0| 20 27 28 32 39 35 35 20 | 63 68 61 72 61 63 74 65 | '(2955 |characte|
|00000400| 72 73 29 27 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |rs)'.if |test -f |
|00000410| 27 70 62 6d 63 72 6f 70 | 2e 63 27 0a 74 68 65 6e |'pbmcrop|.c'.then|
|00000420| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00000430| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00000440| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00000450| 27 70 62 6d 63 72 6f 70 | 2e 63 27 22 0a 65 6c 73 |'pbmcrop|.c'".els|
|00000460| 65 0a 73 65 64 20 27 73 | 2f 5e 58 2f 2f 27 20 3c |e.sed 's|/^X//' <|
|00000470| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 70 |< \SHAR_|EOF > 'p|
|00000480| 62 6d 63 72 6f 70 2e 63 | 27 0a 58 2f 2a 20 70 62 |bmcrop.c|'.X/* pb|
|00000490| 6d 63 72 6f 70 2e 63 20 | 2d 20 63 72 6f 70 20 61 |mcrop.c |- crop a|
|000004a0| 20 70 6f 72 74 61 62 6c | 65 20 62 69 74 6d 61 70 | portabl|e bitmap|
|000004b0| 0a 58 2a 2a 0a 58 2a 2a | 20 43 6f 70 79 72 69 67 |.X**.X**| Copyrig|
|000004c0| 68 74 20 28 43 29 20 31 | 39 38 38 20 62 79 20 4a |ht (C) 1|988 by J|
|000004d0| 65 66 20 50 6f 73 6b 61 | 6e 7a 65 72 2e 0a 58 2a |ef Poska|nzer..X*|
|000004e0| 2a 0a 58 2a 2a 20 50 65 | 72 6d 69 73 73 69 6f 6e |*.X** Pe|rmission|
|000004f0| 20 74 6f 20 75 73 65 2c | 20 63 6f 70 79 2c 20 6d | to use,| copy, m|
|00000500| 6f 64 69 66 79 2c 20 61 | 6e 64 20 64 69 73 74 72 |odify, a|nd distr|
|00000510| 69 62 75 74 65 20 74 68 | 69 73 20 73 6f 66 74 77 |ibute th|is softw|
|00000520| 61 72 65 20 61 6e 64 20 | 69 74 73 0a 58 2a 2a 20 |are and |its.X** |
|00000530| 64 6f 63 75 6d 65 6e 74 | 61 74 69 6f 6e 20 66 6f |document|ation fo|
|00000540| 72 20 61 6e 79 20 70 75 | 72 70 6f 73 65 20 61 6e |r any pu|rpose an|
|00000550| 64 20 77 69 74 68 6f 75 | 74 20 66 65 65 20 69 73 |d withou|t fee is|
|00000560| 20 68 65 72 65 62 79 20 | 67 72 61 6e 74 65 64 2c | hereby |granted,|
|00000570| 20 70 72 6f 76 69 64 65 | 64 0a 58 2a 2a 20 74 68 | provide|d.X** th|
|00000580| 61 74 20 74 68 65 20 61 | 62 6f 76 65 20 63 6f 70 |at the a|bove cop|
|00000590| 79 72 69 67 68 74 20 6e | 6f 74 69 63 65 20 61 70 |yright n|otice ap|
|000005a0| 70 65 61 72 20 69 6e 20 | 61 6c 6c 20 63 6f 70 69 |pear in |all copi|
|000005b0| 65 73 20 61 6e 64 20 74 | 68 61 74 20 62 6f 74 68 |es and t|hat both|
|000005c0| 20 74 68 61 74 0a 58 2a | 2a 20 63 6f 70 79 72 69 | that.X*|* copyri|
|000005d0| 67 68 74 20 6e 6f 74 69 | 63 65 20 61 6e 64 20 74 |ght noti|ce and t|
|000005e0| 68 69 73 20 70 65 72 6d | 69 73 73 69 6f 6e 20 6e |his perm|ission n|
|000005f0| 6f 74 69 63 65 20 61 70 | 70 65 61 72 20 69 6e 20 |otice ap|pear in |
|00000600| 73 75 70 70 6f 72 74 69 | 6e 67 0a 58 2a 2a 20 64 |supporti|ng.X** d|
|00000610| 6f 63 75 6d 65 6e 74 61 | 74 69 6f 6e 2e 20 20 54 |ocumenta|tion. T|
|00000620| 68 69 73 20 73 6f 66 74 | 77 61 72 65 20 69 73 20 |his soft|ware is |
|00000630| 70 72 6f 76 69 64 65 64 | 20 22 61 73 20 69 73 22 |provided| "as is"|
|00000640| 20 77 69 74 68 6f 75 74 | 20 65 78 70 72 65 73 73 | without| express|
|00000650| 20 6f 72 0a 58 2a 2a 20 | 69 6d 70 6c 69 65 64 20 | or.X** |implied |
|00000660| 77 61 72 72 61 6e 74 79 | 2e 0a 58 2a 2f 0a 58 0a |warranty|..X*/.X.|
|00000670| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 74 64 69 6f |X#includ|e <stdio|
|00000680| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 20 22 70 |.h>.X#in|clude "p|
|00000690| 62 6d 2e 68 22 0a 58 0a | 58 6d 61 69 6e 28 20 61 |bm.h".X.|Xmain( a|
|000006a0| 72 67 63 2c 20 61 72 67 | 76 20 29 0a 58 69 6e 74 |rgc, arg|v ).Xint|
|000006b0| 20 61 72 67 63 3b 0a 58 | 63 68 61 72 20 2a 61 72 | argc;.X|char *ar|
|000006c0| 67 76 5b 5d 3b 0a 58 20 | 20 20 20 7b 0a 58 20 20 |gv[];.X | {.X |
|000006d0| 20 20 46 49 4c 45 20 2a | 69 66 64 3b 0a 58 20 20 | FILE *|ifd;.X |
|000006e0| 20 20 62 69 74 20 2a 2a | 62 69 74 73 2c 20 2a 2a | bit **|bits, **|
|000006f0| 6e 65 77 62 69 74 73 2c | 20 62 61 63 6b 67 72 6f |newbits,| backgro|
|00000700| 75 6e 64 3b 0a 58 20 20 | 20 20 69 6e 74 20 61 72 |und;.X | int ar|
|00000710| 67 6e 2c 20 62 61 63 6b | 64 65 66 61 75 6c 74 2c |gn, back|default,|
|00000720| 20 63 3b 0a 58 20 20 20 | 20 69 6e 74 20 72 6f 77 | c;.X | int row|
|00000730| 73 2c 20 63 6f 6c 73 2c | 20 72 6f 77 2c 20 63 6f |s, cols,| row, co|
|00000740| 6c 2c 20 6e 65 77 72 6f | 77 73 2c 20 6e 65 77 63 |l, newro|ws, newc|
|00000750| 6f 6c 73 3b 0a 58 20 20 | 20 20 69 6e 74 20 74 6f |ols;.X | int to|
|00000760| 70 2c 20 62 6f 74 74 6f | 6d 2c 20 6c 65 66 74 2c |p, botto|m, left,|
|00000770| 20 72 69 67 68 74 3b 0a | 58 20 20 20 20 63 68 61 | right;.|X cha|
|00000780| 72 20 2a 75 73 61 67 65 | 20 3d 20 22 75 73 61 67 |r *usage| = "usag|
|00000790| 65 3a 20 20 25 73 20 5b | 2d 30 5d 20 5b 2d 31 5d |e: %s [|-0] [-1]|
|000007a0| 20 5b 70 62 6d 66 69 6c | 65 5d 5c 6e 22 3b 0a 58 | [pbmfil|e]\n";.X|
|000007b0| 0a 58 20 20 20 20 61 72 | 67 6e 20 3d 20 31 3b 0a |.X ar|gn = 1;.|
|000007c0| 58 20 20 20 20 62 61 63 | 6b 64 65 66 61 75 6c 74 |X bac|kdefault|
|000007d0| 20 3d 20 31 3b 0a 58 0a | 58 20 20 20 20 2f 2a 20 | = 1;.X.|X /* |
|000007e0| 43 68 65 63 6b 20 66 6f | 72 20 66 6c 61 67 73 2e |Check fo|r flags.|
|000007f0| 20 2a 2f 0a 58 20 20 20 | 20 69 66 20 28 20 61 72 | */.X | if ( ar|
|00000800| 67 63 20 3e 20 61 72 67 | 6e 20 29 0a 58 09 7b 0a |gc > arg|n ).X.{.|
|00000810| 58 09 69 66 20 28 20 61 | 72 67 76 5b 61 72 67 6e |X.if ( a|rgv[argn|
|00000820| 5d 5b 30 5d 20 3d 3d 20 | 27 2d 27 20 29 0a 58 09 |][0] == |'-' ).X.|
|00000830| 20 20 20 20 7b 0a 58 09 | 20 20 20 20 69 66 20 28 | {.X.| if (|
|00000840| 20 73 74 72 63 6d 70 28 | 20 61 72 67 76 5b 61 72 | strcmp(| argv[ar|
|00000850| 67 6e 5d 2c 20 22 2d 30 | 22 20 29 20 3d 3d 20 30 |gn], "-0|" ) == 0|
|00000860| 20 29 0a 58 09 09 7b 0a | 58 09 09 62 61 63 6b 64 | ).X..{.|X..backd|
|00000870| 65 66 61 75 6c 74 20 3d | 20 30 3b 0a 58 09 09 62 |efault =| 0;.X..b|
|00000880| 61 63 6b 67 72 6f 75 6e | 64 20 3d 20 30 3b 0a 58 |ackgroun|d = 0;.X|
|00000890| 09 09 61 72 67 6e 2b 2b | 3b 0a 58 09 09 7d 0a 58 |..argn++|;.X..}.X|
|000008a0| 09 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 20 73 |. els|e if ( s|
|000008b0| 74 72 63 6d 70 28 20 61 | 72 67 76 5b 61 72 67 6e |trcmp( a|rgv[argn|
|000008c0| 5d 2c 20 22 2d 31 22 20 | 29 20 3d 3d 20 30 20 29 |], "-1" |) == 0 )|
|000008d0| 0a 58 09 09 7b 0a 58 09 | 09 62 61 63 6b 64 65 66 |.X..{.X.|.backdef|
|000008e0| 61 75 6c 74 20 3d 20 30 | 3b 0a 58 09 09 62 61 63 |ault = 0|;.X..bac|
|000008f0| 6b 67 72 6f 75 6e 64 20 | 3d 20 31 3b 0a 58 09 09 |kground |= 1;.X..|
|00000900| 61 72 67 6e 2b 2b 3b 0a | 58 09 09 7d 0a 58 09 20 |argn++;.|X..}.X. |
|00000910| 20 20 20 65 6c 73 65 0a | 58 09 09 7b 0a 58 09 09 | else.|X..{.X..|
|00000920| 66 70 72 69 6e 74 66 28 | 20 73 74 64 65 72 72 2c |fprintf(| stderr,|
|00000930| 20 75 73 61 67 65 2c 20 | 61 72 67 76 5b 30 5d 20 | usage, |argv[0] |
|00000940| 29 3b 0a 58 09 09 65 78 | 69 74 28 20 31 20 29 3b |);.X..ex|it( 1 );|
|00000950| 0a 58 09 09 7d 0a 58 09 | 20 20 20 20 7d 0a 58 09 |.X..}.X.| }.X.|
|00000960| 7d 0a 58 0a 58 20 20 20 | 20 69 66 20 28 20 61 72 |}.X.X | if ( ar|
|00000970| 67 63 20 3e 20 61 72 67 | 6e 20 2b 20 31 20 29 0a |gc > arg|n + 1 ).|
|00000980| 58 09 7b 0a 58 09 66 70 | 72 69 6e 74 66 28 20 73 |X.{.X.fp|rintf( s|
|00000990| 74 64 65 72 72 2c 20 75 | 73 61 67 65 2c 20 61 72 |tderr, u|sage, ar|
|000009a0| 67 76 5b 30 5d 20 29 3b | 0a 58 09 65 78 69 74 28 |gv[0] );|.X.exit(|
|000009b0| 20 31 20 29 3b 0a 58 09 | 7d 0a 58 0a 58 20 20 20 | 1 );.X.|}.X.X |
|000009c0| 20 69 66 20 28 20 61 72 | 67 63 20 3d 3d 20 61 72 | if ( ar|gc == ar|
|000009d0| 67 6e 20 2b 20 31 20 29 | 0a 58 09 7b 0a 58 20 20 |gn + 1 )|.X.{.X |
|000009e0| 20 20 20 20 20 20 69 66 | 64 20 3d 20 66 6f 70 65 | if|d = fope|
|000009f0| 6e 28 20 61 72 67 76 5b | 61 72 67 6e 5d 2c 20 22 |n( argv[|argn], "|
|00000a00| 72 22 20 29 3b 0a 58 20 | 20 20 20 20 20 20 20 69 |r" );.X | i|
|00000a10| 66 20 28 20 69 66 64 20 | 3d 3d 20 4e 55 4c 4c 20 |f ( ifd |== NULL |
|00000a20| 29 0a 58 09 20 20 20 20 | 7b 0a 58 09 20 20 20 20 |).X. |{.X. |
|00000a30| 66 70 72 69 6e 74 66 28 | 20 73 74 64 65 72 72 2c |fprintf(| stderr,|
|00000a40| 20 22 25 73 3a 20 63 61 | 6e 27 74 20 6f 70 65 6e | "%s: ca|n't open|
|00000a50| 2e 5c 6e 22 2c 20 61 72 | 67 76 5b 61 72 67 6e 5d |.\n", ar|gv[argn]|
|00000a60| 20 29 3b 0a 58 09 20 20 | 20 20 65 78 69 74 28 20 | );.X. | exit( |
|00000a70| 31 20 29 3b 0a 58 09 20 | 20 20 20 7d 0a 58 09 7d |1 );.X. | }.X.}|
|00000a80| 0a 58 20 20 20 20 65 6c | 73 65 0a 58 09 69 66 64 |.X el|se.X.ifd|
|00000a90| 20 3d 20 73 74 64 69 6e | 3b 0a 58 0a 58 20 20 20 | = stdin|;.X.X |
|00000aa0| 20 62 69 74 73 20 3d 20 | 70 62 6d 5f 72 65 61 64 | bits = |pbm_read|
|00000ab0| 70 62 6d 28 20 69 66 64 | 2c 20 26 63 6f 6c 73 2c |pbm( ifd|, &cols,|
|00000ac0| 20 26 72 6f 77 73 20 29 | 3b 0a 58 0a 58 20 20 20 | &rows )|;.X.X |
|00000ad0| 20 69 66 20 28 20 69 66 | 64 20 21 3d 20 73 74 64 | if ( if|d != std|
|00000ae0| 69 6e 20 29 0a 58 09 66 | 63 6c 6f 73 65 28 20 69 |in ).X.f|close( i|
|00000af0| 66 64 20 29 3b 0a 58 0a | 58 20 20 20 20 69 66 20 |fd );.X.|X if |
|00000b00| 28 20 62 61 63 6b 64 65 | 66 61 75 6c 74 20 29 0a |( backde|fault ).|
|00000b10| 58 09 7b 0a 58 09 2f 2a | 20 4d 61 6b 65 20 61 20 |X.{.X./*| Make a |
|00000b20| 72 65 61 73 6f 6e 61 62 | 6c 65 20 67 75 65 73 73 |reasonab|le guess|
|00000b30| 20 61 73 20 74 6f 20 77 | 68 61 74 20 74 68 65 20 | as to w|hat the |
|00000b40| 62 61 63 6b 67 72 6f 75 | 6e 64 20 69 73 2e 20 2a |backgrou|nd is. *|
|00000b50| 2f 0a 58 09 63 20 3d 20 | 28 69 6e 74 29 20 62 69 |/.X.c = |(int) bi|
|00000b60| 74 73 5b 30 5d 5b 30 5d | 20 2b 20 28 69 6e 74 29 |ts[0][0]| + (int)|
|00000b70| 20 62 69 74 73 5b 30 5d | 5b 63 6f 6c 73 2d 31 5d | bits[0]|[cols-1]|
|00000b80| 20 2b 0a 58 09 20 20 20 | 20 28 69 6e 74 29 20 62 | +.X. | (int) b|
|00000b90| 69 74 73 5b 72 6f 77 73 | 2d 31 5d 5b 30 5d 20 2b |its[rows|-1][0] +|
|00000ba0| 20 28 69 6e 74 29 20 62 | 69 74 73 5b 72 6f 77 73 | (int) b|its[rows|
|00000bb0| 2d 31 5d 5b 63 6f 6c 73 | 2d 31 5d 3b 0a 58 09 62 |-1][cols|-1];.X.b|
|00000bc0| 61 63 6b 67 72 6f 75 6e | 64 20 3d 20 28 20 63 20 |ackgroun|d = ( c |
|00000bd0| 3c 3d 20 32 20 29 20 3f | 20 30 20 3a 20 31 3b 0a |<= 2 ) ?| 0 : 1;.|
|00000be0| 58 09 7d 0a 58 0a 58 20 | 20 20 20 2f 2a 20 46 69 |X.}.X.X | /* Fi|
|00000bf0| 6e 64 20 66 69 72 73 74 | 20 6e 6f 6e 2d 62 61 63 |nd first| non-bac|
|00000c00| 6b 67 72 6f 75 6e 64 20 | 6c 69 6e 65 2e 20 2a 2f |kground |line. */|
|00000c10| 0a 58 20 20 20 20 66 6f | 72 20 28 20 74 6f 70 20 |.X fo|r ( top |
|00000c20| 3d 20 30 3b 20 74 6f 70 | 20 3c 20 72 6f 77 73 3b |= 0; top| < rows;|
|00000c30| 20 74 6f 70 2b 2b 20 29 | 0a 58 09 66 6f 72 20 28 | top++ )|.X.for (|
|00000c40| 20 63 6f 6c 20 3d 20 30 | 3b 20 63 6f 6c 20 3c 20 | col = 0|; col < |
|00000c50| 63 6f 6c 73 3b 20 63 6f | 6c 2b 2b 20 29 0a 58 09 |cols; co|l++ ).X.|
|00000c60| 20 20 20 20 69 66 20 28 | 20 62 69 74 73 5b 74 6f | if (| bits[to|
|00000c70| 70 5d 5b 63 6f 6c 5d 20 | 21 3d 20 62 61 63 6b 67 |p][col] |!= backg|
|00000c80| 72 6f 75 6e 64 20 29 0a | 58 09 09 67 6f 74 6f 20 |round ).|X..goto |
|00000c90| 67 6f 74 74 6f 70 3b 0a | 58 67 6f 74 74 6f 70 3a |gottop;.|Xgottop:|
|00000ca0| 0a 58 0a 58 20 20 20 20 | 2f 2a 20 46 69 6e 64 20 |.X.X |/* Find |
|00000cb0| 6c 61 73 74 20 6e 6f 6e | 2d 62 61 63 6b 67 72 6f |last non|-backgro|
|00000cc0| 75 6e 64 20 6c 69 6e 65 | 2e 20 2a 2f 0a 58 20 20 |und line|. */.X |
|00000cd0| 20 20 66 6f 72 20 28 20 | 62 6f 74 74 6f 6d 20 3d | for ( |bottom =|
|00000ce0| 20 72 6f 77 73 2d 31 3b | 20 62 6f 74 74 6f 6d 20 | rows-1;| bottom |
|00000cf0| 3e 3d 20 74 6f 70 3b 20 | 62 6f 74 74 6f 6d 2d 2d |>= top; |bottom--|
|00000d00| 20 29 0a 58 09 66 6f 72 | 20 28 20 63 6f 6c 20 3d | ).X.for| ( col =|
|00000d10| 20 30 3b 20 63 6f 6c 20 | 3c 20 63 6f 6c 73 3b 20 | 0; col |< cols; |
|00000d20| 63 6f 6c 2b 2b 20 29 0a | 58 09 20 20 20 20 69 66 |col++ ).|X. if|
|00000d30| 20 28 20 62 69 74 73 5b | 62 6f 74 74 6f 6d 5d 5b | ( bits[|bottom][|
|00000d40| 63 6f 6c 5d 20 21 3d 20 | 62 61 63 6b 67 72 6f 75 |col] != |backgrou|
|00000d50| 6e 64 20 29 0a 58 09 09 | 67 6f 74 6f 20 67 6f 74 |nd ).X..|goto got|
|00000d60| 62 6f 74 74 6f 6d 3b 0a | 58 67 6f 74 62 6f 74 74 |bottom;.|Xgotbott|
|00000d70| 6f 6d 3a 0a 58 0a 58 20 | 20 20 20 2f 2a 20 46 69 |om:.X.X | /* Fi|
|00000d80| 6e 64 20 66 69 72 73 74 | 20 6e 6f 6e 2d 62 61 63 |nd first| non-bac|
|00000d90| 6b 67 72 6f 75 6e 64 20 | 63 6f 6c 75 6d 6e 2e 20 |kground |column. |
|00000da0| 2a 2f 0a 58 20 20 20 20 | 66 6f 72 20 28 20 6c 65 |*/.X |for ( le|
|00000db0| 66 74 20 3d 20 30 3b 20 | 6c 65 66 74 20 3c 20 63 |ft = 0; |left < c|
|00000dc0| 6f 6c 73 3b 20 6c 65 66 | 74 2b 2b 20 29 0a 58 09 |ols; lef|t++ ).X.|
|00000dd0| 66 6f 72 20 28 20 72 6f | 77 20 3d 20 74 6f 70 3b |for ( ro|w = top;|
|00000de0| 20 72 6f 77 20 3c 20 62 | 6f 74 74 6f 6d 3b 20 72 | row < b|ottom; r|
|00000df0| 6f 77 2b 2b 20 29 0a 58 | 09 20 20 20 20 69 66 20 |ow++ ).X|. if |
|00000e00| 28 20 62 69 74 73 5b 72 | 6f 77 5d 5b 6c 65 66 74 |( bits[r|ow][left|
|00000e10| 5d 20 21 3d 20 62 61 63 | 6b 67 72 6f 75 6e 64 20 |] != bac|kground |
|00000e20| 29 0a 58 09 09 67 6f 74 | 6f 20 67 6f 74 6c 65 66 |).X..got|o gotlef|
|00000e30| 74 3b 0a 58 67 6f 74 6c | 65 66 74 3a 0a 58 0a 58 |t;.Xgotl|eft:.X.X|
|00000e40| 20 20 20 20 2f 2a 20 46 | 69 6e 64 20 6c 61 73 74 | /* F|ind last|
|00000e50| 20 6e 6f 6e 2d 62 61 63 | 6b 67 72 6f 75 6e 64 20 | non-bac|kground |
|00000e60| 63 6f 6c 75 6d 6e 2e 20 | 2a 2f 0a 58 20 20 20 20 |column. |*/.X |
|00000e70| 66 6f 72 20 28 20 72 69 | 67 68 74 20 3d 20 63 6f |for ( ri|ght = co|
|00000e80| 6c 73 2d 31 3b 20 72 69 | 67 68 74 20 3e 20 6c 65 |ls-1; ri|ght > le|
|00000e90| 66 74 3b 20 72 69 67 68 | 74 2d 2d 20 29 0a 58 09 |ft; righ|t-- ).X.|
|00000ea0| 66 6f 72 20 28 20 72 6f | 77 20 3d 20 74 6f 70 3b |for ( ro|w = top;|
|00000eb0| 20 72 6f 77 20 3c 3d 20 | 62 6f 74 74 6f 6d 3b 20 | row <= |bottom; |
|00000ec0| 72 6f 77 2b 2b 20 29 0a | 58 09 20 20 20 20 69 66 |row++ ).|X. if|
|00000ed0| 20 28 20 62 69 74 73 5b | 72 6f 77 5d 5b 72 69 67 | ( bits[|row][rig|
|00000ee0| 68 74 5d 20 21 3d 20 62 | 61 63 6b 67 72 6f 75 6e |ht] != b|ackgroun|
|00000ef0| 64 20 29 0a 58 09 09 67 | 6f 74 6f 20 67 6f 74 72 |d ).X..g|oto gotr|
|00000f00| 69 67 68 74 3b 0a 58 67 | 6f 74 72 69 67 68 74 3a |ight;.Xg|otright:|
|00000f10| 0a 58 0a 58 20 20 20 20 | 2f 2a 20 4e 6f 77 20 63 |.X.X |/* Now c|
|00000f20| 6f 70 79 20 69 6e 74 6f | 20 61 20 6e 65 77 20 61 |opy into| a new a|
|00000f30| 72 72 61 79 2e 20 2a 2f | 0a 58 20 20 20 20 6e 65 |rray. */|.X ne|
|00000f40| 77 63 6f 6c 73 20 3d 20 | 72 69 67 68 74 20 2d 20 |wcols = |right - |
|00000f50| 6c 65 66 74 20 2b 20 31 | 3b 0a 58 20 20 20 20 6e |left + 1|;.X n|
|00000f60| 65 77 72 6f 77 73 20 3d | 20 62 6f 74 74 6f 6d 20 |ewrows =| bottom |
|00000f70| 2d 20 74 6f 70 20 2b 20 | 31 3b 0a 58 20 20 20 20 |- top + |1;.X |
|00000f80| 6e 65 77 62 69 74 73 20 | 3d 20 70 62 6d 5f 61 6c |newbits |= pbm_al|
|00000f90| 6c 6f 63 61 72 72 61 79 | 28 20 6e 65 77 63 6f 6c |locarray|( newcol|
|00000fa0| 73 2c 20 6e 65 77 72 6f | 77 73 20 29 3b 0a 58 20 |s, newro|ws );.X |
|00000fb0| 20 20 20 66 6f 72 20 28 | 20 72 6f 77 20 3d 20 74 | for (| row = t|
|00000fc0| 6f 70 3b 20 72 6f 77 20 | 3c 3d 20 62 6f 74 74 6f |op; row |<= botto|
|00000fd0| 6d 3b 20 72 6f 77 2b 2b | 20 29 0a 58 20 20 20 20 |m; row++| ).X |
|00000fe0| 20 20 20 20 66 6f 72 20 | 28 20 63 6f 6c 20 3d 20 | for |( col = |
|00000ff0| 6c 65 66 74 3b 20 63 6f | 6c 20 3c 3d 20 72 69 67 |left; co|l <= rig|
|00001000| 68 74 3b 20 63 6f 6c 2b | 2b 20 29 0a 58 09 20 20 |ht; col+|+ ).X. |
|00001010| 20 20 6e 65 77 62 69 74 | 73 5b 72 6f 77 2d 74 6f | newbit|s[row-to|
|00001020| 70 5d 5b 63 6f 6c 2d 6c | 65 66 74 5d 20 3d 20 62 |p][col-l|eft] = b|
|00001030| 69 74 73 5b 72 6f 77 5d | 5b 63 6f 6c 5d 3b 0a 58 |its[row]|[col];.X|
|00001040| 0a 58 20 20 20 20 70 62 | 6d 5f 77 72 69 74 65 70 |.X pb|m_writep|
|00001050| 62 6d 28 20 73 74 64 6f | 75 74 2c 20 6e 65 77 62 |bm( stdo|ut, newb|
|00001060| 69 74 73 2c 20 6e 65 77 | 63 6f 6c 73 2c 20 6e 65 |its, new|cols, ne|
|00001070| 77 72 6f 77 73 20 29 3b | 0a 58 0a 58 20 20 20 20 |wrows );|.X.X |
|00001080| 65 78 69 74 28 20 30 20 | 29 3b 0a 58 20 20 20 20 |exit( 0 |);.X |
|00001090| 7d 0a 53 48 41 52 5f 45 | 4f 46 0a 69 66 20 74 65 |}.SHAR_E|OF.if te|
|000010a0| 73 74 20 32 39 35 35 20 | 2d 6e 65 20 22 60 77 63 |st 2955 |-ne "`wc|
|000010b0| 20 2d 63 20 3c 20 27 70 | 62 6d 63 72 6f 70 2e 63 | -c < 'p|bmcrop.c|
|000010c0| 27 60 22 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |'`".then|..echo s|
|000010d0| 68 61 72 3a 20 65 72 72 | 6f 72 20 74 72 61 6e 73 |har: err|or trans|
|000010e0| 6d 69 74 74 69 6e 67 20 | 22 27 70 62 6d 63 72 6f |mitting |"'pbmcro|
|000010f0| 70 2e 63 27 22 20 27 28 | 73 68 6f 75 6c 64 20 68 |p.c'" '(|should h|
|00001100| 61 76 65 20 62 65 65 6e | 20 32 39 35 35 20 63 68 |ave been| 2955 ch|
|00001110| 61 72 61 63 74 65 72 73 | 29 27 0a 66 69 0a 66 69 |aracters|)'.fi.fi|
|00001120| 20 23 20 65 6e 64 20 6f | 66 20 6f 76 65 72 77 72 | # end o|f overwr|
|00001130| 69 74 69 6e 67 20 63 68 | 65 63 6b 0a 65 63 68 6f |iting ch|eck.echo|
|00001140| 20 73 68 61 72 3a 20 65 | 78 74 72 61 63 74 69 6e | shar: e|xtractin|
|00001150| 67 20 22 27 70 62 6d 63 | 72 6f 70 2e 6d 61 6e 27 |g "'pbmc|rop.man'|
|00001160| 22 20 27 28 31 31 32 34 | 20 63 68 61 72 61 63 74 |" '(1124| charact|
|00001170| 65 72 73 29 27 0a 69 66 | 20 74 65 73 74 20 2d 66 |ers)'.if| test -f|
|00001180| 20 27 70 62 6d 63 72 6f | 70 2e 6d 61 6e 27 0a 74 | 'pbmcro|p.man'.t|
|00001190| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|000011a0| 77 69 6c 6c 20 6e 6f 74 | 20 6f 76 65 72 2d 77 72 |will not| over-wr|
|000011b0| 69 74 65 20 65 78 69 73 | 74 69 6e 67 20 66 69 6c |ite exis|ting fil|
|000011c0| 65 20 22 27 70 62 6d 63 | 72 6f 70 2e 6d 61 6e 27 |e "'pbmc|rop.man'|
|000011d0| 22 0a 65 6c 73 65 0a 73 | 65 64 20 27 73 2f 5e 58 |".else.s|ed 's/^X|
|000011e0| 2f 2f 27 20 3c 3c 20 5c | 53 48 41 52 5f 45 4f 46 |//' << \|SHAR_EOF|
|000011f0| 20 3e 20 27 70 62 6d 63 | 72 6f 70 2e 6d 61 6e 27 | > 'pbmc|rop.man'|
|00001200| 0a 58 2e 54 48 20 70 62 | 6d 63 72 6f 70 20 31 20 |.X.TH pb|mcrop 1 |
|00001210| 22 31 33 20 46 65 62 72 | 75 61 72 79 20 31 39 38 |"13 Febr|uary 198|
|00001220| 38 22 0a 58 2e 53 48 20 | 4e 41 4d 45 0a 58 70 62 |8".X.SH |NAME.Xpb|
|00001230| 6d 63 72 6f 70 20 2d 20 | 63 72 6f 70 20 61 20 70 |mcrop - |crop a p|
|00001240| 6f 72 74 61 62 6c 65 20 | 62 69 74 6d 61 70 0a 58 |ortable |bitmap.X|
|00001250| 2e 53 48 20 53 59 4e 4f | 50 53 49 53 0a 58 70 62 |.SH SYNO|PSIS.Xpb|
|00001260| 6d 63 72 6f 70 20 5b 2d | 30 5d 20 5b 2d 31 5d 20 |mcrop [-|0] [-1] |
|00001270| 5b 70 62 6d 66 69 6c 65 | 5d 0a 58 2e 53 48 20 44 |[pbmfile|].X.SH D|
|00001280| 45 53 43 52 49 50 54 49 | 4f 4e 0a 58 52 65 61 64 |ESCRIPTI|ON.XRead|
|00001290| 73 20 61 20 70 6f 72 74 | 61 62 6c 65 20 62 69 74 |s a port|able bit|
|000012a0| 6d 61 70 20 61 73 20 69 | 6e 70 75 74 2e 0a 58 52 |map as i|nput..XR|
|000012b0| 65 6d 6f 76 65 73 20 65 | 64 67 65 73 20 74 68 61 |emoves e|dges tha|
|000012c0| 74 20 61 72 65 20 74 68 | 65 20 62 61 63 6b 67 72 |t are th|e backgr|
|000012d0| 6f 75 6e 64 20 63 6f 6c | 6f 72 2c 0a 58 61 6e 64 |ound col|or,.Xand|
|000012e0| 20 70 72 6f 64 75 63 65 | 73 20 61 20 70 6f 72 74 | produce|s a port|
|000012f0| 61 62 6c 65 20 62 69 74 | 6d 61 70 20 61 73 20 6f |able bit|map as o|
|00001300| 75 74 70 75 74 2e 0a 58 | 42 79 20 64 65 66 61 75 |utput..X|By defau|
|00001310| 6c 74 2c 20 69 74 20 6d | 61 6b 65 73 20 61 20 67 |lt, it m|akes a g|
|00001320| 75 65 73 73 20 61 73 20 | 74 6f 20 77 68 61 74 20 |uess as |to what |
|00001330| 74 68 65 20 62 61 63 6b | 67 72 6f 75 6e 64 0a 58 |the back|ground.X|
|00001340| 63 6f 6c 6f 72 20 69 73 | 2e 0a 58 59 6f 75 20 63 |color is|..XYou c|
|00001350| 61 6e 20 6f 76 65 72 72 | 69 64 65 20 74 68 65 20 |an overr|ide the |
|00001360| 64 65 66 61 75 6c 74 20 | 77 69 74 68 20 74 68 65 |default |with the|
|00001370| 20 2d 30 20 61 6e 64 20 | 2d 31 20 66 6c 61 67 73 | -0 and |-1 flags|
|00001380| 2e 0a 58 2e 53 48 20 22 | 53 45 45 20 41 4c 53 4f |..X.SH "|SEE ALSO|
|00001390| 22 0a 58 70 62 6d 28 35 | 29 2c 20 63 62 6d 74 6f |".Xpbm(5|), cbmto|
|000013a0| 70 62 6d 28 31 29 2c 20 | 69 63 6f 6e 74 6f 70 62 |pbm(1), |icontopb|
|000013b0| 6d 28 31 29 2c 20 6d 61 | 63 70 74 6f 70 62 6d 28 |m(1), ma|cptopbm(|
|000013c0| 31 29 2c 20 72 61 73 74 | 74 6f 70 62 6d 28 31 29 |1), rast|topbm(1)|
|000013d0| 2c 20 78 62 6d 74 6f 70 | 62 6d 28 31 29 2c 20 78 |, xbmtop|bm(1), x|
|000013e0| 77 64 74 6f 70 62 6d 28 | 31 29 2c 0a 58 70 62 6d |wdtopbm(|1),.Xpbm|
|000013f0| 74 6f 69 63 6f 6e 28 31 | 29 2c 20 70 62 6d 74 6f |toicon(1|), pbmto|
|00001400| 63 62 6d 28 31 29 2c 20 | 70 62 6d 74 6f 70 73 28 |cbm(1), |pbmtops(|
|00001410| 31 29 2c 20 70 62 6d 74 | 6f 70 74 78 28 31 29 2c |1), pbmt|optx(1),|
|00001420| 20 70 62 6d 74 6f 72 61 | 73 74 28 31 29 2c 0a 58 | pbmtora|st(1),.X|
|00001430| 70 62 6d 74 6f 78 62 6d | 28 31 29 2c 20 70 62 6d |pbmtoxbm|(1), pbm|
|00001440| 74 6f 78 31 30 62 6d 28 | 31 29 2c 20 70 62 6d 74 |tox10bm(|1), pbmt|
|00001450| 6f 61 73 63 69 69 28 31 | 29 2c 20 70 62 6d 69 6e |oascii(1|), pbmin|
|00001460| 76 65 72 74 28 31 29 2c | 20 70 62 6d 66 6c 69 70 |vert(1),| pbmflip|
|00001470| 6c 72 28 31 29 2c 0a 58 | 70 62 6d 66 6c 69 70 74 |lr(1),.X|pbmflipt|
|00001480| 62 28 31 29 2c 20 70 62 | 6d 63 61 74 6c 72 28 31 |b(1), pb|mcatlr(1|
|00001490| 29 2c 20 70 62 6d 63 61 | 74 74 62 28 31 29 2c 20 |), pbmca|ttb(1), |
|000014a0| 70 62 6d 74 72 6e 73 70 | 6f 73 28 31 29 2c 20 70 |pbmtrnsp|os(1), p|
|000014b0| 62 6d 63 75 74 28 31 29 | 2c 0a 58 70 62 6d 70 61 |bmcut(1)|,.Xpbmpa|
|000014c0| 73 74 65 28 31 29 2c 20 | 70 62 6d 65 6e 6c 61 72 |ste(1), |pbmenlar|
|000014d0| 67 65 28 31 29 0a 58 2e | 53 48 20 41 55 54 48 4f |ge(1).X.|SH AUTHO|
|000014e0| 52 0a 58 43 6f 70 79 72 | 69 67 68 74 20 28 43 29 |R.XCopyr|ight (C)|
|000014f0| 20 31 39 38 38 20 62 79 | 20 4a 65 66 20 50 6f 73 | 1988 by| Jef Pos|
|00001500| 6b 61 6e 7a 65 72 2e 0a | 58 0a 58 50 65 72 6d 69 |kanzer..|X.XPermi|
|00001510| 73 73 69 6f 6e 20 74 6f | 20 75 73 65 2c 20 63 6f |ssion to| use, co|
|00001520| 70 79 2c 20 6d 6f 64 69 | 66 79 2c 20 61 6e 64 20 |py, modi|fy, and |
|00001530| 64 69 73 74 72 69 62 75 | 74 65 20 74 68 69 73 20 |distribu|te this |
|00001540| 73 6f 66 74 77 61 72 65 | 20 61 6e 64 20 69 74 73 |software| and its|
|00001550| 0a 58 64 6f 63 75 6d 65 | 6e 74 61 74 69 6f 6e 20 |.Xdocume|ntation |
|00001560| 66 6f 72 20 61 6e 79 20 | 70 75 72 70 6f 73 65 20 |for any |purpose |
|00001570| 61 6e 64 20 77 69 74 68 | 6f 75 74 20 66 65 65 20 |and with|out fee |
|00001580| 69 73 20 68 65 72 65 62 | 79 20 67 72 61 6e 74 65 |is hereb|y grante|
|00001590| 64 2c 20 70 72 6f 76 69 | 64 65 64 0a 58 74 68 61 |d, provi|ded.Xtha|
|000015a0| 74 20 74 68 65 20 61 62 | 6f 76 65 20 63 6f 70 79 |t the ab|ove copy|
|000015b0| 72 69 67 68 74 20 6e 6f | 74 69 63 65 20 61 70 70 |right no|tice app|
|000015c0| 65 61 72 20 69 6e 20 61 | 6c 6c 20 63 6f 70 69 65 |ear in a|ll copie|
|000015d0| 73 20 61 6e 64 20 74 68 | 61 74 20 62 6f 74 68 20 |s and th|at both |
|000015e0| 74 68 61 74 0a 58 63 6f | 70 79 72 69 67 68 74 20 |that.Xco|pyright |
|000015f0| 6e 6f 74 69 63 65 20 61 | 6e 64 20 74 68 69 73 20 |notice a|nd this |
|00001600| 70 65 72 6d 69 73 73 69 | 6f 6e 20 6e 6f 74 69 63 |permissi|on notic|
|00001610| 65 20 61 70 70 65 61 72 | 20 69 6e 20 73 75 70 70 |e appear| in supp|
|00001620| 6f 72 74 69 6e 67 0a 58 | 64 6f 63 75 6d 65 6e 74 |orting.X|document|
|00001630| 61 74 69 6f 6e 2e 20 20 | 54 68 69 73 20 73 6f 66 |ation. |This sof|
|00001640| 74 77 61 72 65 20 69 73 | 20 70 72 6f 76 69 64 65 |tware is| provide|
|00001650| 64 20 22 61 73 20 69 73 | 22 20 77 69 74 68 6f 75 |d "as is|" withou|
|00001660| 74 20 65 78 70 72 65 73 | 73 20 6f 72 0a 58 69 6d |t expres|s or.Xim|
|00001670| 70 6c 69 65 64 20 77 61 | 72 72 61 6e 74 79 2e 0a |plied wa|rranty..|
|00001680| 53 48 41 52 5f 45 4f 46 | 0a 69 66 20 74 65 73 74 |SHAR_EOF|.if test|
|00001690| 20 31 31 32 34 20 2d 6e | 65 20 22 60 77 63 20 2d | 1124 -n|e "`wc -|
|000016a0| 63 20 3c 20 27 70 62 6d | 63 72 6f 70 2e 6d 61 6e |c < 'pbm|crop.man|
|000016b0| 27 60 22 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |'`".then|..echo s|
|000016c0| 68 61 72 3a 20 65 72 72 | 6f 72 20 74 72 61 6e 73 |har: err|or trans|
|000016d0| 6d 69 74 74 69 6e 67 20 | 22 27 70 62 6d 63 72 6f |mitting |"'pbmcro|
|000016e0| 70 2e 6d 61 6e 27 22 20 | 27 28 73 68 6f 75 6c 64 |p.man'" |'(should|
|000016f0| 20 68 61 76 65 20 62 65 | 65 6e 20 31 31 32 34 20 | have be|en 1124 |
|00001700| 63 68 61 72 61 63 74 65 | 72 73 29 27 0a 66 69 0a |characte|rs)'.fi.|
|00001710| 66 69 20 23 20 65 6e 64 | 20 6f 66 20 6f 76 65 72 |fi # end| of over|
|00001720| 77 72 69 74 69 6e 67 20 | 63 68 65 63 6b 0a 65 63 |writing |check.ec|
|00001730| 68 6f 20 73 68 61 72 3a | 20 65 78 74 72 61 63 74 |ho shar:| extract|
|00001740| 69 6e 67 20 22 27 70 62 | 6d 74 72 6e 73 70 6f 73 |ing "'pb|mtrnspos|
|00001750| 2e 63 27 22 20 27 28 31 | 33 33 32 20 63 68 61 72 |.c'" '(1|332 char|
|00001760| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|00001770| 20 2d 66 20 27 70 62 6d | 74 72 6e 73 70 6f 73 2e | -f 'pbm|trnspos.|
|00001780| 63 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |c'.then.|.echo sh|
|00001790| 61 72 3a 20 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: will| not ove|
|000017a0| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|000017b0| 20 66 69 6c 65 20 22 27 | 70 62 6d 74 72 6e 73 70 | file "'|pbmtrnsp|
|000017c0| 6f 73 2e 63 27 22 0a 65 | 6c 73 65 0a 73 65 64 20 |os.c'".e|lse.sed |
|000017d0| 27 73 2f 5e 58 2f 2f 27 | 20 3c 3c 20 5c 53 48 41 |'s/^X//'| << \SHA|
|000017e0| 52 5f 45 4f 46 20 3e 20 | 27 70 62 6d 74 72 6e 73 |R_EOF > |'pbmtrns|
|000017f0| 70 6f 73 2e 63 27 0a 58 | 2f 2a 20 70 62 6d 74 72 |pos.c'.X|/* pbmtr|
|00001800| 6e 73 70 6f 73 2e 63 20 | 2d 20 72 65 61 64 20 61 |nspos.c |- read a|
|00001810| 20 70 6f 72 74 61 62 6c | 65 20 62 69 74 6d 61 70 | portabl|e bitmap|
|00001820| 20 61 6e 64 20 74 72 61 | 6e 73 70 6f 73 65 20 69 | and tra|nspose i|
|00001830| 74 20 78 20 66 6f 72 20 | 79 0a 58 2a 2a 0a 58 2a |t x for |y.X**.X*|
|00001840| 2a 20 43 6f 70 79 72 69 | 67 68 74 20 28 43 29 20 |* Copyri|ght (C) |
|00001850| 31 39 38 38 20 62 79 20 | 4a 65 66 20 50 6f 73 6b |1988 by |Jef Posk|
|00001860| 61 6e 7a 65 72 2e 0a 58 | 2a 2a 0a 58 2a 2a 20 50 |anzer..X|**.X** P|
|00001870| 65 72 6d 69 73 73 69 6f | 6e 20 74 6f 20 75 73 65 |ermissio|n to use|
|00001880| 2c 20 63 6f 70 79 2c 20 | 6d 6f 64 69 66 79 2c 20 |, copy, |modify, |
|00001890| 61 6e 64 20 64 69 73 74 | 72 69 62 75 74 65 20 74 |and dist|ribute t|
|000018a0| 68 69 73 20 73 6f 66 74 | 77 61 72 65 20 61 6e 64 |his soft|ware and|
|000018b0| 20 69 74 73 0a 58 2a 2a | 20 64 6f 63 75 6d 65 6e | its.X**| documen|
|000018c0| 74 61 74 69 6f 6e 20 66 | 6f 72 20 61 6e 79 20 70 |tation f|or any p|
|000018d0| 75 72 70 6f 73 65 20 61 | 6e 64 20 77 69 74 68 6f |urpose a|nd witho|
|000018e0| 75 74 20 66 65 65 20 69 | 73 20 68 65 72 65 62 79 |ut fee i|s hereby|
|000018f0| 20 67 72 61 6e 74 65 64 | 2c 20 70 72 6f 76 69 64 | granted|, provid|
|00001900| 65 64 0a 58 2a 2a 20 74 | 68 61 74 20 74 68 65 20 |ed.X** t|hat the |
|00001910| 61 62 6f 76 65 20 63 6f | 70 79 72 69 67 68 74 20 |above co|pyright |
|00001920| 6e 6f 74 69 63 65 20 61 | 70 70 65 61 72 20 69 6e |notice a|ppear in|
|00001930| 20 61 6c 6c 20 63 6f 70 | 69 65 73 20 61 6e 64 20 | all cop|ies and |
|00001940| 74 68 61 74 20 62 6f 74 | 68 20 74 68 61 74 0a 58 |that bot|h that.X|
|00001950| 2a 2a 20 63 6f 70 79 72 | 69 67 68 74 20 6e 6f 74 |** copyr|ight not|
|00001960| 69 63 65 20 61 6e 64 20 | 74 68 69 73 20 70 65 72 |ice and |this per|
|00001970| 6d 69 73 73 69 6f 6e 20 | 6e 6f 74 69 63 65 20 61 |mission |notice a|
|00001980| 70 70 65 61 72 20 69 6e | 20 73 75 70 70 6f 72 74 |ppear in| support|
|00001990| 69 6e 67 0a 58 2a 2a 20 | 64 6f 63 75 6d 65 6e 74 |ing.X** |document|
|000019a0| 61 74 69 6f 6e 2e 20 20 | 54 68 69 73 20 73 6f 66 |ation. |This sof|
|000019b0| 74 77 61 72 65 20 69 73 | 20 70 72 6f 76 69 64 65 |tware is| provide|
|000019c0| 64 20 22 61 73 20 69 73 | 22 20 77 69 74 68 6f 75 |d "as is|" withou|
|000019d0| 74 20 65 78 70 72 65 73 | 73 20 6f 72 0a 58 2a 2a |t expres|s or.X**|
|000019e0| 20 69 6d 70 6c 69 65 64 | 20 77 61 72 72 61 6e 74 | implied| warrant|
|000019f0| 79 2e 0a 58 2a 2f 0a 58 | 0a 58 23 69 6e 63 6c 75 |y..X*/.X|.X#inclu|
|00001a00| 64 65 20 3c 73 74 64 69 | 6f 2e 68 3e 0a 58 23 69 |de <stdi|o.h>.X#i|
|00001a10| 6e 63 6c 75 64 65 20 22 | 70 62 6d 2e 68 22 0a 58 |nclude "|pbm.h".X|
|00001a20| 0a 58 6d 61 69 6e 28 20 | 61 72 67 63 2c 20 61 72 |.Xmain( |argc, ar|
|00001a30| 67 76 20 29 0a 58 69 6e | 74 20 61 72 67 63 3b 0a |gv ).Xin|t argc;.|
|00001a40| 58 63 68 61 72 20 2a 61 | 72 67 76 5b 5d 3b 0a 58 |Xchar *a|rgv[];.X|
|00001a50| 20 20 20 20 7b 0a 58 20 | 20 20 20 46 49 4c 45 20 | {.X | FILE |
|00001a60| 2a 69 66 64 3b 0a 58 20 | 20 20 20 62 69 74 20 2a |*ifd;.X | bit *|
|00001a70| 2a 62 69 74 73 2c 20 2a | 2a 6e 65 77 62 69 74 73 |*bits, *|*newbits|
|00001a80| 3b 0a 58 20 20 20 20 69 | 6e 74 20 72 6f 77 73 2c |;.X i|nt rows,|
|00001a90| 20 63 6f 6c 73 2c 20 72 | 6f 77 2c 20 63 6f 6c 3b | cols, r|ow, col;|
|00001aa0| 0a 58 0a 58 20 20 20 20 | 69 66 20 28 20 61 72 67 |.X.X |if ( arg|
|00001ab0| 63 20 3e 20 32 20 29 0a | 58 09 7b 0a 58 09 66 70 |c > 2 ).|X.{.X.fp|
|00001ac0| 72 69 6e 74 66 28 20 73 | 74 64 65 72 72 2c 20 22 |rintf( s|tderr, "|
|00001ad0| 75 73 61 67 65 3a 20 20 | 25 73 20 5b 70 62 6d 66 |usage: |%s [pbmf|
|00001ae0| 69 6c 65 5d 5c 6e 22 2c | 20 61 72 67 76 5b 30 5d |ile]\n",| argv[0]|
|00001af0| 20 29 3b 0a 58 09 65 78 | 69 74 28 20 31 20 29 3b | );.X.ex|it( 1 );|
|00001b00| 0a 58 09 7d 0a 58 0a 58 | 20 20 20 20 69 66 20 28 |.X.}.X.X| if (|
|00001b10| 20 61 72 67 63 20 3d 3d | 20 32 20 29 0a 58 09 7b | argc ==| 2 ).X.{|
|00001b20| 0a 58 20 20 20 20 20 20 | 20 20 69 66 64 20 3d 20 |.X | ifd = |
|00001b30| 66 6f 70 65 6e 28 20 61 | 72 67 76 5b 31 5d 2c 20 |fopen( a|rgv[1], |
|00001b40| 22 72 22 20 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |"r" );.X| |
|00001b50| 69 66 20 28 20 69 66 64 | 20 3d 3d 20 4e 55 4c 4c |if ( ifd| == NULL|
|00001b60| 20 29 0a 58 09 20 20 20 | 20 7b 0a 58 09 20 20 20 | ).X. | {.X. |
|00001b70| 20 66 70 72 69 6e 74 66 | 28 20 73 74 64 65 72 72 | fprintf|( stderr|
|00001b80| 2c 20 22 25 73 3a 20 63 | 61 6e 27 74 20 6f 70 65 |, "%s: c|an't ope|
|00001b90| 6e 2e 5c 6e 22 2c 20 61 | 72 67 76 5b 31 5d 20 29 |n.\n", a|rgv[1] )|
|00001ba0| 3b 0a 58 09 20 20 20 20 | 65 78 69 74 28 20 31 20 |;.X. |exit( 1 |
|00001bb0| 29 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 7d 0a 58 |);.X. | }.X.}.X|
|00001bc0| 20 20 20 20 65 6c 73 65 | 0a 58 09 69 66 64 20 3d | else|.X.ifd =|
|00001bd0| 20 73 74 64 69 6e 3b 0a | 58 0a 58 20 20 20 20 62 | stdin;.|X.X b|
|00001be0| 69 74 73 20 3d 20 70 62 | 6d 5f 72 65 61 64 70 62 |its = pb|m_readpb|
|00001bf0| 6d 28 20 69 66 64 2c 20 | 26 63 6f 6c 73 2c 20 26 |m( ifd, |&cols, &|
|00001c00| 72 6f 77 73 20 29 3b 0a | 58 0a 58 20 20 20 20 69 |rows );.|X.X i|
|00001c10| 66 20 28 20 69 66 64 20 | 21 3d 20 73 74 64 69 6e |f ( ifd |!= stdin|
|00001c20| 20 29 0a 58 09 66 63 6c | 6f 73 65 28 20 69 66 64 | ).X.fcl|ose( ifd|
|00001c30| 20 29 3b 0a 58 0a 58 20 | 20 20 20 6e 65 77 62 69 | );.X.X | newbi|
|00001c40| 74 73 20 3d 20 70 62 6d | 5f 61 6c 6c 6f 63 61 72 |ts = pbm|_allocar|
|00001c50| 72 61 79 28 20 72 6f 77 | 73 2c 20 63 6f 6c 73 20 |ray( row|s, cols |
|00001c60| 29 3b 09 2f 2a 20 6e 6f | 74 65 20 70 61 72 61 6d |);./* no|te param|
|00001c70| 65 74 65 72 20 72 65 76 | 65 72 73 61 6c 20 2a 2f |eter rev|ersal */|
|00001c80| 0a 58 0a 58 20 20 20 20 | 66 6f 72 20 28 20 72 6f |.X.X |for ( ro|
|00001c90| 77 20 3d 20 30 3b 20 72 | 6f 77 20 3c 20 72 6f 77 |w = 0; r|ow < row|
|00001ca0| 73 3b 20 72 6f 77 2b 2b | 20 29 0a 58 20 20 20 20 |s; row++| ).X |
|00001cb0| 20 20 20 20 66 6f 72 20 | 28 20 63 6f 6c 20 3d 20 | for |( col = |
|00001cc0| 30 3b 20 63 6f 6c 20 3c | 20 63 6f 6c 73 3b 20 63 |0; col <| cols; c|
|00001cd0| 6f 6c 2b 2b 20 29 0a 58 | 09 20 20 20 20 6e 65 77 |ol++ ).X|. new|
|00001ce0| 62 69 74 73 5b 63 6f 6c | 5d 5b 72 6f 77 5d 20 3d |bits[col|][row] =|
|00001cf0| 20 62 69 74 73 5b 72 6f | 77 5d 5b 63 6f 6c 5d 3b | bits[ro|w][col];|
|00001d00| 0a 58 0a 58 20 20 20 20 | 70 62 6d 5f 77 72 69 74 |.X.X |pbm_writ|
|00001d10| 65 70 62 6d 28 20 73 74 | 64 6f 75 74 2c 20 6e 65 |epbm( st|dout, ne|
|00001d20| 77 62 69 74 73 2c 20 72 | 6f 77 73 2c 20 63 6f 6c |wbits, r|ows, col|
|00001d30| 73 20 29 3b 09 2f 2a 20 | 72 65 76 65 72 73 65 64 |s );./* |reversed|
|00001d40| 20 61 67 61 69 6e 20 2a | 2f 0a 58 0a 58 20 20 20 | again *|/.X.X |
|00001d50| 20 65 78 69 74 28 20 30 | 20 29 3b 0a 58 20 20 20 | exit( 0| );.X |
|00001d60| 20 7d 0a 53 48 41 52 5f | 45 4f 46 0a 69 66 20 74 | }.SHAR_|EOF.if t|
|00001d70| 65 73 74 20 31 33 33 32 | 20 2d 6e 65 20 22 60 77 |est 1332| -ne "`w|
|00001d80| 63 20 2d 63 20 3c 20 27 | 70 62 6d 74 72 6e 73 70 |c -c < '|pbmtrnsp|
|00001d90| 6f 73 2e 63 27 60 22 0a | 74 68 65 6e 0a 09 65 63 |os.c'`".|then..ec|
|00001da0| 68 6f 20 73 68 61 72 3a | 20 65 72 72 6f 72 20 74 |ho shar:| error t|
|00001db0| 72 61 6e 73 6d 69 74 74 | 69 6e 67 20 22 27 70 62 |ransmitt|ing "'pb|
|00001dc0| 6d 74 72 6e 73 70 6f 73 | 2e 63 27 22 20 27 28 73 |mtrnspos|.c'" '(s|
|00001dd0| 68 6f 75 6c 64 20 68 61 | 76 65 20 62 65 65 6e 20 |hould ha|ve been |
|00001de0| 31 33 33 32 20 63 68 61 | 72 61 63 74 65 72 73 29 |1332 cha|racters)|
|00001df0| 27 0a 66 69 0a 66 69 20 | 23 20 65 6e 64 20 6f 66 |'.fi.fi |# end of|
|00001e00| 20 6f 76 65 72 77 72 69 | 74 69 6e 67 20 63 68 65 | overwri|ting che|
|00001e10| 63 6b 0a 65 63 68 6f 20 | 73 68 61 72 3a 20 65 78 |ck.echo |shar: ex|
|00001e20| 74 72 61 63 74 69 6e 67 | 20 22 27 70 62 6d 74 72 |tracting| "'pbmtr|
|00001e30| 6e 73 70 6f 73 2e 6d 61 | 6e 27 22 20 27 28 31 33 |nspos.ma|n'" '(13|
|00001e40| 31 38 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |18 chara|cters)'.|
|00001e50| 69 66 20 74 65 73 74 20 | 2d 66 20 27 70 62 6d 74 |if test |-f 'pbmt|
|00001e60| 72 6e 73 70 6f 73 2e 6d | 61 6e 27 0a 74 68 65 6e |rnspos.m|an'.then|
|00001e70| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00001e80| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00001e90| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00001ea0| 27 70 62 6d 74 72 6e 73 | 70 6f 73 2e 6d 61 6e 27 |'pbmtrns|pos.man'|
|00001eb0| 22 0a 65 6c 73 65 0a 73 | 65 64 20 27 73 2f 5e 58 |".else.s|ed 's/^X|
|00001ec0| 2f 2f 27 20 3c 3c 20 5c | 53 48 41 52 5f 45 4f 46 |//' << \|SHAR_EOF|
|00001ed0| 20 3e 20 27 70 62 6d 74 | 72 6e 73 70 6f 73 2e 6d | > 'pbmt|rnspos.m|
|00001ee0| 61 6e 27 0a 58 2e 54 48 | 20 70 62 6d 74 72 6e 73 |an'.X.TH| pbmtrns|
|00001ef0| 70 6f 73 20 31 20 22 31 | 38 20 46 65 62 72 75 61 |pos 1 "1|8 Februa|
|00001f00| 72 79 20 31 39 38 38 22 | 0a 58 2e 53 48 20 4e 41 |ry 1988"|.X.SH NA|
|00001f10| 4d 45 0a 58 70 62 6d 74 | 72 6e 73 70 6f 73 20 2d |ME.Xpbmt|rnspos -|
|00001f20| 20 74 72 61 6e 73 70 6f | 73 65 20 61 20 70 6f 72 | transpo|se a por|
|00001f30| 74 61 62 6c 65 20 62 69 | 74 6d 61 70 20 78 20 66 |table bi|tmap x f|
|00001f40| 6f 72 20 79 0a 58 2e 53 | 48 20 53 59 4e 4f 50 53 |or y.X.S|H SYNOPS|
|00001f50| 49 53 0a 58 70 62 6d 74 | 72 6e 73 70 6f 73 20 5b |IS.Xpbmt|rnspos [|
|00001f60| 70 62 6d 66 69 6c 65 5d | 0a 58 2e 53 48 20 44 45 |pbmfile]|.X.SH DE|
|00001f70| 53 43 52 49 50 54 49 4f | 4e 0a 58 52 65 61 64 73 |SCRIPTIO|N.XReads|
|00001f80| 20 61 20 70 6f 72 74 61 | 62 6c 65 20 62 69 74 6d | a porta|ble bitm|
|00001f90| 61 70 20 61 73 20 69 6e | 70 75 74 2e 0a 58 54 72 |ap as in|put..XTr|
|00001fa0| 61 6e 73 70 6f 73 65 73 | 20 69 74 20 78 20 66 6f |ansposes| it x fo|
|00001fb0| 72 20 79 20 61 6e 64 20 | 70 72 6f 64 75 63 65 73 |r y and |produces|
|00001fc0| 20 61 20 70 6f 72 74 61 | 62 6c 65 20 62 69 74 6d | a porta|ble bitm|
|00001fd0| 61 70 20 61 73 20 6f 75 | 74 70 75 74 2e 0a 58 2e |ap as ou|tput..X.|
|00001fe0| 50 50 0a 58 4e 6f 74 65 | 20 74 68 61 74 20 74 72 |PP.XNote| that tr|
|00001ff0| 61 6e 73 70 6f 73 69 74 | 69 6f 6e 20 69 73 20 6e |ansposit|ion is n|
|00002000| 6f 74 20 72 6f 74 61 74 | 69 6f 6e 2c 20 62 75 74 |ot rotat|ion, but|
|00002010| 20 63 61 6e 20 62 65 20 | 75 73 65 64 20 74 6f 20 | can be |used to |
|00002020| 70 72 6f 64 75 63 65 20 | 69 74 2e 0a 58 46 6f 72 |produce |it..XFor|
|00002030| 20 65 78 61 6d 70 6c 65 | 2c 20 69 66 20 79 6f 75 | example|, if you|
|00002040| 20 77 61 6e 74 65 64 20 | 61 20 39 30 20 64 65 67 | wanted |a 90 deg|
|00002050| 72 65 65 20 63 6c 6f 63 | 6b 77 69 73 65 20 72 6f |ree cloc|kwise ro|
|00002060| 74 61 74 69 6f 6e 2c 20 | 70 65 72 68 61 70 73 20 |tation, |perhaps |
|00002070| 66 6f 72 0a 58 70 72 69 | 6e 74 69 6e 67 20 61 20 |for.Xpri|nting a |
|00002080| 6c 61 6e 64 73 63 61 70 | 65 20 62 69 74 6d 61 70 |landscap|e bitmap|
|00002090| 20 6f 6e 20 61 20 6c 61 | 73 65 72 20 70 72 69 6e | on a la|ser prin|
|000020a0| 74 65 72 2c 20 79 6f 75 | 20 63 6f 75 6c 64 0a 58 |ter, you| could.X|
|000020b0| 64 6f 20 27 70 62 6d 74 | 72 6e 73 70 6f 73 20 7c |do 'pbmt|rnspos ||
|000020c0| 20 70 62 6d 66 6c 69 70 | 6c 72 27 20 6f 72 20 27 | pbmflip|lr' or '|
|000020d0| 70 62 6d 66 6c 69 70 74 | 62 20 7c 20 70 62 6d 74 |pbmflipt|b | pbmt|
|000020e0| 72 6e 73 70 6f 73 27 2e | 0a 58 46 6f 72 20 63 6f |rnspos'.|.XFor co|
|000020f0| 75 6e 74 65 72 2d 63 6c | 6f 63 6b 77 69 73 65 20 |unter-cl|ockwise |
|00002100| 72 6f 74 61 74 69 6f 6e | 2c 20 79 6f 75 20 77 6f |rotation|, you wo|
|00002110| 75 6c 64 20 75 73 65 20 | 74 68 65 20 6f 70 70 6f |uld use |the oppo|
|00002120| 73 69 74 65 20 66 6c 69 | 70 73 2e 0a 58 2e 53 48 |site fli|ps..X.SH|
|00002130| 20 22 53 45 45 20 41 4c | 53 4f 22 0a 58 70 62 6d | "SEE AL|SO".Xpbm|
|00002140| 28 35 29 2c 20 63 62 6d | 74 6f 70 62 6d 28 31 29 |(5), cbm|topbm(1)|
|00002150| 2c 20 69 63 6f 6e 74 6f | 70 62 6d 28 31 29 2c 20 |, iconto|pbm(1), |
|00002160| 6d 61 63 70 74 6f 70 62 | 6d 28 31 29 2c 20 72 61 |macptopb|m(1), ra|
|00002170| 73 74 74 6f 70 62 6d 28 | 31 29 2c 20 78 62 6d 74 |sttopbm(|1), xbmt|
|00002180| 6f 70 62 6d 28 31 29 2c | 20 78 77 64 74 6f 70 62 |opbm(1),| xwdtopb|
|00002190| 6d 28 31 29 2c 0a 58 70 | 62 6d 74 6f 69 63 6f 6e |m(1),.Xp|bmtoicon|
|000021a0| 28 31 29 2c 20 70 62 6d | 74 6f 63 62 6d 28 31 29 |(1), pbm|tocbm(1)|
|000021b0| 2c 20 70 62 6d 74 6f 70 | 73 28 31 29 2c 20 70 62 |, pbmtop|s(1), pb|
|000021c0| 6d 74 6f 70 74 78 28 31 | 29 2c 20 70 62 6d 74 6f |mtoptx(1|), pbmto|
|000021d0| 72 61 73 74 28 31 29 2c | 0a 58 70 62 6d 74 6f 78 |rast(1),|.Xpbmtox|
|000021e0| 62 6d 28 31 29 2c 20 70 | 62 6d 74 6f 78 31 30 62 |bm(1), p|bmtox10b|
|000021f0| 6d 28 31 29 2c 20 70 62 | 6d 74 6f 61 73 63 69 69 |m(1), pb|mtoascii|
|00002200| 28 31 29 2c 20 70 62 6d | 69 6e 76 65 72 74 28 31 |(1), pbm|invert(1|
|00002210| 29 2c 20 70 62 6d 66 6c | 69 70 6c 72 28 31 29 2c |), pbmfl|iplr(1),|
|00002220| 0a 58 70 62 6d 66 6c 69 | 70 74 62 28 31 29 2c 20 |.Xpbmfli|ptb(1), |
|00002230| 70 62 6d 63 61 74 6c 72 | 28 31 29 2c 20 70 62 6d |pbmcatlr|(1), pbm|
|00002240| 63 61 74 74 62 28 31 29 | 2c 20 70 62 6d 63 72 6f |cattb(1)|, pbmcro|
|00002250| 70 28 31 29 2c 20 70 62 | 6d 63 75 74 28 31 29 2c |p(1), pb|mcut(1),|
|00002260| 0a 58 70 62 6d 70 61 73 | 74 65 28 31 29 2c 20 70 |.Xpbmpas|te(1), p|
|00002270| 62 6d 65 6e 6c 61 72 67 | 65 28 31 29 0a 58 2e 53 |bmenlarg|e(1).X.S|
|00002280| 48 20 41 55 54 48 4f 52 | 0a 58 43 6f 70 79 72 69 |H AUTHOR|.XCopyri|
|00002290| 67 68 74 20 28 43 29 20 | 31 39 38 38 20 62 79 20 |ght (C) |1988 by |
|000022a0| 4a 65 66 20 50 6f 73 6b | 61 6e 7a 65 72 2e 0a 58 |Jef Posk|anzer..X|
|000022b0| 0a 58 50 65 72 6d 69 73 | 73 69 6f 6e 20 74 6f 20 |.XPermis|sion to |
|000022c0| 75 73 65 2c 20 63 6f 70 | 79 2c 20 6d 6f 64 69 66 |use, cop|y, modif|
|000022d0| 79 2c 20 61 6e 64 20 64 | 69 73 74 72 69 62 75 74 |y, and d|istribut|
|000022e0| 65 20 74 68 69 73 20 73 | 6f 66 74 77 61 72 65 20 |e this s|oftware |
|000022f0| 61 6e 64 20 69 74 73 0a | 58 64 6f 63 75 6d 65 6e |and its.|Xdocumen|
|00002300| 74 61 74 69 6f 6e 20 66 | 6f 72 20 61 6e 79 20 70 |tation f|or any p|
|00002310| 75 72 70 6f 73 65 20 61 | 6e 64 20 77 69 74 68 6f |urpose a|nd witho|
|00002320| 75 74 20 66 65 65 20 69 | 73 20 68 65 72 65 62 79 |ut fee i|s hereby|
|00002330| 20 67 72 61 6e 74 65 64 | 2c 20 70 72 6f 76 69 64 | granted|, provid|
|00002340| 65 64 0a 58 74 68 61 74 | 20 74 68 65 20 61 62 6f |ed.Xthat| the abo|
|00002350| 76 65 20 63 6f 70 79 72 | 69 67 68 74 20 6e 6f 74 |ve copyr|ight not|
|00002360| 69 63 65 20 61 70 70 65 | 61 72 20 69 6e 20 61 6c |ice appe|ar in al|
|00002370| 6c 20 63 6f 70 69 65 73 | 20 61 6e 64 20 74 68 61 |l copies| and tha|
|00002380| 74 20 62 6f 74 68 20 74 | 68 61 74 0a 58 63 6f 70 |t both t|hat.Xcop|
|00002390| 79 72 69 67 68 74 20 6e | 6f 74 69 63 65 20 61 6e |yright n|otice an|
|000023a0| 64 20 74 68 69 73 20 70 | 65 72 6d 69 73 73 69 6f |d this p|ermissio|
|000023b0| 6e 20 6e 6f 74 69 63 65 | 20 61 70 70 65 61 72 20 |n notice| appear |
|000023c0| 69 6e 20 73 75 70 70 6f | 72 74 69 6e 67 0a 58 64 |in suppo|rting.Xd|
|000023d0| 6f 63 75 6d 65 6e 74 61 | 74 69 6f 6e 2e 20 20 54 |ocumenta|tion. T|
|000023e0| 68 69 73 20 73 6f 66 74 | 77 61 72 65 20 69 73 20 |his soft|ware is |
|000023f0| 70 72 6f 76 69 64 65 64 | 20 22 61 73 20 69 73 22 |provided| "as is"|
|00002400| 20 77 69 74 68 6f 75 74 | 20 65 78 70 72 65 73 73 | without| express|
|00002410| 20 6f 72 0a 58 69 6d 70 | 6c 69 65 64 20 77 61 72 | or.Ximp|lied war|
|00002420| 72 61 6e 74 79 2e 0a 53 | 48 41 52 5f 45 4f 46 0a |ranty..S|HAR_EOF.|
|00002430| 69 66 20 74 65 73 74 20 | 31 33 31 38 20 2d 6e 65 |if test |1318 -ne|
|00002440| 20 22 60 77 63 20 2d 63 | 20 3c 20 27 70 62 6d 74 | "`wc -c| < 'pbmt|
|00002450| 72 6e 73 70 6f 73 2e 6d | 61 6e 27 60 22 0a 74 68 |rnspos.m|an'`".th|
|00002460| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 65 |en..echo| shar: e|
|00002470| 72 72 6f 72 20 74 72 61 | 6e 73 6d 69 74 74 69 6e |rror tra|nsmittin|
|00002480| 67 20 22 27 70 62 6d 74 | 72 6e 73 70 6f 73 2e 6d |g "'pbmt|rnspos.m|
|00002490| 61 6e 27 22 20 27 28 73 | 68 6f 75 6c 64 20 68 61 |an'" '(s|hould ha|
|000024a0| 76 65 20 62 65 65 6e 20 | 31 33 31 38 20 63 68 61 |ve been |1318 cha|
|000024b0| 72 61 63 74 65 72 73 29 | 27 0a 66 69 0a 66 69 20 |racters)|'.fi.fi |
|000024c0| 23 20 65 6e 64 20 6f 66 | 20 6f 76 65 72 77 72 69 |# end of| overwri|
|000024d0| 74 69 6e 67 20 63 68 65 | 63 6b 0a 65 63 68 6f 20 |ting che|ck.echo |
|000024e0| 73 68 61 72 3a 20 65 78 | 74 72 61 63 74 69 6e 67 |shar: ex|tracting|
|000024f0| 20 22 27 70 62 6d 63 75 | 74 2e 63 27 22 20 27 28 | "'pbmcu|t.c'" '(|
|00002500| 32 36 30 36 20 63 68 61 | 72 61 63 74 65 72 73 29 |2606 cha|racters)|
|00002510| 27 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 70 62 |'.if tes|t -f 'pb|
|00002520| 6d 63 75 74 2e 63 27 0a | 74 68 65 6e 0a 09 65 63 |mcut.c'.|then..ec|
|00002530| 68 6f 20 73 68 61 72 3a | 20 77 69 6c 6c 20 6e 6f |ho shar:| will no|
|00002540| 74 20 6f 76 65 72 2d 77 | 72 69 74 65 20 65 78 69 |t over-w|rite exi|
|00002550| 73 74 69 6e 67 20 66 69 | 6c 65 20 22 27 70 62 6d |sting fi|le "'pbm|
|00002560| 63 75 74 2e 63 27 22 0a | 65 6c 73 65 0a 73 65 64 |cut.c'".|else.sed|
|00002570| 20 27 73 2f 5e 58 2f 2f | 27 20 3c 3c 20 5c 53 48 | 's/^X//|' << \SH|
|00002580| 41 52 5f 45 4f 46 20 3e | 20 27 70 62 6d 63 75 74 |AR_EOF >| 'pbmcut|
|00002590| 2e 63 27 0a 58 2f 2a 20 | 70 62 6d 63 75 74 2e 63 |.c'.X/* |pbmcut.c|
|000025a0| 20 2d 20 63 75 74 20 61 | 20 72 65 63 74 61 6e 67 | - cut a| rectang|
|000025b0| 6c 65 20 6f 75 74 20 6f | 66 20 61 20 70 6f 72 74 |le out o|f a port|
|000025c0| 61 62 6c 65 20 62 69 74 | 6d 61 70 0a 58 2a 2a 0a |able bit|map.X**.|
|000025d0| 58 2a 2a 20 43 6f 70 79 | 72 69 67 68 74 20 28 43 |X** Copy|right (C|
|000025e0| 29 20 31 39 38 38 20 62 | 79 20 4a 65 66 20 50 6f |) 1988 b|y Jef Po|
|000025f0| 73 6b 61 6e 7a 65 72 2e | 0a 58 2a 2a 0a 58 2a 2a |skanzer.|.X**.X**|
|00002600| 20 50 65 72 6d 69 73 73 | 69 6f 6e 20 74 6f 20 75 | Permiss|ion to u|
|00002610| 73 65 2c 20 63 6f 70 79 | 2c 20 6d 6f 64 69 66 79 |se, copy|, modify|
|00002620| 2c 20 61 6e 64 20 64 69 | 73 74 72 69 62 75 74 65 |, and di|stribute|
|00002630| 20 74 68 69 73 20 73 6f | 66 74 77 61 72 65 20 61 | this so|ftware a|
|00002640| 6e 64 20 69 74 73 0a 58 | 2a 2a 20 64 6f 63 75 6d |nd its.X|** docum|
|00002650| 65 6e 74 61 74 69 6f 6e | 20 66 6f 72 20 61 6e 79 |entation| for any|
|00002660| 20 70 75 72 70 6f 73 65 | 20 61 6e 64 20 77 69 74 | purpose| and wit|
|00002670| 68 6f 75 74 20 66 65 65 | 20 69 73 20 68 65 72 65 |hout fee| is here|
|00002680| 62 79 20 67 72 61 6e 74 | 65 64 2c 20 70 72 6f 76 |by grant|ed, prov|
|00002690| 69 64 65 64 0a 58 2a 2a | 20 74 68 61 74 20 74 68 |ided.X**| that th|
|000026a0| 65 20 61 62 6f 76 65 20 | 63 6f 70 79 72 69 67 68 |e above |copyrigh|
|000026b0| 74 20 6e 6f 74 69 63 65 | 20 61 70 70 65 61 72 20 |t notice| appear |
|000026c0| 69 6e 20 61 6c 6c 20 63 | 6f 70 69 65 73 20 61 6e |in all c|opies an|
|000026d0| 64 20 74 68 61 74 20 62 | 6f 74 68 20 74 68 61 74 |d that b|oth that|
|000026e0| 0a 58 2a 2a 20 63 6f 70 | 79 72 69 67 68 74 20 6e |.X** cop|yright n|
|000026f0| 6f 74 69 63 65 20 61 6e | 64 20 74 68 69 73 20 70 |otice an|d this p|
|00002700| 65 72 6d 69 73 73 69 6f | 6e 20 6e 6f 74 69 63 65 |ermissio|n notice|
|00002710| 20 61 70 70 65 61 72 20 | 69 6e 20 73 75 70 70 6f | appear |in suppo|
|00002720| 72 74 69 6e 67 0a 58 2a | 2a 20 64 6f 63 75 6d 65 |rting.X*|* docume|
|00002730| 6e 74 61 74 69 6f 6e 2e | 20 20 54 68 69 73 20 73 |ntation.| This s|
|00002740| 6f 66 74 77 61 72 65 20 | 69 73 20 70 72 6f 76 69 |oftware |is provi|
|00002750| 64 65 64 20 22 61 73 20 | 69 73 22 20 77 69 74 68 |ded "as |is" with|
|00002760| 6f 75 74 20 65 78 70 72 | 65 73 73 20 6f 72 0a 58 |out expr|ess or.X|
|00002770| 2a 2a 20 69 6d 70 6c 69 | 65 64 20 77 61 72 72 61 |** impli|ed warra|
|00002780| 6e 74 79 2e 0a 58 2a 2f | 0a 58 0a 58 23 69 6e 63 |nty..X*/|.X.X#inc|
|00002790| 6c 75 64 65 20 3c 73 74 | 64 69 6f 2e 68 3e 0a 58 |lude <st|dio.h>.X|
|000027a0| 23 69 6e 63 6c 75 64 65 | 20 22 70 62 6d 2e 68 22 |#include| "pbm.h"|
|000027b0| 0a 58 0a 58 6d 61 69 6e | 28 20 61 72 67 63 2c 20 |.X.Xmain|( argc, |
|000027c0| 61 72 67 76 20 29 0a 58 | 69 6e 74 20 61 72 67 63 |argv ).X|int argc|
|000027d0| 3b 0a 58 63 68 61 72 20 | 2a 61 72 67 76 5b 5d 3b |;.Xchar |*argv[];|
|000027e0| 0a 58 20 20 20 20 7b 0a | 58 20 20 20 20 46 49 4c |.X {.|X FIL|
|000027f0| 45 20 2a 69 66 64 3b 0a | 58 20 20 20 20 62 69 74 |E *ifd;.|X bit|
|00002800| 20 2a 2a 62 69 74 73 2c | 20 2a 2a 6e 65 77 62 69 | **bits,| **newbi|
|00002810| 74 73 3b 0a 58 20 20 20 | 20 69 6e 74 20 72 6f 77 |ts;.X | int row|
|00002820| 73 2c 20 63 6f 6c 73 2c | 20 78 2c 20 79 2c 20 77 |s, cols,| x, y, w|
|00002830| 69 64 74 68 2c 20 68 65 | 69 67 68 74 2c 20 72 6f |idth, he|ight, ro|
|00002840| 77 2c 20 63 6f 6c 3b 0a | 58 20 20 20 20 63 68 61 |w, col;.|X cha|
|00002850| 72 20 2a 75 73 61 67 65 | 20 3d 20 22 75 73 61 67 |r *usage| = "usag|
|00002860| 65 3a 20 20 25 73 20 78 | 20 79 20 77 69 64 74 68 |e: %s x| y width|
|00002870| 20 68 65 69 67 68 74 20 | 5b 70 62 6d 66 69 6c 65 | height |[pbmfile|
|00002880| 5d 5c 6e 22 3b 0a 58 0a | 58 0a 58 20 20 20 20 69 |]\n";.X.|X.X i|
|00002890| 66 20 28 20 61 72 67 63 | 20 3c 20 35 20 7c 7c 20 |f ( argc| < 5 || |
|000028a0| 61 72 67 63 20 3e 20 36 | 20 29 0a 58 09 7b 0a 58 |argc > 6| ).X.{.X|
|000028b0| 09 66 70 72 69 6e 74 66 | 28 20 73 74 64 65 72 72 |.fprintf|( stderr|
|000028c0| 2c 20 75 73 61 67 65 2c | 20 61 72 67 76 5b 30 5d |, usage,| argv[0]|
|000028d0| 20 29 3b 0a 58 09 65 78 | 69 74 28 20 31 20 29 3b | );.X.ex|it( 1 );|
|000028e0| 0a 58 09 7d 0a 58 0a 58 | 20 20 20 20 69 66 20 28 |.X.}.X.X| if (|
|000028f0| 20 73 73 63 61 6e 66 28 | 20 61 72 67 76 5b 31 5d | sscanf(| argv[1]|
|00002900| 2c 20 22 25 64 22 2c 20 | 26 78 20 29 20 21 3d 20 |, "%d", |&x ) != |
|00002910| 31 20 29 0a 58 09 7b 0a | 58 09 66 70 72 69 6e 74 |1 ).X.{.|X.fprint|
|00002920| 66 28 20 73 74 64 65 72 | 72 2c 20 75 73 61 67 65 |f( stder|r, usage|
|00002930| 2c 20 61 72 67 76 5b 30 | 5d 20 29 3b 0a 58 09 65 |, argv[0|] );.X.e|
|00002940| 78 69 74 28 20 31 20 29 | 3b 0a 58 09 7d 0a 58 20 |xit( 1 )|;.X.}.X |
|00002950| 20 20 20 69 66 20 28 20 | 73 73 63 61 6e 66 28 20 | if ( |sscanf( |
|00002960| 61 72 67 76 5b 32 5d 2c | 20 22 25 64 22 2c 20 26 |argv[2],| "%d", &|
|00002970| 79 20 29 20 21 3d 20 31 | 20 29 0a 58 09 7b 0a 58 |y ) != 1| ).X.{.X|
|00002980| 09 66 70 72 69 6e 74 66 | 28 20 73 74 64 65 72 72 |.fprintf|( stderr|
|00002990| 2c 20 75 73 61 67 65 2c | 20 61 72 67 76 5b 30 5d |, usage,| argv[0]|
|000029a0| 20 29 3b 0a 58 09 65 78 | 69 74 28 20 31 20 29 3b | );.X.ex|it( 1 );|
|000029b0| 0a 58 09 7d 0a 58 20 20 | 20 20 69 66 20 28 20 73 |.X.}.X | if ( s|
|000029c0| 73 63 61 6e 66 28 20 61 | 72 67 76 5b 33 5d 2c 20 |scanf( a|rgv[3], |
|000029d0| 22 25 64 22 2c 20 26 77 | 69 64 74 68 20 29 20 21 |"%d", &w|idth ) !|
|000029e0| 3d 20 31 20 29 0a 58 09 | 7b 0a 58 09 66 70 72 69 |= 1 ).X.|{.X.fpri|
|000029f0| 6e 74 66 28 20 73 74 64 | 65 72 72 2c 20 75 73 61 |ntf( std|err, usa|
|00002a00| 67 65 2c 20 61 72 67 76 | 5b 30 5d 20 29 3b 0a 58 |ge, argv|[0] );.X|
|00002a10| 09 65 78 69 74 28 20 31 | 20 29 3b 0a 58 09 7d 0a |.exit( 1| );.X.}.|
|00002a20| 58 20 20 20 20 69 66 20 | 28 20 73 73 63 61 6e 66 |X if |( sscanf|
|00002a30| 28 20 61 72 67 76 5b 34 | 5d 2c 20 22 25 64 22 2c |( argv[4|], "%d",|
|00002a40| 20 26 68 65 69 67 68 74 | 20 29 20 21 3d 20 31 20 | &height| ) != 1 |
|00002a50| 29 0a 58 09 7b 0a 58 09 | 66 70 72 69 6e 74 66 28 |).X.{.X.|fprintf(|
|00002a60| 20 73 74 64 65 72 72 2c | 20 75 73 61 67 65 2c 20 | stderr,| usage, |
|00002a70| 61 72 67 76 5b 30 5d 20 | 29 3b 0a 58 09 65 78 69 |argv[0] |);.X.exi|
|00002a80| 74 28 20 31 20 29 3b 0a | 58 09 7d 0a 58 0a 58 20 |t( 1 );.|X.}.X.X |
|00002a90| 20 20 20 69 66 20 28 20 | 78 20 3c 20 30 20 29 0a | if ( |x < 0 ).|
|00002aa0| 58 09 7b 0a 58 09 66 70 | 72 69 6e 74 66 28 20 73 |X.{.X.fp|rintf( s|
|00002ab0| 74 64 65 72 72 2c 20 22 | 78 20 69 73 20 6c 65 73 |tderr, "|x is les|
|00002ac0| 73 20 74 68 61 6e 20 30 | 5c 6e 22 20 29 3b 0a 58 |s than 0|\n" );.X|
|00002ad0| 09 65 78 69 74 28 20 31 | 20 29 3b 0a 58 09 7d 0a |.exit( 1| );.X.}.|
|00002ae0| 58 20 20 20 20 69 66 20 | 28 20 79 20 3c 20 30 20 |X if |( y < 0 |
|00002af0| 29 0a 58 09 7b 0a 58 09 | 66 70 72 69 6e 74 66 28 |).X.{.X.|fprintf(|
|00002b00| 20 73 74 64 65 72 72 2c | 20 22 79 20 69 73 20 6c | stderr,| "y is l|
|00002b10| 65 73 73 20 74 68 61 6e | 20 30 5c 6e 22 20 29 3b |ess than| 0\n" );|
|00002b20| 0a 58 09 65 78 69 74 28 | 20 31 20 29 3b 0a 58 09 |.X.exit(| 1 );.X.|
|00002b30| 7d 0a 58 20 20 20 20 69 | 66 20 28 20 77 69 64 74 |}.X i|f ( widt|
|00002b40| 68 20 3c 20 31 20 29 0a | 58 09 7b 0a 58 09 66 70 |h < 1 ).|X.{.X.fp|
|00002b50| 72 69 6e 74 66 28 20 73 | 74 64 65 72 72 2c 20 22 |rintf( s|tderr, "|
|00002b60| 77 69 64 74 68 20 69 73 | 20 6c 65 73 73 20 74 68 |width is| less th|
|00002b70| 61 6e 20 31 5c 6e 22 20 | 29 3b 0a 58 09 65 78 69 |an 1\n" |);.X.exi|
|00002b80| 74 28 20 31 20 29 3b 0a | 58 09 7d 0a 58 20 20 20 |t( 1 );.|X.}.X |
|00002b90| 20 69 66 20 28 20 68 65 | 69 67 68 74 20 3c 20 31 | if ( he|ight < 1|
|00002ba0| 20 29 0a 58 09 7b 0a 58 | 09 66 70 72 69 6e 74 66 | ).X.{.X|.fprintf|
|00002bb0| 28 20 73 74 64 65 72 72 | 2c 20 22 68 65 69 67 68 |( stderr|, "heigh|
|00002bc0| 74 20 69 73 20 6c 65 73 | 73 20 74 68 61 6e 20 31 |t is les|s than 1|
|00002bd0| 5c 6e 22 20 29 3b 0a 58 | 09 65 78 69 74 28 20 31 |\n" );.X|.exit( 1|
|00002be0| 20 29 3b 0a 58 09 7d 0a | 58 0a 58 20 20 20 20 69 | );.X.}.|X.X i|
|00002bf0| 66 20 28 20 61 72 67 63 | 20 3d 3d 20 36 20 29 0a |f ( argc| == 6 ).|
|00002c00| 58 09 7b 0a 58 20 20 20 | 20 20 20 20 20 69 66 64 |X.{.X | ifd|
|00002c10| 20 3d 20 66 6f 70 65 6e | 28 20 61 72 67 76 5b 35 | = fopen|( argv[5|
|00002c20| 5d 2c 20 22 72 22 20 29 | 3b 0a 58 20 20 20 20 20 |], "r" )|;.X |
|00002c30| 20 20 20 69 66 20 28 20 | 69 66 64 20 3d 3d 20 4e | if ( |ifd == N|
|00002c40| 55 4c 4c 20 29 0a 58 09 | 20 20 20 20 7b 0a 58 09 |ULL ).X.| {.X.|
|00002c50| 20 20 20 20 66 70 72 69 | 6e 74 66 28 20 73 74 64 | fpri|ntf( std|
|00002c60| 65 72 72 2c 20 22 25 73 | 3a 20 63 61 6e 27 74 20 |err, "%s|: can't |
|00002c70| 6f 70 65 6e 2e 5c 6e 22 | 2c 20 61 72 67 76 5b 35 |open.\n"|, argv[5|
|00002c80| 5d 20 29 3b 0a 58 09 20 | 20 20 20 65 78 69 74 28 |] );.X. | exit(|
|00002c90| 20 31 20 29 3b 0a 58 09 | 20 20 20 20 7d 0a 58 09 | 1 );.X.| }.X.|
|00002ca0| 7d 0a 58 20 20 20 20 65 | 6c 73 65 0a 58 09 69 66 |}.X e|lse.X.if|
|00002cb0| 64 20 3d 20 73 74 64 69 | 6e 3b 0a 58 0a 58 20 20 |d = stdi|n;.X.X |
|00002cc0| 20 20 62 69 74 73 20 3d | 20 70 62 6d 5f 72 65 61 | bits =| pbm_rea|
|00002cd0| 64 70 62 6d 28 20 69 66 | 64 2c 20 26 63 6f 6c 73 |dpbm( if|d, &cols|
|00002ce0| 2c 20 26 72 6f 77 73 20 | 29 3b 0a 58 0a 58 20 20 |, &rows |);.X.X |
|00002cf0| 20 20 69 66 20 28 20 69 | 66 64 20 21 3d 20 73 74 | if ( i|fd != st|
|00002d00| 64 69 6e 20 29 0a 58 09 | 66 63 6c 6f 73 65 28 20 |din ).X.|fclose( |
|00002d10| 69 66 64 20 29 3b 0a 58 | 0a 58 20 20 20 20 69 66 |ifd );.X|.X if|
|00002d20| 20 28 20 78 20 3e 3d 20 | 63 6f 6c 73 20 29 0a 58 | ( x >= |cols ).X|
|00002d30| 09 7b 0a 58 09 66 70 72 | 69 6e 74 66 28 0a 58 09 |.{.X.fpr|intf(.X.|
|00002d40| 20 20 20 20 73 74 64 65 | 72 72 2c 20 22 78 20 69 | stde|rr, "x i|
|00002d50| 73 20 74 6f 6f 20 6c 61 | 72 67 65 20 2d 2d 20 74 |s too la|rge -- t|
|00002d60| 68 65 20 62 69 74 6d 61 | 70 20 68 61 73 20 6f 6e |he bitma|p has on|
|00002d70| 6c 79 20 25 64 20 63 6f | 6c 73 5c 6e 22 2c 20 63 |ly %d co|ls\n", c|
|00002d80| 6f 6c 73 20 29 3b 0a 58 | 09 65 78 69 74 28 20 31 |ols );.X|.exit( 1|
|00002d90| 20 29 3b 0a 58 09 7d 0a | 58 20 20 20 20 69 66 20 | );.X.}.|X if |
|00002da0| 28 20 79 20 3e 3d 20 72 | 6f 77 73 20 29 0a 58 09 |( y >= r|ows ).X.|
|00002db0| 7b 0a 58 09 66 70 72 69 | 6e 74 66 28 0a 58 09 20 |{.X.fpri|ntf(.X. |
|00002dc0| 20 20 20 73 74 64 65 72 | 72 2c 20 22 79 20 69 73 | stder|r, "y is|
|00002dd0| 20 74 6f 6f 20 6c 61 72 | 67 65 20 2d 2d 20 74 68 | too lar|ge -- th|
|00002de0| 65 20 62 69 74 6d 61 70 | 20 68 61 73 20 6f 6e 6c |e bitmap| has onl|
|00002df0| 79 20 25 64 20 72 6f 77 | 73 5c 6e 22 2c 20 72 6f |y %d row|s\n", ro|
|00002e00| 77 73 20 29 3b 0a 58 09 | 65 78 69 74 28 20 31 20 |ws );.X.|exit( 1 |
|00002e10| 29 3b 0a 58 09 7d 0a 58 | 20 20 20 20 69 66 20 28 |);.X.}.X| if (|
|00002e20| 20 78 20 2b 20 77 69 64 | 74 68 20 3e 20 63 6f 6c | x + wid|th > col|
|00002e30| 73 20 29 0a 58 09 7b 0a | 58 09 66 70 72 69 6e 74 |s ).X.{.|X.fprint|
|00002e40| 66 28 0a 58 09 20 20 20 | 20 73 74 64 65 72 72 2c |f(.X. | stderr,|
|00002e50| 20 22 78 20 2b 20 77 69 | 64 74 68 20 69 73 20 74 | "x + wi|dth is t|
|00002e60| 6f 6f 20 6c 61 72 67 65 | 20 62 79 20 25 64 20 70 |oo large| by %d p|
|00002e70| 69 78 65 6c 73 5c 6e 22 | 2c 20 78 20 2b 20 77 69 |ixels\n"|, x + wi|
|00002e80| 64 74 68 20 2d 20 63 6f | 6c 73 20 29 3b 0a 58 09 |dth - co|ls );.X.|
|00002e90| 65 78 69 74 28 20 31 20 | 29 3b 0a 58 09 7d 0a 58 |exit( 1 |);.X.}.X|
|00002ea0| 20 20 20 20 69 66 20 28 | 20 79 20 2b 20 68 65 69 | if (| y + hei|
|00002eb0| 67 68 74 20 3e 20 72 6f | 77 73 20 29 0a 58 09 7b |ght > ro|ws ).X.{|
|00002ec0| 0a 58 09 66 70 72 69 6e | 74 66 28 0a 58 09 20 20 |.X.fprin|tf(.X. |
|00002ed0| 20 20 73 74 64 65 72 72 | 2c 20 22 79 20 2b 20 68 | stderr|, "y + h|
|00002ee0| 65 69 67 68 74 20 69 73 | 20 74 6f 6f 20 6c 61 72 |eight is| too lar|
|00002ef0| 67 65 20 62 79 20 25 64 | 20 70 69 78 65 6c 73 5c |ge by %d| pixels\|
|00002f00| 6e 22 2c 0a 58 09 20 20 | 20 20 79 20 2b 20 68 65 |n",.X. | y + he|
|00002f10| 69 67 68 74 20 2d 20 72 | 6f 77 73 20 29 3b 0a 58 |ight - r|ows );.X|
|00002f20| 09 65 78 69 74 28 20 31 | 20 29 3b 0a 58 09 7d 0a |.exit( 1| );.X.}.|
|00002f30| 58 0a 58 20 20 20 20 6e | 65 77 62 69 74 73 20 3d |X.X n|ewbits =|
|00002f40| 20 70 62 6d 5f 61 6c 6c | 6f 63 61 72 72 61 79 28 | pbm_all|ocarray(|
|00002f50| 20 77 69 64 74 68 2c 20 | 68 65 69 67 68 74 20 29 | width, |height )|
|00002f60| 3b 0a 58 20 20 20 20 66 | 6f 72 20 28 20 72 6f 77 |;.X f|or ( row|
|00002f70| 20 3d 20 79 3b 20 72 6f | 77 20 3c 20 79 20 2b 20 | = y; ro|w < y + |
|00002f80| 68 65 69 67 68 74 3b 20 | 72 6f 77 2b 2b 20 29 0a |height; |row++ ).|
|00002f90| 58 20 20 20 20 20 20 20 | 20 66 6f 72 20 28 20 63 |X | for ( c|
|00002fa0| 6f 6c 20 3d 20 78 3b 20 | 63 6f 6c 20 3c 20 78 20 |ol = x; |col < x |
|00002fb0| 2b 20 77 69 64 74 68 3b | 20 63 6f 6c 2b 2b 20 29 |+ width;| col++ )|
|00002fc0| 0a 58 09 20 20 20 20 6e | 65 77 62 69 74 73 5b 72 |.X. n|ewbits[r|
|00002fd0| 6f 77 2d 79 5d 5b 63 6f | 6c 2d 78 5d 20 3d 20 62 |ow-y][co|l-x] = b|
|00002fe0| 69 74 73 5b 72 6f 77 5d | 5b 63 6f 6c 5d 3b 0a 58 |its[row]|[col];.X|
|00002ff0| 0a 58 20 20 20 20 70 62 | 6d 5f 77 72 69 74 65 70 |.X pb|m_writep|
|00003000| 62 6d 28 20 73 74 64 6f | 75 74 2c 20 6e 65 77 62 |bm( stdo|ut, newb|
|00003010| 69 74 73 2c 20 77 69 64 | 74 68 2c 20 68 65 69 67 |its, wid|th, heig|
|00003020| 68 74 20 29 3b 0a 58 0a | 58 20 20 20 20 65 78 69 |ht );.X.|X exi|
|00003030| 74 28 20 30 20 29 3b 0a | 58 20 20 20 20 7d 0a 53 |t( 0 );.|X }.S|
|00003040| 48 41 52 5f 45 4f 46 0a | 69 66 20 74 65 73 74 20 |HAR_EOF.|if test |
|00003050| 32 36 30 36 20 2d 6e 65 | 20 22 60 77 63 20 2d 63 |2606 -ne| "`wc -c|
|00003060| 20 3c 20 27 70 62 6d 63 | 75 74 2e 63 27 60 22 0a | < 'pbmc|ut.c'`".|
|00003070| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00003080| 20 65 72 72 6f 72 20 74 | 72 61 6e 73 6d 69 74 74 | error t|ransmitt|
|00003090| 69 6e 67 20 22 27 70 62 | 6d 63 75 74 2e 63 27 22 |ing "'pb|mcut.c'"|
|000030a0| 20 27 28 73 68 6f 75 6c | 64 20 68 61 76 65 20 62 | '(shoul|d have b|
|000030b0| 65 65 6e 20 32 36 30 36 | 20 63 68 61 72 61 63 74 |een 2606| charact|
|000030c0| 65 72 73 29 27 0a 66 69 | 0a 66 69 20 23 20 65 6e |ers)'.fi|.fi # en|
|000030d0| 64 20 6f 66 20 6f 76 65 | 72 77 72 69 74 69 6e 67 |d of ove|rwriting|
|000030e0| 20 63 68 65 63 6b 0a 65 | 63 68 6f 20 73 68 61 72 | check.e|cho shar|
|000030f0| 3a 20 65 78 74 72 61 63 | 74 69 6e 67 20 22 27 70 |: extrac|ting "'p|
|00003100| 62 6d 63 75 74 2e 6d 61 | 6e 27 22 20 27 28 31 30 |bmcut.ma|n'" '(10|
|00003110| 31 36 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |16 chara|cters)'.|
|00003120| 69 66 20 74 65 73 74 20 | 2d 66 20 27 70 62 6d 63 |if test |-f 'pbmc|
|00003130| 75 74 2e 6d 61 6e 27 0a | 74 68 65 6e 0a 09 65 63 |ut.man'.|then..ec|
|00003140| 68 6f 20 73 68 61 72 3a | 20 77 69 6c 6c 20 6e 6f |ho shar:| will no|
|00003150| 74 20 6f 76 65 72 2d 77 | 72 69 74 65 20 65 78 69 |t over-w|rite exi|
|00003160| 73 74 69 6e 67 20 66 69 | 6c 65 20 22 27 70 62 6d |sting fi|le "'pbm|
|00003170| 63 75 74 2e 6d 61 6e 27 | 22 0a 65 6c 73 65 0a 73 |cut.man'|".else.s|
|00003180| 65 64 20 27 73 2f 5e 58 | 2f 2f 27 20 3c 3c 20 5c |ed 's/^X|//' << \|
|00003190| 53 48 41 52 5f 45 4f 46 | 20 3e 20 27 70 62 6d 63 |SHAR_EOF| > 'pbmc|
|000031a0| 75 74 2e 6d 61 6e 27 0a | 58 2e 54 48 20 70 62 6d |ut.man'.|X.TH pbm|
|000031b0| 63 75 74 20 31 20 22 31 | 39 20 46 65 62 72 75 61 |cut 1 "1|9 Februa|
|000031c0| 72 79 20 31 39 38 38 22 | 0a 58 2e 53 48 20 4e 41 |ry 1988"|.X.SH NA|
|000031d0| 4d 45 0a 58 70 62 6d 63 | 75 74 20 2d 20 63 75 74 |ME.Xpbmc|ut - cut|
|000031e0| 20 61 20 72 65 63 74 61 | 6e 67 6c 65 20 6f 75 74 | a recta|ngle out|
|000031f0| 20 6f 66 20 61 20 70 6f | 72 74 61 62 6c 65 20 62 | of a po|rtable b|
|00003200| 69 74 6d 61 70 0a 58 2e | 53 48 20 53 59 4e 4f 50 |itmap.X.|SH SYNOP|
|00003210| 53 49 53 0a 58 70 62 6d | 63 75 74 20 78 20 79 20 |SIS.Xpbm|cut x y |
|00003220| 77 69 64 74 68 20 68 65 | 69 67 68 74 20 5b 70 62 |width he|ight [pb|
|00003230| 6d 66 69 6c 65 5d 0a 58 | 2e 53 48 20 44 45 53 43 |mfile].X|.SH DESC|
|00003240| 52 49 50 54 49 4f 4e 0a | 58 52 65 61 64 73 20 61 |RIPTION.|XReads a|
|00003250| 20 70 6f 72 74 61 62 6c | 65 20 62 69 74 6d 61 70 | portabl|e bitmap|
|00003260| 20 61 73 20 69 6e 70 75 | 74 2e 0a 58 45 78 74 72 | as inpu|t..XExtr|
|00003270| 61 63 74 73 20 74 68 65 | 20 73 70 65 63 69 66 69 |acts the| specifi|
|00003280| 65 64 20 72 65 63 74 61 | 6e 67 6c 65 2c 0a 58 61 |ed recta|ngle,.Xa|
|00003290| 6e 64 20 70 72 6f 64 75 | 63 65 73 20 61 20 70 6f |nd produ|ces a po|
|000032a0| 72 74 61 62 6c 65 20 62 | 69 74 6d 61 70 20 61 73 |rtable b|itmap as|
|000032b0| 20 6f 75 74 70 75 74 2e | 0a 58 2e 53 48 20 22 53 | output.|.X.SH "S|
|000032c0| 45 45 20 41 4c 53 4f 22 | 0a 58 70 62 6d 28 35 29 |EE ALSO"|.Xpbm(5)|
|000032d0| 2c 20 63 62 6d 74 6f 70 | 62 6d 28 31 29 2c 20 69 |, cbmtop|bm(1), i|
|000032e0| 63 6f 6e 74 6f 70 62 6d | 28 31 29 2c 20 6d 61 63 |contopbm|(1), mac|
|000032f0| 70 74 6f 70 62 6d 28 31 | 29 2c 20 72 61 73 74 74 |ptopbm(1|), rastt|
|00003300| 6f 70 62 6d 28 31 29 2c | 20 78 62 6d 74 6f 70 62 |opbm(1),| xbmtopb|
|00003310| 6d 28 31 29 2c 20 78 77 | 64 74 6f 70 62 6d 28 31 |m(1), xw|dtopbm(1|
|00003320| 29 2c 0a 58 70 62 6d 74 | 6f 69 63 6f 6e 28 31 29 |),.Xpbmt|oicon(1)|
|00003330| 2c 20 70 62 6d 74 6f 63 | 62 6d 28 31 29 2c 20 70 |, pbmtoc|bm(1), p|
|00003340| 62 6d 74 6f 70 73 28 31 | 29 2c 20 70 62 6d 74 6f |bmtops(1|), pbmto|
|00003350| 70 74 78 28 31 29 2c 20 | 70 62 6d 74 6f 72 61 73 |ptx(1), |pbmtoras|
|00003360| 74 28 31 29 2c 0a 58 70 | 62 6d 74 6f 78 62 6d 28 |t(1),.Xp|bmtoxbm(|
|00003370| 31 29 2c 20 70 62 6d 74 | 6f 78 31 30 62 6d 28 31 |1), pbmt|ox10bm(1|
|00003380| 29 2c 20 70 62 6d 74 6f | 61 73 63 69 69 28 31 29 |), pbmto|ascii(1)|
|00003390| 2c 20 70 62 6d 69 6e 76 | 65 72 74 28 31 29 2c 20 |, pbminv|ert(1), |
|000033a0| 70 62 6d 66 6c 69 70 6c | 72 28 31 29 2c 0a 58 70 |pbmflipl|r(1),.Xp|
|000033b0| 62 6d 66 6c 69 70 74 62 | 28 31 29 2c 20 70 62 6d |bmfliptb|(1), pbm|
|000033c0| 63 61 74 6c 72 28 31 29 | 2c 20 70 62 6d 63 61 74 |catlr(1)|, pbmcat|
|000033d0| 74 62 28 31 29 2c 20 70 | 62 6d 63 72 6f 70 28 31 |tb(1), p|bmcrop(1|
|000033e0| 29 2c 20 70 62 6d 74 72 | 6e 73 70 6f 73 28 31 29 |), pbmtr|nspos(1)|
|000033f0| 2c 0a 58 70 62 6d 70 61 | 73 74 65 28 31 29 2c 20 |,.Xpbmpa|ste(1), |
|00003400| 70 62 6d 65 6e 6c 61 72 | 67 65 28 31 29 0a 58 2e |pbmenlar|ge(1).X.|
|00003410| 53 48 20 41 55 54 48 4f | 52 0a 58 43 6f 70 79 72 |SH AUTHO|R.XCopyr|
|00003420| 69 67 68 74 20 28 43 29 | 20 31 39 38 38 20 62 79 |ight (C)| 1988 by|
|00003430| 20 4a 65 66 20 50 6f 73 | 6b 61 6e 7a 65 72 2e 0a | Jef Pos|kanzer..|
|00003440| 58 0a 58 50 65 72 6d 69 | 73 73 69 6f 6e 20 74 6f |X.XPermi|ssion to|
|00003450| 20 75 73 65 2c 20 63 6f | 70 79 2c 20 6d 6f 64 69 | use, co|py, modi|
|00003460| 66 79 2c 20 61 6e 64 20 | 64 69 73 74 72 69 62 75 |fy, and |distribu|
|00003470| 74 65 20 74 68 69 73 20 | 73 6f 66 74 77 61 72 65 |te this |software|
|00003480| 20 61 6e 64 20 69 74 73 | 0a 58 64 6f 63 75 6d 65 | and its|.Xdocume|
|00003490| 6e 74 61 74 69 6f 6e 20 | 66 6f 72 20 61 6e 79 20 |ntation |for any |
|000034a0| 70 75 72 70 6f 73 65 20 | 61 6e 64 20 77 69 74 68 |purpose |and with|
|000034b0| 6f 75 74 20 66 65 65 20 | 69 73 20 68 65 72 65 62 |out fee |is hereb|
|000034c0| 79 20 67 72 61 6e 74 65 | 64 2c 20 70 72 6f 76 69 |y grante|d, provi|
|000034d0| 64 65 64 0a 58 74 68 61 | 74 20 74 68 65 20 61 62 |ded.Xtha|t the ab|
|000034e0| 6f 76 65 20 63 6f 70 79 | 72 69 67 68 74 20 6e 6f |ove copy|right no|
|000034f0| 74 69 63 65 20 61 70 70 | 65 61 72 20 69 6e 20 61 |tice app|ear in a|
|00003500| 6c 6c 20 63 6f 70 69 65 | 73 20 61 6e 64 20 74 68 |ll copie|s and th|
|00003510| 61 74 20 62 6f 74 68 20 | 74 68 61 74 0a 58 63 6f |at both |that.Xco|
|00003520| 70 79 72 69 67 68 74 20 | 6e 6f 74 69 63 65 20 61 |pyright |notice a|
|00003530| 6e 64 20 74 68 69 73 20 | 70 65 72 6d 69 73 73 69 |nd this |permissi|
|00003540| 6f 6e 20 6e 6f 74 69 63 | 65 20 61 70 70 65 61 72 |on notic|e appear|
|00003550| 20 69 6e 20 73 75 70 70 | 6f 72 74 69 6e 67 0a 58 | in supp|orting.X|
|00003560| 64 6f 63 75 6d 65 6e 74 | 61 74 69 6f 6e 2e 20 20 |document|ation. |
|00003570| 54 68 69 73 20 73 6f 66 | 74 77 61 72 65 20 69 73 |This sof|tware is|
|00003580| 20 70 72 6f 76 69 64 65 | 64 20 22 61 73 20 69 73 | provide|d "as is|
|00003590| 22 20 77 69 74 68 6f 75 | 74 20 65 78 70 72 65 73 |" withou|t expres|
|000035a0| 73 20 6f 72 0a 58 69 6d | 70 6c 69 65 64 20 77 61 |s or.Xim|plied wa|
|000035b0| 72 72 61 6e 74 79 2e 0a | 53 48 41 52 5f 45 4f 46 |rranty..|SHAR_EOF|
|000035c0| 0a 69 66 20 74 65 73 74 | 20 31 30 31 36 20 2d 6e |.if test| 1016 -n|
|000035d0| 65 20 22 60 77 63 20 2d | 63 20 3c 20 27 70 62 6d |e "`wc -|c < 'pbm|
|000035e0| 63 75 74 2e 6d 61 6e 27 | 60 22 0a 74 68 65 6e 0a |cut.man'|`".then.|
|000035f0| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 65 72 72 6f |.echo sh|ar: erro|
|00003600| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 22 |r transm|itting "|
|00003610| 27 70 62 6d 63 75 74 2e | 6d 61 6e 27 22 20 27 28 |'pbmcut.|man'" '(|
|00003620| 73 68 6f 75 6c 64 20 68 | 61 76 65 20 62 65 65 6e |should h|ave been|
|00003630| 20 31 30 31 36 20 63 68 | 61 72 61 63 74 65 72 73 | 1016 ch|aracters|
|00003640| 29 27 0a 66 69 0a 66 69 | 20 23 20 65 6e 64 20 6f |)'.fi.fi| # end o|
|00003650| 66 20 6f 76 65 72 77 72 | 69 74 69 6e 67 20 63 68 |f overwr|iting ch|
|00003660| 65 63 6b 0a 65 63 68 6f | 20 73 68 61 72 3a 20 65 |eck.echo| shar: e|
|00003670| 78 74 72 61 63 74 69 6e | 67 20 22 27 70 62 6d 70 |xtractin|g "'pbmp|
|00003680| 61 73 74 65 2e 63 27 22 | 20 27 28 32 34 30 32 20 |aste.c'"| '(2402 |
|00003690| 63 68 61 72 61 63 74 65 | 72 73 29 27 0a 69 66 20 |characte|rs)'.if |
|000036a0| 74 65 73 74 20 2d 66 20 | 27 70 62 6d 70 61 73 74 |test -f |'pbmpast|
|000036b0| 65 2e 63 27 0a 74 68 65 | 6e 0a 09 65 63 68 6f 20 |e.c'.the|n..echo |
|000036c0| 73 68 61 72 3a 20 77 69 | 6c 6c 20 6e 6f 74 20 6f |shar: wi|ll not o|
|000036d0| 76 65 72 2d 77 72 69 74 | 65 20 65 78 69 73 74 69 |ver-writ|e existi|
|000036e0| 6e 67 20 66 69 6c 65 20 | 22 27 70 62 6d 70 61 73 |ng file |"'pbmpas|
|000036f0| 74 65 2e 63 27 22 0a 65 | 6c 73 65 0a 73 65 64 20 |te.c'".e|lse.sed |
|00003700| 27 73 2f 5e 58 2f 2f 27 | 20 3c 3c 20 5c 53 48 41 |'s/^X//'| << \SHA|
|00003710| 52 5f 45 4f 46 20 3e 20 | 27 70 62 6d 70 61 73 74 |R_EOF > |'pbmpast|
|00003720| 65 2e 63 27 0a 58 2f 2a | 20 70 62 6d 70 61 73 74 |e.c'.X/*| pbmpast|
|00003730| 65 2e 63 20 2d 20 70 61 | 73 74 65 20 61 20 72 65 |e.c - pa|ste a re|
|00003740| 63 74 61 6e 67 6c 65 20 | 69 6e 74 6f 20 61 20 70 |ctangle |into a p|
|00003750| 6f 72 74 61 62 6c 65 20 | 62 69 74 6d 61 70 0a 58 |ortable |bitmap.X|
|00003760| 2a 2a 0a 58 2a 2a 20 43 | 6f 70 79 72 69 67 68 74 |**.X** C|opyright|
|00003770| 20 28 43 29 20 31 39 38 | 38 20 62 79 20 4a 65 66 | (C) 198|8 by Jef|
|00003780| 20 50 6f 73 6b 61 6e 7a | 65 72 2e 0a 58 2a 2a 0a | Poskanz|er..X**.|
|00003790| 58 2a 2a 20 50 65 72 6d | 69 73 73 69 6f 6e 20 74 |X** Perm|ission t|
|000037a0| 6f 20 75 73 65 2c 20 63 | 6f 70 79 2c 20 6d 6f 64 |o use, c|opy, mod|
|000037b0| 69 66 79 2c 20 61 6e 64 | 20 64 69 73 74 72 69 62 |ify, and| distrib|
|000037c0| 75 74 65 20 74 68 69 73 | 20 73 6f 66 74 77 61 72 |ute this| softwar|
|000037d0| 65 20 61 6e 64 20 69 74 | 73 0a 58 2a 2a 20 64 6f |e and it|s.X** do|
|000037e0| 63 75 6d 65 6e 74 61 74 | 69 6f 6e 20 66 6f 72 20 |cumentat|ion for |
|000037f0| 61 6e 79 20 70 75 72 70 | 6f 73 65 20 61 6e 64 20 |any purp|ose and |
|00003800| 77 69 74 68 6f 75 74 20 | 66 65 65 20 69 73 20 68 |without |fee is h|
|00003810| 65 72 65 62 79 20 67 72 | 61 6e 74 65 64 2c 20 70 |ereby gr|anted, p|
|00003820| 72 6f 76 69 64 65 64 0a | 58 2a 2a 20 74 68 61 74 |rovided.|X** that|
|00003830| 20 74 68 65 20 61 62 6f | 76 65 20 63 6f 70 79 72 | the abo|ve copyr|
|00003840| 69 67 68 74 20 6e 6f 74 | 69 63 65 20 61 70 70 65 |ight not|ice appe|
|00003850| 61 72 20 69 6e 20 61 6c | 6c 20 63 6f 70 69 65 73 |ar in al|l copies|
|00003860| 20 61 6e 64 20 74 68 61 | 74 20 62 6f 74 68 20 74 | and tha|t both t|
|00003870| 68 61 74 0a 58 2a 2a 20 | 63 6f 70 79 72 69 67 68 |hat.X** |copyrigh|
|00003880| 74 20 6e 6f 74 69 63 65 | 20 61 6e 64 20 74 68 69 |t notice| and thi|
|00003890| 73 20 70 65 72 6d 69 73 | 73 69 6f 6e 20 6e 6f 74 |s permis|sion not|
|000038a0| 69 63 65 20 61 70 70 65 | 61 72 20 69 6e 20 73 75 |ice appe|ar in su|
|000038b0| 70 70 6f 72 74 69 6e 67 | 0a 58 2a 2a 20 64 6f 63 |pporting|.X** doc|
|000038c0| 75 6d 65 6e 74 61 74 69 | 6f 6e 2e 20 20 54 68 69 |umentati|on. Thi|
|000038d0| 73 20 73 6f 66 74 77 61 | 72 65 20 69 73 20 70 72 |s softwa|re is pr|
|000038e0| 6f 76 69 64 65 64 20 22 | 61 73 20 69 73 22 20 77 |ovided "|as is" w|
|000038f0| 69 74 68 6f 75 74 20 65 | 78 70 72 65 73 73 20 6f |ithout e|xpress o|
|00003900| 72 0a 58 2a 2a 20 69 6d | 70 6c 69 65 64 20 77 61 |r.X** im|plied wa|
|00003910| 72 72 61 6e 74 79 2e 0a | 58 2a 2f 0a 58 0a 58 23 |rranty..|X*/.X.X#|
|00003920| 69 6e 63 6c 75 64 65 20 | 3c 73 74 64 69 6f 2e 68 |include |<stdio.h|
|00003930| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 22 70 62 6d |>.X#incl|ude "pbm|
|00003940| 2e 68 22 0a 58 0a 58 6d | 61 69 6e 28 20 61 72 67 |.h".X.Xm|ain( arg|
|00003950| 63 2c 20 61 72 67 76 20 | 29 0a 58 69 6e 74 20 61 |c, argv |).Xint a|
|00003960| 72 67 63 3b 0a 58 63 68 | 61 72 20 2a 61 72 67 76 |rgc;.Xch|ar *argv|
|00003970| 5b 5d 3b 0a 58 20 20 20 | 20 7b 0a 58 20 20 20 20 |[];.X | {.X |
|00003980| 46 49 4c 45 20 2a 69 66 | 64 3b 0a 58 20 20 20 20 |FILE *if|d;.X |
|00003990| 62 69 74 20 2a 2a 62 69 | 74 73 31 2c 20 2a 2a 62 |bit **bi|ts1, **b|
|000039a0| 69 74 73 32 3b 0a 58 20 | 20 20 20 69 6e 74 20 72 |its2;.X | int r|
|000039b0| 6f 77 73 31 2c 20 63 6f | 6c 73 31 2c 20 78 2c 20 |ows1, co|ls1, x, |
|000039c0| 79 2c 20 72 6f 77 73 32 | 2c 20 63 6f 6c 73 32 2c |y, rows2|, cols2,|
|000039d0| 20 72 6f 77 2c 20 63 6f | 6c 3b 0a 58 20 20 20 20 | row, co|l;.X |
|000039e0| 63 68 61 72 20 2a 75 73 | 61 67 65 20 3d 20 22 75 |char *us|age = "u|
|000039f0| 73 61 67 65 3a 20 20 25 | 73 20 66 72 6f 6d 70 62 |sage: %|s frompb|
|00003a00| 6d 66 69 6c 65 20 78 20 | 79 20 5b 69 6e 74 6f 70 |mfile x |y [intop|
|00003a10| 62 6d 66 69 6c 65 5d 5c | 6e 22 3b 0a 58 0a 58 0a |bmfile]\|n";.X.X.|
|00003a20| 58 20 20 20 20 69 66 20 | 28 20 61 72 67 63 20 3c |X if |( argc <|
|00003a30| 20 34 20 7c 7c 20 61 72 | 67 63 20 3e 20 35 20 29 | 4 || ar|gc > 5 )|
|00003a40| 0a 58 09 7b 0a 58 09 66 | 70 72 69 6e 74 66 28 20 |.X.{.X.f|printf( |
|00003a50| 73 74 64 65 72 72 2c 20 | 75 73 61 67 65 2c 20 61 |stderr, |usage, a|
|00003a60| 72 67 76 5b 30 5d 20 29 | 3b 0a 58 09 65 78 69 74 |rgv[0] )|;.X.exit|
|00003a70| 28 20 31 20 29 3b 0a 58 | 09 7d 0a 58 0a 58 20 20 |( 1 );.X|.}.X.X |
|00003a80| 20 20 69 66 64 20 3d 20 | 66 6f 70 65 6e 28 20 61 | ifd = |fopen( a|
|00003a90| 72 67 76 5b 31 5d 2c 20 | 22 72 22 20 29 3b 0a 58 |rgv[1], |"r" );.X|
|00003aa0| 20 20 20 20 69 66 20 28 | 20 69 66 64 20 3d 3d 20 | if (| ifd == |
|00003ab0| 4e 55 4c 4c 20 29 0a 58 | 09 7b 0a 58 09 66 70 72 |NULL ).X|.{.X.fpr|
|00003ac0| 69 6e 74 66 28 20 73 74 | 64 65 72 72 2c 20 22 25 |intf( st|derr, "%|
|00003ad0| 73 3a 20 63 61 6e 27 74 | 20 6f 70 65 6e 2e 5c 6e |s: can't| open.\n|
|00003ae0| 22 2c 20 61 72 67 76 5b | 31 5d 20 29 3b 0a 58 09 |", argv[|1] );.X.|
|00003af0| 65 78 69 74 28 20 31 20 | 29 3b 0a 58 09 7d 0a 58 |exit( 1 |);.X.}.X|
|00003b00| 20 20 20 20 62 69 74 73 | 31 20 3d 20 70 62 6d 5f | bits|1 = pbm_|
|00003b10| 72 65 61 64 70 62 6d 28 | 20 69 66 64 2c 20 26 63 |readpbm(| ifd, &c|
|00003b20| 6f 6c 73 31 2c 20 26 72 | 6f 77 73 31 20 29 3b 0a |ols1, &r|ows1 );.|
|00003b30| 58 20 20 20 20 66 63 6c | 6f 73 65 28 20 69 66 64 |X fcl|ose( ifd|
|00003b40| 20 29 3b 0a 58 0a 58 20 | 20 20 20 69 66 20 28 20 | );.X.X | if ( |
|00003b50| 73 73 63 61 6e 66 28 20 | 61 72 67 76 5b 32 5d 2c |sscanf( |argv[2],|
|00003b60| 20 22 25 64 22 2c 20 26 | 78 20 29 20 21 3d 20 31 | "%d", &|x ) != 1|
|00003b70| 20 29 0a 58 09 7b 0a 58 | 09 66 70 72 69 6e 74 66 | ).X.{.X|.fprintf|
|00003b80| 28 20 73 74 64 65 72 72 | 2c 20 75 73 61 67 65 2c |( stderr|, usage,|
|00003b90| 20 61 72 67 76 5b 30 5d | 20 29 3b 0a 58 09 65 78 | argv[0]| );.X.ex|
|00003ba0| 69 74 28 20 31 20 29 3b | 0a 58 09 7d 0a 58 20 20 |it( 1 );|.X.}.X |
|00003bb0| 20 20 69 66 20 28 20 73 | 73 63 61 6e 66 28 20 61 | if ( s|scanf( a|
|00003bc0| 72 67 76 5b 33 5d 2c 20 | 22 25 64 22 2c 20 26 79 |rgv[3], |"%d", &y|
|00003bd0| 20 29 20 21 3d 20 31 20 | 29 0a 58 09 7b 0a 58 09 | ) != 1 |).X.{.X.|
|00003be0| 66 70 72 69 6e 74 66 28 | 20 73 74 64 65 72 72 2c |fprintf(| stderr,|
|00003bf0| 20 75 73 61 67 65 2c 20 | 61 72 67 76 5b 30 5d 20 | usage, |argv[0] |
|00003c00| 29 3b 0a 58 09 65 78 69 | 74 28 20 31 20 29 3b 0a |);.X.exi|t( 1 );.|
|00003c10| 58 09 7d 0a 58 0a 58 20 | 20 20 20 69 66 20 28 20 |X.}.X.X | if ( |
|00003c20| 78 20 3c 20 30 20 29 0a | 58 09 7b 0a 58 09 66 70 |x < 0 ).|X.{.X.fp|
|00003c30| 72 69 6e 74 66 28 20 73 | 74 64 65 72 72 2c 20 22 |rintf( s|tderr, "|
|00003c40| 78 20 69 73 20 6c 65 73 | 73 20 74 68 61 6e 20 30 |x is les|s than 0|
|00003c50| 5c 6e 22 20 29 3b 0a 58 | 09 65 78 69 74 28 20 31 |\n" );.X|.exit( 1|
|00003c60| 20 29 3b 0a 58 09 7d 0a | 58 20 20 20 20 69 66 20 | );.X.}.|X if |
|00003c70| 28 20 79 20 3c 20 30 20 | 29 0a 58 09 7b 0a 58 09 |( y < 0 |).X.{.X.|
|00003c80| 66 70 72 69 6e 74 66 28 | 20 73 74 64 65 72 72 2c |fprintf(| stderr,|
|00003c90| 20 22 79 20 69 73 20 6c | 65 73 73 20 74 68 61 6e | "y is l|ess than|
|00003ca0| 20 30 5c 6e 22 20 29 3b | 0a 58 09 65 78 69 74 28 | 0\n" );|.X.exit(|
|00003cb0| 20 31 20 29 3b 0a 58 09 | 7d 0a 58 0a 58 20 20 20 | 1 );.X.|}.X.X |
|00003cc0| 20 69 66 20 28 20 61 72 | 67 63 20 3d 3d 20 35 20 | if ( ar|gc == 5 |
|00003cd0| 29 0a 58 09 7b 0a 58 20 | 20 20 20 20 20 20 20 69 |).X.{.X | i|
|00003ce0| 66 64 20 3d 20 66 6f 70 | 65 6e 28 20 61 72 67 76 |fd = fop|en( argv|
|00003cf0| 5b 34 5d 2c 20 22 72 22 | 20 29 3b 0a 58 20 20 20 |[4], "r"| );.X |
|00003d00| 20 20 20 20 20 69 66 20 | 28 20 69 66 64 20 3d 3d | if |( ifd ==|
|00003d10| 20 4e 55 4c 4c 20 29 0a | 58 09 20 20 20 20 7b 0a | NULL ).|X. {.|
|00003d20| 58 09 20 20 20 20 66 70 | 72 69 6e 74 66 28 20 73 |X. fp|rintf( s|
|00003d30| 74 64 65 72 72 2c 20 22 | 25 73 3a 20 63 61 6e 27 |tderr, "|%s: can'|
|00003d40| 74 20 6f 70 65 6e 2e 5c | 6e 22 2c 20 61 72 67 76 |t open.\|n", argv|
|00003d50| 5b 34 5d 20 29 3b 0a 58 | 09 20 20 20 20 65 78 69 |[4] );.X|. exi|
|00003d60| 74 28 20 31 20 29 3b 0a | 58 09 20 20 20 20 7d 0a |t( 1 );.|X. }.|
|00003d70| 58 09 7d 0a 58 20 20 20 | 20 65 6c 73 65 0a 58 09 |X.}.X | else.X.|
|00003d80| 69 66 64 20 3d 20 73 74 | 64 69 6e 3b 0a 58 20 20 |ifd = st|din;.X |
|00003d90| 20 20 62 69 74 73 32 20 | 3d 20 70 62 6d 5f 72 65 | bits2 |= pbm_re|
|00003da0| 61 64 70 62 6d 28 20 69 | 66 64 2c 20 26 63 6f 6c |adpbm( i|fd, &col|
|00003db0| 73 32 2c 20 26 72 6f 77 | 73 32 20 29 3b 0a 58 20 |s2, &row|s2 );.X |
|00003dc0| 20 20 20 69 66 20 28 20 | 69 66 64 20 21 3d 20 73 | if ( |ifd != s|
|00003dd0| 74 64 69 6e 20 29 0a 58 | 09 66 63 6c 6f 73 65 28 |tdin ).X|.fclose(|
|00003de0| 20 69 66 64 20 29 3b 0a | 58 0a 58 20 20 20 20 69 | ifd );.|X.X i|
|00003df0| 66 20 28 20 78 20 3e 3d | 20 63 6f 6c 73 32 20 29 |f ( x >=| cols2 )|
|00003e00| 0a 58 09 7b 0a 58 09 66 | 70 72 69 6e 74 66 28 0a |.X.{.X.f|printf(.|
|00003e10| 58 09 20 20 20 20 73 74 | 64 65 72 72 2c 20 22 78 |X. st|derr, "x|
|00003e20| 20 69 73 20 74 6f 6f 20 | 6c 61 72 67 65 20 2d 2d | is too |large --|
|00003e30| 20 74 68 65 20 73 65 63 | 6f 6e 64 20 62 69 74 6d | the sec|ond bitm|
|00003e40| 61 70 20 68 61 73 20 6f | 6e 6c 79 20 25 64 20 63 |ap has o|nly %d c|
|00003e50| 6f 6c 73 5c 6e 22 2c 0a | 58 09 20 20 20 20 63 6f |ols\n",.|X. co|
|00003e60| 6c 73 32 20 29 3b 0a 58 | 09 65 78 69 74 28 20 31 |ls2 );.X|.exit( 1|
|00003e70| 20 29 3b 0a 58 09 7d 0a | 58 20 20 20 20 69 66 20 | );.X.}.|X if |
|00003e80| 28 20 79 20 3e 3d 20 72 | 6f 77 73 32 20 29 0a 58 |( y >= r|ows2 ).X|
|00003e90| 09 7b 0a 58 09 66 70 72 | 69 6e 74 66 28 0a 58 09 |.{.X.fpr|intf(.X.|
|00003ea0| 20 20 20 20 73 74 64 65 | 72 72 2c 20 22 79 20 69 | stde|rr, "y i|
|00003eb0| 73 20 74 6f 6f 20 6c 61 | 72 67 65 20 2d 2d 20 74 |s too la|rge -- t|
|00003ec0| 68 65 20 73 65 63 6f 6e | 64 20 62 69 74 6d 61 70 |he secon|d bitmap|
|00003ed0| 20 68 61 73 20 6f 6e 6c | 79 20 25 64 20 72 6f 77 | has onl|y %d row|
|00003ee0| 73 5c 6e 22 2c 0a 58 09 | 20 20 20 20 72 6f 77 73 |s\n",.X.| rows|
|00003ef0| 32 20 29 3b 0a 58 09 65 | 78 69 74 28 20 31 20 29 |2 );.X.e|xit( 1 )|
|00003f00| 3b 0a 58 09 7d 0a 58 20 | 20 20 20 69 66 20 28 20 |;.X.}.X | if ( |
|00003f10| 78 20 2b 20 63 6f 6c 73 | 31 20 3e 20 63 6f 6c 73 |x + cols|1 > cols|
|00003f20| 32 20 29 0a 58 09 7b 0a | 58 09 66 70 72 69 6e 74 |2 ).X.{.|X.fprint|
|00003f30| 66 28 0a 58 09 20 20 20 | 20 73 74 64 65 72 72 2c |f(.X. | stderr,|
|00003f40| 20 22 78 20 2b 20 77 69 | 64 74 68 20 69 73 20 74 | "x + wi|dth is t|
|00003f50| 6f 6f 20 6c 61 72 67 65 | 20 62 79 20 25 64 20 70 |oo large| by %d p|
|00003f60| 69 78 65 6c 73 5c 6e 22 | 2c 0a 58 09 20 20 20 20 |ixels\n"|,.X. |
|00003f70| 78 20 2b 20 63 6f 6c 73 | 31 20 2d 20 63 6f 6c 73 |x + cols|1 - cols|
|00003f80| 32 20 29 3b 0a 58 09 65 | 78 69 74 28 20 31 20 29 |2 );.X.e|xit( 1 )|
|00003f90| 3b 0a 58 09 7d 0a 58 20 | 20 20 20 69 66 20 28 20 |;.X.}.X | if ( |
|00003fa0| 79 20 2b 20 72 6f 77 73 | 31 20 3e 20 72 6f 77 73 |y + rows|1 > rows|
|00003fb0| 32 20 29 0a 58 09 7b 0a | 58 09 66 70 72 69 6e 74 |2 ).X.{.|X.fprint|
|00003fc0| 66 28 0a 58 09 20 20 20 | 20 73 74 64 65 72 72 2c |f(.X. | stderr,|
|00003fd0| 20 22 79 20 2b 20 68 65 | 69 67 68 74 20 69 73 20 | "y + he|ight is |
|00003fe0| 74 6f 6f 20 6c 61 72 67 | 65 20 62 79 20 25 64 20 |too larg|e by %d |
|00003ff0| 70 69 78 65 6c 73 5c 6e | 22 2c 0a 58 09 20 20 20 |pixels\n|",.X. |
|00004000| 20 79 20 2b 20 72 6f 77 | 73 31 20 2d 20 72 6f 77 | y + row|s1 - row|
|00004010| 73 32 20 29 3b 0a 58 09 | 65 78 69 74 28 20 31 20 |s2 );.X.|exit( 1 |
|00004020| 29 3b 0a 58 09 7d 0a 58 | 0a 58 20 20 20 20 66 6f |);.X.}.X|.X fo|
|00004030| 72 20 28 20 72 6f 77 20 | 3d 20 30 3b 20 72 6f 77 |r ( row |= 0; row|
|00004040| 20 3c 20 72 6f 77 73 31 | 3b 20 72 6f 77 2b 2b 20 | < rows1|; row++ |
|00004050| 29 0a 58 20 20 20 20 20 | 20 20 20 66 6f 72 20 28 |).X | for (|
|00004060| 20 63 6f 6c 20 3d 20 30 | 3b 20 63 6f 6c 20 3c 20 | col = 0|; col < |
|00004070| 63 6f 6c 73 31 3b 20 63 | 6f 6c 2b 2b 20 29 0a 58 |cols1; c|ol++ ).X|
|00004080| 09 20 20 20 20 62 69 74 | 73 32 5b 72 6f 77 2b 79 |. bit|s2[row+y|
|00004090| 5d 5b 63 6f 6c 2b 78 5d | 20 3d 20 62 69 74 73 31 |][col+x]| = bits1|
|000040a0| 5b 72 6f 77 5d 5b 63 6f | 6c 5d 3b 0a 58 0a 58 20 |[row][co|l];.X.X |
|000040b0| 20 20 20 70 62 6d 5f 77 | 72 69 74 65 70 62 6d 28 | pbm_w|ritepbm(|
|000040c0| 20 73 74 64 6f 75 74 2c | 20 62 69 74 73 32 2c 20 | stdout,| bits2, |
|000040d0| 63 6f 6c 73 32 2c 20 72 | 6f 77 73 32 20 29 3b 0a |cols2, r|ows2 );.|
|000040e0| 58 0a 58 20 20 20 20 65 | 78 69 74 28 20 30 20 29 |X.X e|xit( 0 )|
|000040f0| 3b 0a 58 20 20 20 20 7d | 0a 53 48 41 52 5f 45 4f |;.X }|.SHAR_EO|
|00004100| 46 0a 69 66 20 74 65 73 | 74 20 32 34 30 32 20 2d |F.if tes|t 2402 -|
|00004110| 6e 65 20 22 60 77 63 20 | 2d 63 20 3c 20 27 70 62 |ne "`wc |-c < 'pb|
|00004120| 6d 70 61 73 74 65 2e 63 | 27 60 22 0a 74 68 65 6e |mpaste.c|'`".then|
|00004130| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 65 72 72 |..echo s|har: err|
|00004140| 6f 72 20 74 72 61 6e 73 | 6d 69 74 74 69 6e 67 20 |or trans|mitting |
|00004150| 22 27 70 62 6d 70 61 73 | 74 65 2e 63 27 22 20 27 |"'pbmpas|te.c'" '|
|00004160| 28 73 68 6f 75 6c 64 20 | 68 61 76 65 20 62 65 65 |(should |have bee|
|00004170| 6e 20 32 34 30 32 20 63 | 68 61 72 61 63 74 65 72 |n 2402 c|haracter|
|00004180| 73 29 27 0a 66 69 0a 66 | 69 20 23 20 65 6e 64 20 |s)'.fi.f|i # end |
|00004190| 6f 66 20 6f 76 65 72 77 | 72 69 74 69 6e 67 20 63 |of overw|riting c|
|000041a0| 68 65 63 6b 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |heck.ech|o shar: |
|000041b0| 65 78 74 72 61 63 74 69 | 6e 67 20 22 27 70 62 6d |extracti|ng "'pbm|
|000041c0| 70 61 73 74 65 2e 6d 61 | 6e 27 22 20 27 28 31 33 |paste.ma|n'" '(13|
|000041d0| 33 34 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |34 chara|cters)'.|
|000041e0| 69 66 20 74 65 73 74 20 | 2d 66 20 27 70 62 6d 70 |if test |-f 'pbmp|
|000041f0| 61 73 74 65 2e 6d 61 6e | 27 0a 74 68 65 6e 0a 09 |aste.man|'.then..|
|00004200| 65 63 68 6f 20 73 68 61 | 72 3a 20 77 69 6c 6c 20 |echo sha|r: will |
|00004210| 6e 6f 74 20 6f 76 65 72 | 2d 77 72 69 74 65 20 65 |not over|-write e|
|00004220| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 22 27 70 |xisting |file "'p|
|00004230| 62 6d 70 61 73 74 65 2e | 6d 61 6e 27 22 0a 65 6c |bmpaste.|man'".el|
|00004240| 73 65 0a 73 65 64 20 27 | 73 2f 5e 58 2f 2f 27 20 |se.sed '|s/^X//' |
|00004250| 3c 3c 20 5c 53 48 41 52 | 5f 45 4f 46 20 3e 20 27 |<< \SHAR|_EOF > '|
|00004260| 70 62 6d 70 61 73 74 65 | 2e 6d 61 6e 27 0a 58 2e |pbmpaste|.man'.X.|
|00004270| 54 48 20 70 62 6d 70 61 | 73 74 65 20 31 20 22 31 |TH pbmpa|ste 1 "1|
|00004280| 39 20 46 65 62 72 75 61 | 72 79 20 31 39 38 38 22 |9 Februa|ry 1988"|
|00004290| 0a 58 2e 53 48 20 4e 41 | 4d 45 0a 58 70 62 6d 70 |.X.SH NA|ME.Xpbmp|
|000042a0| 61 73 74 65 20 2d 20 70 | 61 73 74 65 20 61 20 72 |aste - p|aste a r|
|000042b0| 65 63 74 61 6e 67 6c 65 | 20 69 6e 74 6f 20 61 20 |ectangle| into a |
|000042c0| 70 6f 72 74 61 62 6c 65 | 20 62 69 74 6d 61 70 0a |portable| bitmap.|
|000042d0| 58 2e 53 48 20 53 59 4e | 4f 50 53 49 53 0a 58 70 |X.SH SYN|OPSIS.Xp|
|000042e0| 62 6d 70 61 73 74 65 20 | 66 72 6f 6d 70 62 6d 66 |bmpaste |frompbmf|
|000042f0| 69 6c 65 20 78 20 79 20 | 5b 69 6e 74 6f 70 62 6d |ile x y |[intopbm|
|00004300| 66 69 6c 65 5d 0a 58 2e | 53 48 20 44 45 53 43 52 |file].X.|SH DESCR|
|00004310| 49 50 54 49 4f 4e 0a 58 | 52 65 61 64 73 20 74 77 |IPTION.X|Reads tw|
|00004320| 6f 20 70 6f 72 74 61 62 | 6c 65 20 62 69 74 6d 61 |o portab|le bitma|
|00004330| 70 73 20 61 73 20 69 6e | 70 75 74 2e 0a 58 49 6e |ps as in|put..XIn|
|00004340| 73 65 72 74 73 20 74 68 | 65 20 66 69 72 73 74 20 |serts th|e first |
|00004350| 62 69 74 6d 61 70 20 69 | 6e 74 6f 20 74 68 65 20 |bitmap i|nto the |
|00004360| 73 65 63 6f 6e 64 20 61 | 74 20 74 68 65 20 73 70 |second a|t the sp|
|00004370| 65 63 69 66 69 65 64 20 | 6c 6f 63 61 74 69 6f 6e |ecified |location|
|00004380| 2c 0a 58 61 6e 64 20 70 | 72 6f 64 75 63 65 73 20 |,.Xand p|roduces |
|00004390| 61 20 70 6f 72 74 61 62 | 6c 65 20 62 69 74 6d 61 |a portab|le bitma|
|000043a0| 70 20 61 73 20 6f 75 74 | 70 75 74 2e 0a 58 2e 50 |p as out|put..X.P|
|000043b0| 50 0a 58 54 68 69 73 20 | 69 73 20 6d 6f 73 74 20 |P.XThis |is most |
|000043c0| 75 73 65 66 75 6c 20 69 | 6e 20 63 6f 6d 62 69 6e |useful i|n combin|
|000043d0| 61 74 69 6f 6e 20 77 69 | 74 68 20 70 62 6d 63 75 |ation wi|th pbmcu|
|000043e0| 74 28 31 29 2e 0a 58 46 | 6f 72 20 69 6e 73 74 61 |t(1)..XF|or insta|
|000043f0| 6e 63 65 2c 20 69 66 20 | 79 6f 75 20 77 61 6e 74 |nce, if |you want|
|00004400| 20 74 6f 20 65 64 69 74 | 20 61 20 73 6d 61 6c 6c | to edit| a small|
|00004410| 20 73 65 67 6d 65 6e 74 | 20 6f 66 20 61 20 6c 61 | segment| of a la|
|00004420| 72 67 65 0a 58 62 69 74 | 6d 61 70 2c 20 61 6e 64 |rge.Xbit|map, and|
|00004430| 20 79 6f 75 72 20 62 69 | 74 6d 61 70 20 65 64 69 | your bi|tmap edi|
|00004440| 74 6f 72 20 69 73 20 54 | 4f 4f 20 53 54 55 50 49 |tor is T|OO STUPI|
|00004450| 44 20 74 6f 20 65 64 69 | 74 20 74 68 65 0a 58 6c |D to edi|t the.Xl|
|00004460| 61 72 67 65 20 62 69 74 | 6d 61 70 2c 20 79 6f 75 |arge bit|map, you|
|00004470| 20 63 61 6e 20 63 75 74 | 20 6f 75 74 20 74 68 65 | can cut| out the|
|00004480| 20 73 65 67 6d 65 6e 74 | 20 79 6f 75 20 61 72 65 | segment| you are|
|00004490| 20 69 6e 74 65 72 65 73 | 74 65 64 20 69 6e 2c 0a | interes|ted in,.|
|000044a0| 58 65 64 69 74 20 69 74 | 2c 20 61 6e 64 20 74 68 |Xedit it|, and th|
|000044b0| 65 6e 20 70 61 73 74 65 | 20 69 74 20 62 61 63 6b |en paste| it back|
|000044c0| 20 69 6e 2e 0a 58 2e 53 | 48 20 22 53 45 45 20 41 | in..X.S|H "SEE A|
|000044d0| 4c 53 4f 22 0a 58 70 62 | 6d 28 35 29 2c 20 63 62 |LSO".Xpb|m(5), cb|
|000044e0| 6d 74 6f 70 62 6d 28 31 | 29 2c 20 69 63 6f 6e 74 |mtopbm(1|), icont|
|000044f0| 6f 70 62 6d 28 31 29 2c | 20 6d 61 63 70 74 6f 70 |opbm(1),| macptop|
|00004500| 62 6d 28 31 29 2c 20 72 | 61 73 74 74 6f 70 62 6d |bm(1), r|asttopbm|
|00004510| 28 31 29 2c 20 78 62 6d | 74 6f 70 62 6d 28 31 29 |(1), xbm|topbm(1)|
|00004520| 2c 20 78 77 64 74 6f 70 | 62 6d 28 31 29 2c 0a 58 |, xwdtop|bm(1),.X|
|00004530| 70 62 6d 74 6f 69 63 6f | 6e 28 31 29 2c 20 70 62 |pbmtoico|n(1), pb|
|00004540| 6d 74 6f 63 62 6d 28 31 | 29 2c 20 70 62 6d 74 6f |mtocbm(1|), pbmto|
|00004550| 70 73 28 31 29 2c 20 70 | 62 6d 74 6f 70 74 78 28 |ps(1), p|bmtoptx(|
|00004560| 31 29 2c 20 70 62 6d 74 | 6f 72 61 73 74 28 31 29 |1), pbmt|orast(1)|
|00004570| 2c 0a 58 70 62 6d 74 6f | 78 62 6d 28 31 29 2c 20 |,.Xpbmto|xbm(1), |
|00004580| 70 62 6d 74 6f 78 31 30 | 62 6d 28 31 29 2c 20 70 |pbmtox10|bm(1), p|
|00004590| 62 6d 74 6f 61 73 63 69 | 69 28 31 29 2c 20 70 62 |bmtoasci|i(1), pb|
|000045a0| 6d 69 6e 76 65 72 74 28 | 31 29 2c 20 70 62 6d 66 |minvert(|1), pbmf|
|000045b0| 6c 69 70 6c 72 28 31 29 | 2c 0a 58 70 62 6d 66 6c |liplr(1)|,.Xpbmfl|
|000045c0| 69 70 74 62 28 31 29 2c | 20 70 62 6d 63 61 74 6c |iptb(1),| pbmcatl|
|000045d0| 72 28 31 29 2c 20 70 62 | 6d 63 61 74 74 62 28 31 |r(1), pb|mcattb(1|
|000045e0| 29 2c 20 70 62 6d 63 72 | 6f 70 28 31 29 2c 20 70 |), pbmcr|op(1), p|
|000045f0| 62 6d 74 72 6e 73 70 6f | 73 28 31 29 2c 20 70 62 |bmtrnspo|s(1), pb|
|00004600| 6d 63 75 74 28 31 29 2c | 0a 58 70 62 6d 65 6e 6c |mcut(1),|.Xpbmenl|
|00004610| 61 72 67 65 28 31 29 0a | 58 2e 53 48 20 41 55 54 |arge(1).|X.SH AUT|
|00004620| 48 4f 52 0a 58 43 6f 70 | 79 72 69 67 68 74 20 28 |HOR.XCop|yright (|
|00004630| 43 29 20 31 39 38 38 20 | 62 79 20 4a 65 66 20 50 |C) 1988 |by Jef P|
|00004640| 6f 73 6b 61 6e 7a 65 72 | 2e 0a 58 0a 58 50 65 72 |oskanzer|..X.XPer|
|00004650| 6d 69 73 73 69 6f 6e 20 | 74 6f 20 75 73 65 2c 20 |mission |to use, |
|00004660| 63 6f 70 79 2c 20 6d 6f | 64 69 66 79 2c 20 61 6e |copy, mo|dify, an|
|00004670| 64 20 64 69 73 74 72 69 | 62 75 74 65 20 74 68 69 |d distri|bute thi|
|00004680| 73 20 73 6f 66 74 77 61 | 72 65 20 61 6e 64 20 69 |s softwa|re and i|
|00004690| 74 73 0a 58 64 6f 63 75 | 6d 65 6e 74 61 74 69 6f |ts.Xdocu|mentatio|
|000046a0| 6e 20 66 6f 72 20 61 6e | 79 20 70 75 72 70 6f 73 |n for an|y purpos|
|000046b0| 65 20 61 6e 64 20 77 69 | 74 68 6f 75 74 20 66 65 |e and wi|thout fe|
|000046c0| 65 20 69 73 20 68 65 72 | 65 62 79 20 67 72 61 6e |e is her|eby gran|
|000046d0| 74 65 64 2c 20 70 72 6f | 76 69 64 65 64 0a 58 74 |ted, pro|vided.Xt|
|000046e0| 68 61 74 20 74 68 65 20 | 61 62 6f 76 65 20 63 6f |hat the |above co|
|000046f0| 70 79 72 69 67 68 74 20 | 6e 6f 74 69 63 65 20 61 |pyright |notice a|
|00004700| 70 70 65 61 72 20 69 6e | 20 61 6c 6c 20 63 6f 70 |ppear in| all cop|
|00004710| 69 65 73 20 61 6e 64 20 | 74 68 61 74 20 62 6f 74 |ies and |that bot|
|00004720| 68 20 74 68 61 74 0a 58 | 63 6f 70 79 72 69 67 68 |h that.X|copyrigh|
|00004730| 74 20 6e 6f 74 69 63 65 | 20 61 6e 64 20 74 68 69 |t notice| and thi|
|00004740| 73 20 70 65 72 6d 69 73 | 73 69 6f 6e 20 6e 6f 74 |s permis|sion not|
|00004750| 69 63 65 20 61 70 70 65 | 61 72 20 69 6e 20 73 75 |ice appe|ar in su|
|00004760| 70 70 6f 72 74 69 6e 67 | 0a 58 64 6f 63 75 6d 65 |pporting|.Xdocume|
|00004770| 6e 74 61 74 69 6f 6e 2e | 20 20 54 68 69 73 20 73 |ntation.| This s|
|00004780| 6f 66 74 77 61 72 65 20 | 69 73 20 70 72 6f 76 69 |oftware |is provi|
|00004790| 64 65 64 20 22 61 73 20 | 69 73 22 20 77 69 74 68 |ded "as |is" with|
|000047a0| 6f 75 74 20 65 78 70 72 | 65 73 73 20 6f 72 0a 58 |out expr|ess or.X|
|000047b0| 69 6d 70 6c 69 65 64 20 | 77 61 72 72 61 6e 74 79 |implied |warranty|
|000047c0| 2e 0a 53 48 41 52 5f 45 | 4f 46 0a 69 66 20 74 65 |..SHAR_E|OF.if te|
|000047d0| 73 74 20 31 33 33 34 20 | 2d 6e 65 20 22 60 77 63 |st 1334 |-ne "`wc|
|000047e0| 20 2d 63 20 3c 20 27 70 | 62 6d 70 61 73 74 65 2e | -c < 'p|bmpaste.|
|000047f0| 6d 61 6e 27 60 22 0a 74 | 68 65 6e 0a 09 65 63 68 |man'`".t|hen..ech|
|00004800| 6f 20 73 68 61 72 3a 20 | 65 72 72 6f 72 20 74 72 |o shar: |error tr|
|00004810| 61 6e 73 6d 69 74 74 69 | 6e 67 20 22 27 70 62 6d |ansmitti|ng "'pbm|
|00004820| 70 61 73 74 65 2e 6d 61 | 6e 27 22 20 27 28 73 68 |paste.ma|n'" '(sh|
|00004830| 6f 75 6c 64 20 68 61 76 | 65 20 62 65 65 6e 20 31 |ould hav|e been 1|
|00004840| 33 33 34 20 63 68 61 72 | 61 63 74 65 72 73 29 27 |334 char|acters)'|
|00004850| 0a 66 69 0a 66 69 20 23 | 20 65 6e 64 20 6f 66 20 |.fi.fi #| end of |
|00004860| 6f 76 65 72 77 72 69 74 | 69 6e 67 20 63 68 65 63 |overwrit|ing chec|
|00004870| 6b 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 65 78 74 |k.echo s|har: ext|
|00004880| 72 61 63 74 69 6e 67 20 | 22 27 78 78 78 74 6f 70 |racting |"'xxxtop|
|00004890| 62 6d 2e 63 27 22 20 27 | 28 32 31 37 31 20 63 68 |bm.c'" '|(2171 ch|
|000048a0| 61 72 61 63 74 65 72 73 | 29 27 0a 69 66 20 74 65 |aracters|)'.if te|
|000048b0| 73 74 20 2d 66 20 27 78 | 78 78 74 6f 70 62 6d 2e |st -f 'x|xxtopbm.|
|000048c0| 63 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |c'.then.|.echo sh|
|000048d0| 61 72 3a 20 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: will| not ove|
|000048e0| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|000048f0| 20 66 69 6c 65 20 22 27 | 78 78 78 74 6f 70 62 6d | file "'|xxxtopbm|
|00004900| 2e 63 27 22 0a 65 6c 73 | 65 0a 73 65 64 20 27 73 |.c'".els|e.sed 's|
|00004910| 2f 5e 58 2f 2f 27 20 3c | 3c 20 5c 53 48 41 52 5f |/^X//' <|< \SHAR_|
|00004920| 45 4f 46 20 3e 20 27 78 | 78 78 74 6f 70 62 6d 2e |EOF > 'x|xxtopbm.|
|00004930| 63 27 0a 58 2f 2a 20 78 | 78 78 74 6f 70 62 6d 2e |c'.X/* x|xxtopbm.|
|00004940| 63 20 2d 20 72 65 61 64 | 20 61 6e 20 78 78 78 20 |c - read| an xxx |
|00004950| 62 69 74 6d 61 70 20 61 | 6e 64 20 77 72 69 74 65 |bitmap a|nd write|
|00004960| 20 61 20 70 6f 72 74 61 | 62 6c 65 20 62 69 74 6d | a porta|ble bitm|
|00004970| 61 70 0a 58 2a 2a 0a 58 | 2a 2a 20 43 6f 70 79 72 |ap.X**.X|** Copyr|
|00004980| 69 67 68 74 20 28 43 29 | 20 31 39 38 38 20 62 79 |ight (C)| 1988 by|
|00004990| 20 4a 65 66 20 50 6f 73 | 6b 61 6e 7a 65 72 2e 0a | Jef Pos|kanzer..|
|000049a0| 58 2a 2a 0a 58 2a 2a 20 | 50 65 72 6d 69 73 73 69 |X**.X** |Permissi|
|000049b0| 6f 6e 20 74 6f 20 75 73 | 65 2c 20 63 6f 70 79 2c |on to us|e, copy,|
|000049c0| 20 6d 6f 64 69 66 79 2c | 20 61 6e 64 20 64 69 73 | modify,| and dis|
|000049d0| 74 72 69 62 75 74 65 20 | 74 68 69 73 20 73 6f 66 |tribute |this sof|
|000049e0| 74 77 61 72 65 20 61 6e | 64 20 69 74 73 0a 58 2a |tware an|d its.X*|
|000049f0| 2a 20 64 6f 63 75 6d 65 | 6e 74 61 74 69 6f 6e 20 |* docume|ntation |
|00004a00| 66 6f 72 20 61 6e 79 20 | 70 75 72 70 6f 73 65 20 |for any |purpose |
|00004a10| 61 6e 64 20 77 69 74 68 | 6f 75 74 20 66 65 65 20 |and with|out fee |
|00004a20| 69 73 20 68 65 72 65 62 | 79 20 67 72 61 6e 74 65 |is hereb|y grante|
|00004a30| 64 2c 20 70 72 6f 76 69 | 64 65 64 0a 58 2a 2a 20 |d, provi|ded.X** |
|00004a40| 74 68 61 74 20 74 68 65 | 20 61 62 6f 76 65 20 63 |that the| above c|
|00004a50| 6f 70 79 72 69 67 68 74 | 20 6e 6f 74 69 63 65 20 |opyright| notice |
|00004a60| 61 70 70 65 61 72 20 69 | 6e 20 61 6c 6c 20 63 6f |appear i|n all co|
|00004a70| 70 69 65 73 20 61 6e 64 | 20 74 68 61 74 20 62 6f |pies and| that bo|
|00004a80| 74 68 20 74 68 61 74 0a | 58 2a 2a 20 63 6f 70 79 |th that.|X** copy|
|00004a90| 72 69 67 68 74 20 6e 6f | 74 69 63 65 20 61 6e 64 |right no|tice and|
|00004aa0| 20 74 68 69 73 20 70 65 | 72 6d 69 73 73 69 6f 6e | this pe|rmission|
|00004ab0| 20 6e 6f 74 69 63 65 20 | 61 70 70 65 61 72 20 69 | notice |appear i|
|00004ac0| 6e 20 73 75 70 70 6f 72 | 74 69 6e 67 0a 58 2a 2a |n suppor|ting.X**|
|00004ad0| 20 64 6f 63 75 6d 65 6e | 74 61 74 69 6f 6e 2e 20 | documen|tation. |
|00004ae0| 20 54 68 69 73 20 73 6f | 66 74 77 61 72 65 20 69 | This so|ftware i|
|00004af0| 73 20 70 72 6f 76 69 64 | 65 64 20 22 61 73 20 69 |s provid|ed "as i|
|00004b00| 73 22 20 77 69 74 68 6f | 75 74 20 65 78 70 72 65 |s" witho|ut expre|
|00004b10| 73 73 20 6f 72 0a 58 2a | 2a 20 69 6d 70 6c 69 65 |ss or.X*|* implie|
|00004b20| 64 20 77 61 72 72 61 6e | 74 79 2e 0a 58 2a 2f 0a |d warran|ty..X*/.|
|00004b30| 58 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 74 64 |X.X#incl|ude <std|
|00004b40| 69 6f 2e 68 3e 0a 58 23 | 69 6e 63 6c 75 64 65 20 |io.h>.X#|include |
|00004b50| 22 70 62 6d 2e 68 22 0a | 58 0a 58 6d 61 69 6e 28 |"pbm.h".|X.Xmain(|
|00004b60| 20 61 72 67 63 2c 20 61 | 72 67 76 20 29 0a 58 69 | argc, a|rgv ).Xi|
|00004b70| 6e 74 20 61 72 67 63 3b | 0a 58 63 68 61 72 20 2a |nt argc;|.Xchar *|
|00004b80| 61 72 67 76 5b 5d 3b 0a | 58 20 20 20 20 7b 0a 58 |argv[];.|X {.X|
|00004b90| 20 20 20 20 46 49 4c 45 | 20 2a 69 66 64 3b 0a 58 | FILE| *ifd;.X|
|00004ba0| 20 20 20 20 62 69 74 20 | 2a 2a 62 69 74 73 2c 20 | bit |**bits, |
|00004bb0| 67 65 74 62 69 74 28 29 | 3b 0a 58 20 20 20 20 69 |getbit()|;.X i|
|00004bc0| 6e 74 20 72 6f 77 73 2c | 20 63 6f 6c 73 2c 20 72 |nt rows,| cols, r|
|00004bd0| 6f 77 2c 20 63 6f 6c 2c | 20 73 75 62 63 6f 6c 3b |ow, col,| subcol;|
|00004be0| 0a 58 0a 58 20 20 20 20 | 69 66 20 28 20 61 72 67 |.X.X |if ( arg|
|00004bf0| 63 20 3e 20 32 20 29 0a | 58 09 7b 0a 58 09 66 70 |c > 2 ).|X.{.X.fp|
|00004c00| 72 69 6e 74 66 28 20 73 | 74 64 65 72 72 2c 20 22 |rintf( s|tderr, "|
|00004c10| 75 73 61 67 65 3a 20 20 | 25 73 20 5b 78 78 78 66 |usage: |%s [xxxf|
|00004c20| 69 6c 65 5d 5c 6e 22 2c | 20 61 72 67 76 5b 30 5d |ile]\n",| argv[0]|
|00004c30| 20 29 3b 0a 58 09 65 78 | 69 74 28 20 31 20 29 3b | );.X.ex|it( 1 );|
|00004c40| 0a 58 09 7d 0a 58 0a 58 | 20 20 20 20 69 66 20 28 |.X.}.X.X| if (|
|00004c50| 20 61 72 67 63 20 3d 3d | 20 32 20 29 0a 58 09 7b | argc ==| 2 ).X.{|
|00004c60| 0a 58 20 20 20 20 20 20 | 20 20 69 66 64 20 3d 20 |.X | ifd = |
|00004c70| 66 6f 70 65 6e 28 20 61 | 72 67 76 5b 31 5d 2c 20 |fopen( a|rgv[1], |
|00004c80| 22 72 22 20 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |"r" );.X| |
|00004c90| 69 66 20 28 20 69 66 64 | 20 3d 3d 20 4e 55 4c 4c |if ( ifd| == NULL|
|00004ca0| 20 29 0a 58 09 20 20 20 | 20 7b 0a 58 09 20 20 20 | ).X. | {.X. |
|00004cb0| 20 66 70 72 69 6e 74 66 | 28 20 73 74 64 65 72 72 | fprintf|( stderr|
|00004cc0| 2c 20 22 25 73 3a 20 63 | 61 6e 27 74 20 6f 70 65 |, "%s: c|an't ope|
|00004cd0| 6e 2e 5c 6e 22 2c 20 61 | 72 67 76 5b 31 5d 20 29 |n.\n", a|rgv[1] )|
|00004ce0| 3b 0a 58 09 20 20 20 20 | 65 78 69 74 28 20 31 20 |;.X. |exit( 1 |
|00004cf0| 29 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 7d 0a 58 |);.X. | }.X.}.X|
|00004d00| 20 20 20 20 65 6c 73 65 | 0a 58 09 69 66 64 20 3d | else|.X.ifd =|
|00004d10| 20 73 74 64 69 6e 3b 0a | 58 0a 58 20 20 20 20 67 | stdin;.|X.X g|
|00004d20| 65 74 69 6e 69 74 28 20 | 69 66 64 2c 20 26 63 6f |etinit( |ifd, &co|
|00004d30| 6c 73 2c 20 26 72 6f 77 | 73 20 29 3b 0a 58 0a 58 |ls, &row|s );.X.X|
|00004d40| 20 20 20 20 62 69 74 73 | 20 3d 20 70 62 6d 5f 61 | bits| = pbm_a|
|00004d50| 6c 6c 6f 63 61 72 72 61 | 79 28 20 63 6f 6c 73 2c |llocarra|y( cols,|
|00004d60| 20 72 6f 77 73 20 29 3b | 0a 58 0a 58 20 20 20 20 | rows );|.X.X |
|00004d70| 66 6f 72 20 28 20 72 6f | 77 20 3d 20 30 3b 20 72 |for ( ro|w = 0; r|
|00004d80| 6f 77 20 3c 20 72 6f 77 | 73 3b 20 72 6f 77 2b 2b |ow < row|s; row++|
|00004d90| 20 29 0a 58 20 20 20 20 | 20 20 20 20 66 6f 72 20 | ).X | for |
|00004da0| 28 20 63 6f 6c 20 3d 20 | 30 3b 20 63 6f 6c 20 3c |( col = |0; col <|
|00004db0| 20 63 6f 6c 73 3b 20 63 | 6f 6c 20 2b 3d 20 38 20 | cols; c|ol += 8 |
|00004dc0| 29 0a 58 09 20 20 20 20 | 66 6f 72 20 28 20 73 75 |).X. |for ( su|
|00004dd0| 62 63 6f 6c 20 3d 20 63 | 6f 6c 20 2b 20 37 3b 20 |bcol = c|ol + 7; |
|00004de0| 73 75 62 63 6f 6c 20 3e | 3d 20 63 6f 6c 3b 20 73 |subcol >|= col; s|
|00004df0| 75 62 63 6f 6c 2d 2d 20 | 29 0a 58 09 09 62 69 74 |ubcol-- |).X..bit|
|00004e00| 73 5b 72 6f 77 5d 5b 73 | 75 62 63 6f 6c 5d 20 3d |s[row][s|ubcol] =|
|00004e10| 20 67 65 74 62 69 74 28 | 20 69 66 64 20 29 3b 0a | getbit(| ifd );.|
|00004e20| 58 0a 58 20 20 20 20 69 | 66 20 28 20 69 66 64 20 |X.X i|f ( ifd |
|00004e30| 21 3d 20 73 74 64 69 6e | 20 29 0a 58 09 66 63 6c |!= stdin| ).X.fcl|
|00004e40| 6f 73 65 28 20 69 66 64 | 20 29 3b 0a 58 20 20 20 |ose( ifd| );.X |
|00004e50| 20 0a 58 20 20 20 20 70 | 62 6d 5f 77 72 69 74 65 | .X p|bm_write|
|00004e60| 70 62 6d 28 20 73 74 64 | 6f 75 74 2c 20 62 69 74 |pbm( std|out, bit|
|00004e70| 73 2c 20 63 6f 6c 73 2c | 20 72 6f 77 73 20 29 3b |s, cols,| rows );|
|00004e80| 0a 58 0a 58 20 20 20 20 | 65 78 69 74 28 20 30 20 |.X.X |exit( 0 |
|00004e90| 29 3b 0a 58 20 20 20 20 | 7d 0a 58 0a 58 0a 58 69 |);.X |}.X.X.Xi|
|00004ea0| 6e 74 20 69 74 65 6d 2c | 20 62 69 74 73 70 65 72 |nt item,| bitsper|
|00004eb0| 69 74 65 6d 2c 20 62 69 | 74 73 68 69 66 74 3b 0a |item, bi|tshift;.|
|00004ec0| 58 0a 58 67 65 74 69 6e | 69 74 28 20 66 69 6c 65 |X.Xgetin|it( file|
|00004ed0| 2c 20 63 6f 6c 70 2c 20 | 72 6f 77 70 20 29 0a 58 |, colp, |rowp ).X|
|00004ee0| 46 49 4c 45 20 2a 66 69 | 6c 65 3b 0a 58 69 6e 74 |FILE *fi|le;.Xint|
|00004ef0| 20 2a 63 6f 6c 70 2c 20 | 2a 72 6f 77 70 3b 0a 58 | *colp, |*rowp;.X|
|00004f00| 20 20 20 20 7b 0a 58 20 | 20 20 20 69 66 20 28 20 | {.X | if ( |
|00004f10| 67 65 74 63 28 20 66 69 | 6c 65 20 29 20 21 3d 20 |getc( fi|le ) != |
|00004f20| 31 30 39 20 29 0a 58 09 | 7b 0a 58 09 66 70 72 69 |109 ).X.|{.X.fpri|
|00004f30| 6e 74 66 28 20 73 74 64 | 65 72 72 2c 20 22 42 61 |ntf( std|err, "Ba|
|00004f40| 64 20 6d 61 67 69 63 20 | 6e 75 6d 62 65 72 20 31 |d magic |number 1|
|00004f50| 2e 5c 6e 22 20 29 3b 0a | 58 09 65 78 69 74 28 20 |.\n" );.|X.exit( |
|00004f60| 31 20 29 3b 0a 58 09 7d | 0a 58 20 20 20 20 69 66 |1 );.X.}|.X if|
|00004f70| 20 28 20 67 65 74 63 28 | 20 66 69 6c 65 20 29 20 | ( getc(| file ) |
|00004f80| 21 3d 20 31 20 29 0a 58 | 09 7b 0a 58 09 66 70 72 |!= 1 ).X|.{.X.fpr|
|00004f90| 69 6e 74 66 28 20 73 74 | 64 65 72 72 2c 20 22 42 |intf( st|derr, "B|
|00004fa0| 61 64 20 6d 61 67 69 63 | 20 6e 75 6d 62 65 72 20 |ad magic| number |
|00004fb0| 32 2e 5c 6e 22 20 29 3b | 0a 58 09 65 78 69 74 28 |2.\n" );|.X.exit(|
|00004fc0| 20 31 20 29 3b 0a 58 09 | 7d 0a 58 20 20 20 20 2a | 1 );.X.|}.X *|
|00004fd0| 63 6f 6c 70 20 3d 20 67 | 65 74 63 28 20 66 69 6c |colp = g|etc( fil|
|00004fe0| 65 20 29 3b 0a 58 20 20 | 20 20 2a 63 6f 6c 70 20 |e );.X | *colp |
|00004ff0| 2b 3d 20 67 65 74 63 28 | 20 66 69 6c 65 20 29 20 |+= getc(| file ) |
|00005000| 3c 3c 20 38 3b 0a 58 20 | 20 20 20 2a 72 6f 77 70 |<< 8;.X | *rowp|
|00005010| 20 3d 20 67 65 74 63 28 | 20 66 69 6c 65 20 29 3b | = getc(| file );|
|00005020| 0a 58 20 20 20 20 2a 72 | 6f 77 70 20 2b 3d 20 67 |.X *r|owp += g|
|00005030| 65 74 63 28 20 66 69 6c | 65 20 29 20 3c 3c 20 38 |etc( fil|e ) << 8|
|00005040| 3b 0a 58 20 20 20 20 62 | 69 74 73 70 65 72 69 74 |;.X b|itsperit|
|00005050| 65 6d 20 3d 20 38 3b 0a | 58 20 20 20 20 69 66 20 |em = 8;.|X if |
|00005060| 28 20 67 65 74 63 28 20 | 66 69 6c 65 20 29 20 21 |( getc( |file ) !|
|00005070| 3d 20 30 20 29 0a 58 09 | 7b 0a 58 09 66 70 72 69 |= 0 ).X.|{.X.fpri|
|00005080| 6e 74 66 28 20 73 74 64 | 65 72 72 2c 20 22 42 61 |ntf( std|err, "Ba|
|00005090| 64 20 6d 61 67 69 63 20 | 6e 75 6d 62 65 72 20 33 |d magic |number 3|
|000050a0| 2e 5c 6e 22 20 29 3b 0a | 58 09 65 78 69 74 28 20 |.\n" );.|X.exit( |
|000050b0| 31 20 29 3b 0a 58 09 7d | 0a 58 20 20 20 20 69 66 |1 );.X.}|.X if|
|000050c0| 20 28 20 67 65 74 63 28 | 20 66 69 6c 65 20 29 20 | ( getc(| file ) |
|000050d0| 21 3d 20 34 36 20 29 0a | 58 09 7b 0a 58 09 66 70 |!= 46 ).|X.{.X.fp|
|000050e0| 72 69 6e 74 66 28 20 73 | 74 64 65 72 72 2c 20 22 |rintf( s|tderr, "|
|000050f0| 42 61 64 20 6d 61 67 69 | 63 20 6e 75 6d 62 65 72 |Bad magi|c number|
|00005100| 20 34 2e 5c 6e 22 20 29 | 3b 0a 58 09 65 78 69 74 | 4.\n" )|;.X.exit|
|00005110| 28 20 31 20 29 3b 0a 58 | 09 7d 0a 58 20 20 20 20 |( 1 );.X|.}.X |
|00005120| 7d 0a 58 0a 58 62 69 74 | 0a 58 67 65 74 62 69 74 |}.X.Xbit|.Xgetbit|
|00005130| 28 20 66 69 6c 65 20 29 | 0a 58 46 49 4c 45 20 2a |( file )|.XFILE *|
|00005140| 66 69 6c 65 3b 0a 58 20 | 20 20 20 7b 0a 58 20 20 |file;.X | {.X |
|00005150| 20 20 62 69 74 20 62 3b | 0a 58 0a 58 20 20 20 20 | bit b;|.X.X |
|00005160| 69 66 20 28 20 62 69 74 | 73 70 65 72 69 74 65 6d |if ( bit|speritem|
|00005170| 20 3d 3d 20 38 20 29 0a | 58 09 7b 0a 58 09 69 74 | == 8 ).|X.{.X.it|
|00005180| 65 6d 20 3d 20 67 65 74 | 63 28 20 66 69 6c 65 20 |em = get|c( file |
|00005190| 29 3b 0a 58 09 62 69 74 | 73 70 65 72 69 74 65 6d |);.X.bit|speritem|
|000051a0| 20 3d 20 30 3b 0a 58 09 | 62 69 74 73 68 69 66 74 | = 0;.X.|bitshift|
|000051b0| 20 3d 20 37 3b 0a 58 09 | 7d 0a 58 20 20 20 20 62 | = 7;.X.|}.X b|
|000051c0| 69 74 73 70 65 72 69 74 | 65 6d 2b 2b 3b 0a 58 20 |itsperit|em++;.X |
|000051d0| 20 20 20 62 20 3d 20 28 | 20 69 74 65 6d 20 3e 3e | b = (| item >>|
|000051e0| 20 62 69 74 73 68 69 66 | 74 29 20 26 20 31 3b 0a | bitshif|t) & 1;.|
|000051f0| 58 20 20 20 20 62 69 74 | 73 68 69 66 74 2d 2d 3b |X bit|shift--;|
|00005200| 0a 58 20 20 20 20 72 65 | 74 75 72 6e 20 28 20 62 |.X re|turn ( b|
|00005210| 20 29 3b 0a 58 20 20 20 | 20 7d 0a 53 48 41 52 5f | );.X | }.SHAR_|
|00005220| 45 4f 46 0a 69 66 20 74 | 65 73 74 20 32 31 37 31 |EOF.if t|est 2171|
|00005230| 20 2d 6e 65 20 22 60 77 | 63 20 2d 63 20 3c 20 27 | -ne "`w|c -c < '|
|00005240| 78 78 78 74 6f 70 62 6d | 2e 63 27 60 22 0a 74 68 |xxxtopbm|.c'`".th|
|00005250| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 65 |en..echo| shar: e|
|00005260| 72 72 6f 72 20 74 72 61 | 6e 73 6d 69 74 74 69 6e |rror tra|nsmittin|
|00005270| 67 20 22 27 78 78 78 74 | 6f 70 62 6d 2e 63 27 22 |g "'xxxt|opbm.c'"|
|00005280| 20 27 28 73 68 6f 75 6c | 64 20 68 61 76 65 20 62 | '(shoul|d have b|
|00005290| 65 65 6e 20 32 31 37 31 | 20 63 68 61 72 61 63 74 |een 2171| charact|
|000052a0| 65 72 73 29 27 0a 66 69 | 0a 66 69 20 23 20 65 6e |ers)'.fi|.fi # en|
|000052b0| 64 20 6f 66 20 6f 76 65 | 72 77 72 69 74 69 6e 67 |d of ove|rwriting|
|000052c0| 20 63 68 65 63 6b 0a 65 | 63 68 6f 20 73 68 61 72 | check.e|cho shar|
|000052d0| 3a 20 65 78 74 72 61 63 | 74 69 6e 67 20 22 27 78 |: extrac|ting "'x|
|000052e0| 78 78 74 6f 70 62 6d 2e | 6d 61 6e 27 22 20 27 28 |xxtopbm.|man'" '(|
|000052f0| 31 31 39 34 20 63 68 61 | 72 61 63 74 65 72 73 29 |1194 cha|racters)|
|00005300| 27 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 78 78 |'.if tes|t -f 'xx|
|00005310| 78 74 6f 70 62 6d 2e 6d | 61 6e 27 0a 74 68 65 6e |xtopbm.m|an'.then|
|00005320| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00005330| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00005340| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00005350| 27 78 78 78 74 6f 70 62 | 6d 2e 6d 61 6e 27 22 0a |'xxxtopb|m.man'".|
|00005360| 65 6c 73 65 0a 73 65 64 | 20 27 73 2f 5e 58 2f 2f |else.sed| 's/^X//|
|00005370| 27 20 3c 3c 20 5c 53 48 | 41 52 5f 45 4f 46 20 3e |' << \SH|AR_EOF >|
|00005380| 20 27 78 78 78 74 6f 70 | 62 6d 2e 6d 61 6e 27 0a | 'xxxtop|bm.man'.|
|00005390| 58 2e 54 48 20 78 78 78 | 74 6f 70 62 6d 20 31 20 |X.TH xxx|topbm 1 |
|000053a0| 22 32 31 20 46 65 62 72 | 75 61 72 79 20 31 39 38 |"21 Febr|uary 198|
|000053b0| 38 22 0a 58 2e 53 48 20 | 4e 41 4d 45 0a 58 78 78 |8".X.SH |NAME.Xxx|
|000053c0| 78 74 6f 70 62 6d 20 2d | 20 63 6f 6e 76 65 72 74 |xtopbm -| convert|
|000053d0| 20 22 78 78 78 22 20 62 | 69 74 6d 61 70 73 20 69 | "xxx" b|itmaps i|
|000053e0| 6e 74 6f 20 70 6f 72 74 | 61 62 6c 65 20 62 69 74 |nto port|able bit|
|000053f0| 6d 61 70 73 0a 58 2e 53 | 48 20 53 59 4e 4f 50 53 |maps.X.S|H SYNOPS|
|00005400| 49 53 0a 58 78 78 78 74 | 6f 70 62 6d 20 5b 78 78 |IS.Xxxxt|opbm [xx|
|00005410| 78 66 69 6c 65 5d 0a 58 | 2e 53 48 20 44 45 53 43 |xfile].X|.SH DESC|
|00005420| 52 49 50 54 49 4f 4e 0a | 58 52 65 61 64 73 20 61 |RIPTION.|XReads a|
|00005430| 6e 20 22 78 78 78 22 20 | 62 69 74 6d 61 70 20 61 |n "xxx" |bitmap a|
|00005440| 73 20 69 6e 70 75 74 2e | 0a 58 50 72 6f 64 75 63 |s input.|.XProduc|
|00005450| 65 73 20 61 20 70 6f 72 | 74 61 62 6c 65 20 62 69 |es a por|table bi|
|00005460| 74 6d 61 70 20 61 73 20 | 6f 75 74 70 75 74 2e 0a |tmap as |output..|
|00005470| 58 2e 4c 50 0a 58 22 78 | 78 78 22 20 62 69 74 6d |X.LP.X"x|xx" bitm|
|00005480| 61 70 73 20 61 72 65 20 | 74 68 65 20 75 6e 6b 6e |aps are |the unkn|
|00005490| 6f 77 6e 20 61 6e 64 20 | 75 6e 64 6f 63 75 6d 65 |own and |undocume|
|000054a0| 6e 74 65 64 20 66 6f 72 | 6d 61 74 20 66 6f 75 6e |nted for|mat foun|
|000054b0| 64 20 6f 6e 0a 58 75 63 | 62 76 61 78 2e 42 65 72 |d on.Xuc|bvax.Ber|
|000054c0| 6b 65 6c 65 79 2e 45 64 | 75 20 69 6e 20 74 68 65 |keley.Ed|u in the|
|000054d0| 20 64 69 72 65 63 74 6f | 72 79 20 70 75 62 2f 78 | directo|ry pub/x|
|000054e0| 62 61 63 6b 67 72 6f 75 | 6e 64 73 2e 0a 58 54 68 |backgrou|nds..XTh|
|000054f0| 65 20 61 72 72 61 6e 67 | 65 6d 65 6e 74 20 6f 66 |e arrang|ement of|
|00005500| 20 74 68 65 20 62 69 74 | 73 20 69 73 20 74 68 65 | the bit|s is the|
|00005510| 20 73 61 6d 65 20 61 73 | 20 66 6f 72 20 53 75 6e | same as| for Sun|
|00005520| 20 72 61 73 74 65 72 66 | 69 6c 65 73 2c 20 62 75 | rasterf|iles, bu|
|00005530| 74 0a 58 74 68 65 20 68 | 65 61 64 65 72 73 20 61 |t.Xthe h|eaders a|
|00005540| 72 65 20 63 6f 6d 70 6c | 65 74 65 6c 79 20 64 69 |re compl|etely di|
|00005550| 66 66 65 72 65 6e 74 2e | 0a 58 2e 53 48 20 22 53 |fferent.|.X.SH "S|
|00005560| 45 45 20 41 4c 53 4f 22 | 0a 58 70 62 6d 28 35 29 |EE ALSO"|.Xpbm(5)|
|00005570| 2c 20 69 63 6f 6e 74 6f | 70 62 6d 28 31 29 2c 20 |, iconto|pbm(1), |
|00005580| 6d 61 63 70 74 6f 70 62 | 6d 28 31 29 2c 20 72 61 |macptopb|m(1), ra|
|00005590| 73 74 74 6f 70 62 6d 28 | 31 29 2c 20 78 62 6d 74 |sttopbm(|1), xbmt|
|000055a0| 6f 70 62 6d 28 31 29 2c | 20 78 77 64 74 6f 70 62 |opbm(1),| xwdtopb|
|000055b0| 6d 28 31 29 2c 0a 58 70 | 62 6d 74 6f 69 63 6f 6e |m(1),.Xp|bmtoicon|
|000055c0| 28 31 29 2c 20 70 62 6d | 74 6f 63 62 6d 28 31 29 |(1), pbm|tocbm(1)|
|000055d0| 2c 20 70 62 6d 74 6f 70 | 73 28 31 29 2c 20 70 62 |, pbmtop|s(1), pb|
|000055e0| 6d 74 6f 70 74 78 28 31 | 29 2c 20 70 62 6d 74 6f |mtoptx(1|), pbmto|
|000055f0| 72 61 73 74 28 31 29 2c | 0a 58 70 62 6d 74 6f 78 |rast(1),|.Xpbmtox|
|00005600| 62 6d 28 31 29 2c 20 70 | 62 6d 74 6f 78 31 30 62 |bm(1), p|bmtox10b|
|00005610| 6d 28 31 29 2c 20 70 62 | 6d 74 6f 61 73 63 69 69 |m(1), pb|mtoascii|
|00005620| 28 31 29 2c 20 70 62 6d | 69 6e 76 65 72 74 28 31 |(1), pbm|invert(1|
|00005630| 29 2c 20 70 62 6d 66 6c | 69 70 6c 72 28 31 29 2c |), pbmfl|iplr(1),|
|00005640| 0a 58 70 62 6d 66 6c 69 | 70 74 62 28 31 29 2c 20 |.Xpbmfli|ptb(1), |
|00005650| 70 62 6d 63 61 74 6c 72 | 28 31 29 2c 20 70 62 6d |pbmcatlr|(1), pbm|
|00005660| 63 61 74 74 62 28 31 29 | 2c 20 70 62 6d 63 72 6f |cattb(1)|, pbmcro|
|00005670| 70 28 31 29 2c 20 70 62 | 6d 74 72 6e 73 70 6f 73 |p(1), pb|mtrnspos|
|00005680| 28 31 29 2c 20 70 62 6d | 63 75 74 28 31 29 2c 0a |(1), pbm|cut(1),.|
|00005690| 58 70 62 6d 70 61 73 74 | 65 28 31 29 2c 20 70 62 |Xpbmpast|e(1), pb|
|000056a0| 6d 65 6e 6c 61 72 67 65 | 28 31 29 0a 58 2e 53 48 |menlarge|(1).X.SH|
|000056b0| 20 41 55 54 48 4f 52 0a | 58 43 6f 70 79 72 69 67 | AUTHOR.|XCopyrig|
|000056c0| 68 74 20 28 43 29 20 31 | 39 38 38 20 62 79 20 4a |ht (C) 1|988 by J|
|000056d0| 65 66 20 50 6f 73 6b 61 | 6e 7a 65 72 2e 0a 58 0a |ef Poska|nzer..X.|
|000056e0| 58 50 65 72 6d 69 73 73 | 69 6f 6e 20 74 6f 20 75 |XPermiss|ion to u|
|000056f0| 73 65 2c 20 63 6f 70 79 | 2c 20 6d 6f 64 69 66 79 |se, copy|, modify|
|00005700| 2c 20 61 6e 64 20 64 69 | 73 74 72 69 62 75 74 65 |, and di|stribute|
|00005710| 20 74 68 69 73 20 73 6f | 66 74 77 61 72 65 20 61 | this so|ftware a|
|00005720| 6e 64 20 69 74 73 0a 58 | 64 6f 63 75 6d 65 6e 74 |nd its.X|document|
|00005730| 61 74 69 6f 6e 20 66 6f | 72 20 61 6e 79 20 70 75 |ation fo|r any pu|
|00005740| 72 70 6f 73 65 20 61 6e | 64 20 77 69 74 68 6f 75 |rpose an|d withou|
|00005750| 74 20 66 65 65 20 69 73 | 20 68 65 72 65 62 79 20 |t fee is| hereby |
|00005760| 67 72 61 6e 74 65 64 2c | 20 70 72 6f 76 69 64 65 |granted,| provide|
|00005770| 64 0a 58 74 68 61 74 20 | 74 68 65 20 61 62 6f 76 |d.Xthat |the abov|
|00005780| 65 20 63 6f 70 79 72 69 | 67 68 74 20 6e 6f 74 69 |e copyri|ght noti|
|00005790| 63 65 20 61 70 70 65 61 | 72 20 69 6e 20 61 6c 6c |ce appea|r in all|
|000057a0| 20 63 6f 70 69 65 73 20 | 61 6e 64 20 74 68 61 74 | copies |and that|
|000057b0| 20 62 6f 74 68 20 74 68 | 61 74 0a 58 63 6f 70 79 | both th|at.Xcopy|
|000057c0| 72 69 67 68 74 20 6e 6f | 74 69 63 65 20 61 6e 64 |right no|tice and|
|000057d0| 20 74 68 69 73 20 70 65 | 72 6d 69 73 73 69 6f 6e | this pe|rmission|
|000057e0| 20 6e 6f 74 69 63 65 20 | 61 70 70 65 61 72 20 69 | notice |appear i|
|000057f0| 6e 20 73 75 70 70 6f 72 | 74 69 6e 67 0a 58 64 6f |n suppor|ting.Xdo|
|00005800| 63 75 6d 65 6e 74 61 74 | 69 6f 6e 2e 20 20 54 68 |cumentat|ion. Th|
|00005810| 69 73 20 73 6f 66 74 77 | 61 72 65 20 69 73 20 70 |is softw|are is p|
|00005820| 72 6f 76 69 64 65 64 20 | 22 61 73 20 69 73 22 20 |rovided |"as is" |
|00005830| 77 69 74 68 6f 75 74 20 | 65 78 70 72 65 73 73 20 |without |express |
|00005840| 6f 72 0a 58 69 6d 70 6c | 69 65 64 20 77 61 72 72 |or.Ximpl|ied warr|
|00005850| 61 6e 74 79 2e 0a 53 48 | 41 52 5f 45 4f 46 0a 69 |anty..SH|AR_EOF.i|
|00005860| 66 20 74 65 73 74 20 31 | 31 39 34 20 2d 6e 65 20 |f test 1|194 -ne |
|00005870| 22 60 77 63 20 2d 63 20 | 3c 20 27 78 78 78 74 6f |"`wc -c |< 'xxxto|
|00005880| 70 62 6d 2e 6d 61 6e 27 | 60 22 0a 74 68 65 6e 0a |pbm.man'|`".then.|
|00005890| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 65 72 72 6f |.echo sh|ar: erro|
|000058a0| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 22 |r transm|itting "|
|000058b0| 27 78 78 78 74 6f 70 62 | 6d 2e 6d 61 6e 27 22 20 |'xxxtopb|m.man'" |
|000058c0| 27 28 73 68 6f 75 6c 64 | 20 68 61 76 65 20 62 65 |'(should| have be|
|000058d0| 65 6e 20 31 31 39 34 20 | 63 68 61 72 61 63 74 65 |en 1194 |characte|
|000058e0| 72 73 29 27 0a 66 69 0a | 66 69 20 23 20 65 6e 64 |rs)'.fi.|fi # end|
|000058f0| 20 6f 66 20 6f 76 65 72 | 77 72 69 74 69 6e 67 20 | of over|writing |
|00005900| 63 68 65 63 6b 0a 65 63 | 68 6f 20 73 68 61 72 3a |check.ec|ho shar:|
|00005910| 20 65 78 74 72 61 63 74 | 69 6e 67 20 22 27 70 62 | extract|ing "'pb|
|00005920| 6d 65 6e 6c 61 72 67 65 | 2e 63 27 22 20 27 28 31 |menlarge|.c'" '(1|
|00005930| 39 35 30 20 63 68 61 72 | 61 63 74 65 72 73 29 27 |950 char|acters)'|
|00005940| 0a 69 66 20 74 65 73 74 | 20 2d 66 20 27 70 62 6d |.if test| -f 'pbm|
|00005950| 65 6e 6c 61 72 67 65 2e | 63 27 0a 74 68 65 6e 0a |enlarge.|c'.then.|
|00005960| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 77 69 6c 6c |.echo sh|ar: will|
|00005970| 20 6e 6f 74 20 6f 76 65 | 72 2d 77 72 69 74 65 20 | not ove|r-write |
|00005980| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 22 27 |existing| file "'|
|00005990| 70 62 6d 65 6e 6c 61 72 | 67 65 2e 63 27 22 0a 65 |pbmenlar|ge.c'".e|
|000059a0| 6c 73 65 0a 73 65 64 20 | 27 73 2f 5e 58 2f 2f 27 |lse.sed |'s/^X//'|
|000059b0| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|000059c0| 27 70 62 6d 65 6e 6c 61 | 72 67 65 2e 63 27 0a 58 |'pbmenla|rge.c'.X|
|000059d0| 2f 2a 20 70 62 6d 65 6e | 6c 61 72 67 65 2e 63 20 |/* pbmen|large.c |
|000059e0| 2d 20 72 65 61 64 20 61 | 20 70 6f 72 74 61 62 6c |- read a| portabl|
|000059f0| 65 20 62 69 74 6d 61 70 | 20 61 6e 64 20 65 6e 6c |e bitmap| and enl|
|00005a00| 61 72 67 65 20 69 74 20 | 4e 20 74 69 6d 65 73 0a |arge it |N times.|
|00005a10| 58 2a 2a 0a 58 2a 2a 20 | 43 6f 70 79 72 69 67 68 |X**.X** |Copyrigh|
|00005a20| 74 20 28 43 29 20 31 39 | 38 38 20 62 79 20 4a 65 |t (C) 19|88 by Je|
|00005a30| 66 20 50 6f 73 6b 61 6e | 7a 65 72 2e 0a 58 2a 2a |f Poskan|zer..X**|
|00005a40| 0a 58 2a 2a 20 50 65 72 | 6d 69 73 73 69 6f 6e 20 |.X** Per|mission |
|00005a50| 74 6f 20 75 73 65 2c 20 | 63 6f 70 79 2c 20 6d 6f |to use, |copy, mo|
|00005a60| 64 69 66 79 2c 20 61 6e | 64 20 64 69 73 74 72 69 |dify, an|d distri|
|00005a70| 62 75 74 65 20 74 68 69 | 73 20 73 6f 66 74 77 61 |bute thi|s softwa|
|00005a80| 72 65 20 61 6e 64 20 69 | 74 73 0a 58 2a 2a 20 64 |re and i|ts.X** d|
|00005a90| 6f 63 75 6d 65 6e 74 61 | 74 69 6f 6e 20 66 6f 72 |ocumenta|tion for|
|00005aa0| 20 61 6e 79 20 70 75 72 | 70 6f 73 65 20 61 6e 64 | any pur|pose and|
|00005ab0| 20 77 69 74 68 6f 75 74 | 20 66 65 65 20 69 73 20 | without| fee is |
|00005ac0| 68 65 72 65 62 79 20 67 | 72 61 6e 74 65 64 2c 20 |hereby g|ranted, |
|00005ad0| 70 72 6f 76 69 64 65 64 | 0a 58 2a 2a 20 74 68 61 |provided|.X** tha|
|00005ae0| 74 20 74 68 65 20 61 62 | 6f 76 65 20 63 6f 70 79 |t the ab|ove copy|
|00005af0| 72 69 67 68 74 20 6e 6f | 74 69 63 65 20 61 70 70 |right no|tice app|
|00005b00| 65 61 72 20 69 6e 20 61 | 6c 6c 20 63 6f 70 69 65 |ear in a|ll copie|
|00005b10| 73 20 61 6e 64 20 74 68 | 61 74 20 62 6f 74 68 20 |s and th|at both |
|00005b20| 74 68 61 74 0a 58 2a 2a | 20 63 6f 70 79 72 69 67 |that.X**| copyrig|
|00005b30| 68 74 20 6e 6f 74 69 63 | 65 20 61 6e 64 20 74 68 |ht notic|e and th|
|00005b40| 69 73 20 70 65 72 6d 69 | 73 73 69 6f 6e 20 6e 6f |is permi|ssion no|
|00005b50| 74 69 63 65 20 61 70 70 | 65 61 72 20 69 6e 20 73 |tice app|ear in s|
|00005b60| 75 70 70 6f 72 74 69 6e | 67 0a 58 2a 2a 20 64 6f |upportin|g.X** do|
|00005b70| 63 75 6d 65 6e 74 61 74 | 69 6f 6e 2e 20 20 54 68 |cumentat|ion. Th|
|00005b80| 69 73 20 73 6f 66 74 77 | 61 72 65 20 69 73 20 70 |is softw|are is p|
|00005b90| 72 6f 76 69 64 65 64 20 | 22 61 73 20 69 73 22 20 |rovided |"as is" |
|00005ba0| 77 69 74 68 6f 75 74 20 | 65 78 70 72 65 73 73 20 |without |express |
|00005bb0| 6f 72 0a 58 2a 2a 20 69 | 6d 70 6c 69 65 64 20 77 |or.X** i|mplied w|
|00005bc0| 61 72 72 61 6e 74 79 2e | 0a 58 2a 2f 0a 58 0a 58 |arranty.|.X*/.X.X|
|00005bd0| 23 69 6e 63 6c 75 64 65 | 20 3c 73 74 64 69 6f 2e |#include| <stdio.|
|00005be0| 68 3e 0a 58 23 69 6e 63 | 6c 75 64 65 20 22 70 62 |h>.X#inc|lude "pb|
|00005bf0| 6d 2e 68 22 0a 58 0a 58 | 6d 61 69 6e 28 20 61 72 |m.h".X.X|main( ar|
|00005c00| 67 63 2c 20 61 72 67 76 | 20 29 0a 58 69 6e 74 20 |gc, argv| ).Xint |
|00005c10| 61 72 67 63 3b 0a 58 63 | 68 61 72 20 2a 61 72 67 |argc;.Xc|har *arg|
|00005c20| 76 5b 5d 3b 0a 58 20 20 | 20 20 7b 0a 58 20 20 20 |v[];.X | {.X |
|00005c30| 20 46 49 4c 45 20 2a 69 | 66 64 3b 0a 58 20 20 20 | FILE *i|fd;.X |
|00005c40| 20 62 69 74 20 2a 2a 62 | 69 74 73 2c 20 2a 2a 6e | bit **b|its, **n|
|00005c50| 65 77 62 69 74 73 3b 0a | 58 20 20 20 20 69 6e 74 |ewbits;.|X int|
|00005c60| 20 61 72 67 6e 2c 20 6e | 2c 20 72 6f 77 73 2c 20 | argn, n|, rows, |
|00005c70| 63 6f 6c 73 2c 20 72 6f | 77 2c 20 63 6f 6c 2c 20 |cols, ro|w, col, |
|00005c80| 73 75 62 72 6f 77 2c 20 | 73 75 62 63 6f 6c 3b 0a |subrow, |subcol;.|
|00005c90| 58 20 20 20 20 63 68 61 | 72 20 2a 75 73 61 67 65 |X cha|r *usage|
|00005ca0| 20 3d 20 22 75 73 61 67 | 65 3a 20 20 25 73 20 5b | = "usag|e: %s [|
|00005cb0| 2d 4e 5d 20 5b 70 62 6d | 66 69 6c 65 5d 5c 6e 22 |-N] [pbm|file]\n"|
|00005cc0| 3b 0a 58 0a 58 20 20 20 | 20 69 66 20 28 20 61 72 |;.X.X | if ( ar|
|00005cd0| 67 63 20 3e 20 33 20 29 | 0a 58 09 7b 0a 58 09 66 |gc > 3 )|.X.{.X.f|
|00005ce0| 70 72 69 6e 74 66 28 20 | 73 74 64 65 72 72 2c 20 |printf( |stderr, |
|00005cf0| 75 73 61 67 65 2c 20 61 | 72 67 76 5b 30 5d 20 29 |usage, a|rgv[0] )|
|00005d00| 3b 0a 58 09 65 78 69 74 | 28 20 31 20 29 3b 0a 58 |;.X.exit|( 1 );.X|
|00005d10| 09 7d 0a 58 0a 58 20 20 | 20 20 6e 20 3d 20 30 3b |.}.X.X | n = 0;|
|00005d20| 0a 58 20 20 20 20 69 66 | 64 20 3d 20 73 74 64 69 |.X if|d = stdi|
|00005d30| 6e 3b 0a 58 0a 58 20 20 | 20 20 66 6f 72 20 28 20 |n;.X.X | for ( |
|00005d40| 61 72 67 6e 20 3d 20 31 | 3b 20 61 72 67 6e 20 3c |argn = 1|; argn <|
|00005d50| 20 61 72 67 63 3b 20 61 | 72 67 6e 2b 2b 20 29 0a | argc; a|rgn++ ).|
|00005d60| 58 09 7b 0a 58 09 69 66 | 20 28 20 61 72 67 76 5b |X.{.X.if| ( argv[|
|00005d70| 61 72 67 6e 5d 5b 30 5d | 20 3d 3d 20 27 2d 27 20 |argn][0]| == '-' |
|00005d80| 29 0a 58 09 20 20 20 20 | 7b 0a 58 09 20 20 20 20 |).X. |{.X. |
|00005d90| 69 66 20 28 20 6e 20 21 | 3d 20 30 20 29 0a 58 09 |if ( n !|= 0 ).X.|
|00005da0| 09 7b 0a 58 09 09 66 70 | 72 69 6e 74 66 28 20 73 |.{.X..fp|rintf( s|
|00005db0| 74 64 65 72 72 2c 20 75 | 73 61 67 65 2c 20 61 72 |tderr, u|sage, ar|
|00005dc0| 67 76 5b 30 5d 20 29 3b | 0a 58 09 09 65 78 69 74 |gv[0] );|.X..exit|
|00005dd0| 28 20 31 20 29 3b 0a 58 | 09 09 7d 0a 58 09 20 20 |( 1 );.X|..}.X. |
|00005de0| 20 20 69 66 20 28 20 73 | 73 63 61 6e 66 28 20 26 | if ( s|scanf( &|
|00005df0| 28 61 72 67 76 5b 61 72 | 67 6e 5d 5b 31 5d 29 2c |(argv[ar|gn][1]),|
|00005e00| 20 22 25 64 22 2c 20 26 | 6e 20 29 20 21 3d 20 31 | "%d", &|n ) != 1|
|00005e10| 20 29 0a 58 09 09 7b 0a | 58 09 09 66 70 72 69 6e | ).X..{.|X..fprin|
|00005e20| 74 66 28 20 73 74 64 65 | 72 72 2c 20 75 73 61 67 |tf( stde|rr, usag|
|00005e30| 65 2c 20 61 72 67 76 5b | 30 5d 20 29 3b 0a 58 09 |e, argv[|0] );.X.|
|00005e40| 09 65 78 69 74 28 20 31 | 20 29 3b 0a 58 09 09 7d |.exit( 1| );.X..}|
|00005e50| 0a 58 09 20 20 20 20 69 | 66 20 28 20 6e 20 3c 20 |.X. i|f ( n < |
|00005e60| 32 20 29 0a 58 09 09 7b | 0a 58 09 09 66 70 72 69 |2 ).X..{|.X..fpri|
|00005e70| 6e 74 66 28 20 73 74 64 | 65 72 72 2c 20 75 73 61 |ntf( std|err, usa|
|00005e80| 67 65 2c 20 61 72 67 76 | 5b 30 5d 20 29 3b 0a 58 |ge, argv|[0] );.X|
|00005e90| 09 09 65 78 69 74 28 20 | 31 20 29 3b 0a 58 09 09 |..exit( |1 );.X..|
|00005ea0| 7d 0a 58 09 20 20 20 20 | 7d 0a 58 09 65 6c 73 65 |}.X. |}.X.else|
|00005eb0| 0a 58 09 20 20 20 20 7b | 0a 58 09 20 20 20 20 69 |.X. {|.X. i|
|00005ec0| 66 20 28 20 69 66 64 20 | 21 3d 20 73 74 64 69 6e |f ( ifd |!= stdin|
|00005ed0| 20 29 0a 58 09 09 7b 0a | 58 09 09 66 70 72 69 6e | ).X..{.|X..fprin|
|00005ee0| 74 66 28 20 73 74 64 65 | 72 72 2c 20 75 73 61 67 |tf( stde|rr, usag|
|00005ef0| 65 2c 20 61 72 67 76 5b | 30 5d 20 29 3b 0a 58 09 |e, argv[|0] );.X.|
|00005f00| 09 65 78 69 74 28 20 31 | 20 29 3b 0a 58 09 09 7d |.exit( 1| );.X..}|
|00005f10| 0a 58 09 20 20 20 20 69 | 66 64 20 3d 20 66 6f 70 |.X. i|fd = fop|
|00005f20| 65 6e 28 20 61 72 67 76 | 5b 61 72 67 6e 5d 2c 20 |en( argv|[argn], |
|00005f30| 22 72 22 20 29 3b 0a 58 | 09 20 20 20 20 69 66 20 |"r" );.X|. if |
|00005f40| 28 20 69 66 64 20 3d 3d | 20 4e 55 4c 4c 20 29 0a |( ifd ==| NULL ).|
|00005f50| 58 09 09 7b 0a 58 09 09 | 66 70 72 69 6e 74 66 28 |X..{.X..|fprintf(|
|00005f60| 20 73 74 64 65 72 72 2c | 20 22 25 73 3a 20 63 61 | stderr,| "%s: ca|
|00005f70| 6e 27 74 20 6f 70 65 6e | 2e 5c 6e 22 2c 20 61 72 |n't open|.\n", ar|
|00005f80| 67 76 5b 61 72 67 6e 5d | 20 29 3b 0a 58 09 09 65 |gv[argn]| );.X..e|
|00005f90| 78 69 74 28 20 31 20 29 | 3b 0a 58 09 09 7d 0a 58 |xit( 1 )|;.X..}.X|
|00005fa0| 09 20 20 20 20 7d 0a 58 | 09 7d 0a 58 20 20 20 20 |. }.X|.}.X |
|00005fb0| 0a 58 20 20 20 20 69 66 | 20 28 20 6e 20 3d 3d 20 |.X if| ( n == |
|00005fc0| 30 20 29 0a 58 09 6e 20 | 3d 20 32 3b 09 2f 2a 20 |0 ).X.n |= 2;./* |
|00005fd0| 64 65 66 61 75 6c 74 20 | 74 6f 20 64 6f 75 62 6c |default |to doubl|
|00005fe0| 65 20 2a 2f 0a 58 0a 58 | 20 20 20 20 62 69 74 73 |e */.X.X| bits|
|00005ff0| 20 3d 20 70 62 6d 5f 72 | 65 61 64 70 62 6d 28 20 | = pbm_r|eadpbm( |
|00006000| 69 66 64 2c 20 26 63 6f | 6c 73 2c 20 26 72 6f 77 |ifd, &co|ls, &row|
|00006010| 73 20 29 3b 0a 58 0a 58 | 20 20 20 20 69 66 20 28 |s );.X.X| if (|
|00006020| 20 69 66 64 20 21 3d 20 | 73 74 64 69 6e 20 29 0a | ifd != |stdin ).|
|00006030| 58 09 66 63 6c 6f 73 65 | 28 20 69 66 64 20 29 3b |X.fclose|( ifd );|
|00006040| 0a 58 0a 58 20 20 20 20 | 6e 65 77 62 69 74 73 20 |.X.X |newbits |
|00006050| 3d 20 70 62 6d 5f 61 6c | 6c 6f 63 61 72 72 61 79 |= pbm_al|locarray|
|00006060| 28 20 63 6f 6c 73 20 2a | 20 6e 2c 20 72 6f 77 73 |( cols *| n, rows|
|00006070| 20 2a 20 6e 20 29 3b 0a | 58 0a 58 20 20 20 20 66 | * n );.|X.X f|
|00006080| 6f 72 20 28 20 72 6f 77 | 20 3d 20 30 3b 20 72 6f |or ( row| = 0; ro|
|00006090| 77 20 3c 20 72 6f 77 73 | 3b 20 72 6f 77 2b 2b 20 |w < rows|; row++ |
|000060a0| 29 0a 58 20 20 20 20 20 | 20 20 20 66 6f 72 20 28 |).X | for (|
|000060b0| 20 63 6f 6c 20 3d 20 30 | 3b 20 63 6f 6c 20 3c 20 | col = 0|; col < |
|000060c0| 63 6f 6c 73 3b 20 63 6f | 6c 2b 2b 20 29 0a 58 09 |cols; co|l++ ).X.|
|000060d0| 20 20 20 20 66 6f 72 20 | 28 20 73 75 62 72 6f 77 | for |( subrow|
|000060e0| 20 3d 20 30 3b 20 73 75 | 62 72 6f 77 20 3c 20 6e | = 0; su|brow < n|
|000060f0| 3b 20 73 75 62 72 6f 77 | 2b 2b 20 29 0a 58 09 09 |; subrow|++ ).X..|
|00006100| 66 6f 72 20 28 20 73 75 | 62 63 6f 6c 20 3d 20 30 |for ( su|bcol = 0|
|00006110| 3b 20 73 75 62 63 6f 6c | 20 3c 20 6e 3b 20 73 75 |; subcol| < n; su|
|00006120| 62 63 6f 6c 2b 2b 20 29 | 0a 58 09 09 20 20 20 20 |bcol++ )|.X.. |
|00006130| 6e 65 77 62 69 74 73 5b | 72 6f 77 20 2a 20 6e 20 |newbits[|row * n |
|00006140| 2b 20 73 75 62 72 6f 77 | 5d 5b 63 6f 6c 20 2a 20 |+ subrow|][col * |
|00006150| 6e 20 2b 20 73 75 62 63 | 6f 6c 5d 20 3d 0a 58 09 |n + subc|ol] =.X.|
|00006160| 09 09 62 69 74 73 5b 72 | 6f 77 5d 5b 63 6f 6c 5d |..bits[r|ow][col]|
|00006170| 3b 0a 58 0a 58 20 20 20 | 20 70 62 6d 5f 77 72 69 |;.X.X | pbm_wri|
|00006180| 74 65 70 62 6d 28 20 73 | 74 64 6f 75 74 2c 20 6e |tepbm( s|tdout, n|
|00006190| 65 77 62 69 74 73 2c 20 | 63 6f 6c 73 20 2a 20 6e |ewbits, |cols * n|
|000061a0| 2c 20 72 6f 77 73 20 2a | 20 6e 20 29 3b 0a 58 0a |, rows *| n );.X.|
|000061b0| 58 20 20 20 20 65 78 69 | 74 28 20 30 20 29 3b 0a |X exi|t( 0 );.|
|000061c0| 58 20 20 20 20 7d 0a 53 | 48 41 52 5f 45 4f 46 0a |X }.S|HAR_EOF.|
|000061d0| 69 66 20 74 65 73 74 20 | 31 39 35 30 20 2d 6e 65 |if test |1950 -ne|
|000061e0| 20 22 60 77 63 20 2d 63 | 20 3c 20 27 70 62 6d 65 | "`wc -c| < 'pbme|
|000061f0| 6e 6c 61 72 67 65 2e 63 | 27 60 22 0a 74 68 65 6e |nlarge.c|'`".then|
|00006200| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 65 72 72 |..echo s|har: err|
|00006210| 6f 72 20 74 72 61 6e 73 | 6d 69 74 74 69 6e 67 20 |or trans|mitting |
|00006220| 22 27 70 62 6d 65 6e 6c | 61 72 67 65 2e 63 27 22 |"'pbmenl|arge.c'"|
|00006230| 20 27 28 73 68 6f 75 6c | 64 20 68 61 76 65 20 62 | '(shoul|d have b|
|00006240| 65 65 6e 20 31 39 35 30 | 20 63 68 61 72 61 63 74 |een 1950| charact|
|00006250| 65 72 73 29 27 0a 66 69 | 0a 66 69 20 23 20 65 6e |ers)'.fi|.fi # en|
|00006260| 64 20 6f 66 20 6f 76 65 | 72 77 72 69 74 69 6e 67 |d of ove|rwriting|
|00006270| 20 63 68 65 63 6b 0a 65 | 63 68 6f 20 73 68 61 72 | check.e|cho shar|
|00006280| 3a 20 65 78 74 72 61 63 | 74 69 6e 67 20 22 27 70 |: extrac|ting "'p|
|00006290| 62 6d 65 6e 6c 61 72 67 | 65 2e 6d 61 6e 27 22 20 |bmenlarg|e.man'" |
|000062a0| 27 28 31 30 34 34 20 63 | 68 61 72 61 63 74 65 72 |'(1044 c|haracter|
|000062b0| 73 29 27 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |s)'.if t|est -f '|
|000062c0| 70 62 6d 65 6e 6c 61 72 | 67 65 2e 6d 61 6e 27 0a |pbmenlar|ge.man'.|
|000062d0| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|000062e0| 20 77 69 6c 6c 20 6e 6f | 74 20 6f 76 65 72 2d 77 | will no|t over-w|
|000062f0| 72 69 74 65 20 65 78 69 | 73 74 69 6e 67 20 66 69 |rite exi|sting fi|
|00006300| 6c 65 20 22 27 70 62 6d | 65 6e 6c 61 72 67 65 2e |le "'pbm|enlarge.|
|00006310| 6d 61 6e 27 22 0a 65 6c | 73 65 0a 73 65 64 20 27 |man'".el|se.sed '|
|00006320| 73 2f 5e 58 2f 2f 27 20 | 3c 3c 20 5c 53 48 41 52 |s/^X//' |<< \SHAR|
|00006330| 5f 45 4f 46 20 3e 20 27 | 70 62 6d 65 6e 6c 61 72 |_EOF > '|pbmenlar|
|00006340| 67 65 2e 6d 61 6e 27 0a | 58 2e 54 48 20 70 62 6d |ge.man'.|X.TH pbm|
|00006350| 65 6e 6c 61 72 67 65 20 | 31 20 22 32 39 20 46 65 |enlarge |1 "29 Fe|
|00006360| 62 72 75 61 72 79 20 31 | 39 38 38 22 0a 58 2e 53 |bruary 1|988".X.S|
|00006370| 48 20 4e 41 4d 45 0a 58 | 70 62 6d 65 6e 6c 61 72 |H NAME.X|pbmenlar|
|00006380| 67 65 20 2d 20 72 65 61 | 64 20 61 20 70 6f 72 74 |ge - rea|d a port|
|00006390| 61 62 6c 65 20 62 69 74 | 6d 61 70 20 61 6e 64 20 |able bit|map and |
|000063a0| 65 6e 6c 61 72 67 65 20 | 69 74 20 4e 20 74 69 6d |enlarge |it N tim|
|000063b0| 65 73 0a 58 2e 53 48 20 | 53 59 4e 4f 50 53 49 53 |es.X.SH |SYNOPSIS|
|000063c0| 0a 58 70 62 6d 65 6e 6c | 61 72 67 65 20 5b 2d 4e |.Xpbmenl|arge [-N|
|000063d0| 5d 20 5b 70 62 6d 66 69 | 6c 65 5d 0a 58 2e 53 48 |] [pbmfi|le].X.SH|
|000063e0| 20 44 45 53 43 52 49 50 | 54 49 4f 4e 0a 58 52 65 | DESCRIP|TION.XRe|
|000063f0| 61 64 73 20 61 20 70 6f | 72 74 61 62 6c 65 20 62 |ads a po|rtable b|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.