home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / amiga / vim46src.lha / vim-4.6 / src / globals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-06  |  17.8 KB  |  451 lines

  1. /* vi:set ts=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. /*
  10.  * definition of global variables
  11.  *
  12.  * EXTERN is only defined in main.c (and in option.h)
  13.  */
  14.  
  15. #ifndef EXTERN
  16. # define EXTERN extern
  17. # define INIT(x)
  18. #else
  19. # ifndef INIT
  20. #  define INIT(x) x
  21. # endif
  22. #endif
  23.  
  24. /*
  25.  * Number of Rows and Columns in the screen.
  26.  * Must be long to be able to use them as options in option.c.
  27.  */
  28. EXTERN long        Rows;                    /* number of rows in the screen */
  29. EXTERN long        Columns;                /* number of columns in the screen */
  30.  
  31. /*
  32.  * The characters that are currently on the screen are kept in NextScreen.
  33.  * It is a single block of characters, twice the size of the screen.
  34.  * First come the characters for one line, then the attributes for that line.
  35.  *
  36.  * "LinePointers[n]" points into NextScreen, at the start of line 'n'.
  37.  * "LinePointers[n] + Columns" points to the attibutes of line 'n'.
  38.  */
  39. EXTERN char_u     *NextScreen INIT(= NULL);
  40. EXTERN char_u     **LinePointers INIT(= NULL);
  41.  
  42. EXTERN int        screen_Rows INIT(= 0);        /* actual size of NextScreen */
  43. EXTERN int        screen_Columns INIT(= 0);    /* actual size of NextScreen */
  44.  
  45. /*
  46.  * Positioning the cursor is reduced by remembering the last position.
  47.  * Mostly used by screen_char().
  48.  */
  49. EXTERN int    screen_cur_row, screen_cur_col;        /* last known cursor position */
  50.  
  51. /*
  52.  * When vgetc() is called, it sets mod_mask to the set of modifiers that are
  53.  * held down based on the KSMOD_* symbols that are read first.
  54.  */
  55. EXTERN int        mod_mask INIT(= 0x0);            /* current key modifiers */
  56.  
  57. /*
  58.  * Cmdline_row is the row where the command line starts, just below the
  59.  * last window.
  60.  * When the cmdline gets longer than the available space the screen gets
  61.  * scrolled up. After a CTRL-D (show matches), after hitting ':' after
  62.  * "hit return", and for the :global command, the command line is
  63.  * temporarily moved. The old position is restored with the next call to
  64.  * updateScreen().
  65.  */
  66. EXTERN int        cmdline_row;
  67.  
  68. EXTERN int        redraw_cmdline INIT(= FALSE);    /* cmdline must be redrawn */
  69. EXTERN int        clear_cmdline INIT(= FALSE);    /* cmdline must be cleared */
  70. EXTERN int        modified INIT(= FALSE);            /* buffer was modified since
  71.                                                     last redraw */
  72. EXTERN int        tag_modified INIT(= FALSE);        /* buffer was modified since
  73.                                                     start of tag command */
  74. EXTERN int        screen_cleared INIT(= FALSE);    /* screen has been cleared */
  75.  
  76. /*
  77.  * When '$' is included in 'cpoptions' option set:
  78.  * When a change command is given that deletes only part of a line, a dollar
  79.  * is put at the end of the changed text. dollar_vcol is set to the virtual
  80.  * column of this '$'.
  81.  */
  82. EXTERN colnr_t    dollar_vcol INIT(= 0);
  83.  
  84. /*
  85.  * used for completion on the command line
  86.  */
  87. EXTERN int        expand_context INIT(= CONTEXT_UNKNOWN);
  88. EXTERN char_u    *expand_pattern INIT(= NULL);
  89. EXTERN int        expand_interactively INIT(= FALSE);
  90.  
  91. /*
  92.  * Functions for putting characters in the command line,
  93.  * while keeping NextScreen updated.
  94.  */
  95. EXTERN int        msg_col;
  96. EXTERN int        msg_row;
  97. EXTERN int        msg_scrolled; 
  98.  
  99. EXTERN char_u    *keep_msg INIT(= NULL);        /* msg to be shown after redraw */
  100. EXTERN int        keep_msg_highlight INIT(= 0);/* highlight for keep_msg */
  101. #ifdef SLEEP_IN_EMSG
  102. EXTERN int        need_sleep INIT(= FALSE);    /* call sleep() before redraw */
  103. #endif
  104. EXTERN int        need_fileinfo INIT(= FALSE);/* do fileinfo() after redraw */
  105. EXTERN int        msg_scroll INIT(= FALSE);    /* msg_start() will scroll */
  106. EXTERN int        msg_didout INIT(= FALSE);    /* msg_outstr() was used in line */
  107. EXTERN int        msg_didany INIT(= FALSE);    /* msg_outstr() was used at all */
  108. EXTERN int        emsg_off INIT(= FALSE);        /* don't display errors for now */
  109. EXTERN int        did_emsg;                    /* set by emsg() for DoOneCmd() */
  110. EXTERN int        emsg_on_display INIT(= FALSE);    /* there is an error message */
  111. EXTERN char_u    *sourcing_name INIT( = NULL);/* name of error message source */
  112. EXTERN linenr_t    sourcing_lnum INIT(= 0);    /* line number of the source file */
  113.  
  114. EXTERN int        msg_highlight INIT(= FALSE);/* message should be highlighted */
  115. EXTERN char_u    *highlight INIT(= NULL);    /* string for start of highlighting */
  116. EXTERN char_u    *unhighlight INIT(= NULL);    /* string for end of highlighting */
  117. EXTERN int        scroll_region INIT(= FALSE);/* terminal supports scroll region */
  118. EXTERN int        highlight_match INIT(= FALSE);    /* show search match pos */
  119. EXTERN int        search_match_len;            /* length of matched string */
  120. EXTERN int        no_smartcase INIT(= FALSE);    /* don't use 'smartcase' once */
  121. EXTERN int        need_check_timestamps INIT(= FALSE);    /* got STOP signal */
  122.  
  123. #ifdef AUTOCMD
  124. EXTERN int        autocmd_busy INIT(= FALSE);    /* Is apply_autocmds() busy? */
  125. EXTERN int        autocmd_no_enter INIT(= FALSE); /* *Enter autocmds disabled */
  126. EXTERN int        autocmd_no_leave INIT(= FALSE); /* *Leave autocmds disabled */
  127. #endif
  128.  
  129. #ifdef USE_MOUSE
  130. /*
  131.  * Mouse coordinates, set by check_termcode()
  132.  */
  133. EXTERN int        mouse_row;
  134. EXTERN int        mouse_col;
  135. EXTERN int        mouse_past_bottom INIT(= FALSE);/* mouse below last line */
  136. EXTERN int        mouse_past_eol INIT(= FALSE);    /* mouse right of line */
  137. #endif
  138.  
  139. #ifdef USE_GUI
  140. /*
  141.  * Menu item just selected, set by check_termcode()
  142.  */
  143. EXTERN GuiMenu    *current_menu;
  144.  
  145. /*
  146.  * Scrollbar moved and new value, set by check_termcode()
  147.  */
  148. EXTERN int        current_scrollbar;
  149. EXTERN long_u    scrollbar_value;
  150. #endif
  151.  
  152. /*
  153.  * All windows are linked in a list. firstwin points to the first entry, lastwin
  154.  * to the last entry (can be the same as firstwin) and curwin to the currently
  155.  * active window.
  156.  */
  157. EXTERN WIN        *firstwin;        /* first window */
  158. EXTERN WIN        *lastwin;        /* last window */
  159. EXTERN WIN        *curwin;        /* currently active window */
  160.  
  161. /*
  162.  * All buffers are linked in a list. 'firstbuf' points to the first entry,
  163.  * 'lastbuf' to the last entry and 'curbuf' to the currently active buffer.
  164.  */
  165. EXTERN BUF        *firstbuf INIT(= NULL);    /* first buffer */
  166. EXTERN BUF        *lastbuf INIT(= NULL);    /* last buffer */
  167. EXTERN BUF        *curbuf INIT(= NULL);    /* currently active buffer */
  168.  
  169. /*
  170.  * list of files being edited (argument list)
  171.  */
  172. EXTERN char_u    **arg_files;    /* list of files */
  173. EXTERN int        arg_count;         /* number of files */
  174. EXTERN int        arg_exp;        /* when TRUE arg_files must be freed */
  175. EXTERN int        arg_had_last INIT(= FALSE);    /* accessed last file in arglist */
  176.  
  177. EXTERN int        ru_col;            /* column for ruler */
  178. EXTERN int        sc_col;            /* column for shown command */
  179.  
  180. /*
  181.  * When starting or exiting some things are done differently (e.g. screen
  182.  * updating).
  183.  */
  184. EXTERN int        starting INIT(= TRUE);
  185.                                 /* set to FALSE when starting up finished */
  186. EXTERN int        exiting INIT(= FALSE);
  187.                                 /* set to TRUE when abandoning Vim */
  188. EXTERN int        full_screen INIT(= TRUE);
  189.                                 /* set to FALSE when not doing full-screen
  190.                                  * output and only writing some messages */
  191.  
  192. EXTERN int        secure INIT(= FALSE);
  193.                                 /* set to TRUE when only "safe" commands are 
  194.                                  * allowed, e.g. when sourcing .exrc or .vimrc
  195.                                  * in current directory */
  196.  
  197. EXTERN int        found_version INIT(= 0);
  198.                                 /* version nr found after :version command */
  199.  
  200. EXTERN FPOS     VIsual;         /* start position of Visual */
  201. EXTERN FPOS        VIsual_save;    /* copy of VIsual before 'v' command */
  202. EXTERN int        VIsual_active INIT(= FALSE);
  203.                                 /* wheter Visual mode is active */
  204. EXTERN FPOS     VIsual_end;        /* end position of Visual; set when
  205.                                     VIsual_active becomes FALSE */
  206.  
  207. EXTERN int        VIsual_mode INIT(= 'v');
  208.                                 /* type of Visual mode */
  209. EXTERN int        VIsual_mode_save;
  210.                                 /* copy of VIsual_mode before 'v' command */
  211. EXTERN int        redo_VIsual_busy INIT(= FALSE);
  212.                                 /* TRUE when redo-ing a visual */
  213.  
  214. #ifdef USE_MOUSE
  215. /*
  216.  * When pasting text with the middle mouse button in visual mode with
  217.  * restart_edit set, remember where it started so we can set Insstart.
  218.  */
  219. EXTERN FPOS        where_paste_started;
  220. #endif
  221.  
  222. /*
  223.  * This flag is used to make auto-indent work right on lines where only a
  224.  * <RETURN> or <ESC> is typed. It is set when an auto-indent is done, and
  225.  * reset when any other editting is done on the line. If an <ESC> or <RETURN>
  226.  * is received, and did_ai is TRUE, the line is truncated.
  227.  */
  228. EXTERN int       did_ai INIT(= FALSE);
  229.  
  230. /*
  231.  * This flag is set when a smart indent has been performed. When the next typed
  232.  * character is a '{' the inserted tab will be deleted again.
  233.  */
  234. EXTERN int        did_si INIT(= FALSE);
  235.  
  236. /*
  237.  * This flag is set after an auto indent. If the next typed character is a '}'
  238.  * one indent will be removed.
  239.  */
  240. EXTERN int        can_si INIT(= FALSE);
  241.  
  242. /*
  243.  * This flag is set after an "O" command. If the next typed character is a '{'
  244.  * one indent will be removed.
  245.  */
  246. EXTERN int        can_si_back INIT(= FALSE);
  247.  
  248. EXTERN int        old_indent INIT(= 0);    /* for ^^D command in insert mode */
  249.  
  250. EXTERN int        State INIT(= NORMAL);    /* This is the current state of the
  251.                                          * command interpreter. */
  252. EXTERN int        no_mapping INIT(= FALSE);    /* currently no mapping allowed */
  253. EXTERN int        allow_keys INIT(= FALSE);    /* allow key codes when no_mapping
  254.                                              * is set */
  255.  
  256. EXTERN int        restart_edit INIT(= 0);    /* call edit when next command finished
  257.                                          */
  258. EXTERN int        arrow_used;                /* Normally FALSE, set to TRUE after
  259.                                          * hitting cursor key in insert mode.
  260.                                          * Used by vgetorpeek() to decide when
  261.                                          * to call u_sync() */
  262. #ifdef INSERT_EXPAND
  263. EXTERN char_u    *edit_submode INIT(= NULL);    /* msg for CTRL-X submode */
  264. EXTERN char_u    *edit_submode_extra INIT(= NULL);/* extra info for msg */
  265. EXTERN int        edit_submode_highl;        /* highlight method for extra info */
  266. EXTERN int        ctrl_x_mode INIT(= 0);    /* Which Ctrl-X mode are we in? */
  267. #endif
  268.  
  269. EXTERN int        Recording INIT(= FALSE);/* TRUE when recording into a register
  270.                                          */
  271. EXTERN int        Exec_reg INIT(= FALSE);    /* TRUE when executing a register */
  272.  
  273. EXTERN int        did_cd INIT(= FALSE);    /* TRUE when :cd dir used */
  274. EXTERN int        no_abbr INIT(= TRUE);    /* TRUE when no abbreviations loaded */
  275. EXTERN int        fo_do_comments INIT(= FALSE);
  276.                                         /* TRUE when comments are to be
  277.                                          * formatted */
  278. #if defined MSDOS  ||  defined WIN32
  279. EXTERN int        beep_count INIT(= 0);    /* nr of beeps since last char typed */
  280. #endif
  281.  
  282. EXTERN char_u     *IObuff;                /* sprintf's are done in this buffer */
  283. EXTERN char_u    *NameBuff;                /* file names are expanded in this
  284.                                          * buffer */
  285. EXTERN char_u    msg_buf[MSG_BUF_LEN];    /* small buffer for messages */
  286.  
  287. EXTERN int        RedrawingDisabled INIT(= FALSE);
  288.                                         /* Set to TRUE if doing :g */
  289.  
  290. EXTERN int        readonlymode INIT(= FALSE); /* Set to TRUE for "view" */
  291. EXTERN int        recoverymode INIT(= FALSE); /* Set to TRUE for "-r" option */
  292.  
  293. EXTERN char_u    *typebuf INIT(= NULL);    /* buffer for typed characters */
  294. EXTERN int        typebuflen;                /* size of typebuf */
  295. EXTERN int        typeoff;                /* current position in typebuf */
  296. EXTERN int        typelen;                /* number of valid chars in typebuf */
  297. EXTERN int        KeyTyped;                /* TRUE if user typed current char */
  298. EXTERN int        KeyStuffed;                /* TRUE if current char from stuffbuf */
  299.  
  300. EXTERN int        must_redraw INIT(= 0);        /* type of redraw necessary */
  301. EXTERN int        skip_redraw INIT(= FALSE);    /* skip redraw once */
  302. EXTERN int        do_redraw INIT(= FALSE);    /* extra redraw once */
  303.  
  304. EXTERN char_u    *use_viminfo INIT(= NULL);    /* name of viminfo file to use */
  305.  
  306. #define NSCRIPT 15
  307. EXTERN FILE     *scriptin[NSCRIPT];            /* streams to read script from */
  308. EXTERN int        curscript INIT(= 0);        /* index in scriptin[] */
  309. EXTERN FILE     *scriptout    INIT(= NULL);     /* stream to write script to */
  310.  
  311. EXTERN int        got_int INIT(= FALSE);        /* set to TRUE when interrupt
  312.                                                    signal occurred */
  313. EXTERN int        term_console INIT(= FALSE);    /* set to TRUE when consule used */
  314. EXTERN int        termcap_active INIT(= FALSE);    /* set by starttermcap() */
  315. EXTERN int        bangredo INIT(= FALSE);        /* set to TRUE whith ! command */
  316. EXTERN int        searchcmdlen;                /* length of previous search cmd */
  317. EXTERN int         reg_ic INIT(= 0);             /* p_ic passed to vim_regexec() */
  318. EXTERN int        reg_magic;                    /* p_magic passed to ergexec() */
  319.  
  320. EXTERN int        did_outofmem_msg INIT(= FALSE);
  321.                                             /* set after out of memory msg */
  322. EXTERN int        did_swapwrite_msg INIT(= FALSE);
  323.                                             /* set after swap write error msg */
  324. EXTERN int        undo_off INIT(= FALSE);        /* undo switched off for now */
  325. EXTERN int        global_busy INIT(= 0);        /* set when :global is executing */
  326. #ifdef SLEEP_IN_EMSG
  327. EXTERN int        dont_sleep INIT(= FALSE);    /* set when sleep() in emsg() not
  328.                                                 wanted */
  329. #endif
  330. EXTERN int        need_start_insertmode INIT(= FALSE);
  331.                                             /* start insert mode soon */
  332. EXTERN int        rc_did_emsg INIT(= FALSE);    /* vim_regcomp() called emsg() */
  333. EXTERN int        no_wait_return INIT(= 0);    /* don't wait for return now */
  334. EXTERN int        need_wait_return INIT(= 0);    /* need to wait for return later */
  335. EXTERN int        dont_wait_return INIT(= 0);    /* no need to wait for return */
  336. EXTERN int        quit_more INIT(= FALSE);    /* 'q' hit at "--more--" msg */
  337. EXTERN char_u    *last_cmdline INIT(= NULL);    /* last command line (for ":) */
  338. EXTERN char_u    *new_last_cmdline INIT(= NULL);    /* new value for last_cmdline */
  339. #ifdef AUTOCMD
  340. EXTERN char_u    *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */
  341. #endif
  342.  
  343. EXTERN int        postponed_split INIT(= FALSE);    /* for CTRL-W CTRL-] command */
  344. EXTERN int        replace_offset INIT(= 0);    /* offset for replace_push() */
  345.  
  346. EXTERN char_u    *escape_chars INIT(= (char_u *)" \t\\\"|");
  347.                                             /* need backslash in cmd line */
  348.  
  349. EXTERN char_u    *help_save_isk INIT(= NULL);/* 'isk' saved by do_help() */
  350. EXTERN long        help_save_ts INIT(= 0);        /* 'ts' saved by do_help() */
  351. EXTERN int        keep_help_flag INIT(= FALSE); /* doing :ta from help file */
  352.  
  353. /*
  354.  * When a string option is NULL (which only happens in out-of-memory
  355.  * situations), it is set to empty_option, to avoid having to check for NULL
  356.  * everywhere.
  357.  */
  358. EXTERN char_u    *empty_option INIT(= (char_u *)"");
  359.  
  360. #ifdef DEBUG
  361. EXTERN FILE *debugfp INIT(=NULL);
  362. #endif
  363.  
  364. #ifdef HAVE_LANGMAP
  365. EXTERN char_u    langmap_mapchar[256];    /* mapping for language keys */
  366. #endif
  367.  
  368. EXTERN char        breakat_flags[256];        /* which characters are in 'breakat' */
  369.  
  370. extern char *Version;            /* this is in version.c */
  371. extern char *longVersion;        /* this is in version.c */
  372.  
  373. /*
  374.  * Some file names for Unix are stored in pathdef.c, to make their value
  375.  * depend on the Makefile.
  376.  */
  377. #if defined(HAVE_CONFIG_H) || defined(OS2)
  378. extern char_u *sys_vimrc_fname;        /* this is in pathdef.c */
  379. extern char_u *sys_gvimrc_fname;    /* this is in pathdef.c */
  380. extern char_u *help_fname;            /* this is in pathdef.c */
  381. extern char_u *all_cflags;            /* this is in pathdef.c */
  382. #endif
  383.  
  384. EXTERN char_u no_lines_msg[]        INIT(="--No lines in buffer--");
  385.  
  386. /*
  387.  * The error messages that can be shared are included here.
  388.  * Excluded are very specific errors and debugging messages.
  389.  */
  390. EXTERN char_u e_abbr[]        INIT(="No such abbreviation");
  391. EXTERN char_u e_abort[]        INIT(="Command aborted");
  392. EXTERN char_u e_ambmap[]    INIT(="Ambiguous mapping");
  393. EXTERN char_u e_argreq[]    INIT(="Argument required");
  394. EXTERN char_u e_backslash[]    INIT(="\\ should be followed by /, ? or &");
  395. EXTERN char_u e_curdir[]    INIT(="Command not allowed from exrc/vimrc in current dir or tag search");
  396. EXTERN char_u e_errorf[]    INIT(="No errorfile name");
  397. EXTERN char_u e_exists[]    INIT(="File exists (use ! to override)");
  398. EXTERN char_u e_failed[]     INIT(="Command failed");
  399. EXTERN char_u e_internal[]    INIT(="Internal error");
  400. EXTERN char_u e_interr[]    INIT(="Interrupted");
  401. EXTERN char_u e_invaddr[]    INIT(="Invalid address");
  402. EXTERN char_u e_invarg[]    INIT(="Invalid argument");
  403. EXTERN char_u e_invrange[]    INIT(="Invalid range");
  404. EXTERN char_u e_invcmd[]    INIT(="Invalid command");
  405. EXTERN char_u e_markinval[]    INIT(="Mark has invalid line number");
  406. EXTERN char_u e_marknotset[]    INIT(="Mark not set");
  407. EXTERN char_u e_nesting[]    INIT(="Scripts nested too deep");
  408. EXTERN char_u e_noalt[]        INIT(="No alternate file");
  409. EXTERN char_u e_nobang[]     INIT(="No ! allowed");
  410. EXTERN char_u e_nogvim[]    INIT(="GUI cannot be used: Not enabled at compile time\n");
  411. EXTERN char_u e_nohebrew[]    INIT(="Hebrew cannot be used: Not enabled at compile time\n");
  412. EXTERN char_u e_noinstext[]    INIT(="No inserted text yet");
  413. EXTERN char_u e_nolastcmd[]    INIT(="No previous command line");
  414. EXTERN char_u e_nomap[]        INIT(="No such mapping");
  415. EXTERN char_u e_nomatch[]    INIT(="No match");
  416. EXTERN char_u e_nomore[]    INIT(="No more files to edit");
  417. EXTERN char_u e_noname[]    INIT(="No file name");
  418. EXTERN char_u e_nopresub[]    INIT(="No previous substitute regular expression");
  419. EXTERN char_u e_noprev[]    INIT(="No previous command");
  420. EXTERN char_u e_noprevre[]    INIT(="No previous regular expression");
  421. EXTERN char_u e_norange[]     INIT(="No range allowed");
  422. EXTERN char_u e_noroom[]     INIT(="Not enough room");
  423. EXTERN char_u e_notcreate[]    INIT(="Can't create file %s");
  424. EXTERN char_u e_notmp[]        INIT(="Can't get temp file name");
  425. EXTERN char_u e_notopen[]    INIT(="Can't open file %s");
  426. EXTERN char_u e_notread[]    INIT(="Can't read file %s");
  427. EXTERN char_u e_nowrtmsg[]    INIT(="No write since last change (use ! to override)");
  428. EXTERN char_u e_null[]        INIT(="Null argument");
  429. EXTERN char_u e_number[]    INIT(="Number expected");
  430. EXTERN char_u e_openerrf[]    INIT(="Can't open errorfile %s");
  431. EXTERN char_u e_outofmem[]    INIT(="Out of memory!");
  432. EXTERN char_u e_patnotf[]    INIT(="Pattern not found");
  433. EXTERN char_u e_positive[]    INIT(="Argument must be positive");
  434. EXTERN char_u e_quickfix[]    INIT(="No Errors");
  435. EXTERN char_u e_re_damg[]    INIT(="Damaged match string");
  436. EXTERN char_u e_re_corr[]    INIT(="Corrupted regexp program");
  437. EXTERN char_u e_readonly[]    INIT(="'readonly' option is set (use ! to override)");
  438. EXTERN char_u e_readerrf[]    INIT(="Error while reading errorfile");
  439. EXTERN char_u e_scroll[]    INIT(="Invalid scroll size");
  440. EXTERN char_u e_toocompl[]    INIT(="Command too complex");
  441. EXTERN char_u e_toombra[]    INIT(="Too many (");
  442. EXTERN char_u e_toomket[]    INIT(="Too many )");
  443. EXTERN char_u e_toomsbra[]    INIT(="Too many [");
  444. EXTERN char_u e_toolong[]    INIT(="Command too long");
  445. EXTERN char_u e_toomany[]    INIT(="Too many file names");
  446. EXTERN char_u e_trailing[]    INIT(="Trailing characters");
  447. EXTERN char_u e_umark[]        INIT(="Unknown mark");
  448. EXTERN char_u e_unknown[]    INIT(="Unknown");
  449. EXTERN char_u e_write[]        INIT(="Error while writing");
  450. EXTERN char_u e_zerocount[]    INIT(="Zero count");
  451.