0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

updated for version 7.0044

This commit is contained in:
Bram Moolenaar
2005-01-25 22:12:55 +00:00
parent df3267e4e1
commit 8f999f1999
9 changed files with 186 additions and 62 deletions

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.0aa. Last change: 2005 Jan 20 *eval.txt* For Vim version 7.0aa. Last change: 2005 Jan 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -992,6 +992,12 @@ specified by what is prepended:
|function-argument| a: Function argument (only inside a function). |function-argument| a: Function argument (only inside a function).
|vim-variable| v: Global, predefined by Vim. |vim-variable| v: Global, predefined by Vim.
The scope name by itself can be used as a Dictionary. For example, to delete
all script-local variables: >
:for k in keys(s:)
: unlet s:[k]
:endfor
<
*buffer-variable* *b:var* *buffer-variable* *b:var*
A variable name that is preceded with "b:" is local to the current buffer. A variable name that is preceded with "b:" is local to the current buffer.
Thus you can have several "b:foo" variables, one for each buffer. Thus you can have several "b:foo" variables, one for each buffer.
@@ -1507,7 +1513,8 @@ simplify( {filename}) String simplify filename as much as possible
sort( {list} [, {func}]) List sort {list}, using {func} to compare sort( {list} [, {func}]) List sort {list}, using {func} to compare
split( {expr} [, {pat}]) List make List from {pat} separated {expr} split( {expr} [, {pat}]) List make List from {pat} separated {expr}
strftime( {format}[, {time}]) String time in specified format strftime( {format}[, {time}]) String time in specified format
stridx( {haystack}, {needle}) Number first index of {needle} in {haystack} stridx( {haystack}, {needle}[, {start}])
Number index of {needle} in {haystack}
string( {expr}) String String representation of {expr} value string( {expr}) String String representation of {expr} value
strlen( {expr}) Number length of the String {expr} strlen( {expr}) Number length of the String {expr}
strpart( {src}, {start}[, {len}]) strpart( {src}, {start}[, {len}])
@@ -3507,12 +3514,14 @@ strftime({format} [, {time}]) *strftime()*
< Not available on all systems. To check use: > < Not available on all systems. To check use: >
:if exists("*strftime") :if exists("*strftime")
stridx({haystack}, {needle}) *stridx()* stridx({haystack}, {needle} [, {start}]) *stridx()*
The result is a Number, which gives the index in {haystack} of The result is a Number, which gives the byte index in
the first occurrence of the String {needle} in the String {haystack} of the first occurrence of the String {needle}.
{haystack}. The search is done case-sensitive. For advanced If {start} is specified, the String {needle} is searched from
searches use |match()|. the byte index {start} in the String {haystack}.
If the {needle} does not occur in {haystack} it returns -1. The search is done case-sensitive.
For pattern searches use |match()|.
-1 is returned if the {needle} does not occur in {haystack}.
See also |strridx()|. Examples: > See also |strridx()|. Examples: >
:echo stridx("An Example", "Example") 3 :echo stridx("An Example", "Example") 3
:echo stridx("Starting point", "Start") 0 :echo stridx("Starting point", "Start") 0
@@ -3558,10 +3567,10 @@ strpart({src}, {start}[, {len}]) *strpart()*
< <
strridx({haystack}, {needle}) *strridx()* strridx({haystack}, {needle}) *strridx()*
The result is a Number, which gives the index in {haystack} of The result is a Number, which gives the index in {haystack} of
the last occurrence of the String {needle} in the String the last occurrence of the String {needle}.
{haystack}. The search is done case-sensitive. For advanced The search is done case-sensitive.
searches use |match()|. For pattern searches use |match()|.
If the {needle} does not occur in {haystack} it returns -1. -1 is returned if the {needle} does not occur in {haystack}.
If the {needle} is empty the length of {haystack} is returned. If the {needle} is empty the length of {haystack} is returned.
See also |stridx()|. Examples: > See also |stridx()|. Examples: >
:echo strridx("an angry armadillo", "an") 3 :echo strridx("an angry armadillo", "an") 3
@@ -4069,30 +4078,14 @@ instead of "s:" when the mapping is expanded outside of the script.
result is a |Funcref| to a numbered function. The result is a |Funcref| to a numbered function. The
function can only be used with a |Funcref| and will be function can only be used with a |Funcref| and will be
deleted if there are no more references to it. deleted if there are no more references to it.
*function-argument* *a:var*
An argument can be defined by giving its name. In the
function this can then be used as "a:name" ("a:" for
argument).
Up to 20 arguments can be given, separated by commas.
Finally, an argument "..." can be specified, which
means that more arguments may be following. In the
function they can be used as "a:1", "a:2", etc. "a:0"
is set to the number of extra arguments (which can be
0).
When not using "...", the number of arguments in a
function call must be equal to the number of named
arguments. When using "...", the number of arguments
may be larger.
It is also possible to define a function without any
arguments. You must still supply the () then.
The body of the function follows in the next lines,
until the matching |:endfunction|. It is allowed to
define another function inside a function body.
*E127* *E122* *E127* *E122*
When a function by this name already exists and [!] is When a function by this name already exists and [!] is
not used an error message is given. When [!] is used, not used an error message is given. When [!] is used,
an existing function is silently replaced. Unless it an existing function is silently replaced. Unless it
is currently being executed, that is an error. is currently being executed, that is an error.
For the {arguments} see |function-argument|.
*a:firstline* *a:lastline* *a:firstline* *a:lastline*
When the [range] argument is added, the function is When the [range] argument is added, the function is
expected to take care of a range itself. The range is expected to take care of a range itself. The range is
@@ -4139,7 +4132,26 @@ instead of "s:" when the mapping is expanded outside of the script.
nested ":try"s inside the function. The function nested ":try"s inside the function. The function
returns at the outermost ":endtry". returns at the outermost ":endtry".
*function-argument* *a:var*
An argument can be defined by giving its name. In the function this can then
be used as "a:name" ("a:" for argument).
*a:0* *a:1* *a:000* *E740*
Up to 20 arguments can be given, separated by commas. After the named
arguments an argument "..." can be specified, which means that more arguments
may optionally be following. In the function the extra arguments can be used
as "a:1", "a:2", etc. "a:0" is set to the number of extra arguments (which
can be 0). "a:000" is set to a List that contains these arguments.
When not using "...", the number of arguments in a function call must be equal
to the number of named arguments. When using "...", the number of arguments
may be larger.
It is also possible to define a function without any arguments. You must
still supply the () then. The body of the function follows in the next lines,
until the matching |:endfunction|. It is allowed to define another function
inside a function body.
*local-variables*
Inside a function variables can be used. These are local variables, which Inside a function variables can be used. These are local variables, which
will disappear when the function returns. Global variables need to be will disappear when the function returns. Global variables need to be
accessed with "g:". accessed with "g:".

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.0aa. Last change: 2004 Dec 18 *pattern.txt* For Vim version 7.0aa. Last change: 2005 Jan 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -217,7 +217,7 @@ To clear the last used search pattern: >
This will not set the pattern to an empty string, because that would match This will not set the pattern to an empty string, because that would match
everywhere. The pattern is really cleared, like when starting Vim. everywhere. The pattern is really cleared, like when starting Vim.
The search usual skips matches that don't move the cursor. Whether the next The search usually skips matches that don't move the cursor. Whether the next
match is found at the next character or after the skipped match depends on the match is found at the next character or after the skipped match depends on the
'c' flag in 'cpoptions'. See |cpo-c|. 'c' flag in 'cpoptions'. See |cpo-c|.
with 'c' flag: "/..." advances 1 to 3 characters with 'c' flag: "/..." advances 1 to 3 characters
@@ -225,6 +225,10 @@ match is found at the next character or after the skipped match depends on the
The unpredictability with the 'c' flag is caused by starting the search in the The unpredictability with the 'c' flag is caused by starting the search in the
first column, skipping matches until one is found past the cursor position. first column, skipping matches until one is found past the cursor position.
When searching backwards, searching starts at the start of the line, using the
'c' flag in 'cpoptions' as described above. Then the last match before the
cursor position is used.
In Vi the ":tag" command sets the last search pattern when the tag is searched In Vi the ":tag" command sets the last search pattern when the tag is searched
for. In Vim this is not done, the previous search pattern is still remembered, for. In Vim this is not done, the previous search pattern is still remembered,
unless the 't' flag is present in 'cpoptions'. The search pattern is always unless the 't' flag is present in 'cpoptions'. The search pattern is always

