From 7985bc109e0d738644094f391d08d9848a2f2b50 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 12 Oct 2013 04:51:54 +0200 Subject: awk: fix length(array) function old new delta evaluate 3526 3548 +22 Signed-off-by: Denys Vlasenko --- editors/awk.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'editors/awk.c') diff --git a/editors/awk.c b/editors/awk.c index 77784dfc1..8848d94a5 100644 --- a/editors/awk.c +++ b/editors/awk.c @@ -2784,8 +2784,16 @@ static var *evaluate(node *op, var *res) break; case F_le: - if (!op1) + debug_printf_eval("length: L.s:'%s'\n", L.s); + if (!op1) { L.s = getvar_s(intvar[F0]); + debug_printf_eval("length: L.s='%s'\n", L.s); + } + else if (L.v->type & VF_ARRAY) { + R_d = L.v->x.array->nel; + debug_printf_eval("length: array_len:%d\n", L.v->x.array->nel); + break; + } R_d = strlen(L.s); break; -- cgit v1.2.3