Skip to content

Commit 5e7eb4b

Browse files
committed
---
yaml --- r: 11681 b: refs/heads/master c: e536e8a h: refs/heads/master i: 11679: e76fc25 v: v3
1 parent 19e81f6 commit 5e7eb4b

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: ae5ea85c361e2b383b01c1101d731843795ea0cb
2+
refs/heads/master: e536e8a93354cd2b4e5ecc87eb0fdf30b835859c
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf

trunk/src/rustdoc/html_escape_pass.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,20 @@ fn mk_pass() -> pass {
77
}
88

99
fn escape(s: str) -> str {
10+
let parts = str::split_char(s, '`');
11+
let i = 0;
12+
let parts = vec::map(parts) {|part|
13+
i += 1;
14+
if i % 2 != 0 {
15+
escape_(part)
16+
} else {
17+
part
18+
}
19+
};
20+
ret str::connect(parts, "`");
21+
}
22+
23+
fn escape_(s: str) -> str {
1024
let s = str::replace(s, "&", "&");
1125
let s = str::replace(s, "<", "&lt;");
1226
let s = str::replace(s, ">", "&gt;");
@@ -22,3 +36,9 @@ fn test() {
2236
assert escape("\"") == "&quot;";
2337
assert escape("<>&\"") == "&lt;&gt;&amp;&quot;";
2438
}
39+
40+
#[test]
41+
fn should_not_escape_characters_in_backticks() {
42+
// Markdown will quote things in backticks itself
43+
assert escape("<`<`<`<`<") == "&lt;`<`&lt;`<`&lt;";
44+
}

0 commit comments

Comments
 (0)