"Fossies" - the Fresh Open Source Software Archive

Member "libextractor-1.11/src/main/getopt.h" (30 Jan 2021, 4708 Bytes) of package /linux/privat/libextractor-1.11.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "getopt.h" see the Fossies "Dox" file reference documentation.

    1 /* Declarations for getopt.
    2    Copyright Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
    3 
    4 NOTE: The canonical source of this file is maintained with the GNU C Library.
    5 Bugs can be reported to bug-glibc@prep.ai.mit.edu.
    6 
    7 This program is free software; you can redistribute it and/or modify it
    8 under the terms of the GNU General Public License as published by the
    9 Free Software Foundation; either version 2, or (at your option) any
   10 later version.
   11 
   12 This program is distributed in the hope that it will be useful,
   13 but WITHOUT ANY WARRANTY; without even the implied warranty of
   14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   15 GNU General Public License for more details.
   16 
   17 You should have received a copy of the GNU General Public License
   18 along with this program; if not, write to the Free Software
   19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
   20 USA.  */
   21 
   22 #ifndef _GETOPT_H
   23 #define _GETOPT_H 1
   24 
   25 #include "config.h"
   26 
   27 #ifdef  __cplusplus
   28 extern "C" {
   29 #endif
   30 
   31 /* For communication from `getopt' to the caller.
   32    When `getopt' finds an option that takes an argument,
   33    the argument value is returned here.
   34    Also, when `ordering' is RETURN_IN_ORDER,
   35    each non-option ARGV-element is returned here.  */
   36 
   37 extern char *optarg;
   38 
   39 /* Index in ARGV of the next element to be scanned.
   40    This is used for communication to and from the caller
   41    and for communication between successive calls to `getopt'.
   42 
   43    On entry to `getopt', zero means this is the first call; initialize.
   44 
   45    When `getopt' returns -1, this is the index of the first of the
   46    non-option elements that the caller should itself scan.
   47 
   48    Otherwise, `optind' communicates from one call to the next
   49    how much of ARGV has been scanned so far.  */
   50 
   51 extern int optind;
   52 
   53 /* Callers store zero here to inhibit the error message `getopt' prints
   54    for unrecognized options.  */
   55 
   56 extern int opterr;
   57 
   58 /* Set to an option character which was unrecognized.  */
   59 
   60 extern int optopt;
   61 
   62 /* Describe the long-named options requested by the application.
   63    The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
   64    of `struct option' terminated by an element containing a name which is
   65    zero.
   66 
   67    The field `has_arg' is:
   68    no_argument      (or 0) if the option does not take an argument,
   69    required_argument    (or 1) if the option requires an argument,
   70    optional_argument  (or 2) if the option takes an optional argument.
   71 
   72    If the field `flag' is not NULL, it points to a variable that is set
   73    to the value given in the field `val' when the option is found, but
   74    left unchanged if the option is not found.
   75 
   76    To have a long-named option do something other than set an `int' to
   77    a compiled-in constant, such as set a value from `optarg', set the
   78    option's `flag' field to zero and its `val' field to a nonzero
   79    value (the equivalent single-letter option character, if there is
   80    one).  For long options that have a zero `flag' field, `getopt'
   81    returns the contents of the `val' field.  */
   82 
   83 struct option
   84 {
   85 #if defined (__STDC__) && __STDC__
   86   const char *name;
   87 #else
   88   char *name;
   89 #endif
   90   /* has_arg can't be an enum because some compilers complain about
   91      type mismatches in all the code that assumes it is an int.  */
   92   int has_arg;
   93   int *flag;
   94   int val;
   95 };
   96 
   97 /* Names for the values of the `has_arg' field of `struct option'.  */
   98 
   99 #define no_argument   0
  100 #define required_argument 1
  101 #define optional_argument 2
  102 
  103 #if defined (__STDC__) && __STDC__
  104 #ifdef __GNU_LIBRARY__
  105 /* Many other libraries have conflicting prototypes for getopt, with
  106    differences in the consts, in stdlib.h.  To avoid compilation
  107    errors, only prototype getopt for the GNU C library.  */
  108 extern int getopt (int argc, char *const *argv, const char *shortopts);
  109 
  110 #else /* not __GNU_LIBRARY__ */
  111 extern int getopt ();
  112 
  113 #endif /* __GNU_LIBRARY__ */
  114 extern int getopt_long (int argc, char *const *argv, const char *shortopts,
  115                         const struct option *longopts, int *longind);
  116 
  117 extern int getopt_long_only (int argc, char *const *argv,
  118                              const char *shortopts,
  119                              const struct option *longopts, int *longind);
  120 
  121 /* Internal only.  Users should not call this directly.  */
  122 extern int _getopt_internal (int argc, char *const *argv,
  123                              const char *shortopts,
  124                              const struct option *longopts, int *longind,
  125                              int long_only);
  126 
  127 #else /* not __STDC__ */
  128 extern int getopt ();
  129 
  130 extern int getopt_long ();
  131 
  132 extern int getopt_long_only ();
  133 
  134 extern int _getopt_internal ();
  135 
  136 #endif /* __STDC__ */
  137 
  138 #ifdef  __cplusplus
  139 }
  140 #endif
  141 
  142 #endif /* _GETOPT_H */