harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Liang <richard.lian...@gmail.com>
Subject Re: [classlib][text] Bidi returns directional runs in visual order rather than in logical
Date Tue, 22 Aug 2006 03:40:08 GMT
Sorry for my late reply, Alexey.

I'm discussing this issue with ICU team, and have not drawn any conclusion till now. 

Richard.

Ivanov, Alexey A wrote:
> Hello Richard,
>
> Have you taken a look at this issue?
>
> Thanks, 
> --
> Alexey A. Ivanov
> Intel Middleware Product Division
>
>   
>> -----Original Message-----
>> From: Richard Liang [mailto:richard.liangyx@gmail.com]
>> Sent: Tuesday, August 08, 2006 12:12 PM
>> To: harmony-dev@incubator.apache.org
>> Subject: Re: [classlib][text] Bidi returns directional runs in visual
>>     
> order
>   
>> rather than in logical
>>
>> Hello Ivanov,
>>
>> I will have a look at this issue, and will give my feedback later.
>> Thanks a lot.
>>
>> Best regards,
>> Richard.
>>
>> Ivanov, Alexey A wrote:
>>     
>>> All,
>>>
>>> I'd like to attract more attention to this problem because this
>>> incompatibility makes many tests in javax.swing.text package fail.
>>>       
> The
>   
>>> implementation of jx.s.t.AbstractDocument depends on j.t.Bidi.
>>>
>>> The root of the problem lies in ICU library. Here we have two
>>>       
> options:
>   
>>> 1. Fix the Bidi implementation, to be more precise its counterpart in
>>> ICU;
>>> 2. Fix AbstractDocument to handle such illogical run order.
>>>
>>>
>>> Can text guys comment on this issue?
>>>
>>>
>>> I decided to cite the test case from the JIRA:
>>> public class Test {
>>>     public static final String LTR = "\u0061\u0062"; // these are
>>>       
> "ab"
>   
>>>     public static final String RTL = "\u05DC\u05DD";
>>>     public static final String newLine = "\n";
>>>
>>>     public static final String defText = LTR + newLine
>>>                                          + RTL + LTR + RTL;
>>>     public static void main(String[] args) {
>>>         Bidi bi = new Bidi(defText,
>>>                            Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
>>>
>>>         System.out.println("Runs: ");
>>>         final int count = bi.getRunCount();
>>>         for (int i = 0; i < count; i++) {
>>>             System.out.println(i + ": " + bi.getRunLevel(i)
>>>                                + " [" + bi.getRunStart(i)
>>>                                + ", " + bi.getRunLimit(i)
>>>                                + "]");
>>>         }
>>>     }
>>> }
>>>
>>>
>>> Thank you in advance.
>>> --
>>> Alexey A. Ivanov
>>> Intel Middleware Product Division
>>>
>>>
>>> P.S. Shall I add "compatibility" to the subject line?
>>>
>>>
>>>
>>>       
>>>> -----Original Message-----
>>>> From: Ivanov, Alexey A [mailto:alexey.a.ivanov@intel.com]
>>>> Sent: Tuesday, August 01, 2006 3:27 PM
>>>> To: harmony-dev@incubator.apache.org
>>>> Subject: [classlib][text] Bidi returns directional runs in visual
>>>>         
> order
>   
>>>> rather than in logical
>>>>
>>>> Hi all.
>>>>
>>>> Harmony implementation of java.text.Bidi returns directional runs
>>>> (getRunStart(), getRunLimit(), getRunLevel()) in visual order if
>>>> paragraph reading order is Right-to-Left. I mean the first run is at
>>>>
>>>>         
>>> the
>>>
>>>       
>>>> end of character buffer, and the last is at the beginning. I'd
>>>>         
> expect
>   
>>>> directional runs are enumerated in the order of the characters in
>>>>         
> the
>   
>>>> buffer, i.e. the logical order.
>>>>
>>>> I've created a JIRA issue for this:
>>>> https://issues.apache.org/jira/browse/HARMONY-1028
>>>>
>>>> Another difference from the RI is that in Harmony the text is
>>>>         
> divided
>   
>>>> into paragraphs before directional analysis, which is not done in
>>>>         
> the
>   
>>> RI
>>>
>>>       
>>>> despite the Unicode Bidirectional Algorithm [1] requires it.
>>>>
>>>>
>>>> The output of the test case when run on Harmony:
>>>> 0: 0 [0, 3]
>>>> 1: 1 [7, 9]
>>>> 2: 2 [5, 7]
>>>> 3: 1 [3, 5]
>>>>
>>>> However, I'd expect the following output:
>>>> 0: 0 [0, 3]
>>>> 1: 1 [3, 5]
>>>> 2: 2 [5, 7]
>>>> 3: 1 [7, 9]
>>>>
>>>> The output of the test case when run on the RI:
>>>> 0: 0 [0, 3]
>>>> 1: 1 [3, 5]
>>>> 2: 0 [5, 7]
>>>> 3: 1 [7, 9]
>>>>
>>>>
>>>> Any thoughts?
>>>>
>>>> [1] http://www.unicode.org/reports/tr9/
>>>>
>>>>
>>>> Regards,
>>>> --
>>>> Alexey A. Ivanov
>>>> Intel Middleware Product Division
>>>>
>>>>
>>>>         
> ---------------------------------------------------------------------
>   
>>>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>>>> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
>>>> For additional commands, e-mail:
>>>>         
> harmony-dev-help@incubator.apache.org
>   
>>> ---------------------------------------------------------------------
>>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>>> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
>>> For additional commands, e-mail:
>>>       
> harmony-dev-help@incubator.apache.org
>   
>>>
>>>       
>> --
>> Richard Liang
>> China Software Development Lab, IBM
>>     
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>
>   

-- 
Richard Liang
China Software Development Lab, IBM 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message