+
+static void
+usage(char *argv0)
+{
+ fprintf(stderr, "Usage: %s [--dump]\n", argv0);
+ fprintf(stderr, "Returns the column width of a UTF-8 combining "
+ "multibyte character\n");
+ fprintf(stderr, "\t--dump\tDump complete width table\n");
+
+ exit(1);
+}
+
+static void
+dumpwidth(void)
+{
+#ifndef MULTIBYTE_SUPPORT
+ fprintf(stderr, "Nmh was not configured with multibyte support\n");
+ exit(1);
+#else /* MULTIBYTE_SUPPORT */
+ wchar_t wc, low;
+ int width, lastwidth;
+
+ for (wc = low = 1, lastwidth = wcwidth(wc); wc <= 0xffff; wc++) {
+ width = wcwidth(wc);
+ if (width != lastwidth) {
+ printf("%04X - %04X = %d\n", low, wc - 1, lastwidth);
+ low = wc;
+ }
+ lastwidth = width;
+ }
+
+ width = wcwidth(wc - 1);
+ if (width == lastwidth)
+ printf("%04X - %04X = %d\n", low, wc - 1, width);
+#endif /* MULTIBYTE_SUPPORT */
+}