summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorKr1ss2020-09-08 18:48:51 +0200
committerKr1ss2020-09-08 18:48:51 +0200
commitcf12cab933ef3e130b35f5b2aaae7f0c9f81d176 (patch)
treec6046f45f06b0a17b34cc062d56e002f755879ba
downloadaur-cf12cab933ef3e130b35f5b2aaae7f0c9f81d176.tar.gz
initial upload: less-osc8-git 564.r4.9ea92b9-1
-rw-r--r--.SRCINFO21
-rw-r--r--NEWS1043
-rw-r--r--PKGBUILD53
-rw-r--r--osc8.patch309
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
+
diff --git a/NEWS b/NEWS
new file mode 100644
index 000000000000..997eddbb61f4
--- /dev/null
+++ b/NEWS
@@ -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;
++ }
++ }
+ }
+
+ /*