(let ((minver "24.1"))
(when (version<= emacs-version minver)
(error "Your Emacs is too old -- this config requires v%s or higher" minver)))
我从purcell的配置上抄来的代码。
它的本意是禁用emacs 24.1以下 (不含24.1) 的版本。但是为什么这儿要用个"<="
那如果我的版本恰好是24.1,不就成了“既是错误的,而且需要它”了么?
还是说,elisp的判断机制和一般的语言不同?
看起来是个 Typo,不过更有可能是因为实际中 emacs-version
都是有第三位的,比如我的电脑上的 Emacs 22.1 和 25.2 的 emacs-version
分别是:
所有如果用的是 24.1 的话,你的版本号估计是 24.1.1
或者更高,基于这个假设上面的判断就没有问题。
好吧……
我确实成了彻头彻尾的伸手党了……
抱歉!
另外purcell本人回复我,确实该用"<", 只不过为了兼容以前的Travis CI才那么写。
现在已经改过来了。
此贴终结
是一个 Typo。他的意思是他之所以没有发现,是因为 Travis 用了一个打补丁版本的 Emacs 24.1,比如 24.1.1
之类的。