1
0
forked from aniani/vim

updated for version 7.0118

This commit is contained in:
Bram Moolenaar
2005-07-28 22:36:45 +00:00
parent cfc7d63267
commit 661b182095
20 changed files with 142 additions and 57 deletions

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.0aa. Last change: 2005 Jul 25 *eval.txt* For Vim version 7.0aa. Last change: 2005 Jul 28
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2416,29 +2416,24 @@ get({dict}, {key} [, {default}])
*getbufline()* *getbufline()*
getbufline({expr}, {lnum} [, {end}]) getbufline({expr}, {lnum} [, {end}])
Return the lines starting from {lnum} to {end} in the buffer Return a List with the lines starting from {lnum} to {end}
{expr} as a List. If {end} is omitted, only the line {lnum} (inclusive) in the buffer {expr}. If {end} is omitted, a List
is returned. with only the line {lnum} is returned.
For the use of {expr}, see |bufname()| above. For the use of {expr}, see |bufname()| above.
When {lnum} is a String that doesn't start with a For {lnum} and {end} "$" can be used for the last line of the
digit, line() is called to translate the String into a Number. buffer. Otherwise a number must be used.
{end} is used in the same way as {lnum}.
When {lnum} is smaller than 1 or bigger than the number of When {lnum} is smaller than 1 or bigger than the number of
lines in the buffer, an empty List is returned. lines in the buffer, an empty List is returned.
When {end} is greater than the number of lines in the buffer, When {end} is greater than the number of lines in the buffer,
it is treated as {end} is set to the number of lines in the it is treated as {end} is set to the number of lines in the
buffer. buffer. When {end} is before {lnum} an empty List is
When non-existing line ranges are specified, an empty List is
returned. When {end} is before {lnum} an empty List is
returned. returned.
This function works only for loaded buffers. For unloaded and This function works only for loaded buffers. For unloaded and
non-existing buffers, an empty List is returned. non-existing buffers, an empty List is returned.
Example: > Example: >

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.0aa. Last change: 2005 Jul 26 *options.txt* For Vim version 7.0aa. Last change: 2005 Jul 28
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2282,9 +2282,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|viminfo-file|. And Vim expects the terminal to use utf-8 too. Thus |viminfo-file|. And Vim expects the terminal to use utf-8 too. Thus
setting 'encoding' to one of these values instead of utf-8 only has setting 'encoding' to one of these values instead of utf-8 only has
effect for encoding used for files when 'fileencoding' is empty. effect for encoding used for files when 'fileencoding' is empty.
"utf-16" is NOT supported (and probably never will be, since it's such
an ugly encoding). *utf-16*
When 'encoding' is set to a Unicode encoding, and 'fileencodings' was When 'encoding' is set to a Unicode encoding, and 'fileencodings' was
not set yet, the default for 'fileencodings' is changed. not set yet, the default for 'fileencodings' is changed.
*'endofline'* *'eol'* *'noendofline'* *'noeol'* *'endofline'* *'eol'* *'noendofline'* *'noeol'*
'endofline' 'eol' boolean (default on) 'endofline' 'eol' boolean (default on)

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.0aa. Last change: 2005 Jul 18 *syntax.txt* For Vim version 7.0aa. Last change: 2005 Jul 28
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3641,6 +3641,15 @@ specified field is used, and settings are merged with previous ones. So, the
result is like this single command has been used: > result is like this single command has been used: >
:hi Comment term=bold ctermfg=Cyan guifg=#80a0ff gui=bold :hi Comment term=bold ctermfg=Cyan guifg=#80a0ff gui=bold
< <
When listing a highlight group and 'verbose' is non-zero, the listing will
also tell where it was last set. Example: >
:verbose hi Comment
< Comment xxx term=bold ctermfg=4 guifg=Blue ~
Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim ~
For details about when this message is given and when it's valid see
|:set-verbose|.
*highlight-args* *E416* *E417* *E423* *highlight-args* *E416* *E417* *E423*
There are three types of terminals for highlighting: There are three types of terminals for highlighting:
term a normal terminal (vt100, xterm) term a normal terminal (vt100, xterm)

