From e03f5ca7c63d7e14bbf00f44cbb3aca84250923f Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sat, 18 Oct 2014 17:38:00 -0700
Subject: Add unescapeString as method of InlineParser.

---
 js/lib/blocks.js  |  7 ++++---
 js/lib/inlines.js | 12 ++++++------
 2 files changed, 10 insertions(+), 9 deletions(-)

(limited to 'js/lib')

diff --git a/js/lib/blocks.js b/js/lib/blocks.js
index 0a94103..6cedb37 100644
--- a/js/lib/blocks.js
+++ b/js/lib/blocks.js
@@ -2,7 +2,8 @@ var C_GREATERTHAN = 62;
 var C_SPACE = 32;
 var C_OPEN_BRACKET = 91;
 
-var _inlines = require('./inlines');
+var InlineParser = require('./inlines');
+var unescapeString = new InlineParser().unescapeString;
 
 // Returns true if string contains only space characters.
 var isBlank = function(s) {
@@ -566,7 +567,7 @@ var finalize = function(block, line_number) {
 
     case 'FencedCode':
         // first line becomes info string
-        block.info = _inlines.unescapeEntBS(block.strings[0].trim());
+        block.info = unescapeString(block.strings[0].trim());
         if (block.strings.length == 1) {
             block.string_content = '';
         } else {
@@ -658,7 +659,7 @@ function DocParser(){
         doc: makeBlock('Document', 1, 1),
         tip: this.doc,
         refmap: {},
-        inlineParser: new _inlines.InlineParser(),
+        inlineParser: new InlineParser(),
         breakOutOfLists: breakOutOfLists,
         addLine: addLine,
         addChild: addChild,
diff --git a/js/lib/inlines.js b/js/lib/inlines.js
index 0e79556..34f1560 100644
--- a/js/lib/inlines.js
+++ b/js/lib/inlines.js
@@ -76,7 +76,7 @@ var reEntity = new RegExp(ENTITY, 'gi');
 var reMain = /^(?:[_*`\n]+|[\[\]\\!<&*_]|(?: *[^\n `\[\]\\!<&*_]+)+|[ \n]+)/m;
 
 // Replace entities and backslash escapes with literal characters.
-var unescapeEntBS = function(s) {
+var unescapeString = function(s) {
     return s.replace(reAllEscapedChar, '$1')
             .replace(reEntity, entityToChar);
 };
@@ -357,7 +357,7 @@ var parseLinkTitle = function() {
     var title = this.match(reLinkTitle);
     if (title) {
         // chop off quotes from title and unescape:
-        return unescapeEntBS(title.substr(1, title.length - 2));
+        return unescapeString(title.substr(1, title.length - 2));
     } else {
         return null;
     }
@@ -368,11 +368,11 @@ var parseLinkTitle = function() {
 var parseLinkDestination = function() {
     var res = this.match(reLinkDestinationBraces);
     if (res) {  // chop off surrounding <..>:
-        return encodeURI(unescape(unescapeEntBS(res.substr(1, res.length - 2))));
+        return encodeURI(unescape(unescapeString(res.substr(1, res.length - 2))));
     } else {
         res = this.match(reLinkDestination);
         if (res !== null) {
-            return encodeURI(unescape(unescapeEntBS(res)));
+            return encodeURI(unescape(unescapeString(res)));
         } else {
             return null;
         }
@@ -715,6 +715,7 @@ function InlineParser(){
         match: match,
         peek: peek,
         spnl: spnl,
+        unescapeString: unescapeString,
         parseBackticks: parseBackticks,
         parseBackslash: parseBackslash,
         parseAutolink: parseAutolink,
@@ -735,5 +736,4 @@ function InlineParser(){
     };
 }
 
-module.exports.unescapeEntBS = unescapeEntBS;
-module.exports.InlineParser = InlineParser;
+module.exports = InlineParser;
-- 
cgit v1.2.3