bien, así que estoy hurgando mí mismo así que no estoy completamente seguro, pero parece que la tabla que está buscando se encuentra en la ubicación siguiente relativa a la raíz glibc:
localedata/locales/i18n
Esta parece ser la configuración regional de Unicode (versión 5). Contiene lo siguiente, que es donde yo creo que necesita para realizar sus cambios:
% ENCLOSED ALPHANUMERICS/
<U24D0>..<U24E9>;/
En caso de que se esté preguntando, la función ctype_output (ld-ctype.c) llama allocate_arrays que se pide wcwidth_table_init. La función wcwidth_table_init es generada por 3level.h (que también genera otras tablas que siguen la misma plantilla). Esta es la cadena que seguí para rastrear los archivos en localedate/locales.
Como dije, no estoy 100% seguro de que esta sea la tabla correcta, pero pensé en compartir lo que había encontrado.
Los comentarios en ese archivo sugieren que es generado por localedata/gen-unicode-ctype.c, que habla de un archivo UnicodeData, pero ¿dónde está el archivo UnicodeData? que se usa en la distribución de glibc ...? No quiero parchar un archivo generado, parece que se volvería pegajoso la próxima vez que haya una nueva versión. – bdonlan
Hmmm ... ese es un buen punto. ¿Has intentado modificar el archivo generado de todos modos, solo para verificar que wcwidth() devuelve los valores correctos? Esto podría ser útil, ya que demostraría que estamos en el camino correcto. Entonces podríamos esforzarnos más para averiguar cómo se generan los archivos, de modo que el problema se pueda solucionar en su raíz. – Naaff
@bdonlan: ¿Han actualizado eso para volver a ejecutarlo con el archivo UnicodeData de Unicode 6.0.0? Tal vez se ha solucionado en el lanzamiento actual. – tchrist