X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=hashcmd.c;h=5fa7b8b713855f097afdbeac6aca9310f42a45d5;hb=cce855bc5b117cb7ae70064131120687bc69fac0;hp=381c47560e3ba1cd47c342afa0af3b287d826d08;hpb=e8ce775db824de329b81293b4e5d8fbd65624528;p=platform%2Fupstream%2Fbash.git diff --git a/hashcmd.c b/hashcmd.c index 381c475..5fa7b8b 100644 --- a/hashcmd.c +++ b/hashcmd.c @@ -31,7 +31,7 @@ #include "bashansi.h" #include "shell.h" -#include "execute_cmd.h" +#include "findcmd.h" #include "hashcmd.h" extern int hashing_enabled; @@ -148,9 +148,15 @@ find_hashed_filename (filename) if (pathdata(item)->flags & (HASH_CHKDOT|HASH_RELPATH)) { tail = (pathdata(item)->flags & HASH_RELPATH) ? path : filename; - dotted_filename = xmalloc (3 + strlen (tail)); - dotted_filename[0] = '.'; dotted_filename[1] = '/'; - strcpy (dotted_filename + 2, tail); + /* If the pathname does not start with a `./', add a `./' to it. */ + if (tail[0] != '.' || tail[1] != '/') + { + dotted_filename = xmalloc (3 + strlen (tail)); + dotted_filename[0] = '.'; dotted_filename[1] = '/'; + strcpy (dotted_filename + 2, tail); + } + else + dotted_filename = savestring (tail); if (executable_file (dotted_filename)) return (dotted_filename);