Theppitak's blog

My personal blog.

23 มิถุนายน 2551

More Xlib Bug Fix for SCIM

หลังจาก แก้บั๊กของ Xlib เรื่อง การโหลด SCIM และ XIM server อื่นในโลแคลไทย ไปแล้ว นักพัฒนา Xandros คนเดิมรายงานมาว่า SCIM โหลดแล้ว แต่คีย์ภาษาไทยไม่ติด

แว้บไปทำเรื่องอื่นซะนาน เกือบสองเดือนแน่ะ เมื่อวานกับวันนี้เลยหยิบขึ้นมาไล่ดู ก็พบว่า ปัญหาก็คือ SCIM เวลาจะ commit string นั้น จะแปลงจาก wchar ให้อยู่ในรูป compound text ของ X ก่อน commit ซึ่งโลแคลไทยประกาศ character set ที่จะส่งใน compound text ไว้เป็น TIS620-0:GR ดังนี้ (แฟ้ม /usr/share/X11/locale/th_TH.UTF-8/XLC_LOCALE):

cs1 {
    side    GR:Default
    length  1

    wc_encoding \x30000000
    ct_encoding TIS620-0:GR
}

แต่ตอนที่ส่ง patch เกี่ยวกับ ISO8859-11 เมื่อตอนที่ประกาศเป็นมาตรฐานนั้น ไม่ได้แก้ตรงนี้ด้วย เพราะคิดว่ามันเทียบเท่ากัน แต่เผอิญว่าในตาราง compound text ปริยายของ Xlib ได้ตัด TIS620-0:GR ออกไปแล้ว เนื่องจากมี escape sequence ซ้ำกับ ISO8859-11:GR ทีนี้ พอ SCIM พยายามแปลง compound text มันก็เลยหา TIS620-0:GR ตามที่ระบุไม่เจอ

วิธีแก้ ก็เปลี่ยนเป็น ISO8859-11:GR แทนเสีย:

cs1 {
    side    GR:Default
    length  1

    wc_encoding \x30000000
    ct_encoding ISO8859-11:GR
}

เสร็จแล้วก็รายงาน Freedesktop Bug #16475 เสีย.. ได้คำแนะนำเพิ่มเติมว่า จะทำ UTF-8 เลยไหม.. เดี๋ยวทำเพิ่มเลย :-)

ป้ายกำกับ: ,

0 ความเห็น:

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem