|
|
|
From eae886def89134a34bec859c5d20d8c1b3b5baa7 Mon Sep 17 00:00:00 2001
|
|
|
|
From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= <zebob.m@gmail.com>
|
|
|
|
Date: Thu, 1 Aug 2019 00:18:55 +0200
|
|
|
|
Subject: [PATCH 1/2] Bump pulldown-cmark to 0.6
|
|
|
|
MIME-Version: 1.0
|
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
|
|
Signed-off-by: Robert-André Mauchin <zebob.m@gmail.com>
|
|
|
|
---
|
|
|
|
src/lib.rs | 26 +++++++++-----------------
|
|
|
|
1 file changed, 9 insertions(+), 17 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/src/lib.rs b/src/lib.rs
|
|
|
|
index 14ac237..557459d 100644
|
|
|
|
--- a/src/lib.rs
|
|
|
|
+++ b/src/lib.rs
|
|
|
|
@@ -174,7 +174,7 @@ fn extract_tests(config: &Config) -> Result<DocTestSuite, IoError> {
|
|
|
|
enum Buffer {
|
|
|
|
None,
|
|
|
|
Code(Vec<String>),
|
|
|
|
- Header(String),
|
|
|
|
+ Heading(String),
|
|
|
|
}
|
|
|
|
|
|
|
|
fn extract_tests_from_file(path: &Path) -> Result<DocTest, IoError> {
|
|
|
|
@@ -205,23 +205,15 @@ fn extract_tests_from_string(s: &str, file_stem: &str) -> (Vec<Test>, Option<Str
|
|
|
|
// Oh this isn't actually a test but a legacy template
|
|
|
|
let mut old_template = None;
|
|
|
|
|
|
|
|
- // In order to call get_offset() on the parser,
|
|
|
|
- // this loop must not hold an exclusive reference to the parser.
|
|
|
|
- loop {
|
|
|
|
- let offset = parser.get_offset();
|
|
|
|
- let line_number = bytecount::count(&s.as_bytes()[0..offset], b'\n');
|
|
|
|
- let event = if let Some(event) = parser.next() {
|
|
|
|
- event
|
|
|
|
- } else {
|
|
|
|
- break;
|
|
|
|
- };
|
|
|
|
+ for (event, range) in parser.into_offset_iter() {
|
|
|
|
+ let line_number = bytecount::count(&s.as_bytes()[0..range.start], b'\n');
|
|
|
|
match event {
|
|
|
|
- Event::Start(Tag::Header(level)) if level < 3 => {
|
|
|
|
- buffer = Buffer::Header(String::new());
|
|
|
|
+ Event::Start(Tag::Heading(level)) if level < 3 => {
|
|
|
|
+ buffer = Buffer::Heading(String::new());
|
|
|
|
}
|
|
|
|
- Event::End(Tag::Header(level)) if level < 3 => {
|
|
|
|
+ Event::End(Tag::Heading(level)) if level < 3 => {
|
|
|
|
let cur_buffer = mem::replace(&mut buffer, Buffer::None);
|
|
|
|
- if let Buffer::Header(sect) = cur_buffer {
|
|
|
|
+ if let Buffer::Heading(sect) = cur_buffer {
|
|
|
|
section = Some(sanitize_test_name(§));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -236,8 +228,8 @@ fn extract_tests_from_string(s: &str, file_stem: &str) -> (Vec<Test>, Option<Str
|
|
|
|
if buf.is_empty() {
|
|
|
|
code_block_start = line_number;
|
|
|
|
}
|
|
|
|
- buf.push(text.into_owned());
|
|
|
|
- } else if let Buffer::Header(ref mut buf) = buffer {
|
|
|
|
+ buf.extend(text.lines().map(|s| format!("{}\n", s)));
|
|
|
|
+ } else if let Buffer::Heading(ref mut buf) = buffer {
|
|
|
|
buf.push_str(&*text);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
--
|
|
|
|
2.30.0.rc2
|
|
|
|
|