View File

@@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.0aa. Last change: 2005 Jan 20 *starting.txt* For Vim version 7.0aa. Last change: 2005 Jan 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1193,7 +1193,7 @@ This saves the current Session, and starts off the command to load another.
When [file] is omitted or is a number from 1 to 9, a When [file] is omitted or is a number from 1 to 9, a
name is generated and 'viewdir' prepended. When last name is generated and 'viewdir' prepended. When last
directory name in 'viewdir' does not exist, this directory name in 'viewdir' does not exist, this
directory is created. *E738* directory is created. *E739*
An existing file is always overwritten then. Use An existing file is always overwritten then. Use
|:loadview| to load this view again. |:loadview| to load this view again.
When [file] is the name of a file ('viewdir' is not When [file] is the name of a file ('viewdir' is not

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Dec 31 " Last Change: 2005 Jan 24
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")
@@ -595,8 +595,8 @@ au BufNewFile,BufRead *.hex,*.h32 setf hex
" Tilde (must be before HTML) " Tilde (must be before HTML)
au BufNewFile,BufRead *.t.html setf tilde au BufNewFile,BufRead *.t.html setf tilde
" HTML (.shtml and .stm for server side) " HTML (.shtml and .stm for server side, .rhtml for Ruby html)
au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call <SID>FTCheck_html() au BufNewFile,BufRead *.html,*.htm,*.shtml,*.rhtml,*.stm call <SID>FTCheck_html()
" Distinguish between HTML and XHTML " Distinguish between HTML and XHTML
fun! <SID>FTCheck_html() fun! <SID>FTCheck_html()

View File

@@ -3383,7 +3383,7 @@ ins_complete(c)
temp = complete_col - temp; temp = complete_col - temp;
} }
if (p_ic) if (p_ic)
complete_pat = str_foldcase(tmp_ptr, temp); complete_pat = str_foldcase(tmp_ptr, temp, NULL, 0);
else else
complete_pat = vim_strnsave(tmp_ptr, temp); complete_pat = vim_strnsave(tmp_ptr, temp);
if (complete_pat == NULL) if (complete_pat == NULL)
@@ -3482,7 +3482,7 @@ ins_complete(c)
if (temp < 0) /* cursor in indent: empty pattern */ if (temp < 0) /* cursor in indent: empty pattern */
temp = 0; temp = 0;
if (p_ic) if (p_ic)
complete_pat = str_foldcase(tmp_ptr, temp); complete_pat = str_foldcase(tmp_ptr, temp, NULL, 0);
else else
complete_pat = vim_strnsave(tmp_ptr, temp); complete_pat = vim_strnsave(tmp_ptr, temp);
if (complete_pat == NULL) if (complete_pat == NULL)
@@ -6111,15 +6111,15 @@ ins_reg()
++no_u_sync; ++no_u_sync;
if (regname == '=') if (regname == '=')
{ {
#ifdef USE_IM_CONTROL # ifdef USE_IM_CONTROL
int im_on = im_get_status(); int im_on = im_get_status();
#endif # endif
regname = get_expr_register(); regname = get_expr_register();
#ifdef USE_IM_CONTROL # ifdef USE_IM_CONTROL
/* Restore the Input Method. */ /* Restore the Input Method. */
if (im_on) if (im_on)
im_set_active(TRUE); im_set_active(TRUE);
#endif # endif
} }
if (regname == NUL) if (regname == NUL)
need_redraw = TRUE; /* remove the '"' */ need_redraw = TRUE; /* remove the '"' */
@@ -6141,6 +6141,12 @@ ins_reg()
vim_beep(); vim_beep();
need_redraw = TRUE; /* remove the '"' */ need_redraw = TRUE; /* remove the '"' */
} }
else if (stop_insert_mode)
/* When the '=' register was used and a function was invoked that
* did ":stopinsert" then stuff_empty() returns FALSE but we won't
* insert anything, need to remove the '"' */
need_redraw = TRUE;
#ifdef FEAT_EVAL #ifdef FEAT_EVAL
} }
--no_u_sync; --no_u_sync;

