Date: Wed, 15 Jan 2025 09:55:07 GMT From: Baptiste Daroussin <bapt@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 88f55c3150e9 - stable/14 - nvi: import version 2.2.1-52c07e8 Message-ID: <202501150955.50F9t7s2071240@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202501150955.50F9t7s2071240>