X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Ffindprog.c;h=1535dcef0427bcaf2b02666d4560624374dcbc85;hb=3667f8e75409ce7df7bc3f561ddd8d03d5be39f2;hp=48c3edf6c5c9227d50e71b72964bff16880b291b;hpb=3964b40991c1676eb0a982a1e93d57224663cc17;p=gnulib.git diff --git a/lib/findprog.c b/lib/findprog.c index 48c3edf6c..1535dcef0 100644 --- a/lib/findprog.c +++ b/lib/findprog.c @@ -1,5 +1,5 @@ /* Locating a program in PATH. - Copyright (C) 2001-2003 Free Software Foundation, Inc. + Copyright (C) 2001-2004, 2006 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software; you can redistribute it and/or modify @@ -14,12 +14,10 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include /* Specification. */ #include "findprog.h" @@ -27,10 +25,7 @@ #include #include #include - -#ifdef HAVE_UNISTD_H -# include -#endif +#include #include "xalloc.h" #include "pathname.h" @@ -39,15 +34,15 @@ const char * find_in_path (const char *progname) { -#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ - /* Win32, OS/2, DOS */ +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + /* Win32, Cygwin, OS/2, DOS */ /* The searching rules with .COM, .EXE, .BAT, .CMD etc. suffixes are too complicated. Leave it to the OS. */ return progname; #else /* Unix */ char *path; - char *dir; + char *path_rest; char *cp; if (strchr (progname, '/') != NULL) @@ -63,13 +58,15 @@ find_in_path (const char *progname) /* Make a copy, to prepare for destructive modifications. */ path = xstrdup (path); - for (dir = path; ; dir = cp + 1) + for (path_rest = path; ; path_rest = cp + 1) { + const char *dir; bool last; char *progpathname; /* Extract next directory in PATH. */ - for (cp = dir; *cp != '\0' && *cp != ':'; cp++) + dir = path_rest; + for (cp = path_rest; *cp != '\0' && *cp != ':'; cp++) ; last = (*cp == '\0'); *cp = '\0';