diff options
| author | suVene | 2008-12-24 14:09:16 +0000 | 
|---|---|---|
| committer | suVene | 2008-12-24 14:09:16 +0000 | 
| commit | 960dd0cd28cc0699255732df9c3a985e232a7bb6 (patch) | |
| tree | da44df6f2d24189908f8a229408d05829feb2ace | |
| parent | e4c3fe747c187ce1ad262c5b9e8fe7d902829315 (diff) | |
| download | vimperator-plugins-960dd0cd28cc0699255732df9c3a985e232a7bb6.tar.bz2 | |
response header の解析 bugfix.
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27363 d0d07461-0603-4401-acd4-de1884942a52
| -rw-r--r-- | pluginManager.js | 13 | 
1 files changed, 9 insertions, 4 deletions
| diff --git a/pluginManager.js b/pluginManager.js index bacfb65..ed3d629 100644 --- a/pluginManager.js +++ b/pluginManager.js @@ -1,3 +1,4 @@ +pluginManager.js  var PLUGIN_INFO =  <VimperatorPlugin>  <name>{NAME}</name> @@ -196,7 +197,9 @@ function checkVersion(plugin){  }  function updatePlugin(plugin, checkOnly){      var [localResource, serverResource, store] = getResourceInfo(plugin); - +    var localDate = Date.parse(localResource['Last-Modified']) || 0; +    var serverDate = Date.parse(serverResource.headers['Last-Modified']) || 0; +       var data = {          'Local Version': plugin.info.version || 'unknown',          'Local Last-Modified': localResource['Last-Modified'] || 'unkonwn', @@ -214,10 +217,11 @@ function updatePlugin(plugin, checkOnly){                 localResource['Last-Modified'] == serverResource.headers['Last-Modified']){          data.Information = 'up to date.';      } else if (plugin.info.version > serverResource.version || -               localResource['Last-Modified'] > serverResource.headers['Last-Modified']){ +               localDate > serverDate){          data.information = '<span highlight="WarningMsg">local version is newest.</span>';      } else {          data.Information = overwritePlugin(plugin, serverResource); +        localResource = {}; // cleanup pref.          localResource['Last-Modified'] = serverResource.headers['Last-Modified'];          store.set(plugin.name, localResource);          store.save(); @@ -242,8 +246,9 @@ function getResourceInfo(plugin){          try {              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); +                if (pair && pair.length > 1) { +                    headers[pair.shift()] = pair.join(''); +                }              });          } catch(e){}          let m = /\bPLUGIN_INFO[ \t\r\n]*=[ \t\r\n]*<VimperatorPlugin(?:[ \t\r\n][^>]*)?>([\s\S]+?)<\/VimperatorPlugin[ \t\r\n]*>/(source); | 