View File

@@ -4984,6 +4984,7 @@ g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw_rmdir_cmd*
g:netrw_rmf_cmd pi_netrw.txt /*g:netrw_rmf_cmd* g:netrw_rmf_cmd pi_netrw.txt /*g:netrw_rmf_cmd*
g:var eval.txt /*g:var* g:var eval.txt /*g:var*
g; motion.txt /*g;* g; motion.txt /*g;*
g< message.txt /*g<*
g<Down> motion.txt /*g<Down>* g<Down> motion.txt /*g<Down>*
g<End> motion.txt /*g<End>* g<End> motion.txt /*g<End>*
g<Home> motion.txt /*g<Home>* g<Home> motion.txt /*g<Home>*
@@ -6746,6 +6747,7 @@ usr_44.txt usr_44.txt /*usr_44.txt*
usr_45.txt usr_45.txt /*usr_45.txt* usr_45.txt usr_45.txt /*usr_45.txt*
usr_90.txt usr_90.txt /*usr_90.txt* usr_90.txt usr_90.txt /*usr_90.txt*
usr_toc.txt usr_toc.txt /*usr_toc.txt* usr_toc.txt usr_toc.txt /*usr_toc.txt*
utf-16 options.txt /*utf-16*
utf-8 mbyte.txt /*utf-8* utf-8 mbyte.txt /*utf-8*
utf-8-char-arg mbyte.txt /*utf-8-char-arg* utf-8-char-arg mbyte.txt /*utf-8-char-arg*
utf-8-in-xwindows mbyte.txt /*utf-8-in-xwindows* utf-8-in-xwindows mbyte.txt /*utf-8-in-xwindows*

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jul 27 *todo.txt* For Vim version 7.0aa. Last change: 2005 Jul 28
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,6 +30,8 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Is it simple to let ":verbose hi mailSubject" mention where it was last set?
Mac unicode patch (Da Woon Jung): Mac unicode patch (Da Woon Jung):
- selecting proportional font breaks display - selecting proportional font breaks display
- UTF-8 text causes display problems. Font replacement causes this. - UTF-8 text causes display problems. Font replacement causes this.
@@ -52,8 +54,6 @@ Awaiting response:
- Win32: tearoff menu window should have a scrollbar when it's taller than - Win32: tearoff menu window should have a scrollbar when it's taller than
the screen. the screen.
- mblen(NULL, 0) also in Vim 6.3? - mblen(NULL, 0) also in Vim 6.3?
- Win32: Crash when pasting Simplified Chinese in utf-8. (rainux, 2005 June
20)
PLANNED FOR VERSION 7.0: PLANNED FOR VERSION 7.0:

View File

@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jul 27 *version7.txt* For Vim version 7.0aa. Last change: 2005 Jul 28
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -238,6 +238,9 @@ is especially useful for commands such as ":syntax", ":autocommand" and
commands and highlighting is kept. Only works when the 'more' option is set. commands and highlighting is kept. Only works when the 'more' option is set.
Previously it only partly worked for ":clist". Previously it only partly worked for ":clist".
The |g<| command can be used to see the last page of messages after you have
hit <Enter> at the |hit-enter-prompt|. Then you can scroll further back.
POSIX compatibility *new-posix* POSIX compatibility *new-posix*
------------------- -------------------
@@ -724,6 +727,9 @@ Win32: Balloons can have multiple lines if common controls supports it.
The 's' flag is added to the search() and searchpair() function to set the The 's' flag is added to the search() and searchpair() function to set the
' mark if the cursor is moved. (Yegappan Lakshmanan) ' mark if the cursor is moved. (Yegappan Lakshmanan)
When 'verbose' is set the output of ":highlight" will show where a highlight
item was last set.
============================================================================== ==============================================================================
COMPILE TIME CHANGES *compile-changes-7* COMPILE TIME CHANGES *compile-changes-7*

View File

@@ -14,11 +14,11 @@ all: $(SPELLDIR)/de.latin1.spl $(SPELLDIR)/de.utf-8.spl ../README_de.txt
$(SPELLDIR)/de.latin1.spl : $(VIM) $(FILES) $(SPELLDIR)/de.latin1.spl : $(VIM) $(FILES)
:sys env LANG=de_DE.ISO8859-1 :sys env LANG=de_DE.ISO8859-1
$(VIM) -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
$(SPELLDIR)/de.utf-8.spl : $(VIM) $(FILES) $(SPELLDIR)/de.utf-8.spl : $(VIM) $(FILES)
:sys env LANG=de_DE.UTF-8 :sys env LANG=de_DE.UTF-8
$(VIM) -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
../README_de.txt: README_de_DE_comb.txt ../README_de.txt: README_de_DE_comb.txt
:copy $source $target :copy $source $target

View File

@@ -18,16 +18,16 @@ all: $(SPELLDIR)/en.latin1.spl $(SPELLDIR)/en.utf-8.spl \
$(SPELLDIR)/en.latin1.spl : $(VIM) $(FILES) $(SPELLDIR)/en.latin1.spl : $(VIM) $(FILES)
:sys env LANG=en_US.ISO8859-1 :sys env LANG=en_US.ISO8859-1
$(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/en
en_NZ" -c q en_US en_AU en_CA en_GB en_NZ" -c q
$(SPELLDIR)/en.utf-8.spl : $(VIM) $(FILES) $(SPELLDIR)/en.utf-8.spl : $(VIM) $(FILES)
:sys env LANG=en_US.UTF-8 :sys env LANG=en_US.UTF-8
$(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/en
en_NZ" -c q en_US en_AU en_CA en_GB en_NZ" -c q
$(SPELLDIR)/en.ascii.spl : $(VIM) $(FILES) $(SPELLDIR)/en.ascii.spl : $(VIM) $(FILES)
:sys $(VIM) -e -c "mkspell! -ascii $(SPELLDIR)/en :sys $(VIM) -u NONE -e -c "mkspell! -ascii $(SPELLDIR)/en
en_US en_AU en_CA en_GB en_NZ" -c q en_US en_AU en_CA en_GB en_NZ" -c q
../README_en.txt: README_en_US.txt README_en_AU.txt ../README_en.txt: README_en_US.txt README_en_AU.txt

View File

@@ -13,10 +13,10 @@ all: $(SPELLDIR)/he.utf-8.spl $(SPELLDIR)/he.iso-8859-8.spl ../README_he.txt
$(SPELLDIR)/he.utf-8.spl : $(VIM) $(FILES) $(SPELLDIR)/he.utf-8.spl : $(VIM) $(FILES)
:sys env LANG=he_IL.UTF-8 :sys env LANG=he_IL.UTF-8
$(VIM) -e -c "mkspell! $(SPELLDIR)/he he_IL" -c q $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/he he_IL" -c q
$(SPELLDIR)/he.iso-8859-8.spl : $(VIM) $(FILES) $(SPELLDIR)/he.iso-8859-8.spl : $(VIM) $(FILES)
:sys $(VIM) -e -c "set enc=iso-8859-8" :sys $(VIM) -u NONE -e -c "set enc=iso-8859-8"
-c "mkspell! $(SPELLDIR)/he he_IL" -c q -c "mkspell! $(SPELLDIR)/he he_IL" -c q
../README_he.txt : README_he_IL.txt ../README_he.txt : README_he_IL.txt

View File

@@ -13,11 +13,11 @@ all: $(SPELLDIR)/nl.latin1.spl $(SPELLDIR)/nl.utf-8.spl ../README_nl.txt
$(SPELLDIR)/nl.latin1.spl : $(VIM) $(FILES) $(SPELLDIR)/nl.latin1.spl : $(VIM) $(FILES)
:sys env LANG=nl_NL.ISO8859-1 :sys env LANG=nl_NL.ISO8859-1
$(VIM) -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
$(SPELLDIR)/nl.utf-8.spl : $(VIM) $(FILES) $(SPELLDIR)/nl.utf-8.spl : $(VIM) $(FILES)
:sys env LANG=nl_NL.UTF-8 :sys env LANG=nl_NL.UTF-8
$(VIM) -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
../README_nl.txt : README_nl_NL.txt ../README_nl.txt : README_nl_NL.txt
:copy $source $target :copy $source $target

View File

@@ -13,13 +13,13 @@ all: $(SPELLDIR)/pl.iso-8859-2.spl $(SPELLDIR)/pl.utf-8.spl \
$(SPELLDIR)/pl.cp1250.spl ../README_pl.txt $(SPELLDIR)/pl.cp1250.spl ../README_pl.txt
$(SPELLDIR)/pl.iso-8859-2.spl : $(VIM) $(FILES) $(SPELLDIR)/pl.iso-8859-2.spl : $(VIM) $(FILES)
:sys env LANG=pl_PL.ISO8859-2 $(VIM) -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q :sys env LANG=pl_PL.ISO8859-2 $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
$(SPELLDIR)/pl.utf-8.spl : $(VIM) $(FILES) $(SPELLDIR)/pl.utf-8.spl : $(VIM) $(FILES)
:sys env LANG=pl_PL.UTF-8 $(VIM) -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q :sys env LANG=pl_PL.UTF-8 $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
$(SPELLDIR)/pl.cp1250.spl : $(VIM) $(FILES) $(SPELLDIR)/pl.cp1250.spl : $(VIM) $(FILES)
:sys $(VIM) -e -c "set enc=cp1250" -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q :sys $(VIM) -u NONE -e -c "set enc=cp1250" -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
../README_pl.txt: README_pl_PL.txt ../README_pl.txt: README_pl_PL.txt
:copy $source $target :copy $source $target

View File

@@ -643,6 +643,7 @@ static void init_tv __ARGS((typval_T *varp));
static long get_tv_number __ARGS((typval_T *varp)); static long get_tv_number __ARGS((typval_T *varp));
static long get_tv_number_chk __ARGS((typval_T *varp, int *denote)); static long get_tv_number_chk __ARGS((typval_T *varp, int *denote));
static linenr_T get_tv_lnum __ARGS((typval_T *argvars)); static linenr_T get_tv_lnum __ARGS((typval_T *argvars));
static linenr_T get_tv_lnum_buf __ARGS((typval_T *argvars, buf_T *buf));
static char_u *get_tv_string __ARGS((typval_T *varp)); static char_u *get_tv_string __ARGS((typval_T *varp));
static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf)); static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf));
static char_u *get_tv_string_chk __ARGS((typval_T *varp)); static char_u *get_tv_string_chk __ARGS((typval_T *varp));
@@ -9187,11 +9188,12 @@ f_getbufline(argvars, rettv)
buf = get_buf_tv(&argvars[0]); buf = get_buf_tv(&argvars[0]);
--emsg_off; --emsg_off;
lnum = get_tv_lnum(&argvars[1]); lnum = get_tv_lnum_buf(&argvars[1], buf);
if (argvars[2].v_type == VAR_UNKNOWN) if (argvars[2].v_type == VAR_UNKNOWN)
end = lnum; end = lnum;
else else
end = get_tv_lnum(&argvars[2]); end = get_tv_lnum_buf(&argvars[2], buf);
get_buffer_lines(buf, lnum, end, TRUE, rettv); get_buffer_lines(buf, lnum, end, TRUE, rettv);
} }
@@ -15651,7 +15653,8 @@ get_tv_number_chk(varp, denote)
} }
/* /*
* Get the lnum from the first argument. Also accepts ".", "$", etc. * Get the lnum from the first argument.
* Also accepts ".", "$", etc., but that only works for the current buffer.
* Returns -1 on error. * Returns -1 on error.
*/ */
static linenr_T static linenr_T
@@ -15672,6 +15675,24 @@ get_tv_lnum(argvars)
return lnum; return lnum;
} }
/*
* Get the lnum from the first argument.
* Also accepts "$", then "buf" is used.
* Returns 0 on error.
*/
static linenr_T
get_tv_lnum_buf(argvars, buf)
typval_T *argvars;
buf_T *buf;
{
if (argvars[0].v_type == VAR_STRING
&& argvars[0].vval.v_string != NULL
&& argvars[0].vval.v_string[0] == '$'
&& buf != NULL)
return buf->b_ml.ml_line_count;
return get_tv_number_chk(&argvars[0], NULL);
}
/* /*
* Get the string value of a variable. * Get the string value of a variable.
* If it is a Number variable, the number is converted into a string. * If it is a Number variable, the number is converted into a string.
@@ -18678,6 +18699,23 @@ store_session_globals(fd)
} }
#endif #endif
/*
* Display script name where an item was last set.
* Should only be invoked when 'verbose' is non-zero.
*/
void
last_set_msg(scriptID)
scid_T scriptID;
{
if (scriptID != 0)
{
verbose_enter();
MSG_PUTS(_("\n\tLast set from "));
MSG_PUTS(get_scriptname(scriptID));
verbose_leave();
}
}
#endif /* FEAT_EVAL */ #endif /* FEAT_EVAL */
#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO) #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO)

