X-Git-Url: https://git.ktnx.net/?p=icedeb.git;a=blobdiff_plain;f=chrome%2Fcontent%2Ficedeb.js;h=742ca822dafc54c2a1631d55472f31e55995218b;hp=391d2538bae14345cd8bbeafcd5620ba14009c92;hb=233b8f5208d72f460fcb8637c27d8109b39dd940;hpb=a5bc91045e5cdc4818fd3dfd16e9dda04ed38a31 diff --git a/chrome/content/icedeb.js b/chrome/content/icedeb.js index 391d253..742ca82 100644 --- a/chrome/content/icedeb.js +++ b/chrome/content/icedeb.js @@ -15,14 +15,18 @@ IceDeb = { : clip.kGlobalClipboard ); - var str = new Object; - var strLength = new Object; - trans.getTransferData("text/unicode", str, strLength); + var s = new Object; + var p; + var len = new Object; + trans.getTransferData("text/unicode", s, len); var text = null; + var res; - if (str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString); - if (str) text = str.data.substring(0, strLength.value / 2); + if (s) + p = s.value.QueryInterface(Components.interfaces.nsISupportsString, res); + if (p) + text = p.data.substring(0, len.value / 2); return text; }, @@ -33,10 +37,8 @@ IceDeb = { do { oldword = word; - word = word.replace(/^\s+/, ''); - word = word.replace(/\s+$/, ''); - word = word.replace(/^#/, ''); - word = word.replace(/[-:\/,.]$/, ''); + word = word.replace(/^[^a-zA-Z0-9]+/, ''); + word = word.replace(/[^a-zA-Z0-9]+$/, ''); } while ( oldword != word ); return word; @@ -83,6 +85,50 @@ IceDeb = { loadURI(uri); } }, + lookup_ml: function(in_new) { + var msg_id = IceDeb.trim_keyword(IceDeb.getClipboardText()); + if (!msg_id) msg_id = ''; + var uri="http://lists.debian.org/msgid-search/" + msg_id; + + if (in_new) { + var b = getBrowser(); + var new_tab = b.addTab(uri); + b.selectedTab = new_tab; + } + else { + loadURI(uri); + } + }, + lookup_ddpo: function(in_new) { + var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText()); + var uri="http://qa.debian.org/developer.php"; + + if (keyword) uri += "?login=" + keyword; + + if (in_new) { + var b = getBrowser(); + var new_tab = b.addTab(uri); + b.selectedTab = new_tab; + } + else { + loadURI(uri); + } + }, + lookup_buildd: function(in_new) { + var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText()); + var uri="https://buildd.debian.org/"; + + if (keyword) uri += keyword; + + if (in_new) { + var b = getBrowser(); + var new_tab = b.addTab(uri); + b.selectedTab = new_tab; + } + else { + loadURI(uri); + } + }, btsButton: function (e) { if ( e.button == 0 ) @@ -101,6 +147,24 @@ IceDeb = { IceDeb.lookup_deb(false) else if ( e.button == 1 ) IceDeb.lookup_deb(true); + }, + mlButton: function (e) { + if ( e.button == 0 ) + IceDeb.lookup_ml(false) + else if ( e.button == 1 ) + IceDeb.lookup_ml(true); + }, + ddpoButton: function (e) { + if ( e.button == 0 ) + IceDeb.lookup_ddpo(false) + else if ( e.button == 1 ) + IceDeb.lookup_ddpo(true); + }, + builddButton: function (e) { + if ( e.button == 0 ) + IceDeb.lookup_buildd(false) + else if ( e.button == 1 ) + IceDeb.lookup_buildd(true); } }