U+20nn displaying in Pango



Hi.

I want to display U+203E (overline) in Pango.
U+203E is maped from 0x7E in SJIS, that is Japanese character set.

I got sources from CVS.
And I built examples/pango-viewr form examples/viewer-qt.[cc,h]
in RedHat Linux 7.1, and I executed this.
But U+203E is not displayed.

I digged into the source codes and found this reason.

In map_add_engine() of pango/modules.c,
first, U+20nn mapentry set BasicScriptEngineX.
That is, map->submaps[0x20].d.entry = BasicScriptEngineX.
But, when interpreting DevanagariScriptEngineX,
BasicScriptEngineX entry is lost,
and set map->submaps[0x20].d.leaves[0x0d] = DevanagariScriptEngineX .
( 0x200d is 8205 .)

Because I found this reason,
I changed line order of examples/pango.modules as following.

------------

  .
  .
  .

<path>/pango-devanagari-x.so DevanagariScriptEngineX PangoEngineShape PangoRenderX 2304-2431:* 8205-8205:*

<path>/pango-gujarati-x.so GujaratiScriptEngineX PangoEngineShape PangoRenderX 2688-2815:* 8205-8205:*

  .
  .
  .

<path>/pango-basic-x.so BasicScriptEngineX PangoEngineShape PangoRenderX 0-687:* 688-767: 896-1423:* 1425-1524:* 1548-1785: 3585-3675: 4256-4351:* 4608-5887:* 7680-8191:* 8192-40959:* 44032-55203:kr 63744-64011:kr 65280-65507:*
------------

This means I moved pango-basic-x.so line
from above pango-gujarati-x.so and pango-gujarati-x.so lines
to below pango-gujarati-x.so and pango-gujarati-x.so lines.

In this way, I can display U+203E.

I suppose it is strange that changing lines order reflects displaying.
Is this specification ?

I suppose it is better that either map_add_engine() modefied
to save previous map entry infomation
or remove 0x200d from basic_ranges[] in modules/basic/basic-x.c .

Finally, I am sorry that I am not good at English.

---------
Toshio MARUYAMA
marutosi syd odn ne jp






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