--- Src/builtin.c.orig Fri Aug 13 05:22:42 2004 +++ Src/builtin.c Wed Sep 22 09:44:04 2004 @@ -2638,9 +2638,9 @@ returnval = 1; } } - /* If we didn't match anything, we return 1. */ + /* If we didn't match anything, we return 0. */ if (!match) - returnval = 1; + returnval = 0; return returnval; } @@ -2661,7 +2661,7 @@ gethashnode2(paramtab, s) : paramtab->getnode(paramtab, s)); if (!pm) - returnval = 1; + returnval = 0; else if ((pm->flags & PM_RESTRICTED) && isset(RESTRICTED)) { zerrnam(name, "%s: restricted", pm->nam, 0); returnval = 1; @@ -3056,9 +3056,17 @@ returnval = 1; } } - /* If we didn't match anything, we return 1. */ - if (!match) - returnval = 1; + /* + * If we didn't match anything, we return 0 for functions and 1 for + * all other hash types. + */ + if (!match) { + if (OPT_ISSET(ops,'f')) { + returnval = 0; + } else { + returnval = 1; + } + } return returnval; } @@ -3069,7 +3077,11 @@ ht->freenode(hn); } else { zwarnnam(name, "no such hash table element: %s", *argv, 0); - returnval = 1; + if (OPT_ISSET(ops,'f')) { + returnval = 0; + } else { + returnval = 1; + } } } unqueue_signals();