Skip to content

Commit 9c677ed

Browse files
committed
reset column state consistently.
1 parent 8ac778a commit 9c677ed

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/cm.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,12 @@ impl<'a, 'o, 'c, 'w> CommonMarkFormatter<'a, 'o, 'c, 'w> {
145145
self.window.push(s.as_bytes()[0]);
146146
}
147147

148+
let last_was_cr = self.window.last() == Some(&b'\n');
149+
148150
if self.options.render.width == 0 {
149151
self.output.write_str(s)?;
150152
} else {
151-
if self.window.last() == Some(&b'\n') {
153+
if last_was_cr {
152154
// Can flush.
153155
self.output.write_str(&self.wrap_buffer)?;
154156
self.output.write_str(s)?;
@@ -158,6 +160,13 @@ impl<'a, 'o, 'c, 'w> CommonMarkFormatter<'a, 'o, 'c, 'w> {
158160
}
159161
}
160162

163+
if last_was_cr {
164+
self.column = 0;
165+
self.begin_line = true;
166+
self.begin_content = true;
167+
self.last_breakable = 0;
168+
}
169+
161170
Ok(())
162171
}
163172

@@ -200,12 +209,9 @@ impl<'a, 'o, 'c, 'w> CommonMarkFormatter<'a, 'o, 'c, 'w> {
200209
self.write("\n")?;
201210
if self.need_cr > 1 {
202211
self.write_prefix()?;
212+
self.column = self.prefix.len();
203213
}
204214
}
205-
self.column = 0;
206-
self.last_breakable = 0;
207-
self.begin_line = true;
208-
self.begin_content = true;
209215
self.need_cr -= 1;
210216
}
211217

@@ -239,10 +245,6 @@ impl<'a, 'o, 'c, 'w> CommonMarkFormatter<'a, 'o, 'c, 'w> {
239245
} else if escaping == Escaping::Literal {
240246
if bytes[i] == b'\n' {
241247
self.write("\n")?;
242-
self.column = 0;
243-
self.begin_line = true;
244-
self.begin_content = true;
245-
self.last_breakable = 0;
246248
} else {
247249
let cs = char::to_string(&c);
248250
self.write(&cs)?;

0 commit comments

Comments
 (0)