From: Eric Covener Date: Sat, 18 Mar 2017 02:51:02 +0000 (+0000) Subject: Add IndexOptions UseOldDateFormat X-Git-Tag: 2.5.0-alpha~550 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e87d66b81e4c1c6d3d41882d6e0fa120c8aa33f5;p=apache Add IndexOptions UseOldDateFormat *) 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 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1787525 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index e54947a5b5..7d197ecfcb 100644 --- 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 ] + *) mod_http2: fixed PR60869 by making h2 workers exit explicitly waking up all threads to exit in a defined way. [Stefan Eissing] diff --git a/docs/manual/mod/mod_autoindex.xml b/docs/manual/mod/mod_autoindex.xml index e7fa5d7b74..ea84953fe7 100644 --- a/docs/manual/mod/mod_autoindex.xml +++ b/docs/manual/mod/mod_autoindex.xml @@ -898,6 +898,16 @@ indexing +
UseOldDateFormat + (Apache HTTP Server 2.4.26 and later)
+ +
The date format used for the Last Modified field was + inadvertently changed to "%Y-%m-%d %H:%M" from + "%d-%b-%Y %H:%M" in 2.4.0. Setting this option + restores the date format from 2.2 and earlier.
+
VersionSort (Apache HTTP Server 2.0a3 and later)
diff --git a/modules/generators/mod_autoindex.c b/modules/generators/mod_autoindex.c index 11825cef6c..9ffcc960fe 100644 --- a/modules/generators/mod_autoindex.c +++ b/modules/generators/mod_autoindex.c @@ -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, "style_sheet != NULL) ? " class=\"indexcollastmod\">" : " align=\"right\">",time_str, NULL); + ap_rvputs(r, "style_sheet != NULL) ? " class=\"indexcollastmod\">" : " align=\"right\">", time_str, " ", NULL); } else { ap_rvputs(r, "style_sheet != NULL) ? " class=\"indexcollastmod\"> " : "> ", 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) */