svn commit: trunk/uClibc/libc/unistd

vda at uclibc.org vda at uclibc.org
Fri Jun 6 03:24:45 UTC 2008


Author: vda
Date: 2008-06-05 20:24:45 -0700 (Thu, 05 Jun 2008)
New Revision: 22242

Log:
shrink getopt a bit by using smallints. Run tested (busybox testsuite)

    text           data     bss     dec     hex filename
-   2403             12      40    2455     997 libc/unistd/getopt.o
+   2388             12      28    2428     97c libc/unistd/getopt.o



Modified:
   trunk/uClibc/libc/unistd/getopt_int.h


Changeset:
Modified: trunk/uClibc/libc/unistd/getopt_int.h
===================================================================
--- trunk/uClibc/libc/unistd/getopt_int.h	2008-06-06 02:44:10 UTC (rev 22241)
+++ trunk/uClibc/libc/unistd/getopt_int.h	2008-06-06 03:24:45 UTC (rev 22242)
@@ -30,7 +30,13 @@
 /* Reentrant versions which can handle parsing multiple argument
    vectors at the same time.  */
 
+/* For __ordering member */
+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
@@ -38,22 +44,14 @@
      versions of getopt.  */
   int optind;
   int opterr;
-  int optopt;
   char *optarg;
+  smalluint optopt; /* we store characters here, a byte is enough */
 
   /* Internal members.  */
 
   /* True if the internal members have been initialized.  */
-  int __initialized;
+  smallint __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,
@@ -82,16 +80,20 @@
      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;
 
-  enum
-    {
-      REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-    } __ordering;
-
   /* If the POSIXLY_CORRECT environment variable is set.  */
-  int __posixly_correct;
+  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;
+
+
   /* Handle permutation of arguments.  */
 
   /* Describe the part of ARGV that contains non-options that have




More information about the uClibc-cvs mailing list