simply keep an index into the last access on the circular list and begin
searches at that point. An LRU list is inappropriate here since the
vast majority of accesses will occur in the same order that the list
is created in. The only case where an LRU is remotely useful here is when
reading from a file and the user is jumping to randomish positions and
constantly returning to some central position. Even for this case it is
such a small optimization as not to be noticed in an interactive program
such as more(1).
This change results in a _tremendously_ noticable speed-up when reading long
files through a pipe (where long = ~200k, machine = ~2.5h single-disk
worldstone).
as controls in any case.
2) Fix bug with incorrect column position when standouts occurse
3) Fix bug when last standouted char cause clearing next line
in standout