Fixing Oriya (or) rendering in Pango 1.2



Hello,
  I have been looking at fixing the rendering of Oriya OpenType fonts
in various rendering engines. ICU 3.4 beta (as well as ICU 3.2) does
a good job of rendering Oriya. There were a couple of minor bugs
remaining that I managed to fix, though I am not sure if they have yet
been incorporated (Eric is on vacation, I believe). For details,
please see the bug report and follow-ups at http://www.jtcsv.com/cgibin/icu-bugs/incoming?id=4606
Upon learning that Pango has now adapted ICU to render Indic scripts,
I took a look at the code from CVS, and the same minor changes also
bring Pango up to 100% at rendering Oriya. As these changes are
trivial, I do not know whether a formal bug report and a patch is
necessary, but can submit these if need be. I would really, really
like for this to be fixed before GNOME 2.12 is out.

  The required changes only involve changing the classification of
ra (U0B30) and anusvara (U0B02) in the array oryaCharClasses in
modules/indic/indic-ot-class-tables.c, viz.,
  1. Change the classification of ra (U0B30) from _rv to _rb. Unlike
    Bengali, there is no vattu form of ra in Oriya.
  2. Change the classification of anusvara (U0B02) from _ma to _mp.
    Unlike Devanagari, in Oriya, the anusvara is a post form rather
    than above. In particular, this shows up when the anusvara is
    applied to a consonant + vowel sign aa, rather than to a simple
    consonant.

Besides these changes, I would also like to propose a couple more,
less urgent ones. To match Unicode 4.01, the classification of two
more characters needs to be changed: (i) va (U0B35), to be
classified as _ct. This is never used in modern Oriya in any case,
(ii) wa (U0B71). This should probably be classified as _ct for the
time being, but be warned that there is a (not very popular) school
of  thought that proposes changes that would make this _bb. This
change would also mean increasing the last character value in the
array orya_class_table in modules/indic/indic-ot-class-tables.c from
0x0B70 to 0x0B71.

Regards,
Gora





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]