diff options
author | Werner Koch <wk@gnupg.org> | 2003-01-09 13:36:05 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2003-01-09 13:36:05 +0100 |
commit | 11d5db1dcbfa4646e4106e1849044a8c448c93fd (patch) | |
tree | d4379bd8f04904d3da009d98e6d7f088cf832b16 /jnlib/argparse.h | |
parent | * configure.ac: Bumped version number to 1.9.0-cvs. (diff) | |
download | gnupg2-11d5db1dcbfa4646e4106e1849044a8c448c93fd.tar.xz gnupg2-11d5db1dcbfa4646e4106e1849044a8c448c93fd.zip |
Updated from NewPG
Diffstat (limited to 'jnlib/argparse.h')
-rw-r--r-- | jnlib/argparse.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/jnlib/argparse.h b/jnlib/argparse.h new file mode 100644 index 000000000..e8922faa4 --- /dev/null +++ b/jnlib/argparse.h @@ -0,0 +1,67 @@ +/* argparse.h + * Copyright (C) 1998,1999,2000,2001 Free Software Foundation, Inc. + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifndef LIBJNLIB_ARGPARSE_H +#define LIBJNLIB_ARGPARSE_H + +#include <stdio.h> +#include "types.h" + +typedef struct { + int *argc; /* pointer to argc (value subject to change) */ + char ***argv; /* pointer to argv (value subject to change) */ + unsigned flags; /* Global flags (DO NOT CHANGE) */ + int err; /* print error about last option */ + /* 1 = warning, 2 = abort */ + int r_opt; /* return option */ + int r_type; /* type of return value (0 = no argument found)*/ + union { + int ret_int; + long ret_long; + unsigned long ret_ulong; + char *ret_str; + } r; /* Return values */ + struct { + int idx; + int inarg; + int stopped; + const char *last; + void *aliases; + const void *cur_alias; + } internal; /* DO NOT CHANGE */ +} ARGPARSE_ARGS; + +typedef struct { + int short_opt; + const char *long_opt; + unsigned flags; + const char *description; /* optional option description */ +} ARGPARSE_OPTS; + + + +int arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts); +int optfile_parse( FILE *fp, const char *filename, unsigned *lineno, + ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts); +void usage( int level ); +const char *strusage( int level ); +void set_strusage( const char *(*f)( int ) ); + +#endif /*LIBJNLIB_ARGPARSE_H*/ |