Formerly ../posix/execvp.c.~8~
authorroland <roland>
Wed, 29 Apr 1992 23:12:53 +0000 (23:12 +0000)
committerroland <roland>
Wed, 29 Apr 1992 23:12:53 +0000 (23:12 +0000)
posix/execvp.c

index 50488bb..d542f7c 100644 (file)
@@ -32,11 +32,11 @@ Cambridge, MA 02139, USA.  */
 /* Execute FILE, searching in the `PATH' environment variable if it contains
    no slashes, with arguments ARGV and environment from `environ'.  */
 int
-DEFUN (execvp, (file, argv), CONST char *file AND char *CONST argv[])
+DEFUN(execvp, (file, argv), CONST char *file AND char *CONST argv[])
 {
   char name[PATH_MAX];
 
-  if (strchr (file, '/') == NULL)
+  if (strchr(file, '/') == NULL)
     {
       char *path, *p;
       struct stat st;
@@ -46,42 +46,42 @@ DEFUN (execvp, (file, argv), CONST char *file AND char *CONST argv[])
       int ngroups;
       gid_t groups[NGROUPS_MAX];
 
-      path = getenv ("PATH");
+      path = getenv("PATH");
       if (path == NULL)
        {
          /* There is no `PATH' in the environment.
             The default search path is the current directory
             followed by the path `confstr' returns for `_CS_PATH'.  */
-         len = confstr (_CS_PATH, (char *) NULL, 0);
-         path = (char *) __alloca (1 + len);
+         len = confstr(_CS_PATH, (char *) NULL, 0);
+         path = (char *) __alloca(1 + len);
          path[0] = ':';
-         (void) confstr (_CS_PATH, path + 1, len);
+         (void) confstr(_CS_PATH, path + 1, len);
        }
 
-      len = strlen (file) + 1;
-      uid = geteuid ();
-      gid = getegid ();
-      ngroups = getgroups (sizeof (groups) / sizeof (groups[0]), groups);
+      len = strlen(file) + 1;
+      uid = geteuid();
+      gid = getegid();
+      ngroups = getgroups(sizeof(groups) / sizeof(groups[0]), groups);
       p = path;
       do
        {
          path = p;
-         p = strchr (path, ':');
+         p = strchr(path, ':');
          if (p == NULL)
-           p = strchr (path, '\0');
+           p = strchr(path, '\0');
 
          if (p == path)
            /* Two adjacent colons, or a colon at the beginning or the end
               of `PATH' means to search the current directory.  */
-           (void) memcpy (name, file, len);
+           (void) memcpy(name, file, len);
          else
            {
              /* Construct the pathname to try.  */
-             (void) memcpy (name, path, p - path);
+             (void) memcpy(name, path, p - path);
              name[p - path] = '/';
-             (void) memcpy (&name[(p - path) + 1], file, len);
+             (void) memcpy(&name[(p - path) + 1], file, len);
            }
-         if (stat (name, &st) == 0 && S_ISREG (st.st_mode))
+         if (stat(name, &st) == 0 && S_ISREG(st.st_mode))
            {
              int bit = S_IXOTH;
              if (st.st_uid == uid)
@@ -104,9 +104,8 @@ DEFUN (execvp, (file, argv), CONST char *file AND char *CONST argv[])
                  break;
                }
            }
-       }
-      while (*p++ != '\0');
+       } while (*p++ != '\0');
     }
 
-  return __execve (file, argv, __environ);
+  return __execve(file, argv, __environ);
 }