]> granicus.if.org Git - neomutt/commitdiff
add %D format string to $folder_format to expand the time based on $date_format.
authorMichael Elkins <me@mutt.org>
Fri, 6 Aug 2010 18:45:18 +0000 (11:45 -0700)
committerMichael Elkins <me@mutt.org>
Fri, 6 Aug 2010 18:45:18 +0000 (11:45 -0700)
properly set the locale for LC_TIME prior to calling strftime()
closes #1734
closes #3406

browser.c
init.h

index d617ee5d6e26951368a4bbbff0f1504dc3568de5..1a59b3f4b58124becff6e08fdf1fe304c1ea103a 100644 (file)
--- 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 dd0e99d97efd9f15cfd6061a91ccbbbe3f146a76..21df2c72e507ec6d725fc2ca47f17e059171b141 100644 (file)
--- 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)