commit - 76462671d2b581f08bd34b0bd2540bd5a0c93213
commit + c709b7ea3ba34551fc68a0fb15e23aec6af8dbde
blob - 7b92438f24fee47936331cffeabc689ef06844c6
blob + eca6aebc7cbb18cacda010b7d6ee4799b3212035
--- rover.c
+++ rover.c
} else {
char *suffix, *suffixes = "BKMGTPEZY";
off_t human_size = ESIZE(j) * 10;
- int length = mbstowcs(NULL, ENAME(j), 0);
+ int length = mbstowcs(WBUF, ENAME(j), PATH_MAX);
+ int namecols = wcswidth(WBUF, length);
for (suffix = suffixes; human_size >= 10240; suffix++)
human_size = (human_size + 512) / 1024;
if (*suffix == 'B')
- swprintf(WBUF, PATH_MAX, L"%s%*d %c", ENAME(j),
- (int) (COLS - length - 6),
+ swprintf(WBUF + length, PATH_MAX - length, L"%*d %c",
+ (int) (COLS - namecols - 6),
(int) human_size / 10, *suffix);
else
- swprintf(WBUF, PATH_MAX, L"%s%*d.%d %c", ENAME(j),
- (int) (COLS - length - 8),
+ swprintf(WBUF + length, PATH_MAX - length, L"%*d.%d %c",
+ (int) (COLS - namecols - 8),
(int) human_size / 10, (int) human_size % 10, *suffix);
}
mvwhline(rover.window, i + 1, 1, ' ', COLS - 2);