main(int argc, char *argv[])
{
#ifndef MULTIBYTE_SUPPORT
+ (void) argc;
+ (void) argv;
fprintf(stderr, "Nmh was not configured with multibyte support\n");
exit(1);
#else /* MULTIBYTE_SUPPORT */
wchar_t c;
int i;
- setlocale(LC_ALL, "");
+ if (! setlocale(LC_ALL, "")) {
+ fprintf(stderr, "setlocale failed, check your LC_ALL, "
+ "LC_CTYPE, and LANG environment variables\n");
+ }
if (argc < 2)
usage(argv[0]);
* at a time.
*/
- mbtowc(NULL, NULL, 0);
+ if (mbtowc(NULL, NULL, 0)) {}
while (charleft > 0) {
int clen;
}
if ((clen = wcwidth(c)) < 0) {
- fprintf(stderr, "U+%04lX non-printable\n", c);
+ fprintf(stderr, "U+%04lX non-printable\n",
+ (unsigned long int) c);
return;
}
wchar_t wc, low;
int width, lastwidth;
- for (wc = low = 1, lastwidth = wcwidth(wc); wc <= 0xffff; wc++) {
- width = wcwidth(wc);
+ for (wc = 0, low = 1, lastwidth = wcwidth(1); wc < 0xffff; wc++) {
+ width = wcwidth(wc+1);
if (width != lastwidth) {
- printf("%04lX - %04lX = %d\n", low, wc - 1, lastwidth);
- low = wc;
+ printf("%04lX - %04lX = %d\n", (unsigned long int) low,
+ (unsigned long int) (wc), lastwidth);
+ low = wc+1;
}
lastwidth = width;
}
- width = wcwidth(wc - 1);
+ width = wcwidth(wc);
if (width == lastwidth)
- printf("%04lX - %04lX = %d\n", low, wc - 1, width);
-}
+ printf("%04lX - %04lX = %d\n", (unsigned long int) low,
+ (unsigned long int) (wc), width);
#endif /* MULTIBYTE_SUPPORT */
+}