Okay, also bin ich Stossen nur um mich, also bin ich nicht ganz sicher, aber es scheint, dass die Tabelle die Sie suchen, ist in der folgenden Position in Bezug auf die glibc Wurzel gefunden:
localedata/locales/i18n
Dies scheint das Unicode-Gebietsschema (Version 5) zu sein. Es enthält die folgende, das ist, wo ich glaube, dass Sie Ihre Änderungen vornehmen müssen:
% ENCLOSED ALPHANUMERICS/
<U24D0>..<U24E9>;/
Falls Sie sich fragen, ist die Funktion ctype_output (ld-ctype.c) ruft allocate_arrays die wcwidth_table_init nennt. Die Funktion wcwidth_table_init wird von 3level.h generiert (die auch andere Tabellen generiert, die derselben Vorlage folgen). Dies ist die Kette, die ich verfolgt habe, um die Dateien in lokalisierten/locales zu finden.
Wie gesagt, ich bin mir nicht 100% sicher, dass dies der richtige Tisch ist, aber ich dachte, ich würde teilen, was ich gefunden habe.
Die Kommentare in dieser Datei deuten darauf hin, dass es von localedata/gen-unicode-ctype.c generiert wird, die über eine UnicodeData-Datei spricht, aber wo ist die UnicodeData-Datei das wird in der Glibc-Distribution verwendet ...? Ich möchte keine generierte Datei patchen, es sieht so aus, als würde sie beim nächsten Release kleben bleiben. – bdonlan
Hmmm ... das ist ein guter Punkt. Haben Sie schon versucht, die generierte Datei zu modifizieren, nur um zu überprüfen, ob wcwidth() die richtigen Werte liefert? Dies könnte nützlich sein, da es beweisen würde, dass wir auf dem richtigen Weg sind. Dann könnten wir uns mehr Mühe geben, herauszufinden, wie die Dateien erzeugt werden, damit das Problem an der Wurzel behoben werden kann. – Naaff
@bdonlan: Haben sie das aktualisiert, um es mit der UnicodeData-Datei von Unicode 6.0.0 erneut auszuführen? Vielleicht wurde es in der aktuellen Version behoben. – tchrist