aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordrry2008-12-22 16:44:10 +0000
committerdrry2008-12-22 16:44:10 +0000
commit75c7b453c482d67af737a96f576a60b8dcd621f5 (patch)
treea74a5305ccf13a44bb44d91095b6920f031bc9b8
parent436964b284b9c2dab986080757ed51463235ba62 (diff)
downloadvimperator-plugins-75c7b453c482d67af737a96f576a60b8dcd621f5.tar.bz2
* 正規表現を修正しました。
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27247 d0d07461-0603-4401-acd4-de1884942a52
-rw-r--r--pluginManager.js13
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};
}