globals.h
上传用户:gddssl
上传日期:2007-01-06
资源大小:1003k
文件大小:23k
源码类别:

编辑器/阅读器

开发平台:

DOS

  1. /* vi:set ts=8 sts=4 sw=4:
  2.  *
  3.  * VIM - Vi IMproved by Bram Moolenaar
  4.  *
  5.  * Do ":help uganda"  in Vim to read copying and usage conditions.
  6.  * Do ":help credits" in Vim to see a list of people who contributed.
  7.  */
  8. /*
  9.  * definition of global variables
  10.  *
  11.  * EXTERN is only defined in main.c (and in option.h)
  12.  */
  13. #ifndef EXTERN
  14. # define EXTERN extern
  15. # define INIT(x)
  16. #else
  17. # ifndef INIT
  18. #  define INIT(x) x
  19. #  define DO_INIT
  20. # endif
  21. #endif
  22. /*
  23.  * Number of Rows and Columns in the screen.
  24.  * Must be long to be able to use them as options in option.c.
  25.  */
  26. EXTERN long Rows INIT(= MIN_LINES); /* nr of rows in the screen */
  27. EXTERN long Columns INIT(= MIN_COLUMNS); /* nr of columns in the screen */
  28. /*
  29.  * The characters that are currently on the screen are kept in NextScreen.
  30.  * It is a single block of characters, twice the size of the screen.
  31.  * First come the characters for one line, then the attributes for that line.
  32.  *
  33.  * "LinePointers[n]" points into NextScreen, at the start of line 'n'.
  34.  * "LinePointers[n] + Columns" points to the attibutes of line 'n'.
  35.  */
  36. EXTERN char_u *NextScreen INIT(= NULL);
  37. EXTERN char_u **LinePointers INIT(= NULL);
  38. EXTERN int screen_Rows INIT(= 0);     /* actual size of NextScreen */
  39. EXTERN int screen_Columns INIT(= 0);   /* actual size of NextScreen */
  40. /*
  41.  * When vgetc() is called, it sets mod_mask to the set of modifiers that are
  42.  * held down based on the KSMOD_* symbols that are read first.
  43.  */
  44. EXTERN int mod_mask INIT(= 0x0); /* current key modifiers */
  45. /*
  46.  * Cmdline_row is the row where the command line starts, just below the
  47.  * last window.
  48.  * When the cmdline gets longer than the available space the screen gets
  49.  * scrolled up. After a CTRL-D (show matches), after hitting ':' after
  50.  * "hit return", and for the :global command, the command line is
  51.  * temporarily moved. The old position is restored with the next call to
  52.  * update_screen().
  53.  */
  54. EXTERN int cmdline_row;
  55. EXTERN int redraw_cmdline INIT(= FALSE); /* cmdline must be redrawn */
  56. EXTERN int clear_cmdline INIT(= FALSE); /* cmdline must be cleared */
  57. EXTERN int modified INIT(= FALSE); /* buffer was modified since
  58.     last redraw */
  59. EXTERN int tag_modified INIT(= FALSE); /* buffer was modified since
  60.     start of tag command */
  61. EXTERN int screen_cleared INIT(= FALSE); /* screen has been cleared */
  62. /*
  63.  * When '$' is included in 'cpoptions' option set:
  64.  * When a change command is given that deletes only part of a line, a dollar
  65.  * is put at the end of the changed text. dollar_vcol is set to the virtual
  66.  * column of this '$'.
  67.  */
  68. EXTERN colnr_t dollar_vcol INIT(= 0);
  69. /*
  70.  * used for completion on the command line
  71.  */
  72. EXTERN int expand_context INIT(= CONTEXT_UNKNOWN);
  73. EXTERN char_u *expand_pattern INIT(= NULL);
  74. EXTERN int expand_interactively INIT(= FALSE);
  75. EXTERN int expand_set_path INIT(= FALSE); /* ":set path=/dir/<Tab>" */
  76. #define CONT_ADDING (1) /* "normal" or "adding" expansion */
  77. #define CONT_INTRPT (2 + 4) /* a ^X interrupted the current expansion */
  78. /* it's set only iff N_ADDS is set */
  79. #define CONT_N_ADDS (4) /* next ^X<> will add-new or expand-current */
  80. #define CONT_S_IPOS (8) /* next ^X<> will set initial_pos?
  81.  * if so, word-wise-expansion will set SOL */
  82. #define CONT_SOL (16) /* pattern includes start of line, just for
  83.  * word-wise expansion, not set for ^X^L */
  84. #define CONT_LOCAL (32) /* for ctrl_x_mode 0, ^X^P/^X^N do a local
  85.  * expansion, (eg use complete=.) */
  86. EXTERN int completion_length INIT(= 0);
  87. EXTERN int continue_status   INIT(= 0);
  88. /*
  89.  * Keep the last (typed) count for a Normal mode command.  Used for the
  90.  * "count" built-in variable.
  91.  */
  92. EXTERN linenr_t global_opnum INIT(= 0);
  93. /*
  94.  * Functions for putting characters in the command line,
  95.  * while keeping NextScreen updated.
  96.  */
  97. EXTERN int msg_col;
  98. EXTERN int msg_row;
  99. EXTERN int msg_scrolled;
  100. EXTERN char_u *keep_msg INIT(= NULL);     /* msg to be shown after redraw */
  101. EXTERN int keep_msg_attr INIT(= 0);    /* highlight attr for keep_msg */
  102. EXTERN int need_fileinfo INIT(= FALSE);/* do fileinfo() after redraw */
  103. EXTERN int msg_scroll INIT(= FALSE);   /* msg_start() will scroll */
  104. EXTERN int msg_didout INIT(= FALSE);   /* msg_outstr() was used in line */
  105. EXTERN int msg_didany INIT(= FALSE);   /* msg_outstr() was used at all */
  106. EXTERN int msg_nowait INIT(= FALSE);   /* don't wait for this msg */
  107. EXTERN int emsg_off INIT(= FALSE);     /* don't display errors for now */
  108. EXTERN int did_emsg;     /* set by emsg() for DoOneCmd() */
  109. EXTERN int emsg_on_display INIT(= FALSE); /* there is an error message */
  110. EXTERN int rc_did_emsg INIT(= FALSE);  /* vim_regcomp() called emsg() */
  111. EXTERN int no_wait_return INIT(= 0);   /* don't wait for return now */
  112. EXTERN int need_wait_return INIT(= 0); /* need to wait for return later */
  113. EXTERN int dont_wait_return INIT(= 0); /* no need to wait for return */
  114. EXTERN int quit_more INIT(= FALSE);    /* 'q' hit at "--more--" msg */
  115. #if defined(UNIX) || defined(__EMX__)
  116. EXTERN int newline_on_exit INIT(= FALSE); /* did msg in altern. screen */
  117. EXTERN int intr_char INIT(= 0);     /* extra interrupt character */
  118. #endif
  119. EXTERN int vgetc_busy INIT(= FALSE);   /* inside vgetc() now */
  120. EXTERN int call_shell_retval;     /* return value from call_shell() */
  121. /*
  122.  * Lines left before a "more" message. Ex mode needs to be able to reset this
  123.  * after you type something.
  124.  */
  125. EXTERN int lines_left INIT(= -1); /* lines left for listing */
  126. EXTERN char_u *sourcing_name INIT( = NULL);/* name of error message source */
  127. EXTERN linenr_t sourcing_lnum INIT(= 0);    /* line number of the source file */
  128. EXTERN int file_on_stdin INIT(= FALSE); /* read file from stdin */
  129. EXTERN int scroll_region INIT(= FALSE); /* term supports scroll region */
  130. EXTERN int highlight_match INIT(= FALSE); /* show search match pos */
  131. EXTERN int search_match_len; /* length of matched string */
  132. EXTERN int no_smartcase INIT(= FALSE); /* don't use 'smartcase' once */
  133. EXTERN int need_check_timestamps INIT(= FALSE); /* got STOP signal */
  134. EXTERN int highlight_attr[HLF_COUNT];  /* Highl. attr for each context. */
  135. EXTERN char_u *use_gvimrc INIT(= NULL); /* "-U" cmdline argument */
  136. EXTERN int cterm_normal_fg_color INIT(= 0);
  137. EXTERN int cterm_normal_fg_bold INIT(= 0);
  138. EXTERN int cterm_normal_bg_color INIT(= 0);
  139. #ifdef AUTOCMD
  140. EXTERN int autocmd_busy INIT(= FALSE); /* Is apply_autocmds() busy? */
  141. EXTERN int autocmd_no_enter INIT(= FALSE); /* *Enter autocmds disabled */
  142. EXTERN int autocmd_no_leave INIT(= FALSE); /* *Leave autocmds disabled */
  143. EXTERN int modified_was_set; /* did ":set modified" */
  144. #endif
  145. #ifdef USE_MOUSE
  146. /*
  147.  * Mouse coordinates, set by check_termcode()
  148.  */
  149. EXTERN int mouse_row;
  150. EXTERN int mouse_col;
  151. EXTERN int mouse_past_bottom INIT(= FALSE);/* mouse below last line */
  152. EXTERN int mouse_past_eol INIT(= FALSE); /* mouse right of line */
  153. #if defined(DEC_MOUSE)
  154. /*
  155.  * When the DEC mouse has been pressed but not yet released we enable
  156.  * automatic querys for the mouse position.
  157.  */
  158. EXTERN int WantQueryMouse INIT(= 0);
  159. #endif
  160. #ifdef USE_GUI
  161. /* When the window layout is about to be changed, need_mouse_correct is set,
  162.  * so that gui_mouse_correct() is called afterwards, to correct the mouse
  163.  * pointer when focus-follow-mouse is being used. */
  164. EXTERN int need_mouse_correct INIT(= FALSE);
  165. /* When double clicking, topline must be the same */
  166. EXTERN linenr_t gui_prev_topline INIT(= 0);
  167. #endif
  168. #endif
  169. #ifdef USE_GUI
  170. /*
  171.  * Menu item just selected, set by check_termcode()
  172.  */
  173. EXTERN GuiMenu *current_menu;
  174. /*
  175.  * Scrollbar moved and new value, set by check_termcode()
  176.  */
  177. EXTERN int current_scrollbar;
  178. EXTERN long_u scrollbar_value;
  179. /* found "-rv" or "-reverse" in command line args */
  180. EXTERN int found_reverse_arg INIT(= FALSE);
  181. EXTERN char * font_opt INIT(= NULL);
  182. #endif
  183. #ifdef USE_CLIPBOARD
  184. EXTERN VimClipboard clipboard;
  185. #endif
  186. /*
  187.  * All windows are linked in a list. firstwin points to the first entry, lastwin
  188.  * to the last entry (can be the same as firstwin) and curwin to the currently
  189.  * active window.
  190.  */
  191. EXTERN WIN *firstwin; /* first window */
  192. EXTERN WIN *lastwin; /* last window */
  193. EXTERN WIN *curwin; /* currently active window */
  194. /*
  195.  * All buffers are linked in a list. 'firstbuf' points to the first entry,
  196.  * 'lastbuf' to the last entry and 'curbuf' to the currently active buffer.
  197.  */
  198. EXTERN BUF *firstbuf INIT(= NULL); /* first buffer */
  199. EXTERN BUF *lastbuf INIT(= NULL); /* last buffer */
  200. EXTERN BUF *curbuf INIT(= NULL); /* currently active buffer */
  201. /*
  202.  * list of files being edited (argument list)
  203.  */
  204. EXTERN char_u **arg_files; /* list of files */
  205. EXTERN int arg_file_count; /* number of files */
  206. EXTERN int arg_had_last INIT(= FALSE); /* accessed last file in arglist */
  207. EXTERN int ru_col; /* column for ruler */
  208. EXTERN int sc_col; /* column for shown command */
  209. /*
  210.  * When starting or exiting some things are done differently (e.g. screen
  211.  * updating).
  212.  */
  213. EXTERN int starting INIT(= TRUE);
  214. /* set to FALSE when starting up finished */
  215. EXTERN int exiting INIT(= FALSE);
  216. /* set to TRUE when abandoning Vim */
  217. EXTERN int full_screen INIT(= FALSE);
  218. /* set to TRUE when doing full-screen output
  219.  * otherwise only writing some messages */
  220. EXTERN int restricted INIT(= FALSE);
  221. /* set to TRUE when started as "rvim" */
  222. EXTERN int secure INIT(= FALSE);
  223. /* set to TRUE when only "safe" commands are
  224.  * allowed, e.g. when sourcing .exrc or .vimrc
  225.  * in current directory */
  226. EXTERN int silent_mode INIT(= FALSE);
  227. /* set to TRUE when "-s" commandline argument
  228.  * used for ex */
  229. EXTERN FPOS VIsual; /* start position of active Visual selection */
  230. EXTERN int VIsual_active INIT(= FALSE);
  231. /* whether Visual mode is active */
  232. EXTERN int VIsual_select INIT(= FALSE);
  233. /* whether Select mode is active */
  234. EXTERN int VIsual_reselect;
  235. /* whether to restart the selection after a
  236.  * Select mode mapping or menu */
  237. EXTERN int VIsual_mode INIT(= 'v');
  238. /* type of Visual mode */
  239. EXTERN int redo_VIsual_busy INIT(= FALSE);
  240. /* TRUE when redoing Visual */
  241. #ifdef USE_MOUSE
  242. /*
  243.  * When pasting text with the middle mouse button in visual mode with
  244.  * restart_edit set, remember where it started so we can set Insstart.
  245.  */
  246. EXTERN FPOS where_paste_started;
  247. #endif
  248. /*
  249.  * This flag is used to make auto-indent work right on lines where only a
  250.  * <RETURN> or <ESC> is typed. It is set when an auto-indent is done, and
  251.  * reset when any other editting is done on the line. If an <ESC> or <RETURN>
  252.  * is received, and did_ai is TRUE, the line is truncated.
  253.  */
  254. EXTERN int     did_ai INIT(= FALSE);
  255. #ifdef SMARTINDENT
  256. /*
  257.  * This flag is set when a smart indent has been performed. When the next typed
  258.  * character is a '{' the inserted tab will be deleted again.
  259.  */
  260. EXTERN int did_si INIT(= FALSE);
  261. /*
  262.  * This flag is set after an auto indent. If the next typed character is a '}'
  263.  * one indent will be removed.
  264.  */
  265. EXTERN int can_si INIT(= FALSE);
  266. /*
  267.  * This flag is set after an "O" command. If the next typed character is a '{'
  268.  * one indent will be removed.
  269.  */
  270. EXTERN int can_si_back INIT(= FALSE);
  271. #endif
  272. #ifdef MULTI_BYTE
  273. /*
  274.  * These flags are set based upon 'fileencoding'
  275.  */
  276. # define DBCS_JPN    932
  277. # define DBCS_KOR    949
  278. # define DBCS_CHS    936
  279. # define DBCS_CHT    950
  280. EXTERN int is_dbcs INIT(= FALSE); /* One of DBCS_xxx values if DBCS
  281.    encoding */
  282. EXTERN int is_unicode INIT(= FALSE);
  283. EXTERN int is_funky_dbcs INIT(= FALSE); /* if DBCS encoding, but not CP of system */
  284. #endif
  285. EXTERN int State INIT(= NORMAL); /* This is the current state of the
  286.  * command interpreter. */
  287. /*
  288.  * ex mode (Q) state
  289.  */
  290. EXTERN int exmode_active INIT(= FALSE);
  291. EXTERN int ex_no_reprint INIT(= FALSE); /* no need to print after z or p */
  292. EXTERN int Recording INIT(= FALSE);/* TRUE when recording into a reg. */
  293. EXTERN int Exec_reg INIT(= FALSE); /* TRUE when executing a register */
  294. EXTERN int finish_op INIT(= FALSE);/* TRUE while an operator is pending */
  295. EXTERN int no_mapping INIT(= FALSE);   /* currently no mapping allowed */
  296. EXTERN int allow_keys INIT(= FALSE);   /* allow key codes when no_mapping
  297.      * is set */
  298. EXTERN int no_u_sync INIT(= 0); /* Don't call u_sync() */
  299. EXTERN int restart_edit INIT(= 0); /* call edit when next cmd finished */
  300. EXTERN int arrow_used; /* Normally FALSE, set to TRUE after
  301.  * hitting cursor key in insert mode.
  302.  * Used by vgetorpeek() to decide when
  303.  * to call u_sync() */
  304. #ifdef INSERT_EXPAND
  305. EXTERN char_u *edit_submode INIT(= NULL); /* msg for CTRL-X submode */
  306. EXTERN char_u *edit_submode_extra INIT(= NULL);/* extra info for msg */
  307. EXTERN enum hlf_value edit_submode_highl; /* highl. method for extra info */
  308. EXTERN int ctrl_x_mode INIT(= 0); /* Which Ctrl-X mode are we in? */
  309. #endif
  310. EXTERN int no_abbr INIT(= TRUE); /* TRUE when no abbreviations loaded */
  311. EXTERN int fo_do_comments INIT(= FALSE);
  312. /* TRUE when comments are to be
  313.  * formatted */
  314. #ifdef MSDOS
  315. EXTERN int beep_count INIT(= 0); /* nr of beeps since last char typed */
  316. #endif
  317. #ifdef USE_EXE_NAME
  318. EXTERN char_u *exe_name; /* the name of the executable */
  319. #endif
  320. #ifdef USE_GUI_WIN32
  321. EXTERN int dont_scroll INIT(= FALSE);/* don't use scrollbars when TRUE */
  322. EXTERN int mapped_ctrl_c INIT(= FALSE); /* CTRL-C is mapped */
  323. #endif
  324. #ifdef USE_BROWSE
  325. EXTERN int browse INIT(= FALSE);/* TRUE to invoke file dialog */
  326. #endif
  327. #if defined(GUI_DIALOG) || defined(CON_DIALOG)
  328. EXTERN int confirm INIT(= FALSE);/* TRUE to invoke yes/no dialog */
  329. #endif
  330. EXTERN char_u *IObuff; /* sprintf's are done in this buffer */
  331. EXTERN char_u *NameBuff; /* file names are expanded in this
  332.  * buffer */
  333. EXTERN char_u msg_buf[MSG_BUF_LEN]; /* small buffer for messages */
  334. EXTERN int RedrawingDisabled INIT(= FALSE);
  335. /* Set to TRUE if doing :g */
  336. EXTERN int display_hint INIT(= HINT_NONE);
  337. /* hint to insert/delete character */
  338. EXTERN int readonlymode INIT(= FALSE); /* Set to TRUE for "view" */
  339. EXTERN int recoverymode INIT(= FALSE); /* Set to TRUE for "-r" option */
  340. EXTERN char_u *typebuf INIT(= NULL); /* buffer for typed characters */
  341. EXTERN int typebuflen; /* size of typebuf */
  342. EXTERN int typeoff; /* current position in typebuf */
  343. EXTERN int typelen; /* number of valid chars in typebuf */
  344. EXTERN int KeyTyped; /* TRUE if user typed current char */
  345. EXTERN int KeyStuffed; /* TRUE if current char from stuffbuf */
  346. EXTERN int maptick INIT(= 0); /* tick for each non-mapped char */
  347. EXTERN char_u chartab[256]; /* table used in charset.c */
  348. EXTERN int must_redraw INIT(= 0);     /* type of redraw necessary */
  349. EXTERN int skip_redraw INIT(= FALSE);  /* skip redraw once */
  350. EXTERN int do_redraw INIT(= FALSE);    /* extra redraw once */
  351. EXTERN int need_highlight_changed INIT(= TRUE);
  352. EXTERN char_u *use_viminfo INIT(= NULL);  /* name of viminfo file to use */
  353. #define NSCRIPT 15
  354. EXTERN FILE *scriptin[NSCRIPT];     /* streams to read script from */
  355. EXTERN int curscript INIT(= 0);     /* index in scriptin[] */
  356. EXTERN FILE *scriptout  INIT(= NULL);   /* stream to write script to */
  357. EXTERN int read_cmd_fd INIT(= 0);     /* fd to read commands from */
  358. EXTERN int got_int INIT(= FALSE);     /* set to TRUE when interrupt
  359. signal occurred */
  360. EXTERN int term_console INIT(= FALSE); /* set to TRUE when consule used */
  361. EXTERN int termcap_active INIT(= FALSE); /* set by starttermcap() */
  362. EXTERN int bangredo INIT(= FALSE);     /* set to TRUE whith ! command */
  363. EXTERN int searchcmdlen;     /* length of previous search cmd */
  364. EXTERN int reg_ic INIT(= 0);     /* p_ic passed to vim_regexec() */
  365. EXTERN int reg_syn INIT(= 0);     /* vim_regexec() used for syntax */
  366. EXTERN int did_outofmem_msg INIT(= FALSE);
  367.     /* set after out of memory msg */
  368. EXTERN int did_swapwrite_msg INIT(= FALSE);
  369.     /* set after swap write error msg */
  370. EXTERN int undo_off INIT(= FALSE);     /* undo switched off for now */
  371. EXTERN int global_busy INIT(= 0);     /* set when :global is executing */
  372. EXTERN int need_start_insertmode INIT(= FALSE);
  373.     /* start insert mode soon */
  374. EXTERN char_u *last_cmdline INIT(= NULL); /* last command line (for ":) */
  375. EXTERN char_u *new_last_cmdline INIT(= NULL); /* new value for last_cmdline */
  376. #ifdef AUTOCMD
  377. EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */
  378. EXTERN int autocmd_bufnr INIT(= 0);    /* fnum for <abuf> on cmdline */
  379. #endif
  380. EXTERN int postponed_split INIT(= 0);  /* for CTRL-W CTRL-] command */
  381. EXTERN int replace_offset INIT(= 0);   /* offset for replace_push() */
  382. EXTERN char_u *escape_chars INIT(= (char_u *)" t\"|");
  383.     /* need backslash in cmd line */
  384. EXTERN char_u *help_save_isk INIT(= NULL);/* 'isk' saved by do_help() */
  385. EXTERN long help_save_ts INIT(= 0);     /* 'ts' saved by do_help() */
  386. EXTERN int keep_help_flag INIT(= FALSE); /* doing :ta from help file */
  387. /*
  388.  * When a string option is NULL (which only happens in out-of-memory
  389.  * situations), it is set to empty_option, to avoid having to check for NULL
  390.  * everywhere.
  391.  */
  392. EXTERN char_u *empty_option INIT(= (char_u *)"");
  393. #ifdef DEBUG
  394. EXTERN FILE *debugfp INIT(= NULL);
  395. #endif
  396. EXTERN FILE *redir_fd INIT(= NULL); /* message redirection file */
  397. EXTERN int  redir_off INIT(= FALSE); /* no redirection for a moment */
  398. #ifdef HAVE_LANGMAP
  399. EXTERN char_u langmap_mapchar[256]; /* mapping for language keys */
  400. #endif
  401. #ifdef WIN32
  402. EXTERN char_u toupper_tab[256]; /* table for toupper() */
  403. EXTERN char_u tolower_tab[256]; /* table for tolower() */
  404. #endif
  405. EXTERN char breakat_flags[256]; /* which characters are in 'breakat' */
  406. extern char *Version; /* this is in version.c */
  407. extern char *mediumVersion; /* this is in version.c */
  408. extern char *longVersion; /* this is in version.c */
  409. /*
  410.  * Some file names for Unix are stored in pathdef.c, to make their value
  411.  * depend on the Makefile.
  412.  */
  413. #ifdef HAVE_PATHDEF
  414. extern char_u *default_vim_dir; /* this is in pathdef.c */
  415. extern char_u *all_cflags; /* this is in pathdef.c */
  416. extern char_u *all_lflags; /* this is in pathdef.c */
  417. #endif
  418. /* Characters from 'listchars' option */
  419. EXTERN int lcs_eol INIT(= '$');
  420. EXTERN int lcs_ext INIT(= NUL);
  421. EXTERN int lcs_tab1 INIT(= NUL);
  422. EXTERN int lcs_tab2 INIT(= NUL);
  423. EXTERN int lcs_trail INIT(= NUL);
  424. EXTERN char_u no_lines_msg[] INIT(="--No lines in buffer--");
  425. /* table to store parsed 'wildmode' */
  426. EXTERN char_u wim_flags[4];
  427. #ifdef EXTRA_SEARCH
  428. /* don't use 'hlsearch' temporarily */
  429. EXTERN int no_hlsearch INIT(= FALSE);
  430. #endif
  431. #ifdef CURSOR_SHAPE
  432. /* the table is in misc2.c, because of initializations */
  433. extern struct cursor_entry cursor_table[SHAPE_COUNT];
  434. #endif
  435. /*
  436.  * The error messages that can be shared are included here.
  437.  * Excluded are errors that are only used once and debugging messages.
  438.  */
  439. EXTERN char_u e_abort[] INIT(="Command aborted");
  440. EXTERN char_u e_ambmap[] INIT(="Ambiguous mapping");
  441. EXTERN char_u e_argreq[] INIT(="Argument required");
  442. EXTERN char_u e_backslash[] INIT(="\ should be followed by /, ? or &");
  443. EXTERN char_u e_curdir[] INIT(="Command not allowed from exrc/vimrc in current dir or tag search");
  444. EXTERN char_u e_exists[] INIT(="File exists (use ! to override)");
  445. EXTERN char_u e_failed[] INIT(="Command failed");
  446. EXTERN char_u e_internal[] INIT(="Internal error");
  447. EXTERN char_u e_interr[] INIT(="Interrupted");
  448. EXTERN char_u e_invaddr[] INIT(="Invalid address");
  449. EXTERN char_u e_invarg[] INIT(="Invalid argument");
  450. EXTERN char_u e_invarg2[] INIT(="Invalid argument: %s");
  451. EXTERN char_u e_invexpr2[] INIT(="Invalid expression: %s");
  452. EXTERN char_u e_invrange[] INIT(="Invalid range");
  453. EXTERN char_u e_invcmd[] INIT(="Invalid command");
  454. EXTERN char_u e_letunexp[] INIT(="Unexpected characters before '='");
  455. EXTERN char_u e_markinval[] INIT(="Mark has invalid line number");
  456. EXTERN char_u e_marknotset[] INIT(="Mark not set");
  457. EXTERN char_u e_nesting[] INIT(="Scripts nested too deep");
  458. EXTERN char_u e_noalt[] INIT(="No alternate file");
  459. EXTERN char_u e_nobang[] INIT(="No ! allowed");
  460. EXTERN char_u e_nogvim[] INIT(="GUI cannot be used: Not enabled at compile timen");
  461. EXTERN char_u e_nohebrew[] INIT(="Hebrew cannot be used: Not enabled at compile timen");
  462. EXTERN char_u e_nofarsi[] INIT(="Farsi cannot be used: Not enabled at compile timen");
  463. EXTERN char_u e_noinstext[] INIT(="No inserted text yet");
  464. EXTERN char_u e_nolastcmd[] INIT(="No previous command line");
  465. EXTERN char_u e_nomap[] INIT(="No such mapping");
  466. EXTERN char_u e_nomatch[] INIT(="No match");
  467. EXTERN char_u e_nomatch2[] INIT(="No match: %s");
  468. EXTERN char_u e_noname[] INIT(="No file name");
  469. EXTERN char_u e_nopresub[] INIT(="No previous substitute regular expression");
  470. EXTERN char_u e_noprev[] INIT(="No previous command");
  471. EXTERN char_u e_noprevre[] INIT(="No previous regular expression");
  472. EXTERN char_u e_norange[] INIT(="No range allowed");
  473. EXTERN char_u e_noroom[] INIT(="Not enough room");
  474. EXTERN char_u e_notcreate[] INIT(="Can't create file %s");
  475. EXTERN char_u e_notmp[] INIT(="Can't get temp file name");
  476. EXTERN char_u e_notopen[] INIT(="Can't open file %s");
  477. EXTERN char_u e_notread[] INIT(="Can't read file %s");
  478. EXTERN char_u e_nowrtmsg[] INIT(="No write since last change (use ! to override)");
  479. EXTERN char_u e_null[] INIT(="Null argument");
  480. EXTERN char_u e_number[] INIT(="Number expected");
  481. EXTERN char_u e_openerrf[] INIT(="Can't open errorfile %s");
  482. EXTERN char_u e_outofmem[] INIT(="Out of memory!");
  483. EXTERN char_u e_patnotf[] INIT(="Pattern not found");
  484. EXTERN char_u e_patnotf2[] INIT(="Pattern not found: %s");
  485. EXTERN char_u e_positive[] INIT(="Argument must be positive");
  486. EXTERN char_u e_quickfix[] INIT(="No Errors");
  487. EXTERN char_u e_re_damg[] INIT(="Damaged match string");
  488. EXTERN char_u e_re_corr[] INIT(="Corrupted regexp program");
  489. EXTERN char_u e_readonly[] INIT(="'readonly' option is set (use ! to override)");
  490. EXTERN char_u e_readerrf[] INIT(="Error while reading errorfile");
  491. EXTERN char_u e_scroll[] INIT(="Invalid scroll size");
  492. EXTERN char_u e_tagformat[] INIT(="Format error in tags file "%s"");
  493. EXTERN char_u e_tagstack[] INIT(="tag stack empty");
  494. EXTERN char_u e_toocompl[] INIT(="Command too complex");
  495. EXTERN char_u e_toombra[] INIT(="Too many \(");
  496. EXTERN char_u e_toomket[] INIT(="Too many \)");
  497. EXTERN char_u e_toomsbra[] INIT(="Too many [");
  498. EXTERN char_u e_toolong[] INIT(="Command too long");
  499. EXTERN char_u e_toomany[] INIT(="Too many file names");
  500. EXTERN char_u e_trailing[] INIT(="Trailing characters");
  501. EXTERN char_u e_umark[] INIT(="Unknown mark");
  502. EXTERN char_u e_unknown[] INIT(="Unknown");
  503. EXTERN char_u e_write[] INIT(="Error while writing");
  504. EXTERN char_u e_zerocount[] INIT(="Zero count");
  505. /*
  506.  * Optional Farsi support.  Include it here, so EXTERN and INIT are defined.
  507.  */
  508. #ifdef FKMAP
  509. # include "farsi.h"
  510. #endif