outputz.el を改良しますた

id:antipop さん ++

EmacsからOutputzに文字数を投げる - Kentaro Kuribayashi's blog

気になったところがあったので、いくつか修正しました。CodeReposなのでそのままコミットしてもよかったけど、とりあえず diff をおいておきます。

http://hayamin.com/upload/outputz.diff.el

変更した点は以下のとおり。

outputz-mode をカスタム変数に

このてのユーザーがいじりたい変数は、カスタム変数にしておくのがよさげですね。 M-x customize-variable で変更できるようになります。

url.el の mailcap 問題

url.el が依存している gnus/mailcap.el は、flim の mailcap.el と名前がかぶっているので、load-pathによっては film のほうの mailcap.el が require されてしまって、必要な関数が取得できずエラーになってしまう、という有名な問題があるようです。

oddmuse.elとmailcap.elの問題 - http://rubikitch.com/に移転しました

なので、(require 'url)の後に mailcap-parse-mailcaps という関数が束縛されてなかったら、load-path にある mailcap を全部ロードするという強引な回避策をとっておきました。

outputz-count 周りの改良

現状の問題点として考えられるのが以下の2点

  • ファイルを開いた段階で outpuz-count 変数が初期化されないので、たとえば 1000文字のファイルを開いて、1文字追加して保存すると、1001文字更新したと Outputz に記録されてしまう
  • 文字数が増えたときにしか outputz-count を更新しないので、ファイルの内容を大幅に削除したときなんかに、その後多少内容を書き加えても Outputz に記録しようとしない

前者は、 find-file-hook を使って outputz-count を初期化するようにしました。後者は、outputz関数が呼ばれるたびに、outputz-count は毎回更新するようにしました。