Skip to content

Commit

Permalink
Minor cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
kivikakk committed Sep 11, 2017
1 parent 4ecc1d7 commit b06cc6c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 24 deletions.
27 changes: 12 additions & 15 deletions src/html.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,18 +108,17 @@ fn tagfilter(literal: &[u8]) -> bool {
}

fn tagfilter_block(input: &[u8], o: &mut Write) -> io::Result<()> {
let src = input;
let size = src.len();
let size = input.len();
let mut i = 0;

while i < size {
let org = i;
while i < size && src[i] != b'<' {
while i < size && input[i] != b'<' {
i += 1;
}

if i > org {
try!(o.write_all(&src[org..i]));
try!(o.write_all(&input[org..i]));
}

if i >= size {
Expand Down Expand Up @@ -154,25 +153,24 @@ impl<'o> HtmlFormatter<'o> {
}

fn escape(&mut self, buffer: &[u8]) -> io::Result<()> {
let src = buffer;
let size = src.len();
let size = buffer.len();
let mut i = 0;

while i < size {
let org = i;
while i < size && !NEEDS_ESCAPED[src[i] as usize] {
while i < size && !NEEDS_ESCAPED[buffer[i] as usize] {
i += 1;
}

if i > org {
try!(self.output.write_all(&src[org..i]));
try!(self.output.write_all(&buffer[org..i]));
}

if i >= size {
break;
}

match src[i] as char {
match buffer[i] as char {
'"' => {
try!(self.output.write_all(b"&quot;"));
}
Expand Down Expand Up @@ -208,32 +206,31 @@ impl<'o> HtmlFormatter<'o> {
};
}

let src = buffer;
let size = src.len();
let size = buffer.len();
let mut i = 0;

while i < size {
let org = i;
while i < size && HREF_SAFE[src[i] as usize] {
while i < size && HREF_SAFE[buffer[i] as usize] {
i += 1;
}

if i > org {
try!(self.output.write_all(&src[org..i]));
try!(self.output.write_all(&buffer[org..i]));
}

if i >= size {
break;
}

match src[i] as char {
match buffer[i] as char {
'&' => {
try!(self.output.write_all(b"&amp;"));
}
'\'' => {
try!(self.output.write_all(b"&#x27;"));
}
_ => try!(write!(self.output, "%{:02X}", src[i])),
_ => try!(write!(self.output, "%{:02X}", buffer[i])),
}

i += 1;
Expand Down
16 changes: 7 additions & 9 deletions src/parser/inlines.rs
Original file line number Diff line number Diff line change
Expand Up @@ -373,14 +373,12 @@ impl<'a, 'r, 'o, 'd, 'i> Subject<'a, 'r, 'o, 'd, 'i> {
}
}

pub fn take_while(&mut self, c: u8) -> Vec<u8> {
let mut v = Vec::with_capacity(10);
// TODO
pub fn take_while(&mut self, c: u8) -> usize {
let start_pos = self.pos;
while self.peek_char() == Some(&c) {
v.push(self.input[self.pos]);
self.pos += 1;
}
v
self.pos - start_pos
}

pub fn scan_to_closing_backtick(&mut self, openticklength: usize) -> Option<usize> {
Expand All @@ -400,7 +398,7 @@ impl<'a, 'r, 'o, 'd, 'i> Subject<'a, 'r, 'o, 'd, 'i> {
self.scanned_for_backticks = true;
return None;
}
let numticks = self.take_while(b'`').len();
let numticks = self.take_while(b'`');
if numticks <= MAXBACKTICKS {
self.backticks[numticks] = self.pos - numticks;
}
Expand All @@ -413,15 +411,15 @@ impl<'a, 'r, 'o, 'd, 'i> Subject<'a, 'r, 'o, 'd, 'i> {
pub fn handle_backticks(&mut self) -> &'a AstNode<'a> {
let openticks = self.take_while(b'`');
let startpos = self.pos;
let endpos = self.scan_to_closing_backtick(openticks.len());
let endpos = self.scan_to_closing_backtick(openticks);

match endpos {
None => {
self.pos = startpos;
make_inline(self.arena, NodeValue::Text(openticks))
make_inline(self.arena, NodeValue::Text(vec![b'`'; openticks]))
}
Some(endpos) => {
let mut buf = &self.input[startpos..endpos - openticks.len()];
let mut buf = &self.input[startpos..endpos - openticks];
buf = strings::trim_slice(buf);
let buf = strings::normalize_whitespace(buf);
make_inline(self.arena, NodeValue::Code(buf))
Expand Down

0 comments on commit b06cc6c

Please sign in to comment.