svn commit: trunk/uClibc/libc/unistd
bernds at uclibc.org
bernds at uclibc.org
Thu Jun 5 17:42:12 UTC 2008
Author: bernds
Date: 2008-06-05 10:42:11 -0700 (Thu, 05 Jun 2008)
New Revision: 22239
Log:
Revert revision 22027 which totally broke getopt.
Modified:
trunk/uClibc/libc/unistd/getopt.c
trunk/uClibc/libc/unistd/getopt_int.h
Changeset:
Modified: trunk/uClibc/libc/unistd/getopt.c
===================================================================
--- trunk/uClibc/libc/unistd/getopt.c 2008-06-05 16:29:50 UTC (rev 22238)
+++ trunk/uClibc/libc/unistd/getopt.c 2008-06-05 17:42:11 UTC (rev 22239)
@@ -162,6 +162,10 @@
int optopt = '?';
+/* Keep a global copy of all internal members of getopt_data. */
+
+static struct _getopt_data getopt_data;
+
#ifndef __GNU_LIBRARY__
@@ -1154,9 +1158,7 @@
const struct option *longopts, int *longind, int long_only)
{
int result;
- struct _getopt_data getopt_data;
- memset(&getopt_data, 0, sizeof(getopt_data));
getopt_data.optind = optind;
getopt_data.opterr = opterr;
Modified: trunk/uClibc/libc/unistd/getopt_int.h
===================================================================
--- trunk/uClibc/libc/unistd/getopt_int.h 2008-06-05 16:29:50 UTC (rev 22238)
+++ trunk/uClibc/libc/unistd/getopt_int.h 2008-06-05 17:42:11 UTC (rev 22239)
@@ -30,30 +30,30 @@
/* Reentrant versions which can handle parsing multiple argument
vectors at the same time. */
-enum
- {
- REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
- };
-
/* 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. */
- char *optarg;
int optind;
int opterr;
int optopt;
+ char *optarg;
/* Internal members. */
/* True if the internal members have been initialized. */
- smallint __initialized;
+ int __initialized;
- /* If the POSIXLY_CORRECT environment variable is set. */
- smallint __posixly_correct;
+ /* 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,
@@ -82,16 +82,16 @@
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. */
- smallint __ordering;
- /* 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.
+ enum
+ {
+ REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
+ } __ordering;
- If this is zero, or a null string, it means resume the scan
- by advancing to the next ARGV-element. */
- char *__nextchar;
+ /* 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
More information about the uClibc-cvs
mailing list