NEWS about less ====================================================================== For the latest news about less, see https://greenwoodsoftware.com/less You can also download the latest version of less from there. Report bugs, suggestions or comments at https://github.com/gwsw/less/issues. ====================================================================== Major changes between "less" versions 661 and 668 * Make 256/true colors work better on Windows without -Da (github #539, github #546, github #562). * Fix build using --with-secure (github #544). * Fix crash when using --header on command line (github #545). * Fix possible crash when scrolling left/right or toggling -S (github #547). * Fix bug when using #stop in a lesskey file (github #551). * Fix bug when using --shift or --match-shift on command line with a parameter starting with '.' (github #554). * Fix bug in R command when file size changes (github #553). * Fix bug using --header when file does not fill screen (github #556). * Fix ^X bug when output is not a terminal (github #558). * Fix bug where ^Z is not handled immediately (github #563). * Fix bug where first byte from a LESSOPEN filter is deleted if it is greater than 0x7F (github #568). * Fix uninitialized variable in edit_ifile (github #573). * Fix incorrect handling of UTF-8 chars in prompts (github #576). ====================================================================== Major changes between "less" versions 643 and 661 * Add ^O^N, ^O^P, ^O^L and ^O^O commands and mouse clicks (with --mouse) to find and open OSC8 hyperlinks (github #251). * Add --match-shift option. * Add --lesskey-content option (github #447). * Add LESSKEY_CONTENT environment variable (github #447). * Add --no-search-header-lines and --no-search-header-columns options (github #397). * Add ctrl-L search modifier (github #367). * A ctrl-P at the start of a shell command suppresses the "done" message (github #462). * Add attribute characters ('*', '~', '_', '&') to --color parameter (github #471). * Allow expansion of environment variables in lesskey files. * Add LESSSECURE_ALLOW environment variable (github #449). * Add LESS_UNSUPPORT environment variable. * Add line number parameter to --header option (github #436). * Mouse right-click jumps to position marked by left-click (github #390). * Ensure that the target line is not obscured by a header line set by --header (github #444). * Change default character set to "utf-8", except remains "dos" on MS-DOS. * Add message when search with ^W wraps (github #459). * UCRT builds on Windows 10 and later now support Unicode file names (github #438). * Improve behavior of interrupt while reading non-terminated pipe (github #414). * Improve parsing of -j, -x and -# options (github #393). * Support files larger than 4GB on Windows (github #417). * Support entry of Unicode chars larger than U+FFFF on Windows (github #391). * Improve colors of bold, underline and standout text on Windows. * Allow --rscroll to accept non-ASCII characters (github #483). * Allow the parameter to certain options to be terminated with a space (--color, --quotes, --rscroll, --search-options and --intr) (github #495). * Fix bug where # substitution failed after viewing help (github #420). * Fix crash if files are deleted while less is viewing them (github #404). * Workaround unreliable ReadConsoleInputW behavior on Windows with non-ASCII input. * Fix -J display when searching for non-ASCII characters (github #422). * Don't filter header lines via the & command (github #423). * Fix bug when horizontally shifting long lines (github #425). * Add -x and -D options to lesstest, to make it easier to diagnose a failed lesstest run. * Fix bug searching long lines with --incsearch and -S (github #428). * Fix bug that made ESC-} fail if top line on screen was empty (github #429). * Fix bug with --mouse on Windows when used with pipes (github #440). * Fix bug in --+OPTION command line syntax. * Fix display bug when using -w with an empty line with a CR/LF line ending (github #474). * When substituting '#' or '%' with a filename, quote the filename if it contains a space (github #480). * Fix wrong sleep time when system has usleep but not nanosleep (github #489). * Fix bug when file name contains a newline. * Fix bug when file name contains nonprintable characters (github #503). * Fix DJGPP build (github #497). * Update Unicode tables. ====================================================================== Major changes between "less" versions 633 and 643 * Fix problem when a program piping into less reads from the tty, like sudo asking for password (github #368). * Fix search modifier ^E after ^W. * Fix bug using negated (^N) search (github #374). * Fix bug setting colors with -D on Windows build (github #386). * Fix reading special chars like PageDown on Windows (github #378). * Fix mouse wheel scrolling on Windows (github #379). * Fix erroneous EOF when terminal window size changes (github #372). * Fix compile error with some definitions of ECHONL (github #395). * Fix crash on Windows when writing logfile (github #405). * Fix regression in exit code when stdin is /dev/null and output is a file (github #373). * Add lesstest test suite to production release (github #344). * Change lesstest output to conform with automake Simple Test Format (github #399). ====================================================================== Major changes between "less" versions 632 and 633 * Fix build on systems which have ncurses/termcap.h or ncursesw/termcap.h but not termcap.h. ====================================================================== Major changes between "less" versions 608 and 632 * Add LESSUTFCHARDEF environment variable (github #275). * Add # command (github #330). * Add ^S search modifier (github #196). * Add --wordwrap option (github #113). * Add --no-vbell option (github #304). * Add --no-search-headers option (github #44). * Add --modelines option (github #89). * Add --intr option (github #224). * Add --proc-backspace, --proc-tab and --proc-return options (github #335). * Add --show-preproc-errors option (github #258). * Add LESS_LINES and LESS_COLUMNS environment variables (github #84). * Add LESS_DATA_DELAY environment variable (github #337). * Allow empty "lines" field in --header option. * Update Unicode tables. * Improve ability of ^X to interrupt F command (github #49). * Status column (-J) shows off-screen matches. * Parenthesized sub-patterns in searches are colored with unique colors, if supported by the regular expression library (github #196). * Don't allow opening a tty as file input unless -f is set (github #309). * Don't require newline input after +&... option (github #339). * Fix incorrect handling of some Private Use Unicode characters. * Fix ANSI color bug when overstriking with colored chars (github #276). * Fix compiler const warning (github #279). * Fix signal race in iread (github #280). * Fix reading procfs files on Linux (github #282). * Fix --ignore-case with ctrl-R (no regex) search (github #300). * Fix bug doing repeat search after setting & filter (github #299). * Fix bug doing repeat search before non-repeat search. * Fix crash with -R and certain line lengths (github #338). * Fix input of Windows dead keys (github #352). * Don't retain search options from a cancelled search (github #302). * Don't call realpath on fake filenames like "-" (github #289). * Implement lesstest test suite. * Convert function parameter definitions from K&R to C89 (github #316). ====================================================================== Major changes between "less" versions 590 and 608 * Add the --header option (github #43). * Add the --no-number-headers option (github #178). * Add the --status-line option. * Add the --redraw-on-quit option (github #36). * Add the --search-options option (github #213). * Add the --exit-follow-on-close option (github #244). * Add 'H' color type to set color of header lines. * Add #version conditional to lesskey. * Add += syntax to variable section in lesskey files. * Allow option name in -- command to end with '=' in addition to '\n'. * Add $HOME/.config to possible locations of lesskey file (github #153). * Add $XDG_STATE_HOME and $HOME/.local/state to possible locations of history file (github #223). * Don't read or write history file in secure mode (github #201). * Fix display of multibyte and double-width chars in prompt. * Fix ESC-BACKSPACE command when BACKSPACE key does not send 0x08 (github #188). * Add more \k codes to lesskey format. * Fix bug when empty file is modified while viewing it. * Fix bug when parsing a malformed lesskey file (githb #234). * Fix bug scrolling history when --incsearch is set (github #214). * Fix buffer overflow when invoking lessecho with more than 63 -m/-n options (github #198). * Fix buffer overflow in bin_file (github #271). * Fix bug restoring color at end of highlighted text. * Fix bug in parsing lesskey file. * Defer moving cursor to lower left in some more cases. * Suppress TAB filename expansion in some cases where it doesn't make sense. * Fix termlib detection when compiler doesn't accept calls to undeclared functions. * Fix bug in input of non-ASCII characters on Windows (github #247) * Escape filenames when invoking LESSCLOSE. * Fix bug using multibyte UTF-8 char in search string with --incsearch (github #273). ====================================================================== Major changes between "less" versions 581 and 590 * Make less able to read lesskey source files (deprecating lesskey). * If XDG_CONFIG_HOME is set, find lesskey source file in $XDG_CONFIG_HOME/lesskey rather than $HOME/.lesskey. * If XDG_DATA_HOME is set, find and store history file in $XDG_DATA_HOME/lesshst rather than $HOME/.lesshst. * Add the --lesskey-src option. * Add the --file-size option. * With -F, if screen is resized to make file fit on one screen, don't exit. * Fix bug which could leave terminal in mouse-reporting mode after exiting less. * Fix bug which caused failure to respond to window resize. * Fix backslash bug searching in tag file. ====================================================================== Major changes between "less" versions 563 and 581 * Change ESC-u command to toggle, not disable, highlighting per man page. * Add ESC-U command. * Add ctrl-W search modifier for wrapping search. * F command can be interrupted by ^X. * Support OSC 8 hyperlinks when -R is in effect. * g command with no number will ignore -j and put first line at top of screen. * Multiple + or -p command line options are handled better. * Add the --incsearch option. * Add the --line-num-width option. * Add the --status-col-width option. * Add the --use-color and --color options. * Display -w highlight even if highlighted line is empty. * If search result is in a long line, scroll to ensure it is visible. * Editing the same file under different names now creates only one entry in the file list. * Make visual bell more visible on some terminals. * Ring end-of-file bell no more than once per second. * Build can use either Python or Perl for Makefile.aut operations. * Fix crash when using the @ search modifier. * Fix crash in the 's' command due to duplicate free. * Fix realpath crash on Darwin. ====================================================================== Major changes between "less" versions 551 and 563 * Update Unicode tables. * Treat Hangul Jamo medial vowels and final consonants as zero width. * Display error message immediately when -o is toggled and input is not a pipe. * Fix regression: make screen repaint when "squished" and a no-movement command is given. * Fix erroneous EOF calculation when F command is interrupted. * Make WIN32C version include this fix from 551: Don't count lines in initial screen if using -X with -F. * Fix display bug in WIN32C version. * Fix memory corruption when built with libtermcap. * Support libtinfow. ====================================================================== Major changes between "less" versions 530 and 551 * Add --mouse option. * Add --wheel-lines option. * Add --no-histdups option. * Add --save-marks option. * Support PCRE2 regular expression library. * Redraw screen on SIGWINCH even if screen size doesn't change. * Shell-escape filenames in history so they can be used again. * Ring bell if user enters invalid long option name. * Use PCRE_UTF8 flag for pcre regular expressions when in UTF-8 mode. * Windows: use wide-char string to set console title. * Don't count lines in initial screen if using -X with -F. * Support mingw build system. * Fix bug in v command on empty file. * Fix bug in v command when filename contains shell metacharacters. ====================================================================== Major changes between "less" versions 487 and 530 * Don't output terminal init sequence if using -F and file fits on one screen. * When using -S, mark truncated lines with a special character. The character can be changed or disabled via the new --rscroll option. * New command M marks the last line displayed on the screen. * New command ESC-m removes a line mark. * Status column (enabled via -J) now shows mark letters. * Status column shows search matches even if highlighting is disabled via -G. * A second ESC-u command will clear search match markers in the status column. * Do same ANSI escape code filtering for tag matching that we do for searching, to help when viewing syntax-highlighted code. * Catch SIGTERM and clean up before exiting. * Fix bug initializing default charset on Windows. * Handle keypad ENTER key correctly if it sends something other than newline. * Fix buffering bug when using stdin with a LESSOPEN pipe. * On Windows, allow 'u' in -D option to enable underlining. * On Windows, use underline in sgr mode. * On Windows, convert UTF-8 to multibyte if console is not UTF-8. * Update Unicode tables to 2017-03-08. * Pass-thru Unicode formatting chars (Cf type) instead of treating them as binary chars. But treat them as binary if -U is set. * Fix erroneous binary file warning when UTF-8 file contains ANSI SGR sequences. * Fix bugs when using LESSOPEN and switching between stdin and other files. * Fix some bugs handling filenames containing shell metacharacters. * Fix some memory leaks. * Allow some debugging environment variables to be set in lesskey file. * Code improvements: . Use ANSI prototypes in funcs.h declarations. . Fix some const mismatches. . Remove archaic "register" in variable declarations. ====================================================================== Major changes between "less" versions 481 and 487 * New commands ESC-{ and ESC-} to shift to start/end of displayed lines. * Make search highlights work correctly when changing caselessness with -i. * New option -Da in Windows version to enable SGR mode. * Fix "nothing to search" error when top or bottom line on screen is empty. * Fix bug when terminal has no "cm" termcap entry. * Fix incorrect display when entering double-width chars in search string. * Fix bug in Unicode handling that missed some double width characters. * Update Unicode database to 9.0.0. ====================================================================== Major changes between "less" versions 458 and 481 * Don't overwrite history file; just append to it. * New command ESC-G goes to end of currently buffered data in a pipe. * Disable history feature when compiled with LESSHISTFILE set to "-". * In more-compatible mode, make the -p option apply to every file opened, not just the first one. * In more-compatible mode, change the -e option to work like -E, not -EF. * Treat multiple CRs before LF are like one CR (all the CRs are hidden). * Allow "extra" string in lesskey file to append to a multi-char command (like a search pattern), without executing the command. * Ignore -u/-U setting while viewing help file, so that underline and bold chars are displayed correctly. * Improve detection of "binary" files in UTF-8 mode. * Fix bug with ++ commands. * Fix bug where prompt was sometimes not displayed with +G. * Fix possible memory corruption * Fix bugs and improve performance in ampersand filtering. * Automate construction of Unicode tables from Unicode database. * Allow %% escape sequence in LESSOPEN variable. ====================================================================== Major changes between "less" versions 451 and 458 * Allow backslash escaping of metacharacters in LESS environment variable after the --use-backslash option. * Don't quit if syntax errors are found in command line options. * Increase sizes of some internal buffers. * Fix configure bug with --with-regex=none. * Fix crash with "stty rows 0". * Fix Win32 attribute display bug. * Fix display bug when using up/down arrow on the command line. ====================================================================== Major changes between "less" versions 444 and 451 * Add ESC-F command to keep reading data until a pattern is found. * Use exit code of LESSOPEN script if LESSOPEN starts with "||". * When up/down arrow is used on the command line immediately after typing text, the next command starting with that text is found. * Add support for GNU regex. * Add configure option --with-regex=none and fix compile errors when compiling with no regex library. * Fix bugs handling SGR sequences in Win32. * Fix possible crashes caused by malformed LESSOPEN or LESSCLOSE variables. * Fix bug highlighting text which is discontiguous in the file due to backspace processing. * Fix bug in displaying status column when scrolling backwards with -J and -S in effect. ====================================================================== Major changes between "less" versions 443 and 444 * Fix bug in unget handling that can cause strange effects on the command line. * Remove vestiges of obsolete -l option that can cause a crash. ====================================================================== Major changes between "less" versions 436 and 443 * Change search behavior such that when a search is given an explicit pattern, the entire displayed screen is included in the search and not just the portion after the target line. * Add -A option to change search behavior to the old way: only the portion of the screen after the target line is searched. * Add %F formatting to prompt strings, replaced by the last component of the input file. * Control-G while editing a command exits the command. * Less now exits with status 2 if control-C is pressed and -K is in effect. * Fix "ungetc overflow" when passing long commands via the -p option. * Fix bug in using line filtering via the & command in combination with -i and -I. * Fix bug in handling negative arguments to the -j option. * Fix bug in handling %t in prompt strings. * Improve handling of long option names. * Improve percentage calculation for very large files. ====================================================================== Major changes between "less" versions 429 and 436 * Don't pass "-" to non-pipe LESSOPEN unless it starts with "-". * Allow a fraction as the argument to the -# (--shift) option. * Fix highlight bug when underlined/overstruck text matches at end of line. * Fix non-regex searches with ctrl-R. ====================================================================== Major changes between "less" versions 424 and 429 * LESSOPEN pipe will now be used on standard input, if the LESSOPEN environment variable begins with "|-". * The -D option with one number now means use the normal background color. * Don't change permissions on history file if it is not a regular file. * Fix non-ANSI-compliant code that caused problems with some compilers. * Fix binary file detection in UTF-8 mode. * Fix display problems with long lines on "ignaw" terminals. * Fix problem interrupting the line number calculation for initial prompt. * Fix SGR emulation when dealing with multiple attributes (e.g. bold+underline). * Fix highlight bug when searching for underlined/overstruck text. ====================================================================== Major changes between "less" versions 418 and 424 * New "&" command allows filtering of lines based on a pattern. * Status column now displays a search match, even if the matched string is scrolled off screen because -S is in effect. * Improve behavior of -F option. * Allow CSI character (0x9B) to work in UTF-8 mode. * Output carriage return at startup in case terminal doesn't default to column 1. * Fix bug in '' (quote, quote) command after G command. ====================================================================== Major changes between "less" versions 416 and 418 * Color escape sequences are now supported in WIN32 build. * Makefile now uses EXEEXT feature of autoconf. * Fix search bug when using -R and text contains ANSI color escape sequences. * Fix crash when using -r with UTF-8 text containing 0x9B bytes. * Fix display bug when using ' command to move less than one page forward. * Update GPL to version 3. ====================================================================== Major changes between "less" versions 409 and 416 * New --follow-name option makes F command follow the name of a file rather than the file descriptor if an open file is renamed. * Make searching with -i/-I work correctly with non-ASCII text. * Fix DJGPP build. ====================================================================== Major changes between "less" versions 406 and 409 * Support CSI escape sequences, like SGR escape sequences. * Fix bug which caused screen to fail to repaint when window is resized. * Fix bug in using -i and -I flags with non-ASCII text. * Fix configure bug on systems which don't support langinfo.h. * Fix crash when searching text containing certain invalid UTF-8 sequences. ====================================================================== Major changes between "less" versions 394 and 406 * Allow decimal point in number for % (percent) command. * Allow decimal point in number for -j option (fraction of screen height). * Make n command fetch previous pattern from history file on first search. * Don't rewrite history file if it has not changed. * Don't move to bottom of screen on first page. * Don't output extraneous newlines, so copy & pasting lines from the output works better. * The -c option has been made identical with the -C option. * Allow "/dev/null" as synonym for "-" in LESSHISTFILE to indicate that no history file should be used. * Search can now find text which follows a null byte, if the PCRE library is used, or if no-regex searching (ctrl-R) is used. * Better compatibility with POSIX more specification. * Make -f work for directories. * Make "t" cmd traverse tags in the correct order. * Allow a few binary characters in the input file before warning that the file is binary. * Don't warn that file is binary if it merely contains ANSI color sequences and -R is in effect. * Update Unicode character tables. * Support DESTDIR in Makefile. * Fix bug when filename contains certain shell metacharacters such as "$". * Fix bug when resizing the window while waiting for input from a pipe. * Fix configure bugs. ====================================================================== Major changes between "less" versions 382 and 394 * Add history file to save search and shell command history between invocations of less. * Improve behavior of history list for search and shell commands. * Add -K (or --quit-on-intr) option to make less exit immediately on ctrl-C. * Improve handling of UTF-8 files and commands, including better line wrapping and handling double-width chars. * Added LESSUTFBINFMT environment variable to control display of non-printable characters in a UTF-8 file. * Add --with-secure option to configure, to make it easier to build a secure version of less. * Show search matches in the status column even if search highlights are disabled via the -G option or the ESC-u command. * Improve performance when the file contains very long lines. * Add "windows" charset. * Add man page for lessecho. * Add support for erase2 character, treated same as erase. * Use ASCII lowercase/uppercase logic when operating on the command line. * Update makefile for Borland C++ 5.5.1. * Fix bug in calculating number of pages for %D prompt. * Fix bug in handling tag file error. * Fix obscure bug if input file is deleted while viewing help. * Fix bug handling filenames which include square brackets. * Fix possible buffer overflow in "global" tag search. * Fix possible buffer overflow in usage of LESSOPEN and LESSCLOSE. * Fix buffer overflow in reverse search. ====================================================================== Major changes between "less" versions 381 and 382 * Removed some old copyrighted code. This probably breaks OS/9 support. ====================================================================== Major changes between "less" versions 378 and 381 * New -L option to disable LESSOPEN processing. * Further support for large (64 bit) file addressing. Large file support is now set up by the configure script. * Use autoconf 2.54. Replace configure.in, acconfig.h, defines.h.top with configure.ac. * Overstriking underscore with underscore is now bold or underlined depending on context. * Use only 7 spaces for line numbers in -N mode, if possible. * Fix some bugs in handling overstriking in UTF-8 files. * Fix some nroff issues in the man page. ====================================================================== Major changes between "less" versions 376 and 378 * Bug fixes: Default buffer space is now 64K as documented. Search highlighting works properly when used with -R. Windows version works properly when input file contains carriage returns. Clean up some compiler warnings. ====================================================================== Major changes between "less" versions 358 and 376 * -x option can now specify multiple variable-width tab stops. * -X option no longer disables keypad initialization. New option --no-keypad disables keypad initialization. * New commands t and T step through multiple tag matches. Added support for "global(1)" tags (see http://www.gnu.org/software/global/global.html). * New prompt style set by option -Pw defines the message printed while waiting for data in the F command. * System-wide lesskey file now defaults to sysless in etc directory instead of .sysless in bin directory. Use "configure --sysconfdir=..." to change it. (For backwards compatibility, .sysless in bin is still recognized.) * Pressing RightArrow or LeftArrow while entering a number now shifts the display N columns rather than editing the number itself. * Status column (enabled with -J) now shows search results. * Windows version sets window title. * Default LESSCHARSET for MS-DOS versions is now "dos". * Searching works better with ANSI (SGR) escape sequences. ANSI color escape sequences are now supported in the MS-DOS (DJGPP) version. * Improved performance in reading very large pipes. * Eliminated some dependencies on file offsets being 32 bits. * Fixed problems when viewing files with very long lines. * Fixed overstriking in UTF-8 mode, and overstriking tabs. * Improved horizontal shifting of text using -R option with ANSI color. * Improved handling of filenames containing shell metacharacters. * Some fixes for EBCDIC systems. * Some fixes for OS/2 systems. ====================================================================== Major changes between "less" versions 354 and 358 * Add -J (--status-column) option to display a status column. * Add -# (--shift) option to set default horizontal shift distance. Default horizontal shift distance is now one-half screen width. * Horizontal shifting does not shift line numbers if -N is in effect. * Horizontal shifting acts as though -S were set, to avoid confusion. ====================================================================== Major changes between "less" versions 352 and 354 * Allow space after numeric-valued command line options. * Fix problem with configuring terminal libraries on some systems. * Add support for PCRE regular expression library. * Add --with-regex option to configure to allow manually selecting a regular expression library. * Fix bug compiling with SECURE = 1. ====================================================================== Major changes between "less" versions 346 and 352 * Enable UTF-8 if "UTF-8" appears in locale-related environment variables. * Add --with-editor option to configure script. * The -M prompt and = message now show the top and bottom line number. * Fix bug in running the editor on a file whose name contains quotes, etc. * Fix bug in horizontal scrolling of long lines. * Fix bug in doing :d on a file which contains marks. * Fix bug causing cleared lines to sometimes be filled with standout, bold, underline, etc. on certain terminals. * Fixes for MS-DOS (DJGPP) version. ====================================================================== Major changes between "less" versions 340 and 346 * The UTF-8 character set is now supported. * The default character set is now latin1 rather than ascii. * New option -R (--RAW-CONTROL-CHARS) is like -r but handles long (wrapped) lines correctly, as long as the input contains only normal text and ANSI color escape sequences. * New option -F (--quit-if-one-screen) quits if the text fits on the first screen. * The -w option now highlights the target line of a g or p command. * A system-wide lesskey file is supported (LESSKEY_SYSTEM). * New escape for prompt strings: %c is replaced by column number. * New escape for prompt strings: %P is replaced by percentage into file, based on line number rather than byte offset. * HOME and END keys now jump to beginning of file or end of file. ====================================================================== Major changes between "less" versions 337 and 340 * Command line options for less may now be given in either the old single-letter form, or a new long name form (--option-name). See the less man page or "less --help" for the list of long option names. * Command line options for lesskey may now be given in a new long name form. See the lesskey man page for the list of long option names. * New command -- toggles an option using the long option name. * New command __ queries an option using the long option name. * The old -- command is renamed as -!. * If a ^P is entered between the dash and the option letter of the - command, the message describing the new setting is suppressed. * Lesskey files may now contain \k escape sequences to represent the "special" keys (arrows, PAGE-UP/PAGE-DOWN, HOME, END, INSERT, DELETE). * New command :d removes the current file from the list of files. * New option -~ (like -w before version 335) suppresses tildes after end-of-file. * Less is now released under the GNU General Public License. ====================================================================== Major changes between "less" versions 335 and 337 * Fixed bugs in "make install". ====================================================================== Major changes between "less" versions 332 and 335 * The old -w flag (suppress tildes after end-of-file) has been removed. * New -w flag highlights the first new line after a forward-screen. * New -W flag highlights the first new line after any forward movement. * Window resize works even if LINES and/or COLUMNS environment variables are incorrect. * New percent escapes for prompt strings: %d is replaced by the page number, and %D is replaced by the number of pages in the file. * Added charsets "iso8859" and "ebcdic". * In Windows version, uses HOMEDRIVE and HOMEPATH if HOME is not defined. * Fixed some bugs causing incorrect display on DOS/Windows. ====================================================================== Major changes between "less" versions 330 and 332 * Filenames from the command line are entered into the command history, so UPARROW/DOWNARROW can be used to retrieve them from the :e command. * Now works correctly on Windows when using a scrolling terminal window (buffer larger than display window). * On Windows, now restores the console screen on exit. Use -X to get the old behavior. * Fixed bug on Windows when CAPS-LOCK or NUM-LOCK is pressed. * Fixed bug on Windows when piping output of an interactive program. * Fixed bug in tags file processing when tags file has DOS-style line terminators (CR/LF). * Fixed compilation problem on OS/2. ====================================================================== Major changes between "less" versions 321 and 330 * Now supports filenames containing spaces (in double quotes). New option -" can be used to change the quoting characters. * In filename completion, a slash is appended to a directory name. If the environment variable LESSSEPARATOR is set, the value of that variable, rather than a slash, is appended. * LeftArrow and RightArrow are same as ESC-[ and ESC-]. * Added commands ESC-( and ESC-), same as ESC-[ and ESC-]. * A "quit" command defined in a lesskey file may now have an "extra" string, which is used to return an exit code from less when it quits. * New environment variables LESSMETACHARS and LESSMETAESCAPE provide more control over how less interfaces to the shell. * Ported to Microsoft Visual C compiler for Windows. * Ported to DJGPP compiler for MS-DOS. * Bug fixes. ====================================================================== Major changes between "less" versions 291 and 321 * Command line at bottom of screen now scrolls, so it can be longer than the screen width. * New commands ESC-] and ESC-[ scroll the display horizontally. * New command ESC-SPACE scrolls forward a full screen, even if it hits end-of-file. * Alternate modifiers for search commands: ^N is same as !, ^F is same as @, and ^E is same as *. * New modifier for search commands: ^K means highlight the matches currently on-screen, but don't move to the first match. * New modifier for search commands: ^R means don't use regular expressions in the search. * Environment variable LESSKEY gives name of default lesskey file. * Environment variable LESSSECURE will force less to run in "secure" mode. * Command line argument "--" signals that the rest of the arguments are files (not option flags). * Help file (less.hlp) is no longer installed. Help text is now embedded in the less executable itself. * Added -Ph to change the prompt for the help text. Added -Ps to change the default short prompt (same as plain -P). * Ported to the Borland C compiler for MS-DOS. * Ported to Windows 95 & Windows NT. * Ported to OS-9. * Ported to GNU Hurd. ====================================================================== Major changes between "less" versions 290 and 291 * Less environment variables can be specified in lesskey files. * Fixed MS-DOS build. ====================================================================== Major changes between "less" versions 278 and 290 * Accepts GNU-style options "--help" and "--version". * OS/2 version looks for less.ini in $HOME before $INIT and $PATH. * Bug fixes ====================================================================== Major changes between "less" versions 252 and 278 * A LESSOPEN preprocessor may now pipe the converted file data to less, rather than writing it to a temporary file. * Search pattern highlighting has been fixed. It now highlights reliably, even if a string is split across two screen lines, contains TABs, etc. * The -F flag (which suppress search highlighting) has been changed to -G. A new flag, -g, changes search highlighting to highlight only the string found by the last search command, instead of all strings which match the last search command. * New flag -I acts like -i, but ignores case even if the search pattern contains uppercase letters. * Less now checks for the environment variable VISUAL before EDITOR. * Ported to OS/2. ====================================================================== Major changes between "less" versions 237 and 252 * Changes in line-editing keys: The literal key is now ^V or ^A rather than \ (backslash). Filename completion commands (TAB and ^L) are disabled when typing a search pattern. * Line-editing command keys can be redefined using lesskey. * Lesskey with no input file defaults to $HOME/.lesskey rather than standard input. * New option -V displays version number of less. * New option -V displays version number of lesskey. * Help file less.hlp is now installed by default in /usr/local/share rather than /usr/local/lib. ====================================================================== Major changes between "less" versions 170 and 237 * By popular demand, text which matches the current search pattern is highlighted. New -F flag disables this feature. * Henry Spencer's regexp.c is now included, for systems which do not have a regular expression library. regexp.c is Copyright (c) 1986 by University of Toronto. * New line-editing keys, including command history (arrow keys) and filename completion (TAB). * Input preprocessor allows modification of input files (e.g. uncompress) via LESSOPEN/LESSCLOSE environment variables. * New -X flag disables sending termcap "ti" and "te" (initialize and deinitialize) strings to the terminal. * Changing -i from within less now correctly affects a subsequent repeated search. * Searching for underlined or overstruck text now works when the -u flag is in effect, rather than the -i flag. * Use setlocale (LANG and LC_CTYPE environment variables) to determine the character set if LESSCHARSET/LESSCHARDEF are not set. * The default format for displaying binary characters is now standout (reverse video) rather than blinking. This can still be changed by setting the LESSBINFMT environment variable. * Use autoconf installation technology. * Ported to MS-DOS. ******************************** Things that may surprise you ******************************** * When you enter text at the bottom of the screen (search string, filename, etc.), some keys act different than previously. Specifically, \ (backslash), ESC, TAB, BACKTAB, and control-L now have line editing functions. * Some previous unofficial versions of less were able to display compressed files. The new LESSOPEN/LESSCLOSE feature now provides this functionality in a different way. * Some previous unofficial versions of less provided a -Z flag to set the number of lines of text to retain between full screen scrolls. The -z-n flag (that is, -z with a negative number) provides this functionality. ====================================================================== Major changes between "less" versions 123 and 170 * New option -j allows target lines to be positioned anywhere on screen. * New option -S truncates displayed line at the screen width, rather than wrapping onto the next line. * New option -y limits amount of forward scroll. * New option -T specifies a "tags" file. * Non-printable, non-control characters are displayed in octal. Such characters, as well as control characters, are displayed in blinking mode. * New command -+ sets an option to its default. * New command -- sets an option to the opposite of its default. * Lesskey file may have a string appended to a key's action, which acts as though typed in after the command. * New commands ESC-^F and ESC-^B match arbitrary types of brackets. * New command F monitors a growing file (like "tail -f"). * New command | pipes a section of the input file into a shell command. * New command :x directly jumps to a file in the command line list. * Search commands have been enhanced and reorganized: n Repeat search, same direction. N Repeat search, opposite direction. ESC-/ Search forward thru file boundaries ESC-? Search backward thru file boundaries ESC-n Repeat search thru file boundaries, same direction. ESC-N Repeat search thru file boundaries, opposite direction. Special character * causes search to search thru file boundaries. Special character @ causes search to begin at start/end of file list. * Examining a new file adds it to the command line list. A list of files, or an expression which matches more than one file, may be examined; all of them are added to the command line list. * Environment variables LESSCHARSET and LESSCHARDEF can define a non-ASCII character set. * Partial support for MSDOS, including options -R for repainting screen on quit, -v/-V to select video mode, and -W to change window size. ====================================================================== Major changes between "less" versions 97 and 123 * New option (-N) causes line numbers to be displayed in the text of the file (like vi "set nu"). * New option (-?) prints help message immediately. * New option (-r) displays "raw" control characters, without mapping them to ^X notation. * New option (-f) forces less to open non-regular files (directories, etc). * New option (-k) can be used to specify lesskey files by name. * New option (-y) can be used to set a forward scroll limit (like -h sets a backward scroll limit). * File marks (set by the m command) are now preserved when a new file is edited. The ' command can thus be used to switch files. * New command ESC-/ searches all files (on the command line) for a pattern. * New command ESC-n repeats previous search, spanning files. * The N command has been changed to repeat the previous search in the reverse direction. The old N command is still available via :n. * New command ESC-N repeats previous search in the reverse direction and spanning files. * 8 bit characters are now supported. A new option (-g) can be used to strip off the eighth bit (the previous behavior). * Options which take a following string (like -t) may now optionally have a space between the option letter and the string. * Six new commands { } ( ) [ and ] can be used to match brackets of specific types, similar to vi % command. * New commands z and w move forward/backward one window and simultaneously set the window size. * Prompt string expansion now has %L for line number of the last line in the file, and %E for the name of the editor. Also, % escapes which refer to a line (b=bottom, t=top, etc.) can use j for the jump target line. * New environment variable LESSEDIT can be used to tailor the command string passed to the editor by the v command. * Examining a file which was previously examined will return to the same position in the file. * A "%" is expanded to the current filename and a "#" to the previous filename, in both shell commands and the E command. (Previously % worked only in shell commands and # worked only in the E command.) * New command ":ta" is equivalent to "-t". * New command "s" is equivalent to "-l". * The - command may be followed by "+X" to revert to the default for option X, or "-X" to get the opposite of the default. * Lesskey files may now include characters after the action as extra input to be parsed after the action; for example: "toggle-option X" to toggle a specific option X.