[git commit] awk: fix detection of VAR=VAL arguments
Denys Vlasenko
vda.linux at googlemail.com
Fri Jul 2 21:07:21 UTC 2021
commit: https://git.busybox.net/busybox/commit/?id=a5d7b0f4f4e9728c3eb7a06d38227d9f3351e677
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
1NAME=VAL is not it, neither is VA.R=VAL
function old new delta
next_input_file 216 214 -2
is_assignment 115 91 -24
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-26) Total: -26 bytes
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
editors/awk.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/editors/awk.c b/editors/awk.c
index 86cb7a95f..9f14f0f9a 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -2679,7 +2679,8 @@ static int is_assignment(const char *expr)
{
char *exprc, *val;
- if (!isalnum_(*expr) || (val = strchr(expr, '=')) == NULL) {
+ val = (char*)endofname(expr);
+ if (val == (char*)expr || *val != '=') {
return FALSE;
}
@@ -2699,7 +2700,6 @@ static rstream *next_input_file(void)
#define rsm (G.next_input_file__rsm)
#define files_happen (G.next_input_file__files_happen)
- FILE *F;
const char *fname, *ind;
if (rsm.F)
@@ -2712,20 +2712,19 @@ static rstream *next_input_file(void)
if (files_happen)
return NULL;
fname = "-";
- F = stdin;
+ rsm.F = stdin;
break;
}
ind = getvar_s(incvar(intvar[ARGIND]));
fname = getvar_s(findvar(iamarray(intvar[ARGV]), ind));
if (fname && *fname && !is_assignment(fname)) {
- F = xfopen_stdin(fname);
+ rsm.F = xfopen_stdin(fname);
break;
}
}
files_happen = TRUE;
setvar_s(intvar[FILENAME], fname);
- rsm.F = F;
return &rsm;
#undef rsm
#undef files_happen
More information about the busybox-cvs
mailing list