00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined (octave_prog_args_h)
00024 #define octave_prog_args_h 1
00025
00026 struct
00027 long_options
00028 {
00029 const char *name;
00030 int has_arg;
00031 int *flag;
00032 int val;
00033 };
00034
00035 class
00036 OCTAVE_API
00037 prog_args
00038 {
00039 public:
00040
00041
00042 enum option_argument
00043 {
00044 no_arg = 0,
00045 required_arg = 1,
00046 optional_arg = 2
00047 };
00048
00049 prog_args (int argc, char *const *argv, const char *s_opts, const
00050 long_options* l_opts = 0)
00051 : xargc (argc), xargv (argv), short_opts (s_opts), long_opts (l_opts)
00052 {
00053 init ();
00054 }
00055
00056 ~prog_args (void) { }
00057
00058 int getopt (void);
00059
00060 const char *optarg (void);
00061
00062 int optind (void);
00063
00064 private:
00065
00066
00067 int xargc;
00068
00069
00070 char *const *xargv;
00071
00072
00073 const char *short_opts;
00074
00075
00076 const long_options *long_opts;
00077
00078 void init (void);
00079
00080 prog_args (const prog_args&);
00081
00082 prog_args& operator = (const prog_args&);
00083 };
00084
00085 #endif
00086
00087
00088
00089
00090
00091