diff options
| author | Liigo Zhuang <com.liigo@gmail.com> | 2014-12-25 15:01:24 +0800 |
|---|---|---|
| committer | Liigo Zhuang <com.liigo@gmail.com> | 2015-01-21 21:31:09 +0800 |
| commit | 17ebb6053edd7b7d6e8ab5f59dd093f53db7ae44 (patch) | |
| tree | aac84b1cca8e3549bb793813343f70a2c1a647ba | |
| parent | 52997408ec4265939c8017ef8de24babe4b73b7f (diff) | |
| download | rust-17ebb6053edd7b7d6e8ab5f59dd093f53db7ae44.tar.gz rust-17ebb6053edd7b7d6e8ab5f59dd093f53db7ae44.zip | |
fix fallout
| -rw-r--r-- | src/librustdoc/html/markdown.rs | 30 | ||||
| -rw-r--r-- | src/librustdoc/html/render.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/html/static/main.js | 5 |
3 files changed, 21 insertions, 16 deletions
diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs index 7ebb3d4b86a..45b77ea2ddd 100644 --- a/src/librustdoc/html/markdown.rs +++ b/src/librustdoc/html/markdown.rs @@ -72,6 +72,13 @@ type blockcodefn = extern "C" fn(*mut hoedown_buffer, *const hoedown_buffer, type headerfn = extern "C" fn(*mut hoedown_buffer, *const hoedown_buffer, libc::c_int, *mut libc::c_void); +type linkfn = extern "C" fn (*mut hoedown_buffer, *const hoedown_buffer, + *const hoedown_buffer, *const hoedown_buffer, + *mut libc::c_void) -> libc::c_int; + +type normaltextfn = extern "C" fn(*mut hoedown_buffer, *const hoedown_buffer, + *mut libc::c_void); + #[repr(C)] struct hoedown_renderer { opaque: *mut libc::c_void, @@ -83,21 +90,18 @@ struct hoedown_renderer { *mut libc::c_void)>, header: Option<headerfn>, - other_block_level_callbacks: [libc::size_t, ..9], + other_block_level_callbacks: [libc::size_t; 9], /* span level callbacks - NULL or return 0 prints the span verbatim */ - other_span_level_callbacks_1: [libc::size_t, ..9], - link: Option<extern "C" fn (*mut hoedown_buffer, *const hoedown_buffer, - *const hoedown_buffer, *const hoedown_buffer, - *mut libc::c_void) -> libc::c_int>, - other_span_level_callbacks_2: [libc::size_t, ..5], + other_span_level_callbacks_1: [libc::size_t; 9], + link: Option<linkfn>, + other_span_level_callbacks_2: [libc::size_t; 5], // hoedown will add `math` callback here, but we use an old version of it. /* low level callbacks - NULL copies input directly into the output */ entity: Option<extern "C" fn(*mut hoedown_buffer, *const hoedown_buffer, *mut libc::c_void)>, - normal_text: Option<extern "C" fn(*mut hoedown_buffer, *const hoedown_buffer, - *mut libc::c_void)>, + normal_text: Option<normaltextfn>, /* header and footer */ doc_header: Option<extern "C" fn(*mut hoedown_buffer, *mut libc::c_void)>, @@ -502,14 +506,18 @@ pub fn plain_summary_line(md: &str) -> String { let mut plain_renderer: hoedown_renderer = ::std::mem::zeroed(); let renderer = &mut plain_renderer as *mut hoedown_renderer; (*renderer).opaque = ob as *mut libc::c_void; - (*renderer).link = Some(link); - (*renderer).normal_text = Some(normal_text); + (*renderer).link = Some(link as linkfn); + (*renderer).normal_text = Some(normal_text as normaltextfn); let document = hoedown_document_new(renderer, HOEDOWN_EXTENSIONS, 16); hoedown_document_render(document, ob, md.as_ptr(), md.len() as libc::size_t); hoedown_document_free(document); - let plain = String::from_raw_buf_len((*ob).data, (*ob).size as uint); + let plain_slice = slice::from_raw_buf(&(*ob).data, (*ob).size as uint); + let plain = match str::from_utf8(plain_slice) { + Ok(s) => s.to_string(), + Err(_) => "".to_string(), + }; hoedown_buffer_free(ob); plain } diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 3ec29dab555..86c945125f6 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -67,7 +67,7 @@ use html::markdown; use stability_summary; /// A pair of name and its optional document. -#[deriving(Clone, Eq, Ord, PartialEq, PartialOrd)] +#[derive(Clone, Eq, Ord, PartialEq, PartialOrd)] pub struct NameDoc(String, Option<String>); /// Major driving force in all rustdoc rendering. This contains information diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 7e1e2ae7765..efb442dbe34 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -671,10 +671,7 @@ function plainSummaryLine(markdown) { var str = markdown.replace(/\n/g, ' ') - str = str.replace(/</g, "<") - str = str.replace(/>/g, ">") - str = str.replace(/"/g, """) - str = str.replace(/'/g, "'") + str = str.replace(/'/g, "\'") str = str.replace(/^#+? (.+?)/, "$1") str = str.replace(/\[(.*?)\]\(.*?\)/g, "$1") str = str.replace(/\[(.*?)\]\[.*?\]/g, "$1") |
