From 1fd83bf1a8279cd9b2be83db0eaba67831ebc6ca Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Tue, 26 Jul 2016 16:53:36 +0200 Subject: mscan: tweak output --- mscan.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'mscan.c') diff --git a/mscan.c b/mscan.c index 6a34708..94afb2c 100644 --- a/mscan.c +++ b/mscan.c @@ -24,9 +24,9 @@ static char *aliases[32]; static int alias_idx; void -u8putstr(FILE *out, char *s, size_t l, int pad) +u8putstr(FILE *out, char *s, ssize_t l, int pad) { - while (*s && l) { + while (*s && l > 0) { if (*s == '\t') *s = ' '; if (*s >= 32 && *s < 127) { @@ -41,8 +41,9 @@ u8putstr(FILE *out, char *s, size_t l, int pad) wc = replacement; } s += r; - fprintf(out, "%lc", wc); l -= wcwidth(wc); + if (l >= 0) + fprintf(out, "%lc", wc); } } if (pad) @@ -178,8 +179,8 @@ oneline(char *file) printf("%c%c %-3ld %-10s ", flag1, flag2, lineno, date); else printf("%c%c %-10s ", flag1, flag2, date); - u8putstr(stdout, fromdec, 17, 1); - printf("%c ", flag3); + u8putstr(stdout, fromdec, 16, 1); + printf(" %c ", flag3); int z; if (indent > 18) { printf("..%2d.. ", indent/2); -- cgit 1.4.1