From 878966e6b94b1b5222be9100af8d84fa3479e4a7 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Fri, 27 Aug 1999 18:24:28 +0000 Subject: manual/7521 --- Src/exec.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Src/exec.c b/Src/exec.c index f2897499e..4ebbf1307 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -617,9 +617,15 @@ isreallycom(Cmdnam cn) { char fullnam[MAXCMDLEN]; - strcpy(fullnam, cn->u.name ? *(cn->u.name) : ""); - strcat(fullnam, "/"); - strcat(fullnam, cn->nam); + if (cn->flags & HASHED) + strcpy(fullnam, cn->u.cmd); + else if (!cn->u.name) + return 0; + else { + strcpy(fullnam, cn->u.name); + strcat(fullnam, "/"); + strcat(fullnam, cn->nam); + } return iscom(fullnam); } @@ -1685,8 +1691,7 @@ execcmd(Cmd cmd, int input, int output, int how, int last1) char *cmdarg = (char *) peekfirst(args); hn = cmdnamtab->getnode(cmdnamtab, cmdarg); - if (hn && trycd && !(((Cmdnam)hn)->flags & HASHED) && - !isreallycom((Cmdnam)hn)) { + if (hn && trycd && !isreallycom((Cmdnam)hn)) { cmdnamtab->removenode(cmdnamtab, cmdarg); cmdnamtab->freenode(hn); hn = NULL; -- cgit 1.4.1