From nobody Wed Jan 14 15:29:21 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4drqm364Kzz6NYB1 for ; Wed, 14 Jan 2026 15:29:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4drqm35fz9z4Mdb for ; Wed, 14 Jan 2026 15:29:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768404563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w+GXKu4Z2XNgIsTZUF2JrQACie1QPQhoXQEZyH4zlEs=; b=jX/NTNY9bwM8FGtMkHwY+4Nh4rw1LSbe71uHtweI5rMU5cZqPnt2cYc5hdOIC+4MoMpBxk 0LWVa5APF4qtFIzkw2IMjXINDiAOt5embE/u+N+cGPvlf5ZIHyTvwKvaxZQdOA9lqrWCzM NBZDp81g9qPDYmzy2AThdsApFfaxQQw0XhmKRsz/cIj240nxxz9dUvFdRORhdPrwcGUiGH /bU9luVeWI03jHXdGo75aoICrva0ON9NX9QmuhLluaEn+8SY6xTbmVZg9BPp/TPA9TxX5o vpQ3uCLxNs37JcOnC69B2rQdRvJNJSuv2E7tbgzOtKnFitmyfdI7+VqdayzHew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768404563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w+GXKu4Z2XNgIsTZUF2JrQACie1QPQhoXQEZyH4zlEs=; b=ykiBeWryljgtcYWXYp+bIKBzu4kI6lD8RkMCa4vWYTkifQsVic9sSJD1QOZfn0wU+zeLA0 fInnIfdKiiqwTnCDyvUrio63TdEG47Cu39BaYJ6k5vp3uGfLFikvDf9hGa86WGdkycL59G rltEH9yTmujSo4wjbA7mDGgeHydWqPCOxwXfXZMxiCoN3HKjQml9EPY1Td0W2HzaBhEhhl GFRgLLd+TOH3I+VK9B5HXhQ7wRVII8PvsmyNxdInuX9I61CGRjDdUiSy7TJ9HJdBWW2jNo gwHV/h7Tung1GTdNBi8FblUiR10nTGf/sRAoCiA71sqDhHfAvV8bKoB0X4QHYQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1768404563; a=rsa-sha256; cv=none; b=aYTc1v8VvOpC4bNGOOOx/OGecHAMbSWl5nYFroBq0hlst7/BK0hfmPA0TFc5iaM7NM8YZw YdRQAusNCFTvD2x8IR/H6G/WhBHIKGmfBTVrVtb8JnI9JRmD0Dw7FFg1UC9EcZOGXwMAxc to3cJGRVxVOc3+8YsuPE1d51QOHxBxCqsninoPs+4J571Yc2+/bC4d6jx5quh1DijXa2d5 3eGYXx4Wezy9Y44WnrrRnLR9NOp79dgrrf8lpHymDgB0GY0Yz7O4WSG2Mf0bMC3bJ7k30x 7N5Z6LKWzMGmqPMSkUfLPC6s4SEMjFYtFVBY45DMKelqxdc3w+cHqjBuaxfXrg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4drqm34NjGz13Wq for ; Wed, 14 Jan 2026 15:29:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20238 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 14 Jan 2026 15:29:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: 52d19df19ed6 - main - nvi: import version 2.2.2 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 52d19df19ed6455df025f7ac2c6cf5db7df8e5ec Auto-Submitted: auto-generated Date: Wed, 14 Jan 2026 15:29:21 +0000 Message-Id: <6967b651.20238.6d404165@gitrepo.freebsd.org> The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=52d19df19ed6455df025f7ac2c6cf5db7df8e5ec commit 52d19df19ed6455df025f7ac2c6cf5db7df8e5ec Merge: b8480379adce 3110ba77506b Author: Baptiste Daroussin AuthorDate: 2026-01-14 15:22:35 +0000 Commit: Baptiste Daroussin CommitDate: 2026-01-14 15:28:57 +0000 nvi: import version 2.2.2 contrib/nvi/.gitignore | 14 -- contrib/nvi/CMakeLists.txt | 67 +++--- contrib/nvi/README | 2 +- contrib/nvi/cl/cl.h | 2 +- contrib/nvi/cl/extern.h | 31 +++ contrib/nvi/common/common.h | 13 +- contrib/nvi/common/cut.c | 5 + contrib/nvi/common/extern.h | 131 ++++++++++++ contrib/nvi/common/line.c | 4 +- contrib/nvi/common/options.c | 39 ++-- contrib/nvi/common/options_def.h | 86 ++++++++ contrib/nvi/common/put.c | 46 ++-- contrib/nvi/common/recover.c | 2 +- contrib/nvi/ex/ex.c | 2 + contrib/nvi/ex/ex.h | 5 +- contrib/nvi/ex/ex_append.c | 21 +- contrib/nvi/ex/ex_bang.c | 4 +- contrib/nvi/ex/ex_def.h | 76 +++++++ contrib/nvi/ex/ex_move.c | 2 +- contrib/nvi/ex/ex_put.c | 2 +- contrib/nvi/ex/ex_shift.c | 8 +- contrib/nvi/ex/extern.h | 131 ++++++++++++ contrib/nvi/vi/extern.h | 145 +++++++++++++ contrib/nvi/vi/v_put.c | 34 ++- contrib/nvi/vi/vi.h | 2 +- usr.bin/vi/cl_extern.h | 31 +++ usr.bin/vi/common_extern.h | 131 ++++++++++++ usr.bin/vi/ex/version.h | 2 +- usr.bin/vi/ex_extern.h | 131 ++++++++++++ usr.bin/vi/extern.h | 444 --------------------------------------- usr.bin/vi/pathnames.h | 1 - usr.bin/vi/version.h | 1 + usr.bin/vi/vi_extern.h | 145 +++++++++++++ 33 files changed, 1179 insertions(+), 581 deletions(-) diff --cc contrib/nvi/cl/extern.h index 000000000000,7b01ccd3f8cf..7b01ccd3f8cf mode 000000,100644..100644 --- a/contrib/nvi/cl/extern.h +++ b/contrib/nvi/cl/extern.h diff --cc contrib/nvi/common/extern.h index 000000000000,c887696080de..c887696080de mode 000000,100644..100644 --- a/contrib/nvi/common/extern.h +++ b/contrib/nvi/common/extern.h diff --cc contrib/nvi/common/options_def.h index 000000000000,15104845c380..15104845c380 mode 000000,100644..100644 --- a/contrib/nvi/common/options_def.h +++ b/contrib/nvi/common/options_def.h diff --cc contrib/nvi/ex/ex_def.h index 000000000000,7afb7b19d677..7afb7b19d677 mode 000000,100644..100644 --- a/contrib/nvi/ex/ex_def.h +++ b/contrib/nvi/ex/ex_def.h diff --cc contrib/nvi/ex/extern.h index 000000000000,9d7b1d674c3c..9d7b1d674c3c mode 000000,100644..100644 --- a/contrib/nvi/ex/extern.h +++ b/contrib/nvi/ex/extern.h diff --cc contrib/nvi/vi/extern.h index 000000000000,8e145c6318ef..8e145c6318ef mode 000000,100644..100644 --- a/contrib/nvi/vi/extern.h +++ b/contrib/nvi/vi/extern.h diff --cc usr.bin/vi/cl_extern.h index 000000000000,000000000000..7b01ccd3f8cf new file mode 100644 --- /dev/null +++ b/usr.bin/vi/cl_extern.h @@@ -1,0 -1,0 +1,31 @@@ ++int cl_waddstr(SCR *, const CHAR_T *, size_t); ++int cl_addstr(SCR *, const char *, size_t); ++int cl_attr(SCR *, scr_attr_t, int); ++int cl_baud(SCR *, u_long *); ++int cl_bell(SCR *); ++int cl_clrtoeol(SCR *); ++int cl_cursor(SCR *, size_t *, size_t *); ++int cl_deleteln(SCR *); ++int cl_discard(SCR *, SCR **); ++int cl_ex_adjust(SCR *, exadj_t); ++int cl_insertln(SCR *); ++int cl_keyval(SCR *, scr_keyval_t, CHAR_T *, int *); ++int cl_move(SCR *, size_t, size_t); ++int cl_refresh(SCR *, int); ++int cl_rename(SCR *, char *, int); ++void cl_setname(GS *, char *); ++int cl_split(SCR *, SCR *); ++int cl_suspend(SCR *, int *); ++void cl_usage(void); ++int sig_init(GS *, SCR *); ++int cl_event(SCR *, EVENT *, u_int32_t, int); ++int cl_screen(SCR *, u_int32_t); ++int cl_quit(GS *); ++int cl_getcap(SCR *, char *, char **); ++int cl_term_init(SCR *); ++int cl_term_end(GS *); ++int cl_fmap(SCR *, seq_t, CHAR_T *, size_t, CHAR_T *, size_t); ++int cl_optchange(SCR *, int, char *, u_long *); ++int cl_omesg(SCR *, CL_PRIVATE *, int); ++int cl_ssize(SCR *, int, size_t *, size_t *, int *); ++int cl_putchar(int); diff --cc usr.bin/vi/common_extern.h index 000000000000,000000000000..5ddcf43610c4 new file mode 100644 --- /dev/null +++ b/usr.bin/vi/common_extern.h @@@ -1,0 -1,0 +1,131 @@@ ++char * codeset(void); ++void conv_init(SCR *, SCR *); ++int conv_enc(SCR *, int, char *); ++void conv_end(SCR *); ++int cut(SCR *, CHAR_T *, MARK *, MARK *, int); ++int cut_line(SCR *, recno_t, size_t, size_t, CB *); ++void cut_close(GS *); ++TEXT *text_init(SCR *, const CHAR_T *, size_t, size_t); ++void text_lfree(TEXTH *); ++void text_free(TEXT *); ++int del(SCR *, MARK *, MARK *, int); ++int looks_utf8(const char *, size_t); ++int looks_utf16(const char *, size_t); ++int decode_utf8(const char *); ++int decode_utf16(const char *, int); ++FREF *file_add(SCR *, char *); ++int file_init(SCR *, FREF *, char *, int); ++int file_end(SCR *, EXF *, int); ++int file_write(SCR *, MARK *, MARK *, char *, int); ++int file_m1(SCR *, int, int); ++int file_m2(SCR *, int); ++int file_m3(SCR *, int); ++int file_aw(SCR *, int); ++void set_alt_name(SCR *, char *); ++lockr_t file_lock(SCR *, char *, int, int); ++int v_key_init(SCR *); ++void v_key_ilookup(SCR *); ++size_t v_key_len(SCR *, ARG_CHAR_T); ++char *v_key_name(SCR *, ARG_CHAR_T); ++e_key_t v_key_val(SCR *, ARG_CHAR_T); ++int v_event_push(SCR *, EVENT *, CHAR_T *, size_t, u_int); ++int v_event_get(SCR *, EVENT *, int, u_int32_t); ++void v_event_err(SCR *, EVENT *); ++int v_event_flush(SCR *, u_int); ++int db_eget(SCR *, recno_t, CHAR_T **, size_t *, int *); ++int db_get(SCR *, recno_t, u_int32_t, CHAR_T **, size_t *); ++int db_delete(SCR *, recno_t); ++int db_append(SCR *, int, recno_t, CHAR_T *, size_t); ++int db_insert(SCR *, recno_t, CHAR_T *, size_t); ++int db_set(SCR *, recno_t, CHAR_T *, size_t); ++int db_exist(SCR *, recno_t); ++int db_last(SCR *, recno_t *); ++int db_rget(SCR *, recno_t, char **, size_t *); ++int db_rset(SCR *, recno_t, char *, size_t); ++void db_err(SCR *, recno_t); ++int log_init(SCR *, EXF *); ++int log_end(SCR *, EXF *); ++int log_cursor(SCR *); ++int log_line(SCR *, recno_t, u_int); ++int log_mark(SCR *, LMARK *); ++int log_backward(SCR *, MARK *); ++int log_setline(SCR *); ++int log_forward(SCR *, MARK *); ++int editor(GS *, int, char *[]); ++void v_end(GS *); ++int mark_init(SCR *, EXF *); ++int mark_end(SCR *, EXF *); ++int mark_get(SCR *, ARG_CHAR_T, MARK *, mtype_t); ++int mark_set(SCR *, ARG_CHAR_T, MARK *, int); ++int mark_insdel(SCR *, lnop_t, recno_t); ++void msgq(SCR *, mtype_t, const char *, ...); ++void msgq_wstr(SCR *, mtype_t, const CHAR_T *, const char *); ++void msgq_str(SCR *, mtype_t, const char *, const char *); ++void mod_rpt(SCR *); ++void msgq_status(SCR *, recno_t, u_int); ++int msg_open(SCR *, char *); ++void msg_close(GS *); ++const char *msg_cmsg(SCR *, cmsg_t, size_t *); ++const char *msg_cat(SCR *, const char *, size_t *); ++char *msg_print(SCR *, const char *, int *); ++int opts_init(SCR *, int *); ++int opts_set(SCR *, ARGS *[], char *); ++int o_set(SCR *, int, u_int, char *, u_long); ++int opts_empty(SCR *, int, int); ++void opts_dump(SCR *, enum optdisp); ++int opts_save(SCR *, FILE *); ++OPTLIST const *opts_search(CHAR_T *); ++void opts_nomatch(SCR *, CHAR_T *); ++int opts_copy(SCR *, SCR *); ++void opts_free(SCR *); ++int f_altwerase(SCR *, OPTION *, char *, u_long *); ++int f_columns(SCR *, OPTION *, char *, u_long *); ++int f_lines(SCR *, OPTION *, char *, u_long *); ++int f_lisp(SCR *, OPTION *, char *, u_long *); ++int f_msgcat(SCR *, OPTION *, char *, u_long *); ++int f_print(SCR *, OPTION *, char *, u_long *); ++int f_readonly(SCR *, OPTION *, char *, u_long *); ++int f_recompile(SCR *, OPTION *, char *, u_long *); ++int f_reformat(SCR *, OPTION *, char *, u_long *); ++int f_ttywerase(SCR *, OPTION *, char *, u_long *); ++int f_w300(SCR *, OPTION *, char *, u_long *); ++int f_w1200(SCR *, OPTION *, char *, u_long *); ++int f_w9600(SCR *, OPTION *, char *, u_long *); ++int f_window(SCR *, OPTION *, char *, u_long *); ++int f_encoding(SCR *, OPTION *, char *, u_long *); ++int put(SCR *, CB *, CHAR_T *, MARK *, MARK *, int, int); ++int rcv_tmp(SCR *, EXF *, char *); ++int rcv_init(SCR *); ++int rcv_sync(SCR *, u_int); ++int rcv_list(SCR *); ++int rcv_read(SCR *, FREF *); ++int screen_init(GS *, SCR *, SCR **); ++int screen_end(SCR *); ++SCR *screen_next(SCR *); ++int f_search(SCR *, ++ MARK *, MARK *, CHAR_T *, size_t, CHAR_T **, u_int); ++int b_search(SCR *, ++ MARK *, MARK *, CHAR_T *, size_t, CHAR_T **, u_int); ++void search_busy(SCR *, busy_t); ++int seq_set(SCR *, CHAR_T *, ++ size_t, CHAR_T *, size_t, CHAR_T *, size_t, seq_t, int); ++int seq_delete(SCR *, CHAR_T *, size_t, seq_t); ++int seq_free(SEQ *); ++SEQ *seq_find ++ (SCR *, SEQ **, EVENT *, CHAR_T *, size_t, seq_t, int *); ++void seq_close(GS *); ++int seq_dump(SCR *, seq_t, int); ++int seq_save(SCR *, FILE *, char *, seq_t); ++int e_memcmp(CHAR_T *, EVENT *, size_t); ++void *binc(SCR *, void *, size_t *, size_t); ++int nonblank(SCR *, recno_t, size_t *); ++char *join(char *, char *); ++char *expanduser(char *); ++char *quote(char *); ++char *v_strdup(SCR *, const char *, size_t); ++CHAR_T *v_wstrdup(SCR *, const CHAR_T *, size_t); ++enum nresult nget_uslong(u_long *, const CHAR_T *, CHAR_T **, int); ++enum nresult nget_slong(long *, const CHAR_T *, CHAR_T **, int); ++void timepoint_steady(struct timespec *); ++void timepoint_system(struct timespec *); ++void TRACE(SCR *, const char *, ...); diff --cc usr.bin/vi/ex/version.h index 1c18911cc593,000000000000..111bb6909b25 mode 100644,000000..100644 --- a/usr.bin/vi/ex/version.h +++ b/usr.bin/vi/ex/version.h @@@ -1,1 -1,0 +1,1 @@@ - #define VI_VERSION "2.2.1 (2023-09-25)" ++#define VI_VERSION "2.2.2 (2025-10-08)" diff --cc usr.bin/vi/ex_extern.h index 000000000000,000000000000..9d7b1d674c3c new file mode 100644 --- /dev/null +++ b/usr.bin/vi/ex_extern.h @@@ -1,0 -1,0 +1,131 @@@ ++int ex(SCR **); ++int ex_cmd(SCR *); ++int ex_range(SCR *, EXCMD *, int *); ++int ex_is_abbrev(CHAR_T *, size_t); ++int ex_is_unmap(CHAR_T *, size_t); ++void ex_badaddr ++ (SCR *, EXCMDLIST const *, enum badaddr, enum nresult); ++int ex_abbr(SCR *, EXCMD *); ++int ex_unabbr(SCR *, EXCMD *); ++int ex_append(SCR *, EXCMD *); ++int ex_change(SCR *, EXCMD *); ++int ex_insert(SCR *, EXCMD *); ++int ex_next(SCR *, EXCMD *); ++int ex_prev(SCR *, EXCMD *); ++int ex_rew(SCR *, EXCMD *); ++int ex_args(SCR *, EXCMD *); ++char **ex_buildargv(SCR *, EXCMD *, char *); ++int argv_init(SCR *, EXCMD *); ++int argv_exp0(SCR *, EXCMD *, CHAR_T *, size_t); ++int argv_exp1(SCR *, EXCMD *, CHAR_T *, size_t, int); ++int argv_exp2(SCR *, EXCMD *, CHAR_T *, size_t); ++int argv_exp3(SCR *, EXCMD *, CHAR_T *, size_t); ++int argv_flt_ex(SCR *, EXCMD *, CHAR_T *, size_t); ++int argv_free(SCR *); ++int argv_flt_path(SCR *, EXCMD *, CHAR_T *, size_t); ++CHAR_T *argv_esc(SCR *, EXCMD *, CHAR_T *, size_t); ++CHAR_T *argv_uesc(SCR *, EXCMD *, CHAR_T *, size_t); ++int ex_at(SCR *, EXCMD *); ++int ex_bang(SCR *, EXCMD *); ++int ex_cd(SCR *, EXCMD *); ++int ex_cscope(SCR *, EXCMD *); ++int cscope_end(SCR *); ++int cscope_display(SCR *); ++int cscope_search(SCR *, TAGQ *, TAG *); ++int ex_delete(SCR *, EXCMD *); ++int ex_display(SCR *, EXCMD *); ++int ex_edit(SCR *, EXCMD *); ++int ex_equal(SCR *, EXCMD *); ++int ex_file(SCR *, EXCMD *); ++int ex_filter(SCR *, ++ EXCMD *, MARK *, MARK *, MARK *, CHAR_T *, enum filtertype); ++int ex_global(SCR *, EXCMD *); ++int ex_v(SCR *, EXCMD *); ++int ex_g_insdel(SCR *, lnop_t, recno_t); ++int ex_screen_copy(SCR *, SCR *); ++int ex_screen_end(SCR *); ++int ex_optchange(SCR *, int, char *, u_long *); ++int ex_exrc(SCR *); ++int ex_run_str(SCR *, char *, CHAR_T *, size_t, int, int); ++int ex_join(SCR *, EXCMD *); ++int ex_map(SCR *, EXCMD *); ++int ex_unmap(SCR *, EXCMD *); ++int ex_mark(SCR *, EXCMD *); ++int ex_mkexrc(SCR *, EXCMD *); ++int ex_copy(SCR *, EXCMD *); ++int ex_move(SCR *, EXCMD *); ++int ex_open(SCR *, EXCMD *); ++int ex_preserve(SCR *, EXCMD *); ++int ex_recover(SCR *, EXCMD *); ++int ex_list(SCR *, EXCMD *); ++int ex_number(SCR *, EXCMD *); ++int ex_pr(SCR *, EXCMD *); ++int ex_print(SCR *, EXCMD *, MARK *, MARK *, u_int32_t); ++int ex_ldisplay(SCR *, const CHAR_T *, size_t, size_t, u_int); ++int ex_scprint(SCR *, MARK *, MARK *); ++int ex_printf(SCR *, const char *, ...); ++int ex_puts(SCR *, const char *); ++int ex_fflush(SCR *sp); ++int ex_put(SCR *, EXCMD *); ++int ex_quit(SCR *, EXCMD *); ++int ex_read(SCR *, EXCMD *); ++int ex_readfp(SCR *, char *, FILE *, MARK *, recno_t *, int); ++int ex_bg(SCR *, EXCMD *); ++int ex_fg(SCR *, EXCMD *); ++int ex_resize(SCR *, EXCMD *); ++int ex_sdisplay(SCR *); ++int ex_script(SCR *, EXCMD *); ++int sscr_exec(SCR *, recno_t); ++int sscr_input(SCR *); ++int sscr_end(SCR *); ++int ex_set(SCR *, EXCMD *); ++int ex_shell(SCR *, EXCMD *); ++int ex_exec_proc(SCR *, EXCMD *, char *, const char *, int); ++int proc_wait(SCR *, long, const char *, int, int); ++int ex_shiftl(SCR *, EXCMD *); ++int ex_shiftr(SCR *, EXCMD *); ++int ex_retab(SCR *, EXCMD *); ++int ex_source(SCR *, EXCMD *); ++int ex_stop(SCR *, EXCMD *); ++int ex_s(SCR *, EXCMD *); ++int ex_subagain(SCR *, EXCMD *); ++int ex_subtilde(SCR *, EXCMD *); ++int re_compile(SCR *, ++ CHAR_T *, size_t, CHAR_T **, size_t *, regex_t *, u_int); ++void re_error(SCR *, int, regex_t *); ++int ex_tag_first(SCR *, CHAR_T *); ++int ex_tag_push(SCR *, EXCMD *); ++int ex_tag_next(SCR *, EXCMD *); ++int ex_tag_prev(SCR *, EXCMD *); ++int ex_tag_nswitch(SCR *, TAG *, int); ++int ex_tag_Nswitch(SCR *, TAG *, int); ++int ex_tag_pop(SCR *, EXCMD *); ++int ex_tag_top(SCR *, EXCMD *); ++int ex_tag_display(SCR *); ++int ex_tag_copy(SCR *, SCR *); ++int tagq_free(SCR *, TAGQ *); ++int tagq_push(SCR*, TAGQ*, int, int ); ++void tag_msg(SCR *, tagmsg_t, char *); ++int ex_tagf_alloc(SCR *, char *); ++int ex_tag_free(SCR *); ++int ex_txt(SCR *, TEXTH *, ARG_CHAR_T, u_int32_t); ++int ex_undo(SCR *, EXCMD *); ++int ex_help(SCR *, EXCMD *); ++int ex_usage(SCR *, EXCMD *); ++int ex_viusage(SCR *, EXCMD *); ++void ex_cinit(SCR *, EXCMD *, int, int, recno_t, recno_t, int); ++int ex_getline(SCR *, FILE *, size_t *); ++int ex_ncheck(SCR *, int); ++int ex_init(SCR *); ++void ex_wemsg(SCR *, CHAR_T *, exm_t); ++void ex_emsg(SCR *, char *, exm_t); ++int ex_version(SCR *, EXCMD *); ++int ex_visual(SCR *, EXCMD *); ++int ex_wn(SCR *, EXCMD *); ++int ex_wq(SCR *, EXCMD *); ++int ex_write(SCR *, EXCMD *); ++int ex_xit(SCR *, EXCMD *); ++int ex_writefp(SCR *, ++ char *, FILE *, MARK *, MARK *, u_long *, u_long *, int); ++int ex_yank(SCR *, EXCMD *); ++int ex_z(SCR *, EXCMD *); diff --cc usr.bin/vi/pathnames.h index f1c706f5ecbd,000000000000..63b667ffacf4 mode 100644,000000..100644 --- a/usr.bin/vi/pathnames.h +++ b/usr.bin/vi/pathnames.h @@@ -1,26 -1,0 +1,25 @@@ - +/* Read standard system paths first. */ +#include + +#ifndef _PATH_EXRC +#define _PATH_EXRC ".exrc" +#endif + +#ifndef _PATH_MSGCAT +#define _PATH_MSGCAT "/usr/share/vi/catalog/" +#endif + +#ifndef _PATH_NEXRC +#define _PATH_NEXRC ".nexrc" +#endif + +/* On linux _PATH_PRESERVE is only writable by root */ +#define NVI_PATH_PRESERVE "/var/tmp/vi.recover/" + +#ifndef _PATH_SYSEXRC +#define _PATH_SYSEXRC "/etc/vi.exrc" +#endif + +#ifndef _PATH_TAGS +#define _PATH_TAGS "tags" +#endif diff --cc usr.bin/vi/version.h index 000000000000,000000000000..111bb6909b25 new file mode 100644 --- /dev/null +++ b/usr.bin/vi/version.h @@@ -1,0 -1,0 +1,1 @@@ ++#define VI_VERSION "2.2.2 (2025-10-08)" diff --cc usr.bin/vi/vi_extern.h index 000000000000,000000000000..8e145c6318ef new file mode 100644 --- /dev/null +++ b/usr.bin/vi/vi_extern.h @@@ -1,0 -1,0 +1,145 @@@ ++int cs_init(SCR *, VCS *); ++int cs_next(SCR *, VCS *); ++int cs_fspace(SCR *, VCS *); ++int cs_fblank(SCR *, VCS *); ++int cs_prev(SCR *, VCS *); ++int cs_bblank(SCR *, VCS *); ++int v_at(SCR *, VICMD *); ++int v_chrepeat(SCR *, VICMD *); ++int v_chrrepeat(SCR *, VICMD *); ++int v_cht(SCR *, VICMD *); ++int v_chf(SCR *, VICMD *); ++int v_chT(SCR *, VICMD *); ++int v_chF(SCR *, VICMD *); ++int v_delete(SCR *, VICMD *); ++int v_again(SCR *, VICMD *); ++int v_exmode(SCR *, VICMD *); ++int v_join(SCR *, VICMD *); ++int v_shiftl(SCR *, VICMD *); ++int v_shiftr(SCR *, VICMD *); ++int v_suspend(SCR *, VICMD *); ++int v_switch(SCR *, VICMD *); ++int v_tagpush(SCR *, VICMD *); ++int v_tagpop(SCR *, VICMD *); ++int v_filter(SCR *, VICMD *); ++int v_ex(SCR *, VICMD *); ++int v_ecl_exec(SCR *); ++int v_increment(SCR *, VICMD *); ++int v_screen_copy(SCR *, SCR *); ++int v_screen_end(SCR *); ++int v_optchange(SCR *, int, char *, u_long *); ++int v_iA(SCR *, VICMD *); ++int v_ia(SCR *, VICMD *); ++int v_iI(SCR *, VICMD *); ++int v_ii(SCR *, VICMD *); ++int v_iO(SCR *, VICMD *); ++int v_io(SCR *, VICMD *); ++int v_change(SCR *, VICMD *); ++int v_Replace(SCR *, VICMD *); ++int v_subst(SCR *, VICMD *); ++int v_left(SCR *, VICMD *); ++int v_cfirst(SCR *, VICMD *); ++int v_first(SCR *, VICMD *); ++int v_ncol(SCR *, VICMD *); ++int v_zero(SCR *, VICMD *); ++int v_mark(SCR *, VICMD *); ++int v_bmark(SCR *, VICMD *); ++int v_fmark(SCR *, VICMD *); ++int v_emark(SCR *, VICMD *); ++int v_match(SCR *, VICMD *); ++int v_buildmcs(SCR *, char *); ++int v_paragraphf(SCR *, VICMD *); ++int v_paragraphb(SCR *, VICMD *); ++int v_buildps(SCR *, char *, char *); ++int v_Put(SCR *, VICMD *); ++int v_put(SCR *, VICMD *); ++int v_redraw(SCR *, VICMD *); ++int v_replace(SCR *, VICMD *); ++int v_right(SCR *, VICMD *); ++int v_dollar(SCR *, VICMD *); ++int v_screen(SCR *, VICMD *); ++int v_lgoto(SCR *, VICMD *); ++int v_home(SCR *, VICMD *); ++int v_middle(SCR *, VICMD *); ++int v_bottom(SCR *, VICMD *); ++int v_up(SCR *, VICMD *); ++int v_cr(SCR *, VICMD *); ++int v_down(SCR *, VICMD *); ++int v_hpageup(SCR *, VICMD *); ++int v_hpagedown(SCR *, VICMD *); ++int v_pagedown(SCR *, VICMD *); ++int v_pageup(SCR *, VICMD *); ++int v_lineup(SCR *, VICMD *); ++int v_linedown(SCR *, VICMD *); ++int v_searchb(SCR *, VICMD *); ++int v_searchf(SCR *, VICMD *); ++int v_searchN(SCR *, VICMD *); ++int v_searchn(SCR *, VICMD *); ++int v_searchw(SCR *, VICMD *); ++int v_correct(SCR *, VICMD *, int); ++int v_sectionf(SCR *, VICMD *); ++int v_sectionb(SCR *, VICMD *); ++int v_sentencef(SCR *, VICMD *); ++int v_sentenceb(SCR *, VICMD *); ++int v_status(SCR *, VICMD *); ++int v_tcmd(SCR *, VICMD *, ARG_CHAR_T, u_int); ++int v_txt(SCR *, VICMD *, MARK *, ++ const CHAR_T *, size_t, ARG_CHAR_T, recno_t, u_long, u_int32_t); ++int v_txt_auto(SCR *, recno_t, TEXT *, size_t, TEXT *); ++int v_ulcase(SCR *, VICMD *); ++int v_mulcase(SCR *, VICMD *); ++int v_Undo(SCR *, VICMD *); ++int v_undo(SCR *, VICMD *); ++void v_eof(SCR *, MARK *); ++void v_eol(SCR *, MARK *); ++void v_nomove(SCR *); ++void v_sof(SCR *, MARK *); ++void v_sol(SCR *); ++int v_isempty(CHAR_T *, size_t); ++void v_emsg(SCR *, char *, vim_t); ++int v_wordW(SCR *, VICMD *); ++int v_wordw(SCR *, VICMD *); ++int v_wordE(SCR *, VICMD *); ++int v_worde(SCR *, VICMD *); ++int v_wordB(SCR *, VICMD *); ++int v_wordb(SCR *, VICMD *); ++int v_xchar(SCR *, VICMD *); ++int v_Xchar(SCR *, VICMD *); ++int v_yank(SCR *, VICMD *); ++int v_z(SCR *, VICMD *); ++int vs_crel(SCR *, long); ++int v_zexit(SCR *, VICMD *); ++int vi(SCR **); ++int v_curword(SCR *); ++int vs_line(SCR *, SMAP *, size_t *, size_t *); ++int vs_number(SCR *); ++void vs_busy(SCR *, const char *, busy_t); ++void vs_home(SCR *); ++void vs_update(SCR *, const char *, const CHAR_T *); ++void vs_msg(SCR *, mtype_t, char *, size_t); ++int vs_ex_resolve(SCR *, int *); ++int vs_resolve(SCR *, SCR *, int); ++int vs_repaint(SCR *, EVENT *); ++int vs_refresh(SCR *, int); ++int vs_column(SCR *, size_t *); ++size_t vs_screens(SCR *, recno_t, size_t *); ++size_t vs_columns(SCR *, CHAR_T *, recno_t, size_t *, size_t *); ++size_t vs_rcm(SCR *, recno_t, int); ++size_t vs_colpos(SCR *, recno_t, size_t); ++int vs_change(SCR *, recno_t, lnop_t); ++int vs_sm_fill(SCR *, recno_t, pos_t); ++int vs_sm_scroll(SCR *, MARK *, recno_t, scroll_t); ++int vs_sm_1up(SCR *); ++int vs_sm_1down(SCR *); ++int vs_sm_next(SCR *, SMAP *, SMAP *); ++int vs_sm_prev(SCR *, SMAP *, SMAP *); ++int vs_sm_cursor(SCR *, SMAP **); ++int vs_sm_position(SCR *, MARK *, u_long, pos_t); ++recno_t vs_sm_nlines(SCR *, SMAP *, recno_t, size_t); ++int vs_split(SCR *, SCR *, int); ++int vs_vsplit(SCR *, SCR *); ++int vs_discard(SCR *, SCR **); ++int vs_fg(SCR *, SCR **, CHAR_T *, int); ++int vs_bg(SCR *); ++int vs_swap(SCR *, SCR **, char *); ++int vs_resize(SCR *, long, adj_t);