From ea6d0844142486b3c1bfcf032addd682520df819 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 13:49:09 +0100 Subject: [PATCH 01/28] updated for version 7.3.457 Problem: When setting $VIMRUNTIME later the directory for fetching translated messages is not adjusted. Solution: Put bindtextdomain() in vim_setenv(). --- src/misc1.c | 27 ++++++++++++++++----------- src/version.c | 2 ++ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/misc1.c b/src/misc1.c index 1945d0ac9b..cc29239086 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -4133,17 +4133,6 @@ vim_getenv(name, mustfree) { vim_setenv((char_u *)"VIMRUNTIME", p); didset_vimruntime = TRUE; -#ifdef FEAT_GETTEXT - { - char_u *buf = concat_str(p, (char_u *)"/lang"); - - if (buf != NULL) - { - bindtextdomain(VIMPACKAGE, (char *)buf); - vim_free(buf); - } - } -#endif } else { @@ -4221,6 +4210,22 @@ vim_setenv(name, val) putenv((char *)envbuf); } #endif +#ifdef FEAT_GETTEXT + /* + * When setting $VIMRUNTIME adjust the directory to find message + * translations to $VIMRUNTIME/lang. + */ + if (*val != NUL && STRICMP(name, "VIMRUNTIME") == 0) + { + char_u *buf = concat_str(val, (char_u *)"/lang"); + + if (buf != NULL) + { + bindtextdomain(VIMPACKAGE, (char *)buf); + vim_free(buf); + } + } +#endif } #if defined(FEAT_CMDL_COMPL) || defined(PROTO) diff --git a/src/version.c b/src/version.c index f47e7bd16a..83965f44e2 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 457, /**/ 456, /**/ From cd787f7a79e297c927bac4056c486605971d7902 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 13:49:09 +0100 Subject: [PATCH 02/28] Added tag v7-3-457 for changeset 4a2744311b3f --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 801731bc2c..708b696960 100644 --- a/.hgtags +++ b/.hgtags @@ -1793,3 +1793,4 @@ f1cde9cf023e15cd1bc26ae720d6380fa5ceac7d v7-3-452 1632640a24b42a9193eeb8f6e8150afaeee5ee35 v7-3-454 e6392f2aed4c13170664b4ec13dd2d8b3ce968aa v7-3-455 07fd030f89be62aa11c4ea1a188ee2d8f4348677 v7-3-456 +4a2744311b3f3c8207189dee4ef405959a2e2446 v7-3-457 From 652fc4334e74fe8ba2cd16707d8f0175b65e2b86 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 13:51:37 +0100 Subject: [PATCH 03/28] updated for version 7.3.458 Problem: Crash when calling smsg() during startup. Solution: Don't use 'shortmess' when it is not set yet. --- src/option.c | 3 ++- src/version.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/option.c b/src/option.c index 0cea5586a8..b71830f743 100644 --- a/src/option.c +++ b/src/option.c @@ -10984,7 +10984,8 @@ has_format_option(x) shortmess(x) int x; { - return ( vim_strchr(p_shm, x) != NULL + return p_shm != NULL && + ( vim_strchr(p_shm, x) != NULL || (vim_strchr(p_shm, 'a') != NULL && vim_strchr((char_u *)SHM_A, x) != NULL)); } diff --git a/src/version.c b/src/version.c index 83965f44e2..49e6515a1f 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 458, /**/ 457, /**/ From fd98ad70e751d3fff631187099cb3e0ad17604cd Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 13:51:37 +0100 Subject: [PATCH 04/28] Added tag v7-3-458 for changeset da670fb71d30 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 708b696960..3524ac93e3 100644 --- a/.hgtags +++ b/.hgtags @@ -1794,3 +1794,4 @@ f1cde9cf023e15cd1bc26ae720d6380fa5ceac7d v7-3-452 e6392f2aed4c13170664b4ec13dd2d8b3ce968aa v7-3-455 07fd030f89be62aa11c4ea1a188ee2d8f4348677 v7-3-456 4a2744311b3f3c8207189dee4ef405959a2e2446 v7-3-457 +da670fb71d30a1eefb07b19256f8c0d677807550 v7-3-458 From 795506320cee60ea7e24526115946e76b4c77a77 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 13:58:47 +0100 Subject: [PATCH 05/28] updated for version 7.3.459 Problem: Win32: Warnings for type conversion. Solution: Add type casts. (Mike Williams) --- src/misc2.c | 2 +- src/os_win32.c | 2 +- src/version.c | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/misc2.c b/src/misc2.c index 8183876505..d62c771cdd 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -2074,7 +2074,7 @@ ga_grow(gap, n) n = gap->ga_growsize; new_len = gap->ga_itemsize * (gap->ga_len + n); pp = (gap->ga_data == NULL) - ? alloc(new_len) : vim_realloc(gap->ga_data, new_len); + ? alloc((unsigned)new_len) : vim_realloc(gap->ga_data, new_len); if (pp == NULL) return FAIL; old_len = gap->ga_itemsize * gap->ga_maxlen; diff --git a/src/os_win32.c b/src/os_win32.c index 57f004ec24..371363bf00 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -264,7 +264,7 @@ get_exe_name(void) static void unescape_shellxquote(char_u *p, char_u *escaped) { - int l = STRLEN(p); + int l = (int)STRLEN(p); int n; while (*p != NUL) diff --git a/src/version.c b/src/version.c index 49e6515a1f..3c8101bc61 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 459, /**/ 458, /**/ From d34de05809412884e080d80fe9dc43195cc42c46 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 13:58:47 +0100 Subject: [PATCH 06/28] Added tag v7-3-459 for changeset cb2ae92ce106 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 3524ac93e3..8e00befac3 100644 --- a/.hgtags +++ b/.hgtags @@ -1795,3 +1795,4 @@ e6392f2aed4c13170664b4ec13dd2d8b3ce968aa v7-3-455 07fd030f89be62aa11c4ea1a188ee2d8f4348677 v7-3-456 4a2744311b3f3c8207189dee4ef405959a2e2446 v7-3-457 da670fb71d30a1eefb07b19256f8c0d677807550 v7-3-458 +cb2ae92ce106de532c53f8a16a82bc2bf6edacd2 v7-3-459 From 1305959e93c35f699b6fbb33947aacba791d3c8d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 16:56:39 +0100 Subject: [PATCH 07/28] updated for version 7.3.460 Problem: Win32: UPX does not compress 64 bit binaries. Solution: Mention and add the alternative: mpress. (Dave Bodenstab) --- src/INSTALLpc.txt | 6 ++++++ src/Make_ming.mak | 10 ++++++++-- src/version.c | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt index ec358e027e..66f102d126 100644 --- a/src/INSTALLpc.txt +++ b/src/INSTALLpc.txt @@ -239,6 +239,12 @@ If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX' found at http://www.upx.org/ +As of 2011, UPX still does not support compressing 64-bit EXE's; if you have +built a 64-bit vim then an alternative to UPX is 'MPRESS'. MPRESS can be found +at: + http://www.matcode.com/mpress.htm + + ADDITION: NLS support with MinGW (by Eduardo F. Amatria ) diff --git a/src/Make_ming.mak b/src/Make_ming.mak index bacdb04c7d..64c3db8349 100644 --- a/src/Make_ming.mak +++ b/src/Make_ming.mak @@ -14,9 +14,11 @@ # it's just run out of memory or something. Run again, and it will continue # with 'xxd'. # -# "make upx" makes *compressed* versions of the GUI and console EXEs, using the -# excellent UPX compressor: +# "make upx" makes *compressed* versions of the 32 bit GUI and console EXEs, +# using the excellent UPX compressor: # http://upx.sourceforge.net/ +# "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs: +# http://www.matcode.com/mpress.htm # # Maintained by Ron Aaron # updated 2003 Jan 20 @@ -640,6 +642,10 @@ upx: exes upx gvim.exe upx vim.exe +mpress: exes + mpress gvim.exe + mpress vim.exe + xxd/xxd.exe: xxd/xxd.c $(MAKE) -C xxd -f Make_ming.mak CC=$(CC) diff --git a/src/version.c b/src/version.c index 3c8101bc61..7fbadcdae6 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 460, /**/ 459, /**/ From dfef726116de86ec8c9a91bf2d5cbd2e47358b9e Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 16:56:39 +0100 Subject: [PATCH 08/28] Added tag v7-3-460 for changeset 981c7ad9dd48 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 8e00befac3..72bd6c47a7 100644 --- a/.hgtags +++ b/.hgtags @@ -1796,3 +1796,4 @@ e6392f2aed4c13170664b4ec13dd2d8b3ce968aa v7-3-455 4a2744311b3f3c8207189dee4ef405959a2e2446 v7-3-457 da670fb71d30a1eefb07b19256f8c0d677807550 v7-3-458 cb2ae92ce106de532c53f8a16a82bc2bf6edacd2 v7-3-459 +981c7ad9dd48cac1b4030b97c2f0dc0b8fe82337 v7-3-460 From 0a82d1878d15b297df8141a7828abc5263b5ee7f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 18:22:08 +0100 Subject: [PATCH 09/28] updated for version 7.3.461 Problem: The InsertCharPre autocommand event is not triggered during completion and when typing several characters quickly. Solution: Also trigger InsertCharPre during completion. Do not read ahead when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto) --- src/edit.c | 97 ++++++++++++++++++++++++++++++++++---------- src/fileio.c | 9 ++++ src/proto/fileio.pro | 1 + src/version.c | 2 + 4 files changed, 87 insertions(+), 22 deletions(-) diff --git a/src/edit.c b/src/edit.c index 6ac6142c61..e95ddddc25 100644 --- a/src/edit.c +++ b/src/edit.c @@ -259,6 +259,9 @@ static int ins_ctrl_ey __ARGS((int tc)); static void ins_try_si __ARGS((int c)); #endif static colnr_T get_nolist_virtcol __ARGS((void)); +#ifdef FEAT_AUTOCMD +static char_u *do_insert_char_pre __ARGS((int c)); +#endif static colnr_T Insstart_textlen; /* length of line when insert started */ static colnr_T Insstart_blank_vcol; /* vcol for first inserted blank */ @@ -784,7 +787,20 @@ edit(cmdchar, startln, count) * completion: Add to "compl_leader". */ if (ins_compl_accept_char(c)) { - ins_compl_addleader(c); +#ifdef FEAT_AUTOCMD + /* Trigger InsertCharPre. */ + char_u *str = do_insert_char_pre(c); + char_u *p; + + if (str != NULL) + { + for (p = str; *p != NUL; mb_ptr_adv(p)) + ins_compl_addleader(PTR2CHAR(p)); + vim_free(str); + } + else +#endif + ins_compl_addleader(c); continue; } @@ -1393,34 +1409,31 @@ normalchar: #ifdef FEAT_AUTOCMD if (!p_paste) { - /* Trigger the InsertCharPre event. Lock the text to avoid - * weird things from happening. */ - set_vim_var_char(c); - ++textlock; - if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, - FALSE, curbuf)) + /* Trigger InsertCharPre. */ + char_u *str = do_insert_char_pre(c); + char_u *p; + + if (str != NULL) { - /* Get the new value of v:char. If it is more than one - * character insert it literally. */ - char_u *s = get_vim_var_str(VV_CHAR); - if (MB_CHARLEN(s) > 1) + if (*str != NUL && stop_arrow() != FAIL) { - if (stop_arrow() != FAIL) + /* Insert the new value of v:char literally. */ + for (p = str; *p != NUL; mb_ptr_adv(p)) { - ins_str(s); - AppendToRedobuffLit(s, -1); + c = PTR2CHAR(p); + if (c == CAR || c == K_KENTER || c == NL) + ins_eol(c); + else + ins_char(c); } - c = NUL; + AppendToRedobuffLit(str, -1); } - else - c = PTR2CHAR(s); + vim_free(str); + c = NUL; } - set_vim_var_string(VV_CHAR, NULL, -1); - --textlock; - - /* If the new value is an empty string then don't insert a - * char. */ + /* If the new value is already inserted or an empty string + * then don't insert any character. */ if (c == NUL) break; } @@ -5883,6 +5896,8 @@ insertchar(c, flags, second_indent) * Don't do this when 'cindent' or 'indentexpr' is set, because we might * need to re-indent at a ':', or any other character (but not what * 'paste' is set).. + * Don't do this when there an InsertCharPre autocommand is defined, + * because we need to fire the event for every character. */ #ifdef USE_ON_FLY_SCROLL dont_scroll = FALSE; /* allow scrolling here */ @@ -5899,6 +5914,9 @@ insertchar(c, flags, second_indent) #endif #ifdef FEAT_RIGHTLEFT && !p_ri +#endif +#ifdef FEAT_AUTOCMD + && !has_insertcharpre() #endif ) { @@ -10068,3 +10086,38 @@ get_nolist_virtcol() validate_virtcol(); return curwin->w_virtcol; } + +#ifdef FEAT_AUTOCMD +/* + * Handle the InsertCharPre autocommand. + * "c" is the character that was typed. + * Return a pointer to allocated memory with the replacement string. + * Return NULL to continue inserting "c". + */ + static char_u * +do_insert_char_pre(c) + int c; +{ + char_u *res; + + /* Return quickly when there is nothing to do. */ + if (!has_insertcharpre()) + return NULL; + + /* Lock the text to avoid weird things from happening. */ + ++textlock; + set_vim_var_char(c); /* set v:char */ + + if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf)) + /* Get the new value of v:char. It may be empty or more than one + * character. */ + res = vim_strsave(get_vim_var_str(VV_CHAR)); + else + res = NULL; + + set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */ + --textlock; + + return res; +} +#endif diff --git a/src/fileio.c b/src/fileio.c index a06452fdb5..5d00b753d1 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -9116,6 +9116,15 @@ has_cursormovedI() return (first_autopat[(int)EVENT_CURSORMOVEDI] != NULL); } +/* + * Return TRUE when there is an InsertCharPre autocommand defined. + */ + int +has_insertcharpre() +{ + return (first_autopat[(int)EVENT_INSERTCHARPRE] != NULL); +} + static int apply_autocmds_group(event, fname, fname_io, force, group, buf, eap) event_T event; diff --git a/src/proto/fileio.pro b/src/proto/fileio.pro index d65ec7cfe7..baf6216646 100644 --- a/src/proto/fileio.pro +++ b/src/proto/fileio.pro @@ -44,6 +44,7 @@ int has_cursorhold __ARGS((void)); int trigger_cursorhold __ARGS((void)); int has_cursormoved __ARGS((void)); int has_cursormovedI __ARGS((void)); +int has_insertcharpre __ARGS((void)); void block_autocmds __ARGS((void)); void unblock_autocmds __ARGS((void)); int has_autocmd __ARGS((event_T event, char_u *sfname, buf_T *buf)); diff --git a/src/version.c b/src/version.c index 7fbadcdae6..e807a47b9c 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 461, /**/ 460, /**/ From fd045b995c36bf8d0ff28255e2d9f857ceebd194 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 18:22:08 +0100 Subject: [PATCH 10/28] Added tag v7-3-461 for changeset de60f6fa3d8d --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 72bd6c47a7..15ea7117bf 100644 --- a/.hgtags +++ b/.hgtags @@ -1797,3 +1797,4 @@ e6392f2aed4c13170664b4ec13dd2d8b3ce968aa v7-3-455 da670fb71d30a1eefb07b19256f8c0d677807550 v7-3-458 cb2ae92ce106de532c53f8a16a82bc2bf6edacd2 v7-3-459 981c7ad9dd48cac1b4030b97c2f0dc0b8fe82337 v7-3-460 +de60f6fa3d8d77442a39ec13efef89f6ca76af03 v7-3-461 From 2ebab776d6cfb856dc909dd8511d7c3299ad1f48 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 19:20:02 +0100 Subject: [PATCH 11/28] updated for version 7.3.462 Problem: When using ":loadview" folds may be closed unexpectedly. Solution: Take into account foldlevel. (Xavier de Gaye) --- src/fold.c | 58 +++++++++++++++++++++++++++++++++++++++++---------- src/version.c | 2 ++ 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/src/fold.c b/src/fold.c index 4d294f1339..881a196142 100644 --- a/src/fold.c +++ b/src/fold.c @@ -3292,7 +3292,8 @@ foldlevelSyntax(flp) /* put_folds() {{{2 */ #if defined(FEAT_SESSION) || defined(PROTO) static int put_folds_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off)); -static int put_foldopen_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off)); +static int put_foldopen_recurse __ARGS((FILE *fd, win_T *wp, garray_T *gap, linenr_T off)); +static int put_fold_open_close __ARGS((FILE *fd, fold_T *fp, linenr_T off)); /* * Write commands to "fd" to restore the manual folds in window "wp". @@ -3312,7 +3313,7 @@ put_folds(fd, wp) /* If some folds are manually opened/closed, need to restore that. */ if (wp->w_fold_manual) - return put_foldopen_recurse(fd, &wp->w_folds, (linenr_T)0); + return put_foldopen_recurse(fd, wp, &wp->w_folds, (linenr_T)0); return OK; } @@ -3352,12 +3353,14 @@ put_folds_recurse(fd, gap, off) * Returns FAIL when writing failed. */ static int -put_foldopen_recurse(fd, gap, off) +put_foldopen_recurse(fd, wp, gap, off) FILE *fd; + win_T *wp; garray_T *gap; linenr_T off; { int i; + int level; fold_T *fp; fp = (fold_T *)gap->ga_data; @@ -3367,27 +3370,60 @@ put_foldopen_recurse(fd, gap, off) { if (fp->fd_nested.ga_len > 0) { - /* open/close nested folds while this fold is open */ + /* open nested folds while this fold is open */ if (fprintf(fd, "%ld", fp->fd_top + off) < 0 || put_eol(fd) == FAIL || put_line(fd, "normal zo") == FAIL) return FAIL; - if (put_foldopen_recurse(fd, &fp->fd_nested, off + fp->fd_top) + if (put_foldopen_recurse(fd, wp, &fp->fd_nested, + off + fp->fd_top) == FAIL) return FAIL; + /* close the parent when needed */ + if (fp->fd_flags == FD_CLOSED) + { + if (put_fold_open_close(fd, fp, off) == FAIL) + return FAIL; + } + } + else + { + /* Open or close the leaf according to the window foldlevel. + * Do not close a leaf that is already closed, as it will close + * the parent. */ + level = foldLevelWin(wp, off + fp->fd_top); + if ((fp->fd_flags == FD_CLOSED && wp->w_p_fdl >= level) + || (fp->fd_flags != FD_CLOSED && wp->w_p_fdl < level)) + if (put_fold_open_close(fd, fp, off) == FAIL) + return FAIL; } - if (fprintf(fd, "%ld", fp->fd_top + off) < 0 - || put_eol(fd) == FAIL - || fprintf(fd, "normal z%c", - fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0 - || put_eol(fd) == FAIL) - return FAIL; } ++fp; } return OK; } + +/* put_fold_open_close() {{{2 */ +/* + * Write the open or close command to "fd". + * Returns FAIL when writing failed. + */ + static int +put_fold_open_close(fd, fp, off) + FILE *fd; + fold_T *fp; + linenr_T off; +{ + if (fprintf(fd, "%ld", fp->fd_top + off) < 0 + || put_eol(fd) == FAIL + || fprintf(fd, "normal z%c", + fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0 + || put_eol(fd) == FAIL) + return FAIL; + + return OK; +} #endif /* FEAT_SESSION */ /* }}}1 */ diff --git a/src/version.c b/src/version.c index e807a47b9c..a1b588d91b 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 462, /**/ 461, /**/ From 805761a61c574c772f35a7630dad8fa074149715 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 29 Feb 2012 19:20:03 +0100 Subject: [PATCH 12/28] Added tag v7-3-462 for changeset 70eff6af1158 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 15ea7117bf..31e797a7b2 100644 --- a/.hgtags +++ b/.hgtags @@ -1798,3 +1798,4 @@ da670fb71d30a1eefb07b19256f8c0d677807550 v7-3-458 cb2ae92ce106de532c53f8a16a82bc2bf6edacd2 v7-3-459 981c7ad9dd48cac1b4030b97c2f0dc0b8fe82337 v7-3-460 de60f6fa3d8d77442a39ec13efef89f6ca76af03 v7-3-461 +70eff6af1158f9dc99118ba73e81f456015c3ebd v7-3-462 From 04af258e46f0c6fb4793a13529c992b634c08d92 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 14:57:52 +0100 Subject: [PATCH 13/28] updated for version 7.3.463 Problem: When using ":s///c" the cursor is moved away from the match. (Lawman) Solution: Don't move the cursor when do_ask is set. (Christian Brabandt) --- src/ex_cmds.c | 11 +++++++---- src/version.c | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 644c32ba26..ba18d9d050 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -5151,10 +5151,13 @@ outofmem: if (!global_busy) { - if (endcolumn) - coladvance((colnr_T)MAXCOL); - else - beginline(BL_WHITE | BL_FIX); + if (!do_ask) /* when interactive leave cursor on the match */ + { + if (endcolumn) + coladvance((colnr_T)MAXCOL); + else + beginline(BL_WHITE | BL_FIX); + } if (!do_sub_msg(do_count) && do_ask) MSG(""); } diff --git a/src/version.c b/src/version.c index a1b588d91b..0f98e04e85 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 463, /**/ 462, /**/ From 3329c7e926c0e0c495efc301b45213a9dd84c078 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 14:57:52 +0100 Subject: [PATCH 14/28] Added tag v7-3-463 for changeset 8e0fe5a723ad --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 31e797a7b2..513c550b6a 100644 --- a/.hgtags +++ b/.hgtags @@ -1799,3 +1799,4 @@ cb2ae92ce106de532c53f8a16a82bc2bf6edacd2 v7-3-459 981c7ad9dd48cac1b4030b97c2f0dc0b8fe82337 v7-3-460 de60f6fa3d8d77442a39ec13efef89f6ca76af03 v7-3-461 70eff6af1158f9dc99118ba73e81f456015c3ebd v7-3-462 +8e0fe5a723adfb45c44978083db7aeac11e6d72b v7-3-463 From 3891a2c32dba085ab0593bffbbd4e5c827a8f35e Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 18:03:10 +0100 Subject: [PATCH 15/28] updated for version 7.3.464 Problem: Compiler warning for sprintf. Solution: Put the length in a variable. (Dominique Pelle) --- src/version.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/version.c b/src/version.c index 0f98e04e85..b5e7a0ccb3 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,10 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 464, +/**/ + 464, /**/ 463, /**/ @@ -2187,12 +2191,9 @@ do_intro_line(row, mesg, add_version, attr) /* Check for 9.9x or 9.9xx, alpha/beta version */ if (isalpha((int)vers[3])) { - if (isalpha((int)vers[4])) - sprintf((char *)vers + 5, ".%d%s", highest_patch(), - mediumVersion + 5); - else - sprintf((char *)vers + 4, ".%d%s", highest_patch(), - mediumVersion + 4); + int len = (isalpha((int)vers[4])) ? 5 : 4; + sprintf((char *)vers + len, ".%d%s", highest_patch(), + mediumVersion + len); } else sprintf((char *)vers + 3, ".%d", highest_patch()); From 254b2640fd883b9318cc95278f3666b4d998302d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 18:03:10 +0100 Subject: [PATCH 16/28] Added tag v7-3-464 for changeset 43259e4542c7 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 513c550b6a..59baf811d6 100644 --- a/.hgtags +++ b/.hgtags @@ -1800,3 +1800,4 @@ cb2ae92ce106de532c53f8a16a82bc2bf6edacd2 v7-3-459 de60f6fa3d8d77442a39ec13efef89f6ca76af03 v7-3-461 70eff6af1158f9dc99118ba73e81f456015c3ebd v7-3-462 8e0fe5a723adfb45c44978083db7aeac11e6d72b v7-3-463 +43259e4542c76e950fecc86114c43065064d1b34 v7-3-464 From 0eadfa80667aa65f0171169ae10b1d43009fc212 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 19:18:23 +0100 Subject: [PATCH 17/28] updated for version 7.3.465 Problem: Cannot get file name with newline from glob(). Solution: Add argument to glob() and expand() to indicate they must return a list. (Christian Brabandt) --- runtime/doc/eval.txt | 14 +++++---- src/eval.c | 68 ++++++++++++++++++++++++++++++++++++++------ src/ex_getln.c | 4 ++- src/version.c | 2 +- src/vim.h | 1 + 5 files changed, 72 insertions(+), 17 deletions(-) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 0b7a3ed8f3..7de0e9a311 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1746,7 +1746,8 @@ exists( {expr}) Number TRUE if {expr} exists extend( {expr1}, {expr2} [, {expr3}]) List/Dict insert items of {expr2} into {expr1} exp( {expr}) Float exponential of {expr} -expand( {expr} [, {flag}]) String expand special keywords in {expr} +expand( {expr} [, {nosuf} [, {list}]]) + any expand special keywords in {expr} feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer filereadable( {file}) Number TRUE if {file} is a readable file filewritable( {file}) Number TRUE if {file} is a writable file @@ -1800,7 +1801,8 @@ gettabwinvar( {tabnr}, {winnr}, {name}) getwinposx() Number X coord in pixels of GUI Vim window getwinposy() Number Y coord in pixels of GUI Vim window getwinvar( {nr}, {varname}) any variable {varname} in window {nr} -glob( {expr} [, {flag}]) String expand file wildcards in {expr} +glob( {expr} [, {nosuf} [, {list}]]) + any expand file wildcards in {expr} globpath( {path}, {expr} [, {flag}]) String do glob({expr}) for all dirs in {path} has( {feature}) Number TRUE if feature {feature} supported @@ -2802,10 +2804,10 @@ expand({expr} [, {flag}]) *expand()* When {expr} does not start with '%', '#' or '<', it is expanded like a file name is expanded on the command line. 'suffixes' and 'wildignore' are used, unless the optional - {flag} argument is given and it is non-zero. Names for - non-existing files are included. The "**" item can be used to - search in a directory tree. For example, to find all "README" - files in the current directory and below: > + {nosuf} argument is given and it is non-zero. + Names for non-existing files are included. The "**" item can + be used to search in a directory tree. For example, to find + all "README" files in the current directory and below: > :echo expand("**/README") < Expand() can also be used to expand variables and environment diff --git a/src/eval.c b/src/eval.c index 848c6670d6..1056422655 100644 --- a/src/eval.c +++ b/src/eval.c @@ -7852,7 +7852,7 @@ static struct fst #ifdef FEAT_FLOAT {"exp", 1, 1, f_exp}, #endif - {"expand", 1, 2, f_expand}, + {"expand", 1, 3, f_expand}, {"extend", 2, 3, f_extend}, {"feedkeys", 1, 2, f_feedkeys}, {"file_readable", 1, 1, f_filereadable}, /* obsolete */ @@ -7903,7 +7903,7 @@ static struct fst {"getwinposx", 0, 0, f_getwinposx}, {"getwinposy", 0, 0, f_getwinposy}, {"getwinvar", 2, 2, f_getwinvar}, - {"glob", 1, 2, f_glob}, + {"glob", 1, 3, f_glob}, {"globpath", 2, 3, f_globpath}, {"has", 1, 1, f_has}, {"has_key", 2, 2, f_has_key}, @@ -10019,14 +10019,33 @@ f_expand(argvars, rettv) int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND; expand_T xpc; int error = FALSE; + char_u *result; rettv->v_type = VAR_STRING; + if (argvars[1].v_type != VAR_UNKNOWN + && argvars[2].v_type != VAR_UNKNOWN + && get_tv_number_chk(&argvars[2], &error) + && !error) + { + rettv->v_type = VAR_LIST; + rettv->vval.v_list = NULL; + } + s = get_tv_string(&argvars[0]); if (*s == '%' || *s == '#' || *s == '<') { ++emsg_off; - rettv->vval.v_string = eval_vars(s, s, &len, NULL, &errormsg, NULL); + result = eval_vars(s, s, &len, NULL, &errormsg, NULL); --emsg_off; + if (rettv->v_type == VAR_LIST) + { + if (rettv_list_alloc(rettv) != FAIL && result != NULL) + list_append_string(rettv->vval.v_list, result, -1); + else + vim_free(result); + } + else + rettv->vval.v_string = result; } else { @@ -10041,7 +10060,18 @@ f_expand(argvars, rettv) xpc.xp_context = EXPAND_FILES; if (p_wic) options += WILD_ICASE; - rettv->vval.v_string = ExpandOne(&xpc, s, NULL, options, WILD_ALL); + if (rettv->v_type == VAR_STRING) + rettv->vval.v_string = ExpandOne(&xpc, s, NULL, + options, WILD_ALL); + else if (rettv_list_alloc(rettv) != FAIL) + { + int i; + + ExpandOne(&xpc, s, NULL, options, WILD_ALL_KEEP); + for (i = 0; i < xpc.xp_numfiles; i++) + list_append_string(rettv->vval.v_list, xpc.xp_files[i], -1); + ExpandCleanup(&xpc); + } } else rettv->vval.v_string = NULL; @@ -11833,19 +11863,39 @@ f_glob(argvars, rettv) int error = FALSE; /* When the optional second argument is non-zero, don't remove matches - * for 'wildignore' and don't put matches for 'suffixes' at the end. */ - if (argvars[1].v_type != VAR_UNKNOWN - && get_tv_number_chk(&argvars[1], &error)) - options |= WILD_KEEP_ALL; + * for 'wildignore' and don't put matches for 'suffixes' at the end. */ rettv->v_type = VAR_STRING; + if (argvars[1].v_type != VAR_UNKNOWN) + { + if (get_tv_number_chk(&argvars[1], &error)) + options |= WILD_KEEP_ALL; + if (argvars[2].v_type != VAR_UNKNOWN + && get_tv_number_chk(&argvars[2], &error)) + { + rettv->v_type = VAR_LIST; + rettv->vval.v_list = NULL; + } + } if (!error) { ExpandInit(&xpc); xpc.xp_context = EXPAND_FILES; if (p_wic) options += WILD_ICASE; - rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), + if (rettv->v_type == VAR_STRING) + rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), NULL, options, WILD_ALL); + else if (rettv_list_alloc(rettv) != FAIL) + { + int i; + + ExpandOne(&xpc, get_tv_string(&argvars[0]), + NULL, options, WILD_ALL_KEEP); + for (i = 0; i < xpc.xp_numfiles; i++) + list_append_string(rettv->vval.v_list, xpc.xp_files[i], -1); + + ExpandCleanup(&xpc); + } } else rettv->vval.v_string = NULL; diff --git a/src/ex_getln.c b/src/ex_getln.c index f811889d31..38775af605 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -3461,6 +3461,7 @@ nextwild(xp, type, options) * mode = WILD_PREV: use previous match in multiple match, wrap to first * mode = WILD_ALL: return all matches concatenated * mode = WILD_LONGEST: return longest matched part + * mode = WILD_ALL_KEEP: get all matches, keep matches * * options = WILD_LIST_NOTFOUND: list entries without a match * options = WILD_HOME_REPLACE: do home_replace() for buffer names @@ -3584,7 +3585,8 @@ ExpandOne(xp, str, orig, options, mode) /* * Check for matching suffixes in file names. */ - if (mode != WILD_ALL && mode != WILD_LONGEST) + if (mode != WILD_ALL && mode != WILD_ALL_KEEP + && mode != WILD_LONGEST) { if (xp->xp_numfiles) non_suf_match = xp->xp_numfiles; diff --git a/src/version.c b/src/version.c index b5e7a0ccb3..6d6261fe2e 100644 --- a/src/version.c +++ b/src/version.c @@ -715,7 +715,7 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ - 464, + 465, /**/ 464, /**/ diff --git a/src/vim.h b/src/vim.h index 127387aa0d..be182287d2 100644 --- a/src/vim.h +++ b/src/vim.h @@ -794,6 +794,7 @@ extern char *(*dyn_libintl_textdomain)(const char *domainname); #define WILD_PREV 5 #define WILD_ALL 6 #define WILD_LONGEST 7 +#define WILD_ALL_KEEP 8 #define WILD_LIST_NOTFOUND 1 #define WILD_HOME_REPLACE 2 From f62143cd226c1936becbb520eef488c0dce646e1 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 19:18:23 +0100 Subject: [PATCH 18/28] Added tag v7-3-465 for changeset d1096a4e96bd --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 59baf811d6..2dbb018e3c 100644 --- a/.hgtags +++ b/.hgtags @@ -1801,3 +1801,4 @@ de60f6fa3d8d77442a39ec13efef89f6ca76af03 v7-3-461 70eff6af1158f9dc99118ba73e81f456015c3ebd v7-3-462 8e0fe5a723adfb45c44978083db7aeac11e6d72b v7-3-463 43259e4542c76e950fecc86114c43065064d1b34 v7-3-464 +d1096a4e96bdd5bfc0ce2f1aaddcbff1475c69ad v7-3-465 From 66728539a0f873742215d7b02c2e24dd459b8f7a Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 19:30:36 +0100 Subject: [PATCH 19/28] updated for version 7.3.466 Problem: Get ml_get error hen ":behave mswin" was used and selecting several lines. (A. Sinan Unur) Solution: Adjust the end of the operation. (Christian Brabandt) --- src/ops.c | 3 +++ src/version.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/ops.c b/src/ops.c index e8362cd5f5..1ddff28824 100644 --- a/src/ops.c +++ b/src/ops.c @@ -1957,6 +1957,9 @@ op_delete(oap) ++curwin->w_cursor.lnum; del_lines((long)(oap->line_count - 2), FALSE); + if (delete_last_line) + oap->end.lnum = curbuf->b_ml.ml_line_count; + n = (oap->end.col + 1 - !oap->inclusive); if (oap->inclusive && delete_last_line && n > (int)STRLEN(ml_get(oap->end.lnum))) diff --git a/src/version.c b/src/version.c index 6d6261fe2e..fca10e9945 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 466, /**/ 465, /**/ From c7f59be2d93bd485d0adf40ce324a9a21054c8bf Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 19:30:37 +0100 Subject: [PATCH 20/28] Added tag v7-3-466 for changeset df9c7798b5e2 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 2dbb018e3c..86a8e8f6bb 100644 --- a/.hgtags +++ b/.hgtags @@ -1802,3 +1802,4 @@ de60f6fa3d8d77442a39ec13efef89f6ca76af03 v7-3-461 8e0fe5a723adfb45c44978083db7aeac11e6d72b v7-3-463 43259e4542c76e950fecc86114c43065064d1b34 v7-3-464 d1096a4e96bdd5bfc0ce2f1aaddcbff1475c69ad v7-3-465 +df9c7798b5e2c022310cd12e199c9de8d866aa39 v7-3-466 From 77bb77dd36d6f3006ecddd139e5f14982d945357 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 19:38:55 +0100 Subject: [PATCH 21/28] updated for version 7.3.467 Problem: Cursor positioned wrong at the command line when regaining focus and using some input method. Solution: Do not position the cursor in command line mode. --- src/mbyte.c | 3 ++- src/version.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mbyte.c b/src/mbyte.c index 2a202f3408..75b41ead98 100644 --- a/src/mbyte.c +++ b/src/mbyte.c @@ -4504,7 +4504,8 @@ im_show_info(void) vgetc_busy = TRUE; showmode(); vgetc_busy = old_vgetc_busy; - setcursor(); + if ((State & NORMAL) || (State & INSERT)) + setcursor(); out_flush(); } diff --git a/src/version.c b/src/version.c index fca10e9945..7a22e46cb6 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 467, /**/ 466, /**/ From 94ccf03fdc7ba83cab377a2800b303d9adbc4ee6 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 19:38:56 +0100 Subject: [PATCH 22/28] Added tag v7-3-467 for changeset 276d58e9265c --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 86a8e8f6bb..4576a2e713 100644 --- a/.hgtags +++ b/.hgtags @@ -1803,3 +1803,4 @@ de60f6fa3d8d77442a39ec13efef89f6ca76af03 v7-3-461 43259e4542c76e950fecc86114c43065064d1b34 v7-3-464 d1096a4e96bdd5bfc0ce2f1aaddcbff1475c69ad v7-3-465 df9c7798b5e2c022310cd12e199c9de8d866aa39 v7-3-466 +276d58e9265cfee76c04bc5450681090900a16f4 v7-3-467 From bcdac5466f728039fb4a22dc10fb7e3b75c08ef7 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 20:13:49 +0100 Subject: [PATCH 23/28] updated for version 7.3.468 Problem: For some compilers the error file is not easily readable. Solution: Use QuickFixCmdPre for more commands. (Marcin Szamotulski) --- runtime/doc/autocmd.txt | 5 ++++- src/quickfix.c | 31 ++++++++++++++++++++++++++++++- src/version.c | 2 ++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index d6338ee675..44d2d62c46 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -711,7 +711,10 @@ QuickFixCmdPre Before a quickfix command is run (|:make|, *QuickFixCmdPost* QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix command is run, before jumping to the first - location. See |QuickFixCmdPost-example|. + location. For |:cfile| and |:lfile| commands + it is run after error file is read and before + moving to the first error. + See |QuickFixCmdPost-example|. *RemoteReply* RemoteReply When a reply from a Vim that functions as server was received |server2client()|. The diff --git a/src/quickfix.c b/src/quickfix.c index 19eb0587a4..a581eb06c6 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -2995,11 +2995,28 @@ ex_cfile(eap) { win_T *wp = NULL; qf_info_T *qi = &ql_info; +#ifdef FEAT_AUTOCMD + char_u *au_name = NULL; +#endif if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile - || eap->cmdidx == CMD_laddfile) + || eap->cmdidx == CMD_laddfile) wp = curwin; +#ifdef FEAT_AUTOCMD + switch (eap->cmdidx) + { + case CMD_cfile: au_name = (char_u *)"cfile"; break; + case CMD_cgetfile: au_name = (char_u *)"cgetfile"; break; + case CMD_caddfile: au_name = (char_u *)"caddfile"; break; + case CMD_lfile: au_name = (char_u *)"lfile"; break; + case CMD_lgetfile: au_name = (char_u *)"lgetfile"; break; + case CMD_laddfile: au_name = (char_u *)"laddfile"; break; + default: break; + } + if (au_name != NULL) + apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name, NULL, FALSE, curbuf); +#endif #ifdef FEAT_BROWSE if (cmdmod.browse) { @@ -3031,10 +3048,22 @@ ex_cfile(eap) && (eap->cmdidx == CMD_cfile || eap->cmdidx == CMD_lfile)) { +#ifdef FEAT_AUTOCMD + if (au_name != NULL) + apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf); +#endif if (wp != NULL) qi = GET_LOC_LIST(wp); qf_jump(qi, 0, 0, eap->forceit); /* display first error */ } + + else + { +#ifdef FEAT_AUTOCMD + if (au_name != NULL) + apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf); +#endif + } } /* diff --git a/src/version.c b/src/version.c index 7a22e46cb6..65ad51df5a 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 468, /**/ 467, /**/ From c272d1ec1a6fe4a80baec7c40aace58aca9ed8a6 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 20:13:49 +0100 Subject: [PATCH 24/28] Added tag v7-3-468 for changeset 38a135730423 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 4576a2e713..32523b54f3 100644 --- a/.hgtags +++ b/.hgtags @@ -1804,3 +1804,4 @@ de60f6fa3d8d77442a39ec13efef89f6ca76af03 v7-3-461 d1096a4e96bdd5bfc0ce2f1aaddcbff1475c69ad v7-3-465 df9c7798b5e2c022310cd12e199c9de8d866aa39 v7-3-466 276d58e9265cfee76c04bc5450681090900a16f4 v7-3-467 +38a1357304234dcea96f96019abf0f3e5ae290ab v7-3-468 From 1225c86be2e71360cd1c9c52c228a455b455de55 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 22:52:36 +0100 Subject: [PATCH 25/28] updated for version 7.3.469 Problem: Compiler warning for unused argument without some features. Solution: Add UNUSED. --- src/buffer.c | 2 +- src/version.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/buffer.c b/src/buffer.c index 1b5ae9f9a2..5fda06d71b 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -329,7 +329,7 @@ close_buffer(win, buf, action, abort_if_last) win_T *win; /* if not NULL, set b_last_cursor */ buf_T *buf; int action; - int abort_if_last; + int abort_if_last UNUSED; { #ifdef FEAT_AUTOCMD int is_curbuf; diff --git a/src/version.c b/src/version.c index 65ad51df5a..2932be8c19 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 469, /**/ 468, /**/ From 3c9096f317297d86382613ad259e3a4787a020cc Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 22:52:36 +0100 Subject: [PATCH 26/28] Added tag v7-3-469 for changeset e61c3b09ae86 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 32523b54f3..e22ec04f85 100644 --- a/.hgtags +++ b/.hgtags @@ -1805,3 +1805,4 @@ d1096a4e96bdd5bfc0ce2f1aaddcbff1475c69ad v7-3-465 df9c7798b5e2c022310cd12e199c9de8d866aa39 v7-3-466 276d58e9265cfee76c04bc5450681090900a16f4 v7-3-467 38a1357304234dcea96f96019abf0f3e5ae290ab v7-3-468 +e61c3b09ae86a8a448ad2d028df6fa6b9778666b v7-3-469 From 5e616164d6aa02ba0742438a40cdddd82e00aef6 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 22:55:20 +0100 Subject: [PATCH 27/28] updated for version 7.3.470 Problem: Test 62 fails when compiled without GUI and X11. Solution: Don't test :drop when it is not supported. --- src/testdir/test62.in | 8 +++++++- src/version.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/testdir/test62.in b/src/testdir/test62.in index c549c8b438..1e514cd21a 100644 --- a/src/testdir/test62.in +++ b/src/testdir/test62.in @@ -49,7 +49,7 @@ STARTTEST :tabclose :call append(line('$'), test_status) :" -:" +:if has('gui') || has('clientserver') :" Test for ":tab drop exist-file" to keep current window. :sp test1 :tab drop test1 @@ -85,6 +85,12 @@ STARTTEST :tabclose :q :call append(line('$'), test_status) +:else +:" :drop not supported +:call append(line('$'), 'tab drop 1: pass') +:call append(line('$'), 'tab drop 2: pass') +:call append(line('$'), 'tab drop 3: pass') +:endif :" :" :/^Results/,$w! test.out diff --git a/src/version.c b/src/version.c index 2932be8c19..6b773ffd0a 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 470, /**/ 469, /**/ From 419b0932eccd27f705a8136cf85788002fbaefd3 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 7 Mar 2012 22:55:21 +0100 Subject: [PATCH 28/28] Added tag v7-3-470 for changeset 636e4db6e207 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index e22ec04f85..874cf932ba 100644 --- a/.hgtags +++ b/.hgtags @@ -1806,3 +1806,4 @@ df9c7798b5e2c022310cd12e199c9de8d866aa39 v7-3-466 276d58e9265cfee76c04bc5450681090900a16f4 v7-3-467 38a1357304234dcea96f96019abf0f3e5ae290ab v7-3-468 e61c3b09ae86a8a448ad2d028df6fa6b9778666b v7-3-469 +636e4db6e2075bd22640cfc8229af62059f8ffe0 v7-3-470