about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorOliver Middleton <olliemail27@gmail.com>2020-01-15 22:42:04 +0000
committerOliver Middleton <olliemail27@gmail.com>2020-01-15 22:42:04 +0000
commitbaf2921ebc5f5da879d00dd5fb529e5d274dce6b (patch)
tree48c9c0a0ff085f6bff8eb550605abd93da4cbc3d /src
parent31dd4f4acbcbdb02b0745d2136399ed664a28050 (diff)
downloadrust-baf2921ebc5f5da879d00dd5fb529e5d274dce6b.tar.gz
rust-baf2921ebc5f5da879d00dd5fb529e5d274dce6b.zip
rustdoc: HTML escape codeblocks which fail syntax highlighting
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/html/highlight.rs2
-rw-r--r--src/test/rustdoc/bad-codeblock-syntax.rs8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/librustdoc/html/highlight.rs b/src/librustdoc/html/highlight.rs
index fb6bdcdc9f4..aa52b769c38 100644
--- a/src/librustdoc/html/highlight.rs
+++ b/src/librustdoc/html/highlight.rs
@@ -65,7 +65,7 @@ pub fn render_with_highlighting(
         Err(()) => {
             // If errors are encountered while trying to highlight, just emit
             // the unhighlighted source.
-            write!(out, "<pre><code>{}</code></pre>", src).unwrap();
+            write!(out, "<pre><code>{}</code></pre>", Escape(src)).unwrap();
         }
     }
 
diff --git a/src/test/rustdoc/bad-codeblock-syntax.rs b/src/test/rustdoc/bad-codeblock-syntax.rs
index 0ab2f68fcde..ae8fbe4a2a8 100644
--- a/src/test/rustdoc/bad-codeblock-syntax.rs
+++ b/src/test/rustdoc/bad-codeblock-syntax.rs
@@ -25,3 +25,11 @@ pub fn quux() {}
 /// \_
 /// ```
 pub fn ok() {}
+
+// @has bad_codeblock_syntax/fn.escape.html
+// @has - '//*[@class="docblock"]/pre/code' '\_ <script>alert("not valid Rust");</script>'
+/// ```
+/// \_
+/// <script>alert("not valid Rust");</script>
+/// ```
+pub fn escape() {}