about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLiigo Zhuang <com.liigo@gmail.com>2014-12-25 15:01:24 +0800
committerLiigo Zhuang <com.liigo@gmail.com>2015-01-21 21:31:09 +0800
commit17ebb6053edd7b7d6e8ab5f59dd093f53db7ae44 (patch)
treeaac84b1cca8e3549bb793813343f70a2c1a647ba
parent52997408ec4265939c8017ef8de24babe4b73b7f (diff)
downloadrust-17ebb6053edd7b7d6e8ab5f59dd093f53db7ae44.tar.gz
rust-17ebb6053edd7b7d6e8ab5f59dd093f53db7ae44.zip
fix fallout
-rw-r--r--src/librustdoc/html/markdown.rs30
-rw-r--r--src/librustdoc/html/render.rs2
-rw-r--r--src/librustdoc/html/static/main.js5
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, "&lt;")
-            str = str.replace(/>/g, "&gt;")
-            str = str.replace(/"/g, "&quot;")
-            str = str.replace(/'/g, "&#39;")
+            str = str.replace(/'/g, "\'")
             str = str.replace(/^#+? (.+?)/, "$1")
             str = str.replace(/\[(.*?)\]\(.*?\)/g, "$1")
             str = str.replace(/\[(.*?)\]\[.*?\]/g, "$1")