[OpenJDK 2D-Dev] <i18n dev> [9] Review request for 8073400: Some Monospaced logical fonts have a different width

Naoto Sato naoto.sato at oracle.com
Fri Mar 18 18:09:42 UTC 2016


So this fix will replace those left-right quotation marks in those CJK 
locales from locale-specific font to "alphabetic", right? I don't know 
much about the history (and personally I am fine with the fix), but 
should we consult with the globalization team?

Naoto

On 3/17/16 12:54 PM, Phil Race wrote:
> I think you are still waiting on i18n to reply here since the exclusion
> ranges
> are mainly used for ensuring that the glyphs come from the right font which
> is mainly for locale reasons. If i18n see no problems then I am OK with
> this.
>
> -phil.
>
> On 02/17/2016 05:01 AM, dmitry markov wrote:
>> Hello Phil,
>>
>> Thank you for the review.
>>
>> According to unicode table the characters u201c and u201d are in
>> General Punctuation block, see
>> http://unicode-table.com/en/blocks/general-punctuation/
>> Many characters from this block are not supported by Courier New. So I
>> do not think we need to remove the whole block from the exclusion
>> range, since it will not have any effect except few characters like
>> u201c and u201d. That's why I removed such small characters set (u2018
>> - u201F) from the exclusion range, but I can change this if it is
>> necessary.
>>
>> At the same time the characters set (u2018 - u201F) is supported by
>> Arial and Times New Roman which are mapped to other logical fonts. The
>> adjusted exclusion range seems 'quite safe' from this point of view.
>> So I do not think we need to modify any code such as FontConfiguration
>> class and so on to apply these changes only to monospaced fonts.
>> Please correct me if I am wrong.
>>
>> Adding i18n-dev.
>>
>> Internationalization team,
>> Could you review a small change in windows.fontconfig.properties, please?
>>
>>     bug: https://bugs.openjdk.java.net/browse/JDK-8073400
>>     webrev: http://cr.openjdk.java.net/~dmarkov/8073400/jdk9/webrev.00/
>>
>> Problem description:
>> On Windows some characters (in particular, left and right double
>> quotation marks) have width differing from other characters' widths,
>> when Monospaced logical font is used.
>> The default monospaced font for windows platform is Courier New. It
>> contains the desired characters, (i.e. '\u201c' and '\u201d'). However
>> the characters are in 'exclusion ranges' for this font due to settings
>> in windows.fontconfig.properties. So when we try to obtain glyphs for
>> these characters and calculate their bounds, we fallback to another
>> font (Lucida) and use its glyphs.
>>
>> Fix:
>> Remove the following set of characters u2018 - u201F from the
>> exclusion ranges.
>>
>> Thank you in advance,
>> Dmitry
>> On 10/02/2016 23:25, Phil Race wrote:
>>> I expect the exclusion range is there for a reason.
>>> I think (guess) that the intent was that where there is a sequence
>>> like this :
>>>
>>> sequence.sansserif.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb
>>>
>>>
>>> then those code points should come from the chinese font.
>>>
>>> Perhaps your adjusted exclusion range should apply only to the
>>> monospaced fonts
>>> which are already putting the locale font first.
>>>
>>> Unfortunately it doesn't appear that this is possible with the
>>> supported syntax
>>> https://docs.oracle.com/javase/1.5.0/docs/guide/intl/fontconfig.html#windows
>>>
>>>
>>> i.e it supports selection only by charactersubsetname, not also by
>>> logicalfontname.
>>> But you should check the code to see if this is in fact the case.
>>> There may need to be a non-ideal decision or a revision to that spec.
>>> and its
>>> supporting code.
>>>
>>> And why be so narrow ? It seems you have made an even odder situation
>>> in having just those two code points 'un'-excluded.
>>> The argument that those were the two a customer complained about does
>>> not
>>> hold up very well.
>>>
>>> I think you should also run this whole change+discussion by i18n-dev ..
>>>
>>>
>>> -phil.
>>>
>>> On 01/14/2016 02:32 AM, dmitry markov wrote:
>>>> Hello,
>>>>
>>>> Could you review the fix for jdk9, please?
>>>>
>>>>     bug: https://bugs.openjdk.java.net/browse/JDK-8073400
>>>>     webrev: http://cr.openjdk.java.net/~dmarkov/8073400/jdk9/webrev.00/
>>>>
>>>> Problem description:
>>>> On Windows some characters (in particular, left and right double
>>>> quotation marks) have width differing from other characters' widths,
>>>> when Monospaced logical font is used.
>>>> The default monospaced font for windows platform is Courier New. It
>>>> contains the desired characters, (i.e. '\u201c' and '\u201d').
>>>> However the characters are in 'exclusion ranges' for this font due
>>>> to settings in windows.fontconfig.properties. So when we try to
>>>> obtain glyphs for these characters and calculate their bounds, we
>>>> fallback to another font (Lucida) and use its glyphs.
>>>>
>>>> Fix:
>>>> Remove the following set of characters u2018 - u201F from the
>>>> exclusion ranges.
>>>>
>>>> Thanks,
>>>> Dmitry
>>>
>>
>



More information about the 2d-dev mailing list