aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arabic.c2
-rw-r--r--src/ascii.h5
-rw-r--r--src/blowfish.c4
-rw-r--r--src/blowfish.h (renamed from src/proto/blowfish.pro)3
-rw-r--r--src/buffer.c35
-rw-r--r--src/buffer.h (renamed from src/proto/buffer.pro)3
-rw-r--r--src/charset.c8
-rw-r--r--src/charset.h (renamed from src/proto/charset.pro)3
-rw-r--r--src/diff.c21
-rw-r--r--src/diff.h (renamed from src/proto/diff.pro)3
-rw-r--r--src/digraph.c13
-rw-r--r--src/digraph.h (renamed from src/proto/digraph.pro)3
-rw-r--r--src/edit.c32
-rw-r--r--src/edit.h (renamed from src/proto/edit.pro)3
-rw-r--r--src/eval.c46
-rw-r--r--src/eval.h (renamed from src/proto/eval.pro)3
-rw-r--r--src/ex_cmds.c39
-rw-r--r--src/ex_cmds.h1267
-rw-r--r--src/ex_cmds2.c27
-rw-r--r--src/ex_cmds2.h (renamed from src/proto/ex_cmds2.pro)3
-rw-r--r--src/ex_cmds_defs.h1191
-rw-r--r--src/ex_docmd.c44
-rw-r--r--src/ex_docmd.h (renamed from src/proto/ex_docmd.pro)3
-rw-r--r--src/ex_eval.c8
-rw-r--r--src/ex_eval.h (renamed from src/proto/ex_eval.pro)3
-rw-r--r--src/ex_getln.c31
-rw-r--r--src/ex_getln.h (renamed from src/proto/ex_getln.pro)3
-rw-r--r--src/farsi.c4
-rw-r--r--src/farsi.h5
-rw-r--r--src/fileio.c31
-rw-r--r--src/fileio.h (renamed from src/proto/fileio.pro)3
-rw-r--r--src/fold.c16
-rw-r--r--src/fold.h (renamed from src/proto/fold.pro)3
-rw-r--r--src/getchar.c21
-rw-r--r--src/getchar.h (renamed from src/proto/getchar.pro)3
-rw-r--r--src/globals.h7
-rw-r--r--src/hangulin.c6
-rw-r--r--src/hangulin.h (renamed from src/proto/hangulin.pro)3
-rw-r--r--src/hardcopy.c19
-rw-r--r--src/hardcopy.h (renamed from src/proto/hardcopy.pro)3
-rw-r--r--src/hashtab.c5
-rw-r--r--src/hashtab.h (renamed from src/proto/hashtab.pro)3
-rw-r--r--src/if_cscope.c17
-rw-r--r--src/if_cscope.h88
-rw-r--r--src/if_cscope_defs.h72
-rw-r--r--src/keymap.h2
-rw-r--r--src/main.c32
-rw-r--r--src/main.h (renamed from src/proto/main.pro)3
-rw-r--r--src/mark.c18
-rw-r--r--src/mark.h (renamed from src/proto/mark.pro)3
-rw-r--r--src/mbyte.c11
-rw-r--r--src/mbyte.h (renamed from src/proto/mbyte.pro)3
-rw-r--r--src/memfile.c8
-rw-r--r--src/memfile.h (renamed from src/proto/memfile.pro)3
-rw-r--r--src/memline.c23
-rw-r--r--src/memline.h (renamed from src/proto/memline.pro)3
-rw-r--r--src/menu.c9
-rw-r--r--src/menu.h (renamed from src/proto/menu.pro)3
-rw-r--r--src/message.c14
-rw-r--r--src/message.h (renamed from src/proto/message.pro)3
-rw-r--r--src/misc1.c31
-rw-r--r--src/misc1.h (renamed from src/proto/misc1.pro)3
-rw-r--r--src/misc2.c22
-rw-r--r--src/misc2.h (renamed from src/proto/misc2.pro)3
-rw-r--r--src/move.c11
-rw-r--r--src/move.h (renamed from src/proto/move.pro)3
-rw-r--r--src/normal.c33
-rw-r--r--src/normal.h (renamed from src/proto/normal.pro)3
-rw-r--r--src/ops.c25
-rw-r--r--src/ops.h (renamed from src/proto/ops.pro)3
-rw-r--r--src/option.c37
-rw-r--r--src/option.h845
-rw-r--r--src/option_defs.h768
-rw-r--r--src/os/fs.c1
-rw-r--r--src/os_unix.c18
-rw-r--r--src/os_unix.h429
-rw-r--r--src/os_unix_defs.h351
-rw-r--r--src/popupmnu.c11
-rw-r--r--src/popupmnu.h (renamed from src/proto/popupmnu.pro)3
-rw-r--r--src/proto.h75
-rw-r--r--src/proto/ex_cmds.pro72
-rw-r--r--src/proto/if_cscope.pro13
-rw-r--r--src/proto/option.pro74
-rw-r--r--src/proto/os_unix.pro75
-rw-r--r--src/proto/regexp.pro24
-rw-r--r--src/proto/term.pro65
-rw-r--r--src/proto/version.pro10
-rw-r--r--src/quickfix.c28
-rw-r--r--src/quickfix.h (renamed from src/proto/quickfix.pro)3
-rw-r--r--src/regexp.c11
-rw-r--r--src/regexp.h179
-rw-r--r--src/regexp_defs.h152
-rw-r--r--src/regexp_nfa.c2
-rw-r--r--src/screen.c31
-rw-r--r--src/screen.h (renamed from src/proto/screen.pro)3
-rw-r--r--src/search.c25
-rw-r--r--src/search.h (renamed from src/proto/search.pro)3
-rw-r--r--src/sha256.c2
-rw-r--r--src/sha256.h (renamed from src/proto/sha256.pro)3
-rw-r--r--src/spell.c31
-rw-r--r--src/spell.h (renamed from src/proto/spell.pro)3
-rw-r--r--src/structs.h4
-rw-r--r--src/syntax.c19
-rw-r--r--src/syntax.h (renamed from src/proto/syntax.pro)3
-rw-r--r--src/tag.c27
-rw-r--r--src/tag.h (renamed from src/proto/tag.pro)3
-rw-r--r--src/term.c19
-rw-r--r--src/term.h224
-rw-r--r--src/term_defs.h156
-rw-r--r--src/ui.c16
-rw-r--r--src/ui.h (renamed from src/proto/ui.pro)3
-rw-r--r--src/undo.c15
-rw-r--r--src/undo.h (renamed from src/proto/undo.pro)3
-rw-r--r--src/version.c9
-rw-r--r--src/version.h53
-rw-r--r--src/version_defs.h40
-rw-r--r--src/vim.h16
-rw-r--r--src/window.c32
-rw-r--r--src/window.h (renamed from src/proto/window.pro)3
119 files changed, 4199 insertions, 3183 deletions
diff --git a/src/arabic.c b/src/arabic.c
index 3aec35aba3..5359b83a43 100644
--- a/src/arabic.c
+++ b/src/arabic.c
@@ -7,6 +7,8 @@
* See README.txt for an overview of the Vim source code.
*/
+#include "arabic.h"
+
/*
* arabic.c: functions for Arabic language
*
diff --git a/src/ascii.h b/src/ascii.h
index 0904521ccf..50ca04f443 100644
--- a/src/ascii.h
+++ b/src/ascii.h
@@ -6,6 +6,9 @@
* Do ":help credits" in Vim to see a list of people who contributed.
*/
+#ifndef NEOVIM_ASCII_H
+#define NEOVIM_ASCII_H
+
/*
* Definitions of various common control characters.
* For EBCDIC we have to use different values.
@@ -94,3 +97,5 @@
# define PATHSEP '/'
# define PATHSEPSTR "/"
#endif
+
+#endif /* NEOVIM_ASCII_H */
diff --git a/src/blowfish.c b/src/blowfish.c
index df820d1152..d7074bd42c 100644
--- a/src/blowfish.c
+++ b/src/blowfish.c
@@ -12,7 +12,9 @@
*/
#include "vim.h"
-
+#include "blowfish.h"
+#include "message.h"
+#include "sha256.h"
#define ARRAY_LENGTH(A) (sizeof(A)/sizeof(A[0]))
diff --git a/src/proto/blowfish.pro b/src/blowfish.h
index 51e4fa9ec5..d4d8f36429 100644
--- a/src/proto/blowfish.pro
+++ b/src/blowfish.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_BLOWFISH_H
+#define NEOVIM_BLOWFISH_H
/* blowfish.c */
void bf_key_init __ARGS((char_u *password, char_u *salt, int salt_len));
void bf_ofb_init __ARGS((char_u *iv, int iv_len));
@@ -8,3 +10,4 @@ void bf_crypt_save __ARGS((void));
void bf_crypt_restore __ARGS((void));
int blowfish_self_test __ARGS((void));
/* vim: set ft=c : */
+#endif /* NEOVIM_BLOWFISH_H */
diff --git a/src/buffer.c b/src/buffer.c
index de1af62307..401dc40333 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -26,6 +26,39 @@
*/
#include "vim.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "digraph.h"
+#include "eval.h"
+#include "ex_cmds2.h"
+#include "ex_cmds.h"
+#include "ex_docmd.h"
+#include "ex_eval.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "hashtab.h"
+#include "main.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "spell.h"
+#include "syntax.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
static char_u *buflist_match __ARGS((regprog_T *prog, buf_T *buf));
# define HAVE_BUFLIST_MATCH
@@ -4111,7 +4144,7 @@ void do_modelines(int flags)
--entered;
}
-#include "version.h" /* for version number */
+#include "version_defs.h" /* for version number */
/*
* chk_modeline() - check a single line for a mode string
diff --git a/src/proto/buffer.pro b/src/buffer.h
index 060008db77..3ca525612d 100644
--- a/src/proto/buffer.pro
+++ b/src/buffer.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_BUFFER_H
+#define NEOVIM_BUFFER_H
/* buffer.c */
int open_buffer __ARGS((int read_stdin, exarg_T *eap, int flags));
int buf_valid __ARGS((buf_T *buf));
@@ -79,3 +81,4 @@ void set_buflisted __ARGS((int on));
int buf_contents_changed __ARGS((buf_T *buf));
void wipe_buffer __ARGS((buf_T *buf, int aucmd));
/* vim: set ft=c : */
+#endif /* NEOVIM_BUFFER_H */
diff --git a/src/charset.c b/src/charset.c
index 1cc1a79a6f..271df2c7f4 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -8,6 +8,14 @@
*/
#include "vim.h"
+#include "charset.h"
+#include "main.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "os_unix.h"
static int win_chartabsize __ARGS((win_T *wp, char_u *p, colnr_T col));
diff --git a/src/proto/charset.pro b/src/charset.h
index d0223f1e9c..d680522880 100644
--- a/src/proto/charset.pro
+++ b/src/charset.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_CHARSET_H
+#define NEOVIM_CHARSET_H
/* charset.c */
int init_chartab __ARGS((void));
int buf_init_chartab __ARGS((buf_T *buf, int global));
@@ -62,3 +64,4 @@ void backslash_halve __ARGS((char_u *p));
char_u *backslash_halve_save __ARGS((char_u *p));
void ebcdic2ascii __ARGS((char_u *buffer, int len));
/* vim: set ft=c : */
+#endif /* NEOVIM_CHARSET_H */
diff --git a/src/diff.c b/src/diff.c
index 166b40ee0c..626271a7b5 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -12,9 +12,28 @@
*/
#include "vim.h"
+#include "diff.h"
+#include "buffer.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_docmd.h"
+#include "fileio.h"
+#include "fold.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "screen.h"
+#include "undo.h"
+#include "window.h"
#include "os/os.h"
-
static int diff_busy = FALSE; /* ex_diffgetput() is busy */
/* flags obtained from the 'diffopt' option */
diff --git a/src/proto/diff.pro b/src/diff.h
index 0093629033..5a2d32204e 100644
--- a/src/proto/diff.pro
+++ b/src/diff.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_DIFF_H
+#define NEOVIM_DIFF_H
/* diff.c */
void diff_buf_delete __ARGS((buf_T *buf));
void diff_buf_adjust __ARGS((win_T *win));
@@ -28,3 +30,4 @@ linenr_T diff_get_corresponding_line __ARGS((buf_T *buf1, linenr_T lnum1,
linenr_T lnum3));
linenr_T diff_lnum_win __ARGS((linenr_T lnum, win_T *wp));
/* vim: set ft=c : */
+#endif /* NEOVIM_DIFF_H */
diff --git a/src/digraph.c b/src/digraph.c
index 4a1e1e4d04..9a58058fde 100644
--- a/src/digraph.c
+++ b/src/digraph.c
@@ -12,7 +12,18 @@
*/
#include "vim.h"
-
+#include "digraph.h"
+#include "charset.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_getln.h"
+#include "getchar.h"
+#include "mbyte.h"
+#include "message.h"
+#include "misc2.h"
+#include "normal.h"
+#include "screen.h"
+#include "ui.h"
typedef int result_T;
diff --git a/src/proto/digraph.pro b/src/digraph.h
index 5573b8c36d..c74e428979 100644
--- a/src/proto/digraph.pro
+++ b/src/digraph.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_DIGRAPH_H
+#define NEOVIM_DIGRAPH_H
/* digraph.c */
int do_digraph __ARGS((int c));
int get_digraph __ARGS((int cmdline));
@@ -7,3 +9,4 @@ void listdigraphs __ARGS((void));
char_u *keymap_init __ARGS((void));
void ex_loadkeymap __ARGS((exarg_T *eap));
/* vim: set ft=c : */
+#endif /* NEOVIM_DIGRAPH_H */
diff --git a/src/edit.c b/src/edit.c
index eec47b3637..6ac6565d40 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -12,6 +12,38 @@
*/
#include "vim.h"
+#include "edit.h"
+#include "buffer.h"
+#include "charset.h"
+#include "digraph.h"
+#include "eval.h"
+#include "ex_docmd.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "main.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "ops.h"
+#include "option.h"
+#include "popupmnu.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "spell.h"
+#include "syntax.h"
+#include "tag.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
/*
* definitions used for CTRL-X submode
diff --git a/src/proto/edit.pro b/src/edit.h
index 0284101df4..aa2b72d93b 100644
--- a/src/proto/edit.pro
+++ b/src/edit.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_EDIT_H
+#define NEOVIM_EDIT_H
/* edit.c */
int edit __ARGS((int cmdchar, int startln, long count));
void edit_putchar __ARGS((int c, int highlight));
@@ -44,3 +46,4 @@ void ins_scroll __ARGS((void));
void ins_horscroll __ARGS((void));
int ins_copychar __ARGS((linenr_T lnum));
/* vim: set ft=c : */
+#endif /* NEOVIM_EDIT_H */
diff --git a/src/eval.c b/src/eval.c
index 51519bb899..4d120c82ce 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -12,12 +12,48 @@
*/
#include "vim.h"
+#include "eval.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "edit.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_eval.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "hashtab.h"
+#include "if_cscope.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "ops.h"
+#include "option.h"
+#include "os_unix.h"
+#include "popupmnu.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "sha256.h"
+#include "spell.h"
+#include "syntax.h"
+#include "tag.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "version.h"
+#include "window.h"
#include "os/os.h"
-
-
-
-
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
# include <math.h>
#endif
@@ -264,7 +300,7 @@ typedef struct {
* The reason to use this table anyway is for very quick access to the
* variables with the VV_ defines.
*/
-#include "version.h"
+#include "version_defs.h"
/* values for vv_flags: */
#define VV_COMPAT 1 /* compatible, also used without "v:" */
diff --git a/src/proto/eval.pro b/src/eval.h
index c0f707cab2..d63ea3dd8b 100644
--- a/src/proto/eval.pro
+++ b/src/eval.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_EVAL_H
+#define NEOVIM_EVAL_H
/* eval.c */
void eval_init __ARGS((void));
void eval_clear __ARGS((void));
@@ -148,3 +150,4 @@ int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u *
char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub,
char_u *flags));
/* vim: set ft=c : */
+#endif /* NEOVIM_EVAL_H */
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 2570335f66..5a28167ddb 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -12,7 +12,44 @@
*/
#include "vim.h"
-#include "version.h"
+#include "version_defs.h"
+#include "ex_cmds.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "digraph.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_eval.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "main.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "ops.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "spell.h"
+#include "syntax.h"
+#include "tag.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
static int linelen __ARGS((int *has_tab));
static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap,
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index a560789fef..4bb11ea20c 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -1,1191 +1,76 @@
-/* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- */
-
-/*
- * This file defines the Ex commands.
- * When DO_DECLARE_EXCMD is defined, the table with ex command names and
- * options results.
- * When DO_DECLARE_EXCMD is NOT defined, the enum with all the Ex commands
- * results.
- * This clever trick was invented by Ron Aaron.
- */
-
-/*
- * When adding an Ex command:
- * 1. Add an entry in the table below. Keep it sorted on the shortest
- * version of the command name that works. If it doesn't start with a
- * lower case letter, add it at the end.
- * 2. Add a "case: CMD_xxx" in the big switch in ex_docmd.c.
- * 3. Add an entry in the index for Ex commands at ":help ex-cmd-index".
- * 4. Add documentation in ../doc/xxx.txt. Add a tag for both the short and
- * long name of the command.
- */
-
-#ifdef RANGE
-# undef RANGE /* SASC on Amiga defines it */
-#endif
-
-#define RANGE 0x001 /* allow a linespecs */
-#define BANG 0x002 /* allow a ! after the command name */
-#define EXTRA 0x004 /* allow extra args after command name */
-#define XFILE 0x008 /* expand wildcards in extra part */
-#define NOSPC 0x010 /* no spaces allowed in the extra part */
-#define DFLALL 0x020 /* default file range is 1,$ */
-#define WHOLEFOLD 0x040 /* extend range to include whole fold also
- when less than two numbers given */
-#define NEEDARG 0x080 /* argument required */
-#define TRLBAR 0x100 /* check for trailing vertical bar */
-#define REGSTR 0x200 /* allow "x for register designation */
-#define COUNT 0x400 /* allow count in argument, after command */
-#define NOTRLCOM 0x800 /* no trailing comment allowed */
-#define ZEROR 0x1000 /* zero line number allowed */
-#define USECTRLV 0x2000 /* do not remove CTRL-V from argument */
-#define NOTADR 0x4000 /* number before command is not an address */
-#define EDITCMD 0x8000 /* allow "+command" argument */
-#define BUFNAME 0x10000L /* accepts buffer name */
-#define BUFUNL 0x20000L /* accepts unlisted buffer too */
-#define ARGOPT 0x40000L /* allow "++opt=val" argument */
-#define SBOXOK 0x80000L /* allowed in the sandbox */
-#define CMDWIN 0x100000L /* allowed in cmdline window */
-#define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */
-#define EXFLAGS 0x400000L /* allow flags after count in argument */
-#define FILES (XFILE | EXTRA) /* multiple extra files allowed */
-#define WORD1 (EXTRA | NOSPC) /* one extra word allowed */
-#define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */
-
-#ifndef DO_DECLARE_EXCMD
-typedef struct exarg exarg_T;
-#endif
-
-/*
- * This array maps ex command names to command codes.
- * The order in which command names are listed below is significant --
- * ambiguous abbreviations are always resolved to be the first possible match
- * (e.g. "r" is taken to mean "read", not "rewind", because "read" comes
- * before "rewind").
- * Not supported commands are included to avoid ambiguities.
- */
-#ifdef EX
-# undef EX /* just in case */
-#endif
-#ifdef DO_DECLARE_EXCMD
-# define EX(a, b, c, d) {(char_u *)b, c, (long_u)(d)}
-
-typedef void (*ex_func_T) __ARGS ((exarg_T *eap));
-
-static struct cmdname {
- char_u *cmd_name; /* name of the command */
- ex_func_T cmd_func; /* function for this command */
- long_u cmd_argt; /* flags declared above */
-}
-cmdnames[] =
-#else
-# define EX(a, b, c, d) a
-enum CMD_index
-#endif
-{
- EX(CMD_append, "append", ex_append,
- BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_abbreviate, "abbreviate", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_abclear, "abclear", ex_abclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_all, "all", ex_all,
- BANG|RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_amenu, "amenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_anoremenu, "anoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_args, "args", ex_args,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_argadd, "argadd", ex_argadd,
- BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR),
- EX(CMD_argdelete, "argdelete", ex_argdelete,
- BANG|RANGE|NOTADR|FILES|TRLBAR),
- EX(CMD_argdo, "argdo", ex_listdo,
- BANG|NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_argedit, "argedit", ex_argedit,
- BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_argglobal, "argglobal", ex_args,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_arglocal, "arglocal", ex_args,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_argument, "argument", ex_argument,
- BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_ascii, "ascii", do_ascii,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_autocmd, "autocmd", ex_autocmd,
- BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_augroup, "augroup", ex_autocmd,
- BANG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_aunmenu, "aunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_buffer, "buffer", ex_buffer,
- BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR),
- EX(CMD_bNext, "bNext", ex_bprevious,
- BANG|RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_ball, "ball", ex_buffer_all,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_badd, "badd", ex_edit,
- NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN),
- EX(CMD_bdelete, "bdelete", ex_bunload,
- BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
- EX(CMD_behave, "behave", ex_behave,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_belowright, "belowright", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_bfirst, "bfirst", ex_brewind,
- BANG|RANGE|NOTADR|TRLBAR),
- EX(CMD_blast, "blast", ex_blast,
- BANG|RANGE|NOTADR|TRLBAR),
- EX(CMD_bmodified, "bmodified", ex_bmodified,
- BANG|RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_bnext, "bnext", ex_bnext,
- BANG|RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_botright, "botright", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_bprevious, "bprevious", ex_bprevious,
- BANG|RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_brewind, "brewind", ex_brewind,
- BANG|RANGE|NOTADR|TRLBAR),
- EX(CMD_break, "break", ex_break,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_breakadd, "breakadd", ex_breakadd,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_breakdel, "breakdel", ex_breakdel,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_breaklist, "breaklist", ex_breaklist,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_browse, "browse", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM|CMDWIN),
- EX(CMD_buffers, "buffers", buflist_list,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_bufdo, "bufdo", ex_listdo,
- BANG|NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_bunload, "bunload", ex_bunload,
- BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
- EX(CMD_bwipeout, "bwipeout", ex_bunload,
- BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR),
- EX(CMD_change, "change", ex_change,
- BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_cNext, "cNext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cNfile, "cNfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cabbrev, "cabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cabclear, "cabclear", ex_abclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_caddbuffer, "caddbuffer", ex_cbuffer,
- RANGE|NOTADR|WORD1|TRLBAR),
- EX(CMD_caddexpr, "caddexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR),
- EX(CMD_caddfile, "caddfile", ex_cfile,
- TRLBAR|FILE1),
- EX(CMD_call, "call", ex_call,
- RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_catch, "catch", ex_catch,
- EXTRA|SBOXOK|CMDWIN),
- EX(CMD_cbuffer, "cbuffer", ex_cbuffer,
- BANG|RANGE|NOTADR|WORD1|TRLBAR),
- EX(CMD_cc, "cc", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cclose, "cclose", ex_cclose,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_cd, "cd", ex_cd,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_center, "center", ex_align,
- TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
- EX(CMD_cexpr, "cexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG),
- EX(CMD_cfile, "cfile", ex_cfile,
- TRLBAR|FILE1|BANG),
- EX(CMD_cfirst, "cfirst", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cgetfile, "cgetfile", ex_cfile,
- TRLBAR|FILE1),
- EX(CMD_cgetbuffer, "cgetbuffer", ex_cbuffer,
- RANGE|NOTADR|WORD1|TRLBAR),
- EX(CMD_cgetexpr, "cgetexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR),
- EX(CMD_chdir, "chdir", ex_cd,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_changes, "changes", ex_changes,
- TRLBAR|CMDWIN),
- EX(CMD_checkpath, "checkpath", ex_checkpath,
- TRLBAR|BANG|CMDWIN),
- EX(CMD_checktime, "checktime", ex_checktime,
- RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
- EX(CMD_clist, "clist", qf_list,
- BANG|EXTRA|TRLBAR|CMDWIN),
- EX(CMD_clast, "clast", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_close, "close", ex_close,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_cmap, "cmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cmapclear, "cmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_cmenu, "cmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cnext, "cnext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cnewer, "cnewer", qf_age,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_cnfile, "cnfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cnoremap, "cnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cnoreabbrev, "cnoreabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cnoremenu, "cnoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_copy, "copy", ex_copymove,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_colder, "colder", qf_age,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_colorscheme, "colorscheme", ex_colorscheme,
- WORD1|TRLBAR|CMDWIN),
- EX(CMD_command, "command", ex_command,
- EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_comclear, "comclear", ex_comclear,
- TRLBAR|CMDWIN),
- EX(CMD_compiler, "compiler", ex_compiler,
- BANG|TRLBAR|WORD1|CMDWIN),
- EX(CMD_continue, "continue", ex_continue,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_confirm, "confirm", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM|CMDWIN),
- EX(CMD_copen, "copen", ex_copen,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_cprevious, "cprevious", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cpfile, "cpfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cquit, "cquit", ex_cquit,
- TRLBAR|BANG),
- EX(CMD_crewind, "crewind", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_cscope, "cscope", do_cscope,
- EXTRA|NOTRLCOM|XFILE),
- EX(CMD_cstag, "cstag", do_cstag,
- BANG|TRLBAR|WORD1),
- EX(CMD_cunmap, "cunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cunabbrev, "cunabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cunmenu, "cunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_cwindow, "cwindow", ex_cwindow,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_delete, "delete", ex_operators,
- RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_delmarks, "delmarks", ex_delmarks,
- BANG|EXTRA|TRLBAR|CMDWIN),
- EX(CMD_debug, "debug", ex_debug,
- NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_debuggreedy, "debuggreedy", ex_debuggreedy,
- RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN),
- EX(CMD_delcommand, "delcommand", ex_delcommand,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_delfunction, "delfunction", ex_delfunction,
- NEEDARG|WORD1|CMDWIN),
- EX(CMD_display, "display", ex_display,
- EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
- BANG|TRLBAR),
- EX(CMD_diffget, "diffget", ex_diffgetput,
- RANGE|EXTRA|TRLBAR|MODIFY),
- EX(CMD_diffoff, "diffoff", ex_diffoff,
- BANG|TRLBAR),
- EX(CMD_diffpatch, "diffpatch", ex_diffpatch,
- EXTRA|FILE1|TRLBAR|MODIFY),
- EX(CMD_diffput, "diffput", ex_diffgetput,
- RANGE|EXTRA|TRLBAR),
- EX(CMD_diffsplit, "diffsplit", ex_diffsplit,
- EXTRA|FILE1|TRLBAR),
- EX(CMD_diffthis, "diffthis", ex_diffthis,
- TRLBAR),
- EX(CMD_digraphs, "digraphs", ex_digraphs,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_djump, "djump", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
- EX(CMD_dlist, "dlist", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
- EX(CMD_doautocmd, "doautocmd", ex_doautocmd,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_doautoall, "doautoall", ex_doautoall,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_drop, "drop", ex_drop,
- FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR),
- EX(CMD_dsearch, "dsearch", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
- EX(CMD_dsplit, "dsplit", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
- EX(CMD_edit, "edit", ex_edit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_earlier, "earlier", ex_later,
- TRLBAR|EXTRA|NOSPC|CMDWIN),
- EX(CMD_echo, "echo", ex_echo,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_echoerr, "echoerr", ex_execute,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_echohl, "echohl", ex_echohl,
- EXTRA|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_echomsg, "echomsg", ex_execute,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_echon, "echon", ex_echo,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_else, "else", ex_else,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_elseif, "elseif", ex_else,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_emenu, "emenu", ex_emenu,
- NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN),
- EX(CMD_endif, "endif", ex_endif,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_endfunction, "endfunction", ex_endfunction,
- TRLBAR|CMDWIN),
- EX(CMD_endfor, "endfor", ex_endwhile,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_endtry, "endtry", ex_endtry,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_endwhile, "endwhile", ex_endwhile,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_enew, "enew", ex_edit,
- BANG|TRLBAR),
- EX(CMD_ex, "ex", ex_edit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_execute, "execute", ex_execute,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_exit, "exit", ex_exit,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
- EX(CMD_exusage, "exusage", ex_exusage,
- TRLBAR),
- EX(CMD_file, "file", ex_file,
- RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR),
- EX(CMD_files, "files", buflist_list,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_filetype, "filetype", ex_filetype,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_find, "find", ex_find,
- RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_finally, "finally", ex_finally,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_finish, "finish", ex_finish,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_first, "first", ex_rewind,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_fixdel, "fixdel", do_fixdel,
- TRLBAR|CMDWIN),
- EX(CMD_fold, "fold", ex_fold,
- RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_foldclose, "foldclose", ex_foldopen,
- RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_folddoopen, "folddoopen", ex_folddo,
- RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_folddoclosed, "folddoclosed", ex_folddo,
- RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_foldopen, "foldopen", ex_foldopen,
- RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_for, "for", ex_while,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_function, "function", ex_function,
- EXTRA|BANG|CMDWIN),
- EX(CMD_global, "global", ex_global,
- RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN),
- EX(CMD_goto, "goto", ex_goto,
- RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_grep, "grep", ex_make,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_grepadd, "grepadd", ex_make,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_gui, "gui", ex_gui,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN),
- EX(CMD_gvim, "gvim", ex_gui,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN),
- EX(CMD_help, "help", ex_help,
- BANG|EXTRA|NOTRLCOM),
- EX(CMD_helpfind, "helpfind", ex_helpfind,
- EXTRA|NOTRLCOM),
- EX(CMD_helpgrep, "helpgrep", ex_helpgrep,
- EXTRA|NOTRLCOM|NEEDARG),
- EX(CMD_helptags, "helptags", ex_helptags,
- NEEDARG|FILES|TRLBAR|CMDWIN),
- EX(CMD_hardcopy, "hardcopy", ex_hardcopy,
- RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG),
- EX(CMD_highlight, "highlight", ex_highlight,
- BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_hide, "hide", ex_hide,
- BANG|EXTRA|NOTRLCOM),
- EX(CMD_history, "history", ex_history,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_insert, "insert", ex_append,
- BANG|RANGE|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_iabbrev, "iabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_iabclear, "iabclear", ex_abclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_if, "if", ex_if,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_ijump, "ijump", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
- EX(CMD_ilist, "ilist", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
- EX(CMD_imap, "imap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_imapclear, "imapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_imenu, "imenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_inoremap, "inoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_inoreabbrev, "inoreabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_inoremenu, "inoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_intro, "intro", ex_intro,
- TRLBAR|CMDWIN),
- EX(CMD_isearch, "isearch", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
- EX(CMD_isplit, "isplit", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
- EX(CMD_iunmap, "iunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_iunabbrev, "iunabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_iunmenu, "iunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_join, "join", ex_join,
- BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_jumps, "jumps", ex_jumps,
- TRLBAR|CMDWIN),
- EX(CMD_k, "k", ex_mark,
- RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_keepalt, "keepalt", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_list, "list", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
- EX(CMD_lNext, "lNext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_lNfile, "lNfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_last, "last", ex_last,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_language, "language", ex_language,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_laddexpr, "laddexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR),
- EX(CMD_laddbuffer, "laddbuffer", ex_cbuffer,
- RANGE|NOTADR|WORD1|TRLBAR),
- EX(CMD_laddfile, "laddfile", ex_cfile,
- TRLBAR|FILE1),
- EX(CMD_later, "later", ex_later,
- TRLBAR|EXTRA|NOSPC|CMDWIN),
- EX(CMD_lbuffer, "lbuffer", ex_cbuffer,
- BANG|RANGE|NOTADR|WORD1|TRLBAR),
- EX(CMD_lcd, "lcd", ex_cd,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_lchdir, "lchdir", ex_cd,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_lclose, "lclose", ex_cclose,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_lcscope, "lcscope", do_cscope,
- EXTRA|NOTRLCOM|XFILE),
- EX(CMD_left, "left", ex_align,
- TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
- EX(CMD_leftabove, "leftabove", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_let, "let", ex_let,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_lexpr, "lexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG),
- EX(CMD_lfile, "lfile", ex_cfile,
- TRLBAR|FILE1|BANG),
- EX(CMD_lfirst, "lfirst", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_lgetfile, "lgetfile", ex_cfile,
- TRLBAR|FILE1),
- EX(CMD_lgetbuffer, "lgetbuffer", ex_cbuffer,
- RANGE|NOTADR|WORD1|TRLBAR),
- EX(CMD_lgetexpr, "lgetexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR),
- EX(CMD_lgrep, "lgrep", ex_make,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_lgrepadd, "lgrepadd", ex_make,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_lhelpgrep, "lhelpgrep", ex_helpgrep,
- EXTRA|NOTRLCOM|NEEDARG),
- EX(CMD_ll, "ll", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_llast, "llast", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_llist, "llist", qf_list,
- BANG|EXTRA|TRLBAR|CMDWIN),
- EX(CMD_lmap, "lmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_lmapclear, "lmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_lmake, "lmake", ex_make,
- BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_lnoremap, "lnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_lnext, "lnext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_lnewer, "lnewer", qf_age,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_lnfile, "lnfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_loadview, "loadview", ex_loadview,
- FILE1|TRLBAR),
- EX(CMD_loadkeymap, "loadkeymap", ex_loadkeymap,
- CMDWIN),
- EX(CMD_lockmarks, "lockmarks", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_lockvar, "lockvar", ex_lockvar,
- BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
- EX(CMD_lolder, "lolder", qf_age,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_lopen, "lopen", ex_copen,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_lprevious, "lprevious", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_lpfile, "lpfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_lrewind, "lrewind", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
- EX(CMD_ltag, "ltag", ex_tag,
- NOTADR|TRLBAR|BANG|WORD1),
- EX(CMD_lua, "lua", ex_lua,
- RANGE|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_luado, "luado", ex_luado,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_luafile, "luafile", ex_luafile,
- RANGE|FILE1|NEEDARG|CMDWIN),
- EX(CMD_lunmap, "lunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_lvimgrep, "lvimgrep", ex_vimgrep,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_lvimgrepadd, "lvimgrepadd", ex_vimgrep,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_lwindow, "lwindow", ex_cwindow,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_ls, "ls", buflist_list,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_move, "move", ex_copymove,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_mark, "mark", ex_mark,
- RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_make, "make", ex_make,
- BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_map, "map", ex_map,
- BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_mapclear, "mapclear", ex_mapclear,
- EXTRA|BANG|TRLBAR|CMDWIN),
- EX(CMD_marks, "marks", do_marks,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_match, "match", ex_match,
- RANGE|NOTADR|EXTRA|CMDWIN),
- EX(CMD_menu, "menu", ex_menu,
- RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_menutranslate, "menutranslate", ex_menutranslate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_messages, "messages", ex_messages,
- TRLBAR|CMDWIN),
- EX(CMD_mkexrc, "mkexrc", ex_mkrc,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_mksession, "mksession", ex_mkrc,
- BANG|FILE1|TRLBAR),
- EX(CMD_mkspell, "mkspell", ex_mkspell,
- BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_mkvimrc, "mkvimrc", ex_mkrc,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_mkview, "mkview", ex_mkrc,
- BANG|FILE1|TRLBAR),
- EX(CMD_mode, "mode", ex_mode,
- WORD1|TRLBAR|CMDWIN),
- EX(CMD_mzscheme, "mzscheme", ex_mzscheme,
- RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK),
- EX(CMD_mzfile, "mzfile", ex_mzfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
- EX(CMD_next, "next", ex_next,
- RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_nbkey, "nbkey", ex_nbkey,
- EXTRA|NOTADR|NEEDARG),
- EX(CMD_nbclose, "nbclose", ex_nbclose,
- TRLBAR|CMDWIN),
- EX(CMD_nbstart, "nbstart", ex_nbstart,
- WORD1|TRLBAR|CMDWIN),
- EX(CMD_new, "new", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_nmap, "nmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_nmapclear, "nmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_nmenu, "nmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_nnoremap, "nnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_nnoremenu, "nnoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_noremap, "noremap", ex_map,
- BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_noremenu, "noremenu", ex_menu,
- RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_normal, "normal", ex_normal,
- RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN),
- EX(CMD_number, "number", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
- EX(CMD_nunmap, "nunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_nunmenu, "nunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_open, "open", ex_open,
- RANGE|BANG|EXTRA),
- EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
- BANG|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_omap, "omap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_omapclear, "omapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_omenu, "omenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_only, "only", ex_only,
- BANG|TRLBAR),
- EX(CMD_onoremap, "onoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_onoremenu, "onoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_options, "options", ex_options,
- TRLBAR),
- EX(CMD_ounmap, "ounmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_ounmenu, "ounmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_ownsyntax, "ownsyntax", ex_ownsyntax,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_print, "print", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK),
- EX(CMD_pclose, "pclose", ex_pclose,
- BANG|TRLBAR),
- EX(CMD_perl, "perl", ex_perl,
- RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN),
- EX(CMD_perldo, "perldo", ex_perldo,
- RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN),
- EX(CMD_pedit, "pedit", ex_pedit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_pop, "pop", ex_tag,
- RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR),
- EX(CMD_popup, "popup", ex_popup,
- NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN),
- EX(CMD_ppop, "ppop", ex_ptag,
- RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR),
- EX(CMD_preserve, "preserve", ex_preserve,
- TRLBAR),
- EX(CMD_previous, "previous", ex_previous,
- EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_promptfind, "promptfind", gui_mch_find_dialog,
- EXTRA|NOTRLCOM|CMDWIN),
- EX(CMD_promptrepl, "promptrepl", gui_mch_replace_dialog,
- EXTRA|NOTRLCOM|CMDWIN),
- EX(CMD_profile, "profile", ex_profile,
- BANG|EXTRA|TRLBAR|CMDWIN),
- EX(CMD_profdel, "profdel", ex_breakdel,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_psearch, "psearch", ex_psearch,
- BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA),
- EX(CMD_ptag, "ptag", ex_ptag,
- RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
- EX(CMD_ptNext, "ptNext", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_ptfirst, "ptfirst", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_ptjump, "ptjump", ex_ptag,
- BANG|TRLBAR|WORD1),
- EX(CMD_ptlast, "ptlast", ex_ptag,
- BANG|TRLBAR),
- EX(CMD_ptnext, "ptnext", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_ptprevious, "ptprevious", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_ptrewind, "ptrewind", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_ptselect, "ptselect", ex_ptag,
- BANG|TRLBAR|WORD1),
- EX(CMD_put, "put", ex_put,
- RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY),
- EX(CMD_pwd, "pwd", ex_pwd,
- TRLBAR|CMDWIN),
- EX(CMD_python, "python", ex_python,
- RANGE|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_pydo, "pydo", ex_pydo,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_pyfile, "pyfile", ex_pyfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
- EX(CMD_py3, "py3", ex_py3,
- RANGE|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_py3do, "py3do", ex_py3do,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_python3, "python3", ex_py3,
- RANGE|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_py3file, "py3file", ex_py3file,
- RANGE|FILE1|NEEDARG|CMDWIN),
- EX(CMD_quit, "quit", ex_quit,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_quitall, "quitall", ex_quit_all,
- BANG|TRLBAR),
- EX(CMD_qall, "qall", ex_quit_all,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_read, "read", ex_read,
- BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY),
- EX(CMD_recover, "recover", ex_recover,
- BANG|FILE1|TRLBAR),
- EX(CMD_redo, "redo", ex_redo,
- TRLBAR|CMDWIN),
- EX(CMD_redir, "redir", ex_redir,
- BANG|FILES|TRLBAR|CMDWIN),
- EX(CMD_redraw, "redraw", ex_redraw,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_redrawstatus, "redrawstatus", ex_redrawstatus,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_registers, "registers", ex_display,
- EXTRA|NOTRLCOM|TRLBAR|CMDWIN),
- EX(CMD_resize, "resize", ex_resize,
- RANGE|NOTADR|TRLBAR|WORD1),
- EX(CMD_retab, "retab", ex_retab,
- TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY),
- EX(CMD_return, "return", ex_return,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_rewind, "rewind", ex_rewind,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_right, "right", ex_align,
- TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
- EX(CMD_rightbelow, "rightbelow", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_runtime, "runtime", ex_runtime,
- BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_ruby, "ruby", ex_ruby,
- RANGE|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_rubydo, "rubydo", ex_rubydo,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_rubyfile, "rubyfile", ex_rubyfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
- EX(CMD_rundo, "rundo", ex_rundo,
- NEEDARG|FILE1),
- EX(CMD_rviminfo, "rviminfo", ex_viminfo,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_substitute, "substitute", do_sub,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN),
- EX(CMD_sNext, "sNext", ex_previous,
- EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_sargument, "sargument", ex_argument,
- BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_sall, "sall", ex_all,
- BANG|RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_saveas, "saveas", ex_write,
- BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR),
- EX(CMD_sbuffer, "sbuffer", ex_buffer,
- BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR),
- EX(CMD_sbNext, "sbNext", ex_bprevious,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sball, "sball", ex_buffer_all,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sbfirst, "sbfirst", ex_brewind,
- TRLBAR),
- EX(CMD_sblast, "sblast", ex_blast,
- TRLBAR),
- EX(CMD_sbmodified, "sbmodified", ex_bmodified,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sbnext, "sbnext", ex_bnext,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sbprevious, "sbprevious", ex_bprevious,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sbrewind, "sbrewind", ex_brewind,
- TRLBAR),
- EX(CMD_scriptnames, "scriptnames", ex_scriptnames,
- TRLBAR|CMDWIN),
- EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding,
- WORD1|TRLBAR|CMDWIN),
- EX(CMD_scscope, "scscope", do_scscope,
- EXTRA|NOTRLCOM),
- EX(CMD_set, "set", ex_set,
- TRLBAR|EXTRA|CMDWIN|SBOXOK),
- EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
- TRLBAR|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_setglobal, "setglobal", ex_set,
- TRLBAR|EXTRA|CMDWIN|SBOXOK),
- EX(CMD_setlocal, "setlocal", ex_set,
- TRLBAR|EXTRA|CMDWIN|SBOXOK),
- EX(CMD_sfind, "sfind", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_sfirst, "sfirst", ex_rewind,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_shell, "shell", ex_shell,
- TRLBAR|CMDWIN),
- EX(CMD_simalt, "simalt", ex_simalt,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_sign, "sign", ex_sign,
- NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN),
- EX(CMD_silent, "silent", ex_wrongmodifier,
- NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_sleep, "sleep", ex_sleep,
- RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN),
- EX(CMD_slast, "slast", ex_last,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_smagic, "smagic", ex_submagic,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN),
- EX(CMD_smap, "smap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_smapclear, "smapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_smenu, "smenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_snext, "snext", ex_next,
- RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_sniff, "sniff", ex_sniff,
- EXTRA|TRLBAR),
- EX(CMD_snomagic, "snomagic", ex_submagic,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN),
- EX(CMD_snoremap, "snoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_snoremenu, "snoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_source, "source", ex_source,
- BANG|FILE1|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_sort, "sort", ex_sort,
- RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY),
- EX(CMD_split, "split", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_spellgood, "spellgood", ex_spell,
- BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
- EX(CMD_spelldump, "spelldump", ex_spelldump,
- BANG|TRLBAR),
- EX(CMD_spellinfo, "spellinfo", ex_spellinfo,
- TRLBAR),
- EX(CMD_spellrepall, "spellrepall", ex_spellrepall,
- TRLBAR),
- EX(CMD_spellundo, "spellundo", ex_spell,
- BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
- EX(CMD_spellwrong, "spellwrong", ex_spell,
- BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
- EX(CMD_sprevious, "sprevious", ex_previous,
- EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_srewind, "srewind", ex_rewind,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_stop, "stop", ex_stop,
- TRLBAR|BANG|CMDWIN),
- EX(CMD_stag, "stag", ex_stag,
- RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
- EX(CMD_startinsert, "startinsert", ex_startinsert,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_startgreplace, "startgreplace", ex_startinsert,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_startreplace, "startreplace", ex_startinsert,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_stopinsert, "stopinsert", ex_stopinsert,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_stjump, "stjump", ex_stag,
- BANG|TRLBAR|WORD1),
- EX(CMD_stselect, "stselect", ex_stag,
- BANG|TRLBAR|WORD1),
- EX(CMD_sunhide, "sunhide", ex_buffer_all,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sunmap, "sunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_sunmenu, "sunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_suspend, "suspend", ex_stop,
- TRLBAR|BANG|CMDWIN),
- EX(CMD_sview, "sview", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_swapname, "swapname", ex_swapname,
- TRLBAR|CMDWIN),
- EX(CMD_syntax, "syntax", ex_syntax,
- EXTRA|NOTRLCOM|CMDWIN),
- EX(CMD_syntime, "syntime", ex_syntime,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_syncbind, "syncbind", ex_syncbind,
- TRLBAR),
- EX(CMD_t, "t", ex_copymove,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_tNext, "tNext", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_tag, "tag", ex_tag,
- RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
- EX(CMD_tags, "tags", do_tags,
- TRLBAR|CMDWIN),
- EX(CMD_tab, "tab", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_tabclose, "tabclose", ex_tabclose,
- RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN),
- EX(CMD_tabdo, "tabdo", ex_listdo,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_tabedit, "tabedit", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_tabfind, "tabfind", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR),
- EX(CMD_tabfirst, "tabfirst", ex_tabnext,
- TRLBAR),
- EX(CMD_tabmove, "tabmove", ex_tabmove,
- RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR),
- EX(CMD_tablast, "tablast", ex_tabnext,
- TRLBAR),
- EX(CMD_tabnext, "tabnext", ex_tabnext,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_tabnew, "tabnew", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_tabonly, "tabonly", ex_tabonly,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_tabprevious, "tabprevious", ex_tabnext,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_tabNext, "tabNext", ex_tabnext,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_tabrewind, "tabrewind", ex_tabnext,
- TRLBAR),
- EX(CMD_tabs, "tabs", ex_tabs,
- TRLBAR|CMDWIN),
- EX(CMD_tcl, "tcl", ex_tcl,
- RANGE|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_tcldo, "tcldo", ex_tcldo,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_tclfile, "tclfile", ex_tclfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
- EX(CMD_tearoff, "tearoff", ex_tearoff,
- NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN),
- EX(CMD_tfirst, "tfirst", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_throw, "throw", ex_throw,
- EXTRA|NEEDARG|SBOXOK|CMDWIN),
- EX(CMD_tjump, "tjump", ex_tag,
- BANG|TRLBAR|WORD1),
- EX(CMD_tlast, "tlast", ex_tag,
- BANG|TRLBAR),
- EX(CMD_tmenu, "tmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_tnext, "tnext", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_topleft, "topleft", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_tprevious, "tprevious", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_trewind, "trewind", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
- EX(CMD_try, "try", ex_try,
- TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_tselect, "tselect", ex_tag,
- BANG|TRLBAR|WORD1),
- EX(CMD_tunmenu, "tunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_undo, "undo", ex_undo,
- RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN),
- EX(CMD_undojoin, "undojoin", ex_undojoin,
- TRLBAR|CMDWIN),
- EX(CMD_undolist, "undolist", ex_undolist,
- TRLBAR|CMDWIN),
- EX(CMD_unabbreviate, "unabbreviate", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_unhide, "unhide", ex_buffer_all,
- RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_unlet, "unlet", ex_unlet,
- BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
- EX(CMD_unlockvar, "unlockvar", ex_lockvar,
- BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
- EX(CMD_unmap, "unmap", ex_unmap,
- BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_unmenu, "unmenu", ex_menu,
- BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_unsilent, "unsilent", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_update, "update", ex_update,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
- EX(CMD_vglobal, "vglobal", ex_global,
- RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN),
- EX(CMD_version, "version", ex_version,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_verbose, "verbose", ex_wrongmodifier,
- NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_vertical, "vertical", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_visual, "visual", ex_edit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_view, "view", ex_edit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_vimgrep, "vimgrep", ex_vimgrep,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_vimgrepadd, "vimgrepadd", ex_vimgrep,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
- EX(CMD_viusage, "viusage", ex_viusage,
- TRLBAR),
- EX(CMD_vmap, "vmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_vmapclear, "vmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_vmenu, "vmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_vnoremap, "vnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_vnew, "vnew", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_vnoremenu, "vnoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_vsplit, "vsplit", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_vunmap, "vunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_vunmenu, "vunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_write, "write", ex_write,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
- EX(CMD_wNext, "wNext", ex_wnext,
- RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
- EX(CMD_wall, "wall", do_wqall,
- BANG|TRLBAR|CMDWIN),
- EX(CMD_while, "while", ex_while,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_winsize, "winsize", ex_winsize,
- EXTRA|NEEDARG|TRLBAR),
- EX(CMD_wincmd, "wincmd", ex_wincmd,
- NEEDARG|WORD1|RANGE|NOTADR),
- EX(CMD_windo, "windo", ex_listdo,
- BANG|NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_winpos, "winpos", ex_winpos,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_wnext, "wnext", ex_wnext,
- RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
- EX(CMD_wprevious, "wprevious", ex_wnext,
- RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
- EX(CMD_wq, "wq", ex_exit,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
- EX(CMD_wqall, "wqall", do_wqall,
- BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
- EX(CMD_wsverb, "wsverb", ex_wsverb,
- EXTRA|NOTADR|NEEDARG),
- EX(CMD_wundo, "wundo", ex_wundo,
- BANG|NEEDARG|FILE1),
- EX(CMD_wviminfo, "wviminfo", ex_viminfo,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_xit, "xit", ex_exit,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
- EX(CMD_xall, "xall", do_wqall,
- BANG|TRLBAR),
- EX(CMD_xmap, "xmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_xmapclear, "xmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
- EX(CMD_xmenu, "xmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_xnoremap, "xnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_xnoremenu, "xnoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_xunmap, "xunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_xunmenu, "xunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_yank, "yank", ex_operators,
- RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN),
- EX(CMD_z, "z", ex_z,
- RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN),
-
- /* commands that don't start with a lowercase letter */
- EX(CMD_bang, "!", ex_bang,
- RANGE|WHOLEFOLD|BANG|FILES|CMDWIN),
- EX(CMD_pound, "#", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
- EX(CMD_and, "&", do_sub,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
- EX(CMD_star, "*", ex_at,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN),
- EX(CMD_lshift, "<", ex_operators,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_equal, "=", ex_equal,
- RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN),
- EX(CMD_rshift, ">", ex_operators,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_at, "@", ex_at,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN),
- EX(CMD_Next, "Next", ex_previous,
- EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_Print, "Print", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
- EX(CMD_X, "X", ex_X,
- TRLBAR),
- EX(CMD_tilde, "~", do_sub,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
-
-#ifndef DO_DECLARE_EXCMD
- CMD_SIZE, /* MUST be after all real commands! */
- CMD_USER = -1, /* User-defined command */
- CMD_USER_BUF = -2 /* User-defined command local to buffer */
-#endif
-};
-
-#define USER_CMDIDX(idx) ((int)(idx) < 0)
-
-#ifndef DO_DECLARE_EXCMD
-typedef enum CMD_index cmdidx_T;
-
-/*
- * Arguments used for Ex commands.
- */
-struct exarg {
- char_u *arg; /* argument of the command */
- char_u *nextcmd; /* next command (NULL if none) */
- char_u *cmd; /* the name of the command (except for :make) */
- char_u **cmdlinep; /* pointer to pointer of allocated cmdline */
- cmdidx_T cmdidx; /* the index for the command */
- long argt; /* flags for the command */
- int skip; /* don't execute the command, only parse it */
- int forceit; /* TRUE if ! present */
- int addr_count; /* the number of addresses given */
- linenr_T line1; /* the first line number */
- linenr_T line2; /* the second line number or count */
- int flags; /* extra flags after count: EXFLAG_ */
- char_u *do_ecmd_cmd; /* +command arg to be used in edited file */
- linenr_T do_ecmd_lnum; /* the line number in an edited file */
- int append; /* TRUE with ":w >>file" command */
- int usefilter; /* TRUE with ":w !command" and ":r!command" */
- int amount; /* number of '>' or '<' for shift command */
- int regname; /* register name (NUL if none) */
- int force_bin; /* 0, FORCE_BIN or FORCE_NOBIN */
- int read_edit; /* ++edit argument */
- int force_ff; /* ++ff= argument (index in cmd[]) */
- int force_enc; /* ++enc= argument (index in cmd[]) */
- int bad_char; /* BAD_KEEP, BAD_DROP or replacement byte */
- int useridx; /* user command index */
- char_u *errmsg; /* returned error message */
- char_u *(*getline)__ARGS((int, void *, int));
- void *cookie; /* argument for getline() */
- struct condstack *cstack; /* condition stack for ":if" etc. */
-};
-
-#define FORCE_BIN 1 /* ":edit ++bin file" */
-#define FORCE_NOBIN 2 /* ":edit ++nobin file" */
-
-/* Values for "flags" */
-#define EXFLAG_LIST 0x01 /* 'l': list */
-#define EXFLAG_NR 0x02 /* '#': number */
-#define EXFLAG_PRINT 0x04 /* 'p': print */
-
-#endif
+#ifndef NEOVIM_EX_CMDS_H
+#define NEOVIM_EX_CMDS_H
+/* ex_cmds.c */
+
+void do_ascii __ARGS((exarg_T *eap));
+void ex_align __ARGS((exarg_T *eap));
+void ex_sort __ARGS((exarg_T *eap));
+void ex_retab __ARGS((exarg_T *eap));
+int do_move __ARGS((linenr_T line1, linenr_T line2, linenr_T dest));
+void ex_copy __ARGS((linenr_T line1, linenr_T line2, linenr_T n));
+void free_prev_shellcmd __ARGS((void));
+void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in,
+ int do_out));
+void do_shell __ARGS((char_u *cmd, int flags));
+char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
+void append_redir __ARGS((char_u *buf, int buflen, char_u *opt, char_u *fname));
+int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
+int read_viminfo __ARGS((char_u *file, int flags));
+void write_viminfo __ARGS((char_u *file, int forceit));
+int viminfo_readline __ARGS((vir_T *virp));
+char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
+void viminfo_writestring __ARGS((FILE *fd, char_u *p));
+void do_fixdel __ARGS((exarg_T *eap));
+void print_line_no_prefix __ARGS((linenr_T lnum, int use_number, int list));
+void print_line __ARGS((linenr_T lnum, int use_number, int list));
+int rename_buffer __ARGS((char_u *new_fname));
+void ex_file __ARGS((exarg_T *eap));
+void ex_update __ARGS((exarg_T *eap));
+void ex_write __ARGS((exarg_T *eap));
+int do_write __ARGS((exarg_T *eap));
+int check_overwrite __ARGS((exarg_T *eap, buf_T *buf, char_u *fname, char_u *
+ ffname,
+ int other));
+void ex_wnext __ARGS((exarg_T *eap));
+void do_wqall __ARGS((exarg_T *eap));
+int not_writing __ARGS((void));
+int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm,
+ linenr_T lnum,
+ int forceit));
+int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap,
+ linenr_T newlnum, int flags,
+ win_T *oldwin));
+void ex_append __ARGS((exarg_T *eap));
+void ex_change __ARGS((exarg_T *eap));
+void ex_z __ARGS((exarg_T *eap));
+int check_restricted __ARGS((void));
+int check_secure __ARGS((void));
+void do_sub __ARGS((exarg_T *eap));
+int do_sub_msg __ARGS((int count_only));
+void ex_global __ARGS((exarg_T *eap));
+void global_exe __ARGS((char_u *cmd));
+int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
+void write_viminfo_sub_string __ARGS((FILE *fp));
+void free_old_sub __ARGS((void));
+int prepare_tagpreview __ARGS((int undo_sync));
+void ex_help __ARGS((exarg_T *eap));
+char_u *check_help_lang __ARGS((char_u *arg));
+int help_heuristic __ARGS((char_u *matched_string, int offset, int wrong_case));
+int find_help_tags __ARGS((char_u *arg, int *num_matches, char_u ***matches,
+ int keep_lang));
+void fix_help_buffer __ARGS((void));
+void ex_exusage __ARGS((exarg_T *eap));
+void ex_viusage __ARGS((exarg_T *eap));
+void ex_helptags __ARGS((exarg_T *eap));
+void ex_sign __ARGS((exarg_T *eap));
+void sign_gui_started __ARGS((void));
+int sign_get_attr __ARGS((int typenr, int line));
+char_u *sign_get_text __ARGS((int typenr));
+void *sign_get_image __ARGS((int typenr));
+char_u *sign_typenr2name __ARGS((int typenr));
+void free_signs __ARGS((void));
+char_u *get_sign_name __ARGS((expand_T *xp, int idx));
+void set_context_in_sign_cmd __ARGS((expand_T *xp, char_u *arg));
+void ex_drop __ARGS((exarg_T *eap));
+/* vim: set ft=c : */
+#endif /* NEOVIM_EX_CMDS_H */
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 4f5cd60da9..dfda02ff19 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -12,7 +12,32 @@
*/
#include "vim.h"
-#include "version.h"
+#include "version_defs.h"
+#include "ex_cmds2.h"
+#include "buffer.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_docmd.h"
+#include "ex_eval.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "getchar.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "term.h"
+#include "undo.h"
+#include "window.h"
static void cmd_source __ARGS((char_u *fname, exarg_T *eap));
diff --git a/src/proto/ex_cmds2.pro b/src/ex_cmds2.h
index 51efb73455..a01096cfd7 100644
--- a/src/proto/ex_cmds2.pro
+++ b/src/ex_cmds2.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_EX_CMDS2_H
+#define NEOVIM_EX_CMDS2_H
/* ex_cmds2.c */
void do_debug __ARGS((char_u *cmd));
void ex_debug __ARGS((exarg_T *eap));
@@ -91,3 +93,4 @@ void free_locales __ARGS((void));
char_u *get_lang_arg __ARGS((expand_T *xp, int idx));
char_u *get_locales __ARGS((expand_T *xp, int idx));
/* vim: set ft=c : */
+#endif /* NEOVIM_EX_CMDS2_H */
diff --git a/src/ex_cmds_defs.h b/src/ex_cmds_defs.h
new file mode 100644
index 0000000000..a560789fef
--- /dev/null
+++ b/src/ex_cmds_defs.h
@@ -0,0 +1,1191 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+ * Do ":help uganda" in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ */
+
+/*
+ * This file defines the Ex commands.
+ * When DO_DECLARE_EXCMD is defined, the table with ex command names and
+ * options results.
+ * When DO_DECLARE_EXCMD is NOT defined, the enum with all the Ex commands
+ * results.
+ * This clever trick was invented by Ron Aaron.
+ */
+
+/*
+ * When adding an Ex command:
+ * 1. Add an entry in the table below. Keep it sorted on the shortest
+ * version of the command name that works. If it doesn't start with a
+ * lower case letter, add it at the end.
+ * 2. Add a "case: CMD_xxx" in the big switch in ex_docmd.c.
+ * 3. Add an entry in the index for Ex commands at ":help ex-cmd-index".
+ * 4. Add documentation in ../doc/xxx.txt. Add a tag for both the short and
+ * long name of the command.
+ */
+
+#ifdef RANGE
+# undef RANGE /* SASC on Amiga defines it */
+#endif
+
+#define RANGE 0x001 /* allow a linespecs */
+#define BANG 0x002 /* allow a ! after the command name */
+#define EXTRA 0x004 /* allow extra args after command name */
+#define XFILE 0x008 /* expand wildcards in extra part */
+#define NOSPC 0x010 /* no spaces allowed in the extra part */
+#define DFLALL 0x020 /* default file range is 1,$ */
+#define WHOLEFOLD 0x040 /* extend range to include whole fold also
+ when less than two numbers given */
+#define NEEDARG 0x080 /* argument required */
+#define TRLBAR 0x100 /* check for trailing vertical bar */
+#define REGSTR 0x200 /* allow "x for register designation */
+#define COUNT 0x400 /* allow count in argument, after command */
+#define NOTRLCOM 0x800 /* no trailing comment allowed */
+#define ZEROR 0x1000 /* zero line number allowed */
+#define USECTRLV 0x2000 /* do not remove CTRL-V from argument */
+#define NOTADR 0x4000 /* number before command is not an address */
+#define EDITCMD 0x8000 /* allow "+command" argument */
+#define BUFNAME 0x10000L /* accepts buffer name */
+#define BUFUNL 0x20000L /* accepts unlisted buffer too */
+#define ARGOPT 0x40000L /* allow "++opt=val" argument */
+#define SBOXOK 0x80000L /* allowed in the sandbox */
+#define CMDWIN 0x100000L /* allowed in cmdline window */
+#define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */
+#define EXFLAGS 0x400000L /* allow flags after count in argument */
+#define FILES (XFILE | EXTRA) /* multiple extra files allowed */
+#define WORD1 (EXTRA | NOSPC) /* one extra word allowed */
+#define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */
+
+#ifndef DO_DECLARE_EXCMD
+typedef struct exarg exarg_T;
+#endif
+
+/*
+ * This array maps ex command names to command codes.
+ * The order in which command names are listed below is significant --
+ * ambiguous abbreviations are always resolved to be the first possible match
+ * (e.g. "r" is taken to mean "read", not "rewind", because "read" comes
+ * before "rewind").
+ * Not supported commands are included to avoid ambiguities.
+ */
+#ifdef EX
+# undef EX /* just in case */
+#endif
+#ifdef DO_DECLARE_EXCMD
+# define EX(a, b, c, d) {(char_u *)b, c, (long_u)(d)}
+
+typedef void (*ex_func_T) __ARGS ((exarg_T *eap));
+
+static struct cmdname {
+ char_u *cmd_name; /* name of the command */
+ ex_func_T cmd_func; /* function for this command */
+ long_u cmd_argt; /* flags declared above */
+}
+cmdnames[] =
+#else
+# define EX(a, b, c, d) a
+enum CMD_index
+#endif
+{
+ EX(CMD_append, "append", ex_append,
+ BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_abbreviate, "abbreviate", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_abclear, "abclear", ex_abclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_all, "all", ex_all,
+ BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_amenu, "amenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_anoremenu, "anoremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_args, "args", ex_args,
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_argadd, "argadd", ex_argadd,
+ BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR),
+ EX(CMD_argdelete, "argdelete", ex_argdelete,
+ BANG|RANGE|NOTADR|FILES|TRLBAR),
+ EX(CMD_argdo, "argdo", ex_listdo,
+ BANG|NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_argedit, "argedit", ex_argedit,
+ BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_argglobal, "argglobal", ex_args,
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_arglocal, "arglocal", ex_args,
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_argument, "argument", ex_argument,
+ BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_ascii, "ascii", do_ascii,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_autocmd, "autocmd", ex_autocmd,
+ BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_augroup, "augroup", ex_autocmd,
+ BANG|WORD1|TRLBAR|CMDWIN),
+ EX(CMD_aunmenu, "aunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_buffer, "buffer", ex_buffer,
+ BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR),
+ EX(CMD_bNext, "bNext", ex_bprevious,
+ BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_ball, "ball", ex_buffer_all,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_badd, "badd", ex_edit,
+ NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN),
+ EX(CMD_bdelete, "bdelete", ex_bunload,
+ BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
+ EX(CMD_behave, "behave", ex_behave,
+ NEEDARG|WORD1|TRLBAR|CMDWIN),
+ EX(CMD_belowright, "belowright", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_bfirst, "bfirst", ex_brewind,
+ BANG|RANGE|NOTADR|TRLBAR),
+ EX(CMD_blast, "blast", ex_blast,
+ BANG|RANGE|NOTADR|TRLBAR),
+ EX(CMD_bmodified, "bmodified", ex_bmodified,
+ BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_bnext, "bnext", ex_bnext,
+ BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_botright, "botright", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_bprevious, "bprevious", ex_bprevious,
+ BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_brewind, "brewind", ex_brewind,
+ BANG|RANGE|NOTADR|TRLBAR),
+ EX(CMD_break, "break", ex_break,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_breakadd, "breakadd", ex_breakadd,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_breakdel, "breakdel", ex_breakdel,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_breaklist, "breaklist", ex_breaklist,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_browse, "browse", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM|CMDWIN),
+ EX(CMD_buffers, "buffers", buflist_list,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_bufdo, "bufdo", ex_listdo,
+ BANG|NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_bunload, "bunload", ex_bunload,
+ BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
+ EX(CMD_bwipeout, "bwipeout", ex_bunload,
+ BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR),
+ EX(CMD_change, "change", ex_change,
+ BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_cNext, "cNext", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cNfile, "cNfile", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cabbrev, "cabbrev", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_cabclear, "cabclear", ex_abclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_caddbuffer, "caddbuffer", ex_cbuffer,
+ RANGE|NOTADR|WORD1|TRLBAR),
+ EX(CMD_caddexpr, "caddexpr", ex_cexpr,
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR),
+ EX(CMD_caddfile, "caddfile", ex_cfile,
+ TRLBAR|FILE1),
+ EX(CMD_call, "call", ex_call,
+ RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_catch, "catch", ex_catch,
+ EXTRA|SBOXOK|CMDWIN),
+ EX(CMD_cbuffer, "cbuffer", ex_cbuffer,
+ BANG|RANGE|NOTADR|WORD1|TRLBAR),
+ EX(CMD_cc, "cc", ex_cc,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cclose, "cclose", ex_cclose,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_cd, "cd", ex_cd,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_center, "center", ex_align,
+ TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ EX(CMD_cexpr, "cexpr", ex_cexpr,
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG),
+ EX(CMD_cfile, "cfile", ex_cfile,
+ TRLBAR|FILE1|BANG),
+ EX(CMD_cfirst, "cfirst", ex_cc,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cgetfile, "cgetfile", ex_cfile,
+ TRLBAR|FILE1),
+ EX(CMD_cgetbuffer, "cgetbuffer", ex_cbuffer,
+ RANGE|NOTADR|WORD1|TRLBAR),
+ EX(CMD_cgetexpr, "cgetexpr", ex_cexpr,
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR),
+ EX(CMD_chdir, "chdir", ex_cd,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_changes, "changes", ex_changes,
+ TRLBAR|CMDWIN),
+ EX(CMD_checkpath, "checkpath", ex_checkpath,
+ TRLBAR|BANG|CMDWIN),
+ EX(CMD_checktime, "checktime", ex_checktime,
+ RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
+ EX(CMD_clist, "clist", qf_list,
+ BANG|EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_clast, "clast", ex_cc,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_close, "close", ex_close,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_cmap, "cmap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_cmapclear, "cmapclear", ex_mapclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_cmenu, "cmenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_cnext, "cnext", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cnewer, "cnewer", qf_age,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_cnfile, "cnfile", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cnoremap, "cnoremap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_cnoreabbrev, "cnoreabbrev", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_cnoremenu, "cnoremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_copy, "copy", ex_copymove,
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_colder, "colder", qf_age,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_colorscheme, "colorscheme", ex_colorscheme,
+ WORD1|TRLBAR|CMDWIN),
+ EX(CMD_command, "command", ex_command,
+ EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_comclear, "comclear", ex_comclear,
+ TRLBAR|CMDWIN),
+ EX(CMD_compiler, "compiler", ex_compiler,
+ BANG|TRLBAR|WORD1|CMDWIN),
+ EX(CMD_continue, "continue", ex_continue,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_confirm, "confirm", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM|CMDWIN),
+ EX(CMD_copen, "copen", ex_copen,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_cprevious, "cprevious", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cpfile, "cpfile", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cquit, "cquit", ex_cquit,
+ TRLBAR|BANG),
+ EX(CMD_crewind, "crewind", ex_cc,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_cscope, "cscope", do_cscope,
+ EXTRA|NOTRLCOM|XFILE),
+ EX(CMD_cstag, "cstag", do_cstag,
+ BANG|TRLBAR|WORD1),
+ EX(CMD_cunmap, "cunmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_cunabbrev, "cunabbrev", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_cunmenu, "cunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_cwindow, "cwindow", ex_cwindow,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_delete, "delete", ex_operators,
+ RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_delmarks, "delmarks", ex_delmarks,
+ BANG|EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_debug, "debug", ex_debug,
+ NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_debuggreedy, "debuggreedy", ex_debuggreedy,
+ RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN),
+ EX(CMD_delcommand, "delcommand", ex_delcommand,
+ NEEDARG|WORD1|TRLBAR|CMDWIN),
+ EX(CMD_delfunction, "delfunction", ex_delfunction,
+ NEEDARG|WORD1|CMDWIN),
+ EX(CMD_display, "display", ex_display,
+ EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
+ BANG|TRLBAR),
+ EX(CMD_diffget, "diffget", ex_diffgetput,
+ RANGE|EXTRA|TRLBAR|MODIFY),
+ EX(CMD_diffoff, "diffoff", ex_diffoff,
+ BANG|TRLBAR),
+ EX(CMD_diffpatch, "diffpatch", ex_diffpatch,
+ EXTRA|FILE1|TRLBAR|MODIFY),
+ EX(CMD_diffput, "diffput", ex_diffgetput,
+ RANGE|EXTRA|TRLBAR),
+ EX(CMD_diffsplit, "diffsplit", ex_diffsplit,
+ EXTRA|FILE1|TRLBAR),
+ EX(CMD_diffthis, "diffthis", ex_diffthis,
+ TRLBAR),
+ EX(CMD_digraphs, "digraphs", ex_digraphs,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_djump, "djump", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
+ EX(CMD_dlist, "dlist", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
+ EX(CMD_doautocmd, "doautocmd", ex_doautocmd,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_doautoall, "doautoall", ex_doautoall,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_drop, "drop", ex_drop,
+ FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR),
+ EX(CMD_dsearch, "dsearch", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
+ EX(CMD_dsplit, "dsplit", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
+ EX(CMD_edit, "edit", ex_edit,
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_earlier, "earlier", ex_later,
+ TRLBAR|EXTRA|NOSPC|CMDWIN),
+ EX(CMD_echo, "echo", ex_echo,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_echoerr, "echoerr", ex_execute,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_echohl, "echohl", ex_echohl,
+ EXTRA|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_echomsg, "echomsg", ex_execute,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_echon, "echon", ex_echo,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_else, "else", ex_else,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_elseif, "elseif", ex_else,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_emenu, "emenu", ex_emenu,
+ NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN),
+ EX(CMD_endif, "endif", ex_endif,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_endfunction, "endfunction", ex_endfunction,
+ TRLBAR|CMDWIN),
+ EX(CMD_endfor, "endfor", ex_endwhile,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_endtry, "endtry", ex_endtry,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_endwhile, "endwhile", ex_endwhile,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_enew, "enew", ex_edit,
+ BANG|TRLBAR),
+ EX(CMD_ex, "ex", ex_edit,
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_execute, "execute", ex_execute,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_exit, "exit", ex_exit,
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
+ EX(CMD_exusage, "exusage", ex_exusage,
+ TRLBAR),
+ EX(CMD_file, "file", ex_file,
+ RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR),
+ EX(CMD_files, "files", buflist_list,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_filetype, "filetype", ex_filetype,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_find, "find", ex_find,
+ RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_finally, "finally", ex_finally,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_finish, "finish", ex_finish,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_first, "first", ex_rewind,
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_fixdel, "fixdel", do_fixdel,
+ TRLBAR|CMDWIN),
+ EX(CMD_fold, "fold", ex_fold,
+ RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_foldclose, "foldclose", ex_foldopen,
+ RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_folddoopen, "folddoopen", ex_folddo,
+ RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_folddoclosed, "folddoclosed", ex_folddo,
+ RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_foldopen, "foldopen", ex_foldopen,
+ RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_for, "for", ex_while,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_function, "function", ex_function,
+ EXTRA|BANG|CMDWIN),
+ EX(CMD_global, "global", ex_global,
+ RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN),
+ EX(CMD_goto, "goto", ex_goto,
+ RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_grep, "grep", ex_make,
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_grepadd, "grepadd", ex_make,
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_gui, "gui", ex_gui,
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN),
+ EX(CMD_gvim, "gvim", ex_gui,
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN),
+ EX(CMD_help, "help", ex_help,
+ BANG|EXTRA|NOTRLCOM),
+ EX(CMD_helpfind, "helpfind", ex_helpfind,
+ EXTRA|NOTRLCOM),
+ EX(CMD_helpgrep, "helpgrep", ex_helpgrep,
+ EXTRA|NOTRLCOM|NEEDARG),
+ EX(CMD_helptags, "helptags", ex_helptags,
+ NEEDARG|FILES|TRLBAR|CMDWIN),
+ EX(CMD_hardcopy, "hardcopy", ex_hardcopy,
+ RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG),
+ EX(CMD_highlight, "highlight", ex_highlight,
+ BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_hide, "hide", ex_hide,
+ BANG|EXTRA|NOTRLCOM),
+ EX(CMD_history, "history", ex_history,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_insert, "insert", ex_append,
+ BANG|RANGE|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_iabbrev, "iabbrev", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_iabclear, "iabclear", ex_abclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_if, "if", ex_if,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_ijump, "ijump", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
+ EX(CMD_ilist, "ilist", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
+ EX(CMD_imap, "imap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_imapclear, "imapclear", ex_mapclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_imenu, "imenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_inoremap, "inoremap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_inoreabbrev, "inoreabbrev", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_inoremenu, "inoremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_intro, "intro", ex_intro,
+ TRLBAR|CMDWIN),
+ EX(CMD_isearch, "isearch", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
+ EX(CMD_isplit, "isplit", ex_findpat,
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
+ EX(CMD_iunmap, "iunmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_iunabbrev, "iunabbrev", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_iunmenu, "iunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_join, "join", ex_join,
+ BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_jumps, "jumps", ex_jumps,
+ TRLBAR|CMDWIN),
+ EX(CMD_k, "k", ex_mark,
+ RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_keepalt, "keepalt", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_list, "list", ex_print,
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
+ EX(CMD_lNext, "lNext", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_lNfile, "lNfile", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_last, "last", ex_last,
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_language, "language", ex_language,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_laddexpr, "laddexpr", ex_cexpr,
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR),
+ EX(CMD_laddbuffer, "laddbuffer", ex_cbuffer,
+ RANGE|NOTADR|WORD1|TRLBAR),
+ EX(CMD_laddfile, "laddfile", ex_cfile,
+ TRLBAR|FILE1),
+ EX(CMD_later, "later", ex_later,
+ TRLBAR|EXTRA|NOSPC|CMDWIN),
+ EX(CMD_lbuffer, "lbuffer", ex_cbuffer,
+ BANG|RANGE|NOTADR|WORD1|TRLBAR),
+ EX(CMD_lcd, "lcd", ex_cd,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_lchdir, "lchdir", ex_cd,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_lclose, "lclose", ex_cclose,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_lcscope, "lcscope", do_cscope,
+ EXTRA|NOTRLCOM|XFILE),
+ EX(CMD_left, "left", ex_align,
+ TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ EX(CMD_leftabove, "leftabove", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_let, "let", ex_let,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_lexpr, "lexpr", ex_cexpr,
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG),
+ EX(CMD_lfile, "lfile", ex_cfile,
+ TRLBAR|FILE1|BANG),
+ EX(CMD_lfirst, "lfirst", ex_cc,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_lgetfile, "lgetfile", ex_cfile,
+ TRLBAR|FILE1),
+ EX(CMD_lgetbuffer, "lgetbuffer", ex_cbuffer,
+ RANGE|NOTADR|WORD1|TRLBAR),
+ EX(CMD_lgetexpr, "lgetexpr", ex_cexpr,
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR),
+ EX(CMD_lgrep, "lgrep", ex_make,
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_lgrepadd, "lgrepadd", ex_make,
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_lhelpgrep, "lhelpgrep", ex_helpgrep,
+ EXTRA|NOTRLCOM|NEEDARG),
+ EX(CMD_ll, "ll", ex_cc,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_llast, "llast", ex_cc,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_llist, "llist", qf_list,
+ BANG|EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_lmap, "lmap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_lmapclear, "lmapclear", ex_mapclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_lmake, "lmake", ex_make,
+ BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_lnoremap, "lnoremap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_lnext, "lnext", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_lnewer, "lnewer", qf_age,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_lnfile, "lnfile", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_loadview, "loadview", ex_loadview,
+ FILE1|TRLBAR),
+ EX(CMD_loadkeymap, "loadkeymap", ex_loadkeymap,
+ CMDWIN),
+ EX(CMD_lockmarks, "lockmarks", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_lockvar, "lockvar", ex_lockvar,
+ BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
+ EX(CMD_lolder, "lolder", qf_age,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_lopen, "lopen", ex_copen,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_lprevious, "lprevious", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_lpfile, "lpfile", ex_cnext,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_lrewind, "lrewind", ex_cc,
+ RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ EX(CMD_ltag, "ltag", ex_tag,
+ NOTADR|TRLBAR|BANG|WORD1),
+ EX(CMD_lua, "lua", ex_lua,
+ RANGE|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_luado, "luado", ex_luado,
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_luafile, "luafile", ex_luafile,
+ RANGE|FILE1|NEEDARG|CMDWIN),
+ EX(CMD_lunmap, "lunmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_lvimgrep, "lvimgrep", ex_vimgrep,
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_lvimgrepadd, "lvimgrepadd", ex_vimgrep,
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_lwindow, "lwindow", ex_cwindow,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_ls, "ls", buflist_list,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_move, "move", ex_copymove,
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_mark, "mark", ex_mark,
+ RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_make, "make", ex_make,
+ BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_map, "map", ex_map,
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_mapclear, "mapclear", ex_mapclear,
+ EXTRA|BANG|TRLBAR|CMDWIN),
+ EX(CMD_marks, "marks", do_marks,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_match, "match", ex_match,
+ RANGE|NOTADR|EXTRA|CMDWIN),
+ EX(CMD_menu, "menu", ex_menu,
+ RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_menutranslate, "menutranslate", ex_menutranslate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_messages, "messages", ex_messages,
+ TRLBAR|CMDWIN),
+ EX(CMD_mkexrc, "mkexrc", ex_mkrc,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_mksession, "mksession", ex_mkrc,
+ BANG|FILE1|TRLBAR),
+ EX(CMD_mkspell, "mkspell", ex_mkspell,
+ BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_mkvimrc, "mkvimrc", ex_mkrc,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_mkview, "mkview", ex_mkrc,
+ BANG|FILE1|TRLBAR),
+ EX(CMD_mode, "mode", ex_mode,
+ WORD1|TRLBAR|CMDWIN),
+ EX(CMD_mzscheme, "mzscheme", ex_mzscheme,
+ RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK),
+ EX(CMD_mzfile, "mzfile", ex_mzfile,
+ RANGE|FILE1|NEEDARG|CMDWIN),
+ EX(CMD_next, "next", ex_next,
+ RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_nbkey, "nbkey", ex_nbkey,
+ EXTRA|NOTADR|NEEDARG),
+ EX(CMD_nbclose, "nbclose", ex_nbclose,
+ TRLBAR|CMDWIN),
+ EX(CMD_nbstart, "nbstart", ex_nbstart,
+ WORD1|TRLBAR|CMDWIN),
+ EX(CMD_new, "new", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_nmap, "nmap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_nmapclear, "nmapclear", ex_mapclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_nmenu, "nmenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_nnoremap, "nnoremap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_nnoremenu, "nnoremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_noremap, "noremap", ex_map,
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_noremenu, "noremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_normal, "normal", ex_normal,
+ RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN),
+ EX(CMD_number, "number", ex_print,
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
+ EX(CMD_nunmap, "nunmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_nunmenu, "nunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_open, "open", ex_open,
+ RANGE|BANG|EXTRA),
+ EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
+ BANG|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_omap, "omap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_omapclear, "omapclear", ex_mapclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_omenu, "omenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_only, "only", ex_only,
+ BANG|TRLBAR),
+ EX(CMD_onoremap, "onoremap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_onoremenu, "onoremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_options, "options", ex_options,
+ TRLBAR),
+ EX(CMD_ounmap, "ounmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_ounmenu, "ounmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_ownsyntax, "ownsyntax", ex_ownsyntax,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_print, "print", ex_print,
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK),
+ EX(CMD_pclose, "pclose", ex_pclose,
+ BANG|TRLBAR),
+ EX(CMD_perl, "perl", ex_perl,
+ RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN),
+ EX(CMD_perldo, "perldo", ex_perldo,
+ RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN),
+ EX(CMD_pedit, "pedit", ex_pedit,
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_pop, "pop", ex_tag,
+ RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR),
+ EX(CMD_popup, "popup", ex_popup,
+ NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN),
+ EX(CMD_ppop, "ppop", ex_ptag,
+ RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR),
+ EX(CMD_preserve, "preserve", ex_preserve,
+ TRLBAR),
+ EX(CMD_previous, "previous", ex_previous,
+ EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_promptfind, "promptfind", gui_mch_find_dialog,
+ EXTRA|NOTRLCOM|CMDWIN),
+ EX(CMD_promptrepl, "promptrepl", gui_mch_replace_dialog,
+ EXTRA|NOTRLCOM|CMDWIN),
+ EX(CMD_profile, "profile", ex_profile,
+ BANG|EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_profdel, "profdel", ex_breakdel,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_psearch, "psearch", ex_psearch,
+ BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA),
+ EX(CMD_ptag, "ptag", ex_ptag,
+ RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
+ EX(CMD_ptNext, "ptNext", ex_ptag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_ptfirst, "ptfirst", ex_ptag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_ptjump, "ptjump", ex_ptag,
+ BANG|TRLBAR|WORD1),
+ EX(CMD_ptlast, "ptlast", ex_ptag,
+ BANG|TRLBAR),
+ EX(CMD_ptnext, "ptnext", ex_ptag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_ptprevious, "ptprevious", ex_ptag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_ptrewind, "ptrewind", ex_ptag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_ptselect, "ptselect", ex_ptag,
+ BANG|TRLBAR|WORD1),
+ EX(CMD_put, "put", ex_put,
+ RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY),
+ EX(CMD_pwd, "pwd", ex_pwd,
+ TRLBAR|CMDWIN),
+ EX(CMD_python, "python", ex_python,
+ RANGE|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_pydo, "pydo", ex_pydo,
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_pyfile, "pyfile", ex_pyfile,
+ RANGE|FILE1|NEEDARG|CMDWIN),
+ EX(CMD_py3, "py3", ex_py3,
+ RANGE|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_py3do, "py3do", ex_py3do,
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_python3, "python3", ex_py3,
+ RANGE|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_py3file, "py3file", ex_py3file,
+ RANGE|FILE1|NEEDARG|CMDWIN),
+ EX(CMD_quit, "quit", ex_quit,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_quitall, "quitall", ex_quit_all,
+ BANG|TRLBAR),
+ EX(CMD_qall, "qall", ex_quit_all,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_read, "read", ex_read,
+ BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY),
+ EX(CMD_recover, "recover", ex_recover,
+ BANG|FILE1|TRLBAR),
+ EX(CMD_redo, "redo", ex_redo,
+ TRLBAR|CMDWIN),
+ EX(CMD_redir, "redir", ex_redir,
+ BANG|FILES|TRLBAR|CMDWIN),
+ EX(CMD_redraw, "redraw", ex_redraw,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_redrawstatus, "redrawstatus", ex_redrawstatus,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_registers, "registers", ex_display,
+ EXTRA|NOTRLCOM|TRLBAR|CMDWIN),
+ EX(CMD_resize, "resize", ex_resize,
+ RANGE|NOTADR|TRLBAR|WORD1),
+ EX(CMD_retab, "retab", ex_retab,
+ TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY),
+ EX(CMD_return, "return", ex_return,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_rewind, "rewind", ex_rewind,
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_right, "right", ex_align,
+ TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ EX(CMD_rightbelow, "rightbelow", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_runtime, "runtime", ex_runtime,
+ BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_ruby, "ruby", ex_ruby,
+ RANGE|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_rubydo, "rubydo", ex_rubydo,
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_rubyfile, "rubyfile", ex_rubyfile,
+ RANGE|FILE1|NEEDARG|CMDWIN),
+ EX(CMD_rundo, "rundo", ex_rundo,
+ NEEDARG|FILE1),
+ EX(CMD_rviminfo, "rviminfo", ex_viminfo,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_substitute, "substitute", do_sub,
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN),
+ EX(CMD_sNext, "sNext", ex_previous,
+ EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_sargument, "sargument", ex_argument,
+ BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_sall, "sall", ex_all,
+ BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_saveas, "saveas", ex_write,
+ BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR),
+ EX(CMD_sbuffer, "sbuffer", ex_buffer,
+ BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR),
+ EX(CMD_sbNext, "sbNext", ex_bprevious,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sball, "sball", ex_buffer_all,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sbfirst, "sbfirst", ex_brewind,
+ TRLBAR),
+ EX(CMD_sblast, "sblast", ex_blast,
+ TRLBAR),
+ EX(CMD_sbmodified, "sbmodified", ex_bmodified,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sbnext, "sbnext", ex_bnext,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sbprevious, "sbprevious", ex_bprevious,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sbrewind, "sbrewind", ex_brewind,
+ TRLBAR),
+ EX(CMD_scriptnames, "scriptnames", ex_scriptnames,
+ TRLBAR|CMDWIN),
+ EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding,
+ WORD1|TRLBAR|CMDWIN),
+ EX(CMD_scscope, "scscope", do_scscope,
+ EXTRA|NOTRLCOM),
+ EX(CMD_set, "set", ex_set,
+ TRLBAR|EXTRA|CMDWIN|SBOXOK),
+ EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
+ TRLBAR|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_setglobal, "setglobal", ex_set,
+ TRLBAR|EXTRA|CMDWIN|SBOXOK),
+ EX(CMD_setlocal, "setlocal", ex_set,
+ TRLBAR|EXTRA|CMDWIN|SBOXOK),
+ EX(CMD_sfind, "sfind", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_sfirst, "sfirst", ex_rewind,
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_shell, "shell", ex_shell,
+ TRLBAR|CMDWIN),
+ EX(CMD_simalt, "simalt", ex_simalt,
+ NEEDARG|WORD1|TRLBAR|CMDWIN),
+ EX(CMD_sign, "sign", ex_sign,
+ NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN),
+ EX(CMD_silent, "silent", ex_wrongmodifier,
+ NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_sleep, "sleep", ex_sleep,
+ RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_slast, "slast", ex_last,
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_smagic, "smagic", ex_submagic,
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN),
+ EX(CMD_smap, "smap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_smapclear, "smapclear", ex_mapclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_smenu, "smenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_snext, "snext", ex_next,
+ RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_sniff, "sniff", ex_sniff,
+ EXTRA|TRLBAR),
+ EX(CMD_snomagic, "snomagic", ex_submagic,
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN),
+ EX(CMD_snoremap, "snoremap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_snoremenu, "snoremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_source, "source", ex_source,
+ BANG|FILE1|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_sort, "sort", ex_sort,
+ RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY),
+ EX(CMD_split, "split", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_spellgood, "spellgood", ex_spell,
+ BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
+ EX(CMD_spelldump, "spelldump", ex_spelldump,
+ BANG|TRLBAR),
+ EX(CMD_spellinfo, "spellinfo", ex_spellinfo,
+ TRLBAR),
+ EX(CMD_spellrepall, "spellrepall", ex_spellrepall,
+ TRLBAR),
+ EX(CMD_spellundo, "spellundo", ex_spell,
+ BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
+ EX(CMD_spellwrong, "spellwrong", ex_spell,
+ BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
+ EX(CMD_sprevious, "sprevious", ex_previous,
+ EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_srewind, "srewind", ex_rewind,
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_stop, "stop", ex_stop,
+ TRLBAR|BANG|CMDWIN),
+ EX(CMD_stag, "stag", ex_stag,
+ RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
+ EX(CMD_startinsert, "startinsert", ex_startinsert,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_startgreplace, "startgreplace", ex_startinsert,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_startreplace, "startreplace", ex_startinsert,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_stopinsert, "stopinsert", ex_stopinsert,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_stjump, "stjump", ex_stag,
+ BANG|TRLBAR|WORD1),
+ EX(CMD_stselect, "stselect", ex_stag,
+ BANG|TRLBAR|WORD1),
+ EX(CMD_sunhide, "sunhide", ex_buffer_all,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sunmap, "sunmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_sunmenu, "sunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_suspend, "suspend", ex_stop,
+ TRLBAR|BANG|CMDWIN),
+ EX(CMD_sview, "sview", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_swapname, "swapname", ex_swapname,
+ TRLBAR|CMDWIN),
+ EX(CMD_syntax, "syntax", ex_syntax,
+ EXTRA|NOTRLCOM|CMDWIN),
+ EX(CMD_syntime, "syntime", ex_syntime,
+ NEEDARG|WORD1|TRLBAR|CMDWIN),
+ EX(CMD_syncbind, "syncbind", ex_syncbind,
+ TRLBAR),
+ EX(CMD_t, "t", ex_copymove,
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_tNext, "tNext", ex_tag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_tag, "tag", ex_tag,
+ RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
+ EX(CMD_tags, "tags", do_tags,
+ TRLBAR|CMDWIN),
+ EX(CMD_tab, "tab", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_tabclose, "tabclose", ex_tabclose,
+ RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN),
+ EX(CMD_tabdo, "tabdo", ex_listdo,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_tabedit, "tabedit", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_tabfind, "tabfind", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR),
+ EX(CMD_tabfirst, "tabfirst", ex_tabnext,
+ TRLBAR),
+ EX(CMD_tabmove, "tabmove", ex_tabmove,
+ RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR),
+ EX(CMD_tablast, "tablast", ex_tabnext,
+ TRLBAR),
+ EX(CMD_tabnext, "tabnext", ex_tabnext,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_tabnew, "tabnew", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_tabonly, "tabonly", ex_tabonly,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_tabprevious, "tabprevious", ex_tabnext,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_tabNext, "tabNext", ex_tabnext,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_tabrewind, "tabrewind", ex_tabnext,
+ TRLBAR),
+ EX(CMD_tabs, "tabs", ex_tabs,
+ TRLBAR|CMDWIN),
+ EX(CMD_tcl, "tcl", ex_tcl,
+ RANGE|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_tcldo, "tcldo", ex_tcldo,
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ EX(CMD_tclfile, "tclfile", ex_tclfile,
+ RANGE|FILE1|NEEDARG|CMDWIN),
+ EX(CMD_tearoff, "tearoff", ex_tearoff,
+ NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN),
+ EX(CMD_tfirst, "tfirst", ex_tag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_throw, "throw", ex_throw,
+ EXTRA|NEEDARG|SBOXOK|CMDWIN),
+ EX(CMD_tjump, "tjump", ex_tag,
+ BANG|TRLBAR|WORD1),
+ EX(CMD_tlast, "tlast", ex_tag,
+ BANG|TRLBAR),
+ EX(CMD_tmenu, "tmenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_tnext, "tnext", ex_tag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_topleft, "topleft", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_tprevious, "tprevious", ex_tag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_trewind, "trewind", ex_tag,
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ EX(CMD_try, "try", ex_try,
+ TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_tselect, "tselect", ex_tag,
+ BANG|TRLBAR|WORD1),
+ EX(CMD_tunmenu, "tunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_undo, "undo", ex_undo,
+ RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN),
+ EX(CMD_undojoin, "undojoin", ex_undojoin,
+ TRLBAR|CMDWIN),
+ EX(CMD_undolist, "undolist", ex_undolist,
+ TRLBAR|CMDWIN),
+ EX(CMD_unabbreviate, "unabbreviate", ex_abbreviate,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_unhide, "unhide", ex_buffer_all,
+ RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_unlet, "unlet", ex_unlet,
+ BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
+ EX(CMD_unlockvar, "unlockvar", ex_lockvar,
+ BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
+ EX(CMD_unmap, "unmap", ex_unmap,
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_unmenu, "unmenu", ex_menu,
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_unsilent, "unsilent", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_update, "update", ex_update,
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
+ EX(CMD_vglobal, "vglobal", ex_global,
+ RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN),
+ EX(CMD_version, "version", ex_version,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_verbose, "verbose", ex_wrongmodifier,
+ NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_vertical, "vertical", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_visual, "visual", ex_edit,
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_view, "view", ex_edit,
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_vimgrep, "vimgrep", ex_vimgrep,
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_vimgrepadd, "vimgrepadd", ex_vimgrep,
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ EX(CMD_viusage, "viusage", ex_viusage,
+ TRLBAR),
+ EX(CMD_vmap, "vmap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_vmapclear, "vmapclear", ex_mapclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_vmenu, "vmenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_vnoremap, "vnoremap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_vnew, "vnew", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_vnoremenu, "vnoremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_vsplit, "vsplit", ex_splitview,
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_vunmap, "vunmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_vunmenu, "vunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_write, "write", ex_write,
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
+ EX(CMD_wNext, "wNext", ex_wnext,
+ RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
+ EX(CMD_wall, "wall", do_wqall,
+ BANG|TRLBAR|CMDWIN),
+ EX(CMD_while, "while", ex_while,
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EX(CMD_winsize, "winsize", ex_winsize,
+ EXTRA|NEEDARG|TRLBAR),
+ EX(CMD_wincmd, "wincmd", ex_wincmd,
+ NEEDARG|WORD1|RANGE|NOTADR),
+ EX(CMD_windo, "windo", ex_listdo,
+ BANG|NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_winpos, "winpos", ex_winpos,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_wnext, "wnext", ex_wnext,
+ RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
+ EX(CMD_wprevious, "wprevious", ex_wnext,
+ RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
+ EX(CMD_wq, "wq", ex_exit,
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
+ EX(CMD_wqall, "wqall", do_wqall,
+ BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
+ EX(CMD_wsverb, "wsverb", ex_wsverb,
+ EXTRA|NOTADR|NEEDARG),
+ EX(CMD_wundo, "wundo", ex_wundo,
+ BANG|NEEDARG|FILE1),
+ EX(CMD_wviminfo, "wviminfo", ex_viminfo,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_xit, "xit", ex_exit,
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
+ EX(CMD_xall, "xall", do_wqall,
+ BANG|TRLBAR),
+ EX(CMD_xmap, "xmap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_xmapclear, "xmapclear", ex_mapclear,
+ EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_xmenu, "xmenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_xnoremap, "xnoremap", ex_map,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_xnoremenu, "xnoremenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_xunmap, "xunmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_xunmenu, "xunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_yank, "yank", ex_operators,
+ RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN),
+ EX(CMD_z, "z", ex_z,
+ RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN),
+
+ /* commands that don't start with a lowercase letter */
+ EX(CMD_bang, "!", ex_bang,
+ RANGE|WHOLEFOLD|BANG|FILES|CMDWIN),
+ EX(CMD_pound, "#", ex_print,
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
+ EX(CMD_and, "&", do_sub,
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ EX(CMD_star, "*", ex_at,
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_lshift, "<", ex_operators,
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_equal, "=", ex_equal,
+ RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN),
+ EX(CMD_rshift, ">", ex_operators,
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
+ EX(CMD_at, "@", ex_at,
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN),
+ EX(CMD_Next, "Next", ex_previous,
+ EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_Print, "Print", ex_print,
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
+ EX(CMD_X, "X", ex_X,
+ TRLBAR),
+ EX(CMD_tilde, "~", do_sub,
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+
+#ifndef DO_DECLARE_EXCMD
+ CMD_SIZE, /* MUST be after all real commands! */
+ CMD_USER = -1, /* User-defined command */
+ CMD_USER_BUF = -2 /* User-defined command local to buffer */
+#endif
+};
+
+#define USER_CMDIDX(idx) ((int)(idx) < 0)
+
+#ifndef DO_DECLARE_EXCMD
+typedef enum CMD_index cmdidx_T;
+
+/*
+ * Arguments used for Ex commands.
+ */
+struct exarg {
+ char_u *arg; /* argument of the command */
+ char_u *nextcmd; /* next command (NULL if none) */
+ char_u *cmd; /* the name of the command (except for :make) */
+ char_u **cmdlinep; /* pointer to pointer of allocated cmdline */
+ cmdidx_T cmdidx; /* the index for the command */
+ long argt; /* flags for the command */
+ int skip; /* don't execute the command, only parse it */
+ int forceit; /* TRUE if ! present */
+ int addr_count; /* the number of addresses given */
+ linenr_T line1; /* the first line number */
+ linenr_T line2; /* the second line number or count */
+ int flags; /* extra flags after count: EXFLAG_ */
+ char_u *do_ecmd_cmd; /* +command arg to be used in edited file */
+ linenr_T do_ecmd_lnum; /* the line number in an edited file */
+ int append; /* TRUE with ":w >>file" command */
+ int usefilter; /* TRUE with ":w !command" and ":r!command" */
+ int amount; /* number of '>' or '<' for shift command */
+ int regname; /* register name (NUL if none) */
+ int force_bin; /* 0, FORCE_BIN or FORCE_NOBIN */
+ int read_edit; /* ++edit argument */
+ int force_ff; /* ++ff= argument (index in cmd[]) */
+ int force_enc; /* ++enc= argument (index in cmd[]) */
+ int bad_char; /* BAD_KEEP, BAD_DROP or replacement byte */
+ int useridx; /* user command index */
+ char_u *errmsg; /* returned error message */
+ char_u *(*getline)__ARGS((int, void *, int));
+ void *cookie; /* argument for getline() */
+ struct condstack *cstack; /* condition stack for ":if" etc. */
+};
+
+#define FORCE_BIN 1 /* ":edit ++bin file" */
+#define FORCE_NOBIN 2 /* ":edit ++nobin file" */
+
+/* Values for "flags" */
+#define EXFLAG_LIST 0x01 /* 'l': list */
+#define EXFLAG_NR 0x02 /* '#': number */
+#define EXFLAG_PRINT 0x04 /* 'p': print */
+
+#endif
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 0a31ccc108..35aa970aac 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -12,6 +12,48 @@
*/
#include "vim.h"
+#include "ex_docmd.h"
+#include "blowfish.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "digraph.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_eval.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "hardcopy.h"
+#include "if_cscope.h"
+#include "main.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "menu.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "ops.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "spell.h"
+#include "syntax.h"
+#include "tag.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "version.h"
+#include "window.h"
#include "os/os.h"
static int quitmore = 0;
@@ -223,7 +265,7 @@ static void ex_folddo __ARGS((exarg_T *eap));
* Declare cmdnames[].
*/
#define DO_DECLARE_EXCMD
-#include "ex_cmds.h"
+#include "ex_cmds_defs.h"
/*
* Table used to quickly search for a command, based on its first character.
diff --git a/src/proto/ex_docmd.pro b/src/ex_docmd.h
index ff83cad83f..f3f9ca16ec 100644
--- a/src/proto/ex_docmd.pro
+++ b/src/ex_docmd.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_EX_DOCMD_H
+#define NEOVIM_EX_DOCMD_H
/* ex_docmd.c */
void do_exmode __ARGS((int improved));
int do_cmdline_cmd __ARGS((char_u *cmd));
@@ -67,3 +69,4 @@ int put_line __ARGS((FILE *fd, char *s));
void dialog_msg __ARGS((char_u *buff, char *format, char_u *fname));
char_u *get_behave_arg __ARGS((expand_T *xp, int idx));
/* vim: set ft=c : */
+#endif /* NEOVIM_EX_DOCMD_H */
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 3ccac9e84f..e4148068f5 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -12,6 +12,14 @@
*/
#include "vim.h"
+#include "ex_eval.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "message.h"
+#include "misc2.h"
+#include "regexp.h"
static void free_msglist __ARGS((struct msglist *l));
diff --git a/src/proto/ex_eval.pro b/src/ex_eval.h
index 7fc87410e0..3685899063 100644
--- a/src/proto/ex_eval.pro
+++ b/src/ex_eval.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_EX_EVAL_H
+#define NEOVIM_EX_EVAL_H
/* ex_eval.c */
int aborting __ARGS((void));
void update_force_abort __ARGS((void));
@@ -36,3 +38,4 @@ void rewind_conditionals __ARGS((struct condstack *cstack, int idx,
void ex_endfunction __ARGS((exarg_T *eap));
int has_loop_cmd __ARGS((char_u *p));
/* vim: set ft=c : */
+#endif /* NEOVIM_EX_EVAL_H */
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 83a0fd3dcc..c3f389e279 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -12,6 +12,37 @@
*/
#include "vim.h"
+#include "ex_getln.h"
+#include "buffer.h"
+#include "charset.h"
+#include "digraph.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_eval.h"
+#include "fileio.h"
+#include "getchar.h"
+#include "if_cscope.h"
+#include "main.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "menu.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "ops.h"
+#include "option.h"
+#include "os_unix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "syntax.h"
+#include "tag.h"
+#include "term.h"
+#include "window.h"
#include "os/os.h"
/*
diff --git a/src/proto/ex_getln.pro b/src/ex_getln.h
index e3a642283f..bf04476e2f 100644
--- a/src/proto/ex_getln.pro
+++ b/src/ex_getln.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_EX_GETLN_H
+#define NEOVIM_EX_GETLN_H
/* ex_getln.c */
char_u *getcmdline __ARGS((int firstc, long count, int indent));
char_u *getcmdline_prompt __ARGS((int firstc, char_u *prompt, int attr,
@@ -64,3 +66,4 @@ void cmd_pchar __ARGS((int c, int offset));
int cmd_gchar __ARGS((int offset));
char_u *script_get __ARGS((exarg_T *eap, char_u *cmd));
/* vim: set ft=c : */
+#endif /* NEOVIM_EX_GETLN_H */
diff --git a/src/farsi.c b/src/farsi.c
index 9c28284166..f3c55216f2 100644
--- a/src/farsi.c
+++ b/src/farsi.c
@@ -7,6 +7,10 @@
* See README.txt for an overview of the Vim source code.
*/
+#include "farsi.h"
+#include "edit.h"
+#include "ex_getln.h"
+
/*
* farsi.c: functions for Farsi language
*
diff --git a/src/farsi.h b/src/farsi.h
index a9dd2fb79f..84c3402431 100644
--- a/src/farsi.h
+++ b/src/farsi.h
@@ -6,6 +6,9 @@
* Do ":help credits" in Vim to see a list of people who contributed.
*/
+#ifndef NEOVIM_FARSI_H
+#define NEOVIM_FARSI_H
+
/*
* Farsi characters are categorized into following types:
*
@@ -224,3 +227,5 @@ EXTERN char_u farsi_text_5[]
= { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'}
#endif
;
+
+#endif /* NEOVIM_FARSI_H */
diff --git a/src/fileio.c b/src/fileio.c
index 8dc31c31c6..482c47e17d 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -12,6 +12,37 @@
*/
#include "vim.h"
+#include "fileio.h"
+#include "blowfish.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_docmd.h"
+#include "ex_eval.h"
+#include "fold.h"
+#include "getchar.h"
+#include "hashtab.h"
+#include "mbyte.h"
+#include "memfile.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "sha256.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
#include "os/os.h"
diff --git a/src/proto/fileio.pro b/src/fileio.h
index ec83342e4d..add97d37d6 100644
--- a/src/proto/fileio.pro
+++ b/src/fileio.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_FILEIO_H
+#define NEOVIM_FILEIO_H
/* fileio.c */
void filemess __ARGS((buf_T *buf, char_u *name, char_u *s, int attr));
int readfile __ARGS((char_u *fname, char_u *sfname, linenr_T from,
@@ -80,3 +82,4 @@ char_u *file_pat_to_reg_pat __ARGS((char_u *pat, char_u *pat_end,
long read_eintr __ARGS((int fd, void *buf, size_t bufsize));
long write_eintr __ARGS((int fd, void *buf, size_t bufsize));
/* vim: set ft=c : */
+#endif /* NEOVIM_FILEIO_H */
diff --git a/src/fold.c b/src/fold.c
index 7a967d8be0..47e5cdfdd2 100644
--- a/src/fold.c
+++ b/src/fold.c
@@ -13,7 +13,21 @@
*/
#include "vim.h"
-
+#include "fold.h"
+#include "charset.h"
+#include "diff.h"
+#include "eval.h"
+#include "ex_docmd.h"
+#include "mark.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "option.h"
+#include "screen.h"
+#include "syntax.h"
+#include "undo.h"
/* local declarations. {{{1 */
/* typedef fold_T {{{2 */
diff --git a/src/proto/fold.pro b/src/fold.h
index 6f498872e7..3ad08b01e5 100644
--- a/src/proto/fold.pro
+++ b/src/fold.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_FOLD_H
+#define NEOVIM_FOLD_H
/* fold.c */
void copyFoldingState __ARGS((win_T *wp_from, win_T *wp_to));
int hasAnyFolding __ARGS((win_T *win));
@@ -48,3 +50,4 @@ char_u *get_foldtext __ARGS((win_T *wp, linenr_T lnum, linenr_T lnume,
void foldtext_cleanup __ARGS((char_u *str));
int put_folds __ARGS((FILE *fd, win_T *wp));
/* vim: set ft=c : */
+#endif /* NEOVIM_FOLD_H */
diff --git a/src/getchar.c b/src/getchar.c
index 91779b348a..7303e3739e 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -17,6 +17,27 @@
*/
#include "vim.h"
+#include "getchar.h"
+#include "charset.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_docmd.h"
+#include "ex_getln.h"
+#include "main.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "ops.h"
+#include "option.h"
+#include "regexp.h"
+#include "screen.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
/*
* These buffers are used for storing:
diff --git a/src/proto/getchar.pro b/src/getchar.h
index df3c9836cd..131286ee50 100644
--- a/src/proto/getchar.pro
+++ b/src/getchar.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_GETCHAR_H
+#define NEOVIM_GETCHAR_H
/* getchar.c */
void free_buff __ARGS((struct buffheader *buf));
char_u *get_recorded __ARGS((void));
@@ -72,3 +74,4 @@ char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod,
void init_mappings __ARGS((void));
void add_map __ARGS((char_u *map, int mode));
/* vim: set ft=c : */
+#endif /* NEOVIM_GETCHAR_H */
diff --git a/src/globals.h b/src/globals.h
index e6db0d866b..056c098368 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -6,6 +6,11 @@
* Do ":help credits" in Vim to see a list of people who contributed.
*/
+#ifndef NEOVIM_GLOBALS_H
+#define NEOVIM_GLOBALS_H
+
+#include "mbyte.h"
+
/*
* definition of global variables
*/
@@ -1197,3 +1202,5 @@ EXTERN char *ignoredp;
* Optional Arabic support. Include it here, so EXTERN and INIT are defined.
*/
# include "arabic.h"
+
+#endif /* NEOVIM_GLOBALS_H */
diff --git a/src/hangulin.c b/src/hangulin.c
index c04a1800ba..185bf0a5bd 100644
--- a/src/hangulin.c
+++ b/src/hangulin.c
@@ -8,6 +8,12 @@
*/
#include "vim.h"
+#include "hangulin.h"
+#include "message.h"
+#include "misc1.h"
+#include "screen.h"
+#include "term.h"
+#include "ui.h"
#ifndef HANGUL_DEFAULT_KEYBOARD
# define HANGUL_DEFAULT_KEYBOARD 3
diff --git a/src/proto/hangulin.pro b/src/hangulin.h
index adfde142ff..1023955c0d 100644
--- a/src/proto/hangulin.pro
+++ b/src/hangulin.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_HANGULIN_H
+#define NEOVIM_HANGULIN_H
/* hangulin.c */
int hangul_input_state_get __ARGS((void));
void hangul_input_state_set __ARGS((int state));
@@ -7,3 +9,4 @@ void hangul_keyboard_set __ARGS((void));
int hangul_input_process __ARGS((char_u *s, int len));
void hangul_input_clear __ARGS((void));
/* vim: set ft=c : */
+#endif /* NEOVIM_HANGULIN_H */
diff --git a/src/hardcopy.c b/src/hardcopy.c
index 9ebe087bca..4f5ef53799 100644
--- a/src/hardcopy.c
+++ b/src/hardcopy.c
@@ -12,7 +12,24 @@
*/
#include "vim.h"
-#include "version.h"
+#include "version_defs.h"
+#include "hardcopy.h"
+#include "buffer.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "fileio.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "option.h"
+#include "screen.h"
+#include "syntax.h"
+#include "term.h"
+#include "ui.h"
/*
* To implement printing on a platform, the following functions must be
diff --git a/src/proto/hardcopy.pro b/src/hardcopy.h
index 3744181371..84cbe02be8 100644
--- a/src/proto/hardcopy.pro
+++ b/src/hardcopy.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_HARDCOPY_H
+#define NEOVIM_HARDCOPY_H
/* hardcopy.c */
char_u *parse_printoptions __ARGS((void));
char_u *parse_printmbfont __ARGS((void));
@@ -19,3 +21,4 @@ void mch_print_set_font __ARGS((int iBold, int iItalic, int iUnderline));
void mch_print_set_bg __ARGS((long_u bgcol));
void mch_print_set_fg __ARGS((long_u fgcol));
/* vim: set ft=c : */
+#endif /* NEOVIM_HARDCOPY_H */
diff --git a/src/hashtab.c b/src/hashtab.c
index 2682885113..cdea743777 100644
--- a/src/hashtab.c
+++ b/src/hashtab.c
@@ -28,8 +28,9 @@
*/
#include "vim.h"
-
-
+#include "hashtab.h"
+#include "message.h"
+#include "misc2.h"
/* Magic value for algorithm that walks through the array. */
#define PERTURB_SHIFT 5
diff --git a/src/proto/hashtab.pro b/src/hashtab.h
index c90f44898e..a1dfa63162 100644
--- a/src/proto/hashtab.pro
+++ b/src/hashtab.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_HASHTAB_H
+#define NEOVIM_HASHTAB_H
/* hashtab.c */
void hash_init __ARGS((hashtab_T *ht));
void hash_clear __ARGS((hashtab_T *ht));
@@ -13,3 +15,4 @@ void hash_lock __ARGS((hashtab_T *ht));
void hash_unlock __ARGS((hashtab_T *ht));
hash_T hash_hash __ARGS((char_u *key));
/* vim: set ft=c : */
+#endif /* NEOVIM_HASHTAB_H */
diff --git a/src/if_cscope.c b/src/if_cscope.c
index cbdcf6b255..47a835a314 100644
--- a/src/if_cscope.c
+++ b/src/if_cscope.c
@@ -10,14 +10,25 @@
*/
#include "vim.h"
-
+#include "if_cscope.h"
+#include "charset.h"
+#include "eval.h"
+#include "fileio.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "tag.h"
+#include "ui.h"
+#include "window.h"
#include <sys/types.h>
#include <sys/stat.h>
#if defined(UNIX)
# include <sys/wait.h>
#endif
-#include "if_cscope.h"
+#include "if_cscope_defs.h"
static void cs_usage_msg __ARGS((csid_e x));
static int cs_add __ARGS((exarg_T *eap));
@@ -542,7 +553,7 @@ staterr:
#if defined(UNIX)
else if (S_ISREG(statbuf.st_mode) || S_ISLNK(statbuf.st_mode))
#else
- /* WIN32 - substitute define S_ISREG from os_unix.h */
+ /* WIN32 - substitute define S_ISREG from os_unix_defs.h */
else if (((statbuf.st_mode) & S_IFMT) == S_IFREG)
#endif
{
diff --git a/src/if_cscope.h b/src/if_cscope.h
index 3ed89715fc..35cf432c46 100644
--- a/src/if_cscope.h
+++ b/src/if_cscope.h
@@ -1,72 +1,16 @@
-/* vi:set ts=8 sts=4 sw=4:
- *
- * CSCOPE support for Vim added by Andy Kahn <kahn@zk3.dec.com>
- * Ported to Win32 by Sergey Khorev <sergey.khorev@gmail.com>
- *
- * The basic idea/structure of cscope for Vim was borrowed from Nvi.
- * There might be a few lines of code that look similar to what Nvi
- * has. If this is a problem and requires inclusion of the annoying
- * BSD license, then sue me; I'm not worth much anyway.
- */
-
-
-#if defined(UNIX)
-# include <sys/types.h> /* pid_t */
-# include <sys/stat.h> /* dev_t, ino_t */
-#else
-#endif
-
-#define CSCOPE_SUCCESS 0
-#define CSCOPE_FAILURE -1
-
-#define CSCOPE_DBFILE "cscope.out"
-#define CSCOPE_PROMPT ">> "
-
-/*
- * s 0name Find this C symbol
- * g 1name Find this definition
- * d 2name Find functions called by this function
- * c 3name Find functions calling this function
- * t 4string find text string (cscope 12.9)
- * t 4name Find assignments to (cscope 13.3)
- * 5pattern change pattern -- NOT USED
- * e 6pattern Find this egrep pattern
- * f 7name Find this file
- * i 8name Find files #including this file
- */
-
-typedef struct {
- char * name;
- int (*func)__ARGS((exarg_T *eap));
- char * help;
- char * usage;
- int cansplit; /* if supports splitting window */
-} cscmd_T;
-
-typedef struct csi {
- char * fname; /* cscope db name */
- char * ppath; /* path to prepend (the -P option) */
- char * flags; /* additional cscope flags/options (e.g, -p2) */
-#if defined(UNIX)
- pid_t pid; /* PID of the connected cscope process. */
- dev_t st_dev; /* ID of dev containing cscope db */
- ino_t st_ino; /* inode number of cscope db */
-#else
-#endif
-
- FILE * fr_fp; /* from cscope: FILE. */
- FILE * to_fp; /* to cscope: FILE. */
-} csinfo_T;
-
-typedef enum { Add, Find, Help, Kill, Reset, Show } csid_e;
-
-typedef enum {
- Store,
- Get,
- Free,
- Print
-} mcmd_e;
-
-
-
-/* the end */
+#ifndef NEOVIM_IF_CSCOPE_H
+#define NEOVIM_IF_CSCOPE_H
+/* if_cscope.c */
+char_u *get_cscope_name __ARGS((expand_T *xp, int idx));
+void set_context_in_cscope_cmd __ARGS((expand_T *xp, char_u *arg,
+ cmdidx_T cmdidx));
+void do_cscope __ARGS((exarg_T *eap));
+void do_scscope __ARGS((exarg_T *eap));
+void do_cstag __ARGS((exarg_T *eap));
+int cs_fgets __ARGS((char_u *buf, int size));
+void cs_free_tags __ARGS((void));
+void cs_print_tags __ARGS((void));
+int cs_connection __ARGS((int num, char_u *dbpath, char_u *ppath));
+void cs_end __ARGS((void));
+/* vim: set ft=c : */
+#endif /* NEOVIM_IF_CSCOPE_H */
diff --git a/src/if_cscope_defs.h b/src/if_cscope_defs.h
new file mode 100644
index 0000000000..3ed89715fc
--- /dev/null
+++ b/src/if_cscope_defs.h
@@ -0,0 +1,72 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * CSCOPE support for Vim added by Andy Kahn <kahn@zk3.dec.com>
+ * Ported to Win32 by Sergey Khorev <sergey.khorev@gmail.com>
+ *
+ * The basic idea/structure of cscope for Vim was borrowed from Nvi.
+ * There might be a few lines of code that look similar to what Nvi
+ * has. If this is a problem and requires inclusion of the annoying
+ * BSD license, then sue me; I'm not worth much anyway.
+ */
+
+
+#if defined(UNIX)
+# include <sys/types.h> /* pid_t */
+# include <sys/stat.h> /* dev_t, ino_t */
+#else
+#endif
+
+#define CSCOPE_SUCCESS 0
+#define CSCOPE_FAILURE -1
+
+#define CSCOPE_DBFILE "cscope.out"
+#define CSCOPE_PROMPT ">> "
+
+/*
+ * s 0name Find this C symbol
+ * g 1name Find this definition
+ * d 2name Find functions called by this function
+ * c 3name Find functions calling this function
+ * t 4string find text string (cscope 12.9)
+ * t 4name Find assignments to (cscope 13.3)
+ * 5pattern change pattern -- NOT USED
+ * e 6pattern Find this egrep pattern
+ * f 7name Find this file
+ * i 8name Find files #including this file
+ */
+
+typedef struct {
+ char * name;
+ int (*func)__ARGS((exarg_T *eap));
+ char * help;
+ char * usage;
+ int cansplit; /* if supports splitting window */
+} cscmd_T;
+
+typedef struct csi {
+ char * fname; /* cscope db name */
+ char * ppath; /* path to prepend (the -P option) */
+ char * flags; /* additional cscope flags/options (e.g, -p2) */
+#if defined(UNIX)
+ pid_t pid; /* PID of the connected cscope process. */
+ dev_t st_dev; /* ID of dev containing cscope db */
+ ino_t st_ino; /* inode number of cscope db */
+#else
+#endif
+
+ FILE * fr_fp; /* from cscope: FILE. */
+ FILE * to_fp; /* to cscope: FILE. */
+} csinfo_T;
+
+typedef enum { Add, Find, Help, Kill, Reset, Show } csid_e;
+
+typedef enum {
+ Store,
+ Get,
+ Free,
+ Print
+} mcmd_e;
+
+
+
+/* the end */
diff --git a/src/keymap.h b/src/keymap.h
index 766413c30c..140eee5322 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -14,7 +14,7 @@
/*
* For MSDOS some keys produce codes larger than 0xff. They are split into two
- * chars, the first one is K_NUL (same value used in term.h).
+ * chars, the first one is K_NUL (same value used in term_defs.h).
*/
#define K_NUL (0xce) /* for MSDOS: special key follows */
diff --git a/src/main.c b/src/main.c
index f6093a5b38..418c579209 100644
--- a/src/main.c
+++ b/src/main.c
@@ -9,6 +9,38 @@
#define EXTERN
#include "vim.h"
+#include "main.h"
+#include "blowfish.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "hashtab.h"
+#include "if_cscope.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "ops.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "screen.h"
+#include "syntax.h"
+#include "term.h"
+#include "ui.h"
+#include "version.h"
+#include "window.h"
/* Maximum number of commands from + or -c arguments. */
#define MAX_ARG_CMDS 10
diff --git a/src/proto/main.pro b/src/main.h
index a93b8de2ae..1e407ae154 100644
--- a/src/proto/main.pro
+++ b/src/main.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MAIN_H
+#define NEOVIM_MAIN_H
/* main.c */
void main_loop __ARGS((int cmdwin, int noexmode));
void getout_preserve_modified __ARGS((int exitval));
@@ -25,3 +27,4 @@ void farsi_fkey __ARGS((cmdarg_T *cap));
int arabic_shape __ARGS((int c, int *ccp, int *c1p, int prev_c, int prev_c1,
int next_c));
/* vim: set ft=c : */
+#endif /* NEOVIM_MAIN_H */
diff --git a/src/mark.c b/src/mark.c
index 52f51b7679..db274cda50 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -12,6 +12,24 @@
*/
#include "vim.h"
+#include "mark.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "fileio.h"
+#include "fold.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "option.h"
+#include "quickfix.h"
+#include "search.h"
+#include "term.h"
+#include "ui.h"
#include "os/os.h"
/*
diff --git a/src/proto/mark.pro b/src/mark.h
index 47623f4847..f78a41bbc4 100644
--- a/src/proto/mark.pro
+++ b/src/mark.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MARK_H
+#define NEOVIM_MARK_H
/* mark.c */
int setmark __ARGS((int c));
int setmark_pos __ARGS((int c, pos_T *pos, int fnum));
@@ -32,3 +34,4 @@ int write_viminfo_marks __ARGS((FILE *fp_out));
void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof,
int flags));
/* vim: set ft=c : */
+#endif /* NEOVIM_MARK_H */
diff --git a/src/mbyte.c b/src/mbyte.c
index dfbaf29f1b..8a1fbef901 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -78,6 +78,17 @@
*/
#include "vim.h"
+#include "mbyte.h"
+#include "charset.h"
+#include "fileio.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "option.h"
+#include "screen.h"
+#include "spell.h"
+#include "ui.h"
# define WINBYTE BYTE
diff --git a/src/proto/mbyte.pro b/src/mbyte.h
index c440d62a4e..b9b5aa05d7 100644
--- a/src/proto/mbyte.pro
+++ b/src/mbyte.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MBYTE_H
+#define NEOVIM_MBYTE_H
/* mbyte.c */
int enc_canon_props __ARGS((char_u *name));
char_u *mb_init __ARGS((void));
@@ -98,3 +100,4 @@ char_u *string_convert __ARGS((vimconv_T *vcp, char_u *ptr, int *lenp));
char_u *string_convert_ext __ARGS((vimconv_T *vcp, char_u *ptr, int *lenp,
int *unconvlenp));
/* vim: set ft=c : */
+#endif /* NEOVIM_MBYTE_H */
diff --git a/src/memfile.c b/src/memfile.c
index f4a49b1cef..d3b8bed6cc 100644
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -33,6 +33,14 @@
*/
#include "vim.h"
+#include "memfile.h"
+#include "fileio.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "os_unix.h"
+#include "ui.h"
/*
* Some systems have the page size in statfs.f_bsize, some in stat.st_blksize
diff --git a/src/proto/memfile.pro b/src/memfile.h
index 3983b4799c..0ea6b9fd17 100644
--- a/src/proto/memfile.pro
+++ b/src/memfile.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MEMFILE_H
+#define NEOVIM_MEMFILE_H
/* memfile.c */
memfile_T *mf_open __ARGS((char_u *fname, int flags));
int mf_open_file __ARGS((memfile_T *mfp, char_u *fname));
@@ -16,3 +18,4 @@ void mf_set_ffname __ARGS((memfile_T *mfp));
void mf_fullname __ARGS((memfile_T *mfp));
int mf_need_trans __ARGS((memfile_T *mfp));
/* vim: set ft=c : */
+#endif /* NEOVIM_MEMFILE_H */
diff --git a/src/memline.c b/src/memline.c
index 09818a5115..292d09a37a 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -43,9 +43,30 @@
*/
#include "vim.h"
+#include "memline.h"
+#include "blowfish.h"
+#include "buffer.h"
+#include "eval.h"
+#include "fileio.h"
+#include "main.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memfile.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "option.h"
+#include "os_unix.h"
+#include "screen.h"
+#include "sha256.h"
+#include "spell.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
#include "os/os.h"
-#ifndef UNIX /* it's in os_unix.h for Unix */
+#ifndef UNIX /* it's in os_unix_defs.h for Unix */
# include <time.h>
#endif
diff --git a/src/proto/memline.pro b/src/memline.h
index 97806d38a2..7a18633d25 100644
--- a/src/proto/memline.pro
+++ b/src/memline.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MEMLINE_H
+#define NEOVIM_MEMLINE_H
/* memline.c */
int ml_open __ARGS((buf_T *buf));
void ml_set_crypt_key __ARGS((buf_T *buf, char_u *old_key, int old_cm));
@@ -39,3 +41,4 @@ void ml_decrypt_data __ARGS((memfile_T *mfp, char_u *data, off_t offset,
long ml_find_line_or_offset __ARGS((buf_T *buf, linenr_T lnum, long *offp));
void goto_byte __ARGS((long cnt));
/* vim: set ft=c : */
+#endif /* NEOVIM_MEMLINE_H */
diff --git a/src/menu.c b/src/menu.c
index bb62296a61..95ac7bd5f5 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -13,6 +13,15 @@
*/
#include "vim.h"
+#include "menu.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_docmd.h"
+#include "getchar.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "term.h"
#define MENUDEPTH 10 /* maximum depth of menus */
diff --git a/src/proto/menu.pro b/src/menu.h
index 80460d2de2..0d76b523bd 100644
--- a/src/proto/menu.pro
+++ b/src/menu.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MENU_H
+#define NEOVIM_MENU_H
/* menu.c */
void ex_menu __ARGS((exarg_T *eap));
char_u *set_context_in_menu_cmd __ARGS((expand_T *xp, char_u *cmd, char_u *arg,
@@ -21,3 +23,4 @@ void ex_emenu __ARGS((exarg_T *eap));
vimmenu_T *gui_find_menu __ARGS((char_u *path_name));
void ex_menutranslate __ARGS((exarg_T *eap));
/* vim: set ft=c : */
+#endif /* NEOVIM_MENU_H */
diff --git a/src/message.c b/src/message.c
index 062a196636..99d52380a4 100644
--- a/src/message.c
+++ b/src/message.c
@@ -14,6 +14,20 @@
#define MESSAGE_FILE /* don't include prototype for smsg() */
#include "vim.h"
+#include "message.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_eval.h"
+#include "fileio.h"
+#include "getchar.h"
+#include "mbyte.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "ops.h"
+#include "option.h"
+#include "screen.h"
+#include "term.h"
+#include "ui.h"
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
# include <math.h>
diff --git a/src/proto/message.pro b/src/message.h
index ece1985213..bd1ef4242c 100644
--- a/src/proto/message.pro
+++ b/src/message.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MESSAGE_H
+#define NEOVIM_MESSAGE_H
/* message.c */
int msg __ARGS((char_u *s));
int verb_msg __ARGS((char_u *s));
@@ -78,3 +80,4 @@ char_u *do_browse __ARGS((int flags, char_u *title, char_u *dflt, char_u *ext,
char_u *initdir, char_u *filter,
buf_T *buf));
/* vim: set ft=c : */
+#endif /* NEOVIM_MESSAGE_H */
diff --git a/src/misc1.c b/src/misc1.c
index 98ed65a08b..2d59948e60 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -12,7 +12,36 @@
*/
#include "vim.h"
-#include "version.h"
+#include "version_defs.h"
+#include "misc1.h"
+#include "charset.h"
+#include "diff.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_docmd.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "main.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc2.h"
+#include "move.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "tag.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
#include "os/os.h"
static char_u *vim_version_dir __ARGS((char_u *vimdir));
diff --git a/src/proto/misc1.pro b/src/misc1.h
index 0497096791..ea7cb1b7e7 100644
--- a/src/proto/misc1.pro
+++ b/src/misc1.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MISC1_H
+#define NEOVIM_MISC1_H
/* misc1.c */
int get_indent __ARGS((void));
int get_indent_lnum __ARGS((linenr_T lnum));
@@ -115,3 +117,4 @@ char_u *get_cmd_output __ARGS((char_u *cmd, char_u *infile, int flags));
void FreeWild __ARGS((int count, char_u **files));
int goto_im __ARGS((void));
/* vim: set ft=c : */
+#endif /* NEOVIM_MISC1_H */
diff --git a/src/misc2.c b/src/misc2.c
index da90eedb55..544a45a315 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -11,6 +11,28 @@
* misc2.c: Various functions.
*/
#include "vim.h"
+#include "misc2.h"
+#include "blowfish.h"
+#include "charset.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_docmd.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "mbyte.h"
+#include "memfile.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "move.h"
+#include "option.h"
+#include "os_unix.h"
+#include "screen.h"
+#include "tag.h"
+#include "term.h"
+#include "ui.h"
+#include "window.h"
#include "os/os.h"
static char_u *username = NULL; /* cached result of mch_get_user_name() */
diff --git a/src/proto/misc2.pro b/src/misc2.h
index c0fd06ff77..7beb681661 100644
--- a/src/proto/misc2.pro
+++ b/src/misc2.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MISC2_H
+#define NEOVIM_MISC2_H
/* misc2.c */
int virtual_active __ARGS((void));
int getviscol __ARGS((void));
@@ -131,3 +133,4 @@ int put_bytes __ARGS((FILE *fd, long_u nr, int len));
void put_time __ARGS((FILE *fd, time_t the_time));
int has_non_ascii __ARGS((char_u *s));
/* vim: set ft=c : */
+#endif /* NEOVIM_MISC2_H */
diff --git a/src/move.c b/src/move.c
index 60547e4a94..d83cfc6b13 100644
--- a/src/move.c
+++ b/src/move.c
@@ -18,6 +18,17 @@
*/
#include "vim.h"
+#include "move.h"
+#include "charset.h"
+#include "diff.h"
+#include "edit.h"
+#include "fold.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "popupmnu.h"
+#include "screen.h"
static void comp_botline __ARGS((win_T *wp));
static int scrolljump_value __ARGS((void));
diff --git a/src/proto/move.pro b/src/move.h
index 595e3b8dd7..bf3371fa2d 100644
--- a/src/proto/move.pro
+++ b/src/move.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_MOVE_H
+#define NEOVIM_MOVE_H
/* move.c */
void update_topline_redraw __ARGS((void));
void update_topline __ARGS((void));
@@ -39,3 +41,4 @@ int onepage __ARGS((int dir, long count));
void halfpage __ARGS((int flag, linenr_T Prenum));
void do_check_cursorbind __ARGS((void));
/* vim: set ft=c : */
+#endif /* NEOVIM_MOVE_H */
diff --git a/src/normal.c b/src/normal.c
index 2a8327a451..75b9319d95 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -13,6 +13,39 @@
*/
#include "vim.h"
+#include "normal.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "digraph.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "main.h"
+#include "mark.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "ops.h"
+#include "option.h"
+#include "quickfix.h"
+#include "screen.h"
+#include "search.h"
+#include "spell.h"
+#include "syntax.h"
+#include "tag.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
/*
* The Visual area is remembered for reselection.
diff --git a/src/proto/normal.pro b/src/normal.h
index a178751474..171c4c928d 100644
--- a/src/proto/normal.pro
+++ b/src/normal.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_NORMAL_H
+#define NEOVIM_NORMAL_H
/* normal.c */
void init_normal_cmds __ARGS((void));
void normal_cmd __ARGS((oparg_T *oap, int toplevel));
@@ -27,3 +29,4 @@ int get_visual_text __ARGS((cmdarg_T *cap, char_u **pp, int *lenp));
void start_selection __ARGS((void));
void may_start_select __ARGS((int c));
/* vim: set ft=c : */
+#endif /* NEOVIM_NORMAL_H */
diff --git a/src/ops.c b/src/ops.c
index 8b2a728acb..5fb256e30d 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -13,6 +13,31 @@
*/
#include "vim.h"
+#include "ops.h"
+#include "buffer.h"
+#include "charset.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_getln.h"
+#include "fold.h"
+#include "getchar.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "screen.h"
+#include "search.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
/*
* Number of registers.
diff --git a/src/proto/ops.pro b/src/ops.h
index f69f71ae25..f9fcbb2656 100644
--- a/src/proto/ops.pro
+++ b/src/ops.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_OPS_H
+#define NEOVIM_OPS_H
/* ops.c */
int get_op_type __ARGS((int char1, int char2));
int op_on_lines __ARGS((int op));
@@ -64,3 +66,4 @@ void write_reg_contents_ex __ARGS((int name, char_u *str, int maxlen,
void clear_oparg __ARGS((oparg_T *oap));
void cursor_pos_info __ARGS((void));
/* vim: set ft=c : */
+#endif /* NEOVIM_OPS_H */
diff --git a/src/option.c b/src/option.c
index 60bf6a663f..ded6fc1314 100644
--- a/src/option.c
+++ b/src/option.c
@@ -11,7 +11,7 @@
* Code to handle user-settable options. This is all pretty much table-
* driven. Checklist for adding a new option:
* - Put it in the options array below (copy an existing entry).
- * - For a global option: Add a variable for it in option.h.
+ * - For a global option: Add a variable for it in option_defs.h.
* - For a buffer or window local option:
* - Add a PV_XX entry to the enum below.
* - Add a variable to the window or buffer struct in structs.h.
@@ -33,6 +33,37 @@
#define IN_OPTION_C
#include "vim.h"
+#include "option.h"
+#include "blowfish.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "digraph.h"
+#include "eval.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "hardcopy.h"
+#include "mbyte.h"
+#include "memfile.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "os_unix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "spell.h"
+#include "syntax.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "window.h"
/*
* The options that are local to a window or buffer have "indir" set to one of
@@ -52,7 +83,7 @@
/*
* Definition of the PV_ values for buffer-local options.
- * The BV_ values are defined in option.h.
+ * The BV_ values are defined in option_defs.h.
*/
#define PV_AI OPT_BUF(BV_AI)
#define PV_AR OPT_BOTH(OPT_BUF(BV_AR))
@@ -130,7 +161,7 @@
/*
* Definition of the PV_ values for window-local options.
- * The WV_ values are defined in option.h.
+ * The WV_ values are defined in option_defs.h.
*/
#define PV_LIST OPT_WIN(WV_LIST)
# define PV_ARAB OPT_WIN(WV_ARAB)
diff --git a/src/option.h b/src/option.h
index 6cc0cce362..e8332cd2aa 100644
--- a/src/option.h
+++ b/src/option.h
@@ -1,768 +1,77 @@
-/* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- */
-
-/*
- * option.h: definition of global variables for settable options
- */
-
-/*
- * Default values for 'errorformat'.
- * The "%f|%l| %m" one is used for when the contents of the quickfix window is
- * written to a file.
- */
-#define DFLT_EFM \
- "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%D%*\\a: Entering directory %*[`']%f',%X%*\\a: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m"
-
-#define DFLT_GREPFORMAT "%f:%l:%m,%f:%l%m,%f %l%m"
-
-/* default values for b_p_ff 'fileformat' and p_ffs 'fileformats' */
-#define FF_DOS "dos"
-#define FF_MAC "mac"
-#define FF_UNIX "unix"
-
-#ifdef USE_CRNL
-# define DFLT_FF "dos"
-# define DFLT_FFS_VIM "dos,unix"
-# define DFLT_FFS_VI "dos,unix" /* also autodetect in compatible mode */
-# define DFLT_TEXTAUTO TRUE
-#else
-# ifdef USE_CR
-# define DFLT_FF "mac"
-# define DFLT_FFS_VIM "mac,unix,dos"
-# define DFLT_FFS_VI "mac,unix,dos"
-# define DFLT_TEXTAUTO TRUE
-# else
-# define DFLT_FF "unix"
-# define DFLT_FFS_VIM "unix,dos"
-# define DFLT_FFS_VI ""
-# define DFLT_TEXTAUTO FALSE
-# endif
-#endif
-
-
-/* Possible values for 'encoding' */
-# define ENC_UCSBOM "ucs-bom" /* check for BOM at start of file */
-
-/* default value for 'encoding' */
-# define ENC_DFLT "latin1"
-
-/* end-of-line style */
-#define EOL_UNKNOWN -1 /* not defined yet */
-#define EOL_UNIX 0 /* NL */
-#define EOL_DOS 1 /* CR NL */
-#define EOL_MAC 2 /* CR */
-
-/* Formatting options for p_fo 'formatoptions' */
-#define FO_WRAP 't'
-#define FO_WRAP_COMS 'c'
-#define FO_RET_COMS 'r'
-#define FO_OPEN_COMS 'o'
-#define FO_Q_COMS 'q'
-#define FO_Q_NUMBER 'n'
-#define FO_Q_SECOND '2'
-#define FO_INS_VI 'v'
-#define FO_INS_LONG 'l'
-#define FO_INS_BLANK 'b'
-#define FO_MBYTE_BREAK 'm' /* break before/after multi-byte char */
-#define FO_MBYTE_JOIN 'M' /* no space before/after multi-byte char */
-#define FO_MBYTE_JOIN2 'B' /* no space between multi-byte chars */
-#define FO_ONE_LETTER '1'
-#define FO_WHITE_PAR 'w' /* trailing white space continues paragr. */
-#define FO_AUTO 'a' /* automatic formatting */
-#define FO_REMOVE_COMS 'j' /* remove comment leaders when joining lines */
-
-#define DFLT_FO_VI "vt"
-#define DFLT_FO_VIM "tcq"
-#define FO_ALL "tcroq2vlb1mMBn,awj" /* for do_set() */
-
-/* characters for the p_cpo option: */
-#define CPO_ALTREAD 'a' /* ":read" sets alternate file name */
-#define CPO_ALTWRITE 'A' /* ":write" sets alternate file name */
-#define CPO_BAR 'b' /* "\|" ends a mapping */
-#define CPO_BSLASH 'B' /* backslash in mapping is not special */
-#define CPO_SEARCH 'c'
-#define CPO_CONCAT 'C' /* Don't concatenate sourced lines */
-#define CPO_DOTTAG 'd' /* "./tags" in 'tags' is in current dir */
-#define CPO_DIGRAPH 'D' /* No digraph after "r", "f", etc. */
-#define CPO_EXECBUF 'e'
-#define CPO_EMPTYREGION 'E' /* operating on empty region is an error */
-#define CPO_FNAMER 'f' /* set file name for ":r file" */
-#define CPO_FNAMEW 'F' /* set file name for ":w file" */
-#define CPO_GOTO1 'g' /* goto line 1 for ":edit" */
-#define CPO_INSEND 'H' /* "I" inserts before last blank in line */
-#define CPO_INTMOD 'i' /* interrupt a read makes buffer modified */
-#define CPO_INDENT 'I' /* remove auto-indent more often */
-#define CPO_JOINSP 'j' /* only use two spaces for join after '.' */
-#define CPO_ENDOFSENT 'J' /* need two spaces to detect end of sentence */
-#define CPO_KEYCODE 'k' /* don't recognize raw key code in mappings */
-#define CPO_KOFFSET 'K' /* don't wait for key code in mappings */
-#define CPO_LITERAL 'l' /* take char after backslash in [] literal */
-#define CPO_LISTWM 'L' /* 'list' changes wrapmargin */
-#define CPO_SHOWMATCH 'm'
-#define CPO_MATCHBSL 'M' /* "%" ignores use of backslashes */
-#define CPO_NUMCOL 'n' /* 'number' column also used for text */
-#define CPO_LINEOFF 'o'
-#define CPO_OVERNEW 'O' /* silently overwrite new file */
-#define CPO_LISP 'p' /* 'lisp' indenting */
-#define CPO_FNAMEAPP 'P' /* set file name for ":w >>file" */
-#define CPO_JOINCOL 'q' /* with "3J" use column after first join */
-#define CPO_REDO 'r'
-#define CPO_REMMARK 'R' /* remove marks when filtering */
-#define CPO_BUFOPT 's'
-#define CPO_BUFOPTGLOB 'S'
-#define CPO_TAGPAT 't'
-#define CPO_UNDO 'u' /* "u" undoes itself */
-#define CPO_BACKSPACE 'v' /* "v" keep deleted text */
-#define CPO_CW 'w' /* "cw" only changes one blank */
-#define CPO_FWRITE 'W' /* "w!" doesn't overwrite readonly files */
-#define CPO_ESC 'x'
-#define CPO_REPLCNT 'X' /* "R" with a count only deletes chars once */
-#define CPO_YANK 'y'
-#define CPO_KEEPRO 'Z' /* don't reset 'readonly' on ":w!" */
-#define CPO_DOLLAR '$'
-#define CPO_FILTER '!'
-#define CPO_MATCH '%'
-#define CPO_STAR '*' /* ":*" means ":@" */
-#define CPO_PLUS '+' /* ":write file" resets 'modified' */
-#define CPO_MINUS '-' /* "9-" fails at and before line 9 */
-#define CPO_SPECI '<' /* don't recognize <> in mappings */
-#define CPO_REGAPPEND '>' /* insert NL when appending to a register */
-/* POSIX flags */
-#define CPO_HASH '#' /* "D", "o" and "O" do not use a count */
-#define CPO_PARA '{' /* "{" is also a paragraph boundary */
-#define CPO_TSIZE '|' /* $LINES and $COLUMNS overrule term size */
-#define CPO_PRESERVE '&' /* keep swap file after :preserve */
-#define CPO_SUBPERCENT '/' /* % in :s string uses previous one */
-#define CPO_BACKSL '\\' /* \ is not special in [] */
-#define CPO_CHDIR '.' /* don't chdir if buffer is modified */
-#define CPO_SCOLON ';' /* using "," and ";" will skip over char if
- * cursor would not move */
-/* default values for Vim, Vi and POSIX */
-#define CPO_VIM "aABceFs"
-#define CPO_VI "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>;"
-#define CPO_ALL \
- "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\.;"
-
-/* characters for p_ww option: */
-#define WW_ALL "bshl<>[],~"
-
-/* characters for p_mouse option: */
-#define MOUSE_NORMAL 'n' /* use mouse in Normal mode */
-#define MOUSE_VISUAL 'v' /* use mouse in Visual/Select mode */
-#define MOUSE_INSERT 'i' /* use mouse in Insert mode */
-#define MOUSE_COMMAND 'c' /* use mouse in Command-line mode */
-#define MOUSE_HELP 'h' /* use mouse in help buffers */
-#define MOUSE_RETURN 'r' /* use mouse for hit-return message */
-#define MOUSE_A "nvich" /* used for 'a' flag */
-#define MOUSE_ALL "anvichr" /* all possible characters */
-#define MOUSE_NONE ' ' /* don't use Visual selection */
-#define MOUSE_NONEF 'x' /* forced modeless selection */
-
-#define COCU_ALL "nvic" /* flags for 'concealcursor' */
-
-/* characters for p_shm option: */
-#define SHM_RO 'r' /* readonly */
-#define SHM_MOD 'm' /* modified */
-#define SHM_FILE 'f' /* (file 1 of 2) */
-#define SHM_LAST 'i' /* last line incomplete */
-#define SHM_TEXT 'x' /* tx instead of textmode */
-#define SHM_LINES 'l' /* "L" instead of "lines" */
-#define SHM_NEW 'n' /* "[New]" instead of "[New file]" */
-#define SHM_WRI 'w' /* "[w]" instead of "written" */
-#define SHM_A "rmfixlnw" /* represented by 'a' flag */
-#define SHM_WRITE 'W' /* don't use "written" at all */
-#define SHM_TRUNC 't' /* trunctate file messages */
-#define SHM_TRUNCALL 'T' /* trunctate all messages */
-#define SHM_OVER 'o' /* overwrite file messages */
-#define SHM_OVERALL 'O' /* overwrite more messages */
-#define SHM_SEARCH 's' /* no search hit bottom messages */
-#define SHM_ATTENTION 'A' /* no ATTENTION messages */
-#define SHM_INTRO 'I' /* intro messages */
-#define SHM_ALL "rmfixlnwaWtToOsAI" /* all possible flags for 'shm' */
-
-/* characters for p_go: */
-#define GO_ASEL 'a' /* autoselect */
-#define GO_ASELML 'A' /* autoselect modeless selection */
-#define GO_BOT 'b' /* use bottom scrollbar */
-#define GO_CONDIALOG 'c' /* use console dialog */
-#define GO_TABLINE 'e' /* may show tabline */
-#define GO_FORG 'f' /* start GUI in foreground */
-#define GO_GREY 'g' /* use grey menu items */
-#define GO_HORSCROLL 'h' /* flexible horizontal scrolling */
-#define GO_ICON 'i' /* use Vim icon */
-#define GO_LEFT 'l' /* use left scrollbar */
-#define GO_VLEFT 'L' /* left scrollbar with vert split */
-#define GO_MENUS 'm' /* use menu bar */
-#define GO_NOSYSMENU 'M' /* don't source system menu */
-#define GO_POINTER 'p' /* pointer enter/leave callbacks */
-#define GO_ASELPLUS 'P' /* autoselectPlus */
-#define GO_RIGHT 'r' /* use right scrollbar */
-#define GO_VRIGHT 'R' /* right scrollbar with vert split */
-#define GO_TEAROFF 't' /* add tear-off menu items */
-#define GO_TOOLBAR 'T' /* add toolbar */
-#define GO_FOOTER 'F' /* add footer */
-#define GO_VERTICAL 'v' /* arrange dialog buttons vertically */
-#define GO_ALL "aAbcefFghilmMprtTv" /* all possible flags for 'go' */
-
-/* flags for 'comments' option */
-#define COM_NEST 'n' /* comments strings nest */
-#define COM_BLANK 'b' /* needs blank after string */
-#define COM_START 's' /* start of comment */
-#define COM_MIDDLE 'm' /* middle of comment */
-#define COM_END 'e' /* end of comment */
-#define COM_AUTO_END 'x' /* last char of end closes comment */
-#define COM_FIRST 'f' /* first line comment only */
-#define COM_LEFT 'l' /* left adjusted */
-#define COM_RIGHT 'r' /* right adjusted */
-#define COM_NOBACK 'O' /* don't use for "O" command */
-#define COM_ALL "nbsmexflrO" /* all flags for 'comments' option */
-#define COM_MAX_LEN 50 /* maximum length of a part */
-
-/* flags for 'statusline' option */
-#define STL_FILEPATH 'f' /* path of file in buffer */
-#define STL_FULLPATH 'F' /* full path of file in buffer */
-#define STL_FILENAME 't' /* last part (tail) of file path */
-#define STL_COLUMN 'c' /* column og cursor*/
-#define STL_VIRTCOL 'v' /* virtual column */
-#define STL_VIRTCOL_ALT 'V' /* - with 'if different' display */
-#define STL_LINE 'l' /* line number of cursor */
-#define STL_NUMLINES 'L' /* number of lines in buffer */
-#define STL_BUFNO 'n' /* current buffer number */
-#define STL_KEYMAP 'k' /* 'keymap' when active */
-#define STL_OFFSET 'o' /* offset of character under cursor*/
-#define STL_OFFSET_X 'O' /* - in hexadecimal */
-#define STL_BYTEVAL 'b' /* byte value of character */
-#define STL_BYTEVAL_X 'B' /* - in hexadecimal */
-#define STL_ROFLAG 'r' /* readonly flag */
-#define STL_ROFLAG_ALT 'R' /* - other display */
-#define STL_HELPFLAG 'h' /* window is showing a help file */
-#define STL_HELPFLAG_ALT 'H' /* - other display */
-#define STL_FILETYPE 'y' /* 'filetype' */
-#define STL_FILETYPE_ALT 'Y' /* - other display */
-#define STL_PREVIEWFLAG 'w' /* window is showing the preview buf */
-#define STL_PREVIEWFLAG_ALT 'W' /* - other display */
-#define STL_MODIFIED 'm' /* modified flag */
-#define STL_MODIFIED_ALT 'M' /* - other display */
-#define STL_QUICKFIX 'q' /* quickfix window description */
-#define STL_PERCENTAGE 'p' /* percentage through file */
-#define STL_ALTPERCENT 'P' /* percentage as TOP BOT ALL or NN% */
-#define STL_ARGLISTSTAT 'a' /* argument list status as (x of y) */
-#define STL_PAGENUM 'N' /* page number (when printing)*/
-#define STL_VIM_EXPR '{' /* start of expression to substitute */
-#define STL_MIDDLEMARK '=' /* separation between left and right */
-#define STL_TRUNCMARK '<' /* truncation mark if line is too long*/
-#define STL_USER_HL '*' /* highlight from (User)1..9 or 0 */
-#define STL_HIGHLIGHT '#' /* highlight name */
-#define STL_TABPAGENR 'T' /* tab page label nr */
-#define STL_TABCLOSENR 'X' /* tab page close nr */
-#define STL_ALL ((char_u *) "fFtcvVlLknoObBrRhHmYyWwMqpPaN{#")
-
-/* flags used for parsed 'wildmode' */
-#define WIM_FULL 1
-#define WIM_LONGEST 2
-#define WIM_LIST 4
-
-/* arguments for can_bs() */
-#define BS_INDENT 'i' /* "Indent" */
-#define BS_EOL 'o' /* "eOl" */
-#define BS_START 's' /* "Start" */
-
-#define LISPWORD_VALUE \
- "defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object"
-
-/*
- * The following are actual variables for the options
- */
-
-EXTERN long p_aleph; /* 'aleph' */
-EXTERN int p_acd; /* 'autochdir' */
-EXTERN char_u *p_ambw; /* 'ambiwidth' */
-EXTERN int p_ar; /* 'autoread' */
-EXTERN int p_aw; /* 'autowrite' */
-EXTERN int p_awa; /* 'autowriteall' */
-EXTERN char_u *p_bs; /* 'backspace' */
-EXTERN char_u *p_bg; /* 'background' */
-EXTERN int p_bk; /* 'backup' */
-EXTERN char_u *p_bkc; /* 'backupcopy' */
-EXTERN unsigned bkc_flags;
-#ifdef IN_OPTION_C
-static char *(p_bkc_values[]) =
-{"yes", "auto", "no", "breaksymlink", "breakhardlink", NULL};
-#endif
-# define BKC_YES 0x001
-# define BKC_AUTO 0x002
-# define BKC_NO 0x004
-# define BKC_BREAKSYMLINK 0x008
-# define BKC_BREAKHARDLINK 0x010
-EXTERN char_u *p_bdir; /* 'backupdir' */
-EXTERN char_u *p_bex; /* 'backupext' */
-EXTERN char_u *p_bsk; /* 'backupskip' */
-EXTERN char_u *p_cm; /* 'cryptmethod' */
-EXTERN char_u *p_breakat; /* 'breakat' */
-EXTERN char_u *p_cmp; /* 'casemap' */
-EXTERN unsigned cmp_flags;
-# ifdef IN_OPTION_C
-static char *(p_cmp_values[]) = {"internal", "keepascii", NULL};
-# endif
-# define CMP_INTERNAL 0x001
-# define CMP_KEEPASCII 0x002
-EXTERN char_u *p_enc; /* 'encoding' */
-EXTERN int p_deco; /* 'delcombine' */
-EXTERN char_u *p_ccv; /* 'charconvert' */
-EXTERN char_u *p_cedit; /* 'cedit' */
-EXTERN long p_cwh; /* 'cmdwinheight' */
-EXTERN long p_ch; /* 'cmdheight' */
-EXTERN int p_confirm; /* 'confirm' */
-EXTERN int p_cp; /* 'compatible' */
-EXTERN char_u *p_cot; /* 'completeopt' */
-EXTERN long p_ph; /* 'pumheight' */
-EXTERN char_u *p_cpo; /* 'cpoptions' */
-EXTERN char_u *p_csprg; /* 'cscopeprg' */
-EXTERN int p_csre; /* 'cscoperelative' */
-EXTERN char_u *p_csqf; /* 'cscopequickfix' */
-# define CSQF_CMDS "sgdctefi"
-# define CSQF_FLAGS "+-0"
-EXTERN int p_cst; /* 'cscopetag' */
-EXTERN long p_csto; /* 'cscopetagorder' */
-EXTERN long p_cspc; /* 'cscopepathcomp' */
-EXTERN int p_csverbose; /* 'cscopeverbose' */
-EXTERN char_u *p_debug; /* 'debug' */
-EXTERN char_u *p_def; /* 'define' */
-EXTERN char_u *p_inc;
-EXTERN char_u *p_dip; /* 'diffopt' */
-EXTERN char_u *p_dex; /* 'diffexpr' */
-EXTERN char_u *p_dict; /* 'dictionary' */
-EXTERN int p_dg; /* 'digraph' */
-EXTERN char_u *p_dir; /* 'directory' */
-EXTERN char_u *p_dy; /* 'display' */
-EXTERN unsigned dy_flags;
-#ifdef IN_OPTION_C
-static char *(p_dy_values[]) = {"lastline", "uhex", NULL};
-#endif
-#define DY_LASTLINE 0x001
-#define DY_UHEX 0x002
-EXTERN int p_ed; /* 'edcompatible' */
-EXTERN char_u *p_ead; /* 'eadirection' */
-EXTERN int p_ea; /* 'equalalways' */
-EXTERN char_u *p_ep; /* 'equalprg' */
-EXTERN int p_eb; /* 'errorbells' */
-EXTERN char_u *p_ef; /* 'errorfile' */
-EXTERN char_u *p_efm; /* 'errorformat' */
-EXTERN char_u *p_gefm; /* 'grepformat' */
-EXTERN char_u *p_gp; /* 'grepprg' */
-EXTERN char_u *p_ei; /* 'eventignore' */
-EXTERN int p_ek; /* 'esckeys' */
-EXTERN int p_exrc; /* 'exrc' */
-EXTERN char_u *p_fencs; /* 'fileencodings' */
-EXTERN char_u *p_ffs; /* 'fileformats' */
-EXTERN long p_fic; /* 'fileignorecase' */
-EXTERN char_u *p_fcl; /* 'foldclose' */
-EXTERN long p_fdls; /* 'foldlevelstart' */
-EXTERN char_u *p_fdo; /* 'foldopen' */
-EXTERN unsigned fdo_flags;
-# ifdef IN_OPTION_C
-static char *(p_fdo_values[]) = {"all", "block", "hor", "mark", "percent",
- "quickfix", "search", "tag", "insert",
- "undo", "jump", NULL};
-# endif
-# define FDO_ALL 0x001
-# define FDO_BLOCK 0x002
-# define FDO_HOR 0x004
-# define FDO_MARK 0x008
-# define FDO_PERCENT 0x010
-# define FDO_QUICKFIX 0x020
-# define FDO_SEARCH 0x040
-# define FDO_TAG 0x080
-# define FDO_INSERT 0x100
-# define FDO_UNDO 0x200
-# define FDO_JUMP 0x400
-EXTERN char_u *p_fp; /* 'formatprg' */
-#ifdef HAVE_FSYNC
-EXTERN int p_fs; /* 'fsync' */
-#endif
-EXTERN int p_gd; /* 'gdefault' */
-EXTERN char_u *p_pdev; /* 'printdevice' */
-EXTERN char_u *p_penc; /* 'printencoding' */
-EXTERN char_u *p_pexpr; /* 'printexpr' */
-EXTERN char_u *p_pmfn; /* 'printmbfont' */
-EXTERN char_u *p_pmcs; /* 'printmbcharset' */
-EXTERN char_u *p_pfn; /* 'printfont' */
-EXTERN char_u *p_popt; /* 'printoptions' */
-EXTERN char_u *p_header; /* 'printheader' */
-EXTERN int p_prompt; /* 'prompt' */
-#ifdef CURSOR_SHAPE
-EXTERN char_u *p_guicursor; /* 'guicursor' */
-#endif
-EXTERN char_u *p_hf; /* 'helpfile' */
-EXTERN long p_hh; /* 'helpheight' */
-EXTERN char_u *p_hlg; /* 'helplang' */
-EXTERN int p_hid; /* 'hidden' */
-/* Use P_HID to check if a buffer is to be hidden when it is no longer
- * visible in a window. */
-# define P_HID(buf) (buf_hide(buf))
-EXTERN char_u *p_hl; /* 'highlight' */
-EXTERN int p_hls; /* 'hlsearch' */
-EXTERN long p_hi; /* 'history' */
-EXTERN int p_hkmap; /* 'hkmap' */
-EXTERN int p_hkmapp; /* 'hkmapp' */
-EXTERN int p_fkmap; /* 'fkmap' */
-EXTERN int p_altkeymap; /* 'altkeymap' */
-EXTERN int p_arshape; /* 'arabicshape' */
-EXTERN int p_icon; /* 'icon' */
-EXTERN char_u *p_iconstring; /* 'iconstring' */
-EXTERN int p_ic; /* 'ignorecase' */
-#ifdef USE_IM_CONTROL
-EXTERN int p_imcmdline; /* 'imcmdline' */
-EXTERN int p_imdisable; /* 'imdisable' */
-#endif
-EXTERN int p_is; /* 'incsearch' */
-EXTERN int p_im; /* 'insertmode' */
-EXTERN char_u *p_isf; /* 'isfname' */
-EXTERN char_u *p_isi; /* 'isident' */
-EXTERN char_u *p_isp; /* 'isprint' */
-EXTERN int p_js; /* 'joinspaces' */
-EXTERN char_u *p_kp; /* 'keywordprg' */
-EXTERN char_u *p_km; /* 'keymodel' */
-EXTERN char_u *p_langmap; /* 'langmap'*/
-EXTERN char_u *p_lm; /* 'langmenu' */
-EXTERN char_u *p_lispwords; /* 'lispwords' */
-EXTERN long p_ls; /* 'laststatus' */
-EXTERN long p_stal; /* 'showtabline' */
-EXTERN char_u *p_lcs; /* 'listchars' */
-
-EXTERN int p_lz; /* 'lazyredraw' */
-EXTERN int p_lpl; /* 'loadplugins' */
-EXTERN int p_magic; /* 'magic' */
-EXTERN char_u *p_mef; /* 'makeef' */
-EXTERN char_u *p_mp; /* 'makeprg' */
-EXTERN char_u *p_cc; /* 'colorcolumn' */
-EXTERN int p_cc_cols[256]; /* array for 'colorcolumn' columns */
-EXTERN long p_mat; /* 'matchtime' */
-EXTERN long p_mco; /* 'maxcombine' */
-EXTERN long p_mfd; /* 'maxfuncdepth' */
-EXTERN long p_mmd; /* 'maxmapdepth' */
-EXTERN long p_mm; /* 'maxmem' */
-EXTERN long p_mmp; /* 'maxmempattern' */
-EXTERN long p_mmt; /* 'maxmemtot' */
-EXTERN long p_mis; /* 'menuitems' */
-EXTERN char_u *p_msm; /* 'mkspellmem' */
-EXTERN long p_mls; /* 'modelines' */
-EXTERN char_u *p_mouse; /* 'mouse' */
-EXTERN char_u *p_mousem; /* 'mousemodel' */
-EXTERN long p_mouset; /* 'mousetime' */
-EXTERN int p_more; /* 'more' */
-EXTERN char_u *p_opfunc; /* 'operatorfunc' */
-EXTERN char_u *p_para; /* 'paragraphs' */
-EXTERN int p_paste; /* 'paste' */
-EXTERN char_u *p_pt; /* 'pastetoggle' */
-EXTERN char_u *p_pex; /* 'patchexpr' */
-EXTERN char_u *p_pm; /* 'patchmode' */
-EXTERN char_u *p_path; /* 'path' */
-EXTERN char_u *p_cdpath; /* 'cdpath' */
-EXTERN long p_rdt; /* 'redrawtime' */
-EXTERN int p_remap; /* 'remap' */
-EXTERN long p_re; /* 'regexpengine' */
-EXTERN long p_report; /* 'report' */
-EXTERN long p_pvh; /* 'previewheight' */
-EXTERN int p_ari; /* 'allowrevins' */
-EXTERN int p_ri; /* 'revins' */
-EXTERN int p_ru; /* 'ruler' */
-EXTERN char_u *p_ruf; /* 'rulerformat' */
-EXTERN char_u *p_rtp; /* 'runtimepath' */
-EXTERN long p_sj; /* 'scrolljump' */
-EXTERN long p_so; /* 'scrolloff' */
-EXTERN char_u *p_sbo; /* 'scrollopt' */
-EXTERN char_u *p_sections; /* 'sections' */
-EXTERN int p_secure; /* 'secure' */
-EXTERN char_u *p_sel; /* 'selection' */
-EXTERN char_u *p_slm; /* 'selectmode' */
-EXTERN char_u *p_ssop; /* 'sessionoptions' */
-EXTERN unsigned ssop_flags;
-# ifdef IN_OPTION_C
-/* Also used for 'viewoptions'! */
-static char *(p_ssop_values[]) = {"buffers", "winpos", "resize", "winsize",
- "localoptions", "options", "help", "blank",
- "globals", "slash", "unix",
- "sesdir", "curdir", "folds", "cursor",
- "tabpages", NULL};
-# endif
-# define SSOP_BUFFERS 0x001
-# define SSOP_WINPOS 0x002
-# define SSOP_RESIZE 0x004
-# define SSOP_WINSIZE 0x008
-# define SSOP_LOCALOPTIONS 0x010
-# define SSOP_OPTIONS 0x020
-# define SSOP_HELP 0x040
-# define SSOP_BLANK 0x080
-# define SSOP_GLOBALS 0x100
-# define SSOP_SLASH 0x200
-# define SSOP_UNIX 0x400
-# define SSOP_SESDIR 0x800
-# define SSOP_CURDIR 0x1000
-# define SSOP_FOLDS 0x2000
-# define SSOP_CURSOR 0x4000
-# define SSOP_TABPAGES 0x8000
-EXTERN char_u *p_sh; /* 'shell' */
-EXTERN char_u *p_shcf; /* 'shellcmdflag' */
-EXTERN char_u *p_sp; /* 'shellpipe' */
-EXTERN char_u *p_shq; /* 'shellquote' */
-EXTERN char_u *p_sxq; /* 'shellxquote' */
-EXTERN char_u *p_sxe; /* 'shellxescape' */
-EXTERN char_u *p_srr; /* 'shellredir' */
-EXTERN int p_stmp; /* 'shelltemp' */
-#ifdef BACKSLASH_IN_FILENAME
-EXTERN int p_ssl; /* 'shellslash' */
-#endif
-EXTERN char_u *p_stl; /* 'statusline' */
-EXTERN int p_sr; /* 'shiftround' */
-EXTERN char_u *p_shm; /* 'shortmess' */
-EXTERN char_u *p_sbr; /* 'showbreak' */
-EXTERN int p_sc; /* 'showcmd' */
-EXTERN int p_sft; /* 'showfulltag' */
-EXTERN int p_sm; /* 'showmatch' */
-EXTERN int p_smd; /* 'showmode' */
-EXTERN long p_ss; /* 'sidescroll' */
-EXTERN long p_siso; /* 'sidescrolloff' */
-EXTERN int p_scs; /* 'smartcase' */
-EXTERN int p_sta; /* 'smarttab' */
-EXTERN int p_sb; /* 'splitbelow' */
-EXTERN long p_tpm; /* 'tabpagemax' */
-EXTERN char_u *p_tal; /* 'tabline' */
-EXTERN char_u *p_sps; /* 'spellsuggest' */
-EXTERN int p_spr; /* 'splitright' */
-EXTERN int p_sol; /* 'startofline' */
-EXTERN char_u *p_su; /* 'suffixes' */
-EXTERN char_u *p_sws; /* 'swapsync' */
-EXTERN char_u *p_swb; /* 'switchbuf' */
-EXTERN unsigned swb_flags;
-#ifdef IN_OPTION_C
-static char *(p_swb_values[]) = {"useopen", "usetab", "split", "newtab", NULL};
-#endif
-#define SWB_USEOPEN 0x001
-#define SWB_USETAB 0x002
-#define SWB_SPLIT 0x004
-#define SWB_NEWTAB 0x008
-EXTERN int p_tbs; /* 'tagbsearch' */
-EXTERN long p_tl; /* 'taglength' */
-EXTERN int p_tr; /* 'tagrelative' */
-EXTERN char_u *p_tags; /* 'tags' */
-EXTERN int p_tgst; /* 'tagstack' */
-EXTERN int p_tbidi; /* 'termbidi' */
-EXTERN char_u *p_tenc; /* 'termencoding' */
-EXTERN int p_terse; /* 'terse' */
-EXTERN int p_ta; /* 'textauto' */
-EXTERN int p_to; /* 'tildeop' */
-EXTERN int p_timeout; /* 'timeout' */
-EXTERN long p_tm; /* 'timeoutlen' */
-EXTERN int p_title; /* 'title' */
-EXTERN long p_titlelen; /* 'titlelen' */
-EXTERN char_u *p_titleold; /* 'titleold' */
-EXTERN char_u *p_titlestring; /* 'titlestring' */
-EXTERN char_u *p_tsr; /* 'thesaurus' */
-EXTERN int p_ttimeout; /* 'ttimeout' */
-EXTERN long p_ttm; /* 'ttimeoutlen' */
-EXTERN int p_tbi; /* 'ttybuiltin' */
-EXTERN int p_tf; /* 'ttyfast' */
-EXTERN long p_ttyscroll; /* 'ttyscroll' */
-#if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS))
-EXTERN char_u *p_ttym; /* 'ttymouse' */
-EXTERN unsigned ttym_flags;
-# ifdef IN_OPTION_C
-static char *(p_ttym_values[]) =
-{"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", "sgr", NULL};
-# endif
-# define TTYM_XTERM 0x01
-# define TTYM_XTERM2 0x02
-# define TTYM_DEC 0x04
-# define TTYM_NETTERM 0x08
-# define TTYM_JSBTERM 0x10
-# define TTYM_PTERM 0x20
-# define TTYM_URXVT 0x40
-# define TTYM_SGR 0x80
-#endif
-EXTERN char_u *p_udir; /* 'undodir' */
-EXTERN long p_ul; /* 'undolevels' */
-EXTERN long p_ur; /* 'undoreload' */
-EXTERN long p_uc; /* 'updatecount' */
-EXTERN long p_ut; /* 'updatetime' */
-EXTERN char_u *p_fcs; /* 'fillchar' */
-EXTERN char_u *p_viminfo; /* 'viminfo' */
-EXTERN char_u *p_vdir; /* 'viewdir' */
-EXTERN char_u *p_vop; /* 'viewoptions' */
-EXTERN unsigned vop_flags; /* uses SSOP_ flags */
-EXTERN int p_vb; /* 'visualbell' */
-EXTERN char_u *p_ve; /* 'virtualedit' */
-EXTERN unsigned ve_flags;
-# ifdef IN_OPTION_C
-static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", NULL};
-# endif
-# define VE_BLOCK 5 /* includes "all" */
-# define VE_INSERT 6 /* includes "all" */
-# define VE_ALL 4
-# define VE_ONEMORE 8
-EXTERN long p_verbose; /* 'verbose' */
-#ifdef IN_OPTION_C
-char_u *p_vfile = (char_u *)""; /* used before options are initialized */
-#else
-extern char_u *p_vfile; /* 'verbosefile' */
-#endif
-EXTERN int p_warn; /* 'warn' */
-EXTERN char_u *p_wop; /* 'wildoptions' */
-EXTERN long p_window; /* 'window' */
-#if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(LINT) \
- || defined (FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON)
-#define FEAT_WAK
-EXTERN char_u *p_wak; /* 'winaltkeys' */
-#endif
-EXTERN char_u *p_wak;
-EXTERN char_u *p_wig; /* 'wildignore' */
-EXTERN int p_wiv; /* 'weirdinvert' */
-EXTERN char_u *p_ww; /* 'whichwrap' */
-EXTERN long p_wc; /* 'wildchar' */
-EXTERN long p_wcm; /* 'wildcharm' */
-EXTERN long p_wic; /* 'wildignorecase' */
-EXTERN char_u *p_wim; /* 'wildmode' */
-EXTERN int p_wmnu; /* 'wildmenu' */
-EXTERN long p_wh; /* 'winheight' */
-EXTERN long p_wmh; /* 'winminheight' */
-EXTERN long p_wmw; /* 'winminwidth' */
-EXTERN long p_wiw; /* 'winwidth' */
-EXTERN int p_ws; /* 'wrapscan' */
-EXTERN int p_write; /* 'write' */
-EXTERN int p_wa; /* 'writeany' */
-EXTERN int p_wb; /* 'writebackup' */
-EXTERN long p_wd; /* 'writedelay' */
-
-/*
- * "indir" values for buffer-local opions.
- * These need to be defined globally, so that the BV_COUNT can be used with
- * b_p_scriptID[].
- */
-enum {
- BV_AI = 0
- , BV_AR
- , BV_BH
- , BV_BT
- , BV_EFM
- , BV_GP
- , BV_MP
- , BV_BIN
- , BV_BL
- , BV_BOMB
- , BV_CI
- , BV_CIN
- , BV_CINK
- , BV_CINO
- , BV_CINW
- , BV_CM
- , BV_CMS
- , BV_COM
- , BV_CPT
- , BV_DICT
- , BV_TSR
- , BV_CFU
- , BV_DEF
- , BV_INC
- , BV_EOL
- , BV_EP
- , BV_ET
- , BV_FENC
- , BV_BEXPR
- , BV_FEX
- , BV_FF
- , BV_FLP
- , BV_FO
- , BV_FT
- , BV_IMI
- , BV_IMS
- , BV_INDE
- , BV_INDK
- , BV_INEX
- , BV_INF
- , BV_ISK
- , BV_KEY
- , BV_KMAP
- , BV_KP
- , BV_LISP
- , BV_MA
- , BV_ML
- , BV_MOD
- , BV_MPS
- , BV_NF
- , BV_OFU
- , BV_PATH
- , BV_PI
- , BV_QE
- , BV_RO
- , BV_SI
-#ifndef SHORT_FNAME
- , BV_SN
-#endif
- , BV_SMC
- , BV_SYN
- , BV_SPC
- , BV_SPF
- , BV_SPL
- , BV_STS
- , BV_SUA
- , BV_SW
- , BV_SWF
- , BV_TAGS
- , BV_TS
- , BV_TW
- , BV_TX
- , BV_UDF
- , BV_UL
- , BV_WM
- , BV_COUNT /* must be the last one */
-};
-
-/*
- * "indir" values for window-local options.
- * These need to be defined globally, so that the WV_COUNT can be used in the
- * window structure.
- */
-enum {
- WV_LIST = 0
- , WV_ARAB
- , WV_COCU
- , WV_COLE
- , WV_CRBIND
- , WV_DIFF
- , WV_FDC
- , WV_FEN
- , WV_FDI
- , WV_FDL
- , WV_FDM
- , WV_FML
- , WV_FDN
- , WV_FDE
- , WV_FDT
- , WV_FMR
- , WV_LBR
- , WV_NU
- , WV_RNU
- , WV_NUW
- , WV_PVW
- , WV_RL
- , WV_RLC
- , WV_SCBIND
- , WV_SCROLL
- , WV_SPELL
- , WV_CUC
- , WV_CUL
- , WV_CC
- , WV_STL
- , WV_WFH
- , WV_WFW
- , WV_WRAP
- , WV_COUNT /* must be the last one */
-};
-
-/* Value for b_p_ul indicating the global value must be used. */
-#define NO_LOCAL_UNDOLEVEL -123456
+#ifndef NEOVIM_OPTION_H
+#define NEOVIM_OPTION_H
+/* option.c */
+void set_init_1 __ARGS((void));
+void set_string_default __ARGS((char *name, char_u *val));
+void set_number_default __ARGS((char *name, long val));
+void free_all_options __ARGS((void));
+void set_init_2 __ARGS((void));
+void set_init_3 __ARGS((void));
+void set_helplang_default __ARGS((char_u *lang));
+void init_gui_options __ARGS((void));
+void set_title_defaults __ARGS((void));
+int do_set __ARGS((char_u *arg, int opt_flags));
+void set_options_bin __ARGS((int oldval, int newval, int opt_flags));
+int get_viminfo_parameter __ARGS((int type));
+char_u *find_viminfo_parameter __ARGS((int type));
+void check_options __ARGS((void));
+void check_buf_options __ARGS((buf_T *buf));
+void free_string_option __ARGS((char_u *p));
+void clear_string_option __ARGS((char_u **pp));
+void set_term_option_alloced __ARGS((char_u **p));
+int was_set_insecurely __ARGS((char_u *opt, int opt_flags));
+void set_string_option_direct __ARGS((char_u *name, int opt_idx, char_u *val,
+ int opt_flags,
+ int set_sid));
+char_u *check_colorcolumn __ARGS((win_T *wp));
+char_u *check_stl_option __ARGS((char_u *s));
+int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval,
+ int opt_flags));
+int get_option_value_strict __ARGS((char_u *name, long *numval, char_u *
+ *stringval, int opt_type,
+ void *from));
+char_u *option_iter_next __ARGS((void **option, int opt_type));
+char_u *set_option_value __ARGS((char_u *name, long number, char_u *string,
+ int opt_flags));
+char_u *get_term_code __ARGS((char_u *tname));
+char_u *get_highlight_default __ARGS((void));
+char_u *get_encoding_default __ARGS((void));
+int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
+int makefoldset __ARGS((FILE *fd));
+void clear_termoptions __ARGS((void));
+void free_termoptions __ARGS((void));
+void free_one_termoption __ARGS((char_u *var));
+void set_term_defaults __ARGS((void));
+void comp_col __ARGS((void));
+void unset_global_local_option __ARGS((char_u *name, void *from));
+char_u *get_equalprg __ARGS((void));
+void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
+void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
+void check_win_options __ARGS((win_T *win));
+void check_winopt __ARGS((winopt_T *wop));
+void clear_winopt __ARGS((winopt_T *wop));
+void buf_copy_options __ARGS((buf_T *buf, int flags));
+void reset_modifiable __ARGS((void));
+void set_iminsert_global __ARGS((void));
+void set_imsearch_global __ARGS((void));
+void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
+int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file,
+ char_u ***file));
+int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
+int langmap_adjust_mb __ARGS((int c));
+int has_format_option __ARGS((int x));
+int shortmess __ARGS((int x));
+void vimrc_found __ARGS((char_u *fname, char_u *envname));
+void change_compatible __ARGS((int on));
+int option_was_set __ARGS((char_u *name));
+void reset_option_was_set __ARGS((char_u *name));
+int can_bs __ARGS((int what));
+void save_file_ff __ARGS((buf_T *buf));
+int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
+int check_ff_value __ARGS((char_u *p));
+long get_sw_value __ARGS((buf_T *buf));
+long get_sts_value __ARGS((void));
+void find_mps_values __ARGS((int *initc, int *findc, int *backwards,
+ int switchit));
+/* vim: set ft=c : */
+#endif /* NEOVIM_OPTION_H */
diff --git a/src/option_defs.h b/src/option_defs.h
new file mode 100644
index 0000000000..6dc232d03d
--- /dev/null
+++ b/src/option_defs.h
@@ -0,0 +1,768 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+ * Do ":help uganda" in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ */
+
+/*
+ * option_defs.h: definition of global variables for settable options
+ */
+
+/*
+ * Default values for 'errorformat'.
+ * The "%f|%l| %m" one is used for when the contents of the quickfix window is
+ * written to a file.
+ */
+#define DFLT_EFM \
+ "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%D%*\\a: Entering directory %*[`']%f',%X%*\\a: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m"
+
+#define DFLT_GREPFORMAT "%f:%l:%m,%f:%l%m,%f %l%m"
+
+/* default values for b_p_ff 'fileformat' and p_ffs 'fileformats' */
+#define FF_DOS "dos"
+#define FF_MAC "mac"
+#define FF_UNIX "unix"
+
+#ifdef USE_CRNL
+# define DFLT_FF "dos"
+# define DFLT_FFS_VIM "dos,unix"
+# define DFLT_FFS_VI "dos,unix" /* also autodetect in compatible mode */
+# define DFLT_TEXTAUTO TRUE
+#else
+# ifdef USE_CR
+# define DFLT_FF "mac"
+# define DFLT_FFS_VIM "mac,unix,dos"
+# define DFLT_FFS_VI "mac,unix,dos"
+# define DFLT_TEXTAUTO TRUE
+# else
+# define DFLT_FF "unix"
+# define DFLT_FFS_VIM "unix,dos"
+# define DFLT_FFS_VI ""
+# define DFLT_TEXTAUTO FALSE
+# endif
+#endif
+
+
+/* Possible values for 'encoding' */
+# define ENC_UCSBOM "ucs-bom" /* check for BOM at start of file */
+
+/* default value for 'encoding' */
+# define ENC_DFLT "latin1"
+
+/* end-of-line style */
+#define EOL_UNKNOWN -1 /* not defined yet */
+#define EOL_UNIX 0 /* NL */
+#define EOL_DOS 1 /* CR NL */
+#define EOL_MAC 2 /* CR */
+
+/* Formatting options for p_fo 'formatoptions' */
+#define FO_WRAP 't'
+#define FO_WRAP_COMS 'c'
+#define FO_RET_COMS 'r'
+#define FO_OPEN_COMS 'o'
+#define FO_Q_COMS 'q'
+#define FO_Q_NUMBER 'n'
+#define FO_Q_SECOND '2'
+#define FO_INS_VI 'v'
+#define FO_INS_LONG 'l'
+#define FO_INS_BLANK 'b'
+#define FO_MBYTE_BREAK 'm' /* break before/after multi-byte char */
+#define FO_MBYTE_JOIN 'M' /* no space before/after multi-byte char */
+#define FO_MBYTE_JOIN2 'B' /* no space between multi-byte chars */
+#define FO_ONE_LETTER '1'
+#define FO_WHITE_PAR 'w' /* trailing white space continues paragr. */
+#define FO_AUTO 'a' /* automatic formatting */
+#define FO_REMOVE_COMS 'j' /* remove comment leaders when joining lines */
+
+#define DFLT_FO_VI "vt"
+#define DFLT_FO_VIM "tcq"
+#define FO_ALL "tcroq2vlb1mMBn,awj" /* for do_set() */
+
+/* characters for the p_cpo option: */
+#define CPO_ALTREAD 'a' /* ":read" sets alternate file name */
+#define CPO_ALTWRITE 'A' /* ":write" sets alternate file name */
+#define CPO_BAR 'b' /* "\|" ends a mapping */
+#define CPO_BSLASH 'B' /* backslash in mapping is not special */
+#define CPO_SEARCH 'c'
+#define CPO_CONCAT 'C' /* Don't concatenate sourced lines */
+#define CPO_DOTTAG 'd' /* "./tags" in 'tags' is in current dir */
+#define CPO_DIGRAPH 'D' /* No digraph after "r", "f", etc. */
+#define CPO_EXECBUF 'e'
+#define CPO_EMPTYREGION 'E' /* operating on empty region is an error */
+#define CPO_FNAMER 'f' /* set file name for ":r file" */
+#define CPO_FNAMEW 'F' /* set file name for ":w file" */
+#define CPO_GOTO1 'g' /* goto line 1 for ":edit" */
+#define CPO_INSEND 'H' /* "I" inserts before last blank in line */
+#define CPO_INTMOD 'i' /* interrupt a read makes buffer modified */
+#define CPO_INDENT 'I' /* remove auto-indent more often */
+#define CPO_JOINSP 'j' /* only use two spaces for join after '.' */
+#define CPO_ENDOFSENT 'J' /* need two spaces to detect end of sentence */
+#define CPO_KEYCODE 'k' /* don't recognize raw key code in mappings */
+#define CPO_KOFFSET 'K' /* don't wait for key code in mappings */
+#define CPO_LITERAL 'l' /* take char after backslash in [] literal */
+#define CPO_LISTWM 'L' /* 'list' changes wrapmargin */
+#define CPO_SHOWMATCH 'm'
+#define CPO_MATCHBSL 'M' /* "%" ignores use of backslashes */
+#define CPO_NUMCOL 'n' /* 'number' column also used for text */
+#define CPO_LINEOFF 'o'
+#define CPO_OVERNEW 'O' /* silently overwrite new file */
+#define CPO_LISP 'p' /* 'lisp' indenting */
+#define CPO_FNAMEAPP 'P' /* set file name for ":w >>file" */
+#define CPO_JOINCOL 'q' /* with "3J" use column after first join */
+#define CPO_REDO 'r'
+#define CPO_REMMARK 'R' /* remove marks when filtering */
+#define CPO_BUFOPT 's'
+#define CPO_BUFOPTGLOB 'S'
+#define CPO_TAGPAT 't'
+#define CPO_UNDO 'u' /* "u" undoes itself */
+#define CPO_BACKSPACE 'v' /* "v" keep deleted text */
+#define CPO_CW 'w' /* "cw" only changes one blank */
+#define CPO_FWRITE 'W' /* "w!" doesn't overwrite readonly files */
+#define CPO_ESC 'x'
+#define CPO_REPLCNT 'X' /* "R" with a count only deletes chars once */
+#define CPO_YANK 'y'
+#define CPO_KEEPRO 'Z' /* don't reset 'readonly' on ":w!" */
+#define CPO_DOLLAR '$'
+#define CPO_FILTER '!'
+#define CPO_MATCH '%'
+#define CPO_STAR '*' /* ":*" means ":@" */
+#define CPO_PLUS '+' /* ":write file" resets 'modified' */
+#define CPO_MINUS '-' /* "9-" fails at and before line 9 */
+#define CPO_SPECI '<' /* don't recognize <> in mappings */
+#define CPO_REGAPPEND '>' /* insert NL when appending to a register */
+/* POSIX flags */
+#define CPO_HASH '#' /* "D", "o" and "O" do not use a count */
+#define CPO_PARA '{' /* "{" is also a paragraph boundary */
+#define CPO_TSIZE '|' /* $LINES and $COLUMNS overrule term size */
+#define CPO_PRESERVE '&' /* keep swap file after :preserve */
+#define CPO_SUBPERCENT '/' /* % in :s string uses previous one */
+#define CPO_BACKSL '\\' /* \ is not special in [] */
+#define CPO_CHDIR '.' /* don't chdir if buffer is modified */
+#define CPO_SCOLON ';' /* using "," and ";" will skip over char if
+ * cursor would not move */
+/* default values for Vim, Vi and POSIX */
+#define CPO_VIM "aABceFs"
+#define CPO_VI "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>;"
+#define CPO_ALL \
+ "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\.;"
+
+/* characters for p_ww option: */
+#define WW_ALL "bshl<>[],~"
+
+/* characters for p_mouse option: */
+#define MOUSE_NORMAL 'n' /* use mouse in Normal mode */
+#define MOUSE_VISUAL 'v' /* use mouse in Visual/Select mode */
+#define MOUSE_INSERT 'i' /* use mouse in Insert mode */
+#define MOUSE_COMMAND 'c' /* use mouse in Command-line mode */
+#define MOUSE_HELP 'h' /* use mouse in help buffers */
+#define MOUSE_RETURN 'r' /* use mouse for hit-return message */
+#define MOUSE_A "nvich" /* used for 'a' flag */
+#define MOUSE_ALL "anvichr" /* all possible characters */
+#define MOUSE_NONE ' ' /* don't use Visual selection */
+#define MOUSE_NONEF 'x' /* forced modeless selection */
+
+#define COCU_ALL "nvic" /* flags for 'concealcursor' */
+
+/* characters for p_shm option: */
+#define SHM_RO 'r' /* readonly */
+#define SHM_MOD 'm' /* modified */
+#define SHM_FILE 'f' /* (file 1 of 2) */
+#define SHM_LAST 'i' /* last line incomplete */
+#define SHM_TEXT 'x' /* tx instead of textmode */
+#define SHM_LINES 'l' /* "L" instead of "lines" */
+#define SHM_NEW 'n' /* "[New]" instead of "[New file]" */
+#define SHM_WRI 'w' /* "[w]" instead of "written" */
+#define SHM_A "rmfixlnw" /* represented by 'a' flag */
+#define SHM_WRITE 'W' /* don't use "written" at all */
+#define SHM_TRUNC 't' /* trunctate file messages */
+#define SHM_TRUNCALL 'T' /* trunctate all messages */
+#define SHM_OVER 'o' /* overwrite file messages */
+#define SHM_OVERALL 'O' /* overwrite more messages */
+#define SHM_SEARCH 's' /* no search hit bottom messages */
+#define SHM_ATTENTION 'A' /* no ATTENTION messages */
+#define SHM_INTRO 'I' /* intro messages */
+#define SHM_ALL "rmfixlnwaWtToOsAI" /* all possible flags for 'shm' */
+
+/* characters for p_go: */
+#define GO_ASEL 'a' /* autoselect */
+#define GO_ASELML 'A' /* autoselect modeless selection */
+#define GO_BOT 'b' /* use bottom scrollbar */
+#define GO_CONDIALOG 'c' /* use console dialog */
+#define GO_TABLINE 'e' /* may show tabline */
+#define GO_FORG 'f' /* start GUI in foreground */
+#define GO_GREY 'g' /* use grey menu items */
+#define GO_HORSCROLL 'h' /* flexible horizontal scrolling */
+#define GO_ICON 'i' /* use Vim icon */
+#define GO_LEFT 'l' /* use left scrollbar */
+#define GO_VLEFT 'L' /* left scrollbar with vert split */
+#define GO_MENUS 'm' /* use menu bar */
+#define GO_NOSYSMENU 'M' /* don't source system menu */
+#define GO_POINTER 'p' /* pointer enter/leave callbacks */
+#define GO_ASELPLUS 'P' /* autoselectPlus */
+#define GO_RIGHT 'r' /* use right scrollbar */
+#define GO_VRIGHT 'R' /* right scrollbar with vert split */
+#define GO_TEAROFF 't' /* add tear-off menu items */
+#define GO_TOOLBAR 'T' /* add toolbar */
+#define GO_FOOTER 'F' /* add footer */
+#define GO_VERTICAL 'v' /* arrange dialog buttons vertically */
+#define GO_ALL "aAbcefFghilmMprtTv" /* all possible flags for 'go' */
+
+/* flags for 'comments' option */
+#define COM_NEST 'n' /* comments strings nest */
+#define COM_BLANK 'b' /* needs blank after string */
+#define COM_START 's' /* start of comment */
+#define COM_MIDDLE 'm' /* middle of comment */
+#define COM_END 'e' /* end of comment */
+#define COM_AUTO_END 'x' /* last char of end closes comment */
+#define COM_FIRST 'f' /* first line comment only */
+#define COM_LEFT 'l' /* left adjusted */
+#define COM_RIGHT 'r' /* right adjusted */
+#define COM_NOBACK 'O' /* don't use for "O" command */
+#define COM_ALL "nbsmexflrO" /* all flags for 'comments' option */
+#define COM_MAX_LEN 50 /* maximum length of a part */
+
+/* flags for 'statusline' option */
+#define STL_FILEPATH 'f' /* path of file in buffer */
+#define STL_FULLPATH 'F' /* full path of file in buffer */
+#define STL_FILENAME 't' /* last part (tail) of file path */
+#define STL_COLUMN 'c' /* column og cursor*/
+#define STL_VIRTCOL 'v' /* virtual column */
+#define STL_VIRTCOL_ALT 'V' /* - with 'if different' display */
+#define STL_LINE 'l' /* line number of cursor */
+#define STL_NUMLINES 'L' /* number of lines in buffer */
+#define STL_BUFNO 'n' /* current buffer number */
+#define STL_KEYMAP 'k' /* 'keymap' when active */
+#define STL_OFFSET 'o' /* offset of character under cursor*/
+#define STL_OFFSET_X 'O' /* - in hexadecimal */
+#define STL_BYTEVAL 'b' /* byte value of character */
+#define STL_BYTEVAL_X 'B' /* - in hexadecimal */
+#define STL_ROFLAG 'r' /* readonly flag */
+#define STL_ROFLAG_ALT 'R' /* - other display */
+#define STL_HELPFLAG 'h' /* window is showing a help file */
+#define STL_HELPFLAG_ALT 'H' /* - other display */
+#define STL_FILETYPE 'y' /* 'filetype' */
+#define STL_FILETYPE_ALT 'Y' /* - other display */
+#define STL_PREVIEWFLAG 'w' /* window is showing the preview buf */
+#define STL_PREVIEWFLAG_ALT 'W' /* - other display */
+#define STL_MODIFIED 'm' /* modified flag */
+#define STL_MODIFIED_ALT 'M' /* - other display */
+#define STL_QUICKFIX 'q' /* quickfix window description */
+#define STL_PERCENTAGE 'p' /* percentage through file */
+#define STL_ALTPERCENT 'P' /* percentage as TOP BOT ALL or NN% */
+#define STL_ARGLISTSTAT 'a' /* argument list status as (x of y) */
+#define STL_PAGENUM 'N' /* page number (when printing)*/
+#define STL_VIM_EXPR '{' /* start of expression to substitute */
+#define STL_MIDDLEMARK '=' /* separation between left and right */
+#define STL_TRUNCMARK '<' /* truncation mark if line is too long*/
+#define STL_USER_HL '*' /* highlight from (User)1..9 or 0 */
+#define STL_HIGHLIGHT '#' /* highlight name */
+#define STL_TABPAGENR 'T' /* tab page label nr */
+#define STL_TABCLOSENR 'X' /* tab page close nr */
+#define STL_ALL ((char_u *) "fFtcvVlLknoObBrRhHmYyWwMqpPaN{#")
+
+/* flags used for parsed 'wildmode' */
+#define WIM_FULL 1
+#define WIM_LONGEST 2
+#define WIM_LIST 4
+
+/* arguments for can_bs() */
+#define BS_INDENT 'i' /* "Indent" */
+#define BS_EOL 'o' /* "eOl" */
+#define BS_START 's' /* "Start" */
+
+#define LISPWORD_VALUE \
+ "defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object"
+
+/*
+ * The following are actual variables for the options
+ */
+
+EXTERN long p_aleph; /* 'aleph' */
+EXTERN int p_acd; /* 'autochdir' */
+EXTERN char_u *p_ambw; /* 'ambiwidth' */
+EXTERN int p_ar; /* 'autoread' */
+EXTERN int p_aw; /* 'autowrite' */
+EXTERN int p_awa; /* 'autowriteall' */
+EXTERN char_u *p_bs; /* 'backspace' */
+EXTERN char_u *p_bg; /* 'background' */
+EXTERN int p_bk; /* 'backup' */
+EXTERN char_u *p_bkc; /* 'backupcopy' */
+EXTERN unsigned bkc_flags;
+#ifdef IN_OPTION_C
+static char *(p_bkc_values[]) =
+{"yes", "auto", "no", "breaksymlink", "breakhardlink", NULL};
+#endif
+# define BKC_YES 0x001
+# define BKC_AUTO 0x002
+# define BKC_NO 0x004
+# define BKC_BREAKSYMLINK 0x008
+# define BKC_BREAKHARDLINK 0x010
+EXTERN char_u *p_bdir; /* 'backupdir' */
+EXTERN char_u *p_bex; /* 'backupext' */
+EXTERN char_u *p_bsk; /* 'backupskip' */
+EXTERN char_u *p_cm; /* 'cryptmethod' */
+EXTERN char_u *p_breakat; /* 'breakat' */
+EXTERN char_u *p_cmp; /* 'casemap' */
+EXTERN unsigned cmp_flags;
+# ifdef IN_OPTION_C
+static char *(p_cmp_values[]) = {"internal", "keepascii", NULL};
+# endif
+# define CMP_INTERNAL 0x001
+# define CMP_KEEPASCII 0x002
+EXTERN char_u *p_enc; /* 'encoding' */
+EXTERN int p_deco; /* 'delcombine' */
+EXTERN char_u *p_ccv; /* 'charconvert' */
+EXTERN char_u *p_cedit; /* 'cedit' */
+EXTERN long p_cwh; /* 'cmdwinheight' */
+EXTERN long p_ch; /* 'cmdheight' */
+EXTERN int p_confirm; /* 'confirm' */
+EXTERN int p_cp; /* 'compatible' */
+EXTERN char_u *p_cot; /* 'completeopt' */
+EXTERN long p_ph; /* 'pumheight' */
+EXTERN char_u *p_cpo; /* 'cpoptions' */
+EXTERN char_u *p_csprg; /* 'cscopeprg' */
+EXTERN int p_csre; /* 'cscoperelative' */
+EXTERN char_u *p_csqf; /* 'cscopequickfix' */
+# define CSQF_CMDS "sgdctefi"
+# define CSQF_FLAGS "+-0"
+EXTERN int p_cst; /* 'cscopetag' */
+EXTERN long p_csto; /* 'cscopetagorder' */
+EXTERN long p_cspc; /* 'cscopepathcomp' */
+EXTERN int p_csverbose; /* 'cscopeverbose' */
+EXTERN char_u *p_debug; /* 'debug' */
+EXTERN char_u *p_def; /* 'define' */
+EXTERN char_u *p_inc;
+EXTERN char_u *p_dip; /* 'diffopt' */
+EXTERN char_u *p_dex; /* 'diffexpr' */
+EXTERN char_u *p_dict; /* 'dictionary' */
+EXTERN int p_dg; /* 'digraph' */
+EXTERN char_u *p_dir; /* 'directory' */
+EXTERN char_u *p_dy; /* 'display' */
+EXTERN unsigned dy_flags;
+#ifdef IN_OPTION_C
+static char *(p_dy_values[]) = {"lastline", "uhex", NULL};
+#endif
+#define DY_LASTLINE 0x001
+#define DY_UHEX 0x002
+EXTERN int p_ed; /* 'edcompatible' */
+EXTERN char_u *p_ead; /* 'eadirection' */
+EXTERN int p_ea; /* 'equalalways' */
+EXTERN char_u *p_ep; /* 'equalprg' */
+EXTERN int p_eb; /* 'errorbells' */
+EXTERN char_u *p_ef; /* 'errorfile' */
+EXTERN char_u *p_efm; /* 'errorformat' */
+EXTERN char_u *p_gefm; /* 'grepformat' */
+EXTERN char_u *p_gp; /* 'grepprg' */
+EXTERN char_u *p_ei; /* 'eventignore' */
+EXTERN int p_ek; /* 'esckeys' */
+EXTERN int p_exrc; /* 'exrc' */
+EXTERN char_u *p_fencs; /* 'fileencodings' */
+EXTERN char_u *p_ffs; /* 'fileformats' */
+EXTERN long p_fic; /* 'fileignorecase' */
+EXTERN char_u *p_fcl; /* 'foldclose' */
+EXTERN long p_fdls; /* 'foldlevelstart' */
+EXTERN char_u *p_fdo; /* 'foldopen' */
+EXTERN unsigned fdo_flags;
+# ifdef IN_OPTION_C
+static char *(p_fdo_values[]) = {"all", "block", "hor", "mark", "percent",
+ "quickfix", "search", "tag", "insert",
+ "undo", "jump", NULL};
+# endif
+# define FDO_ALL 0x001
+# define FDO_BLOCK 0x002
+# define FDO_HOR 0x004
+# define FDO_MARK 0x008
+# define FDO_PERCENT 0x010
+# define FDO_QUICKFIX 0x020
+# define FDO_SEARCH 0x040
+# define FDO_TAG 0x080
+# define FDO_INSERT 0x100
+# define FDO_UNDO 0x200
+# define FDO_JUMP 0x400
+EXTERN char_u *p_fp; /* 'formatprg' */
+#ifdef HAVE_FSYNC
+EXTERN int p_fs; /* 'fsync' */
+#endif
+EXTERN int p_gd; /* 'gdefault' */
+EXTERN char_u *p_pdev; /* 'printdevice' */
+EXTERN char_u *p_penc; /* 'printencoding' */
+EXTERN char_u *p_pexpr; /* 'printexpr' */
+EXTERN char_u *p_pmfn; /* 'printmbfont' */
+EXTERN char_u *p_pmcs; /* 'printmbcharset' */
+EXTERN char_u *p_pfn; /* 'printfont' */
+EXTERN char_u *p_popt; /* 'printoptions' */
+EXTERN char_u *p_header; /* 'printheader' */
+EXTERN int p_prompt; /* 'prompt' */
+#ifdef CURSOR_SHAPE
+EXTERN char_u *p_guicursor; /* 'guicursor' */
+#endif
+EXTERN char_u *p_hf; /* 'helpfile' */
+EXTERN long p_hh; /* 'helpheight' */
+EXTERN char_u *p_hlg; /* 'helplang' */
+EXTERN int p_hid; /* 'hidden' */
+/* Use P_HID to check if a buffer is to be hidden when it is no longer
+ * visible in a window. */
+# define P_HID(buf) (buf_hide(buf))
+EXTERN char_u *p_hl; /* 'highlight' */
+EXTERN int p_hls; /* 'hlsearch' */
+EXTERN long p_hi; /* 'history' */
+EXTERN int p_hkmap; /* 'hkmap' */
+EXTERN int p_hkmapp; /* 'hkmapp' */
+EXTERN int p_fkmap; /* 'fkmap' */
+EXTERN int p_altkeymap; /* 'altkeymap' */
+EXTERN int p_arshape; /* 'arabicshape' */
+EXTERN int p_icon; /* 'icon' */
+EXTERN char_u *p_iconstring; /* 'iconstring' */
+EXTERN int p_ic; /* 'ignorecase' */
+#ifdef USE_IM_CONTROL
+EXTERN int p_imcmdline; /* 'imcmdline' */
+EXTERN int p_imdisable; /* 'imdisable' */
+#endif
+EXTERN int p_is; /* 'incsearch' */
+EXTERN int p_im; /* 'insertmode' */
+EXTERN char_u *p_isf; /* 'isfname' */
+EXTERN char_u *p_isi; /* 'isident' */
+EXTERN char_u *p_isp; /* 'isprint' */
+EXTERN int p_js; /* 'joinspaces' */
+EXTERN char_u *p_kp; /* 'keywordprg' */
+EXTERN char_u *p_km; /* 'keymodel' */
+EXTERN char_u *p_langmap; /* 'langmap'*/
+EXTERN char_u *p_lm; /* 'langmenu' */
+EXTERN char_u *p_lispwords; /* 'lispwords' */
+EXTERN long p_ls; /* 'laststatus' */
+EXTERN long p_stal; /* 'showtabline' */
+EXTERN char_u *p_lcs; /* 'listchars' */
+
+EXTERN int p_lz; /* 'lazyredraw' */
+EXTERN int p_lpl; /* 'loadplugins' */
+EXTERN int p_magic; /* 'magic' */
+EXTERN char_u *p_mef; /* 'makeef' */
+EXTERN char_u *p_mp; /* 'makeprg' */
+EXTERN char_u *p_cc; /* 'colorcolumn' */
+EXTERN int p_cc_cols[256]; /* array for 'colorcolumn' columns */
+EXTERN long p_mat; /* 'matchtime' */
+EXTERN long p_mco; /* 'maxcombine' */
+EXTERN long p_mfd; /* 'maxfuncdepth' */
+EXTERN long p_mmd; /* 'maxmapdepth' */
+EXTERN long p_mm; /* 'maxmem' */
+EXTERN long p_mmp; /* 'maxmempattern' */
+EXTERN long p_mmt; /* 'maxmemtot' */
+EXTERN long p_mis; /* 'menuitems' */
+EXTERN char_u *p_msm; /* 'mkspellmem' */
+EXTERN long p_mls; /* 'modelines' */
+EXTERN char_u *p_mouse; /* 'mouse' */
+EXTERN char_u *p_mousem; /* 'mousemodel' */
+EXTERN long p_mouset; /* 'mousetime' */
+EXTERN int p_more; /* 'more' */
+EXTERN char_u *p_opfunc; /* 'operatorfunc' */
+EXTERN char_u *p_para; /* 'paragraphs' */
+EXTERN int p_paste; /* 'paste' */
+EXTERN char_u *p_pt; /* 'pastetoggle' */
+EXTERN char_u *p_pex; /* 'patchexpr' */
+EXTERN char_u *p_pm; /* 'patchmode' */
+EXTERN char_u *p_path; /* 'path' */
+EXTERN char_u *p_cdpath; /* 'cdpath' */
+EXTERN long p_rdt; /* 'redrawtime' */
+EXTERN int p_remap; /* 'remap' */
+EXTERN long p_re; /* 'regexpengine' */
+EXTERN long p_report; /* 'report' */
+EXTERN long p_pvh; /* 'previewheight' */
+EXTERN int p_ari; /* 'allowrevins' */
+EXTERN int p_ri; /* 'revins' */
+EXTERN int p_ru; /* 'ruler' */
+EXTERN char_u *p_ruf; /* 'rulerformat' */
+EXTERN char_u *p_rtp; /* 'runtimepath' */
+EXTERN long p_sj; /* 'scrolljump' */
+EXTERN long p_so; /* 'scrolloff' */
+EXTERN char_u *p_sbo; /* 'scrollopt' */
+EXTERN char_u *p_sections; /* 'sections' */
+EXTERN int p_secure; /* 'secure' */
+EXTERN char_u *p_sel; /* 'selection' */
+EXTERN char_u *p_slm; /* 'selectmode' */
+EXTERN char_u *p_ssop; /* 'sessionoptions' */
+EXTERN unsigned ssop_flags;
+# ifdef IN_OPTION_C
+/* Also used for 'viewoptions'! */
+static char *(p_ssop_values[]) = {"buffers", "winpos", "resize", "winsize",
+ "localoptions", "options", "help", "blank",
+ "globals", "slash", "unix",
+ "sesdir", "curdir", "folds", "cursor",
+ "tabpages", NULL};
+# endif
+# define SSOP_BUFFERS 0x001
+# define SSOP_WINPOS 0x002
+# define SSOP_RESIZE 0x004
+# define SSOP_WINSIZE 0x008
+# define SSOP_LOCALOPTIONS 0x010
+# define SSOP_OPTIONS 0x020
+# define SSOP_HELP 0x040
+# define SSOP_BLANK 0x080
+# define SSOP_GLOBALS 0x100
+# define SSOP_SLASH 0x200
+# define SSOP_UNIX 0x400
+# define SSOP_SESDIR 0x800
+# define SSOP_CURDIR 0x1000
+# define SSOP_FOLDS 0x2000
+# define SSOP_CURSOR 0x4000
+# define SSOP_TABPAGES 0x8000
+EXTERN char_u *p_sh; /* 'shell' */
+EXTERN char_u *p_shcf; /* 'shellcmdflag' */
+EXTERN char_u *p_sp; /* 'shellpipe' */
+EXTERN char_u *p_shq; /* 'shellquote' */
+EXTERN char_u *p_sxq; /* 'shellxquote' */
+EXTERN char_u *p_sxe; /* 'shellxescape' */
+EXTERN char_u *p_srr; /* 'shellredir' */
+EXTERN int p_stmp; /* 'shelltemp' */
+#ifdef BACKSLASH_IN_FILENAME
+EXTERN int p_ssl; /* 'shellslash' */
+#endif
+EXTERN char_u *p_stl; /* 'statusline' */
+EXTERN int p_sr; /* 'shiftround' */
+EXTERN char_u *p_shm; /* 'shortmess' */
+EXTERN char_u *p_sbr; /* 'showbreak' */
+EXTERN int p_sc; /* 'showcmd' */
+EXTERN int p_sft; /* 'showfulltag' */
+EXTERN int p_sm; /* 'showmatch' */
+EXTERN int p_smd; /* 'showmode' */
+EXTERN long p_ss; /* 'sidescroll' */
+EXTERN long p_siso; /* 'sidescrolloff' */
+EXTERN int p_scs; /* 'smartcase' */
+EXTERN int p_sta; /* 'smarttab' */
+EXTERN int p_sb; /* 'splitbelow' */
+EXTERN long p_tpm; /* 'tabpagemax' */
+EXTERN char_u *p_tal; /* 'tabline' */
+EXTERN char_u *p_sps; /* 'spellsuggest' */
+EXTERN int p_spr; /* 'splitright' */
+EXTERN int p_sol; /* 'startofline' */
+EXTERN char_u *p_su; /* 'suffixes' */
+EXTERN char_u *p_sws; /* 'swapsync' */
+EXTERN char_u *p_swb; /* 'switchbuf' */
+EXTERN unsigned swb_flags;
+#ifdef IN_OPTION_C
+static char *(p_swb_values[]) = {"useopen", "usetab", "split", "newtab", NULL};
+#endif
+#define SWB_USEOPEN 0x001
+#define SWB_USETAB 0x002
+#define SWB_SPLIT 0x004
+#define SWB_NEWTAB 0x008
+EXTERN int p_tbs; /* 'tagbsearch' */
+EXTERN long p_tl; /* 'taglength' */
+EXTERN int p_tr; /* 'tagrelative' */
+EXTERN char_u *p_tags; /* 'tags' */
+EXTERN int p_tgst; /* 'tagstack' */
+EXTERN int p_tbidi; /* 'termbidi' */
+EXTERN char_u *p_tenc; /* 'termencoding' */
+EXTERN int p_terse; /* 'terse' */
+EXTERN int p_ta; /* 'textauto' */
+EXTERN int p_to; /* 'tildeop' */
+EXTERN int p_timeout; /* 'timeout' */
+EXTERN long p_tm; /* 'timeoutlen' */
+EXTERN int p_title; /* 'title' */
+EXTERN long p_titlelen; /* 'titlelen' */
+EXTERN char_u *p_titleold; /* 'titleold' */
+EXTERN char_u *p_titlestring; /* 'titlestring' */
+EXTERN char_u *p_tsr; /* 'thesaurus' */
+EXTERN int p_ttimeout; /* 'ttimeout' */
+EXTERN long p_ttm; /* 'ttimeoutlen' */
+EXTERN int p_tbi; /* 'ttybuiltin' */
+EXTERN int p_tf; /* 'ttyfast' */
+EXTERN long p_ttyscroll; /* 'ttyscroll' */
+#if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS))
+EXTERN char_u *p_ttym; /* 'ttymouse' */
+EXTERN unsigned ttym_flags;
+# ifdef IN_OPTION_C
+static char *(p_ttym_values[]) =
+{"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", "sgr", NULL};
+# endif
+# define TTYM_XTERM 0x01
+# define TTYM_XTERM2 0x02
+# define TTYM_DEC 0x04
+# define TTYM_NETTERM 0x08
+# define TTYM_JSBTERM 0x10
+# define TTYM_PTERM 0x20
+# define TTYM_URXVT 0x40
+# define TTYM_SGR 0x80
+#endif
+EXTERN char_u *p_udir; /* 'undodir' */
+EXTERN long p_ul; /* 'undolevels' */
+EXTERN long p_ur; /* 'undoreload' */
+EXTERN long p_uc; /* 'updatecount' */
+EXTERN long p_ut; /* 'updatetime' */
+EXTERN char_u *p_fcs; /* 'fillchar' */
+EXTERN char_u *p_viminfo; /* 'viminfo' */
+EXTERN char_u *p_vdir; /* 'viewdir' */
+EXTERN char_u *p_vop; /* 'viewoptions' */
+EXTERN unsigned vop_flags; /* uses SSOP_ flags */
+EXTERN int p_vb; /* 'visualbell' */
+EXTERN char_u *p_ve; /* 'virtualedit' */
+EXTERN unsigned ve_flags;
+# ifdef IN_OPTION_C
+static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", NULL};
+# endif
+# define VE_BLOCK 5 /* includes "all" */
+# define VE_INSERT 6 /* includes "all" */
+# define VE_ALL 4
+# define VE_ONEMORE 8
+EXTERN long p_verbose; /* 'verbose' */
+#ifdef IN_OPTION_C
+char_u *p_vfile = (char_u *)""; /* used before options are initialized */
+#else
+extern char_u *p_vfile; /* 'verbosefile' */
+#endif
+EXTERN int p_warn; /* 'warn' */
+EXTERN char_u *p_wop; /* 'wildoptions' */
+EXTERN long p_window; /* 'window' */
+#if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(LINT) \
+ || defined (FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON)
+#define FEAT_WAK
+EXTERN char_u *p_wak; /* 'winaltkeys' */
+#endif
+EXTERN char_u *p_wak;
+EXTERN char_u *p_wig; /* 'wildignore' */
+EXTERN int p_wiv; /* 'weirdinvert' */
+EXTERN char_u *p_ww; /* 'whichwrap' */
+EXTERN long p_wc; /* 'wildchar' */
+EXTERN long p_wcm; /* 'wildcharm' */
+EXTERN long p_wic; /* 'wildignorecase' */
+EXTERN char_u *p_wim; /* 'wildmode' */
+EXTERN int p_wmnu; /* 'wildmenu' */
+EXTERN long p_wh; /* 'winheight' */
+EXTERN long p_wmh; /* 'winminheight' */
+EXTERN long p_wmw; /* 'winminwidth' */
+EXTERN long p_wiw; /* 'winwidth' */
+EXTERN int p_ws; /* 'wrapscan' */
+EXTERN int p_write; /* 'write' */
+EXTERN int p_wa; /* 'writeany' */
+EXTERN int p_wb; /* 'writebackup' */
+EXTERN long p_wd; /* 'writedelay' */
+
+/*
+ * "indir" values for buffer-local opions.
+ * These need to be defined globally, so that the BV_COUNT can be used with
+ * b_p_scriptID[].
+ */
+enum {
+ BV_AI = 0
+ , BV_AR
+ , BV_BH
+ , BV_BT
+ , BV_EFM
+ , BV_GP
+ , BV_MP
+ , BV_BIN
+ , BV_BL
+ , BV_BOMB
+ , BV_CI
+ , BV_CIN
+ , BV_CINK
+ , BV_CINO
+ , BV_CINW
+ , BV_CM
+ , BV_CMS
+ , BV_COM
+ , BV_CPT
+ , BV_DICT
+ , BV_TSR
+ , BV_CFU
+ , BV_DEF
+ , BV_INC
+ , BV_EOL
+ , BV_EP
+ , BV_ET
+ , BV_FENC
+ , BV_BEXPR
+ , BV_FEX
+ , BV_FF
+ , BV_FLP
+ , BV_FO
+ , BV_FT
+ , BV_IMI
+ , BV_IMS
+ , BV_INDE
+ , BV_INDK
+ , BV_INEX
+ , BV_INF
+ , BV_ISK
+ , BV_KEY
+ , BV_KMAP
+ , BV_KP
+ , BV_LISP
+ , BV_MA
+ , BV_ML
+ , BV_MOD
+ , BV_MPS
+ , BV_NF
+ , BV_OFU
+ , BV_PATH
+ , BV_PI
+ , BV_QE
+ , BV_RO
+ , BV_SI
+#ifndef SHORT_FNAME
+ , BV_SN
+#endif
+ , BV_SMC
+ , BV_SYN
+ , BV_SPC
+ , BV_SPF
+ , BV_SPL
+ , BV_STS
+ , BV_SUA
+ , BV_SW
+ , BV_SWF
+ , BV_TAGS
+ , BV_TS
+ , BV_TW
+ , BV_TX
+ , BV_UDF
+ , BV_UL
+ , BV_WM
+ , BV_COUNT /* must be the last one */
+};
+
+/*
+ * "indir" values for window-local options.
+ * These need to be defined globally, so that the WV_COUNT can be used in the
+ * window structure.
+ */
+enum {
+ WV_LIST = 0
+ , WV_ARAB
+ , WV_COCU
+ , WV_COLE
+ , WV_CRBIND
+ , WV_DIFF
+ , WV_FDC
+ , WV_FEN
+ , WV_FDI
+ , WV_FDL
+ , WV_FDM
+ , WV_FML
+ , WV_FDN
+ , WV_FDE
+ , WV_FDT
+ , WV_FMR
+ , WV_LBR
+ , WV_NU
+ , WV_RNU
+ , WV_NUW
+ , WV_PVW
+ , WV_RL
+ , WV_RLC
+ , WV_SCBIND
+ , WV_SCROLL
+ , WV_SPELL
+ , WV_CUC
+ , WV_CUL
+ , WV_CC
+ , WV_STL
+ , WV_WFH
+ , WV_WFW
+ , WV_WRAP
+ , WV_COUNT /* must be the last one */
+};
+
+/* Value for b_p_ul indicating the global value must be used. */
+#define NO_LOCAL_UNDOLEVEL -123456
diff --git a/src/os/fs.c b/src/os/fs.c
index e9fe651b6b..3529ab4f46 100644
--- a/src/os/fs.c
+++ b/src/os/fs.c
@@ -14,6 +14,7 @@
#include <uv.h>
#include "os.h"
+#include "../message.h"
int mch_chdir(char *path) {
if (p_verbose >= 5) {
diff --git a/src/os_unix.c b/src/os_unix.c
index c3353d3724..856191ea95 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -28,9 +28,25 @@
# define select select_declared_wrong
#include "vim.h"
+#include "os_unix.h"
+#include "buffer.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "fileio.h"
+#include "getchar.h"
+#include "main.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "screen.h"
+#include "syntax.h"
+#include "term.h"
+#include "ui.h"
#include "os/os.h"
-
#include "os_unixx.h" /* unix includes for os_unix.c only */
#ifdef HAVE_SELINUX
diff --git a/src/os_unix.h b/src/os_unix.h
index 3eb79e9a25..3a20c49252 100644
--- a/src/os_unix.h
+++ b/src/os_unix.h
@@ -1,351 +1,78 @@
-/* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- */
-
-/*
- * NextStep has a problem with configure, undefine a few things:
- */
-
-#include <stdio.h>
-#include <ctype.h>
-
-# include <sys/types.h>
-# include <sys/stat.h>
-
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-
-
-/* On AIX 4.2 there is a conflicting prototype for ioctl() in stropts.h and
- * unistd.h. This hack should fix that (suggested by Jeff George).
- * But on AIX 4.3 it's alright (suggested by Jake Hamby). */
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#ifdef HAVE_LIBC_H
-# include <libc.h> /* for NeXT */
-#endif
-
-#ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h> /* defines BSD, if it's a BSD system */
-#endif
-
-/*
- * Sun defines FILE on SunOS 4.x.x, Solaris has a typedef for FILE
- */
-
-#ifndef __ARGS
-/* The AIX VisualAge cc compiler defines __EXTENDED__ instead of __STDC__
- * because it includes pre-ansi features. */
-# if defined(__STDC__) || defined(__GNUC__) || defined(__EXTENDED__)
-# define __ARGS(x) x
-# else
-# define __ARGS(x) ()
-# endif
-#endif
-
-/* always use unlink() to remove files */
-# define vim_mkdir(x, y) mkdir((char *)(x), y)
-# define mch_rmdir(x) rmdir((char *)(x))
-# define mch_remove(x) unlink((char *)(x))
-
-/* The number of arguments to a signal handler is configured here. */
-/* It used to be a long list of almost all systems. Any system that doesn't
- * have an argument??? */
-#define SIGHASARG
-
-/* List 3 arg systems here. I guess __sgi, please test and correct me. jw. */
-
-#ifdef SIGHASARG
-# ifdef SIGHAS3ARGS
-# define SIGPROTOARG (int, int, struct sigcontext *)
-# define SIGDEFARG(s) (s, sig2, scont) int s, sig2; struct sigcontext *scont;
-# define SIGDUMMYARG 0, 0, (struct sigcontext *)0
-# else
-# define SIGPROTOARG (int)
-# define SIGDEFARG(s) (s) int s;
-# define SIGDUMMYARG 0
-# endif
-#else
-# define SIGPROTOARG (void)
-# define SIGDEFARG(s) ()
-# define SIGDUMMYARG
-#endif
-
-#ifdef HAVE_DIRENT_H
-# include <dirent.h>
-# ifndef NAMLEN
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-# endif
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-
-#if !defined(HAVE_SYS_TIME_H) || defined(TIME_WITH_SYS_TIME)
-# include <time.h> /* on some systems time.h should not be
- included together with sys/time.h */
-#endif
-#ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-
-#include <signal.h>
-
-#if defined(DIRSIZ) && !defined(MAXNAMLEN)
-# define MAXNAMLEN DIRSIZ
-#endif
-
-#if defined(UFS_MAXNAMLEN) && !defined(MAXNAMLEN)
-# define MAXNAMLEN UFS_MAXNAMLEN /* for dynix/ptx */
-#endif
-
-#if defined(NAME_MAX) && !defined(MAXNAMLEN)
-# define MAXNAMLEN NAME_MAX /* for Linux before .99p3 */
-#endif
-
-/*
- * Note: if MAXNAMLEN has the wrong value, you will get error messages
- * for not being able to open the swap file.
- */
-#if !defined(MAXNAMLEN)
-# define MAXNAMLEN 512 /* for all other Unix */
-#endif
-
-#define BASENAMELEN (MAXNAMLEN - 5)
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-#ifdef __COHERENT__
-# undef __ARGS
-#endif
-
-/*
- * Unix system-dependent file names
- */
-#ifndef SYS_VIMRC_FILE
-# define SYS_VIMRC_FILE "$VIM/vimrc"
-#endif
-#ifndef SYS_GVIMRC_FILE
-# define SYS_GVIMRC_FILE "$VIM/gvimrc"
-#endif
-#ifndef DFLT_HELPFILE
-# define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt"
-#endif
-#ifndef FILETYPE_FILE
-# define FILETYPE_FILE "filetype.vim"
-#endif
-#ifndef FTPLUGIN_FILE
-# define FTPLUGIN_FILE "ftplugin.vim"
-#endif
-#ifndef INDENT_FILE
-# define INDENT_FILE "indent.vim"
-#endif
-#ifndef FTOFF_FILE
-# define FTOFF_FILE "ftoff.vim"
-#endif
-#ifndef FTPLUGOF_FILE
-# define FTPLUGOF_FILE "ftplugof.vim"
-#endif
-#ifndef INDOFF_FILE
-# define INDOFF_FILE "indoff.vim"
-#endif
-#ifndef SYS_MENU_FILE
-# define SYS_MENU_FILE "$VIMRUNTIME/menu.vim"
-#endif
-
-#ifndef USR_EXRC_FILE
-# define USR_EXRC_FILE "$HOME/.exrc"
-#endif
-
-
-#ifndef USR_VIMRC_FILE
-# define USR_VIMRC_FILE "$HOME/.neovimrc"
-#endif
-
-
-#if !defined(USR_EXRC_FILE2)
-# define USR_VIMRC_FILE2 "~/.neovim/vimrc"
-#endif
-
-
-#ifndef USR_GVIMRC_FILE
-# define USR_GVIMRC_FILE "$HOME/.neogvimrc"
-#endif
-
-#ifndef USR_GVIMRC_FILE2
-# define USR_GVIMRC_FILE2 "~/.neovim/gvimrc"
-#endif
-
-
-#ifndef EVIM_FILE
-# define EVIM_FILE "$VIMRUNTIME/evim.vim"
-#endif
-
-# ifndef VIMINFO_FILE
-# define VIMINFO_FILE "$HOME/.neoviminfo"
-# endif
-
-#ifndef EXRC_FILE
-# define EXRC_FILE ".exrc"
-#endif
-
-#ifndef VIMRC_FILE
-# define VIMRC_FILE ".neovimrc"
-#endif
-
-
-#ifndef SYNTAX_FNAME
-# define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim"
-#endif
-
-#ifndef DFLT_BDIR
-# define DFLT_BDIR ".,~/tmp,~/" /* default for 'backupdir' */
-#endif
-
-#ifndef DFLT_DIR
-# define DFLT_DIR ".,~/tmp,/var/tmp,/tmp" /* default for 'directory' */
-#endif
-
-#ifndef DFLT_VDIR
-# define DFLT_VDIR "$HOME/.neovim/view" /* default for 'viewdir' */
-#endif
-
-#define DFLT_ERRORFILE "errors.err"
-
-# ifdef RUNTIME_GLOBAL
-# define DFLT_RUNTIMEPATH "~/.neovim," RUNTIME_GLOBAL ",$VIMRUNTIME," \
- RUNTIME_GLOBAL "/after,~/.neovim/after"
-# else
-# define DFLT_RUNTIMEPATH \
- "~/.neovim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.neovim/after"
-# endif
-
-# define TEMPDIRNAMES "$TMPDIR", "/tmp", ".", "$HOME"
-# define TEMPNAMELEN 256
-
-/* Special wildcards that need to be handled by the shell */
-#define SPECIAL_WILDCHAR "`'{"
-
-#ifndef HAVE_OPENDIR
-# define NO_EXPANDPATH
-#endif
-
-/*
- * Unix has plenty of memory, use large buffers
- */
-#define CMDBUFFSIZE 1024 /* size of the command processing buffer */
-
-/* Use the system path length if it makes sense. */
-#if defined(PATH_MAX) && (PATH_MAX > 1000)
-# define MAXPATHL PATH_MAX
-#else
-# define MAXPATHL 1024
-#endif
-
-#define CHECK_INODE /* used when checking if a swap file already
- exists for a file */
-# ifndef DFLT_MAXMEM
-# define DFLT_MAXMEM (5*1024) /* use up to 5 Mbyte for a buffer */
-# endif
-# ifndef DFLT_MAXMEMTOT
-# define DFLT_MAXMEMTOT (10*1024) /* use up to 10 Mbyte for Vim */
-# endif
-
-/* memmove is not present on all systems, use memmove, bcopy, memcpy or our
- * own version */
-/* Some systems have (void *) arguments, some (char *). If we use (char *) it
- * works for all */
-#ifdef USEMEMMOVE
-# define mch_memmove(to, from, len) memmove((char *)(to), (char *)(from), len)
-#else
-# ifdef USEBCOPY
-# define mch_memmove(to, from, len) bcopy((char *)(from), (char *)(to), len)
-# else
-# ifdef USEMEMCPY
-# define mch_memmove(to, from, len) memcpy((char *)(to), (char *)(from), len)
-# else
-# define VIM_MEMMOVE /* found in misc2.c */
-# endif
-# endif
-#endif
-
-# ifdef HAVE_RENAME
-# define mch_rename(src, dst) rename(src, dst)
-# else
-int mch_rename __ARGS((const char *src, const char *dest));
-# endif
-# ifdef __MVS__
-/* on OS390 Unix getenv() doesn't return a pointer to persistent
- * storage -> use __getenv() */
-# define mch_getenv(x) (char_u *)__getenv((char *)(x))
-# else
-# define mch_getenv(x) (char_u *)getenv((char *)(x))
-# endif
-# define mch_setenv(name, val, x) setenv(name, val, x)
-
-#if !defined(S_ISDIR) && defined(S_IFDIR)
-# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-#endif
-#if !defined(S_ISREG) && defined(S_IFREG)
-# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
-#endif
-#if !defined(S_ISBLK) && defined(S_IFBLK)
-# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
-#endif
-#if !defined(S_ISSOCK) && defined(S_IFSOCK)
-# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
-#endif
-#if !defined(S_ISFIFO) && defined(S_IFIFO)
-# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
-#endif
-#if !defined(S_ISCHR) && defined(S_IFCHR)
-# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
-#endif
-
-/* Note: Some systems need both string.h and strings.h (Savage). However,
- * some systems can't handle both, only use string.h in that case. */
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-#if defined(HAVE_STRINGS_H) && !defined(NO_STRINGS_WITH_STRING_H)
-# include <strings.h>
-#endif
-
-#if defined(HAVE_SETJMP_H)
-# include <setjmp.h>
-# ifdef HAVE_SIGSETJMP
-# define JMP_BUF sigjmp_buf
-# define SETJMP(x) sigsetjmp((x), 1)
-# define LONGJMP siglongjmp
-# else
-# define JMP_BUF jmp_buf
-# define SETJMP(x) setjmp(x)
-# define LONGJMP longjmp
-# endif
-#endif
-
-#define HAVE_DUP /* have dup() */
-#define HAVE_ST_MODE /* have stat.st_mode */
-
-/* We have three kinds of ACL support. */
-#define HAVE_ACL (HAVE_POSIX_ACL || HAVE_SOLARIS_ACL || HAVE_AIX_ACL)
+#ifndef NEOVIM_OS_UNIX_H
+#define NEOVIM_OS_UNIX_H
+/* os_unix.c */
+void mch_write __ARGS((char_u *s, int len));
+int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
+int mch_char_avail __ARGS((void));
+void mch_delay __ARGS((long msec, int ignoreinput));
+int mch_stackcheck __ARGS((char *p));
+void mch_startjmp __ARGS((void));
+void mch_endjmp __ARGS((void));
+void mch_didjmp __ARGS((void));
+void mch_suspend __ARGS((void));
+void mch_init __ARGS((void));
+void reset_signals __ARGS((void));
+int vim_handle_signal __ARGS((int sig));
+int mch_check_win __ARGS((int argc, char **argv));
+int mch_input_isatty __ARGS((void));
+int mch_can_restore_title __ARGS((void));
+int mch_can_restore_icon __ARGS((void));
+void mch_settitle __ARGS((char_u *title, char_u *icon));
+void mch_restore_title __ARGS((int which));
+int vim_is_xterm __ARGS((char_u *name));
+int use_xterm_like_mouse __ARGS((char_u *name));
+int use_xterm_mouse __ARGS((void));
+int vim_is_iris __ARGS((char_u *name));
+int vim_is_vt300 __ARGS((char_u *name));
+int vim_is_fastterm __ARGS((char_u *name));
+int mch_get_user_name __ARGS((char_u *s, int len));
+int mch_get_uname __ARGS((uid_t uid, char_u *s, int len));
+void mch_get_host_name __ARGS((char_u *s, int len));
+long mch_get_pid __ARGS((void));
+void slash_adjust __ARGS((char_u *p));
+void fname_case __ARGS((char_u *name, int len));
+long mch_getperm __ARGS((char_u *name));
+int mch_setperm __ARGS((char_u *name, long perm));
+void mch_copy_sec __ARGS((char_u *from_file, char_u *to_file));
+vim_acl_T mch_get_acl __ARGS((char_u *fname));
+void mch_set_acl __ARGS((char_u *fname, vim_acl_T aclent));
+void mch_free_acl __ARGS((vim_acl_T aclent));
+void mch_hide __ARGS((char_u *name));
+int mch_isdir __ARGS((char_u *name));
+int mch_can_exe __ARGS((char_u *name));
+int mch_nodetype __ARGS((char_u *name));
+void mch_early_init __ARGS((void));
+void mch_free_mem __ARGS((void));
+void mch_exit __ARGS((int r));
+void mch_settmode __ARGS((int tmode));
+void get_stty __ARGS((void));
+void mch_setmouse __ARGS((int on));
+void check_mouse_termcode __ARGS((void));
+int mch_screenmode __ARGS((char_u *arg));
+int mch_get_shellsize __ARGS((void));
+void mch_set_shellsize __ARGS((void));
+void mch_new_shellsize __ARGS((void));
+int mch_call_shell __ARGS((char_u *cmd, int options));
+void mch_breakcheck __ARGS((void));
+int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
+int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file,
+ char_u ***file,
+ int flags));
+int mch_has_exp_wildcard __ARGS((char_u *p));
+int mch_has_wildcard __ARGS((char_u *p));
+int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring,
+ int argint, char_u **string_result,
+ int *number_result));
+void setup_term_clip __ARGS((void));
+void start_xterm_trace __ARGS((int button));
+void stop_xterm_trace __ARGS((void));
+void clear_xterm_clip __ARGS((void));
+int clip_xterm_own_selection __ARGS((VimClipboard *cbd));
+void clip_xterm_lose_selection __ARGS((VimClipboard *cbd));
+void clip_xterm_request_selection __ARGS((VimClipboard *cbd));
+void clip_xterm_set_selection __ARGS((VimClipboard *cbd));
+int xsmp_handle_requests __ARGS((void));
+void xsmp_init __ARGS((void));
+void xsmp_close __ARGS((void));
+/* vim: set ft=c : */
+#endif /* NEOVIM_OS_UNIX_H */
diff --git a/src/os_unix_defs.h b/src/os_unix_defs.h
new file mode 100644
index 0000000000..3eb79e9a25
--- /dev/null
+++ b/src/os_unix_defs.h
@@ -0,0 +1,351 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+ * Do ":help uganda" in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ */
+
+/*
+ * NextStep has a problem with configure, undefine a few things:
+ */
+
+#include <stdio.h>
+#include <ctype.h>
+
+# include <sys/types.h>
+# include <sys/stat.h>
+
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+
+
+/* On AIX 4.2 there is a conflicting prototype for ioctl() in stropts.h and
+ * unistd.h. This hack should fix that (suggested by Jeff George).
+ * But on AIX 4.3 it's alright (suggested by Jake Hamby). */
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifdef HAVE_LIBC_H
+# include <libc.h> /* for NeXT */
+#endif
+
+#ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h> /* defines BSD, if it's a BSD system */
+#endif
+
+/*
+ * Sun defines FILE on SunOS 4.x.x, Solaris has a typedef for FILE
+ */
+
+#ifndef __ARGS
+/* The AIX VisualAge cc compiler defines __EXTENDED__ instead of __STDC__
+ * because it includes pre-ansi features. */
+# if defined(__STDC__) || defined(__GNUC__) || defined(__EXTENDED__)
+# define __ARGS(x) x
+# else
+# define __ARGS(x) ()
+# endif
+#endif
+
+/* always use unlink() to remove files */
+# define vim_mkdir(x, y) mkdir((char *)(x), y)
+# define mch_rmdir(x) rmdir((char *)(x))
+# define mch_remove(x) unlink((char *)(x))
+
+/* The number of arguments to a signal handler is configured here. */
+/* It used to be a long list of almost all systems. Any system that doesn't
+ * have an argument??? */
+#define SIGHASARG
+
+/* List 3 arg systems here. I guess __sgi, please test and correct me. jw. */
+
+#ifdef SIGHASARG
+# ifdef SIGHAS3ARGS
+# define SIGPROTOARG (int, int, struct sigcontext *)
+# define SIGDEFARG(s) (s, sig2, scont) int s, sig2; struct sigcontext *scont;
+# define SIGDUMMYARG 0, 0, (struct sigcontext *)0
+# else
+# define SIGPROTOARG (int)
+# define SIGDEFARG(s) (s) int s;
+# define SIGDUMMYARG 0
+# endif
+#else
+# define SIGPROTOARG (void)
+# define SIGDEFARG(s) ()
+# define SIGDUMMYARG
+#endif
+
+#ifdef HAVE_DIRENT_H
+# include <dirent.h>
+# ifndef NAMLEN
+# define NAMLEN(dirent) strlen((dirent)->d_name)
+# endif
+#else
+# define dirent direct
+# define NAMLEN(dirent) (dirent)->d_namlen
+# if HAVE_SYS_NDIR_H
+# include <sys/ndir.h>
+# endif
+# if HAVE_SYS_DIR_H
+# include <sys/dir.h>
+# endif
+# if HAVE_NDIR_H
+# include <ndir.h>
+# endif
+#endif
+
+#if !defined(HAVE_SYS_TIME_H) || defined(TIME_WITH_SYS_TIME)
+# include <time.h> /* on some systems time.h should not be
+ included together with sys/time.h */
+#endif
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+
+#include <signal.h>
+
+#if defined(DIRSIZ) && !defined(MAXNAMLEN)
+# define MAXNAMLEN DIRSIZ
+#endif
+
+#if defined(UFS_MAXNAMLEN) && !defined(MAXNAMLEN)
+# define MAXNAMLEN UFS_MAXNAMLEN /* for dynix/ptx */
+#endif
+
+#if defined(NAME_MAX) && !defined(MAXNAMLEN)
+# define MAXNAMLEN NAME_MAX /* for Linux before .99p3 */
+#endif
+
+/*
+ * Note: if MAXNAMLEN has the wrong value, you will get error messages
+ * for not being able to open the swap file.
+ */
+#if !defined(MAXNAMLEN)
+# define MAXNAMLEN 512 /* for all other Unix */
+#endif
+
+#define BASENAMELEN (MAXNAMLEN - 5)
+
+#ifdef HAVE_PWD_H
+# include <pwd.h>
+#endif
+
+#ifdef __COHERENT__
+# undef __ARGS
+#endif
+
+/*
+ * Unix system-dependent file names
+ */
+#ifndef SYS_VIMRC_FILE
+# define SYS_VIMRC_FILE "$VIM/vimrc"
+#endif
+#ifndef SYS_GVIMRC_FILE
+# define SYS_GVIMRC_FILE "$VIM/gvimrc"
+#endif
+#ifndef DFLT_HELPFILE
+# define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt"
+#endif
+#ifndef FILETYPE_FILE
+# define FILETYPE_FILE "filetype.vim"
+#endif
+#ifndef FTPLUGIN_FILE
+# define FTPLUGIN_FILE "ftplugin.vim"
+#endif
+#ifndef INDENT_FILE
+# define INDENT_FILE "indent.vim"
+#endif
+#ifndef FTOFF_FILE
+# define FTOFF_FILE "ftoff.vim"
+#endif
+#ifndef FTPLUGOF_FILE
+# define FTPLUGOF_FILE "ftplugof.vim"
+#endif
+#ifndef INDOFF_FILE
+# define INDOFF_FILE "indoff.vim"
+#endif
+#ifndef SYS_MENU_FILE
+# define SYS_MENU_FILE "$VIMRUNTIME/menu.vim"
+#endif
+
+#ifndef USR_EXRC_FILE
+# define USR_EXRC_FILE "$HOME/.exrc"
+#endif
+
+
+#ifndef USR_VIMRC_FILE
+# define USR_VIMRC_FILE "$HOME/.neovimrc"
+#endif
+
+
+#if !defined(USR_EXRC_FILE2)
+# define USR_VIMRC_FILE2 "~/.neovim/vimrc"
+#endif
+
+
+#ifndef USR_GVIMRC_FILE
+# define USR_GVIMRC_FILE "$HOME/.neogvimrc"
+#endif
+
+#ifndef USR_GVIMRC_FILE2
+# define USR_GVIMRC_FILE2 "~/.neovim/gvimrc"
+#endif
+
+
+#ifndef EVIM_FILE
+# define EVIM_FILE "$VIMRUNTIME/evim.vim"
+#endif
+
+# ifndef VIMINFO_FILE
+# define VIMINFO_FILE "$HOME/.neoviminfo"
+# endif
+
+#ifndef EXRC_FILE
+# define EXRC_FILE ".exrc"
+#endif
+
+#ifndef VIMRC_FILE
+# define VIMRC_FILE ".neovimrc"
+#endif
+
+
+#ifndef SYNTAX_FNAME
+# define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim"
+#endif
+
+#ifndef DFLT_BDIR
+# define DFLT_BDIR ".,~/tmp,~/" /* default for 'backupdir' */
+#endif
+
+#ifndef DFLT_DIR
+# define DFLT_DIR ".,~/tmp,/var/tmp,/tmp" /* default for 'directory' */
+#endif
+
+#ifndef DFLT_VDIR
+# define DFLT_VDIR "$HOME/.neovim/view" /* default for 'viewdir' */
+#endif
+
+#define DFLT_ERRORFILE "errors.err"
+
+# ifdef RUNTIME_GLOBAL
+# define DFLT_RUNTIMEPATH "~/.neovim," RUNTIME_GLOBAL ",$VIMRUNTIME," \
+ RUNTIME_GLOBAL "/after,~/.neovim/after"
+# else
+# define DFLT_RUNTIMEPATH \
+ "~/.neovim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.neovim/after"
+# endif
+
+# define TEMPDIRNAMES "$TMPDIR", "/tmp", ".", "$HOME"
+# define TEMPNAMELEN 256
+
+/* Special wildcards that need to be handled by the shell */
+#define SPECIAL_WILDCHAR "`'{"
+
+#ifndef HAVE_OPENDIR
+# define NO_EXPANDPATH
+#endif
+
+/*
+ * Unix has plenty of memory, use large buffers
+ */
+#define CMDBUFFSIZE 1024 /* size of the command processing buffer */
+
+/* Use the system path length if it makes sense. */
+#if defined(PATH_MAX) && (PATH_MAX > 1000)
+# define MAXPATHL PATH_MAX
+#else
+# define MAXPATHL 1024
+#endif
+
+#define CHECK_INODE /* used when checking if a swap file already
+ exists for a file */
+# ifndef DFLT_MAXMEM
+# define DFLT_MAXMEM (5*1024) /* use up to 5 Mbyte for a buffer */
+# endif
+# ifndef DFLT_MAXMEMTOT
+# define DFLT_MAXMEMTOT (10*1024) /* use up to 10 Mbyte for Vim */
+# endif
+
+/* memmove is not present on all systems, use memmove, bcopy, memcpy or our
+ * own version */
+/* Some systems have (void *) arguments, some (char *). If we use (char *) it
+ * works for all */
+#ifdef USEMEMMOVE
+# define mch_memmove(to, from, len) memmove((char *)(to), (char *)(from), len)
+#else
+# ifdef USEBCOPY
+# define mch_memmove(to, from, len) bcopy((char *)(from), (char *)(to), len)
+# else
+# ifdef USEMEMCPY
+# define mch_memmove(to, from, len) memcpy((char *)(to), (char *)(from), len)
+# else
+# define VIM_MEMMOVE /* found in misc2.c */
+# endif
+# endif
+#endif
+
+# ifdef HAVE_RENAME
+# define mch_rename(src, dst) rename(src, dst)
+# else
+int mch_rename __ARGS((const char *src, const char *dest));
+# endif
+# ifdef __MVS__
+/* on OS390 Unix getenv() doesn't return a pointer to persistent
+ * storage -> use __getenv() */
+# define mch_getenv(x) (char_u *)__getenv((char *)(x))
+# else
+# define mch_getenv(x) (char_u *)getenv((char *)(x))
+# endif
+# define mch_setenv(name, val, x) setenv(name, val, x)
+
+#if !defined(S_ISDIR) && defined(S_IFDIR)
+# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+#endif
+#if !defined(S_ISREG) && defined(S_IFREG)
+# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+#endif
+#if !defined(S_ISBLK) && defined(S_IFBLK)
+# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
+#endif
+#if !defined(S_ISSOCK) && defined(S_IFSOCK)
+# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
+#endif
+#if !defined(S_ISFIFO) && defined(S_IFIFO)
+# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
+#endif
+#if !defined(S_ISCHR) && defined(S_IFCHR)
+# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
+#endif
+
+/* Note: Some systems need both string.h and strings.h (Savage). However,
+ * some systems can't handle both, only use string.h in that case. */
+#ifdef HAVE_STRING_H
+# include <string.h>
+#endif
+#if defined(HAVE_STRINGS_H) && !defined(NO_STRINGS_WITH_STRING_H)
+# include <strings.h>
+#endif
+
+#if defined(HAVE_SETJMP_H)
+# include <setjmp.h>
+# ifdef HAVE_SIGSETJMP
+# define JMP_BUF sigjmp_buf
+# define SETJMP(x) sigsetjmp((x), 1)
+# define LONGJMP siglongjmp
+# else
+# define JMP_BUF jmp_buf
+# define SETJMP(x) setjmp(x)
+# define LONGJMP longjmp
+# endif
+#endif
+
+#define HAVE_DUP /* have dup() */
+#define HAVE_ST_MODE /* have stat.st_mode */
+
+/* We have three kinds of ACL support. */
+#define HAVE_ACL (HAVE_POSIX_ACL || HAVE_SOLARIS_ACL || HAVE_AIX_ACL)
diff --git a/src/popupmnu.c b/src/popupmnu.c
index be8c3ec0e0..293e1f0bb2 100644
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -11,7 +11,16 @@
* popupmnu.c: Popup menu (PUM)
*/
#include "vim.h"
-
+#include "popupmnu.h"
+#include "charset.h"
+#include "ex_cmds.h"
+#include "memline.h"
+#include "misc2.h"
+#include "move.h"
+#include "option.h"
+#include "screen.h"
+#include "search.h"
+#include "window.h"
static pumitem_T *pum_array = NULL; /* items of displayed pum */
static int pum_size; /* nr of items in "pum_array" */
diff --git a/src/proto/popupmnu.pro b/src/popupmnu.h
index 74a53e2f0e..8a619fdb36 100644
--- a/src/proto/popupmnu.pro
+++ b/src/popupmnu.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_POPUPMNU_H
+#define NEOVIM_POPUPMNU_H
/* popupmnu.c */
void pum_display __ARGS((pumitem_T *array, int size, int selected));
void pum_redraw __ARGS((void));
@@ -6,3 +8,4 @@ void pum_clear __ARGS((void));
int pum_visible __ARGS((void));
int pum_get_height __ARGS((void));
/* vim: set ft=c : */
+#endif /* NEOVIM_POPUPMNU_H */
diff --git a/src/proto.h b/src/proto.h
index b040ff70cc..5037dfa26f 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -26,35 +26,6 @@
# define GdkEventKey int
# define XImage int
-# if defined(UNIX) || defined(__EMX__) || defined(VMS)
-# include "os_unix.pro"
-# endif
-
-# include "blowfish.pro"
-# include "buffer.pro"
-# include "charset.pro"
-# include "if_cscope.pro"
-# include "diff.pro"
-# include "digraph.pro"
-# include "edit.pro"
-# include "eval.pro"
-# include "ex_cmds.pro"
-# include "ex_cmds2.pro"
-# include "ex_docmd.pro"
-# include "ex_eval.pro"
-# include "ex_getln.pro"
-# include "fileio.pro"
-# include "fold.pro"
-# include "getchar.pro"
-# include "hangulin.pro"
-# include "hardcopy.pro"
-# include "hashtab.pro"
-# include "main.pro"
-# include "mark.pro"
-# include "memfile.pro"
-# include "memline.pro"
-# include "menu.pro"
-
# if !defined MESSAGE_FILE || defined(HAVE_STDARG_H)
/* These prototypes cannot be produced automatically and conflict with
* the old-style prototypes in message.c. */
@@ -75,9 +46,6 @@ int vim_vsnprintf(char *str, size_t str_m, char *fmt, va_list ap, typval_T *tvs)
# endif
# endif
-# include "message.pro"
-# include "misc1.pro"
-# include "misc2.pro"
#ifndef HAVE_STRPBRK /* not generated automatically from misc2.c */
char_u *vim_strpbrk __ARGS((char_u *s, char_u *charset));
#endif
@@ -86,52 +54,9 @@ char_u *vim_strpbrk __ARGS((char_u *s, char_u *charset));
void qsort __ARGS((void *base, size_t elm_count, size_t elm_size, int (*cmp)(
const void *, const void *)));
#endif
-# include "move.pro"
-# if defined(FEAT_MBYTE) || defined(FEAT_XIM) || defined(FEAT_KEYMAP) \
- || defined(FEAT_POSTSCRIPT)
-# include "mbyte.pro"
-# endif
-# include "normal.pro"
-# include "ops.pro"
-# include "option.pro"
-# include "popupmnu.pro"
-# include "quickfix.pro"
-# include "regexp.pro"
-# include "screen.pro"
-# include "sha256.pro"
-# include "search.pro"
-# include "spell.pro"
-# include "syntax.pro"
-# include "tag.pro"
-# include "term.pro"
-# include "ui.pro"
-# include "undo.pro"
-# include "version.pro"
-# include "window.pro"
-
-
-
-
-
-
/* Ugly solution for "BalloonEval" not being defined while it's used in some
* .pro files. */
# define BalloonEval int
-
-
-# ifdef FEAT_OLE
-# endif
-
-/*
- * The perl include files pollute the namespace, therefore proto.h must be
- * included before the perl include files. But then CV is not defined, which
- * not included here for the perl files. Use a dummy define for CV for the
- * other files.
- */
-
-#ifdef MACOS_CONVERT
-#endif
-
#endif /* !PROTO && !NOPROTO */
diff --git a/src/proto/ex_cmds.pro b/src/proto/ex_cmds.pro
deleted file mode 100644
index 6d566e7f05..0000000000
--- a/src/proto/ex_cmds.pro
+++ /dev/null
@@ -1,72 +0,0 @@
-/* ex_cmds.c */
-void do_ascii __ARGS((exarg_T *eap));
-void ex_align __ARGS((exarg_T *eap));
-void ex_sort __ARGS((exarg_T *eap));
-void ex_retab __ARGS((exarg_T *eap));
-int do_move __ARGS((linenr_T line1, linenr_T line2, linenr_T dest));
-void ex_copy __ARGS((linenr_T line1, linenr_T line2, linenr_T n));
-void free_prev_shellcmd __ARGS((void));
-void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in,
- int do_out));
-void do_shell __ARGS((char_u *cmd, int flags));
-char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
-void append_redir __ARGS((char_u *buf, int buflen, char_u *opt, char_u *fname));
-int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
-int read_viminfo __ARGS((char_u *file, int flags));
-void write_viminfo __ARGS((char_u *file, int forceit));
-int viminfo_readline __ARGS((vir_T *virp));
-char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
-void viminfo_writestring __ARGS((FILE *fd, char_u *p));
-void do_fixdel __ARGS((exarg_T *eap));
-void print_line_no_prefix __ARGS((linenr_T lnum, int use_number, int list));
-void print_line __ARGS((linenr_T lnum, int use_number, int list));
-int rename_buffer __ARGS((char_u *new_fname));
-void ex_file __ARGS((exarg_T *eap));
-void ex_update __ARGS((exarg_T *eap));
-void ex_write __ARGS((exarg_T *eap));
-int do_write __ARGS((exarg_T *eap));
-int check_overwrite __ARGS((exarg_T *eap, buf_T *buf, char_u *fname, char_u *
- ffname,
- int other));
-void ex_wnext __ARGS((exarg_T *eap));
-void do_wqall __ARGS((exarg_T *eap));
-int not_writing __ARGS((void));
-int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm,
- linenr_T lnum,
- int forceit));
-int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap,
- linenr_T newlnum, int flags,
- win_T *oldwin));
-void ex_append __ARGS((exarg_T *eap));
-void ex_change __ARGS((exarg_T *eap));
-void ex_z __ARGS((exarg_T *eap));
-int check_restricted __ARGS((void));
-int check_secure __ARGS((void));
-void do_sub __ARGS((exarg_T *eap));
-int do_sub_msg __ARGS((int count_only));
-void ex_global __ARGS((exarg_T *eap));
-void global_exe __ARGS((char_u *cmd));
-int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
-void write_viminfo_sub_string __ARGS((FILE *fp));
-void free_old_sub __ARGS((void));
-int prepare_tagpreview __ARGS((int undo_sync));
-void ex_help __ARGS((exarg_T *eap));
-char_u *check_help_lang __ARGS((char_u *arg));
-int help_heuristic __ARGS((char_u *matched_string, int offset, int wrong_case));
-int find_help_tags __ARGS((char_u *arg, int *num_matches, char_u ***matches,
- int keep_lang));
-void fix_help_buffer __ARGS((void));
-void ex_exusage __ARGS((exarg_T *eap));
-void ex_viusage __ARGS((exarg_T *eap));
-void ex_helptags __ARGS((exarg_T *eap));
-void ex_sign __ARGS((exarg_T *eap));
-void sign_gui_started __ARGS((void));
-int sign_get_attr __ARGS((int typenr, int line));
-char_u *sign_get_text __ARGS((int typenr));
-void *sign_get_image __ARGS((int typenr));
-char_u *sign_typenr2name __ARGS((int typenr));
-void free_signs __ARGS((void));
-char_u *get_sign_name __ARGS((expand_T *xp, int idx));
-void set_context_in_sign_cmd __ARGS((expand_T *xp, char_u *arg));
-void ex_drop __ARGS((exarg_T *eap));
-/* vim: set ft=c : */
diff --git a/src/proto/if_cscope.pro b/src/proto/if_cscope.pro
deleted file mode 100644
index 1239835d79..0000000000
--- a/src/proto/if_cscope.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-/* if_cscope.c */
-char_u *get_cscope_name __ARGS((expand_T *xp, int idx));
-void set_context_in_cscope_cmd __ARGS((expand_T *xp, char_u *arg,
- cmdidx_T cmdidx));
-void do_cscope __ARGS((exarg_T *eap));
-void do_scscope __ARGS((exarg_T *eap));
-void do_cstag __ARGS((exarg_T *eap));
-int cs_fgets __ARGS((char_u *buf, int size));
-void cs_free_tags __ARGS((void));
-void cs_print_tags __ARGS((void));
-int cs_connection __ARGS((int num, char_u *dbpath, char_u *ppath));
-void cs_end __ARGS((void));
-/* vim: set ft=c : */
diff --git a/src/proto/option.pro b/src/proto/option.pro
deleted file mode 100644
index 00aa74d34a..0000000000
--- a/src/proto/option.pro
+++ /dev/null
@@ -1,74 +0,0 @@
-/* option.c */
-void set_init_1 __ARGS((void));
-void set_string_default __ARGS((char *name, char_u *val));
-void set_number_default __ARGS((char *name, long val));
-void free_all_options __ARGS((void));
-void set_init_2 __ARGS((void));
-void set_init_3 __ARGS((void));
-void set_helplang_default __ARGS((char_u *lang));
-void init_gui_options __ARGS((void));
-void set_title_defaults __ARGS((void));
-int do_set __ARGS((char_u *arg, int opt_flags));
-void set_options_bin __ARGS((int oldval, int newval, int opt_flags));
-int get_viminfo_parameter __ARGS((int type));
-char_u *find_viminfo_parameter __ARGS((int type));
-void check_options __ARGS((void));
-void check_buf_options __ARGS((buf_T *buf));
-void free_string_option __ARGS((char_u *p));
-void clear_string_option __ARGS((char_u **pp));
-void set_term_option_alloced __ARGS((char_u **p));
-int was_set_insecurely __ARGS((char_u *opt, int opt_flags));
-void set_string_option_direct __ARGS((char_u *name, int opt_idx, char_u *val,
- int opt_flags,
- int set_sid));
-char_u *check_colorcolumn __ARGS((win_T *wp));
-char_u *check_stl_option __ARGS((char_u *s));
-int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval,
- int opt_flags));
-int get_option_value_strict __ARGS((char_u *name, long *numval, char_u *
- *stringval, int opt_type,
- void *from));
-char_u *option_iter_next __ARGS((void **option, int opt_type));
-char_u *set_option_value __ARGS((char_u *name, long number, char_u *string,
- int opt_flags));
-char_u *get_term_code __ARGS((char_u *tname));
-char_u *get_highlight_default __ARGS((void));
-char_u *get_encoding_default __ARGS((void));
-int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
-int makefoldset __ARGS((FILE *fd));
-void clear_termoptions __ARGS((void));
-void free_termoptions __ARGS((void));
-void free_one_termoption __ARGS((char_u *var));
-void set_term_defaults __ARGS((void));
-void comp_col __ARGS((void));
-void unset_global_local_option __ARGS((char_u *name, void *from));
-char_u *get_equalprg __ARGS((void));
-void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
-void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
-void check_win_options __ARGS((win_T *win));
-void check_winopt __ARGS((winopt_T *wop));
-void clear_winopt __ARGS((winopt_T *wop));
-void buf_copy_options __ARGS((buf_T *buf, int flags));
-void reset_modifiable __ARGS((void));
-void set_iminsert_global __ARGS((void));
-void set_imsearch_global __ARGS((void));
-void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
-int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file,
- char_u ***file));
-int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
-int langmap_adjust_mb __ARGS((int c));
-int has_format_option __ARGS((int x));
-int shortmess __ARGS((int x));
-void vimrc_found __ARGS((char_u *fname, char_u *envname));
-void change_compatible __ARGS((int on));
-int option_was_set __ARGS((char_u *name));
-void reset_option_was_set __ARGS((char_u *name));
-int can_bs __ARGS((int what));
-void save_file_ff __ARGS((buf_T *buf));
-int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
-int check_ff_value __ARGS((char_u *p));
-long get_sw_value __ARGS((buf_T *buf));
-long get_sts_value __ARGS((void));
-void find_mps_values __ARGS((int *initc, int *findc, int *backwards,
- int switchit));
-/* vim: set ft=c : */
diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro
deleted file mode 100644
index 3d03df1eaf..0000000000
--- a/src/proto/os_unix.pro
+++ /dev/null
@@ -1,75 +0,0 @@
-/* os_unix.c */
-void mch_write __ARGS((char_u *s, int len));
-int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
-int mch_char_avail __ARGS((void));
-void mch_delay __ARGS((long msec, int ignoreinput));
-int mch_stackcheck __ARGS((char *p));
-void mch_startjmp __ARGS((void));
-void mch_endjmp __ARGS((void));
-void mch_didjmp __ARGS((void));
-void mch_suspend __ARGS((void));
-void mch_init __ARGS((void));
-void reset_signals __ARGS((void));
-int vim_handle_signal __ARGS((int sig));
-int mch_check_win __ARGS((int argc, char **argv));
-int mch_input_isatty __ARGS((void));
-int mch_can_restore_title __ARGS((void));
-int mch_can_restore_icon __ARGS((void));
-void mch_settitle __ARGS((char_u *title, char_u *icon));
-void mch_restore_title __ARGS((int which));
-int vim_is_xterm __ARGS((char_u *name));
-int use_xterm_like_mouse __ARGS((char_u *name));
-int use_xterm_mouse __ARGS((void));
-int vim_is_iris __ARGS((char_u *name));
-int vim_is_vt300 __ARGS((char_u *name));
-int vim_is_fastterm __ARGS((char_u *name));
-int mch_get_user_name __ARGS((char_u *s, int len));
-int mch_get_uname __ARGS((uid_t uid, char_u *s, int len));
-void mch_get_host_name __ARGS((char_u *s, int len));
-long mch_get_pid __ARGS((void));
-void slash_adjust __ARGS((char_u *p));
-void fname_case __ARGS((char_u *name, int len));
-long mch_getperm __ARGS((char_u *name));
-int mch_setperm __ARGS((char_u *name, long perm));
-void mch_copy_sec __ARGS((char_u *from_file, char_u *to_file));
-vim_acl_T mch_get_acl __ARGS((char_u *fname));
-void mch_set_acl __ARGS((char_u *fname, vim_acl_T aclent));
-void mch_free_acl __ARGS((vim_acl_T aclent));
-void mch_hide __ARGS((char_u *name));
-int mch_isdir __ARGS((char_u *name));
-int mch_can_exe __ARGS((char_u *name));
-int mch_nodetype __ARGS((char_u *name));
-void mch_early_init __ARGS((void));
-void mch_free_mem __ARGS((void));
-void mch_exit __ARGS((int r));
-void mch_settmode __ARGS((int tmode));
-void get_stty __ARGS((void));
-void mch_setmouse __ARGS((int on));
-void check_mouse_termcode __ARGS((void));
-int mch_screenmode __ARGS((char_u *arg));
-int mch_get_shellsize __ARGS((void));
-void mch_set_shellsize __ARGS((void));
-void mch_new_shellsize __ARGS((void));
-int mch_call_shell __ARGS((char_u *cmd, int options));
-void mch_breakcheck __ARGS((void));
-int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
-int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file,
- char_u ***file,
- int flags));
-int mch_has_exp_wildcard __ARGS((char_u *p));
-int mch_has_wildcard __ARGS((char_u *p));
-int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring,
- int argint, char_u **string_result,
- int *number_result));
-void setup_term_clip __ARGS((void));
-void start_xterm_trace __ARGS((int button));
-void stop_xterm_trace __ARGS((void));
-void clear_xterm_clip __ARGS((void));
-int clip_xterm_own_selection __ARGS((VimClipboard *cbd));
-void clip_xterm_lose_selection __ARGS((VimClipboard *cbd));
-void clip_xterm_request_selection __ARGS((VimClipboard *cbd));
-void clip_xterm_set_selection __ARGS((VimClipboard *cbd));
-int xsmp_handle_requests __ARGS((void));
-void xsmp_init __ARGS((void));
-void xsmp_close __ARGS((void));
-/* vim: set ft=c : */
diff --git a/src/proto/regexp.pro b/src/proto/regexp.pro
deleted file mode 100644
index b77a8e8ea9..0000000000
--- a/src/proto/regexp.pro
+++ /dev/null
@@ -1,24 +0,0 @@
-/* regexp.c */
-int re_multiline __ARGS((regprog_T *prog));
-int re_lookbehind __ARGS((regprog_T *prog));
-char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp));
-int vim_regcomp_had_eol __ARGS((void));
-void free_regexp_stuff __ARGS((void));
-reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em));
-void unref_extmatch __ARGS((reg_extmatch_T *em));
-char_u *regtilde __ARGS((char_u *source, int magic));
-int vim_regsub __ARGS((regmatch_T *rmp, char_u *source, char_u *dest, int copy,
- int magic,
- int backslash));
-int vim_regsub_multi __ARGS((regmmatch_T *rmp, linenr_T lnum, char_u *source,
- char_u *dest, int copy, int magic,
- int backslash));
-char_u *reg_submatch __ARGS((int no));
-regprog_T *vim_regcomp __ARGS((char_u *expr_arg, int re_flags));
-void vim_regfree __ARGS((regprog_T *prog));
-int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
-int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
-long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf,
- linenr_T lnum, colnr_T col,
- proftime_T *tm));
-/* vim: set ft=c : */
diff --git a/src/proto/term.pro b/src/proto/term.pro
deleted file mode 100644
index 9a348c0a72..0000000000
--- a/src/proto/term.pro
+++ /dev/null
@@ -1,65 +0,0 @@
-/* term.c */
-int set_termname __ARGS((char_u *term));
-void set_mouse_termcode __ARGS((int n, char_u *s));
-void del_mouse_termcode __ARGS((int n));
-void getlinecol __ARGS((long *cp, long *rp));
-int add_termcap_entry __ARGS((char_u *name, int force));
-int term_is_8bit __ARGS((char_u *name));
-int term_is_gui __ARGS((char_u *name));
-char_u *tltoa __ARGS((unsigned long i));
-void termcapinit __ARGS((char_u *name));
-void out_flush __ARGS((void));
-void out_flush_check __ARGS((void));
-void out_trash __ARGS((void));
-void out_char __ARGS((unsigned c));
-void out_str_nf __ARGS((char_u *s));
-void out_str __ARGS((char_u *s));
-void term_windgoto __ARGS((int row, int col));
-void term_cursor_right __ARGS((int i));
-void term_append_lines __ARGS((int line_count));
-void term_delete_lines __ARGS((int line_count));
-void term_set_winpos __ARGS((int x, int y));
-void term_set_winsize __ARGS((int width, int height));
-void term_fg_color __ARGS((int n));
-void term_bg_color __ARGS((int n));
-void term_settitle __ARGS((char_u *title));
-void ttest __ARGS((int pairs));
-void add_long_to_buf __ARGS((long_u val, char_u *dst));
-void check_shellsize __ARGS((void));
-void limit_screen_size __ARGS((void));
-void win_new_shellsize __ARGS((void));
-void shell_resized __ARGS((void));
-void shell_resized_check __ARGS((void));
-void set_shellsize __ARGS((int width, int height, int mustset));
-void settmode __ARGS((int tmode));
-void starttermcap __ARGS((void));
-void stoptermcap __ARGS((void));
-void may_req_termresponse __ARGS((void));
-void may_req_ambiguous_char_width __ARGS((void));
-int swapping_screen __ARGS((void));
-void setmouse __ARGS((void));
-int mouse_has __ARGS((int c));
-int mouse_model_popup __ARGS((void));
-void scroll_start __ARGS((void));
-void cursor_on __ARGS((void));
-void cursor_off __ARGS((void));
-void term_cursor_shape __ARGS((void));
-void scroll_region_set __ARGS((win_T *wp, int off));
-void scroll_region_reset __ARGS((void));
-void clear_termcodes __ARGS((void));
-void add_termcode __ARGS((char_u *name, char_u *string, int flags));
-char_u *find_termcode __ARGS((char_u *name));
-char_u *get_termcode __ARGS((int i));
-void del_termcode __ARGS((char_u *name));
-void set_mouse_topline __ARGS((win_T *wp));
-int check_termcode __ARGS((int max_offset, char_u *buf, int bufsize,
- int *buflen));
-char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part,
- int do_lt,
- int special));
-int find_term_bykeys __ARGS((char_u *src));
-void show_termcodes __ARGS((void));
-int show_one_termcode __ARGS((char_u *name, char_u *code, int printit));
-char_u *translate_mapping __ARGS((char_u *str, int expmap));
-void update_tcap __ARGS((int attr));
-/* vim: set ft=c : */
diff --git a/src/proto/version.pro b/src/proto/version.pro
deleted file mode 100644
index e6fb78f069..0000000000
--- a/src/proto/version.pro
+++ /dev/null
@@ -1,10 +0,0 @@
-/* version.c */
-void make_version __ARGS((void));
-int highest_patch __ARGS((void));
-int has_patch __ARGS((int n));
-void ex_version __ARGS((exarg_T *eap));
-void list_version __ARGS((void));
-void maybe_intro_message __ARGS((void));
-void intro_message __ARGS((int colon));
-void ex_intro __ARGS((exarg_T *eap));
-/* vim: set ft=c : */
diff --git a/src/quickfix.c b/src/quickfix.c
index a141d9834b..af134d19f9 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -12,6 +12,34 @@
*/
#include "vim.h"
+#include "quickfix.h"
+#include "buffer.h"
+#include "charset.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_eval.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "os_unix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "term.h"
+#include "ui.h"
+#include "window.h"
#include "os/os.h"
diff --git a/src/proto/quickfix.pro b/src/quickfix.h
index 98d64a7a3f..949d60bd73 100644
--- a/src/proto/quickfix.pro
+++ b/src/quickfix.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_QUICKFIX_H
+#define NEOVIM_QUICKFIX_H
/* quickfix.c */
int qf_init __ARGS((win_T *wp, char_u *efile, char_u *errorformat, int newlist,
char_u *qf_title));
@@ -31,3 +33,4 @@ void ex_cbuffer __ARGS((exarg_T *eap));
void ex_cexpr __ARGS((exarg_T *eap));
void ex_helpgrep __ARGS((exarg_T *eap));
/* vim: set ft=c : */
+#endif /* NEOVIM_QUICKFIX_H */
diff --git a/src/regexp.c b/src/regexp.c
index de98543a11..3641f16cdb 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -45,6 +45,15 @@
/* #define REGEXP_DEBUG */
#include "vim.h"
+#include "regexp.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_cmds2.h"
+#include "mark.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
#ifdef REGEXP_DEBUG
/* show/save debugging data when BT engine is used */
@@ -56,7 +65,7 @@
#endif
/*
- * The "internal use only" fields in regexp.h are present to pass info from
+ * The "internal use only" fields in regexp_defs.h are present to pass info from
* compile to execute that permits the execute phase to run lots faster on
* simple cases. They are:
*
diff --git a/src/regexp.h b/src/regexp.h
index 0426f242a4..a843983e3c 100644
--- a/src/regexp.h
+++ b/src/regexp.h
@@ -1,152 +1,27 @@
-/* vi:set ts=8 sts=4 sw=4:
- *
- * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
- *
- * This is NOT the original regular expression code as written by Henry
- * Spencer. This code has been modified specifically for use with Vim, and
- * should not be used apart from compiling Vim. If you want a good regular
- * expression library, get the original code.
- *
- * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
- */
-
-#ifndef _REGEXP_H
-#define _REGEXP_H
-
-/*
- * The number of sub-matches is limited to 10.
- * The first one (index 0) is the whole match, referenced with "\0".
- * The second one (index 1) is the first sub-match, referenced with "\1".
- * This goes up to the tenth (index 9), referenced with "\9".
- */
-#define NSUBEXP 10
-
-/*
- * In the NFA engine: how many braces are allowed.
- * TODO(RE): Use dynamic memory allocation instead of static, like here
- */
-#define NFA_MAX_BRACES 20
-
-typedef struct regengine regengine_T;
-
-/*
- * Structure returned by vim_regcomp() to pass on to vim_regexec().
- * This is the general structure. For the actual matcher, two specific
- * structures are used. See code below.
- */
-typedef struct regprog {
- regengine_T *engine;
- unsigned regflags;
-} regprog_T;
-
-/*
- * Structure used by the back track matcher.
- * These fields are only to be used in regexp.c!
- * See regexp.c for an explanation.
- */
-typedef struct {
- /* These two members implement regprog_T */
- regengine_T *engine;
- unsigned regflags;
-
- int regstart;
- char_u reganch;
- char_u *regmust;
- int regmlen;
- char_u reghasz;
- char_u program[1]; /* actually longer.. */
-} bt_regprog_T;
-
-/*
- * Structure representing a NFA state.
- * A NFA state may have no outgoing edge, when it is a NFA_MATCH state.
- */
-typedef struct nfa_state nfa_state_T;
-struct nfa_state {
- int c;
- nfa_state_T *out;
- nfa_state_T *out1;
- int id;
- int lastlist[2]; /* 0: normal, 1: recursive */
- int val;
-};
-
-/*
- * Structure used by the NFA matcher.
- */
-typedef struct {
- /* These two members implement regprog_T */
- regengine_T *engine;
- unsigned regflags;
-
- nfa_state_T *start; /* points into state[] */
-
- int reganch; /* pattern starts with ^ */
- int regstart; /* char at start of pattern */
- char_u *match_text; /* plain text to match with */
-
- int has_zend; /* pattern contains \ze */
- int has_backref; /* pattern contains \1 .. \9 */
- int reghasz;
-#ifdef DEBUG
- char_u *pattern;
-#endif
- int nsubexp; /* number of () */
- int nstate;
- nfa_state_T state[1]; /* actually longer.. */
-} nfa_regprog_T;
-
-/*
- * Structure to be used for single-line matching.
- * Sub-match "no" starts at "startp[no]" and ends just before "endp[no]".
- * When there is no match, the pointer is NULL.
- */
-typedef struct {
- regprog_T *regprog;
- char_u *startp[NSUBEXP];
- char_u *endp[NSUBEXP];
- int rm_ic;
-} regmatch_T;
-
-/*
- * Structure to be used for multi-line matching.
- * Sub-match "no" starts in line "startpos[no].lnum" column "startpos[no].col"
- * and ends in line "endpos[no].lnum" just before column "endpos[no].col".
- * The line numbers are relative to the first line, thus startpos[0].lnum is
- * always 0.
- * When there is no match, the line number is -1.
- */
-typedef struct {
- regprog_T *regprog;
- lpos_T startpos[NSUBEXP];
- lpos_T endpos[NSUBEXP];
- int rmm_ic;
- colnr_T rmm_maxcol; /* when not zero: maximum column */
-} regmmatch_T;
-
-/*
- * Structure used to store external references: "\z\(\)" to "\z\1".
- * Use a reference count to avoid the need to copy this around. When it goes
- * from 1 to zero the matches need to be freed.
- */
-typedef struct {
- short refcnt;
- char_u *matches[NSUBEXP];
-} reg_extmatch_T;
-
-struct regengine {
- regprog_T *(*regcomp)(char_u*, int);
- void (*regfree)(regprog_T *);
- int (*regexec)(regmatch_T*, char_u*, colnr_T);
-#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \
- || defined(FIND_REPLACE_DIALOG) || defined(PROTO)
- int (*regexec_nl)(regmatch_T*, char_u*, colnr_T);
-#endif
- long (*regexec_multi)(regmmatch_T*, win_T*, buf_T*, linenr_T, colnr_T,
- proftime_T*);
-#ifdef DEBUG
- char_u *expr;
-#endif
-};
-
-#endif /* _REGEXP_H */
+#ifndef NEOVIM_REGEXP_H
+#define NEOVIM_REGEXP_H
+/* regexp.c */
+int re_multiline __ARGS((regprog_T *prog));
+int re_lookbehind __ARGS((regprog_T *prog));
+char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp));
+int vim_regcomp_had_eol __ARGS((void));
+void free_regexp_stuff __ARGS((void));
+reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em));
+void unref_extmatch __ARGS((reg_extmatch_T *em));
+char_u *regtilde __ARGS((char_u *source, int magic));
+int vim_regsub __ARGS((regmatch_T *rmp, char_u *source, char_u *dest, int copy,
+ int magic,
+ int backslash));
+int vim_regsub_multi __ARGS((regmmatch_T *rmp, linenr_T lnum, char_u *source,
+ char_u *dest, int copy, int magic,
+ int backslash));
+char_u *reg_submatch __ARGS((int no));
+regprog_T *vim_regcomp __ARGS((char_u *expr_arg, int re_flags));
+void vim_regfree __ARGS((regprog_T *prog));
+int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
+int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
+long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf,
+ linenr_T lnum, colnr_T col,
+ proftime_T *tm));
+/* vim: set ft=c : */
+#endif /* NEOVIM_REGEXP_H */
diff --git a/src/regexp_defs.h b/src/regexp_defs.h
new file mode 100644
index 0000000000..0426f242a4
--- /dev/null
+++ b/src/regexp_defs.h
@@ -0,0 +1,152 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
+ *
+ * This is NOT the original regular expression code as written by Henry
+ * Spencer. This code has been modified specifically for use with Vim, and
+ * should not be used apart from compiling Vim. If you want a good regular
+ * expression library, get the original code.
+ *
+ * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
+ */
+
+#ifndef _REGEXP_H
+#define _REGEXP_H
+
+/*
+ * The number of sub-matches is limited to 10.
+ * The first one (index 0) is the whole match, referenced with "\0".
+ * The second one (index 1) is the first sub-match, referenced with "\1".
+ * This goes up to the tenth (index 9), referenced with "\9".
+ */
+#define NSUBEXP 10
+
+/*
+ * In the NFA engine: how many braces are allowed.
+ * TODO(RE): Use dynamic memory allocation instead of static, like here
+ */
+#define NFA_MAX_BRACES 20
+
+typedef struct regengine regengine_T;
+
+/*
+ * Structure returned by vim_regcomp() to pass on to vim_regexec().
+ * This is the general structure. For the actual matcher, two specific
+ * structures are used. See code below.
+ */
+typedef struct regprog {
+ regengine_T *engine;
+ unsigned regflags;
+} regprog_T;
+
+/*
+ * Structure used by the back track matcher.
+ * These fields are only to be used in regexp.c!
+ * See regexp.c for an explanation.
+ */
+typedef struct {
+ /* These two members implement regprog_T */
+ regengine_T *engine;
+ unsigned regflags;
+
+ int regstart;
+ char_u reganch;
+ char_u *regmust;
+ int regmlen;
+ char_u reghasz;
+ char_u program[1]; /* actually longer.. */
+} bt_regprog_T;
+
+/*
+ * Structure representing a NFA state.
+ * A NFA state may have no outgoing edge, when it is a NFA_MATCH state.
+ */
+typedef struct nfa_state nfa_state_T;
+struct nfa_state {
+ int c;
+ nfa_state_T *out;
+ nfa_state_T *out1;
+ int id;
+ int lastlist[2]; /* 0: normal, 1: recursive */
+ int val;
+};
+
+/*
+ * Structure used by the NFA matcher.
+ */
+typedef struct {
+ /* These two members implement regprog_T */
+ regengine_T *engine;
+ unsigned regflags;
+
+ nfa_state_T *start; /* points into state[] */
+
+ int reganch; /* pattern starts with ^ */
+ int regstart; /* char at start of pattern */
+ char_u *match_text; /* plain text to match with */
+
+ int has_zend; /* pattern contains \ze */
+ int has_backref; /* pattern contains \1 .. \9 */
+ int reghasz;
+#ifdef DEBUG
+ char_u *pattern;
+#endif
+ int nsubexp; /* number of () */
+ int nstate;
+ nfa_state_T state[1]; /* actually longer.. */
+} nfa_regprog_T;
+
+/*
+ * Structure to be used for single-line matching.
+ * Sub-match "no" starts at "startp[no]" and ends just before "endp[no]".
+ * When there is no match, the pointer is NULL.
+ */
+typedef struct {
+ regprog_T *regprog;
+ char_u *startp[NSUBEXP];
+ char_u *endp[NSUBEXP];
+ int rm_ic;
+} regmatch_T;
+
+/*
+ * Structure to be used for multi-line matching.
+ * Sub-match "no" starts in line "startpos[no].lnum" column "startpos[no].col"
+ * and ends in line "endpos[no].lnum" just before column "endpos[no].col".
+ * The line numbers are relative to the first line, thus startpos[0].lnum is
+ * always 0.
+ * When there is no match, the line number is -1.
+ */
+typedef struct {
+ regprog_T *regprog;
+ lpos_T startpos[NSUBEXP];
+ lpos_T endpos[NSUBEXP];
+ int rmm_ic;
+ colnr_T rmm_maxcol; /* when not zero: maximum column */
+} regmmatch_T;
+
+/*
+ * Structure used to store external references: "\z\(\)" to "\z\1".
+ * Use a reference count to avoid the need to copy this around. When it goes
+ * from 1 to zero the matches need to be freed.
+ */
+typedef struct {
+ short refcnt;
+ char_u *matches[NSUBEXP];
+} reg_extmatch_T;
+
+struct regengine {
+ regprog_T *(*regcomp)(char_u*, int);
+ void (*regfree)(regprog_T *);
+ int (*regexec)(regmatch_T*, char_u*, colnr_T);
+#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \
+ || defined(FIND_REPLACE_DIALOG) || defined(PROTO)
+ int (*regexec_nl)(regmatch_T*, char_u*, colnr_T);
+#endif
+ long (*regexec_multi)(regmmatch_T*, win_T*, buf_T*, linenr_T, colnr_T,
+ proftime_T*);
+#ifdef DEBUG
+ char_u *expr;
+#endif
+};
+
+#endif /* _REGEXP_H */
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 50e193924a..75deff1b3e 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -5,6 +5,8 @@
* This file is included in "regexp.c".
*/
+#include "misc2.h"
+
/*
* Logging of NFA engine.
*
diff --git a/src/screen.c b/src/screen.c
index 3f544ad423..293a41b9c6 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -88,6 +88,37 @@
*/
#include "vim.h"
+#include "screen.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "eval.h"
+#include "ex_cmds2.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "main.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "menu.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "popupmnu.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "search.h"
+#include "spell.h"
+#include "syntax.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+#include "version.h"
+#include "window.h"
#define MB_FILLER_CHAR '<' /* character used when a double-width character
* doesn't fit. */
diff --git a/src/proto/screen.pro b/src/screen.h
index 53a909e242..2f25798757 100644
--- a/src/proto/screen.pro
+++ b/src/screen.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_SCREEN_H
+#define NEOVIM_SCREEN_H
/* screen.c */
void redraw_later __ARGS((int type));
void redraw_win_later __ARGS((win_T *wp, int type));
@@ -64,3 +66,4 @@ int number_width __ARGS((win_T *wp));
int screen_screencol __ARGS((void));
int screen_screenrow __ARGS((void));
/* vim: set ft=c : */
+#endif /* NEOVIM_SCREEN_H */
diff --git a/src/search.c b/src/search.c
index a46637efdb..7c89b775d0 100644
--- a/src/search.c
+++ b/src/search.c
@@ -11,6 +11,31 @@
*/
#include "vim.h"
+#include "search.h"
+#include "charset.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "main.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "regexp.h"
+#include "screen.h"
+#include "term.h"
+#include "ui.h"
+#include "window.h"
static void save_re_pat __ARGS((int idx, char_u *pat, int magic));
static void set_vv_searchforward __ARGS((void));
diff --git a/src/proto/search.pro b/src/search.h
index 9c3c520c9f..b24d2aa69a 100644
--- a/src/proto/search.pro
+++ b/src/search.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_SEARCH_H
+#define NEOVIM_SEARCH_H
/* search.c */
int search_regcomp __ARGS((char_u *pat, int pat_save, int pat_use, int options,
regmmatch_T *regmatch));
@@ -47,3 +49,4 @@ void find_pattern_in_path __ARGS((char_u *ptr, int dir, int len, int whole,
int read_viminfo_search_pattern __ARGS((vir_T *virp, int force));
void write_viminfo_search_pattern __ARGS((FILE *fp));
/* vim: set ft=c : */
+#endif /* NEOVIM_SEARCH_H */
diff --git a/src/sha256.c b/src/sha256.c
index 16ee6cfad0..bc2be2678f 100644
--- a/src/sha256.c
+++ b/src/sha256.c
@@ -21,7 +21,7 @@
*/
#include "vim.h"
-
+#include "sha256.h"
static void sha256_process __ARGS((context_sha256_T *ctx, char_u data[64]));
diff --git a/src/proto/sha256.pro b/src/sha256.h
index dca9e37998..03e8aa6bea 100644
--- a/src/proto/sha256.pro
+++ b/src/sha256.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_SHA256_H
+#define NEOVIM_SHA256_H
/* sha256.c */
void sha256_start __ARGS((context_sha256_T *ctx));
void sha256_update __ARGS((context_sha256_T *ctx, char_u *input,
@@ -10,3 +12,4 @@ int sha256_self_test __ARGS((void));
void sha2_seed __ARGS((char_u *header, int header_len, char_u *salt,
int salt_len));
/* vim: set ft=c : */
+#endif /* NEOVIM_SHA256_H */
diff --git a/src/spell.c b/src/spell.c
index 941ac08b05..3fae72ffd2 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -298,9 +298,34 @@
*/
#include "vim.h"
-
-
-#ifndef UNIX /* it's in os_unix.h for Unix */
+#include "spell.h"
+#include "buffer.h"
+#include "charset.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "fileio.h"
+#include "getchar.h"
+#include "hashtab.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "normal.h"
+#include "option.h"
+#include "os_unix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "syntax.h"
+#include "term.h"
+#include "ui.h"
+#include "undo.h"
+
+#ifndef UNIX /* it's in os_unix_defs.h for Unix */
# include <time.h> /* for time_t */
#endif
diff --git a/src/proto/spell.pro b/src/spell.h
index cba277509e..8a349300a3 100644
--- a/src/proto/spell.pro
+++ b/src/spell.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_SPELL_H
+#define NEOVIM_SPELL_H
/* spell.c */
int spell_check __ARGS((win_T *wp, char_u *ptr, hlf_T *attrp, int *capcol,
int docount));
@@ -28,3 +30,4 @@ int spell_word_start __ARGS((int startcol));
void spell_expand_check_cap __ARGS((colnr_T col));
int expand_spelling __ARGS((linenr_T lnum, char_u *pat, char_u ***matchp));
/* vim: set ft=c : */
+#endif /* NEOVIM_SPELL_H */
diff --git a/src/structs.h b/src/structs.h
index c29848a9af..639d50f674 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -56,9 +56,9 @@ typedef int scid_T; /* script ID */
typedef struct file_buffer buf_T; /* forward declaration */
/*
- * This is here because regexp.h needs pos_T and below regprog_T is used.
+ * This is here because regexp_defs.h needs pos_T and below regprog_T is used.
*/
-#include "regexp.h"
+#include "regexp_defs.h"
/*
* This is here because gui.h needs the pos_T and win_T, and win_T needs gui.h
diff --git a/src/syntax.c b/src/syntax.c
index e576185b7d..4b22137fda 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -12,6 +12,25 @@
*/
#include "vim.h"
+#include "syntax.h"
+#include "charset.h"
+#include "eval.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "fileio.h"
+#include "fold.h"
+#include "hashtab.h"
+#include "mbyte.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "option.h"
+#include "os_unix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "term.h"
+#include "ui.h"
#include "os/os.h"
/*
diff --git a/src/proto/syntax.pro b/src/syntax.h
index 0d5f23910f..e05d342927 100644
--- a/src/proto/syntax.pro
+++ b/src/syntax.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_SYNTAX_H
+#define NEOVIM_SYNTAX_H
/* syntax.c */
void syntax_start __ARGS((win_T *wp, linenr_T lnum));
void syn_stack_free_all __ARGS((synblock_T *block));
@@ -56,3 +58,4 @@ void set_context_in_highlight_cmd __ARGS((expand_T *xp, char_u *arg));
char_u *get_highlight_name __ARGS((expand_T *xp, int idx));
void free_highlight_fonts __ARGS((void));
/* vim: set ft=c : */
+#endif /* NEOVIM_SYNTAX_H */
diff --git a/src/tag.c b/src/tag.c
index 671f624ce8..ebdfb6b2a2 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -12,6 +12,33 @@
*/
#include "vim.h"
+#include "tag.h"
+#include "buffer.h"
+#include "charset.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "if_cscope.h"
+#include "mark.h"
+#include "mbyte.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "term.h"
+#include "ui.h"
+#include "window.h"
/*
* Structure to hold pointers to various items in a tag line.
diff --git a/src/proto/tag.pro b/src/tag.h
index fedbc93745..829d48ff7b 100644
--- a/src/proto/tag.pro
+++ b/src/tag.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_TAG_H
+#define NEOVIM_TAG_H
/* tag.c */
int do_tag __ARGS((char_u *tag, int type, int count, int forceit, int verbose));
void tag_freematch __ARGS((void));
@@ -13,3 +15,4 @@ int expand_tags __ARGS((int tagnames, char_u *pat, int *num_file,
char_u ***file));
int get_tags __ARGS((list_T *list, char_u *pat));
/* vim: set ft=c : */
+#endif /* NEOVIM_TAG_H */
diff --git a/src/term.c b/src/term.c
index a15e281de5..8488376a25 100644
--- a/src/term.c
+++ b/src/term.c
@@ -24,6 +24,25 @@
#define tgetstr tgetstr_defined_wrong
#include "vim.h"
+#include "term.h"
+#include "buffer.h"
+#include "charset.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "getchar.h"
+#include "message.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "os_unix.h"
+#include "popupmnu.h"
+#include "screen.h"
+#include "syntax.h"
+#include "ui.h"
+#include "window.h"
#ifdef HAVE_TGETENT
# ifdef HAVE_TERMIOS_H
diff --git a/src/term.h b/src/term.h
index 0ba5a19c13..792d9b7484 100644
--- a/src/term.h
+++ b/src/term.h
@@ -1,156 +1,68 @@
-/* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- */
-
-/*
- * This file contains the defines for the machine dependent escape sequences
- * that the editor needs to perform various operations. All of the sequences
- * here are optional, except "cm" (cursor motion).
- */
-
-
-/*
- * Index of the termcap codes in the term_strings array.
- */
-enum SpecialKey {
- KS_NAME = 0, /* name of this terminal entry */
- KS_CE, /* clear to end of line */
- KS_AL, /* add new blank line */
- KS_CAL, /* add number of blank lines */
- KS_DL, /* delete line */
- KS_CDL, /* delete number of lines */
- KS_CS, /* scroll region */
- KS_CL, /* clear screen */
- KS_CD, /* clear to end of display */
- KS_UT, /* clearing uses current background color */
- KS_DA, /* text may be scrolled down from up */
- KS_DB, /* text may be scrolled up from down */
- KS_VI, /* cursor invisible */
- KS_VE, /* cursor visible */
- KS_VS, /* cursor very visible */
- KS_ME, /* normal mode */
- KS_MR, /* reverse mode */
- KS_MD, /* bold mode */
- KS_SE, /* normal mode */
- KS_SO, /* standout mode */
- KS_CZH, /* italic mode start */
- KS_CZR, /* italic mode end */
- KS_UE, /* exit underscore (underline) mode */
- KS_US, /* underscore (underline) mode */
- KS_UCE, /* exit undercurl mode */
- KS_UCS, /* undercurl mode */
- KS_MS, /* save to move cur in reverse mode */
- KS_CM, /* cursor motion */
- KS_SR, /* scroll reverse (backward) */
- KS_CRI, /* cursor number of chars right */
- KS_VB, /* visual bell */
- KS_KS, /* put term in "keypad transmit" mode */
- KS_KE, /* out of "keypad transmit" mode */
- KS_TI, /* put terminal in termcap mode */
- KS_TE, /* out of termcap mode */
- KS_BC, /* backspace character (cursor left) */
- KS_CCS, /* cur is relative to scroll region */
- KS_CCO, /* number of colors */
- KS_CSF, /* set foreground color */
- KS_CSB, /* set background color */
- KS_XS, /* standout not erased by overwriting (hpterm) */
- KS_MB, /* blink mode */
- KS_CAF, /* set foreground color (ANSI) */
- KS_CAB, /* set background color (ANSI) */
- KS_LE, /* cursor left (mostly backspace) */
- KS_ND, /* cursor right */
- KS_CIS, /* set icon text start */
- KS_CIE, /* set icon text end */
- KS_TS, /* set window title start (to status line)*/
- KS_FS, /* set window title end (from status line) */
- KS_CWP, /* set window position in pixels */
- KS_CWS, /* set window size in characters */
- KS_CRV, /* request version string */
- KS_CSI, /* start insert mode (bar cursor) */
- KS_CEI, /* end insert mode (block cursor) */
- KS_CSV, /* scroll region vertical */
- KS_OP, /* original color pair */
- KS_U7 /* request cursor position */
-};
-
-#define KS_LAST KS_U7
-
-/*
- * the terminal capabilities are stored in this array
- * IMPORTANT: When making changes, note the following:
- * - there should be an entry for each code in the builtin termcaps
- * - there should be an option for each code in option.c
- * - there should be code in term.c to obtain the value from the termcap
- */
-
-extern char_u *(term_strings[]); /* current terminal strings */
-
-/*
- * strings used for terminal
- */
-#define T_NAME (term_str(KS_NAME)) /* terminal name */
-#define T_CE (term_str(KS_CE)) /* clear to end of line */
-#define T_AL (term_str(KS_AL)) /* add new blank line */
-#define T_CAL (term_str(KS_CAL)) /* add number of blank lines */
-#define T_DL (term_str(KS_DL)) /* delete line */
-#define T_CDL (term_str(KS_CDL)) /* delete number of lines */
-#define T_CS (term_str(KS_CS)) /* scroll region */
-#define T_CSV (term_str(KS_CSV)) /* scroll region vertical */
-#define T_CL (term_str(KS_CL)) /* clear screen */
-#define T_CD (term_str(KS_CD)) /* clear to end of display */
-#define T_UT (term_str(KS_UT)) /* clearing uses background color */
-#define T_DA (term_str(KS_DA)) /* text may be scrolled down from up */
-#define T_DB (term_str(KS_DB)) /* text may be scrolled up from down */
-#define T_VI (term_str(KS_VI)) /* cursor invisible */
-#define T_VE (term_str(KS_VE)) /* cursor visible */
-#define T_VS (term_str(KS_VS)) /* cursor very visible */
-#define T_ME (term_str(KS_ME)) /* normal mode */
-#define T_MR (term_str(KS_MR)) /* reverse mode */
-#define T_MD (term_str(KS_MD)) /* bold mode */
-#define T_SE (term_str(KS_SE)) /* normal mode */
-#define T_SO (term_str(KS_SO)) /* standout mode */
-#define T_CZH (term_str(KS_CZH)) /* italic mode start */
-#define T_CZR (term_str(KS_CZR)) /* italic mode end */
-#define T_UE (term_str(KS_UE)) /* exit underscore (underline) mode */
-#define T_US (term_str(KS_US)) /* underscore (underline) mode */
-#define T_UCE (term_str(KS_UCE)) /* exit undercurl mode */
-#define T_UCS (term_str(KS_UCS)) /* undercurl mode */
-#define T_MS (term_str(KS_MS)) /* save to move cur in reverse mode */
-#define T_CM (term_str(KS_CM)) /* cursor motion */
-#define T_SR (term_str(KS_SR)) /* scroll reverse (backward) */
-#define T_CRI (term_str(KS_CRI)) /* cursor number of chars right */
-#define T_VB (term_str(KS_VB)) /* visual bell */
-#define T_KS (term_str(KS_KS)) /* put term in "keypad transmit" mode */
-#define T_KE (term_str(KS_KE)) /* out of "keypad transmit" mode */
-#define T_TI (term_str(KS_TI)) /* put terminal in termcap mode */
-#define T_TE (term_str(KS_TE)) /* out of termcap mode */
-#define T_BC (term_str(KS_BC)) /* backspace character */
-#define T_CCS (term_str(KS_CCS)) /* cur is relative to scroll region */
-#define T_CCO (term_str(KS_CCO)) /* number of colors */
-#define T_CSF (term_str(KS_CSF)) /* set foreground color */
-#define T_CSB (term_str(KS_CSB)) /* set background color */
-#define T_XS (term_str(KS_XS)) /* standout not erased by overwriting */
-#define T_MB (term_str(KS_MB)) /* blink mode */
-#define T_CAF (term_str(KS_CAF)) /* set foreground color (ANSI) */
-#define T_CAB (term_str(KS_CAB)) /* set background color (ANSI) */
-#define T_LE (term_str(KS_LE)) /* cursor left */
-#define T_ND (term_str(KS_ND)) /* cursor right */
-#define T_CIS (term_str(KS_CIS)) /* set icon text start */
-#define T_CIE (term_str(KS_CIE)) /* set icon text end */
-#define T_TS (term_str(KS_TS)) /* set window title start */
-#define T_FS (term_str(KS_FS)) /* set window title end */
-#define T_CWP (term_str(KS_CWP)) /* window position */
-#define T_CWS (term_str(KS_CWS)) /* window size */
-#define T_CSI (term_str(KS_CSI)) /* start insert mode */
-#define T_CEI (term_str(KS_CEI)) /* end insert mode */
-#define T_CRV (term_str(KS_CRV)) /* request version string */
-#define T_OP (term_str(KS_OP)) /* original color pair */
-#define T_U7 (term_str(KS_U7)) /* request cursor position */
-
-#define TMODE_COOK 0 /* terminal mode for external cmds and Ex mode */
-#define TMODE_SLEEP 1 /* terminal mode for sleeping (cooked but no echo) */
-#define TMODE_RAW 2 /* terminal mode for Normal and Insert mode */
+#ifndef NEOVIM_TERM_H
+#define NEOVIM_TERM_H
+/* term.c */
+int set_termname __ARGS((char_u *term));
+void set_mouse_termcode __ARGS((int n, char_u *s));
+void del_mouse_termcode __ARGS((int n));
+void getlinecol __ARGS((long *cp, long *rp));
+int add_termcap_entry __ARGS((char_u *name, int force));
+int term_is_8bit __ARGS((char_u *name));
+int term_is_gui __ARGS((char_u *name));
+char_u *tltoa __ARGS((unsigned long i));
+void termcapinit __ARGS((char_u *name));
+void out_flush __ARGS((void));
+void out_flush_check __ARGS((void));
+void out_trash __ARGS((void));
+void out_char __ARGS((unsigned c));
+void out_str_nf __ARGS((char_u *s));
+void out_str __ARGS((char_u *s));
+void term_windgoto __ARGS((int row, int col));
+void term_cursor_right __ARGS((int i));
+void term_append_lines __ARGS((int line_count));
+void term_delete_lines __ARGS((int line_count));
+void term_set_winpos __ARGS((int x, int y));
+void term_set_winsize __ARGS((int width, int height));
+void term_fg_color __ARGS((int n));
+void term_bg_color __ARGS((int n));
+void term_settitle __ARGS((char_u *title));
+void ttest __ARGS((int pairs));
+void add_long_to_buf __ARGS((long_u val, char_u *dst));
+void check_shellsize __ARGS((void));
+void limit_screen_size __ARGS((void));
+void win_new_shellsize __ARGS((void));
+void shell_resized __ARGS((void));
+void shell_resized_check __ARGS((void));
+void set_shellsize __ARGS((int width, int height, int mustset));
+void settmode __ARGS((int tmode));
+void starttermcap __ARGS((void));
+void stoptermcap __ARGS((void));
+void may_req_termresponse __ARGS((void));
+void may_req_ambiguous_char_width __ARGS((void));
+int swapping_screen __ARGS((void));
+void setmouse __ARGS((void));
+int mouse_has __ARGS((int c));
+int mouse_model_popup __ARGS((void));
+void scroll_start __ARGS((void));
+void cursor_on __ARGS((void));
+void cursor_off __ARGS((void));
+void term_cursor_shape __ARGS((void));
+void scroll_region_set __ARGS((win_T *wp, int off));
+void scroll_region_reset __ARGS((void));
+void clear_termcodes __ARGS((void));
+void add_termcode __ARGS((char_u *name, char_u *string, int flags));
+char_u *find_termcode __ARGS((char_u *name));
+char_u *get_termcode __ARGS((int i));
+void del_termcode __ARGS((char_u *name));
+void set_mouse_topline __ARGS((win_T *wp));
+int check_termcode __ARGS((int max_offset, char_u *buf, int bufsize,
+ int *buflen));
+char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part,
+ int do_lt,
+ int special));
+int find_term_bykeys __ARGS((char_u *src));
+void show_termcodes __ARGS((void));
+int show_one_termcode __ARGS((char_u *name, char_u *code, int printit));
+char_u *translate_mapping __ARGS((char_u *str, int expmap));
+void update_tcap __ARGS((int attr));
+/* vim: set ft=c : */
+#endif /* NEOVIM_TERM_H */
diff --git a/src/term_defs.h b/src/term_defs.h
new file mode 100644
index 0000000000..0ba5a19c13
--- /dev/null
+++ b/src/term_defs.h
@@ -0,0 +1,156 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+ * Do ":help uganda" in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ */
+
+/*
+ * This file contains the defines for the machine dependent escape sequences
+ * that the editor needs to perform various operations. All of the sequences
+ * here are optional, except "cm" (cursor motion).
+ */
+
+
+/*
+ * Index of the termcap codes in the term_strings array.
+ */
+enum SpecialKey {
+ KS_NAME = 0, /* name of this terminal entry */
+ KS_CE, /* clear to end of line */
+ KS_AL, /* add new blank line */
+ KS_CAL, /* add number of blank lines */
+ KS_DL, /* delete line */
+ KS_CDL, /* delete number of lines */
+ KS_CS, /* scroll region */
+ KS_CL, /* clear screen */
+ KS_CD, /* clear to end of display */
+ KS_UT, /* clearing uses current background color */
+ KS_DA, /* text may be scrolled down from up */
+ KS_DB, /* text may be scrolled up from down */
+ KS_VI, /* cursor invisible */
+ KS_VE, /* cursor visible */
+ KS_VS, /* cursor very visible */
+ KS_ME, /* normal mode */
+ KS_MR, /* reverse mode */
+ KS_MD, /* bold mode */
+ KS_SE, /* normal mode */
+ KS_SO, /* standout mode */
+ KS_CZH, /* italic mode start */
+ KS_CZR, /* italic mode end */
+ KS_UE, /* exit underscore (underline) mode */
+ KS_US, /* underscore (underline) mode */
+ KS_UCE, /* exit undercurl mode */
+ KS_UCS, /* undercurl mode */
+ KS_MS, /* save to move cur in reverse mode */
+ KS_CM, /* cursor motion */
+ KS_SR, /* scroll reverse (backward) */
+ KS_CRI, /* cursor number of chars right */
+ KS_VB, /* visual bell */
+ KS_KS, /* put term in "keypad transmit" mode */
+ KS_KE, /* out of "keypad transmit" mode */
+ KS_TI, /* put terminal in termcap mode */
+ KS_TE, /* out of termcap mode */
+ KS_BC, /* backspace character (cursor left) */
+ KS_CCS, /* cur is relative to scroll region */
+ KS_CCO, /* number of colors */
+ KS_CSF, /* set foreground color */
+ KS_CSB, /* set background color */
+ KS_XS, /* standout not erased by overwriting (hpterm) */
+ KS_MB, /* blink mode */
+ KS_CAF, /* set foreground color (ANSI) */
+ KS_CAB, /* set background color (ANSI) */
+ KS_LE, /* cursor left (mostly backspace) */
+ KS_ND, /* cursor right */
+ KS_CIS, /* set icon text start */
+ KS_CIE, /* set icon text end */
+ KS_TS, /* set window title start (to status line)*/
+ KS_FS, /* set window title end (from status line) */
+ KS_CWP, /* set window position in pixels */
+ KS_CWS, /* set window size in characters */
+ KS_CRV, /* request version string */
+ KS_CSI, /* start insert mode (bar cursor) */
+ KS_CEI, /* end insert mode (block cursor) */
+ KS_CSV, /* scroll region vertical */
+ KS_OP, /* original color pair */
+ KS_U7 /* request cursor position */
+};
+
+#define KS_LAST KS_U7
+
+/*
+ * the terminal capabilities are stored in this array
+ * IMPORTANT: When making changes, note the following:
+ * - there should be an entry for each code in the builtin termcaps
+ * - there should be an option for each code in option.c
+ * - there should be code in term.c to obtain the value from the termcap
+ */
+
+extern char_u *(term_strings[]); /* current terminal strings */
+
+/*
+ * strings used for terminal
+ */
+#define T_NAME (term_str(KS_NAME)) /* terminal name */
+#define T_CE (term_str(KS_CE)) /* clear to end of line */
+#define T_AL (term_str(KS_AL)) /* add new blank line */
+#define T_CAL (term_str(KS_CAL)) /* add number of blank lines */
+#define T_DL (term_str(KS_DL)) /* delete line */
+#define T_CDL (term_str(KS_CDL)) /* delete number of lines */
+#define T_CS (term_str(KS_CS)) /* scroll region */
+#define T_CSV (term_str(KS_CSV)) /* scroll region vertical */
+#define T_CL (term_str(KS_CL)) /* clear screen */
+#define T_CD (term_str(KS_CD)) /* clear to end of display */
+#define T_UT (term_str(KS_UT)) /* clearing uses background color */
+#define T_DA (term_str(KS_DA)) /* text may be scrolled down from up */
+#define T_DB (term_str(KS_DB)) /* text may be scrolled up from down */
+#define T_VI (term_str(KS_VI)) /* cursor invisible */
+#define T_VE (term_str(KS_VE)) /* cursor visible */
+#define T_VS (term_str(KS_VS)) /* cursor very visible */
+#define T_ME (term_str(KS_ME)) /* normal mode */
+#define T_MR (term_str(KS_MR)) /* reverse mode */
+#define T_MD (term_str(KS_MD)) /* bold mode */
+#define T_SE (term_str(KS_SE)) /* normal mode */
+#define T_SO (term_str(KS_SO)) /* standout mode */
+#define T_CZH (term_str(KS_CZH)) /* italic mode start */
+#define T_CZR (term_str(KS_CZR)) /* italic mode end */
+#define T_UE (term_str(KS_UE)) /* exit underscore (underline) mode */
+#define T_US (term_str(KS_US)) /* underscore (underline) mode */
+#define T_UCE (term_str(KS_UCE)) /* exit undercurl mode */
+#define T_UCS (term_str(KS_UCS)) /* undercurl mode */
+#define T_MS (term_str(KS_MS)) /* save to move cur in reverse mode */
+#define T_CM (term_str(KS_CM)) /* cursor motion */
+#define T_SR (term_str(KS_SR)) /* scroll reverse (backward) */
+#define T_CRI (term_str(KS_CRI)) /* cursor number of chars right */
+#define T_VB (term_str(KS_VB)) /* visual bell */
+#define T_KS (term_str(KS_KS)) /* put term in "keypad transmit" mode */
+#define T_KE (term_str(KS_KE)) /* out of "keypad transmit" mode */
+#define T_TI (term_str(KS_TI)) /* put terminal in termcap mode */
+#define T_TE (term_str(KS_TE)) /* out of termcap mode */
+#define T_BC (term_str(KS_BC)) /* backspace character */
+#define T_CCS (term_str(KS_CCS)) /* cur is relative to scroll region */
+#define T_CCO (term_str(KS_CCO)) /* number of colors */
+#define T_CSF (term_str(KS_CSF)) /* set foreground color */
+#define T_CSB (term_str(KS_CSB)) /* set background color */
+#define T_XS (term_str(KS_XS)) /* standout not erased by overwriting */
+#define T_MB (term_str(KS_MB)) /* blink mode */
+#define T_CAF (term_str(KS_CAF)) /* set foreground color (ANSI) */
+#define T_CAB (term_str(KS_CAB)) /* set background color (ANSI) */
+#define T_LE (term_str(KS_LE)) /* cursor left */
+#define T_ND (term_str(KS_ND)) /* cursor right */
+#define T_CIS (term_str(KS_CIS)) /* set icon text start */
+#define T_CIE (term_str(KS_CIE)) /* set icon text end */
+#define T_TS (term_str(KS_TS)) /* set window title start */
+#define T_FS (term_str(KS_FS)) /* set window title end */
+#define T_CWP (term_str(KS_CWP)) /* window position */
+#define T_CWS (term_str(KS_CWS)) /* window size */
+#define T_CSI (term_str(KS_CSI)) /* start insert mode */
+#define T_CEI (term_str(KS_CEI)) /* end insert mode */
+#define T_CRV (term_str(KS_CRV)) /* request version string */
+#define T_OP (term_str(KS_OP)) /* original color pair */
+#define T_U7 (term_str(KS_U7)) /* request cursor position */
+
+#define TMODE_COOK 0 /* terminal mode for external cmds and Ex mode */
+#define TMODE_SLEEP 1 /* terminal mode for sleeping (cooked but no echo) */
+#define TMODE_RAW 2 /* terminal mode for Normal and Insert mode */
diff --git a/src/ui.c b/src/ui.c
index 76eca6fff9..3396f2e6ef 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -17,7 +17,21 @@
*/
#include "vim.h"
-
+#include "ui.h"
+#include "diff.h"
+#include "ex_cmds2.h"
+#include "fold.h"
+#include "main.h"
+#include "mbyte.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "os_unix.h"
+#include "screen.h"
+#include "term.h"
+#include "window.h"
void ui_write(char_u *s, int len)
{
diff --git a/src/proto/ui.pro b/src/ui.h
index 2f37fb9dfe..bcd6afd426 100644
--- a/src/proto/ui.pro
+++ b/src/ui.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_UI_H
+#define NEOVIM_UI_H
/* ui.c */
void ui_write __ARGS((char_u *s, int len));
void ui_inchar_undo __ARGS((char_u *s, int len));
@@ -65,3 +67,4 @@ int vcol2col __ARGS((win_T *wp, linenr_T lnum, int vcol));
void ui_focus_change __ARGS((int in_focus));
void im_save_status __ARGS((long *psave));
/* vim: set ft=c : */
+#endif /* NEOVIM_UI_H */
diff --git a/src/undo.c b/src/undo.c
index d5bdfb53b1..b63e89458e 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -82,6 +82,21 @@
#define UE_MAGIC 0xabc123 /* value for ue_magic when in use */
#include "vim.h"
+#include "undo.h"
+#include "edit.h"
+#include "eval.h"
+#include "fileio.h"
+#include "fold.h"
+#include "mark.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "screen.h"
+#include "sha256.h"
static long get_undolevel __ARGS((void));
static void u_unch_branch __ARGS((u_header_T *uhp));
diff --git a/src/proto/undo.pro b/src/undo.h
index dfbb07ac26..aecab36875 100644
--- a/src/proto/undo.pro
+++ b/src/undo.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_UNDO_H
+#define NEOVIM_UNDO_H
/* undo.c */
int u_save_cursor __ARGS((void));
int u_save __ARGS((linenr_T top, linenr_T bot));
@@ -29,3 +31,4 @@ int bufIsChanged __ARGS((buf_T *buf));
int curbufIsChanged __ARGS((void));
void u_eval_tree __ARGS((u_header_T *first_uhp, list_T *list));
/* vim: set ft=c : */
+#endif /* NEOVIM_UNDO_H */
diff --git a/src/version.c b/src/version.c
index a928e840bd..e85f7a57ec 100644
--- a/src/version.c
+++ b/src/version.c
@@ -8,7 +8,12 @@
*/
#include "vim.h"
-
+#include "version.h"
+#include "charset.h"
+#include "memline.h"
+#include "message.h"
+#include "misc2.h"
+#include "screen.h"
/*
* Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred)
@@ -22,7 +27,7 @@
* interesting.
*/
-#include "version.h"
+#include "version_defs.h"
char *Version = VIM_VERSION_SHORT;
static char *mediumVersion = VIM_VERSION_MEDIUM;
diff --git a/src/version.h b/src/version.h
index ee49a6d97c..b2828980f3 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1,40 +1,13 @@
-/* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- */
-
-/*
- * Define the version number, name, etc.
- * The patchlevel is in included_patches[], in version.c.
- *
- * This doesn't use string concatenation, some compilers don't support it.
- */
-
-#define VIM_VERSION_MAJOR 7
-#define VIM_VERSION_MAJOR_STR "7"
-#define VIM_VERSION_MINOR 4
-#define VIM_VERSION_MINOR_STR "4"
-#define VIM_VERSION_100 (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
-
-#define VIM_VERSION_BUILD 280
-#define VIM_VERSION_BUILD_BCD 0x118
-#define VIM_VERSION_BUILD_STR "280"
-#define VIM_VERSION_PATCHLEVEL 0
-#define VIM_VERSION_PATCHLEVEL_STR "0"
-/* Used by MacOS port should be one of: development, alpha, beta, final */
-#define VIM_VERSION_RELEASE final
-
-/*
- * VIM_VERSION_NODOT is used for the runtime directory name.
- * VIM_VERSION_SHORT is copied into the swap file (max. length is 6 chars).
- * VIM_VERSION_MEDIUM is used for the startup-screen.
- * VIM_VERSION_LONG is used for the ":version" command and "Vim -h".
- */
-#define VIM_VERSION_NODOT "vim74"
-#define VIM_VERSION_SHORT "7.4"
-#define VIM_VERSION_MEDIUM "7.4"
-#define VIM_VERSION_LONG "VIM - Vi IMproved 7.4 (2013 Aug 10)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.4 (2013 Aug 10, compiled "
+#ifndef NEOVIM_VERSION_H
+#define NEOVIM_VERSION_H
+/* version.c */
+void make_version __ARGS((void));
+int highest_patch __ARGS((void));
+int has_patch __ARGS((int n));
+void ex_version __ARGS((exarg_T *eap));
+void list_version __ARGS((void));
+void maybe_intro_message __ARGS((void));
+void intro_message __ARGS((int colon));
+void ex_intro __ARGS((exarg_T *eap));
+/* vim: set ft=c : */
+#endif /* NEOVIM_VERSION_H */
diff --git a/src/version_defs.h b/src/version_defs.h
new file mode 100644
index 0000000000..ee49a6d97c
--- /dev/null
+++ b/src/version_defs.h
@@ -0,0 +1,40 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+ * Do ":help uganda" in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ */
+
+/*
+ * Define the version number, name, etc.
+ * The patchlevel is in included_patches[], in version.c.
+ *
+ * This doesn't use string concatenation, some compilers don't support it.
+ */
+
+#define VIM_VERSION_MAJOR 7
+#define VIM_VERSION_MAJOR_STR "7"
+#define VIM_VERSION_MINOR 4
+#define VIM_VERSION_MINOR_STR "4"
+#define VIM_VERSION_100 (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
+
+#define VIM_VERSION_BUILD 280
+#define VIM_VERSION_BUILD_BCD 0x118
+#define VIM_VERSION_BUILD_STR "280"
+#define VIM_VERSION_PATCHLEVEL 0
+#define VIM_VERSION_PATCHLEVEL_STR "0"
+/* Used by MacOS port should be one of: development, alpha, beta, final */
+#define VIM_VERSION_RELEASE final
+
+/*
+ * VIM_VERSION_NODOT is used for the runtime directory name.
+ * VIM_VERSION_SHORT is copied into the swap file (max. length is 6 chars).
+ * VIM_VERSION_MEDIUM is used for the startup-screen.
+ * VIM_VERSION_LONG is used for the ":version" command and "Vim -h".
+ */
+#define VIM_VERSION_NODOT "vim74"
+#define VIM_VERSION_SHORT "7.4"
+#define VIM_VERSION_MEDIUM "7.4"
+#define VIM_VERSION_LONG "VIM - Vi IMproved 7.4 (2013 Aug 10)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.4 (2013 Aug 10, compiled "
diff --git a/src/vim.h b/src/vim.h
index fab3d70568..75c2b14d38 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -6,8 +6,8 @@
* Do ":help credits" in Vim to see a list of people who contributed.
*/
-#ifndef VIM__H
-# define VIM__H
+#ifndef NEOVIM_VIM_H
+# define NEOVIM_VIM_H
/* Included when ported to cmake */
/* This is needed to replace TRUE/FALSE macros by true/false from c99 */
#include <stdbool.h>
@@ -62,7 +62,7 @@ Error: configure did not run properly.Check auto/config.log.
# define VIMPACKAGE "vim"
#endif
-#include "os_unix.h" /* bring lots of system header files */
+#include "os_unix_defs.h" /* bring lots of system header files */
#ifndef __ARGS
# if defined(__STDC__) || defined(__GNUC__) || defined(WIN3264)
@@ -154,7 +154,7 @@ typedef unsigned long u8char_T; /* long should be 32 bits or more */
#include "ascii.h"
#include "keymap.h"
-#include "term.h"
+#include "term_defs.h"
#include "macros.h"
#include <errno.h>
@@ -1260,9 +1260,9 @@ int vim_memcmp __ARGS((void *, void *, size_t));
typedef struct timeval proftime_T;
-/* Include option.h before structs.h, because the number of window-local and
+/* Include option_defs.h before structs.h, because the number of window-local and
* buffer-local options is used there. */
-#include "option.h" /* options and default values */
+#include "option_defs.h" /* options and default values */
/* Note that gui.h is included by structs.h */
@@ -1412,7 +1412,7 @@ typedef struct timeval proftime_T;
typedef int VimClipboard; /* This is required for the prototypes. */
-#include "ex_cmds.h" /* Ex command defines */
+#include "ex_cmds_defs.h" /* Ex command defines */
#include "proto.h" /* function prototypes */
/* This has to go after the include of proto.h, as proto/gui.pro declares
@@ -1594,4 +1594,4 @@ typedef int VimClipboard; /* This is required for the prototypes. */
# define SET_NO_HLSEARCH(flag) no_hlsearch = (flag); set_vim_var_nr( \
VV_HLSEARCH, !no_hlsearch)
-#endif /* VIM__H */
+#endif /* NEOVIM_VIM_H */
diff --git a/src/window.c b/src/window.c
index 5256fbd1fa..fb95ec1239 100644
--- a/src/window.c
+++ b/src/window.c
@@ -8,6 +8,38 @@
*/
#include "vim.h"
+#include "window.h"
+#include "buffer.h"
+#include "charset.h"
+#include "diff.h"
+#include "edit.h"
+#include "eval.h"
+#include "ex_cmds.h"
+#include "ex_cmds2.h"
+#include "ex_docmd.h"
+#include "ex_eval.h"
+#include "ex_getln.h"
+#include "fileio.h"
+#include "fold.h"
+#include "getchar.h"
+#include "hashtab.h"
+#include "main.h"
+#include "mark.h"
+#include "memline.h"
+#include "message.h"
+#include "misc1.h"
+#include "misc2.h"
+#include "move.h"
+#include "normal.h"
+#include "option.h"
+#include "os_unix.h"
+#include "quickfix.h"
+#include "regexp.h"
+#include "screen.h"
+#include "search.h"
+#include "syntax.h"
+#include "term.h"
+#include "undo.h"
#include "os/os.h"
static int path_is_url __ARGS((char_u *p));
diff --git a/src/proto/window.pro b/src/window.h
index bf82ca1982..1fa7c302fd 100644
--- a/src/proto/window.pro
+++ b/src/window.h
@@ -1,3 +1,5 @@
+#ifndef NEOVIM_WINDOW_H
+#define NEOVIM_WINDOW_H
/* window.c */
void do_window __ARGS((int nchar, long Prenum, int xchar));
int win_split __ARGS((int size, int flags));
@@ -91,3 +93,4 @@ matchitem_T *get_match __ARGS((win_T *wp, int id));
int get_win_number __ARGS((win_T *wp, win_T *first_win));
int get_tab_number __ARGS((tabpage_T *tp));
/* vim: set ft=c : */
+#endif /* NEOVIM_WINDOW_H */