glibc在哪裏得到它的unicode屬性數據庫,例如,wcwidth()
?我有興趣糾正一些錯誤的條目,但我似乎無法找到這些信息在源代碼分發中的位置。glibc在哪裏得到它的unicode屬性數據庫?
如果很重要,我主要在debian或ubuntu linux下對此感興趣。
glibc在哪裏得到它的unicode屬性數據庫,例如,wcwidth()
?我有興趣糾正一些錯誤的條目,但我似乎無法找到這些信息在源代碼分發中的位置。glibc在哪裏得到它的unicode屬性數據庫?
如果很重要,我主要在debian或ubuntu linux下對此感興趣。
好了,所以我只是戳自己身邊,所以我沒有絕對的把握,但現在看來,你正在尋找的表在以下位置相對於glibc的根目錄中:
localedata/locales/i18n
這看起來是Unicode(第5版)區域設置。它包含以下,這是我認爲你需要進行更改:
% ENCLOSED ALPHANUMERICS/
<U24D0>..<U24E9>;/
如果你想知道,該功能ctype_output(LD-ctype.c)調用allocate_arrays這就要求wcwidth_table_init。函數wcwidth_table_init由3level.h生成(它也會生成遵循相同模板的其他表)。這是我跟蹤的鏈,用於追蹤localedate/locales中的文件。
就像我說的,我不是100%確定這是正確的桌子,但我想我會分享我發現的東西。
看起來數據是由在http://unicode.org/Public/UNIDATA/發佈的unicode數據文件中的(顯然是手動運行的)localedata/gen-unicode-ctype.c生成的。感謝納夫指引我朝着正確的方向發展!
該文件中的註釋表明它是由localedata/gen-unicode-ctype.c生成的,它講述了一個UnicodeData文件,但UnicodeData文件在哪裏在glibc發行版中使用...?我不想修補生成的文件,下次發佈新版本時似乎會變得粘稠。 – bdonlan 2009-05-05 05:57:46