arospdf from https://sourceforge.net/projects/arospdf/
[AROS-Contrib.git] / arospdf / CHANGES
blob0378f0da537e61101ac5263d6d1975fb1f39713e
1 0.2 (95-dec-12)
2 ---------------
3 First public release.
6 0.3 (96-jan-13)
7 ---------------
8 LZW patent workaround.
9 Implemented inline images.
10 Fixed (mostly) disjoint polygon fills.
11 Added remote server stuff.
12 Added page number on command line.
13 Fixed problem with font encodings which caused character misalignment.
14 Fixed inverted CCITT decoding and inverted image mask drawing.
15 Now compiles under gcc 2.7.x (ignore those stupid 'unused parameter'
16   warnings).
17 Many minor bug fixes and optimizations.
20 0.4 (96-apr-24)
21 ---------------
22 Implemented DCT filter.
23 Implemented PostScript output; wrote pdftops program.
24 Implemented links.
25 Implemented font rotation -- I was wrong: X11R6 servers *do* support
26   font rotation (by specifying a matrix in place of a size).
27 Added bindings for Home/End, Page Up/Down, arrow keys.
28 Added initialZoom resource and -z option.
29 Added geometry resource and -g option.
30 Fixed image size off-by-one bug.
31 Fixed bug where page content is reference to an array of streams.
32 Cleaned up uninitialized variables which were causing random problems
33   on various platforms.
34 Manually skip whitespace before calling atoi() for startxref.
35 Replaced calls to XrmCombineFileDatabase() with calls to
36   XrmGetFileDatabase() and XrmMergeDatabases() so it will work under
37   older versions of X.
38 Fixed problem with reading multiple xref tables in updated PDF files.
39 Check for encryption and print appropriate error message.
40 Rudimentary dithering of images.
41 Fixed bug in CCITTFax filter (pass mode followed by horizontal mode).
42 Optimized drawImage() and drawImageMask().
43 Changed several things to ease porting:
44   - changed '__inline' to 'inline' (to adhere to the ANSI standard)
45   - surrounded interface/implementation pragmas with #ifdef _GNUC__
46   - got rid of empty array initializer lists
47   - moved Operator type definition from Gfx.cc to Gfx.h
48   - renamed String, uint, etc.
49   - ability to uncompress to file (NO_POPEN and USE_GZIP flags)
50   - added definitions of XK_Page_Up/Down and XPointer for old versions
51     of X
52 For VMS port:
53   - use correct Xdefaults name for VMS, get rid of ltkGetHomeDir()
54   - added '#include <stddef.h>' before all X includes
55   - renamed files with multiple periods in their names
56 Fixed window resizing infinite oscillation bug.
57 Fixed problem with string-type (as opposed to stream-type) indexed
58   color space lookup tables (which are used in inline images).
59 If an X font is not found, try smaller and then larger sizes (this is
60   useful for old or broken X servers which can't scale bitmap fonts).
61 Added -rgb (color cube size) option.
62 Various minor bug fixes.
65 0.5 (96-may-23)
66 ---------------
67 Fixed bug in LTKWindow which broke the remote server mode.
68 Fixed PostScript output:
69   - doesn't seg fault if file is unwritable.
70   - incorrect DSC comment - need colon in '%%Page:'.
71   - use 'imagemask' command for masks.
72   - output filters in the correct order.
73   - Stream::isBinary() checks the next-to-bottom, not top, stream.
74   - if page width > height, rotate it 90 degrees.
75   - if page is larger than paper size, scale it down.
76 Set default MediaBox to 8.5" x 11" to deal with non-compliant PDF
77   files which don't specify a MediaBox.
78 Added DEBUG_MEM stuff in gmem.c and gmempp.cc.
79 Fixed memory leaks:
80   - LTKWindow didn't delete the LTKBox.
81   - LinkAction needs a virtual destructor.
82 Use $(RANLIB) variable in goo/Makefile and ltk/Makefile.
83 Allocate image data after calling XCreateImage, using
84   image->bytes_per_line -- works in 24-bit mode now.
85 DCTStream rounds width of rowBuf lines up to the next multiple of
86   mcuWidth, so last MCU doesn't run off end of buffer.
87 Increase size of block (from 255 to 1024 bytes) read at end of file to
88   search for 'startxref'.
89 Skip past garbage at start of file, look for '%PDF'.
90 Moved more compiler options out of Makefiles into Makefile.config.
91 Top-level Makefile uses '$(MAKE)' instead of 'make' for making
92   subdirectories.
93 Space/PageDown/Next and Backspace/PageUp/Previous now moves to
94   next/previous page if already scrolled to bottom/top of current
95   page.
98 0.5a (96-jul-09)
99 ----------------
100 [not a public release]
101 For PDF 1.2 (a.k.a. Amber, a.k.a. Acrobat 3) support:
102   - look for trailer after first xref instead of at end of file.
103 Deal with font subsets by converting character names of the form
104   'Cnnnn' to the appropriate character from the standard encoding.
105 Extract encoding from embedded Type 1 fonts.
106 Kludge to fill one-pixel thick polygons.
107 Changed X font encoding to use endash for hyphen (gets rid of too-long
108   hyphens).
109 Handle Resources key in Pages dictionaries (needed for pstoedit
110   output).
111 Fix comment handling in Parser (needed for pstoedit output).
112 Move Bezier curve conversion from GfxState to XOutputDev; look at
113   flatness parameter in GfxState.
114 Change all of the path functions in XOutputDev (stroke, fill, clip) to
115   use the same path transformation/conversion function.
116 Rewrote PostScript output driver as a subclass of OutputDev; removed
117   duplicated code (ps_ functions) from Gfx.
118 Fixed bug in xref code with small (< 1024 bytes) PDF files.
119 Implemented BX/EX operators.
120 Added PDFDoc class.
123 0.6 (96-nov-12)
124 ---------------
125 Add support for PostScript output to stdout (-) and to a command
126   (|lpr); added -ps option and psFile resource.
127 Decryption is implemented but not included in the distribution due to
128   legal restrictions: the decryption algorithm is a trade secret of
129   RSA, Inc., and the U.S.A. still has bogus export controls on
130   cryptography software.
131 Added .xpdfrc config file:
132   - Added fontmap parameter: user can map PDF font names to X fonts.
133   - Added fontpath parameter: search for Type 1 font if encoding is
134     not in PDF file.
135 Incremental display: display is updated after every 200 commands.
136 Added forward and backward by-10-page buttons.
137 Links:
138   - Implement links with "Launch" actions that point to PDF files.
139   - Draw borders around links.
140   - Handle links with named destinations.
141   - GoToR links specify a page number instead of a page reference.
142 Optimizations:
143   - Rewrote Stream to use buffering, and added lookChar() functions;
144     rewrote Lexer to take advantage of this.
145   - Use hash tables for name->code mapping in font encodings.
146   - Made XOutputDev::doCurve() iterative, changed /2 to *0.5, and
147     changed the flatness test.
148 Added file name to window title.
149 Implemented RunLength filter.
150 Implemented forms.
151 Convert ObjType to an enum.
152 Changed isDict("Pages") to isDict() (in Catalog.cc) to deal with
153   incorrect PDF files.
154 Changed color selection so that very pale colors don't map to white.
155 Fixed bug in CCITTFax filter (multiple make-up codes).
156 In GString::clear(): need to set length to 0 before calling resize().
157 Base initial window size on first displayed page, not page 1; deal
158   correctly with rotated pages.
159 Added ltkGetIntResource() and LTKApp::getIntResource().
160 PostScript output fixes:
161   - Escape backslashes in strings.
162   - When doing ASCII85 encoding, keep both chars of EOF marker ('~>')
163     on same line.
164   - Add extra line '%-EOD-' after image data streams; call wrapper
165     functions for image and imagemask which look for this line -- this
166     should fix the 'too much data in stream' bug.
167   - Font tags can be reused for different fonts on different pages --
168     so use font object reference (number/generation) instead.
169 Initialize character widths to zero (this caused crashes on OSF/1).
170 Handle image masks which go outside of pixmap.
171 Makefile.config changes:
172   - Remove -o in C++ compile rule.
173   - Add $(AR) variable.
174 Code which read char widths from font dictionary read all but the last
175   width.
176 Add 'return 0;' to main() in xpdf and pdftops.
177 Allow fonts to use StandardEncoding.
178 Convert man pages to VMS help files.
180 0.7 (97-may-28)
181 ---------------
182 Implemented FlateDecode filter (for PDF 1.2).
183 Basic xref table reconstruction for damaged files
184 New pdftotext program converts PDF to plain text.
185 Implemented menus in LTK; added a menu to xpdf.
186 Added open and save functions; allow xpdf to start without any PDF
187   file.
188 Implemented text find.
189 Implemented text select/copy.
190 Change mouse cursor when it's over a link.
191 Embed Type 1 fonts in PostScript output.
192 Moved rotate functions to menu; added quit to menu.
193 Fixed stroke color bug in PostScript output (was using fill color
194   instead of stroke color; this sometimes caused lines to be missing
195   (white) in PostScript output).
196 Support Launch-type links -- pops up a dialog before executing
197   anything.  Expects the A (action) dictionary to contain a Unix
198   dictionary with F (file) and P (paremeter) keys just like the Win
199   dictionary.
200 A moveto op all by itself should just be discarded, instead of
201   generating a subpath with one point (this was causing seg faults).
202 Balanced parentheses in strings don't need to be escaped.
203 Tj operator in PostScript prolog didn't check for zero when dividing
204   by length of string.
205 Implemented selection in LTK; TextIn widgets support dragging/copy/
206   paste.
207 Handle font subsets that use hex character codes.
208 Added icon pixmap; added the XPMLIB and NO_XPM variables to
209   Makefile.config.
210 Fixed subtle bug in use of horizontal scaling parameter (it affects
211   only the width of drawn characters, not positioning done in text
212   space).
213 Memory testing (with DEBUG_MEM):
214   - gmalloc now fills memory blocks with garbage to catch unitialized
215     fields.
216   - gfree fills memory blocks with garbage to catch uses of freed
217     blocks.
218 Handle image masks which go off the pixmap on the top and/or left.
219 Fixed inline functions which had two return statements (to make the
220   HP, SCO, and other cfront-based compilers happy).
221 Fixed bug which caused seg faults when following a link to a different
222   file (info in LinkGoto object was used after link was deleted by
223   loadFile).
224 If page content is an array of streams, the streams are concatenated;
225   objects and commands can span multiple streams.
226 If file open fails, try lower-casing and upper-casing the file name.
227 Commands should end when lexer sees a '/' character.
228 GString::append(char *, int) was broken.
229 Changed LTKScrollingCanvas redraw to be more efficient: copy as much
230   as possible from window before copying from off-screen pixmap.
231 Ignore gs (set extended graphics state) operator.
232 Handle colorspaces (CalGray/RGB are treated as DeviceGray/RGB; the
233   weird colorspaces are not yet implemented).
234 Named destinations (for links) can be strings as well as names; deal
235   with the names tree in the catalog.
236 Clip to the page CropBox.
237 Added '-q' to gzip options (to suppress warnings, in case user has -v
238   in GZIP env var).
239 Added 'include Makefile.config' to top-level Makefile.
240 Added INSTALL variable to Makefile.config; used in top-level
241   Makefile.
242 Always initialize LinkDest left/bottom/top/right/zoom fields (bogus
243   floating point values were causing crashes on Alpha).
244 Added Makefile.config options for Digital Unix (DEC compilers), HP-UX
245   (HP compilers), SCO Unix, and Evans & Sutherland ES/OS.
246 Added flag to set stream mode in fopen call for VMS.
247 Rewrote Link module.
248 Pages with no contents shouldn't cause an error message.
249 In PostScript output: pdfImM needs to set fill color before doing
250   imagemask.
251 If font doesn't specify character widths, use widths from built-in
252   font, based on font flags.
253 Fixed LTK scrollbar to delay before repeating and to control the
254   period between repeats.
255 Removed window/widget copy() methods (they were untested and unused).
256 Unknown filter types produce a single error message instead of a
257   stream of errors.
258 Added a dummy target in top-level Makefile so making individual
259   executables (e.g., 'make pdftops') should now work.
260 Added optional xpdf-flip.ltk with buttons on right side instead of
261   bottom of window.
263 0.7a (98-feb-22)
264 ----------------
265 Moved find command from menu to toolbar button ('f' key still works).
266 Support TrueColor visuals.
267 Added a -cmap option and a installCmap resource to install a private
268   colormap.
269 Mouse button 2 pans the window.
270 Selecting a URI link now executes a configurable command (from the
271   urlCommand resource).
272 Added a "link info" display which shows the URL or file for the link
273   under the mouse.
274 Don't draw (or convert to PostScript) text drawn in render modes 3 and
275   7 -- this is invisible text, used by Acrobat Capture; this text is
276   still passed to the TextPage object so that selection works.
277 Recognize (and quietly ignore) marked content operators (BMC, BDC,
278   EMC, MP, DP).
279 Recognize new color-setting operators (scn, SCN).
280 Added A4_PAPER option.
281 Embed external Type 1 font files (this currently only works with PFA
282   files).
283 Added "-level1" option (in xpdf and pdftops) to generate Level 1
284   PostScript.
285 Setup autoconf -- replaced Makefile.config.  Added SELECT_TAKES_INT
286   flag, and use configure to autodetect (for HP-UX).
287 Fixed appendToPath() to behave reasonably when appending ".." to root
288   directory.
289 Fixed array size in FlateStream::compHuffmanCodes() (was causing xpdf
290   to crash under OSF/1).
291 ASCII85Stream, ASCIIHexStream, and DCTStream didn't check for EOF and
292   could run past the end of the stream in damaged files.
293 Handle hex escapes (#xx) in names.  Still allow the name /# for
294   backward-compatibility.
295 Check for NULL characters in encoding array in GfxFont.cc (was calling
296   strcmp() with NULL which crashed under Solaris).
297 PageAttrs::PageAttrs() didn't initialize crop box boundaries.
298 Changed uses of lookup() to lookupNF() in XRef.cc.
299 Fixed type checking of operators which take a variable number of
300   args.
301 Gfx::buildImageStream() doesn't need to check for parser (since I got
302   rid of the bogus array-of-command thing).
303 XOutputFont matches on font reference instead of font tag (similar to
304   PSOutputDev fix).
305 Fixed bug in position calculation for multi-char substitutions in
306   XOutputDev.
307 Cleaned up local variables which hid class variables.
308 Optimized variable length decoding in CCITTFaxStream.
309 Set link border width to zero if Border dictionary entry is missing.
310 Throw away zero-length strings in TextOutputDev -- they don't have
311   valid xMin/xMax values.
312 Swapped order of XLIBS and XPMLIB in xpdf/Makefile.
313 Deleted 'LTKApp::' in function declaration in LTKApp.h.
314 Changed '(XKeyEvent *)&event' to '&event.xkey' in LTKApp.cc.
315 Check that the link rectangle coordinates are in the correct order,
316   and swap if necessary.
317 TextOutputDev didn't set text to NULL, which caused pdftotext to
318   segfault if it couldn't open it's output file.
319 Fixed a hash table search bug in GfxFontEncoding::getCharCode().
320 Cleaned up colorspace code: rewrote GfxColorSpace and added
321   GfxImageColorMap; cleaned up PSOutputDev::doImage.
322 Handle named colorspaces in images.
323 Correctly set the default color after a colorspace change.
324 Old setcolor operators now set the colorspace.
325 Fixed bug with uncompressed blocks in FlateStream.
326 Fixed bug with fixed Huffman code table in FlateStream.
327 Added hash table of X windows (for LTKWindow and LTKWidget) to LTKApp
328   and replaced calls to XQueryTree with hash table searches -- this
329   avoids a roundtrip to the server for each event and also fixes the
330   problem where XQueryTree crashed if the window no longer existed
331   (with leftover events from a destroyed window).  (Thanks to Yair
332   Lenga for the suggestion.)
333 Create a new GC for selection -- xor black and white (instead of LTK
334   foreground and background).
335 Fixed crash with blank lines in .xpdfrc.
336 Allow spaces in font descriptors in fontmap lines in .xpdfrc.
337 Check for bogus object number in XRef::fetch().
338 Use MacRomanEncoding for TrueType fonts that don't specify an
339   encoding.
340 Certain PDF generators apparently don't include FontDescriptors for
341   Arial, TimesNewRoman, and CourierNew -- set GfxFont flags
342   appropriately.
343 Fixed a bug in width guessing in GfxFont -- sans serif and serif were
344   swapped.
345 Rewrote XRef::readXRef() to avoid using a parser to read the xref
346   entries.
347 Added NO_TEXT_SELECT option.
348 Ignore APPn/COM/etc. markers in DCT streams.
349 Replaced select() with XMultiplexInput() in LTKApp.cc for VMS.
350 Handle WM_DELETE_WINDOW protocol -- if you ask the window manager to
351   delete the xpdf window, xpdf will exit cleanly; other
352   windows/dialogs are simply closed.
353 Optimized DCT decoder; switched to integer arithmetic.
354 The "/Type /Annots" field in an annotation dictionary is optional.
355 Check for null nameTree in Catalog::findDest().
356 In XOutputDev, search user font map before default font map.
357 Added "normal" SETWIDTH parameter to all font descriptors in
358   XOutputDev (some systems have a narrow-width Helvetica font).
359 Added FOPEN_READ_BIN and FOPEN_WRITE_BIN to support Win32.
360 Added a hack which allows better font substitution for some Type 3
361   fonts.  Also allow character names of the form /nn and /nnn.
362 Added <strings.h> and <bstring.h> to LTKApp.cc (needed by AIX and IRIX
363   for bzero() declaration for FD_ZERO).
365 0.80 (98-nov-27)
366 ----------------
367 Support for some Japanese fonts (Type 0 fonts using the Adobe-Japan1-2
368   character collection, horizontal only).
369 Added pdfinfo application.
370 Added pdftopbm application.
371 Added pdfimages application.
372 Added -papercolor option and .paperColor resource.
373 Fixed divide-by-zero problem in XOutputDev Type 3 font matrix kludge.
374 Font subset char names can be 'Bxx' as well as 'Cxx' and 'Gxx'.
375 Fixed bug in color space conversion in DCTStream filter (YCC->RGB was
376   correct, YCCK->CMYK was broken).
377 Added XRef::getDocInfo() and PDFDoc::getDocInfo() to support pdfinfo.
378 Optimized GfxImageColorMap.
379 Lexer::getStream(), getPos(), and setPos() check for null stream.
380 Decryption code now does strings as well as streams.
381 ASCII85 decoder rounds short tuples up instead of down.
382 CropBox and MediaBox can be non-integers.
383 PostScript output:
384   - Use a rectangle operator.
385   - Call setpagedevice with page size.
386   - Insert %%PageOrientation comments.
387   - Add paper size flags (-paperw and -paperh) to xpdf and pdftops.
388   - If HAVE_POPEN is not defined, and user tries to print to '|...',
389     the PSOutputDev destructor tried to write to the PS file.
390   - Added support for forms (pdftops -form).
391 Removed error messages for empty paths in stroke, fill, etc. operators.
392 Don't allow flatnesses less than 1 in XOutputDev (this speeds up
393   rendering a little bit when there are lots of tiny curves).
394 Moved the font subset character name guessing from GfxFont to
395   XOutputDev and TextOutputDev - now these files print correctly.
396 Cast argument to XFree() to XPointer; add XPointer definition where
397   necessary (portability fixes).
398 Various minor VMS fixes.
399 Changes to configure script and Makefiles:
400   - Print a warning if X is missing.
401   - Use C++ when checking select() argument type (HP-UX).
402   - Use 0 instead of NULL when checking select().
403   - Default to gcc instead of c++.
404   - Get rid of AC_C_INLINE -- this is meant for C, not C++.
405   - Changed -USE_GZIP to -DUSE_GZIP.
406   - Added ability to compile ouside of the source tree.
407   - Added .cc.o rule to {goo,ltk,xpdf}/Makefile.in.
408   - Added @LIBS@ to XLIBS in xpdf/Makefile.in.
409   - In top-level Makefile.in: added '-' to clean commands; added
410     distclean rule.
411   - Create install directories.
412   - Use INSTALL_DATA (instead of INSTALL) for man pages.
413   - Changed xpdf-ltk.h rule to avoid leaving an empty file when
414     ltkbuild fails.
415   - Change things so that by default, ltkbuild is not built and
416     xpdf-ltk.h is not rebuilt.
417   - Use AM_PROG_CC_STDC to add compiler flags for ANSI C.
418   - Modify autoconf's builtin macros to check for xlC.
419   - Use Steve Robbins' smr_CHECK_LIB to test for pixmap library (Xpm)
420     -- this should fix the problems on systems that have the library
421     but not the include file.
422   - Added better test for sys/select.h, sys/bsdtypes.h, strings.h,
423     bstring.h.
424   - New VMS make scripts from Martin P.J. Zinser.
425   - Moved dependences into Makefile.in -- this gets rid of problems
426     with 'cc -MM' (which is gcc-specific) and 'include Makefile.dep'
427     (which isn't supported by all make implementations).  Also changed
428     all non-system include files to '#include "..."' (from '<...>').
429 Tweaked the TextOutputDev heuristics slightly.
430 Modify Gfx to use a stack of resources -- this is necessary for Form
431   XObjects, which can define their own local resources; also modified
432   PSOutputDev to dump fonts used by forms.
433 Look for excessively large MediaBox (compared to CropBox) and shrink
434   it to CropBox.
435 Minor fix to scrolling when dragging a selection.
436 Various patches for pdftex and Win32 support.
437 Deal with Separation colorspaces by using their alternate colorspace
438   entry.
439 Added PBMOutputDev for pdftopbm application.
440 Added ImageOutputDev for pdfimages application.
441 Separated XOutputDev into LTKOutputDev + XOutputDev.
442 Added support for 1-D and mixed 1-D/2-D (Group 3) decoding to
443   CCITTDecode filter.
444 Added resetImage(), getImagePixel(), and skipImageLine() to Stream
445   class; used these in XOutputDev, PSOutputDev, and ImageOutputDev.
446 Implemented predictor for LZW and Flate filters.
447 In pdfImM1 in PSOutputDev prolog: div should be idiv.
448 Changed output from printUsage() function in parseargs to look nicer.
450 0.90 (99-aug-02)
451 ----------------
452 Added Type 1/1C font rendering, using t1lib.
453 Added "backward" and "forward" buttons.
454 Added fit-page and fit-page-width zoom factors; replaced zoom-in and
455   zoom-out buttons with a zoom popup menu.
456 Type 1C fonts are converted to Type 1 and embedded in PostScript.
457 Support vertical Japanese text.
458 Added Japanese text support (EUC-JP) to pdftotext.
459 Bumped PDF version to 1.3.  Added stub functions for ri and sh
460   operators. (But there are still some missing 1.3 features.)
461 Added -raw option to pdftotext.
462 Minor changes to allow compiling under MS Visual C++ 5.0.
463 Top-level makefile: changed 'mkdir -p' to '-mkdir -p'.
464 Configure script: added X_CFLAGS to smr_CHECK_LIB(Xpm).
465 Added Xpm_CFLAGS to xpdf/Makefile.in (this is needed to get the -I for
466   the xpm includes).
467 Rewrote code that handles font encodings; added support for Type 1C
468   fonts.
469 In the setpagedevice dictionary in PostScript output - added a
470   /Policies entry which tells the PS interpreter to scale the page to
471   fit the available paper.
472 Changed PageUp behavior slightly: move to bottom (instead of top) of
473   previous page.
474 TextPage used character's dx (width + char space) instead of just its
475   width.
476 Read base URI from document Catalog (for URI-type links).
477 Minor change to configure script to avoid using 'unset'.
478 Fixed bugs in CropBox inheritance.
479 Fixed a bug in resource stack handling for form objects.
480 Display forms even if they have a missing/incorrect FormType.
481 Fixed a bug in stream predictors -- the predictor parameters (width,
482   comps, bits) don't need to match the actual image parameters.
483   Completely rearranged the predictor code.
484 Fixed PostScript output to correctly handle stream predictors.
485 Don't segfault on empty (zero-page) documents.
486 Added the xpdf.viKeys feature.
487 Added the ffi and ffl ligatures to XOutputDev and TextOutputDev.
488 Pdftotext and pdfimages now check okToCopy().
489 Added a '-q' flag to all programs (except pdfinfo) to suppress
490   messages and errors.
491 Deal with DeviceN colorspaces by using their alternate colorspace
492   entry.
493 Change PostScript output so setpagedevice is only called once, at the
494   very beginning of the document (to avoid problems on duplex
495   printers).
496 Changes to configure script and makefiles for DOS/DJGPP.
497 FontEncoding::getCharCode() looked for (code>0) instead of (code>=0).
498 Added keypad arrow keys, etc. to xpdf.
499 Minor changes to gfile.{h,cpp} (<windows.h>) to compile under VC++.
500 Fixed CCITTFaxStream to correctly handle all parameters.
501 Modifications to gfile.{h,cc} for Acorn.
502 Some minor changes for OS/2.
503 Added 'SHELL = /bin/sh' to Makefiles.
504 Compare file version to pdfVersionNum+0.0001 to avoid floating point
505   precision problems.
506 Added LDFLAGS to Makefiles.
507 Removed strip entirely from configure and Makefiles.
508 Fixed a bug in choosing the correct DCTStream color transform.
510 0.91 (2000-aug-14)
511 ------------------
512 Added TrueType font rendering, using FreeType.
513 Support for Chinese fonts (Type 0 fonts using the Adobe-GB1-2
514   character collection).
515 Decryption code is included with the main distribution (now that the
516   US export regulations are a little bit less irrational).
517 Added (very basic) support for generating PostScript with Japanese
518   fonts -- only tested with ghostscript so far.
519 Added support for generating EPS files (pdftops -eps).
520 Much-improved image filtering in xpdf (for downsampling and for
521   transforms other than 0/90/180/270-degree rotations).
522 Implemented a basic full-screen (presentation) mode (xpdf
523   -fullscreen).  (There is currently no way to switch between window
524   and full-screen modes on the fly -- this will be fixed in a later
525   release.)
526 Added "reload" menu item.
527 Do a better job with anti-aliased Type 1 fonts on non-white
528   backgrounds.
529 Handle Lab color spaces.
530 Handle non-null user passwords.
531 Avoid security hole with tmpnam()/fopen() -- added openTempFile() in
532   goo/gfile.cc.  [Thanks to Joseph S. Myers for pointing this out.]
533 Filter out quote marks (' and ") in URLs before running urlCommand to
534   avoid a potential security hole.  [Thanks to Frank Doepper for
535   pointing this out.]
536 Fixed TrueColor detection to look at the complete list of available
537   visuals, not just the default visual.
538 In gfile.h, changed NAMLEN(dirent) macro to NAMLEN(d).
539 Removed copyright character from start-up banners.
540 In the open and save dialogs, if the open/save button is pressed with
541   no file name, the dialog is not canceled.
542 Added Xpm_CFLAGS to ltk/Makefile.
543 XOutputDev::updateLineAttrs was using dashLength before it was
544   defined.
545 In top-level Makefile.in, use INSTALL_PROGRAM instead of INSTALL.
546 In man page, recommend -q instead of -err in .mailcap.
547 Changes for GNOME / Bonobo support:
548   - Separated Stream classes into BaseStream and FilterStream trees.
549   - Got rid of all FileStream-specific stuff.
550   - Added a PDFDoc constructor that takes a BaseStream* instead of a
551     file name.
552 Allow newlines inside strings (Photoshop does this).
553 Don't require whitespace between tokens in consecutive content
554   streams (for pages that specify an array of streams).
555 Look at MissingWidth when constructing font character widths array.
556 Fixed a bug that caused incorrect PostScript output for images that
557   use 8-bit indexed color spaces with < 256 colors in the palette.
558 Handle case where embedded font file is bad (this was seg faulting).
559 Minor changes for Windows/pdftex.
560 Work around a bug in PDF files from the IBM patent server.
561 Fixed bugs in PostScript form generation: use pdfStartPage instead of
562   pdfSetup; problem with inline images.
563 Minor bug fix in FlateStream::loadFixedCodes().
564 Added %%DocumentMedia and %%PageMedia comments to the PostScript so
565   that gsview (a Windows frontend for ghostscript) gets the right
566   paper size.
567 Draw AcroForm fields that have appearance annotations.
568 Bounds check gray, CMYK, and RGB values (in GfxColor).
569 Moved the link border drawing code into Page (from PDFDoc).
570 Minor modifications for pdftohtml.
571 PSOutputDev: use the Type 3 font scaling kludge from XOutputDev.
572 Separation color spaces were handled incorrectly in images.
573 Fixed a bug with form bounding boxes.
574 Modified the t1lib support -- replace libt1x code with my own code.
575   Type 1 and TrueType fonts are now handled similarly, and clipping
576   works on Type 1 fonts.
577 Don't print copyright banner (xpdf); add -v switch to get copyright
578   and version info (all apps); get rid of -err switch (xpdf).
579 Automatically reload the PDF file if it has been changed, i.e., if the
580   modification time is different.
581 Fixed a memory (malloc size) bug in CCITTFaxStream.
582 Fixed two bugs in FontEncoding::hash() -- handle zero-length character
583   names (which were found in a (buggy?) PDF file), and handle
584   character names with high-bit-set characters (use unsigned ints).
585 Added PDFDoc::isLinearized() and corresponding code in pdfinfo.cc.
586 Handle files with an incorrect page count in the Pages dictionary
587   (FOP, from the Apache project produces a page count of 0).
588 Handle TrueType equivalents to the Base14 fonts (Arial, TimesNewRoman,
589   CourierNew) -- Adobe's tools use these names without embedding the
590   fonts.
591 Tweaked the Type 3 font sizing kludge.
592 Changed pdfimages (ImageOutputDev) so it doesn't output JPEG files for
593   4-component color spaces, since these seem to confuse most image
594   viewers.
595 Added support for generating OPI comments (pdftops -opi).
596 In XOutputDev::drawImage() and drawImageMask(), check for images that
597   are completely off-page.
598 Use the provided alternate or a default (DeviceGray/RGB/CMYK) color
599   space for ICCBased color spaces.
600 Incorporated MacOS-specific code from Leonard Rosenthol.
601 Configure script switches to C++ for the strings.h/bstring.h test.
602 Gfx::opRestore() calls clearPath() to handle (apparently) buggy PDF
603   files produced by FreeHand.
604 The /Type field in most dictionaries is optional (PDF 1.3 change).
605 Move printCommands variable definition into Gfx.cc.
606 If page is smaller than paper, center the PostScript output.
607 Fix a minor bug in the SELECT_TAKES_INT detection in the configure
608   script.
609 TextOutputDev filters out control characters.
610 Changed enough occurrences of 'char *' to 'const char *' to keep gcc
611   2.95 from barfing.
612 Support for Latin-2 and Latin-5 in pdftotext (however, this will only
613   work if the PDF file contains correct font encodings, which seems to
614   be rare).
615 TextOutputDev converts "eightoldstyle" to "eight", etc.
616 Don't use the return value from sprintf() -- most systems return the
617   length, but some return the string.
618 Minor fixes for SunOS 4.
619 Configure script looks for both select() and fd_set in sys/select.h.
620 Configure script checks for gethostbyname() in -lbsd (for LynxOS).
621 Fix missing closepath bug in PostScript output.
622 Change PostScript portrait/landscape mode selection so it only uses
623   landscape if the page width is greater than the paper width.
624 Tweaked the VMS code in makePathAbsolute().
626 0.91a (2000-oct-11)
627 -------------------
628 Implemented separable CMYK PostScript output (the -level1sep switch to
629   pdftops).
630 Implemented Pattern color spaces with tiling patterns (polygon fills
631   only).
632 Implemented Stamp annotations.
633 Implemented Named link actions.
634 Fixed a really dumb bug in the TrueColor code in SFont (which affects
635   both Type 1 and TrueType font rendering on 16-bit displays).
636 Rewrote the GfxColorSpace / GfxColor code.
637 Switched from djgppcfg to dj_make.bat (from Michael Richmond).
638 Bug in the Type 1 encoding parser -- couldn't handle lines of the form
639   'dup NNN/name put' (with no space between the code and the name).
640 Fixed the mkstemp() test in configure.in -- switched from
641   AC_TRY_COMPILE to AC_TRY_LINK and added <unistd.h>.
642 Added DESTDIR to top-level Makefile.in.
643 Fixed an incorrect OPI comment in PSOutputDev.
644 Minor tweak to the CCITTFax code to avoid writing past the end of an
645   array on an invalid data stream.
646 Xpdf crashed if the user selected 'reload' when no document was
647   loaded.
648 Look for character names of the form "xx" (two hex digits with no
649   leading alphabetic char) and 'cNNN' (decimal digits with a leading
650   alphabetic char that happens to be a hex digit).
651 FlateStream didn't correctly handle zero-length streams.
652 Xref reconstruction didn't handle the case where the opening "<<"
653   immediately followed "trailer" with no intervening whitespace.
654 Fix the %%DocumentSuppliedResources comment in EPS output.
655 Scale annotations to fit their rectangles.
656 Added Stream::close() to handle cases (e.g., patterns) where a Stream
657   object is used multiple times before it is deleted.
658 Added the topLevel arg to Gfx::go() so it doesn't call out->dump() for
659   every pattern element (and form).
660 Rearranged the GfxResources class.
661 Clean up white space handling in Lexer.
662 Make the dpi parameter to PDFDoc::displayPage etc. a double - this
663   avoids margin gaps with fit-page and fit-width.
664 Fix a rounding problem in xpdf.cc that was causing the window to
665   sometimes be one pixel too small.
666 Fixed a minor bug in dealing with Base-14 TrueType font names.
667 Fixed Lab -> RGB color space conversion.
668 Added support for opacity values (from PDF 1.4) to GfxState and
669   OutputDev.  [Thanks to Leonard Rosenthol.]
670 Implemented type 2 functions; rearranged the Function class
671   hierarchy.
673 0.91b (2000-oct-29)
674 -------------------
675 Print a warning about Type 3 fonts (XOutputDev, PSOutputDev).
676 Added the scroll lock behavior to 'n' and 'p' keys in xpdf.
677 Change FileStream buffer size to a #define'd constant.
678 Renamed Pattern to GfxPattern to avoid clashes with Windows and MacOS
679   types.
680 Added CNS (Big5) Chinese font support (CHINESE_CNS_SUPPORT); renamed
681   CHINESE_SUPPORT to CHINESE_GB_SUPPORT.
683 0.91c (2000-nov-19)
684 -------------------
685 Fix an endianness problem in the Type 1 font code which resulted in an
686   incorrect display with "-t1lib plain" on big-endian systems.
687 CCITTFax stream decoder will skip over extra zero bits at end of line,
688   even if EncodedByteAlign flag wasn't set.
689 Added Big5 support to pdftotext (with CHINESE_CNS_SUPPORT enabled).
690 Fixed a typo in the CNS/Big5 encoding translation table.
691 Change the form code in PSOutputDev to store images in arrays of
692   strings.
693 The xref reconstruction (for damaged files) now also looks for
694   'endstream' tags, and the parser uses this information when setting
695   up stream objects.
696 In pdfinfo, convert Unicode chars in the 00xx range into 8-bit chars;
697   print a warning if there are any other Unicode chars.
699 0.92 (2000-dec-03)
700 ------------------
701 Fixed %%BeginResource comment (for xpdf procset) in PostScript
702   output.
703 Added "-title" switch and "xpdf.title" resource to set the window
704   title.
705 Check for <freetype.h> in addition to <freetype/freetype.h>.
706 Upgraded the configure script to smr_macros 0.2.4 - this should fix a
707   bug where configure wasn't correctly finding t1lib.
709 0.92a (2000-dec-17)
710 -------------------
711 Added 'extern "C" { ... }' in various places for ANSI C++ compliance.
712 Tweaked the code that figures out DPI for fit-to-page and fit-to-width
713   modes.
714 Fixed the image transformation code in XOutputDev -- no more missing
715   lines.
716 Implemented color key image masking in XOutputDev.
718 0.92b (2001-jan-07)
719 -------------------
720 Fixed a bug in the error-checking code in the Separation/DeviceN color
721   space parsing functions.  [Thanks to Lidia Mirkin.]
722 Added wheel mouse support (mouse buttons 4 and 5).  [Thanks to
723   Thorsten Schreiner.]
724 Added preliminary support for FreeType 2 (disabled by default).
726 0.92c (2001-jun-04)
727 -------------------
728 Fixed a bug in the new image transformation code.
729 Look for character names of the form "<letter><digit><digit>", instead
730   of looking for names beginning with a few specific letters.
731 T1FontFile::T1FontFile wasn't initializing vars, and ~T1FontFile
732   wasn't checking before calling T1_DeleteFont -- this caused crashes
733   if it tried to open a nonexistent font file.
734 Catalog::Catalog didn't set baseURI to NULL early enough.
735 Tweak the check for strings.h in the configure script.
736 Yet another fix for the image rotation code in XOutputDev --
737   off-by-one problem when upsampling.
738 Handle Type 1/1C encodings when using FreeType 2.
739 Allow FreeType2 to render user-supplied Type 1 base fonts.
740 Opening a new file from full-screen mode tried to scroll.
741 Fixed a bug in GfxFont constructor (missing check for NULL base font
742   name).
743 Don't crash if a Type 1 font's FontBBox is non-integer.
744 Pdfinfo prints page size.
745 Tweak for the alpha hack in T1Font/TTFont: sample the middle pixel
746   instead of the top-left pixel.
747 Automatically activate the text input widget in the find window.
748 Changed a Japanese char code mapping in XOutputDev and TextOutputDev:
749   period was being incorrectly mapped to small circle (end-of-sentence
750   character).
751 Add the 0/+/-/z/w key bindings to control the zoom setting.
752 Fixed ImageOutputDev (pdfimages) to correctly handle inline image
753   masks.
754 Extract ascent/descent info from font descriptor.
756 0.92d (2001-jun-26)
757 -------------------
758 Embed TrueType fonts in PostScript output.  (Added a "-noembtt" flag
759   to pdftops.)
760 Extract encoding from TrueType fonts.
761 Moved Function classes to a separate file (Function.h/cc).
762 Implemented multi-dimensional sampled Functions.
763 Implemented Type 4 (PostScript calculator) Functions.
764 For Type 0 fonts, FontDescriptor is in descendant font, not parent.
765   [Thanks to Lidia Mirkin.]
766 Added the "-htmlmeta" option to pdftotext.
767 In TextOutputDev, when computing the number of blank lines to insert,
768   do a sanity check on the result.
769 If both FlateDecode and some other filter (e.g., DCTDecode) were
770   applied to an image stream, getPSFilter() crashed instead of just
771   returning NULL.
772 Handle the /Identity function.
774 0.92e (2001-aug-23)
775 -------------------
776 Widths in font dict should override built-in font widths.
777 Changed "rotate left/right" menu items to "rotate
778   clockwise/counterclockwise".
779 The link parsing code choked if the Border array was incorrect (too
780   short).
781 Modified PSOutputDev to output CMYK for fill/stroke colors.
783 0.93 (2001-oct-25)
784 ------------------
785 Implement PDF 1.4 (128-bit) decryption.
786 Bump supported PDF version number to 1.4.
787 Text output for Simplified Chinese.  [Thanks to Cheung Siu Fai.]
788 Read an app-defaults file for Xpdf.
789 Read a system-wide config file (<prefix>/etc/xpdfrc) if ~/.xpdfrc
790   doesn't exist.
791 Accept and verify owner password; if correct, allow all actions.
792 Added a "-level2sep" option to pdftops to generate Level 2 separable
793   PostScript.  The PostScript separation convention operators are used
794   to handle custom (spot) colors.  [Thanks to Thomas Freitag for help
795   on this.]
796 Add support for FreeType 2 to the configure script.  Warning: this
797   requires FT 2.0.5 or newer.
798 Fixed the bounding rectangle overlap test in the disconnected subpath
799   fill hack in XOutputDev.
800 Stupid typo in font name table in PSOutputDev.
801 Changing the zoom setting with a keyboard shortcut didn't update the
802   displayed setting.
803 Modified the mouse wheel support and added the second wheel (mouse
804   buttons 6 and 7).  [Thanks to Michal Pasternak.]
805 Character and word spacing is affected by horizontal scaling (display
806   and PS output).  [Thanks to Eddy Ng.]
807 Rotation specified by the text matrix, character spacing, and
808   horizontal scaling interacted incorrectly (display and PS output).
809 Some broken Type 1/1C fonts have a zero BBox -- kludge around this by
810   assuming a largeish BBox.
811 Handle PDF files with an incorrect (too small) xref table size.
812 Allow "-?" and "--help" as aliases for "-h" (all apps).
813 Correctly handle unescaped parens in strings in Lexer.
814 Fixed a bug in LTK where a menu got posted multiple times if you right
815   clicked while a page was being rendered.
816 Removed a comma inside a string in configure.in.
817 Kludge around broken PDF files that use char 32 but encode it as
818   .notdef instead of space.
819 Clean up various compiler warnings: use constructor args like "fooA"
820   if there is a field named "foo".  Everything now compiles cleanly
821   under gcc 2.91.66, 2.95.2, and 3.0.1.
822 Page objects now read all of the page rectangles (MediaBox, CropBox,
823   BleedBox, TrimBox, ArtBox), as requested by the pdfTeX folks.
824   Added a new PDFRectangle struct to hold these.
825 Use XOutputDev's Type 3 font size hack in TextOutputDev too, so it
826   does a little better job of extracting text in Type 3 fonts.
827 Modify pdfimages to write one-bit images as PBM files.
828 Work around a bug in cygwin's implementation of fseek.
830 0.93a (2001-nov-21)
831 -------------------
832 Implemented the sh (shaded fill) operator for the axial shading type.
833 Minor fixes to avoid compiler warnings.
834 Cleaned up global variables -- moved many into instance vars and
835   function args.
836 Minor fixes for OS/2.
837 Fix the system config file path for VMS.
838 Fix an uninitialized var in XOutputDev that caused crashes on Alphas.
839 Don't incrementally update the display in full-screen mode.
840 For Type 1/1C fonts, use the FontBBox from the PDF FontDescriptor
841   (instead of the one in the font file) if present -- this avoids
842   problems with fonts that have non-standard FontMatrixes.
843 Add the Euro character to WinAnsiEncoding.
844 Track the bounding box of the clip region to make rendering patterns
845   more efficient.
846 Fix openTempFile() for Win32.
848 0.93b (2001-dec-11)
849 -------------------
850 Added a duplex option to PSOutputDev and a -duplex switch to pdftops.
851 Added XRef::PDFgetDocInfoNF() for pdftex project.
852 Updated the VMS build script.
854 0.93c (2001-dec-12)
855 -------------------
856 Completely rewrote the code that handles font encodings:
857   - everything is Unicode-based
858   - 16-bit fonts are handled much more cleanly
859   - text output encoding can be set more flexibly
860 New .xpdfrc config files.
862 1.00 (2002-feb-01)
863 ------------------
864 More work on the font encoding rewrite:
865   - use the ToUnicode font dict entry
866   - pdfinfo and pdftotext (with '-htmlmeta') convert info strings to
867     the selected text encoding
868 Added key bindings for forward ('v') and backward ('b').
869 Added the pdffonts program which lists the fonts used in a PDF file.
870 Fixed several problems in the TrueType font embedding code (for
871   PostScript output).
872 Accept named destination on command line.
873 Added several new items to pdfinfo: file size, PDF version, tagged
874   (yes or no), XML metadata (with the -meta option).
875 Pdftops didn't get the portrait/landscape setting correct for PDF
876   files with rotated pages.
877 The TrueTypeFontFile class (including the Type 42 converter) now
878   understands cmap format 6.
879 Improved the "about" window -- mention the GPL, add a list of key
880   bindings.
881 Added Zcaron and zcaron characters to WinAnsiEncoding.
882 The '0' keyboard shortcut didn't update the zoom popup menu.
883 Handle the complete list of alternate names for the Base14 fonts.
884 Fixed substitute font scaling in XOutputDev - scale only the width,
885   not the height.
886 Implemented stitching (type 3) functions.
887 Handle the case of moveto/closepath/clip, which defines an empty
888   clipping region.
889 Move dependences into separate Makefile.dep files; get rid of the
890   distdepend target.
891 Move all of the configure-script-generated -D options out of the
892   Makefiles and into a top-level .h file (aconf.h).
893 Cleaned up the FreeType 1/2 detection code in the configure script.
894 Pdfinfo prints dates in a more readable format.
895 Fixed a bug in the Paeth image predictor.
896 Handle annotations with multiple states.
897 Another workaround for buggy X servers: clip points that are way out
898   of bounds.
899 Added libpaper support (for Debian).
900 Generate PostScript DSC resource comments for PS (not just EPS)
901   files.
902 The save and restore (q/Q) operators shouldn't save/restore the path.
903 Performance optimization: disable pattern drawing in TextOutputDev.
905 1.00a (2002-feb-25)
906 -------------------
907 Added an optimized special case for one-bit images in XOutputDev.
908 Implemented CID TrueType font embedding; added a psEmbedCIDTrueType
909   option.
910 The initialZoom X resource was broken.
911 The reverse MacRoman encoding should return 32 for "space" (not 202,
912   which is an alternate encoding).
913 Tweaks to the FreeType 2 support: only disable hinting if the bytecode
914   interpreter is disabled (i.e., disable autohinting but not bytecode
915   hinting); add some padding to the glyph cache for CJK fonts.
916 Added level3 and level3Sep options for the psLevel setting and
917   corresponding -level3 and -level3Sep options to pdftops.
918 Added a -level2 option to pdftops for consistency.
919 Avoid a divide by zero in pdftotext.  [Thanks to William Bader.]
920 Added a Greek language support package.  [Thanks to Alexandros
921   Diamantidis and Maria Adaloglou.]
922 Don't bother trying to extract a "builtin" encoding from a TrueType
923   font.
924 Accept either a page number or a page reference in a link
925   destination.
926 Update the fontFixedWidth flag in GfxFont after reading the char
927   widths (used by the Acorn RiscOS port).
928 Removed yet another (illegal but not caught by gcc) class specified
929   from a .h file.
930 Avoid using snprintf - it's not available everywhere.
931 Improved the CMYK->RGB transform.
932 Use mkstemps where available.
934 1.01 (2002-may-20)
935 ------------------
936 Implemented Type 3 fonts.
937 Implemented PostScript CID font embedding; added a
938   psEmbedCIDPostScriptFonts option.
939 Implemented PostScript 16-bit font substitution; added psNamedFont16
940   and psFont16 options.
941 Moved the initialZoom setting from X resources to the xpdfrc file.
942 Implemented the radial shading type in the sh (shaded fill) operator.
943   [Thanks to Mike Sweet.]
944 Added an 'include' command to the xpdfrc format.
945 Added the displayNamedCIDFontX option so different fonts can be used
946   within one character collection.
947 Added a simple reverse video mode (-rv switch, xpdf.reverseVideo
948   resource).
949 Implemented stroked text in XOutputDev (with t1lib and FreeType2).
950   [Thanks to Leonard Rosenthol.]
951 Implemented stroked text in PSOutputDev.
952 Added a built-in Unicode map for UCS-2.
953 New key binding in xpdf: 'g' activates the page number text field.
954 PSOutputDev will now embed external TrueType fonts in addition to
955   external Type 1 fonts.
956 The psEmbedType1Fonts and psEmbedTrueTypeFonts options were missing
957   the "Fonts" suffix.
958 Documentation in xpdf.1 for -freetype option was wrong.
959 Added the Big5ascii Unicode map to the Chinese-traditional support
960   package (maps 7-bit ASCII straight through).  [Thanks to Lawrence
961   Lai.]
962 Modified the EUC-CN and EUC-JP encodings to pass 7-bit ASCII straight
963   through.  [Thanks to Lawrence Lai.]
964 Avoid a divide by zero in XOutputDev.  [Thanks to Simon Burge.]
965 Remove old code in openTempFile that removed an extension from the
966   name returned by tmpnam.
967 Tweak the scrolling behavior when switching pages.  [Thanks to Case
968   Jones.]
969 In the code that guesses character names (for font subsets), also
970   handle names of the form 'ABnnn'.  [Thanks to Colin Granville.]
971 Fix the transform code for annotations.
972 Improved the CMap file parser to handle more general PostScript
973   lexical conventions.
974 Added '-enc' option to pdfinfo.
975 Added the small caps and oldstyle numbers from Adobe's Unicode
976   corporate use area to the Latin1 and ASCII7 Unicode maps.
977 The code in TextOutputDev that guesses Type 3 font size could generate
978   a zero size, which resulted in div-by-zero errors.
979 Various tools (including Adobe's) occasionally embed Type 1 fonts but
980   label them Type 1C - so check for a '%!' at the start.
981 Some tools embed Type 1C fonts with an extra whitespace char at the
982   beginning - just skip over it.
983 Fixed a typo in the Simplified Chinese add-to-xpdfrc file.
984 Updates to dj_make.bat and the djgpp build instructions.
985 Added a Turkish language support package.
986 Updated VMS build scripts.  [Thanks to Martin Zinser.]
987 Modify the incremental display update code to redraw less often if
988   most of the commands are vector graphics, as opposed to text and
989   images.
990 Tweak the Type 1 font bbox code to look at the bboxes in both the PDF
991   font object and the embedded font file.
992 Fixed the ETenms-B5-H CMap file (for traditional Chinese) to map the
993   Latin characters to their proportional versions.
994 Added an optional displayCIDFontX entry for one of the Arphic TrueType
995   fonts in the traditional Chinese 'add-to-xpdfrc' file.
996 Remove leading '-' on include statements in Makefiles.
997 Added psASCIIHex parameter.
998 Added the GBK Unicode map to the simplified Chinese language pack.
999 Pdftotext now opens the text file in binary mode to avoid Microsoft's
1000   annoying automatic end-of-line translation stuff.
1001 Added an executeCommand function in goo/gfile.cc.  [Thanks to Mikhail
1002   Kruk.]
1003 The %ALDImagePosition OPI comment was wrong if the page was scaled to
1004   a different paper size.
1005 The OPI code was saving the default transform matrix before calling
1006   setpagedevice, which can change the matrix.
1007 Fixed a crash when an inline image dictionary contains garbage.
1008 Upgraded to autoconf 2.53.
1009 Use unsigned int file offsets, to allow access to PDF files in the 2-4
1010   GB size range; use fseek64/ftell64 if available.
1011 Fixed two floating point exception cases that came up with broken PDF
1012   files.
1013 Avoid a crash when printing an error message regarding an unnamed
1014   font.
1015 Default link border width should be 1.  [Thanks to Michael Pfeiffer.]
1016 Minor tweak to build with FreeType 2.1.0.
1017 Handle "weird" characters in PostScript font names.
1018 PSOutputDev now handles PostScript XObjects.
1019 Added several more page attributes for the pdftex project.
1020 Transferred the copyright to Glyph & Cog, LLC.
1022 2.00 (2002-nov-04)
1023 ------------------
1024 Switched to the Motif toolkit.
1025 Support multiple open documents (in separate windows).
1026 Added document outlines to the viewer.
1027 Modified the text extraction (placement) algorithm.
1028 Implemented the JBIG2 decoder.
1029 Added a Latin2 language support package.
1030 Added support for movie annotations.
1031 Switched back to native LZW decompression code.
1032 Text extraction from Type 3 fonts was (partly) broken.
1033 The owner password checking code was missing a step in the case of
1034   128-bit encryption.
1035 Added the 'printCommands' option to the xpdfrc file.
1036 Added key binding for '?' to bring up the about/help dialog.
1037 In TextOutputDev, ignore any text that's outside the page bounding
1038   box.
1039 Text extraction throws away "tiny" characters after the first 20000
1040   per page, to avoid really slow runtimes with PDF files that use
1041   special fonts to do shading or cross-hatching; added the
1042   'textKeepTinyChars' option to disable this behavior.
1043 Text extraction discards duplicated text (fake boldface, shadow
1044   effects).
1045 Added ctrl-F as a key binding for find.
1046 Added a "find next" function, bound to ctrl-G.
1047 Added ctrl-P as a key binding for print.
1048 Modified the DCT decoder to handle progressive and non-interleaved
1049   JPEG streams.
1050 Added key bindings for ctrl-Home and ctrl-End.
1051 Allow the initialZoom setting to be made in either the xpdfrc file or
1052   as an X resource.
1053 Added a Hebrew language support package.  [Thanks to Roy Arav.]
1054 The "make distclean" target now creates (empty) Makefile.dep files in
1055   the three subdirectories.
1056 Initialize XRef::ownerPasswordOk.
1057 Correctly handle stroking of Type 3 fonts in PSOutputDev.
1058 Generate correct PostScript for fonts with "weird" character names
1059   (e.g., "(").
1060 Generate correct PostScript for images using Indexed color spaces with
1061   DeviceN base color spaces.
1062 Added lowercase Roman numerals to ISO-2022-CN.unicodeMap (simplified
1063   Chinese support package).
1064 Tweak the image scaling code to better handle flipped (top-bottom
1065   and/or left-right) images.
1066 Generate correct PostScript code for inline images and images in Type
1067   3 fonts which are too large for a single PS string.
1068 Correctly handle indexed color spaces whose base color spaces have
1069   component ranges other than [0,1].
1070 Optimized the DCT decoder.
1071 Fixed mistakes in the list of key bindings in the about/help dialog.
1072 Optimized the Flate decoder.
1073 Add literal names for punctuation and digits to the Unicode name
1074   table.
1075 Cygwin's popen wants mode "r", not "rb".
1076 Fixed a bug in the Type 4 function parser (the "if" operator wasn't
1077   parsed correctly).
1078 Fix a bug in PS output for TrueType fonts with no PDF encoding.
1079 Make the bbox size in FTFont more liberal (to avoid problems with
1080   fonts that have incorrect bboxes).
1081 Reverse the colors in PBM files generated by pdfimages, so the common
1082   case (an image mask filled with black) comes out correct.
1083 Add fseeko/ftello support which is basically identical to
1084   fseek64/ftell64.  [Thanks to Nassib Nassar.]
1085 Modified column assignment in text extractor to account for characters
1086   that convert to multiple characters in the output encoding.
1087 Fix TrueType fonts which have an incorrect cmap table length.
1088 Work around a pragma bug in the version of gcc that ships with MacOS X
1089   10.2.  [Thanks to Frank Siegert and Andrew Stone.]
1090 Fix a problem that was causing an infinite loop when a damaged content
1091   stream contains an 'ID' command inside a dictionary.
1092 Handle the case where systempapername() returns NULL (libpaper
1093   support).
1094 Handle fonts which are defined directly in the font resource
1095   dictionary rather than as separate objects.
1096 Track process colors in Level 1 separable PostScript.
1097 Pdfinfo now checks the return value from mktime to avoid seg faults in
1098   flakey strftime implementations.
1099 If duplex is not enabled in PostScript output, leave the duplex
1100   setting alone, allowing the spooler to insert its own setting.
1101 Added three missing fclose calls.
1102 Change the default encoding for TrueType fonts (used when the PDF file
1103   doesn't specify an encoding) from MacRomanEncoding to
1104   WinAnsiEncoding.
1105 Move X_CFLAGS to the end of the list in CXXFLAGS (in Makefile.in) to
1106   avoid some of the FreeType2 include path problems.
1107 Fixed an obscure bug in the LZW decoder.  [Thanks to Martin
1108   Schroeder.]
1109 Fixed a bug in decryption when using the newer (PDF 1.4) algorithm
1110   with shorter-than-128-bit keys.
1111 Minor optimization for image data streams: the ImageStream class can
1112   return an entire buffered line.
1114 2.01 (2002-dec-05)
1115 ------------------
1116 Redesigned the text extraction process:
1117   - process the text into "reading order"
1118   - added a "-layout" flag to pdftotext to switch back to the old
1119     style, where physical layout is maintained
1120   - use of the "-raw" flag is no longer recommended
1121 Added the -reload option for xpdf (in remote mode).
1122 Added support for external CID fonts; added the displayCIDFontT1 and
1123   displayNamedCIDFontT1 commands to the xpdfrc file.
1124 Handle the case of moveto/newpath/clip, which defines an empty
1125   clipping region (just like moveto/closepath/clip).
1126 Accept XYZ link destinations with missing array elements.
1127 Fix some problems with state save/restore triggered by Type 3 fonts
1128   that reference other fonts.
1129 Accept bogus font names based on "Symbol": Symbol,{Bold,Italic,
1130   BoldItalic}.
1131 Fixed color and font resource names in the xpdf man page.
1132 Was using delete instead of gfree in OutlineItem::~OutlineItem.
1133 Set the busy cursor in the find dialog while searching.
1134 Map variants of the copyright, trademark, and registered trademark
1135   symbols to the proper Unicode codes, not to Adobe's corporate use
1136   area codes.
1137 Fixed a floating point exception bug in TextOutputDev (check for a
1138   too-small denominator).
1139 Fixed a typo in TextOutputDev, in the code that generating blank lines
1140   to add vertical whitespace.
1141 Config files whose last line didn't end with a LF (or CR+LF) weren't
1142   being handled correctly.
1143 The code that handled CIDToGIDMaps in Type 2 CIDFonts was broken.
1144 Check the per-glyph bounding box in Type 3 fonts, and don't try to
1145   cache glyphs with bogus bboxes.
1146 Allow ToUnicode CMaps to use fewer than four hex digits in the Unicode
1147   char indexes.
1148 Added multithreading protection to the GlobalParams class.
1149 Fixed a bug in end-of-stream detection with the TIFF predictor.
1150 Added some characters to MacRomanEncoding to match up with Apple's
1151   definition.
1153 2.02 (2003-mar-24)
1154 ------------------
1155 Rewrote the text extractor code that assembles words into lines to
1156   better handle vertically overlapping lines.
1157 Add the "match" option for paper size (in PostScript output).
1158 Added support for external 16-bit TrueType fonts; added the
1159   displayCIDFontTT and displayNamedCIDFontTT commands to the xpdfrc
1160   file.
1161 Added an Arabic language support package.
1162 Added the Windows-1255 encoding to the Hebrew language package.
1163 A missing NULL check was causing a crash when closing the file in a
1164   single window (which clears out the window, but leaves it open).
1165 Deal with TrueType fonts whose glyph data is out of order - this
1166   affected both FreeType rasterization and PostScript generation.
1167 Munge font names in PSOutputDev to avoid names that are problematic
1168   for ghostscript because they start with an out-of-limits number
1169   (e.g., 1e999foo).
1170 Modify the TrueType font encoding deciphering algorithm in yet another
1171   attempt to match up with Acrobat's behavior.
1172 Bounds check the indexHigh value in indexed color spaces.
1173 The text extractor no longer bothers trying to get an average
1174   character width for Type 3 fonts, since it generally doesn't work
1175   very well (because Type 3 metrics are unreliable).
1176 Don't crash if the user hits ctrl-G ("find again") before doing a
1177   find.
1178 Set the button pixmap foreground color correctly.
1179 Handle text drawn backward on 180 degree rotated pages.
1180 Added a magic call to XtUngrabButton after calling XmCreatePopupMenu
1181   which appears to prevent some very odd problems (idea taken from the
1182   DDD source code).
1183 Fix the MacOS X fix (needed to include <AvailabilityMacros.h>).
1184 Fixed a bunch of Motif 1.x / X11R5 incompatibilities.  [Thanks to
1185   William Bader and Albert Chin-A-Young.]
1186 Fixed various bugs in previously untested code in the JBIG2 decoder.
1187 Modify the XPDFCore destructor to avoid a bogus warning message from
1188   OpenMotif 2.2.
1189 Modified the Type 1C font parser to do proper bounds checking.
1190 Fixed the bounds checking in the TrueType font parser.
1191 Text extractor shouldn't do block merging in physical layout mode.
1192 Fixed a problem in PSOutputDev in level2sep mode with images in a
1193   Separation color space and with a non-default Decode array.
1194 Text extraction with "-raw" was concatenating lines from the bottom of
1195   one column and the top of the next.
1196 Handle Type 1C subroutines in the font converters.
1197 Correctly handle progressive JPEG images whose scans are slightly
1198   different sizes (e.g., the Y scan rounds up to a multiple of 8
1199   pixels and the Cb/Cr scans round up to 16 pixels).
1200 Avoid a potential divide-by-zero problem in TextOutputDev.
1201 Modified the T1Font and FTFont modules to correctly handle glyphs that
1202   are larger than the font's claimed bounding box.
1203 Tweak dupMaxDeltaX parameter in TextOutputDev to avoid triggering on
1204   double characters.
1205 Improved detection in pdfinfo for ISO paper sizes.  [Thanks to Hartmut
1206   Henkel.]
1207 Xpdf wasn't responding to the TARGETS atom, which prevented pasting
1208   the selection into various applications.  [Thanks to Phillip Ezolt.]
1209 Handle XObjects with recursive references in their Resources
1210   dictionaries (in PSOutputDev).
1211 Change PSOutputDev to deal with invalid PDF files that use
1212   non-embedded TrueType fonts with no encoding.
1213 Check for undersized Widths arrays in fonts.
1214 Add bounds checking code to Array class.
1215 Updated VMS build scripts.  [Thanks to Martin Zinser.]
1216 Tweak the TrueType font handling code (again):
1217   - char codes in symbolic fonts may or may not be offset by 0xf000
1218   - discard empty tables because they sometimes confuse FreeType
1219 Fixed bounds checking in the Flate decoder.
1220 Removed a bogus error message for exponential functions without
1221   explicit C0/C1 values.  [Thanks to Hartmut Henkel.]
1222 Handle the other Unicode cmap type (platform=0) in TrueType fonts.
1223 Added support for the SGI Motif horizontal paned window widget.
1224   [Thanks to Felix Ritter.]
1225 Ignore extra elements in link destination arrays.
1226 Accept external Type 1 font files with a suffix of ".ps" or no suffix
1227   at all.
1228 Add a bounds check in the DCT decoder.
1229 Added instructions for building xpdf.exe under cygwin/XFree86.
1230 Tweaked the word separation parameter for raw-mode text extraction.
1232 2.03 (2003-oct-10)
1233 ------------------
1234 Rewrote the text extractor to:
1235   - do a better job with rotated text;
1236   - handle right-to-left scripts;
1237   - be faster.
1238 Changed the zoom setting to use a percentage (relative to 72 dpi)
1239   instead of a zoom "factor".
1240 If the PDF file has an outline, open the outline pane initially.
1241 Added -f and -l options to pdfinfo; print multiple page sizes.
1242 The HAVE_XTAPPSETEXITFLAG test in XPDFApp.cc was backwards.
1243 The BitsPerComponent entry is optional in image mask objects.
1244 Render any annotation with an appearance stream, instead of just
1245   Widget and Stamp annotations.
1246 Fix a bug in the TrueType font checker: the test for an unsorted
1247   'loca' table was wrong.
1248 Modify the TrueType cmap selection algorithm yet again to try to match
1249   Adobe's behavior.
1250 Changed sqrt(2) to sqrt(2.0) in pdfinfo.cc to make various compilers
1251   happy.
1252 Fixed a deadlock problem (when MULTITHREADING is set); cleaned up some
1253   other problems with the locking code.
1254 Fixed a bug in the interpolation code for type 0 (sampled) functions.
1255 Implemented type 1 (function-based) shaded fills.
1256 Fixed some stupid bugs in the JBIG2 decoder (introduced with the
1257   previous optimization work).
1258 Fixed a typo in the code that parses vertical font metrics for CID
1259   fonts that was causing a seg fault.
1260 Fixed a couple of bugs that were causing seg faults with badly damaged
1261   PDF files.
1262 Limit the number of nested Forms to avoid infinite recursion (in buggy
1263   PDF files).
1264 Add a special case for rectangular clip regions - make sure these
1265   don't drop pixels on the right and bottom edges.
1266 Tell FreeType not to use glyph bitmaps when in anti-aliased mode.
1267 Read all of the border style info for links.
1268 All of the shaded fill types now do at least one bisection to avoid
1269   problems when the colors at the endpoints of the domain are the
1270   same.
1271 If the Length2 parameter for an embedded Type 1 font was incorrect
1272   (too small), pdftops was losing font data.
1273 Deal with (broken) DCT streams that use the same component ID number
1274   for different components.
1275 The MediaBox page attribute was not being inherited correctly.
1276 Fixed a bug in the Type 1C font converter related to local
1277   subroutines.
1278 The Type 1C -> Type 1 font converter was allocating the font dictionary
1279   one slot too small.
1280 Added a missing private dictionary entry to Type 1 fonts generated by
1281   the Type 1C converter.  [Thanks to Michael Shell.]
1282 Fixed bugs in the tiling pattern fill code.
1283 Try the TrueType 0xf000 char code offset hack for the MacRoman
1284   encoding too (in addition to MS Symbol).
1285 Update the font metrics info for the Base 14 fonts to include the Euro
1286   character.
1287 SECURITY HOLE: Escape various characters in URLs before running a web
1288   browser (or movie viewer).  [Fixed in 2.02p11]
1289 SECURITY HOLE: In the dialog used to verify "launch" links, provide a
1290   scrolling view if the command to be run is excessively long.  [Fixed
1291   in 2.02p11]
1292 Added an option to disable insertion of page breaks (form feed
1293   characters) in extracted text (pdftotext -nopgbrk; xpdfrc
1294   "textPageBreaks" option).
1295 Check for 8-bit fonts that specify an out-of-range FirstChar or
1296   LastChar.
1297 Correctly handle an obsolete Type 2 charstring op (in the Type
1298   1C-to-Type 1 font converter).  [Thanks to Helge Blischke.]
1299 Use the font encoding info to fill in holes in the ToUnicode map.
1300 Added character names for Bulgarian (in the Cyrillic support pacakage)
1301   and Greek.
1302 Handle clipping to text in xpdf and pdftops.
1303 Fix color space detection in DCT decoder.  [Thanks to Dwight Kelly.]
1304 Added the "unicodeToUnicode" xpdfrc option, intended (initially) for
1305   Arabic support.
1306 Handle the case in PSOutputDev where two font objects refer to the
1307   same embedded TrueType font, but with different encodings.  [Thanks
1308   to Frank Siegert.]
1309 Kill any pre-existing path before drawing a form (or annotation).
1310 Save state before rendering page content; restore state afterward.
1311 Fix Stream::reset/close to work correctly with encoder streams; fix
1312   PSOutputDev to use Stream::close consistently.
1313 Fix a seg fault when hitting the 'back' button after closing a file.
1314 GfxState::getStrokeGray was returning the fill gray value (this only
1315   affected Level 1 PS output).
1316 Change PSOutputDev to reuse dictionaries in Level 1 mode (since Level
1317   1 PS interpreters don't do garbage collection).  [Thanks to Frank
1318   Siegert.]
1319 PSOutputDev was generating incorrect translations for landscape-mode
1320   pages.
1321 Implemented shading pattern color spaces.
1322 PSOutputDev wasn't correctly handling Type 3 fonts which used image
1323   resources (as opposed to inline images).  [Thanks to Frank Siegert.]
1324 The fix from 1.00 which clipped out-of-bounds points was a bit too
1325   aggressive.
1326 Do proper Floyd-Steinberg dithering in XOutputDev.
1327 Don't automatically check for a null owner password (to match Adobe's
1328   behavior).
1329 Allow the FlateDecode filter in Level 3 PostScript output.
1330 Fixed small bugs in the Type 1C -> Type 1 converter and Type 1C ->
1331   Type 0 converter.  [Thanks to Tom Kacvinsky.]
1332 Work around another weird Motif problem with the right button menu
1333   (which was sometimes causing the menu to not be displayed).
1334 Make the code that handles fonts defined directly in the resource dict
1335   more robust.
1336 Add a brief description of the outline pane to the xpdf man page.
1337 Ignore extra operands to content stream operators.
1338 Fixed a bug in the CCITTFax decoder.
1339 Allow the Count entry in a Pages dictionary to be a real number
1340   (because some PDF generators actually do this).
1341 Shading pattern fills weren't being clipped correctly.
1342 Incorrect shallow copies in GfxRadialShading and StitchingFunction.
1343 The StitchingFunction destructor wasn't checking for funcs being
1344   NULL.
1345 Change the TrueType code-to-GID mapping code so it looks at the
1346   TrueType 'post' table.
1347 Set the print command in the print dialog once at startup, don't
1348   change it each time a file is (re)loaded.
1349 Generate the %%BoundingBox comment in regular PostScript files (not
1350   just EPS files).
1351 Fixed a bug in the Unicode CMap parser.
1353 3.00 (2004-jan-22)
1354 ------------------
1355 New PDF rasterizer ("Splash").
1356 Added support for PDF 1.5:
1357   - JPX (JPEG 2000) decoder
1358   - XRef streams
1359   - object streams
1360   - DeviceN color spaces with up to 32 components
1361   - Added new CMaps to the CJK language support packages
1362 Replaced pdftopbm with pdftoppm (which can generate PBM, PGM, and PPM
1363   files).
1364 Reorganized the font file parser code into a new library ("Fofi").
1365 Removed support for FreeType 1.x.
1366 Removed support for X server fonts - Xpdf (and pdftoppm) will now
1367   search for the URW fonts (from ghostscript).
1368 Changed the "-t1lib" and "-freetype" switches; replaced the
1369   "t1libControl" and "freetypeControl" config file options with
1370   "enableT1lib", "enableFreeType", and "antialias".
1371 Added the "-box" option to pdfinfo.
1372 Added imageable area support to PSOutputDev (for CUPS); added the
1373   "psImageableArea" config file option.
1374 Added the "-nocrop", "-expand", "-noshrink", and "-nocenter" switches
1375   to pdftops; added the "psCrop", "psExpandSmaller", "psShrinkLarger",
1376   and "psCenter" config file options.
1377 Dictionary size was in PostScript code generated for Type 3 fonts.
1378 The PS code generated for images in Type 3 characters was broken.
1379 Tweaked the text extractor.
1380 Accept xref entries that are one byte too short (matching Adobe's
1381   behavior).
1382 Change things so "xpdf -h" and "xpdf -v" work if DISPLAY isn't set.
1383 Fix a problem in the damaged file repair code that handles the trailer
1384   dictionary.
1385 Use the "Last" entries in "Outlines" objects - this avoids a problem
1386   with PDF files generated by buggy software that, e.g., sets the last
1387   item's Next pointer to point to itself.
1388 PSOutputDev was not handling DeviceN color spaces correctly in Level 2
1389   images.
1390 Fixed a stupid little bug that broke PS output for JBIG2 images.
1391 Work around a Lesstif bug: set up an extra callback so hitting <Enter>
1392   in the find dialog performs a search.  [Thanks to Elliott Hughes.]
1393 Pdftops was crashing on zero page PDF files.
1394 Add an AC_PREREQ call to configure.in.
1395 Change the 'find' dialog so the text entry box resizes with the
1396   dialog.
1397 Skip extraneous zero bits at the start of a CCITTFax stream.
1398 The PostScript text clipping operator was missing a 'newpath'.
1399   [Thanks to Frank Siegert.]
1400 Fix a bug in tiling patterns with bboxes that don't start at (0,0).
1401 Fix a bug in Type 3 font handling with rotated text.
1402 The tiled pattern fill code was destroying the current path, which
1403   broke the fill+stroke operators when the fill color space was a
1404   tiled pattern.
1405 ICCBased color spaces don't always set their Ranges values correctly,
1406   so just use the values from the alternate color space.
1407 Modified GHash to accept int or void* - this avoids some conversion
1408   warnings.
1409 Check for missing Type 3 CharProcs - avoid a segfault.
1410 Pdffonts now marks all Type 3 fonts as embedded.
1411 Outline entries with no Title string weren't being handled correctly,
1412   resulting in segfaults.
1413 PSOutputDev now forces the text horizontal scale factor to be non-zero
1414   to avoid singular font matrices in the PS code.
1415 Tweaked the error recovery in the CCITTFax decoder.
1416 The LZW/Flate predictor should treat any Predictor value (in the
1417   stream dictionary) >= 10 identically.
1418 PSOutputDev and pdffonts check for NULL font objects (which can
1419   happen, e.g., because of missing CMap files).
1420 Swap the left and right mouse wheel button numbers.
1421 EPS output ("pdftops -eps") now uses the CropBox instead of the
1422   MediaBox as the EPS bounding box.
1424 3.01 (2005-aug-17)
1425 ------------------
1426 Added the continuous view mode, including the '-cont' switch and the
1427   'continuousView' config file option.
1428 At high zoom levels, don't rasterize the entire page - this avoids
1429   problems running out of memory.
1430 Added "search backward" and "match case" options to the find dialog.
1431 Support explicitly masked images and soft masked images.
1432 Add support to DCTStream for 16-bit quant tables.
1433 Don't segfault if the user clicks on an outline entry with a broken
1434   destination.
1435 Changed the makefiles and configure script to skip building pdftoppm
1436   (in addition to xpdf) if X, Motif, or FreeType is not found; changed
1437   the error message in the configure script to match.
1438 Move an inline function in JArithmeticDecoder.cc to avoid compiler
1439   errors.
1440 Fixed a bug in the rasterizer that was sometimes causing infinite
1441   loops with round line caps on vertical lines.
1442 Various rasterizer optimizations.
1443 Look for intermediate resize events - try to avoid lagging when the
1444   user is doing an opaque resize.
1445 The FormType key in Form XObjects is optional.
1446 Handle external 16-bit TrueType fonts correctly, using the Unicode
1447   cmap.
1448 Add class declarations to TextOutputDev.h to work with stricter C++
1449   compilers.
1450 Support FreeType's weird include file stuff (ft2build.h, etc.).
1451 Fixed a bug handling empty paths.
1452 Fixed a text positioning problem in PostScript output.
1453 Handle TrueType collections in FoFiTrueType.cc.
1454 FoFiTrueType constructor was reporting a failure if the post table was
1455   bad - this should be non-fatal.
1456 Type 1 font parser was missing a NULL test.
1457 Mask chars passed to isdigit in goo/parseargs.c to avoid problems with
1458   signed chars.
1459 Added more error checking to the CCITTFax decoder.
1460 Fixed a bug (computing the MCU size) in the DCT decoder.
1461 Change a test in the Splash stroke code to avoid x86 floating point
1462   weirdness.
1463 Reorganized the decryption code to allow security handler plugins;
1464   removed the NO_DECRYPTION #ifdefs.
1465 Added a plugin interface, initially just for security handlers.
1466 Support color key masked images and explicitly masked images in PS
1467   output (Level 2 only).
1468 When checking for aliases of the Base 14 fonts, ignore spaces in the
1469   specified font name.
1470 Handle encrypted PDF files that are missing the file ID string.
1471 Handle tiling patterns more efficiently in the PostScript output.
1472 Rewrote the code that handles color spaces in PostScript output.
1473 Fixed a bug in the Type 1C font parser - zero-length indexes (and
1474   zero-length names) weren't handled correctly.
1475 Handle shaded fills more efficiently in the PostScript output.
1476 Implement the remaining shading types (4-7).
1477 Rearranged the Splash color modes.
1478 Add the EarlyChange parameter to LZWStream when generating PostScript.
1479 Check for zero values in line dash arrays in PSOutputDev.
1480 Fixed an uninitialized variable in JArithmeticDecoder which was
1481   causing crashes.
1482 Treat unknown CMap names as identity mappings (to match Adobe's
1483   behavior).
1484 Fixed bugs in the XRef parser related to XRef streams in updated
1485   files.
1486 Added a missing call to FT_Done_Glyph which was causing a memory leak.
1487   [Thanks to Dave Formanek.]
1488 Fixed a bug in text copying that was causing the last word to be
1489   dropped on some pages.
1490 Tweaked the image width/height computation in Splash::drawImage and
1491   Splash::fillImageMask to make striped images work better.
1492 Ignore minus signs in the middle of numbers (to match Adobe's
1493   behavior).
1494 Missing '%s' in format strings for dates in pdftotext '-htmlmeta'
1495   mode.
1496 Change the TrueType code-to-GID mapping code so it looks at the
1497   standard name-to-Unicode mapping before the ToUnicode mapping
1498   defined in the font object.
1499 Added a matteColor setting (command line option and X resource).
1500 Tweaked the CMYK->RGB transform.
1501 Fix some problems in tracking the character position (to match up with
1502   Adobe's highlight file format).
1503 Handle moveto/closepath/stroke correctly.
1504 Check for singular text matrices and font size of zero in PSOutputDev.
1505 Clip PS output to the size of the page (avoiding any gibberish that
1506   lies outside the MediaBox, in the case where the MediaBox is smaller
1507   than the paper).
1508 If the line dash element in an annotation's Border array is of an
1509   invalid type (i.e., not an array), don't draw the link at all (this
1510   matches Adobe's behavior).
1511 Don't remap small caps and oldstyle glyphs in the name-to-Unicode
1512   table - it messes up TrueType font encodings.
1513 Pdftoppm wasn't setting the paper color correctly in mono and gray
1514   modes (this only showed up on big-endian machines).
1515 Missing NULL check was causing crashes when attempting to read non-PDF
1516   files that happened to contain the string '%PDF'.
1517 Fixed a problem in the text extractor that was breaking up words.
1518 Handle vertical text (CJK fonts) in PS output with TrueType fonts that
1519   are missing the vertical metrics tables.
1520 Handle the case where a font object and the corresponding embedded
1521   font are different types.
1522 Handle basic crypt filter functionality.
1523 Added more value checking in the XRef parser, to avoid potential
1524   security problems.
1525 Updated the CJK language support packages: replaced the
1526   displayCIDFontX references with displayCIDFontTT; added pointers to
1527   free TrueType fonts.
1528 Added a missing error message when SplashOutputDev can't parse an
1529   embedded TrueType font file.
1530 PDFCore and TextOutputDev now correctly handle searching for Unicode
1531   strings, including real Unicode case-folding.
1532 Throw away tiling pattern fills that are completely outside the clip
1533   region.
1534 The JPEG 2000 inverse reversible multiple component transform code was
1535   wrong.
1536 Fixed some bugs in shading pattern fills: clipping was wrong, and
1537   background color was not implemented.
1538 Added tool tips for the toolbar buttons.
1539 Decrease the max depth of recursive patch mesh filling if the pattern
1540   has a large number of patches.
1541 Highlight the find text whenever the find dialog is mapped.
1542 Handle page boundary boxes with reversed coordinates.
1543 Fixed a bug in the text extractor code that handles duplicated text.
1544 Optimization work on SampledFunction::transform().
1545 Use the CropBox instead of the MediaBox as the display region.
1546 Dither for PseudoColor (8-bit) displays.
1547 Fix a bug in DCTStream that was causing an infinite loop with
1548   corrupted DCT image data.
1549 Fix a bug in the ToUnicode CMap parser.
1550 Fix a bug in the text extractor - negative font sizes weren't being
1551   handled correctly.
1552 Fix a bug in the text extractor - in certain cases, out-of-bounds text
1553   could cause crashes (generally only in damaged PDF files).
1554 Fix a read-past-end-of-array bug in the JBIG2 decoder.
1555 Fix a case where pdftops was generating lines longer than 255 chars.
1556 Optimize redraws - don't regenerate the XImage every time redrawRect
1557   is called.
1558 The ASCII85 decoder wasn't skipping whitespace properly.
1559 Optimize text extraction: skip (non-inline) image setup entirely.
1560 Added initial transparency support (stroke/fill alpha and blend mode).
1561 Added support for the overprint setting in PostScript output.
1562 Fixed various buffer overflow bugs.
1563 Handle negative font sizes and horizontal scaling correctly - this
1564   affected PSOutputDev for all text operators, as well as the TJ
1565   operator for all OutputDevs.
1566 Fixed a buffer overflow in the CCITTFax decoder.
1567 Fixed an out-of-order entry in the list of font name aliases.
1568 Fixed a backward loop in the PostScriptFunction code.
1569 Treat a zero-length base URI the same way as a nonexistent base URI.
1570 Add a divide-by-zero check in TextOutputDev (the problem was happening
1571   in cases of mixed horizontal and vertical text).
1572 PSOutputDev wasn't rounding the page bounding box coordinates
1573   correctly.
1574 Support the SOF1 marker in DCT (JPEG) image streams.
1575 Minor changes to GlobalParams.h and JPXStream.h because some compilers
1576   don't like anonymous structs inside anonymous unions.
1577 Xpdf now complains about a negative page number.
1578 Changed GString::cmp and GString::cmpN to correctly handle '\0' chars
1579   in the middle of strings.
1580 Fixed the radial shading code; corrected the handling of the 'extend'
1581   parameters.
1582 Added the gmallocn and greallocn functions.
1583 Fixed a bug in the TIFF image component predictor which shows up with
1584   components that are not 1 or 8 bits wide.
1585 Optimized FlateStream::loadFixedCodes().
1586 For non-embedded Base-14 fonts, don't use the ascent/descent/bbox
1587   values from the FontDescriptor - various PDF generators get them
1588   wrong.
1589 Fixed a bug in the text extractor - words on the same line (especially
1590   in tables) were being split vertically onto multiple lines.
1591 Automatically select the correct radio button ("print with command"
1592   vs. "print to file") in the print dialog.
1593 Don't create the "open" and "save as" dialogs until needed - this
1594   avoids stat-ing every file in the directory at startup.
1595 Changed the Big5 and Big5ascii encodings (in the traditional Chinese
1596   language support package) to include characters from the Unicode
1597   database (which aren't mentioned in the Adobe character collection
1598   documentation).
1599 Added the '-pagecrop' switch to pdftops.
1600 Tweaked the RGB->gray and CMYK->gray conversion functions to match the
1601   PDF spec.
1602 The JPEG 2000 decoder wasn't correctly handling codeblocks split
1603   across multiple packets/layers.
1604 Fixed a typecast that caused compile errors on 64-bit systems.
1605 The CMap parser wasn't handling the 'cidchar' construct.
1606 Handle the case in PSOutputDev where two font objects refer to the
1607   same embedded 16-bit TrueType font, but with different CIDToGIDMaps.
1608 Changed the configure script to report more accurate warnings when
1609   it can't find X / Motif / FreeType.
1610 Encryption with revision=2 always uses a 40-bit key, regardless of the
1611   specified Length value.
1612 Yet another minor change to the TrueType font encoding deciphering
1613   algorithm.
1614 Don't completely invalidate the Catalog if one (or more) of the page
1615   objects are bogus -- just skip over those pages.
1616 Removed the workaround in pdftops for too-small Length2 values in Type
1617   1 fonts -- it was causing problems on various PostScript printers.
1618 Started adding error checking to the JBIG2 decoder (this is nowhere
1619   near complete yet).
1620 Extended the "unicodeToUnicode" config option to also apply to CID
1621   fonts.
1622 Added the narrow Latin characters to the Adobe-Korea1.cidToUnicode
1623   file in the Korean language support package.
1624 Fixed the code that handles page rotation in PSOutputDev.
1625 When converting a Type 1C glyph to a Type 1 glyph, insert closepath
1626   operators as appropriate.
1627 Check for a sane 'loca' table in TrueType fonts (FoFiTrueType::parse).
1628 Fix PSOutputDev to correctly handle the case of an empty name in a
1629   font encoding.
1631 3.02 (2007-feb-27)
1632 ------------------
1633 Added anti-aliasing for vector graphics; added the vectorAntialias
1634   xpdfrc option; added the "-aaVector" switch to xpdf and pdftoppm.
1635 Implemented stroke adjustment (always enabled by default, ignoring the
1636   SA parameter, to match Adobe's behavior), and added the strokeAdjust
1637   xpdfrc command.
1638 Support PDF 1.6 and PDF 1.7.
1639 Added support for AES decryption.
1640 Added support for OpenType fonts (only tested with 8-bit CFF data so
1641   far).
1642 Added user-configurable key/mouse bindings - the bind/unbind xpdfrc
1643   commands.
1644 Cleaned up the full-screen mode code and added the ability to toggle
1645   it on the fly (the default key binding is alt-f).
1646 Pdfimages with the -j option now writes JPEG files for 1-component
1647   (grayscale) DCT images, in addition to 3-component (RGB) images.
1648 Fixed bugs in handling sampled (type 0) functions with 32-bit
1649   samples.
1650 Fixed some things to support DeviceN color spaces with up to 32
1651   colorants.
1652 Pdftops now constructs the %%Creator and %%Title DSC comments from the
1653   relevant information in the PDF Info dictionary.
1654 Tweak the TrueType font encoding deciphering algorithm.
1655 Added the "mapUnkownCharNames" xpdfrc option.
1656 Fix a bug (that only showed up with certain window managers) in the
1657   intermediate resize event optimization.  [Thanks to Michael Rogers.]
1658 Check for a broken/missing embedded font (this was causing xpdf to
1659   crash).
1660 Added support for transfer functions in PostScript output.
1661 Be a bit more tolerant of Link destinations that contain null values
1662   for positioning parameters.
1663 Use ordered dot dithering instead of clustered dot dithering at 
1664   resolutions below 300 dpi (for monochrome output).
1665 Fixed security holes (bounds checking issues) in several places.
1666 Don't bother creating a SplashFont (allocating memory) for fonts that
1667   are only used for hidden text - this avoids problems with fonts of
1668   unreasonably large sizes.
1669 Clipping in TextOutputDev was off for characters on the left edge of
1670   the page.
1671 The scn and SCN operators weren't correctly handling colors with more
1672   than four components.
1673 FoFiType1::writeEncoded wasn't always correctly finding the end of the
1674   encoding.
1675 Use the ColorTransform parameter in the DCTDecode stream dictionary.
1676 Type 3 fonts are allowed to have a bbox of [0 0 0 0], which means
1677   "unspecified" -- don't issue error messages in that case.
1678 Perform the transform (to device space) in Splash instead of in
1679   SplashOutputDev -- this is needed to correctly handle round joins
1680   and caps on stroked paths.
1681 PSOutputDev now rasterizes any pages that use transparency.
1682 Limit the crop, bleed, trim, and art boxes to the edges of the media
1683   box (per the PDF spec).
1684 Change GString to increase the allocation increment by powers of two.
1685 Handle whitespace in hex strings in CMap files/streams.
1686 Use strings instead of names for separation colorant names in
1687   PSOutputDev.
1688 For explicitly masked images where the mask is higher resolution than
1689   the image, use the soft mask code.
1690 Avoid problems with very large x-steps in the PostScript output for
1691   tiling pattern fills.
1692 Avoid a divide-by-zero in stitching functions which have a subfunction
1693   with empty bounds.
1694 Honor the "Hidden", "NoView", and "Print" flags on annotations.
1695 Rewrote the pixel rendering code in Splash to use a single set of
1696   pixel pipeline functions.
1697 Added support for transparency groups and soft masks.
1698 Fixed the transparency blend functions to match the addendum published
1699   by Adobe.
1700 Changed Splash/SplashBitmap to store alpha in a separate plane.
1701 Setting the color space now selects the correct default color for that
1702   color space.
1703 Remove the mutex lock from GlobalParams::getErrQuiet() to avoid a
1704   deadlock when parseCIDToUnicode() or parseUnicodeToUnicode() calls
1705   it from inside a locked section.
1706 Added error checking (on the argument count) in the sc/SC/scn/SCN
1707   operators.
1708 Skip over notdef glyphs in TrueType fonts (which sometimes get drawn
1709   as little boxes), to match Adobe's behavior.
1710 Painting operations in a Separation color space with the "None"
1711   colorant or a DeviceN color space with all colorants set to "None"
1712   never mark the page.
1713 Fixed an obscure bug in the JPX decoder - it wasn't reading the extra
1714   stuffing byte in the case where the last byte of a packet header was
1715   0xff.
1716 Change the TrueType font parser (FoFiTrueType) to change the glyph
1717   count rather than report an error if the 'loca' table is too small.
1718 Fixed a couple of bugs in the JBIG2 decoder.
1719 Added stochastic clustered dot dithering.
1720 Added the screenType, screenSize, screenDotRadius, screenGamma,
1721   screenBlackThreshold, and screenWhiteThreshold xpdfrc settings.
1722 PSOutputDev now correctly handles invalid Type 3 charprocs which don't
1723   start with a d0 or d1 operator
1724 FreeType 2.2.x support - get rid of the FT_INTERNAL_OBJECTS_H include,
1725   and add some 'const' declarations.
1726 Handle PDFDocEncoding in Info dictionary strings.
1727 Tweak the xref repair code - ignore whitespace at the start of lines
1728   when looking for objects.
1729 Added the "-exec" switch to xpdf.
1730 Removed the xpdf.viKeys X resource.
1731 Changed the color key / explicit masked image code in PSOutputDev to
1732   generate better PS code, including a Level 3 option.
1733 Tweaked the DEBUG_MEM code for performance.
1734 Move the JBIG2 global stream reading code into reset() instead of the
1735   constructor - this way, pdftotext doesn't end up reading the global
1736   stream.
1737 Added the "-preload" option to pdftops and the psPreload xpdfrc
1738   command.
1739 Added the "zoom to selection" command (on the popup menu).
1740 Fix a bug (in xpdf/pdftoppm/pdftops) with tiling patterns whose bbox
1741   size is different from their xStep/yStep.
1742 Implemented stroke with pattern color spaces.
1743 Following a link to a page whose CropBox was different from the
1744   MediaBox was resulting in an incorrect scroll position.
1745 Parse truncated date strings from the Info dictionary correctly.
1746 Change FoFiType1 to handle Type 1 fonts with two /Encoding keys.
1747 Extend the PSOutputDev shaded fill code to handle DeviceCMYK shaded
1748   fills in level2sep and level3sep modes.
1749 Detect infinite loops in the Page tree.
1750 Optimized the ASCII85Encoder code.
1751 Tweaked the text extractor to do a better job of lining up rows of
1752   text.
1753 Leave images compressed (or re-compress them with RLE) in PostScript
1754   output when setting up images for forms and Type 3 fonts (or with
1755   -preload).
1756 Extend FoFiType1 to handle Type 1 fonts with octal character codes in
1757   their encodings.
1758 Use a custom string formatter to avoid problems with locale-based decimal
1759   formatting (commas instead of periods) in PS output.
1760 Allow comments in PostScript-type functions.
1761 Change the TrueType font parser (FoFiTrueType) to delete glyf table
1762   entries that are too short.