summaryrefslogtreecommitdiff
path: root/symbol.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2012-10-03 10:23:15 +0200
committerArnold D. Robbins <arnold@skeeve.com>2012-10-03 10:23:15 +0200
commit3d9b832439afeb1b05c60831e0865df585dc55ac (patch)
treea0796f2b6a97ceb6c257cad516b62083aacb55da /symbol.c
parent9e2703f7ca0b35129a94465654d0e18d14048dbc (diff)
downloadgawk-3d9b832439afeb1b05c60831e0865df585dc55ac.tar.gz
More SYMTAB and FUNCTAB improvements.
Diffstat (limited to 'symbol.c')
-rw-r--r--symbol.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/symbol.c b/symbol.c
index 670f831d..afec7315 100644
--- a/symbol.c
+++ b/symbol.c
@@ -42,8 +42,8 @@ static void free_bcpool(INSTRUCTION *pl);
static AWK_CONTEXT *curr_ctxt = NULL;
static int ctxt_level;
-static NODE *global_table, *param_table, *func_table;
-NODE *symbol_table;
+static NODE *global_table, *param_table;
+NODE *symbol_table, *func_table;
/* Use a flag to avoid a strcmp() call inside install() */
static bool installing_specials = false;
@@ -108,7 +108,7 @@ lookup(const char *name)
if (tables[i]->table_size == 0)
continue;
- if (do_posix && tables[i] == global_table)
+ if ((do_posix || do_traditional) && tables[i] == global_table)
continue;
n = in_array(tables[i], tmp);
@@ -451,6 +451,7 @@ void
release_all_vars()
{
assoc_clear(symbol_table);
+ assoc_clear(func_table);
assoc_clear(global_table);
}