From 30b90f166ef0ca0883985461d498c066e4f723da Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Sun, 8 Nov 2015 12:44:31 -0800 Subject: 37080: use paramtab abstraction more consistently, add explanatory comments --- Src/builtin.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'Src/builtin.c') diff --git a/Src/builtin.c b/Src/builtin.c index 0be20a5d2..18dfdce05 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -2334,7 +2334,8 @@ typeset_single(char *cname, char *pname, Param pm, UNUSED(int func), } else if ((on & PM_LOCAL) && locallevel) { *subscript = 0; pm = (Param) (paramtab == realparamtab ? - gethashnode2(paramtab, pname) : + /* getnode2() to avoid autoloading */ + paramtab->getnode2(paramtab, pname) : paramtab->getnode(paramtab, pname)); *subscript = '['; if (!pm || pm->level != locallevel) { @@ -2825,11 +2826,12 @@ bin_typeset(char *name, char **argv, LinkList assigns, Options ops, int func) /* Take arguments literally. Don't glob */ while ((asg = getasg(&argv, assigns))) { HashNode hn = (paramtab == realparamtab ? - gethashnode2(paramtab, asg->name) : + /* getnode2() to avoid autoloading */ + paramtab->getnode2(paramtab, asg->name) : paramtab->getnode(paramtab, asg->name)); if (OPT_ISSET(ops,'p')) { if (hn) - printparamnode(hn, printflags); + paramtab->printnode(hn, printflags); else { zwarnnam(name, "no such variable: %s", asg->name); returnval = 1; @@ -3319,7 +3321,8 @@ bin_unset(char *name, char **argv, Options ops, int func) *ss = 0; } pm = (Param) (paramtab == realparamtab ? - gethashnode2(paramtab, s) : + /* getnode2() to avoid autoloading */ + paramtab->getnode2(paramtab, s) : paramtab->getnode(paramtab, s)); /* * Unsetting an unset variable is not an error. -- cgit 1.4.1