aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2025-11-01 17:44:43 -0600
committerPaul Eggert <eggert@cs.ucla.edu>2025-11-01 18:00:32 -0600
commitfdf88157c6e8d1c5e84889cd3133e426f4688005 (patch)
treeaaf64383198eadbb4c8c929ab7d95033c3812a9b /src
parentpr: improve nstrftime failure check (diff)
downloadcoreutils-fdf88157c6e8d1c5e84889cd3133e426f4688005.tar.gz
coreutils-fdf88157c6e8d1c5e84889cd3133e426f4688005.zip
date: diagnose fprintftime failure
* src/show-date.c (show_date): Diagnose fprintftime failure, as it need not be an output error.
Diffstat (limited to 'src')
-rw-r--r--src/show-date.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/show-date.c b/src/show-date.c
index ffa3d02b7..59d5cf936 100644
--- a/src/show-date.c
+++ b/src/show-date.c
@@ -21,16 +21,19 @@ show_date (char const *format, struct timespec when, timezone_t tz)
{
struct tm tm;
- if (localtime_rz (tz, &when.tv_sec, &tm))
- {
- fprintftime (stdout, format, &tm, tz, when.tv_nsec);
- return true;
- }
- else
+ if (!localtime_rz (tz, &when.tv_sec, &tm))
{
char buf[INT_BUFSIZE_BOUND (intmax_t)];
error (0, 0, _("time %s is out of range"),
quote (timetostr (when.tv_sec, buf)));
return false;
}
+
+ if (fprintftime (stdout, format, &tm, tz, when.tv_nsec) < 0)
+ {
+ error (0, errno, "fprintftime");
+ return false;
+ }
+
+ return true;
}