]> granicus.if.org Git - vnstat/commitdiff
fix padding for Asian UTF-8 date strings
authorTeemu Toivola <git@humdi.net>
Thu, 9 Jul 2015 17:41:41 +0000 (20:41 +0300)
committerTeemu Toivola <git@humdi.net>
Thu, 9 Jul 2015 17:41:41 +0000 (20:41 +0300)
src/misc.c

index 99c3a72fe395ab8e9458ecce348914cf74ac900b..2936f1d494ac1166ca1550d1f5b548c813636e8e 100644 (file)
@@ -1,5 +1,7 @@
+#define _XOPEN_SOURCE 600
 #include "common.h"
 #include "misc.h"
+#include <wchar.h>
 
 int kerneltest(void)
 {
@@ -395,10 +397,14 @@ char *getratestring(float rate, int len, int declen, int unit)
 
 int getpadding(int len, char *str)
 {
+       wchar_t wbuffer[64];
        if (!cfg.utflocale) {
                return len;
        }
-       return len + ((int)strlen(str) - (int)mbstowcs(NULL, str, 0));
+       if ((int)mbstowcs(wbuffer, str, 64) < 0) {
+               return len;
+       }
+       return len + ((int)strlen(str) - wcswidth(wbuffer, 64));
 }
 
 void cursortocolumn(int column)