From 83139dbf46bf65742ef5a2d3f022913cffd52908 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Thu, 27 Jan 2022 21:26:22 +0800 Subject: 5.11 --- 5/11.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to '5') diff --git a/5/11.c b/5/11.c index 22560d9..72fe92f 100644 --- a/5/11.c +++ b/5/11.c @@ -90,7 +90,7 @@ int gettablist(char *s, int *t) { } void entab(char *s, char *t, int *tablist, int tablistc) { - int i, j, k; + int i, j, k, col; if (tablistc == 1) { for (i = 0, j = 0; j < MAXTEXT && (t[j] = s[i]) != 0; i++) { @@ -101,7 +101,19 @@ void entab(char *s, char *t, int *tablist, int tablistc) { j++; } } else { - // todo + col = 1; + for (i = 0, j = 0, k = 0; k < MAXTEXT && s[i] != 0 && j <= tablistc; i++) { + if (s[i] != '\t') { + t[k++] = s[i]; + if (s[i] == '\n') + col = 1; + else + col++; + } else { + for (; col <= tablist[j++] && k < MAXTEXT; col++) + t[k++] = ' '; + } + } } t[j] = 0; -- cgit v1.2.3