View File

@@ -867,7 +867,8 @@ gui_gtk_set_mnemonics(int enable)
gtk_label_set_text_with_mnemonic(GTK_LABEL(menu->label), gtk_label_set_text_with_mnemonic(GTK_LABEL(menu->label),
(const char *)name); (const char *)name);
vim_free(name); vim_free(name);
# elif defined(GTK_USE_ACCEL) # else
# if defined(GTK_USE_ACCEL)
name = translate_mnemonic_tag(menu->name, TRUE); name = translate_mnemonic_tag(menu->name, TRUE);
if (name != NULL) if (name != NULL)
{ {
@@ -889,6 +890,7 @@ gui_gtk_set_mnemonics(int enable)
gtk_label_parse_uline(GTK_LABEL(menu->label), (const char *)name); gtk_label_parse_uline(GTK_LABEL(menu->label), (const char *)name);
vim_free(name); vim_free(name);
} }
# endif
# endif # endif
} }
} }
@@ -1880,7 +1882,7 @@ gui_mch_dialog( int type, /* type of dialog */
"clicked", "clicked",
accel_group, accel_group,
accel_key, 0, accel_key, 0,
0); (GtkAccelFlags)0);
} }
# else # else
(void)gtk_label_parse_uline(GTK_LABEL(label), (const gchar *)p); (void)gtk_label_parse_uline(GTK_LABEL(label), (const gchar *)p);

