diff options
author | Marc Ewing <marc@src.gnome.org> | 1997-11-02 22:49:50 +0000 |
---|---|---|
committer | Marc Ewing <marc@src.gnome.org> | 1997-11-02 22:49:50 +0000 |
commit | 2928c4e707104b312d1ab3e75e24c57e680313ce (patch) | |
tree | 933be0bb42a2f912d70e4c1e68246bda53ca7873 | |
parent | 50e6e5c4f7b8b07d8c0487fd23113846e58c7479 (diff) | |
download | gnome-common-2928c4e707104b312d1ab3e75e24c57e680313ce.tar.gz |
Added POPT_KEEP_FIRST to cause popt to *not* ignore first arg.r5-0-4r2-4-99r2-4-12r2-4-11r2-4-102r2-4-101r2-4-100r2-4-10r2-4-treer-2-4-tree
svn path=/trunk/; revision=39
-rw-r--r-- | support/popt-gnome.h | 2 | ||||
-rw-r--r-- | support/popt.c | 8 | ||||
-rw-r--r-- | support/popt.h | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/support/popt-gnome.h b/support/popt-gnome.h index 0072e25..c341a83 100644 --- a/support/popt-gnome.h +++ b/support/popt-gnome.h @@ -16,7 +16,9 @@ #define POPT_ERROR_BADNUMBER -17 #define POPT_ERROR_OVERFLOW -18 +/* context creation flags */ #define POPT_BADOPTION_NOALIAS (1 << 0) /* don't go into an alias */ +#define POPT_KEEP_FIRST (1 << 1) /* pay attention to argv[0] */ struct poptOption { const char * longName; /* may be NULL */ diff --git a/support/popt.c b/support/popt.c index ead28da..d75a5e1 100644 --- a/support/popt.c +++ b/support/popt.c @@ -29,6 +29,7 @@ struct poptContext_s { char * appName; struct poptAlias * aliases; int numAliases; + int flags; }; poptContext poptGetContext(char * name ,int argc, char ** argv, @@ -41,7 +42,11 @@ poptContext poptGetContext(char * name ,int argc, char ** argv, con->os->currAlias = NULL; con->os->nextCharArg = NULL; con->os->nextArg = NULL; - con->os->next = 1; /* skip argv[0] */ + + if (flags & POPT_KEEP_FIRST) + con->os->next = 0; /* include argv[0] */ + else + con->os->next = 1; /* skip argv[0] */ con->leftovers = malloc(sizeof(char *) * (argc + 1)); con->numLeftovers = 0; @@ -50,6 +55,7 @@ poptContext poptGetContext(char * name ,int argc, char ** argv, con->options = options; con->aliases = NULL; con->numAliases = 0; + con->flags = 0; if (!name) con->appName = NULL; diff --git a/support/popt.h b/support/popt.h index 0072e25..c341a83 100644 --- a/support/popt.h +++ b/support/popt.h @@ -16,7 +16,9 @@ #define POPT_ERROR_BADNUMBER -17 #define POPT_ERROR_OVERFLOW -18 +/* context creation flags */ #define POPT_BADOPTION_NOALIAS (1 << 0) /* don't go into an alias */ +#define POPT_KEEP_FIRST (1 << 1) /* pay attention to argv[0] */ struct poptOption { const char * longName; /* may be NULL */ |