History log of /freebsd-9.3-release/lib/libc/stdtime/strptime.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 235785 22-May-2012 theraven

MFC the xlocale implementation.

Merged revisions: 227487,227753,227807,227818,227999,228002,228875,230156,231673,232498,232601,232620,232626,232926-232927,232929,232931,232935,233173,233600,234573,234578,235239

This currently defines __NO_TLS on ARM (unlike head), because the required
support function has not been MFC'd.


# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 207830 09-May-2010 edwin

strptime(3) confused July with June with the fr_FR locale.

When parsing the month "juillet" (abbr "jul"), %B recognized it as
"juin" (abbr "jui") because the full name of the month names is
checked at the same time as the abbrevation.

The new behaviour checks the full names first before checking the
abbrevation names.

PR: kern/141939
Submitted by: Denis Chatelain <denis@tikuts.com>
MFC after: 1 week


# 196752 02-Sep-2009 ache

Use (unsigned char) cast for ctype macro


# 195015 25-Jun-2009 delphij

Implement %z for strptime.

PR: kern/63064
Submitted by: Stefan `Sec` Zehl <sec 42 org> (with some small changes)
MFC after: 1 month


# 122830 17-Nov-2003 nectar

Detect range errors when using the %s specifier. Previously, LONG_MAX
was rejected as a range error, while any values less than LONG_MIN
were silently substituted with LONG_MIN. Furthermore, on some
platforms `time_t' has less range than `long' (e.g. alpha), which may
give incorrect results when parsing some strings.


# 114285 30-Apr-2003 mtm

Backout my changes in rev. 1.32 and 1.33. There is some code that depends
on the previous behaviour. This also brings strptime(3) behaviour back in line
with the other BSDs.

Approved by: markm (mentor)


# 113104 05-Apr-2003 mtm

Zero out the struct tm supplied by the caller. Otherwise,
strange things might happen when garbage values in the struct
get passed in to localtime_r() and family.

Noticed by: marcus
Approved by: markm (mentor)(implicit)


# 112787 29-Mar-2003 mtm

Fill in the rest of the fields in the resulting struct tm
from strptime(3). Previously, they would get filled only
for the %s specifier and as a side effect of using the
the %Z specifier with a GMT time zone.

PR: misc/48993
Approved by: markm (mentor)
Silence on: -standards


# 112156 12-Mar-2003 mtm

Ditch a static global and the mutex that protected it. Achieve the
desired strptime(3) reentrancy by adding an extra argument to _strptime()
instead.

Approved by: markm (mentor)
MFC: 4 weeks


# 111010 16-Feb-2003 nectar

Eliminate 61 warnings emitted at WARNS=2 (leaving 53 to go).
Only warnings that could be fixed without changing the generated object
code and without restructuring the source code have been handled.

Reviewed by: /sbin/md5


# 103012 06-Sep-2002 tjr

Style: One space between "restrict" qualifier and "*".


# 101886 14-Aug-2002 robert

- Add the C99 'restrict' qualifier using the '__restrict' macro to
function prototype and definition of strptime(3).
- Update the manual page.


# 92986 22-Mar-2002 obrien

Fix the style of the SCM ID's.
I believe have made all of libc .c's as consistent as possible.


# 79664 13-Jul-2001 dd

Recognize the %s format.

Submitted by: Thomas Zenker <thz@lennartz-electronic.de> and
Maxim Konovalov <maxim@macomnet.ru>, respectively
Reviewed by: -audit


# 74578 21-Mar-2001 ache

Get rid of non-standard %E[Ff] formats, userland apps already fixed


# 74412 18-Mar-2001 ache

Relax local FreeBSD restrictions on 3 chars abbrev. name length and %c format
since they not allows POSIXly legal locale data. Currently, if relaxed form
POSIXly legal locale data will be used right now, some programs will be broken,
but it means that either locale data or programs must be fixed, not the library.

Introduce non-standard md_order (month/day order) locale field to be used later
via nl_langinfo(). Currently %EF and %Ef emulated using this field, but they
planned for remove in future in favour of nl_langinfo() test field.

Implement %F per POSIX


# 74409 18-Mar-2001 ache

Make 'A' and 'a', 'B' and 'b' the same, per POSIX


# 73359 02-Mar-2001 ache

Implement ampm_fmt (%r) per POSIX


# 72183 08-Feb-2001 ache

Hardcode c_fmt in a different way since used in nl_langinfo now


# 72168 08-Feb-2001 phantom

Catch up to latest chanage in timelocal structures exporting.


