]> diplodocus.org Git - nmh/commitdiff
Changed loop in dumpwidth() to go from [0, 0xffff) because
authorDavid Levine <levinedl@acm.org>
Fri, 15 Mar 2013 01:37:49 +0000 (20:37 -0500)
committerDavid Levine <levinedl@acm.org>
Fri, 15 Mar 2013 01:37:49 +0000 (20:37 -0500)
wchar_t is 2 bytes wide on Cygwin.  gcc noticed that the loop
would never terminate because 0xffff would increment to 0.

test/getcwidth.c

index a145b2d9aa0f1256b4d3df03846694c4dbca5057..9e1ba65c456adb64fb82ce467b97088644a2eccc 100644 (file)
@@ -145,19 +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("%04lX - %04lX = %d\n", (unsigned long int) low,
-                              (unsigned long int) (wc - 1), lastwidth);
-                       low = wc;
+                              (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", (unsigned long int) low,
-                      (unsigned long int) (wc - 1), width);
+                      (unsigned long int) (wc), width);
 }
 #endif /* MULTIBYTE_SUPPORT */