date API: provide and use a DATE_MODE_INIT
Provide and use a DATE_MODE_INIT macro. Most of the users of struct date_mode" use it via pretty.h's "struct pretty_print_context" which doesn't have an initialization macro, so we're still bound to being initialized to "{ 0 }" by default. But we can change the couple of callers that directly declared a variable on the stack to instead use the initializer, and thus do away with the "mode.local = 0" added in add00ba2de9 (date: make "local" orthogonal to date format, 2015-09-03). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ævar Arnfjörð Bjarmason committed
Feb 16, 2022 at 09:14 UTC
f1842898324330dcf7a3b30ea08d18a68bd19ceb
4 files changed
+7
-4
date.c
+1
-2
@@ -206,11 +206,10 @@ void show_date_relative(timestamp_t time, struct strbuf *timebuf)
206
207
struct date_mode *date_mode_from_type(enum date_mode_type type)
208
{
209
- static struct date_mode mode;
209
+ static struct date_mode mode = DATE_MODE_INIT;
210
if (type == DATE_STRFTIME)
211
BUG("cannot create anonymous strftime date_mode struct");
212
mode.type = type;
213
- mode.local = 0;
213
return &mode;
214
}
215
date.h
+4
@@ -20,6 +20,10 @@ struct date_mode {
20
int local;
21
};
22
23
+#define DATE_MODE_INIT { \
24
+ .type = DATE_NORMAL, \
25
+}
26
+
27
/*
28
* Convenience helper for passing a constant type, like:
29
*
ref-filter.c
+1
-1
@@ -1251,7 +1251,7 @@ static void grab_date(const char *buf, struct atom_value *v, const char *atomnam
1251
char *zone;
1252
timestamp_t timestamp;
1253
long tz;
1254
- struct date_mode date_mode = { DATE_NORMAL };
1254
+ struct date_mode date_mode = DATE_MODE_INIT;
1255
const char *formatp;
1256
1257
/*
t/helper/test-date.c
+1
-1
@@ -35,7 +35,7 @@ static void show_human_dates(const char **argv)
35
36
static void show_dates(const char **argv, const char *format)
37
{
38
- struct date_mode mode;
38
+ struct date_mode mode = DATE_MODE_INIT;
39
40
parse_date_format(format, &mode);
41
for (; *argv; argv++) {