diff options
author | delphij <delphij@FreeBSD.org> | 2007-10-08 16:14:52 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2007-10-08 16:14:52 +0000 |
commit | de40ea14af9f01e8574114a8b793148ba1910638 (patch) | |
tree | ce93e2dbd2d8f46ac5f1429e2c0d107f4e31bdf3 /contrib/less | |
parent | f965c7bdc4f5016687632f91fa70a8f097d68bf5 (diff) | |
parent | aa9fcd738666aeeba852b8c048517501f6704bc0 (diff) | |
download | FreeBSD-src-de40ea14af9f01e8574114a8b793148ba1910638.zip FreeBSD-src-de40ea14af9f01e8574114a8b793148ba1910638.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r172468,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/less')
-rw-r--r-- | contrib/less/NEWS | 12 | ||||
-rw-r--r-- | contrib/less/README | 4 | ||||
-rw-r--r-- | contrib/less/ch.c | 25 | ||||
-rw-r--r-- | contrib/less/charset.c | 56 | ||||
-rwxr-xr-x | contrib/less/configure | 1 | ||||
-rw-r--r-- | contrib/less/configure.ac | 3 | ||||
-rw-r--r-- | contrib/less/filename.c | 2 | ||||
-rw-r--r-- | contrib/less/funcs.h | 1 | ||||
-rw-r--r-- | contrib/less/jump.c | 9 | ||||
-rw-r--r-- | contrib/less/less.man | 2 | ||||
-rw-r--r-- | contrib/less/less.nro | 2 | ||||
-rw-r--r-- | contrib/less/lessecho.man | 2 | ||||
-rw-r--r-- | contrib/less/lessecho.nro | 2 | ||||
-rw-r--r-- | contrib/less/lesskey.man | 2 | ||||
-rw-r--r-- | contrib/less/lesskey.nro | 2 | ||||
-rw-r--r-- | contrib/less/version.c | 4 |
16 files changed, 117 insertions, 12 deletions
diff --git a/contrib/less/NEWS b/contrib/less/NEWS index ccb14ba..f251a1e 100644 --- a/contrib/less/NEWS +++ b/contrib/less/NEWS @@ -13,6 +13,18 @@ ====================================================================== + Major changes between "less" versions 406 and 408 + +* 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. + +====================================================================== + Major changes between "less" versions 394 and 406 * Allow decimal point in number for % (percent) command. diff --git a/contrib/less/README b/contrib/less/README index 848fe4d..ace7bf0 100644 --- a/contrib/less/README +++ b/contrib/less/README @@ -1,7 +1,7 @@ - Less, version 406 + Less, version 408 - This is the distribution of less, version 406, released 19 Jun 2007. + This is the distribution of less, version 408, released 01 Oct 2007. This program is part of the GNU project (http://www.gnu.org). This program is free software. You may redistribute it and/or diff --git a/contrib/less/ch.c b/contrib/less/ch.c index 61bc83a..2ac14d7 100644 --- a/contrib/less/ch.c +++ b/contrib/less/ch.c @@ -128,6 +128,9 @@ fch_get() POSITION pos; POSITION len; + if (thisfile == NULL) + return (EOI); + slept = FALSE; /* @@ -416,6 +419,9 @@ ch_seek(pos) BLOCKNUM new_block; POSITION len; + if (thisfile == NULL) + return (0); + len = ch_length(); if (pos < ch_zero() || (len != NULL_POSITION && pos > len)) return (1); @@ -450,6 +456,9 @@ ch_end_seek() { POSITION len; + if (thisfile == NULL) + return (0); + if (ch_flags & CH_CANSEEK) ch_fsize = filesize(ch_file); @@ -503,6 +512,8 @@ ch_beg_seek() public POSITION ch_length() { + if (thisfile == NULL) + return (NULL_POSITION); if (ignore_eoi) return (NULL_POSITION); if (ch_flags & CH_HELPFILE) @@ -516,6 +527,8 @@ ch_length() public POSITION ch_tell() { + if (thisfile == NULL) + return (NULL_POSITION); return (ch_block * LBUFSIZE) + ch_offset; } @@ -527,6 +540,8 @@ ch_forw_get() { register int c; + if (thisfile == NULL) + return (EOI); c = ch_get(); if (c == EOI) return (EOI); @@ -546,6 +561,8 @@ ch_forw_get() public int ch_back_get() { + if (thisfile == NULL) + return (EOI); if (ch_offset > 0) ch_offset --; else @@ -586,6 +603,9 @@ ch_flush() { register struct buf *bp; + if (thisfile == NULL) + return; + if (!(ch_flags & CH_CANSEEK)) { /* @@ -769,6 +789,9 @@ ch_close() { int keepstate = FALSE; + if (thisfile == NULL) + return; + if (ch_flags & (CH_CANSEEK|CH_POPENED|CH_HELPFILE)) { /* @@ -807,6 +830,8 @@ ch_close() public int ch_getflags() { + if (thisfile == NULL) + return (0); return (ch_flags); } diff --git a/contrib/less/charset.c b/contrib/less/charset.c index 3ee76bc..628218d 100644 --- a/contrib/less/charset.c +++ b/contrib/less/charset.c @@ -567,24 +567,29 @@ get_wchar(p) { case 1: default: + /* 0xxxxxxx */ return (LWCHAR) (p[0] & 0xFF); case 2: + /* 110xxxxx 10xxxxxx */ return (LWCHAR) ( ((p[0] & 0x1F) << 6) | (p[1] & 0x3F)); case 3: + /* 1110xxxx 10xxxxxx 10xxxxxx */ return (LWCHAR) ( ((p[0] & 0x0F) << 12) | ((p[1] & 0x3F) << 6) | (p[2] & 0x3F)); case 4: + /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ return (LWCHAR) ( ((p[0] & 0x07) << 18) | ((p[1] & 0x3F) << 12) | ((p[2] & 0x3F) << 6) | (p[3] & 0x3F)); case 5: + /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ return (LWCHAR) ( ((p[0] & 0x03) << 24) | ((p[1] & 0x3F) << 18) | @@ -592,6 +597,7 @@ get_wchar(p) ((p[3] & 0x3F) << 6) | (p[4] & 0x3F)); case 6: + /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ return (LWCHAR) ( ((p[0] & 0x01) << 30) | ((p[1] & 0x3F) << 24) | @@ -603,6 +609,56 @@ get_wchar(p) } /* + * Store a character into a UTF-8 string. + */ + public void +put_wchar(pp, ch) + char **pp; + LWCHAR ch; +{ + if (!utf_mode || ch < 0x80) + { + /* 0xxxxxxx */ + *(*pp)++ = (char) ch; + } else if (ch < 0x800) + { + /* 110xxxxx 10xxxxxx */ + *(*pp)++ = (char) (0xC0 | ((ch >> 6) & 0x1F)); + *(*pp)++ = (char) (0x80 | (ch & 0x3F)); + } else if (ch < 0x10000) + { + /* 1110xxxx 10xxxxxx 10xxxxxx */ + *(*pp)++ = (char) (0xE0 | ((ch >> 12) & 0x0F)); + *(*pp)++ = (char) (0x80 | ((ch >> 6) & 0x3F)); + *(*pp)++ = (char) (0x80 | (ch & 0x3F)); + } else if (ch < 0x200000) + { + /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ + *(*pp)++ = (char) (0xF0 | ((ch >> 18) & 0x07)); + *(*pp)++ = (char) (0x80 | ((ch >> 12) & 0x3F)); + *(*pp)++ = (char) (0x80 | ((ch >> 6) & 0x3F)); + *(*pp)++ = (char) (0x80 | (ch & 0x3F)); + } else if (ch < 0x4000000) + { + /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ + *(*pp)++ = (char) (0xF0 | ((ch >> 24) & 0x03)); + *(*pp)++ = (char) (0x80 | ((ch >> 18) & 0x3F)); + *(*pp)++ = (char) (0x80 | ((ch >> 12) & 0x3F)); + *(*pp)++ = (char) (0x80 | ((ch >> 6) & 0x3F)); + *(*pp)++ = (char) (0x80 | (ch & 0x3F)); + } else + { + /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ + *(*pp)++ = (char) (0xF0 | ((ch >> 30) & 0x01)); + *(*pp)++ = (char) (0x80 | ((ch >> 24) & 0x3F)); + *(*pp)++ = (char) (0x80 | ((ch >> 18) & 0x3F)); + *(*pp)++ = (char) (0x80 | ((ch >> 12) & 0x3F)); + *(*pp)++ = (char) (0x80 | ((ch >> 6) & 0x3F)); + *(*pp)++ = (char) (0x80 | (ch & 0x3F)); + } +} + +/* * Step forward or backward one character in a string. */ public LWCHAR diff --git a/contrib/less/configure b/contrib/less/configure index 8501917..3dbc604 100755 --- a/contrib/less/configure +++ b/contrib/less/configure @@ -6473,6 +6473,7 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <locale.h> #include <ctype.h> +#include <langinfo.h> int main () { diff --git a/contrib/less/configure.ac b/contrib/less/configure.ac index 80ec43a..d738607 100644 --- a/contrib/less/configure.ac +++ b/contrib/less/configure.ac @@ -304,7 +304,8 @@ fi AC_MSG_CHECKING(for locale) AC_TRY_LINK([#include <locale.h> -#include <ctype.h>], [setlocale(LC_CTYPE,""); isprint(0); iscntrl(0);], +#include <ctype.h> +#include <langinfo.h>], [setlocale(LC_CTYPE,""); isprint(0); iscntrl(0);], [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_LOCALE)], [AC_MSG_RESULT(no)]) AC_MSG_CHECKING(for ctype functions) AC_TRY_LINK([ diff --git a/contrib/less/filename.c b/contrib/less/filename.c index 8e0823e..ea3120f 100644 --- a/contrib/less/filename.c +++ b/contrib/less/filename.c @@ -482,7 +482,7 @@ bin_file(f) for (i = 0; i < n; i++) { char c = data[i]; - if (ctldisp == OPT_ONPLUS && c == ESC) + if (ctldisp == OPT_ONPLUS && IS_CSI_START(c)) { while (++i < n && is_ansi_middle(data[i])) continue; diff --git a/contrib/less/funcs.h b/contrib/less/funcs.h index 2010524..a4a0c7c 100644 --- a/contrib/less/funcs.h +++ b/contrib/less/funcs.h @@ -56,6 +56,7 @@ public int utf_len (); public int is_utf8_well_formed (); public LWCHAR get_wchar (); + public void put_wchar (); public LWCHAR step_char (); public int is_composing_char (); public int is_ubin_char (); diff --git a/contrib/less/jump.c b/contrib/less/jump.c index 6e0c90d..585d9b2 100644 --- a/contrib/less/jump.c +++ b/contrib/less/jump.c @@ -31,6 +31,7 @@ extern int top_scroll; jump_forw() { POSITION pos; + POSITION end_pos; if (ch_end_seek()) { @@ -42,11 +43,17 @@ jump_forw() * Go back one line from the end of the file * to get to the beginning of the last line. */ - pos = back_line(ch_tell()); + pos_clear(); + end_pos = ch_tell(); + pos = back_line(end_pos); if (pos == NULL_POSITION) jump_loc((POSITION)0, sc_height-1); else + { jump_loc(pos, sc_height-1); + if (position(sc_height-1) != end_pos) + repaint(); + } } /* diff --git a/contrib/less/less.man b/contrib/less/less.man index 2efc49d..217a321 100644 --- a/contrib/less/less.man +++ b/contrib/less/less.man @@ -1544,4 +1544,4 @@ LESS(1) LESS(1) - Version 406: 19 Jun 2007 LESS(1) + Version 408: 01 Oct 2007 LESS(1) diff --git a/contrib/less/less.nro b/contrib/less/less.nro index ddba6d8..5399e83 100644 --- a/contrib/less/less.nro +++ b/contrib/less/less.nro @@ -1,4 +1,4 @@ -.TH LESS 1 "Version 406: 19 Jun 2007" +.TH LESS 1 "Version 408: 01 Oct 2007" .SH NAME less \- opposite of more .SH SYNOPSIS diff --git a/contrib/less/lessecho.man b/contrib/less/lessecho.man index 49c863a..2bf8c9e 100644 --- a/contrib/less/lessecho.man +++ b/contrib/less/lessecho.man @@ -46,4 +46,4 @@ LESSECHO(1) LESSECHO(1) - Version 406: 19 Jun 2007 LESSECHO(1) + Version 408: 01 Oct 2007 LESSECHO(1) diff --git a/contrib/less/lessecho.nro b/contrib/less/lessecho.nro index 297a732..06c3936 100644 --- a/contrib/less/lessecho.nro +++ b/contrib/less/lessecho.nro @@ -1,4 +1,4 @@ -.TH LESSECHO 1 "Version 406: 19 Jun 2007" +.TH LESSECHO 1 "Version 408: 01 Oct 2007" .SH NAME lessecho \- expand metacharacters .SH SYNOPSIS diff --git a/contrib/less/lesskey.man b/contrib/less/lesskey.man index ffad2c3..b4d4e2f 100644 --- a/contrib/less/lesskey.man +++ b/contrib/less/lesskey.man @@ -357,4 +357,4 @@ LESSKEY(1) LESSKEY(1) - Version 406: 19 Jun 2007 LESSKEY(1) + Version 408: 01 Oct 2007 LESSKEY(1) diff --git a/contrib/less/lesskey.nro b/contrib/less/lesskey.nro index 63cb39a..a49a1c0 100644 --- a/contrib/less/lesskey.nro +++ b/contrib/less/lesskey.nro @@ -1,4 +1,4 @@ -.TH LESSKEY 1 "Version 406: 19 Jun 2007" +.TH LESSKEY 1 "Version 408: 01 Oct 2007" .SH NAME lesskey \- specify key bindings for less .SH SYNOPSIS diff --git a/contrib/less/version.c b/contrib/less/version.c index df74e04..a4d7ea7 100644 --- a/contrib/less/version.c +++ b/contrib/less/version.c @@ -693,6 +693,8 @@ v403 5/25/07 Fix Windows build. v404 6/5/07 Fix display bug with F command and long lines. v405 6/17/07 Fix display bug when using -w option. v406 6/17/07 Fix secure build. +v407 8/16/07 Fix bugs; support CSI chars. +v408 10/1/07 Fix bug in -i with non-ASCII chars. */ -char version[] = "406"; +char version[] = "408"; |