アルドノア・ゼロの5話で出てきたエラー画面、これ https://t.co/xsT683Ljao の「PS: bug test code follows, for best results」以降のやつです pic.twitter.com/USzV1w9z5Z
— Wataru MIYAGUNI (@gongoZ) 2014, 8月 3
こんなツイートが出てきたので、アルドノア・ゼロの5話で出てきたエラー画面のコードを元ネタと見比べてみた
アニメで出てきたメッセージはこれ。
A font change leaves tons o-turds between horizontal text lines Pease --Devon PS: bug test code follows. for best results mv .emacs .emacs-NOT Open -a Emacs.app mv .emacs-NOT .emacs ;; OS font bug demo : stray dots inside a square brancket (progn (insert "\n[] <- no screen turds\n[# will fix it ") (sit-for 0) (beginning-of-line) (forward-char)
元ネタ。 three or four MacOS font bugs
実際のコードはこんな感じ
A font change leaves tons-o-turds between horizontal text lines. Peace --Devon PS: bug test code follows, for best results $ mv .emacs .emacs-NOT $ Open -a Emacs.app $ mv .emacs-NOT .emacs as I know no way to give switches to a MacOS Carbon app. ;; MacOS font bug demo: stray dots inside a square bracket (progn (insert "\n[ ] <--no screen turds\n[#] <--screen turds look like [: ] but will fix it. ") (sit-for 0) (beginning-of-line) (forward-char) (delete-char 1) (insert " ") (forward-char))
Emacs Lispの解説
- sit-for この関数は(処理待ちのユーザーからの入力がなければ)再表示を行い、 seconds秒休止するか、入力がくるまで待つ。 GNU Emacs Lisp¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë: Waiting
- beginning-of-line この関数は, 現在行の先頭にポイントを移動する GNU Emacs Lispリファレンスマニュアル: 29. バッファ内の位置
- forward-char この関数は, 前方へ, つまり, バッファの末尾に向けて (countが負であれば, 後方へ, つまり, バッファの先頭へ向けて) count文字分ポイントを移動するGNU Emacs Lispリファレンスマニュアル: 29. バッファ内の位置
- delete-char 次の文字を削除する GNU Emacs Manual
実行してみる
(progn (insert "\n[ ] <--no screen turds\n[#] <--screen turds look like [: ] but will fix it. ") (sit-for 0) (beginning-of-line) (forward-char) (delete-char 1) (insert " ") (forward-char)) [ ] <--no screen turds [#] <--screen turds look like [: ] but w ll fix it.
iが消えて、空白が挿入され、最後の行の最初のlの次にポインタが挿入されている。