%!PS-Adobe-2.0 %%Version: 0.1 %%DocumentFonts: (atend) %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 12 /Times-Bold f (Libnetbpm) 2144 1230 w (Utility Functions) 2749 1230 w 10 /Times-Bold f (Libnetpbm Utility Functions) 720 1920 w 10 /Times-Roman f (Updated: 27 August 2006) 720 2076 w (Table Of Contents) 720 2232 w 10 /Times-Bold f (NAME) 720 2472 w 10 /Times-Roman f (libpm \255 netpbm utility functions) 720 2628 w 10 /Times-Bold f (DESCRIPTION) 720 2868 w 10 /Times-Roman f (These library functions are part of Netpbm.) 720 3060 w (This page documents functions in the Netpbm subroutine library that are not directly related to image data.) 720 3216 w (For introductory and general information using) 720 3372 w 10 /Times-Bold f (libnetpbm) 2629 3372 w 10 /Times-Roman f (, see Libnetpbm User's Guide.) 3069 3372 w (The) 720 3528 w (most) 906 3528 w (commonly) 1132 3528 w (used) 1591 3528 w 10 /Times-Bold f (libnetpbm) 1805 3528 w 10 /Times-Roman f (functions) 2276 3528 w (are) 2679 3528 w (those) 2831 3528 w (that) 3073 3528 w (read) 3255 3528 w (and) 3458 3528 w (write) 3634 3528 w (and) 3871 3528 w (process) 4047 3528 w (Netpbm) 4378 3528 w (images.) 4732 3528 w (Those are documented in Libnetpbm Netpbm Image Processing Manual) 720 3648 w (To use these services, #include) 720 3804 w 10 /Times-Bold f (pam.h) 1984 3804 w 10 /Times-Roman f (.) 2254 3804 w 10 /Times-Bold f (Functions) 720 4044 w (Initialization) 720 4320 w (Overview) 720 4596 w (void pm) 720 4788 w 10 /S f (_) 1068 4788 w 10 /Times-Bold f (init\( int *) 1118 4788 w 10 /Times-Italic f (argcP) 1513 4788 w 10 /Times-Bold f (, char *) 1757 4788 w 10 /Times-Italic f (argv) 2076 4788 w 10 /Times-Bold f ([] \);) 2259 4788 w (Description) 720 5028 w 10 /Times-Roman f (All) 720 5220 w (Netpbm) 908 5220 w (programs) 1290 5220 w (must) 1727 5220 w (call) 1982 5220 w 10 /Times-Bold f (pm) 2186 5220 w 10 /S f (_) 2325 5220 w 10 /Times-Bold f (init\(\)) 2375 5220 w 10 /Times-Roman f (just) 2646 5220 w (after) 2851 5220 w (startup,) 3093 5220 w (before) 3450 5220 w (they) 3764 5220 w (process) 3996 5220 w (their) 4355 5220 w (arguments.) 4599 5220 w 10 /Times-Bold f (pm) 720 5340 w 10 /S f (_) 859 5340 w 10 /Times-Bold f (init\(\)) 909 5340 w 10 /Times-Roman f (,) 1120 5340 w (among) 1180 5340 w (other) 1487 5340 w (things,) 1727 5340 w (processes) 2032 5340 w (Netpbm) 2449 5340 w (universal) 2806 5340 w (arguments) 3207 5340 w (and) 3658 5340 w (removes) 3837 5340 w (them) 4210 5340 w (from) 4445 5340 w (the) 4674 5340 w (argu\255) 4830 5340 w (ment list.) 720 5460 w (A program that isn't a Netpbm program, but just uses) 720 5616 w 10 /Times-Bold f (libnetpbm) 2882 5616 w 10 /Times-Roman f (services, need not invoke) 3347 5616 w 10 /Times-Bold f (pm) 4381 5616 w 10 /S f (_) 4520 5616 w 10 /Times-Bold f (init) 4570 5616 w 10 /Times-Roman f (.) 4715 5616 w 10 /Times-Bold f (File Or Image Stream Access) 720 5856 w (Overview) 720 6132 w (FILE *pm) 720 6324 w 10 /S f (_) 1168 6324 w 10 /Times-Bold f (openr\( char *) 1218 6324 w 10 /Times-Italic f (name) 1820 6324 w 10 /Times-Bold f (\)) 2036 6324 w (FILE *pm) 720 6480 w 10 /S f (_) 1168 6480 w 10 /Times-Bold f (openw\( char *) 1218 6480 w 10 /Times-Italic f (name) 1848 6480 w 10 /Times-Bold f (\);) 2089 6480 w (FILE *pm) 720 6636 w 10 /S f (_) 1168 6636 w 10 /Times-Bold f (openr) 1218 6636 w 10 /S f (_) 1468 6636 w 10 /Times-Bold f (seekable\( const char *) 1518 6636 w 10 /Times-Italic f (name) 2478 6636 w 10 /Times-Bold f (\);) 2719 6636 w (FILE *pm) 720 6792 w 10 /S f (_) 1168 6792 w 10 /Times-Bold f (close\( FILE *) 1218 6792 w 10 /Times-Italic f (fp) 1815 6792 w 10 /Times-Bold f (\);) 1918 6792 w (void pm) 720 6948 w 10 /S f (_) 1068 6948 w 10 /Times-Bold f (tell2\( FILE *) 1118 6948 w 10 /Times-Italic f (fileP) 1718 6948 w 10 /Times-Bold f (, pm) 1907 6948 w 10 /S f (_) 2096 6948 w 10 /Times-Bold f (filepos *) 2146 6948 w 10 /Times-Italic f (fileposP) 2524 6948 w 10 /Times-Bold f (, unsigned int) 2852 6948 w 10 /Times-Italic f (fileposSize) 3454 6948 w 10 /Times-Bold f (\);) 3907 6948 w (unsigned int pm) 720 7104 w 10 /S f (_) 1411 7104 w 10 /Times-Bold f (tell\( FILE *) 1461 7104 w 10 /Times-Italic f (fileP) 1986 7104 w 10 /Times-Bold f (\);) 2200 7104 w (void pm) 720 7260 w 10 /S f (_) 1068 7260 w 10 /Times-Bold f (seek2\( FILE *) 1118 7260 w 10 /Times-Italic f (fileP) 1768 7260 w 10 /Times-Bold f (, const pm) 1957 7260 w 10 /S f (_) 2393 7260 w 10 /Times-Bold f (filepos *) 2443 7260 w 10 /Times-Italic f (fileposP) 2821 7260 w 10 /Times-Bold f (, unsigned int) 3149 7260 w 10 /Times-Italic f (fileposSize) 3751 7260 w 10 /Times-Bold f (\);) 4204 7260 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /Times-Roman f (\255 2 \255) 2797 480 w 10 /Times-Bold f (void pm) 720 840 w 10 /S f (_) 1068 840 w 10 /Times-Bold f (seek\( FILE *) 1118 840 w 10 /Times-Italic f (fileP) 1718 840 w 10 /Times-Bold f (, unsigned long) 1907 840 w 10 /Times-Italic f (filepos) 2576 840 w 10 /Times-Bold f (\);) 2868 840 w (char *pm) 720 996 w 10 /S f (_) 1128 996 w 10 /Times-Bold f (read) 1178 996 w 10 /S f (_) 1372 996 w 10 /Times-Bold f (unknown) 1422 996 w 10 /S f (_) 1824 996 w 10 /Times-Bold f (size\( FILE *) 1874 996 w 10 /Times-Italic f (fp) 2421 996 w 10 /Times-Bold f (, long *) 2499 996 w 10 /Times-Italic f (nread) 2833 996 w 10 /Times-Bold f (\);) 3091 996 w (Description) 720 1236 w 10 /Times-Roman f (An image stream is just a file stream \(represented in the standard C library as type) 720 1428 w 10 /Times-Bold f (FILE *) 4025 1428 w 10 /Times-Roman f (\).) 4334 1428 w (These) 720 1584 w (routines) 987 1584 w (work) 1338 1584 w (on) 1572 1584 w (files) 1701 1584 w (>) 1902 1584 w (2) 1987 1584 w (GiB) 2066 1584 w (if) 2262 1584 w (the) 2352 1584 w (underlying) 2503 1584 w (system) 2965 1584 w (does,) 3272 1584 w (using) 3509 1584 w (the) 3755 1584 w (standard) 3907 1584 w (large) 4275 1584 w (file) 4504 1584 w (interface.) 4667 1584 w (Before) 720 1704 w (Netpbm) 1019 1704 w (10.15) 1369 1704 w (\(April) 1622 1704 w (2003\),) 1894 1704 w (though,) 2180 1704 w (they) 2510 1704 w (would) 2709 1704 w (fail) 2986 1704 w (to) 3146 1704 w (open) 3251 1704 w (any) 3472 1704 w (file) 3643 1704 w (that) 3803 1704 w (large) 3980 1704 w (or) 4206 1704 w (process) 4316 1704 w (any) 4642 1704 w (offset) 4813 1704 w (in a file that could not be represented in 32 bits.) 720 1824 w 10 /Times-Bold f (pm) 720 1980 w 10 /S f (_) 859 1980 w 10 /Times-Bold f (openr\(\)) 909 1980 w 10 /Times-Roman f (opens) 1256 1980 w (the) 1520 1980 w (given) 1673 1980 w (file) 1926 1980 w (for) 2090 1980 w (reading,) 2237 1980 w (with) 2592 1980 w (appropriate) 2801 1980 w (error) 3286 1980 w (checking.) 3510 1980 w (A) 3951 1980 w (filename) 4054 1980 w (of) 4435 1980 w 10 /Times-Bold f (\255) 4550 1980 w 10 /Times-Roman f (is) 4615 1980 w (taken) 4714 1980 w (to) 4962 1980 w (mean) 720 2100 w (Standard) 983 2100 w (Input.) 1385 2100 w 10 /Times-Bold f (pm) 1693 2100 w 10 /S f (_) 1832 2100 w 10 /Times-Bold f (openw\(\)) 1882 2100 w 10 /Times-Roman f (opens) 2273 2100 w (the) 2553 2100 w (given) 2722 2100 w (file) 2991 2100 w (for) 3170 2100 w (writing,) 3332 2100 w (with) 3692 2100 w (appropriate) 3916 2100 w (error) 4416 2100 w (checking.) 4655 2100 w 10 /Times-Bold f (pm) 720 2220 w 10 /S f (_) 859 2220 w 10 /Times-Bold f (close\(\)) 909 2220 w 10 /Times-Roman f (closes the file descriptor, with appropriate error checking.) 1205 2220 w 10 /Times-Bold f (pm) 720 2376 w 10 /S f (_) 859 2376 w 10 /Times-Bold f (openr) 909 2376 w 10 /S f (_) 1159 2376 w 10 /Times-Bold f (seekable\(\)) 1209 2376 w 10 /Times-Roman f (appears) 1663 2376 w (to) 1994 2376 w (open) 2099 2376 w (the) 2320 2376 w (file) 2469 2376 w (just) 2629 2376 w (like) 2801 2376 w 10 /Times-Bold f (pm) 2978 2376 w 10 /S f (_) 3117 2376 w 10 /Times-Bold f (openr\(\)) 3167 2376 w 10 /Times-Roman f (,) 3483 2376 w (but) 3535 2376 w (the) 3690 2376 w (file) 3839 2376 w (thus) 3999 2376 w (opened) 4193 2376 w (is) 4508 2376 w (guaranteed) 4603 2376 w (to) 720 2496 w (be) 831 2496 w (seekable) 958 2496 w (\(you) 1334 2496 w (can) 1550 2496 w (use) 1721 2496 w (ftell\(\)) 1886 2496 w (and) 2145 2496 w (fseek\(\)) 2321 2496 w (on) 2629 2496 w (it\).) 2761 2496 w 10 /Times-Bold f (pm) 2932 2496 w 10 /S f (_) 3071 2496 w 10 /Times-Bold f (openr) 3121 2496 w 10 /S f (_) 3371 2496 w 10 /Times-Bold f (seekable\(\)) 3421 2496 w 10 /Times-Roman f (pulls) 3880 2496 w (this) 4107 2496 w (off) 4284 2496 w (by) 4432 2496 w (copying) 4564 2496 w (the) 4918 2496 w (entire) 720 2616 w (file) 980 2616 w (to) 1146 2616 w (a) 1257 2616 w (temporary) 1334 2616 w (file) 1777 2616 w (and) 1943 2616 w (giving) 2120 2616 w (you) 2409 2616 w (the) 2592 2616 w (handle) 2747 2616 w (of) 3046 2616 w (the) 3162 2616 w (temporary) 3317 2616 w (file,) 3761 2616 w (if) 3953 2616 w (it) 4048 2616 w (has) 4138 2616 w (to.) 4305 2616 w (If) 4467 2616 w (the) 4567 2616 w (file) 4723 2616 w (you) 4890 2616 w (name) 720 2736 w (is) 992 2736 w (a) 1115 2736 w (regular) 1215 2736 w (file,) 1553 2736 w (it's) 1767 2736 w (already) 1951 2736 w (seekable) 2300 2736 w (so) 2699 2736 w 10 /Times-Bold f (pm) 2844 2736 w 10 /S f (_) 2983 2736 w 10 /Times-Bold f (openr) 3033 2736 w 10 /S f (_) 3283 2736 w 10 /Times-Bold f (seekable\(\)) 3333 2736 w 10 /Times-Roman f (just) 3816 2736 w (does) 4017 2736 w (the) 4256 2736 w (same) 4434 2736 w (thing) 4695 2736 w (as) 4957 2736 w 10 /Times-Bold f (pm) 720 2856 w 10 /S f (_) 859 2856 w 10 /Times-Bold f (openr\(\)) 909 2856 w 10 /Times-Roman f (.) 1225 2856 w (But) 1303 2856 w (if) 1476 2856 w (it) 1565 2856 w (is,) 1649 2856 w (say,) 1769 2856 w (a) 1955 2856 w (pipe,) 2027 2856 w (it) 2253 2856 w (isn't) 2338 2856 w (seekable.) 2545 2856 w (So) 2967 2856 w 10 /Times-Bold f (pm) 3102 2856 w 10 /S f (_) 3241 2856 w 10 /Times-Bold f (openr) 3291 2856 w 10 /S f (_) 3541 2856 w 10 /Times-Bold f (seekable\(\)) 3591 2856 w 10 /Times-Roman f (reads) 4047 2856 w (the) 4286 2856 w (pipe) 4437 2856 w (until) 4638 2856 w (EOF) 4851 2856 w (into) 720 2976 w (a) 905 2976 w (temporary) 978 2976 w (file,) 1417 2976 w (then) 1604 2976 w (opens) 1805 2976 w (that) 2066 2976 w (temporary) 2244 2976 w (file) 2682 2976 w (and) 2843 2976 w (returns) 3015 2976 w (the) 3320 2976 w (handle) 3470 2976 w (of) 3764 2976 w (the) 3875 2976 w (temporary) 4025 2976 w (file.) 4463 2976 w (The) 4674 2976 w (tem\255) 4857 2976 w (porary file is seekable.) 720 3096 w (The) 745 3252 w (file) 930 3252 w 10 /Times-Bold f (pm) 1093 3252 w 10 /S f (_) 1232 3252 w 10 /Times-Bold f (openr) 1282 3252 w 10 /S f (_) 1532 3252 w 10 /Times-Bold f (seekable\(\)) 1582 3252 w 10 /Times-Roman f (creates) 2039 3252 w (is) 2345 3252 w (one) 2442 3252 w (that) 2616 3252 w (the) 2797 3252 w (operating) 2950 3252 w (system) 3358 3252 w (recognizes) 3667 3252 w (as) 4124 3252 w (temporary,) 4238 3252 w (so) 4704 3252 w (when) 4824 3252 w (you close the file, by any means, it gets deleted.) 720 3372 w (You) 720 3528 w (need) 922 3528 w (a) 1140 3528 w (seekable) 1214 3528 w (file) 1587 3528 w (if) 1750 3528 w (you) 1841 3528 w (intend) 2021 3528 w (to) 2301 3528 w (make) 2410 3528 w (multiple) 2657 3528 w (passes) 3022 3528 w (through) 3308 3528 w (the) 3650 3528 w (file.) 3803 3528 w (The) 4017 3528 w (only) 4203 3528 w (alternative) 4412 3528 w (is) 4864 3528 w (to) 4962 3528 w (read) 720 3648 w (the) 923 3648 w (entire) 1077 3648 w (image) 1336 3648 w (into) 1612 3648 w (memory) 1800 3648 w (and) 2165 3648 w (work) 2341 3648 w (from) 2577 3648 w (that) 2802 3648 w (copy.) 2983 3648 w (That) 3258 3648 w (may) 3472 3648 w (use) 3675 3648 w (too) 3839 3648 w (much) 3998 3648 w (memory.) 4251 3648 w (Note) 4665 3648 w (that) 4890 3648 w (the) 720 3768 w (image) 874 3768 w (takes) 1150 3768 w (less) 1387 3768 w (space) 1569 3768 w (in) 1822 3768 w (the) 1932 3768 w (file) 2086 3768 w (cache) 2251 3768 w (than) 2509 3768 w (in) 2714 3768 w (a) 2825 3768 w (buffer) 2902 3768 w (in) 3178 3768 w (memory.) 3289 3768 w (As) 3705 3768 w (much) 3849 3768 w (as) 4104 3768 w (96) 4220 3768 w (times) 4353 3768 w (less) 4603 3768 w (space!) 4786 3768 w (Each) 720 3888 w (sample) 948 3888 w (is) 1260 3888 w (an) 1356 3888 w (integer) 1479 3888 w (in) 1784 3888 w (the) 1890 3888 w (buffer,) 2040 3888 w (which) 2336 3888 w (is) 2608 3888 w (usually) 2703 3888 w (96) 3020 3888 w (bits.) 3148 3888 w (In) 3371 3888 w (the) 3482 3888 w (file,) 3632 3888 w (a) 3818 3888 w (sample) 3890 3888 w (may) 4201 3888 w (be) 4401 3888 w (as) 4523 3888 w (small) 4634 3888 w (as) 4879 3888 w (1) 4990 3888 w (bit and rarely more than 8 bits.) 720 4008 w 10 /Times-Bold f (pm) 720 4164 w 10 /S f (_) 859 4164 w 10 /Times-Bold f (tell2\(\)) 909 4164 w 10 /Times-Roman f (returns) 1185 4164 w (a) 1489 4164 w (handle) 1560 4164 w (for) 1853 4164 w (the) 1997 4164 w (current) 2147 4164 w (position) 2457 4164 w (of) 2808 4164 w (the) 2919 4164 w (image) 3069 4164 w (stream) 3341 4164 w (\(file\),) 3635 4164 w (whether) 3887 4164 w (it) 4236 4164 w (be) 4320 4164 w (the) 4442 4164 w (header) 4592 4164 w (or) 4885 4164 w (a) 4996 4164 w (row) 720 4284 w (of) 906 4284 w (the) 1020 4284 w (raster.) 1173 4284 w (Use) 1475 4284 w (the) 1661 4284 w (handle) 1814 4284 w (as) 2111 4284 w (an) 2225 4284 w (argument) 2350 4284 w (to) 2757 4284 w 10 /Times-Bold f (pm) 2865 4284 w 10 /S f (_) 3004 4284 w 10 /Times-Bold f (seek2\(\)) 3054 4284 w 10 /Times-Roman f (to) 3383 4284 w (reposition) 3491 4284 w (the) 3921 4284 w (file) 4073 4284 w (there) 4236 4284 w (later.) 4465 4284 w (The) 4722 4284 w (file) 4907 4284 w (must be seekable \(which you can ensure by opening it with) 720 4404 w 10 /Times-Bold f (pm) 3108 4404 w 10 /S f (_) 3247 4404 w 10 /Times-Bold f (openr) 3297 4404 w 10 /S f (_) 3547 4404 w 10 /Times-Bold f (seekable\(\)) 3597 4404 w 10 /Times-Roman f (\) or this may fail.) 4024 4404 w (The) 720 4560 w (file) 909 4560 w (position) 1076 4560 w (handle) 1433 4560 w (is) 1733 4560 w (of) 1834 4560 w (type) 1951 4560 w 10 /Times-Bold f (pm) 2157 4560 w 10 /S f (_) 2296 4560 w 10 /Times-Bold f (filepos) 2346 4560 w 10 /Times-Roman f (,) 2624 4560 w (which) 2684 4560 w (is) 2963 4560 w (intended) 3065 4560 w (to) 3444 4560 w (be) 3557 4560 w (opaque,) 3686 4560 w (i.e.) 4034 4560 w (used) 4191 4560 w (only) 4409 4560 w (with) 4622 4560 w (these) 4835 4560 w (two) 720 4680 w (functions.) 903 4680 w (In) 1358 4680 w (practice,) 1474 4680 w (it) 1847 4680 w (is) 1936 4680 w (a) 2035 4680 w (file) 2111 4680 w (offset) 2276 4680 w (and) 2535 4680 w (is) 2711 4680 w (32) 2810 4680 w (bits) 2942 4680 w (or) 3119 4680 w (64) 3234 4680 w (bits) 3366 4680 w (depending) 3543 4680 w (upon) 3991 4680 w (the) 4223 4680 w (capability) 4377 4680 w (of) 4803 4680 w (the) 4918 4680 w (underlying) 720 4800 w (system.) 1184 4800 w (For) 1543 4800 w (maximum) 1713 4800 w (backward) 2150 4800 w (and) 2568 4800 w (forward) 2743 4800 w (compatibility,) 3089 4800 w (the) 3679 4800 w (functions) 3832 4800 w (that) 4235 4800 w (take) 4416 4800 w (or) 4613 4800 w (return) 4727 4800 w (a) 4996 4800 w 10 /Times-Bold f (pm) 720 4920 w 10 /S f (_) 859 4920 w 10 /Times-Bold f (filepos) 909 4920 w 10 /Times-Roman f (have) 1255 4920 w (a) 1511 4920 w 10 /Times-Italic f (fileposSize) 1623 4920 w 10 /Times-Roman f (argument) 2119 4920 w (for) 2564 4920 w (the) 2748 4920 w (size) 2938 4920 w (of) 3161 4920 w (the) 3312 4920 w (data) 3502 4920 w (structure.) 3736 4920 w (In) 4203 4920 w (C,) 4353 4920 w (simply) 4512 4920 w (code) 4852 4920 w 10 /Times-Bold f (sizeof\(pm) 720 5040 w 10 /S f (_) 1130 5040 w 10 /Times-Bold f (filepos\)) 1180 5040 w 10 /Times-Roman f (for that.) 1516 5040 w 10 /Times-Bold f (pm) 720 5196 w 10 /S f (_) 859 5196 w 10 /Times-Bold f (seek\(\)) 909 5196 w 10 /Times-Roman f (and) 1190 5196 w 10 /Times-Bold f (pm) 1366 5196 w 10 /S f (_) 1505 5196 w 10 /Times-Bold f (tell) 1555 5196 w 10 /Times-Roman f (are) 1720 5196 w (for) 1873 5196 w (backward) 2021 5196 w (compatibility) 2440 5196 w (only.) 3006 5196 w (Do) 3266 5196 w (not) 3420 5196 w (use) 3580 5196 w (them) 3745 5196 w (in) 3978 5196 w (new) 4089 5196 w (code.) 4288 5196 w (These) 4559 5196 w (func\255) 4830 5196 w (tions are not capable of handle positions in files whose byte offset cannot be represented in 32 bits.) 720 5316 w 10 /Times-Bold f (pm) 720 5472 w 10 /S f (_) 859 5472 w 10 /Times-Bold f (tell2\(\)) 909 5472 w 10 /Times-Roman f (and) 1183 5472 w 10 /Times-Bold f (pm) 1352 5472 w 10 /S f (_) 1491 5472 w 10 /Times-Bold f (seek2\(\)) 1541 5472 w 10 /Times-Roman f (replaced) 1865 5472 w 10 /Times-Bold f (pm) 2227 5472 w 10 /S f (_) 2366 5472 w 10 /Times-Bold f (tell\(\)) 2416 5472 w 10 /Times-Roman f (and) 2640 5472 w 10 /Times-Bold f (pm) 2809 5472 w 10 /S f (_) 2948 5472 w 10 /Times-Bold f (seek\(\)) 2998 5472 w 10 /Times-Roman f (in Netpbm 10.15 \(April 2003\).) 3272 5472 w 10 /Times-Bold f (pm) 720 5628 w 10 /S f (_) 859 5628 w 10 /Times-Bold f (read) 909 5628 w 10 /S f (_) 1103 5628 w 10 /Times-Bold f (unknown) 1153 5628 w 10 /S f (_) 1555 5628 w 10 /Times-Bold f (size\(\)) 1605 5628 w 10 /Times-Roman f (reads) 1863 5628 w (an) 2110 5628 w (entire) 2241 5628 w (file) 2505 5628 w (or) 2675 5628 w (input) 2795 5628 w (stream) 3038 5628 w (of) 3341 5628 w (unknown) 3461 5628 w (size) 3870 5628 w (to) 4063 5628 w (a) 4179 5628 w (buffer.) 4261 5628 w (It) 4592 5628 w (allocates) 4691 5628 w (more memory as needed.) 720 5748 w (The calling routine has to free the allocated buffer with) 1773 5748 w 10 /Times-Bold f (free\(\)) 4001 5748 w 10 /Times-Roman f (.) 4232 5748 w 10 /Times-Bold f (pm) 720 5904 w 10 /S f (_) 859 5904 w 10 /Times-Bold f (read) 909 5904 w 10 /S f (_) 1103 5904 w 10 /Times-Bold f (unknown) 1153 5904 w 10 /S f (_) 1555 5904 w 10 /Times-Bold f (size\(\)) 1605 5904 w 10 /Times-Roman f (returns) 1854 5904 w (a) 2159 5904 w (pointer) 2231 5904 w (to) 2542 5904 w (the) 2648 5904 w (allocated) 2798 5904 w (buffer.) 3186 5904 w (The) 3507 5904 w 10 /Times-Bold f (nread) 3690 5904 w 10 /Times-Roman f (argument) 3968 5904 w (returns) 4373 5904 w (the) 4678 5904 w (num\255) 4829 5904 w (ber of bytes read.) 720 6024 w 10 /Times-Bold f (Endian I/O) 720 6264 w (Entry Points) 720 6540 w (void pm) 720 6732 w 10 /S f (_) 1068 6732 w 10 /Times-Bold f (readchar\( FILE *) 1118 6732 w 10 /Times-Italic f (in) 1898 6732 w 10 /Times-Bold f (, char *) 1976 6732 w 10 /Times-Italic f (sP) 2320 6732 w 10 /Times-Bold f (\);) 2445 6732 w (void pm) 720 6888 w 10 /S f (_) 1068 6888 w 10 /Times-Bold f (writechar\( FILE *) 1118 6888 w 10 /Times-Italic f (out) 1925 6888 w 10 /Times-Bold f (, char) 2053 6888 w 10 /Times-Italic f (s) 2322 6888 w 10 /Times-Bold f (\);) 2386 6888 w (int pm) 720 7044 w 10 /S f (_) 1001 7044 w 10 /Times-Bold f (readbigshort\( FILE *) 1051 7044 w 10 /Times-Italic f (in) 1993 7044 w 10 /Times-Bold f (, short *) 2071 7044 w 10 /Times-Italic f (sP) 2443 7044 w 10 /Times-Bold f (\);) 2568 7044 w (int pm) 720 7200 w 10 /S f (_) 1001 7200 w 10 /Times-Bold f (writebigshort\( FILE *) 1051 7200 w 10 /Times-Italic f (out) 2020 7200 w 10 /Times-Bold f (, short) 2148 7200 w 10 /Times-Italic f (s) 2445 7200 w 10 /Times-Bold f (\);) 2509 7200 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 /Times-Roman f (\255 3 \255) 2797 480 w 10 /Times-Bold f (int pm) 720 840 w 10 /S f (_) 1001 840 w 10 /Times-Bold f (readbiglong\( FILE *) 1051 840 w 10 /Times-Italic f (in) 1955 840 w 10 /Times-Bold f (, long *) 2033 840 w 10 /Times-Italic f (lP) 2367 840 w 10 /Times-Bold f (\);) 2481 840 w (int pm) 720 996 w 10 /S f (_) 1001 996 w 10 /Times-Bold f (writebiglong\( FILE *) 1051 996 w 10 /Times-Italic f (out) 1982 996 w 10 /Times-Bold f (, long) 2110 996 w 10 /Times-Italic f (l) 2369 996 w 10 /Times-Bold f (\);) 2422 996 w (int pm) 720 1152 w 10 /S f (_) 1001 1152 w 10 /Times-Bold f (readlittleshort\( FILE *) 1051 1152 w 10 /Times-Italic f (in) 2053 1152 w 10 /Times-Bold f (, short *) 2131 1152 w 10 /Times-Italic f (sP) 2503 1152 w 10 /Times-Bold f (\);) 2628 1152 w (int pm) 720 1308 w 10 /S f (_) 1001 1308 w 10 /Times-Bold f (writelittleshort\( FILE *) 1051 1308 w 10 /Times-Italic f (out) 2080 1308 w 10 /Times-Bold f (, short) 2208 1308 w 10 /Times-Italic f (s) 2505 1308 w 10 /Times-Bold f (\);) 2569 1308 w (int pm) 720 1464 w 10 /S f (_) 1001 1464 w 10 /Times-Bold f (readlittlelong\( FILE *) 1051 1464 w 10 /Times-Italic f (in) 2015 1464 w 10 /Times-Bold f (, long *) 2093 1464 w 10 /Times-Italic f (lP) 2427 1464 w 10 /Times-Bold f (\);) 2541 1464 w (int pm) 720 1620 w 10 /S f (_) 1001 1620 w 10 /Times-Bold f (writelittlelong\( FILE *) 1051 1620 w 10 /Times-Italic f (out) 2042 1620 w 10 /Times-Bold f (, long) 2170 1620 w 10 /Times-Italic f (l) 2429 1620 w 10 /Times-Bold f (\);) 2482 1620 w (void pm) 720 1776 w 10 /S f (_) 1068 1776 w 10 /Times-Bold f (readcharu\( FILE *) 1118 1776 w 10 /Times-Italic f (in) 1954 1776 w 10 /Times-Bold f (, char *) 2032 1776 w 10 /Times-Italic f (sP) 2376 1776 w 10 /Times-Bold f (\);) 2501 1776 w (void pm) 720 1932 w 10 /S f (_) 1068 1932 w 10 /Times-Bold f (writecharu\( FILE *) 1118 1932 w 10 /Times-Italic f (out) 1981 1932 w 10 /Times-Bold f (, char) 2109 1932 w 10 /Times-Italic f (s) 2378 1932 w 10 /Times-Bold f (\);) 2442 1932 w (int pm) 720 2088 w 10 /S f (_) 1001 2088 w 10 /Times-Bold f (readbigshortu\( FILE *) 1051 2088 w 10 /Times-Italic f (in) 2049 2088 w 10 /Times-Bold f (, short *) 2127 2088 w 10 /Times-Italic f (sP) 2499 2088 w 10 /Times-Bold f (\);) 2624 2088 w (int pm) 720 2244 w 10 /S f (_) 1001 2244 w 10 /Times-Bold f (writebigshortu\( FILE *) 1051 2244 w 10 /Times-Italic f (out) 2076 2244 w 10 /Times-Bold f (, short) 2204 2244 w 10 /Times-Italic f (s) 2501 2244 w 10 /Times-Bold f (\);) 2565 2244 w (int pm) 720 2400 w 10 /S f (_) 1001 2400 w 10 /Times-Bold f (readbiglongu\( FILE *) 1051 2400 w 10 /Times-Italic f (in) 2011 2400 w 10 /Times-Bold f (, long *) 2089 2400 w 10 /Times-Italic f (lP) 2423 2400 w 10 /Times-Bold f (\);) 2537 2400 w (int pm) 720 2556 w 10 /S f (_) 1001 2556 w 10 /Times-Bold f (writebiglongu\( FILE *) 1051 2556 w 10 /Times-Italic f (out) 2038 2556 w 10 /Times-Bold f (, long) 2166 2556 w 10 /Times-Italic f (l) 2425 2556 w 10 /Times-Bold f (\);) 2478 2556 w (int pm) 720 2712 w 10 /S f (_) 1001 2712 w 10 /Times-Bold f (readlittleshortu\( FILE *) 1051 2712 w 10 /Times-Italic f (in) 2109 2712 w 10 /Times-Bold f (, short *) 2187 2712 w 10 /Times-Italic f (sP) 2559 2712 w 10 /Times-Bold f (\);) 2684 2712 w (int pm) 720 2868 w 10 /S f (_) 1001 2868 w 10 /Times-Bold f (writelittleshortu\( FILE *) 1051 2868 w 10 /Times-Italic f (out) 2136 2868 w 10 /Times-Bold f (, short) 2264 2868 w 10 /Times-Italic f (s) 2561 2868 w 10 /Times-Bold f (\);) 2625 2868 w (int pm) 720 3024 w 10 /S f (_) 1001 3024 w 10 /Times-Bold f (readlittlelongu\( FILE *) 1051 3024 w 10 /Times-Italic f (in) 2071 3024 w 10 /Times-Bold f (, long *) 2149 3024 w 10 /Times-Italic f (lP) 2483 3024 w 10 /Times-Bold f (\);) 2597 3024 w (int pm) 720 3180 w 10 /S f (_) 1001 3180 w 10 /Times-Bold f (writelittlelongu\( FILE *) 1051 3180 w 10 /Times-Italic f (out) 2098 3180 w 10 /Times-Bold f (, long) 2226 3180 w 10 /Times-Italic f (l) 2485 3180 w 10 /Times-Bold f (\);) 2538 3180 w (Description) 720 3420 w (pm) 720 3576 w 10 /S f (_) 859 3576 w 10 /Times-Bold f (readchar\(\)) 909 3576 w 10 /Times-Roman f (,) 1363 3576 w 10 /Times-Bold f (pm) 1507 3576 w 10 /S f (_) 1646 3576 w 10 /Times-Bold f (writechar\(\)) 1696 3576 w 10 /Times-Roman f (,) 2177 3576 w 10 /Times-Bold f (pm) 2321 3576 w 10 /S f (_) 2460 3576 w 10 /Times-Bold f (readbigshort\(\)) 2510 3576 w 10 /Times-Roman f (,) 3126 3576 w 10 /Times-Bold f (pm) 3271 3576 w 10 /S f (_) 3410 3576 w 10 /Times-Bold f (writebigshort\(\)) 3460 3576 w 10 /Times-Roman f (,) 4103 3576 w 10 /Times-Bold f (pm) 4248 3576 w 10 /S f (_) 4387 3576 w 10 /Times-Bold f (readbiglong\(\)) 4437 3576 w 10 /Times-Roman f (,) 5015 3576 w 10 /Times-Bold f (pm) 720 3696 w 10 /S f (_) 859 3696 w 10 /Times-Bold f (writebiglong\(\)) 909 3696 w 10 /Times-Roman f (,) 1514 3696 w 10 /Times-Bold f (pm) 1714 3696 w 10 /S f (_) 1853 3696 w 10 /Times-Bold f (readlittleshort\(\)) 1903 3696 w 10 /Times-Roman f (,) 2579 3696 w 10 /Times-Bold f (pm) 2779 3696 w 10 /S f (_) 2918 3696 w 10 /Times-Bold f (writelittleshort\(\)) 2968 3696 w 10 /Times-Roman f (,) 3671 3696 w 10 /Times-Bold f (pm) 3870 3696 w 10 /S f (_) 4009 3696 w 10 /Times-Bold f (readlittlelong\(\)) 4059 3696 w 10 /Times-Roman f (,) 4697 3696 w (and) 4896 3696 w 10 /Times-Bold f (pm) 720 3816 w 10 /S f (_) 859 3816 w 10 /Times-Bold f (writelittlelong\(\)) 909 3816 w 10 /Times-Roman f (are) 1601 3816 w (routines) 1749 3816 w (to) 2098 3816 w (read) 2203 3816 w (and) 2401 3816 w (write) 2572 3816 w (1\255byte,) 2804 3816 w (2\255byte,) 3112 3816 w (and) 3420 3816 w (4\255byte) 3592 3816 w (pure) 3875 3816 w (binary) 4080 3816 w (integers) 4363 3816 w (in) 4707 3816 w (either) 4813 3816 w (big\255) 720 3936 w (or) 914 3936 w (little\255endian) 1030 3936 w (byte) 1546 3936 w (order.) 1751 3936 w (Note) 2044 3936 w (that) 2270 3936 w (a) 2452 3936 w ("long) 2528 3936 w (int") 2779 3936 w (C) 2958 3936 w (type) 3057 3936 w (might) 3261 3936 w (be) 3527 3936 w (wider) 3653 3936 w (than) 3912 3936 w (4) 4116 3936 w (bytes,) 4198 3936 w (but) 4466 3936 w (the) 4626 3936 w ("long") 4780 3936 w (routines still read and write 4 bytes.) 720 4056 w 10 /Times-Bold f (pm) 720 4212 w 10 /S f (_) 859 4212 w 10 /Times-Bold f (readbiglongu\(\)) 909 4212 w 10 /Times-Roman f (,) 1543 4212 w (etc.) 1600 4212 w (\(names) 1773 4212 w (ending) 2093 4212 w (in) 2397 4212 w 10 /Times-Bold f (u) 2507 4212 w 10 /Times-Roman f (\)) 2563 4212 w (are) 2628 4212 w (the) 2781 4212 w (same) 2935 4212 w (except) 3173 4212 w (they) 3466 4212 w (work) 3671 4212 w (on) 3909 4212 w (unsigned) 4042 4212 w (versions) 4436 4212 w (of) 4802 4212 w (the) 4918 4212 w (type.) 720 4332 w (The) 720 4488 w (routines) 923 4488 w (with) 1293 4488 w (declared) 1519 4488 w (return) 1904 4488 w (values) 2190 4488 w (always) 2493 4488 w (return) 2818 4488 w (0.) 3105 4488 w (Before) 3254 4488 w (Netpbm) 3574 4488 w (10.27) 3945 4488 w (\(March) 4219 4488 w (2005\),) 4561 4488 w (they) 4868 4488 w (returned) 720 4608 w (\2551) 1086 4608 w (on) 1203 4608 w (failure,) 1337 4608 w (including) 1656 4608 w (EOF.) 2068 4608 w (Now,) 2341 4608 w (they) 2594 4608 w (issue) 2800 4608 w (an) 3034 4608 w (error) 3162 4608 w (message) 3389 4608 w (to) 3761 4608 w (Standard) 3872 4608 w (Error) 4260 4608 w (and) 4503 4608 w (abort) 4680 4608 w (the) 4918 4608 w (program if the I/O fails or encounters EOF.) 720 4728 w (The) 720 4884 w (1\255byte) 913 4884 w (routines) 1206 4884 w (were) 1566 4884 w (new) 1797 4884 w (in) 2001 4884 w (Netpbm) 2117 4884 w (10.27) 2477 4884 w (\(March) 2740 4884 w (2005\).) 3071 4884 w (The) 3393 4884 w (unsigned) 3587 4884 w (versions) 3987 4884 w (were) 4359 4884 w (new) 4591 4884 w (some\255) 4796 4884 w (where around Netpbm 10.21 \(2004\).) 720 5004 w 10 /Times-Bold f (Maxval Arithmetic) 720 5244 w (Entry Points) 720 5520 w (int pm) 720 5712 w 10 /S f (_) 1001 5712 w 10 /Times-Bold f (maxvaltobits\( int) 1051 5712 w 10 /Times-Italic f (maxval) 1801 5712 w 10 /Times-Bold f (\);) 2114 5712 w (int pm) 720 5868 w 10 /S f (_) 1001 5868 w 10 /Times-Bold f (bitstomaxval\( int) 1051 5868 w 10 /Times-Italic f (bits) 1801 5868 w 10 /Times-Bold f (\);) 1971 5868 w (unsigned int pm) 720 6024 w 10 /S f (_) 1411 6024 w 10 /Times-Bold f (lcm\( unsigned int) 1461 6024 w 10 /Times-Italic f (x) 2226 6024 w 10 /Times-Bold f (, unsigned int) 2270 6024 w 10 /Times-Italic f (y) 2872 6024 w 10 /Times-Bold f (, unsigned int) 2916 6024 w 10 /Times-Italic f (z) 3518 6024 w 10 /Times-Bold f (, unsigned int) 3557 6024 w 10 /Times-Italic f (limit) 4159 6024 w 10 /Times-Bold f (\);) 4368 6024 w (Description) 720 6264 w (pm) 720 6456 w 10 /S f (_) 859 6456 w 10 /Times-Bold f (maxvaltobits\(\)) 909 6456 w 10 /Times-Roman f (and) 1559 6456 w 10 /Times-Bold f (pm) 1737 6456 w 10 /S f (_) 1876 6456 w 10 /Times-Bold f (bitstomaxval\(\)) 1926 6456 w 10 /Times-Roman f (convert) 2576 6456 w (between) 2909 6456 w (a) 3275 6456 w (maxval) 3353 6456 w (and) 3681 6456 w (the) 3859 6456 w (minimum) 4015 6456 w (number) 4439 6456 w (of) 4778 6456 w (bits) 4895 6456 w (required to hold it.) 720 6576 w 10 /Times-Bold f (pm) 720 6732 w 10 /S f (_) 859 6732 w 10 /Times-Bold f (lcm\(\)) 909 6732 w 10 /Times-Roman f (computes) 1167 6732 w (the) 1587 6732 w (least) 1746 6732 w (common) 1966 6732 w (multiple) 2353 6732 w (of) 2724 6732 w (3) 2845 6732 w (integers.) 2933 6732 w (You) 3337 6732 w (also) 3547 6732 w (specify) 3746 6732 w (a) 4072 6732 w (limit) 4154 6732 w (and) 4382 6732 w (if) 4564 6732 w (the) 4663 6732 w (LCM) 4823 6732 w (would be higher than that limit,) 720 6852 w 10 /Times-Bold f (pm) 2006 6852 w 10 /S f (_) 2145 6852 w 10 /Times-Bold f (lcm\(\)) 2195 6852 w 10 /Times-Roman f (just returns that limit.) 2441 6852 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 /Times-Roman f (\255 4 \255) 2797 480 w 10 /Times-Bold f (Gamma Arithmetic) 720 840 w (Entry Points) 720 1116 w (float pm) 720 1308 w 10 /S f (_) 1078 1308 w 10 /Times-Bold f (gamma\( float) 1128 1308 w 10 /Times-Italic f (intensity) 1721 1308 w 10 /Times-Bold f (\);) 2085 1308 w (float pm) 720 1464 w 10 /S f (_) 1078 1464 w 10 /Times-Bold f (ungamma\( float) 1128 1464 w 10 /Times-Italic f (brightness) 1833 1464 w 10 /Times-Bold f (\);) 2275 1464 w (Description) 720 1704 w 10 /Times-Roman f (In) 720 1896 w (graphics) 832 1896 w (processing,) 1199 1896 w (there) 1680 1896 w (are) 1908 1896 w (two) 2058 1896 w (common) 2237 1896 w (ways) 2616 1896 w (of) 2850 1896 w (representing) 2962 1896 w (numerically) 3484 1896 w (the) 3990 1896 w (intensity) 4141 1896 w (of) 4515 1896 w (a) 4628 1896 w (pixel,) 4702 1896 w (or) 4957 1896 w (a component of a pixel.) 720 2016 w (The) 720 2172 w (obvious) 901 2172 w (way) 1245 2172 w (is) 1438 2172 w (with) 1532 2172 w (a) 1737 2172 w (number) 1808 2172 w (that) 2140 2172 w (is) 2317 2172 w (directly) 2411 2172 w (proportional) 2743 2172 w (to) 3264 2172 w (the) 3369 2172 w (light) 3518 2172 w (intensity) 3729 2172 w (\(e.g.) 4101 2172 w (10) 4305 2172 w (means) 4432 2172 w (twice) 4714 2172 w (as) 4957 2172 w (many milliwatts per square centimeter as 5\).) 720 2292 w (There are two problems with this:) 2542 2292 w 10 /LucidaSansUnicode22 f (\031) 720 2448 w 10 /Times-Roman f (To) 970 2448 w (the) 1121 2448 w (human) 1283 2448 w (eye,) 1595 2448 w (a) 1798 2448 w (1) 1882 2448 w (milliwatt) 1972 2448 w (per) 2375 2448 w (square) 2543 2448 w (centimeter) 2844 2448 w (difference) 3306 2448 w (in) 3750 2448 w (a) 3869 2448 w (bright) 3954 2448 w (image) 4234 2448 w (is) 4519 2448 w (much) 4627 2448 w (less) 4890 2448 w (apparent) 970 2568 w (than) 1344 2568 w (a) 1546 2568 w (1) 1620 2568 w (milliwatt) 1700 2568 w (per) 2092 2568 w (square) 2249 2568 w (centimeter) 2539 2568 w (difference) 2990 2568 w (in) 3423 2568 w (a) 3531 2568 w (dark) 3605 2568 w (image.) 3812 2568 w (So) 4136 2568 w (if) 4272 2568 w (you) 4363 2568 w (have) 4543 2568 w (a) 4761 2568 w (fixed) 4835 2568 w (number) 970 2688 w (of) 1306 2688 w (bits) 1421 2688 w (in) 1598 2688 w (which) 1708 2688 w (to) 1984 2688 w (store) 2094 2688 w (the) 2320 2688 w (intensity) 2474 2688 w (value,) 2851 2688 w (you're) 3124 2688 w (wasting) 3416 2688 w (resolution) 3759 2688 w (at) 4191 2688 w (the) 4295 2688 w (bright) 4449 2688 w (end) 4720 2688 w (and) 4896 2688 w (skimping on it at the dark end.) 970 2808 w 10 /LucidaSansUnicode22 f (\031) 720 2964 w 10 /Times-Roman f (Monitor) 970 2964 w (inputs) 1332 2964 w (and) 1611 2964 w (camera) 1789 2964 w (outputs) 2110 2964 w (aren't) 2439 2964 w (directly) 2705 2964 w (proportional) 3044 2964 w (to) 3572 2964 w (the) 3684 2964 w (light) 3840 2964 w (intensity) 4058 2964 w (they) 4438 2964 w (project) 4645 2964 w (or) 4957 2964 w (detect.) 970 3084 w (For) 720 3276 w (these) 898 3276 w (reasons,) 1142 3276 w (light) 1505 3276 w (intensities) 1728 3276 w (are) 2173 3276 w (often) 2333 3276 w (represented) 2577 3276 w (in) 3075 3276 w (graphics) 3192 3276 w (processing) 3569 3276 w (by) 4036 3276 w (an) 4176 3276 w (exponential) 4310 3276 w (scale.) 4816 3276 w (The) 720 3396 w (transfer) 906 3396 w (function) 1241 3396 w (is) 1605 3396 w (called) 1702 3396 w (a) 1970 3396 w (gamma) 2044 3396 w (function) 2368 3396 w (and) 2731 3396 w (the) 2905 3396 w (resulting) 3057 3396 w (numbers) 3437 3396 w (are) 3811 3396 w (called) 3962 3396 w (gamma\255corrected) 4230 3396 w (or) 4957 3396 w (gamma\255adjusted.) 720 3516 w (There) 1456 3516 w (are) 1714 3516 w (various) 1861 3516 w (gamma) 2181 3516 w (functions.) 2501 3516 w (The) 2949 3516 w (Netpbm) 3130 3516 w (formats) 3478 3516 w (specify) 3809 3516 w (that) 4123 3516 w (intensities) 4299 3516 w (are) 4732 3516 w (rep\255) 4880 3516 w (resented by gamma\255adjusted numbers of a particular gamma transfer function.) 720 3636 w (These) 720 3792 w (functions) 991 3792 w (let) 1397 3792 w (you) 1531 3792 w (convert) 1715 3792 w (back) 2048 3792 w (and) 2270 3792 w (forth) 2448 3792 w (between) 2676 3792 w (these) 3042 3792 w (two) 3281 3792 w (scales,) 3465 3792 w (using) 3762 3792 w (the) 4013 3792 w (same) 4169 3792 w (gamma) 4408 3792 w (transfer) 4736 3792 w (function that is specified in the Netpbm format specifications.) 720 3912 w 10 /Times-Bold f (pm) 720 4068 w 10 /S f (_) 859 4068 w 10 /Times-Bold f (gamma709) 909 4068 w 10 /Times-Roman f (converts) 1422 4068 w (from) 1808 4068 w (an) 2050 4068 w (intensity\255proportional) 2192 4068 w (intensity) 3112 4068 w (value) 3505 4068 w (to) 3769 4068 w (a) 3895 4068 w (gamma\255adjusted) 3987 4068 w (intensity) 4695 4068 w (value) 720 4188 w (\(roughly) 965 4188 w (proportional) 1338 4188 w (to) 1861 4188 w (brightness,) 1968 4188 w (which) 2432 4188 w (is) 2704 4188 w (the) 2799 4188 w (human) 2949 4188 w (subjective) 3249 4188 w (perception) 3682 4188 w (of) 4131 4188 w (intensity\),) 4242 4188 w (using) 4673 4188 w (the) 4918 4188 w (ITU\255R Recommendation BT.709 gamma transfer function.) 720 4308 w 10 /Times-Bold f (pm) 720 4464 w 10 /S f (_) 859 4464 w 10 /Times-Bold f (ungamma709) 909 4464 w 10 /Times-Roman f (is the inverse of) 1512 4464 w 10 /Times-Bold f (pm) 2172 4464 w 10 /S f (_) 2311 4464 w 10 /Times-Bold f (gamma709) 2361 4464 w 10 /Times-Roman f (.) 2827 4464 w 10 /Times-Bold f (Messages) 720 4704 w (Overview) 720 4980 w (void pm) 720 5172 w 10 /S f (_) 1068 5172 w 10 /Times-Bold f (message\( char *) 1118 5172 w 10 /Times-Italic f (fmt) 1819 5172 w 10 /Times-Bold f (,) 1947 5172 w (void pm) 720 5328 w 10 /S f (_) 1068 5328 w 10 /Times-Bold f (setusermessagefn\(pm) 1118 5328 w 10 /S f (_) 2027 5328 w 10 /Times-Bold f (usermessagefn *) 2077 5328 w 10 /Times-Italic f (function) 2798 5328 w 10 /Times-Bold f (\);) 3126 5328 w (Description) 720 5568 w (pm) 720 5760 w 10 /S f (_) 859 5760 w 10 /Times-Bold f (message\(\)) 909 5760 w 10 /Times-Roman f (is) 1368 5760 w (a) 1479 5760 w 10 /Times-Bold f (printf\(\)) 1567 5760 w 10 /Times-Roman f (style) 1927 5760 w (routine) 2160 5760 w (to) 2487 5760 w (write) 2609 5760 w (an) 2858 5760 w (informational) 2996 5760 w (message) 3584 5760 w (to) 3966 5760 w (the) 4088 5760 w (Standard) 4254 5760 w (Error) 4653 5760 w (file) 4907 5760 w (stream.) 720 5880 w 10 /Times-Bold f (pm) 1077 5880 w 10 /S f (_) 1216 5880 w 10 /Times-Bold f (message\(\)) 1266 5880 w 10 /Times-Roman f (suppresses) 1721 5880 w (the) 2188 5880 w (message,) 2350 5880 w (however,) 2753 5880 w (if) 3161 5880 w (the) 3262 5880 w (user) 3424 5880 w (specified) 3630 5880 w (the) 4030 5880 w 10 /Times-Bold f (\255quiet) 4192 5880 w 10 /Times-Roman f (option) 4482 5880 w (on) 4778 5880 w (the) 4918 5880 w (command) 720 6000 w (line.) 1140 6000 w (See) 1366 6000 w (the) 1536 6000 w (initialization) 1684 6000 w (functions,) 2216 6000 w (e.g.) 2639 6000 w 10 /Times-Bold f (pnm) 2810 6000 w 10 /S f (_) 3005 6000 w 10 /Times-Bold f (init\(\)) 3055 6000 w 10 /Times-Roman f (,) 3266 6000 w (for) 3318 6000 w (information) 3461 6000 w (on) 3960 6000 w (the) 4087 6000 w 10 /Times-Bold f (\255quiet) 4236 6000 w 10 /Times-Roman f (option.) 4513 6000 w (Note) 4846 6000 w (that) 720 6120 w (Netpbm) 896 6120 w (programs) 1244 6120 w (are) 1647 6120 w (often) 1794 6120 w (used) 2025 6120 w (interactively,) 2234 6120 w (but) 2784 6120 w (also) 2938 6120 w (often) 3125 6120 w (used) 3356 6120 w (by) 3565 6120 w (programs.) 3691 6120 w (In the interactive case,) 4143 6120 w (it) 720 6240 w (is) 809 6240 w (nice) 909 6240 w (to) 1108 6240 w (issue) 1219 6240 w (messages) 1452 6240 w (about) 1862 6240 w (what) 2117 6240 w (the) 2344 6240 w (program) 2499 6240 w (is) 2871 6240 w (doing,) 2972 6240 w (but) 3259 6240 w (in) 3421 6240 w (the) 3533 6240 w (program) 3689 6240 w (case,) 4061 6240 w (such) 4291 6240 w (messages) 4508 6240 w (are) 4919 6240 w (usually) 720 6360 w (undesirable.) 1035 6360 w (By) 1571 6360 w (using) 1714 6360 w 10 /Times-Bold f (pm) 1957 6360 w 10 /S f (_) 2096 6360 w 10 /Times-Bold f (message\(\)) 2146 6360 w 10 /Times-Roman f (for) 2587 6360 w (all) 2729 6360 w (your) 2855 6360 w (messages,) 3064 6360 w (you make your program usable in both) 3492 6360 w (cases.) 720 6480 w (Without) 1008 6480 w (any) 1364 6480 w (effort) 1536 6480 w (on) 1785 6480 w (your) 1913 6480 w (part,) 2124 6480 w (program) 2332 6480 w (users) 2698 6480 w (of) 2931 6480 w (your) 3042 6480 w (program) 3253 6480 w (can) 3619 6480 w (avoid) 3785 6480 w (the) 4035 6480 w (messages) 4185 6480 w (by) 4590 6480 w (specify\255) 4719 6480 w (ing the) 720 6600 w 10 /Times-Bold f (\255quiet) 1020 6600 w 10 /Times-Roman f (option.) 1295 6600 w (Netpbm) 720 6756 w (distinguishes) 1074 6756 w (between) 1629 6756 w (error) 1993 6756 w (messages) 2219 6756 w (and) 2629 6756 w (information) 2806 6756 w (messages;) 3311 6756 w 10 /Times-Bold f (pm) 3749 6756 w 10 /S f (_) 3888 6756 w 10 /Times-Bold f (message\(\)) 3938 6756 w 10 /Times-Roman f (is) 4386 6756 w (just) 4486 6756 w (for) 4664 6756 w (infor\255) 4813 6756 w (mational messages.) 720 6876 w (To issue an error message, see) 1547 6876 w 10 /Times-Bold f (pm) 2785 6876 w 10 /S f (_) 2924 6876 w 10 /Times-Bold f (errormsg\(\)) 2974 6876 w 10 /Times-Roman f (.) 3438 6876 w 10 /Times-Bold f (pm) 720 7032 w 10 /S f (_) 859 7032 w 10 /Times-Bold f (setusermessagefn) 909 7032 w 10 /Times-Roman f (registers) 1676 7032 w (a) 2044 7032 w (handler) 2118 7032 w (for) 2447 7032 w (informational) 2593 7032 w (messages,) 3167 7032 w (called) 3599 7032 w (a) 3867 7032 w (user) 3941 7032 w (message) 4137 7032 w (routine.) 4505 7032 w (Any) 4868 7032 w (library) 720 7152 w (function) 1018 7152 w (\(including) 1383 7152 w 10 /Times-Bold f (pm) 1826 7152 w 10 /S f (_) 1965 7152 w 10 /Times-Bold f (message\(\)) 2015 7152 w 10 /Times-Roman f (\)) 2430 7152 w (that) 2495 7152 w (wants) 2677 7152 w (to) 2942 7152 w (issue) 3052 7152 w (an) 3284 7152 w (informational) 3409 7152 w (message) 3984 7152 w (in) 4353 7152 w (the) 4462 7152 w (future) 4615 7152 w (will) 4884 7152 w (call that function with the message as an argument instead of writing the message to Standard Error.) 720 7272 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 /Times-Roman f (\255 5 \255) 2797 480 w (The argument the user message routine gets is English text designed for human reading.) 720 840 w (It is just the text of) 4287 840 w (the message; there is no attempt at formatting in it \(so you won't see any newline or tab characters\).) 720 960 w (To capture error messages in addition to informational messages, see) 720 1116 w 10 /Times-Bold f (pm) 3501 1116 w 10 /S f (_) 3640 1116 w 10 /Times-Bold f (setusererrormsgfn\(\)) 3690 1116 w 10 /Times-Roman f (.) 4542 1116 w (You) 720 1272 w (can) 928 1272 w (remove) 1102 1272 w (the) 1437 1272 w (user) 1595 1272 w (message) 1797 1272 w (routine,) 2171 1272 w (so) 2515 1272 w (that) 2640 1272 w (the) 2826 1272 w (library) 2984 1272 w (issues) 3286 1272 w (future) 3561 1272 w (informational) 3835 1272 w (messages) 4416 1272 w (in) 4830 1272 w (its) 4945 1272 w (default way \(write to Standard Error\) by specifying a null pointer for) 720 1392 w 10 /Times-Italic f (function) 3492 1392 w 10 /Times-Roman f (.) 3820 1392 w (Example:) 3895 1392 w (static pm) 820 1572 w 10 /S f (_) 1184 1572 w 10 /Times-Roman f (usermessagefn logfilewrite;) 1234 1572 w (static void) 820 1692 w (logfilewrite\(const char * const msg\) {) 820 1812 w (fprintf\(mymsglog, "Netpbm message: %s", msg\);) 920 1932 w (}) 820 2052 w (pm) 820 2172 w 10 /S f (_) 948 2172 w 10 /Times-Roman f (setusermessagefn\(&logfilewrite\);) 998 2172 w (pm) 820 2412 w 10 /S f (_) 948 2412 w 10 /Times-Roman f (message\("Message for the message log"\);) 998 2412 w 10 /Times-Bold f (System Utilities) 720 2712 w 10 /LucidaSansUnicode22 f (\031) 720 2904 w 10 /Times-Roman f (pm) 970 2904 w 10 /S f (_) 1098 2904 w 10 /Times-Roman f (system) 1148 2904 w 10 /LucidaSansUnicode22 f (\031) 720 3060 w 10 /Times-Roman f (pm) 970 3060 w 10 /S f (_) 1098 3060 w 10 /Times-Roman f (tmpfile) 1148 3060 w 10 /Times-Bold f (Keyword Matching) 720 3336 w (Entry Points) 720 3612 w (void pm) 720 3804 w 10 /S f (_) 1068 3804 w 10 /Times-Bold f (keymatch\(\);) 1118 3804 w (Description) 720 4044 w 10 /Times-Roman f (This subroutine is obsolete.) 720 4236 w (It used to be used for command line option processing.) 1870 4236 w (Today,) 4113 4236 w (you) 4419 4236 w (can) 4595 4236 w (do) 4759 4236 w (bet\255) 4885 4236 w (ter) 720 4356 w (option) 855 4356 w (processing) 1141 4356 w (more) 1598 4356 w (easily) 1833 4356 w (with) 2096 4356 w (the) 2304 4356 w (shhopt) 2456 4356 w (facility.) 2753 4356 w (See) 3116 4356 w (any) 3290 4356 w (recent) 3464 4356 w (program) 3737 4356 w (in) 4105 4356 w (the) 4212 4356 w (Netpbm) 4363 4356 w (package) 4714 4356 w (for) 720 4476 w (an) 864 4476 w (example.) 986 4476 w 10 /Times-Bold f (pm) 1402 4476 w 10 /S f (_) 1541 4476 w 10 /Times-Bold f (keymatch\(\)) 1591 4476 w 10 /Times-Roman f (does) 2101 4476 w (a) 2312 4476 w (case\255insensitive) 2384 4476 w (match) 3044 4476 w (of) 3316 4476 w 10 /Times-Bold f (str) 3427 4476 w 10 /Times-Roman f (against) 3571 4476 w 10 /Times-Bold f (keyword) 3882 4476 w 10 /Times-Roman f (.) 4254 4476 w 10 /Times-Bold f (str) 4333 4476 w 10 /Times-Roman f (can) 4478 4476 w (be) 4645 4476 w (a) 4768 4476 w (lead\255) 4841 4476 w (ing substring of) 720 4596 w 10 /Times-Bold f (keyword) 1373 4596 w 10 /Times-Roman f (, but at least) 1745 4596 w 10 /Times-Bold f (minchars) 2253 4596 w 10 /Times-Roman f (must be present.) 2678 4596 w 10 /S1 f (________________________________________________________________________) 720 4716 w 10 /Times-Bold f (Table Of Contents) 720 4956 w 10 /LucidaSansUnicode22 f (\031) 720 5148 w 10 /Times-Roman f (Functions) 970 5148 w 10 /LucidaSansUnicode22 f (\031) 720 5304 w 10 /Times-Roman f (Initialization) 970 5304 w 10 /LucidaSansUnicode22 f (\031) 720 5460 w 10 /Times-Roman f (File Or Image Stream Access) 970 5460 w 10 /LucidaSansUnicode22 f (\031) 720 5616 w 10 /Times-Roman f (Endian I/O) 970 5616 w 10 /LucidaSansUnicode22 f (\031) 720 5772 w 10 /Times-Roman f (Maxval Arithmetic) 970 5772 w 10 /LucidaSansUnicode22 f (\031) 720 5928 w 10 /Times-Roman f (Messages And Errors) 970 5928 w 10 /LucidaSansUnicode22 f (\031) 720 6084 w 10 /Times-Roman f (Keyword) 970 6084 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Trailer done %%DocumentFonts: Times-Roman LucidaSansUnicode22 Times-Italic Times-Bold S1 S %%Pages: 5