Bugs in less-358

This is a list of the known bugs in less-358.

Using the -s flag can put "~" lines before the beginning of the file.
Using the -s flag on a file with trailing blank lines, type the "G" command. The prompt may say "99%" instead of "100%".
Command "F" doesn't work if the file shrinks in size.
On Solaris, searching for "a[1,2]" matches "a4".
On a Solaris cmdtool, slow pipes get stalled and never show any data.
Cannot search for a string which follows a null byte ('\0').
On some terminals, arrow keys don't work when you set -X.
In certain cases, when built with a non-POSIX regular expression library, if search highlighting is enabled and a search pattern begins with a ^, more text than the matching string may be highlighted.
On some systems which use setlocale() and the LC_* environment variables, less treats some binary files as ordinary, non-binary files. You can workaround this problem by setting the environment variable LESSCHARSET to "ascii" (or whatever character set is appropriate).
On Windows NT, if the screen buffer is larger than the displayed window size, lines can "leak" into the offscreen part of the buffer. (If any Windows expert can help me with this one, I'd appreciate it.)
The DOS version compiled under DJGPP cannot open long (non-DOS) filenames when run on Windows-NT.
The Windows version compiled under Microsoft Visual C++ sometimes highlights incorrectly when a highlighted line is longer than the screen width. (If any Windows expert can help me with this one, I'd appreciate it.)
There is a race condition when less is in a pipeline and a signal is sent to all processes in the pipeline. In this case, less and another process may try to change terminal attributes at the same time.

Feature enhancement requests

This is a list of enhancement requests.

Allow -o to work on non-pipe input (ordinary files).
If the cursor is not at the bottom of the screen, begin display at the current cursor position; don't move to bottom line before displaying the first screen.
Make compliant with POSIX specification for "more".
Add a "bookmark" capability; that is, allow file marks to be saved on exit and restored at the next invocation of less on the same file.
less -N with output redirected to a file or pipe should still output line numbers.
Support multiple fixed tab stop positions.
Distribute a sample LESSOPEN filter. Distribute a LESSOPEN filter that does C syntax highlighting.
Add a command that does dynamic grep-like filtering of the input file.
Make control-L in the input file act like a page break.