2009-05-05 4 views
5

कहाँ glibc जैसे, wcwidth() के रूप में इस तरह के कार्यों के लिए, यूनिकोड विशेषताओं के अपने डेटाबेस प्राप्त करता है? मुझे कुछ गलती प्रविष्टियों को ठीक करने में दिलचस्पी है, लेकिन मुझे यह नहीं लगता कि यह जानकारी कहां से स्रोत वितरण में है।ग्लिबिक को यूनिकोड विशेषताओं का डेटाबेस कहां मिलता है?

अगर यह मायने रखती है, मैं मुख्य रूप से डेबियन या ubuntu linux के तहत इस में दिलचस्पी रखता हूँ।

उत्तर

1

ठीक है, तो मैं सिर्फ अपने आप को चारों ओर poking कर रहा हूँ तो मैं बिल्कुल यकीन नहीं है, लेकिन ऐसा लगता है कि तालिका आप देख रहे हैं glibc जड़ के लिए निम्न स्थान सापेक्ष में पाया जाता है:

localedata/locales/i18n 

यह यूनिकोड (संस्करण 5) लोकेल प्रतीत होता है।

% ENCLOSED ALPHANUMERICS/ 
    <U24D0>..<U24E9>;/ 

यदि आप सोच रहे हैं, समारोह ctype_output (ld-ctype.c) allocate_arrays जो wcwidth_table_init कॉल कॉल: यह जो है मैं कहाँ लगता है कि आप अपने परिवर्तन करने की आवश्यकता, निम्नलिखित शामिल हैं। फ़ंक्शन wcwidth_table_init 3level.h द्वारा उत्पन्न होता है (जो एक ही टेम्पलेट का पालन करने वाली अन्य सारणी भी उत्पन्न करता है)। यह वह श्रृंखला है जिसे मैंने स्थानीय/स्थानीय लोगों में फ़ाइलों को ट्रैक करने के लिए किया था।

जैसा कि मैंने कहा, मैं नहीं कर रहा हूँ 100% यकीन है कि यह सही तालिका है, लेकिन मैंने सोचा कि मैं हिस्सा था कि मैं क्या मिल गया था।

+1

कि फ़ाइल में टिप्पणी का सुझाव यह localedata/जनरल-यूनिकोड-ctype.c है, जो एक UnicodeData फ़ाइल के बारे में बात द्वारा उत्पन्न है, लेकिन जहां UnicodeData फ़ाइल है कर रहा हूँ इसका उपयोग glibc वितरण में किया जाता है ...? मैं जेनरेट की गई फाइल को पैच नहीं करना चाहता, ऐसा लगता है कि अगली बार एक नई रिलीज होने पर चिपचिपा हो जाएगा। – bdonlan

+0

हम्म ... यह एक अच्छा मुद्दा है। क्या आपने जेनरेट की गई फाइल को संशोधित करने का प्रयास किया है, बस यह सत्यापित करने के लिए कि wcwidth() सही मान देता है? यह उपयोगी हो सकता है क्योंकि यह साबित होगा कि हम सही रास्ते पर हैं। फिर हम यह पता लगाने में और अधिक प्रयास कर सकते हैं कि फाइलें कैसे उत्पन्न होती हैं ताकि समस्या को रूट पर ठीक किया जा सके। – Naaff

+0

@bdonlan: क्या उन्होंने इसे यूनिकोड 6.0.0 यूनिकोडडेटा फ़ाइल के साथ पुन: चालू करने के लिए अपडेट किया है? शायद यह वर्तमान रिलीज में तय किया गया है। – tchrist

0

मुझे विश्वास है कि यह स्थान परिभाषा फ़ाइल में परिभाषित किया है। स्थानीय लोगों के बारे में अधिक जानकारी के लिए this page देखें। glibc में localedate/locales में लोकेल परिभाषाओं का एक गुच्छा शामिल है, हालांकि उनमें से कोई भी चौड़ाई की जानकारी नहीं प्रतीत होता है।

+0

हालांकि स्थानों localedef आवेदन जो ... glibc के साथ आता है द्वारा उत्पन्न कर रहे हैं। मैं विहित स्थान पाने के लिए इस जानकारी को संपादित करने में अधिक रुचि रखते ... – bdonlan

2

ऐसा लगता है कि डेटा http://unicode.org/Public/UNIDATA/ पर प्रकाशित यूनिकोड डेटाफाइल से (स्पष्ट रूप से मैन्युअल रूप से चलाया गया) लोकलडेटा/जेन-यूनिकोड-ctype.c द्वारा उत्पन्न होता है। सही दिशा में मुझे इंगित करने के लिए नाफ के लिए धन्यवाद!

संबंधित मुद्दे