コマンドライン・バッファのリンクを開くパッチ

vimpのコマンド結果のリンクはhref属性が無視され、テキストがliberator.oponに渡される。どうも気に入らないのでパッチを書いた

ui_js-multilineoutput_anchor.patch

Index: ui.js
===================================================================
RCS file: /cvs/vimperator/src/content/ui.js,v
retrieving revision 1.107
diff -u -r1.107 ui.js
--- ui.js	24 Sep 2008 10:53:28 -0000	1.107
+++ ui.js	25 Sep 2008 14:04:11 -0000
@@ -917,21 +917,32 @@
                     {
                         liberator.tabs.select(parseInt(event.originalTarget.parentNode.parentNode.firstChild.textContent, 10) - 1);
                         closeWindow = true;
-                        break;
                     }
                     else if (event.originalTarget.localName.toLowerCase() == "a")
                     {
-                        liberator.open(event.originalTarget.textContent);
-                        break;
+                        var href = event.originalTarget.getAttribute('href');
+                        if (href != "#")
+                            liberator.open(href);
+                        else
+                            liberator.open(event.originalTarget.textContent);
+
                     }
+                    event.preventDefault();
+                    break;
                 case "<A-LeftMouse>": // for those not owning a 3-button mouse
                 case "<MiddleMouse>":
                     if (event.originalTarget.localName.toLowerCase() == "a")
                     {
+                        var href = event.originalTarget.getAttribute('href');
                         var where = /\btabopen\b/.test(liberator.options["activate"]) ?
                                     liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB;
-                        liberator.open(event.originalTarget.textContent, where);
+                        if (href != "#")
+                            liberator.open(href, where);
+                        else
+                            liberator.open(event.originalTarget.textContent, where);
+
                     }
+                    event.preventDefault();
                     break;
 
                 // let firefox handle those to select table cells or show a context menu

これで長ったらしいURLを短く抑えられる。

2008-09-25

  • 一部ミスってたので修正