diff options
author | Brian Inglis <Brian.Inglis@SystematicSW.ab.ca> | 2017-08-29 11:25:43 -0600 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2017-08-29 21:10:06 +0200 |
commit | d8e2463c75d946f30af19705ad922085185784a5 (patch) | |
tree | 5b9490e78e8b72d6079e4ed9084de7212a28ffeb /winsup/cygwin/libc | |
parent | 4dfaef81414f006377ed235a995c7b2d8dcdcb95 (diff) | |
download | cygnal-d8e2463c75d946f30af19705ad922085185784a5.tar.gz cygnal-d8e2463c75d946f30af19705ad922085185784a5.tar.bz2 cygnal-d8e2463c75d946f30af19705ad922085185784a5.zip |
winsup/cygwin/libc/strptime.cc(__strptime) fix %F width
Diffstat (limited to 'winsup/cygwin/libc')
-rw-r--r-- | winsup/cygwin/libc/strptime.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/winsup/cygwin/libc/strptime.cc b/winsup/cygwin/libc/strptime.cc index 7c6cc2024..081aca385 100644 --- a/winsup/cygwin/libc/strptime.cc +++ b/winsup/cygwin/libc/strptime.cc @@ -413,13 +413,15 @@ literal: case 'F': /* The date as "%Y-%m-%d". */ { LEGAL_ALT(0); - ymd |= SET_YMD; char *tmp = __strptime ((const char *) bp, "%Y-%m-%d", tm, era_info, alt_digits, locale); - if (tmp && (uint) (tmp - (char *) bp) > width) + /* width max chars converted, default 10, < 6 => 6 */ + if (tmp && (char *) bp + + (!width ? 10 : width < 6 ? 6 : width) < tmp) return NULL; bp = (const unsigned char *) tmp; + ymd |= SET_YMD; continue; } |