From 857800c65584d544242c54eb873129c23ba20265 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 9 Sep 2021 19:26:39 +0200 Subject: awk: never return NULL from awk_printf() function old new delta awk_printf 651 628 -23 Signed-off-by: Denys Vlasenko --- editors/awk.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/editors/awk.c b/editors/awk.c index 6644d7d..f6314ac 100644 --- a/editors/awk.c +++ b/editors/awk.c @@ -2338,7 +2338,7 @@ static char *awk_printf(node *n, size_t *len) b = NULL; i = 0; - while (*f) { /* "print one format spec" loop */ + while (1) { /* "print one format spec" loop */ char *s; char c; char sv; @@ -2363,7 +2363,7 @@ static char *awk_printf(node *n, size_t *len) slen = f - s; s = xstrndup(s, slen); f++; - goto tail; /* print "....%" part verbatim */ + goto append; /* print "....%" part verbatim */ } while (1) { if (isalpha(c)) @@ -2412,7 +2412,7 @@ static char *awk_printf(node *n, size_t *len) slen = strlen(s); } *f = sv; - + append: if (i == 0) { b = s; i = slen; @@ -2422,7 +2422,7 @@ static char *awk_printf(node *n, size_t *len) b = xrealloc(b, i + slen + 1); strcpy(b + i, s); i += slen; - if (!c) /* tail? */ + if (!c) /* s is NOT allocated and this is the last part of string? */ break; free(s); } -- cgit v1.1