X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Fgetopt-long.hh;h=ba5eb8df28c11dcb218e9e9e7334b5805b06c46f;hb=1cdc9680f2094525103d335d80bc3950f918ed03;hp=a0992c98e6f0e03ccfc7ff91f27061ff85bcce55;hpb=9651bafcd832c72a8f81ade4b602199583d61f37;p=lilypond.git diff --git a/flower/include/getopt-long.hh b/flower/include/getopt-long.hh index a0992c98e6..ba5eb8df28 100644 --- a/flower/include/getopt-long.hh +++ b/flower/include/getopt-long.hh @@ -1,72 +1,77 @@ #ifndef GETOPT_LONG_HH #define GETOPT_LONG_HH -#include /* gcc 3.0 */ -#include "string.hh" +#include + +#include "std-string.hh" /** - a struct this for initialising the commandline options. - */ -struct Long_option_init { - char const * take_arg_sz_; - char const * longname_sz_; - char shortname_ch_; - - char const * help_sz_; - - String str () const; - String str_for_help () const; + a struct this for initialising the commandline options. +*/ +struct Long_option_init +{ + char const *take_arg_str0_; + char const *longname_str0_; + + /* + = 0: don't take short version. + */ + char shortname_char_; + + char const *help_str0_; + + string to_string () const; + string str_for_help () const; // NO constructor! - static int compare (Long_option_init const&,Long_option_init const&); - static String table_str (Long_option_init *); + static int compare (Long_option_init const &, Long_option_init const &); + static string table_string (Long_option_init *); }; - /** C++ for version of long_getopt. For processing GNU style command - line arguments. No pointer (return values, arguments) contents are - copied. - - TODO: handle - command - , and command -- - - argument reordering - */ -class Getopt_long { + line arguments. No pointer (return values, arguments) contents are + copied. + + TODO: handle + command - , and command -- + + argument reordering +*/ +class Getopt_long +{ /// the option info. const Long_option_init *option_a_; - int table_len_i_; - - /// if doing short option, arg_value_ch_a_a_[optind][optindind] is processed next. - int argument_index_i_; + int table_len_; - /// the option found - const Long_option_init *found_option_l_; + /// if doing short option, arg_value_char_a_a_[optind][optindind] is processed next. + int argument_index_; + /// the option found + const Long_option_init *found_option_; -public: +public: /** errorcodes: no error, argument expected, no argument expected, - unknown option, illegal argument (eg. int expected). */ + unknown option, illegal argument (eg. int expected). */ enum Errorcod { E_NOERROR = 0, E_ARGEXPECT, E_NOARGEXPECT, E_UNKNOWNOPTION, - E_ILLEGALARG } ; + E_ILLEGALARG }; /// argument. Set to 0 if not present - char const * optional_argument_ch_C_; + char const *optional_argument_str0_; /// current error status Errorcod error_; - /// arg_value_ch_a_a_[array_index_i_] will be processed next. - int array_index_i_; + /// arg_value_char_a_a_[array_index_] will be processed next. + int array_index_; /// the arguments - char **arg_value_ch_a_a_; + char **arg_value_char_a_a_; /// the arg. count - int argument_count_i_; + int argument_count_; - ostream *error_ostream_l_; + FILE *error_out_; public: /// get ready for processing next error. @@ -79,30 +84,28 @@ public: /// report an error and abort void report (Errorcod c); - /// return an integer (with err. detect) - long argument_to_i (); - - + long get_argument_index (); + /** - What to do with errors. - report messages on #*os#, and abort. - if #os# is null, then do not report nor abort, just set #error# - */ - - void seterror (ostream *os); + What to do with errors. + report messages on #*os#, and abort. + if #os# is null, then do not report nor abort, just set #error# + */ + + void seterror (FILE *os); /// construct: pass arguments and option info. - Getopt_long (int c, char **v, Long_option_init *lo); + Getopt_long (int c, char **v, Long_option_init *lo); - /** get the next option. - @return pointer to next option found. - 0 if error occurred, or next argument is no option. - */ + /** get the next option. + @return pointer to next option found. + 0 if error occurred, or next argument is no option. + */ const Long_option_init *operator () (); char const *current_arg (); - char const * get_next_arg (); + char const *get_next_arg (); }; #endif // GETOPT_LONG_HH