aboutsummaryrefslogtreecommitdiff
path: root/time/strptime_l.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-07-28 19:10:22 +0000
committerUlrich Drepper <drepper@redhat.com>2007-07-28 19:10:22 +0000
commitae1ad762f0687afb37761085cb6e83305afe4521 (patch)
tree973b7a88bdce24bdb712ad21f82a569900e7a733 /time/strptime_l.c
parentfa69dc9caf8fff3e7ebb6da6dbbe144b314277f4 (diff)
downloadglibc-ae1ad762f0687afb37761085cb6e83305afe4521.zip
glibc-ae1ad762f0687afb37761085cb6e83305afe4521.tar.gz
glibc-ae1ad762f0687afb37761085cb6e83305afe4521.tar.bz2
[BZ #4772]
* time/strptime_l.c (__strptime_internal): Silently ignore strftime modifiers and field width in recursive calls.
Diffstat (limited to 'time/strptime_l.c')
-rw-r--r--time/strptime_l.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/time/strptime_l.c b/time/strptime_l.c
index 0305fd5..59a557c 100644
--- a/time/strptime_l.c
+++ b/time/strptime_l.c
@@ -330,6 +330,18 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM)
}
++fmt;
+ if (statep != NULL)
+ {
+ /* In recursive calls silently discard strftime modifiers. */
+ while (*fmt == '-' || *fmt == '_' || *fmt == '0'
+ || *fmt == '^' || *fmt == '#')
+ ++fmt;
+
+ /* And field width. */
+ while (*fmt >= '0' && *fmt <= '9')
+ ++fmt;
+ }
+
#ifndef _NL_CURRENT
/* We need this for handling the `E' modifier. */
start_over: