<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Ok. Approved.<br>
    <br>
    -phil.<br>
    <br>
    <div class="moz-cite-prefix">On 06/25/2018 10:20 AM, Toshio 5
      Nakamura wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:OFC1906345.06332301-ON002582B7.005E325C-492582B7.005F44DD@notes.na.collabserv.com">
      <p><font size="2">Hi Phil,</font><br>
        <br>
        <font size="2">In other words, I just misunderstood your
          suggestion below.</font><br>
        <font size="2">Recent discussions led me correct understanding,
          and I took this way.</font><br>
        <font size="2">sorry for your confusion.</font><br>
        <br>
        > For example we could explore having isComplexCharCode
        return true for these and<br>
        > directing all uses down the layout path ? Then we can maybe
        remove all this logic from<br>
        > case used by the fast path code.<font size="2"><br>
          <br>
          Toshio Nakamura<br>
        </font><font size="2" color="#800080">----- Forwarded by Toshio
          5 Nakamura/Japan/IBM on 2018/06/26 02:09 -----</font><br>
        <br>
        <font size="2" color="#5F5F5F">From: </font><font size="2">"Toshio
          5 Nakamura" <a class="moz-txt-link-rfc2396E" href="mailto:TOSHIONA@jp.ibm.com"><TOSHIONA@jp.ibm.com></a></font><br>
        <font size="2" color="#5F5F5F">To: </font><font size="2">Phil
          Race <a class="moz-txt-link-rfc2396E" href="mailto:philip.race@oracle.com"><philip.race@oracle.com></a></font><br>
        <font size="2" color="#5F5F5F">Cc: </font><font size="2">2d-dev
          <a class="moz-txt-link-rfc2396E" href="mailto:2d-dev@openjdk.java.net"><2d-dev@openjdk.java.net></a>, "Steven R. Loomis"
          <a class="moz-txt-link-rfc2396E" href="mailto:srl@icu-project.org"><srl@icu-project.org></a></font><br>
        <font size="2" color="#5F5F5F">Date: </font><font size="2">2018/06/23
          09:08</font><br>
        <font size="2" color="#5F5F5F">Subject: </font><font size="2">Re:
          [OpenJDK 2D-Dev] RFR: JDK-8187100: support Variation
          Selectors(Resend)</font><br>
        <font size="2" color="#5F5F5F">Sent by: </font><font size="2">"2d-dev"
          <a class="moz-txt-link-rfc2396E" href="mailto:2d-dev-bounces@openjdk.java.net"><2d-dev-bounces@openjdk.java.net></a></font><br>
      </p>
      <hr style="color:#8091A5; " size="2" align="left"
        noshade="noshade" width="100%"><br>
      <br>
      <br>
      <font size="2">Hi Phil, Steven,</font><br>
      <font size="2"><br>
        Thank you so much for your support, and sorry for taking your
        time.</font><br>
      <font size="2"><br>
        As Akira-san suggested, Harfbuzz has VS capability.<br>
        It seems difficult to use its glyph picking up mechanism in this
        case,<br>
        but its layout mechanism we can use. And, I tried to use it.</font><br>
      <font size="2"><br>
        Regarding default UVS table, if composite fonts keep font slot,<br>
        we just need to check whether Base+VS is defined in Non-default
        UVS table or not. <br>
        When Non-default UVS doesn't have the entry, we always use its
        default glyph.<br>
        <br>
        Best regards,<br>
        <br>
        Toshio Nakamura</font><br>
      <br>
      <img src="cid:part1.7E1CA1C5.F585E4DE@oracle.com" alt="Inactive
        hide details for Phil Race ---2018/06/23 07:34:06---Oh .. so
        this is doing what I suggested a couple of emails back. I"
        class="" width="16" height="16"><font size="2" color="#424282">Phil
        Race ---2018/06/23 07:34:06---Oh .. so this is doing what I
        suggested a couple of emails back. If we see a VS we always
        delegate t</font><br>
      <font size="2" color="#5F5F5F"><br>
        From: </font><font size="2">Phil Race
        <a class="moz-txt-link-rfc2396E" href="mailto:philip.race@oracle.com"><philip.race@oracle.com></a></font><font size="2"
        color="#5F5F5F"><br>
        To: </font><font size="2">"Steven R. Loomis"
        <a class="moz-txt-link-rfc2396E" href="mailto:srl@icu-project.org"><srl@icu-project.org></a></font><font size="2" color="#5F5F5F"><br>
        Cc: </font><font size="2">Toshio 5 Nakamura
        <a class="moz-txt-link-rfc2396E" href="mailto:TOSHIONA@jp.ibm.com"><TOSHIONA@jp.ibm.com></a>, 2d-dev
        <a class="moz-txt-link-rfc2396E" href="mailto:2d-dev@openjdk.java.net"><2d-dev@openjdk.java.net></a></font><font size="2"
        color="#5F5F5F"><br>
        Date: </font><font size="2">2018/06/23 07:34</font><font
        size="2" color="#5F5F5F"><br>
        Subject: </font><font size="2">Re: [OpenJDK 2D-Dev] RFR:
        JDK-8187100: support Variation Selectors(Resend)</font><br>
      <hr size="2" align="left" noshade="noshade" width="100%"><br>
      <br>
      <br>
      Oh .. so this is doing what I suggested a couple of emails back.<br>
      If we see a VS we always delegate to TextLayout  ?<br>
      Yes, it does simplify the patch a lot and I am perfectly OK with<br>
      this approach but I am surprised as, but Toshio was very keen on<br>
      having it there without TextLayout being needed .. why the change
      of heart ?<br>
      <br>
      But I don't get the removal (skipping) of the Default UVS table ?<br>
      <br>
      -phil.<br>
      <br>
      On 06/22/2018 03:26 PM, Steven R. Loomis wrote:
      <ul>
        <ul>
          <ul>
            <ul>
              Phil, does this help: <br>
              <br>
               <a
