つーさにブログ

つうさにのメモ用ブログ

古いEmacsにあるアレなファイルを見てみる

多分黒歴史

謎のファイル

ninjinkun.hatenablog.com

上のページにあるように、古いEmacsにはetcディレクトリにcondom.1やsex.6といった謎(?)のファイルがある。

しかし、これはEmacs 24.4のときに削除されてしまっていて、最新版のEmacsでは存在しない1

これをEmacsから見てみたいが古いEmacs持ってくるなんて面倒だなと思ったら、そう言えばmacOSに標準で入ってるのはめっちゃ古いことを思い出した。

macOSに標準で入ってるEmacs

macOSでは標準で/usr/bin/emacsEmacsがインストールされている2が、これのバージョンは22.1である。22.1のリリース日時は2007-06-02で、現在の最新版が26.3(リリース日時:2019-08-28)を考えるとめっちゃ古い。

$ /usr/bin/emacs --version
GNU Emacs 22.1.1
Copyright (C) 2007 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

どうしてこんな古いEmacsなのかというと、macOSがGPLv3なOSSを使わないようにしていることが関係しているようである。

Emacsは22.1までGPL v2なライセンスであったが、22.2からGPLv3になっていて、macOSに入っているEmacsはGPLv2なEmacsの最後のバージョンのままとしているようである3

見てみる

ともかく古いEmacsがあったので試す。

起動

initファイルを読み込まないように-Qで起動する。xterm-256colorでのデフォルトなEmacsの配色は見づらいため、TERM環境変数にxterm-16colorを設定して起動している。

TERM=xterm-16color /usr/bin/emacs -Q
condom.1を見る

M-x manする。

M-x man /usr/share/emacs/22.1/etc/condom.1

condomコマンドはシステムに感染したウイルスからの保護や子プロセスの妊娠(conceptionの訳)を防ぐもので、返り値が0で成功、1で失敗したことを示すらしい。

meese.elを試す

meese.elはsex.6という名前のファイルを開くときに18歳以上かどうか尋ねるパッケージである。

scratchバッファなどで(require 'meese)を評価する。

(require 'meese)

sex.6という名前のファイルを開くと18歳以上かどうか聞かれる。

C-x C-f /usr/share/emacs/22.1/etc/sex.6

yを押せばsex.6が見られる。

様々なオプションがあるようだが結構えげつないことが書かれている。

また、C-x kでsex.6をkill-bufferすれば、再びsex.6を開いたときに18歳以上かどうか聞かれる。

nを押せば、sex.6は見ることはできず、celibacy.1を見ることになる...

終わり

記事を書いておいてなんですが、sex.6を見て微妙な気持ちになってしまいました。

現在のEmacsには存在しないのですっきり忘れることにします...。

【追記】

qiita.com

macOS Catalinaから/usr/bin/emacsはバンドルされなくなったようです。


  1. 現在はDebianのfunny-manpagesパッケージなどで利用可能である。

  2. UNIXであるmacOSに標準で入っていて、多くのGNU/Linuxディストリビューションには標準で入っていないというGNU Emacsの状況は結構謎

  3. /bin/bashについても同様で、bashは現在v4があるにも関わらず、GPLv2でリリースされた最後のバージョンv3.2がインストールされている。(Catalinaでzshがデフォルトシェルになるらしい)