]> granicus.if.org Git - apache/commitdiff
mod_proxy_html: bugfixes and introduce HTML5 doctype
authorNick Kew <niq@apache.org>
Mon, 4 Feb 2013 22:32:25 +0000 (22:32 +0000)
committerNick Kew <niq@apache.org>
Mon, 4 Feb 2013 22:32:25 +0000 (22:32 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1442409 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/filters/mod_proxy_html.c

diff --git a/CHANGES b/CHANGES
index b6d1469e2677fdcd806d9ffd8f6e707a6dfa1dc1..4623b79fc065c13ad3c035bbc1a0fb737b538756 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,15 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) mod_proxy_html: process parsed comments immediately. 
+     Fixes bug (seen in the wild when used with IBM's HTTPD bundle)
+     where parsed comments may be lost. [Nick Kew]
+
+  *) mod_proxy_html: introduce doctype for HTML 5 [Nick Kew]
+
+  *) mod_proxy_html: fix typo-bug processing "strict" vs "transitional"
+     HTML/XHTML [Nick Kew]
+
   *) core: Fix valgrind warning about uninitialized memory in argument to
      semctl. PR 53690. [Mikhail T. <mi+apache aldan algebra com>]
 
index 6cbe87a96882c004cb3c01ad6b35cd594f13a2e8..15a601a548ea8fa24a2d1d2d306041f08c786624 100644 (file)
@@ -126,6 +126,7 @@ static const char *const fpi_xhtml =
         "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
 static const char *const fpi_xhtml_legacy =
         "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
+static const char *const fpi_html5 = "<!DOCTYPE html>\n";
 static const char *const html_etag = ">";
 static const char *const xhtml_etag = " />";
 /*#define DEFAULT_DOCTYPE fpi_html */
@@ -309,6 +310,7 @@ static void pcomment(void *ctxt, const xmlChar *uchars)
         ap_fputs(ctx->f->next, ctx->bb, "<!--");
         AP_fwrite(ctx, chars, strlen(chars), 1);
         ap_fputs(ctx->f->next, ctx->bb, "-->");
+        dump_content(ctx);
     }
 }
 static void pendElement(void *ctxt, const xmlChar *uname)
@@ -323,8 +325,8 @@ static void pendElement(void *ctxt, const xmlChar *uname)
             return;
     
     }
-    else if ((ctx->cfg->doctype == fpi_html)
-             || (ctx->cfg->doctype == fpi_xhtml)) {
+    else if ((ctx->cfg->doctype == fpi_html_legacy)
+             || (ctx->cfg->doctype == fpi_xhtml_legacy)) {
         /* enforce html legacy */
         if (!desc)
             return;
@@ -1128,6 +1130,10 @@ static const char *set_doctype(cmd_parms *cmd, void *CFG,
         else
             cfg->doctype = fpi_html;
     }
+    else if (!strcasecmp(t, "html5")) {
+        cfg->etag = html_etag;
+        cfg->doctype = fpi_html5;
+    }
     else {
         cfg->doctype = apr_pstrdup(cmd->pool, t);
         if (l && ((l[0] == 'x') || (l[0] == 'X')))