aboutsummaryrefslogtreecommitdiffstats
path: root/jnlib/argparse.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2012-01-31 17:08:24 +0000
committerWerner Koch <[email protected]>2012-01-31 17:08:24 +0000
commit4a9d69ca87d4e21b015b7ceab6b2b6ba3809ec22 (patch)
tree3d7bd6d345425face0ad03e00ed1e24e6b9518ac /jnlib/argparse.c
parentRequire an installed gitlog_to_changelog for make dist. (diff)
downloadgnupg-4a9d69ca87d4e21b015b7ceab6b2b6ba3809ec22.tar.gz
gnupg-4a9d69ca87d4e21b015b7ceab6b2b6ba3809ec22.zip
Update copyright year.
Diffstat (limited to 'jnlib/argparse.c')
-rw-r--r--jnlib/argparse.c122
1 files changed, 61 insertions, 61 deletions
diff --git a/jnlib/argparse.c b/jnlib/argparse.c
index dac68780c..c9b5384ae 100644
--- a/jnlib/argparse.c
+++ b/jnlib/argparse.c
@@ -153,8 +153,8 @@ static void show_version(void);
static void
initialize( ARGPARSE_ARGS *arg, const char *filename, unsigned *lineno )
{
- if( !(arg->flags & (1<<15)) )
- {
+ if( !(arg->flags & (1<<15)) )
+ {
/* Initialize this instance. */
arg->internal.idx = 0;
arg->internal.last = NULL;
@@ -167,13 +167,13 @@ initialize( ARGPARSE_ARGS *arg, const char *filename, unsigned *lineno )
if ( *arg->argc < 0 )
jnlib_log_bug ("invalid argument for arg_parsee\n");
}
-
-
+
+
if (arg->err)
{
/* Last option was erroneous. */
const char *s;
-
+
if (filename)
{
if ( arg->r_opt == ARGPARSE_UNEXPECTED_ARG )
@@ -194,10 +194,10 @@ initialize( ARGPARSE_ARGS *arg, const char *filename, unsigned *lineno )
s = _("invalid option");
jnlib_log_error ("%s:%u: %s\n", filename, *lineno, s);
}
- else
+ else
{
s = arg->internal.last? arg->internal.last:"[??]";
-
+
if ( arg->r_opt == ARGPARSE_MISSING_ARG )
jnlib_log_error (_("missing argument for option \"%.50s\"\n"), s);
else if ( arg->r_opt == ARGPARSE_UNEXPECTED_ARG )
@@ -271,10 +271,10 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
char *buffer = NULL;
size_t buflen = 0;
int in_alias=0;
-
+
if (!fp) /* Divert to to arg_parse() in this case. */
return arg_parse (arg, opts);
-
+
initialize (arg, filename, lineno);
/* Find the next keyword. */
@@ -302,9 +302,9 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
arg->r_opt = ((opts[idx].flags & ARGPARSE_OPT_COMMAND)
? ARGPARSE_INVALID_COMMAND
: ARGPARSE_INVALID_OPTION);
- else if (!(opts[idx].flags & 7))
+ else if (!(opts[idx].flags & 7))
arg->r_type = 0; /* Does not take an arg. */
- else if ((opts[idx].flags & 8) )
+ else if ((opts[idx].flags & 8) )
arg->r_type = 0; /* Arg is optional. */
else
arg->r_opt = ARGPARSE_MISSING_ARG;
@@ -312,13 +312,13 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
break;
}
else if (state == 3)
- {
+ {
/* No argument found. */
if (in_alias)
arg->r_opt = ARGPARSE_MISSING_ARG;
- else if (!(opts[idx].flags & 7))
+ else if (!(opts[idx].flags & 7))
arg->r_type = 0; /* Does not take an arg. */
- else if ((opts[idx].flags & 8))
+ else if ((opts[idx].flags & 8))
arg->r_type = 0; /* No optional argument. */
else
arg->r_opt = ARGPARSE_MISSING_ARG;
@@ -328,14 +328,14 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
else if (state == 4)
{
/* Has an argument. */
- if (in_alias)
+ if (in_alias)
{
if (!buffer)
arg->r_opt = ARGPARSE_UNEXPECTED_ARG;
- else
+ else
{
char *p;
-
+
buffer[i] = 0;
p = strpbrk (buffer, " \t");
if (p)
@@ -369,13 +369,13 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
}
else
buffer[i] = 0;
-
+
if (buffer)
{
trim_spaces (buffer);
p = buffer;
if (*p == '"')
- {
+ {
/* Remove quotes. */
p++;
if (*p && p[strlen(p)-1] == '\"' )
@@ -422,7 +422,7 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
in_alias = 1;
state = 3;
}
- else
+ else
{
arg->r_opt = ((opts[idx].flags & ARGPARSE_OPT_COMMAND)
? ARGPARSE_INVALID_COMMAND
@@ -444,13 +444,13 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
}
}
else if (state == 4)
- {
+ {
/* Collect the argument. */
if (buffer)
{
if (i < buflen-1)
buffer[i++] = c;
- else
+ else
{
char *tmp;
size_t tmplen = buflen + 50;
@@ -472,7 +472,7 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
}
else if (i < DIM(keyword)-1)
keyword[i++] = c;
- else
+ else
{
size_t tmplen = DIM(keyword) + 50;
buffer = jnlib_malloc (tmplen);
@@ -494,13 +494,13 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
arg->r_opt = ARGPARSE_KEYWORD_TOO_LONG;
state = -1; /* Skip rest of line and leave. */
}
- else
+ else
{
keyword[i++] = c;
state = 2;
}
}
-
+
return arg->r_opt;
}
@@ -562,7 +562,7 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
char **argv;
char *s, *s2;
int i;
-
+
initialize( arg, NULL, NULL );
argc = *arg->argc;
argv = *arg->argv;
@@ -573,10 +573,10 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
/* Skip the first argument. */
argc--; argv++; idx++;
}
-
+
next_one:
- if (!argc)
- {
+ if (!argc)
+ {
/* No more args. */
arg->r_opt = 0;
goto leave; /* Ready. */
@@ -585,14 +585,14 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
s = *argv;
arg->internal.last = s;
- if (arg->internal.stopped && (arg->flags & ARGPARSE_FLAG_ALL))
+ if (arg->internal.stopped && (arg->flags & ARGPARSE_FLAG_ALL))
{
arg->r_opt = ARGPARSE_IS_ARG; /* Not an option but an argument. */
arg->r_type = 2;
arg->r.ret_str = s;
argc--; argv++; idx++; /* set to next one */
}
- else if( arg->internal.stopped )
+ else if( arg->internal.stopped )
{
arg->r_opt = 0;
goto leave; /* Ready. */
@@ -601,10 +601,10 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
{
/* Long option. */
char *argpos;
-
+
arg->internal.inarg = 0;
if (!s[2] && !(arg->flags & ARGPARSE_FLAG_NOSTOP))
- {
+ {
/* Stop option processing. */
arg->internal.stopped = 1;
argc--; argv++; idx++;
@@ -643,7 +643,7 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
fputs ("--dump-options\n--help\n--version\n--warranty\n", stdout);
exit (0);
}
-
+
if ( i == -2 )
arg->r_opt = ARGPARSE_AMBIGUOUS_OPTION;
else if ( i == -1 )
@@ -673,40 +673,40 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
{
arg->r_opt = ARGPARSE_MISSING_ARG;
}
- else if ( !argpos && *s2 == '-'
- && (opts[i].flags & ARGPARSE_OPT_OPTIONAL) )
+ else if ( !argpos && *s2 == '-'
+ && (opts[i].flags & ARGPARSE_OPT_OPTIONAL) )
{
/* The argument is optional and the next seems to be an
option. We do not check this possible option but
assume no argument */
arg->r_type = ARGPARSE_TYPE_NONE;
}
- else
+ else
{
set_opt_arg (arg, opts[i].flags, s2);
- if ( !argpos )
+ if ( !argpos )
{
argc--; argv++; idx++; /* Skip one. */
}
}
}
else
- {
+ {
/* Does not take an argument. */
if ( argpos )
- arg->r_type = ARGPARSE_UNEXPECTED_ARG;
+ arg->r_type = ARGPARSE_UNEXPECTED_ARG;
else
arg->r_type = 0;
}
argc--; argv++; idx++; /* Set to next one. */
}
- else if ( (*s == '-' && s[1]) || arg->internal.inarg )
+ else if ( (*s == '-' && s[1]) || arg->internal.inarg )
{
/* Short option. */
int dash_kludge = 0;
i = 0;
- if ( !arg->internal.inarg )
+ if ( !arg->internal.inarg )
{
arg->internal.inarg++;
if ( (arg->flags & ARGPARSE_FLAG_ONEDASH) )
@@ -727,7 +727,7 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
if ( opts[i].short_opt == *s )
break;
}
-
+
if ( !opts[i].short_opt && ( *s == 'h' || *s == '?' ) )
show_help (opts, arg->flags);
@@ -837,13 +837,13 @@ long_opt_strlen( ARGPARSE_OPTS *o )
{
size_t n = strlen (o->long_opt);
- if ( o->description && *o->description == '|' )
+ if ( o->description && *o->description == '|' )
{
const char *s;
#ifdef JNLIB_NEED_UTF8CONV
int is_utf8 = is_native_utf8 ();
#endif
-
+
s=o->description+1;
if ( *s != '=' )
n++;
@@ -875,7 +875,7 @@ static void
show_help (ARGPARSE_OPTS *opts, unsigned int flags)
{
const char *s;
-
+
show_version ();
putchar ('\n');
s = strusage(41);
@@ -904,8 +904,8 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
if ( s && *s== '@' && !s[1] ) /* Hide this line. */
continue;
if ( s && *s == '@' ) /* Unindented comment only line. */
- {
- for (s++; *s; s++ )
+ {
+ for (s++; *s; s++ )
{
if ( *s == '\n' )
{
@@ -923,9 +923,9 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
if ( opts[i].short_opt < 256 )
{
printf (" -%c", opts[i].short_opt);
- if ( !opts[i].long_opt )
+ if ( !opts[i].long_opt )
{
- if (s && *s == '|' )
+ if (s && *s == '|' )
{
putchar (' '); j++;
for (s++ ; *s && *s != '|'; s++, j++ )
@@ -937,11 +937,11 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
}
else
fputs(" ", stdout);
- if ( opts[i].long_opt )
+ if ( opts[i].long_opt )
{
j += printf ("%c --%s", opts[i].short_opt < 256?',':' ',
opts[i].long_opt );
- if (s && *s == '|' )
+ if (s && *s == '|' )
{
if ( *++s != '=' )
{
@@ -970,7 +970,7 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
{
if ( *s == '\n' )
{
- if ( s[1] )
+ if ( s[1] )
{
putchar ('\n');
for (j=0; j < indent; j++ )
@@ -987,10 +987,10 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
puts ("\n(A single dash may be used instead of the double ones)");
}
if ( (s=strusage(19)) )
- {
+ {
/* bug reports to ... */
char *s2;
-
+
putchar('\n');
s2 = strstr (s, "@EMAIL@");
if (s2)
@@ -1066,7 +1066,7 @@ usage (int level)
putc ('\n', stderr);
exit (2);
}
- else if (level == 2)
+ else if (level == 2)
{
puts (strusage(41));
exit (0);
@@ -1096,10 +1096,10 @@ const char *
strusage( int level )
{
const char *p = strusage_handler? strusage_handler(level) : NULL;
-
+
if ( p )
return p;
-
+
switch ( level )
{
case 10: p = ("License GPLv3+: GNU GPL version 3 or later "
@@ -1107,7 +1107,7 @@ strusage( int level )
break;
case 11: p = "foo"; break;
case 13: p = "0.0"; break;
- case 14: p = "Copyright (C) 2011 Free Software Foundation, Inc."; break;
+ case 14: p = "Copyright (C) 2012 Free Software Foundation, Inc."; break;
case 15: p =
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n";
@@ -1127,7 +1127,7 @@ strusage( int level )
case 40: /* short and long usage */
case 41: p = ""; break;
}
-
+
return p;
}
@@ -1178,7 +1178,7 @@ main(int argc, char **argv)
case 'c': opt.crf = pargs.r_type? pargs.r.ret_str:"a.crf"; break;
case 'm': opt.myopt = pargs.r_type? pargs.r.ret_int : 1; break;
case 500: opt.a_long_one++; break;
- default : pargs.err = ARGPARSE_PRINT_WARNING; break;
+ default : pargs.err = ARGPARSE_PRINT_WARNING; break;
}
}
for(i=0; i < argc; i++ )