aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2025-07-31 18:45:45 +0200
committerPádraig Brady <P@draigBrady.com>2025-08-01 13:31:28 +0100
commit0142856e7b3ff98ba0b0de32543cffc4be098fb2 (patch)
tree98e5d39394d800f34481d0661ea4681bc4ac2986
parentdate: fix calendar-related test failures on macOS and OpenBSD (diff)
downloadcoreutils-0142856e7b3ff98ba0b0de32543cffc4be098fb2.tar.gz
coreutils-0142856e7b3ff98ba0b0de32543cffc4be098fb2.zip
maint: date: refactor to be entirely bottom-up
* src/date.c (show_date_helper): Move function. Remove forward declaration.
-rw-r--r--src/date.c48
1 files changed, 23 insertions, 25 deletions
diff --git a/src/date.c b/src/date.c
index 4a8dabc2e..42e66e25d 100644
--- a/src/date.c
+++ b/src/date.c
@@ -38,8 +38,6 @@
#define AUTHORS proper_name ("David MacKenzie")
-static bool show_date_helper (char const *, bool, struct timespec, timezone_t);
-
enum Time_spec
{
/* Display only the date. */
@@ -373,6 +371,29 @@ set_LC_TIME (char const *locale)
return ret;
}
+static bool
+show_date_helper (char const *format, bool use_c_locale,
+ struct timespec when, timezone_t tz)
+{
+ if (parse_datetime_flags & PARSE_DATETIME_DEBUG)
+ error (0, 0, _("output format: %s"), quote (format));
+
+ bool ok;
+ if (use_c_locale)
+ {
+ char *old_locale_category = set_LC_TIME ("C");
+ ok = show_date (format, when, tz);
+ char *new_locale_category = set_LC_TIME (old_locale_category);
+ free (new_locale_category);
+ free (old_locale_category);
+ }
+ else
+ ok = show_date (format, when, tz);
+
+ putchar ('\n');
+ return ok;
+}
+
/* Parse each line in INPUT_FILENAME as with --date and display each
resulting time and date. If the file cannot be opened, tell why
then exit. Issue a diagnostic for any lines that cannot be parsed.
@@ -697,26 +718,3 @@ main (int argc, char **argv)
main_exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
-
-static bool
-show_date_helper (char const *format, bool use_c_locale,
- struct timespec when, timezone_t tz)
-{
- if (parse_datetime_flags & PARSE_DATETIME_DEBUG)
- error (0, 0, _("output format: %s"), quote (format));
-
- bool ok;
- if (use_c_locale)
- {
- char *old_locale_category = set_LC_TIME ("C");
- ok = show_date (format, when, tz);
- char *new_locale_category = set_LC_TIME (old_locale_category);
- free (new_locale_category);
- free (old_locale_category);
- }
- else
- ok = show_date (format, when, tz);
-
- putchar ('\n');
- return ok;
-}