aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2021-06-30 12:42:39 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2021-06-30 12:42:39 +0200
commitca9278ee5855a91a5521960d3743809f47ed27b8 (patch)
tree2e12183874ba8f0b03dafde12f1be13323e5c993
parentd1507101695f6bad35a61c4770b7d3913597ac16 (diff)
downloadbusybox-w32-ca9278ee5855a91a5521960d3743809f47ed27b8.tar.gz
busybox-w32-ca9278ee5855a91a5521960d3743809f47ed27b8.tar.bz2
busybox-w32-ca9278ee5855a91a5521960d3743809f47ed27b8.zip
awk: rewrite "print" logic a bit to make it clearer
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--editors/awk.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/editors/awk.c b/editors/awk.c
index c05d5d651..0fbca0433 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -2792,7 +2792,7 @@ static var *evaluate(node *op, var *res)
2792 if (!op1) { 2792 if (!op1) {
2793 fputs(getvar_s(intvar[F0]), F); 2793 fputs(getvar_s(intvar[F0]), F);
2794 } else { 2794 } else {
2795 while (op1) { 2795 for (;;) {
2796 var *v = evaluate(nextarg(&op1), v1); 2796 var *v = evaluate(nextarg(&op1), v1);
2797 if (v->type & VF_NUMBER) { 2797 if (v->type & VF_NUMBER) {
2798 fmt_num(g_buf, MAXVARFMT, getvar_s(intvar[OFMT]), 2798 fmt_num(g_buf, MAXVARFMT, getvar_s(intvar[OFMT]),
@@ -2801,13 +2801,12 @@ static var *evaluate(node *op, var *res)
2801 } else { 2801 } else {
2802 fputs(getvar_s(v), F); 2802 fputs(getvar_s(v), F);
2803 } 2803 }
2804 2804 if (!op1)
2805 if (op1) 2805 break;
2806 fputs(getvar_s(intvar[OFS]), F); 2806 fputs(getvar_s(intvar[OFS]), F);
2807 } 2807 }
2808 } 2808 }
2809 fputs(getvar_s(intvar[ORS]), F); 2809 fputs(getvar_s(intvar[ORS]), F);
2810
2811 } else { /* OC_PRINTF */ 2810 } else { /* OC_PRINTF */
2812 char *s = awk_printf(op1, &len); 2811 char *s = awk_printf(op1, &len);
2813#if ENABLE_FEATURE_AWK_GNU_EXTENSIONS 2812#if ENABLE_FEATURE_AWK_GNU_EXTENSIONS