"Fossies" - the Fresh Open Source Software Archive

Member "xpdf-4.04/CHANGES" (18 Apr 2022, 139475 Bytes) of package /linux/misc/xpdf-4.04.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "CHANGES": 4.03_vs_4.04.

    1 0.2 (95-dec-12)
    2 ---------------
    3 First public release.
    4 
    5 
    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.
   18 
   19 
   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.
   63 
   64 
   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.
   96 
   97 
   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.
  121 
  122 
  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.
  179 
  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.
  262 
  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).
  364 
  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.
  449 
  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.
  509 
  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().
  625 
  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.
  672 
  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.
  682 
  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.
  698 
  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.
  708 
  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.
  717 
  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).
  725 
  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.
  755 
  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.
  773 
  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.
  782 
  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.
  829 
  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.
  847 
  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.
  853 
  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.
  861 
  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.
  904 
  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.
  933 
  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.
 1021 
 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.
 1113 
 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.
 1152 
 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.
 1231 
 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.
 1352 
 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.
 1423 
 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.
 1630 
 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.
 1763 
 1764 3.03 (2011-aug-15)
 1765 ------------------
 1766 Added the "fixed pitch" text extraction mode.
 1767 Modified "pdftops -paper match" to handle PDF files with
 1768   different-sized pages, i.e., it will now select the matching paper
 1769   size on a page-by-page basis.
 1770 Add ability for pdftoppm to write to stdout.
 1771 Added the pdfdetach tool.
 1772 Implemented 256-bit AES decryption.
 1773 Commented out the t1lib section in the configure script -- t1lib has
 1774   some potential security holes, and hasn't been updated in years.
 1775 Redesigned the font configuration xpdfrc commands: removed the
 1776   displayFontT1, displayFontTT, displayNamedCIDFontT1,
 1777   displayCIDFontT1, displayNamedCIDFontTT, displayCIDFontTT, psFont,
 1778   psNamedFont16, and psFont16 commands; added the fontFile,
 1779   fontFileCC, psResidentFont, psResidentFont16, and psResidentFontCC
 1780   commands.
 1781 Switched from GPLv2 to dual v2/v3 licensing.
 1782 Performance: cache tiling patterns.
 1783 Implemented text fills with pattern color spaces.
 1784 Rewrote the image and image mask rendering code to be more accurate
 1785   and faster.
 1786 Fixed a bug in PDFCore that could sometimes cause crashes at high zoom
 1787   levels.
 1788 Implemented embedded CMap streams.
 1789 Added the 'setSelection' command.
 1790 Added the 'rotateCCW' and 'rotateCW' commands.
 1791 Added the 'psFontPassthrough' xpdfrc command.
 1792 Added the 'launchCommand' xpdfrc command.
 1793 Implemented alpha-type soft masks.
 1794 Added "Form: AcroForm|XFA|none" to pdfinfo output.
 1795 Added support for image masks filled with pattern color spaces.
 1796 Text search wasn't finding all occurrences of a string on rotated pages
 1797   (i.e., pages where the primary rotation, as displayed, was not
 1798   horizontal).
 1799 The text extractor now uses "ActualText" spans if they are present.
 1800 Modified PSOutputDev so it always check for transparency; if Splash is
 1801   not available, it now prints a warning.
 1802 Handle the blending color space for soft masks.
 1803 Added the disableFreeTypeHinting xpdfrc option.
 1804 Added the psAlwaysRasterize xpdfrc option.
 1805 Added support for transfer functions in the rasterizer.
 1806 Optimized the JPEG 2000 decoder to use less memory.
 1807 Do fill adjustment (similar to stroke adjustment) on simple
 1808   rectangular fills.
 1809 Added the antialiasPrinting xpdfrc setting.
 1810 Added '%i', '%j', and '%k' (mouse pointer page and position) to the
 1811   available options for the 'run' command.
 1812 Links with the underlined border style were being drawn with the lines
 1813   over, instead of under, the text.
 1814 Add #include <aconf.h> to XPDFTree.cc (to avoid problems with certain
 1815   compilers).
 1816 Change XRef::fetch() to avoid infinite loops caused by odd damage to
 1817   the xref table (e.g., where a stream object's "Length" value is an
 1818   indirect reference that points to another stream object).
 1819 Minor fix in GString.cc to deal with an error in newer C++ compilers
 1820   (pow() can take int or double args).
 1821 Handle embedded fonts which are declared with the wrong font type,
 1822   including 8-bit fonts declared as CID fonts and vice versa; this
 1823   was causing various problems, including crashes and invalid
 1824   PostScript output.
 1825 In text extractor, don't drop horizontally overlapping words onto a
 1826   separate line.
 1827 The numbers in the operand to the TJ operator should be multiplied by
 1828   the current horizontal scaling parameter.
 1829 Fixed a bug in the Type 1C-to-Type 1 font converter -- need to escape
 1830   strings in the font dictionary.
 1831 The zero-font-size check in PSOutputDev.cc was broken.
 1832 Fixes for the form field appearance regeneration code: handle Unicode
 1833   strings (by downconverting to Latin1); check for "True" in addition
 1834   to "Yes" as a button value.
 1835 Modify XPDFTree to limit the widget height to 32767 pixels -- this
 1836   avoids crashes with very large outlines.
 1837 Modify FoFiType1 to handle PFB headers in Type 1 font files.
 1838 Allow image mask decode arrays to be [1.0 0.0] in addition to [1 0].
 1839 Tweak the form field appearance regeneration code.
 1840 PSOutputDev now sets up resources for DR dictionaries in forms (in
 1841   case the form field appearances are regenerated).
 1842 For TrueType fonts which are marked symbolic, the cmaps should be
 1843   ignored.
 1844 Change the handling of numeric characters in Unicode text output --
 1845   they are now treated as left-to-right, which isn't strictly correct,
 1846   but does result in correct visual formatting.
 1847 Modify FoFiTrueType to handle bogus loca table entries where the
 1848   offset is past the end of the glyf table.
 1849 Fixed shading pattern fills to do clipping and background fills
 1850   correctly.
 1851 Change the code that reads the page tree to be more flexible with
 1852   regard to improperly constructed trees.
 1853 Changed the PostScript header comment from "Produced by xpdf/pdftops
 1854   x.yy" to "XpdfVersion: x.yy" to make it (mostly) DSC-compliant.
 1855 Fixed PSOutputDev to handle page rotation correctly where the PDF page
 1856   is rotated 90 or 270 degrees and the page width (before rotation) is
 1857   greater than its height (and vice versa for 0 or 180 degrees).
 1858 Unbalanced save/restores inside form XObjects (which can be happen in
 1859   damaged or incorrectly constructed PDF files) could cause crashes.
 1860 The CCITTFax decoder could go into an infinite loop on certain types
 1861   of corrupt input.
 1862 Added the "drawAnnotations" xpdfrc command.
 1863 Added the "psUncompressPreloadedImages" xpdfrc command.
 1864 Escape newlines and other non-printable characters in the custom color
 1865   DSC comments in PostScript output.
 1866 Added the tilingPatternFill and *ShadedFill functions to
 1867   PreScanOutputDev to speed it up.
 1868 Too many elements in an image's Decode array should not be a fatal
 1869   error.
 1870 Fixed a buffer overflow security hole in StreamPredictor.
 1871 Empty pages (zero-length content streams and null contents) were
 1872   causing crashes in continuous view mode.
 1873 Handle line dash arrays that start with a zero element correctly.
 1874 PreScanOutputDev was not correctly detecting all transparency - in
 1875   some places, it was looking only at the blending mode, and not at
 1876   the opacity setting.
 1877 Force halftone screen size to be a power of 2.  This allows optimizing
 1878   the halftoning code.
 1879 Fixed a bug in the JBIG2 MMR decoder (and also in the CCITTFax
 1880   decoder) that was causing array references with negative indexes.
 1881 Fixed a bug in the transparency code that was causing memory overruns.
 1882 Fixed a 64-bit bug in the ASCII85 encoder.
 1883 The focusToPageNum was crashing in full-screen mode - it should simply
 1884   do nothing.
 1885 Added '%p' (current page number) to the available options for the 'run'
 1886   command.
 1887 Tweak the behavior with PDF files that have pages of different widths
 1888   in continuous mode: scroll horizontally to avoid blank space on the
 1889   left side (when changing pages via entering a page number or
 1890   clicking on a link).
 1891 A closepath followed by a lineto should create a new subpath for the
 1892   lineto.
 1893 Fixed a buffer overflow in the CCITTFax decoder.
 1894 Adobe Acrobat appears to ignore the flatness setting when rasterizing
 1895   curves, so Xpdf now does the same.  (Oddly, Acrobat passes the
 1896   flatness setting through to PostScript output, which ends up making
 1897   the PS file look different from the PDF file - so Xpdf continues to
 1898   pass flatness through to PS files, too.)
 1899 Pdfimages now ignores tiling pattern fills (for performance reasons).
 1900 Fixed a bug in PDFCore that could sometimes cause crashes at high zoom
 1901   levels.
 1902 Use std::sort (with functors) in place of qsort (if available) - this
 1903   can be significantly faster.
 1904 Hitting "close" while Xpdf is in full-screen mode (with only one file
 1905   open) was crashing.
 1906 Tweak the TrueType font encoding deciphering algorithm.
 1907 Rewrote the CCITTFax decoder inner loop - this fixes a security hole.
 1908 Fixed two security holes (missing bounds checks) in the DCT decoder.
 1909 Do the correct zooming for "Fit" and "FitR" destinations.
 1910 Implement the rotation value in the form field appearance regeneration
 1911   code.
 1912 When PSOutputDev rasterizes a page (because it contains transparency),
 1913   the image is broken into stripes if it is above a size threshold.
 1914 Don't clip the other page boxes to the MediaBox at the intermediate
 1915   (Pages) nodes; only do it at the leaf (Page) nodes - the other boxes
 1916   can be specified before the MediaBox is specified.
 1917 Split several special cases off from Splash::pipeRun, for performance.
 1918 Add a sanity check for excessively large font sizes (which caused
 1919   problems because Xpdf tried to allocate memory for a font cache).
 1920 Fixed a bug in the GfxCIDFont constructor involving reading the
 1921   vertical metrics.
 1922 Rewrote the code that handles annotation transforms - it was not
 1923   handling non-rectangular transforms correctly.
 1924 Tweak the Type 3 bbox code to allow some slack on the left/bottom
 1925   edges, as well as the top/right edges.
 1926 Fixed a bug that was causing problems rendering Type 3 fonts to 1-bit
 1927   monochrome output.
 1928 Handle the case where AES padding is invalid.
 1929 Changed XRef::getNumObjects to return the number of used entries,
 1930   instead of the same value as returned by XRef::getSize().
 1931 Ignore bogus entries in the TrueType table directory instead of
 1932   immediately giving up on the font.
 1933 Fixed a bug in the radial shading code that could cause divide-by-zero
 1934   errors.
 1935 Tweaked the TrueType font fixup code to deal with an extra zero entry
 1936   at the end of the loca table.
 1937 Increased font cache sizes to improve performance.
 1938 Tweaked the TrueType notdef kludge to skip the notdef glyph only if it
 1939   was caused by a character for which a Unicode/MacRoman mapping could
 1940   not be found.
 1941 Added another font size sanity check, this time for Type 3 glyphs.
 1942 Added initial support for optional content (layers) - no GUI yet.
 1943 For CID fonts that specify the 'Adobe-Identity' or 'Adobe-UCS'
 1944   collection, use an identity mapping for char code-to-Unicode
 1945   conversion.
 1946 Updated the error function to take a category argument, and to use
 1947   GString::format instead of printf; added an error callback.
 1948 The PDF spec claims that names are limited to 127 chars, but Distiller
 1949   8 will produce longer names, and Acrobat 8 will accept longer names
 1950   -- Xpdf will now handle them, too.
 1951 Change the Catalog code so it doesn't load the entire page tree at
 1952   startup (this only helps the command line tools - the viewer scans
 1953   all of the pages at startup).
 1954 Clip opacity values to the range [0,1].
 1955 Handle glyph names of the form 'unixxxx' (similar to Ann, Axx, etc.).
 1956 Resolution of rasterized pages in PostScript output was not being
 1957   computed correctly (resulting in overly large images).
 1958 Extend the mapUnknownCharNames config command to cover CID fonts.
 1959 Zero-length segments in the middle of stroked paths were not being
 1960   handled correctly -- they should be completely ignored, except for
 1961   the special case of a zero-length path with round line caps.
 1962 Various optimizations to the Splash rasterizer.
 1963 Allow "Identity" and "Default" as the transfer function in soft masks.
 1964 Tweaked the ToUnicode CMap parser to allow <00xx> char codes for 8-bit
 1965   fonts.
 1966 TextPage::clear() was not clearing the lists of underlines and links.
 1967 Changed the CCITTFax decoder to correctly handle the interaction
 1968   between the EndOfLine and EncodedByteAlign parameters.
 1969 Fixed a bug where xpdf wouldn't go to a destination specified on the
 1970   command line, if continuous mode was enabled
 1971   (xpdf -cont file.pdf +foo).
 1972 Fixed a bug in the FreeType interface code which was causing incorrect
 1973   positioning/sizing of characters.
 1974 Tweaked the FreeType interface code - use 'light' hinting with Type 1
 1975   fonts (because it generally looks better).
 1976 Tweak the Windows font searching code to handle "Black" fonts.
 1977 Fixed a bug in the PostScript-type function parser -- real numbers
 1978   that start with a decimal point weren't being handled correctly.
 1979 Changed the way filled-and-stroked text is handled -- use Splash to do
 1980   both the fill and the stroke (rather than using the font ending to
 1981   do the fill and Splash to do the stroke); also turn off stroke
 1982   adjustment when drawing stroked text.
 1983 Ignore generation numbers on compressed objects (to match Adobe's
 1984   behavior).
 1985 Changed the PostScript PageSize policy from 3 to 6 (choose next
 1986   largest paper size, don't rescale).
 1987 Check that the mask values for color key masked images are in range --
 1988   both Ghostscript and Distiller choke on the PostScript if invalid
 1989   mask colors are specified.
 1990 Fixed a bug in generic region decoding in the JBIG2 decoder.
 1991 Fixed the lexer to handle large real numbers correctly.
 1992 Pdftops wasn't correctly handling tiling patterns that use both fill
 1993   and stroke operators.
 1994 Report an error if the Size array in a sampled function includes any
 1995   zeros.
 1996 The PostScriptFunction.codeString field wasn't being initialized
 1997   correctly.
 1998 Invalid object streams were not being handled correctly.
 1999 Check for loops in xref tables.
 2000 Handle the case where a content stream ends after the 'ID' operator
 2001   which starts inline image data.
 2002 Check for invalid object streams (i.e., an object stream can't be
 2003   inside another object stream.
 2004 Add a recursion limit to the object parser - this avoids stack
 2005   overflows with various sorts of damaged PDF files.
 2006 Handle various parameter settings in the extended graphics state
 2007   dictionary.
 2008 An invalid document outline (missing fields) could cause a crash.
 2009 Added an overprint preview mode (for CMYK output only).
 2010 Correctly handle FitH/BH/V/BV link destinations that contain null
 2011   values for positioning parameters.
 2012 If the PDF file doesn't define a BaseURI, set one based on the
 2013   location of the PDF file -- this allows relative links to be handled
 2014   correctly.
 2015 Use ResusableStreamDecode when generating Level 3 PostScript for an
 2016   explicitly masked image.
 2017 Tweak the Type 1 font parser to handle encodings with multiple
 2018   characters on one line.
 2019 Invert subtractive color components before passing them to the
 2020   blending function.
 2021 Fix an invalid array access in SplashOutputDev::setSoftMask() in CMYK
 2022   mode.
 2023 A PS interpreter may attempt to read past the end of a preloaded
 2024   image, so we need to check for that.
 2025 Fixed several overflow/uninit bugs in JBIG2Stream.
 2026 Fix the CCITTFax decoder to correctly find end-of-file (RTC/EOFB)
 2027   markers when the EndOfLine parameter is false.
 2028 Don't limit the startxref offset to 10 digits - some PDF generators
 2029   use extra leading zeros.
 2030 Use the "DV" (default value) field in text annotations if the "V"
 2031   (value) field is missing.
 2032 Increase the number of digits printed for floating point numbers in
 2033   PostScript output -- it was running into numerical accuracy problems
 2034   on large pages.
 2035 Fixed integer overflow bugs in Catalog.cc and GfxFont.cc.
 2036 Zero-length tables in TrueType fonts should be treated as missing.
 2037 ToUnicode CMaps map char codes to Unicode; .cidToUnicode files map
 2038   CIDs to Unicode -- ToUnicodeCMaps were being handled incorrectly.
 2039 Added the "psRasterResolution" and "psRasterMono" xpdfrc commands.
 2040 Added code to FoFiTrueType to check for entries in the table directory
 2041   with bogus tags -- this handles the case where the number of tables
 2042   given in the header is too high.
 2043 Negative shift values in the PostScript bitshift operator were being
 2044   handled incorrectly.
 2045 GfxICCBasedColorSpace was not correctly bounds-checking the number of
 2046   components.
 2047 Check SampledFunction input values for NaNs.
 2048 Fix a divide-by-zero when the page width or height is zero.
 2049 Fix a bug positioning text in PostScript output - if the last char in
 2050   a string has an incorrect width in the PDF font object, that messes
 2051   up the total string width, so we have to position individual chars.
 2052 In PostScript output, if CID font substitution fails, drop all text in
 2053   that font.
 2054 Handle PDF files that set the stream/string decryption filters to
 2055   Identity (i.e., no encryption).
 2056 Avoid passing a zero font size to FreeType.
 2057 Tweak raw mode in the text extractor to handle words on the same line
 2058   drawn in the wrong order.
 2059 Pdftops was generating a singular transform matrix for annotations
 2060   whose bounding boxes had zero width or height.
 2061 Handle embedded OpenType CFF fonts with CIDToGIDMaps.
 2062 Remove the old kludge from PSOutputDev that was converting char 32
 2063   from ".notdef" to "space".
 2064 Allow CCITTFax images to be more than 32k pixels wide.
 2065 Modified the CMap parser to handle usecmap with Identity-H/V.
 2066 Added some parameter checking in the JPX decoder.
 2067 Added checks for infinite loops in PDF objects - for color spaces,
 2068   functions, optional content, and outline items.  
 2069 Add support for mouse button bindings up to button 32 (old limit was
 2070   7).
 2071 Fixed a bug in the decryption code for revision 3 with keyLength < 16
 2072   -- the owner password was not being handled correctly.  [Thanks to
 2073   Matthias Franz.]
 2074 Optimize SampledFunction: pull index computation code out of the
 2075   transform function; cache the last transform.
 2076 Tweaked the font naming algorithm in PSOutputDev.
 2077 Treat mirrored (as opposed to rotated) text the same as upright text
 2078   in pdftotext.
 2079 Fixed buffer overflows in Splash and SplashBitmap.
 2080 Check for bogus character codes (e.g., <ffffffff>) in ToUnicode CMaps.
 2081 The radial shading code (in both Gfx.cc and PSOutputDev.cc) was not
 2082   computing the s bounds properly.
 2083 Drop empty subpaths in clip and fill (but not stroke) operations -
 2084   this can significantly speed up clip performance in the weird case
 2085   where a PDF file does "<x> <y> <w> <h> re <x> <y> m h W n".
 2086 Added code to FoFiTrueType to check for an invalid loca format field
 2087   in the head table.
 2088 The axial shading code (in Gfx.cc, but not PSOutputDev.cc) was not
 2089   computing the incremental polygon vertices correctly.
 2090 Set the character width in TextOutputDev to something sensible for
 2091   vertical fonts.
 2092 Added basic support to the text extractor for vertical writing mode.
 2093 The non-interactive tools (pdftotext, pdftops) now free Page objects
 2094   after using them, avoiding performance problems with pages that have
 2095   huge resource dictionaries.
 2096 Check for line dash arrays like [0], and draw nothing at all (to match
 2097   Acrobat's behavior).
 2098 Add a sanity check for the ascent/descent values in FontDescriptors.
 2099 Single-point paths with a line dash were causing a crash.
 2100 Correctly handle Level 3 PostScript output with masked images inside
 2101   patterns.
 2102 Tweaked the xref repair code so that it runs if the catalog is messed
 2103   up (in addition to running if the xref table is damaged).
 2104 If Indexed color space tables (streams or strings) are too small,
 2105   reduce the max index instead of throwing away the color space.
 2106 Change the CMap parser to allocate memory only when it sees a mapping,
 2107   not when it sees a 'codespacerange' declaration -- this avoids
 2108   allocating huge amounts of memory for CMaps with large, unused
 2109   codespaceranges.
 2110 In monochrome mode, treat lines with width <= 1 as hairlines (to match
 2111   Acrobat's behavior).
 2112 Cache the last transform for PostScript-type functions.
 2113 Added the "-rawdates" option to pdfinfo.
 2114 Optimized ImageStream::getLine().
 2115 Fixed the Hue, Saturation, Color, and Luminosity blend functions to
 2116   match Adobe's spec.
 2117 Fixed the non-isolated group compositing computation.
 2118 Skip extraneous unused data at the end of JBIG2 segments.
 2119 Change the algorithm that stroke/fill adjustment uses so that the
 2120   edges of adjacent strokes/fills line up.
 2121 Do stroke adjustment on end caps when cap style is butt or projecting.
 2122 Fixed a security hole: Gfx.parser was not being initialized to NULL.
 2123 Fixed a security hole: integer bounds check in the Type 1 encoding
 2124   parser in FoFiType1.cc.
 2125 If an embedded font object is invalid or non-existent, do font
 2126   substitution (same as if there were no embedded font).
 2127 TextOutputDev was reusing an old font in the case where the font
 2128   changed but the font size and character positioning stayed the same.
 2129 When starting a transparency group, copy the fill/stroke colors from
 2130   the graphics state.
 2131 Tweaked the fixed-point code.
 2132 When a TrueType font is declared resident (with a psFont command),
 2133   don't munge the encoding.
 2134 Look for URIs starting with "www." and treat them as absolute "http:"
 2135   URIs, not as relative URIs (to match Adobe's behavior).
 2136 Added code to FoFiTrueType to check for a zero-entry cmap table.
 2137 Tweaked the font substitution code to do a better job of scaling the
 2138   substituted font.
 2139 Require at least two splits in the axial shading color bisection.
 2140 Optimized JBIG2Stream::readGenericBitmap().
 2141 JPXStream wasn't correctly handling row padding for images with fewer
 2142   than 8 bits per component.
 2143 Optimized the ToUnicode CMap parser.
 2144 Added a "whole words only" option to text searches.
 2145 Check for valid component parameters in the DCT decoder.
 2146 Implement embedding of external 16-bit fonts (without subsetting) in
 2147   PostScript output.
 2148 Added the minLineWidth xpdfrc command.
 2149 Added warning messages for font substitutions.
 2150 
 2151 3.04 (2014-may-28)
 2152 ------------------
 2153 New text extractor.
 2154 Added the pdftohtml tool.
 2155 Added the pdftopng tool.
 2156 New trapezoid-based rasterizer core (for performance).
 2157 Generate appearance streams for Line, PolyLine, and Polygon
 2158   annotations.
 2159 Added the closeWindowOrQuit command, and changed the default binding
 2160   for ctrl-W from closeWindow to closeWindowOrQuit.
 2161 Implemented the new AES-256 mode (R=6, Acrobat X).
 2162 Add an object cache.
 2163 Added a small cache for object streams.
 2164 Modify PSOutputDev to use LZW compression instead of RLE, with a
 2165   fallback to RLE if the "psLZW no" setting is given.
 2166 Pdfinfo now prints page rotation info.
 2167 Modified ImageOutputDev, used by pdfimages, to output the masks and
 2168   soft masks used when drawing images.
 2169 Remove non-printable characters from error output, just in case they
 2170   might cause problems for the terminal program.
 2171 Added initial support for Code3of9 bar codes in XFA forms.
 2172 Added the mapExtTrueTypeFontsViaUnicode xpdfrc command.
 2173 Apply stroke adjustment to rectangular images and clipping regions (in
 2174   addition to strokes and fills).
 2175 Decode JPEG 2000 images at less than full resolution if the full res
 2176   image isn't needed (i.e., if the raw image is higher resolution than
 2177   the output). 
 2178 Implemented knockout groups.
 2179 Removed t1lib support.
 2180 Added support for images with 16-bit components.
 2181 Rewrote the Dict class to use a hash table; as a side effect, this
 2182   handles dictionaries with multiple definitions for a key, which are
 2183   in violation of the spec, but Acrobat appears to handle.
 2184 The transformed line width computation -- used to implement the
 2185   minLineWidth setting, and the hairline threshold in monochrome mode --
 2186   was incorrect.
 2187 Pdftops was not correctly handling the case where it couldn't find
 2188   a 16-bit font -- this led to crashes and/or invalid PostScript.
 2189 A bug in FlateStream::getBlock() was causing problems with narrow
 2190   images.
 2191 Use the correct _WIN32 define instead of WIN32.
 2192 Use copy-on-write for the clip path in SplashState (when doing gsave),
 2193   for performance.
 2194 Added a Solaris-specific entry to the ghostscript font search path.
 2195 SplashState was initializing line width to 0 instead of 1.
 2196 Abort processing on a content stream after getting 500 errors
 2197   (undefined operator, wrong number of args) -- this avoids very long
 2198   processing time for malicious PDF files using bogus RLE encoded
 2199   content streams.
 2200 Added the psUseCropBoxAsPage xpdfrc option; "pdftops -pagecrop" now
 2201   sets psUseCropBoxAsPage; "pdftops -pagecrop -paper match" now uses
 2202   the CropBox as the page size.
 2203 Re-architected the AcroForm support code into a separate AcroForm
 2204   module.
 2205 Fixed the handling of overprinting/transparency interaction, using
 2206   the CompatibleOverprint blend mode.
 2207 The TIFF predictor code for the 1-bit-per-pixel case was broken.
 2208 For triangle and patch mesh shadings (types 4-7) with color functions,
 2209   interpolate the function parameter not the color.
 2210 Check the fontFile/fontDir commands before (instead of after) doing
 2211   Base-14 substitution in PS output.
 2212 Correctly handle non-embedded TrueType fonts that have an Identity
 2213   ToUnicode mapping (display and PS output were failing).
 2214 Added support for XFA form rendering, including an "enableXFA" xpdfrc
 2215   setting.
 2216 Handle PFB Type 1 fonts when generating PostScript output.
 2217 Unwind any extraneous saved graphics state at the end of the page
 2218   (before drawing annotations).
 2219 Added some integer overflow checks in the GString class.
 2220 Handle 16-bit components in JPEG 2000 images.
 2221 ActualText spans can end without a valid font, in which case
 2222   TextPage::beginWord was crashing.
 2223 The Domain entry in function shadings wasn't being parsed correctly.
 2224 Fixed a bug in the JPEG decoder - successive approximation
 2225   (progressive mode) coefficients weren't being handled correctly.
 2226 Added a better infinite loop test to the xref parser.
 2227 When generating PostScript, merge reused TrueType fonts (if their
 2228   code-to-GID mappings are the same).
 2229 Tweak the Gouraud triangle shaded fill code to end the recursive
 2230   splitting if the triangles get sufficiently small.
 2231 Do bilinear interpolation when upsampling images.
 2232 When skipping extraneous image data from an inline image, look for
 2233   EI<whitespace> instead of just EI.
 2234 When writing to stdout on Windows, pdftoppm now sets the file mode to
 2235   binary.  [Thanks to Robert Frunzke.]
 2236 Accept strings as well as names for the BaseFont entry in font
 2237   objects.
 2238 Removed the TEXTOUT_WORD_LIST config option (with the new text
 2239   extractor, this is always enabled).
 2240 Fixed a bug in the JBIG2 decoder (the TPGD context for template #3 in
 2241   readGenericBitmap was incorrect).
 2242 Rewrote the PostScriptFunction code for performance.
 2243 Handle 8-bit OpenType CFF fonts that are missing required tables in
 2244   the OpenType wrapper.
 2245 Handle tiling patterns with reversed coordinates in their bounding
 2246   boxes.
 2247 Added support for 64-bit file offsets, i.e., PDF files larger than
 2248   2GB.
 2249 Optimize the code that rasterizes pattern-filled image masks.
 2250 Added support for Mac OS X system fonts (Base-14 only).
 2251 The backdrop color in luminosity-type soft mask groups was not being
 2252   handled correctly.
 2253 Modified behavior of "pdftops -paper match -duplex ..." - it will now
 2254   duplex consecutive same-sized pages.
 2255 Tweak the handling of degenerate fills ('moveto lineto fill') to
 2256   match Adobe.
 2257 Don't honor the OPM=1 setting with ICCBased CMYK color spaces.
 2258 Whole-word searches were treating certain punctuation (Unicode number
 2259   separators and terminators) as part of the word, e.g., searching for
 2260   "foo" would not match "foo,".
 2261 Use the TextString class everywhere it makes sense.
 2262 Removed the unnecessary segment sort in Splash (performance
 2263   optimization).
 2264 Handle hyperlinks that use Widget-type annotations.
 2265 Fix up the integer overflow checks to avoid issues with clever
 2266   compilers.  [Thanks to Nickolai Zeldovich.]
 2267 Correctly handle streams with missing Length entries in damaged PDF
 2268   files.
 2269 Added a compile-time option (LOAD_FONTS_FROM_MEM) to load fonts from
 2270   memory rather than temporary files on disk.
 2271 Added the psRasterSliceSize xpdfrc option.
 2272 Fixed a case in the JPEG 2000 arithmetic decoder where extra data is
 2273   present in packet i, and needs to be saved for use in packet i+1.
 2274 Fixed a bug in the JPEG 2000 decoder related to images with fewer than
 2275   8 bits per component.
 2276 Handle the case in PSOutputDev where slice size overflows a 32-bit
 2277   integer.
 2278 Add (partial) support for TrueType cmap format 2.
 2279 Always pass FT_LOAD_NO_BITMAP to FreeType -- bitmaps apparently fail
 2280   with rotated characters.
 2281 Support fonts specified in ExtGState dictionaries.
 2282 Annotations with empty Border arrays should not draw a border.
 2283 Fix the CMap parser to handle large CID ranges.
 2284 Check for Type 3 CharProcs that call q or Q before the d0/d1 operator,
 2285   and treat them as uncacheable.
 2286 Invert the selection color when starting in reverse video mode.
 2287 Device{Gray,RGB,CMYK} cannot be mapped via a resource dict.
 2288 Changed the PS output for masked images (explicit and color key
 2289   masking): use a plain old clip path instead of rectclip to avoid
 2290   array overflows.
 2291 Check the StemSnapH/V arrays when converting Type 1C fonts to Type 1 -
 2292   if there are any duplicate or out-of-order values, skip that
 2293   StemSnapH/V array.
 2294 Added the psMinLineWidth xpdfrc setting.
 2295 Fix an obscure issue in converting TrueType fonts to Type 42, related
 2296   to empty glyph descriptions (12 zero bytes).
 2297 Pdftops now reports an error if there were any I/O errors writing to
 2298   the PS output file.
 2299 Fix vertical text (CJK fonts) in PS output -- offset the character
 2300   origin correctly.
 2301 Increased the number of digits used by pdfimages for the image number
 2302   from three to four.
 2303 Handle right-to-left (e.g., Arabic) ligatures correctly in the text
 2304   extractor.
 2305 Added the -loc and -locPS options to pdffonts.
 2306 Extend the object parser recursion limit to cover Stream::addFilters()
 2307   / Stream::makeFilters() - to avoid another possibility of stack
 2308   overflow.
 2309 Disable FreeType autohinting, because it can fail badly with font
 2310   subsets that use invalid glyph names -- except in the case of Type 1
 2311   fonts, which look much better with light autohinting.
 2312 Modified the rasterizer pipeline functions to process a scan line at a
 2313   time (for performance).
 2314 Removed VMS build support (it hasn't been updated in ages).
 2315 Removed pdftotext's '-htmlmeta' option (use pdftohtml instead).
 2316 PSOutputDev's font/form setup code, and pdffonts, were not scanning
 2317   soft mask groups in ExtGState dictionaries.
 2318 Invalid DCT input (e.g., from a damaged PDF file) could overflow the
 2319   dctClip array.
 2320 When upsampling an image mask or image with a large resulting image
 2321   size, do it in stream mode instead of prescaling the whole image
 2322   (to avoid running out of memory).
 2323 Added infinite loop detection to pdffonts.
 2324 
 2325 4.00 (2017-aug-10)
 2326 ------------------
 2327 Complete rewrite of the xpdf GUI, using Qt instead of Motif.
 2328 Multithreaded rasterization in the viewer - pages are now rasterized
 2329   in a separate thread so that scrolling and other UI activity is not
 2330   blocked.
 2331 Added a linear text selection mode.
 2332 Limit transparency groups to the clip rectangle (performance
 2333   optimization).
 2334 Optimized the SplashScreen code, used in 1-bit monochrome mode.
 2335 Added setmode calls to pdftopng, when writing to stdout on Windows.
 2336   [Thanks to Robert Schroll.]
 2337 Regenerate the appearance stream for an AcroForm field if there is
 2338   no appearance stream, even if NeedAppearances isn't set.
 2339 When regenerating AcroForm field appearance streams, use a default
 2340   font (Helvetica) for fields that don't have a valid font.
 2341 When the line width is increased by the minLineWidth setting, force
 2342   the line join mode to "bevel" to avoid "whiskers" at sharp corners.
 2343 Change the pdftoppm/pdftopng resolution (-r) argument from an integer
 2344   to floating point.
 2345 Use the FontDescriptor 'CapHeight' value in place of 'Ascent' if it's
 2346   available.
 2347 OC (optional content) entries in image XObjects were being ignored.
 2348 Added support for preblended soft-masked images.
 2349 Added optional support for using libjpeg to decode DCT (JPEG)
 2350   streams.
 2351 Transparency groups weren't being composited correctly in mono1 mode.
 2352 Switched to a different IDCT transform in the DCT (JPEG) decoder, to
 2353   get better accuracy; the new transform is also a bit faster.
 2354 Modified the polygon scan converter to avoid O(n^2) performance, which
 2355   can get really bad with paths that have extremely large numbers of
 2356   segments.
 2357 Added the maxTileWidth, maxTileHeight, tileCacheSize, and
 2358   workerThreads xpdfrc settings.
 2359 Modified PSOutputDev so it doesn't output resources (fonts, etc.) for
 2360   pages that are rasterized (because they use transparency).
 2361 Added the -alpha flag to pdftopng.
 2362 Handle TrueType fonts with out-of-bounds loca entries.
 2363 Optimize consectutive "q" (gsave) operations in PostScript output.
 2364 Various improvements to the XFA rendering code.
 2365 Added the -nodiag flag to pdftotext.
 2366 Switched to cmake instead of autoconf.
 2367 Look for Widget-type annotations that aren't attached to the
 2368   AcroForm, and add them to the AcroForm.
 2369 Added the "-z" option to pdftohtml.
 2370 The JPEG 2000 decoder now treats invalid boxes after the image
 2371   codestream as non-fatal errors.
 2372 Improved the handling of drop caps in pdftohtml.
 2373 Added the "psNeverRasterize" setting.
 2374 Pdftohtml now converts invisible PDF text to transparent HTML text.
 2375 Check for zero-width/height bitmaps in the JBIG2 decoder -- these can
 2376   happen in corrupted JBIG2 streams.
 2377 Pdfimages was inverting 1-bit monochrome images.
 2378 Added CCITTFaxStream::getBlock() to speed up the CCITTFax decoder.
 2379 Added resolution info to PNG files generated by pdftopng.
 2380 The DCT decoder now ignores non-Adobe APP14 markers (rather than
 2381   generating an error).
 2382 Regenerate appearance streams for FreeText annotations.
 2383 The TextString class now handles UTF-16LE in addition to UTF-16BE.
 2384   (UTF-16LE isn't allowed by the PDF spec, but I've seen it used.)
 2385 Added the simple one-column text extraction mode (pdftotext -simple).
 2386 Added a -cmyk option to pdftoppm to write CMYK PAM files.
 2387 Modified pdfinfo to output "static XFA" or "dynamic XFA", rather than
 2388   just "XFA".
 2389 Added the "drawFormFields" xpdfrc command.
 2390 Various performance optimizations in the rasterizer.
 2391 Fixed the tiling pattern code to avoid stripes between pattern cells,
 2392   and to honor the TilingType flag.
 2393 Always split axial shadings into 256 slices.
 2394 Handle the case where an optional content block is left open at the
 2395   end of a page content stream.
 2396 Accept code-to-CID-type CMaps as ToUnicode CMaps (to work around buggy
 2397   PDF generators).
 2398 Unicode-to-unicode maps weren't working correctly with fonts that have
 2399   an "Identity" encoding.
 2400 Modify the lexer to interpret "--123.4" as -123.4, "--123" as 0, and
 2401   "123-45" as "123" to match Adobe's behavior.
 2402 The text extractor now reverses the order of side-by-side columns for
 2403   right-to-left scripts.
 2404 Worked on right-to-left script support in pdftohtml (still not
 2405   complete).
 2406 Switched the default display mode to continuous (from single page).
 2407 Added the "-bom" switch to pdftotext.
 2408 Share font objects when multiple font tags point to the same object.
 2409 The transfer function goes before alpha blending in the rasterizer
 2410   pipeline.
 2411 Added the "-allinvisible" switch to pdftohtml.
 2412 Added overprint mode (OPM) support in Level 3 PostScript output.
 2413 Added support for DeviceN color spaces in Level 3 PostScript output.
 2414 Added the "-userunit" option to pdftops.
 2415 Added the "-raw" and "-list" options to pdfimages.
 2416 Pdfimages now writes PGM files (instead of PPM files) for DeviceGray
 2417   and CalGray images.
 2418 Added grayscale PostScript output -- added the '-level2gray' and
 2419   '-level3gray' switches to pdftops.
 2420 Fix up Type 1 fonts when embedding in PostScript.
 2421 Added the "problematic" column to pdffonts output.
 2422 Generate an appearance stream for signature fields in AcroForms.
 2423 Correctly handle line dash patterns with zero-length segments when the
 2424   line cap is butt or project.
 2425 Added the "strokeAdjust cad" xpdfrc option; fixed some issues with
 2426   stroke adjustment and projecting line caps.
 2427 Added support for Code128B bar codes in XFA forms.
 2428 Look at both the ON and OFF arrays in the default OCCD (optional
 2429   content config dict), to work around certain broken PDF files.
 2430 Added support for XFA 'numericEdit' fields.
 2431 Added support for 'picture' formatting in XFA forms.
 2432 Added mouseClickN events (in addition to mousePressN and
 2433   mouseReleaseN).
 2434 External CID OpenType CFF fonts should map through Unicode (similarly
 2435   to external CID TrueType fonts).
 2436 Handle axial and radial shadings in SplashOutputDev, in device space.
 2437 Use the PDF 2.0 inline image length field.
 2438 Handle duplicate embedded Type 1 font names in PostScript output.
 2439 Handle the case of a stroked closed path with a dash pattern -- if the
 2440   dash pattern is "on" at both the start and end of a subpath, it
 2441   should be joined.
 2442 If the line dash phase is negative, add a multiple of 2x the total
 2443   dash length.
 2444 Indexed color space indexes should be clipped to [0,hival].
 2445 Fix the handling of the text render mode with Type 3 fonts, in the
 2446   rasterizer and in PostScript output.
 2447 CID font metrics shouldn't be sorted - the PDF 2.0 spec says that, in
 2448   the case of duplicate entries, the first entry should be used.
 2449 PSOutputDev now converts tiling patterns to PostScript tiling patterns
 2450   (in Level 2/3).
 2451 Fixed a security hole in SecurityHandler.cc (uninitialized variables).
 2452   This vulnerability was discovered by Kushal Shah of Fortinet's
 2453   FortiGuard Labs.
 2454 Fixed a security hole in Function.cc (write past end of array).
 2455 Fixed a security hole with the use of d0/d1 operators outside of a
 2456   Type3 CharProc [CVE-2016-9027].
 2457 
 2458 4.01 (2019-feb-18)
 2459 ------------------
 2460 Added remote server mode back into xpdf.
 2461 Add support for Unicode file names for the command line tools on
 2462   Windows.
 2463 Added the tabStateFile setting, the saveTabState/loadTabState
 2464   commands, and the "-tabstate" switch to xpdf.  [Thanks to Christian
 2465   Barthel for the suggestion.]
 2466 Added the defaultPrinter xpdfrc setting.
 2467 Removed the psFile xpdfrc option (should have been removed in the 4.00
 2468   release).
 2469 Tweaked the TrueType encoding/cmap code again, to get closer to the
 2470   PDF 2.0 spec, and to fix a problem (difference between Xpdf and
 2471   Adobe) with a specific PDF file.
 2472 Optimized transparency group rasterization: only composite the part of
 2473   the group bitmap that was modified.
 2474 If vector antialiasing is disabled, use the narrow stroke code for
 2475   lines less than one pixel wide.
 2476 Do not map through Unicode for non-embedded CID TrueType fonts with
 2477   encoding = Identity-H and char collection = Adobe-Identity -- this
 2478   matches Adobe's behavior on a somewhat common case.
 2479 The CCITTFax decoder now aborts after 1000 error messages, avoiding
 2480   problems with huge data expansion for badly corrupted CCITTFax
 2481   streams.
 2482 The xref loop detection code was only looking at xref tables, and not
 2483   xref streams.  (CVE-2018-7174)  [Thanks to skysider for the bug
 2484   report.]
 2485 The JPX decoder wasn't checking to make sure the number of components
 2486   is non-zero.  (CVE-2018-7175)  [Thanks to skysider for the bug
 2487   report.]
 2488 Modify the lexer to accept leading '+' signs on numbers.
 2489 Pdftohtml wasn't setting the background image width/height attributes
 2490   correctly for rotated pages.
 2491 Ignore color-setting operators in cached Type 3 characters.
 2492 Support color-key masking in Level3Gray PS output with preload.
 2493 Xpdf was crashing on zero-page PDF files.
 2494 Added the unicodeRemapping xpdfrc option.
 2495 Change the cursor when the mouse is over text (in linear selection
 2496   mode).
 2497 Support external OpenType CFF fonts for PostScript output.
 2498 Handle choice-type AcroForm fields that have separate display values
 2499   and export values.
 2500 Increased the supported PDF version from 1.7 to 2.0.  (This isn't a
 2501   change in functionality.  The code was already in place -- I just
 2502   forgot to bump the PDF version number.)
 2503 Added the dropFont xpdfrc option.
 2504 Added support for PDF417 barcodes in XFA forms.
 2505 Modified pdfinfo to look at both the Info dict and the XML metadata.
 2506 Check for invalid line cap/join values.  [Thanks to
 2507   fish@360TeamSeri0us for the bug report.]
 2508 Modified the object stream cache to hold onto more object streams, if
 2509   they're being used.
 2510 Don't look at the "DV" (default value) key in AcroForm fields -- that
 2511   should only be used when a form is explicitly reset.
 2512 Accept 8-byte values in xref streams.
 2513 Two DCTStream bugs: don't allow SOF headers between progressive scans;
 2514   check for invalid Huffman table indexes.  [Thanks to
 2515   fish@360TeamSeri0us for the bug reports.]
 2516 Check for uses of the scn/SCN operators with no arguments.  [Thanks to
 2517   fish@360TeamSeri0us for the bug report.]
 2518 Correctly handle indexed color spaces with empty lookup tables.
 2519   [Thanks to fish@360TeamSeri0us for the bug report.]
 2520 Support large bitmaps (>4GB) on 64-bit systems.
 2521 Soft masks are always isolated.
 2522 When "undoing" preblended image/softmask data, clip the resulting
 2523   color values to avoid problems with incorrect data.
 2524 Set the default text encoding to UCS-2 in Xpdf, so that copying to the
 2525   clipboard works as expected.
 2526 Added a sanity check for JBIG2 symbol height.  (CVE-2018-7173)
 2527   [Reported by skysider.]
 2528 Check for uninitialized value in JPXStream::fillReadBuf.
 2529   (CVE-2018-7452)  [Thanks to skysider for the bug report.]
 2530 Don't try to load an XFAForm if the PDF file has zero pages.
 2531   (CVE-2018-7454)  [Thanks to skysider for the bug report.]
 2532 Check for invalid line cap/join values.  (CVE-2018-16368)  [Thanks to
 2533   fish@360TeamSeri0us for the bug report.]
 2534 If the page count is greater than 50k, rescan the page tree and count
 2535   the pages.  This prevents long load times where various tools try to
 2536   read pages 1 through n.  (CVE-2018-18651)  [Thanks to krace for the
 2537   bug report.]
 2538 Handle a null font name in PSOutputDev::setupEmbeddedType1Font.
 2539   [Thanks to r4xis for the bug report.]
 2540 Check for invalid quant table indexes in the DCT decoder.  [Thanks to
 2541   r4xis for the bug report.]
 2542 
 2543 4.01.01 (2019-mar-14)
 2544 ---------------------
 2545 The PDFDoc(BaseStream) initializer wasn't working correctly.
 2546 Fixed a missing array bounds check in PSOutputDev.  [Thanks to
 2547   Loginsoft for the bug report.]
 2548 If the "U" string used for RC4 decryption is short, Adobe apparently
 2549   zero-pads it, so Xpdf now does the same.
 2550 Pdffonts now checks more carefully for loops between objects.
 2551 Fixed a problem parsing large real numbers.  [Thanks to Loginsoft for
 2552   the bug report.]
 2553 
 2554 4.02 (2019-sep-25)
 2555 ------------------
 2556 Pdftohtml now extracts embedded fonts (TrueType and CFF only).
 2557 Added the margin settings (-marginl -marginr -margint -marginb) to
 2558   pdftotext.
 2559 Various user interface tweaks:
 2560   - added a toolbar button to toggle (show/hide) the sidebar
 2561   - added view menu items to toggle (show/hide) the sidebar and
 2562     toolbar
 2563   - added the 'showToolbar', 'hideToolbar', 'toggleToolbar',
 2564     'expandSidebar', and 'shrinkSidebar' commands
 2565   - added the 'initialDisplayMode', 'initialToolbarState', and
 2566     'initialSelectMode' xpdfrc settings
 2567   - rearranged the xpdf toolbar
 2568 Implemented drag-and-drop, so that PDF files can be drag-and-dropped
 2569   onto an already-open xpdf window.
 2570 Added the option to display page labels, rather than page numbers.
 2571 Implemented the missing 'openInNewWin' command.
 2572 Added the 'openFileIn', 'openFileAtDestIn', 'openFileAtPageIn', and
 2573   'openIn' commands; removed the 'openInNewWin' command.
 2574 Added the '-open' switch to xpdf.
 2575 Added the reverseVideoInvertImages setting.
 2576 Page-up and page-down now "snap" to the nearest page, if it's within a
 2577   few pixels.  This avoids annoying behavior when the window is a tiny
 2578   bit too short or too tall for a page.
 2579 Properly handle overprint in non-isolated transparency groups.
 2580 Missing null check in Gfx::opSetExtGState().  [Thanks to
 2581   pwd@360TeamSeri0us for the bug report.]
 2582 The DCT decoder doesn't handle a sampling factor of 3 -- check for
 2583   this and report an error.  [Thanks for Agostino Sarubbo of Gentoo
 2584   for the bug report.]
 2585 Check for images with a Pattern color space, and report an error.
 2586   [Thanks to TeamSeri0us for the bug report.]
 2587 Check that the Width, Height, and BitsPerComponent are valid in image
 2588   soft masks.  [Thanks to TeamSeri0us for the bug report.]
 2589 Check for zero page width/height in PSOutputDev.  [Thanks to
 2590   TeamSeri0us for the bug report.]
 2591 Check for divide-by-zero in PostScript functions.  [Thanks to
 2592   TeamSeri0us for the bug report.]
 2593 Properly handle overprint in shading pattern strokes.
 2594 The "save image" feature in Xpdf wasn't getting the user-specified
 2595   page number correctly.
 2596 PostScript doesn't support progressive or non-interleaved DCT (JPEG)
 2597   streams, so check for those and re-encode them in PS output.
 2598 Splash now caches the most recent scaled image, in case it is
 2599   immediately reused -- this results in a significant speedup in
 2600   certain cases.
 2601 Fixed a problem with parsing the TrueType loca table.  [Thanks to
 2602   Pangu Lab for the bug report.]
 2603 Fixed a problem with int overflow on image bounds.  [Thanks to
 2604   Pangu Lab for the bug report.]
 2605 Fixed a problem with TrueType font parsing where there is gibberish in
 2606   the TrueType table directory.  [Thanks to Pangu Lab for the bug
 2607   report.]
 2608 Fixed a problem with JPX image resolution reduction.  [Thanks to Pangu
 2609   Lab for the bug report.]
 2610 Fixed a problem with non-isolated transparency groups in 1-bit
 2611   monochrome mode.  [Thanks to Pangu Lab for the bug report.]
 2612 Fixed various bugs in FoFi.  [Thanks to Pangu Lab for the bug
 2613   reports.]
 2614 Added a missing bounds check to Annot::setFillColor().  [Thanks to
 2615   Pangu Lab for the bug report.]
 2616 Added a check on the DCT quant table selector.  [Thanks to Pangu Lab
 2617   for the bug report.]
 2618 Fixed a problem with the Type 3 font cache running out of entries.
 2619   [Thanks to Pangu Lab for the bug report.]
 2620 Fixed an integer overflow bug in SampledFunction.  [Thanks to Pangu
 2621   Lab for the bug report.]
 2622 Fixed an integer overflow bug in the tiling pattern size.  [Thanks to
 2623   Martin Muskens at Ergosoft for the bug report.]
 2624 Fixed a read-past-end-of-buffer in the Type 1 font parser.  [Thanks to
 2625   Pangu Lab for the bug report.]
 2626 Fixed an int overflow bug in the JBIG2 decoder.  [Thanks to
 2627   TeamSeri0us for the bug report.]
 2628 Added a missing bounds check to GfxPatchMeshShading::parse().  [Thanks
 2629   to TeamSeri0us for the bug report.]
 2630 JPEG 2000 tile indexes were being computed incorrectly.  [Thanks to
 2631   TeamSeri0us for the bug report.]
 2632 Large sample separation values in a JPX stream were resulting in
 2633   zero-width/height tiles, which caused problems.  [Thanks to Pangu
 2634   Lab for the bug report.]
 2635 The XFA parser now looks for "ancestor matches" when searching for
 2636   data to fill a form field.
 2637 Fixed an uninitialized variable in BuiltinFontWidths::getWidth().
 2638   [Thanks to Martin Muskens at Ergosoft for the bug report.]
 2639 If there are no popupMenuCmd instances, construct a popup menu with
 2640   basic instructions pointing to 'popupMenuCmd'.
 2641 Ignore color operators in uncolored tiling patterns.  [Thanks to
 2642   Martin Muskens at Ergosoft for the bug report.]
 2643 Pdftotext raw mode output looks for space characters.
 2644 Increased the width of the font name column in the pdffonts output.
 2645 Function objects weren't checking their input/output counts properly.
 2646   [Thanks to Pangu Lab for the bug report.]
 2647 TextPage::findGaps() wasn't checking the x/y min/max values for int
 2648   overflow.  [Thanks to Taolaw for the bug report.]
 2649 
 2650 4.03 (2021-jan-28)
 2651 ------------------
 2652 Implemented selection extension via shift-click, and word/line
 2653   selection via double/triple click.
 2654 Added default bindings for ctrl-mousewheel-up/down to zoom in/out.
 2655 Added the "-nofonts" option to pdftohtml.
 2656 Added the "simple2" mode to pdftotext.
 2657 Added the "-rot" flag to xpdf, pdftoppm, and pdftopng.
 2658 Added the "-listencodings" flag to pdftotext.
 2659 Added the 'copyLinkTarget' command.
 2660 Added the 'selectionColor' xpdfrc setting.
 2661 Added the 'initialSidebarWidth' xpdfrc setting.
 2662 Added support for @"..." strings in xpdfrc files.  This includes using
 2663   '%' as an escape character, and also the '${DATADIR}' variable.
 2664 Added a help menu item that shows all of the key bindings.
 2665 Reorganized the gradient shading rasterization code to avoid
 2666   transparency artifacts between triangles/patches.
 2667 Use interpolation rather than subdivision to rasterize Gouraud
 2668   triangle shadings.
 2669 Allow escaping (via the \x01 character) in command args, so that "xpdf
 2670   -open foo(123).pdf" works correctly.
 2671 Extended the damaged file repair code to handle PDF files that use
 2672   xref streams and object streams.
 2673 Modified pdfinfo to print the encryption algorithm used (if any).
 2674 Handle Windows shortcut (.lnk) files in Xpdf and in the command line
 2675   tools.
 2676 Display an error dialog when trying to copy text from a protected
 2677   file.
 2678 Updated all four of the CJK language support packages with the latest
 2679   Adobe data.
 2680 Modified pdftohtml to draw 'invisible' text over non-horizontal words.
 2681 Catalog.pageLabels wasn't being properly initialized to NULL.  [Thanks
 2682   to Dhiraj for the bug report.]
 2683 Added a sanity check for JBIG2 symbol width.  [Reported by Marc
 2684   Schoenefeld.]
 2685 Fixed a bug in the fontconfig calls that was causing Xpdf to crash.
 2686 The Type 3 font cache code wasn't correctly handling the case where a
 2687   Type 3 char refers to another char in the same T3 font.  [Thanks to
 2688   Pangu Lab for the bug report.]
 2689 Xpdf was crashing if 'view page labels' was enabled without any
 2690   document open.  [Thanks to TeamSeri0us for the bug report.]
 2691 The Type 1C-to-Type 1 font converter wasn't checking for
 2692   divide-by-zero with rational numbers.  [Thanks to TeamSeri0us for
 2693   the bug report.]
 2694 Fixed a bug in the TrueType font parser - zero-length loca tables
 2695   weren't handled correctly.  [Thanks to TeamSeri0us for the bug
 2696   report.]
 2697 Fixed an integer overflow bug in the transparency group setup code.
 2698   [Thanks to TeamSeri0us for the bug report.]
 2699 Pdfinfo with the "-box" option was crashing on zero-page PDF files.
 2700   [Thanks to TeamSeri0us for the bug report.]
 2701 The code that caches scaled images wasn't checking the rendering
 2702   intent.  [Thanks to Martin Muskens at Ergosoft for the bug report.]
 2703 The JBIG2 decoder now checks for gibberish values in various segment
 2704   headers, but keeps any data decoded prior to that.
 2705 Fixed two bugs in the FoFi code that handles CFF fonts.  [Thanks to
 2706   dsmic for the bug report.]
 2707 Redesigned the image scaling code, for performance.
 2708 Cleaned up the code that sanity-checks font sizes to avoid trying to
 2709   allocate too much memory for the font cache.
 2710 Implemented precincts in the JPEG 2000 decoder.
 2711 The page-up/down snapping code was calling TileMap::getPageTopY() with
 2712   invalid page numbers.  [Thanks to dfandrich for the bug report.]
 2713 Added missing error-checking when parsing an annotation appearance
 2714   stream's bbox.
 2715 Handled UTF-16 sequences in ToUnicode maps.
 2716 Rewrote the code that draws static XFA forms: combined it with the
 2717   AcroForm code, to match Adobe's behavior.  Removed the enableXFA
 2718   xpdfrc setting.
 2719 Check for indirect references in content streams and report an error.
 2720 Doing overprint preview in tiling patterns requires tracking the
 2721   overprint mask at each pixel.
 2722 Check for "decompression bombs" in Flate and LZW streams.
 2723 The nextPageNoScroll and prevPageNoScroll commands weren't working
 2724   correctly in continuous mode.
 2725 Disable stroke adjustment when drawing Type 3 characters.
 2726 The "xpdf -open" flag now constructs an absolute path, so it's not
 2727   dependent on the current directory when xpdf was started.
 2728 Check for infinite loops in Type 1C charstring subroutines.  [Thanks
 2729   to blbi for the bug report.]
 2730 Fixed an incomplete test for headless CFF files.  [Thanks to Chengbin
 2731   for the bug report.]
 2732 Tweaked the code that computes segment slope in SplashXPath.cc to
 2733   avoid problems with extremely small coordinate values.  [Thanks to
 2734   Chengbin for the bug report.]
 2735 Check for an invalid segment length in PSOutputDev's PFB parse.
 2736   [Thanks to Chengbin for the bug report.]
 2737 Check for JPEG 2000 segments that are only allowed in the first
 2738   tile-part of a tile.  [Thanks to Chengbin for the bug report.]
 2739 Check for invalid AcroForm ListBox field top index.  [Thanks to
 2740   Chengbin for the bug report.]
 2741 Check for invalid mesh shading parameters.  [Thanks to Chengbin for
 2742   the bug report.]
 2743 
 2744 4.04 (2022-apr-18)
 2745 ------------------
 2746 When closing a file, save the current page number in ~/.xpdf.pages,
 2747   and restore it next time the file is opened.  This can be disabled
 2748   with "savePageNumbers no" in your xpdfrc file.
 2749 Allow the tab list to be reordered, using drag-and-drop.
 2750 Added a document information dialog, with metadata and fonts, to xpdf.
 2751 Pdftohtml now generates HTML links for URI links anchored on text.
 2752 Added the useTrueTypeUnicodeMapping xpdfrc setting.
 2753 Added the 'enableXFA' xpdfrc setting back: if set to 'no', xpdf will
 2754   not read an XFA form, meaning all form info comes from the AcroForm.
 2755 Add support for long paths on Windows 10.
 2756 Added the "-formfields" option to pdftohtml.
 2757 Added the "-embedbackground" and "-embedfonts" options to pdftohtml.
 2758 Added the "-vstretch" option to pdftohtml.
 2759 Added the "-verbose" flag to pdfimages, pdftohtml, pdftopng, pdftoppm,
 2760   pdftops, and pdftotext.
 2761 Added the showAttachmentsPane, showLayersPane, and showOutlinePane
 2762   commands.
 2763 Added the 'openFile2' command to xpdf.
 2764 Added the showMenuBar, hideMenuBar, and toggleMenuBar commands to
 2765   xpdf.
 2766 Rearrange file names in the tab list to "foo.pdf [/full/path/]", to
 2767   improve the usability of the (narrow) tab list.
 2768 Added the 'imageMaskAntialias' xpdfrc setting.
 2769 Added the '-table' switch to pdftohtml.
 2770 Fixed a couple of progression order bugs in the JPEG 2000 decoder.
 2771   [Thanks to shellway for the bug reports.]
 2772 Fixed a problem with subsampled pixel index computations in the JPEG
 2773   2000 decoder.  [Thanks to shellway for the bug report.]
 2774 Fixed a couple of memory leaks triggered by fuzzed PDF files.  [Thanks
 2775   to shellway for the bug report.]
 2776 Changed pdftohtml to generate spans with 'class=' instead of 'id=', so
 2777   there aren't duplicate ids.  Also removed the unused id in the
 2778   background img element.
 2779 Optimized SplashOutputDev::drawTilingPattern for the case where the
 2780   tile is much larger than the area being drawn (i.e., the clipping
 2781   bbox).  In this case, we can render just the needed portion of the
 2782   tile.
 2783 Added a missing zero check for precinct size in the JPEG 2000 decoder.
 2784   [Thanks to shellway for the bug report.]
 2785 Added a missing null check in the XFA form scanner.  [Thanks to Taolaw
 2786   for the bug report.]
 2787 Deal with xref streams that include a free entry with gen=0xffffffff.
 2788 Fixed a problematic corner case in looking up XObject resources.
 2789   [Thanks to shellway for the bug report.]
 2790 The unicodeRemapping config command wasn't correctly handling unsorted
 2791   remapping files.
 2792 Improved handling of RTL text in the text extractor.
 2793 Extended the saveTabState/loadTabState commands to save/restore
 2794   display mode, zoom, rotation, and scroll position for each tab.
 2795 Added support for Qt6.
 2796 Added a missing bounds check on stream DecodeParms arrays.  [Thanks to
 2797   minipython for the bug report.]
 2798 Fixed an integer overflow check in XRef::readXRefTable.  [Thanks to
 2799   yangshufan for the bug report.]
 2800 The builtin Latin1 encoding was mapping 'endash' instead of
 2801   'softhyphen' to 0xad.  [Thanks to Jach Fong for the bug report.]
 2802 Fixed a bug in PSOutputDev::checkPageSlice() when built without
 2803   SPLASH_CMYK.  [Thanks to irfanariq for the bug report.]
 2804 Added missing array length and type checks in Gfx::doForm().  [Thanks
 2805   to shaohua for the bug report.]
 2806 Fixed an integer overflow security hole in the JBIG2 decoder.
 2807 Substitute Helvetica for undefined fonts and bad font objects.
 2808 Added an integer overflow check in JPXStream.  (JPXStream issue)
 2809   [Thanks to Shin Ando @ Ricera Security for the bug report.]
 2810 The DCT (JPEG) decoder was allowing the 'interleaved' flag to be
 2811   changed after the first scan of the image.  (CVE-2022-24106) [Thanks
 2812   to Shin Ando @ Ricera Security for the bug report.]