Paul Eggert [Thu, 22 Sep 2005 06:39:14 +0000 (06:39 +0000)]
(GL_CONCAT): Remove.
Include "verify.h" instead.
(ARGMATCH_CONSTRAINT, ARGMATCH_ASSERT): Remove.
(ARGMATCH_VERIFY): Rewrite in terms of new verify macros.
Paul Eggert [Thu, 22 Sep 2005 06:32:52 +0000 (06:32 +0000)]
(VERIFY_EXPR, X2NREALLOC, X2REALLOC): Remove.
The latter two macros are moving to ../src/system.h for now.
This reverts this file to the gnulib version.
Jim Meyering [Tue, 20 Sep 2005 13:51:01 +0000 (13:51 +0000)]
(fdopendir): Be sure to close the supplied
file descriptor before returning. This makes our replacement
implementation a little closer to Solaris's, where fdopendir
ties the file descriptor to the returned DIR* pointer.
Paul Eggert [Sat, 17 Sep 2005 06:54:22 +0000 (06:54 +0000)]
(set_stat_atime, set_stat_ctime, set_stat_mtime): Remove; they were
buggy in the HAVE_STRUCT_STAT_ST_SPARE1 case, and they were dubious
anyway. I rewrote 'tar' to not use them any more.
Jim Meyering [Fri, 16 Sep 2005 17:53:40 +0000 (17:53 +0000)]
(subfmt-up1): Put quotes around format string
to protect `^' from interpretation by some shells.
Add a use of OUT_SUBST to compensate for Solaris strftime's slightly
different formatting of %c.
Jim Meyering [Fri, 16 Sep 2005 08:08:32 +0000 (08:08 +0000)]
Include fprintftime.h.
Don't include strftime.h or xanstrftime.h -- no longer needed.
(show_date): Use new fprintftime function rather than xanstrftime.
Correct comment: this function no longer handles a NULL format string.
Paul Eggert [Fri, 16 Sep 2005 07:39:41 +0000 (07:39 +0000)]
Include stat-time.h.
(SYSCALL_RESOLUTION): Depend on whether various struct stat
members exist, not on the obsolescent ST_MTIM_NSEC.
(utimecmp): Use the new stat-time functions rater than TIMESPEC_NS.
Paul Eggert [Fri, 16 Sep 2005 07:39:18 +0000 (07:39 +0000)]
(ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP):
(MTIME_CMP, TIMESPEC_NS): Remove. Now done by stat-time.h,
in a different way.
(timespec_cmp): New function.
Jim Meyering [Fri, 16 Sep 2005 07:31:29 +0000 (07:31 +0000)]
[FPRINTFTIME] (fprintftime): Provide a new interface:
size_t fprintftime (FILE *fp, char const *fmt, struct tm const *tm,
int utc, int nanoseconds);
Background:
date should not have to allocate a megabyte of virtual memory to
handle a format argument like +%1048575T. When implemented with
strftime, it must allocate such a buffer, use strftime to fill it
in, print it, then free it.
With fprintftime, it simply prints everything and exits.
With no need for memory allocation, that's one fewer way to fail.
Jim Meyering [Fri, 16 Sep 2005 06:54:19 +0000 (06:54 +0000)]
(subfmt-up1): Test the combination of the
to-upper-case modifier (^) and a conversion specifier that
expands to a string containing lower case characters.
Paul Eggert [Tue, 13 Sep 2005 23:32:35 +0000 (23:32 +0000)]
(SWAP): Renamed from NOTSWAP, to avoid a horrible misnaming.
All uses changed. Remove the old SWAP.
Remove obvious comment about BLOCKSIZE.
(rol): New macro, moved here from md5.h.
(sha1_process_block): Remove an incoherent FIXME comment.
Paul Eggert [Tue, 13 Sep 2005 23:31:37 +0000 (23:31 +0000)]
(__GNUC_PREREQ, __THROW, __attribute__): New macros.
(__md5_buffer): Renamed from md5_buffer. Add a macro undoing this
if _LIBC is not defined. Add __THROW.
(__md5_finish_ctx, __md5_init_ctx, __md5_process_block):
(__md5_process_bytes, __md5_read_ctx, __md5_stream): Likewise.
(struct md5_ctx): Mark buffer as being aligned.
(rol): Remove; all uses changed to CYCLIC.
Paul Eggert [Tue, 13 Sep 2005 22:43:11 +0000 (22:43 +0000)]
* src/dd.c: Detect some very unlikely buffer overflows.
(INPUT_BLOCK_SLOP, OUTPUT_BLOCK_SLOP): New macros.
(MAX_BLOCKSIZE): Now accepts an arg. All uses changed.
(page_size): New var.
(scanargs, skip, main): Use more-straightforward way to detect overflow.
(dd_copy): Use page_size rather than invoking getpagesize.
Use INPUT_BLOCK_SLOP, OUTPUT_BLOCK_SLOP.
(main): Set page_size.
Avoid a call to stat in the usual case where ftruncate succeeds.
Paul Eggert [Tue, 13 Sep 2005 22:08:41 +0000 (22:08 +0000)]
(TIME_SPEC_DATE): No longer needs to be nonzero, so
remove the "=1".
(TIME_SOEC_HOURS, TIME_SPEC_MINUTES): Must be at end now, so put
them there.
(time_spec_string, time_spec): Hours and minutes must be at
start now, so put them there.
(rfc_2822_format): Now a string constant, not a boolean. All uses
changed.
(iso_8601_format, rfc_format): Remove.
(RFC_3339_OPTION): New constant.
(long_options): Add --rfc-3339.
(usage): Add --rfc-3339. Don't mention --iso-8601.
Mention %:z, %::z, %:::z.
(main): Simplify calculation of 'format'; it was getting too hairy
to follow. Add --rfc-3339.
(show_date): Assume format arg is not NULL, which is the case
now. The default code is moved to 'main'. This simplifies things
and allows the default to be calculated just once.
Paul Eggert [Tue, 13 Sep 2005 22:07:58 +0000 (22:07 +0000)]
(Time conversion specifiers, Options for date):
Document date --rfc-3339 and new specifiers %:z, %::z, %:::z. Use
"date and time" consistently; the old version sometimes said "time
and date". Fix a minor bug in the documentation for --rfc-2822:
it claimed day-of-month < 10 had leading space, not leading zero.
Use a consistent format for terms like "RFC".