summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/table.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/table.rs b/src/table.rs
index f4a0573..bfd9177 100644
--- a/src/table.rs
+++ b/src/table.rs
@@ -75,15 +75,19 @@ fn split_columns(line: &str) -> Option<Vec<(String, bool)>> {
for c in head.chars() {
if Some(c) == context {
context = None;
- } else if "$`*_".contains(c) {
- context = Some(c);
- } else if c == '|' && context.is_none() {
- if !cell.is_empty() {
- cells.push((std::mem::take(&mut cell), false));
- } else if let Some(prev_cell) = cells.last_mut() {
- prev_cell.1 = true;
+ } else if Some(c) == context {
+ context = None;
+ } else if context.is_none() {
+ if "$`*_".contains(c) {
+ context = Some(c);
+ } else if c == '|' && context.is_none() {
+ if !cell.is_empty() {
+ cells.push((std::mem::take(&mut cell), false));
+ } else if let Some(prev_cell) = cells.last_mut() {
+ prev_cell.1 = true;
+ }
+ continue;
}
- continue;
}
cell.push(c);
}