diff options
author | Kr1ss | 2020-09-08 18:48:51 +0200 |
---|---|---|
committer | Kr1ss | 2020-09-08 18:48:51 +0200 |
commit | cf12cab933ef3e130b35f5b2aaae7f0c9f81d176 (patch) | |
tree | c6046f45f06b0a17b34cc062d56e002f755879ba | |
download | aur-cf12cab933ef3e130b35f5b2aaae7f0c9f81d176.tar.gz |
initial upload: less-osc8-git 564.r4.9ea92b9-1
-rw-r--r-- | .SRCINFO | 21 | ||||
-rw-r--r-- | NEWS | 1043 | ||||
-rw-r--r-- | PKGBUILD | 53 | ||||
-rw-r--r-- | osc8.patch | 309 |
4 files changed, 1426 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..9eedd452e729 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,21 @@ +pkgbase = less-osc8-git + pkgdesc = A terminal based program for viewing text files, patched with OSC 8 hyperlink support + pkgver = 564.r4.9ea92b9 + pkgrel = 1 + url = http://www.greenwoodsoftware.com + changelog = NEWS + arch = x86_64 + license = GPL3 + license = custom:Less License + makedepends = git + depends = ncurses + depends = pcre + provides = less + conflicts = less + source = git+https://github.com/gwsw/less.git + source = osc8.patch + sha256sums = SKIP + sha256sums = acbc974f0e203e68413c21a4c55c76452d192e8e4626fc626c504735baef1fd6 + +pkgname = less-osc8-git + @@ -0,0 +1,1043 @@ + + NEWS about less + +====================================================================== + + For the latest news about less, see the "less" Web page: + http://www.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 551 and 565 + +* 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. + +* Editing the same file under different names now creates only + one entry in the file list. + +* 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 crash in the 's' command due to duplicate free. + +* Fix display bug in WIN32C version. + +* Fix memory corruption when built with libtermcap. + +* Fix realpath crash on Darwin. + +* 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 formating 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 (eg. 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 synomym 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 offets 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. + + + + + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..f32c7db82214 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer : Kr1ss $(tr +- .@ <<<'<kr1ss+x-yandex+com>') +# Contributor & [core]/less Maintainer : Sébastien "Seblu" Luttringer <seblu@archlinux.org> +# Contributor : Allan McRae <allan@archlinux.org> +# Contributor : judd <jvinet@zeroflux.org> + + +pkgname=less-osc8-git + +pkgver() { git -C "${pkgname%-osc8-git}" describe --tags | sed 's/^v//;s/-/.r/;s/-g/./'; } +pkgver=564.r4.9ea92b9 +pkgrel=1 + +pkgdesc='A terminal based program for viewing text files, patched with OSC 8 hyperlink support' +arch=('x86_64') +url=http://www.greenwoodsoftware.com +license=('GPL3' + 'custom:Less License') + +makedepends=('git') +depends=('ncurses' 'pcre') + +provides=("${pkgname%-osc8-git}") +conflicts=("${pkgname%-osc8-git}") + +changelog=NEWS +source=("git+https://github.com/gwsw/${pkgname/-osc8-/.}" + 'osc8.patch') +sha256sums=('SKIP' + 'acbc974f0e203e68413c21a4c55c76452d192e8e4626fc626c504735baef1fd6') + + +prepare() { + cd "${pkgname%-osc8-git}" + msg2 "$(gettext 'Applying patch %s...')" osc8.patch + patch -Np1 -i ../osc8.patch +} + +build() { + cd "${pkgname%-osc8-git}" + make -f Makefile.aut distfiles + ./configure --prefix=/usr --sysconfdir=/etc --with-regex=pcre + make +} + +package() { + cd "${pkgname%-osc8-git}" + make DESTDIR="$pkgdir" install + install -Dm644 {README,INSTALL,NEWS} -t"$pkgdir/usr/share/doc/${pkgname%-osc8-git}/" + install -Dm644 {copyright,LICENSE} -t"$pkgdir/usr/share/licenses/${pkgname%-osc8-git}/" +} + + +# vim: ts=2 sw=2 et ft=PKGBUILD: diff --git a/osc8.patch b/osc8.patch new file mode 100644 index 000000000000..dc8c841d2c30 --- /dev/null +++ b/osc8.patch @@ -0,0 +1,309 @@ +commit 4e545ac (origin/54-support-osc-hyperlinks) +Author: Dan Davison <dandavison7@gmail.com> +Date: Wed Jul 22 18:18:43 2020 -0400 + + Apply OSC 8 hyperlinks patch + + Patch from https://bug779734.bugzilla-attachments.gnome.org/attachment.cgi?id=349890 + + Ref https://github.com/gwsw/less/issues/54 + +diff --git a/charset.c b/charset.c +index 1b74b2b..75f688c 100644 +--- a/charset.c ++++ b/charset.c +@@ -426,6 +426,7 @@ control_char(c) + LWCHAR c; + { + c &= 0377; ++ if (c == 7) return FALSE; /* FIXME hack for OSC 8, should be shown as ^G if outside of this escape sequence */ + return (chardef[c] & IS_CONTROL_CHAR); + } + +diff --git a/cvt.c b/cvt.c +index 3271cc9..1354752 100644 +--- a/cvt.c ++++ b/cvt.c +@@ -78,13 +78,32 @@ cvt_text(odst, osrc, chpos, lenp, ops) + dst--; + } while (dst > odst && utf_mode && + !IS_ASCII_OCTET(*dst) && !IS_UTF8_LEAD(*dst)); +- } else if ((ops & CVT_ANSI) && IS_CSI_START(ch)) ++ } else if ((ops & CVT_ANSI) && ch == ESC) + { +- /* Skip to end of ANSI escape sequence. */ +- src++; /* skip the CSI start char */ +- while (src < src_end) +- if (!is_ansi_middle(*src++)) +- break; ++ if (src[0] == ']' && src[1] == '8' && src[2] == ';') ++ { ++ /* Skip to the end of a hyperlink. */ ++ src += 3; ++ while (src < src_end) ++ { ++ if (src[0] == BEL) ++ { ++ src++; ++ break; ++ } else if (src[0] == ESC && src[1] == '\\') ++ { ++ src += 2; ++ break; ++ } ++ src++; ++ } ++ } else ++ { ++ /* Skip to end of ANSI escape sequence. */ ++ while (src < src_end) ++ if (!is_ansi_middle(*src++)) ++ break; ++ } + } else + { + /* Just copy the char to the destination buffer. */ +diff --git a/less.h b/less.h +index 1cbc1c0..10f57e7 100644 +--- a/less.h ++++ b/less.h +@@ -456,7 +456,10 @@ struct wchar_range_table + + #define ESC CONTROL('[') + #define ESCS "\33" ++#define BEL CONTROL('g') + #define CSI ((unsigned char)'\233') ++#define ST ((unsigned char)'\234') ++#define OSC ((unsigned char)'\235') + #define CHAR_END_COMMAND 0x40000000 + + #if _OSK_MWC32 +diff --git a/line.c b/line.c +index e46aa39..cd6a6e0 100644 +--- a/line.c ++++ b/line.c +@@ -288,18 +288,30 @@ pshift(shift) + while (shifted <= shift && from < curr) + { + c = linebuf[from]; +- if (ctldisp == OPT_ONPLUS && IS_CSI_START(c)) ++ /* FIXME: accept C1 CSI and C1 OSC as well! */ ++ if (ctldisp == OPT_ONPLUS && c == ESC) + { + /* Keep cumulative effect. */ + linebuf[to] = c; + attr[to++] = attr[from++]; +- while (from < curr && linebuf[from]) +- { +- linebuf[to] = linebuf[from]; +- attr[to++] = attr[from]; +- if (!is_ansi_middle(linebuf[from++])) +- break; +- } ++ if (linebuf[from] == ']' && linebuf[from+1] == '8' && linebuf[from+2] == ';') { ++ while (from < curr && linebuf[from]) ++ { ++ linebuf[to] = linebuf[from]; ++ attr[to++] = attr[from++]; ++ /* FIXME: accept C1 ST */ ++ if (linebuf[from-1] == BEL || (linebuf[from-1] == '\\' && linebuf[from-2] == ESC)) ++ break; ++ } ++ } else { ++ while (from < curr && linebuf[from]) ++ { ++ linebuf[to] = linebuf[from]; ++ attr[to++] = attr[from]; ++ if (!is_ansi_middle(linebuf[from++])) ++ break; ++ } ++ } + continue; + } + +@@ -530,23 +542,141 @@ backc(VOID_PARAM) + + /* + * Are we currently within a recognized ANSI escape sequence? ++ * ++ * FIXME This code is a nightmare! ++ * Displaying a line potentially takes O(n^2) time as this function is called ++ * for each character. ++ * Why do we walk backwards at all, rather having a state machine that knows ++ * the current state??? ++ * Not to mention the if-else hell... + */ + static int + in_ansi_esc_seq(VOID_PARAM) + { +- char *p; ++ char *p, *save; ++ LWCHAR ch, ch2; + + /* +- * Search backwards for either an ESC (which means we ARE in a seq); ++ * Search backwards for either a CSI (which means we ARE in a seq); + * or an end char (which means we're NOT in a seq). + */ ++ ++ /* Potential lone ESC */ ++ p = &linebuf[curr]; ++ if (p > linebuf) ++ { ++ ch = step_char(&p, -1, linebuf); ++ if (ch == ESC) ++ return (1); ++ } ++ ++ /* Search for ESC [ or a terminator character */ + for (p = &linebuf[curr]; p > linebuf; ) + { +- LWCHAR ch = step_char(&p, -1, linebuf); +- if (IS_CSI_START(ch)) ++ ch = step_char(&p, -1, linebuf); ++ save = p; ++ if (ch == ESC) + return (1); ++ if (ch == CSI) ++ return (1); ++ else if (ch == '[' && p > linebuf) ++ { ++ ch2 = step_char(&p, -1, linebuf); ++ if (ch2 == ESC) ++ return (1); ++ } + if (!is_ansi_middle(ch)) + return (0); ++ p = save; ++ } ++ return (0); ++} ++ ++ ++ ++/* ++ * Are we currently within a hyperlink escape sequence? ++ * (Not to be confused with the the visible anchor text of the hyperlink.) ++ * ++ * FIXME This code is a nightmare! ++ * Displaying a line potentially takes O(n^2) time as this function is called ++* for each character. ++ * Why do we walk backwards at all, rather having a state machine that knows ++ * the current state??? ++ * Not to mention the if-else hell... ++ */ ++ static int ++in_hyperlink_esc_seq() ++{ ++ char *p, *save; ++ LWCHAR ch, ch2, ch3, ch4; ++ ++ /* ++ * Search backwards for either an OSC 8 ; (which means we ARE in a hyperlink); ++ * or a BEL or ST (which means we're NOT in a seq). ++ */ ++ ++ /* Potential prefix (ESC, ESC [ or ESC [ 8 but no semicolon yet) */ ++ p = &linebuf[curr]; ++ if (p > linebuf) ++ { ++ ch = step_char(&p, -1, linebuf); ++ if (ch == ESC) ++ return (1); ++ else if (ch == OSC) ++ return (1); ++ else if (ch == ']' && p > linebuf) ++ { ++ ch2 = step_char(&p, -1, linebuf); ++ if (ch2 == ESC) ++ return (1); ++ } ++ else if (ch == '8' && p > linebuf) ++ { ++ ch2 = step_char(&p, -1, linebuf); ++ if (ch2 == OSC) ++ return (1); ++ else if (ch2 == ']' && p > linebuf) ++ { ++ ch3 = step_char(&p, -1, linebuf); ++ if (ch3 == ESC) ++ return (1); ++ } ++ } ++ } ++ ++ /* ESC [ 8 ; or a terminator */ ++ for (p = &linebuf[curr]; p > linebuf; ) ++ { ++ ch = step_char(&p, -1, linebuf); ++ save = p; ++ if (ch == BEL) ++ return (0); ++ else if (ch == ST) ++ return (0); ++ else if (ch == '\\' && p > linebuf) ++ { ++ ch2 = step_char(&p, -1, linebuf); ++ if (ch2 == ESC) ++ return (0); ++ } ++ else if (ch == ';' && p > linebuf) ++ { ++ ch2 = step_char(&p, -1, linebuf); ++ if (ch2 == '8' && p > linebuf) ++ { ++ ch3 = step_char(&p, -1, linebuf); ++ if (ch3 == OSC) ++ return (1); ++ else if (ch3 == ']' && p > linebuf) ++ { ++ ch4 = step_char(&p, -1, linebuf); ++ if (ch4 == ESC) ++ return (1); ++ } ++ } ++ } ++ p = save; + } + return (0); + } +@@ -637,7 +767,12 @@ store_char(ch, a, rep, pos) + } + #endif + +- if (ctldisp == OPT_ONPLUS && in_ansi_esc_seq()) ++ if (ctldisp == OPT_ONPLUS && in_hyperlink_esc_seq()) ++ { ++ a = AT_ANSI; ++ w = 0; ++ } ++ else if (ctldisp == OPT_ONPLUS && in_ansi_esc_seq()) + { + if (!is_ansi_end(ch) && !is_ansi_middle(ch)) { + /* Remove whole unrecognized sequence. */ +@@ -1008,7 +1143,7 @@ do_append(ch, rep, pos) + { + STORE_PRCHAR((char) ch, pos); + } +- } else if (utf_mode && ctldisp != OPT_ON && is_ubin_char(ch)) ++ } else if (utf_mode && ctldisp != OPT_ON && is_ubin_char(ch) && ch != 7 /* FIXME hack for OSC 8 */) + { + char *s; + +@@ -1056,6 +1191,16 @@ add_attr_normal(VOID_PARAM) + return; + for ( ; *p != '\0'; p++) + add_linebuf(*p, AT_ANSI, 0); ++ if (ctldisp == OPT_ONPLUS) ++ { ++ /* Turn off hyperlink at end of line. */ ++ char *p = "\033]8;;\007"; ++ for ( ; *p != '\0'; p++) ++ { ++ linebuf[curr] = *p; ++ attr[curr++] = AT_ANSI; ++ } ++ } + } + + /* |