diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-03-06 20:16:53 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-03-06 20:16:53 -0800 |
| commit | e536e8a93354cd2b4e5ecc87eb0fdf30b835859c (patch) | |
| tree | e107ba6c7641b7b406d384a3a0958f97a3e488e0 /src | |
| parent | ae5ea85c361e2b383b01c1101d731843795ea0cb (diff) | |
| download | rust-e536e8a93354cd2b4e5ecc87eb0fdf30b835859c.tar.gz rust-e536e8a93354cd2b4e5ecc87eb0fdf30b835859c.zip | |
rustdoc: Don't escape characters between backticks
Diffstat (limited to 'src')
| -rw-r--r-- | src/rustdoc/html_escape_pass.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/rustdoc/html_escape_pass.rs b/src/rustdoc/html_escape_pass.rs index b3c1c5d5fc8..f1a32d5a019 100644 --- a/src/rustdoc/html_escape_pass.rs +++ b/src/rustdoc/html_escape_pass.rs @@ -7,6 +7,20 @@ fn mk_pass() -> pass { } fn escape(s: str) -> str { + let parts = str::split_char(s, '`'); + let i = 0; + let parts = vec::map(parts) {|part| + i += 1; + if i % 2 != 0 { + escape_(part) + } else { + part + } + }; + ret str::connect(parts, "`"); +} + +fn escape_(s: str) -> str { let s = str::replace(s, "&", "&"); let s = str::replace(s, "<", "<"); let s = str::replace(s, ">", ">"); @@ -22,3 +36,9 @@ fn test() { assert escape("\"") == """; assert escape("<>&\"") == "<>&""; } + +#[test] +fn should_not_escape_characters_in_backticks() { + // Markdown will quote things in backticks itself + assert escape("<`<`<`<`<") == "<`<`<`<`<"; +} |
