Okay, sto solo rovistando me stesso, quindi non sono assolutamente sicuro, ma sembra che la tabella si sta cercando si trova nella seguente posizione relativo alla radice glibc:
localedata/locales/i18n
Questo sembra essere il locale Unicode (versione 5). Esso contiene la seguente, che è dove credo è necessario apportare le modifiche:
% ENCLOSED ALPHANUMERICS/
<U24D0>..<U24E9>;/
Nel caso in cui vi state chiedendo, la funzione ctype_output (LD-ctype.c) chiama allocate_arrays che invita wcwidth_table_init. La funzione wcwidth_table_init è generata da 3level.h (che genera anche altre tabelle che seguono lo stesso modello). Questa è la catena che ho seguito per rintracciare i file in localedate/locales.
Come ho detto, non sono sicuro al 100% che questo sia il tavolo giusto, ma ho pensato di condividere ciò che avevo trovato.
I commenti in quel file suggeriscono che è generato da localedata/gen-unicode-ctype.c, che parla di un file UnicodeData, ma dov'è il file UnicodeData è usato nella distribuzione di glibc ...? Non voglio patchare un file generato, sembra che diventerebbe sempre più appiccicoso la prossima volta che ci sarà una nuova versione. – bdonlan
Hmmm ... questo è un buon punto. Hai provato a modificare comunque il file generato, solo per verificare che wcwidth() restituisca i valori corretti? Questo potrebbe essere utile in quanto proverebbe che siamo sulla strada giusta. Quindi potremmo fare uno sforzo maggiore per scoprire come vengono generati i file in modo che il problema possa essere risolto alla radice. – Naaff
@bdonlan: l'hanno aggiornato per eseguirlo nuovamente con il file UnicodeData Unicode 6.0.0? Forse è stato corretto nella versione attuale. – tchrist