about summary refs log tree commit diff
path: root/mscan.c
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2016-07-26 16:53:36 +0200
committerChristian Neukirchen <chneukirchen@gmail.com>2016-07-26 16:53:36 +0200
commit1fd83bf1a8279cd9b2be83db0eaba67831ebc6ca (patch)
treec3536a168ed54f093352bcfd8021247e2ec9d8d4 /mscan.c
parent69aa1740e5edc8644c842a371b94904ab704f9f2 (diff)
downloadmblaze-1fd83bf1a8279cd9b2be83db0eaba67831ebc6ca.tar.gz
mblaze-1fd83bf1a8279cd9b2be83db0eaba67831ebc6ca.tar.xz
mblaze-1fd83bf1a8279cd9b2be83db0eaba67831ebc6ca.zip
mscan: tweak output
Diffstat (limited to 'mscan.c')
-rw-r--r--mscan.c11
1 files changed, 6 insertions, 5 deletions
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);