2012-02-10  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.12.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.12.

2012-02-10  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.11.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.11.

2012-02-10  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c: If incoming PDF needs to be converted to PostScript
	  due to the filter command line not being a standard Ghostscript
	  command line, no separate PDF command line being supplied, or
	  options in the PPD being implemented by PostScript code, use
	  preferrably Ghostscript (with the "ps2write" device) for this
	  conversion as Ghostscript is better optimized for printing and
	  has a more sophisticated color management compared to Poppler.

2012-02-10  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.10.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.10.

2011-08-18  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c, renderer.c: SECURITY FIX: Use the mktemp shell
	  command/mkstemp() function to create the debug log file and the
	  renderer input data file (both files only generated when
	  foomatic-rip is un in debug mode) with file names with an
	  unpredictable part. The names are /tmp/foomatic-rip-XXXXXX.log and
	  /tmp/foomatic-rip-YYYYYY.ps where the XXXXXX and YYYYYY are
	  replaced by random strings. Thanks to Tim Waugh from Red Hat for
	  for the patch (bug #936, CVE-2011-2924).

2011-07-25  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.9.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.9.

2011-07-25  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c: Fixed build of foomatic-rip on systems without
	  D-Bus. Thanks to Richard Hughes (hughsient at gmail dot com) for
	  the quick fix.

2011-07-25  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.8.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.8.

2011-07-24  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c: Removed stray characters from "pstoraster"
	  Ghostscript command line.

	* foomaticrip.c, pdf.c, renderer.c: Added "-dNOINTERPOLATE" to the
	  Ghostscript command lines as this makes Ghostscript rendering
	  the pages significantly faster. Use "ps2write" instead of "pswrite"
	  as PostScript output device as Ghostscript produced huge output
	  files with "pswrite" (and "pswrite" is also deprecated now).

	* foomaticrip.c: SECURITY FIX: It was possible to make CUPS executing
	  arbitrary commands as the system user "lp" when foomatic-rip was
	  used as CUPS filter. Fixed by not parsing named options (like
	  "--ppd lj.ppd") when foomatic-rip is running as CUPS filter, as
	  CUPS does not supply named options to their filters.

2011-03-04  Till Kamppeter <till.kamppeter@gmail.com>

	* configure.ac: Support for libdir in the ./configure script.

	* pdf.c: Use mkstemp() instead of mktemp(). Thanks to Richard
	  Hughes (hughsient at gmail dot com) for supplying me this patch
	  from Red Hat.

	* colord.c, colord.h, Makefile.am, configure.ac, foomaticrip.c,
	  options.c, options.h: Added support for ICC-based color managment.
	  Both colord and CUPS' ICC-related PPD extensions are supported.
	  For colord D-Bus is required. Thanks to Richard Hughes (hughsient
	  at gmail dot com) for the patch.

2011-02-21  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.1.in: Corrected typos in the man page for
	  foomatic-rip. Thanks to Tim Waugh from Red Hat for the patch (bug
	  #659).

2011-02-18  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.7.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.7.

2011-01-04  Till Kamppeter <till.kamppeter@gmail.com>

        * acinclude.m4, configure.ac: General cleanup (as in bugs #609,
          #610).

2010-12-23  Till Kamppeter <till.kamppeter@gmail.com>

	* README: Corrected several typos. Thanks to Christopher Yeleighton
	  (giecrilj at stegny dot 2a dot pl) for the patch (bug #598).

2010-12-16  Till Kamppeter <till.kamppeter@gmail.com>

	* README: Corrected e-mail address of Helge Bliscke.

2010-12-15  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c: Run strtok() on a copy of the list of input files
	  for the first check, as strtok() modifies the string it parses,
	  overwriting the delimiters with zeros. Before, the list of input
	  files only showed its first entry when being parsed again for
	  actually printing the files (Ubuntu bug #676680).

	* Tagged branch for release 4.0.6.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.6.

	* options.c: Allow length limitation for the substitution of the special
	  entities "&job;", "&user;", "&host;", "&title;", and "&options;":
	  The maximum length can be supplied via the PPD keywords
	  "*FoomaticRIP<Item>EntityMaxLength: <mexlength>" (for example
	  "*FoomaticRIPUserEntityMaxLength: 8") or by adding a number to the
	  individual entities (for example "&user8;"). If the string to
	  insert for the entity is longer than the limit, it gets cut off to
	  the limit. Feature requested by Uli Wehner from Ricoh
	  (http://forums.linux-foundation.org/read.php?30,13134).

2010-12-10  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c: Make file type detection also work if the PostScript
	  or PDF input is preceeded by PJL with an additional '%' character.
	  Thanks to Alexpro for reporting this as Ubuntu bug #688551 and
	  supplying the patch.

2010-11-11  Till Kamppeter <till.kamppeter@gmail.com>

	* util.c: The temp_dir() function did not take into account that
	  getenv() can return NULL. In such a case the fallback to /tmp
	  did not work. Thanks to Abel Abraham Camarillo Ojeda (spam at
	  verlet dot org) for the patch (bug #552).

	* fileconverter.c: Make the check for the text filter actually
	  work. Before, the text filter choice from the configuration file
	  was simply taken for good and not checked whether it is supported.
	  Thanks to Abel Abraham Camarillo Ojeda (spam at verlet dot org)
	  for the patch (bug #551).

2010-08-27  Till Kamppeter <till.kamppeter@gmail.com>

	* options.c: Made sure that the unhtmlify() function does not write
	  the zero byte to mark the string end beyond the buffer. Also use a
	  much larger buffer for parsing "*FoomaticRIPOptionPrototype:" in
	  the PPD file (bug #515).

	* util.c: In strncpy_tochar() use the isempty() function to check
	  whether the input string is empty (bug #514).

2010-08-10  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.5.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.5.

2010-07-07  Till Kamppeter <till.kamppeter@gmail.com>

	* options.c: Make substitution of zeros by the the user-defined
	  page size in the prototype string for the custom page size
	  working. Before, only substitution of %0 and %1 worked reliably.
	  Thanks to Lutz Sammer (johns98 at web dot de) for reporting this
	  problem (see also bug 514, comment #1).

	* options.c: Make custom page size settings also work if the custom
	  size is set via embedded PostScript code and the comment to mark
	  the selected option setting is only "%% FoomaticRIPOptionSetting:
	  PageSize=Custom", without the size and unit parameters. Thanks to
	  Lutz Sammer for reporting this problem (see also bug 514, comment #1).

2010-07-02  Till Kamppeter <till.kamppeter@gmail.com>

	* spooler.c: Config file for the default printer in spooler-less
	  (direct) printing mode was not read correctly. Thanks to Lutz
	  Sammer (johns98 at web dot de) for reporting this problem (see
	  also bug 514, comment #1).

	* spooler.c: Fixed error message output if a printer's PPD is missing
	  in spooler-less mode. There was a segfault due to the printer name
	  not specified in the _log() function call. Thanks to Lutz Sammer
	  for reporting this problem (see also bug 514, comment #1).

	* util.c: The isempty() function did not consider NULL as an empty
	  string. This caused segfaults when a string is considered non-empty
	  but in fact it is NULL. Thanks to Lutz Sammer for reporting this
	  problem (see also bug 514, comment #1).

	* util.c: strncpy_tochar() did not check whether the input string
	  is empty and returned a pointer one character beyond the input
	  string, leading to segfaults in the code calling this function.
	  Thanks to Lutz Sammer for reporting this problem (see also bug 514,
	  comment #1).

2010-06-08  Till Kamppeter <till.kamppeter@gmail.com>

	* USAGE: Documentation correction.

2010-06-07  Till Kamppeter <till.kamppeter@gmail.com>

	* USAGE: Finally completed the documentation update to reflect that
	  the Ghostscript library is not needed any more.

	* configure.ac, util.h, util.c: Added implementation of strcasestr()
	  function for non-GNU systems (completes fix of bug #303, thanks
	  to Tim Mooney for this fix).

	* foomaticrip.c, foomaticrip.h, pdf.c: Let foomatic-rip actually
	  error out if something goes wrong. It simply continued or closed
	  silently (exit status 0) on the following events: Failure of
	  print_file() function call, failure of Ghostscript to determine
	  the number of pages of a PDF input file (causes Ubuntu bug
	  #570522), failure to start Ghostscript to render a PDF file,
	  failure to create a temporary file for extracting selected pages
	  from a PDF file, failure to run Ghostscript to extract pages from
	  a PDF file, page count result being a negative number.

	* foomaticrip.c: Use EXIT_PRINTED constant and not hard-coded "0"
	  as exit value when terminating successfully.

	* foomaticrip.h: Correct definition of EXIT_STARVED constant.

2010-03-26  Till Kamppeter <till.kamppeter@gmail.com>

	* options.c, options.h: Made some strings longer, to avoid space
	  problems.

2010-02-15  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.4.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.4.

	* README, USAGE: Reflected that libgs is not needed any more.

2010-02-12  Till Kamppeter <till.kamppeter@gmail.com>

	* pdf.c, configure.ac: Removed dependency on libgs by calling
	  Ghostscript via the command line. This makes packaging for Linux
	  distributions easier and also building on Mac OS X and Solaris
	  gets simplified (Bugs #303, #382, #384).

2010-02-05  Till Kamppeter <till.kamppeter@gmail.com>

	* options.c, spooler.c: Made suppression of CUPS accounting PostScript
	  code into a PostScript data stream actually working:
	  PPD keyword is "*FoomaticRIPCommandLinePDF", value must be "true",
	  and check of the ps_accounting variable must be done after parsing
	  the PPD file (Ubuntu bug #513690).

2010-02-03  Till Kamppeter <till.kamppeter@gmail.com>

	* postscript.c: Added NULL pointer check to avoid segfault when
	  custom margins option is added to the PPD file via the
	  alignmargins script (Bug #413, Debian bug #539676).

2010-02-02  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c: If incoming PDF needs to get converted to
	  PostScript remove /usr/lib/cups/filter from $PATH, so that
	  "pdftops" of Poppler or XPDF gets called and not "pdftops" of
	  CUPS. The latter has another command line and does undesired page
	  management operations (Ubuntu bug #463059).

2010-01-19  Lars Uebernickel <larsuebernickel@gmx.de>

	* *.[ch], README: Added license headers to all source files and
	  clarified in the README that the license is GPLv2 or later.

2010-01-16  Till Kamppeter <till.kamppeter@gmail.com>

	* options.c: Fixed the previous revision to have bug #399 also
	  fixed for float options.

2010-01-15  Till Kamppeter <till.kamppeter@gmail.com>

	* options.c: When building the driver command line do not use the
	  empty code fields of automatically generated choices of
	  numerical options of Foomatic-based PPDs (bug #399).

2009-08-19  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.3.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.3.

	* foomaticrip.c: If PDF input has to be converted to PostScript
	  due to a PPD which does not support PDF (like the PPDs of the
	  Foomatic "Postscript" driver), we try at first to use "pdftops"
	  (Poppler) and only if this fails we use Ghostscript. This is
	  because Ghostscript blows up PDFs to huge PostScript
	  files (which many PostScript printers failed on), whereas
	  Poppler's output stays compact. As "pdftops" does not support
	  reading from stdin, we create a temporary file with the input
	  before starting to convert. Note that "pdftops" will get only
	  used if it has the "-origpagesizes" option (Poppler 0.11.x or
	  newer), as otherwise documents with pages of different sizes do
	  not get converted correctly (bug #365).

	* pdf.c, util.c, util.h: Moved temp_dir() function from pdf.c to util.c
	  as it is now also needed by foomaticrip.c.

	* foomaticrip.c: Fixed LPRng support (bug #337): PPD file names
	  were not read correctly from /etc/printcap (PRINTCAP_ENTRY
	  environment variable), starting 8 characters after the beginning
	  of the path and not stopping at a colon. Also the last command
	  line argument of the foomatic-rip call was always considered the
	  name of the PPD file, even if the PPD file name was already
	  determined by the PRINTCAP_ENTRY environment variable or the
	  "--ppd" command line argument.

2009-07-01  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c: Do not use JCL which is preceeded to the input
	  data. We can generate it on our own and even merge it with the JCL
	  coming from the driver.

	* renderer.c: Make sure that "@PJL SET ..." commands from the PPD
	  file do not get nmerged into the driver's PJL header too early,
	  expecially not before "@PJL JOB ..." lines, as then the commands
	  get ignored. This happened especially with the "InputSlot"
	  option for the "cdnj500" driver.

2009-06-24  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.2.

	* VERSION, README, USAGE, configure.ac: Updated for release 4.0.2.

2009-05-31  Till Kamppeter <till.kamppeter@gmail.com>

	* configure.ac: Add support for cups-config (bug #349).

2009-05-27  Till Kamppeter <till.kamppeter@gmail.com>

	* renderer.c: Fixed no-return-in-nonvoid-function compiler warning
	  caused by the write_binary_data() function (bug #348).

2009-04-23  Till Kamppeter <till.kamppeter@gmail.com>

	* Re-tagged branch for release 4.0.1.

	* VERSION, README, USAGE, configure.ac: Updated.

2009-04-19  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.1.

	* foomatic-rip.1.in: Added documentation for the configuration file
	  (/etc/foomatic/filter.conf, bug #312), minor text fixes.

	* postscript.c: Fixed segfault when the PPD contains only a
	  default value but not an option for it (like
	  "*DefaultResolution: 600dpi" and the client inserts this as an
	  option setting into the PostScript input data stream (Windows
	  clients do so). Bug #324.

2009-03-30  Till Kamppeter <till.kamppeter@gmail.com>

	* options.c: Custom page sizes were not accepted if one of the three
	  parameters "WidthOffset", "HeightOffset", or "Orientation" of the
	  "PageSize" option in the PPD file did not allow 0 as value.
	  Made error messages for the parameters of custom options more
	  readable.
	
	* foomaticrip.c, options.c: If there are printing system options
	  (like "media" of CUPS) and PPD options (like "PageSize") on the
	  command line and they do the same thing (like choosing the paper
	  size) let the setting of the PPD option always have priority,
	  as this is expected for a CUPS filter (see CUPS STR #3148). This 
	  is done by treating the printing system options before the PPD
	  options. This fixes Ubuntu bug #338999.

2009-03-08  Till Kamppeter <till.kamppeter@gmail.com>

	* renderer.c: Fixed segmentation fault in JCL option handling (bugs
	  #311 and #317).

2009-03-07  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.1.in: Fixed typos.

	* renderer.c: When doing the massaging of the remderer command line
	  foomatic-rip inserts 'gs' at the wrong place in command lines of
	  Foomatic 3.x-generated PPD files for the "Postscript" driver, leading
	  to duplicate calls of Ghostscript (bug #316).

	* foomaticrip.c: Fixed buffer overflow mentioned in bug #311.

2009-02-11  Lars Uebernickel <larsuebernickel@gmx.de>
	* foomaticrip.c: The value of the "execpath" variable in the config
	file was not used fully: Only the characters leading up to the first
	':' were copied into the programs $PATH environment variable.

2009-02-11  Lars Uebernickel <larsuebernickel@gmx.de>
	* renderer.c: Fixed several bugs in the argument replacements in
	massage_gs_commandline.
	* foomaticrip.c: Use "gspath" and "echopath" from the config file.

2009-02-09  Lars Uebernickel <larsuebernickel@gmx.de>

	* fileconverter.h, foomaticrip.c, renderer.c, util.c: Made
	  foomatic-rip building under Mac OS X, mainly by replacing
	  functions which are GNU-only.

2009-02-02  Till Kamppeter <till.kamppeter@gmail.com>

	* renderer.c: When foomatic-rip looked for JCL options in the
	  binary output of the driver to merge them with JCL options from
	  the PPD file, it read binary data into a C string, which causes
	  problems when this data contains zeroes. Finally fixes Ubuntu bug
	  LP: #303691.

2009-01-29  Till Kamppeter <till.kamppeter@gmail.com>

	* renderer.c: If there were very many JCL lines in the driver's
	  output or coming together by JCL options, the JCL merging
	  process (kid4) segfaulted (Ubuntu bug LP: #321164,
	  https://launchpad.net/bugs/321164).

2009-01-14  Till Kamppeter <till.kamppeter@gmail.com>

	* Tagged branch for release 4.0.0.

2009-01-13  Till Kamppeter <till.kamppeter@gmail.com>

	* options.c: Custom JCL options were not inserted correctly
	  (thanks to Bin Li from Ricoh for reporting this). Fixed also
	  that "None" as argument for a string or password option is
	  considered as the empty string.

	* options.c: String and password option settings got inserted into
	  the command line or the PostScript code with the "Custom."
	  prefix (thanks to Bin Li from Ricoh for reporting this). Fixed
	  also a segmentation fault due to missing initialization of
	  components of the param_t data structure by the
	  option_add_custom_param_from_string() function. Removed also
	  some unneeded free() calls.

2009-01-12  Till Kamppeter <till.kamppeter@gmail.com>

	* acinclude.m4: Eliminated warnings when generating ./configure

2009-01-08  Till Kamppeter <till.kamppeter@gmail.com>

	* README, USAGE: Version 4.0.0.

	* STANDARD_installation: Tell also that "sudo make install" works
	  to run "make install" as root.

	* Makefile.am: Fixed cleaning rules. Many transient files did not
	  get removed.
	  Fixed "make inplace" and uninstalling rules.

2009-01-03  Till Kamppeter <till.kamppeter@gmail.com>

	* postscript.c: Do the workaround for PostScript input of
	  OpenOffice 1.1.x also for StarOffice 8 (Thanks to Martin Jacobs,
	  martin dot jacobs at arcor dot de, for the patch).

2008-12-10  Till Kamppeter <till.kamppeter@gmail.com>

	* foomaticrip.c, foomaticrip.h, options.c: The PostScript code of
	  PostScript options did not get inserted when the spooler is CUPS
	  and foomatic-rip had to convert incoming PDF to PostScript
	  (Ubuntu bug #299918).

2008-12-05  Till Kamppeter <till.kamppeter@gmail.com>

	* README: Updated for Foomatic 4.x

	* test/*: Added test suite based on the LSB tests for foomatic-rip

	* README, USAGE, foomatic-rip.1.in, foomaticrip.c, options.c, pdf.c.
	  spooler.c: s/GhostScript/Ghostscript/

2008-11-30  Till Kamppeter <till.kamppeter@gmail.com>

	* postscript.c: Insert the "%%PageSetup" section directly after
	  the DSC comment header of the page, all page drawing commands
	  must be after the section.

	* postscript.c: Inserted PostScript option settings from pstops
	  were not corrected with custom option settings done on the
	  command line (numerical, string, password).

	* options.c: Small fix for better readability.

	* renderer.c: If there was only one PJL option in the PPD no PJL got
	  added at all (Ubuntu bug #303691).

	* renderer.c: Fixed several bugs in the merging of PJL options.
	  In some cases equal keywords were not found in the two JCL
	  option sets or keywords only differing by the last character
	  were considered equal. Also a command in the first line of the
	  driver's PJL header got dropped.

2008-11-26 Lars Uebernickel <larsuebernickel@gmx.de>
	* options.c: When a numeric value is out of range, use the default
	  value instead of the closest valid value (i.e. min or max). Do not
	  truncate string options which are longer than allowed, use the
	  default instead. Apply AllowedChars and AllowedRegExp also to
	  Password options.

	  Small bug fix: The generated regular expression for AllowedChars was
	  missing the final '$' and therefore didn't match all cases
	  correctly.

	  Bug fix: Merge JCL options correctly

2008-11-21 Lars Uebernickel <larsuebernickel@gmx.de>
	* options.c: Fixed bug: Setting the page range of an option to
	  multiple ranges (seperated by comma), foomatic-rip was caught in an
	  infinte loop.

	* options.c: Fixed bug: Page ranges were not applied for command line
	  options when processing PostScript files (the renderer wasn't
	  restarted as it should have been).

2008-11-13 Lars Uebernickel <larsuebernickel@gmx.de>
	* options.c: Don't prepend @PJL to JCL options if they already start
	  with @PJL. Unhexify JCL commands.

	* options.c: Handle CustomJCL<option> and ParamCustomJCL<option>.
	  Prefer JCL Custom options over foomatic options (as was already done
	  for PostScript options).

2008-10-22  Till Kamppeter <till.kamppeter@gmail.com>

	* postscript.c: Reset the "fromcomposite" variable when treating
	  a "%%BeginFeature" line. In this case we do not do the treatment
	  of composite options and so the variable should never remain set
	  from a previous "%%FoomaticRIPOption" line. Fixes the problem
	  described in comment #23 of bug #173.

2008-10-15 Lars Uebernickel <larsuebernickel@gmx.de>
	* ppd.c: In some cases, the code for the true and false settings of
	boolean values was interchanged. E.g., if the user (or the default)
	chose "false" for an option, the code for "true" was embedded in the
	PostScript / JCL / Command Line.

2008-10-15 Lars Uebernickel <larsuebernickel@gmx.de>
	* postscript.c: Let foomatic-rip not try to correct the
          settings of boolean and enumerated choice options embedded in
          the Prolog and Setup sections of the PostScript input data. With
          the current pstops filter of CUPS we cannot determine any more
          whether these options come from pstops or from the application.
          Corrections of these options are only needed in the PageSetup,
          anyway, for page overrides (Bug #173). [ported from foomatic-rip 3]

2008-10-01 Lars Uebernickel <larsuebernickel@gmx.de>
	* pdf.c: Use $TMPDIR for storing temporary files, and only use
	P_tmpdir or /tmp if $TMPDIR is not writable.

2008-09-25  Till Kamppeter <till.kamppeter@gmail.com>

	* beh.in: Use /tmp as temporary directory when CUPS does not
	  supply the $TMPDIR environment variable (Ubuntu bug #268284).

2008-09-24 Lars Uebernickel <larsuebernickel@gmx.de>
	* foomaticrip.c: Remove leading whitespace from jobs instead of
	passing it on. Flush() standard output after writing leading data to
	ensure it comes first (not after or between the output of the
	renderer).

2008-09-24 Lars Uebernickel <larsuebernickel@gmx.de>
	* pdf.c, renderer.c: Put JCL data also around PDF documents

2008-08-13 Lars Uebernickel <larsuebernickel@gmx.de>
	* pdf.c: foomatic-rip inserted the -sOutputFile GhostScript command
	  line argument at the wrong position when printing a PDF file (not from
	  stdin), which led GhostScript to crash
	* options.c: Option settings can be given in the PPD file before the
	  option is "declared", which led foomatic-rip to think that there are
	  PostScript options (the default) in the PPD and the driver could not
	  understand PDF input. Now, foomatic-rip checks for PostScript
	  options after the whole PPD has been read.

2008-08-12 Lars Uebernickel <larsuebernickel@gmx.de>
	* options.c: Use FoomaticRIPCommandLinePDF if it is available. Don't
	  use it if at least one option wants to insert PostScript code
	* pdf.c: Only create a temporary file if there actually are page
	  overrides, not if printing the whole document
	* postscript.c: Fixed bug #142, custom input value which was wrongly
	  set by pstops was not set to the correct value by foomatic-rip

2008-08-05 Lars Uebernickel <larsuebernickel@gmx.de>
	* renderer.c: fixed bug #146, merging of JCL options omitted some
	  options.
	* options.c: Fixed bug #151, crash when default value of an option was
	  set from a composite option.

2008-07-30 Lars Uebernickel <larsuebernickel@gmx.de>
	* *: Added support for the *FoomaticRIPCommandLinePDF keyword. It will
	  be used for PDF input. If it is missing, *FoomaticRIPCommandLine
	  will be used _only_ if it calls GhostScript, otherwise the Job is
	  converted to PostScript.
	* pdf.c: Pagerange-specific options work correctly now. If the command
	  line calls GhostScript, the -d(First|Last)Page parameters are used.
	  Otherwise, the PDF is split with GhostScript and fed to the command
	  line afterwards.

2008-06-22 Lars Uebernickel <larsuebernickel@gmx.de>
	* options.c: Allow float values on *OrderDependency settings. This is
	valid according to the PPD spec, and is used by some HP PPDs.

2008-06-17 Lars Uebernickel <larsuebernickel@gmx.de>
	* options.c: Allow choices starting with "From". Even if they do not
	  point to a valid composite option.
	* renderer.c: Parse more complex command lines correctly when looking
	  for the "gs" executable

2008-06-17 Lars Uebernickel <larsuebernickel@gmx.de>
	* options.c, postscript.c: fixed bug #138 (foomatic-rip does not
	  always insert the code pieces of the members of composite options)

2007-06-13  Till Kamppeter <till.kamppeter@gmail.com>

	* renderer.c: When replacing elements of the Ghostscript command line,
	  do not remove the spaces between the items. This made printing with
	  the new foomatic-rip not working in general for most cases.

2008-05-11 Lars Uebernickel <larsuebernickel@gmx.de>
	* pdf backend: removed poppler dependency, process pdfs with libgs
	now. Changed the buildsystem to reflect this.

2008-04-23 Lars Uebernickel <larsuebernickel@gmx.de>

	* foomatic-rip.c, configure.ac: Compose the current version out of the
	contents of VERSION and `bzr revno`. It is now possible to find out
	foomatic-rip's version by calling it with one of "--version", "-v",
	"--help", or "-h".

2008-04-22 Lars Uebernickel <larsuebernickel@gmx.de>

	* foomatic-rip.c, options.c: Fixed a bug in option parsing (some
	  options were not read correctly).

	  Let option settings for the "PageSetup" sections of the
	  PostScript input file really be inserted in and not before the
	  "PageSetup" sections.

2008-04-21 Lars Uebernickel <larsuebernickel@gmx.de>

	* postscript.c, options.c: New placeholder "&rbinumcopies;" which gets
	replaced by the value set in the "%RBINumCopies: ..." or
	"%%RBINumCopies: ..." line in the PostScript input. If the PostScript
	input does not contain such lines, the number of copies according to
	the foomatic-rip command line is inserted. Feature request of George
	Liu from Ricoh.

2008-03-17 Lars Uebernickel <larsuebernickel@gmx.de>
	* foomaticrip.c, options.c: Moved buildcommandline() and
	append_*_section() to options.c, where they belong.
	* foomaticrip.c, spooler.c: Moved some spooler specific stuff to spooler.c
	to clean up foomaticrip.c some more.

2008-03-16 Lars Uebernickel <larsuebernickel@gmx.de>
	* foomaticrip.c: Started to move all process forking to process.c - to
	  share it with the pdf handler. Furthermore, the functions in process.c
	  will keep track of all forked processes and kill them when foomatic-rip
	  reveives a SIGTERM.

2008-03-08 Lars Uebernickel <larsuebernickel@gmx.de>
	* options.c: Accept custom page sizes without a unit (assume pt)

2008-03-04 Lars Uebernickel <larsuebernickel@gmx.de>
	* foomatic-rip.c, options.c: Use default values for custom options with
	  wrong parameters (e.g. PageSize=Custom) - Ubuntu bug #196687

2008-03-03 Lars Uebernickel <larsuebernickel@gmx.de>
	* foomatic-rip.c: Fixed minor bug in option parsing
	* pdf.cc/pdf.h: Beginning of pdf printing support. Printing is done
	  via ghostscript, using the commandline in the ppd file that is already
	  used for rendering postscript.

2008-01-26 Lars Uebernickel <larsuebernickel@gmx.de>
	* foomatic-rip: Fixed minor bugs found while testing foomatic-rip
	  with cups.

2008-01-22 Lars Uebernickel <larsuebernickel@gmx.de>
	* foomatic-rip: Merged foomatic-gswrapper into foomatic-rip.
	* *: Fixed 'make install'

2008-01-14 Lars Uebernickel <larsuebernickel@gmx.de>
	* *: Added support for CUPS custom options
	  (see http://www.cups.org/documentation.php/spec-ppd.html#OPTIONS)
	   o PPD files can contain both CUPS and foomatic custom options
	   o Custom options can be set like this on the command line:
	   		Options with a single parameter:
	   			-o optionname=Custom.value  or
	   		    -o optionname=value
	   		Options with multiple parameters:
	   		    -o optionname={param1=value1 param2=value2 ...}

	* options.c: Refactored the options system to allow for custom 
	  options. As a nice side effect, lots of redundant code (getting
	  commands / drivervalues for the options, syncing PageSize
	  and PageRegion) could be removed from foomaticrip.c.

2007-12-21 Lars Uebernickel <larsuebernickel@gmx.de>
	* *: Converted foomatic-rip to C and updated the build system.

2007-12-04  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-gswrapper.in: Let Ghostscript always use buffered
	  input. This works around a Ghostscript bug which prevents
	  printing encrypted PDF files with Adobe Reader 8.1.1 and
	  Ghostscript built as shared library (Ghostscript bug #689577,
	  Ubuntu bug #172264).

2007-11-30  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.in: More bug fixes:
	   o If the CUPS-style duples option
	     "-o sides={one|two}-sided[-{long|short}-edge]" was supplied,
	     the "Duplex" option could be set to "0", "LongEdge", or
	     "ShortEdge", which do not exist in the "Duplex" options in
	     PPD files (Thanks to Ricoh Japan for reporting this bug). 
	   o Now all of "LongEdge", "DuplexNoTumble", or "ShortEdge", 
	     "DuplexTumble", are converted to each other if supplied as 
	     value to an enumerated choice option (usually "Duplex") and
	     this value is not in the list of choices.
	   o Removed the unused variable "$rangeend" from the
	     parsepageranges() function.
	   o Reset the best score for finding the narrowest page range
	     before treating each option, not only before the first
	     option. Now jobs with page overrides on more than one
	     option are executed correctly.

2007-11-23  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.in: Several fixes for bugs found while developing
	  the foomatic-rip test suite for the LSB 3.2:
	   o If an option had the default value "0" (enumerated choice,
	     numerical, string) in the PPD file, the first choice from
	     the list was set as default and not "0".
	   o When assigning a non-integer number to an integer option,
	     the "%%BeginFeature: ..." line of the option inserted into 
	     the PostScript data stream still contained the non-integer
	     value. Only the value in the code piece was converted to
	     integer.
	   o If a non-integer "*FoomaticRIPDefault..." was given for an
	     integer option it was not converted to integer. 
	   o Boolean options had "0" and "1" as values in the
	     "%%BeginFeature: ..." lines and not "False" and "True".
	   o PPD-supplied JCL/PJL options did not get merged with
	     driver-generated JCL/PJL options when there were spaces
	     between the JCL command and the "=" (ex: "@PJL SET TRAY = 1").
	   o Now all of "0", "No", "Off", "False" or "1", "Yes", "On",
	     "True" are converted to each other if supplied as value to
	     an enumerated choice option and this value is not in the
	     list of choices.

2007-10-11  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.in: Allow the parameters of the "*Foomatic..."
	  lines which formerly had to be given without quotes also to be
	  given with double quotes. This is to support generation and
	  manipulation of Foomatic PPDs with the CUPS DDK. The PPD
	  generator of the CUPS DDK ("ppdc") can create these lines only
	  with quoted parameters (See http://www.cups.org/str.php?L2551).

2007-07-18  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.in: Added support for suppressing page accounting
	  on a per-driver basis. Page accounting is deactivated if a line
	  "*FoomaticNoPageAccounting: True" is found in the PPD file.

2007-03-20  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.in: Performance improvement: Do not match all forms
	  of DSC comments against every line. Check whether the line is a
	  DSC comment at all and pass it quickly through if not (Thanks to
	  Andreas Bolsch, Andreas dot Bolsch at alumni dot TU-Berlin dot
	  DE, for this patch). Will probably fix Ubuntu bug LP#78781
	  (https://launchpad.net/bugs/78781).

	  Fixed bug of custom page sizes not read from the PostScript code
	  when the size values are in more than one line (as the
	  "imagetops" CUPS filter outputs them when adapting a
	  user-supplied custom page size to the aspect ratio of the image,
	  to not waste roll paper). This fixes CUPS STR #1722
	  (http://www.cups.org/str.php?L1722), Ubuntu bug LP#42234
	  (https://launchpad.net/bugs/42234).

	  Let data structure get written to debug log also if foomatic-rip
	  exits with an error (only in debug mode).

2007-03-10  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.in: Replaced sysread() and syswrite() by read() and
	  print() as sysread() and syswrite() is not compatible with the
	  read() and print() of the other operations. See Ubuntu bug #87597
	  (https://launchpad.net/bugs/87597).

2007-02-20  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.in: Fixed problem of too high memory consumption
	  when binary output data of GhostScript is read line-wise and
	  does not contain line feeds (Ubuntu bug #85569 with driver
	  "eplaser", Red Hat bug #221194 with driver "lx5000"). Applied
	  same fix also to binary non-PostScript input data (only relevant
	  for non-CUPS printing systems).

	* README, USAGE, foomatic-rip.in, foomatic-rip.1.in, beh.in,
	  foomatic-gswrapper.1.in, debian/copyright, debian/control,
	  debian/README.Debian: Replaced "linuxprinting.org" by
	  "openprinting.org" or "OpenPrinting".

2006-10-03  Till Kamppeter <till.kamppeter@gmail.com>

	* foomatic-rip.in: Fixed bashism.

2006-08-27  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-gswrapper.in: Support for built-in redirection of
	  standard output of PostScript programs ("-sstdout=%stderr") in
	  newer GhostScript versions. More reliable then using /dev/fd/3
	  (not always available, difficult to check presence) or '|cat >3'
	  (not seekable and some GhostScript output devices require
	  seekability of the output file),

2006-07-10  Norm Jacobs <Norm.Jacobs@Sun.COM>

	* *: Removed executable permissions from source files which are
	  not executables

2006-06-15  Norm Jacobs <Norm.Jacobs@Sun.COM>

	* foomatic-rip.in: failing to open IPP attributes file shouldn't be
	  fatal

2006-06-01  Norm Jacobs <Norm.Jacobs@Sun.COM>

	* filter.conf: example of a preferred shell setting

	* foomatid-rip.in: detect and use a "modern" shell for shell commands

2006-05-17  Norm Jacobs <Norm.Jacobs@Sun.COM>

	* foomatic-rip.in: Add support for Solaris LP, made default echo,
	  fileconverter, and execpath setable through configure options.

	* foomatic-gswrapper.in: made default execpath setable through configure
          options

	* foomatic-rip-1.in: fixed to use @sysconfdir@ for configure

	* foomatic-gswrapper-1.in: fixed to use @sysconfdir@ for configure

	* configure.ac: made default execpath, fileconverter and echo setable
	  through configure options.  Generate man pages through configure

	* makeMan.in: removed, configure now generates the man pages

	* Makefile.in: cleaned up some to work with makes other than gmake

	* README, USAGE: added Solaris LP 

2006-01-06  Till Kamppeter <till.kamppeter@gmx.net>

	* beh.in: Fixed bug of N^2 copies being printed when N copies
	  were requested.

	* configure.in, configure.ac: Renamed configure.in to
	  configure.ac, to make the package working with the current
	  versions of aclocal and autoconf.

2005-11-13  Till Kamppeter <till.kamppeter@gmx.net>

	* README, USAGE, beh.in: Updated documentation, to take into
	  account beh and HPLIP, dropped HPOJ in the documentation.

2005-09-12  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-rip.in: Better support for non-PJL JCLs. If there are
	  Foomatic options of execution style JCL, they are only prefixed
	  with "@PJL " if the PPD does not contain a "*JCLBegin:"
	  expression not containing "PJL" and if the prefix is not
	  changed by a "*FoomaticJCLPrefix:" in the PPD file. If there
	  is a "*JCLBegin:" without "PJL" and no "*FoomaticJCLPrefix:"
	  the JCL commands do not get any prefix. Fixed also bug of
	  $jobuser and $jobhost not being chomped.

2005-08-15  Till Kamppeter <till.kamppeter@gmx.net>

	* beh.in, configure.in, Makefile.in: Added the "beh" (Backend
	  Error Handler) CUPS backend. With this the handling of errors
	  of the CUPS backends (printer communication errors, like
	  printer not turned on) can be configured, instead of CUPS
	  simply disabling the print queue.

2005-07-29  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-rip.in: Added substitution of special XML entities by
	  job data, as date, time, job ID, user name, ... (in function
	  "unhtmlify()"). This was suggested by George Liu from Ricoh
	  (george dot liu at ussj dot ricoh dot com), to support jobs
	  with submission of login/password to the printer.

2005-07-19  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-rip.in, foomatic-gswrapper.in: Fix for the fix on the
	  regexp for reading the config file (Thanks to Hans-Dieter Kosch,
	  hdkosch at t-online dot de, for this fix).

2005-07-18  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-rip.in: In quiet mode (non-logging mode) $logh is
	  closed in the beginning but was never opened (Thanks to
	  Hans-Dieter Kosch, hdkosch at t-online dot de, for this fix).

	* foomatic-gswrapper.in: Fixed quoting of single quotes (Thanks to
	  Hans-Dieter Kosch, hdkosch at t-online dot de, for this fix).

	* foomatic-rip.in, foomatic-gswrapper.in: Fixed regexp for reading
	  the config file (Thanks to Hans-Dieter Kosch, hdkosch at
	  t-online dot de, for this fix).

2005-05-19  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-rip.in: Make EPSF files not be an exception when
	  checking whether the input file is DSC-conforming. They can also
	  be DSC-conforming (thanks to Kevin ODonovan, kevin dot odonovan
	  at nist dot gov, for his report); Let the "FontPath" defined in
	  /etc/cups/cupsd.conf being used when CUPS is the spooler
	  (thanks to Peter Kekesi, kekpeti at freemail dot hu, for his
	  report).

2005-05-11  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-rip.in: Added comment before the line to automatically
	  quote unquoted slashes in the allowed characters list or allowed
	  regexp.

2004-12-20  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-rip.in: Fixed bug of foomatic-rip replacing a JCL
	  command (ex: "@PJL HOLDKEY=1234") if another which is contained
	  in the first one is supplied (ex: "@PJL HOLD=STORE"). Thanks to
	  Jociel Cavalcante Andrade (jcainfo at inf dot ufes dot br) for
	  reporting the bug and testing the fix.

2004-12-04  Chris Lawrence <lawrencc@debian.org>

	* foomatic-rip.in: Include -*- perl -*- for Emacs mode selection.

	* foomatic-gswrapper.in: Instead of testing for /dev/fd/*, use
	  them directly; this gets around some unreliability with
	  Ghostscript prefiltering that is described in Debian bug report
	  #271519 (http://bugs.debian.org/271519).  Also include -*- perl
	  -*- for Emacs mode selection.

	* debian/README.Debian, debian/changelog, debian/compat,
	  debian/control, debian/copyright, debian/dirs, debian/docs,
	  debian/foomatic-filters.config,
	  debian/foomatic-filters.postinst,
	  debian/foomatic-filters.postrm,
	  debian/foomatic-filters.templates, debian/parseconfig.pl,
	  debian/po/POTFILES.in, debian/po/de.po, debian/po/fr.po,
	  debian/po/ja.po, debian/po/nl.po, debian/po/pt_BR.po,
	  debian/po/templates.pot, debian/po/tr.po, debian/rules: New
	  files; add Debian packaging information.

2004-11-18  Till Kamppeter <till.kamppeter@gmx.net>

	* foomatic-rip.in: Fixed problem of foomatic-rip crashing with
	  error 29 (ESPIPE = "Illegal seek") on "close STDIN;" on some
	  non-Linux platforms as Unixware 7.1.0, fixed problem of CUPS
	  page accounting PostScript code in foomatic-rip overriding
	  already exisiting /EndPage procedures. Added output of error
	  code when foomatic-rip dies. Thanks to Helge Blischke
	  (h dot blischke at acm dot org) for all these fixes and
	  enhancements.

2004-09-14  Till Kamppeter <till.kamppeter@gmx.net>

	* *: Tagged CVS for the release of foomatic-filters 3.0.2. 
	  Tag name: "foomatic-filters-3_0_2".

	* README, USAGE: Updated for version 3.0.2.

2004-08-26  Till Kamppeter <till.kamppeter@gmx.net>

