texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

texinfo/lib getopt_int.h,NONE,1.1 getopt.c,1.1.1.1,1.2 getopt.h,1.1.1.1,


From: karl
Subject: texinfo/lib getopt_int.h,NONE,1.1 getopt.c,1.1.1.1,1.2 getopt.h,1.1.1.1,1.2 getopt1.c,1.1.1.1,1.2
Date: Thu, 11 Mar 2004 14:08:00 +0100

Update of /cvsroot/texinfo/texinfo/lib
In directory sheep:/tmp/cvs-serv29021

Modified Files:
        getopt.c getopt.h getopt1.c 
Added Files:
        getopt_int.h 
Log Message:
srclist.update

--- NEW FILE: getopt_int.h ---
/* Internal declarations for getopt.
   Copyright (C) 1989-1994,1996-1999,2001,2003,2004
   Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program 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 General Public License for more details.

   You should have received a copy of the GNU General Public License along
   with this program; if not, write to the Free Software Foundation,
   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */

#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);


/* 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);

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 */

Index: getopt.c
===================================================================
RCS file: /cvsroot/texinfo/texinfo/lib/getopt.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** getopt.c    6 Dec 2003 01:33:17 -0000       1.1.1.1
--- getopt.c    11 Mar 2004 13:07:58 -0000      1.2
***************
*** 3,11 ****
     "Keep this file name-space clean" means, talk to address@hidden
     before changing it!
! 
!    Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
!    1996, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation,
!    Inc.
! 
     This file is part of the GNU C Library.
  
--- 3,8 ----
[...1424 lines suppressed...]
+ 
+ int
+ _getopt_internal (int argc, char *const *argv, const char *optstring,
+                 const struct option *longopts, int *longind, int long_only)
+ {
+   int result;
+ 
+   getopt_data.optind = optind;
+   getopt_data.opterr = opterr;
+ 
+   result = _getopt_internal_r (argc, argv, optstring, longopts,
+                              longind, long_only, &getopt_data);
+ 
+   optind = getopt_data.optind;
+   optarg = getopt_data.optarg;
+   optopt = getopt_data.optopt;
+ 
+   return result;
  }
  

Index: getopt.h
===================================================================
RCS file: /cvsroot/texinfo/texinfo/lib/getopt.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** getopt.h    6 Dec 2003 01:33:18 -0000       1.1.1.1
--- getopt.h    11 Mar 2004 13:07:58 -0000      1.2
***************
*** 1,7 ****
  /* Declarations for getopt.
! 
!    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998,
!    1999, 2001, 2003 Free Software Foundation, Inc.
! 
     This file is part of the GNU C Library.
  
--- 1,5 ----
  /* Declarations for getopt.
!    Copyright (C) 1989-1994,1996-1999,2001,2003,2004
!    Free Software Foundation, Inc.
     This file is part of the GNU C Library.
  
***************
*** 37,40 ****
--- 35,49 ----
  #endif
  
+ #ifndef __THROW
+ # ifndef __GNUC__
+ #  define __GNUC_PREREQ(maj, min) (0)
+ # endif
+ # if defined __cplusplus && __GNUC_PREREQ (2,8)
+ #  define __THROW     throw ()
+ # else
+ #  define __THROW
+ # endif
+ #endif
+ 
  #ifdef        __cplusplus
  extern "C" {
***************
*** 140,144 ****
     differences in the consts, in stdlib.h.  To avoid compilation
     errors, only prototype getopt for the GNU C library.  */
! extern int getopt (int ___argc, char *const *___argv, const char 
*__shortopts);
  #else /* not __GNU_LIBRARY__ */
  extern int getopt ();
--- 149,154 ----
     differences in the consts, in stdlib.h.  To avoid compilation
     errors, only prototype getopt for the GNU C library.  */
! extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
!        __THROW;
  #else /* not __GNU_LIBRARY__ */
  extern int getopt ();
***************
*** 148,161 ****
  extern int getopt_long (int ___argc, char *const *___argv,
                        const char *__shortopts,
!                       const struct option *__longopts, int *__longind);
  extern int getopt_long_only (int ___argc, char *const *___argv,
                             const char *__shortopts,
!                            const struct option *__longopts, int *__longind);
  
- /* Internal only.  Users should not call this directly.  */
- extern int _getopt_internal (int ___argc, char *const *___argv,
-                            const char *__shortopts,
-                            const struct option *__longopts, int *__longind,
-                            int __long_only);
  #endif
  
--- 158,168 ----
  extern int getopt_long (int ___argc, char *const *___argv,
                        const char *__shortopts,
!                       const struct option *__longopts, int *__longind)
!        __THROW;
  extern int getopt_long_only (int ___argc, char *const *___argv,
                             const char *__shortopts,
!                            const struct option *__longopts, int *__longind)
!        __THROW;
  
  #endif
  

Index: getopt1.c
===================================================================
RCS file: /cvsroot/texinfo/texinfo/lib/getopt1.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** getopt1.c   6 Dec 2003 01:33:18 -0000       1.1.1.1
--- getopt1.c   11 Mar 2004 13:07:58 -0000      1.2
***************
*** 1,7 ****
  /* getopt_long and getopt_long_only entry points for GNU getopt.
! 
!    Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996,
!    1997, 1998, 2003 Free Software Foundation, Inc.
! 
     This file is part of the GNU C Library.
  
--- 1,5 ----
  /* getopt_long and getopt_long_only entry points for GNU getopt.
!    Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98,2004
!      Free Software Foundation, Inc.
     This file is part of the GNU C Library.
  
***************
*** 29,32 ****
--- 27,31 ----
  # include "getopt.h"
  #endif
+ #include "getopt_int.h"
  
  #include <stdio.h>
***************
*** 62,74 ****
  
  int
! getopt_long (int argc,
!            char *const *argv,
!            const char *options,
!            const struct option *long_options,
!            int *opt_index)
  {
    return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
  }
  
  /* Like getopt_long, but '-' as well as '--' can indicate a long option.
     If an option that starts with '-' (not '--') doesn't match a long option,
--- 61,79 ----
  
  int
! getopt_long (int argc, char *const *argv, const char *options,
!            const struct option *long_options, int *opt_index)
  {
    return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
  }
  
+ int
+ _getopt_long_r (int argc, char *const *argv, const char *options,
+               const struct option *long_options, int *opt_index,
+               struct _getopt_data *d)
+ {
+   return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+                            0, d);
+ }
+ 
  /* Like getopt_long, but '-' as well as '--' can indicate a long option.
     If an option that starts with '-' (not '--') doesn't match a long option,
***************
*** 77,93 ****
  
  int
! getopt_long_only (int argc,
!                 char *const *argv,
!                 const char *options,
!                 const struct option *long_options,
!                 int *opt_index)
  {
    return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
  }
  
! # ifdef _LIBC
! libc_hidden_def (getopt_long)
! libc_hidden_def (getopt_long_only)
! # endif
  
  #endif        /* Not ELIDE_CODE.  */
--- 82,99 ----
  
  int
! getopt_long_only (int argc, char *const *argv, const char *options,
!                 const struct option *long_options, int *opt_index)
  {
    return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
  }
  
! int
! _getopt_long_only_r (int argc, char *const *argv, const char *options,
!                    const struct option *long_options, int *opt_index,
!                    struct _getopt_data *d)
! {
!   return _getopt_internal_r (argc, argv, options, long_options, opt_index,
!                            1, d);
! }
  
  #endif        /* Not ELIDE_CODE.  */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]