Warn when fseek or ftell are used.
[gnulib.git] / lib / findprog.c
index f1f7ef1..1829197 100644 (file)
@@ -1,5 +1,5 @@
 /* Locating a program in PATH.
-   Copyright (C) 2001-2004, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006-2007 Free Software Foundation, Inc.
    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
 
    This program is free software; you can redistribute it and/or modify
@@ -17,9 +17,7 @@
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
+#include <config.h>
 
 /* Specification.  */
 #include "findprog.h"
@@ -30,7 +28,7 @@
 #include <unistd.h>
 
 #include "xalloc.h"
-#include "pathname.h"
+#include "filename.h"
 
 
 const char *
@@ -44,7 +42,7 @@ find_in_path (const char *progname)
 #else
   /* Unix */
   char *path;
-  char *dir;
+  char *path_rest;
   char *cp;
 
   if (strchr (progname, '/') != NULL)
@@ -60,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';
@@ -76,7 +76,7 @@ find_in_path (const char *progname)
        dir = ".";
 
       /* Concatenate dir and progname.  */
-      progpathname = concatenated_pathname (dir, progname, NULL);
+      progpathname = concatenated_filename (dir, progname, NULL);
 
       /* On systems which have the eaccess() system call, let's use it.
         On other systems, let's hope that this program is not installed
@@ -89,10 +89,10 @@ find_in_path (const char *progname)
            {
              free (progpathname);
 
-             /* Add the "./" prefix for real, that concatenated_pathname()
+             /* Add the "./" prefix for real, that concatenated_filename()
                 optimized away.  This avoids a second PATH search when the
                 caller uses execlp/execvp.  */
-             progpathname = xmalloc (2 + strlen (progname) + 1);
+             progpathname = XNMALLOC (2 + strlen (progname) + 1, char);
              progpathname[0] = '.';
              progpathname[1] = '/';
              memcpy (progpathname + 2, progname, strlen (progname) + 1);