diff --git a/src/rustdoc/escape_pass.rs b/src/rustdoc/escape_pass.rs new file mode 100644 index 00000000000..c9dada9026f --- /dev/null +++ b/src/rustdoc/escape_pass.rs @@ -0,0 +1,18 @@ +#[doc = "Escapes text sequences"]; + +export mk_pass; + +fn mk_pass() -> pass { + text_pass::mk_pass("escape", escape) +} + +fn escape(s: str) -> str { + str::replace(s, "\\", "\\\\") +} + +#[test] +fn should_escape_backslashes() { + let s = "\\n"; + let r = escape(s); + assert r == "\\\\n"; +} diff --git a/src/rustdoc/rustdoc.rc b/src/rustdoc/rustdoc.rc index a4df1c7e8ea..111e813b211 100644 --- a/src/rustdoc/rustdoc.rc +++ b/src/rustdoc/rustdoc.rc @@ -38,4 +38,5 @@ mod sort_item_type_pass; mod reexport_pass; mod par; mod page_pass; -mod sectionalize_pass; \ No newline at end of file +mod sectionalize_pass; +mod escape_pass; diff --git a/src/rustdoc/rustdoc.rs b/src/rustdoc/rustdoc.rs index 8c50b492053..ce24f9b1aee 100755 --- a/src/rustdoc/rustdoc.rs +++ b/src/rustdoc/rustdoc.rs @@ -143,6 +143,7 @@ fn run(config: config::config) { tystr_pass::mk_pass(), path_pass::mk_pass(), attr_pass::mk_pass(), + escape_pass::mk_pass(), prune_hidden_pass::mk_pass(), desc_to_brief_pass::mk_pass(), unindent_pass::mk_pass(),