summaryrefslogtreecommitdiffstats
path: root/cmd-generic.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2008-06-29 07:04:31 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2008-06-29 07:04:31 +0000
commitd90d646ca8e7ff6f97e9d11a2d746e217c7a3dcc (patch)
treee4830af4b33734b903a866103a01eebf83c2a1f1 /cmd-generic.c
parent09a4f6a62d6a2337fc0d801827385c2b13e691be (diff)
Zombie windows, requested by Will Maier.
Diffstat (limited to 'cmd-generic.c')
-rw-r--r--cmd-generic.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/cmd-generic.c b/cmd-generic.c
index 3ede0cf6..49bb14b2 100644
--- a/cmd-generic.c
+++ b/cmd-generic.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-generic.c,v 1.11 2008-06-20 08:36:20 nicm Exp $ */
+/* $Id: cmd-generic.c,v 1.12 2008-06-29 07:04:30 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -73,6 +73,13 @@ cmd_target_parse(struct cmd *self, int argc, char **argv, char **cause)
if (argc != 1)
goto usage;
data->arg = xstrdup(argv[0]);
+ } else if (self->entry->flags & CMD_ZEROONEARG) {
+ if (argc == 0)
+ data->arg = NULL;
+ else if (argc == 1)
+ data->arg = xstrdup(argv[0]);
+ else
+ goto usage;
} else {
if (argc != 0)
goto usage;
@@ -192,6 +199,13 @@ cmd_srcdst_parse(struct cmd *self, int argc, char **argv, char **cause)
if (argc != 1)
goto usage;
data->arg = xstrdup(argv[0]);
+ } else if (self->entry->flags & CMD_ZEROONEARG) {
+ if (argc == 0)
+ data->arg = NULL;
+ else if (argc == 1)
+ data->arg = xstrdup(argv[0]);
+ else
+ goto usage;
} else {
if (argc != 0)
goto usage;
@@ -325,6 +339,13 @@ cmd_buffer_parse(struct cmd *self, int argc, char **argv, char **cause)
if (argc != 1)
goto usage;
data->arg = xstrdup(argv[0]);
+ } else if (self->entry->flags & CMD_ZEROONEARG) {
+ if (argc == 0)
+ data->arg = NULL;
+ else if (argc == 1)
+ data->arg = xstrdup(argv[0]);
+ else
+ goto usage;
} else {
if (argc != 0)
goto usage;