Y2KINFO
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:2k
源码类别:

界面编程

开发平台:

Visual C++

  1.    Y2K compliance in libpng:
  2.    =========================
  3.       December 18, 2008
  4.       Since the PNG Development group is an ad-hoc body, we can't make
  5.       an official declaration.
  6.       This is your unofficial assurance that libpng from version 0.71 and
  7.       upward through 1.2.34 are Y2K compliant.  It is my belief that earlier
  8.       versions were also Y2K compliant.
  9.       Libpng only has three year fields.  One is a 2-byte unsigned integer
  10.       that will hold years up to 65535.  The other two hold the date in text
  11.       format, and will hold years up to 9999.
  12.       The integer is
  13.           "png_uint_16 year" in png_time_struct.
  14.       The strings are
  15.           "png_charp time_buffer" in png_struct and
  16.           "near_time_buffer", which is a local character string in png.c.
  17.       There are seven time-related functions:
  18.           png_convert_to_rfc_1123() in png.c
  19.             (formerly png_convert_to_rfc_1152() in error)
  20.           png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c
  21.           png_convert_from_time_t() in pngwrite.c
  22.           png_get_tIME() in pngget.c
  23.           png_handle_tIME() in pngrutil.c, called in pngread.c
  24.           png_set_tIME() in pngset.c
  25.           png_write_tIME() in pngwutil.c, called in pngwrite.c
  26.       All appear to handle dates properly in a Y2K environment.  The
  27.       png_convert_from_time_t() function calls gmtime() to convert from system
  28.       clock time, which returns (year - 1900), which we properly convert to
  29.       the full 4-digit year.  There is a possibility that applications using
  30.       libpng are not passing 4-digit years into the png_convert_to_rfc_1123()
  31.       function, or that they are incorrectly passing only a 2-digit year
  32.       instead of "year - 1900" into the png_convert_from_struct_tm() function,
  33.       but this is not under our control.  The libpng documentation has always
  34.       stated that it works with 4-digit years, and the APIs have been
  35.       documented as such.
  36.       The tIME chunk itself is also Y2K compliant.  It uses a 2-byte unsigned
  37.       integer to hold the year, and can hold years as large as 65535.
  38.       zlib, upon which libpng depends, is also Y2K compliant.  It contains
  39.       no date-related code.
  40.          Glenn Randers-Pehrson
  41.          libpng maintainer
  42.          PNG Development Group