diff options
Diffstat (limited to 'src/table.rs')
| -rw-r--r-- | src/table.rs | 20 |
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); } |
