diff options
Diffstat (limited to 'libg++/libg++/tests/tGetOpt.cc')
-rw-r--r-- | libg++/libg++/tests/tGetOpt.cc | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/libg++/libg++/tests/tGetOpt.cc b/libg++/libg++/tests/tGetOpt.cc new file mode 100644 index 0000000..c9eb7e7 --- /dev/null +++ b/libg++/libg++/tests/tGetOpt.cc @@ -0,0 +1,65 @@ + +#include <GetOpt.h> + +int +main (int argc, char **argv) +{ + int digit_optind = 0; + GetOpt getopt (argc, argv, "abc:d:0123456789"); + + while (1) + { + int this_option_optind = getopt.optind; + int ch; + if ((ch = getopt ()) == EOF) + break; + char c = char(ch); + switch (c) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value `%s'\n", getopt.optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } + } + + if (getopt.optind < argc) + { + printf ("non-option ARGV-elements: "); + while (getopt.optind < argc) + printf ("%s ", argv[getopt.optind++]); + printf ("\n"); + } + + return 0; +} + |