Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2008-02-12 20:20:09 +0300
committerJeff Johnston <jjohnstn@redhat.com>2008-02-12 20:20:09 +0300
commitf46f40b54e6993356a87a258abca4cb570cbed59 (patch)
treee209547ea126decae44a4d40f5940195aee98426
parent025ce65fcbd2f1e783b86d9708031a1ea7a7e172 (diff)
2008-02-12 Peter Rosin <peda@lysator.liu.se>
* libc/stdlib/getopt.c (getopt_internal): Handle optional arguments better for long options and short options not appearing as the first option in a sequence.
-rw-r--r--newlib/ChangeLog6
-rw-r--r--newlib/libc/stdlib/getopt.c9
2 files changed, 8 insertions, 7 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index b20a7ad1c..bf077bf62 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-12 Peter Rosin <peda@lysator.liu.se>
+
+ * libc/stdlib/getopt.c (getopt_internal): Handle optional
+ arguments better for long options and short options not
+ appearing as the first option in a sequence.
+
2008-02-11 Patrick Mansfield <patmans@us.ibm.com>
* libc/machine/spu/straddr.h: New file, supplies _straddr.
diff --git a/newlib/libc/stdlib/getopt.c b/newlib/libc/stdlib/getopt.c
index 06e378170..09952db19 100644
--- a/newlib/libc/stdlib/getopt.c
+++ b/newlib/libc/stdlib/getopt.c
@@ -308,13 +308,8 @@ getopt_internal (int argc, char *const argv[], const char *shortopts,
case OPTIONAL_ARG:
if (*possible_arg == '=')
possible_arg++;
- if (*possible_arg != '\0')
- {
- optarg = possible_arg;
- optwhere = 1;
- }
- else
- optarg = NULL;
+ optarg = (*possible_arg != '\0') ? possible_arg : NULL;
+ optwhere = 1;
break;
case REQUIRED_ARG:
if (*possible_arg == '=')