View File

@@ -1034,7 +1034,7 @@ main_loop(cmdwin, noexmode)
emsg_on_display = FALSE; /* can delete error message now */ emsg_on_display = FALSE; /* can delete error message now */
did_emsg = FALSE; did_emsg = FALSE;
msg_didany = FALSE; /* reset lines_left in msg_start() */ msg_didany = FALSE; /* reset lines_left in msg_start() */
clear_sb_text(); /* clear scroll-back text */ may_clear_sb_text(); /* clear scroll-back text on next msg */
showruler(FALSE); showruler(FALSE);
setcursor(); setcursor();

View File

@@ -870,10 +870,13 @@ lalloc(size, message)
if (releasing) if (releasing)
break; break;
releasing = TRUE; releasing = TRUE;
try_again = mf_release_all();
clear_sb_text(); /* free any scrollback text */
try_again = mf_release_all(); /* release as many blocks as possible */
#ifdef FEAT_EVAL #ifdef FEAT_EVAL
try_again |= garbage_collect(); try_again |= garbage_collect(); /* cleanup recursive lists/dicts */
#endif #endif
releasing = FALSE; releasing = FALSE;
if (!try_again) if (!try_again)
break; break;

View File

@@ -3814,15 +3814,7 @@ do_set(arg, opt_flags)
showoneopt(&options[opt_idx], opt_flags); showoneopt(&options[opt_idx], opt_flags);
#ifdef FEAT_EVAL #ifdef FEAT_EVAL
if (p_verbose > 0) if (p_verbose > 0)
{ last_set_msg(options[opt_idx].scriptID);
if (options[opt_idx].scriptID != 0)
{
verbose_enter();
MSG_PUTS(_("\n\tLast set from "));
MSG_PUTS(get_scriptname(options[opt_idx].scriptID));
verbose_leave();
}
}
#endif #endif
} }
else else

