diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2025-11-01 17:44:43 -0600 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2025-11-01 18:00:32 -0600 |
| commit | fdf88157c6e8d1c5e84889cd3133e426f4688005 (patch) | |
| tree | aaf64383198eadbb4c8c929ab7d95033c3812a9b /src | |
| parent | pr: improve nstrftime failure check (diff) | |
| download | coreutils-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.c | 15 |
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; } |
