# HG changeset patch # User vimboss # Date 1122590205 0 # Node ID dd9db57ee7ce46bdc86cd787fb58907f20c0a973 # Parent 8347d456f7e51ecf25f4e337bde5021e1d52296f updated for version 7.0118 diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -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 @@ -2416,29 +2416,24 @@ get({dict}, {key} [, {default}]) *getbufline()* getbufline({expr}, {lnum} [, {end}]) - Return the lines starting from {lnum} to {end} in the buffer - {expr} as a List. If {end} is omitted, only the line {lnum} - is returned. + Return a List with the lines starting from {lnum} to {end} + (inclusive) in the buffer {expr}. If {end} is omitted, a List + with only the line {lnum} is returned. For the use of {expr}, see |bufname()| above. - When {lnum} is a String that doesn't start with a - digit, line() is called to translate the String into a Number. - - {end} is used in the same way as {lnum}. + For {lnum} and {end} "$" can be used for the last line of the + buffer. Otherwise a number must be used. When {lnum} is smaller than 1 or bigger than the number of lines in the buffer, an empty List is returned. 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 - buffer. - - When non-existing line ranges are specified, an empty List is - returned. When {end} is before {lnum} an empty List is + buffer. When {end} is before {lnum} an empty List is 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. Example: > diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -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 @@ -2282,9 +2282,11 @@ A jump table for the options with a shor |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 effect for encoding used for files when 'fileencoding' is empty. - - When 'encoding' is set to a Unicode encoding, and 'fileencodings' was - not set yet, the default for 'fileencodings' is changed. + "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 + not set yet, the default for 'fileencodings' is changed. *'endofline'* *'eol'* *'noendofline'* *'noeol'* 'endofline' 'eol' boolean (default on) diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -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 @@ -3641,6 +3641,15 @@ specified field is used, and settings ar result is like this single command has been used: > :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* There are three types of terminals for highlighting: term a normal terminal (vt100, xterm) diff --git a/runtime/doc/tags b/runtime/doc/tags --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -4984,6 +4984,7 @@ g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw g:netrw_rmf_cmd pi_netrw.txt /*g:netrw_rmf_cmd* g:var eval.txt /*g:var* g; motion.txt /*g;* +g< message.txt /*g<* g motion.txt /*g* g motion.txt /*g* g motion.txt /*g* @@ -6746,6 +6747,7 @@ usr_44.txt usr_44.txt /*usr_44.txt* usr_45.txt usr_45.txt /*usr_45.txt* usr_90.txt usr_90.txt /*usr_90.txt* usr_toc.txt usr_toc.txt /*usr_toc.txt* +utf-16 options.txt /*utf-16* utf-8 mbyte.txt /*utf-8* utf-8-char-arg mbyte.txt /*utf-8-char-arg* utf-8-in-xwindows mbyte.txt /*utf-8-in-xwindows* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -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 @@ -30,6 +30,8 @@ be worked on, but only if you sponsor Vi *known-bugs* -------------------- 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): - selecting proportional font breaks display - 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 the screen. - 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: diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -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 @@ -238,6 +238,9 @@ is especially useful for commands such a commands and highlighting is kept. Only works when the 'more' option is set. Previously it only partly worked for ":clist". +The |g<| command can be used to see the last page of messages after you have +hit at the |hit-enter-prompt|. Then you can scroll further back. + POSIX compatibility *new-posix* ------------------- @@ -724,6 +727,9 @@ Win32: Balloons can have multiple lines The 's' flag is added to the search() and searchpair() function to set the ' 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* diff --git a/runtime/spell/de/main.aap b/runtime/spell/de/main.aap --- a/runtime/spell/de/main.aap +++ b/runtime/spell/de/main.aap @@ -14,11 +14,11 @@ all: $(SPELLDIR)/de.latin1.spl $(SPELLDI $(SPELLDIR)/de.latin1.spl : $(VIM) $(FILES) :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) :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 :copy $source $target diff --git a/runtime/spell/en/main.aap b/runtime/spell/en/main.aap --- a/runtime/spell/en/main.aap +++ b/runtime/spell/en/main.aap @@ -18,16 +18,16 @@ all: $(SPELLDIR)/en.latin1.spl $(SPELLDI $(SPELLDIR)/en.latin1.spl : $(VIM) $(FILES) :sys env LANG=en_US.ISO8859-1 - $(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB - en_NZ" -c q + $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/en + en_US en_AU en_CA en_GB en_NZ" -c q $(SPELLDIR)/en.utf-8.spl : $(VIM) $(FILES) :sys env LANG=en_US.UTF-8 - $(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB - en_NZ" -c q + $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/en + en_US en_AU en_CA en_GB en_NZ" -c q $(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 ../README_en.txt: README_en_US.txt README_en_AU.txt diff --git a/runtime/spell/he/main.aap b/runtime/spell/he/main.aap --- a/runtime/spell/he/main.aap +++ b/runtime/spell/he/main.aap @@ -13,10 +13,10 @@ all: $(SPELLDIR)/he.utf-8.spl $(SPELLDIR $(SPELLDIR)/he.utf-8.spl : $(VIM) $(FILES) :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) - :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 ../README_he.txt : README_he_IL.txt diff --git a/runtime/spell/nl/main.aap b/runtime/spell/nl/main.aap --- a/runtime/spell/nl/main.aap +++ b/runtime/spell/nl/main.aap @@ -13,11 +13,11 @@ all: $(SPELLDIR)/nl.latin1.spl $(SPELLDI $(SPELLDIR)/nl.latin1.spl : $(VIM) $(FILES) :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) :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 :copy $source $target diff --git a/runtime/spell/pl/main.aap b/runtime/spell/pl/main.aap --- a/runtime/spell/pl/main.aap +++ b/runtime/spell/pl/main.aap @@ -13,13 +13,13 @@ all: $(SPELLDIR)/pl.iso-8859-2.spl $(SPE $(SPELLDIR)/pl.cp1250.spl ../README_pl.txt $(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) - :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) - :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 :copy $source $target diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -643,6 +643,7 @@ static void init_tv __ARGS((typval_T *va static long get_tv_number __ARGS((typval_T *varp)); 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_buf __ARGS((typval_T *argvars, buf_T *buf)); 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_chk __ARGS((typval_T *varp)); @@ -9187,11 +9188,12 @@ f_getbufline(argvars, rettv) buf = get_buf_tv(&argvars[0]); --emsg_off; - lnum = get_tv_lnum(&argvars[1]); + lnum = get_tv_lnum_buf(&argvars[1], buf); if (argvars[2].v_type == VAR_UNKNOWN) end = lnum; else - end = get_tv_lnum(&argvars[2]); + end = get_tv_lnum_buf(&argvars[2], buf); + 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. */ static linenr_T @@ -15673,6 +15676,24 @@ get_tv_lnum(argvars) } /* + * 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. * If it is a Number variable, the number is converted into a string. * get_tv_string() uses a single, static buffer. YOU CAN ONLY USE IT ONCE! @@ -18678,6 +18699,23 @@ store_session_globals(fd) } #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 */ #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO) diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -1034,7 +1034,7 @@ main_loop(cmdwin, noexmode) emsg_on_display = FALSE; /* can delete error message now */ did_emsg = FALSE; 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); setcursor(); diff --git a/src/misc2.c b/src/misc2.c --- a/src/misc2.c +++ b/src/misc2.c @@ -870,10 +870,13 @@ lalloc(size, message) if (releasing) break; 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 - try_again |= garbage_collect(); -#endif + try_again |= garbage_collect(); /* cleanup recursive lists/dicts */ +#endif + releasing = FALSE; if (!try_again) break; diff --git a/src/option.c b/src/option.c --- a/src/option.c +++ b/src/option.c @@ -3814,15 +3814,7 @@ do_set(arg, opt_flags) showoneopt(&options[opt_idx], opt_flags); #ifdef FEAT_EVAL if (p_verbose > 0) - { - if (options[opt_idx].scriptID != 0) - { - verbose_enter(); - MSG_PUTS(_("\n\tLast set from ")); - MSG_PUTS(get_scriptname(options[opt_idx].scriptID)); - verbose_leave(); - } - } + last_set_msg(options[opt_idx].scriptID); #endif } else diff --git a/src/po/Makefile b/src/po/Makefile --- a/src/po/Makefile +++ b/src/po/Makefile @@ -27,6 +27,7 @@ LANGUAGES = \ zh_CN.UTF-8 \ zh_TW \ zh_TW.UTF-8 \ +# end marker MOFILES = \ af.mo \ @@ -51,6 +52,7 @@ MOFILES = \ zh_CN.mo \ zh_TW.UTF-8.mo \ zh_TW.mo \ +# end marker CONVERTED = \ cs.cp1250.mo \ @@ -60,6 +62,7 @@ CONVERTED = \ sk.cp1250.mo \ uk.cp1251.mo \ zh_CN.cp936.mo \ +# end marker CHECKFILES = \ af.ck \ @@ -91,6 +94,7 @@ CHECKFILES = \ sk.cp1250.ck \ uk.cp1251.ck \ zh_CN.cp936.ck \ +# end marker PACKAGE = vim SHELL = /bin/sh diff --git a/src/proto/eval.pro b/src/proto/eval.pro --- a/src/proto/eval.pro +++ b/src/proto/eval.pro @@ -86,6 +86,7 @@ int func_has_abort __ARGS((void *cookie) int read_viminfo_varlist __ARGS((vir_T *virp, int writing)); void write_viminfo_varlist __ARGS((FILE *fp)); 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)); char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags)); /* vim: set ft=c : */ diff --git a/src/proto/message.pro b/src/proto/message.pro --- a/src/proto/message.pro +++ b/src/proto/message.pro @@ -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_len_attr __ARGS((char_u *longstr, int len, 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 show_sb_text __ARGS((void)); int msg_use_printf __ARGS((void)); void mch_errmsg __ARGS((char *str)); void mch_msg __ARGS((char *str)); diff --git a/src/syntax.c b/src/syntax.c --- a/src/syntax.c +++ b/src/syntax.c @@ -51,6 +51,9 @@ struct hl_group #endif int sg_link; /* link to this highlight group ID */ 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 */ @@ -6352,6 +6355,9 @@ do_highlight(line, forceit, init) if (!init) HL_TABLE()[from_id - 1].sg_set |= SG_LINK; 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); } } @@ -7101,6 +7107,9 @@ do_highlight(line, forceit, init) #endif else set_hl_attr(idx); +#ifdef FEAT_EVAL + HL_TABLE()[idx].sg_scriptID = current_SID; +#endif redraw_all_later(NOT_VALID); } vim_free(key); @@ -7201,6 +7210,12 @@ highlight_clear(idx) HL_TABLE()[idx].sg_font_name = NULL; HL_TABLE()[idx].sg_gui_attr = 0; #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) @@ -7868,13 +7883,19 @@ highlight_list_one(id) 0, sgp->sg_font_name, "font"); #endif - if (sgp->sg_link) + if (sgp->sg_link && !got_int) { (void)syn_list_header(didh, 9999, id); + didh = TRUE; msg_puts_attr((char_u *)"links to", hl_attr(HLF_D)); msg_putchar(' '); 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 @@ -7890,6 +7911,8 @@ highlight_list_arg(id, didh, type, iarg, char_u *ts; int i; + if (got_int) + return FALSE; if (type == LIST_STRING ? (sarg != NULL) : (iarg != 0)) { ts = buf; @@ -7915,10 +7938,12 @@ highlight_list_arg(id, didh, type, iarg, (void)syn_list_header(didh, (int)(vim_strsize(ts) + STRLEN(name) + 1), id); didh = TRUE; - - MSG_PUTS_ATTR(name, hl_attr(HLF_D)); - MSG_PUTS_ATTR("=", hl_attr(HLF_D)); - msg_outtrans(ts); + if (!got_int) + { + MSG_PUTS_ATTR(name, hl_attr(HLF_D)); + MSG_PUTS_ATTR("=", hl_attr(HLF_D)); + msg_outtrans(ts); + } } return didh; } @@ -8068,11 +8093,17 @@ syn_list_header(did_header, outlen, id) if (!did_header) { msg_putchar('\n'); + if (got_int) + return TRUE; msg_outtrans(HL_TABLE()[id - 1].sg_name); endcol = 15; } else if (msg_col + outlen + 1 >= Columns) + { msg_putchar('\n'); + if (got_int) + return TRUE; + } else { if (msg_col >= endcol) /* wrap around is like starting a new line */ diff --git a/src/version.h b/src/version.h --- a/src/version.h +++ b/src/version.h @@ -36,5 +36,5 @@ #define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_MEDIUM "7.0aa ALPHA" -#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 27)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 27, compiled " +#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 28, compiled "