summaryrefslogtreecommitdiff
path: root/udev_utils_run.c
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@suse.de>2006-01-26 04:38:33 +0100
committerKay Sievers <kay.sievers@suse.de>2006-01-26 04:38:33 +0100
commit36af2ddcb92c51acad0f909bb5dfb090cea9c5ed (patch)
treee03c315d43e1c73fb9330a231c2ba5fd9f186d42 /udev_utils_run.c
parentd2f605c8d61e4c5ef129f93510ab8b38e32cee97 (diff)
don't add $SUBSYSTEM automatically as $1 to programs
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Diffstat (limited to 'udev_utils_run.c')
-rw-r--r--udev_utils_run.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/udev_utils_run.c b/udev_utils_run.c
index 31363588c8..76a704c52c 100644
--- a/udev_utils_run.c
+++ b/udev_utils_run.c
@@ -84,16 +84,18 @@ int run_program(const char *command, const char *subsystem,
int devnull;
int i;
+ /* build argv from comand */
strlcpy(arg, command, sizeof(arg));
i = 0;
- if (strchr(arg, ' ')) {
+ if (strchr(arg, ' ') != NULL) {
char *pos = arg;
+
while (pos != NULL) {
if (pos[0] == '\'') {
/* don't separate if in apostrophes */
pos++;
argv[i] = strsep(&pos, "\'");
- while (pos && pos[0] == ' ')
+ while (pos != NULL && pos[0] == ' ')
pos++;
} else {
argv[i] = strsep(&pos, " ");
@@ -102,13 +104,11 @@ int run_program(const char *command, const char *subsystem,
i++;
}
argv[i] = NULL;
- info("'%s'", command);
} else {
argv[0] = arg;
- argv[1] = (char *) subsystem;
- argv[2] = NULL;
- info("'%s' '%s'", arg, argv[1]);
+ argv[1] = NULL;
}
+ info("'%s'", command);
/* prepare pipes from child to parent */
if (result || log) {