From b8d4ddc4b2768600207e0076618da869b69df60e Mon Sep 17 00:00:00 2001 From: Michael Elkins Date: Fri, 6 Aug 2010 11:45:18 -0700 Subject: [PATCH] add %D format string to $folder_format to expand the time based on $date_format. properly set the locale for LC_TIME prior to calling strftime() closes #1734 closes #3406 --- browser.c | 20 ++++++++++++++++++-- init.h | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/browser.c b/browser.c index d617ee5d..1a59b3f4 100644 --- a/browser.c +++ b/browser.c @@ -162,11 +162,27 @@ folder_format_str (char *dest, size_t destlen, size_t col, char op, const char * break; case 'd': + case 'D': if (folder->ff->st != NULL) { - tnow = time (NULL); - t_fmt = tnow - folder->ff->st->st_mtime < 31536000 ? "%b %d %H:%M" : "%b %d %Y"; + bool do_locales = true; + + if (op == 'D') { + t_fmt = NONULL(DateFmt); + if (*t_fmt == '!') { + ++t_fmt; + do_locales = false; + } + } else { + tnow = time (NULL); + t_fmt = tnow - folder->ff->st->st_mtime < 31536000 ? "%b %d %H:%M" : "%b %d %Y"; + } + if (do_locales) + setlocale(LC_TIME, NONULL (Locale)); /* use environment if $locale is not set */ + else + setlocale(LC_TIME, "C"); strftime (date, sizeof (date), t_fmt, localtime (&folder->ff->st->st_mtime)); + mutt_format_s (dest, destlen, fmt, date); } else diff --git a/init.h b/init.h index dd0e99d9..21df2c72 100644 --- a/init.h +++ b/init.h @@ -759,6 +759,7 @@ struct option_t MuttVars[] = { ** .dl ** .dt %C .dd current file number ** .dt %d .dd date/time folder was last modified + ** .dt %D .dd date/time folder was last modified using $$date_format. ** .dt %f .dd filename (``/'' is appended to directory names, ** ``@'' to symbolic links and ``*'' to executable ** files) -- 2.49.0