]> diplodocus.org Git - nmh/blobdiff - test/getcwidth.c
Completed commit 52a236230220232fd632b5aa88eb9bb31dba346e so
[nmh] / test / getcwidth.c
index 59ae33e3cbeab0329c862ebc0fea974028e82430..9e1ba65c456adb64fb82ce467b97088644a2eccc 100644 (file)
@@ -126,7 +126,8 @@ getwidth(const char *string)
                }
 
                if ((clen = wcwidth(c)) < 0) {
-                       fprintf(stderr, "U+%04X non-printable\n", c);
+                       fprintf(stderr, "U+%04lX non-printable\n",
+                               (unsigned long int) c);
                        return;
                }
 
@@ -144,17 +145,19 @@ dumpwidth(void)
        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("%04X - %04X = %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("%04X - %04X = %d\n", low, wc - 1, width);
+               printf("%04lX - %04lX = %d\n", (unsigned long int) low,
+                      (unsigned long int) (wc), width);
 }
 #endif /* MULTIBYTE_SUPPORT */