From de2a35a4dcb3b051df328ec2c204f08c77a5ad3d Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 26 Sep 2014 10:45:51 -0700 Subject: Simple fallback if we don't match emphasis. The other approach led to wrong results on: *hi _there* --- js/stmd.js | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) (limited to 'js') diff --git a/js/stmd.js b/js/stmd.js index 552fe16..589ac03 100755 --- a/js/stmd.js +++ b/js/stmd.js @@ -302,6 +302,9 @@ this.pos += numdelims; + var fallbackpos = this.pos; + var fallback = Str(this.subject.slice(startpos, fallbackpos)); + var next_inline; var first = []; var second = []; @@ -453,31 +456,9 @@ } - switch (state) { - case 1: // ***a - return [Str(c+c+c)].concat(first); - case 2: // **a - return [Str(c+c)].concat(first); - case 3: // *a - return [Str(c)].concat(first); - case 4: // ***a**b - case 6: // ***a** b - return [Str(c+c+c)] - .concat(first, [Str(c+c)], second); - case 5: // ***a*b - case 7: // ***a* b - return [Str(c+c+c)] - .concat(first, [Str(c)], second); - case 8: // **a *b - return [Str(c+c)] - .concat(first, [Str(c)], second); - case 9: // *a **b - return [Str(c)] - .concat(first, [Str(c+c)], second); - default: - console.log("Unknown state, parseEmphasis"); - // shouldn't happen - } + // we didn't match emphasis: fallback + this.pos = fallbackpos; + return [fallback]; }; -- cgit v1.2.3