mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 01:26:39 -04:00
editors/nvi2: Update to 26-Apr-2024 (52c07e8)
- In ruler show the current line number as a percentage of the total lines - Link macro for hyperlink - Add showfilename set option - Fix undefined string comparison - Replace Clang-only __builtin_is_aligned with C code - Use memmove to realign buffers
This commit is contained in:
parent
14a1910257
commit
ab0fed1b91
8 changed files with 300 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
||||||
PORTNAME= nvi2
|
PORTNAME= nvi2
|
||||||
PORTVERSION= 2.2.1
|
PORTVERSION= 2.2.1
|
||||||
PORTREVISION= 2
|
PORTREVISION= 3
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
CATEGORIES= editors
|
CATEGORIES= editors
|
||||||
|
|
||||||
|
|
10
editors/nvi2/files/patch-CMakeLists.txt
Normal file
10
editors/nvi2/files/patch-CMakeLists.txt
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- CMakeLists.txt.orig 2023-09-25 08:47:42 UTC
|
||||||
|
+++ CMakeLists.txt
|
||||||
|
@@ -37,7 +37,6 @@ add_compile_options($<$<CONFIG:Release>:-Wno-dangling-
|
||||||
|
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)
|
||||||
|
|
10
editors/nvi2/files/patch-common_common.h
Normal file
10
editors/nvi2/files/patch-common_common.h
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- common/common.h.orig 2023-09-25 08:47:42 UTC
|
||||||
|
+++ 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
|
46
editors/nvi2/files/patch-common_log.c
Normal file
46
editors/nvi2/files/patch-common_log.c
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
--- common/log.c.orig 2023-09-25 08:47:42 UTC
|
||||||
|
+++ 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>
|
||||||
|
@@ -706,30 +705,18 @@ apply_with(int (*db_func)(SCR *, recno_t, CHAR_T *, si
|
||||||
|
recno_t lno, u_char *p, size_t len)
|
||||||
|
{
|
||||||
|
#ifdef USE_WIDECHAR
|
||||||
|
- typedef unsigned long nword;
|
||||||
|
-
|
||||||
|
static size_t blen;
|
||||||
|
- static nword *bp;
|
||||||
|
- nword *lp = (nword *)((uintptr_t)p / sizeof(nword) * sizeof(nword));
|
||||||
|
+ static u_char *bp;
|
||||||
|
|
||||||
|
- if (lp != (nword *)p) {
|
||||||
|
- int offl = ((uintptr_t)p - (uintptr_t)lp) << 3;
|
||||||
|
- int offr = (sizeof(nword) << 3) - offl;
|
||||||
|
- size_t i, cnt = (len + sizeof(nword) / 2) / sizeof(nword);
|
||||||
|
-
|
||||||
|
+ if (!is_aligned(p, sizeof(unsigned long))) {
|
||||||
|
if (len > blen) {
|
||||||
|
blen = p2roundup(MAX(len, 512));
|
||||||
|
- REALLOC(sp, bp, nword *, blen);
|
||||||
|
+ REALLOC(sp, bp, u_char *, blen);
|
||||||
|
if (bp == NULL)
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
- for (i = 0; i < cnt; ++i)
|
||||||
|
-#if BYTE_ORDER == BIG_ENDIAN
|
||||||
|
- bp[i] = (lp[i] << offl) ^ (lp[i+1] >> offr);
|
||||||
|
-#else
|
||||||
|
- bp[i] = (lp[i] >> offl) ^ (lp[i+1] << offr);
|
||||||
|
-#endif
|
||||||
|
- p = (u_char *)bp;
|
||||||
|
+ memmove(bp, p, len);
|
||||||
|
+ p = bp;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return db_func(sp, lno, (CHAR_T *)p, len / sizeof(CHAR_T));
|
21
editors/nvi2/files/patch-common_mem.h
Normal file
21
editors/nvi2/files/patch-common_mem.h
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
--- common/mem.h.orig 2023-09-25 08:47:42 UTC
|
||||||
|
+++ common/mem.h
|
||||||
|
@@ -212,6 +212,18 @@ p2roundup(size_t n)
|
||||||
|
return (n);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * is_aligned --
|
||||||
|
+ * Determine whether the program can safely read an object with an
|
||||||
|
+ * alignment requirement from ptr.
|
||||||
|
+ *
|
||||||
|
+ * See also: https://clang.llvm.org/docs/LanguageExtensions.html#alignment-builtins
|
||||||
|
+ */
|
||||||
|
+static __inline int
|
||||||
|
+is_aligned(void *ptr, size_t alignment) {
|
||||||
|
+ return ((uintptr_t)ptr % alignment) == 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Additional TAILQ helper. */
|
||||||
|
#define TAILQ_ENTRY_ISVALID(elm, field) \
|
||||||
|
((elm)->field.tqe_prev != NULL)
|
20
editors/nvi2/files/patch-common_options.c
Normal file
20
editors/nvi2/files/patch-common_options.c
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- common/options.c.orig 2023-09-25 08:47:42 UTC
|
||||||
|
+++ 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; \
|
154
editors/nvi2/files/patch-man_vi.1
Normal file
154
editors/nvi2/files/patch-man_vi.1
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
--- man/vi.1.orig 2023-09-25 08:47:42 UTC
|
||||||
|
+++ 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 November 2, 2013
|
||||||
|
+.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 @@ will refuse to quit).
|
||||||
|
(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 @@ command being entered, or cancel it if it is only part
|
||||||
|
.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 @@ to the position of the cursor before the last of the f
|
||||||
|
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 @@ mode only.
|
||||||
|
.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 th
|
||||||
|
.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 @@ overwrites a different, preexisting file.
|
||||||
|
.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 @@ only.
|
||||||
|
.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 autoindent and shift command indentation width
|
||||||
|
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
|
38
editors/nvi2/files/patch-vi_vs__refresh.c
Normal file
38
editors/nvi2/files/patch-vi_vs__refresh.c
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
--- vi/vs_refresh.c.orig 2023-09-25 08:47:42 UTC
|
||||||
|
+++ 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) {
|
Loading…
Add table
Reference in a new issue