View File

@@ -27,6 +27,7 @@ LANGUAGES = \
zh_CN.UTF-8 \ zh_CN.UTF-8 \
zh_TW \ zh_TW \
zh_TW.UTF-8 \ zh_TW.UTF-8 \
# end marker
MOFILES = \ MOFILES = \
af.mo \ af.mo \
@@ -51,6 +52,7 @@ MOFILES = \
zh_CN.mo \ zh_CN.mo \
zh_TW.UTF-8.mo \ zh_TW.UTF-8.mo \
zh_TW.mo \ zh_TW.mo \
# end marker
CONVERTED = \ CONVERTED = \
cs.cp1250.mo \ cs.cp1250.mo \
@@ -60,6 +62,7 @@ CONVERTED = \
sk.cp1250.mo \ sk.cp1250.mo \
uk.cp1251.mo \ uk.cp1251.mo \
zh_CN.cp936.mo \ zh_CN.cp936.mo \
# end marker
CHECKFILES = \ CHECKFILES = \
af.ck \ af.ck \
@@ -91,6 +94,7 @@ CHECKFILES = \
sk.cp1250.ck \ sk.cp1250.ck \
uk.cp1251.ck \ uk.cp1251.ck \
zh_CN.cp936.ck \ zh_CN.cp936.ck \
# end marker
PACKAGE = vim PACKAGE = vim
SHELL = /bin/sh SHELL = /bin/sh

