GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/eintr/Disentangle-beginning_002dof_002dbuffer.html ・ emacs-doc.conao3.com

Disentangle beginning-of-buffer

他の複雑な見た目の式と同様に、beginning-of-buffer 内の条件式も、テンプレート(この場合は if-then-else 式のテンプレート)の構成要素として捉えることで整理できます。骨組みだけを見ると、この式は次のようになります。

(if (buffer-is-large
    divide-buffer-size-by-10-and-multiply-by-arg
  else-use-alternate-calculation

この内部式 if の真偽判定は、バッファのサイズを確認しています。その理由は、旧バージョン18のEmacsでは800万程度までの数値を使用しており、その後の計算において、バッファが大きい場合にEmacsが大きすぎる数値を使用しようとするのではないかとプログラマーが懸念したためです。コメントにある「overflow」という用語は、大きすぎる数値のことを指します。近年のEmacsではより大きな数値が使用されていますが、このコードは手つかずのままです。それは単に、現在ではかつてないほど遥かに大きなバッファを扱うようになっているからです。

バッファが大きい場合とそうでない場合の2通りがあります。