summary refs log tree commit diff
path: root/manual/time.texi
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-09-20 01:58:09 +0000
committerUlrich Drepper <drepper@redhat.com>1996-09-20 01:58:09 +0000
commitec4b0518a39f46354c0d75b4c3e2f507c9af261e (patch)
tree642ad0e74e2222c3750073d7827cfc0aead1372e /manual/time.texi
parentd66b7b41b83e89e9ef27950adc31891c11800144 (diff)
downloadglibc-ec4b0518a39f46354c0d75b4c3e2f507c9af261e.tar.gz
glibc-ec4b0518a39f46354c0d75b4c3e2f507c9af261e.tar.xz
glibc-ec4b0518a39f46354c0d75b4c3e2f507c9af261e.zip
update from main archive 960919 cvs/libc-960920
Thu Sep 19 21:50:55 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/posix/gettimeofday.c (__gettimeofday): Use localtime_r
	instead of localtime.
	Reported by Matthias Urlichs.

	* shlib-versions: Remove version number for libcrypt.
	* features.h: Define __USE_REENTRANT if _REENTRANT or _THREAD_SAFE.
	* libc-symbols.h: Define _REENTRANT while compiling libc.

	* sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location):
	Define even if !_LIBC_REENTRANT.
	* sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location):
	Likewise.

	* sysdeps/posix/cuserid.h: Remove prototype for geteuid().
	De-ANSI-fy.

	* MakeTAGS ($P/libc.pot): Generate correctly formed header.
	* po/header.pot: Correct title line.
	* po/nl.po: Update.

