summaryrefslogtreecommitdiff
path: root/contrib/less
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2020-10-24 15:58:42 +0000
committerXin LI <delphij@FreeBSD.org>2020-10-24 15:58:42 +0000
commit6f26c71d76bb795b30684affb3b57870a7926b26 (patch)
treee5a4a645d61311de779b94706bcf1430d3eb6394 /contrib/less
parent072ac1a14346cbc9d96bfa63ede284ed863ab2a6 (diff)
parente3e1c0a5de4b6c7d51c0282b9378427383134aa9 (diff)
downloadsrc-test2-6f26c71d76bb795b30684affb3b57870a7926b26.tar.gz
src-test2-6f26c71d76bb795b30684affb3b57870a7926b26.zip
Notes
Diffstat (limited to 'contrib/less')
-rw-r--r--contrib/less/NEWS25
-rw-r--r--contrib/less/README12
-rw-r--r--contrib/less/brac.c2
-rw-r--r--contrib/less/ch.c6
-rw-r--r--contrib/less/charset.c4
-rw-r--r--contrib/less/charset.h2
-rw-r--r--contrib/less/cmd.h2
-rw-r--r--contrib/less/cmdbuf.c7
-rw-r--r--contrib/less/command.c10
-rw-r--r--contrib/less/compose.uni28
-rw-r--r--contrib/less/cvt.c2
-rw-r--r--contrib/less/decode.c2
-rw-r--r--contrib/less/edit.c3
-rw-r--r--contrib/less/filename.c4
-rw-r--r--contrib/less/fmt.uni3
-rw-r--r--contrib/less/forwback.c7
-rw-r--r--contrib/less/funcs.h7
-rw-r--r--contrib/less/help.c2
-rw-r--r--contrib/less/ifile.c2
-rw-r--r--contrib/less/input.c2
-rw-r--r--contrib/less/jump.c4
-rw-r--r--contrib/less/less.h2
-rw-r--r--contrib/less/less.nro167
-rw-r--r--contrib/less/lessecho.c2
-rw-r--r--contrib/less/lessecho.nro4
-rw-r--r--contrib/less/lesskey.c2
-rw-r--r--contrib/less/lesskey.h2
-rw-r--r--contrib/less/lesskey.nro389
-rw-r--r--contrib/less/lglob.h4
-rw-r--r--contrib/less/line.c6
-rw-r--r--contrib/less/linenum.c2
-rw-r--r--contrib/less/lsystem.c2
-rw-r--r--contrib/less/main.c5
-rw-r--r--contrib/less/mark.c2
-rwxr-xr-xcontrib/less/mkutable34
-rw-r--r--contrib/less/optfunc.c4
-rw-r--r--contrib/less/option.c25
-rw-r--r--contrib/less/option.h2
-rw-r--r--contrib/less/opttbl.c2
-rw-r--r--contrib/less/os.c2
-rw-r--r--contrib/less/output.c6
-rw-r--r--contrib/less/pattern.c2
-rw-r--r--contrib/less/pattern.h2
-rw-r--r--contrib/less/pckeys.h2
-rw-r--r--contrib/less/position.c2
-rw-r--r--contrib/less/position.h2
-rw-r--r--contrib/less/prompt.c2
-rw-r--r--contrib/less/screen.c59
-rw-r--r--contrib/less/scrsize.c2
-rw-r--r--contrib/less/search.c2
-rw-r--r--contrib/less/signal.c2
-rw-r--r--contrib/less/tags.c17
-rw-r--r--contrib/less/ttyin.c4
-rw-r--r--contrib/less/ubin.uni2
-rw-r--r--contrib/less/version.c18
-rw-r--r--contrib/less/wide.uni42
56 files changed, 551 insertions, 409 deletions
diff --git a/contrib/less/NEWS b/contrib/less/NEWS
index 24d74af4da2d..b0644fd2e0de 100644
--- a/contrib/less/NEWS
+++ b/contrib/less/NEWS
@@ -11,6 +11,31 @@
======================================================================
+ 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.
diff --git a/contrib/less/README b/contrib/less/README
index 36cc7e0a5591..81cb7e091296 100644
--- a/contrib/less/README
+++ b/contrib/less/README
@@ -7,9 +7,9 @@
**************************************************************************
**************************************************************************
- Less, version 551
+ Less, version 563
- This is the distribution of less, version 551, released 11 Jun 2019.
+ This is the distribution of less, version 563, released 13 Jun 2020.
This program is part of the GNU project (http://www.gnu.org).
This program is free software. You may redistribute it and/or
@@ -34,6 +34,14 @@ The manual page nroff source is in less.nro.
Major changes made since the last posted version are in NEWS.
=======================================================================
+PRE-INSTALLATION (when using git)
+
+If you are building from a clone of a git repository,
+type "make -f Makefile.aut".
+If you are building from a numbered release package (a tar or zip file
+with a name like less-999.tar.gz or less-999.zip), you should skip this step.
+
+=======================================================================
INSTALLATION (Unix systems only):
1. Move the distributed source to its own directory and unpack it,
diff --git a/contrib/less/brac.c b/contrib/less/brac.c
index cea4a2bd6857..db3a2951db08 100644
--- a/contrib/less/brac.c
+++ b/contrib/less/brac.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/ch.c b/contrib/less/ch.c
index 636f68f00791..70fad1002dbf 100644
--- a/contrib/less/ch.c
+++ b/contrib/less/ch.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -408,6 +408,7 @@ end_logfile(VOID_PARAM)
}
close(logfile);
logfile = -1;
+ free(namelogfile);
namelogfile = NULL;
}
@@ -842,7 +843,8 @@ seekable(f)
public void
ch_set_eof(VOID_PARAM)
{
- ch_fsize = ch_fpos;
+ if (ch_fsize != NULL_POSITION && ch_fsize < ch_fpos)
+ ch_fsize = ch_fpos;
}
diff --git a/contrib/less/charset.c b/contrib/less/charset.c
index 5441952a0db5..4897cbaf6adc 100644
--- a/contrib/less/charset.c
+++ b/contrib/less/charset.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -509,7 +509,7 @@ prutfchar(ch)
*/
public int
utf_len(ch)
- unsigned char ch;
+ int ch;
{
if ((ch & 0x80) == 0)
return 1;
diff --git a/contrib/less/charset.h b/contrib/less/charset.h
index 500309131332..cc0c3af59e89 100644
--- a/contrib/less/charset.h
+++ b/contrib/less/charset.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/cmd.h b/contrib/less/cmd.h
index 8ea178309a65..95a2e5801717 100644
--- a/contrib/less/cmd.h
+++ b/contrib/less/cmd.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/cmdbuf.c b/contrib/less/cmdbuf.c
index 0648aecb7075..ed78ded00307 100644
--- a/contrib/less/cmdbuf.c
+++ b/contrib/less/cmdbuf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -34,7 +34,7 @@ static int literal; /* Next input char should not be interpreted */
static int updown_match = -1; /* Prefix length in up/down movement */
#if TAB_COMPLETE_FILENAME
-static int cmd_complete();
+static int cmd_complete LESSPARAMS((int action));
/*
* These variables are statics used by cmd_complete.
*/
@@ -960,10 +960,7 @@ cmd_istr(str)
step_char(&s, +1, endline);
action = cmd_ichar(os, s - os);
if (action != CC_OK)
- {
- bell();
return (action);
- }
}
return (CC_OK);
}
diff --git a/contrib/less/command.c b/contrib/less/command.c
index f37ff0d75159..8e0ae4b34d67 100644
--- a/contrib/less/command.c
+++ b/contrib/less/command.c
@@ -1,6 +1,6 @@
/* $FreeBSD$ */
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -90,7 +90,7 @@ struct ungot {
};
static struct ungot* ungot = NULL;
-static void multi_search();
+static void multi_search LESSPARAMS((char *pattern, int n, int silent));
/*
* Move the cursor to start of prompt line before executing a command.
@@ -1806,6 +1806,12 @@ commands(VOID_PARAM)
optgetname = FALSE;
mca_opt_toggle();
c = getcc();
+ cbuf = opt_toggle_disallowed(c);
+ if (cbuf != NULL)
+ {
+ error(cbuf, NULL_PARG);
+ break;
+ }
goto again;
case A_DISP_OPTION:
diff --git a/contrib/less/compose.uni b/contrib/less/compose.uni
index 389814caa023..bbf4b20387fc 100644
--- a/contrib/less/compose.uni
+++ b/contrib/less/compose.uni
@@ -1,4 +1,4 @@
-/* Generated by "./mkutable -f2 Mn Me -- unicode/UnicodeData.txt" on Wed Feb 13 17:57:05 PST 2019 */
+/* Generated by "./mkutable -f2 Mn Me -- unicode/UnicodeData.txt" on Tue May 19 14:47:34 PDT 2020 */
{ 0x0300, 0x036f }, /* Mn */
{ 0x0483, 0x0487 }, /* Mn */
{ 0x0488, 0x0489 }, /* Me */
@@ -58,7 +58,7 @@
{ 0x0b3f, 0x0b3f }, /* Mn */
{ 0x0b41, 0x0b44 }, /* Mn */
{ 0x0b4d, 0x0b4d }, /* Mn */
- { 0x0b56, 0x0b56 }, /* Mn */
+ { 0x0b55, 0x0b56 }, /* Mn */
{ 0x0b62, 0x0b63 }, /* Mn */
{ 0x0b82, 0x0b82 }, /* Mn */
{ 0x0bc0, 0x0bc0 }, /* Mn */
@@ -81,6 +81,7 @@
{ 0x0d41, 0x0d44 }, /* Mn */
{ 0x0d4d, 0x0d4d }, /* Mn */
{ 0x0d62, 0x0d63 }, /* Mn */
+ { 0x0d81, 0x0d81 }, /* Mn */
{ 0x0dca, 0x0dca }, /* Mn */
{ 0x0dd2, 0x0dd4 }, /* Mn */
{ 0x0dd6, 0x0dd6 }, /* Mn */
@@ -88,8 +89,7 @@
{ 0x0e34, 0x0e3a }, /* Mn */
{ 0x0e47, 0x0e4e }, /* Mn */
{ 0x0eb1, 0x0eb1 }, /* Mn */
- { 0x0eb4, 0x0eb9 }, /* Mn */
- { 0x0ebb, 0x0ebc }, /* Mn */
+ { 0x0eb4, 0x0ebc }, /* Mn */
{ 0x0ec8, 0x0ecd }, /* Mn */
{ 0x0f18, 0x0f19 }, /* Mn */
{ 0x0f35, 0x0f35 }, /* Mn */
@@ -112,6 +112,7 @@
{ 0x1085, 0x1086 }, /* Mn */
{ 0x108d, 0x108d }, /* Mn */
{ 0x109d, 0x109d }, /* Mn */
+ { 0x1160, 0x11ff }, /* Mn */
{ 0x135d, 0x135f }, /* Mn */
{ 0x1712, 0x1714 }, /* Mn */
{ 0x1732, 0x1734 }, /* Mn */
@@ -140,6 +141,7 @@
{ 0x1a7f, 0x1a7f }, /* Mn */
{ 0x1ab0, 0x1abd }, /* Mn */
{ 0x1abe, 0x1abe }, /* Me */
+ { 0x1abf, 0x1ac0 }, /* Mn */
{ 0x1b00, 0x1b03 }, /* Mn */
{ 0x1b34, 0x1b34 }, /* Mn */
{ 0x1b36, 0x1b3a }, /* Mn */
@@ -183,6 +185,7 @@
{ 0xa806, 0xa806 }, /* Mn */
{ 0xa80b, 0xa80b }, /* Mn */
{ 0xa825, 0xa826 }, /* Mn */
+ { 0xa82c, 0xa82c }, /* Mn */
{ 0xa8c4, 0xa8c5 }, /* Mn */
{ 0xa8e0, 0xa8f1 }, /* Mn */
{ 0xa8ff, 0xa8ff }, /* Mn */
@@ -191,7 +194,7 @@
{ 0xa980, 0xa982 }, /* Mn */
{ 0xa9b3, 0xa9b3 }, /* Mn */
{ 0xa9b6, 0xa9b9 }, /* Mn */
- { 0xa9bc, 0xa9bc }, /* Mn */
+ { 0xa9bc, 0xa9bd }, /* Mn */
{ 0xa9e5, 0xa9e5 }, /* Mn */
{ 0xaa29, 0xaa2e }, /* Mn */
{ 0xaa31, 0xaa32 }, /* Mn */
@@ -209,6 +212,8 @@
{ 0xabe5, 0xabe5 }, /* Mn */
{ 0xabe8, 0xabe8 }, /* Mn */
{ 0xabed, 0xabed }, /* Mn */
+ { 0xd7b0, 0xd7c6 }, /* Mn */
+ { 0xd7cb, 0xd7fb }, /* Mn */
{ 0xfb1e, 0xfb1e }, /* Mn */
{ 0xfe00, 0xfe0f }, /* Mn */
{ 0xfe20, 0xfe2f }, /* Mn */
@@ -222,6 +227,7 @@
{ 0x10a3f, 0x10a3f }, /* Mn */
{ 0x10ae5, 0x10ae6 }, /* Mn */
{ 0x10d24, 0x10d27 }, /* Mn */
+ { 0x10eab, 0x10eac }, /* Mn */
{ 0x10f46, 0x10f50 }, /* Mn */
{ 0x11001, 0x11001 }, /* Mn */
{ 0x11038, 0x11046 }, /* Mn */
@@ -235,6 +241,7 @@
{ 0x11180, 0x11181 }, /* Mn */
{ 0x111b6, 0x111be }, /* Mn */
{ 0x111c9, 0x111cc }, /* Mn */
+ { 0x111cf, 0x111cf }, /* Mn */
{ 0x1122f, 0x11231 }, /* Mn */
{ 0x11234, 0x11234 }, /* Mn */
{ 0x11236, 0x11237 }, /* Mn */
@@ -270,6 +277,12 @@
{ 0x11727, 0x1172b }, /* Mn */
{ 0x1182f, 0x11837 }, /* Mn */
{ 0x11839, 0x1183a }, /* Mn */
+ { 0x1193b, 0x1193c }, /* Mn */
+ { 0x1193e, 0x1193e }, /* Mn */
+ { 0x11943, 0x11943 }, /* Mn */
+ { 0x119d4, 0x119d7 }, /* Mn */
+ { 0x119da, 0x119db }, /* Mn */
+ { 0x119e0, 0x119e0 }, /* Mn */
{ 0x11a01, 0x11a0a }, /* Mn */
{ 0x11a33, 0x11a38 }, /* Mn */
{ 0x11a3b, 0x11a3e }, /* Mn */
@@ -296,7 +309,9 @@
{ 0x11ef3, 0x11ef4 }, /* Mn */
{ 0x16af0, 0x16af4 }, /* Mn */
{ 0x16b30, 0x16b36 }, /* Mn */
+ { 0x16f4f, 0x16f4f }, /* Mn */
{ 0x16f8f, 0x16f92 }, /* Mn */
+ { 0x16fe4, 0x16fe4 }, /* Mn */
{ 0x1bc9d, 0x1bc9e }, /* Mn */
{ 0x1d167, 0x1d169 }, /* Mn */
{ 0x1d17b, 0x1d182 }, /* Mn */
@@ -314,6 +329,9 @@
{ 0x1e01b, 0x1e021 }, /* Mn */
{ 0x1e023, 0x1e024 }, /* Mn */
{ 0x1e026, 0x1e02a }, /* Mn */
+ { 0x1e130, 0x1e136 }, /* Mn */
+ { 0x1e2ae, 0x1e2ae }, /* Mn */
+ { 0x1e2ec, 0x1e2ef }, /* Mn */
{ 0x1e8d0, 0x1e8d6 }, /* Mn */
{ 0x1e944, 0x1e94a }, /* Mn */
{ 0xe0100, 0xe01ef }, /* Mn */
diff --git a/contrib/less/cvt.c b/contrib/less/cvt.c
index e635655dd1be..e850a51452a2 100644
--- a/contrib/less/cvt.c
+++ b/contrib/less/cvt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/decode.c b/contrib/less/decode.c
index 74bbc4fdaf3f..c5467ffe2697 100644
--- a/contrib/less/decode.c
+++ b/contrib/less/decode.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/edit.c b/contrib/less/edit.c
index 82a79b134c3e..3702b5051cec 100644
--- a/contrib/less/edit.c
+++ b/contrib/less/edit.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -854,7 +854,6 @@ loop:
/*
* Don't do anything.
*/
- free(filename);
return;
case 'q':
quit(QUIT_OK);
diff --git a/contrib/less/filename.c b/contrib/less/filename.c
index 7c3ccd2e97a5..adb5e646c112 100644
--- a/contrib/less/filename.c
+++ b/contrib/less/filename.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -795,7 +795,7 @@ lglob(filename)
}
/*
- * @@@
+ * Return canonical pathname.
*/
public char *
lrealpath(path)
diff --git a/contrib/less/fmt.uni b/contrib/less/fmt.uni
index ff71d294c955..bef4227fea9e 100644
--- a/contrib/less/fmt.uni
+++ b/contrib/less/fmt.uni
@@ -1,4 +1,4 @@
-/* Generated by "./mkutable -f2 Cf -- unicode/UnicodeData.txt" on Wed Feb 13 17:57:05 PST 2019 */
+/* Generated by "./mkutable -f2 Cf -- unicode/UnicodeData.txt" on Tue May 19 14:47:34 PDT 2020 */
{ 0x00ad, 0x00ad }, /* Cf */
{ 0x0600, 0x0605 }, /* Cf */
{ 0x061c, 0x061c }, /* Cf */
@@ -14,6 +14,7 @@
{ 0xfff9, 0xfffb }, /* Cf */
{ 0x110bd, 0x110bd }, /* Cf */
{ 0x110cd, 0x110cd }, /* Cf */
+ { 0x13430, 0x13438 }, /* Cf */
{ 0x1bca0, 0x1bca3 }, /* Cf */
{ 0x1d173, 0x1d17a }, /* Cf */
{ 0xe0001, 0xe0001 }, /* Cf */
diff --git a/contrib/less/forwback.c b/contrib/less/forwback.c
index 5b6f20035871..76ecc162c3ca 100644
--- a/contrib/less/forwback.c
+++ b/contrib/less/forwback.c
@@ -1,6 +1,6 @@
/* $FreeBSD$ */
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -21,7 +21,6 @@ public int screen_trashed;
public int squished;
public int no_back_scroll = 0;
public int forw_prompt;
-public int same_pos_bell = 1;
extern int sigs;
extern int top_scroll;
@@ -290,7 +289,7 @@ forw(n, pos, force, only_last, nblank)
forw_prompt = 1;
}
- if (nlines == 0 && !ignore_eoi && same_pos_bell)
+ if (nlines == 0 && !ignore_eoi)
eof_bell();
else if (do_repaint)
repaint();
@@ -350,7 +349,7 @@ back(n, pos, force, only_last)
}
}
- if (nlines == 0 && same_pos_bell)
+ if (nlines == 0)
eof_bell();
else if (do_repaint)
repaint();
diff --git a/contrib/less/funcs.h b/contrib/less/funcs.h
index 9686df1d7851..fb3c7bbfed92 100644
--- a/contrib/less/funcs.h
+++ b/contrib/less/funcs.h
@@ -61,7 +61,7 @@ public int binary_char LESSPARAMS ((LWCHAR c));
public int control_char LESSPARAMS ((LWCHAR c));
public char * prchar LESSPARAMS ((LWCHAR c));
public char * prutfchar LESSPARAMS ((LWCHAR ch));
-public int utf_len LESSPARAMS ((unsigned char ch));
+public int utf_len LESSPARAMS ((int ch));
public int is_utf8_well_formed LESSPARAMS ((char *ss, int slen));
public void utf_skip_to_lead LESSPARAMS ((char **pp, char *limit));
public LWCHAR get_wchar LESSPARAMS ((constant char *p));
@@ -187,10 +187,10 @@ public void pshift_all LESSPARAMS ((VOID_PARAM));
public int is_ansi_end LESSPARAMS ((LWCHAR ch));
public int is_ansi_middle LESSPARAMS ((LWCHAR ch));
public void skip_ansi LESSPARAMS ((char **pp, constant char *limit));
-public int pappend LESSPARAMS ((unsigned char c, POSITION pos));
+public int pappend LESSPARAMS ((int c, POSITION pos));
public int pflushmbc LESSPARAMS ((VOID_PARAM));
public void pdone LESSPARAMS ((int endline, int chopped, int forw));
-public void set_status_col LESSPARAMS ((char c));
+public void set_status_col LESSPARAMS ((int c));
public int gline LESSPARAMS ((int i, int *ap));
public void null_line LESSPARAMS ((VOID_PARAM));
public POSITION forw_raw_line LESSPARAMS ((POSITION curr_pos, char **linep, int *line_lenp));
@@ -243,6 +243,7 @@ public void scan_option LESSPARAMS ((char *s));
public void toggle_option LESSPARAMS ((struct loption *o, int lower, char *s, int how_toggle));
public int opt_has_param LESSPARAMS ((struct loption *o));
public char * opt_prompt LESSPARAMS ((struct loption *o));
+public char * opt_toggle_disallowed LESSPARAMS ((int c));
public int isoptpending LESSPARAMS ((VOID_PARAM));
public void nopendopt LESSPARAMS ((VOID_PARAM));
public int getnum LESSPARAMS ((char **sp, char *printopt, int *errp));
diff --git a/contrib/less/help.c b/contrib/less/help.c
index f9c2dd95d0ba..cfaa57855902 100644
--- a/contrib/less/help.c
+++ b/contrib/less/help.c
@@ -1,4 +1,4 @@
-/* This file was generated by mkhelp.pl from less.hlp at 18:12 on 2019/6/11 */
+/* This file was generated by mkhelp.pl from less.hlp at 3:34 on 2020/6/14 */
#include "less.h"
constant char helpdata[] = {
'\n',
diff --git a/contrib/less/ifile.c b/contrib/less/ifile.c
index ceb59b773781..6006cb12bd20 100644
--- a/contrib/less/ifile.c
+++ b/contrib/less/ifile.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/input.c b/contrib/less/input.c
index 8d0ebb151b7b..526fe4be3bdb 100644
--- a/contrib/less/input.c
+++ b/contrib/less/input.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/jump.c b/contrib/less/jump.c
index 0e1d35d0e04f..a8ed6a5303e5 100644
--- a/contrib/less/jump.c
+++ b/contrib/less/jump.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -219,7 +219,7 @@ jump_loc(pos, sline)
nline -= sindex;
if (nline > 0)
forw(nline, position(BOTTOM_PLUS_ONE), 1, 0, 0);
- else if (nline < 0)
+ else
back(-nline, position(TOP), 1, 0);
#if HILITE_SEARCH
if (show_attn)
diff --git a/contrib/less/less.h b/contrib/less/less.h
index 7ec58c3c1fdc..944df687cbec 100644
--- a/contrib/less/less.h
+++ b/contrib/less/less.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/less.nro b/contrib/less/less.nro
index 0aa8b7863330..70f99ce6f286 100644
--- a/contrib/less/less.nro
+++ b/contrib/less/less.nro
@@ -1,4 +1,5 @@
-.TH LESS 1 "Version 551: 11 Jun 2019"
+'\" t
+.TH LESS 1 "Version 563: 13 Jun 2020"
.SH NAME
less \- opposite of more
.SH SYNOPSIS
@@ -21,19 +22,18 @@ less \- opposite of more
.B " [\-# \fIshift\/\fP] [+[+]\fIcmd\/\fP] [\-\-] [\fIfilename\/\fP]..."
.br
(See the OPTIONS section for alternate option syntax with long option names.)
-
+.
.SH DESCRIPTION
.I Less
is a program similar to
-.I more
-(1), but which allows backward movement
+.IR more (1),
+but which allows backward movement
in the file as well as forward movement.
Also,
.I less
does not have to read the entire input file before starting,
so with large input files it starts up faster than text editors like
-.I vi
-(1).
+.IR vi (1).
.I Less
uses termcap (or terminfo on some systems),
so it can run on a variety of terminals.
@@ -48,7 +48,7 @@ and
Commands may be preceded by a decimal number,
called N in the descriptions below.
The number is used by some commands, as indicated.
-
+.
.SH COMMANDS
In the following descriptions, ^X means control-X.
ESC stands for the ESCAPE key; for example ESC-v means the
@@ -229,7 +229,7 @@ that is, do a simple textual comparison.
.RE
.IP ?pattern
Search backward in the file for the N-th line containing the pattern.
-The search starts at the last line displayed
+The search starts at the last line displayed
(but see the \-a and \-j options, which change this).
.sp
Certain characters are special as in the / command:
@@ -376,7 +376,7 @@ this will reset the option to the "opposite" of its default setting
and print a message describing the new setting.
This does not work for numeric or string-valued options.
.IP \-\-!
-Like the \-! command, but takes a long option name
+Like the \-!\& command, but takes a long option name
rather than a single option letter.
.IP _
(Underscore.)
@@ -405,7 +405,7 @@ Exits
The following
four
commands may or may not be valid, depending on your particular installation.
-.PP
+.
.IP v
Invokes an editor to edit the current file being viewed.
The editor is taken from the environment variable VISUAL if defined,
@@ -425,7 +425,7 @@ On MS-DOS and OS/2 systems, the shell is the normal command processor.
.IP "| <m> shell-command"
<m> represents any mark letter.
Pipes a section of the input file to the given shell command.
-The section of the file to be piped is between the position marked by
+The section of the file to be piped is between the position marked by
the letter and the current screen.
The entire current screen is included, regardless of whether the
marked position is before or after the current screen.
@@ -434,7 +434,7 @@ If <m> is \&.\& or newline, the current screen is piped.
.IP "s filename"
Save the input to a file.
This only works if the input is a pipe, not an ordinary file.
-.PP
+.
.SH OPTIONS
Command line options are described below.
Most options may be changed while
@@ -518,7 +518,7 @@ This was the default behavior in less versions prior to 441.
Specifies the amount of buffer space
.I less
will use for each file, in units of kilobytes (1024 bytes).
-By default 64\ K of buffer space is used for each file
+By default 64\ KB of buffer space is used for each file
(unless the file is a pipe; see the \-B option).
The \-b option specifies instead that \fIn\fP kilobytes of
buffer space should be used for each file.
@@ -530,7 +530,7 @@ buffers are allocated automatically as needed.
If a large amount of data is read from the pipe, this can cause
a large amount of memory to be allocated.
The \-B option disables this automatic allocation of buffers for pipes,
-so that only 64\ K
+so that only 64\ KB
(or the amount of space specified by the \-b option)
is used for the pipe.
Warning: use of \-B can result in erroneous display, since only the
@@ -563,8 +563,9 @@ A single number \fIN\fP is the same as \fIN.M\fP,
where \fIM\fP is the normal background color.
The color may start or end with \fBu\fP to use underline (with the normal
color, if by itself), if the system supports it (Windows only).
-\fBx\fP may also be \fBa\fP to toggle strict ANSI sequence rendering (SGR mode).
-
+\fBx\fP may also be \fBa\fP to toggle strict ANSI sequence rendering
+(SGR mode).
+.
.IP "\-e or \-\-quit-at-eof"
Causes
.I less
@@ -654,8 +655,8 @@ The status column is also used if the \-w or \-W option is in effect.
Causes
.I less
to open and interpret the named file as a
-.I lesskey
-(1) file.
+.IR lesskey (1)
+file.
Multiple \-k options may be specified.
If the LESSKEY or LESSKEY_SYSTEM environment variable is set, or
if a lesskey file is found in a standard place (see KEY BINDINGS),
@@ -746,7 +747,7 @@ to that string.
\-Ph changes the prompt for the help screen.
\-P= changes the message printed by the = command.
\-Pw changes the message printed while waiting for data (in the F command).
-
+.sp 1
All prompt strings consist of a sequence of
letters and special escape sequences.
See the section on PROMPTS for more details.
@@ -762,7 +763,7 @@ The default is to ring the terminal bell in all such cases.
.IP "\-Q or \-\-QUIET or \-\-SILENT"
Causes totally "quiet" operation:
the terminal bell is never rung.
-If the terminal has a "visual bell", it is used in all cases
+If the terminal has a "visual bell", it is used in all cases
where the terminal bell would have been rung.
.IP "\-r or \-\-raw-control-chars"
Causes "raw" control characters to be displayed.
@@ -804,7 +805,7 @@ output.
Causes lines longer than the screen width to be
chopped (truncated) rather than wrapped.
That is, the portion of a long line that does not fit in
-the screen width is not shown.
+the screen width is not displayed until you press RIGHT-ARROW.
The default is to wrap long lines; that is, display the remainder
on the next line.
.IP "\-t\fItag\fP or \-\-tag=\fItag\fP"
@@ -813,12 +814,12 @@ will edit the file containing that tag.
For this to work, tag information must be available;
for example, there may be a file in the current directory called "tags",
which was previously built by
-.I ctags
-(1) or an equivalent command.
+.IR ctags (1)
+or an equivalent command.
If the environment variable LESSGLOBALTAGS is set, it is taken to be
the name of a command compatible with
-.I global
-(1), and that command is executed to find the tag.
+.IR global (1),
+and that command is executed to find the tag.
(See http://www.gnu.org/software/global/global.html).
The \-t option may also be specified from within
.I less
@@ -870,7 +871,7 @@ If only one \fIn\fP is specified, tab stops are set at multiples of \fIn\fP.
If multiple values separated by commas are specified, tab stops
are set at those positions, and then continue with the same spacing as the
last two.
-For example, \fI-x9,17\fP will set tabs at positions 9, 17, 25, 33, etc.
+For example, \fI\-x9,17\fP will set tabs at positions 9, 17, 25, 33, etc.
The default for \fIn\fP is 8.
.IP "\-X or \-\-no-init"
Disables sending the termcap initialization and deinitialization strings
@@ -944,15 +945,15 @@ will display the contents of that new file.
Enables mouse input:
scrolling the mouse wheel down moves forward in the file,
scrolling the mouse wheel up moves backwards in the file,
-and clicking the mouse sets the "#" mark to the line
+and clicking the mouse sets the "#" mark to the line
where the mouse is clicked.
-The number of lines to scroll when the wheel is moved
+The number of lines to scroll when the wheel is moved
can be set by the \-\-wheel-lines option.
Mouse input works only on terminals which support X11 mouse reporting,
-and on the Windows version of
+and on the Windows version of
.IR less .
.IP "\-\-MOUSE"
-Like \-\-mouse, except the direction scrolled
+Like \-\-mouse, except the direction scrolled
on mouse wheel movement is reversed.
.IP "\-\-no-keypad"
Disables sending the keypad initialization and deinitialization strings
@@ -961,7 +962,7 @@ This is sometimes useful if the keypad strings make the numeric
keypad behave in an undesirable manner.
.IP "\-\-no-histdups"
This option changes the behavior so that if a search string or
-file name is typed in, and the same string is already in the history list,
+file name is typed in, and the same string is already in the history list,
the existing copy is removed from the history list before the new one is added.
Thus, a given string will appear only once in the history list.
Normally, a string may appear multiple times.
@@ -969,7 +970,7 @@ Normally, a string may appear multiple times.
This option changes the character used to mark truncated lines.
It may begin with a two-character attribute indicator like LESSBINFMT does.
If there is no attribute indicator, standout is used.
-If set to "-", truncated lines are not marked.
+If set to "\-", truncated lines are not marked.
.IP "\-\-save-marks"
Save marks in the history file, so marks are retained
across different invocations of \fIless\fP.
@@ -1001,7 +1002,7 @@ If the option starts with ++, the initial command applies to
every file being viewed, not just the first one.
The + command described previously
may also be used to set (or change) an initial command for every file.
-
+.
.SH "LINE EDITING"
When entering command line at the bottom of the screen
(for example, a filename for the :e command,
@@ -1069,13 +1070,12 @@ If you have changed your line-kill character in Unix to something
other than ^U, that character is used instead of ^U.
.IP "^G"
Delete the entire command line and return to the main prompt.
-
+.
.SH "KEY BINDINGS"
You may define your own
.I less
commands by using the program
-.I lesskey
-(1)
+.IR lesskey (1)
to create a lesskey file.
This file specifies a set of command keys and an action
associated with each key.
@@ -1125,7 +1125,7 @@ was built with a different sysconf directory than /usr/local/etc,
that directory is where the sysless file is found.)
On MS-DOS and Windows systems, the system-wide lesskey file is c:\e_sysless.
On OS/2 systems, the system-wide lesskey file is c:\esysless.ini.
-
+.
.SH "INPUT PREPROCESSOR"
You may define an "input preprocessor" for
.IR less .
@@ -1294,7 +1294,7 @@ Similarly, if the first two characters of LESSOPEN are vertical bar and dash
the input pipe is used on standard input as well as other files.
Again, in this case the dash is not considered to be part of
the input pipe command.
-
+.
.SH "NATIONAL CHARACTER SETS"
There are three types of characters in the input file:
.IP "normal characters"
@@ -1349,7 +1349,7 @@ In this case, the environment variable LESSCHARDEF can be used
to define a character set.
It should be set to a string where each character in the string represents
one character in the character set.
-The character "." is used for a normal character, "c" for control,
+The character ".\&" is used for a normal character, "c" for control,
and "b" for binary.
A decimal number may be used for repetition.
For example, "bccc4b.\&" would mean character 0 is binary,
@@ -1361,26 +1361,22 @@ represent any real character set.)
.PP
This table shows the value of LESSCHARDEF which is equivalent
to each of the possible values for LESSCHARSET:
-.sp
- ascii\ 8bcccbcc18b95.b
-.br
- dos\ \ \ 8bcccbcc12bc5b95.b.
-.br
- ebcdic 5bc6bcc7bcc41b.9b7.9b5.b..8b6.10b6.b9.7b
-.br
- \ \ \ \ \ \ 9.8b8.17b3.3b9.7b9.8b8.6b10.b.b.b.
-.br
- IBM-1047 4cbcbc3b9cbccbccbb4c6bcc5b3cbbc4bc4bccbc
-.br
- \ \ \ \ \ \ 191.b
-.br
- iso8859 8bcccbcc18b95.33b.
-.br
- koi8-r 8bcccbcc18b95.b128.
-.br
- latin1 8bcccbcc18b95.33b.
-.br
- next\ \ 8bcccbcc18b95.bb125.bb
+.
+.RS 5m
+.TS
+l l.
+ascii 8bcccbcc18b95.b
+dos 8bcccbcc12bc5b95.b.
+ebcdic 5bc6bcc7bcc41b.9b7.9b5.b..8b6.10b6.b9.7b
+ 9.8b8.17b3.3b9.7b9.8b8.6b10.b.b.b.
+IBM-1047 4cbcbc3b9cbccbccbb4c6bcc5b3cbbc4bc4bccbc
+ 191.b
+iso8859 8bcccbcc18b95.33b.
+koi8-r 8bcccbcc18b95.b128.
+latin1 8bcccbcc18b95.33b.
+next 8bcccbcc18b95.bb125.bb
+.TE
+.RE
.PP
If neither LESSCHARSET nor LESSCHARDEF is set,
but any of the strings "UTF-8", "UTF8", "utf-8" or "utf8"
@@ -1429,11 +1425,11 @@ setting ("*x") so specifying one will affect both;
LESSUTFBINFMT is read after LESSBINFMT so its setting, if any,
will have priority.
Problematic octets in a UTF-8 file (octets of a truncated sequence,
-octets of a complete but non-shortest form sequence, illegal octets,
+octets of a complete but non-shortest form sequence, invalid octets,
and stray trailing octets)
are displayed individually using LESSBINFMT so as to facilitate diagnostic
of how the UTF-8 file is ill-formed.
-
+.
.SH "PROMPTS"
The \-P option allows you to tailor the prompt to your preference.
The string given to the \-P option replaces the specified prompt string.
@@ -1500,7 +1496,8 @@ Causes any trailing spaces to be removed.
Usually used at the end of the string, but may appear anywhere.
.IP "%T"
Normally expands to the word "file".
-However if viewing files via a tags list using the \-t option, it expands to the word "tag".
+However if viewing files via a tags list using the \-t option,
+it expands to the word "tag".
.IP "%x"
Replaced by the name of the next input file in the list.
.PP
@@ -1620,7 +1617,7 @@ line number, followed by the shell-escaped file name.
If your editor does not accept the "+linenumber" syntax, or has other
differences in invocation syntax, the LESSEDIT variable can be
changed to modify this default.
-
+.
.SH SECURITY
When the environment variable LESSSECURE is set to 1,
.I less
@@ -1641,14 +1638,14 @@ log files
use of lesskey files
.IP "\-t"
use of tags files
-.IP " "
+.IP
metacharacters in filenames, such as *
-.IP " "
+.IP
filename completion (TAB, ^L)
.RE
.PP
Less can also be compiled to be permanently in "secure" mode.
-
+.
.SH "COMPATIBILITY WITH MORE"
If the environment variable LESS_IS_MORE is set to 1,
or if the program is invoked via a file link named "more",
@@ -1666,7 +1663,7 @@ behaves as if the \-E option were set.
.PP
The \-m option works differently.
If the \-m option is not set, the medium prompt is used,
-and it is prefixed with the string "--More--".
+and it is prefixed with the string "\-\-More\-\-".
If the \-m option is set, the short prompt is used.
.PP
The \-n option acts like the \-z option.
@@ -1678,12 +1675,12 @@ command rather than a search pattern.
.PP
The LESS environment variable is ignored,
and the MORE environment variable is used in its place.
-
+.
.SH "ENVIRONMENT VARIABLES"
Environment variables may be specified either in the system environment
as usual, or in a
-.I lesskey
-(1) file.
+.IR lesskey (1)
+file.
If environment variables are defined in more than one place,
variables defined in a local lesskey file take precedence over
variables defined in the system environment, which take precedence
@@ -1738,8 +1735,8 @@ See discussion under PROMPTS.
.IP LESSGLOBALTAGS
Name of the command used by the \-t option to find global tags.
Normally should be set to "global" if your system has the
-.I global
-(1) command. If not set, global tags are not used.
+.IR global (1)
+command. If not set, global tags are not used.
.IP LESSHISTFILE
Name of the history file used to remember search commands and
shell commands between invocations of
@@ -1752,9 +1749,13 @@ on OS/2 systems.
The maximum number of commands to save in the history file.
The default is 100.
.IP LESSKEY
-Name of the default lesskey(1) file.
+Name of the default
+.IR lesskey (1)
+file.
.IP LESSKEY_SYSTEM
-Name of the default system-wide lesskey(1) file.
+Name of the default system-wide
+.IR lesskey (1)
+file.
.IP LESSMETACHARS
List of characters which are considered "metacharacters" by the shell.
.IP LESSMETAESCAPE
@@ -1773,8 +1774,8 @@ String to be appended to a directory name in filename completion.
Format for displaying non-printable Unicode code points.
.IP LESS_IS_MORE
Emulate the
-.I more
-(1) command.
+.IR more (1)
+command.
.IP LINES
Sets the number of lines on the screen.
Takes precedence over the number of lines specified by the TERM variable.
@@ -1791,19 +1792,19 @@ compatible mode.
User's search path (used to find a lesskey file
on MS-DOS and OS/2 systems).
.IP SHELL
-The shell used to execute the ! command, as well as to expand filenames.
+The shell used to execute the !\& command, as well as to expand filenames.
.IP TERM
The type of terminal on which
.I less
is being run.
.IP VISUAL
The name of the editor (used for the v command).
-
+.
.SH "SEE ALSO"
-lesskey(1)
-
+.BR lesskey (1)
+.
.SH COPYRIGHT
-Copyright (C) 1984-2019 Mark Nudelman
+Copyright (C) 1984-2020 Mark Nudelman
.PP
less is part of the GNU project and is free software.
You can redistribute it and/or modify it
@@ -1823,9 +1824,9 @@ less is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
-
+.
.SH AUTHOR
-.PP
+.
Mark Nudelman
.br
Report bugs at https://github.com/gwsw/less/issues.
diff --git a/contrib/less/lessecho.c b/contrib/less/lessecho.c
index 2f4a10eed109..6bf2e9c32b51 100644
--- a/contrib/less/lessecho.c
+++ b/contrib/less/lessecho.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/lessecho.nro b/contrib/less/lessecho.nro
index 4fe997e8b1cd..d6d367b55429 100644
--- a/contrib/less/lessecho.nro
+++ b/contrib/less/lessecho.nro
@@ -1,4 +1,4 @@
-.TH LESSECHO 1 "Version 551: 11 Jun 2019"
+.TH LESSECHO 1 "Version 563: 13 Jun 2020"
.SH NAME
lessecho \- expand metacharacters
.SH SYNOPSIS
@@ -44,7 +44,7 @@ Specifies "n" to be the escape char for metachars, as an integer.
Specifies that all arguments are to be quoted.
The default is that only arguments containing metacharacters are quoted
.SH "SEE ALSO"
-less(1)
+.BR less (1)
.SH AUTHOR
This manual page was written by Thomas Schoepf <schoepf@debian.org>,
for the Debian GNU/Linux system (but may be used by others).
diff --git a/contrib/less/lesskey.c b/contrib/less/lesskey.c
index 96a446228dee..74cdcb2cb2cf 100644
--- a/contrib/less/lesskey.c
+++ b/contrib/less/lesskey.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/lesskey.h b/contrib/less/lesskey.h
index 299bf4526110..2c4b5d6ddde2 100644
--- a/contrib/less/lesskey.h
+++ b/contrib/less/lesskey.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/lesskey.nro b/contrib/less/lesskey.nro
index 48aec7f6982a..5b8cbe4a2d2a 100644
--- a/contrib/less/lesskey.nro
+++ b/contrib/less/lesskey.nro
@@ -1,29 +1,30 @@
-.TH LESSKEY 1 "Version 551: 11 Jun 2019"
+'\" t
+.TH LESSKEY 1 "Version 563: 13 Jun 2020"
.SH NAME
lesskey \- specify key bindings for less
.SH SYNOPSIS
-.B "lesskey [-o output] [--] [input]"
+.B "lesskey [\-o output] [\-\-] [input]"
.br
-.B "lesskey [--output=output] [--] [input]"
+.B "lesskey [\-\-output=output] [\-\-] [input]"
.br
-.B "lesskey -V"
+.B "lesskey \-V"
.br
-.B "lesskey --version"
+.B "lesskey \-\-version"
.SH DESCRIPTION
.I Lesskey
-is used to specify a set of key bindings to be used by
-.I less.
+is used to specify a set of key bindings to be used by
+.IR less .
The input file is a text file which describes the key bindings.
-If the input file is "-", standard input is read.
+If the input file is "\-", standard input is read.
If no input file is specified, a standard filename is used
as the name of the input file, which depends on the system being used:
On Unix systems, $HOME/.lesskey is used;
on MS-DOS systems, $HOME/_lesskey is used;
and on OS/2 systems $HOME/lesskey.ini is used,
or $INIT/lesskey.ini if $HOME is undefined.
-The output file is a binary file which is used by
-.I less.
-If no output file is specified,
+The output file is a binary file which is used by
+.IR less .
+If no output file is specified,
and the environment variable LESSKEY is set,
the value of LESSKEY is used as the name of the output file.
Otherwise, a standard filename is used as the name of the output file,
@@ -36,10 +37,10 @@ If the output file already exists,
.I lesskey
will overwrite it.
.PP
-The -V or --version option causes
+The \-V or \-\-version option causes
.I lesskey
-to print its version number and immediately exit.
-If -V or --version is present, other options and arguments are ignored.
+to print its version number and immediately exit.
+If \-V or \-\-version is present, other options and arguments are ignored.
.PP
The input file consists of one or more
.I sections.
@@ -54,7 +55,7 @@ Defines environment variables.
.PP
Blank lines and lines which start with a pound sign (#) are ignored,
except for the special section header lines.
-
+.
.SH "COMMAND SECTION"
The command section begins with the line
.sp
@@ -112,10 +113,10 @@ caret, space, tab and the backslash itself.
.PP
An action may be followed by an "extra" string.
When such a command is entered while running
-.I less,
+.IR less ,
the action is performed, and then the extra
string is parsed, just as if it were typed in to
-.I less.
+.IR less .
This feature can be used in certain cases to extend
the functionality of a command.
For example, see the "{" and ":t" commands in the example below.
@@ -123,131 +124,134 @@ The extra string has a special meaning for the "quit" action:
when
.I less
quits, first character of the extra string is used as its exit status.
-
+.
.SH EXAMPLE
The following input file describes the set of
default command keys used by less:
.sp
-.nf
- #command
- \er forw-line
- \en forw-line
- e forw-line
- j forw-line
- \ekd forw-line
- ^E forw-line
- ^N forw-line
- k back-line
- y back-line
- ^Y back-line
- ^K back-line
- ^P back-line
- J forw-line-force
- K back-line-force
- Y back-line-force
- d forw-scroll
- ^D forw-scroll
- u back-scroll
- ^U back-scroll
- \e40 forw-screen
- f forw-screen
- ^F forw-screen
- ^V forw-screen
- \ekD forw-screen
- b back-screen
- ^B back-screen
- \eev back-screen
- \ekU back-screen
- z forw-window
- w back-window
- \ee\e40 forw-screen-force
- F forw-forever
- \eeF forw-until-hilite
- R repaint-flush
- r repaint
- ^R repaint
- ^L repaint
- \eeu undo-hilite
- g goto-line
- \ekh goto-line
- < goto-line
- \ee< goto-line
- p percent
- % percent
- \ee[ left-scroll
- \ee] right-scroll
- \ee( left-scroll
- \ee) right-scroll
- \ekl left-scroll
- \ekr right-scroll
- \ee{ no-scroll
- \ee} end-scroll
- { forw-bracket {}
- } back-bracket {}
- ( forw-bracket ()
- ) back-bracket ()
- [ forw-bracket []
- ] back-bracket []
- \ee^F forw-bracket
- \ee^B back-bracket
- G goto-end
- \ee> goto-end
- > goto-end
- \eke goto-end
- \eeG goto-end-buffered
- = status
- ^G status
- :f status
- / forw-search
- ? back-search
- \ee/ forw-search *
- \ee? back-search *
- n repeat-search
- \een repeat-search-all
- N reverse-search
- \eeN reverse-search-all
- & filter
- m set-mark
- M set-mark-bottom
- \eem clear-mark
- ' goto-mark
- ^X^X goto-mark
- E examine
- :e examine
- ^X^V examine
- :n next-file
- :p prev-file
- t next-tag
- T prev-tag
- :x index-file
- :d remove-file
- - toggle-option
- :t toggle-option t
- s toggle-option o
- _ display-option
- | pipe
- v visual
- ! shell
- + firstcmd
- H help
- h help
- V version
- 0 digit
- 1 digit
- 2 digit
- 3 digit
- 4 digit
- 5 digit
- 6 digit
- 7 digit
- 8 digit
- 9 digit
- q quit
- Q quit
- :q quit
- :Q quit
- ZZ quit
-.fi
+.RS 5m
+.TS
+l l.
+#command
+\er forw-line
+\en forw-line
+e forw-line
+j forw-line
+\ekd forw-line
+^E forw-line
+^N forw-line
+k back-line
+y back-line
+^Y back-line
+^K back-line
+^P back-line
+J forw-line-force
+K back-line-force
+Y back-line-force
+d forw-scroll
+^D forw-scroll
+u back-scroll
+^U back-scroll
+\e40 forw-screen
+f forw-screen
+^F forw-screen
+^V forw-screen
+\ekD forw-screen
+b back-screen
+^B back-screen
+\eev back-screen
+\ekU back-screen
+z forw-window
+w back-window
+\ee\e40 forw-screen-force
+F forw-forever
+\eeF forw-until-hilite
+R repaint-flush
+r repaint
+^R repaint
+^L repaint
+\eeu undo-hilite
+g goto-line
+\ekh goto-line
+< goto-line
+\ee< goto-line
+p percent
+% percent
+\ee[ left-scroll
+\ee] right-scroll
+\ee( left-scroll
+\ee) right-scroll
+\ekl left-scroll
+\ekr right-scroll
+\ee{ no-scroll
+\ee} end-scroll
+{ forw-bracket {}
+} back-bracket {}
+( forw-bracket ()
+) back-bracket ()
+[ forw-bracket []
+] back-bracket []
+\ee^F forw-bracket
+\ee^B back-bracket
+G goto-end
+\ee> goto-end
+> goto-end
+\eke goto-end
+\eeG goto-end-buffered
+\&= status
+^G status
+:f status
+/ forw-search
+? back-search
+\ee/ forw-search *
+\ee? back-search *
+n repeat-search
+\een repeat-search-all
+N reverse-search
+\eeN reverse-search-all
+& filter
+m set-mark
+M set-mark-bottom
+\eem clear-mark
+' goto-mark
+^X^X goto-mark
+E examine
+:e examine
+^X^V examine
+:n next-file
+:p prev-file
+t next-tag
+T prev-tag
+:x index-file
+:d remove-file
+- toggle-option
+:t toggle-option t
+s toggle-option o
+\&_ display-option
+| pipe
+v visual
+! shell
++ firstcmd
+H help
+h help
+V version
+0 digit
+1 digit
+2 digit
+3 digit
+4 digit
+5 digit
+6 digit
+7 digit
+8 digit
+9 digit
+q quit
+Q quit
+:q quit
+:Q quit
+ZZ quit
+.TE
+.RE
.sp
.SH PRECEDENCE
Commands specified by
@@ -255,13 +259,13 @@ Commands specified by
take precedence over the default commands.
A default command key may be disabled by including it in the
input file with the action "invalid".
-Alternatively, a key may be defined
+Alternatively, a key may be defined
to do nothing by using the action "noaction".
-"noaction" is similar to "invalid", but
+"noaction" is similar to "invalid", but
.I less
-will give an error beep for an "invalid" command,
+will give an error beep for an "invalid" command,
but not for a "noaction" command.
-In addition, ALL default commands may be disabled by
+In addition, ALL default commands may be disabled by
adding this control line to the input file:
.sp
#stop
@@ -269,60 +273,63 @@ adding this control line to the input file:
This will cause all default commands to be ignored.
The #stop line should be the last line in that section of the file.
.PP
-Be aware that #stop can be dangerous.
-Since all default commands are disabled,
+Be aware that #stop can be dangerous.
+Since all default commands are disabled,
you must provide sufficient commands before the #stop line
to enable all necessary actions.
For example, failure to provide a "quit" command can lead to frustration.
-
+.
.SH "LINE EDITING SECTION"
The line-editing section begins with the line:
.sp
#line-edit
.sp
This section specifies new key bindings for the line editing commands,
-in a manner similar to the way key bindings for
+in a manner similar to the way key bindings for
ordinary commands are specified in the #command section.
The line-editing section consists of a list of keys and actions,
one per line as in the example below.
-
+.
.SH EXAMPLE
The following input file describes the set of
default line-editing keys used by less:
.sp
-.nf
- #line-edit
- \et forw-complete
- \e17 back-complete
- \ee\et back-complete
- ^L expand
- ^V literal
- ^A literal
- \eel right
- \ekr right
- \eeh left
- \ekl left
- \eeb word-left
- \ee\ekl word-left
- \eew word-right
- \ee\ekr word-right
- \eei insert
- \eex delete
- \ekx delete
- \eeX word-delete
- \eekx word-delete
- \ee\eb word-backspace
- \ee0 home
- \ekh home
- \ee$ end
- \eke end
- \eek up
- \eku up
- \eej down
- ^G abort
-.fi
+.RS 5m
+.TS
+l l.
+#line-edit
+\et forw-complete
+\e17 back-complete
+\ee\et back-complete
+^L expand
+^V literal
+^A literal
+\eel right
+\ekr right
+\eeh left
+\ekl left
+\eeb word-left
+\ee\ekl word-left
+\eew word-right
+\ee\ekr word-right
+\eei insert
+\eex delete
+\ekx delete
+\eeX word-delete
+\eekx word-delete
+\ee\eb word-backspace
+\ee0 home
+\ekh home
+\ee$ end
+\eke end
+\eek up
+\eku up
+\eej down
+^G abort
+.TE
+.RE
.sp
-
+.
.SH "LESS ENVIRONMENT VARIABLES"
The environment variable section begins with the line
.sp
@@ -333,37 +340,37 @@ Each line consists of an environment variable name, an equals sign (=)
and the value to be assigned to the environment variable.
White space before and after the equals sign is ignored.
Variables assigned in this way are visible only to
-.I less.
+.IR less .
If a variable is specified in the system environment and also in a
lesskey file, the value in the lesskey file takes precedence.
Although the lesskey file can be used to override variables set in the
environment, the main purpose of assigning variables in the lesskey file
-is simply to have all
+is simply to have all
.I less
configuration information stored in one file.
-
+.
.SH EXAMPLE
-The following input file sets the -i option whenever
+The following input file sets the \-i option whenever
.I less
is run, and specifies the character set to be "latin1":
.sp
.nf
#env
- LESS = -i
+ LESS = \-i
LESSCHARSET = latin1
.fi
.sp
-
+.
.SH "SEE ALSO"
-less(1)
-
+.BR less (1)
+.
.SH WARNINGS
On MS-DOS and OS/2 systems, certain keys send a sequence of characters
which start with a NUL character (0).
This NUL character should be represented as \e340 in a lesskey file.
-
+.
.SH COPYRIGHT
-Copyright (C) 1984-2019 Mark Nudelman
+Copyright (C) 1984-2020 Mark Nudelman
.PP
less is part of the GNU project and is free software.
You can redistribute it and/or modify it
@@ -383,9 +390,9 @@ less is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
-
+.
.SH AUTHOR
-.PP
+.
Mark Nudelman
.br
Send bug reports or comments to <bug-less@gnu.org>.
diff --git a/contrib/less/lglob.h b/contrib/less/lglob.h
index ed44fcc7b9f2..e13e7982ffe9 100644
--- a/contrib/less/lglob.h
+++ b/contrib/less/lglob.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -69,7 +69,7 @@
char dir[_MAX_DIR]; \
char fname[_MAX_FNAME]; \
char ext[_MAX_EXT]; \
- long handle;
+ intptr_t handle;
#else
#if MSDOS_COMPILER==WIN32C && !defined(_MSC_VER) /* Borland C for Windows */
diff --git a/contrib/less/line.c b/contrib/less/line.c
index 02a2d8679e29..4a552319359f 100644
--- a/contrib/less/line.c
+++ b/contrib/less/line.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -794,7 +794,7 @@ flush_mbc_buf(pos)
*/
public int
pappend(c, pos)
- unsigned char c;
+ int c;
POSITION pos;
{
int r;
@@ -1164,7 +1164,7 @@ pdone(endline, chopped, forw)
*/
public void
set_status_col(c)
- char c;
+ int c;
{
set_linebuf(0, c, AT_NORMAL|AT_HILITE);
}
diff --git a/contrib/less/linenum.c b/contrib/less/linenum.c
index 6a5560b627df..46c315497ebd 100644
--- a/contrib/less/linenum.c
+++ b/contrib/less/linenum.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/lsystem.c b/contrib/less/lsystem.c
index d4f1e7731379..5e51c06d0aa5 100644
--- a/contrib/less/lsystem.c
+++ b/contrib/less/lsystem.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/main.c b/contrib/less/main.c
index d22f9fad1238..44b217610778 100644
--- a/contrib/less/main.c
+++ b/contrib/less/main.c
@@ -1,6 +1,6 @@
/* $FreeBSD$ */
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -119,7 +119,6 @@ main(argc, argv)
init_mark();
init_cmds();
get_term();
- expand_cmd_tables();
init_charset();
init_line();
init_cmdhist();
@@ -168,6 +167,8 @@ main(argc, argv)
if (less_is_more)
no_init = TRUE;
+ expand_cmd_tables();
+
#if EDITOR
editor = lgetenv("VISUAL");
if (editor == NULL || *editor == '\0')
diff --git a/contrib/less/mark.c b/contrib/less/mark.c
index 92cb8ceaabfe..e86d7b31e69e 100644
--- a/contrib/less/mark.c
+++ b/contrib/less/mark.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/mkutable b/contrib/less/mkutable
index b7c3e68285e9..90fe3acc3501 100755
--- a/contrib/less/mkutable
+++ b/contrib/less/mkutable
@@ -7,8 +7,9 @@ my $USAGE = <<__EOF__;
-f = zero-based type field (default 2)
__EOF__
-use vars qw( $opt_f $opt_n );
use Getopt::Std;
+use vars qw( $opt_f $opt_n );
+
my $type_field = 2;
# Override Unicode tables for certain control chars
@@ -21,16 +22,20 @@ my %force_space = (
0x0d => 1, # carriage return
);
+# Hangul Jamo medial vowels and final consonants should be zero width.
+my @force_compose = (
+ [0x1160, 0x11ff],
+ [0xd7b0, 0xd7c6],
+ [0xd7cb, 0xd7fb]
+);
+
exit (main() ? 0 : 1);
sub main {
- my $date = `date`;
- chomp $date;
my $args = join ' ', @ARGV;
- my $header = "/* Generated by \"$0 $args\" on $date */\n";
-
die $USAGE if not getopts('f:n');
$type_field = $opt_f if $opt_f;
+
my %types;
my $arg;
while ($arg = shift @ARGV) {
@@ -39,7 +44,18 @@ sub main {
}
my %out = ( 'types' => \%types );
- print $header;
+ my %force_compose;
+ foreach my $comp (@force_compose) {
+ my ($lo,$hi) = @$comp;
+ for (my $ch = $lo; $ch <= $hi; ++$ch) {
+ $force_compose{$ch} = 1;
+ }
+ }
+
+ my $date = `date`;
+ chomp $date;
+ print "/* Generated by \"$0 $args\" on $date */\n";
+
my $last_code = 0;
while (<>) {
chomp;
@@ -52,13 +68,13 @@ sub main {
$lo_code = hex $1;
$hi_code = hex $2;
} else {
- $lo_code = $hi_code = hex $fields[0];
+ $lo_code = $hi_code = hex $codes;
}
my $type = $fields[$type_field];
$type =~ s/\s//g;
for ($last_code = $lo_code; $last_code <= $hi_code; ++$last_code) {
- $type = 'Zs' if $force_space{$last_code};
- output(\%out, $last_code, $type);
+ output(\%out, $last_code,
+ $force_space{$last_code} ? 'Zs' : $force_compose{$last_code} ? 'Mn' : $type);
}
}
output(\%out, $last_code);
diff --git a/contrib/less/optfunc.c b/contrib/less/optfunc.c
index 7fe947ed9495..c04f9d4a2480 100644
--- a/contrib/less/optfunc.c
+++ b/contrib/less/optfunc.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -513,7 +513,7 @@ opt__V(type, s)
putstr(" (");
putstr(pattern_lib_name());
putstr(" regular expressions)\n");
- putstr("Copyright (C) 1984-2019 Mark Nudelman\n\n");
+ putstr("Copyright (C) 1984-2020 Mark Nudelman\n\n");
putstr("less comes with NO WARRANTY, to the extent permitted by law.\n");
putstr("For information about the terms of redistribution,\n");
putstr("see the file named README in the less distribution.\n");
diff --git a/contrib/less/option.c b/contrib/less/option.c
index d402e11752c1..9cb19bc5472d 100644
--- a/contrib/less/option.c
+++ b/contrib/less/option.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -23,8 +23,9 @@
static struct loption *pendopt;
public int plusoption = FALSE;
-static char *optstring();
-static int flip_triple();
+static char *optstring LESSPARAMS((char *s, char **p_str, char *printopt,
+ char *validchars));
+static int flip_triple LESSPARAMS((int val, int lc));
extern int screen_trashed;
extern int less_is_more;
@@ -526,6 +527,24 @@ opt_prompt(o)
}
/*
+ * If the specified option can be toggled, return NULL.
+ * Otherwise return an appropriate error message.
+ */
+ public char *
+opt_toggle_disallowed(c)
+ int c;
+{
+ switch (c)
+ {
+ case 'o':
+ if (ch_getflags() & CH_CANSEEK)
+ return "Input is not a pipe";
+ break;
+ }
+ return NULL;
+}
+
+/*
* Return whether or not there is a string option pending;
* that is, if the previous option was a string-valued option letter
* (like -P) without a following string.
diff --git a/contrib/less/option.h b/contrib/less/option.h
index fb73416d387e..c705aca19b48 100644
--- a/contrib/less/option.h
+++ b/contrib/less/option.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/opttbl.c b/contrib/less/opttbl.c
index 967761cbc062..1871f8a027a3 100644
--- a/contrib/less/opttbl.c
+++ b/contrib/less/opttbl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/os.c b/contrib/less/os.c
index 53c82e42e7f3..1f33f4f3b39c 100644
--- a/contrib/less/os.c
+++ b/contrib/less/os.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/output.c b/contrib/less/output.c
index 0563cf0b1713..b3d192de0cf1 100644
--- a/contrib/less/output.c
+++ b/contrib/less/output.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -500,8 +500,8 @@ type funcname(buf, ebuf) \
return val; \
}
-STR_TO_TYPE_FUNC(lstrtopos, POSITION);
-STR_TO_TYPE_FUNC(lstrtoi, int);
+STR_TO_TYPE_FUNC(lstrtopos, POSITION)
+STR_TO_TYPE_FUNC(lstrtoi, int)
/*
* Output an integer in a given radix.
diff --git a/contrib/less/pattern.c b/contrib/less/pattern.c
index da27dc647adc..b7fc05725a44 100644
--- a/contrib/less/pattern.c
+++ b/contrib/less/pattern.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/pattern.h b/contrib/less/pattern.h
index 9513be8e2651..1f2ef5181b2b 100644
--- a/contrib/less/pattern.h
+++ b/contrib/less/pattern.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/pckeys.h b/contrib/less/pckeys.h
index fb345f284183..e41ca9acdc88 100644
--- a/contrib/less/pckeys.h
+++ b/contrib/less/pckeys.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/position.c b/contrib/less/position.c
index 8a65ed4128fe..6e37ec5d5187 100644
--- a/contrib/less/position.c
+++ b/contrib/less/position.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/position.h b/contrib/less/position.h
index 77216daf1c43..2e6c71bc766e 100644
--- a/contrib/less/position.h
+++ b/contrib/less/position.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/prompt.c b/contrib/less/prompt.c
index 12413fb9f930..e587bd762000 100644
--- a/contrib/less/prompt.c
+++ b/contrib/less/prompt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/screen.c b/contrib/less/screen.c
index cd25d744e897..c9635f438106 100644
--- a/contrib/less/screen.c
+++ b/contrib/less/screen.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -219,8 +219,9 @@ extern int binattr;
extern int one_screen;
#if !MSDOS_COMPILER
-static char *cheaper();
-static void tmodes();
+static char *cheaper LESSPARAMS((char *t1, char *t2, char *def));
+static void tmodes LESSPARAMS((char *incap, char *outcap, char **instr,
+ char **outstr, char *def_instr, char *def_outstr, char **spp));
#endif
/*
@@ -253,6 +254,11 @@ extern int hilite_search;
#endif
#if MSDOS_COMPILER==WIN32C
extern HANDLE tty;
+extern DWORD console_mode;
+#ifndef ENABLE_EXTENDED_FLAGS
+#define ENABLE_EXTENDED_FLAGS 0x80
+#define ENABLE_QUICK_EDIT_MODE 0x40
+#endif
#else
extern int tty;
#endif
@@ -642,7 +648,6 @@ ltget_env(capname)
char *capname;
{
char name[64];
- char *s;
if (termcap_debug)
{
@@ -1080,7 +1085,6 @@ get_term(VOID_PARAM)
#else
#if MSDOS_COMPILER==WIN32C
{
- DWORD nread;
CONSOLE_SCREEN_BUFFER_INFO scr;
con_out_save = con_out = GetStdHandle(STD_OUTPUT_HANDLE);
@@ -1090,8 +1094,7 @@ get_term(VOID_PARAM)
*/
SET_BINARY(0);
GetConsoleScreenBufferInfo(con_out, &scr);
- ReadConsoleOutputAttribute(con_out, &curr_attr,
- 1, scr.dwCursorPosition, &nread);
+ curr_attr = scr.wAttributes;
sy_bg_color = (curr_attr & BG_COLORS) >> 4; /* normalize */
sy_fg_color = curr_attr & FG_COLORS;
}
@@ -1122,8 +1125,11 @@ get_term(VOID_PARAM)
char *sp;
char *t1, *t2;
char *term;
- char termbuf[TERMBUF_SIZE];
-
+ /*
+ * Some termcap libraries assume termbuf is static
+ * (accessible after tgetent returns).
+ */
+ static char termbuf[TERMBUF_SIZE];
static char sbuf[TERMSBUF_SIZE];
#if OS2
@@ -1146,12 +1152,13 @@ get_term(VOID_PARAM)
/*
* Find out what kind of terminal this is.
*/
- if ((term = lgetenv("TERM")) == NULL)
- term = DEFAULT_TERM;
+ if ((term = lgetenv("TERM")) == NULL)
+ term = DEFAULT_TERM;
hardcopy = 0;
- if (tgetent(termbuf, term) != TGETENT_OK)
- hardcopy = 1;
- if (ltgetflag("hc"))
+ /* {{ Should probably just pass NULL instead of termbuf. }} */
+ if (tgetent(termbuf, term) != TGETENT_OK)
+ hardcopy = 1;
+ if (ltgetflag("hc"))
hardcopy = 1;
/*
@@ -1562,7 +1569,9 @@ init_mouse(VOID_PARAM)
tputs(sc_s_mousecap, sc_height, putchr);
#else
#if MSDOS_COMPILER==WIN32C
- SetConsoleMode(tty, ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT);
+ SetConsoleMode(tty, ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT
+ | ENABLE_EXTENDED_FLAGS /* disable quick edit */);
+
#endif
#endif
}
@@ -1580,7 +1589,8 @@ deinit_mouse(VOID_PARAM)
tputs(sc_e_mousecap, sc_height, putchr);
#else
#if MSDOS_COMPILER==WIN32C
- SetConsoleMode(tty, ENABLE_PROCESSED_INPUT);
+ SetConsoleMode(tty, ENABLE_PROCESSED_INPUT | ENABLE_EXTENDED_FLAGS
+ | (console_mode & ENABLE_QUICK_EDIT_MODE));
#endif
#endif
}
@@ -1616,8 +1626,13 @@ init(VOID_PARAM)
line_left();
#else
#if MSDOS_COMPILER==WIN32C
- if (!no_init)
- win32_init_term();
+ if (!(quit_if_one_screen && one_screen))
+ {
+ if (!no_init)
+ win32_init_term();
+ init_mouse();
+
+ }
#endif
initcolor();
flush();
@@ -1646,8 +1661,12 @@ deinit(VOID_PARAM)
/* Restore system colors. */
SETCOLORS(sy_fg_color, sy_bg_color);
#if MSDOS_COMPILER==WIN32C
- if (!no_init)
- win32_deinit_term();
+ if (!(quit_if_one_screen && one_screen))
+ {
+ deinit_mouse();
+ if (!no_init)
+ win32_deinit_term();
+ }
#else
/* Need clreol to make SETCOLORS take effect. */
clreol();
diff --git a/contrib/less/scrsize.c b/contrib/less/scrsize.c
index 1e3be1fa71f1..2063aa376bb3 100644
--- a/contrib/less/scrsize.c
+++ b/contrib/less/scrsize.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/search.c b/contrib/less/search.c
index e1d007344513..7650ab379508 100644
--- a/contrib/less/search.c
+++ b/contrib/less/search.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/signal.c b/contrib/less/signal.c
index 0f304efe986c..04799b87bb8c 100644
--- a/contrib/less/signal.c
+++ b/contrib/less/signal.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
diff --git a/contrib/less/tags.c b/contrib/less/tags.c
index 9a413b7ef2a1..fdc82da24e82 100644
--- a/contrib/less/tags.c
+++ b/contrib/less/tags.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -44,13 +44,14 @@ enum {
T_GPATH /* 'GPATH': path name (global) */
};
-static enum tag_result findctag();
-static enum tag_result findgtag();
-static char *nextgtag();
-static char *prevgtag();
-static POSITION ctagsearch();
-static POSITION gtagsearch();
-static int getentry();
+static enum tag_result findctag LESSPARAMS((char *tag));
+static enum tag_result findgtag LESSPARAMS((char *tag, int type));
+static char *nextgtag(VOID_PARAM);
+static char *prevgtag(VOID_PARAM);
+static POSITION ctagsearch(VOID_PARAM);
+static POSITION gtagsearch(VOID_PARAM);
+static int getentry LESSPARAMS((char *buf, char **tag, char **file,
+ char **line));
/*
* The list of tags generated by the last findgtag() call.
diff --git a/contrib/less/ttyin.c b/contrib/less/ttyin.c
index 8ef11eff5930..3bb99ecca6fb 100644
--- a/contrib/less/ttyin.c
+++ b/contrib/less/ttyin.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -23,7 +23,7 @@
#define _WIN32_WINNT 0x400
#endif
#include <windows.h>
-static DWORD console_mode;
+public DWORD console_mode;
public HANDLE tty;
#else
public int tty;
diff --git a/contrib/less/ubin.uni b/contrib/less/ubin.uni
index a8d4b544aec0..10a48d5be50e 100644
--- a/contrib/less/ubin.uni
+++ b/contrib/less/ubin.uni
@@ -1,4 +1,4 @@
-/* Generated by "./mkutable -f2 Cc Cs Co Zl Zp -- unicode/UnicodeData.txt" on Wed Feb 13 17:57:06 PST 2019 */
+/* Generated by "./mkutable -f2 Cc Cs Co Zl Zp -- unicode/UnicodeData.txt" on Tue May 19 14:47:34 PDT 2020 */
{ 0x0000, 0x0007 }, /* Cc */
{ 0x000b, 0x000b }, /* Cc */
{ 0x000e, 0x001f }, /* Cc */
diff --git a/contrib/less/version.c b/contrib/less/version.c
index 7aca8d6d5b6e..73169ac44024 100644
--- a/contrib/less/version.c
+++ b/contrib/less/version.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1984-2019 Mark Nudelman
+ * Copyright (C) 1984-2020 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
@@ -880,6 +880,20 @@ v549 2/10/19 Support X11 mouse extension 1006;
Win32 fixes (thanks to Jason Hood).
v550 2/16/19 Fix Win32 build; don't enable mouse unless --mouse is set.
v551 6/10/19 Doc changes.
+-----------------------------------------------------------------
+v552 7/8/19 Update Unicode tables.
+v553 10/17/19 Support tinfow; handle zero-width Hangul chars.
+v554 1/19/20 Remove erroneous free().
+v555 3/15/20 Display error msg immediately when toggle -o without stdin.
+v556 3/15/20 Update copyright.
+v557 3/21/20 Fix memory corruption with libtermcap.
+v558 4/17/20 Don't init terminal if -F and file fits on one screen (WIN32).
+v559 4/19/20 Handle deinit correctly on WIN32.
+v560 5/3/20 Fix regression when command results in no movement;
+ fix some less.nro issues (thanks to Bjarni I. Gislason).
+v561 5/11/20 Fix erroneous EOF calculation when F command is interrupted.
+v562 5/19/20 Update Unicode tables; minor doc formatting.
+v563 6/13/20 Fix crash due to realpath() incompatibility.
*/
-char version[] = "551";
+char version[] = "563";
diff --git a/contrib/less/wide.uni b/contrib/less/wide.uni
index e23ba7344927..f1ec98d21b79 100644
--- a/contrib/less/wide.uni
+++ b/contrib/less/wide.uni
@@ -1,4 +1,4 @@
-/* Generated by "./mkutable -f1 W F -- unicode/EastAsianWidth.txt" on Thu Feb 14 08:30:47 PST 2019 */
+/* Generated by "./mkutable -f1 W F -- unicode/EastAsianWidth.txt" on Tue May 19 14:47:35 PDT 2020 */
{ 0x1100, 0x115f }, /* W */
{ 0x231a, 0x231b }, /* W */
{ 0x2329, 0x232a }, /* W */
@@ -44,12 +44,10 @@
{ 0x3099, 0x30ff }, /* W */
{ 0x3105, 0x312f }, /* W */
{ 0x3131, 0x318e }, /* W */
- { 0x3190, 0x31ba }, /* W */
- { 0x31c0, 0x31e3 }, /* W */
+ { 0x3190, 0x31e3 }, /* W */
{ 0x31f0, 0x321e }, /* W */
{ 0x3220, 0x3247 }, /* W */
- { 0x3250, 0x32fe }, /* W */
- { 0x3300, 0x4dbf }, /* W */
+ { 0x3250, 0x4dbf }, /* W */
{ 0x4e00, 0xa48c }, /* W */
{ 0xa490, 0xa4c6 }, /* W */
{ 0xa960, 0xa97c }, /* W */
@@ -61,10 +59,14 @@
{ 0xfe68, 0xfe6b }, /* W */
{ 0xff01, 0xff60 }, /* F */
{ 0xffe0, 0xffe6 }, /* F */
- { 0x16fe0, 0x16fe1 }, /* W */
- { 0x17000, 0x187f1 }, /* W */
- { 0x18800, 0x18af2 }, /* W */
+ { 0x16fe0, 0x16fe4 }, /* W */
+ { 0x16ff0, 0x16ff1 }, /* W */
+ { 0x17000, 0x187f7 }, /* W */
+ { 0x18800, 0x18cd5 }, /* W */
+ { 0x18d00, 0x18d08 }, /* W */
{ 0x1b000, 0x1b11e }, /* W */
+ { 0x1b150, 0x1b152 }, /* W */
+ { 0x1b164, 0x1b167 }, /* W */
{ 0x1b170, 0x1b2fb }, /* W */
{ 0x1f004, 0x1f004 }, /* W */
{ 0x1f0cf, 0x1f0cf }, /* W */
@@ -96,15 +98,21 @@
{ 0x1f680, 0x1f6c5 }, /* W */
{ 0x1f6cc, 0x1f6cc }, /* W */
{ 0x1f6d0, 0x1f6d2 }, /* W */
+ { 0x1f6d5, 0x1f6d7 }, /* W */
{ 0x1f6eb, 0x1f6ec }, /* W */
- { 0x1f6f4, 0x1f6f9 }, /* W */
- { 0x1f910, 0x1f93e }, /* W */
- { 0x1f940, 0x1f970 }, /* W */
- { 0x1f973, 0x1f976 }, /* W */
- { 0x1f97a, 0x1f97a }, /* W */
- { 0x1f97c, 0x1f9a2 }, /* W */
- { 0x1f9b0, 0x1f9b9 }, /* W */
- { 0x1f9c0, 0x1f9c2 }, /* W */
- { 0x1f9d0, 0x1f9ff }, /* W */
+ { 0x1f6f4, 0x1f6fc }, /* W */
+ { 0x1f7e0, 0x1f7eb }, /* W */
+ { 0x1f90c, 0x1f93a }, /* W */
+ { 0x1f93c, 0x1f945 }, /* W */
+ { 0x1f947, 0x1f978 }, /* W */
+ { 0x1f97a, 0x1f9cb }, /* W */
+ { 0x1f9cd, 0x1f9ff }, /* W */
+ { 0x1fa70, 0x1fa74 }, /* W */
+ { 0x1fa78, 0x1fa7a }, /* W */
+ { 0x1fa80, 0x1fa86 }, /* W */
+ { 0x1fa90, 0x1faa8 }, /* W */
+ { 0x1fab0, 0x1fab6 }, /* W */
+ { 0x1fac0, 0x1fac2 }, /* W */
+ { 0x1fad0, 0x1fad6 }, /* W */
{ 0x20000, 0x2fffd }, /* W */
{ 0x30000, 0x3fffd }, /* W */