Martin Muskens bufixes:
- reallocation bug in T1_Table_Add - increased accuracy of units per EM computation in T1 fonts - support "+" as valid font name character (used in embedded fonts)
This commit is contained in:
parent
26160d5b2c
commit
8ab0add6b4
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2001-08-30 Martin Muskens <mmuskens@aurelon.com>
|
||||
|
||||
* src/type1/t1load.c (parse_font_matrix): a new way to compute the
|
||||
units per EM with greater accuracy (important for embedded T1 fonts in
|
||||
PDF documents that were automatically generated from TrueType ones).
|
||||
|
||||
* src/type1/t1load.c (is_alpha): now supports "+" in font names, this
|
||||
is used in embedded fonts..
|
||||
|
||||
* src/psaux/psobjs.c (PS_Table_Add): fixed a reallocation bug that
|
||||
generated a dangling pointer reference.
|
||||
|
||||
2001-08-30 Anthony Feik <afeick@hotmail.com>
|
||||
|
||||
* src/type1/t1afm.c (T1_Read_Afm): now correctly sets the flag
|
||||
|
@ -164,8 +164,12 @@
|
||||
if ( table->cursor + length > table->capacity )
|
||||
{
|
||||
FT_Error error;
|
||||
FT_Offset new_size = table->capacity;
|
||||
|
||||
FT_Offset new_size = table->capacity;
|
||||
FT_Long in_offset;
|
||||
|
||||
in_offset = (FT_Long)((FT_Byte*)object - table->block);
|
||||
if ( (FT_ULong)in_offset >= table->capacity )
|
||||
in_offset = -1;
|
||||
|
||||
while ( new_size < table->cursor + length )
|
||||
new_size += 1024;
|
||||
@ -173,6 +177,9 @@
|
||||
error = reallocate_t1_table( table, new_size );
|
||||
if ( error )
|
||||
return error;
|
||||
|
||||
if ( in_offset >= 0 )
|
||||
object = table->block + in_offset;
|
||||
}
|
||||
|
||||
/* add the object to the base block and adjust offset */
|
||||
|
@ -766,7 +766,10 @@
|
||||
static int
|
||||
is_alpha( FT_Byte c )
|
||||
{
|
||||
return ( isalnum( c ) || c == '.' || c == '_' || c == '-' );
|
||||
/* Note: we must accept "+" as a valid character, as it is used in */
|
||||
/* embedded type1 fonts in PDF documents.. */
|
||||
/* */
|
||||
return ( isalnum( c ) || c == '.' || c == '_' || c == '-' || c == '+' );
|
||||
}
|
||||
|
||||
|
||||
@ -895,8 +898,9 @@
|
||||
/* 1000 / temp_scale, because temp_scale was already multiplied by */
|
||||
/* 1000 (in t1_tofixed, from psobjs.c). */
|
||||
|
||||
root->units_per_EM = (FT_UShort)FT_DivFix( 0x10000L,
|
||||
FT_DivFix( temp_scale, 1000 ) );
|
||||
root->units_per_EM = (FT_UShort)(FT_DivFix( 1000*0x10000L,
|
||||
temp_scale ) >> 16);
|
||||
|
||||
|
||||
/* we need to scale the values by 1.0/temp_scale */
|
||||
if ( temp_scale != 0x10000L )
|
||||
|
Loading…
Reference in New Issue
Block a user