rem: if (str.value.data.indexOf("\n") == -1) 
add:     var lines = str.value.data.split("\n"); var m = lines[0].match(client.linkRE);  if ((str.value.data.indexOf("\n") == -1) || (m && (m[0] == lines[0]) && (lines.length == 2))) 
context: function phand_onpaste(e, data){    // XXXbug 329487: The effect of onPasteOrDrop's return value is actually the    //                exact opposite of the definition in the IDL.    // Don't mess with the multiline box at all.    if (client.prefs["multiline"])        return true;    var str = new Object();    var strlen = new Object();    data.getTransferData("text/unicode", str, strlen);    str.value.QueryInterface(Components.interfaces.nsISupportsString);    str.value.data = str.value.data.replace(/(^\s*[\r\n]+|[\r\n]+\s*$)/g, "");    if (str.value.data.indexOf("\n") == -1)    {        // If, after stripping leading/trailing empty lines, the string is a        // single line, put it back in the transferable and return.        data.setTransferData("text/unicode", str.value,                             str.value.data.length * 2);        return true;    }    // If it's a drop, move the text cursor to the mouse position.    if (e && ("rangeOffset" in e))        client.input.setSelectionRange(e.rangeOffset, e.rangeOffset);    str = client.input.value.substr(0, client.input.selectionStart) +          str.value.data + client.input.value.substr(client.input.selectionEnd);    client.prefs["multiline"] = true;    client.input.value = str;    return false;}
meta: 3298	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3298/248fb0408c3f5139f4b325341c7b666836917c0d/handlers.js/clean/xul/content/handlers.js