View File

@@ -86,6 +86,7 @@ int func_has_abort __ARGS((void *cookie));
int read_viminfo_varlist __ARGS((vir_T *virp, int writing)); int read_viminfo_varlist __ARGS((vir_T *virp, int writing));
void write_viminfo_varlist __ARGS((FILE *fp)); void write_viminfo_varlist __ARGS((FILE *fp));
int store_session_globals __ARGS((FILE *fd)); int store_session_globals __ARGS((FILE *fd));
void last_set_msg __ARGS((scid_T scriptID));
int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen)); int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen));
char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags)); char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags));
/* vim: set ft=c : */ /* vim: set ft=c : */

View File

@@ -39,7 +39,9 @@ void msg_puts_title __ARGS((char_u *s));
void msg_puts_long_attr __ARGS((char_u *longstr, int attr)); void msg_puts_long_attr __ARGS((char_u *longstr, int attr));
void msg_puts_long_len_attr __ARGS((char_u *longstr, int len, int attr)); void msg_puts_long_len_attr __ARGS((char_u *longstr, int len, int attr));
void msg_puts_attr __ARGS((char_u *s, int attr)); void msg_puts_attr __ARGS((char_u *s, int attr));
void may_clear_sb_text __ARGS((void));
void clear_sb_text __ARGS((void)); void clear_sb_text __ARGS((void));
void show_sb_text __ARGS((void));
int msg_use_printf __ARGS((void)); int msg_use_printf __ARGS((void));
void mch_errmsg __ARGS((char *str)); void mch_errmsg __ARGS((char *str));
void mch_msg __ARGS((char *str)); void mch_msg __ARGS((char *str));

