aboutsummaryrefslogtreecommitdiff
path: root/date.c
diff options
context:
space:
mode:
Diffstat (limited to 'date.c')
-rw-r--r--date.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/date.c b/date.c
index 11c5e5fe8d49..b62f04d768bc 100644
--- a/date.c
+++ b/date.c
@@ -42,7 +42,7 @@ static void display(const char *, time_t);
static void dogmt(void);
static void errensure(void);
static void timeout(FILE *, const char *, const struct tm *);
-static ATTRIBUTE_NORETURN void usage(void);
+ATTRIBUTE_NORETURN static void usage(void);
int
main(const int argc, char *argv[])
@@ -86,7 +86,9 @@ main(const int argc, char *argv[])
else if (! (TIME_T_MIN <= secs && secs <= TIME_T_MAX))
errno = ERANGE;
if (errno) {
- perror(optarg);
+ char const *e = strerror(errno);
+ fprintf(stderr, _("date: %s: %s\n"),
+ optarg, e);
errensure();
exit(retval);
}
@@ -124,10 +126,10 @@ dogmt(void)
continue;
#if defined ckd_add && defined ckd_mul
if (!ckd_add(&n, n, 2) && !ckd_mul(&n, n, sizeof *fakeenv)
- && n <= SIZE_MAX)
+ && n <= INDEX_MAX)
fakeenv = malloc(n);
#else
- if (n <= min(PTRDIFF_MAX, SIZE_MAX) / sizeof *fakeenv - 2)
+ if (n <= INDEX_MAX / sizeof *fakeenv - 2)
fakeenv = malloc((n + 2) * sizeof *fakeenv);
#endif
if (fakeenv == NULL) {
@@ -194,10 +196,9 @@ timeout(FILE *fp, char const *format, struct tm const *tmp)
for ( ; ; ) {
#ifdef ckd_mul
- bool bigger = !ckd_mul(&size, size, 2) && size <= SIZE_MAX;
+ bool bigger = !ckd_mul(&size, size, 2) && size <= INDEX_MAX;
#else
- bool bigger = (size <= min(PTRDIFF_MAX, SIZE_MAX) / 2
- && (size *= 2, true));
+ bool bigger = size <= INDEX_MAX / 2 && (size *= 2, true);
#endif
char *newcp = bigger ? realloc(cp, size) : NULL;
if (!newcp) {