diff options
author | Jason Downs <downsj@cvs.openbsd.org> | 1996-09-07 21:40:33 +0000 |
---|---|---|
committer | Jason Downs <downsj@cvs.openbsd.org> | 1996-09-07 21:40:33 +0000 |
commit | c224fc199c25dd257673c273eb344786b9bf532c (patch) | |
tree | 8f8ed1297120c537480d9e5d46bfe7452bd8505b /usr.bin/vim/globals.h | |
parent | d0d91e2d3d6569e4defdd5178241f28fa678d753 (diff) |
Initial import of vim 4.2.
This is meant to replace nvi in the tree. Vim, in general, works better,
provides more features, and does not suffer from the license problems
being imposed upon nvi.
On the other hand, vim lacks a non-visual ex mode, in addition to open mode.
This includes the GUI (X11) code, but doesn't try to compile it.
Diffstat (limited to 'usr.bin/vim/globals.h')
-rw-r--r-- | usr.bin/vim/globals.h | 446 |
1 files changed, 446 insertions, 0 deletions
diff --git a/usr.bin/vim/globals.h b/usr.bin/vim/globals.h new file mode 100644 index 00000000000..a5298f18b7a --- /dev/null +++ b/usr.bin/vim/globals.h @@ -0,0 +1,446 @@ +/* $OpenBSD: globals.h,v 1.1 1996/09/07 21:40:28 downsj Exp $ */ +/* vi:set ts=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. + */ + +/* + * definition of global variables + * + * EXTERN is only defined in main.c (and in option.h) + */ + +#ifndef EXTERN +# define EXTERN extern +# define INIT(x) +#else +# ifndef INIT +# define INIT(x) x +# endif +#endif + +/* + * Number of Rows and Columns in the screen. + * Must be long to be able to use them as options in option.c. + */ +EXTERN long Rows; /* number of rows in the screen */ +EXTERN long Columns; /* number of columns in the screen */ + +/* + * The characters that are currently on the screen are kept in NextScreen. + * It is a single block of characters, twice the size of the screen. + * First come the characters for one line, then the attributes for that line. + * + * "LinePointers[n]" points into NextScreen, at the start of line 'n'. + * "LinePointers[n] + Columns" points to the attibutes of line 'n'. + */ +EXTERN char_u *NextScreen INIT(= NULL); +EXTERN char_u **LinePointers INIT(= NULL); + +EXTERN int screen_Rows INIT(= 0); /* actual size of NextScreen */ +EXTERN int screen_Columns INIT(= 0); /* actual size of NextScreen */ + +/* + * Positioning the cursor is reduced by remembering the last position. + * Mostly used by screen_char(). + */ +EXTERN int screen_cur_row, screen_cur_col; /* last known cursor position */ + +/* + * When vgetc() is called, it sets mod_mask to the set of modifiers that are + * held down based on the KSMOD_* symbols that are read first. + */ +EXTERN int mod_mask INIT(= 0x0); /* current key modifiers */ + +/* + * Cmdline_row is the row where the command line starts, just below the + * last window. + * When the cmdline gets longer than the available space the screen gets + * scrolled up. After a CTRL-D (show matches), after hitting ':' after + * "hit return", and for the :global command, the command line is + * temporarily moved. The old position is restored with the next call to + * updateScreen(). + */ +EXTERN int cmdline_row; + +EXTERN int redraw_cmdline INIT(= FALSE); /* cmdline must be redrawn */ +EXTERN int clear_cmdline INIT(= FALSE); /* cmdline must be cleared */ +EXTERN int modified INIT(= FALSE); /* buffer was modified since + last redraw */ +EXTERN int screen_cleared INIT(= FALSE); /* screen has been cleared */ + +/* + * When '$' is included in 'cpoptions' option set: + * When a change command is given that deletes only part of a line, a dollar + * is put at the end of the changed text. dollar_vcol is set to the virtual + * column of this '$'. + */ +EXTERN colnr_t dollar_vcol INIT(= 0); + +/* + * used for completion on the command line + */ +EXTERN int expand_context INIT(= CONTEXT_UNKNOWN); +EXTERN char_u *expand_pattern INIT(= NULL); +EXTERN int expand_interactively INIT(= FALSE); + +/* + * Functions for putting characters in the command line, + * while keeping NextScreen updated. + */ +EXTERN int msg_col; +EXTERN int msg_row; +EXTERN int msg_scrolled; + +EXTERN char_u *keep_msg INIT(= NULL); /* msg to be shown after redraw */ +EXTERN int keep_msg_highlight INIT(= 0);/* highlight for keep_msg */ +#ifdef SLEEP_IN_EMSG +EXTERN int need_sleep INIT(= FALSE); /* call sleep() before redraw */ +#endif +EXTERN int need_fileinfo INIT(= FALSE);/* do fileinfo() after redraw */ +EXTERN int msg_scroll INIT(= FALSE); /* msg_start() will scroll */ +EXTERN int msg_didout INIT(= FALSE); /* msg_outstr() was used in line */ +EXTERN int msg_didany INIT(= FALSE); /* msg_outstr() was used at all */ +EXTERN int emsg_off INIT(= FALSE); /* don't display errors for now */ +EXTERN int did_emsg; /* set by emsg() for DoOneCmd() */ +EXTERN int emsg_on_display INIT(= FALSE); /* there is an error message */ +EXTERN char_u *sourcing_name INIT( = NULL);/* name of error message source */ +EXTERN linenr_t sourcing_lnum INIT(= 0); /* line number of the source file */ + +EXTERN int msg_highlight INIT(= FALSE);/* message should be highlighted */ +EXTERN char_u *highlight INIT(= NULL); /* string for start of highlighting */ +EXTERN char_u *unhighlight INIT(= NULL); /* string for end of highlighting */ +EXTERN int scroll_region INIT(= FALSE);/* terminal supports scroll region */ +EXTERN int highlight_match INIT(= FALSE); /* show search match pos */ +EXTERN int search_match_len; /* length of matched string */ +EXTERN int no_smartcase INIT(= FALSE); /* don't use 'smartcase' once */ +EXTERN int need_check_timestamps INIT(= FALSE); /* got STOP signal */ + +#ifdef AUTOCMD +EXTERN int autocmd_busy INIT(= FALSE); /* Is apply_autocmds() busy? */ +#endif + +#ifdef USE_MOUSE +/* + * Mouse coordinates, set by check_termcode() + */ +EXTERN int mouse_row; +EXTERN int mouse_col; +EXTERN int mouse_past_bottom INIT(= FALSE);/* mouse below last line */ +EXTERN int mouse_past_eol INIT(= FALSE); /* mouse right of line */ +#endif + +#ifdef USE_GUI +/* + * Menu item just selected, set by check_termcode() + */ +EXTERN GuiMenu *current_menu; + +/* + * Scrollbar moved and new value, set by check_termcode() + */ +EXTERN int current_scrollbar; +EXTERN long_u scrollbar_value; +#endif + +/* + * All windows are linked in a list. firstwin points to the first entry, lastwin + * to the last entry (can be the same as firstwin) and curwin to the currently + * active window. + */ +EXTERN WIN *firstwin; /* first window */ +EXTERN WIN *lastwin; /* last window */ +EXTERN WIN *curwin; /* currently active window */ + +/* + * All buffers are linked in a list. 'firstbuf' points to the first entry, + * 'lastbuf' to the last entry and 'curbuf' to the currently active buffer. + */ +EXTERN BUF *firstbuf INIT(= NULL); /* first buffer */ +EXTERN BUF *lastbuf INIT(= NULL); /* last buffer */ +EXTERN BUF *curbuf INIT(= NULL); /* currently active buffer */ + +/* + * list of files being edited (argument list) + */ +EXTERN char_u **arg_files; /* list of files */ +EXTERN int arg_count; /* number of files */ +EXTERN int arg_exp; /* when TRUE arg_files must be freed */ +EXTERN int arg_had_last INIT(= FALSE); /* accessed last file in arglist */ + +EXTERN int ru_col; /* column for ruler */ +EXTERN int sc_col; /* column for shown command */ + +/* + * When starting or exiting some things are done differently (e.g. screen + * updating). + */ +EXTERN int starting INIT(= TRUE); + /* set to FALSE when starting up finished */ +EXTERN int exiting INIT(= FALSE); + /* set to TRUE when abandoning Vim */ +EXTERN int full_screen INIT(= TRUE); + /* set to FALSE when not doing full-screen + * output and only writing some messages */ + +EXTERN int secure INIT(= FALSE); + /* set to TRUE when only "safe" commands are + * allowed, e.g. when sourcing .exrc or .vimrc + * in current directory */ + +EXTERN int found_version INIT(= 0); + /* version nr found after :version command */ + +EXTERN FPOS VIsual; /* start position of Visual */ +EXTERN FPOS VIsual_save; /* copy of VIsual before 'v' command */ +EXTERN int VIsual_active INIT(= FALSE); + /* wheter Visual mode is active */ +EXTERN FPOS VIsual_end; /* end position of Visual; set when + VIsual_active becomes FALSE */ + +EXTERN int VIsual_mode INIT(= 'v'); + /* type of Visual mode */ +EXTERN int VIsual_mode_save; + /* copy of VIsual_mode before 'v' command */ +EXTERN int redo_VIsual_busy INIT(= FALSE); + /* TRUE when redo-ing a visual */ + +#ifdef USE_MOUSE +/* + * When pasting text with the middle mouse button in visual mode with + * restart_edit set, remember where it started so we can set Insstart. + */ +EXTERN FPOS where_paste_started; +#endif + +/* + * This flag is used to make auto-indent work right on lines where only a + * <RETURN> or <ESC> is typed. It is set when an auto-indent is done, and + * reset when any other editting is done on the line. If an <ESC> or <RETURN> + * is received, and did_ai is TRUE, the line is truncated. + */ +EXTERN int did_ai INIT(= FALSE); + +/* + * This flag is set when a smart indent has been performed. When the next typed + * character is a '{' the inserted tab will be deleted again. + */ +EXTERN int did_si INIT(= FALSE); + +/* + * This flag is set after an auto indent. If the next typed character is a '}' + * one indent will be removed. + */ +EXTERN int can_si INIT(= FALSE); + +/* + * This flag is set after an "O" command. If the next typed character is a '{' + * one indent will be removed. + */ +EXTERN int can_si_back INIT(= FALSE); + +EXTERN int old_indent INIT(= 0); /* for ^^D command in insert mode */ + +EXTERN int State INIT(= NORMAL); /* This is the current state of the + * command interpreter. */ +EXTERN int no_mapping INIT(= FALSE); /* currently no mapping allowed */ +EXTERN int allow_keys INIT(= FALSE); /* allow key codes when no_mapping + * is set */ + +EXTERN int restart_edit INIT(= 0); /* call edit when next command finished + */ +EXTERN int arrow_used; /* Normally FALSE, set to TRUE after + * hitting cursor key in insert mode. + * Used by vgetorpeek() to decide when + * to call u_sync() */ +#ifdef INSERT_EXPAND +EXTERN char_u *edit_submode INIT(= NULL); /* msg for CTRL-X submode */ +EXTERN char_u *edit_submode_extra INIT(= NULL);/* extra info for msg */ +EXTERN int edit_submode_highl; /* extra info highlighted */ +EXTERN int ctrl_x_mode INIT(= 0); /* Which Ctrl-X mode are we in? */ +#endif + +EXTERN int Recording INIT(= FALSE);/* TRUE when recording into a register + */ +EXTERN int Exec_reg INIT(= FALSE); /* TRUE when executing a register */ + +EXTERN int did_cd INIT(= FALSE); /* TRUE when :cd dir used */ +EXTERN int no_abbr INIT(= TRUE); /* TRUE when no abbreviations loaded */ +EXTERN int fo_do_comments INIT(= FALSE); + /* TRUE when comments are to be + * formatted */ +#if defined MSDOS || defined WIN32 +EXTERN int beep_count INIT(= 0); /* nr of beeps since last char typed */ +#endif + +EXTERN char_u *IObuff; /* sprintf's are done in this buffer */ +EXTERN char_u *NameBuff; /* file names are expanded in this + * buffer */ +EXTERN char_u msg_buf[MSG_BUF_LEN]; /* small buffer for messages */ + +EXTERN int RedrawingDisabled INIT(= FALSE); + /* Set to TRUE if doing :g */ + +EXTERN int readonlymode INIT(= FALSE); /* Set to TRUE for "view" */ +EXTERN int recoverymode INIT(= FALSE); /* Set to TRUE for "-r" option */ + +EXTERN char_u *typebuf INIT(= NULL); /* buffer for typed characters */ +EXTERN int typebuflen; /* size of typebuf */ +EXTERN int typeoff; /* current position in typebuf */ +EXTERN int typelen; /* number of valid chars in typebuf */ +EXTERN int KeyTyped; /* TRUE if user typed current char */ +EXTERN int KeyStuffed; /* TRUE if current char from stuffbuf */ + +EXTERN int must_redraw INIT(= 0); /* type of redraw necessary */ +EXTERN int skip_redraw INIT(= FALSE); /* skip redraw once */ +EXTERN int do_redraw INIT(= FALSE); /* extra redraw once */ + +EXTERN char_u *use_viminfo INIT(= NULL); /* name of viminfo file to use */ + +#define NSCRIPT 15 +EXTERN FILE *scriptin[NSCRIPT]; /* streams to read script from */ +EXTERN int curscript INIT(= 0); /* index in scriptin[] */ +EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */ + +EXTERN int got_int INIT(= FALSE); /* set to TRUE when interrupt + signal occurred */ +EXTERN int term_console INIT(= FALSE); /* set to TRUE when consule used */ +EXTERN int termcap_active INIT(= FALSE); /* set by starttermcap() */ +EXTERN int bangredo INIT(= FALSE); /* set to TRUE whith ! command */ +EXTERN int searchcmdlen; /* length of previous search cmd */ +EXTERN int reg_ic INIT(= 0); /* p_ic passed to vim_regexec() */ +EXTERN int reg_magic; /* p_magic passed to ergexec() */ + +EXTERN int did_outofmem_msg INIT(= FALSE); + /* set after out of memory msg */ +EXTERN int did_swapwrite_msg INIT(= FALSE); + /* set after swap write error msg */ +EXTERN int undo_off INIT(= FALSE); /* undo switched off for now */ +EXTERN int global_busy INIT(= 0); /* set when :global is executing */ +#ifdef SLEEP_IN_EMSG +EXTERN int dont_sleep INIT(= FALSE); /* set when sleep() in emsg() not + wanted */ +#endif +EXTERN int need_start_insertmode INIT(= FALSE); + /* start insert mode soon */ +EXTERN int rc_did_emsg INIT(= FALSE); /* vim_regcomp() called emsg() */ +EXTERN int no_wait_return INIT(= 0); /* don't wait for return now */ +EXTERN int need_wait_return INIT(= 0); /* need to wait for return later */ +EXTERN int dont_wait_return INIT(= 0); /* no need to wait for return */ +EXTERN int quit_more INIT(= FALSE); /* 'q' hit at "--more--" msg */ +EXTERN char_u *last_cmdline INIT(= NULL); /* last command line (for ":) */ +EXTERN char_u *new_last_cmdline INIT(= NULL); /* new value for last_cmdline */ +EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for "^Vf" on cmdline */ + +EXTERN int postponed_split INIT(= FALSE); /* for CTRL-W CTRL-] command */ +EXTERN int replace_offset INIT(= 0); /* offset for replace_push() */ + +EXTERN char_u *escape_chars INIT(= (char_u *)" \t\\\"|"); + /* need backslash in cmd line */ + +EXTERN char_u *help_save_isk INIT(= NULL);/* 'isk' saved by do_help() */ +EXTERN long help_save_ts INIT(= 0); /* 'ts' saved by do_help() */ +EXTERN int keep_help_flag INIT(= FALSE); /* doing :ta from help file */ + +/* + * When a string option is NULL (which only happens in out-of-memory + * situations), it is set to empty_option, to avoid having to check for NULL + * everywhere. + */ +EXTERN char_u *empty_option INIT(= (char_u *)""); + +#ifdef DEBUG +EXTERN FILE *debugfp INIT(=NULL); +#endif + +#ifdef HAVE_LANGMAP +EXTERN char_u langmap_mapchar[256]; /* mapping for language keys */ +#endif + +EXTERN char breakat_flags[256]; /* which characters are in 'breakat' */ + +extern char *Version; /* this is in version.c */ +extern char *longVersion; /* this is in version.c */ + +/* + * Some file names for Unix are stored in pathdef.c, to make their value + * depend on the Makefile. + */ +#if defined(HAVE_CONFIG_H) || defined(OS2) +extern char_u *sys_vimrc_fname; /* this is in pathdef.c */ +extern char_u *sys_compatrc_fname; /* this is in pathdef.c */ +extern char_u *sys_gvimrc_fname; /* this is in pathdef.c */ +extern char_u *help_fname; /* this is in pathdef.c */ +extern char_u *all_cflags; /* this is in pathdef.c */ +#endif + +EXTERN char_u no_lines_msg[] INIT(="--No lines in buffer--"); + +/* + * The error messages that can be shared are included here. + * Excluded are very specific errors and debugging messages. + */ +EXTERN char_u e_abbr[] INIT(="No such abbreviation"); +EXTERN char_u e_abort[] INIT(="Command aborted"); +EXTERN char_u e_ambmap[] INIT(="Ambiguous mapping"); +EXTERN char_u e_argreq[] INIT(="Argument required"); +EXTERN char_u e_backslash[] INIT(="\\ should be followed by /, ? or &"); +EXTERN char_u e_curdir[] INIT(="Command not allowed from from .exrc/.vimrc in current dir"); +EXTERN char_u e_errorf[] INIT(="No errorfile name"); +EXTERN char_u e_exists[] INIT(="File exists (use ! to override)"); +EXTERN char_u e_failed[] INIT(="Command failed"); +EXTERN char_u e_internal[] INIT(="Internal error"); +EXTERN char_u e_interr[] INIT(="Interrupted"); +EXTERN char_u e_invaddr[] INIT(="Invalid address"); +EXTERN char_u e_invarg[] INIT(="Invalid argument"); +EXTERN char_u e_invrange[] INIT(="Invalid range"); +EXTERN char_u e_invcmd[] INIT(="Invalid command"); +EXTERN char_u e_markinval[] INIT(="Mark has invalid line number"); +EXTERN char_u e_marknotset[] INIT(="Mark not set"); +EXTERN char_u e_nesting[] INIT(="Scripts nested too deep"); +EXTERN char_u e_noalt[] INIT(="No alternate file"); +EXTERN char_u e_nobang[] INIT(="No ! allowed"); +EXTERN char_u e_nogvim[] INIT(="GUI cannot be used: Not enabled at compile time\n"); +EXTERN char_u e_nohebrew[] INIT(="Hebrew cannot be used: Not enabled at compile time\n"); +EXTERN char_u e_noinstext[] INIT(="No inserted text yet"); +EXTERN char_u e_nolastcmd[] INIT(="No previous command line"); +EXTERN char_u e_nomap[] INIT(="No such mapping"); +EXTERN char_u e_nomatch[] INIT(="No match"); +EXTERN char_u e_nomore[] INIT(="No more files to edit"); +EXTERN char_u e_noname[] INIT(="No file name"); +EXTERN char_u e_nopresub[] INIT(="No previous substitute regular expression"); +EXTERN char_u e_noprev[] INIT(="No previous command"); +EXTERN char_u e_noprevre[] INIT(="No previous regular expression"); +EXTERN char_u e_norange[] INIT(="No range allowed"); +EXTERN char_u e_noroom[] INIT(="Not enough room"); +EXTERN char_u e_notcreate[] INIT(="Can't create file %s"); +EXTERN char_u e_notmp[] INIT(="Can't get temp file name"); +EXTERN char_u e_notopen[] INIT(="Can't open file %s"); +EXTERN char_u e_notread[] INIT(="Can't read file %s"); +EXTERN char_u e_nowrtmsg[] INIT(="No write since last change (use ! to override)"); +EXTERN char_u e_null[] INIT(="Null argument"); +EXTERN char_u e_number[] INIT(="Number expected"); +EXTERN char_u e_openerrf[] INIT(="Can't open errorfile %s"); +EXTERN char_u e_outofmem[] INIT(="Out of memory!"); +EXTERN char_u e_patnotf[] INIT(="Pattern not found"); +EXTERN char_u e_positive[] INIT(="Argument must be positive"); +EXTERN char_u e_quickfix[] INIT(="No Errors"); +EXTERN char_u e_re_damg[] INIT(="Damaged match string"); +EXTERN char_u e_re_corr[] INIT(="Corrupted regexp program"); +EXTERN char_u e_readonly[] INIT(="'readonly' option is set (use ! to override)"); +EXTERN char_u e_readerrf[] INIT(="Error while reading errorfile"); +EXTERN char_u e_scroll[] INIT(="Invalid scroll size"); +EXTERN char_u e_toocompl[] INIT(="Command too complex"); +EXTERN char_u e_toombra[] INIT(="Too many ("); +EXTERN char_u e_toomket[] INIT(="Too many )"); +EXTERN char_u e_toomsbra[] INIT(="Too many ["); +EXTERN char_u e_toolong[] INIT(="Command too long"); +EXTERN char_u e_toomany[] INIT(="Too many file names"); +EXTERN char_u e_trailing[] INIT(="Trailing characters"); +EXTERN char_u e_umark[] INIT(="Unknown mark"); +EXTERN char_u e_unknown[] INIT(="Unknown"); +EXTERN char_u e_write[] INIT(="Error while writing"); +EXTERN char_u e_zerocount[] INIT(="Zero count"); |