>> - The POSIX standard functions for this, wcwidth() and wcswidth(), work >> on the current locale, which is not guaranteed to support UTF-8 (or >> even support 8-bit characters). > >Yes, but can't setlocale() temporarily change it to a UTF-8 locale? > >Granted, there's no guarantee that a UTF-8 locale exists and what it's >called if it does exist, but maybe it would be appropriate to have a >configure check to find one?
Well, unfortunately there's not a wonderful way to determine that (and since nmh gets packaged up that's not a job autoconf can do; it needs to be determined at runtime). I suppose you could run "locale -a" and look for everything that contains UTF-8. Or ... utf8? Again, not a wonderful solution (and I see some Linux systems have something like sd_IN.utf8@devenagari, which I won't pretend to understand). Really, the POSIX character functions treat the locale and characters themselves as opaque blocks; if you want to do something crazy like override the native locale or work on characters that are not part of the native locale then you're really stepping outside of the POSIX API box. And I guess part of me really wonders why on earth that would be a good idea. --Ken _______________________________________________ Nmh-workers mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/nmh-workers
