| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
No one sets it. No one reads it. It's pointless, so excise it.
|
|
|
|
|
|
| |
A more complete fix is in work, but not yet complete. Revert the change
so that nightly regressions will stop producing many SEGVs with the
psdcmykog device.
|
|
|
|
|
|
|
|
| |
The psdcmykog device should have its max_separations and its number of
components be the same. This means it will not add extra components
when they are encountered in a document like psdcmyk and tiffsep
do, which are also devn device. psdcmykog device is unique in that
it is a devn device but with a fixed set of colorants.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The device initialize function currently performs 2 jobs. Firstly,
it fills out the device_procs. Secondly, it performs any minimal
initialization required by the device (typically none).
At various points in the code we want to be able to copy procs
from one 'prototype' device to another, so we call initialize
for that. This populates the device procs, but does other work
that typically requires a 'derived device' structure rather
than a vanilla gx_device to work in.
Accordingly, we split the job into two; initialize_device_procs
(the first part) and initialize_device (the second part). The
initialize_device_procs function will set up the initialize_device
function pointer along with the rest if required.
|
|
|
|
|
|
|
|
|
|
| |
Move the initialize procedure out of the device procs table,
and into a bare function pointer at the start of the device proc.
Devices just initialise this, and the rest should fall into place.
This means changes to the device instantion macros (and all the uses
thereof), but makes the code nicer overall. In particular, this
removes the vestigial 'static_procs' structure.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It used to be that finish_copydevice(dev, const old_dev) would be
used to copy stuff from a prototype to a new instance of a device.
Now, no copying is ever done.
Also, it's a confusing name. Rename it to be 'initialize', which
is clearer. Also, it should become even more appropriate in
future, if we have this function be the one that is responsible
for filling out the procs.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Further to commit 4a3441bdde7060ecc9048bf391977412a82063a8, it turns out that,
in practice, we can't completely ignore the ICC profile device parameters,
parameters that have an immediate effect on the device are also validated during
put_params and thus, for those, validation can still fail.
Using gxdso_supports_devn allows us to defeat the profile component validation,
but nullpage is not a DeviceN device, hence that could cause confusion.
Using a dedicated gxdso_skip_icc_component_validation allows us to be more
selective about when to short circuit those tests, and avoid confusion.
This is required for gpdl as Postscript initialisation is slightly different
compared to regular Ghostscript - the nulldevice remains in play all through
Postscript initialisation (rather than being replaced with the device
specified by the command arguments part way through initialisation).
|
| |
|
|
|
|
|
|
|
|
|
| |
Various printer devices (psd, psdcmykog, tiffsep, tiffscaled)
were passing the spec ops on to gx_default_dev_spec_op rather
than gdev_prn_dev_spec_op.
The most obvious implication of this was that we'd sometimes
get a warning about printer devices having a private spec op.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(squash of commits from filesec branch)
Most of this commit is donkeywork conversions of calls from
FILE * -> gp_file *, fwrite -> gp_fwrite etc. Pretty much every
device is touched, along with the clist and parsing code.
The more interesting changes are within gp.h (where the actual
new API is defined), gpmisc.c (where the basic implementations
live), and the platform specific levels (gp_mswin.c, gp_unifs.c
etc where the platform specific implementations have been
tweaked/renamed).
File opening path validation
All file opening routines now call a central routine for
path validation.
This then consults new entries in gs_lib_ctx to see if validation
is enabled or not. If so, it validates the paths by seeing if
they match.
Simple C level functions for adding/removing/clearing paths, exposed
through the gsapi level.
Add 2 postscript operators for path control.
<name> <string> .addcontrolpath -
Add the given <string> (path) to the list of paths for
controlset <name>, where <name> can be:
/PermitFileReading
/PermitFileWriting
/PermitFileControl
(Anything else -> rangecheck)
- .activatepathcontrol -
Enable path control. At this point PS cannot make any
more changes, and all file access is checked.
|
|
|
|
|
| |
My earlier fix caused massive problems with any transparency files.
This should fix all the issues.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The psdcmykog device is a DeviceN color based device but unlike psdcmyk and
tiffsep it can't change its color characteristics. It remains as
a 6 color cmykog device. Postsript files can change the maxseparations
(example 29-07E.PS) The gdevdevn code will, if it
detects a change occured, close the device and reopen (see
devn_printer_put_params) possibly resetting the color info. tiffsep
and psdcmyk, when reopened, will reset their color characteristics based upon
the content of the page, avoiding any issues upon the reopen. Here we
will need to make sure to set the color information to avoid problems.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The commit f2cf68297e3d63cb927db3c98d317f7ee68e7898
resulted in errors with the separation type devices.
With these devices, we can simply check if the color
model matches the ICC profile since these devices
change their number of components. Will likely need
to do some testing with these device and different
profiles to see what breaks when and make sure we
exit gracefully.
|
|
|
|
|
|
|
|
|
| |
Also update copyright dates.
Remove gs_cmdl.ps as we no longer use it, and remove its entry from
psfiles.htm.
Remove xfonts.htm as this feature (xfont support) is long, long gone.
|
|
|
|
|
|
|
|
|
| |
There are locations in the code where Coverity has complained about
code logic that resulted in passing of unintialized values that
could only occur if num_components < 0 . Since this should never
be the case, we will make it clear by setting num_components and
max_components to uchar. This will limit our support to 256 colors
by a device.
|
|
|
|
|
| |
Call gp_open_scratch_file_rm() instead of gp_open_scratch_file() to insure
that no temp files are left around if Ghostscript is killed or crashes.
|
| |
|
|
|
|
|
| |
Using "n = n;" causes some versions of gcc to whinge. Trying
(void)n; instead.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PSD does not support multiple pages/images per file. Previously the PSD devices
would allow writing multiple image to the PSD output file, and end up with an
invalid PSD file.
The devices will now check what the output name file has the "%d" formatter to
so each page written to a separate file, and if it isn't there, they will
generate an error message and error code if an attempt is made to produce
more than one page.
To be clear: and single page input file will complete without error without the
"%d" formatter.
No cluster differences
|
|
|
|
|
|
|
| |
The planar devices were not getting the bit depth arrays set up.
This was causing an issue during the gradient fill for high level
colors where we were trying to make a smoothness decision during
the line fills. Problem occurred for all the existing planar devices.
|
|
Squashed into one commit (see branch for details of the evolution of the
branch).
This brings gpcl6 and gxps into the Ghostscript build system, and a shared
set of graphics library object files for all the interpreters.
Also, brings the same configuration options to the pcl and xps products as we
have for Ghostscript.
|