Author Archives: AKIYAMA

2014-02-28

URLとタイトルのコピー

皆さんは開いているWebページのURLやタイトルをコピーする時ってどうしてます?

URLはロケーションバーからコピーすれば良いとして、問題はタイトルです。

私は普段Firefoxを使っているので、ページの上で右クリック→「ページの情報を表示」を選んで、タイトルを範囲選択してコピーしていました。
そしてテキストエディタにペーストしてから書式を整える。

面倒くさい。

今日もその作業をしていたときに、ふとブックマークレットにすれば良いんじゃね? と思いついてやってみました。

javascript:alert("%20%20[["+document.URL+"]["+document.title+"]]");

「ブックマークの追加」を選んで、名前を「URLをorg形式で表示」とし、URLのところに上を打ち込みます。
このブックマークを開こうとすると、現在開いているページのURLとタイトルをEmacs org-modeのリンク書式で表示してくれるというわけです。
ちなみに、先頭の%20%20はalertダイアログで範囲選択しやすくするために追加した空白です。

これだと範囲選択してコピー操作する面倒は残ります。
Firefoxのaddonならクリップボードへのコピーまで出来るのだろうなー、と思ったところで、
ひょっとしたらFirefox用のAddonがあるんじゃないかと思い至りました。

「copy url firefox」で検索してみると、次のものが。

Copy Urls Expert :: Add-ons for Firefox

書式設定まで出来る! 完璧です。

2014-01-29

git-encwrapper再び

git-encwrapper のバグを修正しました。

git-encwrapper は、gitのencoding属性(.gitattributesで指定)を活用してgit diffの出力の文字コードを統一したり、git applyの入力の文字コードを統一されたものから元に戻したりするgitラッパーです。

ところがCygwinを64bit版にしたときになぜかgit-encwrapperが動かなくなってしまいました。
原因を突き止めるのが面倒だったので、elisp側でなんとかするコードを書きました。

今日 magit.el を開発最新版へ更新したら、案の定上のelispは使えなくなってしまいました。
magit.elの中をざっと見てみたのですが、プロセスを呼び出すところ(つまり、フックすべきところ)が沢山あり、
修正は大変そうでした。

なので、再びgit-encwrapperを復活させることにしました。

調査した結果、次の二つの問題が見つかりました。

  • -cオプションを使っているとgitコマンド名を誤認識する不具合
  • NULLポインタの判定ミス

前者は「git -c diff.submodule=short diff」のようなコマンドラインへの対応です。
ハイフンで始まらない一番最初のコマンドライン引数をコマンド名として扱っていたので、
「diff」ではなく「diff.submodule=short」がコマンド名だと認識されていました。

後者は単純なミスで、if(p)と書くべきところをif(*p)と書いていたというものです。
おそらくこれによって動いたり動かなかったりしていた模様です。

これらを修正したところ、おおむね正常に動いているようです。