import nvi 2.2.0-3bbdfe4
This commit is contained in:
parent
b4ed613595
commit
8e6e122418
5
.gitignore
vendored
5
.gitignore
vendored
@ -7,3 +7,8 @@ extern.h
|
||||
version.h
|
||||
tags
|
||||
build/
|
||||
|
||||
# Ignore files by the GNU Global source code tagging system.
|
||||
/GPATH
|
||||
/GRTAGS
|
||||
/GTAGS
|
||||
|
@ -13,20 +13,28 @@ project(nvi2 C)
|
||||
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckSymbolExists)
|
||||
include(CheckStructHasMember)
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
mark_as_advanced(CMAKE_INSTALL_PREFIX)
|
||||
|
||||
option(USE_WIDECHAR "Enable wide character support" ON)
|
||||
option(USE_ICONV "Enable iconv support" ON)
|
||||
|
||||
add_compile_options(-fcolor-diagnostics)
|
||||
check_c_compiler_flag(-fcolor-diagnostics USE_FCOLOR_DIAGNOSTICS)
|
||||
if(USE_FCOLOR_DIAGNOSTICS)
|
||||
add_compile_options(-fcolor-diagnostics)
|
||||
endif()
|
||||
|
||||
add_compile_options($<$<CONFIG:Debug>:-Wall>)
|
||||
add_compile_options($<$<CONFIG:Debug>:-Wno-parentheses>)
|
||||
add_compile_options($<$<CONFIG:Debug>:-Wno-uninitialized>)
|
||||
add_compile_options($<$<CONFIG:Debug>:-Wmissing-prototypes>)
|
||||
add_compile_options($<$<CONFIG:Debug>:-Wsystem-headers>)
|
||||
if (NOT APPLE)
|
||||
add_compile_options($<$<CONFIG:Debug>:-Wsystem-headers>)
|
||||
endif()
|
||||
add_compile_options($<$<CONFIG:Release>:-Wuninitialized>)
|
||||
add_compile_options($<$<CONFIG:Release>:-Wno-dangling-else>)
|
||||
add_compile_options(-Wstack-protector -fstack-protector)
|
||||
@ -126,6 +134,11 @@ if(NOT RESOLV_IN_LIBC)
|
||||
target_link_libraries(nvi PRIVATE ${RESOLV_LIBRARY})
|
||||
endif()
|
||||
|
||||
check_symbol_exists(asprintf "stdio.h" ASPRINTF_IN_STDIO_H)
|
||||
if(NOT ASPRINTF_IN_STDIO_H)
|
||||
target_compile_definitions(nvi PRIVATE _GNU_SOURCE)
|
||||
endif()
|
||||
|
||||
if(USE_WIDECHAR)
|
||||
find_library(CURSES_LIBRARY NAMES ncursesw cursesw curses HINTS /usr/lib)
|
||||
find_library(TERMINFO_LIBRARY NAMES tinfow terminfo HINTS /usr/lib)
|
||||
@ -142,7 +155,10 @@ else()
|
||||
target_compile_options(nvi PRIVATE -Wno-pointer-sign)
|
||||
endif()
|
||||
|
||||
target_link_libraries(nvi PRIVATE ${CURSES_LIBRARY} ${TERMINFO_LIBRARY})
|
||||
target_link_libraries(nvi PRIVATE ${CURSES_LIBRARY})
|
||||
if(TERMINFO_LIBRARY)
|
||||
target_link_libraries(nvi PRIVATE ${TERMINFO_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(USE_ICONV)
|
||||
check_function_exists(iconv ICONV_IN_LIBC)
|
||||
@ -189,6 +205,18 @@ check_function_exists(dbopen DBOPEN_IN_LIBC)
|
||||
if(NOT DBOPEN_IN_LIBC)
|
||||
target_link_libraries(nvi PRIVATE db1)
|
||||
endif()
|
||||
if (APPLE)
|
||||
# Avoid using an incompatible db.h installed to /usr/local (since this is
|
||||
# part of the default search path on macOS)
|
||||
set(DB_H_GUESS "${CMAKE_OSX_SYSROOT}/usr/include/db.h")
|
||||
if (NOT EXISTS ${DB_H_GUESS})
|
||||
message(FATAL_ERROR "Could not find db.h at the expected path (${DB_H_GUESS}).")
|
||||
endif()
|
||||
add_definitions("-DDB_H_ABS_PATH=<${DB_H_GUESS}>")
|
||||
else()
|
||||
find_path(DB_INCLUDE_DIR db.h PATH_SUFFIXES db1)
|
||||
target_include_directories(nvi PRIVATE ${DB_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
check_include_files(libutil.h HAVE_LIBUTIL_H)
|
||||
check_include_files(ncurses.h HAVE_NCURSES_H)
|
||||
@ -196,6 +224,10 @@ check_include_files(ncursesw/ncurses.h HAVE_NCURSESW_NCURSES_H)
|
||||
check_include_files(pty.h HAVE_PTY_H)
|
||||
check_include_files(term.h HAVE_TERM_H)
|
||||
check_struct_has_member("struct dirent" d_namlen dirent.h HAVE_DIRENT_D_NAMLEN LANGUAGE C)
|
||||
check_struct_has_member("struct stat" st_mtimespec
|
||||
"sys/types.h;sys/stat.h" HAVE_STRUCT_STAT_ST_MTIMESPEC LANGUAGE C)
|
||||
check_struct_has_member("struct stat" st_mtim
|
||||
"sys/types.h;sys/stat.h" HAVE_STRUCT_STAT_ST_MTIM LANGUAGE C)
|
||||
|
||||
configure_file(files/config.h.in config.h)
|
||||
|
||||
|
@ -35,24 +35,24 @@ parse(FILE *fp)
|
||||
{
|
||||
int ch, s1, s2, s3;
|
||||
|
||||
#define TESTD(s) do { \
|
||||
#define TESTD(s) { \
|
||||
if ((s = getc(fp)) == EOF) \
|
||||
return; \
|
||||
if (!isdigit(s)) \
|
||||
continue; \
|
||||
} while (0)
|
||||
#define TESTP do { \
|
||||
}
|
||||
#define TESTP { \
|
||||
if ((ch = getc(fp)) == EOF) \
|
||||
return; \
|
||||
if (ch != '|') \
|
||||
continue; \
|
||||
} while (0)
|
||||
#define MOVEC(t) do { \
|
||||
}
|
||||
#define MOVEC(t) { \
|
||||
do { \
|
||||
if ((ch = getc(fp)) == EOF) \
|
||||
return; \
|
||||
} while (ch != (t)); \
|
||||
} while (0)
|
||||
}
|
||||
for (;;) {
|
||||
MOVEC('"');
|
||||
TESTD(s1);
|
||||
|
3
cl/cl.h
3
cl/cl.h
@ -7,9 +7,6 @@
|
||||
* See the LICENSE file for redistribution information.
|
||||
*/
|
||||
|
||||
#ifdef USE_WIDECHAR
|
||||
#define _XOPEN_SOURCE_EXTENDED
|
||||
#endif
|
||||
#ifdef HAVE_NCURSESW_NCURSES_H
|
||||
#include <ncursesw/ncurses.h>
|
||||
#elif defined HAVE_NCURSES_H
|
||||
|
@ -317,10 +317,10 @@ cl_resize(SCR *sp, size_t lines, size_t columns)
|
||||
argv[0] = &a;
|
||||
argv[1] = &b;
|
||||
|
||||
a.len = SPRINTF(b1, sizeof(b1), L("lines=%lu"), (u_long)lines);
|
||||
a.len = SPRINTF(b1, SIZE(b1), L("lines=%lu"), (u_long)lines);
|
||||
if (opts_set(sp, argv, NULL))
|
||||
return (1);
|
||||
a.len = SPRINTF(b1, sizeof(b1), L("columns=%lu"), (u_long)columns);
|
||||
a.len = SPRINTF(b1, SIZE(b1), L("columns=%lu"), (u_long)columns);
|
||||
if (opts_set(sp, argv, NULL))
|
||||
return (1);
|
||||
return (0);
|
||||
|
31
cl/extern.h
31
cl/extern.h
@ -1,31 +0,0 @@
|
||||
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);
|
@ -11,10 +11,10 @@
|
||||
#define TCSASOFT 0
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
#include "/usr/include/db1/db.h" /* Only include db1. */
|
||||
#ifdef DB_H_ABS_PATH
|
||||
#include DB_H_ABS_PATH
|
||||
#else
|
||||
#include "/usr/include/db.h" /* Only include db1. */
|
||||
#include <db.h>
|
||||
#endif
|
||||
#include <regex.h> /* May refer to the bundled regex. */
|
||||
|
||||
|
@ -28,7 +28,7 @@ typedef int iconv_t;
|
||||
#define KEY_NEEDSWIDE(sp, ch) \
|
||||
(INTISWIDE(ch) && KEY_LEN(sp, ch) <= 4)
|
||||
#define KEY_COL(sp, ch) \
|
||||
(KEY_NEEDSWIDE(sp, ch) ? CHAR_WIDTH(sp, ch) : KEY_LEN(sp, ch))
|
||||
(KEY_NEEDSWIDE(sp, ch) ? XCHAR_WIDTH(sp, ch) : KEY_LEN(sp, ch))
|
||||
|
||||
enum { IC_FE_CHAR2INT, IC_FE_INT2CHAR, IC_IE_CHAR2INT, IC_IE_TO_UTF16 };
|
||||
|
||||
|
27
common/exf.c
27
common/exf.c
@ -199,7 +199,14 @@ file_init(SCR *sp, FREF *frp, char *rcv_name, int flags)
|
||||
if (!LF_ISSET(FS_OPENERR))
|
||||
F_SET(frp, FR_NEWFILE);
|
||||
|
||||
#if defined HAVE_STRUCT_STAT_ST_MTIMESPEC
|
||||
ep->mtim = sb.st_mtimespec;
|
||||
#elif defined HAVE_STRUCT_STAT_ST_MTIM
|
||||
ep->mtim = sb.st_mtim;
|
||||
#else
|
||||
ep->mtim.tv_sec = sb.st_mtime;
|
||||
ep->mtim.tv_nsec = 0;
|
||||
#endif
|
||||
} else {
|
||||
/*
|
||||
* XXX
|
||||
@ -218,7 +225,14 @@ file_init(SCR *sp, FREF *frp, char *rcv_name, int flags)
|
||||
ep->mdev = sb.st_dev;
|
||||
ep->minode = sb.st_ino;
|
||||
|
||||
#if defined HAVE_STRUCT_STAT_ST_MTIMESPEC
|
||||
ep->mtim = sb.st_mtimespec;
|
||||
#elif defined HAVE_STRUCT_STAT_ST_MTIM
|
||||
ep->mtim = sb.st_mtim;
|
||||
#else
|
||||
ep->mtim.tv_sec = sb.st_mtime;
|
||||
ep->mtim.tv_nsec = 0;
|
||||
#endif
|
||||
|
||||
if (!S_ISREG(sb.st_mode))
|
||||
msgq_str(sp, M_ERR, oname,
|
||||
@ -796,7 +810,13 @@ file_write(SCR *sp, MARK *fm, MARK *tm, char *name, int flags)
|
||||
if (noname && !LF_ISSET(FS_FORCE | FS_APPEND) &&
|
||||
((F_ISSET(ep, F_DEVSET) &&
|
||||
(sb.st_dev != ep->mdev || sb.st_ino != ep->minode)) ||
|
||||
#if defined HAVE_STRUCT_STAT_ST_MTIMESPEC
|
||||
timespeccmp(&sb.st_mtimespec, &ep->mtim, !=))) {
|
||||
#elif defined HAVE_STRUCT_STAT_ST_MTIM
|
||||
timespeccmp(&sb.st_mtim, &ep->mtim, !=))) {
|
||||
#else
|
||||
sb.st_mtime != ep->mtim.tv_sec)) {
|
||||
#endif
|
||||
msgq_str(sp, M_ERR, name, LF_ISSET(FS_POSSIBLE) ?
|
||||
"250|%s: file modified more recently than this copy; use ! to override" :
|
||||
"251|%s: file modified more recently than this copy");
|
||||
@ -895,7 +915,14 @@ file_write(SCR *sp, MARK *fm, MARK *tm, char *name, int flags)
|
||||
ep->mdev = sb.st_dev;
|
||||
ep->minode = sb.st_ino;
|
||||
|
||||
#if defined HAVE_STRUCT_STAT_ST_MTIMESPEC
|
||||
ep->mtim = sb.st_mtimespec;
|
||||
#elif defined HAVE_STRUCT_STAT_ST_MTIM
|
||||
ep->mtim = sb.st_mtim;
|
||||
#else
|
||||
ep->mtim.tv_sec = sb.st_mtime;
|
||||
ep->mtim.tv_nsec = 0;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
131
common/extern.h
131
common/extern.h
@ -1,131 +0,0 @@
|
||||
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 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 *, ...);
|
@ -22,8 +22,8 @@
|
||||
sp->conv.input2int(sp, n, nlen, &(cw), &wlen, &w)
|
||||
#define CONST
|
||||
#define INTISWIDE(c) (wctob(c) == EOF)
|
||||
#define CHAR_WIDTH(sp, ch) wcwidth(ch)
|
||||
#define CAN_PRINT(sp, ch) (CHAR_WIDTH(sp, ch) > 0)
|
||||
#define XCHAR_WIDTH(sp, ch) wcwidth(ch)
|
||||
#define CAN_PRINT(sp, ch) (XCHAR_WIDTH(sp, ch) > 0)
|
||||
#else
|
||||
#define FILE2INT5(sp,buf,n,nlen,w,wlen) \
|
||||
(w = n, wlen = nlen, 0)
|
||||
@ -37,7 +37,7 @@
|
||||
(w = n, wlen = nlen, 0)
|
||||
#define CONST const
|
||||
#define INTISWIDE(c) 0
|
||||
#define CHAR_WIDTH(sp, ch) 1
|
||||
#define XCHAR_WIDTH(sp, ch) 1
|
||||
#define CAN_PRINT(sp, ch) isprint(ch)
|
||||
#endif
|
||||
#define FILE2INT(sp,n,nlen,w,wlen) \
|
||||
|
@ -97,4 +97,8 @@ enum optdisp { NO_DISPLAY, ALL_DISPLAY, CHANGED_DISPLAY, SELECT_DISPLAY };
|
||||
/* Options array. */
|
||||
extern OPTLIST const optlist[];
|
||||
|
||||
#ifdef O_PATH
|
||||
#undef O_PATH /* bits/fcntl-linux.h may have defined O_PATH. */
|
||||
#endif
|
||||
|
||||
#include "options_def.h"
|
||||
|
@ -1,84 +0,0 @@
|
||||
#define O_ALTWERASE 0
|
||||
#define O_AUTOINDENT 1
|
||||
#define O_AUTOPRINT 2
|
||||
#define O_AUTOWRITE 3
|
||||
#define O_BACKUP 4
|
||||
#define O_BEAUTIFY 5
|
||||
#define O_CDPATH 6
|
||||
#define O_CEDIT 7
|
||||
#define O_COLUMNS 8
|
||||
#define O_COMBINED 9
|
||||
#define O_COMMENT 10
|
||||
#define O_TMPDIR 11
|
||||
#define O_EDCOMPATIBLE 12
|
||||
#define O_ERRORBELLS 13
|
||||
#define O_ESCAPETIME 14
|
||||
#define O_EXPANDTAB 15
|
||||
#define O_EXRC 16
|
||||
#define O_EXTENDED 17
|
||||
#define O_FILEC 18
|
||||
#define O_FILEENCODING 19
|
||||
#define O_FLASH 20
|
||||
#define O_HARDTABS 21
|
||||
#define O_ICLOWER 22
|
||||
#define O_IGNORECASE 23
|
||||
#define O_INPUTENCODING 24
|
||||
#define O_KEYTIME 25
|
||||
#define O_LEFTRIGHT 26
|
||||
#define O_LINES 27
|
||||
#define O_LISP 28
|
||||
#define O_LIST 29
|
||||
#define O_LOCKFILES 30
|
||||
#define O_MAGIC 31
|
||||
#define O_MATCHCHARS 32
|
||||
#define O_MATCHTIME 33
|
||||
#define O_MESG 34
|
||||
#define O_MODELINE 35
|
||||
#define O_MSGCAT 36
|
||||
#define O_NOPRINT 37
|
||||
#define O_NUMBER 38
|
||||
#define O_OCTAL 39
|
||||
#define O_OPEN 40
|
||||
#define O_OPTIMIZE 41
|
||||
#define O_PARAGRAPHS 42
|
||||
#define O_PATH 43
|
||||
#define O_PRINT 44
|
||||
#define O_PROMPT 45
|
||||
#define O_READONLY 46
|
||||
#define O_RECDIR 47
|
||||
#define O_REDRAW 48
|
||||
#define O_REMAP 49
|
||||
#define O_REPORT 50
|
||||
#define O_RULER 51
|
||||
#define O_SCROLL 52
|
||||
#define O_SEARCHINCR 53
|
||||
#define O_SECTIONS 54
|
||||
#define O_SECURE 55
|
||||
#define O_SHELL 56
|
||||
#define O_SHELLMETA 57
|
||||
#define O_SHIFTWIDTH 58
|
||||
#define O_SHOWMATCH 59
|
||||
#define O_SHOWMODE 60
|
||||
#define O_SIDESCROLL 61
|
||||
#define O_SLOWOPEN 62
|
||||
#define O_SOURCEANY 63
|
||||
#define O_TABSTOP 64
|
||||
#define O_TAGLENGTH 65
|
||||
#define O_TAGS 66
|
||||
#define O_TERM 67
|
||||
#define O_TERSE 68
|
||||
#define O_TILDEOP 69
|
||||
#define O_TIMEOUT 70
|
||||
#define O_TTYWERASE 71
|
||||
#define O_VERBOSE 72
|
||||
#define O_W1200 73
|
||||
#define O_W300 74
|
||||
#define O_W9600 75
|
||||
#define O_WARN 76
|
||||
#define O_WINDOW 77
|
||||
#define O_WINDOWNAME 78
|
||||
#define O_WRAPLEN 79
|
||||
#define O_WRAPMARGIN 80
|
||||
#define O_WRAPSCAN 81
|
||||
#define O_WRITEANY 82
|
||||
#define O_OPTIONCOUNT 83
|
@ -701,7 +701,13 @@ rcv_read(SCR *sp, FREF *frp)
|
||||
/* If we've found more than one, take the most recent. */
|
||||
(void)fstat(fileno(fp), &sb);
|
||||
if (recp == NULL ||
|
||||
#if defined HAVE_STRUCT_STAT_ST_MTIMESPEC
|
||||
timespeccmp(&rec_mtim, &sb.st_mtimespec, <)) {
|
||||
#elif defined HAVE_STRUCT_STAT_ST_MTIM
|
||||
timespeccmp(&rec_mtim, &sb.st_mtim, <)) {
|
||||
#else
|
||||
rec_mtim.tv_sec < sb.st_mtime) {
|
||||
#endif
|
||||
p = recp;
|
||||
t = pathp;
|
||||
recp = recpath;
|
||||
@ -710,7 +716,13 @@ rcv_read(SCR *sp, FREF *frp)
|
||||
free(p);
|
||||
free(t);
|
||||
}
|
||||
#if defined HAVE_STRUCT_STAT_ST_MTIMESPEC
|
||||
rec_mtim = sb.st_mtimespec;
|
||||
#elif defined HAVE_STRUCT_STAT_ST_MTIM
|
||||
rec_mtim = sb.st_mtim;
|
||||
#else
|
||||
rec_mtim.tv_sec = sb.st_mtime;
|
||||
#endif
|
||||
if (sv_fd != -1)
|
||||
(void)close(sv_fd);
|
||||
sv_fd = dup(fileno(fp));
|
||||
|
3
ex/ex.c
3
ex/ex.c
@ -2266,7 +2266,8 @@ ex_comm_search(CHAR_T *name, size_t len)
|
||||
return (NULL);
|
||||
if (cp->name[0] != name[0])
|
||||
continue;
|
||||
if (!MEMCMP(name, cp->name, len))
|
||||
if (STRLEN(cp->name) >= len &&
|
||||
!MEMCMP(name, cp->name, len))
|
||||
return (cp);
|
||||
}
|
||||
return (NULL);
|
||||
|
@ -261,7 +261,14 @@ cscope_add(SCR *sp, EXCMD *cmdp, CHAR_T *dname)
|
||||
csc->dname = csc->buf;
|
||||
csc->dlen = len;
|
||||
memcpy(csc->dname, np, len);
|
||||
#if defined HAVE_STRUCT_STAT_ST_MTIMESPEC
|
||||
csc->mtim = sb.st_mtimespec;
|
||||
#elif defined HAVE_STRUCT_STAT_ST_MTIM
|
||||
csc->mtim = sb.st_mtim;
|
||||
#else
|
||||
csc->mtim.tv_sec = sb.st_mtime;
|
||||
csc->mtim.tv_nsec = 0;
|
||||
#endif
|
||||
|
||||
/* Get the search paths for the cscope. */
|
||||
if (get_paths(sp, csc))
|
||||
@ -812,8 +819,15 @@ csc_file(SCR *sp, CSC *csc, char *name, char **dirp, size_t *dlenp, int *isolder
|
||||
free(buf);
|
||||
*dirp = *pp;
|
||||
*dlenp = strlen(*pp);
|
||||
#if defined HAVE_STRUCT_STAT_ST_MTIMESPEC
|
||||
*isolderp = timespeccmp(
|
||||
&sb.st_mtimespec, &csc->mtim, <);
|
||||
#elif defined HAVE_STRUCT_STAT_ST_MTIM
|
||||
*isolderp = timespeccmp(
|
||||
&sb.st_mtim, &csc->mtim, <);
|
||||
#else
|
||||
*isolderp = sb.st_mtime < csc->mtim.tv_sec;
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
free(buf);
|
||||
|
76
ex/ex_def.h
76
ex/ex_def.h
@ -1,76 +0,0 @@
|
||||
#define C_SCROLL 0
|
||||
#define C_BANG 1
|
||||
#define C_HASH 2
|
||||
#define C_SUBAGAIN 3
|
||||
#define C_STAR 4
|
||||
#define C_SHIFTL 5
|
||||
#define C_EQUAL 6
|
||||
#define C_SHIFTR 7
|
||||
#define C_AT 8
|
||||
#define C_APPEND 9
|
||||
#define C_ABBR 10
|
||||
#define C_ARGS 11
|
||||
#define C_BG 12
|
||||
#define C_CHANGE 13
|
||||
#define C_CD 14
|
||||
#define C_CHDIR 15
|
||||
#define C_COPY 16
|
||||
#define C_CSCOPE 17
|
||||
#define C_DELETE 18
|
||||
#define C_DISPLAY 19
|
||||
#define C_EDIT 20
|
||||
#define C_EX 21
|
||||
#define C_EXUSAGE 22
|
||||
#define C_FILE 23
|
||||
#define C_FG 24
|
||||
#define C_GLOBAL 25
|
||||
#define C_HELP 26
|
||||
#define C_INSERT 27
|
||||
#define C_JOIN 28
|
||||
#define C_K 29
|
||||
#define C_LIST 30
|
||||
#define C_MOVE 31
|
||||
#define C_MARK 32
|
||||
#define C_MAP 33
|
||||
#define C_MKEXRC 34
|
||||
#define C_NEXT 35
|
||||
#define C_NUMBER 36
|
||||
#define C_OPEN 37
|
||||
#define C_PRINT 38
|
||||
#define C_PRESERVE 39
|
||||
#define C_PREVIOUS 40
|
||||
#define C_PUT 41
|
||||
#define C_QUIT 42
|
||||
#define C_READ 43
|
||||
#define C_RECOVER 44
|
||||
#define C_RESIZE 45
|
||||
#define C_REWIND 46
|
||||
#define C_SUBSTITUTE 47
|
||||
#define C_SCRIPT 48
|
||||
#define C_SET 49
|
||||
#define C_SHELL 50
|
||||
#define C_SOURCE 51
|
||||
#define C_STOP 52
|
||||
#define C_SUSPEND 53
|
||||
#define C_T 54
|
||||
#define C_TAG 55
|
||||
#define C_TAGNEXT 56
|
||||
#define C_TAGPOP 57
|
||||
#define C_TAGPREV 58
|
||||
#define C_TAGTOP 59
|
||||
#define C_UNDO 60
|
||||
#define C_UNABBREVIATE 61
|
||||
#define C_UNMAP 62
|
||||
#define C_V 63
|
||||
#define C_VERSION 64
|
||||
#define C_VISUAL_EX 65
|
||||
#define C_VISUAL_VI 66
|
||||
#define C_VIUSAGE 67
|
||||
#define C_VSPLIT 68
|
||||
#define C_WRITE 69
|
||||
#define C_WN 70
|
||||
#define C_WQ 71
|
||||
#define C_XIT 72
|
||||
#define C_YANK 73
|
||||
#define C_Z 74
|
||||
#define C_SUBTILDE 75
|
131
ex/extern.h
131
ex/extern.h
@ -1,131 +0,0 @@
|
||||
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 *);
|
@ -1 +0,0 @@
|
||||
#define VI_VERSION "2.2.0 (2020-08-01)"
|
50
man/vi.1
50
man/vi.1
@ -1809,7 +1809,8 @@ Display buffers, Cscope connections, screens or tags.
|
||||
.Op Ar +cmd
|
||||
.Op Ar file
|
||||
.Xc
|
||||
Edit a different file.
|
||||
Edit a different file. The capitalized command opens a new screen below the
|
||||
current screen.
|
||||
.Pp
|
||||
.It Xo
|
||||
.Cm exu Ns Op Cm sage
|
||||
@ -1832,7 +1833,8 @@ Display and optionally change the file name.
|
||||
.Xc
|
||||
.Nm vi
|
||||
mode only.
|
||||
Foreground the specified screen.
|
||||
Foreground the specified screen. The capitalized command opens a new screen
|
||||
below the current screen.
|
||||
.Pp
|
||||
.It Xo
|
||||
.Op Ar range
|
||||
@ -1919,7 +1921,8 @@ Write the abbreviations, editor options and maps to the specified
|
||||
.Op Cm !\&
|
||||
.Op Ar
|
||||
.Xc
|
||||
Edit the next file from the argument list.
|
||||
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
|
||||
@ -1940,7 +1943,8 @@ option.
|
||||
.Cm rev Ns Op Cm ious Ns
|
||||
.Op Cm !\&
|
||||
.Xc
|
||||
Edit the previous file from the argument list.
|
||||
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
|
||||
@ -2103,7 +2107,8 @@ character is usually
|
||||
.Op Cm !\&
|
||||
.Ar tagstring
|
||||
.Xc
|
||||
Edit the file containing the specified tag.
|
||||
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
|
||||
@ -2166,15 +2171,15 @@ Enter
|
||||
.Nm vi .
|
||||
.Pp
|
||||
.It Xo
|
||||
.Op Cm Vi Ns
|
||||
.Cm i Ns Op Cm sual Ns
|
||||
.Cm Vi Ns
|
||||
.Op Cm sual Ns
|
||||
.Op Cm !\&
|
||||
.Op Ar +cmd
|
||||
.Op Ar file
|
||||
.Xc
|
||||
.Nm vi
|
||||
mode only.
|
||||
Edit a new file.
|
||||
mode only. Edit a different file by opening a new screen below the current
|
||||
screen.
|
||||
.Pp
|
||||
.It Xo
|
||||
.Cm viu Ns Op Cm sage
|
||||
@ -2185,6 +2190,14 @@ Display usage for a
|
||||
command.
|
||||
.Pp
|
||||
.It Xo
|
||||
.Cm vs Ns Op Cm plit
|
||||
.Op Ar +cmd
|
||||
.Op Ar file
|
||||
.Xc
|
||||
Edit a different file by opening a new screen to the right of the current
|
||||
screen.
|
||||
.Pp
|
||||
.It Xo
|
||||
.Op Ar range
|
||||
.Cm w Ns Op Cm rite Ns
|
||||
.Op Cm !\&
|
||||
@ -2194,8 +2207,7 @@ command.
|
||||
.It Xo
|
||||
.Op Ar range
|
||||
.Cm w Ns Op Cm rite
|
||||
.Op Cm !\&
|
||||
.Op Ar file
|
||||
.Cm !\& Ns Ar shell-command
|
||||
.Xc
|
||||
.It Xo
|
||||
.Op Ar range
|
||||
@ -2209,7 +2221,21 @@ command.
|
||||
.Op >>
|
||||
.Op Ar file
|
||||
.Xc
|
||||
Write the file.
|
||||
Write the entire file, or
|
||||
.Ar range .
|
||||
.Sq !\&
|
||||
overwrites a different, preexisting file.
|
||||
.Sq >>
|
||||
appends to a file that may preexist. Whitespace followed by
|
||||
.Sq !\&
|
||||
pipes the file to
|
||||
.Ar shell-command .
|
||||
.Cm wn
|
||||
moves to the next file if writing succeeds.
|
||||
.Cm wq
|
||||
exits the editor if writing succeeds, unless there are more files to edit;
|
||||
.Sq !\&
|
||||
exits regardless.
|
||||
.Pp
|
||||
.It Xo
|
||||
.Op Ar range
|
||||
|
145
vi/extern.h
145
vi/extern.h
@ -1,145 +0,0 @@
|
||||
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);
|
@ -198,7 +198,7 @@ nonum: msgq(sp, M_ERR, "181|Cursor not in a number");
|
||||
/* If we cross 0, signed numbers lose their sign. */
|
||||
if (lval == 0 && ntype == fmt[SDEC])
|
||||
ntype = fmt[DEC];
|
||||
nlen = SPRINTF(nbuf, sizeof(nbuf), ntype, lval);
|
||||
nlen = SPRINTF(nbuf, SIZE(nbuf), ntype, lval);
|
||||
} else {
|
||||
if ((nret = nget_uslong(&ulval, t, NULL, base)) != NUM_OK)
|
||||
goto err;
|
||||
@ -220,7 +220,7 @@ nonum: msgq(sp, M_ERR, "181|Cursor not in a number");
|
||||
if (base == 16)
|
||||
wlen -= 2;
|
||||
|
||||
nlen = SPRINTF(nbuf, sizeof(nbuf), ntype, wlen, ulval);
|
||||
nlen = SPRINTF(nbuf, SIZE(nbuf), ntype, wlen, ulval);
|
||||
}
|
||||
|
||||
/* Build the new line. */
|
||||
|
@ -427,7 +427,7 @@ empty: (void)gp->scr_addstr(sp,
|
||||
FLUSH;
|
||||
|
||||
/* don't display half a wide character */
|
||||
if (is_partial && CHAR_WIDTH(sp, ch) > 1) {
|
||||
if (is_partial && XCHAR_WIDTH(sp, ch) > 1) {
|
||||
*cbp++ = ' ';
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user