git: 88f55c3150e9 - stable/14 - nvi: import version 2.2.1-52c07e8
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 15 Jan 2025 09:55:07 UTC
The branch stable/14 has been updated by bapt:
URL: https://cgit.FreeBSD.org/src/commit/?id=88f55c3150e94285197623b6d9608f966e7efa12
commit 88f55c3150e94285197623b6d9608f966e7efa12
Author: Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2025-01-02 08:56:55 +0000
Commit: Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2025-01-15 09:55:01 +0000
nvi: import version 2.2.1-52c07e8
(cherry picked from commit 4087ffdbce725367566bc3fc60a959292daac99d)
---
contrib/nvi/CMakeLists.txt | 1 -
contrib/nvi/common/common.h | 1 +
contrib/nvi/common/log.c | 1 -
contrib/nvi/common/options.c | 4 +++-
contrib/nvi/man/vi.1 | 51 ++++++++++++++++++++++++--------------------
contrib/nvi/vi/vs_refresh.c | 15 +++++++++----
usr.bin/vi/options_def.h | 51 ++++++++++++++++++++++----------------------
7 files changed, 69 insertions(+), 55 deletions(-)
diff --git a/contrib/nvi/CMakeLists.txt b/contrib/nvi/CMakeLists.txt
index 0c935b3c2a19..9451eaa89799 100644
--- a/contrib/nvi/CMakeLists.txt
+++ b/contrib/nvi/CMakeLists.txt
@@ -37,7 +37,6 @@ if (NOT APPLE)
endif()
add_compile_options($<$<CONFIG:Release>:-Wuninitialized>)
add_compile_options($<$<CONFIG:Release>:-Wno-dangling-else>)
-add_compile_options(-Wno-string-compare)
add_compile_options(-Wstack-protector -fstack-protector)
add_compile_options(-Wstrict-aliasing -fstrict-aliasing)
diff --git a/contrib/nvi/common/common.h b/contrib/nvi/common/common.h
index 45f22fb49d1b..fd97a4655cf5 100644
--- a/contrib/nvi/common/common.h
+++ b/contrib/nvi/common/common.h
@@ -17,6 +17,7 @@
#include <db.h>
#endif
#include <regex.h> /* May refer to the bundled regex. */
+#include <stdint.h>
/*
* Forward structure declarations. Not pretty, but the include files
diff --git a/contrib/nvi/common/log.c b/contrib/nvi/common/log.c
index d1a1bc6f704a..7aad94d7e74a 100644
--- a/contrib/nvi/common/log.c
+++ b/contrib/nvi/common/log.c
@@ -18,7 +18,6 @@
#include <fcntl.h>
#include <libgen.h>
#include <limits.h>
-#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/contrib/nvi/common/options.c b/contrib/nvi/common/options.c
index c3d1f7343f9a..87d5c5a88521 100644
--- a/contrib/nvi/common/options.c
+++ b/contrib/nvi/common/options.c
@@ -181,6 +181,8 @@ OPTLIST const optlist[] = {
{L("shellmeta"), NULL, OPT_STR, 0},
/* O_SHIFTWIDTH 4BSD */
{L("shiftwidth"), NULL, OPT_NUM, OPT_NOZERO},
+/* O_SHOWFILENAME */
+ {L("showfilename"), NULL, OPT_0BOOL, 0},
/* O_SHOWMATCH 4BSD */
{L("showmatch"), NULL, OPT_0BOOL, 0},
/* O_SHOWMODE 4.4BSD */
@@ -317,7 +319,7 @@ opts_init(SCR *sp, int *oargs)
/* Set numeric and string default values. */
#define OI(indx, str) do { \
a.len = STRLEN(str); \
- if ((CHAR_T*)str != b2) /* GCC puts strings in text-space. */ \
+ if (STRCMP((CHAR_T*)str, b2) != 0) \
(void)MEMCPY(b2, str, a.len+1); \
if (opts_set(sp, argv, NULL)) { \
optindx = indx; \
diff --git a/contrib/nvi/man/vi.1 b/contrib/nvi/man/vi.1
index f1893040ceb7..596657319eee 100644
--- a/contrib/nvi/man/vi.1
+++ b/contrib/nvi/man/vi.1
@@ -12,11 +12,13 @@
.\" that you would have purchased it, or if any company wishes to
.\" redistribute it, contributions to the authors would be appreciated.
.\"
-.Dd September 25, 2020
+.Dd April 18, 2024
.Dt VI 1
.Os
.Sh NAME
-.Nm ex , vi , view
+.Nm ex ,
+.Nm vi ,
+.Nm view
.Nd text editors
.Sh SYNOPSIS
.Nm ex
@@ -302,7 +304,7 @@ Quit editing and leave
(if you've modified the file, but not saved your changes,
.Nm vi
will refuse to quit).
-.It Cm :q!
+.It Cm :q\&!
Quit, discarding any modifications that you may have made.
.El
.Pp
@@ -706,7 +708,7 @@ Execute the
.Nm ex
command being entered, or cancel it if it is only partial.
.Pp
-.It Aq Cm control-]
+.It Aq Cm control-\(rB
Push a tag reference onto the tag stack.
.Pp
.It Aq Cm control-\(ha
@@ -830,7 +832,7 @@ or
to the position of the cursor before the last of the following commands:
.Aq Cm control-A ,
.Aq Cm control-T ,
-.Aq Cm control-] ,
+.Aq Cm control-\(rB ,
.Cm % ,
.Cm \(aq ,
.Cm \` ,
@@ -1809,8 +1811,8 @@ Display buffers, Cscope connections, screens or tags.
.Op Ar +cmd
.Op Ar file
.Xc
-Edit a different file. The capitalized command opens a new screen below the
-current screen.
+Edit a different file.
+The capitalized command opens a new screen below the current screen.
.Pp
.It Xo
.Cm exu Ns Op Cm sage
@@ -1833,8 +1835,8 @@ Display and optionally change the file name.
.Xc
.Nm vi
mode only.
-Foreground the specified screen. The capitalized command opens a new screen
-below the current screen.
+Foreground the specified screen.
+The capitalized command opens a new screen below the current screen.
.Pp
.It Xo
.Op Ar range
@@ -1921,8 +1923,8 @@ Write the abbreviations, editor options and maps to the specified
.Op Cm !\&
.Op Ar
.Xc
-Edit the next file from the argument list. The capitalized command opens a
-new screen below the current screen.
+Edit the next file from the argument list.
+The capitalized command opens a new screen below the current screen.
.\" .Pp
.\" .It Xo
.\" .Op Ar line
@@ -1943,8 +1945,8 @@ option.
.Cm rev Ns Op Cm ious Ns
.Op Cm !\&
.Xc
-Edit the previous file from the argument list. The capitalized command opens
-a new screen below the current screen.
+Edit the previous file from the argument list.
+The capitalized command opens a new screen below the current screen.
.Pp
.It Xo
.Op Ar range
@@ -2107,8 +2109,8 @@ character is usually
.Op Cm !\&
.Ar tagstring
.Xc
-Edit the file containing the specified tag. The capitalized command opens a
-new screen below the current screen.
+Edit the file containing the specified tag.
+The capitalized command opens a new screen below the current screen.
.Pp
.It Xo
.Cm tagn Ns Op Cm ext Ns
@@ -2178,8 +2180,8 @@ Enter
.Op Ar file
.Xc
.Nm vi
-mode only. Edit a different file by opening a new screen below the current
-screen.
+mode only.
+Edit a different file by opening a new screen below the current screen.
.Pp
.It Xo
.Cm viu Ns Op Cm sage
@@ -2226,7 +2228,8 @@ Write the entire file, or
.Sq !\&
overwrites a different, preexisting file.
.Sq >>
-appends to a file that may preexist. Whitespace followed by
+appends to a file that may preexist.
+Whitespace followed by
.Sq !\&
pipes the file to
.Ar shell-command .
@@ -2479,7 +2482,7 @@ Set the number of lines about which the editor reports changes or yanks.
.It Cm ruler Bq off
.Nm vi
only.
-Display a row/column ruler on the colon command line.
+Display a row/column/percentage ruler on the colon command line.
.It Cm scroll , scr Bq "window size / 2"
Set the number of lines scrolled.
.It Cm searchincr Bq off
@@ -2505,6 +2508,10 @@ Set the meta characters checked to determine if file name expansion
is necessary.
.It Cm shiftwidth , sw Bq 8
Set the autoindent and shift command indentation width.
+.It Cm showfilename Bq off
+.Nm vi
+only.
+Display the file name on the colon command line.
.It Cm showmatch , sm Bq off
.Nm vi
only.
@@ -2773,10 +2780,8 @@ and \*(Gt0 if an error occurs.
.Xr ctags 1 ,
.Xr iconv 1 ,
.Xr re_format 7
-.Rs
-.%T vi/ex reference manual
-.%U https://docs.freebsd.org/44doc/usd/13.viref/paper.pdf
-.Re
+.Pp
+.Lk https://docs.freebsd.org/44doc/usd/13.viref/paper.pdf "Vi/Ex Reference Manual"
.Sh STANDARDS
.Nm nex Ns / Ns Nm nvi
is close to
diff --git a/contrib/nvi/vi/vs_refresh.c b/contrib/nvi/vi/vs_refresh.c
index b64ec7392cbb..406a89ad7d9d 100644
--- a/contrib/nvi/vi/vs_refresh.c
+++ b/contrib/nvi/vi/vs_refresh.c
@@ -774,7 +774,8 @@ vs_modeline(SCR *sp)
size_t cols, curcol, curlen, endpoint, len, midpoint;
const char *t = NULL;
int ellipsis;
- char buf[20];
+ char buf[30];
+ recno_t last;
gp = sp->gp;
@@ -795,7 +796,7 @@ vs_modeline(SCR *sp)
/* If more than one screen in the display, show the file name. */
curlen = 0;
- if (IS_SPLIT(sp)) {
+ if (IS_SPLIT(sp) || O_ISSET(sp, O_SHOWFILENAME)) {
CHAR_T *wp, *p;
size_t l;
@@ -846,8 +847,14 @@ vs_modeline(SCR *sp)
cols = sp->cols - 1;
if (O_ISSET(sp, O_RULER)) {
vs_column(sp, &curcol);
- len = snprintf(buf, sizeof(buf), "%lu,%lu",
- (u_long)sp->lno, (u_long)(curcol + 1));
+
+ if (db_last(sp, &last) || last == 0)
+ len = snprintf(buf, sizeof(buf), "%lu,%zu",
+ (u_long)sp->lno, curcol + 1);
+ else
+ len = snprintf(buf, sizeof(buf), "%lu,%zu %lu%%",
+ (u_long)sp->lno, curcol + 1,
+ (u_long)(sp->lno * 100) / last);
midpoint = (cols - ((len + 1) / 2)) / 2;
if (curlen < midpoint) {
diff --git a/usr.bin/vi/options_def.h b/usr.bin/vi/options_def.h
index cd6f5ba3eb26..15104845c380 100644
--- a/usr.bin/vi/options_def.h
+++ b/usr.bin/vi/options_def.h
@@ -58,28 +58,29 @@
#define O_SHELL 57
#define O_SHELLMETA 58
#define O_SHIFTWIDTH 59
-#define O_SHOWMATCH 60
-#define O_SHOWMODE 61
-#define O_SIDESCROLL 62
-#define O_SLOWOPEN 63
-#define O_SOURCEANY 64
-#define O_TABSTOP 65
-#define O_TAGLENGTH 66
-#define O_TAGS 67
-#define O_TERM 68
-#define O_TERSE 69
-#define O_TILDEOP 70
-#define O_TIMEOUT 71
-#define O_TTYWERASE 72
-#define O_VERBOSE 73
-#define O_W1200 74
-#define O_W300 75
-#define O_W9600 76
-#define O_WARN 77
-#define O_WINDOW 78
-#define O_WINDOWNAME 79
-#define O_WRAPLEN 80
-#define O_WRAPMARGIN 81
-#define O_WRAPSCAN 82
-#define O_WRITEANY 83
-#define O_OPTIONCOUNT 84
+#define O_SHOWFILENAME 60
+#define O_SHOWMATCH 61
+#define O_SHOWMODE 62
+#define O_SIDESCROLL 63
+#define O_SLOWOPEN 64
+#define O_SOURCEANY 65
+#define O_TABSTOP 66
+#define O_TAGLENGTH 67
+#define O_TAGS 68
+#define O_TERM 69
+#define O_TERSE 70
+#define O_TILDEOP 71
+#define O_TIMEOUT 72
+#define O_TTYWERASE 73
+#define O_VERBOSE 74
+#define O_W1200 75
+#define O_W300 76
+#define O_W9600 77
+#define O_WARN 78
+#define O_WINDOW 79
+#define O_WINDOWNAME 80
+#define O_WRAPLEN 81
+#define O_WRAPMARGIN 82
+#define O_WRAPSCAN 83
+#define O_WRITEANY 84
+#define O_OPTIONCOUNT 85