if (!(range = bsearch(&ch, script_ranges, ARRAY_SIZE(script_ranges),
sizeof(*script_ranges), usp10_compare_script_range)))
- return Script_Undefined;
+ return (*consumed == 2) ? Script_Surrogates : Script_Undefined;
if (range->numericScript && (type & C1_DIGIT || type2 == C2_ARABICNUMBER))
return range->numericScript;
cTabStops = 0;
}
else
- defWidth = 8 * psc->tm.tmAveCharWidth;
+ {
+ if (pTabdef->iScale)
+ defWidth = (32 * pTabdef->iScale) / 4;
+ else
+ defWidth = 8 * psc->tm.tmAveCharWidth;
+ }
for (; cTabStops>0 ; lpTabPos++, cTabStops--)
{
if( nTabOrg + position > current_x)
{
- if( *lpTabPos >= 0)
+ if( position >= 0)
{
/* a left aligned tab */
- x = (nTabOrg + *lpTabPos) - current_x;
+ x = (nTabOrg + position) - current_x;
break;
}
else