summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/lib/inlines.js16
1 files changed, 10 insertions, 6 deletions
diff --git a/js/lib/inlines.js b/js/lib/inlines.js
index b9bf805..79d2c90 100644
--- a/js/lib/inlines.js
+++ b/js/lib/inlines.js
@@ -87,8 +87,6 @@ var reFinalSpace = / *$/;
var reInitialSpace = /^ */;
-var reAsciiAlnum = /[a-z0-9]/i;
-
var reLinkLabel = /^\[(?:[^\\\[\]]|\\[\[\]]){0,1000}\]/;
// Matches a string of non-special characters.
@@ -238,6 +236,7 @@ var scanDelims = function(cc) {
var numdelims = 0;
var char_before, char_after, cc_after;
var startpos = this.pos;
+ var left_flanking, right_flanking, can_open, can_close;
char_before = this.pos === 0 ? '\n' :
this.subject.charAt(this.pos - 1);
@@ -254,17 +253,22 @@ var scanDelims = function(cc) {
char_after = fromCodePoint(cc_after);
}
- var can_open = numdelims > 0 && !(reWhitespaceChar.test(char_after)) &&
+ left_flanking = numdelims > 0 &&
+ !(reWhitespaceChar.test(char_after)) &&
!(rePunctuation.test(char_after) &&
!(/\s/.test(char_before)) &&
!(rePunctuation.test(char_before)));
- var can_close = numdelims > 0 && !(reWhitespaceChar.test(char_before)) &&
+ right_flanking = numdelims > 0 &&
+ !(reWhitespaceChar.test(char_before)) &&
!(rePunctuation.test(char_before) &&
!(reWhitespaceChar.test(char_after)) &&
!(rePunctuation.test(char_after)));
if (cc === C_UNDERSCORE) {
- can_open = can_open && !((reAsciiAlnum).test(char_before));
- can_close = can_close && !((reAsciiAlnum).test(char_after));
+ can_open = left_flanking && !right_flanking;
+ can_close = right_flanking && !left_flanking;
+ } else {
+ can_open = left_flanking;
+ can_close = right_flanking;
}
this.pos = startpos;
return { numdelims: numdelims,