diff options
author | drry | 2008-12-22 16:44:10 +0000 |
---|---|---|
committer | drry | 2008-12-22 16:44:10 +0000 |
commit | 75c7b453c482d67af737a96f576a60b8dcd621f5 (patch) | |
tree | a74a5305ccf13a44bb44d91095b6920f031bc9b8 /pluginManager.js | |
parent | 436964b284b9c2dab986080757ed51463235ba62 (diff) | |
download | vimperator-plugins-75c7b453c482d67af737a96f576a60b8dcd621f5.tar.bz2 |
* 正規表現を修正しました。
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27247 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'pluginManager.js')
-rw-r--r-- | pluginManager.js | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/pluginManager.js b/pluginManager.js index 23be074..bacfb65 100644 --- a/pluginManager.js +++ b/pluginManager.js @@ -240,13 +240,20 @@ function getResourceInfo(plugin){ let source = xhr.responseText || ''; let headers = {}; try { - xhr.getAllResponseHeaders().split('\n').forEach(function(h) { + xhr.getAllResponseHeaders().split(/\r?\n/).forEach(function(h){ var pair = h.split(': '); if (pair && pair.length > 1) headers[pair.shift()] = pair.join('').substring(1, pair.join('').length - 1); }); - } catch(e) {} - [,version] = /PLUGIN_INFO[\s\S]*<VimperatorPlugin>[\s\S]*<version>(.*)<\/version>[\s\S]*<\/VimperatorPlugin>/.exec(source); + } catch(e){} + let m = /\bPLUGIN_INFO[ \t\r\n]*=[ \t\r\n]*<VimperatorPlugin(?:[ \t\r\n][^>]*)?>([\s\S]+?)<\/VimperatorPlugin[ \t\r\n]*>/(source); + if (m){ + m = m[1].replace(/(?:<!(?:\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]|--(?:[^-]|-(?!-))*--)>)+/g, ''); + m = /^[\w\W]*?<version(?:[ \t\r\n][^>]*)?>([^<]+)<\/version[ \t\r\n]*>/(m); + if (m){ + version = m[1]; + } + } serverResource = {version: version, source: source, headers: headers}; } |