X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Futil%2Fgetopt.c;h=317bc074826aa8f0830789cea3ae76bed5092122;hb=83b19539f4d322b43683f5838b72e9ec2c8e6073;hp=2a35ab278852dcc5004e43143b7af31ef08e4c77;hpb=502af2167f7c218366666ca4944bd7cc54b5b19a;p=oweals%2Fgnunet.git diff --git a/src/util/getopt.c b/src/util/getopt.c index 2a35ab278..317bc0748 100644 --- a/src/util/getopt.c +++ b/src/util/getopt.c @@ -49,6 +49,10 @@ Copyright (C) 2006 Christian Grothoff #endif #endif +#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__) + +#define LOG_STRERROR(kind,syscall) GNUNET_log_from_strerror (kind, "util", syscall) + #if defined (WIN32) && !defined (__CYGWIN32__) /* It's not Unix, really. See? Capital letters. */ #include @@ -194,7 +198,8 @@ static char *posixly_correct; /* Avoid depending on library functions or files whose names are inconsistent. */ -char *getenv (); +char * +getenv (); static char * my_index (str, chr) @@ -218,7 +223,8 @@ my_index (str, chr) #if !defined (__STDC__) || !__STDC__ /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); +extern int +strlen (const char *); #endif /* not __STDC__ */ #endif /* __GNUC__ */ @@ -283,7 +289,8 @@ text_set_element (__libc_subinit, store_args_and_env); the new indices of the non-options in ARGV after they are moved. */ #if defined (__STDC__) && __STDC__ -static void exchange (char **); +static void +exchange (char **); #endif static void @@ -370,7 +377,8 @@ exchange (argv) /* Initialize the internal data when the first call is made. */ #if defined (__STDC__) && __STDC__ -static const char *_getopt_initialize (int, char *const *, const char *); +static const char * +_getopt_initialize (int, char *const *, const char *); #endif static const char * _getopt_initialize (argc, argv, optstring) @@ -410,8 +418,8 @@ _getopt_initialize (argc, argv, optstring) { if (nonoption_flags_max_len == 0) { - if (__getopt_nonoption_flags == NULL - || __getopt_nonoption_flags[0] == '\0') + if (__getopt_nonoption_flags == NULL || + __getopt_nonoption_flags[0] == '\0') nonoption_flags_max_len = -1; else { @@ -497,11 +505,9 @@ _getopt_initialize (argc, argv, optstring) long-named options. */ static int -GN_getopt_internal (int argc, - char *const *argv, - const char *optstring, - const struct GNoption *longopts, - int *longind, int long_only) +GN_getopt_internal (int argc, char *const *argv, const char *optstring, + const struct GNoption *longopts, int *longind, + int long_only) { static int __getopt_initialized = 0; static int GNopterr = 1; @@ -600,30 +606,29 @@ GN_getopt_internal (int argc, /* We have found another option-ARGV-element. * Skip the initial punctuation. */ - nextchar = (argv[GNoptind] + 1 - + (longopts != NULL && argv[GNoptind][1] == '-')); + nextchar = + (argv[GNoptind] + 1 + (longopts != NULL && argv[GNoptind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. - * + * * If long_only and the ARGV-element has the form "-f", where f is * a valid short option, don't consider it an abbreviated form of * a long option that starts with f. Otherwise there would be no * way to give the -f short option. - * + * * On the other hand, if there's a long option "fubar" and * the ARGV-element is "-fu", do consider that an abbreviation of * the long option, just like "--fu", and not "-f" with arg "u". - * + * * This distinction seems to be the most useful approach. */ - if (longopts != NULL - && (argv[GNoptind][1] == '-' - || (long_only - && (argv[GNoptind][2] - || !my_index (optstring, argv[GNoptind][1]))))) + if (longopts != NULL && + (argv[GNoptind][1] == '-' || + (long_only && + (argv[GNoptind][2] || !my_index (optstring, argv[GNoptind][1]))))) { char *nameend; const struct GNoption *p; @@ -641,8 +646,8 @@ GN_getopt_internal (int argc, for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { - if ((unsigned int) (nameend - nextchar) - == (unsigned int) strlen (p->name)) + if ((unsigned int) (nameend - nextchar) == + (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; @@ -664,8 +669,8 @@ GN_getopt_internal (int argc, if (ambig && !exact) { if (GNopterr) - fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[GNoptind]); + fprintf (stderr, _("%s: option `%s' is ambiguous\n"), argv[0], + argv[GNoptind]); nextchar += strlen (nextchar); GNoptind++; return '?'; @@ -688,14 +693,12 @@ GN_getopt_internal (int argc, if (argv[GNoptind - 1][1] == '-') /* --option */ fprintf (stderr, - _ - ("%s: option `--%s' does not allow an argument\n"), + _("%s: option `--%s' does not allow an argument\n"), argv[0], pfound->name); else /* +option or -option */ fprintf (stderr, - _ - ("%s: option `%c%s' does not allow an argument\n"), + _("%s: option `%c%s' does not allow an argument\n"), argv[0], argv[GNoptind - 1][0], pfound->name); } nextchar += strlen (nextchar); @@ -712,8 +715,7 @@ GN_getopt_internal (int argc, { if (GNopterr) { - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), + fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[GNoptind - 1]); } nextchar += strlen (nextchar); @@ -735,19 +737,19 @@ GN_getopt_internal (int argc, * or the option starts with '--' or is not a valid short * option, then it's an error. * Otherwise interpret it as a short option. */ - if (!long_only || argv[GNoptind][1] == '-' - || my_index (optstring, *nextchar) == NULL) + if (!long_only || argv[GNoptind][1] == '-' || + my_index (optstring, *nextchar) == NULL) { if (GNopterr) { if (argv[GNoptind][1] == '-') /* --option */ - fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); + fprintf (stderr, _("%s: unrecognized option `--%s'\n"), argv[0], + nextchar); else /* +option or -option */ - fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[GNoptind][0], nextchar); + fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), argv[0], + argv[GNoptind][0], nextchar); } nextchar = (char *) ""; GNoptind++; @@ -849,8 +851,8 @@ GN_getopt_internal (int argc, if (ambig && !exact) { if (GNopterr) - fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[GNoptind]); + fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), argv[0], + argv[GNoptind]); nextchar += strlen (nextchar); GNoptind++; return '?'; @@ -881,8 +883,7 @@ GN_getopt_internal (int argc, else { if (GNopterr) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), + fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[GNoptind - 1]); nextchar += strlen (nextchar); return optstring[0] == ':' ? ':' : '?'; @@ -930,8 +931,8 @@ GN_getopt_internal (int argc, if (GNopterr) { /* 1003.2 specifies the format of this message. */ - fprintf (stderr, - _("%s: option requires an argument -- %c\n"), argv[0], c); + fprintf (stderr, _("%s: option requires an argument -- %c\n"), + argv[0], c); } if (optstring[0] == ':') c = ':'; @@ -950,9 +951,7 @@ GN_getopt_internal (int argc, } static int -GNgetopt_long (int argc, - char *const *argv, - const char *options, +GNgetopt_long (int argc, char *const *argv, const char *options, const struct GNoption *long_options, int *opt_index) { return GN_getopt_internal (argc, argv, options, long_options, opt_index, 0); @@ -1028,9 +1027,9 @@ GNUNET_GETOPT_run (const char *binaryOptions, clpc.currentArgument = GNoptind - 1; if ((char) c == allOptions[i].shortName) { - cont = allOptions[i].processor (&clpc, - allOptions[i].scls, - allOptions[i].name, GNoptarg); + cont = + allOptions[i].processor (&clpc, allOptions[i].scls, + allOptions[i].name, GNoptarg); break; } }