Rewritten by Manuel Novoa III.
[oweals/busybox.git] / xargs.c
diff --git a/xargs.c b/xargs.c
index c5f7b208c425cb2cebc7c168a5c7cca045779655..48adae90a2870dc590fb7a7514abd69baa68485b 100644 (file)
--- a/xargs.c
+++ b/xargs.c
@@ -1,9 +1,9 @@
 /*
  * Mini xargs implementation for busybox
  *
- * Copyright (C) 2000 by Lineo, inc.
+ * Copyright (C) 1999,2000,2001 by Lineo, inc.
  * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
- * Remixed by Mark Whitley <markw@lineo.com>, <markw@enol.com>
+ * Remixed by Mark Whitley <markw@lineo.com>, <markw@codepoet.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"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "busybox.h"
 
 int xargs_main(int argc, char **argv)
 {
@@ -45,7 +45,7 @@ int xargs_main(int argc, char **argv)
        /* Store the command to be executed (taken from the command line) */
        if (argc == 1) {
                /* default behavior is to echo all the filenames */
-               cmd_to_be_executed = strdup("/bin/echo ");
+               cmd_to_be_executed = xstrdup("/bin/echo ");
        } else {
                /* concatenate all the arguments passed to xargs together */
                int i;
@@ -68,8 +68,7 @@ int xargs_main(int argc, char **argv)
                char *execstr = NULL;
 
                /* eat the newline off the filename. */
-               if (file_to_act_on[strlen(file_to_act_on)-1] == '\n')
-                       file_to_act_on[strlen(file_to_act_on)-1] = '\0';
+               chomp(file_to_act_on);
 
                /* eat blank lines */
                if (strlen(file_to_act_on) == 0)
@@ -81,10 +80,8 @@ int xargs_main(int argc, char **argv)
                strcat(execstr, cmd_to_be_executed);
                strcat(execstr, file_to_act_on);
                cmd_output = popen(execstr, "r");
-               if (cmd_output == NULL) {
-                       perror("popen");
-                       exit(1);
-               }
+               if (cmd_output == NULL)
+                       perror_msg_and_die("popen");
 
                /* harvest the output */
                while ((output_line = get_line_from_file(cmd_output)) != NULL) {