📄 history2.htm
字号:
Adds DiffEncode and DiffDecode filters that implement color prediction for
the PDF variant of the LZWDecode filter.
Changes the specification of .oserrorstring to be similar to getenv,
where, etc. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, no
user-written code should be using .oserrorstring.
Adds oversampling for better character rasterizing.
<h2><a name="V2.9.6b_Library"></a>Library</h2>
Fixes bugs:
- gx_dc_ht_colored_fill_rectangle gave a compiler warning because
of a problem with const pointers.
- dfmul2fixed_vars (in gxfixed.h) omitted the & before vda on
big-endian platforms, causing compilation errors.
- IODevices were declared const and non-const inconsistently.
- The Type 1 rasterizer never enabled overshoot suppression.
- stroke didn't fatten the line properly if stroke adjustment was
enabled, or if the line was horizontal or vertical.
* - The clipping test for characters was too strict by almost 1
pixel, leading to unnecessary clipping of text at the edge of the clipping
box.
* - The initial clipping box was computed incorrectly for devices
whose initial transformation matrix included a rotation.
Changed the implementation of clipping lists and show enumerators to use
separate objects rather than embedded objects, to pacify the GC. (This is
an internal change, not visible at the PostScript or API level.)
Makes the character cache trim off left and right blank areas, as well as
top and bottom. (Internal change.)
Adds oversampling for better character rasterizing.
<h1><a name="Version2.9.5b"></a>Version 2.9.5-beta (4/11/94)</h1>
This was supposed to be the last beta release before 3.0, but it won't be.
The only known major defects are the unreliable garbage collector, and the
dummy implementation of setpagedevice/currentpagedevice.
<h2><a name="V2.9.5b_Documentation"></a>Documentation</h2>
Fixes bugs:
- The file commnew.doc didn't belong in the fileset.
Notes in the makefiles that SVR4 systems may need to set EXTRALIBS=-lnsl.
Adds a user-contributed `man' page for the ps2epsi utility.
<h2><a name="V2.9.5b_Procedures"></a>Procedures</h2>
Fixes bugs:
- The IJG files didn't compile properly by themselves, because they
didn't have $(AK) in their dependency list.
Changes back the handling of files named on the command line, so that they
are first sought in the current directory, and if that fails, use the
search path. (2.9.4-beta changed things so that files on the command line
did not use the search path, because as of that version, the search path
doesn't necessarily include the current directory. I consider the "check
the current directory and then use the search path" rule, which is the
MS-DOS standard and was used in Ghostscript prior to 2.9.4, a serious
mistake, since it is one of the best-known security holes in Unix and can
also produce confusing and unexpected results depending on the current
directory; I would much rather have a clear distinction between
user-specified files, which should not use any path searching, and system
files, that only use the defined search path. However, as of this moment,
users seem to want the convenience at the expense of insecurity and
confusion.)
Adds '.' to the beginning of the search path for MS-DOS platforms, to
conform to the usual MS-DOS file searching convention.
Adds a -c ("code") switch, which interprets following arguments (until the
next switch) as PostScript tokens.
Changes the handling of FEATURE_DEVS so that either level1.dev or
level2.dev must normally be selected. THIS IS A NON-BACKWARD-COMPATIBLE
CHANGE for Level 1 systems, which formerly set FEATURE_DEVS to an empty
definition.
<h2><a name="V2.9.5b_Utilities"></a>Utilities</h2>
Fixes bugs:
- bench.ps didn't switch back to local VM properly before running
the program being benchmarked.
Adds a ppmsetpagesize command to the pstoppm utility.
<h2><a name="V2.9.5b_Drivers"></a>Drivers</h2>
Fixes bugs:
- The PCX and GIF drivers used an incorrect algorithm for computing
the blue component of the color palette, which could cause colors to come
out with not quite enough blue.
- The SPARCprinter driver wouldn't compile with non-ANSI compilers.
Adds new drivers:
- A user-contributed driver for DEC sixel displays like the VT240
(sxlcrt, in gdevln03.c, which has a FSF copyright.)
- A much larger and supposedly faster version of the TIFF/F driver
(tiffg3x, in gdevtifx.c), contributed by a user. This has the same
copyright as the TIFF/F driver (gdevtiff.c).
- A driver (faxg3, in gdevfax.c) that produces plain Group 3 fax
output with no header, using the CCITTFaxEncode filter to do the work.
(This is around 2.5-3 times as fast as the other fax drivers distributed
with Ghostscript.)
- A user-contributed driver for the Mitsubishi CP50 color printer.
Changes the `bit' driver so one can set the Colors and *Values properties.
Makes the color mapping for PC displays, PCX files, and GIF files identical
(they differed slightly before).
<h2><a name="V2.9.5b_Platforms"></a>Platforms</h2>
Fixes bugs:
- VMS used DISPLAY rather than DECW$DISPLAY to get the display name
if opening the display failed.
- Many minor bugs relating to OS/2 and Win32 were fixed.
- On Unix and DV/X platforms, the install script didn't mkdir
$(gsdir), and didn't mkdir the intermediate directory for the man page.
- On BSD and UTek platforms, the declaration of memset in
memory_.h, and the definition in gsmisc.c, conflicted with the ANSI
declaration.
- One of the SPARC compilers compiled the intersection computation
in arc_either (gspath.c) incorrectly.
- The temporary file names created under OS/2 could exceed the 8.3
length limit.
<h2><a name="V2.9.5b_Interpreter"></a>Interpreter</h2>
Fixes bugs:
- The test files for the IJG library had been damaged by EOL
conversion.
- The garbage collector didn't mark some of the most recently
created names.
- The interpreter would sometimes report a typecheck instead of a
stackunderflow.
- If aload didn't have enough room on the stack, it would report a
rangecheck rather than a stackoverflow.
- zcontext wouldn't compile, because it hadn't been updated to the
new GC interfaces.
- The definition of private_st_stream_proc_state in ifilter.h ended
with a semicolon, which upset some compilers.
- load didn't check to make sure that the dictionaries it examined
had read access.
- cvrs didn't handle negative numbers in radix 2 or 3 properly.
- The allocator could become confused if it was asked to allocate a
large array.
- readline gave an ioerror rather than a rangecheck if it
overflowed the string.
- The allocator didn't free packed arrays properly.
- The allocator's check for LIFO freeing of arrays was off by 1, so
it never succeeded.
- The undercolor removal and black generation procedures weren't
initialized properly.
- If the interpreter couldn't find gs_init.ps, it returned a random
exit code.
- If an operator expected a procedure and didn't get one, it
sometimes gave an invalidaccess rather than a typecheck.
- Unix file enumeration often did the wrong thing if there were
directories in the pattern.
- The ASCIIHexDecode filter read an extra character after the
terminating >.
- scalefont didn't fill in ScaleMatrix properly.
- The CCITTFaxEncode filter crashed if the width of the page wasn't
a multiple of 8 bits.
- The error printing code used .languagelevel, which wasn't defined
in Level 1 configurations.
- setpagedevice didn't pop its argument.
- Definitions in statusdict didn't change according to the current
language level.
- Separation color spaces didn't allow strings as color space names.
- Due to a bug in chunk_locate_ptr, the garbage collector sometimes
decided incorrectly that a pointer was pointing outside collectable space.
- (Many other garbage collector bugs were fixed.)
Implements additional Level 2 features:
- Garbage collection for strings.
- Expandable operand and dictionary stacks, and the ability to set
the maximum size of these stacks.
- Additional user and system parameters. The following are dummies:
AccurateScreens, JobName, JobTimeout, WaitTimeout.
- Procedure-based filters usable with cvx/exec and token.
- Separation color spaces (always using the alternate space).
(These were theoretically implemented in version 2.6, but they were
never tested and were actually missing most of the implementation.)
- VMThreshold and VMReclaim for invoking GC automatically.
Adds a hook in iscan.c for parsing DSC comments.
Adds encoding and decoding filters for the BCP and TBCP protocols. These
are not fully implemented yet:
- The interrupt and status request characters are ignored on input,
and never generated on output;
- The TBCP encoder doesn't emit the start-of-protocol string;
- The TBCP decoder doesn't recognize the end-of-protocol string.
Factors out Type 1 font capability as a separate feature.
Changes the names of some files:
packed.h to ipacked.h;
bnum.h to ibnum.h.
Changes the name of the value.index member of a ref to value.boolval.
(Internal change only.)
<h2><a name="V2.9.5b_Library"></a>Library</h2>
Fixes bugs:
- The definition of RELOC_PTRS_BEGIN in gsstruct.h wouldn't compile
properly with non-ANSI compilers.
- The JPEG library wouldn't compile properly with non-ANSI compilers.
* - The platform font machinery gave up too easily in some cases.
- CMYK devices needing halftoning converted the CMYK color to RGB.
- The debugging code in arc_add (gspath.c) didn't print the output
values correctly.
Factors out Type 1 font capability as a separate feature.
<h1><a name="Version2.9.4b"></a>Version 2.9.4-beta (2/19/94)</h1>
<h2><a name="V2.9.4b_Procedures"></a>Procedures</h2>
Changes Ghostscript's path searching algorithm so that it does not
automatically look in the current directory first. (The former algorithm
was more MS-DOS-like; the new one is more Unix-like.) If you want to
include the current directory, you must include '.' in the search path.
THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.
Adds two new resource types for genconf.c:
- -header filexxx.h adds #include "filexxx.h" to gconfig.h.
- -libpath dir adds dir to the list of library search paths.
<h2><a name="V2.9.4b_Utilities"></a>Utilities</h2>
Fixes bugs:
- impath.ps (used by bdftops) computed the starting X coordinate
incorrectly, typically causing characters to be displaced slightly to the
right.
- pstoppm.ps didn't handle local and global VM properly.
Adds a ps2ai.ps utility, contributed by a user, for converting arbitrary
PostScript files into a form compatible with Adobe Illustrator.
<h2><a name="V2.9.4b_Drivers"></a>Drivers</h2>
Adds new drivers:
- A user-contributed driver for Imagen Impress laser printers.
- A user-contributed driver for the DEC LA75plus printer.
<h2><a name="V2.9.4b_Platforms"></a>Platforms</h2>
Under OS/2, adds the ability to keep Ghostscript in memory for a
specified number of minutes.
Adds support for Win32 and Win32s.
Changes the MS Windows platform font interface so that it does not attempt
to render fonts at sizes smaller than 6 pixels. Changes the X Windows
interface, which already did this for 4-point and smaller fonts, to also
use a lower limit of 6 pixels. Also changes the X Windows platform font
machinery so it does not render fonts at sizes larger than 36 pixels: at
large sizes, Ghostscript does a perfectly good job, and some X font servers
rasterize the entire font and lock up the entire window system while doing
so.
<h2><a name="V2.9.4b_Interpreter"></a>Interpreter</h2>
Fixes bugs:
- currentdash always returned a new array of reals, rather than the
actual argument of setdash.
- Strings in binary object sequences read in as integers.
- Because of a bug in chunk_locate_ptr, some large objects didn't
get freed properly.
- If an error occurred while processing an image, Ghostscript would
attempt to free random blocks of storage.
- Input filters discarded trailing data, rather than filling it out
with zeros. (This is now fixed for ASCIIHexDecode and ASCII85Decode; it's
not clear what other filters it should affect.)
- The ASCII85Encode filter produced garbage output for the final
1-4 bytes before EOD.
* - The TIFF output driver produced incorrect output for the second
and subsequent pages if the output was being produced on multiple files.
* - The default handleerror did a 'stop', which was not correct.
- gpcheck.h converted all positive return codes to 0 if interrupt
checking was enabled.
- Images with multiple data sources didn't work.
- Images with 12-bit sample values didn't work.
- Images with a file as the data source read additional data beyond
what was required.
- 2 vmreclaim worked (pretty much), but 1 vmreclaim didn't.
- If %lineedit was opened multiple times, characters from later
openings overwrote characters from earlier ones.
- token returned garbage for the "remaining string" result when
reading from a string, if it actually read all of the string. (New bug in
2.9.2, probably.)
Implements additional Level 2 features:
- DCTEncode and DCTDecode filters.
- Filters with procedures as the data source or target.
(Except for token and cvx/exec.)
- Garbage collection for names.
Changes the error printout so that strings are always truncated at 200
characters.
For Level 2 systems, changes the initial setting of the object format
parameter from 0 to an appropriate non-zero value.
* Changes the .quit operator so that it takes two operands, an error object
and an error code; if the latter is negative, the interpreter returns this
as the error code, rather than e_Quit.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -