diff -u -r1.70 ahhint.c --- ahhint.c 2003/06/03 11:51:42 1.70 +++ ahhint.c 2003/06/30 19:32:05 @@ -1541,6 +1541,7 @@ /* width/positioning that occured during the hinting process */ { FT_Pos old_advance, old_rsb, old_lsb, new_lsb; + FT_Int offset; AH_Edge edge1 = outline->vert_edges; /* leftmost edge */ AH_Edge edge2 = edge1 + outline->num_vedges - 1; /* rightmost edge */ @@ -1551,8 +1552,10 @@ old_lsb = edge1->opos; new_lsb = edge1->pos; - hinter->pp1.x = ( ( new_lsb - old_lsb ) + 32 ) & -64; - hinter->pp2.x = ( ( edge2->pos + old_rsb ) + 32 ) & -64; + offset = old_lsb <= 64 ? 16 : 32; + hinter->pp1.x = ( ( new_lsb - old_lsb ) + offset ) & -64; + offset = old_rsb <= 64 ? 48 : 32; + hinter->pp2.x = ( ( edge2->pos + old_rsb ) + offset ) & -64; #if 0 /* try to fix certain bad advance computations */