]> git.ktnx.net Git - icedeb.git/blobdiff - chrome/icedeb.js
trim clipbiard contents before using it
[icedeb.git] / chrome / icedeb.js
index 823c2afdb6f48973b1cadbe4dd576d17a49216e9..3b9eb7bcc1e8ee52f1f4374bc23b7938813fb6ba 100644 (file)
@@ -26,10 +26,25 @@ function getClipboardText() {
     return text;
 }
 
+function trim_keyword(word) {
+    if (!word) return word;
+
+    var oldword;
+    do {
+        oldword = word;
+
+        word = word.replace(/^\s+/, '');
+        word = word.replace(/\s+$/, '');
+        word = word.replace(/^#/, '');
+        word = word.replace(/[-:\/,]$/, '');
+    } while ( oldword != word );
+
+    return word;
+}
+
 function lookup_bts(in_new) {
-    var bug = getClipboardText();
+    var bug = trim_keyword(getClipboardText());
     if (!bug) return null;
-    bug = bug.replace(/^#/, '');
     var uri="http://bugs.debian.org/" + bug;
 
     if (in_new) {
@@ -42,12 +57,54 @@ function lookup_bts(in_new) {
     }
 }
 
+function lookup_pts(in_new) {
+    var pkg = trim_keyword(getClipboardText());
+    if (!pkg) return null;
+    var uri="http://packages.qa.debian.org/" + pkg;
+
+    if (in_new) {
+        var b = getBrowser();
+        var new_tab = b.addTab(uri);
+        b.selectedTab = new_tab;
+    }
+    else {
+        loadURI(uri);
+    }
+}
+
+function lookup_deb(in_new) {
+    var pkg = trim_keyword(getClipboardText());
+    if (!pkg) return null;
+    var uri="http://packages.debian.org/" + pkg;
+
+    if (in_new) {
+        var b = getBrowser();
+        var new_tab = b.addTab(uri);
+        b.selectedTab = new_tab;
+    }
+    else {
+        loadURI(uri);
+    }
+}
+
 Debian = {
     btsButton: function (e) {
         if ( e.button == 0 )
             lookup_bts(false)
         else if ( e.button == 1 )
             lookup_bts(true);
+    },
+    ptsButton: function (e) {
+        if ( e.button == 0 )
+            lookup_pts(false)
+        else if ( e.button == 1 )
+            lookup_pts(true);
+    },
+    debButton: function (e) {
+        if ( e.button == 0 )
+            lookup_deb(false)
+        else if ( e.button == 1 )
+            lookup_deb(true);
     }
 }