Skip to content
Snippets Groups Projects
Select Git revision
  • ff68c47c0c47d84f1b5ca6886edb7659af6ebd95
  • master default
  • wip-slh-dsa-sha2-128s
  • master-updates
  • release-3.10-fixes
  • getopt-prototype
  • fix-bcrypt-warning
  • refactor-hmac
  • wip-use-alignas
  • trim-sha3-context
  • fix-gitlab-ci
  • check-fat-emulate
  • delete-digest_func-size
  • slh-dsa-shake-128f-nettle
  • slh-dsa-shake-128s-nettle
  • slh-dsa-shake-128s
  • delete-openpgp
  • ppc64-sha512
  • delete-md5-compat
  • cleanup-hmac-tests
  • ppc64-sha256
  • nettle_3.10.2_release_20250626
  • nettle_3.10.1_release_20241230
  • nettle_3.10_release_20240616
  • nettle_3.10rc2
  • nettle_3.10rc1
  • nettle_3.9.1_release_20230601
  • nettle_3.9_release_20230514
  • nettle_3.8.1_release_20220727
  • nettle_3.8_release_20220602
  • nettle_3.7.3_release_20210606
  • nettle_3.7.2_release_20210321
  • nettle_3.7.1_release_20210217
  • nettle_3.7_release_20210104
  • nettle_3.7rc1
  • nettle_3.6_release_20200429
  • nettle_3.6rc3
  • nettle_3.6rc2
  • nettle_3.6rc1
  • nettle_3.5.1_release_20190627
  • nettle_3.5_release_20190626
41 results

getopt_int.h

Blame
  • getopt_int.h 4.61 KiB
    /* Internal declarations for getopt.
       Copyright (C) 1989-2014 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, see
       <http://www.gnu.org/licenses/>.  */
    
    #ifndef _GETOPT_INT_H
    #define _GETOPT_INT_H	1
    
    extern int _getopt_internal (int ___argc, char *const *___argv,
    			     const char *__shortopts,
    		             const struct option *__longopts, int *__longind,
    			     int __long_only, int posixly_correct);
    
    
    /* Reentrant versions which can handle parsing multiple argument
       vectors at the same time.  */
    
    /* Data type for reentrant functions.  */
    struct _getopt_data
    {
      /* These have exactly the same meaning as the corresponding global
         variables, except that they are used for the reentrant
         versions of getopt.  */
      int optind;
      int opterr;
      int optopt;
      char *optarg;
    
      /* Internal members.  */
    
      /* True if the internal members have been initialized.  */
      int __initialized;
    
      /* The next char to be scanned in the option-element
         in which the last option character we returned was found.
         This allows us to pick up the scan where we left off.
    
         If this is zero, or a null string, it means resume the scan
         by advancing to the next ARGV-element.  */
      char *__nextchar;
    
      /* Describe how to deal with options that follow non-option ARGV-elements.
    
         If the caller did not specify anything,
         the default is REQUIRE_ORDER if the environment variable
         POSIXLY_CORRECT is defined, PERMUTE otherwise.
    
         REQUIRE_ORDER means don't recognize them as options;
         stop option processing when the first non-option is seen.
         This is what Unix does.
         This mode of operation is selected by either setting the environment
         variable POSIXLY_CORRECT, or using `+' as the first character
         of the list of option characters.
    
         PERMUTE is the default.  We permute the contents of ARGV as we
         scan, so that eventually all the non-options are at the end.
         This allows options to be given in any order, even with programs
         that were not written to expect this.
    
         RETURN_IN_ORDER is an option available to programs that were
         written to expect options and other ARGV-elements in any order
         and that care about the ordering of the two.  We describe each
         non-option ARGV-element as if it were the argument of an option
         with character code 1.  Using `-' as the first character of the
         list of option characters selects this mode of operation.
    
         The special argument `--' forces an end of option-scanning regardless
         of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
         `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
    
      enum
        {
          REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
        } __ordering;
    
      /* If the POSIXLY_CORRECT environment variable is set.  */
      int __posixly_correct;
    
    
      /* Handle permutation of arguments.  */
    
      /* Describe the part of ARGV that contains non-options that have
         been skipped.  `first_nonopt' is the index in ARGV of the first
         of them; `last_nonopt' is the index after the last of them.  */
    
      int __first_nonopt;
      int __last_nonopt;
    
    #if defined _LIBC && defined USE_NONOPTION_FLAGS
      int __nonoption_flags_max_len;
      int __nonoption_flags_len;
    # endif
    };
    
    /* The initializer is necessary to set OPTIND and OPTERR to their
       default values and to clear the initialization flag.  */
    #define _GETOPT_DATA_INITIALIZER	{ 1, 1 }
    
    extern int _getopt_internal_r (int ___argc, char *const *___argv,
    			       const char *__shortopts,
    			       const struct option *__longopts, int *__longind,
    			       int __long_only, struct _getopt_data *__data,
    			       int posixly_correct);
    
    extern int _getopt_long_r (int ___argc, char *const *___argv,
    			   const char *__shortopts,
    			   const struct option *__longopts, int *__longind,
    			   struct _getopt_data *__data);
    
    extern int _getopt_long_only_r (int ___argc, char *const *___argv,
    				const char *__shortopts,
    				const struct option *__longopts,
    				int *__longind,
    				struct _getopt_data *__data);
    
    #endif /* getopt_int.h */