Imported Debian patch 0.63.0-6
[hcoop/debian/courier-authlib.git] / unicode / unicode_wcwidth.c
diff --git a/unicode/unicode_wcwidth.c b/unicode/unicode_wcwidth.c
new file mode 100644 (file)
index 0000000..6129937
--- /dev/null
@@ -0,0 +1,29 @@
+#include "unicode_config.h"
+#include "unicode.h"
+
+#include "eastasianwidth.h"
+
+#include <stdlib.h>
+
+int unicode_wcwidth(unicode_char c)
+{
+       size_t b=0;
+       size_t e=sizeof(unicode_wcwidth_tab)/sizeof(unicode_wcwidth_tab[0]);
+
+       while (b < e)
+       {
+               size_t n=b + (e-b)/2;
+
+               if (c >= unicode_wcwidth_tab[n][0])
+               {
+                       if (c <= unicode_wcwidth_tab[n][1])
+                               return 2;
+                       b=n+1;
+               }
+               else
+               {
+                       e=n;
+               }
+       }
+       return 1;
+}