rem: words = unescape(param[1].replace(/\+/g, ' ')).split(/(".*?")|('.*?')|(\s+)/); 
add: var query = unescape(param[1].replace(/\+/g, ' ')); if (query[0] == '!') query = query.slice(1); words = query.split(/(".*?")|('.*?')|(\s+)/); 
context:   function getSearchWords(url) {    if (url.indexOf('?') == -1) return [];    var queryString = url.substr(url.indexOf('?') + 1);    var params = queryString.split('&');    for (var p in params) {      var param = params[p].split('=');      if (param.length < 2) continue;      if (param[0] == 'q' || param[0] == 'p') { // q= for Google, p= for Yahoo        words = unescape(param[1].replace(/\+/g, ' ')).split(/(".*?")|('.*?')|(\s+)/);        var words2 = new Array();        for (var w in words) {          words[w] = words[w].replace(/^\s+$/, '');          if (words[w] != '') {            words2.push(words[w].replace(/^['"]/, '').replace(/['"]$/, ''));          }        }        return words2;      }    }    return [];  }
meta: 1802	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1802/97b5a277e29f488ebed31821fc98190ef99c1623/trac.js/buggy/htdocs/js/trac.js