Thu Sep 19 18:59:55 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig (soversions.mk): Prefer shared lib version numbers
	is add ons over version in libc itself.

	* sysdeps/unix/sysv/linux/i386/sysdep.S: Include <sysdep.h>.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Prevent multiple
	inclusion.

	* libio/iofgets.c: Use __flockfile and __funlockfile instead of
 	_IO_flockfile and _IO_funlockfile resp.

	* locale/categories.def: Partly support for correct `era' handling
	in LC_TIME category.
	* locale/langinfo.h: Likewise.
	* locale/programs/ld-time.c: Likewise.
	* locale/localeinfo.h: Change comment a bit.

	* malloc/memalign.c: Don't use goto, not necessary anymore.

1996-09-18  Paul Eggert  <eggert@twinsun.com>

	* time/mktime.c (ydhms_tm_diff):  Work correctly even if year
	is negative, or if time_t is unsigned.
	* time/strftime.c (tm_diff): Work correctly even if tm_year
	is near INT_MIN.

Tue Sep 17 16:14:34 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/__math.h (__inline_mathop): Changed to generate
 	all three versions of the math function.
	(__inline_mathopf, __inline_mathopl): Removed.
	(__inline_functions): New temporary definition containing all
 	non-trivial inline functions.

Wed Sep 18 00:25:41 1996  Ulrich Drepper  <drepper@cygnus.com>

	* time/strftime.c (strftime): The T_FMT_AMPM string may be empty.

Tue Sep 17 20:27:18 1996  Ulrich Drepper  <drepper@cygnus.com>

	* math/Makefile (extra-libs-others): Use $(extra-libs) instead
	of $(extra-libc).

Tue Sep 17 17:09:44 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/stub/fpu_control.h: Correct end of file comment.

Tue Sep 17 05:39:18 1996  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/bug3.c, stdio-common/bug4.c, stdio-common/bug5.c,
	stdio-common/test-popen.c: Remove temporary files after test.
	* stdio-common/bug5.c: Use `system' instead of `execlp'.
	Patches by Andreas Jaeger.

	* stdio-common/bug5.c: Create string for `system' argument to
	make sure the input and output file names are really correct.

Sun Sep 15 12:46:44 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* configure.in: If $os contains a hyphen add the part before the
	hyphen to $ostry.

Sun Sep 15 18:14:02 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/__math.h (__ieee754_pow, __ieee754_powf,
	__ieee754_powl): Rename local variable i to __i.
	(__ieee754_atan2, __ieee754_atan2f, __ieee754_atan2l): New inline
	functions.
	* sysdeps/m68k/fpu/e_atan2.c, sysdeps/m68k/fpu/e_atan2f.c,
	sysdeps/m68k/fpu/e_atan2l.c: New files.

1996-09-15  Paul Eggert  <eggert@twinsun.com>

	* manual/time.texi: Change `range X to Y' to `range X through
	Y', to avoid ambiguity in English.

	(strftime): Numbers that do not have a range indicated are not padded.
	Describe E and O modifiers.
	%g, %G, %u: New formats.
	%C, %y, %Y: Describe behavior on negative years.
	%e: Fix typo (was labeled %d).
	%l, %V: Fix typo in range.
	%M, %S, %U, %w, %W: Give ranges.
	%p: Clarify how noon and midnight are handled for AM and PM.
	%s: Clarify leap second handling.
	%r: Now locale-defined.
	%C, %D, %e, %h, %n, %r, %t, %T: Say that they are POSIX.2 extensions.
	%z: Say that it is a GNU extension.
	%Z: Wording fix.

	* time/strftime.c: (strftime):
		%V: Fix mishandling of week numbers near year boundaries.
		%g, %G: New formats (suggested by Arthur David Olson).
		%U, %W: Use inline expression instead of `week' function.
		%C, %y: Handle negative years portably.
		%C, %Y: Use width 1, since values can be arbitrarily wide.
		%r: Use T_FMT_AMPM format if _NL_CURRENT is defined.
		%u: New Posix.2 format.
		%w: Width is 1, not 2.
	(iso_week_days): New function, for %V, %G, %g.
	(week): Remove; it didn't handle %V correctly.
	(__isleap): New macro.
	(mbsinit): Use arg, to pacify GCC -Wall.

1996-09-13  Paul Eggert  <eggert@twinsun.com>

	* time/strftime.c (strftime):
	If using the GNU C library, do not bother to check for
	multibyte encodings, since they're safe in formats.  Otherwise:
	  - Check for multibyte encodings when encountering any character that
	  is not in the basic execution character set of the C Standard.
	  - Use mbrlen (if available) instead of mblen, to avoid modifying
	  mblen's internal state.
	  - Do not assume that '%' cannot appear as the first character of a
	  multibyte character sequence, since this is possible when not in the
	  initial shift state.
	(HAVE_MBRLEN, MULTIBYTE_IS_FORMAT_SAFE): Define if _LIBC is defined.
	(DO_MULTIBYTE): New macro.
	(<ctype.h>): Do not include.
	(<wchar.h>): Include if HAVE_MBRLEN.
	(mbstate_t, mbrlen, mbsinit): Define if ! HAVE_MBRLEN.
	(mbstate_zero): New constant.

1996-09-12  Paul Eggert  <eggert@twinsun.com>

	* time/strftime.c (strftime):
	Use an empty zone if it can't be determined; POSIX.2 requires this.
	Use plain `int' for pad and modifier (which now contain char value).
	Use plain `int' for number_value, to print negative values correctly.
	Use plain `int' for digits; there was no need to make it unsigned.
	Initialize subfmt consistently.
	Remove incorrect code for %EC and %Ey; they aren't implemented yet.
	For %O, if there is no alternate digit, output Ascii instead of "".
	Output the `%' of an unknown format; this is most likely the right
	thing to do if a multibyte string has been misparsed.

Thu Sep 12 23:23:13 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/scanf7.c (main): Remove extra conversion from
	printf format string.

Thu Sep 12 23:01:16 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdlib/test-canon.c (tests): Rename structure member from errno
	to error, all uses changed.

Thu Sep 12 20:08:06 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/__math.h (__ldexp, __ldexpf, __ldexpl):
	Removed.
	* sysdeps/m68k/fpu/s_ldexp.c, sysdeps/m68k/fpu/s_ldexpf.c,
	sysdeps/m68k/fpu/s_ldexpl.c: Removed, use generic implementation
	instead.
	* sysdeps/m68k/fpu/s_scalbn.c, sysdeps/m68k/fpu/s_scalbnf.c,
	sysdeps/m68k/fpu/s_scalbnl.c: Replaced with old contents of
	s_ldexp.c, s_ldexpf.c and s_ldexpl.c, resp., suitably adpted.

	* sysdeps/m68k/fpu/__math.h (__frexp, __frexpf, __frexpl):
	Return value must be in [0.5, 1), not [1, 2).  Reported by Chris
	Lawrence.
	(__ilogb, __ilogbf, __ilogbl): Check for argument being zero.
	(__scalbn, __scalbnf, __scalbnl): Use second argument directly.

Thu Sep 12 19:59:24 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/e_acoshl.c: Fix typos.
	* sysdeps/libm-ieee754/s_cbrtl.c: Remove unused variable.

Thu Sep 12 19:59:24 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/e_acoshl.c: Fix typos.
	* sysdeps/libm-ieee754/s_cbrtl.c: Remove unused variable.

Thu Sep 12 19:56:07 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* inet/herrno.c (__h_errno_location): Fix return type.

Tue Sep 17 10:51:58 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* malloc/memalign.c (memalign): Only acquire __libc_malloc_lock
	for actual modifications to global state.

Fri Sep 13 01:21:36 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/Makefile (includes): Add -I$(common-objpfx)mach/.
	* sysdeps/mach/hurd/Makefile (includes): Add
	-I$(common-objpfx)hurd/.  Reported by Marcus Daniels.

	* sysdeps/generic/schedbits.h (struct sched_param): Renamed from
	struct sched_params.
	* sysdeps/stub/sched_setp.c (__sched_setparam): struct
	sched_params -> struct sched_param.
	* sysdeps/stub/sched_getp.c (__sched_getparam): Likewise.
	* sysdeps/stub/sched_sets.c (__sched_setscheduler): Likewise.

Thu Sep 12 23:58:25 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): Fix
	syntax error.

	* stdio-common/Makefile: Put lockfile in routines
	unconditionally.
	Define _MT_SAFE_IO if using for libio and compiling reentrant
	libc.

	* stdio-common/vfprintf.c (__flockfile, __funlockfile): Declare
	this always, not just if _LIBC_REENTRANT.
	(__funlockfile): Don't use weak_extern for this one;
	__libc_cleanup_region_end might be defined and the use of
	__funlockfile can't be protected the way the use of __flockfile
	can be.

	* sched.h: New file.  Helper to access posix/sched.h.
Thu Sep 12 12:33:52 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dl-cache.c: Delete second copy of file
	accidentally added on.

	* sysdeps/stub/intr-msg.h: New file.

	* stdio-common/vfprintf.c: Include <libc-lock.h>.
	* stdio-common/vfscanf.c: Include <libc-lock.h>.

	* sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): New
	macro.
	(__libc_cleanup_region_end): New macro.
Diffstat (limited to 'manual/time.texi')
-rw-r--r--manual/time.texi171
1 files changed, 114 insertions, 57 deletions
diff --git a/manual/time.texi b/manual/time.texi
index 9da23fbfb3..18224a5520 100644
--- a/manual/time.texi
+++ b/manual/time.texi
@@ -465,33 +465,34 @@ contains at least the following members, which can appear in any order:
 @table @code
 @item int tm_sec
 This is the number of seconds after the minute, normally in the range
-@code{0} to @code{59}.  (The actual upper limit is @code{60}, to allow
+@code{0} through @code{59}.  (The actual upper limit is @code{60}, to allow
 for leap seconds if leap second support is available.)
 @cindex leap second
 
 @item int tm_min
-This is the number of minutes after the hour, in the range @code{0} to
+This is the number of minutes after the hour, in the range @code{0} through
 @code{59}.
 
 @item int tm_hour
-This is the number of hours past midnight, in the range @code{0} to
+This is the number of hours past midnight, in the range @code{0} through
 @code{23}.
 
 @item int tm_mday
-This is the day of the month, in the range @code{1} to @code{31}.
+This is the day of the month, in the range @code{1} through @code{31}.
 
 @item int tm_mon
-This is the number of months since January, in the range @code{0} to
+This is the number of months since January, in the range @code{0} through
 @code{11}.
 
 @item int tm_year
 This is the number of years since @code{1900}.
 
 @item int tm_wday
-This is the number of days since Sunday, in the range @code{0} to @code{6}.
+This is the number of days since Sunday, in the range @code{0} through
+@code{6}.
 
 @item int tm_yday
-This is the number of days since January 1, in the range @code{0} to
+This is the number of days since January 1, in the range @code{0} through
 @code{365}.
 
 @item int tm_isdst
@@ -617,6 +618,7 @@ does so.  @xref{Time Zone Functions}.
 
 @comment time.h
 @comment ANSI
+@comment POSIX.2
 @deftypefun size_t strftime (char *@var{s}, size_t @var{size}, const char *@var{template}, const struct tm *@var{brokentime})
 This function is similar to the @code{sprintf} function (@pxref{Formatted
 Input}), but the conversion specifications that can appear in the format
@@ -626,9 +628,9 @@ time conversion (@pxref{Locales}).
 
 Ordinary characters appearing in the @var{template} are copied to the
 output string @var{s}; this can include multibyte character sequences.
-Conversion specifiers are introduced by a @samp{%} character.  Now can
-follow an optional flag which can be one of the following.  These flags
-only affect the output of numbers:
+Conversion specifiers are introduced by a @samp{%} character, followed
+by an optional flag which can be one of the following.  These flags,
+which are GNU extensions, affect only the output of numbers:
 
 @table @code
 @item _
@@ -638,9 +640,31 @@ The number is padded with spaces.
 The number is not padded at all.
 @end table
 
-The default action is to pad the number with zeros.  Following to the
-flag comes the format specifier.  The whole @samp{%} sequence is
-replaced in the output string as follows:
+The default action is to pad the number with zeros to keep it a constant
+width.  Numbers that do not have a range indicated below are never
+padded, since there is no natural width for them.
+
+An optional modifier can follow the optional flag.  The modifiers, which
+are POSIX.2 extensions, are:
+
+@table @code
+@item E
+Use the locale's alternate representation for date and time.  This
+modifier applies to the @code{%c}, @code{%C}, @code{%x}, @code{%X},
+@code{%y} and @code{%Y} format specifiers.  In a Japanese locale, for
+example, @code{%Ex} might yield a date format based on the Japanese
+Emperors' reigns.
+
+@item O
+Use the locale's alternate numeric symbols for numbers.  This modifier
+applies only to numeric format specifiers.
+@end table
+
+A modifier is ignored if no alternate representation is available.
+
+The conversion specifier ends with a format specifier taken from the
+following list.  The whole @samp{%} sequence is replaced in the output
+string as follows:
 
 @table @code
 @item %a
@@ -659,19 +683,38 @@ The full month name according to the current locale.
 The preferred date and time representation for the current locale.
 
 @item %C
-The century of the year.
+The century of the year.  This is equivalent to the greatest integer not
+greater than the year divided by 100.
+
+This format is a POSIX.2 extension.
 
 @item %d
-The day of the month as a decimal number (range @code{01} to @code{31}).
+The day of the month as a decimal number (range @code{01} through @code{31}).
 
 @item %D
 The date using the format @code{%m/%d/%y}.
 
-This format is a GNU extension.
+This format is a POSIX.2 extension.
 
-@item %d
+@item %e
 The day of the month like with @code{%d}, but padded with blank (range
-@code{ 1} to @code{31}).
+@code{ 1} through @code{31}).
+
+This format is a POSIX.2 extension.
+
+@item %g
+The year corresponding to the ISO week number, but without the century
+(range @code{00} through @code{99}).  This has the same format and value
+as @code{%y}, except that if the ISO week number (see @code{%V}) belongs
+to the previous or next year, that year is used instead.
+
+This format is a GNU extension.
+
+@item %G
+The year corresponding to the ISO week number.  This has the same format
+and value as @code{%Y}, except that if the ISO week number (see
+@code{%V}) belongs to the previous or next year, that year is used
+instead.
 
 This format is a GNU extension.
 
@@ -679,50 +722,51 @@ This format is a GNU extension.
 The abbreviated month name according to the current locale.  The action
 is the same as for @code{%b}.
 
-This format is a GNU extension.
+This format is a POSIX.2 extension.
 
 @item %H
-The hour as a decimal number, using a 24-hour clock (range @code{00} to
+The hour as a decimal number, using a 24-hour clock (range @code{00} through
 @code{23}).
 
 @item %I
-The hour as a decimal number, using a 12-hour clock (range @code{01} to
+The hour as a decimal number, using a 12-hour clock (range @code{01} through
 @code{12}).
 
 @item %j
-The day of the year as a decimal number (range @code{001} to @code{366}).
+The day of the year as a decimal number (range @code{001} through @code{366}).
 
 @item %k
 The hour as a decimal number, using a 24-hour clock like @code{%H}, but
-padded with blank (range @code{ 0} to @code{23}).
+padded with blank (range @code{ 0} through @code{23}).
 
 This format is a GNU extension.
 
 @item %l
 The hour as a decimal number, using a 12-hour clock like @code{%I}, but
-padded with blank (range @code{ 0} to @code{12}).
+padded with blank (range @code{ 1} through @code{12}).
 
 This format is a GNU extension.
 
 @item %m
-The month as a decimal number (range @code{01} to @code{12}).
+The month as a decimal number (range @code{01} through @code{12}).
 
 @item %M
-The minute as a decimal number.
+The minute as a decimal number (range @code{00} through @code{59}).
 
 @item %n
 A single @samp{\n} (newline) character.
 
-This format is a GNU extension.
+This format is a POSIX.2 extension.
 
 @item %p
-Either @samp{am} or @samp{pm}, according to the given time value; or the
-corresponding strings for the current locale.
+Either @samp{AM} or @samp{PM}, according to the given time value; or the
+corresponding strings for the current locale.  Noon is treated as
+@samp{PM} and midnight as @samp{AM}.
 
 @item %r
-The time in decinal numbers using the format @code{%I:%M:%S %p}.
+The complete time using the AM/PM format of the current locale.
 
-This format is a GNU extension.
+This format is a POSIX.2 extension.
 
 @item %R
 The hour and minute in decimal numbers using the format @code{%H:%M}.
@@ -730,47 +774,58 @@ The hour and minute in decimal numbers using the format @code{%H:%M}.
 This format is a GNU extension.
 
 @item %s
-The seconds since the epoch, i.e., 1970-01-01 00:00:00 UTC.  Note
-that this value is the number of seconds between the epoch and the
-current date as defined by the @code{localtime} system call.
+The number of seconds since the epoch, i.e., since 1970-01-01 00:00:00 UTC.
+Leap seconds are not counted unless leap second support is available.
 
 This format is a GNU extension.
 
 @item %S
-The second as a decimal number.
+The second as a decimal number (range @code{00} through @code{60}).
 
 @item %t
 A single @samp{\t} (tabulator) character.
 
-This format is a GNU extension.
+This format is a POSIX.2 extension.
 
 @item %T
 The time using decimal numbers using the format @code{%H:%M:%S}.
 
-This format is a GNU extension.
+This format is a POSIX.2 extension.
+
+@item %u
+The day of the week as a decimal number (range @code{1} through
+@code{7}), Monday being @code{1}.
+
+This format is a POSIX.2 extension.
 
 @item %U
-The week number of the current year as a decimal number, starting with
-the first Sunday as the first day of the first week.  All days preceding
-the first Sunday in the year are considered to be in week @code{0}.
+The week number of the current year as a decimal number (range @code{00}
+through @code{53}), starting with the first Sunday as the first day of
+the first week.  Days preceding the first Sunday in the year are
+considered to be in week @code{00}.
 
 @item %V
-The @w{ISO 8601:1988} week number as a decimal number (range @code{00}
-to @code{53}).  ISO weeks start with Monday and end with Sunday.  Week
-01 of a year is the first week which has the majority of its days in
-that year; this is equivalent to the week containing the year's first
-Thursday, and it is also equivalent to the week containing January 4.
-Week 01 of a year can contain days from the previous year.  The week
-before week 01 of a year is the last week (52 or 53) of the previous
-year even if it contains days from the new year.
+The @w{ISO 8601:1988} week number as a decimal number (range @code{01}
+through @code{53}).  ISO weeks start with Monday and end with Sunday.
+Week @code{01} of a year is the first week which has the majority of its
+days in that year; this is equivalent to the week containing the year's
+first Thursday, and it is also equivalent to the week containing January
+4.  Week @code{01} of a year can contain days from the previous year.
+The week before week @code{01} of a year is the last week (@code{52} or
+@code{53}) of the previous year even if it contains days from the new
+year.
+
+This format is a POSIX.2 extension.
 
 @item %w
-The day of the week as a decimal number, Sunday being @code{0}.
+The day of the week as a decimal number (range @code{0} through
+@code{6}), Sunday being @code{0}.
 
 @item %W
-The week number of the current year as a decimal number, starting with
-the first Monday as the first day of the first week.  All days preceding
-the first Monday in the year are considered to be in week @code{0}.
+The week number of the current year as a decimal number (range @code{00}
+through @code{53}), starting with the first Monday as the first day of
+the first week.  All days preceding the first Monday in the year are
+considered to be in week @code{00}.
 
 @item %x
 The preferred date representation for the current locale, but without the
@@ -780,20 +835,22 @@ time.
 The preferred time representation for the current locale, but with no date.
 
 @item %y
-The year as a decimal number, but without a century (range @code{00} to
-@code{99}).
+The year without a century as a decimal number (range @code{00} through
+@code{99}).  This is equivalent to the year modulo 100.
 
 @item %Y
-The year as a decimal number, including the century.
+The year as a decimal number, using the Gregorian calendar.  Years
+before the year @code{1} are numbered @code{0}, @code{-1}, and so on.
 
 @item %z
 @w{RFC 822}/@w{ISO 8601:1988} style numeric time zone (e.g.,
 @code{-0600} or @code{+0100}), or nothing if no time zone is
 determinable.
 
+This format is a GNU extension.
+
 @item %Z
-The time zone or name or abbreviation (empty if the time zone can't be
-determined).
+The time zone abbreviation (empty if the time zone can't be determined).
 
 @item %%
 A literal @samp{%} character.