<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hi All,</p>
    Please review a fix for an issue which causes arabic character
    "alef" to be not rendered in osx for menlo font in italic style.<br>
    <br>
    Bug: <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8147002">https://bugs.openjdk.java.net/browse/JDK-8147002</a><br>
    <br>
    The issue was actually a regression caused by the fix to
    JDK-7162125: <span title="JDK-7162125: [macosx] A font has
      different behaviour for ligatures depending on its creation mode">
      <span class="link-summary">[macosx] A font has different behaviour
        for ligatures depending on its creation mode<br>
        in which we have added cascaded font list to find the real fonts
        that CFont uses, so that there is no need to use "negative"
        glyph code for finding the fallback fonts <br>
        using the "subsititution"/"fallback" mechanism used by osx code.<br>
        <br>
        However, the above logic of using cascaded font list in CFont
        does not take into account of using JRE provided fonts like all
        those Lucida* ttf in jdk/lib/fonts/, so<br>
        when a glyph (in this intance, arabic 'alef' character) is
        intended to be rendered in Menlo font in italic style, osx will
        not be able to find the glyph in Menlo-Italic font<br>
        and neither in all the cascaded system fonts provided by
        CoreText, so it results in empty box.<br>
        <br>
        Before 7162125 fix, the fallback code in </span></span>CoreTextSupport.m#CTS_CopyCTFallbackFontAndGlyphForJavaGlyphCode()
    uses JRSFontCreateFallbackFontForCharacters()<br>
    was adding jre/lib/fonts to the fallback list which was causing the
    glyph to be found in "LucidaBrightRegular.ttf" font and the glyph
    was rendered.<br>
    <br>
    So, the proposed fix is to add jre provided font "Lucida Sans
    Regular" to the cascaded list so that we get the "alef" glyph. <br>
    The reason for choosing "Lucida Sans Regular" over "Lucida Bright
    Regular" is, because it is the largest font file in jre and has all
    the glyph codepoints that no other font in the jre has, <br>
    so we will not lose out on any codepoints and will help us in not
    getting missing glyph.<br>
    <br>
    webrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~psadhukhan/8147002/webrev.00/">http://cr.openjdk.java.net/~psadhukhan/8147002/webrev.00/</a><br>
    <br>
    Regards<br>
    Prasanta<br>
  </body>
</html>