1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-10-28 04:49:43 +01:00

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 add00ba2de (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>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2022-02-16 09:14:03 +01:00 committed by Junio C Hamano
parent 88c7b4c3c8
commit f184289832
4 changed files with 7 additions and 4 deletions

3
date.c
View file

@ -206,11 +206,10 @@ void show_date_relative(timestamp_t time, struct strbuf *timebuf)
struct date_mode *date_mode_from_type(enum date_mode_type type)
{
static struct date_mode mode;
static struct date_mode mode = DATE_MODE_INIT;
if (type == DATE_STRFTIME)
BUG("cannot create anonymous strftime date_mode struct");
mode.type = type;
mode.local = 0;
return &mode;
}

4
date.h
View file

@ -20,6 +20,10 @@ struct date_mode {
int local;
};
#define DATE_MODE_INIT { \
.type = DATE_NORMAL, \
}
/*
* Convenience helper for passing a constant type, like:
*

View file

@ -1251,7 +1251,7 @@ static void grab_date(const char *buf, struct atom_value *v, const char *atomnam
char *zone;
timestamp_t timestamp;
long tz;
struct date_mode date_mode = { DATE_NORMAL };
struct date_mode date_mode = DATE_MODE_INIT;
const char *formatp;
/*

View file

@ -35,7 +35,7 @@ static void show_human_dates(const char **argv)
static void show_dates(const char **argv, const char *format)
{
struct date_mode mode;
struct date_mode mode = DATE_MODE_INIT;
parse_date_format(format, &mode);
for (; *argv; argv++) {