# 71579 24-Jan-2001 deischen

Remove _THREAD_SAFE and make libc thread-safe by default by
adding (weak definitions to) stubs for some of the pthread
functions. If the threads library is linked in, the real
pthread functions will pulled in.

Use the following convention for system calls wrapped by the
threads library:
__sys_foo - actual system call
_foo - weak definition to __sys_foo
foo - weak definition to __sys_foo

Change all libc uses of system calls wrapped by the threads
library from foo to _foo. In order to define the prototypes
for _foo(), we introduce namespace.h and un-namespace.h
(suggested by bde). All files that need to reference these
system calls, should include namespace.h before any standard
includes, then include un-namespace.h after the standard
includes and before any local includes. <db.h> is an exception
and shouldn't be included in between namespace.h and
un-namespace.h namespace.h will define foo to _foo, and
un-namespace.h will undefine foo.

Try to eliminate some of the recursive calls to MT-safe
functions in libc/stdio in preparation for adding a mutex
to FILE. We have recursive mutexes, but would like to avoid
using them if possible.

Remove uneeded includes of <errno.h> from a few files.

Add $FreeBSD$ to a few files in order to pass commitprep.

Approved by: -arch


# 67632 26-Oct-2000 ache

Force "%c" to be ctime-compatible

Submitted by: ru


# 54394 10-Dec-1999 sheldonh

Null commit:

The commit message for rev 1.16 was incorrect with respect to the %e
and %l specifiers, which _can_ be fixed by correcting excessive
whitespace-gobbling.


# 54316 08-Dec-1999 sheldonh

Prevent digit-gobbling for all but %l and %e, which can't be fixed.
Discuss in the BUGS section of the manpage, problems involved with
the use of %C, %e, %l, %p, %U and %W.

PR: 13901
Reported by: scott@chronis.pobox.com


# 54301 08-Dec-1999 sheldonh

Accept 12 for %l, because it's logical to expect "%l:%M" to work for
"12:00" and because strftime(3) does the same.


# 53960 30-Nov-1999 ache

%Ex -> %Ef to not conflict with POSIX
Add %EF (long months name / day order)
Check that O and E not intermixed
Add missing POSIX extension to example


# 53942 30-Nov-1999 ache

Stricter checking %A vs %a


# 53941 30-Nov-1999 ache

Fix %C handling
Use locale for %c
Add %+
Add %Ex and %OB


# 53083 10-Nov-1999 sheldonh

Decremement by 1 the value taken for %j before assigning it to tm_yday,
which is zero-based.

Correct the range checking for the value taken for %S.

Add %w for the day of the week (0-6).

Accept (but do nothing with) %U and %W. The comment for this change was
taken from NetBSD.

These changes were made after several failed attempts to contact the
author of our strptime.c .

PR: 10131
Submitted by: tadf@kt.rim.or.jp (Tadayoshi Funaba)


# 52860 04-Nov-1999 ache

Add unsigned char cast to isupper


# 50476 27-Aug-1999 peter

$Id$ -> $FreeBSD$


# 48614 06-Jul-1999 obrien

Make the new %Z addition thread-safe.


# 48550 04-Jul-1999 obrien

Actually impliment the documented %Z specifier.


# 46051 25-Apr-1999 wes

Re-fixed to start at 1969 per the actual Posix requirement. Also
fixed a typo on the man page.


# 46042 24-Apr-1999 wes

Bring two-digit years up-to-date with POSIX requirements.
70-00 are intepreted in the 20th century; 01-69 in the
21st century. (Yes, 2000 is the last year of the 20th
century, not the first year of the 21st.)

Submitted by: Sergey Babkin <babkin@bellatlantic.net>


# 39113 12-Sep-1998 dt

Change return type of strptime from const char* to char*.
const char* was wrong and nonstandard.


# 28164 13-Aug-1997 ache

Add unsigned char cast to all ctype calls


# 28021 09-Aug-1997 joerg

Import strptime(3) into libc. We've got permission by Kevin Ruddy to
modify the original `no modifications' copyright message, and i've
included his mail into the source file.

The common localization functions between strptime(3) and strftime(3)
have been broken out into timelocal.[ch].


# 28020 09-Aug-1997 joerg

This commit was generated by cvs2svn to compensate for changes in r28019,
which included commits to RCS files with non-trunk default branches.


# 28019 09-Aug-1997 joerg

Clean import of strptime(3) onto a vendor branch.

Submitted by: Powerdog Industries <kevin.ruddy@powerdog.com>