forked from minhngoc25a/freetype2
[cff] Fix some Type 2 operators in old CFF engine.
* src/cff/cffgload.c (cff_decoder_parse_charstrings): Fix `eq' operator, add `not' and (unsupported) `blend' operators.
This commit is contained in:
parent
ae7c55d98e
commit
5c8a8cb54c
|
@ -1,3 +1,10 @@
|
||||||
|
2016-02-06 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
[cff] Fix some Type 2 operators in old CFF engine.
|
||||||
|
|
||||||
|
* src/cff/cffgload.c (cff_decoder_parse_charstrings): Fix `eq'
|
||||||
|
operator, add `not' and (unsupported) `blend' operators.
|
||||||
|
|
||||||
2016-02-05 Sebastian Rasmussen <sebras@gmail.com>
|
2016-02-05 Sebastian Rasmussen <sebras@gmail.com>
|
||||||
|
|
||||||
Make direct call of `make install' work (#47072).
|
Make direct call of `make install' work (#47072).
|
||||||
|
|
|
@ -2221,15 +2221,26 @@
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case cff_op_store:
|
case cff_op_store:
|
||||||
|
/* this operator was removed from the Type2 specification */
|
||||||
|
/* in version 16-March-2000 */
|
||||||
FT_TRACE4(( " store\n"));
|
FT_TRACE4(( " store\n"));
|
||||||
|
|
||||||
goto Unimplemented;
|
goto Unimplemented;
|
||||||
|
|
||||||
case cff_op_load:
|
case cff_op_load:
|
||||||
|
/* this operator was removed from the Type2 specification */
|
||||||
|
/* in version 16-March-2000 */
|
||||||
FT_TRACE4(( " load\n" ));
|
FT_TRACE4(( " load\n" ));
|
||||||
|
|
||||||
goto Unimplemented;
|
goto Unimplemented;
|
||||||
|
|
||||||
|
case cff_op_blend:
|
||||||
|
/* this operator was removed from the Type2 specification */
|
||||||
|
/* in version 16-March-2000 */
|
||||||
|
FT_TRACE4(( " blend\n" ));
|
||||||
|
|
||||||
|
goto Unimplemented;
|
||||||
|
|
||||||
case cff_op_dotsection:
|
case cff_op_dotsection:
|
||||||
/* this operator is deprecated and ignored by the parser */
|
/* this operator is deprecated and ignored by the parser */
|
||||||
FT_TRACE4(( " dotsection\n" ));
|
FT_TRACE4(( " dotsection\n" ));
|
||||||
|
@ -2358,11 +2369,23 @@
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case cff_op_eq:
|
case cff_op_not:
|
||||||
{
|
{
|
||||||
FT_Fixed cond = !args[0];
|
FT_Fixed cond = !args[0];
|
||||||
|
|
||||||
|
|
||||||
|
FT_TRACE4(( " not\n" ));
|
||||||
|
|
||||||
|
args[0] = cond ? 0x10000L : 0;
|
||||||
|
args++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case cff_op_eq:
|
||||||
|
{
|
||||||
|
FT_Fixed cond = args[0] == args[1];
|
||||||
|
|
||||||
|
|
||||||
FT_TRACE4(( " eq\n" ));
|
FT_TRACE4(( " eq\n" ));
|
||||||
|
|
||||||
args[0] = cond ? 0x10000L : 0;
|
args[0] = cond ? 0x10000L : 0;
|
||||||
|
|
Loading…
Reference in New Issue