From ec1c4d6aca7b793d5ccf4235b3582473bb7fae90 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Thu, 26 Aug 1999 07:51:46 +0000 Subject: zsh-workers/7490 --- Src/exec.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Src/exec.c b/Src/exec.c index d37acd902..f2897499e 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -615,16 +615,12 @@ iscom(char *s) int isreallycom(Cmdnam cn) { - if (cn->flags & HASHED) - return 1; - else { - char fullnam[MAXCMDLEN]; + char fullnam[MAXCMDLEN]; - strcpy(fullnam, cn->u.name ? *(cn->u.name) : ""); - strcat(fullnam, "/"); - strcat(fullnam, cn->nam); - return iscom(fullnam); - } + strcpy(fullnam, cn->u.name ? *(cn->u.name) : ""); + strcat(fullnam, "/"); + strcat(fullnam, cn->nam); + return iscom(fullnam); } /**/ @@ -1689,7 +1685,8 @@ execcmd(Cmd cmd, int input, int output, int how, int last1) char *cmdarg = (char *) peekfirst(args); hn = cmdnamtab->getnode(cmdnamtab, cmdarg); - if (hn && trycd && !isreallycom((Cmdnam)hn)) { + if (hn && trycd && !(((Cmdnam)hn)->flags & HASHED) && + !isreallycom((Cmdnam)hn)) { cmdnamtab->removenode(cmdnamtab, cmdarg); cmdnamtab->freenode(hn); hn = NULL; -- cgit 1.4.1