Minor warning cleanups
[oweals/busybox.git] / findutils / which.c
index a92777eb7ec34b7bb8fe3f0637106dbb71a2fc02..eec5fdbfb5d5c070e43f1ce950d8e3fa162b5d68 100644 (file)
@@ -2,8 +2,8 @@
 /*
  * Which implementation for busybox
  *
- * Copyright (C) 2000 by Lineo, inc.
- * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ * Copyright (C) 1999,2000 by Lineo, inc. and Erik Andersen
+ * Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  *
  */
 
-#include "busybox.h"
+/* getopt not needed */
+#include <string.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include "busybox.h"
 
 extern int which_main(int argc, char **argv)
 {
@@ -31,7 +34,7 @@ extern int which_main(int argc, char **argv)
        int i, count=1, found, status = EXIT_SUCCESS;
 
        if (argc <= 1 || **(argv + 1) == '-')
-               usage(which_usage);
+               show_usage();
        argc--;
 
        path_list = getenv("PATH");
@@ -50,17 +53,16 @@ extern int which_main(int argc, char **argv)
                argv++;
                found = 0;
                for (i = 0; i < count; i++) {
-                       char buf[strlen(path_n)+1+strlen(*argv)];
-                       strcpy (buf, path_n);
-                       strcat (buf, "/");
-                       strcat (buf, *argv);
+                       char *buf;
+                       buf = concat_path_file(path_n, *argv);
                        if (stat (buf, &filestat) == 0
                            && filestat.st_mode & S_IXUSR)
                        {
-                               printf ("%s\n", buf);
+                               puts(buf);
                                found = 1;
                                break;
                        }
+                       free(buf);
                        path_n += (strlen(path_n) + 1);
                }
                if (!found)