/*
* Mini xargs implementation for busybox
*
- * Copyright (C) 2000 by Lineo, inc.
- * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
- * Remixed by Mark Whitley <markw@lineo.com>, <markw@enol.com>
+ * Copyright (C) 1999,2000 by Lineo, inc. and Erik Andersen
+ * Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
+ * Remixed by Mark Whitley <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)
{
/* 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;
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)
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) {
free(file_to_act_on);
}
-#ifdef BB_FEATURE_CLEAN_UP
+#ifdef CONFIG_FEATURE_CLEAN_UP
free(cmd_to_be_executed);
#endif