|
|
|
@ -850,20 +850,19 @@ |
|
|
|
|
{ |
|
|
|
|
args = stack; |
|
|
|
|
|
|
|
|
|
/* If there is a number here, it is either a difference against */ |
|
|
|
|
/* `nominal_width', or it is a width itself. */
|
|
|
|
|
|
|
|
|
|
if ( num_args > 0 && decoder->read_width ) |
|
|
|
|
{ |
|
|
|
|
/* If `nominal_width' is non-zero, the number is really a difference */ |
|
|
|
|
/* against `nominal_width'. Else, the number here is truly a width, */ |
|
|
|
|
/* not a difference against `nominal_width'. If the font does not */ |
|
|
|
|
/* set `nominal_width', then `nominal_width' defaults to zero, and */ |
|
|
|
|
/* so we can set 'glyph_width' to `nominal_width' plus number on the */ |
|
|
|
|
/* stack -- for either case. */ |
|
|
|
|
/* If `nominal_width' is non-zero, the number is really a */ |
|
|
|
|
/* difference against `nominal_width'. Else, the number here */ |
|
|
|
|
/* is truly a width, not a difference against `nominal_width'. */ |
|
|
|
|
/* If the font does not set `nominal_width', then */ |
|
|
|
|
/* `nominal_width' defaults to zero, and so we can set */ |
|
|
|
|
/* `glyph_width' to `nominal_width' plus number on the stack */ |
|
|
|
|
/* -- for either case. */ |
|
|
|
|
|
|
|
|
|
FT_Int set_width_ok; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch ( op ) |
|
|
|
|
{ |
|
|
|
|
case t2_op_hmoveto: |
|
|
|
@ -887,14 +886,15 @@ |
|
|
|
|
|
|
|
|
|
if ( set_width_ok ) |
|
|
|
|
{ |
|
|
|
|
decoder->glyph_width = decoder->nominal_width + ( stack[0] >> 16 ); |
|
|
|
|
decoder->glyph_width = decoder->nominal_width + |
|
|
|
|
( stack[0] >> 16 ); |
|
|
|
|
num_args--; |
|
|
|
|
args++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
decoder->read_width = 0; |
|
|
|
|
req_args = 0; |
|
|
|
|
decoder->read_width = 0; |
|
|
|
|
req_args = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
req_args &= 15; |
|
|
|
|