Adjust to recent gnulib changes.
This commit is contained in:
@@ -18,4 +18,7 @@ stamp-h1
|
||||
*.shar.gz
|
||||
gnulib
|
||||
gnulib/*
|
||||
gnulib/*/*
|
||||
gnulib/*/*
|
||||
rmt
|
||||
rmt/*
|
||||
rmt/*/*
|
||||
|
||||
43
ChangeLog
43
ChangeLog
@@ -1,3 +1,14 @@
|
||||
2004-11-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* doc/getdate.texi: Remove, since bootstrap gets it from gnulib now.
|
||||
* .cvsignore: Add rmt, rmt/*, rmt/*/*.
|
||||
* lib/.cvsignore: Add allocsa.c, allocsa.h, allocsa.valgrind,
|
||||
charset.alias, config.charset, getcwd.c, getcwd.h, localcharset.c,
|
||||
localcharset.h, ref-add.sed, ref-add.sin, ref-del.sed,
|
||||
ref-del.sin, setenv.c, setenv.h, unsetenv.c.
|
||||
* m4/.cvsignore: Add allocsa.m4, eealloc.m4, getcwd-path-max.m4,
|
||||
localcharset.m4, realloc.m4, setenv.m4.
|
||||
|
||||
2004-11-26 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
* configure.ac: Raised version number to 1.14.91
|
||||
@@ -12,7 +23,7 @@
|
||||
* src/list.c (tar_checksum): New function
|
||||
(read_header): Use tar_checksum().
|
||||
* src/common.h (tar_checksum): New function
|
||||
|
||||
|
||||
* tests/star/README: Updated
|
||||
* NEWS: Updated
|
||||
* PORTS: Updated
|
||||
@@ -37,7 +48,7 @@
|
||||
|
||||
* NEWS: Updated
|
||||
* TODO: Minor fix
|
||||
|
||||
|
||||
2004-10-04 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
* THANKS: Added Bryan Ford
|
||||
@@ -50,7 +61,7 @@
|
||||
cache directories automatically on archive creation.
|
||||
Cache directories are directories containing a
|
||||
standardized tag file, as specified at:
|
||||
http://www.brynosaurus.com/cachedir/spec.html
|
||||
http://www.brynosaurus.com/cachedir/spec.html
|
||||
* src/common.h: New variable exclude_caches_option.
|
||||
* src/create.c: New function check_cache_directory(),
|
||||
called from dump_dir0() if exclude_caches_option is set,
|
||||
@@ -72,11 +83,11 @@
|
||||
* src/misc.c: Likewise.
|
||||
* src/tar.c (parse_opt): Emit warning if -l option is used.
|
||||
(show_default_settings): REMOTE_SHELL may be undefined
|
||||
|
||||
|
||||
2004-09-07 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
Test suite rewritten in autotest.
|
||||
|
||||
|
||||
* configure.ac: Updated for autotest
|
||||
* src/tar.c (argp_program_version): Modified.
|
||||
* tests/Makefile.am: Rewritten for autotest.
|
||||
@@ -166,12 +177,12 @@
|
||||
(paxutils) genfile.c
|
||||
* tests/Makefile.am: Removed mksparse
|
||||
* tests/sparse01.sh: Use genfile instead of mksparse
|
||||
|
||||
|
||||
2004-09-06 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
Started merging with cpio into paxutils. Sources before
|
||||
this point are tagged alpha-1_14_90
|
||||
|
||||
|
||||
* Makefile.am: Updated for use with paxutils
|
||||
* README-alpha: Likewise
|
||||
* bootstrap: Likewise
|
||||
@@ -196,12 +207,12 @@
|
||||
* src/update.c: Likewise
|
||||
* src/utf8.c: Likewise
|
||||
* src/xheader.c: Likewise
|
||||
|
||||
|
||||
* src/system.h: Removed
|
||||
* src/rmt.c: Removed
|
||||
* src/rmt.h: Removed
|
||||
* src/rtapelib.c: Removed
|
||||
|
||||
|
||||
2004-09-03 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
* tests/listed02.sh: Do not depend on any particular ordering
|
||||
@@ -250,7 +261,7 @@
|
||||
<87n07kyzhi.fsf@rover.gag.com>, Sun, 15 Feb 2004 11:22:17 -0700)
|
||||
|
||||
* src/names.c (removed_prefixes_p): New function.
|
||||
|
||||
|
||||
* src/buffer.c: When computing write rate do not take
|
||||
into account the time needed to verify the archive(s).
|
||||
The bug reported by John L. Males <jlmales@yahoo.com>
|
||||
@@ -261,17 +272,17 @@
|
||||
* src/list.c (decode_header): Fixed initialization
|
||||
of stat_info->is_sparse
|
||||
* src/tar.c (main): Call set_start_time().
|
||||
|
||||
|
||||
* src/misc.c (unquote_string): Unquote '\a' and '\v'.
|
||||
Reported by Helmut Waitzmann <helmut.waitzmann@web.de>.
|
||||
|
||||
* NEWS: Updated
|
||||
* THANKS: Updated
|
||||
|
||||
|
||||
2004-08-30 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
* src/tar.c: Fix copy-n-paste errors in the license
|
||||
|
||||
|
||||
2004-08-19 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
* scripts/backup.in: Renamed LIBPATH to LIBDIR.
|
||||
@@ -285,7 +296,7 @@
|
||||
(restore_fs,restore_files): Fixed use of --listed option.
|
||||
* doc/tar.texi: Updated
|
||||
* NEWS: Updated
|
||||
|
||||
|
||||
2004-08-17 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
* src/tar.c (find_argp_option): Fixed typo
|
||||
@@ -298,7 +309,7 @@
|
||||
Set LC_ALL=C so that file names sort consistently.
|
||||
Prefer the gnulib copies of gettext.m4, glibc21.m4,
|
||||
lib-ld.m4, lib-prefix.m4, po.m4 too.
|
||||
|
||||
|
||||
* patches/getopt.diff: Remove; gnulib now works unpatched.
|
||||
* configure.ac (_getopt_long_only_r): Remove check.
|
||||
gl_ARGP now does this for us.
|
||||
@@ -369,7 +380,7 @@
|
||||
Merge from gnulib.
|
||||
|
||||
* patches/argp.diff: Remove; no longer needed.
|
||||
|
||||
|
||||
* lib/.cvsignore: Add stat-macros.h.
|
||||
Remove addext.c, malloc.c, realloc.c.
|
||||
|
||||
|
||||
478
doc/getdate.texi
478
doc/getdate.texi
@@ -1,478 +0,0 @@
|
||||
@c GNU date syntax documentation
|
||||
|
||||
@c Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
@c 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
@c Permission is granted to copy, distribute and/or modify this document
|
||||
@c under the terms of the GNU Free Documentation License, Version 1.1 or
|
||||
@c any later version published by the Free Software Foundation; with no
|
||||
@c Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
@c Texts. A copy of the license is included in the ``GNU Free
|
||||
@c Documentation License'' file as part of this distribution.
|
||||
|
||||
@node Date input formats
|
||||
@chapter Date input formats
|
||||
|
||||
@cindex date input formats
|
||||
@findex get_date
|
||||
|
||||
First, a quote:
|
||||
|
||||
@quotation
|
||||
Our units of temporal measurement, from seconds on up to months, are so
|
||||
complicated, asymmetrical and disjunctive so as to make coherent mental
|
||||
reckoning in time all but impossible. Indeed, had some tyrannical god
|
||||
contrived to enslave our minds to time, to make it all but impossible
|
||||
for us to escape subjection to sodden routines and unpleasant surprises,
|
||||
he could hardly have done better than handing down our present system.
|
||||
It is like a set of trapezoidal building blocks, with no vertical or
|
||||
horizontal surfaces, like a language in which the simplest thought
|
||||
demands ornate constructions, useless particles and lengthy
|
||||
circumlocutions. Unlike the more successful patterns of language and
|
||||
science, which enable us to face experience boldly or at least
|
||||
level-headedly, our system of temporal calculation silently and
|
||||
persistently encourages our terror of time.
|
||||
|
||||
@dots{} It is as though architects had to measure length in feet, width
|
||||
in meters and height in ells; as though basic instruction manuals
|
||||
demanded a knowledge of five different languages. It is no wonder then
|
||||
that we often look into our own immediate past or future, last Tuesday
|
||||
or a week from Sunday, with feelings of helpless confusion. @dots{}
|
||||
|
||||
--- Robert Grudin, @cite{Time and the Art of Living}.
|
||||
@end quotation
|
||||
|
||||
This section describes the textual date representations that @sc{gnu}
|
||||
programs accept. These are the strings you, as a user, can supply as
|
||||
arguments to the various programs. The C interface (via the
|
||||
@code{get_date} function) is not described here.
|
||||
|
||||
@menu
|
||||
* General date syntax:: Common rules.
|
||||
* Calendar date items:: 19 Dec 1994.
|
||||
* Time of day items:: 9:20pm.
|
||||
* Time zone items:: @sc{est}, @sc{pdt}, @sc{gmt}, ...
|
||||
* Day of week items:: Monday and others.
|
||||
* Relative items in date strings:: next tuesday, 2 years ago.
|
||||
* Pure numbers in date strings:: 19931219, 1440.
|
||||
* Seconds since the Epoch:: @@1078100502.
|
||||
* Authors of get_date:: Bellovin, Eggert, Salz, Berets, et al.
|
||||
@end menu
|
||||
|
||||
|
||||
@node General date syntax
|
||||
@section General date syntax
|
||||
|
||||
@cindex general date syntax
|
||||
|
||||
@cindex items in date strings
|
||||
A @dfn{date} is a string, possibly empty, containing many items
|
||||
separated by whitespace. The whitespace may be omitted when no
|
||||
ambiguity arises. The empty string means the beginning of today (i.e.,
|
||||
midnight). Order of the items is immaterial. A date string may contain
|
||||
many flavors of items:
|
||||
|
||||
@itemize @bullet
|
||||
@item calendar date items
|
||||
@item time of the day items
|
||||
@item time zone items
|
||||
@item day of the week items
|
||||
@item relative items
|
||||
@item pure numbers.
|
||||
@end itemize
|
||||
|
||||
@noindent We describe each of these item types in turn, below.
|
||||
|
||||
@cindex numbers, written-out
|
||||
@cindex ordinal numbers
|
||||
@findex first @r{in date strings}
|
||||
@findex next @r{in date strings}
|
||||
@findex last @r{in date strings}
|
||||
A few numbers may be written out in words in most contexts. This is
|
||||
most useful for specifying day of the week items or relative items (see
|
||||
below). Here is the list: @samp{first} for 1, @samp{next} for 2,
|
||||
@samp{third} for 3, @samp{fourth} for 4, @samp{fifth} for 5,
|
||||
@samp{sixth} for 6, @samp{seventh} for 7, @samp{eighth} for 8,
|
||||
@samp{ninth} for 9, @samp{tenth} for 10, @samp{eleventh} for 11 and
|
||||
@samp{twelfth} for 12. Also, @samp{last} means exactly @math{-1}.
|
||||
|
||||
@cindex months, written-out
|
||||
When a month is written this way, it is still considered to be written
|
||||
numerically, instead of being ``spelled in full''; this changes the
|
||||
allowed strings.
|
||||
|
||||
@cindex language, in dates
|
||||
In the current implementation, only English is supported for words and
|
||||
abbreviations like @samp{AM}, @samp{DST}, @samp{EST}, @samp{first},
|
||||
@samp{January}, @samp{Sunday}, @samp{tomorrow}, and @samp{year}.
|
||||
|
||||
@cindex language, in dates
|
||||
@cindex time zone item
|
||||
The output of @command{date} is not always acceptable as a date string,
|
||||
not only because of the language problem, but also because there is no
|
||||
standard meaning for time zone items like @samp{IST}. When using
|
||||
@command{date} to generate a date string intended to be parsed later,
|
||||
specify a date format that is independent of language and that does not
|
||||
use time zone items other than @samp{UTC} and @samp{Z}. Here are some
|
||||
ways to do this:
|
||||
|
||||
@example
|
||||
$ LC_ALL=C TZ=UTC0 date
|
||||
Mon Mar 1 00:21:42 UTC 2004
|
||||
$ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ'
|
||||
2004-03-01 00:21:42Z
|
||||
$ date --iso-8601=ns # a GNU extension
|
||||
2004-02-29T16:21:42,692722128-0800
|
||||
$ date --rfc-2822 # a GNU extension
|
||||
Sun, 29 Feb 2004 16:21:42 -0800
|
||||
$ date +'%Y-%m-%d %H:%M:%S %z' # %z is a GNU extension.
|
||||
2004-02-29 16:21:42 -0800
|
||||
$ date +'@@%s.%N' # %s and %N are GNU extensions.
|
||||
@@1078100502.692722128
|
||||
@end example
|
||||
|
||||
@cindex case, ignored in dates
|
||||
@cindex comments, in dates
|
||||
Alphabetic case is completely ignored in dates. Comments may be introduced
|
||||
between round parentheses, as long as included parentheses are properly
|
||||
nested. Hyphens not followed by a digit are currently ignored. Leading
|
||||
zeros on numbers are ignored.
|
||||
|
||||
|
||||
@node Calendar date items
|
||||
@section Calendar date items
|
||||
|
||||
@cindex calendar date item
|
||||
|
||||
A @dfn{calendar date item} specifies a day of the year. It is
|
||||
specified differently, depending on whether the month is specified
|
||||
numerically or literally. All these strings specify the same calendar date:
|
||||
|
||||
@example
|
||||
1972-09-24 # @sc{iso} 8601.
|
||||
72-9-24 # Assume 19xx for 69 through 99,
|
||||
# 20xx for 00 through 68.
|
||||
72-09-24 # Leading zeros are ignored.
|
||||
9/24/72 # Common U.S. writing.
|
||||
24 September 1972
|
||||
24 Sept 72 # September has a special abbreviation.
|
||||
24 Sep 72 # Three-letter abbreviations always allowed.
|
||||
Sep 24, 1972
|
||||
24-sep-72
|
||||
24sep72
|
||||
@end example
|
||||
|
||||
The year can also be omitted. In this case, the last specified year is
|
||||
used, or the current year if none. For example:
|
||||
|
||||
@example
|
||||
9/24
|
||||
sep 24
|
||||
@end example
|
||||
|
||||
Here are the rules.
|
||||
|
||||
@cindex @sc{iso} 8601 date format
|
||||
@cindex date format, @sc{iso} 8601
|
||||
For numeric months, the @sc{iso} 8601 format
|
||||
@samp{@var{year}-@var{month}-@var{day}} is allowed, where @var{year} is
|
||||
any positive number, @var{month} is a number between 01 and 12, and
|
||||
@var{day} is a number between 01 and 31. A leading zero must be present
|
||||
if a number is less than ten. If @var{year} is 68 or smaller, then 2000
|
||||
is added to it; otherwise, if @var{year} is less than 100,
|
||||
then 1900 is added to it. The construct
|
||||
@samp{@var{month}/@var{day}/@var{year}}, popular in the United States,
|
||||
is accepted. Also @samp{@var{month}/@var{day}}, omitting the year.
|
||||
|
||||
@cindex month names in date strings
|
||||
@cindex abbreviations for months
|
||||
Literal months may be spelled out in full: @samp{January},
|
||||
@samp{February}, @samp{March}, @samp{April}, @samp{May}, @samp{June},
|
||||
@samp{July}, @samp{August}, @samp{September}, @samp{October},
|
||||
@samp{November} or @samp{December}. Literal months may be abbreviated
|
||||
to their first three letters, possibly followed by an abbreviating dot.
|
||||
It is also permitted to write @samp{Sept} instead of @samp{September}.
|
||||
|
||||
When months are written literally, the calendar date may be given as any
|
||||
of the following:
|
||||
|
||||
@example
|
||||
@var{day} @var{month} @var{year}
|
||||
@var{day} @var{month}
|
||||
@var{month} @var{day} @var{year}
|
||||
@var{day}-@var{month}-@var{year}
|
||||
@end example
|
||||
|
||||
Or, omitting the year:
|
||||
|
||||
@example
|
||||
@var{month} @var{day}
|
||||
@end example
|
||||
|
||||
|
||||
@node Time of day items
|
||||
@section Time of day items
|
||||
|
||||
@cindex time of day item
|
||||
|
||||
A @dfn{time of day item} in date strings specifies the time on a given
|
||||
day. Here are some examples, all of which represent the same time:
|
||||
|
||||
@example
|
||||
20:02:00.000000
|
||||
20:02
|
||||
8:02pm
|
||||
20:02-0500 # In @sc{est} (U.S. Eastern Standard Time).
|
||||
@end example
|
||||
|
||||
More generally, the time of the day may be given as
|
||||
@samp{@var{hour}:@var{minute}:@var{second}}, where @var{hour} is
|
||||
a number between 0 and 23, @var{minute} is a number between 0 and
|
||||
59, and @var{second} is a number between 0 and 59 possibly followed by
|
||||
@samp{.} or @samp{,} and a fraction containing one or more digits.
|
||||
Alternatively,
|
||||
@samp{:@var{second}} can be omitted, in which case it is taken to
|
||||
be zero.
|
||||
|
||||
@findex am @r{in date strings}
|
||||
@findex pm @r{in date strings}
|
||||
@findex midnight @r{in date strings}
|
||||
@findex noon @r{in date strings}
|
||||
If the time is followed by @samp{am} or @samp{pm} (or @samp{a.m.}
|
||||
or @samp{p.m.}), @var{hour} is restricted to run from 1 to 12, and
|
||||
@samp{:@var{minute}} may be omitted (taken to be zero). @samp{am}
|
||||
indicates the first half of the day, @samp{pm} indicates the second
|
||||
half of the day. In this notation, 12 is the predecessor of 1:
|
||||
midnight is @samp{12am} while noon is @samp{12pm}.
|
||||
(This is the zero-oriented interpretation of @samp{12am} and @samp{12pm},
|
||||
as opposed to the old tradition derived from Latin
|
||||
which uses @samp{12m} for noon and @samp{12pm} for midnight.)
|
||||
|
||||
@cindex time zone correction
|
||||
@cindex minutes, time zone correction by
|
||||
The time may alternatively be followed by a time zone correction,
|
||||
expressed as @samp{@var{s}@var{hh}@var{mm}}, where @var{s} is @samp{+}
|
||||
or @samp{-}, @var{hh} is a number of zone hours and @var{mm} is a number
|
||||
of zone minutes. When a time zone correction is given this way, it
|
||||
forces interpretation of the time relative to
|
||||
Coordinated Universal Time (@sc{utc}), overriding any previous
|
||||
specification for the time zone or the local time zone. The @var{minute}
|
||||
part of the time of the day may not be elided when a time zone correction
|
||||
is used. This is the best way to specify a time zone correction by
|
||||
fractional parts of an hour.
|
||||
|
||||
Either @samp{am}/@samp{pm} or a time zone correction may be specified,
|
||||
but not both.
|
||||
|
||||
|
||||
@node Time zone items
|
||||
@section Time zone items
|
||||
|
||||
@cindex time zone item
|
||||
|
||||
A @dfn{time zone item} specifies an international time zone, indicated
|
||||
by a small set of letters, e.g., @samp{UTC} or @samp{Z}
|
||||
for Coordinated Universal
|
||||
Time. Any included periods are ignored. By following a
|
||||
non-daylight-saving time zone by the string @samp{DST} in a separate
|
||||
word (that is, separated by some white space), the corresponding
|
||||
daylight saving time zone may be specified.
|
||||
|
||||
Time zone items other than @samp{UTC} and @samp{Z}
|
||||
are obsolescent and are not recommended, because they
|
||||
are ambiguous; for example, @samp{EST} has a different meaning in
|
||||
Australia than in the United States. Instead, it's better to use
|
||||
unambiguous numeric time zone corrections like @samp{-0500}, as
|
||||
described in the previous section.
|
||||
|
||||
|
||||
@node Day of week items
|
||||
@section Day of week items
|
||||
|
||||
@cindex day of week item
|
||||
|
||||
The explicit mention of a day of the week will forward the date
|
||||
(only if necessary) to reach that day of the week in the future.
|
||||
|
||||
Days of the week may be spelled out in full: @samp{Sunday},
|
||||
@samp{Monday}, @samp{Tuesday}, @samp{Wednesday}, @samp{Thursday},
|
||||
@samp{Friday} or @samp{Saturday}. Days may be abbreviated to their
|
||||
first three letters, optionally followed by a period. The special
|
||||
abbreviations @samp{Tues} for @samp{Tuesday}, @samp{Wednes} for
|
||||
@samp{Wednesday} and @samp{Thur} or @samp{Thurs} for @samp{Thursday} are
|
||||
also allowed.
|
||||
|
||||
@findex next @var{day}
|
||||
@findex last @var{day}
|
||||
A number may precede a day of the week item to move forward
|
||||
supplementary weeks. It is best used in expression like @samp{third
|
||||
monday}. In this context, @samp{last @var{day}} or @samp{next
|
||||
@var{day}} is also acceptable; they move one week before or after
|
||||
the day that @var{day} by itself would represent.
|
||||
|
||||
A comma following a day of the week item is ignored.
|
||||
|
||||
|
||||
@node Relative items in date strings
|
||||
@section Relative items in date strings
|
||||
|
||||
@cindex relative items in date strings
|
||||
@cindex displacement of dates
|
||||
|
||||
@dfn{Relative items} adjust a date (or the current date if none) forward
|
||||
or backward. The effects of relative items accumulate. Here are some
|
||||
examples:
|
||||
|
||||
@example
|
||||
1 year
|
||||
1 year ago
|
||||
3 years
|
||||
2 days
|
||||
@end example
|
||||
|
||||
@findex year @r{in date strings}
|
||||
@findex month @r{in date strings}
|
||||
@findex fortnight @r{in date strings}
|
||||
@findex week @r{in date strings}
|
||||
@findex day @r{in date strings}
|
||||
@findex hour @r{in date strings}
|
||||
@findex minute @r{in date strings}
|
||||
The unit of time displacement may be selected by the string @samp{year}
|
||||
or @samp{month} for moving by whole years or months. These are fuzzy
|
||||
units, as years and months are not all of equal duration. More precise
|
||||
units are @samp{fortnight} which is worth 14 days, @samp{week} worth 7
|
||||
days, @samp{day} worth 24 hours, @samp{hour} worth 60 minutes,
|
||||
@samp{minute} or @samp{min} worth 60 seconds, and @samp{second} or
|
||||
@samp{sec} worth one second. An @samp{s} suffix on these units is
|
||||
accepted and ignored.
|
||||
|
||||
@findex ago @r{in date strings}
|
||||
The unit of time may be preceded by a multiplier, given as an optionally
|
||||
signed number. Unsigned numbers are taken as positively signed. No
|
||||
number at all implies 1 for a multiplier. Following a relative item by
|
||||
the string @samp{ago} is equivalent to preceding the unit by a
|
||||
multiplier with value @math{-1}.
|
||||
|
||||
@findex day @r{in date strings}
|
||||
@findex tomorrow @r{in date strings}
|
||||
@findex yesterday @r{in date strings}
|
||||
The string @samp{tomorrow} is worth one day in the future (equivalent
|
||||
to @samp{day}), the string @samp{yesterday} is worth
|
||||
one day in the past (equivalent to @samp{day ago}).
|
||||
|
||||
@findex now @r{in date strings}
|
||||
@findex today @r{in date strings}
|
||||
@findex this @r{in date strings}
|
||||
The strings @samp{now} or @samp{today} are relative items corresponding
|
||||
to zero-valued time displacement, these strings come from the fact
|
||||
a zero-valued time displacement represents the current time when not
|
||||
otherwise changed by previous items. They may be used to stress other
|
||||
items, like in @samp{12:00 today}. The string @samp{this} also has
|
||||
the meaning of a zero-valued time displacement, but is preferred in
|
||||
date strings like @samp{this thursday}.
|
||||
|
||||
When a relative item causes the resulting date to cross a boundary
|
||||
where the clocks were adjusted, typically for daylight-saving time,
|
||||
the resulting date and time are adjusted accordingly.
|
||||
|
||||
The fuzz in units can cause problems with relative items. For
|
||||
example, @samp{2003-07-31 -1 month} might evaluate to 2003-07-01,
|
||||
because 2003-06-31 is an invalid date. To determine the previous
|
||||
month more reliably, you can ask for the month before the 15th of the
|
||||
current month. For example:
|
||||
|
||||
@example
|
||||
$ date -R
|
||||
Thu, 31 Jul 2003 13:02:39 -0700
|
||||
$ date --date='-1 month' +'Last month was %B?'
|
||||
Last month was July?
|
||||
$ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'
|
||||
Last month was June!
|
||||
@end example
|
||||
|
||||
Also, take care when manipulating dates around clock changes such as
|
||||
daylight saving leaps. In a few cases these have added or subtracted
|
||||
as much as 24 hours from the clock, so it is often wise to adopt
|
||||
universal time by setting the @env{TZ} environment variable to
|
||||
@samp{UTC0} before embarking on calendrical calculations.
|
||||
|
||||
@node Pure numbers in date strings
|
||||
@section Pure numbers in date strings
|
||||
|
||||
@cindex pure numbers in date strings
|
||||
|
||||
The precise interpretation of a pure decimal number depends
|
||||
on the context in the date string.
|
||||
|
||||
If the decimal number is of the form @var{yyyy}@var{mm}@var{dd} and no
|
||||
other calendar date item (@pxref{Calendar date items}) appears before it
|
||||
in the date string, then @var{yyyy} is read as the year, @var{mm} as the
|
||||
month number and @var{dd} as the day of the month, for the specified
|
||||
calendar date.
|
||||
|
||||
If the decimal number is of the form @var{hh}@var{mm} and no other time
|
||||
of day item appears before it in the date string, then @var{hh} is read
|
||||
as the hour of the day and @var{mm} as the minute of the hour, for the
|
||||
specified time of the day. @var{mm} can also be omitted.
|
||||
|
||||
If both a calendar date and a time of day appear to the left of a number
|
||||
in the date string, but no relative item, then the number overrides the
|
||||
year.
|
||||
|
||||
|
||||
@node Seconds since the Epoch
|
||||
@section Seconds since the Epoch
|
||||
|
||||
If you precede a number with @samp{@@}, it represents an internal time
|
||||
stamp as a count of seconds. The number can contain an internal
|
||||
decimal point (either @samp{.} or @samp{,}); any excess precision not
|
||||
supported by the internal representation is truncated toward minus
|
||||
infinity.
|
||||
|
||||
@cindex beginning of time, for @acronym{POSIX}
|
||||
@cindex epoch, for @acronym{POSIX}
|
||||
Internally, computer times are represented as a count of seconds since
|
||||
an epoch---a well-defined point of time. On @acronym{GNU} and
|
||||
@acronym{POSIX} systems, the epoch is 1970-01-01 00:00:00 @sc{utc}, so
|
||||
@samp{@@0} represents this time, @samp{@@1} represents 1970-01-01
|
||||
00:00:01 @sc{utc}, and so forth. @acronym{GNU} and most other
|
||||
@acronym{POSIX}-compliant systems support such times as an extension
|
||||
to @acronym{POSIX}, using negative counts, so that @samp{@@-1}
|
||||
represents 1969-12-31 23:59:59 @sc{utc}.
|
||||
|
||||
Traditional Unix systems count seconds with 32-bit two's-complement
|
||||
integers and can represent times from 1901-12-13 20:45:52 through
|
||||
2038-01-19 03:14:07 @sc{utc}. More modern systems use 64-bit counts
|
||||
of seconds with nanosecond subcounts, and can represent all the times
|
||||
in the known lifetime of the universe to a resolution of 1 nanosecond.
|
||||
|
||||
On most systems, these counts ignore the presence of leap seconds.
|
||||
For example, on most systems @samp{@@915148799} represents 1998-12-31
|
||||
23:59:59 @sc{utc}, @samp{@@915148800} represents 1999-01-01 00:00:00
|
||||
@sc{utc}, and there is no way to represent the intervening leap second
|
||||
1998-12-31 23:59:60 @sc{utc}.
|
||||
|
||||
@node Authors of get_date
|
||||
@section Authors of @code{get_date}
|
||||
|
||||
@cindex authors of @code{get_date}
|
||||
|
||||
@cindex Bellovin, Steven M.
|
||||
@cindex Salz, Rich
|
||||
@cindex Berets, Jim
|
||||
@cindex MacKenzie, David
|
||||
@cindex Meyering, Jim
|
||||
@cindex Eggert, Paul
|
||||
@code{get_date} was originally implemented by Steven M. Bellovin
|
||||
(@email{smb@@research.att.com}) while at the University of North Carolina
|
||||
at Chapel Hill. The code was later tweaked by a couple of people on
|
||||
Usenet, then completely overhauled by Rich $alz (@email{rsalz@@bbn.com})
|
||||
and Jim Berets (@email{jberets@@bbn.com}) in August, 1990. Various
|
||||
revisions for the @sc{gnu} system were made by David MacKenzie, Jim Meyering,
|
||||
Paul Eggert and others.
|
||||
|
||||
@cindex Pinard, F.
|
||||
@cindex Berry, K.
|
||||
This chapter was originally produced by Fran@,{c}ois Pinard
|
||||
(@email{pinard@@iro.umontreal.ca}) from the @file{getdate.y} source code,
|
||||
and then edited by K.@: Berry (@email{kb@@cs.umb.edu}).
|
||||
@@ -5,6 +5,9 @@ Makefile.in
|
||||
alloca.c
|
||||
alloca.h
|
||||
alloca_.h
|
||||
allocsa.c
|
||||
allocsa.h
|
||||
allocsa.valgrind
|
||||
argmatch.c
|
||||
argmatch.h
|
||||
argp-ba.c
|
||||
@@ -22,7 +25,9 @@ argp.h
|
||||
backupfile.c
|
||||
backupfile.h
|
||||
basename.c
|
||||
charset.alias
|
||||
chown.c
|
||||
config.charset
|
||||
dirname.c
|
||||
dirname.h
|
||||
error.c
|
||||
@@ -41,6 +46,8 @@ fnmatch_loop.c
|
||||
ftruncate.c
|
||||
full-write.c
|
||||
full-write.h
|
||||
getcwd.c
|
||||
getcwd.h
|
||||
getdate.c
|
||||
getdate.h
|
||||
getdate.y
|
||||
@@ -63,6 +70,9 @@ human.c
|
||||
human.h
|
||||
lchown.c
|
||||
lchown.h
|
||||
localcharset.c
|
||||
localcharset.h
|
||||
localedir.h
|
||||
mempcpy.c
|
||||
mempcpy.h
|
||||
memset.c
|
||||
@@ -76,7 +86,13 @@ quote.c
|
||||
quote.h
|
||||
quotearg.c
|
||||
quotearg.h
|
||||
ref-add.sed
|
||||
ref-add.sin
|
||||
ref-del.sed
|
||||
ref-del.sin
|
||||
rmdir.c
|
||||
rmt.h
|
||||
rtapelib.c
|
||||
safe-read.c
|
||||
safe-read.h
|
||||
safe-write.c
|
||||
@@ -85,6 +101,8 @@ save-cwd.c
|
||||
save-cwd.h
|
||||
savedir.c
|
||||
savedir.h
|
||||
setenv.c
|
||||
setenv.h
|
||||
stat-macros.h
|
||||
stdbool.h
|
||||
stdbool_.h
|
||||
@@ -108,10 +126,12 @@ strtoumax.c
|
||||
sysexit.h
|
||||
sysexit_.h
|
||||
sysexits.h
|
||||
system.h
|
||||
time_r.c
|
||||
time_r.h
|
||||
timespec.h
|
||||
unlocked-io.h
|
||||
unsetenv.c
|
||||
utime.c
|
||||
xalloc-die.c
|
||||
xalloc.h
|
||||
@@ -123,7 +143,3 @@ xstrtol.c
|
||||
xstrtol.h
|
||||
xstrtoul.c
|
||||
xstrtoumax.c
|
||||
localedir.h
|
||||
rmt.h
|
||||
rtapelib.c
|
||||
system.h
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
*_gl.m4
|
||||
Makefile
|
||||
Makefile.in
|
||||
alloca.m4
|
||||
allocsa.m4
|
||||
argp.m4
|
||||
backupfile.m4
|
||||
bison.m4
|
||||
chown.m4
|
||||
@@ -9,6 +12,7 @@ codeset.m4
|
||||
d-ino.m4
|
||||
dirname.m4
|
||||
dos.m4
|
||||
eealloc.m4
|
||||
error.m4
|
||||
exclude.m4
|
||||
exitfail.m4
|
||||
@@ -16,6 +20,7 @@ extensions.m4
|
||||
fileblocks.m4
|
||||
fnmatch.m4
|
||||
ftruncate.m4
|
||||
getcwd-path-max.m4
|
||||
getcwd.m4
|
||||
getdate.m4
|
||||
getline.m4
|
||||
@@ -26,6 +31,7 @@ gettext.m4
|
||||
gettime.m4
|
||||
gettimeofday.m4
|
||||
glibc21.m4
|
||||
gnulib.m4
|
||||
hash.m4
|
||||
human.m4
|
||||
iconv.m4
|
||||
@@ -41,10 +47,13 @@ lcmessage.m4
|
||||
lib-ld.m4
|
||||
lib-link.m4
|
||||
lib-prefix.m4
|
||||
localcharset.m4
|
||||
longdouble.m4
|
||||
longlong.m4
|
||||
malloc.m4
|
||||
mbrtowc.m4
|
||||
mbstate_t.m4
|
||||
mempcpy.m4
|
||||
memset.m4
|
||||
mktime.m4
|
||||
modechange.m4
|
||||
@@ -57,12 +66,15 @@ printf-posix.m4
|
||||
progtest.m4
|
||||
quote.m4
|
||||
quotearg.m4
|
||||
realloc.m4
|
||||
restrict.m4
|
||||
rmdir.m4
|
||||
rmt.m4
|
||||
safe-read.m4
|
||||
safe-write.m4
|
||||
save-cwd.m4
|
||||
savedir.m4
|
||||
setenv.m4
|
||||
signed.m4
|
||||
size_max.m4
|
||||
ssize_t.m4
|
||||
@@ -71,13 +83,17 @@ stdbool.m4
|
||||
stdint_h.m4
|
||||
stpcpy.m4
|
||||
strcase.m4
|
||||
strchrnul.m4
|
||||
strerror_r.m4
|
||||
strndup.m4
|
||||
strnlen.m4
|
||||
strtoimax.m4
|
||||
strtol.m4
|
||||
strtoll.m4
|
||||
strtoul.m4
|
||||
strtoull.m4
|
||||
strtoumax.m4
|
||||
sysexits.m4
|
||||
time_r.m4
|
||||
timespec.m4
|
||||
tm_gmtoff.m4
|
||||
@@ -95,14 +111,3 @@ xgetcwd.m4
|
||||
xsize.m4
|
||||
xstrtol.m4
|
||||
xstrtoumax.m4
|
||||
*_gl.m4
|
||||
gnulib.m4
|
||||
malloc.m4
|
||||
realloc.m4
|
||||
argp.m4
|
||||
mempcpy.m4
|
||||
strchrnul.m4
|
||||
strndup.m4
|
||||
strnlen.m4
|
||||
sysexits.m4
|
||||
rmt.m4
|
||||
Reference in New Issue
Block a user