Skip to content
Snippets Groups Projects
Commit 59d5c030 authored by Robin Stocker's avatar Robin Stocker
Browse files

Escape whitespace too (weird)

parent f5b04efd
No related branches found
No related tags found
No related merge requests found
...@@ -364,6 +364,17 @@ public class CoreMarkdownNodeRenderer extends AbstractVisitor implements NodeRen ...@@ -364,6 +364,17 @@ public class CoreMarkdownNodeRenderer extends AbstractVisitor implements NodeRen
writer.write("\\" + m.group(2)); writer.write("\\" + m.group(2));
literal = literal.substring(m.end()); literal = literal.substring(m.end());
} }
break;
}
case '\t': {
writer.write("	");
literal = literal.substring(1);
break;
}
case ' ': {
writer.write(" ");
literal = literal.substring(1);
break;
} }
} }
} }
......
...@@ -48,11 +48,16 @@ public class MarkdownWriter { ...@@ -48,11 +48,16 @@ public class MarkdownWriter {
try { try {
for (int i = 0; i < s.length(); i++) { for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i); char ch = s.charAt(i);
if (ch == '\n') {
// Can't escape this with \, use numeric character reference
buffer.append("&#10;");
} else {
if (ch == '\\' || escape.matches(ch)) { if (ch == '\\' || escape.matches(ch)) {
buffer.append('\\'); buffer.append('\\');
} }
buffer.append(ch); buffer.append(ch);
} }
}
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
...@@ -148,6 +148,11 @@ public class MarkdownRendererTest { ...@@ -148,6 +148,11 @@ public class MarkdownRendererTest {
assertRoundTrip("999\\. Foo\n"); assertRoundTrip("999\\. Foo\n");
assertRoundTrip("1\\.\n"); assertRoundTrip("1\\.\n");
assertRoundTrip("1\\) Foo\n"); assertRoundTrip("1\\) Foo\n");
// Escaped whitespace, wow
assertRoundTrip("&#9;foo\n");
assertRoundTrip("&#32; foo\n");
assertRoundTrip("foo&#10;&#10;bar\n");
} }
@Test @Test
......
...@@ -13,6 +13,7 @@ import java.util.LinkedHashMap; ...@@ -13,6 +13,7 @@ import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
/** /**
...@@ -62,8 +63,9 @@ public class SpecMarkdownRendererTest { ...@@ -62,8 +63,9 @@ public class SpecMarkdownRendererTest {
System.out.println(); System.out.println();
} }
int expectedPassed = 650; int expectedPassed = 652;
assertTrue("Expected at least " + expectedPassed + " examples to pass but was " + passes.size(), passes.size() >= expectedPassed); assertTrue("Expected at least " + expectedPassed + " examples to pass but was " + passes.size(), passes.size() >= expectedPassed);
assertEquals(0, fails.size());
} }
private static void printCountsBySection(List<Example> examples) { private static void printCountsBySection(List<Example> examples) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment