GNOME Bugzilla – Bug 118301
ba + halant applied to wrong character
Last modified: 2004-12-22 21:47:04 UTC
Trying to keep track of the four different issues in bug 113551 was pretty much impossible for me, so splitting up the comments into separate bug reports. * unmadindu@Softhome.net (Sayamindu Dasgupta): 2. Baphala --------------- Pango, for some reasons is confusing between the sequence 09AC 09CD. This sequence can be substituted by two different lookups - pres, and blws. Examples are given below. pres - জব্দ blws - জ্বদ [ See: http://www.nongnu.org/freebangfont/pango_bugs/shot_bugs_gedit.jpg http://www.nongnu.org/freebangfont/pango_bugs/shot_bugs_yudit.jpg for screenshots - OT ] I have attached a screenshot of how the above two examples look in Yudit. More details on blws can be found at http://www.microsoft.com/typography/otfntdev/bengalot/features.htm (section on Below-base substitutions) * Additional Comments From Taneem Ahmed 2003-06-01 01:05 The second patch includes the previous fix for 1a, and fix for 2. [ http://bugzilla.gnome.org/showattachment.cgi?attach_id=17022 ] * Additional Comments From Owen Taylor 2003-06-01 02:55 Regarding 2. - it seems that your change disallows below-base-forms for all characters, which can't be right, can it? In a brief look, perhaps the problem is that "reph" is not being done for U+9AC, which I believe, as the Bengali Ra should be getting it? If I make the change of U+9AC from _cb (consonant with below-base, to _rb, consonant with below base and reph), I get the image that I've attached above. I have no idea if this is correct or not, though at least there are different results for the two sequences.... (If this change is correct, then ICU needs it as well.) * Additional Comments From Taneem Ahmed 2003-06-01 03:13 U+9AC should be _bb (right now in CVS it is _bb not _cb). Reph is only for U+9B0. I am attaching two screenshots with _bb and _rb. As you can see for _rb the result is the same, which is not correct. The result should be as produced by _bb. * Additional Comments From Owen Taylor 2003-06-01 04:04 For 2, OK, my change wasn't right .... I really don't know anything about Bengali, as you can tell :-). So, do we have any idea *what* is going wrong? The output of indic_ot_reorder, with the features *not* applied is: U+99C U+9AC U+9CD U+9A6 dist dist dist dist rphf rphf rphf rphf bwlf bwlf half half pstf pstf Tracing through TT_GPOS_Apply_String, the features that take effect are first, the middle two characters are combined into a ra-below-base form by 'blwf', then second, 'blws' combines the first and second glyphs. Eric would have know better, but I'm wondering if the problem isn't simply that the features are supposed to be applied syllable by syllable and we're doing the whole string at once. * Additional Comments From Taneem Ahmed 2003-06-01 04:54 For 2, the problem is with the tags. Consider the following two inputs: U+99C U+9AC U+9CD U+9A6 U+99C U+9CD U+9AC U+9A6 After reorder, both should be (and is): U+99C U+9AC U+9CD U+9A6 The difference is in the tags. For the first case, we should have blwf_p for U+9AC U+9CD. With out the patch I proposed, pango sets blwf_p by default to everything, as result to the second case too. * Additional Comments From Owen Taylor 2003-06-01 10:49 About 2, one concern would be a case where you have a subscript form beneath a dead consonant (C + virama + C_below + virama + C) or devanagari ra, this is described in R8 of the Unicode book's Devanagari section (Chapter is available for download from http://www.unicode.org/versions/Unicode4.0.0/.) R8 is specifically mentioned as applying to other subscript consonants for Gurmukhi in the Unicode chapter as well. So, you only want to supress blwf on the *first* consonant of the syllable, not on all pre-base consonants. So, something as simple as: gulong tag = (i == baseLimit) ? half_p : blwf_p may be right, but I'd really like to get Eric Mader to look at this before we change things, since this affects all Indic scripts. * Additional Comments From Taneem Ahmed 2003-06-01 16:50 And your suggestion "gulong tag = (i == baseLimit) ? half_p : blwf_p" does work.
Filed as ICU bug: http://www.jtcsv.com/cgibin/icu-bugs?findid=4025 change committed: Fri Jul 30 13:33:49 2004 Owen Taylor <otaylor@redhat.com> * modules/indic/indic-ot.c (indic_ot_reorder): Suppress blwf on the first consonant in a syllable. (#118301, Taneem Ahmed)