href="https://gist.github.com/srl295/a81ec3a8495d53b85f368a7872138e86#file-webrev-02-vs-03-diff"
                moz-do-not-send="true"><u><font color="#0000FF">https://gist.github.com/srl295/a81ec3a8495d53b85f368a7872138e86#file-webrev-02-vs-03-diff</font></u></a><br>
              <br>
              it is a diff between the 02 and 03 versions. <br>
              <br>
              On Fri, Jun 22, 2018 at 2:59 PM Phil Race <<a
                href="mailto:philip.race@oracle.com"
                moz-do-not-send="true"><u><font color="#0000FF">philip.race@oracle.com</font></u></a>>
              wrote:
              <ul>
                <ul>
                  Please save me time and tell me where I will find the
                  changes from the .02 version ?<br>
                  In particular I mean where are the changes associated
                  with<br>
                  "Use TextLayout (Harfbuzz) if VS appears." ?<br>
                  <br>
                  -phil.<br>
                  <br>
                  On 06/22/2018 12:59 PM, Steven R. Loomis wrote:
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          Updated webrev: <br>
                          <u><font color="#0000FF"><br>
                            </font></u><a
                            href="http://cr.openjdk.java.net/%7Esrl/8187100/webrev.03"
                            target="_blank" moz-do-not-send="true"><u><font
                                color="#0000FF">http://cr.openjdk.java.net/~srl/8187100/webrev.03</font></u></a><br>
                          <br>
                          - Use TextLayout (Harfbuzz) if VS appears.<br>
                          - Composite font's behavior was changed to not
                          change the font by VS.<br>
                          These changes made the patch so simplified.<br>
                          - add comment about suggested DejaVu version<br>
                          <br>
                          <br>
                          <br>
                          On Thu, May 31, 2018 at 3:19 PM Steven R.
                          Loomis <<a
                            href="mailto:srl@icu-project.org"
                            target="_blank" moz-do-not-send="true"><u><font
                                color="#0000FF">srl@icu-project.org</font></u></a>>
                          wrote:<br>
                          Updated webrev: <br>
                          <u><font color="#0000FF"><br>
                            </font></u><a
                            href="http://cr.openjdk.java.net/%7Esrl/8187100/webrev.01/"
                            target="_blank" moz-do-not-send="true"><u><font
                                color="#0000FF">http://cr.openjdk.java.net/~srl/8187100/webrev.01/</font></u></a><br>
                          <br>
                          On Fri, May 18, 2018 at 9:16 AM, Toshio 5
                          Nakamura <<a
                            href="mailto:TOSHIONA@jp.ibm.com"
                            target="_blank" moz-do-not-send="true"><u><font
                                color="#0000FF">TOSHIONA@jp.ibm.com</font></u></a>>
                          wrote:
                          <ul>
                            <ul>
                              <font size="2">Thank you for your review,
                                Phil.<br>
                                I'm working to handle your points.<br>
                                <br>
                                Toshio Nakamura</font><tt><font size="2"><br>
                                  <br>
                                  Philip Race <</font></tt><a
                                href="mailto:philip.race@oracle.com"
                                target="_blank" moz-do-not-send="true"><tt><u><font
                                      size="2" color="#0000FF">philip.race@oracle.com</font></u></tt></a><tt><font
                                  size="2">> wrote on 2018/05/18
                                  13:39:35:<br>
                                  <br>
                                  > From: Philip Race <</font></tt><a
                                href="mailto:philip.race@oracle.com"
                                target="_blank" moz-do-not-send="true"><tt><u><font
                                      size="2" color="#0000FF">philip.race@oracle.com</font></u></tt></a><tt><font
                                  size="2">><br>
                                  > To: Toshio 5 Nakamura <</font></tt><a
                                href="mailto:TOSHIONA@jp.ibm.com"
                                target="_blank" moz-do-not-send="true"><tt><u><font
                                      size="2" color="#0000FF">TOSHIONA@jp.ibm.com</font></u></tt></a><tt><font
                                  size="2">><br>
                                  > Cc: 2d-dev <</font></tt><a
                                href="mailto:2d-dev@openjdk.java.net"
                                target="_blank" moz-do-not-send="true"><tt><u><font
                                      size="2" color="#0000FF">2d-dev@openjdk.java.net</font></u></tt></a><tt><font
                                  size="2">><br>
                                  > Date: 2018/05/18 13:39</font></tt>
                              <p><tt><font size="2"><br>
                                    > Subject: Re: [OpenJDK 2D-Dev]
                                    RFR: JDK-8187100: support Variation
                                    <br>
                                    > Selectors(Resend)<br>
                                    > <br>
                                    > There's a lot to think about
                                    here but I have some requests to
                                    first<br>
                                    > clean up the proposed code to
                                    conform to coding standards.<br>
                                    > <br>
                                    > I see lots of lines > 80
                                    chars. Please fix<br>
                                    > <br>
                                    > I see if(foo){ and else{ which
                                    should be "if (foo) {" and "else {"<br>
                                    > <br>
                                    > Basically always have a space
                                    before { and after ) and around "="
                                    and "=="<br>
                                    > <br>
                                    > One line that WAS<br>
                                    >   51     hb_codepoint_t u =
                                    (variation_selector==0) ? unicode :
                                    <br>
                                    > variation_selector;<br>
                                    > <br>
                                    > has no spaces around "=="
                                    almost certainly to avoid going over
                                    80 chars.<br>
                                    > Now you've broken the line you
                                    can fix that.<br>
                                    <br>
                                    > <br>
                                    > Eliminate all wild card imports
                                    and import exactly what is needed.<br>
                                    > Maybe this is only about the
                                    test.<br>
                                    > <br>
                                    > remove what looks like SCCS
                                    style comments on the @test line.<br>
                                    > Make the test simply print a
                                    warning if the person didn't install
                                    <br>
                                    > fonts where you expected.<br>
                                    > Why? Because @ignore defaults
                                    to .. not being ignored.<br>
                                    > <br>
                                    > For the JNI methods calls read
                                    the spec and see if calling them may
                                    <br>
                                    > throw an exception<br>
                                    > <br>
                                    > I'm looking at sequences like<br>
                                    >
                                    env->SetIntArrayRegion(unicodes,
                                    0, 2, tmp);<br>
                                    >   71        
                                    env->CallVoidMethod(font2D, <br>
                                    > sunFontIDs.f2dCharsToGlyphsMID,
                                    2, unicodes, results);<br>
                                    >   72        
                                    env->GetIntArrayRegion(results,
                                    0, 2, tmp);<br>
                                    >   73         *glyph = tmp[0];<br>
                                    >   74 cleanup:<br>
                                    >   75         if (unicodes !=
                                    NULL)
                                    env->DeleteLocalRef(unicodes);<br>
                                    >   76         if (results !=
                                    NULL)
                                    env->DeleteLocalRef(results);<br>
                                    > <br>
                                    <br>
                                    > If call GetIntArrayRegion may
                                    leave a pending exception it needs
                                    to <br>
                                    > be checked and cleared<br>
                                    > before you make another call.<br>
                                    > <br>
                                    > Look at the performance
                                    implications of things like the
                                    extra<br>
                                    > work done now in
                                    FontUtilities.isSimpleChar() and see
                                    how to minimise<br>
                                    > it since it could affect all
                                    text rendering in a way that is
                                    measurable<br>
                                    > in at least some way.<br>
                                    > <br>
                                    > I idly wonder if<br>
                                    > <br>
                                    > <br>
                                    >        public static boolean
                                    isBaseChar(int charCode){ ...<br>
                                    > <br>
                                    > might be more cleanly or
                                    efficiently implemented with a
                                    switch ?<br>
                                    > <br>
                                    > Not sure.<br>
                                    > <br>
                                    > -phil.<br>
                                    >   <br>
                                    > On 5/14/18, 1:28 AM, Toshio 5
                                    Nakamura wrote: <br>
                                    > Could someone review our
                                    proposal to support Unicode
                                    Variation Selectors?<br>
                                    > > Bug: </font></tt><a
                                  href="https://bugs.openjdk.java.net/browse/JDK-8187100"
                                  target="_blank" moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">https://bugs.openjdk.java.net/browse/JDK-8187100</font></u></tt></a><tt><font
                                    size="2"><br>
                                    > > Webrev: </font></tt><a
                                  href="http://cr.openjdk.java.net/%7Esrl/8187100/webrev.00/"
                                  target="_blank" moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">http://cr.openjdk.java.net/~srl/8187100/webrev.00/</font></u></tt></a><tt><font
                                    size="2"><br>
                                    > <br>
                                    > Toshio Nakamura<br>
                                    > <br>
                                    > > From: "Steven R. Loomis"
                                    <</font></tt><a
                                  href="mailto:srl295@gmail.com"
                                  target="_blank" moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">srl295@gmail.com</font></u></tt></a><tt><font
                                    size="2">><br>
                                    > > To: 2d-dev <</font></tt><a
                                  href="mailto:2d-dev@openjdk.java.net"
                                  target="_blank" moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">2d-dev@openjdk.java.net</font></u></tt></a><tt><font
                                    size="2">><br>
                                    > > Date: 2018/05/03 03:27<br>
                                    > > Subject: Re: [OpenJDK
                                    2D-Dev] RFR: JDK-8187100: support
                                    Variation <br>
                                    > > Selectors (Resend)<br>
                                    > > Sent by: "2d-dev" <</font></tt><a
href="mailto:2d-dev-bounces@openjdk.java.net" target="_blank"
                                  moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">2d-dev-bounces@openjdk.java.net</font></u></tt></a><tt><font
                                    size="2">><br>
                                    > > <br>
                                    > > I added a screenshot to </font></tt><a
href="https://bugs.openjdk.java.net/browse/JDK-8187100" target="_blank"
                                  moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">https://bugs.openjdk.java.net/browse/JDK-8187100</font></u></tt></a><tt><font
                                    size="2"><br>
                                    > > if anyone wants to see
                                    what the impact of this fix is<br>
                                    > > <br>
                                    > > On Wed, Apr 25, 2018 at
                                    8:39 AM, Steven R. Loomis <</font></tt><a
                                  href="mailto:srl295@gmail.com"
                                  target="_blank" moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">srl295@gmail.com</font></u></tt></a><tt><font
                                    size="2">> wrote:<br>
                                    > > (Retrying as actual text)<br>
                                    > > <br>
                                    > > Support Unicode Variation
                                    Selectors.<br>
                                    > >  <br>
                                    > > Code by my colleague
                                    Toshio Nakamura,  I added a simple
                                    test, and <br>
                                    > > include a test that was
                                    part of JDK 8187100. (Both tests are
                                    run manually.) <br>
                                    > >  <br>
                                    > > Bug: </font></tt><a
                                  href="https://bugs.openjdk.java.net/browse/JDK-8187100"
                                  target="_blank" moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">https://bugs.openjdk.java.net/browse/JDK-8187100</font></u></tt></a><tt><font
                                    size="2"><br>
                                    > > Webrev: </font></tt><a
                                  href="http://cr.openjdk.java.net/%7Esrl/8187100/webrev.00/"
                                  target="_blank" moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">http://cr.openjdk.java.net/~srl/8187100/webrev.00/</font></u></tt></a><tt><font
                                    size="2"><br>
                                    > >  <br>
                                    > > On 04/08/2018 11:46 PM,
                                    Toshio 5 Nakamura wrote:<br>
                                    > > ><br>
                                    > > > Hello<br>
                                    > > ><br>
                                    > > > IBM would like to
                                    propose Unicode Variation
                                    Selector[1] capability to AWT<br>
                                    > > > and Swing components.<br>
                                    > > > (This proposal was
                                    posted to i18n-dev first, and I got
                                    a suggestion to <br>
                                    > > > discuss<br>
                                    > > >  in 2d-dev.)<br>
                                    > > ><br>
                                    > > > This proposal changed
                                    the following files:<br>
                                    > > >
                                    src/java.desktop/share/classes/sun/font/CMap.java<br>
                                    > > >
                                    src/java.desktop/share/classes/sun/font/CharToGlyphMapper.java<br>
                                    > > >
                                    src/java.desktop/share/classes/sun/font/CompositeGlyphMapper.java<br>
                                    > > >
                                    src/java.desktop/share/classes/sun/font/Font2D.java<br>
                                    > > >
                                    src/java.desktop/share/classes/sun/font/FontRunIterator.java<br>
                                    > > >
                                    src/java.desktop/share/classes/sun/font/FontUtilities.java<br>
                                    > > >
                                    src/java.desktop/share/classes/sun/font/TrueTypeGlyphMapper.java<br>
                                    > > >
                                    src/java.desktop/share/native/common/font/sunfontids.h<br>
                                    > > >
                                    src/java.desktop/share/native/libfontmanager/hb-jdk-font.cc<br>
                                    > > >
                                    src/java.desktop/share/native/libfontmanager/sunFont.c<br>
                                    > > >
                                    src/java.desktop/share/classes/javax/swing/text/DefaultEditorKit.java<br>
                                    > > > 542 lines will be
                                    changed.<br>
                                    > > ><br>
                                    > > > There are three
                                    parts.<br>
                                    > > > 1) Adding CMap format
                                    14 support<br>
                                    > > > 2) Adding
                                    CharsToGlyphs functions support
                                    Variation Selector Sequences<br>
                                    > > > 3) Swing text
                                    component's DEL and BS key
                                    operations change<br>
                                    > > ><br>
                                    > > ><br>
                                    > > > How would I go about
                                    obtaining a sponsor?<br>
                                    > > ><br>
                                    > > > [1] _</font></tt><a
                                  href="http://www.unicode.org/versions/Unicode10.0.0/ch23.pdf_"
                                  target="_blank" moz-do-not-send="true"><tt><u><font
                                        size="2" color="#0000FF">http://www.unicode.org/versions/Unicode10.0.0/ch23.pdf_</font></u></tt></a><tt><font
                                    size="2"><br>
                                    > > >      Chapter 23.4
                                    Variation Selectors<br>
                                    > > ><br>
                                    > > > Best regards,<br>
                                    > > ><br>
                                    > > > Toshio Nakamura<br>
                                    > > > IBM Japan<br>
                                    > >  </font></tt></p>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                </ul>
              </ul>
            </ul>
          </ul>
        </ul>
      </ul>
      <br>
      <br>
      <p><br>
      </p>
    </blockquote>
    <br>
  </body>
</html>