Pass options from one configure script to another as-is (not

expanded).  This is needed for options like
--includedir='${prefix}/include'.

* builds/unix/detect.mk, configure: Prevent argument expansion in
call to the (real) `configure' script.



* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
TT_USE_BYTECODE_INTERPRETER isn't defined.



There exist CFFs which contain opcodes for the Type 1 operators
`hsbw' and `closepath' which are both invalid in Type 2 charstrings.
However, it doesn't harm to support them.

* src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
`cff_op_closepath.'
(cff_argument_counts): Ditto.

(cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
and 13 (hsbw) which are invalid in Type 2 charstrings.
This commit is contained in:
Werner Lemberg 2007-12-06 17:17:30 +00:00
parent a6d36573bd
commit bd7e1c3ce0
5 changed files with 78 additions and 11 deletions

View File

@ -1,9 +1,36 @@
2007-12-06 Fix <4d876b82@gmail.com>
Pass options from one configure script to another as-is (not
expanded). This is needed for options like
--includedir='${prefix}/include'.
* builds/unix/detect.mk, configure: Prevent argument expansion in
call to the (real) `configure' script.
2007-12-06 Werner Lemberg <wl@gnu.org>
* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
TT_USE_BYTECODE_INTERPRETER isn't defined.
2007-12-06 Werner Lemberg <wl@gnu.org>
There exist CFFs which contain opcodes for the Type 1 operators
`hsbw' and `closepath' which are both invalid in Type 2 charstrings.
However, it doesn't harm to support them.
* src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
`cff_op_closepath.'
(cff_argument_counts): Ditto.
(cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
and 13 (hsbw) which are invalid in Type 2 charstrings.
2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function
to support new pathname syntax "..namedfork/rsrc" to access
a resource fork on Mac OS X. The legacy syntax "/rsrc" does not
work on case-sensitive HFS+.
* src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
support new pathname syntax `..namedfork/rsrc' to access a resource
fork on Mac OS X. The legacy syntax `/rsrc' does not work on
case-sensitive HFS+.
(raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
buffer size to store a pathname.
* include/freetype/internal/ftrfork.h: Increment the number of
@ -11,9 +38,9 @@
2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* builds/unix/configure.raw: improve the compile tests to search
* builds/unix/configure.raw: Improve the compile tests to search
Carbon functions.
* builds/mac/ftmac.c: import fixes for Carbon incompatibilities
* builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>

View File

@ -79,9 +79,9 @@ ifeq ($(PLATFORM),unix)
ifdef must_configure
ifneq ($(have_Makefile),)
# we are building FT2 not in the src tree
$(TOP_DIR)/builds/unix/configure $(CFG)
$(TOP_DIR)/builds/unix/configure $(value CFG)
else
cd builds/unix; ./configure $(CFG)
cd builds/unix; ./configure $(value CFG)
endif
endif

2
configure vendored
View File

@ -93,7 +93,7 @@ fi
CFG=
for x in ${1+"$@"}; do
CFG="$CFG \"$x\""
CFG="$CFG '$x'"
done
CFG=$CFG $GNUMAKE setup unix

View File

@ -110,6 +110,9 @@
cff_op_callgsubr,
cff_op_return,
cff_op_hsbw, /* Type 1 opcode: invalid but seen in real life */
cff_op_closepath, /* ditto */
/* do not remove */
cff_op_max
@ -187,6 +190,9 @@
1, /* callsubr */
1,
0,
2, /* hsbw */
0
};
@ -954,6 +960,9 @@
case 8:
op = cff_op_rrcurveto;
break;
case 9:
op = cff_op_closepath;
break;
case 10:
op = cff_op_callsubr;
break;
@ -1055,6 +1064,9 @@
}
}
break;
case 13:
op = cff_op_hsbw;
break;
case 14:
op = cff_op_endchar;
break;
@ -1168,7 +1180,7 @@
req_args = 0;
}
req_args &= 15;
req_args &= 0x000F;
if ( num_args < req_args )
goto Stack_Underflow;
args -= req_args;
@ -2022,6 +2034,30 @@
FT_TRACE4(( " dotsection" ));
break;
case cff_op_closepath:
/* this is an invalid Type 2 operator; however, there */
/* exist fonts which are incorrectly converted from probably */
/* Type 1 to CFF, and some parsers seem to accept it */
FT_TRACE4(( " closepath (invalid op)" ));
args = stack;
break;
case cff_op_hsbw:
/* this is an invalid Type 2 operator; however, there */
/* exist fonts which are incorrectly converted from probably */
/* Type 1 to CFF, and some parsers seem to accept it */
FT_TRACE4(( " hsbw (invalid op)" ));
decoder->glyph_width = decoder->nominal_width +
(args[1] >> 16);
x = args[0];
y = 0;
args = stack;
break;
case cff_op_and:
{
FT_Fixed cond = args[0] && args[1];

View File

@ -1402,11 +1402,13 @@
FT_Stream old_stream = loader->stream;
#ifdef TT_USE_BYTECODE_INTERPRETER
TT_GraphicsState saved_GS;
if ( loader->exec )
saved_GS = loader->exec->GS;
#endif
FT_GlyphLoader_Add( gloader );
@ -1416,9 +1418,11 @@
FT_Vector pp[4];
#ifdef TT_USE_BYTECODE_INTERPRETER
/* reinitialize graphics state */
if ( loader->exec )
loader->exec->GS = saved_GS;
#endif
/* Each time we call load_truetype_glyph in this loop, the */
/* value of `gloader.base.subglyphs' can change due to table */