Frage

Wo bekommt glibc seine Datenbank mit Unicode-Attribute, für solche Funktionen wie zB wcwidth()? Ich bin interessiert, ein paar verirrten Einträge zu korrigieren, aber ich kann nicht scheinen zu finden, wo diese Informationen in seiner Source-Distribution ist.

Wenn es darauf ankommt, bin ich in erster Linie daran interessiert, diese unter Debian oder Ubuntu Linux.

War es hilfreich?

Lösung

Okay, also ich bin 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 die Unicode (Version 5) locale zu sein. Es enthält die folgende, das ist, wo ich glaube, Sie brauchen, um Ihre Änderungen zu machen:

% 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 wird durch wcwidth_table_init 3level.h erzeugt (die auch andere Tabellen erzeugt, die die gleiche Vorlage folgen). Dies ist die Kette, die ich folgte die Dateien in localedate / locales aufzuspüren.

Wie ich schon sagte, ich bin nicht 100% sicher, dass dies der richtige Tisch ist, aber ich dachte, ich würde teilen, was ich gefunden habe.

Andere Tipps

Es sieht aus wie die Daten, die durch die (scheinbar manuell-run) localedata / gen-Unicode-ctype.c aus den Unicode-Datendateien veröffentlicht unter http://unicode.org/Public/UNIDATA/ . Dank Naaff für mich in der richtigen Richtung!

Ich glaube, dass es in der Lokalisierungs-Definitionsdatei definiert ist. Siehe Diese Seite für weitere Informationen über Gebietsschema. glibc enthält eine Reihe von Locale-Definitionen in localedate/locales, obwohl keiner von ihnen scheinen jede Breiteninformationen zu haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top