View File

@@ -5245,7 +5245,8 @@ did_set_string_option(opt_idx, varp, new_value_alloced, oldval, errbuf,
{ {
if (errbuf != NULL) if (errbuf != NULL)
{ {
sprintf((char *)errbuf, _("E526: Missing number after <%s>"), sprintf((char *)errbuf,
_("E526: Missing number after <%s>"),
transchar_byte(*(s - 1))); transchar_byte(*(s - 1)));
errmsg = errbuf; errmsg = errbuf;
} }
@@ -9382,7 +9383,7 @@ compatible_set()
# if defined(__BORLANDC__) && (__BORLANDC__ < 0x500) # if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
/* Borland C++ screws up loop optimisation here (negri) */ /* Borland C++ screws up loop optimisation here (negri) */
# pragma option -O-l #pragma option -O-l
# endif # endif
/* /*
@@ -9403,7 +9404,7 @@ fill_breakat_flags()
} }
# if defined(__BORLANDC__) && (__BORLANDC__ < 0x500) # if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
# pragma option -O.l #pragma option -O.l
# endif # endif
#endif #endif

View File

@@ -28,10 +28,10 @@
# define DFLT_EFM "%f>%l:%c:%t:%n:%m,%f:%l: %t%*\\D%n: %m,%f %l %t%*\\D%n: %m,%*[^\"]\"%f\"%*\\D%l: %m,%f:%l:%m,%f|%l| %m" # define DFLT_EFM "%f>%l:%c:%t:%n:%m,%f:%l: %t%*\\D%n: %m,%f %l %t%*\\D%n: %m,%*[^\"]\"%f\"%*\\D%l: %m,%f:%l:%m,%f|%l| %m"
#else #else
# if defined(MSDOS) || defined(WIN3264) # if defined(MSDOS) || defined(WIN3264)
# define DFLT_EFM "%f(%l) : %t%*\\D%n: %m,%*[^\"]\"%f\"%*\\D%l: %m,%f(%l) : %m,%*[^ ] %f %l: %m,%f:%l:%m,%f|%l| %m" # define DFLT_EFM "%f(%l) : %t%*\\D%n: %m,%*[^\"]\"%f\"%*\\D%l: %m,%f(%l) : %m,%*[^ ] %f %l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,%f|%l| %m"
# else # else
# if defined(__EMX__) /* put most common here (i.e. gcc format) at front */ # if defined(__EMX__) /* put most common here (i.e. gcc format) at front */
# define DFLT_EFM "%f:%l:%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f(%l:%c) : %m,%f|%l| %m" # define DFLT_EFM "%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f(%l:%c) : %m,%f|%l| %m"
# else # else
# if defined(__QNX__) # if defined(__QNX__)
# define DFLT_EFM "%f(%l):%*[^WE]%t%*\\D%n:%m,%f|%l| %m" # define DFLT_EFM "%f(%l):%*[^WE]%t%*\\D%n:%m,%f|%l| %m"
@@ -40,9 +40,9 @@
# define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m" # define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m"
# else /* Unix, probably */ # else /* Unix, probably */
# ifdef EBCDIC # ifdef EBCDIC
#define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m" #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%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',%DMaking %*\\a in %f,%f|%l| %m"
# else # else
#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.),%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m" #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.),%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',%DMaking %*\\a in %f,%f|%l| %m"
# endif # endif
# endif # endif
# endif # endif

View File

@@ -712,7 +712,7 @@ typedef struct keyentry keyentry_T;
struct keyentry struct keyentry
{ {
keyentry_T *next; /* next keyword in the hash list */ keyentry_T *ke_next; /* next entry with identical "keyword[]" */
struct sp_syn k_syn; /* struct passed to in_id_list() */ struct sp_syn k_syn; /* struct passed to in_id_list() */
short *next_list; /* ID list for next match (if non-zero) */ short *next_list; /* ID list for next match (if non-zero) */
short flags; /* see syntax.c */ short flags; /* see syntax.c */
@@ -921,7 +921,7 @@ typedef struct hashitem_S
{ {
long_u hi_hash; /* cached hash number of hi_key */ long_u hi_hash; /* cached hash number of hi_key */
char_u *hi_key; char_u *hi_key;
} hashitem; } hashitem_T;
/* The address of "hash_removed" is used as a magic number for hi_key to /* The address of "hash_removed" is used as a magic number for hi_key to
* indicate a removed item. */ * indicate a removed item. */
@@ -941,10 +941,107 @@ typedef struct hashtable_S
int ht_locked; /* counter for hash_lock() */ int ht_locked; /* counter for hash_lock() */
int ht_error; /* when set growing failed, can't add more int ht_error; /* when set growing failed, can't add more
items before growing works */ items before growing works */
hashitem *ht_array; /* points to the array, allocated when it's hashitem_T *ht_array; /* points to the array, allocated when it's
not "ht_smallarray" */ not "ht_smallarray" */
hashitem ht_smallarray[HT_INIT_SIZE]; /* initial array */ hashitem_T ht_smallarray[HT_INIT_SIZE]; /* initial array */
} hashtable; } hashtab_T;
typedef long_u hash_T; /* Type for hi_hash */
#if SIZEOF_INT <= 3 /* use long if int is smaller than 32 bits */
typedef long varnumber_T;
#else
typedef int varnumber_T;
#endif
typedef struct listvar_S list_T;
typedef struct dictvar_S dict_T;
/*
* Structure to hold an internal variable without a name.
*/
typedef struct
{
char v_type; /* see below: VAR_NUMBER, VAR_STRING, etc. */
union
{
varnumber_T v_number; /* number value */
char_u *v_string; /* string value (can be NULL!) */
list_T *v_list; /* list value (can be NULL!) */
dict_T *v_dict; /* dict value (can be NULL!) */
} vval;
} typval_T;
/* Values for "v_type". */
#define VAR_UNKNOWN 0
#define VAR_NUMBER 1 /* "v_number" is used */
#define VAR_STRING 2 /* "v_string" is used */
#define VAR_FUNC 3 /* "v_string" is function name */
#define VAR_LIST 4 /* "v_list" is used */
#define VAR_DICT 5 /* "v_dict" is used */
/*
* Structure to hold an item of a list: an internal variable without a name.
*/
typedef struct listitem_S listitem_T;
struct listitem_S
{
listitem_T *li_next; /* next item in list */
listitem_T *li_prev; /* previous item in list */
typval_T li_tv; /* type and value of the variable */
};
/*
* Struct used by those that are using an item in a list.
*/
typedef struct listwatch_S listwatch_T;
struct listwatch_S
{
listitem_T *lw_item; /* item being watched */
listwatch_T *lw_next; /* next watcher */
};
/*
* Structure to hold info about a list.
*/
struct listvar_S
{
int lv_refcount; /* reference count */
listitem_T *lv_first; /* first item, NULL if none */
listitem_T *lv_last; /* last item, NULL if none */
listwatch_T *lv_watch; /* first watcher, NULL if none */
};
/*
* Structure to hold an item of a Dictionary.
* Also used for a variable.
* The key is copied into "di_key" to avoid an extra alloc/free for it.
*/
struct dictitem_S
{
typval_T di_tv; /* type and value of the variable */
char_u di_flags; /* flags (only used for variable) */
char_u di_key[1]; /* key (actually longer!) */
};
typedef struct dictitem_S dictitem_T;
#define DI_FLAGS_RO 1 /* "di_flags" value: read-only variable */
#define DI_FLAGS_RO_SBX 2 /* "di_flags" value: read-only in the sandbox */
#define DI_FLAGS_FIX 4 /* "di_flags" value: fixed variable, not allocated */
/*
* Structure to hold info about a Dictionary.
*/
struct dictvar_S
{
int dv_refcount; /* reference count */
hashtab_T dv_hashtab; /* hashtab that refers to the items */
};
/* /*
* buffer: structure that holds information about one file * buffer: structure that holds information about one file
@@ -1259,7 +1356,8 @@ struct file_buffer
#endif #endif
#ifdef FEAT_EVAL #ifdef FEAT_EVAL
hashtable b_vars; /* internal variables, local to buffer */ dictitem_T b_bufvar; /* variable for "b:" Dictionary */
dict_T b_vars; /* internal variables, local to buffer */
#endif #endif
/* When a buffer is created, it starts without a swap file. b_may_swap is /* When a buffer is created, it starts without a swap file. b_may_swap is
@@ -1297,8 +1395,8 @@ struct file_buffer
#endif #endif
#ifdef FEAT_SYN_HL #ifdef FEAT_SYN_HL
keyentry_T **b_keywtab; /* syntax keywords hash table */ hashtab_T b_keywtab; /* syntax keywords hash table */
keyentry_T **b_keywtab_ic; /* idem, ignore case */ hashtab_T b_keywtab_ic; /* idem, ignore case */
int b_syn_ic; /* ignore case for :syn cmds */ int b_syn_ic; /* ignore case for :syn cmds */
garray_T b_syn_patterns; /* table for syntax patterns */ garray_T b_syn_patterns; /* table for syntax patterns */
garray_T b_syn_clusters; /* table for syntax clusters */ garray_T b_syn_clusters; /* table for syntax clusters */
@@ -1603,7 +1701,8 @@ struct window
#endif #endif
#ifdef FEAT_EVAL #ifdef FEAT_EVAL
hashtable w_vars; /* internal variables, local to window */ dictitem_T w_winvar; /* variable for "w:" Dictionary */
dict_T w_vars; /* internal variables, local to window */
#endif #endif
#if defined(FEAT_RIGHTLEFT) && defined(FEAT_FKMAP) #if defined(FEAT_RIGHTLEFT) && defined(FEAT_FKMAP)