eintr: Disentangle beginning-of-buffer
Disentangle ‘beginning-of-buffer’
.................................
Like other complex-looking expressions, the conditional expression
within ‘beginning-of-buffer’ can be disentangled by looking at it as
parts of a template, in this case, the template for an if-then-else
expression. In skeletal form, the expression looks like this:
(if (BUFFER-IS-LARGE
DIVIDE-BUFFER-SIZE-BY-10-AND-MULTIPLY-BY-ARG
ELSE-USE-ALTERNATE-CALCULATION
The true-or-false-test of this inner ‘if’ expression checks the size
of the buffer. The reason for this is that the old version 18 Emacs
used numbers that are no bigger than eight million or so and in the
computation that followed, the programmer feared that Emacs might try to
use over-large numbers if the buffer were large. The term “overflow”,
mentioned in the comment, means numbers that are over large. More
recent versions of Emacs use larger numbers, but this code has not been
touched, if only because people now look at buffers that are far, far
larger than ever before.
There are two cases: if the buffer is large and if it is not.