View File

@@ -51,6 +51,9 @@ struct hl_group
#endif #endif
int sg_link; /* link to this highlight group ID */ int sg_link; /* link to this highlight group ID */
int sg_set; /* combination of SG_* flags */ int sg_set; /* combination of SG_* flags */
#ifdef FEAT_EVAL
scid_T sg_scriptID; /* script in which the group was last set */
#endif
}; };
#define SG_TERM 1 /* term has been set */ #define SG_TERM 1 /* term has been set */
@@ -6352,6 +6355,9 @@ do_highlight(line, forceit, init)
if (!init) if (!init)
HL_TABLE()[from_id - 1].sg_set |= SG_LINK; HL_TABLE()[from_id - 1].sg_set |= SG_LINK;
HL_TABLE()[from_id - 1].sg_link = to_id; HL_TABLE()[from_id - 1].sg_link = to_id;
#ifdef FEAT_EVAL
HL_TABLE()[from_id - 1].sg_scriptID = current_SID;
#endif
redraw_all_later(NOT_VALID); redraw_all_later(NOT_VALID);
} }
} }
@@ -7101,6 +7107,9 @@ do_highlight(line, forceit, init)
#endif #endif
else else
set_hl_attr(idx); set_hl_attr(idx);
#ifdef FEAT_EVAL
HL_TABLE()[idx].sg_scriptID = current_SID;
#endif
redraw_all_later(NOT_VALID); redraw_all_later(NOT_VALID);
} }
vim_free(key); vim_free(key);
@@ -7201,6 +7210,12 @@ highlight_clear(idx)
HL_TABLE()[idx].sg_font_name = NULL; HL_TABLE()[idx].sg_font_name = NULL;
HL_TABLE()[idx].sg_gui_attr = 0; HL_TABLE()[idx].sg_gui_attr = 0;
#endif #endif
#ifdef FEAT_EVAL
/* Clear the script ID only when there is no link, since that is not
* cleared. */
if (HL_TABLE()[idx].sg_link == 0)
HL_TABLE()[idx].sg_scriptID = 0;
#endif
} }
#if defined(FEAT_GUI) || defined(PROTO) #if defined(FEAT_GUI) || defined(PROTO)
@@ -7868,13 +7883,19 @@ highlight_list_one(id)
0, sgp->sg_font_name, "font"); 0, sgp->sg_font_name, "font");
#endif #endif
if (sgp->sg_link) if (sgp->sg_link && !got_int)
{ {
(void)syn_list_header(didh, 9999, id); (void)syn_list_header(didh, 9999, id);
didh = TRUE;
msg_puts_attr((char_u *)"links to", hl_attr(HLF_D)); msg_puts_attr((char_u *)"links to", hl_attr(HLF_D));
msg_putchar(' '); msg_putchar(' ');
msg_outtrans(HL_TABLE()[HL_TABLE()[id - 1].sg_link - 1].sg_name); msg_outtrans(HL_TABLE()[HL_TABLE()[id - 1].sg_link - 1].sg_name);
} }
#ifdef FEAT_EVAL
if (didh && p_verbose > 0)
last_set_msg(sgp->sg_scriptID);
#endif
} }
static int static int
@@ -7890,6 +7911,8 @@ highlight_list_arg(id, didh, type, iarg, sarg, name)
char_u *ts; char_u *ts;
int i; int i;
if (got_int)
return FALSE;
if (type == LIST_STRING ? (sarg != NULL) : (iarg != 0)) if (type == LIST_STRING ? (sarg != NULL) : (iarg != 0))
{ {
ts = buf; ts = buf;
@@ -7915,10 +7938,12 @@ highlight_list_arg(id, didh, type, iarg, sarg, name)
(void)syn_list_header(didh, (void)syn_list_header(didh,
(int)(vim_strsize(ts) + STRLEN(name) + 1), id); (int)(vim_strsize(ts) + STRLEN(name) + 1), id);
didh = TRUE; didh = TRUE;
if (!got_int)
MSG_PUTS_ATTR(name, hl_attr(HLF_D)); {
MSG_PUTS_ATTR("=", hl_attr(HLF_D)); MSG_PUTS_ATTR(name, hl_attr(HLF_D));
msg_outtrans(ts); MSG_PUTS_ATTR("=", hl_attr(HLF_D));
msg_outtrans(ts);
}
} }
return didh; return didh;
} }
@@ -8068,11 +8093,17 @@ syn_list_header(did_header, outlen, id)
if (!did_header) if (!did_header)
{ {
msg_putchar('\n'); msg_putchar('\n');
if (got_int)
return TRUE;
msg_outtrans(HL_TABLE()[id - 1].sg_name); msg_outtrans(HL_TABLE()[id - 1].sg_name);
endcol = 15; endcol = 15;
} }
else if (msg_col + outlen + 1 >= Columns) else if (msg_col + outlen + 1 >= Columns)
{
msg_putchar('\n'); msg_putchar('\n');
if (got_int)
return TRUE;
}
else else
{ {
if (msg_col >= endcol) /* wrap around is like starting a new line */ if (msg_col >= endcol) /* wrap around is like starting a new line */

View File

@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA" #define VIM_VERSION_MEDIUM "7.0aa ALPHA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 27)" #define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 28)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 27, compiled " #define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 28, compiled "