]> granicus.if.org Git - apache/commitdiff
Add IndexOptions UseOldDateFormat
authorEric Covener <covener@apache.org>
Sat, 18 Mar 2017 02:51:02 +0000 (02:51 +0000)
committerEric Covener <covener@apache.org>
Sat, 18 Mar 2017 02:51:02 +0000 (02:51 +0000)
  *) mod_autoindex: Add IndexOptions UseOldDateFormat to allow the date
     format from 2.2 in the Last Modified column. PR60846.

   PR34014 / r903052 changed date format for autoindex

Submitted By: Hank Ibell <hwibell gmail.com>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1787525 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
docs/manual/mod/mod_autoindex.xml
modules/generators/mod_autoindex.c

diff --git a/CHANGES b/CHANGES
index e54947a5b591e4bb167152eac2c3ce1acdf041f2..7d197ecfcb4d80dac1140cd53d70cdc669559a88 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) mod_autoindex: Add IndexOptions UseOldDateFormat to allow the date
+     format from 2.2 in the Last Modified column. PR60846.
+     [Hank Ibell <hwibell gmail.com>]
+
   *) mod_http2: fixed PR60869 by making h2 workers exit explicitly waking up
      all threads to exit in a defined way. [Stefan Eissing]
      
index e7fa5d7b7480aacfede56d90699dd9b95d68d603..ea84953fe75d0e7e44679c29917773a68a0ed4b4 100644 (file)
@@ -898,6 +898,16 @@ indexing</description>
       </highlight>
       </dd>
 
+      <dt><a name="indexoptions.useolddateformat"
+               id="indexoptions.useolddateformat"
+      >UseOldDateFormat</a>
+      (<em>Apache HTTP Server 2.4.26 and later</em>)</dt>
+
+      <dd>The date format used for the <code>Last Modified</code> field was 
+      inadvertently changed to <code>"%Y-%m-%d %H:%M"</code> from 
+      <code>"%d-%b-%Y %H:%M"</code> in 2.4.0. Setting this option 
+      restores the date format from 2.2 and earlier.</dd>
+
       <dt><a name="indexoptions.versionsort"
                id="indexoptions.versionsort">VersionSort</a>
       (<em>Apache HTTP Server 2.0a3 and later</em>)</dt>
index 11825cef6cde3ec060daa67cfc3f601098dc7e56..9ffcc960fe44d4e66ebfa84d38fde77fff102396 100644 (file)
@@ -144,6 +144,7 @@ typedef struct autoindex_config_struct {
 
     char *ctype;
     char *charset;
+    char *datetime_format;
 } autoindex_config_rec;
 
 static char c_by_encoding, c_by_type, c_by_path;
@@ -497,6 +498,9 @@ static const char *add_opts(cmd_parms *cmd, void *d, int argc, char *const argv[
         else if (!strncasecmp(w, "Charset=", 8)) {
             d_cfg->charset = apr_pstrdup(cmd->pool, &w[8]);
         }
+        else if (!strncasecmp(w, "UseOldDateFormat", 16)) {
+            d_cfg->datetime_format = "%d-%b-%Y %H:%M";
+        }
         else {
             return "Invalid directory indexing option";
         }
@@ -656,6 +660,7 @@ static void *merge_autoindex_configs(apr_pool_t *p, void *basev, void *addv)
 
     new->ctype = add->ctype ? add->ctype : base->ctype;
     new->charset = add->charset ? add->charset : base->charset;
+    new->datetime_format = add->datetime_format ? add->datetime_format : base->datetime_format;
 
     new->alt_list = apr_array_append(p, add->alt_list, base->alt_list);
     new->desc_list = apr_array_append(p, add->desc_list, base->desc_list);
@@ -1509,6 +1514,7 @@ static void output_directories(struct ent **ar, int n,
     apr_pool_t *scratch;
     int name_width;
     int desc_width;
+    char *datetime_format;
     char *name_scratch;
     char *pad_scratch;
     char *breakrow = "";
@@ -1517,6 +1523,7 @@ static void output_directories(struct ent **ar, int n,
 
     name_width = d->name_width;
     desc_width = d->desc_width;
+    datetime_format = d->datetime_format ? d->datetime_format : "%Y-%m-%d %H:%M";
 
     if ((autoindex_opts & (FANCY_INDEXING | TABLE_INDEXING))
                         == FANCY_INDEXING) {
@@ -1756,9 +1763,9 @@ static void output_directories(struct ent **ar, int n,
                     apr_time_exp_t ts;
                     apr_time_exp_lt(&ts, ar[x]->lm);
                     apr_strftime(time_str, &rv, sizeof(time_str),
-                                 "%Y-%m-%d %H:%M  ",
+                                 datetime_format,
                                  &ts);
-                    ap_rvputs(r, "</td><td", (d->style_sheet != NULL) ? " class=\"indexcollastmod\">" : " align=\"right\">",time_str, NULL);
+                    ap_rvputs(r, "</td><td", (d->style_sheet != NULL) ? " class=\"indexcollastmod\">" : " align=\"right\">", time_str, "  ", NULL);
                 }
                 else {
                     ap_rvputs(r, "</td><td", (d->style_sheet != NULL) ? " class=\"indexcollastmod\">&nbsp;" : ">&nbsp;", NULL);
@@ -1844,8 +1851,9 @@ static void output_directories(struct ent **ar, int n,
                     apr_time_exp_t ts;
                     apr_time_exp_lt(&ts, ar[x]->lm);
                     apr_strftime(time_str, &rv, sizeof(time_str),
-                                "%Y-%m-%d %H:%M  ", &ts);
-                    ap_rputs(time_str, r);
+                                datetime_format,
+                                &ts);
+                    ap_rvputs(r, time_str, "  ", NULL);
                 }
                 else {
                     /*Length="1975-04-07 01:23  " (see 4 lines above) */