[Top][All Lists]
[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. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 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,
karl <=
- Prev by Date:
texinfo/po fr.po,1.4,1.5 pl.po,1.4,1.5
- Next by Date:
texinfo/lib Makefile.am,1.1.1.1,1.2
- Previous by thread:
texinfo/po fr.po,1.4,1.5 pl.po,1.4,1.5
- Next by thread:
texinfo/lib Makefile.am,1.1.1.1,1.2
- Index(es):