Emacsのバージョンで分岐をさせたい

発端


Emacsのバージョンを最新にしたことで色々設定が楽に書けることがわかった
そのため、最新内容を反映させた

とはいえ、下位互換もある程度保ちたかった
(全部、追従すればいいのだがそうもいかない環境もあるので)

最初に試してみた


普通にバージョンを取得してみた

1
2
3
(emacs-version)
"GNU Emacs 24.4.1 (x86_64-apple-darwin14.0.0, NS apple-appkit-1343.16)
 of 2015-01-04 on hoge.local"

文字列のマッチング処理が多くなりそうで結構めんどくさい・・・

結果的にこうした


普通のmajor/minor バージョン判定を複合した条件判定するだけの関数を用意

24.3以下の判定

1
(defvar is-less-than-or-equal-24-3 (and (<= emacs-major-version 24) (<= emacs-minor-version 3)))