freebsd-skq/lib
Peter Wemm ee4dc2a402 struct tm.tm_year is listed as 'years since 1900', and is signed. On
64 bit systems, years roughly -2^31 through 2^31 can be represented in
time_t without any trouble.  32 bit time_t systems only range from
roughly 1902 through 2038.  As a consequence, none of the date munging
code for all the various calendar tweaks before then is present.  There
are other problems including the fact that there was no 'year zero' and
so on.  So rather than get excited about trying to figure out when the
calendar jumped by two weeks etc, simply disallow negative (ie: prior to
1900) years.

This happens to have an important side effect.  If you bzero a 'struct
tm', it corresponds to 'Jan 0, 1900, 00:00 GMT'.  This happens to be
representable (after canonification) in 64 bit time_t space.  Zero tm
structs are generally an error and mktime normally returns -1 for them.
Interestingly, it tries to canonify the 'jan 0' to 'dec 31, 1899', ie:
year -1.  This conveniently trips the negative year test above, which
means we can trivially detect the null 'tm' struct.

This actually tripped up code at work. :-/  (Don't ask)
2004-08-24 00:15:37 +00:00
..
compat Update with the 4.9 pam modules, and add pam_opieaccess.so to the mix. 2003-12-07 03:02:27 +00:00
csu Back out the call to _init_tls() - something is broken there and it 2004-08-21 08:22:00 +00:00
libalias Fix outgoing ICMP on global instance. 2004-08-14 14:21:09 +00:00
libarchive Eliminate reliance on non-portable <err.h> by implementing a very 2004-08-14 03:45:45 +00:00
libatm Use WARNS?=3 for these in the arm case for now, due to toolchain issues. 2004-05-14 13:31:21 +00:00
libbind
libbluetooth Unbreak a whatis(1) entry by fixing the NAME section. 2004-07-05 16:32:30 +00:00
libbsnmp Link to the build again. The problem was that we need a new 2004-08-11 16:47:12 +00:00
libbz2 Remove MAINTAINER lines. 2003-06-14 19:32:52 +00:00
libc struct tm.tm_year is listed as 'years since 1900', and is signed. On 2004-08-24 00:15:37 +00:00
libc_r Avoid using void pointers in additive expressions. 2004-08-14 17:46:10 +00:00
libcalendar Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libcam Change a couple of comments so that GCC doesn't think that they contain 2004-07-29 15:35:45 +00:00
libcom_err
libcompat Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libcrypt Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libdevinfo Enclose .Fa fn with ``The ... function'' at the beginning of sentences. 2004-07-26 19:35:20 +00:00
libdevstat Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libdisk Don't use type unknown for partitions that we don't care about because 2004-08-05 17:44:07 +00:00
libedit mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
libexpat Stage 3 of dynamic root support. Make all the libraries needed to run 2003-08-17 08:28:46 +00:00
libfetch Don't forget to allocate space for the terminating NUL when converting to 2004-08-07 20:23:50 +00:00
libform
libftpio Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libgeom Markup, grammar, punctuation. 2004-07-01 18:20:57 +00:00
libio Remove now redundant and now conflicting declaration of sysarch(2). 2004-01-10 18:37:11 +00:00
libipsec Back out last delta, it just unpolitely reverted some local changes. 2004-07-01 17:13:15 +00:00
libipx Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libisc Fix the #include part of the SYNOPSIS for heap.3 2003-06-17 08:43:19 +00:00
libkiconv Markup fixes. 2004-07-05 06:59:17 +00:00
libkse Pull debug symbols in for statically linked binary. 2004-08-21 11:49:19 +00:00
libkvm Expand the license referenced indirectly inline. 2004-07-31 18:49:53 +00:00
libmagic Don't try to programatically support running file(1) w/in /usr/obj or other 2004-08-09 11:05:09 +00:00
libmd Eliminate double whitespace. 2004-07-03 22:30:10 +00:00
libmenu
libmilter Honor NOINET6 and disable IPv6 support in libmilter and sendmail if it 2004-06-01 01:29:42 +00:00
libmp Downgrage WARNS level for GCC 3.4.x. 2004-07-28 05:44:07 +00:00
libncp Avoid casts as lvalues. 2004-07-28 05:44:52 +00:00
libncurses Unbreak the NOINSTALLLIB install. 2003-08-30 13:57:31 +00:00
libnetgraph Yes, NgRecvAsciiMsg has the same results as NgRecvAsciiMsg, but it's 2004-07-04 04:03:37 +00:00
libngatm Add the new call control layer to the library and install the man page 2004-07-08 17:09:55 +00:00
libopie Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libpam Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
libpanel
libpcap Merge of libpcap 0.8.3 from tcpdump.org. 2004-03-31 09:15:09 +00:00
libpthread Pull debug symbols in for statically linked binary. 2004-08-21 11:49:19 +00:00
libradius Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
librpcsvc clnt_call takes args of type xdrproc_t. 2003-10-26 03:43:35 +00:00
libsbuf style.Makefile(5) 2003-08-18 15:25:39 +00:00
libsdp Make whatis(1) happy about the NAME section. 2004-07-05 17:38:08 +00:00
libsm Reflect changes in sendmail 8.13 source tree 2004-08-01 01:16:59 +00:00
libsmb
libsmdb Remove MAINTAINER= lines from individual Makefiles in favor of the 2003-07-07 03:54:04 +00:00
libsmutil Remove MAINTAINER= lines from individual Makefiles in favor of the 2003-07-07 03:54:04 +00:00
libstand Bump the document date, since the content changed today. 2004-08-06 15:29:54 +00:00
libtacplus Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libtelnet Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
libthr Adjust code to support AMD64, on AMD64, thread needs to set fsbase by 2004-08-19 23:49:04 +00:00
libthread_db Plug a memory leak in error case. 2004-08-16 05:20:12 +00:00
libufs Markup fixes. 2004-07-05 06:53:34 +00:00
libugidfw Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libusbhid Add __BEGIN_DECLS / __END_DECLS so this can be used in C++ code. 2004-06-03 15:04:24 +00:00
libutil Document when this function came into FreeBSD. 2004-08-21 03:31:17 +00:00
libvgl Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libwrap Turn on the extended syntax, which TCP_wrappers has by default, as 2003-07-24 19:58:56 +00:00
libxpg4
liby Include <stdlib.h> for exit() and add a prototype for yyparse(). 2004-05-24 09:50:57 +00:00
libypclnt Nothing in libypclnt depends on librpcsvc. 2004-02-04 09:53:29 +00:00
libz Update makefile for zlib 1.2.1. 2004-06-30 23:58:22 +00:00
msun Add man pages for the cimag(), conj() and creal() functions. 2004-08-07 23:03:36 +00:00
ncurses Unbreak the NOINSTALLLIB install. 2003-08-30 13:57:31 +00:00
Makefile build libthr on amd64. 2004-08-19 23:51:42 +00:00
Makefile.inc