diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/7.0.001 b/7.0.001 deleted file mode 100644 index 535e8ded..00000000 --- a/7.0.001 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.001 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.001 -Problem: ":set spellsuggest+=10" does not work. (Suresh Govindachar) -Solution: Add P_COMMA to the 'spellsuggest' flags. -Files: src/option.c - - -*** ../vim-7.0.000/src/option.c Wed May 3 23:26:04 2006 ---- src/option.c Sun May 7 17:54:46 2006 -*************** -*** 2294,2300 **** - {(char_u *)0L, (char_u *)0L} - #endif - }, -! {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE, - #ifdef FEAT_SPELL - (char_u *)&p_sps, PV_NONE, - {(char_u *)"best", (char_u *)0L} ---- 2294,2300 ---- - {(char_u *)0L, (char_u *)0L} - #endif - }, -! {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_COMMA, - #ifdef FEAT_SPELL - (char_u *)&p_sps, PV_NONE, - {(char_u *)"best", (char_u *)0L} -*** ../vim-7.0.000/src/version.c Wed May 3 00:04:24 2006 ---- src/version.c Tue May 9 14:23:20 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 1, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -70. ISDN lines are added to your house on a hourly basis - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.002 b/7.0.002 deleted file mode 100644 index af9e8db6..00000000 --- a/7.0.002 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.002 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.002 -Problem: C omni completion has a problem with tags files with a path - containing "#" or "%". -Solution: Escape these characters. (Sebastian Baberowski) -Files: runtime/autoload/ccomplete.vim - - -*** ../vim-7.0.001/runtime/autoload/ccomplete.vim Wed May 10 15:22:54 2006 ---- runtime/autoload/ccomplete.vim Mon May 8 13:52:07 2006 -*************** -*** 1,7 **** - " Vim completion script - " Language: C - " Maintainer: Bram Moolenaar -! " Last Change: 2006 May 03 - - - " This function is used for the 'omnifunc' option. ---- 1,7 ---- - " Vim completion script - " Language: C - " Maintainer: Bram Moolenaar -! " Last Change: 2006 May 08 - - - " This function is used for the 'omnifunc' option. -*************** -*** 458,464 **** - " member. - function! s:StructMembers(typename, items, all) - " Todo: What about local structures? -! let fnames = join(map(tagfiles(), 'escape(v:val, " \\")')) - if fnames == '' - return [] - endif ---- 458,464 ---- - " member. - function! s:StructMembers(typename, items, all) - " Todo: What about local structures? -! let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) - if fnames == '' - return [] - endif -*** ../vim-7.0.001/src/version.c Wed May 10 15:22:50 2006 ---- src/version.c Wed May 10 15:24:42 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 2, - /**/ - --- -From "know your smileys": - =):-) Uncle Sam - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.003 b/7.0.003 deleted file mode 100644 index 228bfeae..00000000 --- a/7.0.003 +++ /dev/null @@ -1,62 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.003 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.003 -Problem: GUI: clicking in the lower part of a label in the tab pages line - while 'mousefocus' is set may warp the mouse pointer. (Robert - Webb) -Solution: Check for a negative mouse position. -Files: src/gui.c - - -*** ../vim-7.0.002/src/gui.c Wed May 10 15:22:49 2006 ---- src/gui.c Mon May 8 16:31:49 2006 -*************** -*** 4603,4613 **** - /* Don't move the mouse when it's left or right of the Vim window */ - if (x < 0 || x > Columns * gui.char_width) - return; - # ifdef FEAT_WINDOWS -! if (Y_2_ROW(y) >= tabline_height()) -! # else -! if (y >= 0) - # endif - wp = xy2win(x, y); - if (wp != curwin && wp != NULL) /* If in other than current window */ - { ---- 4603,4613 ---- - /* Don't move the mouse when it's left or right of the Vim window */ - if (x < 0 || x > Columns * gui.char_width) - return; -+ if (y >= 0 - # ifdef FEAT_WINDOWS -! && Y_2_ROW(y) >= tabline_height() - # endif -+ ) - wp = xy2win(x, y); - if (wp != curwin && wp != NULL) /* If in other than current window */ - { -*** ../vim-7.0.002/src/version.c Wed May 10 15:25:45 2006 ---- src/version.c Wed May 10 17:12:27 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 3, - /**/ - --- -From "know your smileys": - 2B|^2B Message from Shakespeare - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.004 b/7.0.004 deleted file mode 100644 index e6e80c8e..00000000 --- a/7.0.004 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.004 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.004 -Problem: Compiler warning for debug_saved used before set. (Todd Blumer) -Solution: Remove the "else" for calling save_dbg_stuff(). -Files: src/ex_docmd.c - - -*** ../vim-7.0.003/src/ex_docmd.c Wed May 10 15:22:49 2006 ---- src/ex_docmd.c Mon May 8 16:43:34 2006 -*************** -*** 833,839 **** - * If requested, store and reset the global values controlling the - * exception handling (used when debugging). - */ -! else if (flags & DOCMD_EXCRESET) - save_dbg_stuff(&debug_saved); - - initial_trylevel = trylevel; ---- 833,839 ---- - * If requested, store and reset the global values controlling the - * exception handling (used when debugging). - */ -! if (flags & DOCMD_EXCRESET) - save_dbg_stuff(&debug_saved); - - initial_trylevel = trylevel; -*** ../vim-7.0.003/src/version.c Wed May 10 17:12:51 2006 ---- src/version.c Wed May 10 17:14:34 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 4, - /**/ - --- -From "know your smileys": - :-D Big smile - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.005 b/7.0.005 deleted file mode 100644 index 8d6a4b72..00000000 --- a/7.0.005 +++ /dev/null @@ -1,56 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.005 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.005 (extra) -Problem: Win32: The installer doesn't remove the "autoload" and "spell" - directories. (David Fishburn) -Solution: Add the directories to the list to be removed. -Files: nsis/gvim.nsi - - -*** ../vim-7.0.004/nsis/gvim.nsi Wed May 10 15:22:50 2006 ---- nsis/gvim.nsi Mon May 8 17:57:28 2006 -*************** -*** 391,396 **** ---- 391,397 ---- - ClearErrors - # Remove everything but *.dll files. Avoids that - # a lot remains when gvimext.dll cannot be deleted. -+ RMDir /r $0\autoload - RMDir /r $0\colors - RMDir /r $0\compiler - RMDir /r $0\doc -*************** -*** 398,403 **** ---- 399,405 ---- - RMDir /r $0\indent - RMDir /r $0\macros - RMDir /r $0\plugin -+ RMDir /r $0\spell - RMDir /r $0\syntax - RMDir /r $0\tools - RMDir /r $0\tutor -*** ../vim-7.0.004/src/version.c Wed May 10 17:15:05 2006 ---- src/version.c Wed May 10 17:24:02 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 5, - /**/ - --- -From "know your smileys": - :-& Eating spaghetti - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.006 b/7.0.006 deleted file mode 100644 index dca5e354..00000000 --- a/7.0.006 +++ /dev/null @@ -1,46 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.006 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.006 -Problem: Mac: "make shadow" doesn't make a link for infplist.xml. (Axel - Kielhorn) -Solution: Make the link. -Files: src/Makefile - - -*** ../vim-7.0.005/src/Makefile Wed May 10 15:22:49 2006 ---- src/Makefile Wed May 10 17:26:19 2006 -*************** -*** 2177,2182 **** ---- 2177,2183 ---- - cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* . - if test -d $(RSRC_DIR); then \ - cd $(SHADOWDIR); \ -+ ln -s ../infplist.xml .; \ - ln -s ../$(RSRC_DIR) ../os_mac.rsr.hqx ../dehqx.py .; \ - fi - mkdir $(SHADOWDIR)/testdir -*** ../vim-7.0.005/src/version.c Wed May 10 17:24:26 2006 ---- src/version.c Wed May 10 17:26:09 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 6, - /**/ - --- -From "know your smileys": - @:-() Elvis Presley - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.007 b/7.0.007 deleted file mode 100644 index e25742b6..00000000 --- a/7.0.007 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.007 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.007 -Problem: AIX: compiling fails for message.c. (Ruediger Hornig) -Solution: Move the #if outside of memchr(). -Files: src/message.c - - -*** ../vim-7.0.006/src/message.c Wed May 10 15:22:50 2006 ---- src/message.c Tue May 9 10:36:56 2006 -*************** -*** 4175,4189 **** - str_arg_l = 0; - else - { -! /* memchr on HP does not like n > 2^31 !!! */ -! char *q = memchr(str_arg, '\0', - #if SIZEOF_INT <= 2 -! precision - #else -! precision <= (size_t)0x7fffffffL ? precision -! : (size_t)0x7fffffffL - #endif -- ); - str_arg_l = (q == NULL) ? precision : q - str_arg; - } - break; ---- 4175,4190 ---- - str_arg_l = 0; - else - { -! /* Don't put the #if inside memchr(), it can be a -! * macro. */ - #if SIZEOF_INT <= 2 -! char *q = memchr(str_arg, '\0', precision); - #else -! /* memchr on HP does not like n > 2^31 !!! */ -! char *q = memchr(str_arg, '\0', -! precision <= (size_t)0x7fffffffL ? precision -! : (size_t)0x7fffffffL); - #endif - str_arg_l = (q == NULL) ? precision : q - str_arg; - } - break; -*** ../vim-7.0.006/src/version.c Wed May 10 17:26:37 2006 ---- src/version.c Wed May 10 17:36:03 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 7, - /**/ - --- -Momento mori, ergo carpe diem - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.008 b/7.0.008 deleted file mode 100644 index 27185484..00000000 --- a/7.0.008 +++ /dev/null @@ -1,74 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.008 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.008 -Problem: Can't call a function that uses both and {expr}. (Thomas) -Solution: Check both the expanded and unexpanded name for . -Files: src/eval.c - - -*** ../vim-7.0.007/src/eval.c Wed May 10 15:22:49 2006 ---- src/eval.c Wed May 10 12:11:42 2006 -*************** -*** 11372,11378 **** - if (argvars[2].v_type != VAR_UNKNOWN) - { - char_u *xp_name; -! int xp_namelen; - long argt; - - rettv->vval.v_string = NULL; ---- 11372,11378 ---- - if (argvars[2].v_type != VAR_UNKNOWN) - { - char_u *xp_name; -! int xp_namelen; - long argt; - - rettv->vval.v_string = NULL; -*************** -*** 18963,18969 **** - else if (lead > 0) - { - lead = 3; -! if (eval_fname_sid(lv.ll_exp_name != NULL ? lv.ll_exp_name : *pp)) - { - /* It's "s:" or "" */ - if (current_SID <= 0) ---- 18963,18970 ---- - else if (lead > 0) - { - lead = 3; -! if ((lv.ll_exp_name != NULL && eval_fname_sid(lv.ll_exp_name)) -! || eval_fname_sid(*pp)) - { - /* It's "s:" or "" */ - if (current_SID <= 0) -*** ../vim-7.0.007/src/version.c Wed May 10 17:38:05 2006 ---- src/version.c Wed May 10 17:39:46 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 8, - /**/ - --- -From "know your smileys": - % Bike accident. A bit far-fetched, I suppose; although... - o _ _ _ - _o /\_ _ \\o (_)\__/o (_) - _< \_ _>(_) (_)/<_ \_| \ _|/' \/ - (_)>(_) (_) (_) (_) (_)' _\o_ - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.009 b/7.0.009 deleted file mode 100644 index 4eaf8d09..00000000 --- a/7.0.009 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.009 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.009 -Problem: ml_get errors with both 'sidescroll' and 'spell' set. -Solution: Use ml_get_buf() instead of ml_get(), get the line from the right - buffer, not the current one. -Files: src/spell.c - - -*** ../vim-7.0.008/src/spell.c Wed May 10 15:22:50 2006 ---- src/spell.c Tue May 9 18:55:04 2006 -*************** -*** 2108,2114 **** - * possible. */ - STRCPY(buf, line); - if (lnum < wp->w_buffer->b_ml.ml_line_count) -! spell_cat_line(buf + STRLEN(buf), ml_get(lnum + 1), MAXWLEN); - - p = buf + skip; - endp = buf + len; ---- 2108,2115 ---- - * possible. */ - STRCPY(buf, line); - if (lnum < wp->w_buffer->b_ml.ml_line_count) -! spell_cat_line(buf + STRLEN(buf), -! ml_get_buf(wp->w_buffer, lnum + 1, FALSE), MAXWLEN); - - p = buf + skip; - endp = buf + len; -*** ../vim-7.0.008/src/version.c Wed May 10 17:40:17 2006 ---- src/version.c Wed May 10 17:50:20 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 9, - /**/ - --- -I AM THANKFUL... -...for the taxes that I pay because it means that I am employed. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.010 b/7.0.010 deleted file mode 100644 index de1d2867..00000000 --- a/7.0.010 +++ /dev/null @@ -1,118 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.010 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.010 -Problem: The spellfile plugin required typing login name and password. -Solution: Use "anonymous" and "vim7user" by default. No need to setup a - .netrc file. -Files: runtime/autoload/spellfile.vim - - -*** ../vim-7.0.009/runtime/autoload/spellfile.vim Wed May 10 15:22:54 2006 ---- runtime/autoload/spellfile.vim Wed May 10 17:55:15 2006 -*************** -*** 1,9 **** - " Vim script to download a missing spell file - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Feb 01 - - if !exists('g:spellfile_URL') -! let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/unstable/runtime/spell' - endif - let s:spellfile_URL = '' " Start with nothing so that s:donedict is reset. - ---- 1,9 ---- - " Vim script to download a missing spell file - " Maintainer: Bram Moolenaar -! " Last Change: 2006 May 10 - - if !exists('g:spellfile_URL') -! let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell' - endif - let s:spellfile_URL = '' " Start with nothing so that s:donedict is reset. - -*************** -*** 61,73 **** - new - setlocal bin - echo 'Downloading ' . fname . '...' -! exe 'Nread ' g:spellfile_URL . '/' . fname - if getline(2) !~ 'VIMspell' - " Didn't work, perhaps there is an ASCII one. - g/^/d - let fname = a:lang . '.ascii.spl' - echo 'Could not find it, trying ' . fname . '...' -! exe 'Nread ' g:spellfile_URL . '/' . fname - if getline(2) !~ 'VIMspell' - echo 'Sorry, downloading failed' - bwipe! ---- 61,73 ---- - new - setlocal bin - echo 'Downloading ' . fname . '...' -! call spellfile#Nread(fname) - if getline(2) !~ 'VIMspell' - " Didn't work, perhaps there is an ASCII one. - g/^/d - let fname = a:lang . '.ascii.spl' - echo 'Could not find it, trying ' . fname . '...' -! call spellfile#Nread(fname) - if getline(2) !~ 'VIMspell' - echo 'Sorry, downloading failed' - bwipe! -*************** -*** 95,101 **** - g/^/d - let fname = substitute(fname, '\.spl$', '.sug', '') - echo 'Downloading ' . fname . '...' -! exe 'Nread ' g:spellfile_URL . '/' . fname - if getline(2) !~ 'VIMsug' - echo 'Sorry, downloading failed' - else ---- 95,101 ---- - g/^/d - let fname = substitute(fname, '\.spl$', '.sug', '') - echo 'Downloading ' . fname . '...' -! call spellfile#Nread(fname) - if getline(2) !~ 'VIMsug' - echo 'Sorry, downloading failed' - else -*************** -*** 108,111 **** ---- 108,118 ---- - - bwipe - endif -+ endfunc -+ -+ " Read "fname" from the ftp server. -+ function! spellfile#Nread(fname) -+ let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '') -+ let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '') -+ exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"' - endfunc -*** ../vim-7.0.009/src/version.c Wed May 10 17:51:22 2006 ---- src/version.c Wed May 10 17:53:53 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 10, - /**/ - --- -I AM THANKFUL... -...for the mess to clean after a party because it means I have -been surrounded by friends. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.011 b/7.0.011 deleted file mode 100644 index a3c65e70..00000000 --- a/7.0.011 +++ /dev/null @@ -1,65 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.011 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.011 -Problem: Can't compile without the folding and with the eval feature. -Solution: Add an #ifdef. (Vallimar) -Files: src/option.c - - -*** ../vim-7.0.010/src/option.c Wed May 10 15:22:50 2006 ---- src/option.c Wed May 10 19:37:10 2006 -*************** -*** 5227,5239 **** - case PV_STL: return &curwin->w_p_stl_flags; - #endif - #ifdef FEAT_EVAL - case PV_FDE: return &curwin->w_p_fde_flags; - case PV_FDT: return &curwin->w_p_fdt_flags; - # ifdef FEAT_BEVAL - case PV_BEXPR: return &curbuf->b_p_bexpr_flags; - # endif -- #endif -- #if defined(FEAT_EVAL) - # if defined(FEAT_CINDENT) - case PV_INDE: return &curbuf->b_p_inde_flags; - # endif ---- 5227,5239 ---- - case PV_STL: return &curwin->w_p_stl_flags; - #endif - #ifdef FEAT_EVAL -+ # ifdef FEAT_FOLDING - case PV_FDE: return &curwin->w_p_fde_flags; - case PV_FDT: return &curwin->w_p_fdt_flags; -+ # endif - # ifdef FEAT_BEVAL - case PV_BEXPR: return &curbuf->b_p_bexpr_flags; - # endif - # if defined(FEAT_CINDENT) - case PV_INDE: return &curbuf->b_p_inde_flags; - # endif -*** ../vim-7.0.010/src/version.c Wed May 10 17:55:37 2006 ---- src/version.c Thu May 11 19:22:54 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 11, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -112. You are amazed that anyone uses a phone without a modem on it...let - alone hear actual voices. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.012 b/7.0.012 deleted file mode 100644 index 573da0cb..00000000 --- a/7.0.012 +++ /dev/null @@ -1,84 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.012 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.012 -Problem: Using the matchparen plugin, moving the cursor in Insert mode to a - shorter line that ends in a brace, changes the preferred column -Solution: Use winsaveview()/winrestview() instead of getpos()/setpos(). -Files: runtime/plugin/matchparen.vim - - -*** ../vim-7.0.011/runtime/plugin/matchparen.vim Wed May 10 15:22:55 2006 ---- runtime/plugin/matchparen.vim Thu May 11 14:42:55 2006 -*************** -*** 1,6 **** - " Vim plugin for showing matching parens - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Apr 27 - - " Exit quickly when: - " - this plugin was already loaded (or disabled) ---- 1,6 ---- - " Vim plugin for showing matching parens - " Maintainer: Bram Moolenaar -! " Last Change: 2006 May 11 - - " Exit quickly when: - " - this plugin was already loaded (or disabled) -*************** -*** 90,96 **** - " Find the match. When it was just before the cursor move it there for a - " moment. - if before > 0 -! let save_cursor = getpos('.') - call cursor(c_lnum, c_col - before) - endif - ---- 90,96 ---- - " Find the match. When it was just before the cursor move it there for a - " moment. - if before > 0 -! let save_cursor = winsaveview() - call cursor(c_lnum, c_col - before) - endif - -*************** -*** 102,108 **** - let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) - - if before > 0 -! call setpos('.', save_cursor) - endif - - " If a match is found setup match highlighting. ---- 102,108 ---- - let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) - - if before > 0 -! call winrestview(save_cursor) - endif - - " If a match is found setup match highlighting. -*** ../vim-7.0.011/src/version.c Thu May 11 19:24:16 2006 ---- src/version.c Thu May 11 19:29:58 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 12, - /**/ - --- -Corduroy pillows: They're making headlines! - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.013 b/7.0.013 deleted file mode 100644 index 423ea31e..00000000 --- a/7.0.013 +++ /dev/null @@ -1,154 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.013 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.013 -Problem: Insert mode completion: using CTRL-L to add an extra character - also deselects the current match, making it impossible to use - CTRL-L a second time. -Solution: Keep the current match. Also make CTRL-L work at the original - text, using the first displayed match. -Files: src/edit.c - - -*** ../vim-7.0.012/src/edit.c Wed May 10 15:22:49 2006 ---- src/edit.c Thu May 11 10:38:54 2006 -*************** -*** 751,757 **** - continue; - } - -! /* Pressing CTRL-Y selects the current match. Shen - * compl_enter_selects is set the Enter key does the same. */ - if (c == Ctrl_Y || (compl_enter_selects - && (c == CAR || c == K_KENTER || c == NL))) ---- 751,757 ---- - continue; - } - -! /* Pressing CTRL-Y selects the current match. When - * compl_enter_selects is set the Enter key does the same. */ - if (c == Ctrl_Y || (compl_enter_selects - && (c == CAR || c == K_KENTER || c == NL))) -*************** -*** 3046,3052 **** - ins_compl_delete(); - ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); - compl_used_match = FALSE; -- compl_enter_selects = FALSE; - - if (compl_started) - ins_compl_set_original_text(compl_leader); ---- 3046,3051 ---- -*************** -*** 3076,3081 **** ---- 3075,3081 ---- - compl_restarting = FALSE; - } - -+ #if 0 /* disabled, made CTRL-L, BS and typing char jump to original text. */ - if (!compl_used_match) - { - /* Go to the original text, since none of the matches is inserted. */ -*************** -*** 3087,3092 **** ---- 3087,3094 ---- - compl_curr_match = compl_shown_match; - compl_shows_dir = compl_direction; - } -+ #endif -+ compl_enter_selects = !compl_used_match; - - /* Show the popup menu with a different set of matches. */ - ins_compl_show_pum(); -*************** -*** 3175,3184 **** - char_u *p; - int len = curwin->w_cursor.col - compl_col; - int c; - - p = compl_shown_match->cp_str; - if ((int)STRLEN(p) <= len) /* the match is too short */ -! return; - p += len; - #ifdef FEAT_MBYTE - c = mb_ptr2char(p); ---- 3177,3208 ---- - char_u *p; - int len = curwin->w_cursor.col - compl_col; - int c; -+ compl_T *cp; - - p = compl_shown_match->cp_str; - if ((int)STRLEN(p) <= len) /* the match is too short */ -! { -! /* When still at the original match use the first entry that matches -! * the leader. */ -! if (compl_shown_match->cp_flags & ORIGINAL_TEXT) -! { -! p = NULL; -! for (cp = compl_shown_match->cp_next; cp != NULL -! && cp != compl_first_match; cp = cp->cp_next) -! { -! if (ins_compl_equal(cp, compl_leader, -! (int)STRLEN(compl_leader))) -! { -! p = cp->cp_str; -! break; -! } -! } -! if (p == NULL || (int)STRLEN(p) <= len) -! return; -! } -! else -! return; -! } - p += len; - #ifdef FEAT_MBYTE - c = mb_ptr2char(p); -*************** -*** 4100,4105 **** ---- 4124,4144 ---- - && compl_shown_match->cp_next != NULL - && compl_shown_match->cp_next != compl_first_match) - compl_shown_match = compl_shown_match->cp_next; -+ -+ /* If we didn't find it searching forward, and compl_shows_dir is -+ * backward, find the last match. */ -+ if (compl_shows_dir == BACKWARD -+ && !ins_compl_equal(compl_shown_match, -+ compl_leader, (int)STRLEN(compl_leader)) -+ && (compl_shown_match->cp_next == NULL -+ || compl_shown_match->cp_next == compl_first_match)) -+ { -+ while (!ins_compl_equal(compl_shown_match, -+ compl_leader, (int)STRLEN(compl_leader)) -+ && compl_shown_match->cp_prev != NULL -+ && compl_shown_match->cp_prev != compl_first_match) -+ compl_shown_match = compl_shown_match->cp_prev; -+ } - } - - if (allow_get_expansion && insert_match -*** ../vim-7.0.012/src/version.c Thu May 11 19:30:09 2006 ---- src/version.c Fri May 12 19:03:32 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 13, - /**/ - --- -I'm writing a book. I've got the page numbers done. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.014 b/7.0.014 deleted file mode 100644 index b6d927d4..00000000 --- a/7.0.014 +++ /dev/null @@ -1,189 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.014 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.014 -Problem: Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe) -Solution: Disable some code for Motif 1.2 and older. -Files: src/gui_xmebw.c - - -*** ../vim-7.0.013/src/gui_xmebw.c Wed May 10 15:22:49 2006 ---- src/gui_xmebw.c Thu May 11 19:09:32 2006 -*************** -*** 480,486 **** - || (eb->core.height <= 2 * eb->primitive.highlight_thickness)) - return; - -! #ifndef LESSTIF_VERSION - { - XmDisplay dpy; - ---- 480,486 ---- - || (eb->core.height <= 2 * eb->primitive.highlight_thickness)) - return; - -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - { - XmDisplay dpy; - -*************** -*** 641,647 **** - GC tmp_gc = NULL; - Boolean replaceGC = False; - Boolean deadjusted = False; -! #ifndef LESSTIF_VERSION - XmDisplay dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else ---- 641,647 ---- - GC tmp_gc = NULL; - Boolean replaceGC = False; - Boolean deadjusted = False; -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - XmDisplay dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else -*************** -*** 726,732 **** - if ((((ShellWidget) XtParent(XtParent(eb)))->shell.popped_up) - && _XmGetInDragMode((Widget) eb)) - { -! #ifndef LESSTIF_VERSION - XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else ---- 726,732 ---- - if ((((ShellWidget) XtParent(XtParent(eb)))->shell.popped_up) - && _XmGetInDragMode((Widget) eb)) - { -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else -*************** -*** 810,816 **** - - if (Lab_IsMenupane(eb)) - { -! #ifndef LESSTIF_VERSION - XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else ---- 810,816 ---- - - if (Lab_IsMenupane(eb)) - { -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid)); - Boolean etched_in = dpy->display.enable_etched_in_menu; - #else -*************** -*** 1150,1156 **** - Redisplay(Widget w, XEvent *event, Region region) - { - XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) w; -! #ifndef LESSTIF_VERSION - XmDisplay dpy; - XtEnum default_button_emphasis; - #endif ---- 1150,1156 ---- - Redisplay(Widget w, XEvent *event, Region region) - { - XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) w; -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - XmDisplay dpy; - XtEnum default_button_emphasis; - #endif -*************** -*** 1162,1168 **** - if (!XtIsRealized((Widget)eb)) - return; - -! #ifndef LESSTIF_VERSION - dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb)); - default_button_emphasis = dpy->display.default_button_emphasis; - #endif ---- 1162,1168 ---- - if (!XtIsRealized((Widget)eb)) - return; - -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb)); - default_button_emphasis = dpy->display.default_button_emphasis; - #endif -*************** -*** 1241,1247 **** - { - int adjust = 0; - -! #ifndef LESSTIF_VERSION - /* - * NOTE: PushButton has two types of shadows: primitive-shadow and - * default-button-shadow. If pushbutton is in a menu only primitive ---- 1241,1247 ---- - { - int adjust = 0; - -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - /* - * NOTE: PushButton has two types of shadows: primitive-shadow and - * default-button-shadow. If pushbutton is in a menu only primitive -*************** -*** 1289,1295 **** - adjust, adjust, rectwidth, rectheight, borderwidth); - } - -! #ifndef LESSTIF_VERSION - switch (default_button_emphasis) - { - case XmINTERNAL_HIGHLIGHT: ---- 1289,1295 ---- - adjust, adjust, rectwidth, rectheight, borderwidth); - } - -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - switch (default_button_emphasis) - { - case XmINTERNAL_HIGHLIGHT: -*************** -*** 1365,1371 **** - default_button_shadow_thickness = - eb->pushbutton.default_button_shadow_thickness; - -! #ifndef LESSTIF_VERSION - /* - * Compute location of bounding box to contain the - * defaultButtonShadow. ---- 1365,1371 ---- - default_button_shadow_thickness = - eb->pushbutton.default_button_shadow_thickness; - -! #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) - /* - * Compute location of bounding box to contain the - * defaultButtonShadow. -*** ../vim-7.0.013/src/version.c Fri May 12 19:10:03 2006 ---- src/version.c Fri May 12 19:23:12 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 14, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -126. You brag to all of your friends about your date Saturday night...but - you don't tell them it was only in a chat room. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.015 b/7.0.015 deleted file mode 100644 index acc59281..00000000 --- a/7.0.015 +++ /dev/null @@ -1,204 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.015 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.015 -Problem: Athena: compilation problems with modern compiler. -Solution: Avoid type casts for lvalue. (Alexey Froloff) -Files: src/gui_at_fs.c - - -*** ../vim-7.0.014/src/gui_at_fs.c Wed May 10 15:22:49 2006 ---- src/gui_at_fs.c Fri May 12 11:26:24 2006 -*************** -*** 1861,1887 **** - XtPointer pnew; - { - SFDir *dir; -! int nw; - - dir = &(SFdirs[SFdirPtr + (int)(long)n]); - - #ifdef FEAT_GUI_NEXTAW -! if ((int)(long)pnew < 0) - { -! if ((int)(long)pnew > -SFvScrollHeight) -! (int)(long)pnew = -1; - else -! (int)(long)pnew = -SFlistSize; - } -! else if ((int)(long)pnew > 0) - { -! if ((int)(long)pnew < SFvScrollHeight) -! (int)(long)pnew = 1; - else -! (int)(long)pnew = SFlistSize; - } - #endif -! nw = dir->vOrigin + (int)(long)pnew; - - if (nw > dir->nEntries - SFlistSize) - nw = dir->nEntries - SFlistSize; ---- 1861,1887 ---- - XtPointer pnew; - { - SFDir *dir; -! int nw = (int)(long)pnew; - - dir = &(SFdirs[SFdirPtr + (int)(long)n]); - - #ifdef FEAT_GUI_NEXTAW -! if (nw < 0) - { -! if (nw > -SFvScrollHeight) -! nw = -1; - else -! nw = -SFlistSize; - } -! else if (nw > 0) - { -! if (nw < SFvScrollHeight) -! nw = 1; - else -! nw = SFlistSize; - } - #endif -! nw += dir->vOrigin; - - if (nw > dir->nEntries - SFlistSize) - nw = dir->nEntries - SFlistSize; -*************** -*** 1941,1967 **** - XtPointer pnew; - { - SFDir *dir; -! int nw; - - dir = &(SFdirs[SFdirPtr + (int)(long)n]); - - #ifdef FEAT_GUI_NEXTAW -! if ((int)(long)pnew < 0) - { -! if ((int)(long)pnew > -SFhScrollWidth) -! (int)(long)pnew = -1; - else -! (int)(long)pnew = -SFcharsPerEntry; - } -! else if ((int)(long)pnew > 0) - { -! if ((int)(long)pnew < SFhScrollWidth) -! (int)(long)pnew = 1; - else -! (int)(long)pnew = SFcharsPerEntry; - } - #endif -! nw = dir->hOrigin + (int)(long)pnew; - - if (nw > dir->nChars - SFcharsPerEntry) - nw = dir->nChars - SFcharsPerEntry; ---- 1941,1967 ---- - XtPointer pnew; - { - SFDir *dir; -! int nw = (int)(long)pnew; - - dir = &(SFdirs[SFdirPtr + (int)(long)n]); - - #ifdef FEAT_GUI_NEXTAW -! if (nw < 0) - { -! if (nw > -SFhScrollWidth) -! nw = -1; - else -! nw = -SFcharsPerEntry; - } -! else if (nw > 0) - { -! if (nw < SFhScrollWidth) -! nw = 1; - else -! nw = SFcharsPerEntry; - } - #endif -! nw += dir->hOrigin; - - if (nw > dir->nChars - SFcharsPerEntry) - nw = dir->nChars - SFcharsPerEntry; -*************** -*** 2038,2063 **** - XtPointer client_data; - XtPointer pnew; - { -! int nw; - float f; - - #ifdef FEAT_GUI_NEXTAW -! if ((int)(long)pnew < 0) - { -! if ((int)(long)pnew > -SFpathScrollWidth) -! (int)(long)pnew = -1; - else -! (int)(long)pnew = -3; - } -! else if ((int)(long)pnew > 0) - { -! if ((int)(long)pnew < SFpathScrollWidth) -! (int)(long)pnew = 1; - else -! (int)(long)pnew = 3; - } - #endif -! nw = SFdirPtr + (int)(long)pnew; - - if (nw > SFdirEnd - 3) - nw = SFdirEnd - 3; ---- 2038,2063 ---- - XtPointer client_data; - XtPointer pnew; - { -! int nw = (int)(long)pnew; - float f; - - #ifdef FEAT_GUI_NEXTAW -! if (nw < 0) - { -! if (nw > -SFpathScrollWidth) -! nw = -1; - else -! nw = -3; - } -! else if (nw > 0) - { -! if (nw < SFpathScrollWidth) -! nw = 1; - else -! nw = 3; - } - #endif -! nw += SFdirPtr; - - if (nw > SFdirEnd - 3) - nw = SFdirEnd - 3; -*** ../vim-7.0.014/src/version.c Fri May 12 19:24:33 2006 ---- src/version.c Fri May 12 19:25:57 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 15, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -127. You bring your laptop and cellular phone to church. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.016 b/7.0.016 deleted file mode 100644 index 00f519c0..00000000 --- a/7.0.016 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.016 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.016 -Problem: Printing doesn't work for "dec-mcs" encoding. -Solution: Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of - recognized 8-bit encodings. (Mike Williams) -Files: src/mbyte.c - - -*** ../vim-7.0.015/src/mbyte.c Wed May 10 15:22:50 2006 ---- src/mbyte.c Sat May 13 09:12:43 2006 -*************** -*** 311,317 **** - - #define IDX_MACROMAN 57 - {"macroman", ENC_8BIT + ENC_MACROMAN, 0}, /* Mac OS */ -! #define IDX_COUNT 58 - }; - - /* ---- 311,321 ---- - - #define IDX_MACROMAN 57 - {"macroman", ENC_8BIT + ENC_MACROMAN, 0}, /* Mac OS */ -! #define IDX_DECMCS 58 -! {"dec-mcs", ENC_8BIT, 0}, /* DEC MCS */ -! #define IDX_HPROMAN8 59 -! {"hp-roman8", ENC_8BIT, 0}, /* HP Roman8 */ -! #define IDX_COUNT 60 - }; - - /* -*************** -*** 386,391 **** ---- 390,396 ---- - {"950", IDX_BIG5}, - #endif - {"mac", IDX_MACROMAN}, -+ {"mac-roman", IDX_MACROMAN}, - {NULL, 0} - }; - -*** ../vim-7.0.015/src/version.c Fri May 12 19:27:55 2006 ---- src/version.c Sat May 13 09:11:27 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 16, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -135. You cut classes or miss work so you can stay home and browse the web. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.017 b/7.0.017 deleted file mode 100644 index 75804491..00000000 --- a/7.0.017 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.017 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.017 (after 7.0.014) -Problem: Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe) -Solution: Adjust defines for Motif 1.2 and older. -Files: src/gui_xmebw.c - - -*** ../vim-7.0.016/src/gui_xmebw.c Fri May 12 19:24:33 2006 ---- src/gui_xmebw.c Sat May 13 12:55:01 2006 -*************** -*** 47,59 **** - #include "gui_xmebwp.h" - - /* Provide some missing wrappers, which are missed from the LessTif -! * implementation. - * - * We neither use XmeGetPixmapData or _XmGetPixmapData, since with LessTif the - * pixmap will not appear in it's caches properly. We cache the interresting - * values in XmEnhancedButtonPart instead ourself. - */ -! #ifdef LESSTIF_VERSION - # ifndef Lab_IsMenupane - # define Lab_IsMenupane(w) (Lab_MenuType(w) == (int)XmMENU_POPUP || \ - Lab_MenuType(w) == (int)XmMENU_PULLDOWN) ---- 47,59 ---- - #include "gui_xmebwp.h" - - /* Provide some missing wrappers, which are missed from the LessTif -! * implementation. Also missing in Motif 1.2 and earlier. - * - * We neither use XmeGetPixmapData or _XmGetPixmapData, since with LessTif the - * pixmap will not appear in it's caches properly. We cache the interresting - * values in XmEnhancedButtonPart instead ourself. - */ -! #if defined(LESSTIF_VERSION) || (XmVersion <= 1002) - # ifndef Lab_IsMenupane - # define Lab_IsMenupane(w) (Lab_MenuType(w) == (int)XmMENU_POPUP || \ - Lab_MenuType(w) == (int)XmMENU_PULLDOWN) -*** ../vim-7.0.016/src/version.c Sat May 13 09:16:38 2006 ---- src/version.c Sat May 13 13:00:03 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 17, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -141. You'd rather go to http://www.weather.com/ than look out your window. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.018 b/7.0.018 deleted file mode 100644 index 89d146bb..00000000 --- a/7.0.018 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.018 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.018 -Problem: VMS: plugins are not loaded on startup. -Solution: Remove "**" from the path. (Zoltan Arpadffy) -Files: src/main.c - - -*** ../vim-7.0.017/src/main.c Wed May 3 23:28:15 2006 ---- src/main.c Mon Jun 19 10:54:40 2006 -*************** -*** 564,570 **** ---- 564,574 ---- - */ - if (p_lpl) - { -+ # ifdef VMS /* Somehow VMS doesn't handle the "**". */ -+ source_runtime((char_u *)"plugin/*.vim", TRUE); -+ # else - source_runtime((char_u *)"plugin/**/*.vim", TRUE); -+ # endif - TIME_MSG("loading plugins"); - } - #endif -*** ../vim-7.0.017/src/version.c Sat May 13 17:26:10 2006 ---- src/version.c Mon Jun 19 10:55:29 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 18, - /**/ - --- -BLACK KNIGHT: Come on you pansy! - [hah] [parry thrust] - [ARTHUR chops the BLACK KNIGHT's right arm off] -ARTHUR: Victory is mine! [kneeling] - We thank thee Lord, that in thy merc- - [Black Knight kicks Arthur in the head while he is praying] - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.019 b/7.0.019 deleted file mode 100644 index bdd479b0..00000000 --- a/7.0.019 +++ /dev/null @@ -1,46 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.019 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.019 -Problem: Repeating "VjA789" may cause a crash. (James Vega) -Solution: Check the cursor column after moving it to another line. -Files: src/ops.c - - -*** ../vim-7.0.018/src/ops.c Sun Apr 30 20:45:12 2006 ---- src/ops.c Tue Jun 20 12:49:46 2006 -*************** -*** 2413,2418 **** ---- 2413,2419 ---- - else - { - curwin->w_cursor = oap->end; -+ check_cursor_col(); - - /* Works just like an 'i'nsert on the next character. */ - if (!lineempty(curwin->w_cursor.lnum) -*** ../vim-7.0.018/src/version.c Mon Jun 19 10:56:20 2006 ---- src/version.c Tue Jun 20 12:55:10 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 19, - /**/ - --- -Two cows are standing together in a field. One asks the other: -"So what do you think about this Mad Cow Disease?" -The other replies: "That doesn't concern me. I'm a helicopter." - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.020 b/7.0.020 deleted file mode 100644 index 582f462b..00000000 --- a/7.0.020 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.020 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.020 -Problem: Crash when using 'mousefocus'. (William Fulton) -Solution: Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert) -Files: src/gui.c - - -*** ../vim-7.0.019/src/gui.c Sat May 13 12:15:09 2006 ---- src/gui.c Tue Jun 20 16:27:02 2006 -*************** -*** 4515,4521 **** - int y; - { - win_T *wp; -! char_u st[6]; - - /* Ignore this while still starting up. */ - if (!gui.in_use || gui.starting) ---- 4515,4521 ---- - int y; - { - win_T *wp; -! char_u st[8]; - - /* Ignore this while still starting up. */ - if (!gui.in_use || gui.starting) -*** ../vim-7.0.019/src/version.c Tue Jun 20 12:56:11 2006 ---- src/version.c Tue Jun 20 16:32:28 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 20, - /**/ - --- -Michael: There is no such thing as a dump question. -Bernard: Sure there is. For example "what is a core dump?" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.021 b/7.0.021 deleted file mode 100644 index 70852d28..00000000 --- a/7.0.021 +++ /dev/null @@ -1,139 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.021 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.021 -Problem: Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber) -Solution: Check for valid submatches after matching the pattern. -Files: src/quickfix.c - - -*** ../vim-7.0.020/src/quickfix.c Wed May 3 23:23:30 2006 ---- src/quickfix.c Tue Jun 20 17:04:20 2006 -*************** -*** 602,614 **** - else - type = 0; - /* -! * Extract error message data from matched line - */ - if ((i = (int)fmt_ptr->addr[0]) > 0) /* %f */ - { -! int c = *regmatch.endp[i]; - - /* Expand ~/file and $HOME/file to full path. */ - *regmatch.endp[i] = NUL; - expand_env(regmatch.startp[i], namebuf, CMDBUFFSIZE); - *regmatch.endp[i] = c; ---- 602,620 ---- - else - type = 0; - /* -! * Extract error message data from matched line. -! * We check for an actual submatch, because "\[" and "\]" in -! * the 'errorformat' may cause the wrong submatch to be used. - */ - if ((i = (int)fmt_ptr->addr[0]) > 0) /* %f */ - { -! int c; -! -! if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) -! continue; - - /* Expand ~/file and $HOME/file to full path. */ -+ c = *regmatch.endp[i]; - *regmatch.endp[i] = NUL; - expand_env(regmatch.startp[i], namebuf, CMDBUFFSIZE); - *regmatch.endp[i] = c; -*************** -*** 618,652 **** ---- 624,686 ---- - continue; - } - if ((i = (int)fmt_ptr->addr[1]) > 0) /* %n */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - enr = (int)atol((char *)regmatch.startp[i]); -+ } - if ((i = (int)fmt_ptr->addr[2]) > 0) /* %l */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - lnum = atol((char *)regmatch.startp[i]); -+ } - if ((i = (int)fmt_ptr->addr[3]) > 0) /* %c */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - col = (int)atol((char *)regmatch.startp[i]); -+ } - if ((i = (int)fmt_ptr->addr[4]) > 0) /* %t */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - type = *regmatch.startp[i]; -+ } - if (fmt_ptr->flags == '+' && !multiscan) /* %+ */ - STRCPY(errmsg, IObuff); - else if ((i = (int)fmt_ptr->addr[5]) > 0) /* %m */ - { -+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) -+ continue; - len = (int)(regmatch.endp[i] - regmatch.startp[i]); - vim_strncpy(errmsg, regmatch.startp[i], len); - } - if ((i = (int)fmt_ptr->addr[6]) > 0) /* %r */ -+ { -+ if (regmatch.startp[i] == NULL) -+ continue; - tail = regmatch.startp[i]; -+ } - if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */ - { -+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) -+ continue; - col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1); - if (*((char_u *)regmatch.startp[i]) != TAB) - use_viscol = TRUE; - } - if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */ - { -+ if (regmatch.startp[i] == NULL) -+ continue; - col = (int)atol((char *)regmatch.startp[i]); - use_viscol = TRUE; - } - if ((i = (int)fmt_ptr->addr[9]) > 0) /* %s */ - { -+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) -+ continue; - len = (int)(regmatch.endp[i] - regmatch.startp[i]); - if (len > CMDBUFFSIZE - 5) - len = CMDBUFFSIZE - 5; -*** ../vim-7.0.020/src/version.c Tue Jun 20 16:33:21 2006 ---- src/version.c Tue Jun 20 17:07:25 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 21, - /**/ - --- -TALL KNIGHT: We are now no longer the Knights Who Say Ni! -ONE KNIGHT: Ni! -OTHERS: Sh! -ONE KNIGHT: (whispers) Sorry. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.022 b/7.0.022 deleted file mode 100644 index 13e2b93d..00000000 --- a/7.0.022 +++ /dev/null @@ -1,234 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.022 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.022 -Problem: Using buffer.append() in Ruby may append the line to the wrong - buffer. (Alex Norman) -Solution: Properly switch to the buffer to do the appending. Also for - buffer.delete() and setting a buffer line. -Files: src/if_ruby.c - - -*** ../vim-7.0.021/src/if_ruby.c Sun Apr 30 20:25:42 2006 ---- src/if_ruby.c Tue Jun 20 21:01:23 2006 -*************** -*** 643,653 **** - - static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str) - { -! buf_T *savebuf = curbuf; -! char *line = STR2CSTR(str); - -! if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL) { - curbuf = buf; - if (u_savesub(n) == OK) { - ml_replace(n, (char_u *)line, TRUE); - changed(); ---- 643,665 ---- - - static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str) - { -! char *line = STR2CSTR(str); -! #ifdef FEAT_AUTOCMD -! aco_save_T aco; -! #else -! buf_T *save_curbuf = curbuf; -! #endif - -! if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL) -! { -! #ifdef FEAT_AUTOCMD -! /* set curwin/curbuf for "buf" and save some things */ -! aucmd_prepbuf(&aco, buf); -! #else - curbuf = buf; -+ curwin->w_buffer = buf; -+ #endif -+ - if (u_savesub(n) == OK) { - ml_replace(n, (char_u *)line, TRUE); - changed(); -*************** -*** 655,664 **** - syn_changed(n); /* recompute syntax hl. for this line */ - #endif - } -! curbuf = savebuf; - update_curbuf(NOT_VALID); - } -! else { - rb_raise(rb_eIndexError, "index %d out of buffer", n); - return Qnil; /* For stop warning */ - } ---- 667,685 ---- - syn_changed(n); /* recompute syntax hl. for this line */ - #endif - } -! -! #ifdef FEAT_AUTOCMD -! /* restore curwin/curbuf and a few other things */ -! aucmd_restbuf(&aco); -! /* Careful: autocommands may have made "buf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(NOT_VALID); - } -! else -! { - rb_raise(rb_eIndexError, "index %d out of buffer", n); - return Qnil; /* For stop warning */ - } -*************** -*** 676,687 **** - - static VALUE buffer_delete(VALUE self, VALUE num) - { -! buf_T *buf = get_buf(self); -! buf_T *savebuf = curbuf; -! long n = NUM2LONG(num); - -! if (n > 0 && n <= buf->b_ml.ml_line_count) { - curbuf = buf; - if (u_savedel(n, 1) == OK) { - ml_delete(n, 0); - ---- 697,720 ---- - - static VALUE buffer_delete(VALUE self, VALUE num) - { -! buf_T *buf = get_buf(self); -! long n = NUM2LONG(num); -! #ifdef FEAT_AUTOCMD -! aco_save_T aco; -! #else -! buf_T *save_curbuf = curbuf; -! #endif - -! if (n > 0 && n <= buf->b_ml.ml_line_count) -! { -! #ifdef FEAT_AUTOCMD -! /* set curwin/curbuf for "buf" and save some things */ -! aucmd_prepbuf(&aco, buf); -! #else - curbuf = buf; -+ curwin->w_buffer = buf; -+ #endif -+ - if (u_savedel(n, 1) == OK) { - ml_delete(n, 0); - -*************** -*** 691,700 **** - - changed(); - } -! curbuf = savebuf; - update_curbuf(NOT_VALID); - } -! else { - rb_raise(rb_eIndexError, "index %d out of buffer", n); - } - return Qnil; ---- 724,742 ---- - - changed(); - } -! -! #ifdef FEAT_AUTOCMD -! /* restore curwin/curbuf and a few other things */ -! aucmd_restbuf(&aco); -! /* Careful: autocommands may have made "buf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(NOT_VALID); - } -! else -! { - rb_raise(rb_eIndexError, "index %d out of buffer", n); - } - return Qnil; -*************** -*** 702,714 **** - - static VALUE buffer_append(VALUE self, VALUE num, VALUE str) - { -! buf_T *buf = get_buf(self); -! buf_T *savebuf = curbuf; -! char *line = STR2CSTR(str); -! long n = NUM2LONG(num); - -! if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL) { - curbuf = buf; - if (u_inssub(n + 1) == OK) { - ml_append(n, (char_u *) line, (colnr_T) 0, FALSE); - ---- 744,768 ---- - - static VALUE buffer_append(VALUE self, VALUE num, VALUE str) - { -! buf_T *buf = get_buf(self); -! char *line = STR2CSTR(str); -! long n = NUM2LONG(num); -! #ifdef FEAT_AUTOCMD -! aco_save_T aco; -! #else -! buf_T *save_curbuf = curbuf; -! #endif - -! if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL) -! { -! #ifdef FEAT_AUTOCMD -! /* set curwin/curbuf for "buf" and save some things */ -! aucmd_prepbuf(&aco, buf); -! #else - curbuf = buf; -+ curwin->w_buffer = buf; -+ #endif -+ - if (u_inssub(n + 1) == OK) { - ml_append(n, (char_u *) line, (colnr_T) 0, FALSE); - -*************** -*** 718,724 **** - - changed(); - } -! curbuf = savebuf; - update_curbuf(NOT_VALID); - } - else { ---- 772,786 ---- - - changed(); - } -! -! #ifdef FEAT_AUTOCMD -! /* restore curwin/curbuf and a few other things */ -! aucmd_restbuf(&aco); -! /* Careful: autocommands may have made "buf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(NOT_VALID); - } - else { -*** ../vim-7.0.021/src/version.c Tue Jun 20 20:49:42 2006 ---- src/version.c Tue Jun 20 18:42:35 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 22, - /**/ diff --git a/7.0.023 b/7.0.023 deleted file mode 100644 index 9eaf1276..00000000 --- a/7.0.023 +++ /dev/null @@ -1,170 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.023 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.023 -Problem: Crash when doing spell completion in an empty line and pressing - CTRL-E. -Solution: Check for a zero pointer. (James Vega) - Also handle a situation without a matching pattern better, report - "No matches" instead of remaining in undefined CTRL-X mode. And - get out of CTRL-X mode when typing a letter. -Files: src/edit.c - - -*** ../vim-7.0.022/src/edit.c Sat May 13 15:27:57 2006 ---- src/edit.c Thu Jun 22 16:44:01 2006 -*************** -*** 719,727 **** - #ifdef FEAT_INS_EXPAND - /* - * Special handling of keys while the popup menu is visible or wanted -! * and the cursor is still in the completed word. - */ -! if (compl_started && pum_wanted() && curwin->w_cursor.col >= compl_col) - { - /* BS: Delete one character from "compl_leader". */ - if ((c == K_BS || c == Ctrl_H) ---- 721,734 ---- - #ifdef FEAT_INS_EXPAND - /* - * Special handling of keys while the popup menu is visible or wanted -! * and the cursor is still in the completed word. Only when there is -! * a match, skip this when no matches were found. - */ -! if (compl_started -! && pum_wanted() -! && curwin->w_cursor.col >= compl_col -! && (compl_shown_match == NULL -! || compl_shown_match != compl_shown_match->cp_next)) - { - /* BS: Delete one character from "compl_leader". */ - if ((c == K_BS || c == Ctrl_H) -*************** -*** 3393,3408 **** - ptr = compl_leader; - else - ptr = compl_orig_text; -! p = compl_orig_text; -! for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp]; ++temp) -! ; - #ifdef FEAT_MBYTE -! if (temp > 0) -! temp -= (*mb_head_off)(compl_orig_text, p + temp); - #endif -! for (p += temp; *p != NUL; mb_ptr_adv(p)) -! AppendCharToRedobuff(K_BS); -! AppendToRedobuffLit(ptr + temp, -1); - } - - #ifdef FEAT_CINDENT ---- 3401,3421 ---- - ptr = compl_leader; - else - ptr = compl_orig_text; -! if (compl_orig_text != NULL) -! { -! p = compl_orig_text; -! for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp]; -! ++temp) -! ; - #ifdef FEAT_MBYTE -! if (temp > 0) -! temp -= (*mb_head_off)(compl_orig_text, p + temp); - #endif -! for (p += temp; *p != NUL; mb_ptr_adv(p)) -! AppendCharToRedobuff(K_BS); -! } -! if (ptr != NULL) -! AppendToRedobuffLit(ptr + temp, -1); - } - - #ifdef FEAT_CINDENT -*************** -*** 4650,4659 **** - (int)STRLEN(compl_pattern), curs_col); - if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL - || compl_xp.xp_context == EXPAND_NOTHING) -! return FAIL; -! startcol = (int)(compl_xp.xp_pattern - compl_pattern); -! compl_col = startcol; -! compl_length = curs_col - startcol; - } - else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI) - { ---- 4663,4680 ---- - (int)STRLEN(compl_pattern), curs_col); - if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL - || compl_xp.xp_context == EXPAND_NOTHING) -! { -! compl_col = curs_col; -! compl_length = 0; -! vim_free(compl_pattern); -! compl_pattern = NULL; -! } -! else -! { -! startcol = (int)(compl_xp.xp_pattern - compl_pattern); -! compl_col = startcol; -! compl_length = curs_col - startcol; -! } - } - else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI) - { -*************** -*** 4707,4717 **** - else - compl_col = spell_word_start(startcol); - if (compl_col >= (colnr_T)startcol) -! return FAIL; -! spell_expand_check_cap(compl_col); - /* Need to obtain "line" again, it may have become invalid. */ - line = ml_get(curwin->w_cursor.lnum); -- compl_length = (int)curs_col - compl_col; - compl_pattern = vim_strnsave(line + compl_col, compl_length); - if (compl_pattern == NULL) - #endif ---- 4728,4744 ---- - else - compl_col = spell_word_start(startcol); - if (compl_col >= (colnr_T)startcol) -! { -! compl_length = 0; -! compl_col = curs_col; -! } -! else -! { -! spell_expand_check_cap(compl_col); -! compl_length = (int)curs_col - compl_col; -! } - /* Need to obtain "line" again, it may have become invalid. */ - line = ml_get(curwin->w_cursor.lnum); - compl_pattern = vim_strnsave(line + compl_col, compl_length); - if (compl_pattern == NULL) - #endif -*** ../vim-7.0.022/src/version.c Tue Jun 20 21:08:02 2006 ---- src/version.c Thu Jun 22 16:34:42 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 23, - /**/ - --- -BEDEVERE: Look! It's the old man from scene 24 - what's he Doing here? -ARTHUR: He is the keeper of the Bridge. He asks each traveler five - questions ... -GALAHAD: Three questions. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.025 b/7.0.025 deleted file mode 100644 index 2c77b8a6..00000000 --- a/7.0.025 +++ /dev/null @@ -1,80 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.025 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.025 -Problem: Crash when removing an element of a:000. (Nikolai Weibull) -Solution: Mark the a:000 list with VAR_FIXED. -Files: src/eval.c - - -*** ../vim-7.0.024/src/eval.c Thu Jun 22 17:33:49 2006 ---- src/eval.c Thu Jun 22 17:56:50 2006 -*************** -*** 13250,13256 **** - if (argvars[2].v_type != VAR_UNKNOWN) - EMSG2(_(e_toomanyarg), "remove()"); - else if ((d = argvars[0].vval.v_dict) != NULL -! && !tv_check_lock(d->dv_lock, (char_u *)"remove()")) - { - key = get_tv_string_chk(&argvars[1]); - if (key != NULL) ---- 13254,13260 ---- - if (argvars[2].v_type != VAR_UNKNOWN) - EMSG2(_(e_toomanyarg), "remove()"); - else if ((d = argvars[0].vval.v_dict) != NULL -! && !tv_check_lock(d->dv_lock, (char_u *)"remove() argument")) - { - key = get_tv_string_chk(&argvars[1]); - if (key != NULL) -*************** -*** 13270,13276 **** - else if (argvars[0].v_type != VAR_LIST) - EMSG2(_(e_listdictarg), "remove()"); - else if ((l = argvars[0].vval.v_list) != NULL -! && !tv_check_lock(l->lv_lock, (char_u *)"remove()")) - { - int error = FALSE; - ---- 13274,13280 ---- - else if (argvars[0].v_type != VAR_LIST) - EMSG2(_(e_listdictarg), "remove()"); - else if ((l = argvars[0].vval.v_list) != NULL -! && !tv_check_lock(l->lv_lock, (char_u *)"remove() argument")) - { - int error = FALSE; - -*************** -*** 19693,19698 **** ---- 19697,19703 ---- - v->di_tv.vval.v_list = &fc.l_varlist; - vim_memset(&fc.l_varlist, 0, sizeof(list_T)); - fc.l_varlist.lv_refcount = 99999; -+ fc.l_varlist.lv_lock = VAR_FIXED; - - /* - * Set a:firstline to "firstline" and a:lastline to "lastline". -*** ../vim-7.0.024/src/version.c Thu Jun 22 17:33:49 2006 ---- src/version.c Thu Jun 22 17:59:17 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 25, - /**/ - --- -BRIDGEKEEPER: What is your favorite colour? -GAWAIN: Blue ... No yelloooooww! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.026 b/7.0.026 deleted file mode 100644 index 0b251063..00000000 --- a/7.0.026 +++ /dev/null @@ -1,60 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.026 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.026 -Problem: Using libcall() may show an old error. -Solution: Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira) -Files: src/os_unix.c - - -*** ../vim-7.0.025/src/os_unix.c Wed May 3 00:01:30 2006 ---- src/os_unix.c Sat Jun 17 21:00:14 2006 -*************** -*** 5757,5764 **** - int retval_int = 0; - int success = FALSE; - -! /* Get a handle to the DLL module. */ - # if defined(USE_DLOPEN) - hinstLib = dlopen((char *)libname, RTLD_LAZY - # ifdef RTLD_LOCAL - | RTLD_LOCAL ---- 5758,5770 ---- - int retval_int = 0; - int success = FALSE; - -! /* -! * Get a handle to the DLL module. -! */ - # if defined(USE_DLOPEN) -+ /* First clear any error, it's not cleared by the dlopen() call. */ -+ (void)dlerror(); -+ - hinstLib = dlopen((char *)libname, RTLD_LAZY - # ifdef RTLD_LOCAL - | RTLD_LOCAL -*** ../vim-7.0.025/src/version.c Thu Jun 22 18:02:06 2006 ---- src/version.c Thu Jun 22 18:05:10 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 26, - /**/ - --- -BRIDGEKEEPER: What is your favorite editor? -GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm! - "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.027 b/7.0.027 deleted file mode 100644 index 7d9648f7..00000000 --- a/7.0.027 +++ /dev/null @@ -1,48 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.027 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.027 (extra) -Problem: Win32: When compiled with SNIFF gvim may hang on exit. -Solution: Translate and dispatch the WM_USER message. (Mathias Michaelis) -Files: src/gui_w48.c - - -*** ../vim-7.0.026/src/gui_w48.c Thu Apr 27 01:52:16 2006 ---- src/gui_w48.c Sat Jun 17 13:23:26 2006 -*************** -*** 1664,1670 **** ---- 1664,1674 ---- - /* request is handled in normal.c */ - } - if (msg.message == WM_USER) -+ { -+ MyTranslateMessage(&msg) -+ DispatchMessage(&msg); - return; -+ } - #endif - - #ifdef MSWIN_FIND_REPLACE -*** ../vim-7.0.026/src/version.c Thu Jun 22 18:06:48 2006 ---- src/version.c Thu Jun 22 18:20:40 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 27, - /**/ - --- -SIGFUN -- signature too funny (core dumped) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.028 b/7.0.028 deleted file mode 100644 index f7979a0b..00000000 --- a/7.0.028 +++ /dev/null @@ -1,90 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.028 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.028 (extra) -Problem: OS/2: Vim doesn't compile with gcc 3.2.1. -Solution: Add argument to after_pathsep(), don't define vim_handle_signal(), - define HAVE_STDARG_H. (David Sanders) -Files: src/os_unix.c, src/vim.h, src/os_os2_cfg.h - - -*** ../vim-7.0.027/src/os_unix.c Thu Jun 22 18:06:48 2006 ---- src/os_unix.c Sat Jun 17 21:00:14 2006 -*************** -*** 4971,4977 **** - if (((*file)[*num_file] = alloc(len + 2)) != NULL) - { - STRCPY((*file)[*num_file], p); -! if (!after_pathsep((*file)[*num_file] + len)) - { - (*file)[*num_file][len] = psepc; - (*file)[*num_file][len + 1] = NUL; ---- 4971,4978 ---- - if (((*file)[*num_file] = alloc(len + 2)) != NULL) - { - STRCPY((*file)[*num_file], p); -! if (!after_pathsep((*file)[*num_file], -! (*file)[*num_file] + len)) - { - (*file)[*num_file][len] = psepc; - (*file)[*num_file][len + 1] = NUL; -*** ../vim-7.0.027/src/vim.h Sun Apr 30 20:27:22 2006 ---- src/vim.h Sat Jun 17 20:59:31 2006 -*************** -*** 1983,1989 **** - /* values for vim_handle_signal() that are not a signal */ - #define SIGNAL_BLOCK -1 - #define SIGNAL_UNBLOCK -2 -! #if !defined(UNIX) && !defined(VMS) - # define vim_handle_signal(x) 0 - #endif - ---- 1983,1989 ---- - /* values for vim_handle_signal() that are not a signal */ - #define SIGNAL_BLOCK -1 - #define SIGNAL_UNBLOCK -2 -! #if !defined(UNIX) && !defined(VMS) && !defined(OS2) - # define vim_handle_signal(x) 0 - #endif - -*** ../vim-7.0.027/src/os_os2_cfg.h Sun Jun 13 18:47:02 2004 ---- src/os_os2_cfg.h Sat Jun 17 20:58:56 2006 -*************** -*** 183,188 **** ---- 183,191 ---- - /* Define if you have the ANSI C header files. */ - /* #undef STDC_HEADERS */ - -+ /* added by David Sanders */ -+ #define HAVE_STDARG_H 1 -+ - /* instead, we check a few STDC things ourselves */ - #define HAVE_STDLIB_H 1 - #undef HAVE_STRING_H /* On EMX it is better to use strings.h */ -*** ../vim-7.0.027/src/version.c Thu Jun 22 19:34:23 2006 ---- src/version.c Thu Jun 22 19:41:06 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 28, - /**/ - --- -BRIDGEKEEPER: What is the air-speed velocity of an unladen swallow? -ARTHUR: What do you mean? An African or European swallow? -BRIDGEKEEPER: Er ... I don't know that ... Aaaaarrrrrrggghhh! - BRIDGEKEEPER is cast into the gorge. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.029 b/7.0.029 deleted file mode 100644 index 2ef57dea..00000000 --- a/7.0.029 +++ /dev/null @@ -1,48 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.029 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.029 -Problem: getchar() may not position the cursor after a space. -Solution: Position the cursor explicitly. -Files: src/eval.c - - -*** ../vim-7.0.028/src/eval.c Thu Jun 22 18:02:06 2006 ---- src/eval.c Thu Jun 22 21:00:00 2006 -*************** -*** 9792,9797 **** ---- 9792,9800 ---- - varnumber_T n; - int error = FALSE; - -+ /* Position the cursor. Needed after a message that ends in a space. */ -+ windgoto(msg_row, msg_col); -+ - ++no_mapping; - ++allow_keys; - if (argvars[0].v_type == VAR_UNKNOWN) -*** ../vim-7.0.028/src/version.c Thu Jun 22 19:47:11 2006 ---- src/version.c Thu Jun 22 20:55:43 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 29, - /**/ - --- -BEDEVERE: How do you know so much about swallows? -ARTHUR: Well you have to know these things when you're a king, you know. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.030 b/7.0.030 deleted file mode 100644 index 66966dd9..00000000 --- a/7.0.030 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.030 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.030 -Problem: The ":compiler" command can't be used in a FileChangedRO event. - (Hari Krishna Dara) -Solution: Add the CMDWIN flag to the ":compiler" command. -Files: src/ex_cmds.h - - -*** ../vim-7.0.029/src/ex_cmds.h Fri Apr 7 23:40:07 2006 ---- src/ex_cmds.h Sun Jun 18 22:44:01 2006 -*************** -*** 262,268 **** - EX(CMD_comclear, "comclear", ex_comclear, - TRLBAR|CMDWIN), - EX(CMD_compiler, "compiler", ex_compiler, -! BANG|TRLBAR|WORD1), - EX(CMD_continue, "continue", ex_continue, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_confirm, "confirm", ex_wrongmodifier, ---- 262,268 ---- - EX(CMD_comclear, "comclear", ex_comclear, - TRLBAR|CMDWIN), - EX(CMD_compiler, "compiler", ex_compiler, -! BANG|TRLBAR|WORD1|CMDWIN), - EX(CMD_continue, "continue", ex_continue, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_confirm, "confirm", ex_wrongmodifier, -*** ../vim-7.0.029/src/version.c Thu Jun 22 21:01:19 2006 ---- src/version.c Thu Jun 22 21:08:12 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 30, - /**/ - --- -Every person is responsible for the choices he makes. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.031 b/7.0.031 deleted file mode 100644 index 1afdd112..00000000 --- a/7.0.031 +++ /dev/null @@ -1,58 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.031 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.031 -Problem: When deleting a buffer the buffer-local mappings for Select mode - remain. -Solution: Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner) -Files: src/vim.h - - -*** ../vim-7.0.030/src/vim.h Thu Jun 22 19:47:11 2006 ---- src/vim.h Fri Jun 23 16:29:03 2006 -*************** -*** 585,591 **** - #define INSERT 0x10 /* Insert mode */ - #define LANGMAP 0x20 /* Language mapping, can be combined with - INSERT and CMDLINE */ -- #define MAP_ALL_MODES 0x3f /* all mode bits used for mapping */ - - #define REPLACE_FLAG 0x40 /* Replace mode flag */ - #define REPLACE (REPLACE_FLAG + INSERT) ---- 585,590 ---- -*************** -*** 604,609 **** ---- 603,611 ---- - #define SHOWMATCH (0x700 + INSERT) /* show matching paren */ - #define CONFIRM 0x800 /* ":confirm" prompt */ - #define SELECTMODE 0x1000 /* Select mode, only for mappings */ -+ -+ #define MAP_ALL_MODES (0x3f | SELECTMODE) /* all mode bits used for -+ * mapping */ - - /* directions */ - #define FORWARD 1 -*** ../vim-7.0.030/src/version.c Thu Jun 22 21:15:46 2006 ---- src/version.c Fri Jun 23 16:33:25 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 31, - /**/ - --- -Why don't cannibals eat clowns? -Because they taste funny. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.032 b/7.0.032 deleted file mode 100644 index 600f057e..00000000 --- a/7.0.032 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.032 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.032 (extra, after 7.0.027) -Problem: Missing semicolon. -Solution: Add the semicolon. -Files: src/gui_w48.c - - -*** ../vim-7.0.031/src/gui_w48.c Thu Jun 22 19:34:23 2006 ---- src/gui_w48.c Fri Jun 23 16:36:09 2006 -*************** -*** 1665,1671 **** - } - if (msg.message == WM_USER) - { -! MyTranslateMessage(&msg) - DispatchMessage(&msg); - return; - } ---- 1665,1671 ---- - } - if (msg.message == WM_USER) - { -! MyTranslateMessage(&msg); - DispatchMessage(&msg); - return; - } -*** ../vim-7.0.031/src/version.c Fri Jun 23 16:33:41 2006 ---- src/version.c Fri Jun 23 16:37:24 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 32, - /**/ - --- -Snoring is prohibited unless all bedroom windows are closed and securely -locked. - [real standing law in Massachusetts, United States of America] - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.033 b/7.0.033 deleted file mode 100644 index f80657a4..00000000 --- a/7.0.033 +++ /dev/null @@ -1,69 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.033 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.033 -Problem: When pasting text, with the menu or CTRL-V, autoindent is removed. -Solution: Use "x" to avoid indent to be removed. (Benji Fisher) -Files: runtime/autoload/paste.vim - - -*** ../vim-7.0.032/runtime/autoload/paste.vim Fri Apr 21 23:57:39 2006 ---- runtime/autoload/paste.vim Fri Jun 23 17:18:48 2006 -*************** -*** 1,6 **** - " Vim support file to help with paste mappings and menus - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Apr 21 - - " Define the string to use for items that are present both in Edit, Popup and - " Toolbar menu. Also used in mswin.vim and macmap.vim. ---- 1,6 ---- - " Vim support file to help with paste mappings and menus - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Jun 23 - - " Define the string to use for items that are present both in Edit, Popup and - " Toolbar menu. Also used in mswin.vim and macmap.vim. -*************** -*** 12,18 **** - if has("virtualedit") - let paste#paste_cmd = {'n': ":call paste#Paste()"} - let paste#paste_cmd['v'] = '"-c' . paste#paste_cmd['n'] -! let paste#paste_cmd['i'] = '' . paste#paste_cmd['n'] . 'gi' - - func! paste#Paste() - let ove = &ve ---- 12,18 ---- - if has("virtualedit") - let paste#paste_cmd = {'n': ":call paste#Paste()"} - let paste#paste_cmd['v'] = '"-c' . paste#paste_cmd['n'] -! let paste#paste_cmd['i'] = 'x' . paste#paste_cmd['n'] . 'gi' - - func! paste#Paste() - let ove = &ve -*** ../vim-7.0.032/src/version.c Fri Jun 23 16:44:32 2006 ---- src/version.c Fri Jun 23 17:18:56 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 33, - /**/ - --- -Yesterday, all my deadlines seemed so far away -now it looks as though it's freeze in four days -oh I believe in cvs.. - [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ] - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.034 b/7.0.034 deleted file mode 100644 index 6d055a7d..00000000 --- a/7.0.034 +++ /dev/null @@ -1,63 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.034 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.034 -Problem: After doing completion and typing more characters or using BS - repeating with "." didn't work properly. (Martin Stubenschrott) -Solution: Don't put BS and other characters in the redo buffer right away, - do this when finishing completion. -Files: src/edit.c - - -*** ../vim-7.0.033/src/edit.c Thu Jun 22 16:48:43 2006 ---- src/edit.c Fri Jun 23 17:50:47 2006 -*************** -*** 3020,3028 **** - if ((int)(p - line) - (int)compl_col <= 0) - return K_BS; - -- /* For redo we need to repeat this backspace. */ -- AppendCharToRedobuff(K_BS); -- - /* Deleted more than what was used to find matches or didn't finish - * finding all matches: need to look for matches all over again. */ - if (curwin->w_cursor.col <= compl_col + compl_length ---- 3020,3025 ---- -*************** -*** 3121,3130 **** - else - #endif - ins_char(c); -- -- /* For redo we need to count this character so that the number of -- * backspaces is correct. */ -- AppendCharToRedobuff(c); - - /* If we didn't complete finding matches we must search again. */ - if (compl_was_interrupted) ---- 3118,3123 ---- -*** ../vim-7.0.033/src/version.c Fri Jun 23 17:26:02 2006 ---- src/version.c Fri Jun 23 17:59:04 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 34, - /**/ - --- -A parent can be arrested if his child cannot hold back a burp during a church -service. - [real standing law in Nebraska, United States of America] - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.035 b/7.0.035 deleted file mode 100644 index fb83ceb7..00000000 --- a/7.0.035 +++ /dev/null @@ -1,205 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.035 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.035 -Problem: Insert mode completion works when typed but not when replayed from - a register. (Hari Krishna Dara) - Also: Mappings for Insert mode completion don't always work. -Solution: When finding a non-completion key in the input don't interrupt - completion when it wasn't typed. - Do use mappings when checking for typeahead while still finding - completions. Avoids that completion is interrupted too soon. - Use "compl_pending" in a different way. -Files: src/edit.c - - -*** ../vim-7.0.034/src/edit.c Fri Jun 23 17:59:26 2006 ---- src/edit.c Fri Jun 23 21:32:42 2006 -*************** -*** 4166,4173 **** - { - if (compl_shows_dir == FORWARD && compl_shown_match->cp_next != NULL) - { -- if (compl_pending != 0) -- --compl_pending; - compl_shown_match = compl_shown_match->cp_next; - found_end = (compl_first_match != NULL - && (compl_shown_match->cp_next == compl_first_match ---- 4166,4171 ---- -*************** -*** 4176,4189 **** - else if (compl_shows_dir == BACKWARD - && compl_shown_match->cp_prev != NULL) - { -- if (compl_pending != 0) -- ++compl_pending; - found_end = (compl_shown_match == compl_first_match); - compl_shown_match = compl_shown_match->cp_prev; - found_end |= (compl_shown_match == compl_first_match); - } - else - { - if (advance) - { - if (compl_shows_dir == BACKWARD) ---- 4174,4197 ---- - else if (compl_shows_dir == BACKWARD - && compl_shown_match->cp_prev != NULL) - { - found_end = (compl_shown_match == compl_first_match); - compl_shown_match = compl_shown_match->cp_prev; - found_end |= (compl_shown_match == compl_first_match); - } - else - { -+ if (!allow_get_expansion) -+ { -+ if (advance) -+ { -+ if (compl_shows_dir == BACKWARD) -+ compl_pending -= todo + 1; -+ else -+ compl_pending += todo + 1; -+ } -+ return -1; -+ } -+ - if (advance) - { - if (compl_shows_dir == BACKWARD) -*************** -*** 4191,4204 **** - else - ++compl_pending; - } -- if (!allow_get_expansion) -- return -1; - - /* Find matches. */ - num_matches = ins_compl_get_exp(&compl_startpos); -! if (compl_pending != 0 && compl_direction == compl_shows_dir - && advance) -! compl_shown_match = compl_curr_match; - found_end = FALSE; - } - if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0 ---- 4199,4225 ---- - else - ++compl_pending; - } - - /* Find matches. */ - num_matches = ins_compl_get_exp(&compl_startpos); -! -! /* handle any pending completions */ -! while (compl_pending != 0 && compl_direction == compl_shows_dir - && advance) -! { -! if (compl_pending > 0 && compl_shown_match->cp_next != NULL) -! { -! compl_shown_match = compl_shown_match->cp_next; -! --compl_pending; -! } -! if (compl_pending < 0 && compl_shown_match->cp_prev != NULL) -! { -! compl_shown_match = compl_shown_match->cp_prev; -! ++compl_pending; -! } -! else -! break; -! } - found_end = FALSE; - } - if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0 -*************** -*** 4307,4315 **** - return; - count = 0; - -! ++no_mapping; - c = vpeekc_any(); -- --no_mapping; - if (c != NUL) - { - if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R) ---- 4328,4336 ---- - return; - count = 0; - -! /* Check for a typed key. Do use mappings, otherwise vim_is_ctrl_x_key() -! * can't do its work correctly. */ - c = vpeekc_any(); - if (c != NUL) - { - if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R) -*************** -*** 4319,4330 **** - (void)ins_compl_next(FALSE, ins_compl_key2count(c), - c != K_UP && c != K_DOWN); - } -! else if (c != Ctrl_R) -! compl_interrupted = TRUE; - } - if (compl_pending != 0 && !got_int) -! (void)ins_compl_next(FALSE, compl_pending > 0 -! ? compl_pending : -compl_pending, TRUE); - } - - /* ---- 4340,4366 ---- - (void)ins_compl_next(FALSE, ins_compl_key2count(c), - c != K_UP && c != K_DOWN); - } -! else -! { -! /* Need to get the character to have KeyTyped set. We'll put it -! * back with vungetc() below. */ -! c = safe_vgetc(); -! -! /* Don't interrupt completion when the character wasn't typed, -! * e.g., when doing @q to replay keys. */ -! if (c != Ctrl_R && KeyTyped) -! compl_interrupted = TRUE; -! -! vungetc(c); -! } - } - if (compl_pending != 0 && !got_int) -! { -! int todo = compl_pending > 0 ? compl_pending : -compl_pending; -! -! compl_pending = 0; -! (void)ins_compl_next(FALSE, todo, TRUE); -! } - } - - /* -*** ../vim-7.0.034/src/version.c Fri Jun 23 17:59:26 2006 ---- src/version.c Fri Jun 23 21:35:39 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 35, - /**/ - --- -So when I saw the post to comp.editors, I rushed over to the FTP site to -grab it. So I yank apart the tarball, light x candles, where x= the -vim version multiplied by the md5sum of the source divided by the MAC of -my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights, -wave a dead chicken over the hard drive, and summon the power of GNU GCC -with the magic words "make config ; make!". - [Jason Spence, compiling Vim 5.0] - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.036 b/7.0.036 deleted file mode 100644 index a847110f..00000000 --- a/7.0.036 +++ /dev/null @@ -1,140 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.036 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.036 -Problem: Can't compile with small features and syntax highlighting or the - diff feature. -Solution: Define LINE_ATTR whenever syntax highlighting or the diff feature - is enabled. -Files: src/screen.c - - -*** ../vim-7.0.035/src/screen.c Fri May 5 23:13:04 2006 ---- src/screen.c Tue Jul 11 21:33:53 2006 -*************** -*** 2612,2618 **** - #ifdef FEAT_LINEBREAK - int need_showbreak = FALSE; - #endif -! #if defined(FEAT_SIGNS) || (defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)) - # define LINE_ATTR - int line_attr = 0; /* atrribute for the whole line */ - #endif ---- 2612,2619 ---- - #ifdef FEAT_LINEBREAK - int need_showbreak = FALSE; - #endif -! #if defined(FEAT_SIGNS) || (defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)) \ -! || defined(FEAT_SYN_HL) || defined(FEAT_DIFF) - # define LINE_ATTR - int line_attr = 0; /* atrribute for the whole line */ - #endif -*************** -*** 2626,2632 **** - int prev_c = 0; /* previous Arabic character */ - int prev_c1 = 0; /* first composing char for prev_c */ - #endif -! #if defined(FEAT_DIFF) || defined(LINE_ATTR) - int did_line_attr = 0; - #endif - ---- 2627,2633 ---- - int prev_c = 0; /* previous Arabic character */ - int prev_c1 = 0; /* first composing char for prev_c */ - #endif -! #if defined(LINE_ATTR) - int did_line_attr = 0; - #endif - -*************** -*** 4116,4132 **** - --ptr; /* put it back at the NUL */ - } - #endif -! #if defined(FEAT_DIFF) || defined(LINE_ATTR) - else if (( - # ifdef FEAT_DIFF -! diff_hlf != (hlf_T)0 -! # ifdef LINE_ATTR -! || -! # endif - # endif -- # ifdef LINE_ATTR - line_attr != 0 -- # endif - ) && ( - # ifdef FEAT_RIGHTLEFT - wp->w_p_rl ? (col >= 0) : ---- 4117,4128 ---- - --ptr; /* put it back at the NUL */ - } - #endif -! #if defined(LINE_ATTR) - else if (( - # ifdef FEAT_DIFF -! diff_hlf != (hlf_T)0 || - # endif - line_attr != 0 - ) && ( - # ifdef FEAT_RIGHTLEFT - wp->w_p_rl ? (col >= 0) : -*************** -*** 4237,4243 **** - * At end of the text line or just after the last character. - */ - if (c == NUL -! #if defined(FEAT_DIFF) || defined(LINE_ATTR) - || did_line_attr == 1 - #endif - ) ---- 4233,4239 ---- - * At end of the text line or just after the last character. - */ - if (c == NUL -! #if defined(LINE_ATTR) - || did_line_attr == 1 - #endif - ) -*************** -*** 4258,4264 **** - || prevcol == (long)match_hl[0].startcol - || prevcol == (long)match_hl[1].startcol - || prevcol == (long)match_hl[2].startcol) -! # if defined(FEAT_DIFF) || defined(LINE_ATTR) - && did_line_attr <= 1 - # endif - ) ---- 4254,4260 ---- - || prevcol == (long)match_hl[0].startcol - || prevcol == (long)match_hl[1].startcol - || prevcol == (long)match_hl[2].startcol) -! # if defined(LINE_ATTR) - && did_line_attr <= 1 - # endif - ) -*** ../vim-7.0.035/src/version.c Fri Jun 23 21:36:49 2006 ---- src/version.c Tue Jul 11 21:36:50 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 36, - /**/ - --- -Every engineer dreams about saving the universe and having sex with aliens. -This is much more glamorous than the real life of an engineer, which consists -of hiding from the universe and having sex without the participation of other -life forms. (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.037 b/7.0.037 deleted file mode 100644 index 6cc301d6..00000000 --- a/7.0.037 +++ /dev/null @@ -1,63 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.037 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.037 -Problem: Crash when resizing the GUI window vertically when there is a line - that doesn't fit. -Solution: Don't redraw while the screen data is invalid. -Files: src/screen.c - - -*** ../vim-7.0.036/src/screen.c Tue Jul 11 22:36:19 2006 ---- src/screen.c Tue Jul 11 21:33:53 2006 -*************** -*** 7129,7134 **** ---- 7129,7140 ---- - return; - entered = TRUE; - -+ /* -+ * Note that the window sizes are updated before reallocating the arrays, -+ * thus we must not redraw here! -+ */ -+ ++RedrawingDisabled; -+ - win_new_shellsize(); /* fit the windows in the new sized shell */ - - comp_col(); /* recompute columns for shown command and ruler */ -*************** -*** 7363,7368 **** ---- 7369,7375 ---- - #endif - - entered = FALSE; -+ --RedrawingDisabled; - - #ifdef FEAT_AUTOCMD - if (starting == 0) -*** ../vim-7.0.036/src/version.c Tue Jul 11 22:36:19 2006 ---- src/version.c Tue Jul 11 22:38:39 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 37, - /**/ - --- -For society, it's probably a good thing that engineers value function over -appearance. For example, you wouldn't want engineers to build nuclear power -plants that only _look_ like they would keep all the radiation inside. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.038 b/7.0.038 deleted file mode 100644 index 58b74fa2..00000000 --- a/7.0.038 +++ /dev/null @@ -1,95 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.038 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.038 -Problem: When calling complete() from an Insert mode expression mapping - text could be inserted in an improper way. -Solution: Make undo_allowed() global and use it in complete(). -Files: src/undo.c, src/proto/undo.pro, src/eval.c - - -*** ../vim-7.0.037/src/undo.c Sat Apr 22 00:01:05 2006 ---- src/undo.c Mon Jul 3 22:23:22 2006 -*************** -*** 84,90 **** - static void u_unch_branch __ARGS((u_header_T *uhp)); - static u_entry_T *u_get_headentry __ARGS((void)); - static void u_getbot __ARGS((void)); -- static int undo_allowed __ARGS((void)); - static int u_savecommon __ARGS((linenr_T, linenr_T, linenr_T)); - static void u_doit __ARGS((int count)); - static void u_undoredo __ARGS((int undo)); ---- 84,89 ---- -*************** -*** 196,202 **** - * Return TRUE when undo is allowed. Otherwise give an error message and - * return FALSE. - */ -! static int - undo_allowed() - { - /* Don't allow changes when 'modifiable' is off. */ ---- 195,201 ---- - * Return TRUE when undo is allowed. Otherwise give an error message and - * return FALSE. - */ -! int - undo_allowed() - { - /* Don't allow changes when 'modifiable' is off. */ -*** ../vim-7.0.037/src/proto/undo.pro Mon Apr 10 16:38:50 2006 ---- src/proto/undo.pro Mon Jul 3 22:25:07 2006 -*************** -*** 4,9 **** ---- 4,10 ---- - extern int u_savesub __ARGS((linenr_T lnum)); - extern int u_inssub __ARGS((linenr_T lnum)); - extern int u_savedel __ARGS((linenr_T lnum, long nlines)); -+ extern int undo_allowed __ARGS((void)); - extern void u_undo __ARGS((int count)); - extern void u_redo __ARGS((int count)); - extern void undo_time __ARGS((long step, int sec, int absolute)); -*** ../vim-7.0.037/src/eval.c Thu Jun 22 21:01:19 2006 ---- src/eval.c Mon Jul 10 23:03:13 2006 -*************** -*** 8252,8257 **** ---- 8252,8263 ---- - EMSG(_("E785: complete() can only be used in Insert mode")); - return; - } -+ -+ /* Check for undo allowed here, because if something was already inserted -+ * the line was already saved for undo and this check isn't done. */ -+ if (!undo_allowed()) -+ return; -+ - if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL) - { - EMSG(_(e_invarg)); -*** ../vim-7.0.037/src/version.c Tue Jul 11 22:59:04 2006 ---- src/version.c Wed Jul 12 20:31:49 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 38, - /**/ - --- -If someone questions your market projections, simply point out that your -target market is "People who are nuts" and "People who will buy any damn -thing". Nobody is going to tell you there aren't enough of those people -to go around. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.039 b/7.0.039 deleted file mode 100644 index 57da519f..00000000 --- a/7.0.039 +++ /dev/null @@ -1,129 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.039 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.039 -Problem: Calling inputdialog() with a third argument in the console doesn't - work. -Solution: Make a separate function for input() and inputdialog(). (Yegappan - Lakshmanan) -Files: src/eval.c - - -*** ../vim-7.0.038/src/eval.c Wed Jul 12 21:48:56 2006 ---- src/eval.c Mon Jul 10 23:03:13 2006 -*************** -*** 11321,11334 **** - - static int inputsecret_flag = 0; - - /* -! * "input()" function -! * Also handles inputsecret() when inputsecret is set. - */ - static void -! f_input(argvars, rettv) - typval_T *argvars; - typval_T *rettv; - { - char_u *prompt = get_tv_string_chk(&argvars[0]); - char_u *p = NULL; ---- 11321,11339 ---- - - static int inputsecret_flag = 0; - -+ static void get_user_input __ARGS((typval_T *argvars, typval_T *rettv, int inputdialog)); -+ - /* -! * This function is used by f_input() and f_inputdialog() functions. The third -! * argument to f_input() specifies the type of completion to use at the -! * prompt. The third argument to f_inputdialog() specifies the value to return -! * when the user cancels the prompt. - */ - static void -! get_user_input(argvars, rettv, inputdialog) - typval_T *argvars; - typval_T *rettv; -+ int inputdialog; - { - char_u *prompt = get_tv_string_chk(&argvars[0]); - char_u *p = NULL; -*************** -*** 11378,11384 **** - if (defstr != NULL) - stuffReadbuffSpec(defstr); - -! if (argvars[2].v_type != VAR_UNKNOWN) - { - char_u *xp_name; - int xp_namelen; ---- 11383,11389 ---- - if (defstr != NULL) - stuffReadbuffSpec(defstr); - -! if (!inputdialog && argvars[2].v_type != VAR_UNKNOWN) - { - char_u *xp_name; - int xp_namelen; -*************** -*** 11413,11418 **** ---- 11418,11435 ---- - } - - /* -+ * "input()" function -+ * Also handles inputsecret() when inputsecret is set. -+ */ -+ static void -+ f_input(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ get_user_input(argvars, rettv, FALSE); -+ } -+ -+ /* - * "inputdialog()" function - */ - static void -*************** -*** 11452,11458 **** - } - else - #endif -! f_input(argvars, rettv); - } - - /* ---- 11469,11475 ---- - } - else - #endif -! get_user_input(argvars, rettv, TRUE); - } - - /* -*** ../vim-7.0.038/src/version.c Wed Jul 12 21:48:56 2006 ---- src/version.c Wed Jul 12 21:56:30 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 39, - /**/ - --- -A consultant is a person who takes your money and annoys your employees while -tirelessly searching for the best way to extend the consulting contract. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.040 b/7.0.040 deleted file mode 100644 index 81c97a73..00000000 --- a/7.0.040 +++ /dev/null @@ -1,60 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.040 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.040 -Problem: When 'cmdheight' is larger than 1 using inputlist() or selecting - a spell suggestion with the mouse gets the wrong entry. -Solution: Start listing the first alternative on the last line of the screen. -Files: src/eval.c, src/spell.c - - -*** ../vim-7.0.039/src/eval.c Thu Jul 13 08:30:50 2006 ---- src/eval.c Mon Jul 10 23:03:13 2006 -*************** -*** 11497,11502 **** ---- 11497,11503 ---- - } - - msg_start(); -+ msg_row = Rows - 1; /* for when 'cmdheight' > 1 */ - lines_left = Rows; /* avoid more prompt */ - msg_scroll = TRUE; - msg_clr_eos(); -*** ../vim-7.0.039/src/spell.c Sat May 13 14:12:51 2006 ---- src/spell.c Mon Jul 10 23:03:04 2006 -*************** -*** 10071,10076 **** ---- 10071,10077 ---- - - /* List the suggestions. */ - msg_start(); -+ msg_row = Rows - 1; /* for when 'cmdheight' > 1 */ - lines_left = Rows; /* avoid more prompt */ - vim_snprintf((char *)IObuff, IOSIZE, _("Change \"%.*s\" to:"), - sug.su_badlen, sug.su_badptr); -*** ../vim-7.0.039/src/version.c Thu Jul 13 08:30:50 2006 ---- src/version.c Sun Jul 23 21:51:04 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 40, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -40. You tell the cab driver you live at - http://123.elm.street/house/bluetrim.html -41. You actually try that 123.elm.street address. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.041 b/7.0.041 deleted file mode 100644 index 071f35c7..00000000 --- a/7.0.041 +++ /dev/null @@ -1,81 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.041 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.041 -Problem: cursor([1, 1]) doesn't work. (Peter Hodge) -Solution: Allow leaving out the third item of the list and use zero for the - virtual column offset. -Files: src/eval.c - - -*** ../vim-7.0.040/src/eval.c Sun Jul 23 21:52:16 2006 ---- src/eval.c Mon Jul 10 23:03:13 2006 -*************** -*** 16465,16473 **** - long i = 0; - long n; - -! /* List must be: [fnum, lnum, col, coladd] */ -! if (arg->v_type != VAR_LIST || l == NULL -! || l->lv_len != (fnump == NULL ? 3 : 4)) - return FAIL; - - if (fnump != NULL) ---- 16465,16476 ---- - long i = 0; - long n; - -! /* List must be: [fnum, lnum, col, coladd], where "fnum" is only there -! * when "fnump" isn't NULL and "coladd" is optional. */ -! if (arg->v_type != VAR_LIST -! || l == NULL -! || l->lv_len < (fnump == NULL ? 2 : 3) -! || l->lv_len > (fnump == NULL ? 3 : 4)) - return FAIL; - - if (fnump != NULL) -*************** -*** 16493,16500 **** - #ifdef FEAT_VIRTUALEDIT - n = list_find_nr(l, i, NULL); - if (n < 0) -! return FAIL; -! posp->coladd = n; - #endif - - return OK; ---- 16496,16504 ---- - #ifdef FEAT_VIRTUALEDIT - n = list_find_nr(l, i, NULL); - if (n < 0) -! posp->coladd = 0; -! else -! posp->coladd = n; - #endif - - return OK; -*** ../vim-7.0.040/src/version.c Sun Jul 23 21:52:16 2006 ---- src/version.c Sun Jul 23 21:59:43 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 41, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -43. You tell the kids they can't use the computer because "Daddy's got work to - do" and you don't even have a job. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.042 b/7.0.042 deleted file mode 100644 index 3af2ad75..00000000 --- a/7.0.042 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.042 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.042 -Problem: When pasting a block of text in Insert mode Vim hangs or crashes. - (Noam Halevy) -Solution: Avoid that the cursor is positioned past the NUL of a line. -Files: src/ops.c - - -*** ../vim-7.0.041/src/ops.c Tue Jun 20 20:29:13 2006 ---- src/ops.c Sun Jul 23 22:36:39 2006 -*************** -*** 3493,3500 **** ---- 3493,3507 ---- - # endif - if (flags & PUT_CURSEND) - { -+ colnr_T len; -+ - curwin->w_cursor = curbuf->b_op_end; - curwin->w_cursor.col++; -+ -+ /* in Insert mode we might be after the NUL, correct for that */ -+ len = (colnr_T)STRLEN(ml_get_curline()); -+ if (curwin->w_cursor.col > len) -+ curwin->w_cursor.col = len; - } - else - curwin->w_cursor.lnum = lnum; -*** ../vim-7.0.041/src/version.c Sun Jul 23 22:07:55 2006 ---- src/version.c Sun Jul 23 22:35:13 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 42, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -45. You buy a Captain Kirk chair with a built-in keyboard and mouse. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.044 b/7.0.044 deleted file mode 100644 index 8b0f0115..00000000 --- a/7.0.044 +++ /dev/null @@ -1,211 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.044 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.044 -Problem: Perl: setting a buffer line in another buffer may result in - changing the current buffer. -Solution: Properly change to the buffer to be changed. -Files: src/if_perl.xs - - -*** ../vim-7.0.043/src/if_perl.xs Tue Mar 7 00:18:16 2006 ---- src/if_perl.xs Thu Jun 22 21:22:18 2006 -*************** -*** 1056,1062 **** - int i; - long lnum; - char *line; -- buf_T *savebuf; - PPCODE: - if (buf_valid(vimbuf)) - { ---- 1056,1061 ---- -*************** -*** 1069,1082 **** - line = SvPV(ST(i),PL_na); - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -! savebuf = curbuf; - curbuf = vimbuf; - if (u_savesub(lnum) == OK) - { - ml_replace(lnum, (char_u *)line, TRUE); - changed_bytes(lnum, 0); - } -! curbuf = savebuf; - } - } - } ---- 1068,1098 ---- - line = SvPV(ST(i),PL_na); - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -! #ifdef FEAT_AUTOCMD -! aco_save_T aco; -! -! /* set curwin/curbuf for "vimbuf" and save some things */ -! aucmd_prepbuf(&aco, vimbuf); -! #else -! buf_T *save_curbuf = curbuf; -! - curbuf = vimbuf; -+ curwin->w_buffer = vimbuf; -+ #endif - if (u_savesub(lnum) == OK) - { - ml_replace(lnum, (char_u *)line, TRUE); - changed_bytes(lnum, 0); - } -! -! #ifdef FEAT_AUTOCMD -! /* restore curwin/curbuf and a few other things */ -! aucmd_restbuf(&aco); -! /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - } - } - } -*************** -*** 1087,1093 **** - - PREINIT: - long i, lnum = 0, count = 0; -- buf_T *savebuf; - PPCODE: - if (buf_valid(vimbuf)) - { ---- 1103,1108 ---- -*************** -*** 1114,1129 **** - { - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) - { -! savebuf = curbuf; - curbuf = vimbuf; - if (u_savedel(lnum, 1) == OK) - { - ml_delete(lnum, 0); - deleted_lines_mark(lnum, 1L); -! if (savebuf == curbuf) - check_cursor(); - } -! curbuf = savebuf; - update_curbuf(VALID); - } - } ---- 1129,1159 ---- - { - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) - { -! buf_T *save_curbuf = curbuf; -! #ifdef FEAT_AUTOCMD -! aco_save_T aco; -! -! /* set curwin/curbuf for "vimbuf" and save some things */ -! aucmd_prepbuf(&aco, vimbuf); -! #else - curbuf = vimbuf; -+ curwin->w_buffer = vimbuf; -+ #endif - if (u_savedel(lnum, 1) == OK) - { - ml_delete(lnum, 0); - deleted_lines_mark(lnum, 1L); -! if (save_curbuf == curbuf) - check_cursor(); - } -! #ifdef FEAT_AUTOCMD -! /* restore curwin/curbuf and a few other things */ -! aucmd_restbuf(&aco); -! /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(VALID); - } - } -*************** -*** 1138,1144 **** - int i; - long lnum; - char *line; -- buf_T *savebuf; - PPCODE: - if (buf_valid(vimbuf)) - { ---- 1168,1173 ---- -*************** -*** 1151,1164 **** - line = SvPV(ST(i),PL_na); - if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -! savebuf = curbuf; - curbuf = vimbuf; - if (u_inssub(lnum + 1) == OK) - { - ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE); - appended_lines_mark(lnum, 1L); - } -! curbuf = savebuf; - update_curbuf(VALID); - } - } ---- 1180,1210 ---- - line = SvPV(ST(i),PL_na); - if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -! #ifdef FEAT_AUTOCMD -! aco_save_T aco; -! -! /* set curwin/curbuf for "vimbuf" and save some things */ -! aucmd_prepbuf(&aco, vimbuf); -! #else -! buf_T *save_curbuf = curbuf; -! - curbuf = vimbuf; -+ curwin->w_buffer = vimbuf; -+ #endif - if (u_inssub(lnum + 1) == OK) - { - ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE); - appended_lines_mark(lnum, 1L); - } -! -! #ifdef FEAT_AUTOCMD -! /* restore curwin/curbuf and a few other things */ -! aucmd_restbuf(&aco); -! /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(VALID); - } - } -*** ../vim-7.0.043/src/version.c Tue Aug 8 16:30:51 2006 ---- src/version.c Tue Aug 8 16:45:40 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 44, - /**/ - --- -Momento mori, ergo carpe diem - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.045 b/7.0.045 deleted file mode 100644 index faa2fa71..00000000 --- a/7.0.045 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.045 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.045 (extra) -Problem: Win32: Warnings when compiling OLE version with MSVC 2005. -Solution: Move including vim.h to before windows.h. (Ilya Bobir) -Files: src/if_ole.cpp - - -*** ../vim-7.0.044/src/if_ole.cpp Wed May 3 23:18:50 2006 ---- src/if_ole.cpp Sat Jun 24 13:36:52 2006 -*************** -*** 13,23 **** - * See os_mswin.c for the client side. - */ - - #include - #include - - extern "C" { -- #include "vim.h" - extern HWND s_hwnd; - extern HWND vim_parent_hwnd; - } ---- 13,26 ---- - * See os_mswin.c for the client side. - */ - -+ extern "C" { -+ #include "vim.h" -+ } -+ - #include - #include - - extern "C" { - extern HWND s_hwnd; - extern HWND vim_parent_hwnd; - } -*** ../vim-7.0.044/src/version.c Tue Aug 8 16:47:38 2006 ---- src/version.c Tue Aug 8 17:04:14 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 45, - /**/ - --- -From "know your smileys": - % Bike accident. A bit far-fetched, I suppose; although... - o _ _ _ - _o /\_ _ \\o (_)\__/o (_) - _< \_ _>(_) (_)/<_ \_| \ _|/' \/ - (_)>(_) (_) (_) (_) (_)' _\o_ - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.046 b/7.0.046 deleted file mode 100644 index 89c2a9b9..00000000 --- a/7.0.046 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.046 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.046 -Problem: The matchparen plugin ignores parens in strings, but not in single - quotes, often marked with "character". -Solution: Also ignore parens in syntax items matching "character". -Files: runtime/plugin/matchparen.vim - - -*** ../vim-7.0.045/runtime/plugin/matchparen.vim Sat May 13 14:52:02 2006 ---- runtime/plugin/matchparen.vim Mon Jun 26 10:53:35 2006 -*************** -*** 1,6 **** - " Vim plugin for showing matching parens - " Maintainer: Bram Moolenaar -! " Last Change: 2006 May 11 - - " Exit quickly when: - " - this plugin was already loaded (or disabled) ---- 1,6 ---- - " Vim plugin for showing matching parens - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Jun 26 - - " Exit quickly when: - " - this plugin was already loaded (or disabled) -*************** -*** 96,102 **** - - " When not in a string or comment ignore matches inside them. - let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' . -! \ '=~? "string\\|comment"' - execute 'if' s_skip '| let s_skip = 0 | endif' - - let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) ---- 96,102 ---- - - " When not in a string or comment ignore matches inside them. - let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' . -! \ '=~? "string\\|character\\|singlequote\\|comment"' - execute 'if' s_skip '| let s_skip = 0 | endif' - - let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) -*** ../vim-7.0.045/src/version.c Tue Aug 8 17:06:21 2006 ---- src/version.c Tue Aug 8 18:07:37 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 46, - /**/ - --- -I AM THANKFUL... -...for the taxes that I pay because it means that I am employed. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.047 b/7.0.047 deleted file mode 100644 index cbe4037c..00000000 --- a/7.0.047 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.047 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.047 -Problem: When running configure the exit status is wrong. -Solution: Handle the exit status properly. (Matthew Woehlke) -Files: configure, src/configure - - -*** ../vim-7.0.046/configure Sun Jun 13 21:32:42 2004 ---- configure Mon Jul 10 20:26:26 2006 -*************** -*** 3,6 **** - # This is just a stub for the Unix configure script, to provide support for - # doing "./configure" in the top Vim directory. - -! cd src && ./configure "$@" ---- 3,6 ---- - # This is just a stub for the Unix configure script, to provide support for - # doing "./configure" in the top Vim directory. - -! cd src && exec ./configure "$@" -*** ../vim-7.0.046/src/configure Thu Dec 22 23:38:38 2005 ---- src/configure Mon Jul 10 20:26:53 2006 -*************** -*** 2,6 **** ---- 2,10 ---- - # run the automatically generated configure script - CONFIG_STATUS=auto/config.status \ - auto/configure "$@" --srcdir="${srcdir:-.}" --cache-file=auto/config.cache -+ result=$? -+ - # Stupid autoconf 2.5x causes this file to be left behind. - if test -f configure.lineno; then rm -f configure.lineno; fi -+ -+ exit $result -*** ../vim-7.0.046/src/version.c Tue Aug 8 18:08:54 2006 ---- src/version.c Tue Aug 8 19:09:54 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 47, - /**/ - --- -The primary purpose of the DATA statement is to give names to constants; -instead of referring to pi as 3.141592653589793 at every appearance, the -variable PI can be given that value with a DATA statement and used instead -of the longer form of the constant. This also simplifies modifying the -program, should the value of pi change. - -- FORTRAN manual for Xerox Computers - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.048 b/7.0.048 deleted file mode 100644 index cb3b4526..00000000 --- a/7.0.048 +++ /dev/null @@ -1,71 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.048 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.048 -Problem: Writing a compressed file fails when there are parens in the name. - (Wang Jian) -Solution: Put quotes around the temp file name. -Files: runtime/autoload/gzip.vim - - -*** ../vim-7.0.047/runtime/autoload/gzip.vim Wed Apr 5 22:17:15 2006 ---- runtime/autoload/gzip.vim Wed Jul 19 23:53:52 2006 -*************** -*** 1,6 **** - " Vim autoload file for editing compressed files. - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Mar 31 - - " These functions are used by the gzip plugin. - ---- 1,6 ---- - " Vim autoload file for editing compressed files. - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Jul 19 - - " These functions are used by the gzip plugin. - -*************** -*** 127,135 **** - let nmt = s:tempname(nm) - if rename(nm, nmt) == 0 - if exists("b:gzip_comp_arg") -! call system(a:cmd . " " . b:gzip_comp_arg . " " . nmt) - else -! call system(a:cmd . " " . nmt) - endif - call rename(nmt . "." . expand(":e"), nm) - endif ---- 127,135 ---- - let nmt = s:tempname(nm) - if rename(nm, nmt) == 0 - if exists("b:gzip_comp_arg") -! call system(a:cmd . " " . b:gzip_comp_arg . " '" . nmt . "'") - else -! call system(a:cmd . " '" . nmt . "'") - endif - call rename(nmt . "." . expand(":e"), nm) - endif -*** ../vim-7.0.047/src/version.c Tue Aug 8 19:10:35 2006 ---- src/version.c Tue Aug 8 19:26:51 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 48, - /**/ - --- -A fool learns from his mistakes, a wise man from someone else's. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.049 b/7.0.049 deleted file mode 100644 index 34eccb91..00000000 --- a/7.0.049 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.049 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.049 -Problem: Some TCL scripts are not recognized. (Steven Atkinson) -Solution: Check for "exec wish" in the file. -Files: runtime/scripts.vim - - -*** ../vim-7.0.048/runtime/scripts.vim Tue Mar 28 23:07:11 2006 ---- runtime/scripts.vim Sat Jul 8 22:20:51 2006 -*************** -*** 1,7 **** - " Vim support file to detect file types in scripts - " - " Maintainer: Bram Moolenaar -! " Last change: 2006 Mar 28 - - " This file is called by an autocommand for every file that has just been - " loaded into a buffer. It checks if the type of file can be recognized by ---- 1,7 ---- - " Vim support file to detect file types in scripts - " - " Maintainer: Bram Moolenaar -! " Last change: 2006 Jul 08 - - " This file is called by an autocommand for every file that has just been - " loaded into a buffer. It checks if the type of file can be recognized by -*************** -*** 52,57 **** ---- 52,63 ---- - let s:name = substitute(s:line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '') - else - let s:name = substitute(s:line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '') -+ endif -+ -+ " tcl scripts may have #!/bin/sh in the first line and "exec wish" in the -+ " third line. Suggested by Steven Atkinson. -+ if getline(3) =~ '^exec wish' -+ let s:name = 'wish' - endif - - " Bourne-like shell scripts: bash bash2 ksh ksh93 sh -*** ../vim-7.0.048/src/version.c Tue Aug 8 19:55:06 2006 ---- src/version.c Tue Aug 8 20:53:58 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 49, - /**/ - --- -I AM THANKFUL... -...for the piles of laundry and ironing because it means I -have plenty of clothes to wear. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.050 b/7.0.050 deleted file mode 100644 index eb74e499..00000000 --- a/7.0.050 +++ /dev/null @@ -1,47 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.050 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.050 -Problem: After using the netbeans interface close command a stale pointer - may be used. -Solution: Clear the pointer to the closed buffer. (Xaview de Gaye) -Files: src/netbeans.c - - -*** ../vim-7.0.049/src/netbeans.c Sun Apr 23 00:21:07 2006 ---- src/netbeans.c Fri Aug 4 23:02:54 2006 -*************** -*** 1986,1991 **** ---- 1986,1993 ---- - if (buf->bufp != NULL) - do_buffer(DOBUF_WIPE, DOBUF_FIRST, FORWARD, - buf->bufp->b_fnum, TRUE); -+ buf->bufp = NULL; -+ buf->initDone = FALSE; - doupdate = 1; - /* =====================================================================*/ - } -*** ../vim-7.0.049/src/version.c Tue Aug 8 20:56:11 2006 ---- src/version.c Tue Aug 8 21:35:25 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 50, - /**/ - --- -From "know your smileys": - :-E Has major dental problems - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.051 b/7.0.051 deleted file mode 100644 index f9e73909..00000000 --- a/7.0.051 +++ /dev/null @@ -1,227 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.051 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.051 (after 7.0.44) -Problem: The Perl interface doesn't compile or doesn't work properly. -Solution: Remove the spaces before #ifdef and avoid an empty line above it. -Files: src/if_perl.xs - - -*** ../vim-7.0.050/src/if_perl.xs Tue Aug 8 16:47:38 2006 ---- src/if_perl.xs Fri Aug 11 22:51:01 2006 -*************** -*** 1068,1098 **** - line = SvPV(ST(i),PL_na); - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -! #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -! #else - buf_T *save_curbuf = curbuf; - - curbuf = vimbuf; - curwin->w_buffer = vimbuf; -! #endif - if (u_savesub(lnum) == OK) - { - ml_replace(lnum, (char_u *)line, TRUE); - changed_bytes(lnum, 0); - } -! -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else - curwin->w_buffer = save_curbuf; - curbuf = save_curbuf; -! #endif - } - } - } ---- 1068,1097 ---- - line = SvPV(ST(i),PL_na); - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -! #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -! #else - buf_T *save_curbuf = curbuf; - - curbuf = vimbuf; - curwin->w_buffer = vimbuf; -! #endif - if (u_savesub(lnum) == OK) - { - ml_replace(lnum, (char_u *)line, TRUE); - changed_bytes(lnum, 0); - } -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else - curwin->w_buffer = save_curbuf; - curbuf = save_curbuf; -! #endif - } - } - } -*************** -*** 1130,1144 **** - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) - { - buf_T *save_curbuf = curbuf; -! #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -! #else - curbuf = vimbuf; - curwin->w_buffer = vimbuf; -! #endif - if (u_savedel(lnum, 1) == OK) - { - ml_delete(lnum, 0); ---- 1129,1143 ---- - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) - { - buf_T *save_curbuf = curbuf; -! #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -! #else - curbuf = vimbuf; - curwin->w_buffer = vimbuf; -! #endif - if (u_savedel(lnum, 1) == OK) - { - ml_delete(lnum, 0); -*************** -*** 1146,1159 **** - if (save_curbuf == curbuf) - check_cursor(); - } -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else - curwin->w_buffer = save_curbuf; - curbuf = save_curbuf; -! #endif - update_curbuf(VALID); - } - } ---- 1145,1158 ---- - if (save_curbuf == curbuf) - check_cursor(); - } -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else - curwin->w_buffer = save_curbuf; - curbuf = save_curbuf; -! #endif - update_curbuf(VALID); - } - } -*************** -*** 1180,1210 **** - line = SvPV(ST(i),PL_na); - if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -! #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -! #else - buf_T *save_curbuf = curbuf; - - curbuf = vimbuf; - curwin->w_buffer = vimbuf; -! #endif - if (u_inssub(lnum + 1) == OK) - { - ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE); - appended_lines_mark(lnum, 1L); - } -! -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else - curwin->w_buffer = save_curbuf; - curbuf = save_curbuf; -! #endif - update_curbuf(VALID); - } - } ---- 1179,1208 ---- - line = SvPV(ST(i),PL_na); - if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -! #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -! #else - buf_T *save_curbuf = curbuf; - - curbuf = vimbuf; - curwin->w_buffer = vimbuf; -! #endif - if (u_inssub(lnum + 1) == OK) - { - ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE); - appended_lines_mark(lnum, 1L); - } -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else - curwin->w_buffer = save_curbuf; - curbuf = save_curbuf; -! #endif - update_curbuf(VALID); - } - } -*** ../vim-7.0.050/src/version.c Tue Aug 8 21:36:15 2006 ---- src/version.c Fri Aug 11 22:55:25 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 51, - /**/ - --- -"A clear conscience is usually the sign of a bad memory." - -- Steven Wright - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.052 b/7.0.052 deleted file mode 100644 index 86228b01..00000000 --- a/7.0.052 +++ /dev/null @@ -1,66 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.052 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.052 -Problem: The user may not be aware that the Vim server allows others more - functionality than desired. -Solution: When running Vim as root don't become a Vim server without an - explicit --servername argument. -Files: src/main.c - - -*** ../vim-7.0.051/src/main.c Mon Jun 19 10:56:20 2006 ---- src/main.c Tue Aug 8 11:02:44 2006 -*************** -*** 3212,3221 **** - * Register for remote command execution with :serversend and --remote - * unless there was a -X or a --servername '' on the command line. - * Only register nongui-vim's with an explicit --servername argument. - */ - if (X_DISPLAY != NULL && parmp->servername != NULL && ( - # ifdef FEAT_GUI -! gui.in_use || - # endif - parmp->serverName_arg != NULL)) - { ---- 3212,3226 ---- - * Register for remote command execution with :serversend and --remote - * unless there was a -X or a --servername '' on the command line. - * Only register nongui-vim's with an explicit --servername argument. -+ * When running as root --servername is also required. - */ - if (X_DISPLAY != NULL && parmp->servername != NULL && ( - # ifdef FEAT_GUI -! (gui.in_use -! # ifdef UNIX -! && getuid() != 0 -! # endif -! ) || - # endif - parmp->serverName_arg != NULL)) - { -*** ../vim-7.0.051/src/version.c Fri Aug 11 22:56:44 2006 ---- src/version.c Tue Aug 15 21:41:24 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 52, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -148. You find it easier to dial-up the National Weather Service - Weather/your_town/now.html than to simply look out the window. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.053 b/7.0.053 deleted file mode 100644 index b16c08a1..00000000 --- a/7.0.053 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.053 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.053 -Problem: Shortening a directory name may fail when there are multi-byte - characters. -Solution: Copy the correct bytes. (Titov Anatoly) -Files: src/misc1.c - - -*** ../vim-7.0.052/src/misc1.c Sun Apr 30 20:49:14 2006 ---- src/misc1.c Tue Aug 8 11:23:45 2006 -*************** -*** 4492,4498 **** - int l = mb_ptr2len(s); - - while (--l > 0) -! *d++ = *s++; - } - # endif - } ---- 4492,4498 ---- - int l = mb_ptr2len(s); - - while (--l > 0) -! *d++ = *++s; - } - # endif - } -*** ../vim-7.0.052/src/version.c Tue Aug 15 21:42:18 2006 ---- src/version.c Tue Aug 15 22:23:44 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 53, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -150. You find yourself counting emoticons to get to sleep. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.054 b/7.0.054 deleted file mode 100644 index 692d5750..00000000 --- a/7.0.054 +++ /dev/null @@ -1,89 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.054 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.054 -Problem: Mac: Using a menu name that only has a mnemonic or accelerator - causes a crash. (Elliot Shank) -Solution: Check for an empty menu name. Also delete empty submenus that - were created before detecting the error. -Files: src/menu.c - - -*** ../vim-7.0.053/src/menu.c Wed May 3 23:28:47 2006 ---- src/menu.c Tue Aug 8 20:53:25 2006 -*************** -*** 511,516 **** ---- 511,524 ---- - * name (without mnemonic and accelerator text). */ - next_name = menu_name_skip(name); - dname = menu_text(name, NULL, NULL); -+ if (dname == NULL) -+ goto erret; -+ if (*dname == NUL) -+ { -+ /* Only a mnemonic or accelerator is not valid. */ -+ EMSG(_("E792: Empty menu name")); -+ goto erret; -+ } - - /* See if it's already there */ - lower_pri = menup; -*************** -*** 704,709 **** ---- 712,718 ---- - parent = menu; - name = next_name; - vim_free(dname); -+ dname = NULL; - if (pri_tab[pri_idx + 1] != -1) - ++pri_idx; - } -*************** -*** 793,798 **** ---- 802,823 ---- - erret: - vim_free(path_name); - vim_free(dname); -+ -+ /* Delete any empty submenu we added before discovering the error. Repeat -+ * for higher levels. */ -+ while (parent != NULL && parent->children == NULL) -+ { -+ if (parent->parent == NULL) -+ menup = &root_menu; -+ else -+ menup = &parent->parent->children; -+ for ( ; *menup != NULL && *menup != parent; menup = &((*menup)->next)) -+ ; -+ if (*menup == NULL) /* safety check */ -+ break; -+ parent = parent->parent; -+ free_menu(menup); -+ } - return FAIL; - } - -*** ../vim-7.0.053/src/version.c Tue Aug 15 22:26:04 2006 ---- src/version.c Wed Aug 16 15:53:39 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 54, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -156. You forget your friend's name but not her e-mail address. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.055 b/7.0.055 deleted file mode 100644 index e3ff1627..00000000 --- a/7.0.055 +++ /dev/null @@ -1,71 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.055 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.055 -Problem: ":startinsert" in a CmdwinEnter autocommand doesn't take immediate - effect. (Bradley White) -Solution: Put a NOP key in the typeahead buffer. Also avoid that using - CTRL-C to go back to the command line moves the cursor left. -Files: src/edit.c, src/ex_getln.c - - -*** ../vim-7.0.054/src/edit.c Fri Jun 23 21:36:49 2006 ---- src/edit.c Wed Aug 16 16:17:29 2006 -*************** -*** 882,887 **** ---- 882,888 ---- - /* Close the cmdline window. */ - cmdwin_result = K_IGNORE; - got_int = FALSE; /* don't stop executing autocommands et al. */ -+ nomove = TRUE; - goto doESCkey; - } - #endif -*************** -*** 2414,2419 **** ---- 2415,2421 ---- - compl_matches = ins_compl_make_cyclic(); - compl_started = TRUE; - compl_used_match = TRUE; -+ compl_cont_status = 0; - - compl_curr_match = compl_first_match; - ins_complete(Ctrl_N); -*** ../vim-7.0.054/src/ex_getln.c Sun Apr 30 20:43:17 2006 ---- src/ex_getln.c Wed Aug 16 16:07:04 2006 -*************** -*** 5982,5987 **** ---- 5982,5989 ---- - typestr[0] = cmdwin_type; - typestr[1] = NUL; - apply_autocmds(EVENT_CMDWINENTER, typestr, typestr, FALSE, curbuf); -+ if (restart_edit != 0) /* autocmd with ":startinsert" */ -+ stuffcharReadbuff(K_NOP); - # endif - - i = RedrawingDisabled; -*** ../vim-7.0.054/src/version.c Wed Aug 16 15:56:58 2006 ---- src/version.c Wed Aug 16 16:21:45 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 55, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -157. You fum through a magazine, you first check to see if it has a web - address. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.056 b/7.0.056 deleted file mode 100644 index 443bb3e0..00000000 --- a/7.0.056 +++ /dev/null @@ -1,49 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.056 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.056 -Problem: "#!something" gives an error message. -Solution: Ignore this line, so that it can be used in an executable Vim - script. -Files: src/ex_docmd.c - - -*** ../vim-7.0.055/src/ex_docmd.c Sat May 13 12:36:18 2006 ---- src/ex_docmd.c Thu Aug 10 23:50:32 2006 -*************** -*** 1709,1714 **** ---- 1712,1721 ---- - */ - save_cmdmod = cmdmod; - vim_memset(&cmdmod, 0, sizeof(cmdmod)); -+ -+ /* "#!anything" is handled like a comment. */ -+ if ((*cmdlinep)[0] == '#' && (*cmdlinep)[1] == '!') -+ goto doend; - - /* - * Repeat until no more command modifiers are found. -*** ../vim-7.0.055/src/version.c Wed Aug 16 16:24:58 2006 ---- src/version.c Wed Aug 16 17:05:35 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 56, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -158. You get a tuner card so you can watch TV while surfing. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.057 b/7.0.057 deleted file mode 100644 index 54ce72e3..00000000 --- a/7.0.057 +++ /dev/null @@ -1,74 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.057 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.057 (extra, after 7.0.45) -Problem: Win32: Compilation problem with Borland C 5.5. -Solution: Include vim.h as before. (Mark S. Williams) -Files: src/if_ole.cpp - - -*** ../vim-7.0.056/src/if_ole.cpp Tue Aug 8 17:06:21 2006 ---- src/if_ole.cpp Sun Aug 13 12:57:24 2006 -*************** -*** 13,26 **** - * See os_mswin.c for the client side. - */ - - extern "C" { -! #include "vim.h" - } - - #include - #include - - extern "C" { - extern HWND s_hwnd; - extern HWND vim_parent_hwnd; - } ---- 13,35 ---- - * See os_mswin.c for the client side. - */ - -+ /* -+ * We have some trouble with order of includes here. For Borland it needs to -+ * be different from MSVC... -+ */ -+ #ifndef __BORLANDC__ - extern "C" { -! # include "vim.h" - } -+ #endif - - #include - #include - - extern "C" { -+ #ifdef __BORLANDC__ -+ # include "vim.h" -+ #endif - extern HWND s_hwnd; - extern HWND vim_parent_hwnd; - } -*** ../vim-7.0.056/src/version.c Wed Aug 16 17:06:22 2006 ---- src/version.c Wed Aug 16 17:35:57 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 57, - /**/ - --- -Send $25.00 for handy leaflet on how to make money by selling leaflets - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.058 b/7.0.058 deleted file mode 100644 index 5ec4d9b0..00000000 --- a/7.0.058 +++ /dev/null @@ -1,46 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.058 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.058 -Problem: The gbk and and gb18030 encodings are not recognized. -Solution: Add aliases to cp936. (Edward L. Fox) -Files: src/mbyte.c - - -*** ../vim-7.0.057/src/mbyte.c Sat May 13 17:10:00 2006 ---- src/mbyte.c Sat Aug 12 22:59:55 2006 -*************** -*** 363,368 **** ---- 363,370 ---- - {"932", IDX_CP932}, - {"949", IDX_CP949}, - {"936", IDX_CP936}, -+ {"gbk", IDX_CP936}, -+ {"gb18030", IDX_CP936}, /* only 99% the same */ - {"950", IDX_CP950}, - {"eucjp", IDX_EUC_JP}, - {"unix-jis", IDX_EUC_JP}, -*** ../vim-7.0.057/src/version.c Wed Aug 16 17:36:21 2006 ---- src/version.c Wed Aug 16 18:04:14 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 58, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -162. You go outside and look for a brightness knob to turn down the sun. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.059 b/7.0.059 deleted file mode 100644 index 8d676756..00000000 --- a/7.0.059 +++ /dev/null @@ -1,55 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.059 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.059 -Problem: The Perl interface doesn't compile with ActiveState Perl 5.8.8. -Solution: Remove the __attribute__() items. (Edward L. Fox) -Files: src/if_perl.xs - - -*** ../vim-7.0.058/src/if_perl.xs Fri Aug 11 22:56:44 2006 ---- src/if_perl.xs Wed Aug 16 14:45:15 2006 -*************** -*** 155,162 **** - static int (*perl_run)(PerlInterpreter*); - static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**); - static void* (*Perl_get_context)(void); -! static void (*Perl_croak)(pTHX_ const char*, ...) __attribute__((noreturn)); -! static void (*Perl_croak_nocontext)(const char*, ...) __attribute__((noreturn)); - static I32 (*Perl_dowantarray)(pTHX); - static void (*Perl_free_tmps)(pTHX); - static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32); ---- 155,162 ---- - static int (*perl_run)(PerlInterpreter*); - static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**); - static void* (*Perl_get_context)(void); -! static void (*Perl_croak)(pTHX_ const char*, ...); -! static void (*Perl_croak_nocontext)(const char*, ...); - static I32 (*Perl_dowantarray)(pTHX); - static void (*Perl_free_tmps)(pTHX); - static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32); -*** ../vim-7.0.058/src/version.c Wed Aug 16 18:05:36 2006 ---- src/version.c Wed Aug 16 18:18:35 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 59, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -163. You go outside for the fresh air (at -30 degrees) but open the - window first to hear new mail arrive. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.060 b/7.0.060 deleted file mode 100644 index 1e087712..00000000 --- a/7.0.060 +++ /dev/null @@ -1,723 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.060 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.060 (after 7.0.51) -Problem: Code for temporarily switching to another buffer is duplicated in - quite a few places. -Solution: Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is - not defined. -Files: src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c, - src/if_perl.xs, src/quickfix.c, src/structs.h - - -*** ../vim-7.0.059/src/buffer.c Thu Apr 27 01:49:30 2006 ---- src/buffer.c Wed Aug 16 14:36:17 2006 -*************** -*** 5420,5430 **** - buf_T *newbuf; - int differ = TRUE; - linenr_T lnum; -- #ifdef FEAT_AUTOCMD - aco_save_T aco; -- #else -- buf_T *old_curbuf = curbuf; -- #endif - exarg_T ea; - - /* Allocate a buffer without putting it in the buffer list. */ ---- 5420,5426 ---- -*************** -*** 5439,5451 **** - return TRUE; - } - -- #ifdef FEAT_AUTOCMD - /* set curwin/curbuf to buf and save a few things */ - aucmd_prepbuf(&aco, newbuf); -- #else -- curbuf = newbuf; -- curwin->w_buffer = newbuf; -- #endif - - if (ml_open(curbuf) == OK - && readfile(buf->b_ffname, buf->b_fname, ---- 5435,5442 ---- -*************** -*** 5466,5478 **** - } - vim_free(ea.cmd); - -- #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); -- #else -- curbuf = old_curbuf; -- curwin->w_buffer = old_curbuf; -- #endif - - if (curbuf != newbuf) /* safety check */ - wipe_buffer(newbuf, FALSE); ---- 5457,5464 ---- -*** ../vim-7.0.059/src/eval.c Sun Jul 23 22:07:55 2006 ---- src/eval.c Wed Aug 16 14:38:32 2006 -*************** -*** 14184,14194 **** - typval_T *rettv; - { - buf_T *buf; -- #ifdef FEAT_AUTOCMD - aco_save_T aco; -- #else -- buf_T *save_curbuf; -- #endif - char_u *varname, *bufvarname; - typval_T *varp; - char_u nbuf[NUMBUFLEN]; ---- 14184,14190 ---- -*************** -*** 14205,14216 **** - if (buf != NULL && varname != NULL && varp != NULL) - { - /* set curbuf to be our buf, temporarily */ -- #ifdef FEAT_AUTOCMD - aucmd_prepbuf(&aco, buf); -- #else -- save_curbuf = curbuf; -- curbuf = buf; -- #endif - - if (*varname == '&') - { ---- 14201,14207 ---- -*************** -*** 14237,14247 **** - } - - /* reset notion of buffer */ -- #ifdef FEAT_AUTOCMD - aucmd_restbuf(&aco); -- #else -- curbuf = save_curbuf; -- #endif - } - } - ---- 14228,14234 ---- -*** ../vim-7.0.059/src/fileio.c Sun Apr 30 20:33:48 2006 ---- src/fileio.c Wed Aug 16 14:39:23 2006 -*************** -*** 6450,6466 **** - int old_ro = buf->b_p_ro; - buf_T *savebuf; - int saved = OK; -- #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "buf" and save some things */ - aucmd_prepbuf(&aco, buf); -- #else -- buf_T *save_curbuf = curbuf; -- -- curbuf = buf; -- curwin->w_buffer = buf; -- #endif - - /* We only want to read the text from the file, not reset the syntax - * highlighting, clear marks, diff status, etc. Force the fileformat ---- 6450,6459 ---- -*************** -*** 6573,6586 **** - curbuf->b_p_ro |= old_ro; - } - -- #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "buf" invalid! */ -- #else -- curwin->w_buffer = save_curbuf; -- curbuf = save_curbuf; -- #endif - } - - /*ARGSUSED*/ ---- 6566,6574 ---- -*************** -*** 8088,8093 **** ---- 8076,8082 ---- - * Search a window for the current buffer. Save the cursor position and - * screen offset. - * Set "curbuf" and "curwin" to match "buf". -+ * When FEAT_AUTOCMD is not defined another version is used, see below. - */ - void - aucmd_prepbuf(aco, buf) -*************** -*** 8151,8156 **** ---- 8140,8146 ---- - /* - * Cleanup after executing autocommands for a (hidden) buffer. - * Restore the window as it was (if possible). -+ * When FEAT_AUTOCMD is not defined another version is used, see below. - */ - void - aucmd_restbuf(aco) -*************** -*** 9063,9069 **** ---- 9053,9089 ---- - return retval; - } - -+ #else /* FEAT_AUTOCMD */ -+ -+ /* -+ * Prepare for executing commands for (hidden) buffer "buf". -+ * This is the non-autocommand version, it simply saves "curbuf" and sets -+ * "curbuf" and "curwin" to match "buf". -+ */ -+ void -+ aucmd_prepbuf(aco, buf) -+ aco_save_T *aco; /* structure to save values in */ -+ buf_T *buf; /* new curbuf */ -+ { -+ aco->save_buf = buf; -+ curbuf = buf; -+ curwin->w_buffer = buf; -+ } -+ -+ /* -+ * Restore after executing commands for a (hidden) buffer. -+ * This is the non-autocommand version. -+ */ -+ void -+ aucmd_restbuf(aco) -+ aco_save_T *aco; /* structure holding saved values */ -+ { -+ curbuf = aco->save_buf; -+ curwin->w_buffer = curbuf; -+ } -+ - #endif /* FEAT_AUTOCMD */ -+ - - #if defined(FEAT_AUTOCMD) || defined(FEAT_WILDIGN) || defined(PROTO) - /* -*** ../vim-7.0.059/src/if_ruby.c Tue Jun 20 21:08:02 2006 ---- src/if_ruby.c Wed Aug 16 14:41:11 2006 -*************** -*** 644,664 **** - static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str) - { - char *line = STR2CSTR(str); -- #ifdef FEAT_AUTOCMD - aco_save_T aco; -- #else -- buf_T *save_curbuf = curbuf; -- #endif - - if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL) - { -- #ifdef FEAT_AUTOCMD - /* set curwin/curbuf for "buf" and save some things */ - aucmd_prepbuf(&aco, buf); -- #else -- curbuf = buf; -- curwin->w_buffer = buf; -- #endif - - if (u_savesub(n) == OK) { - ml_replace(n, (char_u *)line, TRUE); ---- 644,655 ---- -*************** -*** 668,681 **** - #endif - } - -- #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "buf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(NOT_VALID); - } - else ---- 659,668 ---- - #endif - } - - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "buf" invalid! */ -! - update_curbuf(NOT_VALID); - } - else -*************** -*** 699,719 **** - { - buf_T *buf = get_buf(self); - long n = NUM2LONG(num); -- #ifdef FEAT_AUTOCMD - aco_save_T aco; -- #else -- buf_T *save_curbuf = curbuf; -- #endif - - if (n > 0 && n <= buf->b_ml.ml_line_count) - { -- #ifdef FEAT_AUTOCMD - /* set curwin/curbuf for "buf" and save some things */ - aucmd_prepbuf(&aco, buf); -- #else -- curbuf = buf; -- curwin->w_buffer = buf; -- #endif - - if (u_savedel(n, 1) == OK) { - ml_delete(n, 0); ---- 686,697 ---- -*************** -*** 725,738 **** - changed(); - } - -- #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "buf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(NOT_VALID); - } - else ---- 703,712 ---- - changed(); - } - - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "buf" invalid! */ -! - update_curbuf(NOT_VALID); - } - else -*************** -*** 747,767 **** - buf_T *buf = get_buf(self); - char *line = STR2CSTR(str); - long n = NUM2LONG(num); -- #ifdef FEAT_AUTOCMD - aco_save_T aco; -- #else -- buf_T *save_curbuf = curbuf; -- #endif - - if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL) - { -- #ifdef FEAT_AUTOCMD - /* set curwin/curbuf for "buf" and save some things */ - aucmd_prepbuf(&aco, buf); -- #else -- curbuf = buf; -- curwin->w_buffer = buf; -- #endif - - if (u_inssub(n + 1) == OK) { - ml_append(n, (char_u *) line, (colnr_T) 0, FALSE); ---- 721,732 ---- -*************** -*** 773,786 **** - changed(); - } - -- #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "buf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(NOT_VALID); - } - else { ---- 738,747 ---- - changed(); - } - - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "buf" invalid! */ -! - update_curbuf(NOT_VALID); - } - else { -*** ../vim-7.0.059/src/if_perl.xs Wed Aug 16 18:19:41 2006 ---- src/if_perl.xs Wed Aug 16 14:45:15 2006 -*************** -*** 1068,1097 **** - line = SvPV(ST(i),PL_na); - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -- #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -- #else -- buf_T *save_curbuf = curbuf; - -- curbuf = vimbuf; -- curwin->w_buffer = vimbuf; -- #endif - if (u_savesub(lnum) == OK) - { - ml_replace(lnum, (char_u *)line, TRUE); - changed_bytes(lnum, 0); - } -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -- #else -- curwin->w_buffer = save_curbuf; -- curbuf = save_curbuf; -- #endif - } - } - } ---- 1068,1087 ---- - line = SvPV(ST(i),PL_na); - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); - - if (u_savesub(lnum) == OK) - { - ml_replace(lnum, (char_u *)line, TRUE); - changed_bytes(lnum, 0); - } -! - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ - } - } - } -*************** -*** 1128,1158 **** - { - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) - { -- buf_T *save_curbuf = curbuf; -- #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -! #else -! curbuf = vimbuf; -! curwin->w_buffer = vimbuf; -! #endif - if (u_savedel(lnum, 1) == OK) - { - ml_delete(lnum, 0); - deleted_lines_mark(lnum, 1L); -! if (save_curbuf == curbuf) - check_cursor(); - } -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(VALID); - } - } ---- 1118,1140 ---- - { - if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) - { - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -! - if (u_savedel(lnum, 1) == OK) - { - ml_delete(lnum, 0); - deleted_lines_mark(lnum, 1L); -! if (aco.save_buf == curbuf) - check_cursor(); - } -! - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! - update_curbuf(VALID); - } - } -*************** -*** 1179,1208 **** - line = SvPV(ST(i),PL_na); - if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { -- #ifdef FEAT_AUTOCMD - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); -- #else -- buf_T *save_curbuf = curbuf; - -- curbuf = vimbuf; -- curwin->w_buffer = vimbuf; -- #endif - if (u_inssub(lnum + 1) == OK) - { - ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE); - appended_lines_mark(lnum, 1L); - } -! #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! #else -! curwin->w_buffer = save_curbuf; -! curbuf = save_curbuf; -! #endif - update_curbuf(VALID); - } - } ---- 1161,1181 ---- - line = SvPV(ST(i),PL_na); - if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) - { - aco_save_T aco; - - /* set curwin/curbuf for "vimbuf" and save some things */ - aucmd_prepbuf(&aco, vimbuf); - - if (u_inssub(lnum + 1) == OK) - { - ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE); - appended_lines_mark(lnum, 1L); - } -! - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); - /* Careful: autocommands may have made "vimbuf" invalid! */ -! - update_curbuf(VALID); - } - } -*** ../vim-7.0.059/src/quickfix.c Tue Jun 20 20:49:42 2006 ---- src/quickfix.c Wed Aug 16 14:43:06 2006 -*************** -*** 2463,2494 **** - qf_info_T *qi; - { - buf_T *buf; -- #ifdef FEAT_AUTOCMD - aco_save_T aco; -- #else -- buf_T *save_curbuf; -- #endif - - /* Check if a buffer for the quickfix list exists. Update it. */ - buf = qf_find_buf(qi); - if (buf != NULL) - { -- #ifdef FEAT_AUTOCMD - /* set curwin/curbuf to buf and save a few things */ - aucmd_prepbuf(&aco, buf); -- #else -- save_curbuf = curbuf; -- curbuf = buf; -- #endif - - qf_fill_buffer(qi); - -- #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); -- #else -- curbuf = save_curbuf; -- #endif - - (void)qf_win_pos_update(qi, 0); - } ---- 2463,2481 ---- -*************** -*** 2977,2986 **** - #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) - char_u *save_ei = NULL; - #endif -- #ifndef FEAT_AUTOCMD -- buf_T *save_curbuf; -- #else - aco_save_T aco; - char_u *au_name = NULL; - int flags = 0; - colnr_T col; ---- 2964,2971 ---- - #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) - char_u *save_ei = NULL; - #endif - aco_save_T aco; -+ #ifdef FEAT_AUTOCMD - char_u *au_name = NULL; - int flags = 0; - colnr_T col; -*************** -*** 3201,3224 **** - * need to be done now, in that buffer. And the modelines - * need to be done (again). But not the window-local - * options! */ -- #if defined(FEAT_AUTOCMD) - aucmd_prepbuf(&aco, buf); -- #else -- save_curbuf = curbuf; -- curbuf = buf; -- curwin->w_buffer = curbuf; -- #endif - #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) - apply_autocmds(EVENT_FILETYPE, buf->b_p_ft, - buf->b_fname, TRUE, buf); - #endif - do_modelines(OPT_NOWIN); -- #if defined(FEAT_AUTOCMD) - aucmd_restbuf(&aco); -- #else -- curbuf = save_curbuf; -- curwin->w_buffer = curbuf; -- #endif - } - } - } ---- 3186,3198 ---- -*************** -*** 3319,3329 **** - { - buf_T *newbuf; - int failed = TRUE; -- #ifdef FEAT_AUTOCMD - aco_save_T aco; -- #else -- buf_T *old_curbuf = curbuf; -- #endif - - /* Allocate a buffer without putting it in the buffer list. */ - newbuf = buflist_new(NULL, NULL, (linenr_T)1, BLN_DUMMY); ---- 3293,3299 ---- -*************** -*** 3333,3345 **** - /* Init the options. */ - buf_copy_options(newbuf, BCO_ENTER | BCO_NOHELP); - -- #ifdef FEAT_AUTOCMD - /* set curwin/curbuf to buf and save a few things */ - aucmd_prepbuf(&aco, newbuf); -- #else -- curbuf = newbuf; -- curwin->w_buffer = newbuf; -- #endif - - /* Need to set the filename for autocommands. */ - (void)setfname(curbuf, fname, NULL, FALSE); ---- 3303,3310 ---- -*************** -*** 3370,3382 **** - } - } - -- #ifdef FEAT_AUTOCMD - /* restore curwin/curbuf and a few other things */ - aucmd_restbuf(&aco); -- #else -- curbuf = old_curbuf; -- curwin->w_buffer = old_curbuf; -- #endif - - if (!buf_valid(newbuf)) - return NULL; ---- 3335,3342 ---- -*** ../vim-7.0.059/src/structs.h Sun Apr 9 23:52:16 2006 ---- src/structs.h Wed Aug 16 19:30:48 2006 -*************** -*** 2213,2230 **** - - /* - * Struct to save values in before executing autocommands for a buffer that is -! * not the current buffer. - */ - typedef struct - { - buf_T *save_buf; /* saved curbuf */ - buf_T *new_curbuf; /* buffer to be used */ - win_T *save_curwin; /* saved curwin, NULL if it didn't change */ - win_T *new_curwin; /* new curwin if save_curwin != NULL */ - pos_T save_cursor; /* saved cursor pos of save_curwin */ - linenr_T save_topline; /* saved topline of save_curwin */ -! #ifdef FEAT_DIFF - int save_topfill; /* saved topfill of save_curwin */ - #endif - } aco_save_T; - ---- 2213,2232 ---- - - /* - * Struct to save values in before executing autocommands for a buffer that is -! * not the current buffer. Without FEAT_AUTOCMD only "curbuf" is remembered. - */ - typedef struct - { - buf_T *save_buf; /* saved curbuf */ -+ #ifdef FEAT_AUTOCMD - buf_T *new_curbuf; /* buffer to be used */ - win_T *save_curwin; /* saved curwin, NULL if it didn't change */ - win_T *new_curwin; /* new curwin if save_curwin != NULL */ - pos_T save_cursor; /* saved cursor pos of save_curwin */ - linenr_T save_topline; /* saved topline of save_curwin */ -! # ifdef FEAT_DIFF - int save_topfill; /* saved topfill of save_curwin */ -+ # endif - #endif - } aco_save_T; - -*** ../vim-7.0.059/src/version.c Wed Aug 16 18:19:41 2006 ---- src/version.c Wed Aug 16 19:31:01 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 60, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -164. You got out to buy software, instead of going out for a beer. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.061 b/7.0.061 deleted file mode 100644 index beb90dd7..00000000 --- a/7.0.061 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.061 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.061 -Problem: Insert mode completion for Vim commands may crash if there is - nothing to complete. -Solution: Instead of freeing the pattern make it empty, so that a "not - found" error is given. (Yukihiro Nakadaira) -Files: src/edit.c - - -*** ../vim-7.0.060/src/edit.c Wed Aug 16 16:24:58 2006 ---- src/edit.c Wed Aug 16 21:20:29 2006 -*************** -*** 4691,4708 **** - (int)STRLEN(compl_pattern), curs_col); - if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL - || compl_xp.xp_context == EXPAND_NOTHING) -! { - compl_col = curs_col; -- compl_length = 0; -- vim_free(compl_pattern); -- compl_pattern = NULL; -- } - else -! { -! startcol = (int)(compl_xp.xp_pattern - compl_pattern); -! compl_col = startcol; -! compl_length = curs_col - startcol; -! } - } - else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI) - { ---- 4692,4703 ---- - (int)STRLEN(compl_pattern), curs_col); - if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL - || compl_xp.xp_context == EXPAND_NOTHING) -! /* No completion possible, use an empty pattern to get a -! * "pattern not found" message. */ - compl_col = curs_col; - else -! compl_col = (int)(compl_xp.xp_pattern - compl_pattern); -! compl_length = curs_col - compl_col; - } - else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI) - { -*** ../vim-7.0.060/src/version.c Wed Aug 16 19:34:59 2006 ---- src/version.c Wed Aug 16 21:25:03 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 61, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -165. You have a web page burned into your glasses - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.062 b/7.0.062 deleted file mode 100644 index 5e9cf9d8..00000000 --- a/7.0.062 +++ /dev/null @@ -1,120 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.062 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.062 -Problem: Mac: Crash when using the popup menu for spell correction. The - popup menu appears twice when letting go of the right mouse button - early. -Solution: Don't show the popup menu on the release of the right mouse - button. Also check that a menu pointer is actually valid. -Files: src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c - - -*** ../vim-7.0.061/src/proto/menu.pro Fri Mar 24 23:37:59 2006 ---- src/proto/menu.pro Wed Aug 16 20:25:57 2006 -*************** -*** 10,15 **** ---- 10,16 ---- - extern int menu_is_child_of_popup __ARGS((vimmenu_T *menu)); - extern int menu_is_toolbar __ARGS((char_u *name)); - extern int menu_is_separator __ARGS((char_u *name)); -+ extern int check_menu_pointer __ARGS((vimmenu_T *root, vimmenu_T *menu_to_check)); - extern void gui_create_initial_menus __ARGS((vimmenu_T *menu)); - extern void gui_update_menus __ARGS((int modes)); - extern int gui_is_menu_shortcut __ARGS((int key)); -*** ../vim-7.0.061/src/menu.c Wed Aug 16 15:56:58 2006 ---- src/menu.c Wed Aug 16 20:35:09 2006 -*************** -*** 1778,1783 **** ---- 1778,1804 ---- - } - - /* -+ * Check that a pointer appears in the menu tree. Used to protect from using -+ * a menu that was deleted after it was selected but before the event was -+ * handled. -+ * Return OK or FAIL. Used recursively. -+ */ -+ int -+ check_menu_pointer(root, menu_to_check) -+ vimmenu_T *root; -+ vimmenu_T *menu_to_check; -+ { -+ vimmenu_T *p; -+ -+ for (p = root; p != NULL; p = p->next) -+ if (p == menu_to_check -+ || (p->children != NULL -+ && check_menu_pointer(p->children, menu_to_check) == OK)) -+ return OK; -+ return FAIL; -+ } -+ -+ /* - * After we have started the GUI, then we can create any menus that have been - * defined. This is done once here. add_menu_path() may have already been - * called to define these menus, and may be called again. This function calls -*** ../vim-7.0.061/src/normal.c Sat Apr 29 23:53:55 2006 ---- src/normal.c Wed Aug 16 19:54:04 2006 -*************** -*** 2504,2510 **** - * NOTE: Ignore right button down and drag mouse events. - * Windows only shows the popup menu on the button up event. - */ -! #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) - if (!is_click) - return FALSE; - #endif ---- 2504,2511 ---- - * NOTE: Ignore right button down and drag mouse events. - * Windows only shows the popup menu on the button up event. - */ -! #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) \ -! || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) - if (!is_click) - return FALSE; - #endif -*** ../vim-7.0.061/src/term.c Wed May 3 23:26:49 2006 ---- src/term.c Wed Aug 16 21:24:21 2006 -*************** -*** 4783,4788 **** ---- 4783,4796 ---- - return -1; - current_menu = (vimmenu_T *)val; - slen += num_bytes; -+ -+ /* The menu may have been deleted right after it was used, check -+ * for that. */ -+ if (check_menu_pointer(root_menu, current_menu) == FAIL) -+ { -+ key_name[0] = KS_EXTRA; -+ key_name[1] = (int)KE_IGNORE; -+ } - } - # endif - # ifdef FEAT_GUI_TABLINE -*** ../vim-7.0.061/src/version.c Wed Aug 16 21:26:19 2006 ---- src/version.c Wed Aug 16 21:40:37 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 62, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -166. You have been on your computer soo long that you didn't realize - you had grandchildren. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.063 b/7.0.063 deleted file mode 100644 index 71598931..00000000 --- a/7.0.063 +++ /dev/null @@ -1,45 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.063 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.063 -Problem: Tiny chance for a memory leak. (coverity) -Solution: Free pointer when next memory allocation fails. -Files: src/eval.c - - -*** ../vim-7.0.062/src/eval.c Wed Aug 16 19:34:59 2006 ---- src/eval.c Wed Aug 16 21:33:24 2006 -*************** -*** 18811,18816 **** ---- 18811,18817 ---- - if (dict_add(fudi.fd_dict, fudi.fd_di) == FAIL) - { - vim_free(fudi.fd_di); -+ vim_free(fp); - goto erret; - } - } -*** ../vim-7.0.062/src/version.c Wed Aug 16 21:42:34 2006 ---- src/version.c Wed Aug 16 22:02:57 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 63, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -167. You have more than 200 websites bookmarked. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.064 b/7.0.064 deleted file mode 100644 index c2ded659..00000000 --- a/7.0.064 +++ /dev/null @@ -1,66 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.064 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.064 -Problem: Using uninitialized variable. (Tony Mechelynck) -Solution: When not used set "temp" to zero. Also avoid a warning for - "files" in ins_compl_dictionaries(). -Files: src/edit.c - - -*** ../vim-7.0.063/src/edit.c Wed Aug 16 21:26:19 2006 ---- src/edit.c Thu Aug 17 22:28:34 2006 -*************** -*** 2760,2765 **** ---- 2760,2766 ---- - } - else - # endif -+ if (count > 0) /* avoid warning for using "files" uninit */ - { - ins_compl_files(count, files, thesaurus, flags, - ®match, buf, &dir); -*************** -*** 3222,3228 **** - int c; - { - char_u *ptr; -- int temp; - int want_cindent; - int retval = FALSE; - ---- 3223,3228 ---- -*************** -*** 3378,3383 **** ---- 3378,3384 ---- - if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E) - { - char_u *p; -+ int temp = 0; - - /* - * If any of the original typed text has been changed, eg when -*** ../vim-7.0.063/src/version.c Wed Aug 16 22:03:35 2006 ---- src/version.c Tue Aug 22 19:56:05 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 64, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -200. You really believe in the concept of a "paperless" office. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.065 b/7.0.065 deleted file mode 100644 index 56bf59fa..00000000 --- a/7.0.065 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.065 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.065 (extra) -Problem: Mac: left-right movement of the scrollwheel causes up-down - scrolling. -Solution: Ignore mouse wheel events that are not up-down. (Nicolas Weber) -Files: src/gui_mac.c - - -*** ../vim-7.0.064/src/gui_mac.c Wed May 3 00:03:26 2006 ---- src/gui_mac.c Tue Aug 22 13:41:12 2006 -*************** -*** 2480,2485 **** ---- 2480,2491 ---- - UInt32 mod; - SInt32 delta; - int_u vim_mod; -+ EventMouseWheelAxis axis; -+ -+ if (noErr == GetEventParameter(theEvent, kEventParamMouseWheelAxis, -+ typeMouseWheelAxis, NULL, sizeof(axis), NULL, &axis) -+ && axis != kEventMouseWheelAxisY) -+ goto bail; /* Vim only does up-down scrolling */ - - if (noErr != GetEventParameter(theEvent, kEventParamMouseWheelDelta, - typeSInt32, NULL, sizeof(SInt32), NULL, &delta)) -*** ../vim-7.0.064/src/version.c Tue Aug 22 19:58:22 2006 ---- src/version.c Tue Aug 22 21:38:07 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 65, - /**/ - --- -Spam seems to be something useful to novices. Later you realize that -it's a bunch of indigestable junk that only clogs your system. -Applies to both the food and the e-mail! - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.066 b/7.0.066 deleted file mode 100644 index 919259ec..00000000 --- a/7.0.066 +++ /dev/null @@ -1,49 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.066 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.066 -Problem: After the popup menu for Insert mode completion overlaps the tab - pages line it is not completely removed. -Solution: Redraw the tab pages line after removing the popup menu. (Ori - Avtalion) -Files: src/popupmnu.c - - -*** ../vim-7.0.065/src/popupmnu.c Fri Apr 21 00:12:29 2006 ---- src/popupmnu.c Tue Aug 22 16:10:55 2006 -*************** -*** 552,557 **** ---- 552,560 ---- - { - pum_array = NULL; - redraw_all_later(SOME_VALID); -+ #ifdef FEAT_WINDOWS -+ redraw_tabline = TRUE; -+ #endif - status_redraw_all(); - } - -*** ../vim-7.0.065/src/version.c Tue Aug 22 21:39:18 2006 ---- src/version.c Tue Aug 22 21:50:34 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 66, - /**/ - --- -panic("Foooooooood fight!"); - -- In the kernel source aha1542.c, after detecting a bad segment list - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.067 b/7.0.067 deleted file mode 100644 index 88214f88..00000000 --- a/7.0.067 +++ /dev/null @@ -1,95 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.067 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.067 -Problem: Undo doesn't always work properly when using "scim" input method. - Undo is split up when using preediting. -Solution: Reset xim_has_preediting also when preedit_start_col is not - MAXCOL. Don't split undo when is used while preediting. - (Yukihiro Nakadaira) -Files: src/edit.c, src/mbyte.c - - -*** ../vim-7.0.066/src/edit.c Tue Aug 22 19:58:22 2006 ---- src/edit.c Tue Aug 29 14:57:46 2006 -*************** -*** 8597,8603 **** - tpos = curwin->w_cursor; - if (oneleft() == OK) - { -! start_arrow(&tpos); - #ifdef FEAT_RIGHTLEFT - /* If exit reversed string, position is fixed */ - if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol) ---- 8597,8608 ---- - tpos = curwin->w_cursor; - if (oneleft() == OK) - { -! #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) -! /* Only call start_arrow() when not busy with preediting, it will -! * break undo. K_LEFT is inserted in im_correct_cursor(). */ -! if (!im_is_preediting()) -! #endif -! start_arrow(&tpos); - #ifdef FEAT_RIGHTLEFT - /* If exit reversed string, position is fixed */ - if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol) -*** ../vim-7.0.066/src/mbyte.c Wed Aug 16 18:05:36 2006 ---- src/mbyte.c Tue Aug 29 14:41:45 2006 -*************** -*** 3514,3519 **** ---- 3514,3524 ---- - add_to_input_buf(delkey, (int)sizeof(delkey)); - } - -+ /* -+ * Move the cursor left by "num_move_back" characters. -+ * Note that ins_left() checks im_is_preediting() to avoid breaking undo for -+ * these K_LEFT keys. -+ */ - static void - im_correct_cursor(int num_move_back) - { -*************** -*** 3741,3748 **** - } - else if (cursor_index == 0 && preedit_string[0] == '\0') - { -! if (preedit_start_col == MAXCOL) -! xim_has_preediting = FALSE; - - /* If at the start position (after typing backspace) - * preedit_start_col must be reset. */ ---- 3746,3752 ---- - } - else if (cursor_index == 0 && preedit_string[0] == '\0') - { -! xim_has_preediting = FALSE; - - /* If at the start position (after typing backspace) - * preedit_start_col must be reset. */ -*** ../vim-7.0.066/src/version.c Tue Aug 22 21:51:18 2006 ---- src/version.c Tue Aug 29 16:09:35 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 67, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -265. Your reason for not staying in touch with family is that - they do not have e-mail addresses. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.068 b/7.0.068 deleted file mode 100644 index e1ec9ed3..00000000 --- a/7.0.068 +++ /dev/null @@ -1,194 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.068 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.068 -Problem: When 'ignorecase' is set and using Insert mode completion, - typing characters to change the list of matches, case is not - ignored. (Hugo Ahlenius) -Solution: Store the 'ignorecase' flag with the matches where needed. -Files: src/edit.c, src/search.c, src/spell.c - - -*** ../vim-7.0.067/src/edit.c Tue Aug 29 16:10:54 2006 ---- src/edit.c Tue Aug 29 14:57:46 2006 -*************** -*** 2405,2411 **** - /* compl_pattern doesn't need to be set */ - compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); - if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, -! -1, FALSE, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK) - return; - - /* Handle like dictionary completion. */ ---- 2405,2411 ---- - /* compl_pattern doesn't need to be set */ - compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); - if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, -! -1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK) - return; - - /* Handle like dictionary completion. */ -*************** -*** 2821,2827 **** - ptr = find_word_end(ptr); - add_r = ins_compl_add_infercase(regmatch->startp[0], - (int)(ptr - regmatch->startp[0]), -! FALSE, files[i], *dir, 0); - if (thesaurus) - { - char_u *wstart; ---- 2821,2827 ---- - ptr = find_word_end(ptr); - add_r = ins_compl_add_infercase(regmatch->startp[0], - (int)(ptr - regmatch->startp[0]), -! p_ic, files[i], *dir, 0); - if (thesaurus) - { - char_u *wstart; -*************** -*** 2857,2863 **** - ptr = find_word_end(ptr); - add_r = ins_compl_add_infercase(wstart, - (int)(ptr - wstart), -! FALSE, files[i], *dir, 0); - } - } - if (add_r == OK) ---- 2857,2863 ---- - ptr = find_word_end(ptr); - add_r = ins_compl_add_infercase(wstart, - (int)(ptr - wstart), -! p_ic, files[i], *dir, 0); - } - } - if (add_r == OK) -*************** -*** 3826,3832 **** - TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0), - TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0) - { -! ins_compl_add_matches(num_matches, matches, FALSE); - } - p_ic = save_p_ic; - break; ---- 3826,3832 ---- - TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0), - TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0) - { -! ins_compl_add_matches(num_matches, matches, p_ic); - } - p_ic = save_p_ic; - break; -*************** -*** 3867,3873 **** - num_matches = expand_spelling(first_match_pos.lnum, - first_match_pos.col, compl_pattern, &matches); - if (num_matches > 0) -! ins_compl_add_matches(num_matches, matches, FALSE); - #endif - break; - ---- 3867,3873 ---- - num_matches = expand_spelling(first_match_pos.lnum, - first_match_pos.col, compl_pattern, &matches); - if (num_matches > 0) -! ins_compl_add_matches(num_matches, matches, p_ic); - #endif - break; - -*************** -*** 4001,4007 **** - continue; - } - } -! if (ins_compl_add_infercase(ptr, len, FALSE, - ins_buf == curbuf ? NULL : ins_buf->b_sfname, - 0, flags) != NOTDONE) - { ---- 4001,4007 ---- - continue; - } - } -! if (ins_compl_add_infercase(ptr, len, p_ic, - ins_buf == curbuf ? NULL : ins_buf->b_sfname, - 0, flags) != NOTDONE) - { -*************** -*** 4809,4815 **** - vim_free(compl_orig_text); - compl_orig_text = vim_strnsave(line + compl_col, compl_length); - if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, -! -1, FALSE, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK) - { - vim_free(compl_pattern); - compl_pattern = NULL; ---- 4809,4815 ---- - vim_free(compl_orig_text); - compl_orig_text = vim_strnsave(line + compl_col, compl_length); - if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, -! -1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK) - { - vim_free(compl_pattern); - compl_pattern = NULL; -*** ../vim-7.0.067/src/search.c Fri May 5 23:15:17 2006 ---- src/search.c Tue Aug 29 14:56:15 2006 -*************** -*** 4871,4877 **** - goto exit_matched; - } - -! add_r = ins_compl_add_infercase(aux, i, FALSE, - curr_fname == curbuf->b_fname ? NULL : curr_fname, - dir, reuse); - if (add_r == OK) ---- 4876,4882 ---- - goto exit_matched; - } - -! add_r = ins_compl_add_infercase(aux, i, p_ic, - curr_fname == curbuf->b_fname ? NULL : curr_fname, - dir, reuse); - if (add_r == OK) -*** ../vim-7.0.067/src/spell.c Sun Jul 23 21:52:16 2006 ---- src/spell.c Tue Aug 29 14:56:26 2006 -*************** -*** 15658,15664 **** - ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0 - : STRNCMP(p, pat, STRLEN(pat)) == 0) - && ins_compl_add_infercase(p, (int)STRLEN(p), -! FALSE, NULL, *dir, 0) == OK) - /* if dir was BACKWARD then honor it just once */ - *dir = FORWARD; - } ---- 15662,15668 ---- - ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0 - : STRNCMP(p, pat, STRLEN(pat)) == 0) - && ins_compl_add_infercase(p, (int)STRLEN(p), -! p_ic, NULL, *dir, 0) == OK) - /* if dir was BACKWARD then honor it just once */ - *dir = FORWARD; - } -*** ../vim-7.0.067/src/version.c Tue Aug 29 16:10:54 2006 ---- src/version.c Tue Aug 29 16:13:49 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 68, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -266. You hear most of your jokes via e-mail instead of in person. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.069 b/7.0.069 deleted file mode 100644 index 35b8566e..00000000 --- a/7.0.069 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.069 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.069 -Problem: Setting 'guitablabel' to %!expand(\%) causes Vim to free an - invalid pointer. (Kim Schulz) -Solution: Don't try freeing a constant string pointer. -Files: src/buffer.c - - -*** ../vim-7.0.068/src/buffer.c Wed Aug 16 19:34:59 2006 ---- src/buffer.c Tue Aug 29 16:23:49 2006 -*************** -*** 3324,3330 **** - { - usefmt = eval_to_string_safe(fmt + 2, NULL, use_sandbox); - if (usefmt == NULL) -! usefmt = (char_u *)""; - } - #endif - ---- 3324,3330 ---- - { - usefmt = eval_to_string_safe(fmt + 2, NULL, use_sandbox); - if (usefmt == NULL) -! usefmt = fmt; - } - #endif - -*** ../vim-7.0.068/src/version.c Tue Aug 29 16:33:23 2006 ---- src/version.c Tue Aug 29 16:48:08 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 69, - /**/ - --- -Two fish in a tank. One says to the other: -"Do you know how to drive this thing?" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.070 b/7.0.070 deleted file mode 100644 index 75d8d0c4..00000000 --- a/7.0.070 +++ /dev/null @@ -1,2603 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.070 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.070 -Problem: Compiler warnings for shadowed variables and uninitialized - variables. -Solution: Rename variables such as "index", "msg" and "dup". Initialize - variables. -Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, - src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c, - src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c, - src/memline.c, src/netbeans.c, src/normal.c, src/option.c, - src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c, - src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c, - src/version.c - - -*** ../vim-7.0.069/src/edit.c Tue Aug 29 16:33:23 2006 ---- src/edit.c Tue Aug 29 14:57:46 2006 -*************** -*** 129,135 **** - - static void ins_ctrl_x __ARGS((void)); - static int has_compl_option __ARGS((int dict_opt)); -! static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int dup)); - static int ins_compl_equal __ARGS((compl_T *match, char_u *str, int len)); - static void ins_compl_longest_match __ARGS((compl_T *match)); - static void ins_compl_add_matches __ARGS((int num_matches, char_u **matches, int icase)); ---- 129,135 ---- - - static void ins_ctrl_x __ARGS((void)); - static int has_compl_option __ARGS((int dict_opt)); -! static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int adup)); - static int ins_compl_equal __ARGS((compl_T *match, char_u *str, int len)); - static void ins_compl_longest_match __ARGS((compl_T *match)); - static void ins_compl_add_matches __ARGS((int num_matches, char_u **matches, int icase)); -*************** -*** 2118,2124 **** - * maybe because alloc() returns NULL, then FAIL is returned. - */ - static int -! ins_compl_add(str, len, icase, fname, cptext, cdir, flags, dup) - char_u *str; - int len; - int icase; ---- 2118,2124 ---- - * maybe because alloc() returns NULL, then FAIL is returned. - */ - static int -! ins_compl_add(str, len, icase, fname, cptext, cdir, flags, adup) - char_u *str; - int len; - int icase; -*************** -*** 2126,2132 **** - char_u **cptext; /* extra text for popup menu or NULL */ - int cdir; - int flags; -! int dup; /* accept duplicate match */ - { - compl_T *match; - int dir = (cdir == 0 ? compl_direction : cdir); ---- 2126,2132 ---- - char_u **cptext; /* extra text for popup menu or NULL */ - int cdir; - int flags; -! int adup; /* accept duplicate match */ - { - compl_T *match; - int dir = (cdir == 0 ? compl_direction : cdir); -*************** -*** 2140,2146 **** - /* - * If the same match is already present, don't add it. - */ -! if (compl_first_match != NULL && !dup) - { - match = compl_first_match; - do ---- 2140,2146 ---- - /* - * If the same match is already present, don't add it. - */ -! if (compl_first_match != NULL && !adup) - { - match = compl_first_match; - do -*************** -*** 3608,3614 **** - { - char_u *word; - int icase = FALSE; -! int dup = FALSE; - char_u *(cptext[CPT_COUNT]); - - if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) ---- 3608,3614 ---- - { - char_u *word; - int icase = FALSE; -! int adup = FALSE; - char_u *(cptext[CPT_COUNT]); - - if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) -*************** -*** 3625,3631 **** - if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL) - icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase"); - if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL) -! dup = get_dict_number(tv->vval.v_dict, (char_u *)"dup"); - } - else - { ---- 3625,3631 ---- - if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL) - icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase"); - if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL) -! adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup"); - } - else - { -*************** -*** 3634,3640 **** - } - if (word == NULL || *word == NUL) - return FAIL; -! return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, dup); - } - #endif - ---- 3634,3640 ---- - } - if (word == NULL || *word == NUL) - return FAIL; -! return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup); - } - #endif - -*** ../vim-7.0.069/src/eval.c Wed Aug 16 22:03:35 2006 ---- src/eval.c Thu Aug 24 22:00:09 2006 -*************** -*** 454,460 **** - static char_u *deref_func_name __ARGS((char_u *name, int *lenp)); - static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); - static int call_func __ARGS((char_u *name, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); -! static void emsg_funcname __ARGS((char *msg, char_u *name)); - - static void f_add __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_append __ARGS((typval_T *argvars, typval_T *rettv)); ---- 454,460 ---- - static char_u *deref_func_name __ARGS((char_u *name, int *lenp)); - static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); - static int call_func __ARGS((char_u *name, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); -! static void emsg_funcname __ARGS((char *ermsg, char_u *name)); - - static void f_add __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_append __ARGS((typval_T *argvars, typval_T *rettv)); -*************** -*** 2260,2266 **** - EMSG(_(e_letunexp)); - else - { -! char_u *tofree = NULL; - char_u *s; - - p = get_tv_string_chk(tv); ---- 2260,2266 ---- - EMSG(_(e_letunexp)); - else - { -! char_u *ptofree = NULL; - char_u *s; - - p = get_tv_string_chk(tv); -*************** -*** 2269,2275 **** - s = get_reg_contents(*arg == '@' ? '"' : *arg, TRUE, TRUE); - if (s != NULL) - { -! p = tofree = concat_str(s, p); - vim_free(s); - } - } ---- 2269,2275 ---- - s = get_reg_contents(*arg == '@' ? '"' : *arg, TRUE, TRUE); - if (s != NULL) - { -! p = ptofree = concat_str(s, p); - vim_free(s); - } - } -*************** -*** 2278,2284 **** - write_reg_contents(*arg == '@' ? '"' : *arg, p, -1, FALSE); - arg_end = arg + 1; - } -! vim_free(tofree); - } - } - ---- 2278,2284 ---- - write_reg_contents(*arg == '@' ? '"' : *arg, p, -1, FALSE); - arg_end = arg + 1; - } -! vim_free(ptofree); - } - } - -*************** -*** 7595,7602 **** - * Give an error message with a function name. Handle things. - */ - static void -! emsg_funcname(msg, name) -! char *msg; - char_u *name; - { - char_u *p; ---- 7595,7602 ---- - * Give an error message with a function name. Handle things. - */ - static void -! emsg_funcname(ermsg, name) -! char *ermsg; - char_u *name; - { - char_u *p; -*************** -*** 7605,7611 **** - p = concat_str((char_u *)"", name + 3); - else - p = name; -! EMSG2(_(msg), p); - if (p != name) - vim_free(p); - } ---- 7605,7611 ---- - p = concat_str((char_u *)"", name + 3); - else - p = name; -! EMSG2(_(ermsg), p); - if (p != name) - vim_free(p); - } -*************** -*** 9179,9203 **** - typval_T save_key; - int rem; - int todo; -! char_u *msg = map ? (char_u *)"map()" : (char_u *)"filter()"; - int save_did_emsg; - - rettv->vval.v_number = 0; - if (argvars[0].v_type == VAR_LIST) - { - if ((l = argvars[0].vval.v_list) == NULL -! || (map && tv_check_lock(l->lv_lock, msg))) - return; - } - else if (argvars[0].v_type == VAR_DICT) - { - if ((d = argvars[0].vval.v_dict) == NULL -! || (map && tv_check_lock(d->dv_lock, msg))) - return; - } - else - { -! EMSG2(_(e_listdictarg), msg); - return; - } - ---- 9179,9203 ---- - typval_T save_key; - int rem; - int todo; -! char_u *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()"; - int save_did_emsg; - - rettv->vval.v_number = 0; - if (argvars[0].v_type == VAR_LIST) - { - if ((l = argvars[0].vval.v_list) == NULL -! || (map && tv_check_lock(l->lv_lock, ermsg))) - return; - } - else if (argvars[0].v_type == VAR_DICT) - { - if ((d = argvars[0].vval.v_dict) == NULL -! || (map && tv_check_lock(d->dv_lock, ermsg))) - return; - } - else - { -! EMSG2(_(e_listdictarg), ermsg); - return; - } - -*************** -*** 9229,9235 **** - { - --todo; - di = HI2DI(hi); -! if (tv_check_lock(di->di_tv.v_lock, msg)) - break; - vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); - if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL ---- 9229,9235 ---- - { - --todo; - di = HI2DI(hi); -! if (tv_check_lock(di->di_tv.v_lock, ermsg)) - break; - vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); - if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL -*************** -*** 9248,9254 **** - { - for (li = l->lv_first; li != NULL; li = nli) - { -! if (tv_check_lock(li->li_tv.v_lock, msg)) - break; - nli = li->li_next; - if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL ---- 9248,9254 ---- - { - for (li = l->lv_first; li != NULL; li = nli) - { -! if (tv_check_lock(li->li_tv.v_lock, ermsg)) - break; - nli = li->li_next; - if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL -*************** -*** 19789,19795 **** - if (p_verbose >= 14) - { - char_u buf[MSG_BUF_LEN]; -! char_u numbuf[NUMBUFLEN]; - char_u *tofree; - - msg_puts((char_u *)"("); ---- 19789,19795 ---- - if (p_verbose >= 14) - { - char_u buf[MSG_BUF_LEN]; -! char_u numbuf2[NUMBUFLEN]; - char_u *tofree; - - msg_puts((char_u *)"("); -*************** -*** 19801,19808 **** - msg_outnum((long)argvars[i].vval.v_number); - else - { -! trunc_string(tv2string(&argvars[i], &tofree, numbuf, 0), -! buf, MSG_BUF_CLEN); - msg_puts(buf); - vim_free(tofree); - } ---- 19801,19808 ---- - msg_outnum((long)argvars[i].vval.v_number); - else - { -! trunc_string(tv2string(&argvars[i], &tofree, -! numbuf2, 0), buf, MSG_BUF_CLEN); - msg_puts(buf); - vim_free(tofree); - } -*************** -*** 19880,19892 **** - else - { - char_u buf[MSG_BUF_LEN]; -! char_u numbuf[NUMBUFLEN]; - char_u *tofree; - - /* The value may be very long. Skip the middle part, so that we - * have some idea how it starts and ends. smsg() would always - * truncate it at the end. */ -! trunc_string(tv2string(fc.rettv, &tofree, numbuf, 0), - buf, MSG_BUF_CLEN); - smsg((char_u *)_("%s returning %s"), sourcing_name, buf); - vim_free(tofree); ---- 19880,19892 ---- - else - { - char_u buf[MSG_BUF_LEN]; -! char_u numbuf2[NUMBUFLEN]; - char_u *tofree; - - /* The value may be very long. Skip the middle part, so that we - * have some idea how it starts and ends. smsg() would always - * truncate it at the end. */ -! trunc_string(tv2string(fc.rettv, &tofree, numbuf2, 0), - buf, MSG_BUF_CLEN); - smsg((char_u *)_("%s returning %s"), sourcing_name, buf); - vim_free(tofree); -*** ../vim-7.0.069/src/ex_cmds.c Sun Apr 23 00:33:23 2006 ---- src/ex_cmds.c Mon Aug 28 21:42:29 2006 -*************** -*** 185,190 **** ---- 185,191 ---- - new_indent = indent; - else - { -+ has_tab = FALSE; /* avoid uninit warnings */ - len = linelen(eap->cmdidx == CMD_right ? &has_tab - : NULL) - get_indent(); - -*************** -*** 1772,1781 **** - ? (st_old.st_mode & 0020) - : (st_old.st_mode & 0002)))) - { -! int tt; - - /* avoid a wait_return for this message, it's annoying */ -- tt = msg_didany; - EMSG2(_("E137: Viminfo file is not writable: %s"), fname); - msg_didany = tt; - fclose(fp_in); ---- 1773,1781 ---- - ? (st_old.st_mode & 0020) - : (st_old.st_mode & 0002)))) - { -! int tt = msg_didany; - - /* avoid a wait_return for this message, it's annoying */ - EMSG2(_("E137: Viminfo file is not writable: %s"), fname); - msg_didany = tt; - fclose(fp_in); -*** ../vim-7.0.069/src/ex_cmds2.c Tue Apr 18 00:10:47 2006 ---- src/ex_cmds2.c Thu Aug 24 22:01:44 2006 -*************** -*** 3648,3660 **** - * Return FALSE when not sourcing a file. - */ - int -! source_finished(getline, cookie) -! char_u *(*getline) __ARGS((int, void *, int)); - void *cookie; - { -! return (getline_equal(getline, cookie, getsourceline) - && ((struct source_cookie *)getline_cookie( -! getline, cookie))->finished); - } - #endif - ---- 3648,3660 ---- - * Return FALSE when not sourcing a file. - */ - int -! source_finished(fgetline, cookie) -! char_u *(*fgetline) __ARGS((int, void *, int)); - void *cookie; - { -! return (getline_equal(fgetline, cookie, getsourceline) - && ((struct source_cookie *)getline_cookie( -! fgetline, cookie))->finished); - } - #endif - -*** ../vim-7.0.069/src/ex_docmd.c Wed Aug 16 17:06:22 2006 ---- src/ex_docmd.c Thu Aug 24 22:03:17 2006 -*************** -*** 58,66 **** - #endif - - #ifdef FEAT_EVAL -! static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*getline)(int, void *, int), void *cookie)); - #else -! static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*getline)(int, void *, int), void *cookie)); - static int if_level = 0; /* depth in :if */ - #endif - static char_u *find_command __ARGS((exarg_T *eap, int *full)); ---- 58,66 ---- - #endif - - #ifdef FEAT_EVAL -! static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*fgetline)(int, void *, int), void *cookie)); - #else -! static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie)); - static int if_level = 0; /* depth in :if */ - #endif - static char_u *find_command __ARGS((exarg_T *eap, int *full)); -*************** -*** 831,840 **** - - /* - * If requested, store and reset the global values controlling the -! * exception handling (used when debugging). - */ - if (flags & DOCMD_EXCRESET) - save_dbg_stuff(&debug_saved); - - initial_trylevel = trylevel; - ---- 831,843 ---- - - /* - * If requested, store and reset the global values controlling the -! * exception handling (used when debugging). Otherwise clear it to avoid -! * a bogus compiler warning when the optimizer uses inline functions... - */ - if (flags & DOCMD_EXCRESET) - save_dbg_stuff(&debug_saved); -+ else -+ memset(&debug_saved, 0, 1); - - initial_trylevel = trylevel; - -*************** -*** 1574,1597 **** - #endif - - /* -! * If "getline" is get_loop_line(), return TRUE if the getline it uses equals -! * "func". * Otherwise return TRUE when "getline" equals "func". - */ - /*ARGSUSED*/ - int -! getline_equal(getline, cookie, func) -! char_u *(*getline) __ARGS((int, void *, int)); -! void *cookie; /* argument for getline() */ - char_u *(*func) __ARGS((int, void *, int)); - { - #ifdef FEAT_EVAL - char_u *(*gp) __ARGS((int, void *, int)); - struct loop_cookie *cp; - -! /* When "getline" is "get_loop_line()" use the "cookie" to find the - * function that's orignally used to obtain the lines. This may be nested - * several levels. */ -! gp = getline; - cp = (struct loop_cookie *)cookie; - while (gp == get_loop_line) - { ---- 1577,1600 ---- - #endif - - /* -! * If "fgetline" is get_loop_line(), return TRUE if the getline it uses equals -! * "func". * Otherwise return TRUE when "fgetline" equals "func". - */ - /*ARGSUSED*/ - int -! getline_equal(fgetline, cookie, func) -! char_u *(*fgetline) __ARGS((int, void *, int)); -! void *cookie; /* argument for fgetline() */ - char_u *(*func) __ARGS((int, void *, int)); - { - #ifdef FEAT_EVAL - char_u *(*gp) __ARGS((int, void *, int)); - struct loop_cookie *cp; - -! /* When "fgetline" is "get_loop_line()" use the "cookie" to find the - * function that's orignally used to obtain the lines. This may be nested - * several levels. */ -! gp = fgetline; - cp = (struct loop_cookie *)cookie; - while (gp == get_loop_line) - { -*************** -*** 1600,1628 **** - } - return gp == func; - #else -! return getline == func; - #endif - } - - #if defined(FEAT_EVAL) || defined(FEAT_MBYTE) || defined(PROTO) - /* -! * If "getline" is get_loop_line(), return the cookie used by the original - * getline function. Otherwise return "cookie". - */ - /*ARGSUSED*/ - void * -! getline_cookie(getline, cookie) -! char_u *(*getline) __ARGS((int, void *, int)); -! void *cookie; /* argument for getline() */ - { - # ifdef FEAT_EVAL - char_u *(*gp) __ARGS((int, void *, int)); - struct loop_cookie *cp; - -! /* When "getline" is "get_loop_line()" use the "cookie" to find the - * cookie that's orignally used to obtain the lines. This may be nested - * several levels. */ -! gp = getline; - cp = (struct loop_cookie *)cookie; - while (gp == get_loop_line) - { ---- 1603,1631 ---- - } - return gp == func; - #else -! return fgetline == func; - #endif - } - - #if defined(FEAT_EVAL) || defined(FEAT_MBYTE) || defined(PROTO) - /* -! * If "fgetline" is get_loop_line(), return the cookie used by the original - * getline function. Otherwise return "cookie". - */ - /*ARGSUSED*/ - void * -! getline_cookie(fgetline, cookie) -! char_u *(*fgetline) __ARGS((int, void *, int)); -! void *cookie; /* argument for fgetline() */ - { - # ifdef FEAT_EVAL - char_u *(*gp) __ARGS((int, void *, int)); - struct loop_cookie *cp; - -! /* When "fgetline" is "get_loop_line()" use the "cookie" to find the - * cookie that's orignally used to obtain the lines. This may be nested - * several levels. */ -! gp = fgetline; - cp = (struct loop_cookie *)cookie; - while (gp == get_loop_line) - { -*************** -*** 1648,1654 **** - * 5. parse arguments - * 6. switch on command name - * -! * Note: "getline" can be NULL. - * - * This function may be called recursively! - */ ---- 1651,1657 ---- - * 5. parse arguments - * 6. switch on command name - * -! * Note: "fgetline" can be NULL. - * - * This function may be called recursively! - */ -*************** -*** 1663,1676 **** - #ifdef FEAT_EVAL - cstack, - #endif -! getline, cookie) - char_u **cmdlinep; - int sourcing; - #ifdef FEAT_EVAL - struct condstack *cstack; - #endif -! char_u *(*getline) __ARGS((int, void *, int)); -! void *cookie; /* argument for getline() */ - { - char_u *p; - linenr_T lnum; ---- 1666,1679 ---- - #ifdef FEAT_EVAL - cstack, - #endif -! fgetline, cookie) - char_u **cmdlinep; - int sourcing; - #ifdef FEAT_EVAL - struct condstack *cstack; - #endif -! char_u *(*fgetline) __ARGS((int, void *, int)); -! void *cookie; /* argument for fgetline() */ - { - char_u *p; - linenr_T lnum; -*************** -*** 1698,1704 **** - if (quitmore - #ifdef FEAT_EVAL - /* avoid that a function call in 'statusline' does this */ -! && !getline_equal(getline, cookie, get_func_line) - #endif - ) - --quitmore; ---- 1701,1707 ---- - if (quitmore - #ifdef FEAT_EVAL - /* avoid that a function call in 'statusline' does this */ -! && !getline_equal(fgetline, cookie, get_func_line) - #endif - ) - --quitmore; -*************** -*** 1728,1735 **** - - /* in ex mode, an empty line works like :+ */ - if (*ea.cmd == NUL && exmode_active -! && (getline_equal(getline, cookie, getexmodeline) -! || getline_equal(getline, cookie, getexline)) - && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) - { - ea.cmd = (char_u *)"+"; ---- 1731,1738 ---- - - /* in ex mode, an empty line works like :+ */ - if (*ea.cmd == NUL && exmode_active -! && (getline_equal(fgetline, cookie, getexmodeline) -! || getline_equal(fgetline, cookie, getexline)) - && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) - { - ea.cmd = (char_u *)"+"; -*************** -*** 1918,1926 **** - /* Count this line for profiling if ea.skip is FALSE. */ - if (do_profiling == PROF_YES && !ea.skip) - { -! if (getline_equal(getline, cookie, get_func_line)) -! func_line_exec(getline_cookie(getline, cookie)); -! else if (getline_equal(getline, cookie, getsourceline)) - script_line_exec(); - } - #endif ---- 1921,1929 ---- - /* Count this line for profiling if ea.skip is FALSE. */ - if (do_profiling == PROF_YES && !ea.skip) - { -! if (getline_equal(fgetline, cookie, get_func_line)) -! func_line_exec(getline_cookie(fgetline, cookie)); -! else if (getline_equal(fgetline, cookie, getsourceline)) - script_line_exec(); - } - #endif -*************** -*** 2589,2595 **** - * The "ea" structure holds the arguments that can be used. - */ - ea.cmdlinep = cmdlinep; -! ea.getline = getline; - ea.cookie = cookie; - #ifdef FEAT_EVAL - ea.cstack = cstack; ---- 2592,2598 ---- - * The "ea" structure holds the arguments that can be used. - */ - ea.cmdlinep = cmdlinep; -! ea.getline = fgetline; - ea.cookie = cookie; - #ifdef FEAT_EVAL - ea.cstack = cstack; -*************** -*** 2627,2635 **** - do_throw(cstack); - else if (check_cstack) - { -! if (source_finished(getline, cookie)) - do_finish(&ea, TRUE); -! else if (getline_equal(getline, cookie, get_func_line) - && current_func_returned()) - do_return(&ea, TRUE, FALSE, NULL); - } ---- 2630,2638 ---- - do_throw(cstack); - else if (check_cstack) - { -! if (source_finished(fgetline, cookie)) - do_finish(&ea, TRUE); -! else if (getline_equal(fgetline, cookie, get_func_line) - && current_func_returned()) - do_return(&ea, TRUE, FALSE, NULL); - } -*** ../vim-7.0.069/src/gui_beval.c Thu May 4 23:57:11 2006 ---- src/gui_beval.c Thu Aug 24 22:39:50 2006 -*************** -*** 926,932 **** - # define IS_NONPRINTABLE(c) (((c) < 0x20 && (c) != TAB && (c) != NL) \ - || (c) == DEL) - static void -! set_printable_label_text(GtkLabel *label, char_u *msg) - { - char_u *convbuf = NULL; - char_u *buf; ---- 926,932 ---- - # define IS_NONPRINTABLE(c) (((c) < 0x20 && (c) != TAB && (c) != NL) \ - || (c) == DEL) - static void -! set_printable_label_text(GtkLabel *label, char_u *text) - { - char_u *convbuf = NULL; - char_u *buf; -*************** -*** 940,953 **** - /* Convert to UTF-8 if it isn't already */ - if (output_conv.vc_type != CONV_NONE) - { -! convbuf = string_convert(&output_conv, msg, NULL); - if (convbuf != NULL) -! msg = convbuf; - } - - /* First let's see how much we need to allocate */ - len = 0; -! for (p = msg; *p != NUL; p += charlen) - { - if ((*p & 0x80) == 0) /* be quick for ASCII */ - { ---- 940,953 ---- - /* Convert to UTF-8 if it isn't already */ - if (output_conv.vc_type != CONV_NONE) - { -! convbuf = string_convert(&output_conv, text, NULL); - if (convbuf != NULL) -! text = convbuf; - } - - /* First let's see how much we need to allocate */ - len = 0; -! for (p = text; *p != NUL; p += charlen) - { - if ((*p & 0x80) == 0) /* be quick for ASCII */ - { -*************** -*** 992,998 **** - (unsigned long)pixel, &color); - - pdest = buf; -! p = msg; - while (*p != NUL) - { - /* Be quick for ASCII */ ---- 992,998 ---- - (unsigned long)pixel, &color); - - pdest = buf; -! p = text; - while (*p != NUL) - { - /* Be quick for ASCII */ -*** ../vim-7.0.069/src/gui_gtk.c Fri May 5 23:13:49 2006 ---- src/gui_gtk.c Thu Aug 24 22:34:30 2006 -*************** -*** 957,971 **** - get_menu_position(vimmenu_T *menu) - { - vimmenu_T *node; -! int index = 0; - - for (node = menu->parent->children; node != menu; node = node->next) - { - g_return_val_if_fail(node != NULL, -1); -! ++index; - } - -! return index; - } - #endif /* FEAT_TOOLBAR && HAVE_GTK2 */ - ---- 957,971 ---- - get_menu_position(vimmenu_T *menu) - { - vimmenu_T *node; -! int idx = 0; - - for (node = menu->parent->children; node != menu; node = node->next) - { - g_return_val_if_fail(node != NULL, -1); -! ++idx; - } - -! return idx; - } - #endif /* FEAT_TOOLBAR && HAVE_GTK2 */ - -*************** -*** 2127,2133 **** - char **ync; /* "yes no cancel" */ - char **buttons; - int n_buttons = 0; -! int index; - - button_string = vim_strsave(button_string); /* must be writable */ - if (button_string == NULL) ---- 2128,2134 ---- - char **ync; /* "yes no cancel" */ - char **buttons; - int n_buttons = 0; -! int idx; - - button_string = vim_strsave(button_string); /* must be writable */ - if (button_string == NULL) -*************** -*** 2161,2172 **** - * Well, apparently somebody changed his mind: with GTK 2.2.4 it works the - * other way around... - */ -! for (index = 1; index <= n_buttons; ++index) - { - char *label; - char_u *label8; - -! label = buttons[index - 1]; - /* - * Perform some guesswork to find appropriate stock items for the - * buttons. We have to compare with a sample of the translated ---- 2162,2173 ---- - * Well, apparently somebody changed his mind: with GTK 2.2.4 it works the - * other way around... - */ -! for (idx = 1; idx <= n_buttons; ++idx) - { - char *label; - char_u *label8; - -! label = buttons[idx - 1]; - /* - * Perform some guesswork to find appropriate stock items for the - * buttons. We have to compare with a sample of the translated -*************** -*** 2188,2194 **** - else if (button_equal(label, "Cancel")) label = GTK_STOCK_CANCEL; - } - label8 = CONVERT_TO_UTF8((char_u *)label); -! gtk_dialog_add_button(dialog, (const gchar *)label8, index); - CONVERT_TO_UTF8_FREE(label8); - } - ---- 2189,2195 ---- - else if (button_equal(label, "Cancel")) label = GTK_STOCK_CANCEL; - } - label8 = CONVERT_TO_UTF8((char_u *)label); -! gtk_dialog_add_button(dialog, (const gchar *)label8, idx); - CONVERT_TO_UTF8_FREE(label8); - } - -*** ../vim-7.0.069/src/gui_gtk_x11.c Fri May 5 23:16:59 2006 ---- src/gui_gtk_x11.c Thu Aug 24 22:35:59 2006 -*************** -*** 3233,3244 **** - on_select_tab( - GtkNotebook *notebook, - GtkNotebookPage *page, -! gint index, - gpointer data) - { - if (!ignore_tabline_evt) - { -! if (send_tabline_event(index + 1) && gtk_main_level() > 0) - gtk_main_quit(); - } - } ---- 3233,3244 ---- - on_select_tab( - GtkNotebook *notebook, - GtkNotebookPage *page, -! gint idx, - gpointer data) - { - if (!ignore_tabline_evt) - { -! if (send_tabline_event(idx + 1) && gtk_main_level() > 0) - gtk_main_quit(); - } - } -*************** -*** 5303,5315 **** - # ifdef HAVE_GTK2 - if (font != NOFONT) - { -! char *name = pango_font_description_to_string(font); - -! if (name != NULL) - { -! char_u *s = vim_strsave((char_u *)name); - -! g_free(name); - return s; - } - } ---- 5303,5315 ---- - # ifdef HAVE_GTK2 - if (font != NOFONT) - { -! char *pangoname = pango_font_description_to_string(font); - -! if (pangoname != NULL) - { -! char_u *s = vim_strsave((char_u *)pangoname); - -! g_free(pangoname); - return s; - } - } -*************** -*** 6241,6264 **** - { - GdkGCValues values; - GdkGC *invert_gc; -- GdkColor foreground; -- GdkColor background; - - if (gui.drawarea->window == NULL) - return; - -! foreground.pixel = gui.norm_pixel ^ gui.back_pixel; -! background.pixel = gui.norm_pixel ^ gui.back_pixel; -! -! values.foreground = foreground; -! values.background = background; - values.function = GDK_XOR; - invert_gc = gdk_gc_new_with_values(gui.drawarea->window, - &values, - GDK_GC_FOREGROUND | - GDK_GC_BACKGROUND | - GDK_GC_FUNCTION); -! gdk_gc_set_exposures(invert_gc, gui.visibility != GDK_VISIBILITY_UNOBSCURED); - gdk_draw_rectangle(gui.drawarea->window, invert_gc, - TRUE, - FILL_X(c), FILL_Y(r), ---- 6241,6260 ---- - { - GdkGCValues values; - GdkGC *invert_gc; - - if (gui.drawarea->window == NULL) - return; - -! values.foreground.pixel = gui.norm_pixel ^ gui.back_pixel; -! values.background.pixel = gui.norm_pixel ^ gui.back_pixel; - values.function = GDK_XOR; - invert_gc = gdk_gc_new_with_values(gui.drawarea->window, - &values, - GDK_GC_FOREGROUND | - GDK_GC_BACKGROUND | - GDK_GC_FUNCTION); -! gdk_gc_set_exposures(invert_gc, gui.visibility != -! GDK_VISIBILITY_UNOBSCURED); - gdk_draw_rectangle(gui.drawarea->window, invert_gc, - TRUE, - FILL_X(c), FILL_Y(r), -*** ../vim-7.0.069/src/hardcopy.c Thu May 4 23:53:57 2006 ---- src/hardcopy.c Thu Aug 24 22:04:32 2006 -*************** -*** 1794,1822 **** - static int - prt_resfile_next_line() - { -! int index; - - /* Move to start of next line and then find end of line */ -! index = prt_resfile.line_end + 1; -! while (index < prt_resfile.len) - { -! if (prt_resfile.buffer[index] != PSLF && prt_resfile.buffer[index] -! != PSCR) - break; -! index++; - } -! prt_resfile.line_start = index; - -! while (index < prt_resfile.len) - { -! if (prt_resfile.buffer[index] == PSLF || prt_resfile.buffer[index] -! == PSCR) - break; -! index++; - } -! prt_resfile.line_end = index; - -! return (index < prt_resfile.len); - } - - static int ---- 1794,1820 ---- - static int - prt_resfile_next_line() - { -! int idx; - - /* Move to start of next line and then find end of line */ -! idx = prt_resfile.line_end + 1; -! while (idx < prt_resfile.len) - { -! if (prt_resfile.buffer[idx] != PSLF && prt_resfile.buffer[idx] != PSCR) - break; -! idx++; - } -! prt_resfile.line_start = idx; - -! while (idx < prt_resfile.len) - { -! if (prt_resfile.buffer[idx] == PSLF || prt_resfile.buffer[idx] == PSCR) - break; -! idx++; - } -! prt_resfile.line_end = idx; - -! return (idx < prt_resfile.len); - } - - static int -*************** -*** 1837,1850 **** - prt_resfile_skip_nonws(offset) - int offset; - { -! int index; - -! index = prt_resfile.line_start + offset; -! while (index < prt_resfile.line_end) - { -! if (isspace(prt_resfile.buffer[index])) -! return index - prt_resfile.line_start; -! index++; - } - return -1; - } ---- 1835,1848 ---- - prt_resfile_skip_nonws(offset) - int offset; - { -! int idx; - -! idx = prt_resfile.line_start + offset; -! while (idx < prt_resfile.line_end) - { -! if (isspace(prt_resfile.buffer[idx])) -! return idx - prt_resfile.line_start; -! idx++; - } - return -1; - } -*************** -*** 1853,1866 **** - prt_resfile_skip_ws(offset) - int offset; - { -! int index; - -! index = prt_resfile.line_start + offset; -! while (index < prt_resfile.line_end) - { -! if (!isspace(prt_resfile.buffer[index])) -! return index - prt_resfile.line_start; -! index++; - } - return -1; - } ---- 1851,1864 ---- - prt_resfile_skip_ws(offset) - int offset; - { -! int idx; - -! idx = prt_resfile.line_start + offset; -! while (idx < prt_resfile.line_end) - { -! if (!isspace(prt_resfile.buffer[idx])) -! return idx - prt_resfile.line_start; -! idx++; - } - return -1; - } -*************** -*** 2478,2484 **** - char_u *p_encoding; - struct prt_ps_encoding_S *p_mbenc; - struct prt_ps_encoding_S *p_mbenc_first; -! struct prt_ps_charset_S *p_mbchar; - #endif - - #if 0 ---- 2476,2482 ---- - char_u *p_encoding; - struct prt_ps_encoding_S *p_mbenc; - struct prt_ps_encoding_S *p_mbenc_first; -! struct prt_ps_charset_S *p_mbchar = NULL; - #endif - - #if 0 -*************** -*** 2516,2522 **** - if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE))) - { - p_mbenc_first = NULL; -- p_mbchar = NULL; - for (cmap = 0; cmap < NUM_ELEMENTS(prt_ps_mbfonts); cmap++) - if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap], - &p_mbenc)) ---- 2514,2519 ---- -*** ../vim-7.0.069/src/if_cscope.c Tue Apr 18 23:49:18 2006 ---- src/if_cscope.c Sat Jul 8 22:34:46 2006 -*************** -*** 989,996 **** - { - int i; - char *cmd; -! char **matches, **contexts; -! int nummatches[CSCOPE_MAX_CONNECTIONS], totmatches, matched; - #ifdef FEAT_QUICKFIX - char cmdletter; - char *qfpos; ---- 989,995 ---- - { - int i; - char *cmd; -! int nummatches[CSCOPE_MAX_CONNECTIONS], totmatches; - #ifdef FEAT_QUICKFIX - char cmdletter; - char *qfpos; -*************** -*** 1141,1146 **** ---- 1140,1148 ---- - else - #endif /* FEAT_QUICKFIX */ - { -+ char **matches = NULL, **contexts = NULL; -+ int matched = 0; -+ - /* read output */ - cs_fill_results((char *)pat, totmatches, nummatches, &matches, - &contexts, &matched); -*** ../vim-7.0.069/src/main.c Tue Aug 15 21:42:17 2006 ---- src/main.c Thu Aug 24 22:05:09 2006 -*************** -*** 2285,2291 **** - mparm_T *parmp; - { - #ifdef FEAT_WINDOWS -! int rewind; - int done = 0; - - /* ---- 2285,2291 ---- - mparm_T *parmp; - { - #ifdef FEAT_WINDOWS -! int dorewind; - int done = 0; - - /* -*************** -*** 2342,2351 **** - ++autocmd_no_leave; - #endif - #ifdef FEAT_WINDOWS -! rewind = TRUE; - while (done++ < 1000) - { -! if (rewind) - { - if (parmp->window_layout == WIN_TABS) - goto_tabpage(1); ---- 2342,2351 ---- - ++autocmd_no_leave; - #endif - #ifdef FEAT_WINDOWS -! dorewind = TRUE; - while (done++ < 1000) - { -! if (dorewind) - { - if (parmp->window_layout == WIN_TABS) - goto_tabpage(1); -*************** -*** 2364,2370 **** - break; - curwin = curwin->w_next; - } -! rewind = FALSE; - #endif - curbuf = curwin->w_buffer; - if (curbuf->b_ml.ml_mfp == NULL) ---- 2364,2370 ---- - break; - curwin = curwin->w_next; - } -! dorewind = FALSE; - #endif - curbuf = curwin->w_buffer; - if (curbuf->b_ml.ml_mfp == NULL) -*************** -*** 2385,2391 **** - check_swap_exists_action(); - #endif - #ifdef FEAT_AUTOCMD -! rewind = TRUE; /* start again */ - #endif - } - #ifdef FEAT_WINDOWS ---- 2385,2391 ---- - check_swap_exists_action(); - #endif - #ifdef FEAT_AUTOCMD -! dorewind = TRUE; /* start again */ - #endif - } - #ifdef FEAT_WINDOWS -*** ../vim-7.0.069/src/mbyte.c Tue Aug 29 16:10:54 2006 ---- src/mbyte.c Tue Aug 29 14:41:45 2006 -*************** -*** 3861,3873 **** - - if (preedit_string != NULL && attr_list != NULL) - { -! int index; - - /* Get the byte index as used by PangoAttrIterator */ -! for (index = 0; col > 0 && preedit_string[index] != '\0'; --col) -! index += utfc_ptr2len((char_u *)preedit_string + index); - -! if (preedit_string[index] != '\0') - { - PangoAttrIterator *iter; - int start, end; ---- 3861,3873 ---- - - if (preedit_string != NULL && attr_list != NULL) - { -! int idx; - - /* Get the byte index as used by PangoAttrIterator */ -! for (idx = 0; col > 0 && preedit_string[idx] != '\0'; --col) -! idx += utfc_ptr2len((char_u *)preedit_string + idx); - -! if (preedit_string[idx] != '\0') - { - PangoAttrIterator *iter; - int start, end; -*************** -*** 3880,3886 **** - { - pango_attr_iterator_range(iter, &start, &end); - -! if (index >= start && index < end) - char_attr |= translate_pango_attributes(iter); - } - while (pango_attr_iterator_next(iter)); ---- 3880,3886 ---- - { - pango_attr_iterator_range(iter, &start, &end); - -! if (idx >= start && idx < end) - char_attr |= translate_pango_attributes(iter); - } - while (pango_attr_iterator_next(iter)); -*** ../vim-7.0.069/src/memline.c Fri Apr 21 00:16:47 2006 ---- src/memline.c Thu Aug 24 22:06:17 2006 -*************** -*** 215,221 **** - #define ML_FLUSH 0x02 /* flush locked block */ - #define ML_SIMPLE(x) (x & 0x10) /* DEL, INS or FIND */ - -! static void ml_upd_block0 __ARGS((buf_T *buf, int setfname)); - static void set_b0_fname __ARGS((ZERO_BL *, buf_T *buf)); - static void set_b0_dir_flag __ARGS((ZERO_BL *b0p, buf_T *buf)); - #ifdef FEAT_MBYTE ---- 215,221 ---- - #define ML_FLUSH 0x02 /* flush locked block */ - #define ML_SIMPLE(x) (x & 0x10) /* DEL, INS or FIND */ - -! static void ml_upd_block0 __ARGS((buf_T *buf, int set_fname)); - static void set_b0_fname __ARGS((ZERO_BL *, buf_T *buf)); - static void set_b0_dir_flag __ARGS((ZERO_BL *b0p, buf_T *buf)); - #ifdef FEAT_MBYTE -*************** -*** 679,687 **** - * Update the timestamp or the B0_SAME_DIR flag of the .swp file. - */ - static void -! ml_upd_block0(buf, setfname) - buf_T *buf; -! int setfname; - { - memfile_T *mfp; - bhdr_T *hp; ---- 679,687 ---- - * Update the timestamp or the B0_SAME_DIR flag of the .swp file. - */ - static void -! ml_upd_block0(buf, set_fname) - buf_T *buf; -! int set_fname; - { - memfile_T *mfp; - bhdr_T *hp; -*************** -*** 695,701 **** - EMSG(_("E304: ml_upd_block0(): Didn't get block 0??")); - else - { -! if (setfname) - set_b0_fname(b0p, buf); - else - set_b0_dir_flag(b0p, buf); ---- 695,701 ---- - EMSG(_("E304: ml_upd_block0(): Didn't get block 0??")); - else - { -! if (set_fname) - set_b0_fname(b0p, buf); - else - set_b0_dir_flag(b0p, buf); -*** ../vim-7.0.069/src/netbeans.c Tue Aug 8 21:36:15 2006 ---- src/netbeans.c Thu Aug 24 22:42:09 2006 -*************** -*** 103,109 **** - static int inputHandler = -1; /* simply ret.value of WSAAsyncSelect() */ - extern HWND s_hwnd; /* Gvim's Window handle */ - #endif -! static int cmdno; /* current command number for reply */ - static int haveConnection = FALSE; /* socket is connected and - initialization is done */ - #ifdef FEAT_GUI_MOTIF ---- 103,109 ---- - static int inputHandler = -1; /* simply ret.value of WSAAsyncSelect() */ - extern HWND s_hwnd; /* Gvim's Window handle */ - #endif -! static int r_cmdno; /* current command number for reply */ - static int haveConnection = FALSE; /* socket is connected and - initialization is done */ - #ifdef FEAT_GUI_MOTIF -*************** -*** 832,842 **** - return; - } - -! cmdno = strtol(q, &q, 10); - - q = (char *)skipwhite((char_u *)q); - -! if (nb_do_cmd(bufno, (char_u *)verb, isfunc, cmdno, (char_u *)q) == FAIL) - { - #ifdef NBDEBUG - /* ---- 832,842 ---- - return; - } - -! r_cmdno = strtol(q, &q, 10); - - q = (char *)skipwhite((char_u *)q); - -! if (nb_do_cmd(bufno, (char_u *)verb, isfunc, r_cmdno, (char_u *)q) == FAIL) - { - #ifdef NBDEBUG - /* -*************** -*** 1008,1018 **** - if (netbeansForcedQuit) - { - /* mark as unmodified so NetBeans won't put up dialog on "killed" */ -! sprintf(buf, "%d:unmodified=%d\n", i, cmdno); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_end"); - } -! sprintf(buf, "%d:killed=%d\n", i, cmdno); - nbdebug(("EVT: %s", buf)); - /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ - if (sd >= 0) ---- 1008,1018 ---- - if (netbeansForcedQuit) - { - /* mark as unmodified so NetBeans won't put up dialog on "killed" */ -! sprintf(buf, "%d:unmodified=%d\n", i, r_cmdno); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_end"); - } -! sprintf(buf, "%d:killed=%d\n", i, r_cmdno); - nbdebug(("EVT: %s", buf)); - /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ - if (sd >= 0) -*************** -*** 2563,2569 **** - if (p != NULL) - { - vim_snprintf(buf, sizeof(buf), -! "0:balloonText=%d \"%s\"\n", cmdno, p); - vim_free(p); - } - nbdebug(("EVT: %s", buf)); ---- 2563,2569 ---- - if (p != NULL) - { - vim_snprintf(buf, sizeof(buf), -! "0:balloonText=%d \"%s\"\n", r_cmdno, p); - vim_free(p); - } - nbdebug(("EVT: %s", buf)); -*************** -*** 2617,2623 **** - - if (haveConnection) - { -! sprintf(buf, "0:disconnect=%d\n", cmdno); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_disconnect"); - } ---- 2617,2623 ---- - - if (haveConnection) - { -! sprintf(buf, "0:disconnect=%d\n", r_cmdno); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_disconnect"); - } -*************** -*** 2636,2642 **** - return; - - sprintf(buf, "0:geometry=%d %d %d %d %d\n", -! cmdno, (int)Columns, (int)Rows, new_x, new_y); - /*nbdebug(("EVT: %s", buf)); happens too many times during a move */ - nb_send(buf, "netbeans_frame_moved"); - } ---- 2636,2642 ---- - return; - - sprintf(buf, "0:geometry=%d %d %d %d %d\n", -! r_cmdno, (int)Columns, (int)Rows, new_x, new_y); - /*nbdebug(("EVT: %s", buf)); happens too many times during a move */ - nb_send(buf, "netbeans_frame_moved"); - } -*************** -*** 2745,2751 **** - if (bufno <= 0) - return; - -! sprintf(buffer, "%d:killed=%d\n", bufno, cmdno); - - nbdebug(("EVT: %s", buffer)); - ---- 2745,2751 ---- - if (bufno <= 0) - return; - -! sprintf(buffer, "%d:killed=%d\n", bufno, r_cmdno); - - nbdebug(("EVT: %s", buffer)); - -*************** -*** 2819,2825 **** - if (p != NULL) - { - buf = alloc(128 + 2*newlen); -! sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n", bufno, cmdno, off, p); - nbdebug(("EVT: %s", buf)); - nb_send((char *)buf, "netbeans_inserted"); - vim_free(p); ---- 2819,2826 ---- - if (p != NULL) - { - buf = alloc(128 + 2*newlen); -! sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n", -! bufno, r_cmdno, off, p); - nbdebug(("EVT: %s", buf)); - nb_send((char *)buf, "netbeans_inserted"); - vim_free(p); -*************** -*** 2861,2867 **** - - off = pos2off(bufp, &pos); - -! sprintf((char *)buf, "%d:remove=%d %ld %ld\n", bufno, cmdno, off, len); - nbdebug(("EVT: %s", buf)); - nb_send((char *)buf, "netbeans_removed"); - } ---- 2862,2868 ---- - - off = pos2off(bufp, &pos); - -! sprintf((char *)buf, "%d:remove=%d %ld %ld\n", bufno, r_cmdno, off, len); - nbdebug(("EVT: %s", buf)); - nb_send((char *)buf, "netbeans_removed"); - } -*************** -*** 2886,2892 **** - - nbbuf->modified = 0; - -! sprintf((char *)buf, "%d:unmodified=%d\n", bufno, cmdno); - nbdebug(("EVT: %s", buf)); - nb_send((char *)buf, "netbeans_unmodified"); - #endif ---- 2887,2893 ---- - - nbbuf->modified = 0; - -! sprintf((char *)buf, "%d:unmodified=%d\n", bufno, r_cmdno); - nbdebug(("EVT: %s", buf)); - nb_send((char *)buf, "netbeans_unmodified"); - #endif -*************** -*** 2910,2920 **** - long off = pos2off(curbuf, &curwin->w_cursor); - - /* sync the cursor position */ -! sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, cmdno, off, off); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_button_release[newDotAndMark]"); - -! sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, cmdno, - button, (long)curwin->w_cursor.lnum, col); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_button_release"); ---- 2911,2921 ---- - long off = pos2off(curbuf, &curwin->w_cursor); - - /* sync the cursor position */ -! sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_button_release[newDotAndMark]"); - -! sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, r_cmdno, - button, (long)curwin->w_cursor.lnum, col); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_button_release"); -*************** -*** 2975,2981 **** - - /* sync the cursor position */ - off = pos2off(curbuf, &curwin->w_cursor); -! sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, cmdno, off, off); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_keycommand"); - ---- 2976,2982 ---- - - /* sync the cursor position */ - off = pos2off(curbuf, &curwin->w_cursor); -! sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_keycommand"); - -*************** -*** 2986,2998 **** - - /* now send keyCommand event */ - vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n", -! bufno, cmdno, keyName); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_keycommand"); - - /* New: do both at once and include the lnum/col. */ - vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n", -! bufno, cmdno, keyName, - off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_keycommand"); ---- 2987,2999 ---- - - /* now send keyCommand event */ - vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n", -! bufno, r_cmdno, keyName); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_keycommand"); - - /* New: do both at once and include the lnum/col. */ - vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n", -! bufno, r_cmdno, keyName, - off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col); - nbdebug(("EVT: %s", buf)); - nb_send(buf, "netbeans_keycommand"); -*************** -*** 3015,3021 **** - - nbbuf->modified = 0; - -! sprintf((char *)buf, "%d:save=%d\n", bufno, cmdno); - nbdebug(("EVT: %s", buf)); - nb_send((char *)buf, "netbeans_save_buffer"); - } ---- 3016,3022 ---- - - nbbuf->modified = 0; - -! sprintf((char *)buf, "%d:save=%d\n", bufno, r_cmdno); - nbdebug(("EVT: %s", buf)); - nb_send((char *)buf, "netbeans_save_buffer"); - } -*************** -*** 3039,3045 **** - if (nbbuf->insertDone) - nbbuf->modified = 1; - -! sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, cmdno); - nbdebug(("EVT(suppressed): %s", buf)); - /* nb_send(buf, "netbeans_deleted_all_lines"); */ - } ---- 3040,3046 ---- - if (nbbuf->insertDone) - nbbuf->modified = 1; - -! sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, r_cmdno); - nbdebug(("EVT(suppressed): %s", buf)); - /* nb_send(buf, "netbeans_deleted_all_lines"); */ - } -*** ../vim-7.0.069/src/normal.c Wed Aug 16 21:42:34 2006 ---- src/normal.c Thu Aug 24 22:17:37 2006 -*************** -*** 4127,4133 **** - int save_p_ws; - int save_p_scs; - int retval = OK; -! int incl; - - if ((pat = alloc(len + 7)) == NULL) - return FAIL; ---- 4127,4133 ---- - int save_p_ws; - int save_p_scs; - int retval = OK; -! int incll; - - if ((pat = alloc(len + 7)) == NULL) - return FAIL; -*************** -*** 4147,4153 **** - * With "gd" Search back for the start of the current function, then go - * back until a blank line. If this fails go to line 1. - */ -! if (!locally || !findpar(&incl, BACKWARD, 1L, '{', FALSE)) - { - setpcmark(); /* Set in findpar() otherwise */ - curwin->w_cursor.lnum = 1; ---- 4147,4153 ---- - * With "gd" Search back for the start of the current function, then go - * back until a blank line. If this fails go to line 1. - */ -! if (!locally || !findpar(&incll, BACKWARD, 1L, '{', FALSE)) - { - setpcmark(); /* Set in findpar() otherwise */ - curwin->w_cursor.lnum = 1; -*** ../vim-7.0.069/src/option.c Tue Aug 8 16:30:51 2006 ---- src/option.c Wed Aug 16 21:54:45 2006 -*************** -*** 5268,5312 **** - char_u *s; - char_u **varp; - int both = (opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0; - -! if (opt_idx == -1) /* use name */ - { -! opt_idx = findoption(name); -! if (opt_idx < 0) /* not found (should not happen) */ - { - EMSG2(_(e_intern2), "set_string_option_direct()"); - return; - } - } - -! if (options[opt_idx].var == NULL) /* can't set hidden option */ - return; - - s = vim_strsave(val); - if (s != NULL) - { -! varp = (char_u **)get_varp_scope(&(options[opt_idx]), - both ? OPT_LOCAL : opt_flags); -! if ((opt_flags & OPT_FREE) && (options[opt_idx].flags & P_ALLOCED)) - free_string_option(*varp); - *varp = s; - - /* For buffer/window local option may also set the global value. */ - if (both) -! set_string_option_global(opt_idx, varp); - -! options[opt_idx].flags |= P_ALLOCED; - - /* When setting both values of a global option with a local value, - * make the local value empty, so that the global value is used. */ -! if (((int)options[opt_idx].indir & PV_BOTH) && both) - { - free_string_option(*varp); - *varp = empty_option; - } - # ifdef FEAT_EVAL - if (set_sid != SID_NONE) -! set_option_scriptID_idx(opt_idx, opt_flags, - set_sid == 0 ? current_SID : set_sid); - # endif - } ---- 5268,5313 ---- - char_u *s; - char_u **varp; - int both = (opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0; -+ int idx = opt_idx; - -! if (idx == -1) /* use name */ - { -! idx = findoption(name); -! if (idx < 0) /* not found (should not happen) */ - { - EMSG2(_(e_intern2), "set_string_option_direct()"); - return; - } - } - -! if (options[idx].var == NULL) /* can't set hidden option */ - return; - - s = vim_strsave(val); - if (s != NULL) - { -! varp = (char_u **)get_varp_scope(&(options[idx]), - both ? OPT_LOCAL : opt_flags); -! if ((opt_flags & OPT_FREE) && (options[idx].flags & P_ALLOCED)) - free_string_option(*varp); - *varp = s; - - /* For buffer/window local option may also set the global value. */ - if (both) -! set_string_option_global(idx, varp); - -! options[idx].flags |= P_ALLOCED; - - /* When setting both values of a global option with a local value, - * make the local value empty, so that the global value is used. */ -! if (((int)options[idx].indir & PV_BOTH) && both) - { - free_string_option(*varp); - *varp = empty_option; - } - # ifdef FEAT_EVAL - if (set_sid != SID_NONE) -! set_option_scriptID_idx(idx, opt_flags, - set_sid == 0 ? current_SID : set_sid); - # endif - } -*** ../vim-7.0.069/src/os_unix.c Thu Jun 22 19:47:11 2006 ---- src/os_unix.c Thu Aug 24 22:21:56 2006 -*************** -*** 3934,3940 **** - { - linenr_T lnum = curbuf->b_op_start.lnum; - int written = 0; -! char_u *p = ml_get(lnum); - char_u *s; - size_t l; - ---- 3934,3940 ---- - { - linenr_T lnum = curbuf->b_op_start.lnum; - int written = 0; -! char_u *lp = ml_get(lnum); - char_u *s; - size_t l; - -*************** -*** 3942,3958 **** - close(fromshell_fd); - for (;;) - { -! l = STRLEN(p + written); - if (l == 0) - len = 0; -! else if (p[written] == NL) - /* NL -> NUL translation */ - len = write(toshell_fd, "", (size_t)1); - else - { -! s = vim_strchr(p + written, NL); -! len = write(toshell_fd, (char *)p + written, -! s == NULL ? l : s - (p + written)); - } - if (len == l) - { ---- 3942,3958 ---- - close(fromshell_fd); - for (;;) - { -! l = STRLEN(lp + written); - if (l == 0) - len = 0; -! else if (lp[written] == NL) - /* NL -> NUL translation */ - len = write(toshell_fd, "", (size_t)1); - else - { -! s = vim_strchr(lp + written, NL); -! len = write(toshell_fd, (char *)lp + written, -! s == NULL ? l : s - (lp + written)); - } - if (len == l) - { -*************** -*** 3973,3979 **** - toshell_fd = -1; - break; - } -! p = ml_get(lnum); - written = 0; - } - else if (len > 0) ---- 3973,3979 ---- - toshell_fd = -1; - break; - } -! lp = ml_get(lnum); - written = 0; - } - else if (len > 0) -*** ../vim-7.0.069/src/quickfix.c Wed Aug 16 19:34:59 2006 ---- src/quickfix.c Thu Aug 24 22:23:31 2006 -*************** -*** 500,507 **** - { - if (tv != NULL) - { -- int len; -- - if (tv->v_type == VAR_STRING) - { - /* Get the next line from the supplied string */ ---- 500,505 ---- -*** ../vim-7.0.069/src/regexp.c Sun Apr 30 20:38:22 2006 ---- src/regexp.c Thu Aug 24 22:25:15 2006 -*************** -*** 3912,3918 **** - { - colnr_T start, end; - colnr_T start2, end2; -! colnr_T col; - - getvvcol(wp, &top, &start, NULL, &end); - getvvcol(wp, &bot, &start2, NULL, &end2); ---- 3919,3925 ---- - { - colnr_T start, end; - colnr_T start2, end2; -! colnr_T cols; - - getvvcol(wp, &top, &start, NULL, &end); - getvvcol(wp, &bot, &start2, NULL, &end2); -*************** -*** 3922,3930 **** - end = end2; - if (top.col == MAXCOL || bot.col == MAXCOL) - end = MAXCOL; -! col = win_linetabsize(wp, - regline, (colnr_T)(reginput - regline)); -! if (col < start || col > end - (*p_sel == 'e')) - status = RA_NOMATCH; - } - } ---- 3929,3937 ---- - end = end2; - if (top.col == MAXCOL || bot.col == MAXCOL) - end = MAXCOL; -! cols = win_linetabsize(wp, - regline, (colnr_T)(reginput - regline)); -! if (cols < start || cols > end - (*p_sel == 'e')) - status = RA_NOMATCH; - } - } -*************** -*** 4253,4259 **** - { - int i, len; - char_u *opnd; -! int opndc, inpc; - - opnd = OPERAND(scan); - /* Safety check (just in case 'encoding' was changed since ---- 4260,4266 ---- - { - int i, len; - char_u *opnd; -! int opndc = 0, inpc; - - opnd = OPERAND(scan); - /* Safety check (just in case 'encoding' was changed since -*** ../vim-7.0.069/src/screen.c Tue Jul 11 22:59:04 2006 ---- src/screen.c Thu Aug 24 22:26:16 2006 -*************** -*** 7099,7105 **** - tabpage_T *tp; - #endif - static int entered = FALSE; /* avoid recursiveness */ -! static int did_outofmem_msg = FALSE; /* did outofmem message */ - - /* - * Allocation of the screen buffers is done only when the size changes and ---- 7099,7105 ---- - tabpage_T *tp; - #endif - static int entered = FALSE; /* avoid recursiveness */ -! static int done_outofmem_msg = FALSE; /* did outofmem message */ - - /* - * Allocation of the screen buffers is done only when the size changes and -*************** -*** 7207,7220 **** - #endif - || outofmem) - { -! if (ScreenLines != NULL || !did_outofmem_msg) - { - /* guess the size */ - do_outofmem_msg((long_u)((Rows + 1) * Columns)); - - /* Remember we did this to avoid getting outofmem messages over - * and over again. */ -! did_outofmem_msg = TRUE; - } - vim_free(new_ScreenLines); - new_ScreenLines = NULL; ---- 7207,7220 ---- - #endif - || outofmem) - { -! if (ScreenLines != NULL || !done_outofmem_msg) - { - /* guess the size */ - do_outofmem_msg((long_u)((Rows + 1) * Columns)); - - /* Remember we did this to avoid getting outofmem messages over - * and over again. */ -! done_outofmem_msg = TRUE; - } - vim_free(new_ScreenLines); - new_ScreenLines = NULL; -*************** -*** 7242,7248 **** - } - else - { -! did_outofmem_msg = FALSE; - - for (new_row = 0; new_row < Rows; ++new_row) - { ---- 7242,7248 ---- - } - else - { -! done_outofmem_msg = FALSE; - - for (new_row = 0; new_row < Rows; ++new_row) - { -*** ../vim-7.0.069/src/search.c Tue Aug 29 16:33:23 2006 ---- src/search.c Tue Aug 29 14:56:15 2006 -*************** -*** 4826,4840 **** - - if ((compl_cont_status & CONT_ADDING) && i == compl_length) - { -- /* get the next line */ - /* IOSIZE > compl_length, so the STRNCPY works */ - STRNCPY(IObuff, aux, i); -! if (!( depth < 0 -! && lnum < end_lnum -! && (line = ml_get(++lnum)) != NULL) -! && !( depth >= 0 -! && !vim_fgets(line = file_line, -! LSIZE, files[depth].fp))) - goto exit_matched; - - /* we read a line, set "already" to check this "line" later ---- 4826,4845 ---- - - if ((compl_cont_status & CONT_ADDING) && i == compl_length) - { - /* IOSIZE > compl_length, so the STRNCPY works */ - STRNCPY(IObuff, aux, i); -! -! /* Get the next line: when "depth" < 0 from the current -! * buffer, otherwise from the included file. Jump to -! * exit_matched when past the last line. */ -! if (depth < 0) -! { -! if (lnum >= end_lnum) -! goto exit_matched; -! line = ml_get(++lnum); -! } -! else if (vim_fgets(line = file_line, -! LSIZE, files[depth].fp)) - goto exit_matched; - - /* we read a line, set "already" to check this "line" later -*** ../vim-7.0.069/src/spell.c Tue Aug 29 16:33:23 2006 ---- src/spell.c Tue Aug 29 14:56:26 2006 -*************** -*** 2043,2050 **** - int len; - # ifdef FEAT_SYN_HL - int has_syntax = syntax_present(wp->w_buffer); -- int col; - # endif - int can_spell; - char_u *buf = NULL; - int buflen = 0; ---- 2043,2050 ---- - int len; - # ifdef FEAT_SYN_HL - int has_syntax = syntax_present(wp->w_buffer); - # endif -+ int col; - int can_spell; - char_u *buf = NULL; - int buflen = 0; -*************** -*** 2093,2101 **** - capcol = (int)(skipwhite(line) - line); - else if (curline && wp == curwin) - { -- int col = (int)(skipwhite(line) - line); -- - /* For spellbadword(): check if first word needs a capital. */ - if (check_need_cap(lnum, col)) - capcol = col; - ---- 2093,2100 ---- - capcol = (int)(skipwhite(line) - line); - else if (curline && wp == curwin) - { - /* For spellbadword(): check if first word needs a capital. */ -+ col = (int)(skipwhite(line) - line); - if (check_need_cap(lnum, col)) - capcol = col; - -*************** -*** 5061,5067 **** - int do_rep; - int do_repsal; - int do_sal; -! int do_map; - int found_map = FALSE; - hashitem_T *hi; - int l; ---- 5060,5066 ---- - int do_rep; - int do_repsal; - int do_sal; -! int do_mapline; - int found_map = FALSE; - hashitem_T *hi; - int l; -*************** -*** 5099,5105 **** - do_sal = spin->si_sal.ga_len == 0; - - /* Only do MAP lines when not done in another .aff file already. */ -! do_map = spin->si_map.ga_len == 0; - - /* - * Allocate and init the afffile_T structure. ---- 5098,5104 ---- - do_sal = spin->si_sal.ga_len == 0; - - /* Only do MAP lines when not done in another .aff file already. */ -! do_mapline = spin->si_map.ga_len == 0; - - /* - * Allocate and init the afffile_T structure. -*************** -*** 5781,5787 **** - smsg((char_u *)_("Expected MAP count in %s line %d"), - fname, lnum); - } -! else if (do_map) - { - int c; - ---- 5780,5786 ---- - smsg((char_u *)_("Expected MAP count in %s line %d"), - fname, lnum); - } -! else if (do_mapline) - { - int c; - -*************** -*** 7508,7514 **** - { - char_u *p = p_msm; - long start = 0; -! long inc = 0; - long added = 0; - - if (!VIM_ISDIGIT(*p)) ---- 7507,7513 ---- - { - char_u *p = p_msm; - long start = 0; -! long incr = 0; - long added = 0; - - if (!VIM_ISDIGIT(*p)) -*************** -*** 7520,7526 **** - ++p; - if (!VIM_ISDIGIT(*p)) - return FAIL; -! inc = (getdigits(&p) * 102) / (SBLOCKSIZE / 10); - if (*p != ',') - return FAIL; - ++p; ---- 7519,7525 ---- - ++p; - if (!VIM_ISDIGIT(*p)) - return FAIL; -! incr = (getdigits(&p) * 102) / (SBLOCKSIZE / 10); - if (*p != ',') - return FAIL; - ++p; -*************** -*** 7530,7540 **** - if (*p != NUL) - return FAIL; - -! if (start == 0 || inc == 0 || added == 0 || inc > start) - return FAIL; - - compress_start = start; -! compress_inc = inc; - compress_added = added; - return OK; - } ---- 7529,7539 ---- - if (*p != NUL) - return FAIL; - -! if (start == 0 || incr == 0 || added == 0 || incr > start) - return FAIL; - - compress_start = start; -! compress_inc = incr; - compress_added = added; - return OK; - } -*************** -*** 8292,8305 **** - * Returns the number of nodes used. - */ - static int -! put_node(fd, node, index, regionmask, prefixtree) - FILE *fd; /* NULL when only counting */ - wordnode_T *node; -! int index; - int regionmask; - int prefixtree; /* TRUE for PREFIXTREE */ - { -! int newindex = index; - int siblingcount = 0; - wordnode_T *np; - int flags; ---- 8291,8304 ---- - * Returns the number of nodes used. - */ - static int -! put_node(fd, node, idx, regionmask, prefixtree) - FILE *fd; /* NULL when only counting */ - wordnode_T *node; -! int idx; - int regionmask; - int prefixtree; /* TRUE for PREFIXTREE */ - { -! int newindex = idx; - int siblingcount = 0; - wordnode_T *np; - int flags; -*************** -*** 8309,8315 **** - return 0; - - /* Store the index where this node is written. */ -! node->wn_u1.index = index; - - /* Count the number of siblings. */ - for (np = node; np != NULL; np = np->wn_sibling) ---- 8308,8314 ---- - return 0; - - /* Store the index where this node is written. */ -! node->wn_u1.index = idx; - - /* Count the number of siblings. */ - for (np = node; np != NULL; np = np->wn_sibling) -*************** -*** 9244,9254 **** - * Add "word[len]" to 'spellfile' as a good or bad word. - */ - void -! spell_add_word(word, len, bad, index, undo) - char_u *word; - int len; - int bad; -! int index; /* "zG" and "zW": zero, otherwise index in - 'spellfile' */ - int undo; /* TRUE for "zug", "zuG", "zuw" and "zuW" */ - { ---- 9243,9253 ---- - * Add "word[len]" to 'spellfile' as a good or bad word. - */ - void -! spell_add_word(word, len, bad, idx, undo) - char_u *word; - int len; - int bad; -! int idx; /* "zG" and "zW": zero, otherwise index in - 'spellfile' */ - int undo; /* TRUE for "zug", "zuG", "zuw" and "zuW" */ - { -*************** -*** 9262,9268 **** - int i; - char_u *spf; - -! if (index == 0) /* use internal wordlist */ - { - if (int_wordlist == NULL) - { ---- 9261,9267 ---- - int i; - char_u *spf; - -! if (idx == 0) /* use internal wordlist */ - { - if (int_wordlist == NULL) - { -*************** -*** 9290,9300 **** - for (spf = curbuf->b_p_spf, i = 1; *spf != NUL; ++i) - { - copy_option_part(&spf, fnamebuf, MAXPATHL, ","); -! if (i == index) - break; - if (*spf == NUL) - { -! EMSGN(_("E765: 'spellfile' does not have %ld entries"), index); - return; - } - } ---- 9289,9299 ---- - for (spf = curbuf->b_p_spf, i = 1; *spf != NUL; ++i) - { - copy_option_part(&spf, fnamebuf, MAXPATHL, ","); -! if (i == idx) - break; - if (*spf == NUL) - { -! EMSGN(_("E765: 'spellfile' does not have %ld entries"), idx); - return; - } - } -*************** -*** 13581,13633 **** - * the first "the" to itself. */ - return; - -! /* Check if the word is already there. Also check the length that is -! * being replaced "thes," -> "these" is a different suggestion from -! * "thes" -> "these". */ -! stp = &SUG(*gap, 0); -! for (i = gap->ga_len; --i >= 0; ++stp) -! if (stp->st_wordlen == goodlen -! && stp->st_orglen == badlen -! && STRNCMP(stp->st_word, goodword, goodlen) == 0) -! { -! /* -! * Found it. Remember the word with the lowest score. -! */ -! if (stp->st_slang == NULL) -! stp->st_slang = slang; - -! new_sug.st_score = score; -! new_sug.st_altscore = altscore; -! new_sug.st_had_bonus = had_bonus; -! -! if (stp->st_had_bonus != had_bonus) -! { -! /* Only one of the two had the soundalike score computed. -! * Need to do that for the other one now, otherwise the -! * scores can't be compared. This happens because -! * suggest_try_change() doesn't compute the soundalike -! * word to keep it fast, while some special methods set -! * the soundalike score to zero. */ -! if (had_bonus) -! rescore_one(su, stp); -! else -! { -! new_sug.st_word = stp->st_word; -! new_sug.st_wordlen = stp->st_wordlen; -! new_sug.st_slang = stp->st_slang; -! new_sug.st_orglen = badlen; -! rescore_one(su, &new_sug); - } -- } - -! if (stp->st_score > new_sug.st_score) -! { -! stp->st_score = new_sug.st_score; -! stp->st_altscore = new_sug.st_altscore; -! stp->st_had_bonus = new_sug.st_had_bonus; - } -! break; -! } - - if (i < 0 && ga_grow(gap, 1) == OK) - { ---- 13580,13637 ---- - * the first "the" to itself. */ - return; - -! if (gap->ga_len == 0) -! i = -1; -! else -! { -! /* Check if the word is already there. Also check the length that is -! * being replaced "thes," -> "these" is a different suggestion from -! * "thes" -> "these". */ -! stp = &SUG(*gap, 0); -! for (i = gap->ga_len; --i >= 0; ++stp) -! if (stp->st_wordlen == goodlen -! && stp->st_orglen == badlen -! && STRNCMP(stp->st_word, goodword, goodlen) == 0) -! { -! /* -! * Found it. Remember the word with the lowest score. -! */ -! if (stp->st_slang == NULL) -! stp->st_slang = slang; - -! new_sug.st_score = score; -! new_sug.st_altscore = altscore; -! new_sug.st_had_bonus = had_bonus; -! -! if (stp->st_had_bonus != had_bonus) -! { -! /* Only one of the two had the soundalike score computed. -! * Need to do that for the other one now, otherwise the -! * scores can't be compared. This happens because -! * suggest_try_change() doesn't compute the soundalike -! * word to keep it fast, while some special methods set -! * the soundalike score to zero. */ -! if (had_bonus) -! rescore_one(su, stp); -! else -! { -! new_sug.st_word = stp->st_word; -! new_sug.st_wordlen = stp->st_wordlen; -! new_sug.st_slang = stp->st_slang; -! new_sug.st_orglen = badlen; -! rescore_one(su, &new_sug); -! } - } - -! if (stp->st_score > new_sug.st_score) -! { -! stp->st_score = new_sug.st_score; -! stp->st_altscore = new_sug.st_altscore; -! stp->st_had_bonus = new_sug.st_had_bonus; -! } -! break; - } -! } - - if (i < 0 && ga_grow(gap, 1) == OK) - { -*** ../vim-7.0.069/src/ui.c Mon Mar 27 23:02:40 2006 ---- src/ui.c Thu Aug 24 22:31:38 2006 -*************** -*** 1137,1143 **** - int len; - #ifdef FEAT_MBYTE - char_u *p; -- int i; - #endif - int row1 = clip_star.start.lnum; - int col1 = clip_star.start.col; ---- 1137,1142 ---- -*************** -*** 1218,1223 **** ---- 1217,1224 ---- - #ifdef FEAT_MBYTE - if (enc_dbcs != 0) - { -+ int i; -+ - p = ScreenLines + LineOffset[row]; - for (i = start_col; i < end_col; ++i) - if (enc_dbcs == DBCS_JPNU && p[i] == 0x8e) -*** ../vim-7.0.069/src/undo.c Wed Jul 12 21:48:56 2006 ---- src/undo.c Thu Aug 24 22:32:41 2006 -*************** -*** 1187,1193 **** - int did_undo; /* just did an undo */ - int absolute; /* used ":undo N" */ - { -! char *msg; - u_header_T *uhp; - char_u msgbuf[80]; - ---- 1187,1193 ---- - int did_undo; /* just did an undo */ - int absolute; /* used ":undo N" */ - { -! char *msgstr; - u_header_T *uhp; - char_u msgbuf[80]; - -*************** -*** 1205,1224 **** - - u_oldcount -= u_newcount; - if (u_oldcount == -1) -! msg = N_("more line"); - else if (u_oldcount < 0) -! msg = N_("more lines"); - else if (u_oldcount == 1) -! msg = N_("line less"); - else if (u_oldcount > 1) -! msg = N_("fewer lines"); - else - { - u_oldcount = u_newcount; - if (u_newcount == 1) -! msg = N_("change"); - else -! msg = N_("changes"); - } - - if (curbuf->b_u_curhead != NULL) ---- 1205,1224 ---- - - u_oldcount -= u_newcount; - if (u_oldcount == -1) -! msgstr = N_("more line"); - else if (u_oldcount < 0) -! msgstr = N_("more lines"); - else if (u_oldcount == 1) -! msgstr = N_("line less"); - else if (u_oldcount > 1) -! msgstr = N_("fewer lines"); - else - { - u_oldcount = u_newcount; - if (u_newcount == 1) -! msgstr = N_("change"); - else -! msgstr = N_("changes"); - } - - if (curbuf->b_u_curhead != NULL) -*************** -*** 1244,1250 **** - - smsg((char_u *)_("%ld %s; %s #%ld %s"), - u_oldcount < 0 ? -u_oldcount : u_oldcount, -! _(msg), - did_undo ? _("before") : _("after"), - uhp == NULL ? 0L : uhp->uh_seq, - msgbuf); ---- 1244,1250 ---- - - smsg((char_u *)_("%ld %s; %s #%ld %s"), - u_oldcount < 0 ? -u_oldcount : u_oldcount, -! _(msgstr), - did_undo ? _("before") : _("after"), - uhp == NULL ? 0L : uhp->uh_seq, - msgbuf); -*** ../vim-7.0.069/src/window.c Sat May 6 23:37:40 2006 ---- src/window.c Thu Aug 24 22:33:40 2006 -*************** -*** 340,349 **** - { - tabpage_T *oldtab = curtab; - tabpage_T *newtab; -- win_T *wp = curwin; - - /* First create a new tab with the window, then go back to - * the old tab and close the window there. */ - if (win_new_tabpage((int)Prenum) == OK - && valid_tabpage(oldtab)) - { ---- 340,349 ---- - { - tabpage_T *oldtab = curtab; - tabpage_T *newtab; - - /* First create a new tab with the window, then go back to - * the old tab and close the window there. */ -+ wp = curwin; - if (win_new_tabpage((int)Prenum) == OK - && valid_tabpage(oldtab)) - { -*** ../vim-7.0.069/src/version.c Tue Aug 29 16:52:01 2006 ---- src/version.c Tue Aug 29 17:02:00 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 70, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -267. You get an extra phone line so you can get phone calls. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.071 b/7.0.071 deleted file mode 100644 index a2404297..00000000 --- a/7.0.071 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.071 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.071 -Problem: Using an empty search pattern may cause a crash. -Solution: Avoid using a NULL pointer. -Files: src/search.c - - -*** ../vim-7.0.070/src/search.c Tue Aug 29 17:28:56 2006 ---- src/search.c Tue Aug 29 14:56:15 2006 -*************** -*** 1259,1265 **** - /* - * Add character and/or line offset - */ -! if (!(options & SEARCH_NOOF) || *pat == ';') - { - if (spats[0].off.line) /* Add the offset to the line number. */ - { ---- 1259,1265 ---- - /* - * Add character and/or line offset - */ -! if (!(options & SEARCH_NOOF) || (pat != NULL && *pat == ';')) - { - if (spats[0].off.line) /* Add the offset to the line number. */ - { -*** ../vim-7.0.070/src/version.c Tue Aug 29 17:28:56 2006 ---- src/version.c Tue Aug 29 17:59:24 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 71, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -268. You get up in the morning and go online before getting your coffee. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.072 b/7.0.072 deleted file mode 100644 index 8fb9a279..00000000 --- a/7.0.072 +++ /dev/null @@ -1,83 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.072 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.072 -Problem: When starting the GUI fails there is no way to adjust settings or - do something else. -Solution: Add the GUIFailed autocommand event. -Files: src/fileio.c, src/gui.c, src/vim.h - - -*** ../vim-7.0.071/src/fileio.c Wed Aug 16 19:34:59 2006 ---- src/fileio.c Tue Aug 29 10:11:35 2006 -*************** -*** 6980,6985 **** ---- 6980,6986 ---- - {"FocusLost", EVENT_FOCUSLOST}, - {"FuncUndefined", EVENT_FUNCUNDEFINED}, - {"GUIEnter", EVENT_GUIENTER}, -+ {"GUIFailed", EVENT_GUIFAILED}, - {"InsertChange", EVENT_INSERTCHANGE}, - {"InsertEnter", EVENT_INSERTENTER}, - {"InsertLeave", EVENT_INSERTLEAVE}, -*** ../vim-7.0.071/src/gui.c Tue Jun 20 20:39:32 2006 ---- src/gui.c Tue Aug 29 10:12:32 2006 -*************** -*** 187,195 **** - #endif - - #ifdef FEAT_AUTOCMD -! /* If the GUI started successfully, trigger the GUIEnter event */ -! if (gui.in_use) -! apply_autocmds(EVENT_GUIENTER, NULL, NULL, FALSE, curbuf); - #endif - - --recursive; ---- 187,196 ---- - #endif - - #ifdef FEAT_AUTOCMD -! /* If the GUI started successfully, trigger the GUIEnter event, otherwise -! * the GUIFailed event. */ -! apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED, -! NULL, NULL, FALSE, curbuf); - #endif - - --recursive; -*** ../vim-7.0.071/src/vim.h Fri Jun 23 16:33:41 2006 ---- src/vim.h Tue Aug 29 10:12:47 2006 -*************** -*** 1120,1125 **** ---- 1120,1126 ---- - EVENT_FOCUSGAINED, /* got the focus */ - EVENT_FOCUSLOST, /* lost the focus to another app */ - EVENT_GUIENTER, /* after starting the GUI */ -+ EVENT_GUIFAILED, /* after starting the GUI failed */ - EVENT_INSERTCHANGE, /* when changing Insert/Replace mode */ - EVENT_INSERTENTER, /* when entering Insert mode */ - EVENT_INSERTLEAVE, /* when leaving Insert mode */ -*** ../vim-7.0.071/src/version.c Tue Aug 29 18:01:39 2006 ---- src/version.c Tue Aug 29 18:15:13 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 72, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -269. You receive an e-mail from the wife of a deceased president, offering - to send you twenty million dollar, and you are not even surprised. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.073 b/7.0.073 deleted file mode 100644 index e7d8c316..00000000 --- a/7.0.073 +++ /dev/null @@ -1,50 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.073 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.073 -Problem: Insert mode completion: Typing sometimes selects the original - text instead of keeping what was typed. (Justin Constantino) -Solution: Don't let select the original text if there is no popup menu. -Files: src/edit.c - - -*** ../vim-7.0.072/src/edit.c Tue Aug 29 17:28:56 2006 ---- src/edit.c Tue Aug 29 17:40:06 2006 -*************** -*** 3097,3102 **** ---- 3097,3106 ---- - - /* Show the popup menu with a different set of matches. */ - ins_compl_show_pum(); -+ -+ /* Don't let Enter select the original text when there is no popup menu. */ -+ if (compl_match_array == NULL) -+ compl_enter_selects = FALSE; - } - - /* -*** ../vim-7.0.072/src/version.c Tue Aug 29 18:16:37 2006 ---- src/version.c Tue Aug 29 18:35:33 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 73, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -269. You wonder how you can make your dustbin produce Sesame Street's - Oscar's the Garbage Monster song when you empty it. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.074 b/7.0.074 deleted file mode 100644 index aabce3a0..00000000 --- a/7.0.074 +++ /dev/null @@ -1,270 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.074 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.074 (extra) -Problem: Win32: tooltips were not converted from 'encoding' to Unicode. -Solution: Set the tooltip to use Unicode and do the conversion. Also - cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira) -Files: src/gui_w32.c, src/gui_w48.c - - -*** ../vim-7.0.073/src/gui_w32.c Sat May 6 23:43:11 2006 ---- src/gui_w32.c Tue Aug 29 21:16:58 2006 -*************** -*** 889,1005 **** - # ifdef FEAT_MBYTE - case TTN_GETDISPINFOW: - # endif -! case TTN_NEEDTEXT: -! # ifdef FEAT_GUI_TABLINE -! if (gui_mch_showing_tabline() -! && ((LPNMHDR)lParam)->hwndFrom == -! TabCtrl_GetToolTips(s_tabhwnd)) - { -! LPNMTTDISPINFO lpdi; -! POINT pt; -! static char *tt_text = NULL; -! static int tt_text_len = 0; -! -! /* -! * Mouse is over the GUI tabline. Display the tooltip -! * for the tab under the cursor -! */ -! lpdi = (LPNMTTDISPINFO)lParam; -! lpdi->hinst = NULL; -! lpdi->szText[0] = '\0'; -! -! /* -! * Get the cursor position within the tab control -! */ -! GetCursorPos(&pt); -! if (ScreenToClient(s_tabhwnd, &pt) != 0) -! { -! TCHITTESTINFO htinfo; -! int idx; - - /* -! * Get the tab under the cursor - */ -! htinfo.pt.x = pt.x; -! htinfo.pt.y = pt.y; -! idx = TabCtrl_HitTest(s_tabhwnd, &htinfo); -! if (idx != -1) - { -! tabpage_T *tp; - -! tp = find_tabpage(idx + 1); -! if (tp != NULL) - { -! # ifdef FEAT_MBYTE -! WCHAR *wstr = NULL; -! # endif -! get_tabline_label(tp, TRUE); -! # ifdef FEAT_MBYTE -! if (enc_codepage >= 0 -! && (int)GetACP() != enc_codepage) -! { -! wstr = enc_to_ucs2(NameBuff, NULL); -! if (wstr != NULL) -! { -! int wlen; -! -! wlen = ((int)wcslen(wstr) + 1) -! * sizeof(WCHAR); -! if (tt_text_len < wlen) -! { -! tt_text = vim_realloc(tt_text, -! wlen); -! if (tt_text != NULL) -! tt_text_len = wlen; -! } -! if (tt_text != NULL) -! wcscpy((WCHAR *)tt_text, wstr); -! lpdi->lpszText = tt_text; -! vim_free(wstr); -! } -! } -! if (wstr == NULL) -! # endif -! { -! int len; - -! len = (int)STRLEN(NameBuff) + 1; -! if (tt_text_len < len) -! { -! tt_text = vim_realloc(tt_text, len); -! if (tt_text != NULL) -! tt_text_len = len; -! } -! if (tt_text != NULL) -! STRCPY(tt_text, NameBuff); -! lpdi->lpszText = tt_text; - } - } - } - } -- } -- else - # endif -- { - # ifdef FEAT_TOOLBAR -! LPTOOLTIPTEXT lpttt; -! UINT idButton; -! int idx; -! vimmenu_T *pMenu; -! -! lpttt = (LPTOOLTIPTEXT)lParam; -! idButton = (UINT) lpttt->hdr.idFrom; -! pMenu = gui_mswin_find_menu(root_menu, idButton); -! if (pMenu) - { -! idx = MENU_INDEX_TIP; -! if (pMenu->strings[idx]) - { -! lpttt->hinst = NULL; /* string, not resource */ -! lpttt->lpszText = pMenu->strings[idx]; - } -! } - # endif - } - break; - # ifdef FEAT_GUI_TABLINE ---- 889,978 ---- - # ifdef FEAT_MBYTE - case TTN_GETDISPINFOW: - # endif -! case TTN_GETDISPINFO: - { -! LPNMHDR hdr = (LPNMHDR)lParam; -! char_u *str = NULL; -! static void *tt_text = NULL; -! -! vim_free(tt_text); -! tt_text = NULL; - -+ # ifdef FEAT_GUI_TABLINE -+ if (gui_mch_showing_tabline() -+ && hdr->hwndFrom == TabCtrl_GetToolTips(s_tabhwnd)) -+ { -+ POINT pt; - /* -! * Mouse is over the GUI tabline. Display the -! * tooltip for the tab under the cursor -! * -! * Get the cursor position within the tab control - */ -! GetCursorPos(&pt); -! if (ScreenToClient(s_tabhwnd, &pt) != 0) - { -! TCHITTESTINFO htinfo; -! int idx; - -! /* -! * Get the tab under the cursor -! */ -! htinfo.pt.x = pt.x; -! htinfo.pt.y = pt.y; -! idx = TabCtrl_HitTest(s_tabhwnd, &htinfo); -! if (idx != -1) - { -! tabpage_T *tp; - -! tp = find_tabpage(idx + 1); -! if (tp != NULL) -! { -! get_tabline_label(tp, TRUE); -! str = NameBuff; - } - } - } - } - # endif - # ifdef FEAT_TOOLBAR -! # ifdef FEAT_GUI_TABLINE -! else -! # endif -! { -! UINT idButton; -! vimmenu_T *pMenu; -! -! idButton = (UINT) hdr->idFrom; -! pMenu = gui_mswin_find_menu(root_menu, idButton); -! if (pMenu) -! str = pMenu->strings[MENU_INDEX_TIP]; -! } -! # endif -! if (str != NULL) - { -! # ifdef FEAT_MBYTE -! if (hdr->code == TTN_GETDISPINFOW) - { -! LPNMTTDISPINFOW lpdi = (LPNMTTDISPINFOW)lParam; -! -! tt_text = enc_to_ucs2(str, NULL); -! lpdi->lpszText = tt_text; -! /* can't show tooltip if failed */ - } -! else - # endif -+ { -+ LPNMTTDISPINFO lpdi = (LPNMTTDISPINFO)lParam; -+ -+ if (STRLEN(str) < sizeof(lpdi->szText) -+ || ((tt_text = vim_strsave(str)) == NULL)) -+ vim_strncpy(lpdi->szText, str, -+ sizeof(lpdi->szText) - 1); -+ else -+ lpdi->lpszText = tt_text; -+ } -+ } - } - break; - # ifdef FEAT_GUI_TABLINE -*** ../vim-7.0.073/src/gui_w48.c Fri Jun 23 16:44:32 2006 ---- src/gui_w48.c Tue Aug 29 21:14:31 2006 -*************** -*** 2194,2200 **** ---- 2194,2211 ---- - return; - - if (showit) -+ { -+ # ifdef FEAT_MBYTE -+ # ifndef TB_SETUNICODEFORMAT -+ /* For older compilers. We assume this never changes. */ -+ # define TB_SETUNICODEFORMAT 0x2005 -+ # endif -+ /* Enable/disable unicode support */ -+ int uu = (enc_codepage >= 0 && (int)GetACP() != enc_codepage); -+ SendMessage(s_toolbarhwnd, TB_SETUNICODEFORMAT, (WPARAM)uu, (LPARAM)0); -+ # endif - ShowWindow(s_toolbarhwnd, SW_SHOW); -+ } - else - ShowWindow(s_toolbarhwnd, SW_HIDE); - } -*** ../vim-7.0.073/src/version.c Tue Aug 29 18:36:55 2006 ---- src/version.c Tue Aug 29 21:28:00 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 74, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -271. You collect hilarious signatures from all 250 mailing lists you - are subscribed to. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.075 b/7.0.075 deleted file mode 100644 index e04be1e9..00000000 --- a/7.0.075 +++ /dev/null @@ -1,45 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.075 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.075 -Problem: winsaveview() did not store the actual value of the desired cursor - column. This could move the cursor in the matchparen plugin. -Solution: Call update_curswant() before using the value w_curswant. -Files: src/eval.c - - -*** ../vim-7.0.074/src/eval.c Tue Aug 29 17:28:56 2006 ---- src/eval.c Tue Aug 29 21:53:26 2006 -*************** -*** 16232,16237 **** ---- 16232,16238 ---- - #ifdef FEAT_VIRTUALEDIT - dict_add_nr_str(dict, "coladd", (long)curwin->w_cursor.coladd, NULL); - #endif -+ update_curswant(); - dict_add_nr_str(dict, "curswant", (long)curwin->w_curswant, NULL); - - dict_add_nr_str(dict, "topline", (long)curwin->w_topline, NULL); -*** ../vim-7.0.074/src/version.c Tue Aug 29 21:30:15 2006 ---- src/version.c Tue Aug 29 21:57:03 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 75, - /**/ - --- -Women are probably the main cause of free software starvation. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.076 b/7.0.076 deleted file mode 100644 index 6244dab4..00000000 --- a/7.0.076 +++ /dev/null @@ -1,76 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.076 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.076 (after 7.0.010) -Problem: Automatic downloading of spell files only works for ftp. -Solution: Don't add login and password for non-ftp URLs. (Alexander Patrakov) -Files: runtime/autoload/spellfile.vim - - -*** ../vim-7.0.075/runtime/autoload/spellfile.vim Sat May 13 14:29:16 2006 ---- runtime/autoload/spellfile.vim Tue Aug 29 22:17:03 2006 -*************** -*** 1,6 **** - " Vim script to download a missing spell file - " Maintainer: Bram Moolenaar -! " Last Change: 2006 May 10 - - if !exists('g:spellfile_URL') - let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell' ---- 1,6 ---- - " Vim script to download a missing spell file - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Aug 29 - - if !exists('g:spellfile_URL') - let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell' -*************** -*** 110,118 **** - endif - endfunc - -! " Read "fname" from the ftp server. - function! spellfile#Nread(fname) -! let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '') -! let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '') -! exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"' - endfunc ---- 110,123 ---- - endif - endfunc - -! " Read "fname" from the server. - function! spellfile#Nread(fname) -! if g:spellfile_URL =~ '^ftp://' -! " for an ftp server use a default login and password to avoid a prompt -! let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '') -! let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '') -! exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"' -! else -! exe 'Nread ' g:spellfile_URL . '/' . a:fname -! endif - endfunc -*** ../vim-7.0.075/src/version.c Tue Aug 29 21:59:25 2006 ---- src/version.c Tue Aug 29 22:31:45 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 76, - /**/ - --- -This sentence is not sure that it exists, but if it does, it will -certainly consider the possibility that other sentences exist. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.077 b/7.0.077 deleted file mode 100644 index ffda0139..00000000 --- a/7.0.077 +++ /dev/null @@ -1,98 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.077 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.077 -Problem: ":unlet v:this_session" causes a crash. (Marius Roets) -Solution: When trying to unlet a fixed variable give an error message. -Files: src/eval.c - - -*** ../vim-7.0.076/src/eval.c Tue Aug 29 21:59:25 2006 ---- src/eval.c Sat Sep 2 13:43:20 2006 -*************** -*** 701,706 **** ---- 701,707 ---- - static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string)); - static void set_var __ARGS((char_u *name, typval_T *varp, int copy)); - static int var_check_ro __ARGS((int flags, char_u *name)); -+ static int var_check_fixed __ARGS((int flags, char_u *name)); - static int tv_check_lock __ARGS((int lock, char_u *name)); - static void copy_tv __ARGS((typval_T *from, typval_T *to)); - static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID)); -*************** -*** 3364,3369 **** ---- 3365,3372 ---- - hi = hash_find(ht, varname); - if (!HASHITEM_EMPTY(hi)) - { -+ if (var_check_fixed(HI2DI(hi)->di_flags, name)) -+ return FAIL; - if (var_check_ro(HI2DI(hi)->di_flags, name)) - return FAIL; - delete_var(ht, hi); -*************** -*** 17818,17824 **** - } - - /* -! * Return TRUE if di_flags "flags" indicate read-only variable "name". - * Also give an error message. - */ - static int ---- 17821,17827 ---- - } - - /* -! * Return TRUE if di_flags "flags" indicates variable "name" is read-only. - * Also give an error message. - */ - static int -*************** -*** 17834,17839 **** ---- 17837,17859 ---- - if ((flags & DI_FLAGS_RO_SBX) && sandbox) - { - EMSG2(_(e_readonlysbx), name); -+ return TRUE; -+ } -+ return FALSE; -+ } -+ -+ /* -+ * Return TRUE if di_flags "flags" indicates variable "name" is fixed. -+ * Also give an error message. -+ */ -+ static int -+ var_check_fixed(flags, name) -+ int flags; -+ char_u *name; -+ { -+ if (flags & DI_FLAGS_FIX) -+ { -+ EMSG2(_("E795: Cannot delete variable %s"), name); - return TRUE; - } - return FALSE; -*** ../vim-7.0.076/src/version.c Tue Aug 29 22:35:11 2006 ---- src/version.c Sat Sep 2 13:39:36 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 77, - /**/ - --- - ### Hiroshima 45, Chernobyl 86, Windows 95 ### - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.078 b/7.0.078 deleted file mode 100644 index ec47e150..00000000 --- a/7.0.078 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.078 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.078 -Problem: There are two error messages E46. -Solution: Change the number for the sandbox message to E794. -Files: src/globals.h - - -*** ../vim-7.0.077/src/globals.h Sun Apr 30 20:32:38 2006 ---- src/globals.h Sat Sep 2 13:12:55 2006 -*************** -*** 1441,1447 **** - EXTERN char_u e_readonly[] INIT(= N_("E45: 'readonly' option is set (add ! to override)")); - #ifdef FEAT_EVAL - EXTERN char_u e_readonlyvar[] INIT(= N_("E46: Cannot change read-only variable \"%s\"")); -! EXTERN char_u e_readonlysbx[] INIT(= N_("E46: Cannot set variable in the sandbox: \"%s\"")); - #endif - #ifdef FEAT_QUICKFIX - EXTERN char_u e_readerrf[] INIT(= N_("E47: Error while reading errorfile")); ---- 1441,1447 ---- - EXTERN char_u e_readonly[] INIT(= N_("E45: 'readonly' option is set (add ! to override)")); - #ifdef FEAT_EVAL - EXTERN char_u e_readonlyvar[] INIT(= N_("E46: Cannot change read-only variable \"%s\"")); -! EXTERN char_u e_readonlysbx[] INIT(= N_("E794: Cannot set variable in the sandbox: \"%s\"")); - #endif - #ifdef FEAT_QUICKFIX - EXTERN char_u e_readerrf[] INIT(= N_("E47: Error while reading errorfile")); -*** ../vim-7.0.077/src/version.c Sat Sep 2 13:45:01 2006 ---- src/version.c Sat Sep 2 14:08:12 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 78, - /**/ - --- -"Intelligence has much less practical application than you'd think." - -- Scott Adams, Dilbert. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.079_patched b/7.0.079_patched deleted file mode 100644 index 297ef542..00000000 --- a/7.0.079_patched +++ /dev/null @@ -1,72 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.079 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.079 -Problem: Russian tutor doesn't work when 'encoding' is "utf-8". -Solution: Use tutor.ru.utf-8 as the master, and generate the other encodings - from it. Select the right tutor depending on 'encoding'. (Alexey - Froloff) -Files: runtime/tutor/Makefile, runtime/tutor/tutor.vim, - runtime/tutor/tutor.ru.utf-8 - - -*** ../vim-7.0.079/runtime/tutor/Makefile Sun Jun 13 20:35:48 2004 ---- runtime/tutor/Makefile Fri Sep 1 20:38:20 2006 -*************** -*** 2,9 **** - # - # The Japanese tutor exists in three encodings. Use the UTF-8 version as the - # original and create the others with conversion. - -! all: tutor.ja.sjis tutor.ja.euc tutor.ko.euc - - tutor.ja.sjis: tutor.ja.utf-8 - nkf -WXs tutor.ja.utf-8 > tutor.ja.sjis ---- 2,13 ---- - # - # The Japanese tutor exists in three encodings. Use the UTF-8 version as the - # original and create the others with conversion. -+ # -+ # Similarly for Russian and Korean - -! all: tutor.ja.sjis tutor.ja.euc \ -! tutor.ko.euc \ -! tutor.ru tutor.ru.cp1251 - - tutor.ja.sjis: tutor.ja.utf-8 - nkf -WXs tutor.ja.utf-8 > tutor.ja.sjis -*************** -*** 13,15 **** ---- 17,25 ---- - - tutor.ko.euc: tutor.ko.utf-8 - iconv -f UTF-8 -t EUC-KR tutor.ko.utf-8 > tutor.ko.euc -+ -+ tutor.ru: tutor.ru.utf-8 -+ iconv -f UTF-8 -t KOI8-R tutor.ru.utf-8 > tutor.ru -+ -+ tutor.ru.cp1251: tutor.ru.utf-8 -+ iconv -f UTF-8 -t cp1251 tutor.ru.utf-8 > tutor.ru.cp1251 -*** ../vim-7.0.079/src/version.c Sat Sep 2 14:53:09 2006 ---- src/version.c Sat Sep 2 14:20:15 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 79, - /**/ - --- -Eight Megabytes And Continually Swapping. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.080 b/7.0.080 deleted file mode 100644 index fd60d5ff..00000000 --- a/7.0.080 +++ /dev/null @@ -1,57 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.080 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.080 -Problem: Generating auto/pathdef.c fails for CFLAGS with a backslash. -Solution: Double backslashes in the string. (Alexey Froloff) -Files: src/Makefile - - -*** ../vim-7.0.079/src/Makefile Sat Sep 2 15:31:29 2006 ---- src/Makefile Fri Sep 1 21:00:29 2006 -*************** -*** 2261,2267 **** - auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in - CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh - -! QUOTESED = sed -e 's/"/\\"/g' -e 's/\\"/"/' -e 's/\\";$$/";/' - auto/pathdef.c: Makefile auto/config.mk - -@echo creating $@ - -@echo '/* pathdef.c */' > $@ ---- 2262,2268 ---- - auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in - CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh - -! QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/' - auto/pathdef.c: Makefile auto/config.mk - -@echo creating $@ - -@echo '/* pathdef.c */' > $@ -*** ../vim-7.0.079/src/version.c Sat Sep 2 14:54:17 2006 ---- src/version.c Sat Sep 2 16:35:50 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 80, - /**/ - --- -E M A C S -s e l o h -c t t n i -a a t f -p r t -e o - l - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.081 b/7.0.081 deleted file mode 100644 index 4af91cf8..00000000 --- a/7.0.081 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.081 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.081 -Problem: Command line completion doesn't work for a shell command with an - absolute path. -Solution: Don't use $PATH when there is an absolute path. -Files: src/ex_getln.c - - -*** ../vim-7.0.080/src/ex_getln.c Wed Aug 16 16:24:58 2006 ---- src/ex_getln.c Sat Sep 2 17:51:03 2006 -*************** -*** 4521,4527 **** - flags |= EW_FILE | EW_EXEC; - - /* For an absolute name we don't use $PATH. */ -! if ((pat[0] == '.' && (vim_ispathsep(pat[1]) - || (pat[1] == '.' && vim_ispathsep(pat[2]))))) - path = (char_u *)"."; - else ---- 4521,4529 ---- - flags |= EW_FILE | EW_EXEC; - - /* For an absolute name we don't use $PATH. */ -! if (mch_isFullName(pat)) -! path = (char_u *)" "; -! else if ((pat[0] == '.' && (vim_ispathsep(pat[1]) - || (pat[1] == '.' && vim_ispathsep(pat[2]))))) - path = (char_u *)"."; - else -*************** -*** 4534,4539 **** ---- 4536,4544 ---- - ga_init2(&ga, (int)sizeof(char *), 10); - for (s = path; *s != NUL; s = e) - { -+ if (*s == ' ') -+ ++s; /* Skip space used for absolute path name. */ -+ - #if defined(MSDOS) || defined(MSWIN) || defined(OS2) - e = vim_strchr(s, ';'); - #else -*** ../vim-7.0.080/src/version.c Sat Sep 2 16:36:46 2006 ---- src/version.c Sat Sep 2 17:54:35 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 81, - /**/ - --- -TALL KNIGHT OF NI: Ni! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.082 b/7.0.082 deleted file mode 100644 index 1eb5c0ec..00000000 --- a/7.0.082 +++ /dev/null @@ -1,103 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.082 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.082 -Problem: Calling a function that waits for input may cause List and - Dictionary arguments to be freed by the garbage collector. -Solution: Keep a list of all arguments to internal functions. -Files: src/eval.c - - -*** ../vim-7.0.081/src/eval.c Sat Sep 2 13:45:01 2006 ---- src/eval.c Sun Sep 3 15:36:10 2006 -*************** -*** 248,253 **** ---- 248,264 ---- - }; - - /* -+ * Struct used to make a list of all arguments used in internal functions. -+ */ -+ typedef struct av_list_item_S av_list_item_T; -+ struct av_list_item_S { -+ av_list_item_T *avl_next; -+ typval_T *avl_argvars; -+ }; -+ -+ av_list_item_T *argvars_list = NULL; -+ -+ /* - * Info used by a ":for" loop. - */ - typedef struct -*************** -*** 6058,6063 **** ---- 6069,6075 ---- - int i; - funccall_T *fc; - int did_free = FALSE; -+ av_list_item_T *av; - #ifdef FEAT_WINDOWS - tabpage_T *tp; - #endif -*************** -*** 6094,6099 **** ---- 6106,6116 ---- - set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); - } - -+ /* arguments for internal functions */ -+ for (av = argvars_list; av != NULL; av = av->avl_next) -+ for (i = 0; av->avl_argvars[i].v_type != VAR_UNKNOWN; ++i) -+ set_ref_in_item(&av->avl_argvars[i], copyID); -+ - /* - * 2. Go through the list of dicts and free items without the copyID. - */ -*************** -*** 7537,7545 **** ---- 7554,7574 ---- - error = ERROR_TOOMANY; - else - { -+ av_list_item_T av_list_item; -+ -+ /* Add the arguments to the "argvars_list" to avoid the -+ * garbage collector not seeing them. This isn't needed -+ * for user functions, because the arguments are available -+ * in the a: hashtab. */ -+ av_list_item.avl_argvars = argvars; -+ av_list_item.avl_next = argvars_list; -+ argvars_list = &av_list_item; -+ - argvars[argcount].v_type = VAR_UNKNOWN; - functions[i].f_func(argvars, rettv); - error = ERROR_NONE; -+ -+ argvars_list = av_list_item.avl_next; - } - } - } -*** ../vim-7.0.081/src/version.c Sat Sep 2 17:58:36 2006 ---- src/version.c Sun Sep 3 15:35:16 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 82, - /**/ - --- -Just think of all the things we haven't thought of yet. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.083 b/7.0.083 deleted file mode 100644 index 9f212f37..00000000 --- a/7.0.083 +++ /dev/null @@ -1,91 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.083 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.083 -Problem: Clicking with the mouse on an item for inputlist() doesn't work - when 'compatible' is set and/or when 'cmdheight' is more than one. - (Christian J. Robinson) -Solution: Also decrement "lines_left" when 'more' isn't set. Set - "cmdline_row" to zero to get all mouse events. -Files: src/message.c, src/misc1.c - - -*** ../vim-7.0.082/src/message.c Sat May 13 13:12:49 2006 ---- src/message.c Sun Sep 3 14:32:00 2006 -*************** -*** 1925,1931 **** - * If screen is completely filled and 'more' is set then wait - * for a character. - */ -! if (p_more && --lines_left == 0 && State != HITRETURN - && !msg_no_more && !exmode_active) - { - #ifdef FEAT_CON_DIALOG ---- 1925,1932 ---- - * If screen is completely filled and 'more' is set then wait - * for a character. - */ -! --lines_left; -! if (p_more && lines_left == 0 && State != HITRETURN - && !msg_no_more && !exmode_active) - { - #ifdef FEAT_CON_DIALOG -*** ../vim-7.0.082/src/misc1.c Tue Aug 15 22:26:04 2006 ---- src/misc1.c Sun Sep 3 16:33:48 2006 -*************** -*** 3196,3209 **** - else - MSG_PUTS(_("Choice number ( cancels): ")); - -! /* Set the state such that text can be selected/copied/pasted. */ - save_cmdline_row = cmdline_row; -! cmdline_row = Rows - 1; - save_State = State; -! if (mouse_used == NULL) -! State = CMDLINE; -! else -! State = NORMAL; - - i = get_number(TRUE, mouse_used); - if (KeyTyped) ---- 3196,3207 ---- - else - MSG_PUTS(_("Choice number ( cancels): ")); - -! /* Set the state such that text can be selected/copied/pasted and we still -! * get mouse events. */ - save_cmdline_row = cmdline_row; -! cmdline_row = 0; - save_State = State; -! State = CMDLINE; - - i = get_number(TRUE, mouse_used); - if (KeyTyped) -*** ../vim-7.0.082/src/version.c Sun Sep 3 15:38:02 2006 ---- src/version.c Sun Sep 3 16:36:58 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 83, - /**/ - --- - "To whoever finds this note - - I have been imprisoned by my father who wishes me to marry - against my will. Please please please please come and rescue me. - I am in the tall tower of Swamp Castle." - SIR LAUNCELOT's eyes light up with holy inspiration. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.084 b/7.0.084 deleted file mode 100644 index 925a0a1a..00000000 --- a/7.0.084 +++ /dev/null @@ -1,221 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.084 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.084 -Problem: The garbage collector may do its work while some Lists or - Dictionaries are used internally, e.g., by ":echo" that runs into - the more-prompt or ":echo [garbagecollect()]". -Solution: Only do garbage collection when waiting for a character at the - toplevel. Let garbagecollect() set a flag that is handled at the - toplevel before waiting for a character. -Files: src/eval.c, src/getchar.c, src/globals.h, src/main.c - - -*** ../vim-7.0.083/src/eval.c Sun Sep 3 15:38:02 2006 ---- src/eval.c Tue Sep 5 11:49:38 2006 -*************** -*** 6074,6079 **** ---- 6074,6083 ---- - tabpage_T *tp; - #endif - -+ /* Only do this once. */ -+ want_garbage_collect = FALSE; -+ may_garbage_collect = FALSE; -+ - /* - * 1. Go through all accessible variables and mark all lists and dicts - * with copyID. -*************** -*** 9636,9642 **** - typval_T *argvars; - typval_T *rettv; - { -! garbage_collect(); - } - - /* ---- 9640,9648 ---- - typval_T *argvars; - typval_T *rettv; - { -! /* This is postponed until we are back at the toplevel, because we may be -! * using Lists and Dicts internally. E.g.: ":echo [garbagecollect()]". */ -! want_garbage_collect = TRUE; - } - - /* -*** ../vim-7.0.083/src/getchar.c Wed May 3 23:19:24 2006 ---- src/getchar.c Tue Sep 5 12:55:54 2006 -*************** -*** 1451,1457 **** - { - updatescript(0); - #ifdef FEAT_EVAL -! garbage_collect(); - #endif - } - ---- 1451,1458 ---- - { - updatescript(0); - #ifdef FEAT_EVAL -! if (may_garbage_collect) -! garbage_collect(); - #endif - } - -*************** -*** 1502,1507 **** ---- 1503,1515 ---- - int i; - #endif - -+ #ifdef FEAT_EVAL -+ /* Do garbage collection when garbagecollect() was called previously and -+ * we are now at the toplevel. */ -+ if (may_garbage_collect && want_garbage_collect) -+ garbage_collect(); -+ #endif -+ - /* - * If a character was put back with vungetc, it was already processed. - * Return it directly. -*************** -*** 1511,1523 **** - c = old_char; - old_char = -1; - mod_mask = old_mod_mask; -- return c; - } -! -! mod_mask = 0x0; -! last_recorded_len = 0; -! for (;;) /* this is done twice if there are modifiers */ - { - if (mod_mask) /* no mapping after modifier has been read */ - { - ++no_mapping; ---- 1519,1531 ---- - c = old_char; - old_char = -1; - mod_mask = old_mod_mask; - } -! else - { -+ mod_mask = 0x0; -+ last_recorded_len = 0; -+ for (;;) /* this is done twice if there are modifiers */ -+ { - if (mod_mask) /* no mapping after modifier has been read */ - { - ++no_mapping; -*************** -*** 1695,1702 **** - } - #endif - -! return c; - } - } - - /* ---- 1703,1722 ---- - } - #endif - -! break; -! } - } -+ -+ #ifdef FEAT_EVAL -+ /* -+ * In the main loop "may_garbage_collect" can be set to do garbage -+ * collection in the first next vgetc(). It's disabled after that to -+ * avoid internally used Lists and Dicts to be freed. -+ */ -+ may_garbage_collect = FALSE; -+ #endif -+ -+ return c; - } - - /* -*** ../vim-7.0.083/src/globals.h Sat Sep 2 14:52:41 2006 ---- src/globals.h Tue Sep 5 11:46:10 2006 -*************** -*** 300,308 **** - #endif - - #ifdef FEAT_EVAL -! EXTERN scid_T current_SID INIT(= 0); /* ID of script being sourced or -! was sourced to define the -! current function. */ - #endif - - #if defined(FEAT_EVAL) || defined(FEAT_SYN_HL) ---- 300,315 ---- - #endif - - #ifdef FEAT_EVAL -! /* Garbage collection can only take place when we are sure there are no Lists -! * or Dictionaries being used internally. This is flagged with -! * "may_garbage_collect" when we are at the toplevel. -! * "want_garbage_collect" is set by the garbagecollect() function, which means -! * we do garbage collection before waiting for a char at the toplevel. */ -! EXTERN int may_garbage_collect INIT(= FALSE); -! EXTERN int want_garbage_collect INIT(= FALSE); -! -! /* ID of script being sourced or was sourced to define the current function. */ -! EXTERN scid_T current_SID INIT(= 0); - #endif - - #if defined(FEAT_EVAL) || defined(FEAT_SYN_HL) -*** ../vim-7.0.083/src/main.c Tue Aug 29 17:28:56 2006 ---- src/main.c Tue Sep 5 12:33:47 2006 -*************** -*** 1130,1135 **** ---- 1130,1145 ---- - */ - update_curswant(); - -+ #ifdef FEAT_EVAL -+ /* -+ * May perform garbage collection when waiting for a character, but -+ * only at the very toplevel. Otherwise we may be using a List or -+ * Dict internally somewhere. -+ * "may_garbage_collect" is reset in vgetc() which is invoked through -+ * do_exmode() and normal_cmd(). -+ */ -+ may_garbage_collect = (!cmdwin && !noexmode); -+ #endif - /* - * If we're invoked as ex, do a round of ex commands. - * Otherwise, get and execute a normal mode command. -*** ../vim-7.0.083/src/version.c Sun Sep 3 16:39:51 2006 ---- src/version.c Tue Sep 5 12:51:28 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 84, - /**/ - --- -LAUNCELOT: At last! A call! A cry of distress ... - (he draws his sword, and turns to CONCORDE) - Concorde! Brave, Concorde ... you shall not have died in vain! -CONCORDE: I'm not quite dead, sir ... - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.085 b/7.0.085 deleted file mode 100644 index d22fa430..00000000 --- a/7.0.085 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.085 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.085 -Problem: When doing "make test" the viminfo file is modified. -Solution: Use another viminfo file after setting 'compatible. -Files: src/testdir/test56.in - - -*** ../vim-7.0.084/src/testdir/test56.in Thu May 19 00:21:20 2005 ---- src/testdir/test56.in Sun Sep 3 16:28:41 2006 -*************** -*** 3,9 **** - STARTTEST - :so small.vim - :" -! :set nocp - :/^start:/+1,/^end:/-1w! Xtest.vim - :source Xtest.vim - _x ---- 3,9 ---- - STARTTEST - :so small.vim - :" -! :set nocp viminfo+=nviminfo - :/^start:/+1,/^end:/-1w! Xtest.vim - :source Xtest.vim - _x -*** ../vim-7.0.084/src/version.c Tue Sep 5 12:57:14 2006 ---- src/version.c Tue Sep 5 13:33:22 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 85, - /**/ - --- -Apologies for taking up the bandwidth with the apology. Anything else I -can apologise for ...... er no can't think of anything, sorry about that. - Andy Hunt (Member of British Olympic Apology Squad) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.086 b/7.0.086 deleted file mode 100644 index 41951f9b..00000000 --- a/7.0.086 +++ /dev/null @@ -1,57 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.086 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.086 -Problem: getqflist() returns entries for pattern and text with the number - zero. Passing these to setqflist() results in the string "0". -Solution: Use an empty string instead of the number zero. -Files: src/quickfix.c - - -*** ../vim-7.0.085/src/quickfix.c Tue Aug 29 17:28:56 2006 ---- src/quickfix.c Mon Sep 4 20:18:48 2006 -*************** -*** 3426,3433 **** - || dict_add_nr_str(dict, "col", (long)qfp->qf_col, NULL) == FAIL - || dict_add_nr_str(dict, "vcol", (long)qfp->qf_viscol, NULL) == FAIL - || dict_add_nr_str(dict, "nr", (long)qfp->qf_nr, NULL) == FAIL -! || dict_add_nr_str(dict, "pattern", 0L, qfp->qf_pattern) == FAIL -! || dict_add_nr_str(dict, "text", 0L, qfp->qf_text) == FAIL - || dict_add_nr_str(dict, "type", 0L, buf) == FAIL - || dict_add_nr_str(dict, "valid", (long)qfp->qf_valid, NULL) == FAIL) - return FAIL; ---- 3426,3435 ---- - || dict_add_nr_str(dict, "col", (long)qfp->qf_col, NULL) == FAIL - || dict_add_nr_str(dict, "vcol", (long)qfp->qf_viscol, NULL) == FAIL - || dict_add_nr_str(dict, "nr", (long)qfp->qf_nr, NULL) == FAIL -! || dict_add_nr_str(dict, "pattern", 0L, -! qfp->qf_pattern == NULL ? (char_u *)"" : qfp->qf_pattern) == FAIL -! || dict_add_nr_str(dict, "text", 0L, -! qfp->qf_text == NULL ? (char_u *)"" : qfp->qf_text) == FAIL - || dict_add_nr_str(dict, "type", 0L, buf) == FAIL - || dict_add_nr_str(dict, "valid", (long)qfp->qf_valid, NULL) == FAIL) - return FAIL; -*** ../vim-7.0.085/src/version.c Tue Sep 5 13:34:30 2006 ---- src/version.c Tue Sep 5 15:35:40 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 86, - /**/ - --- -A vacation is a period of travel during which you find that you -took twice as many clothes and half as much money as you needed. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.087 b/7.0.087 deleted file mode 100644 index 029aef7f..00000000 --- a/7.0.087 +++ /dev/null @@ -1,262 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.087 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.087 -Problem: After ":file fname" and ":saveas fname" the 'autochdir' option - does not take effect. (Yakov Lerner) - Commands for handling 'autochdir' are repeated many times. -Solution: Add the DO_AUTOCHDIR macro and do_autochdir(). Use it for - ":file fname" and ":saveas fname". -Files: src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h, - src/option.c, src/window.c - - -*** ../vim-7.0.086/src/proto/buffer.pro Sun Apr 30 20:25:32 2006 ---- src/proto/buffer.pro Tue Sep 5 16:25:40 2006 -*************** -*** 10,15 **** ---- 10,16 ---- - extern int do_buffer __ARGS((int action, int start, int dir, int count, int forceit)); - extern void set_curbuf __ARGS((buf_T *buf, int action)); - extern void enter_buffer __ARGS((buf_T *buf)); -+ extern void do_autochdir __ARGS((void)); - extern buf_T *buflist_new __ARGS((char_u *ffname, char_u *sfname, linenr_T lnum, int flags)); - extern void free_buf_options __ARGS((buf_T *buf, int free_p_ff)); - extern int buflist_getfile __ARGS((int n, linenr_T lnum, int options, int forceit)); -*** ../vim-7.0.086/src/buffer.c Tue Aug 29 16:52:01 2006 ---- src/buffer.c Tue Sep 5 15:18:19 2006 -*************** -*** 434,445 **** - if (usingNetbeans) - netbeans_file_closed(buf); - #endif -! #ifdef FEAT_AUTOCHDIR -! /* Change directories when the acd option is set on. */ -! if (p_acd && curbuf->b_ffname != NULL -! && vim_chdirfile(curbuf->b_ffname) == OK) -! shorten_fnames(TRUE); -! #endif - - /* - * Remove the buffer from the list. ---- 434,441 ---- - if (usingNetbeans) - netbeans_file_closed(buf); - #endif -! /* Change directories when the 'acd' option is set. */ -! DO_AUTOCHDIR - - /* - * Remove the buffer from the list. -*************** -*** 1422,1433 **** - netbeans_file_activated(curbuf); - #endif - -! #ifdef FEAT_AUTOCHDIR -! /* Change directories when the acd option is set on. */ -! if (p_acd && curbuf->b_ffname != NULL -! && vim_chdirfile(curbuf->b_ffname) == OK) -! shorten_fnames(TRUE); -! #endif - - #ifdef FEAT_KEYMAP - if (curbuf->b_kmap_state & KEYMAP_INIT) ---- 1418,1425 ---- - netbeans_file_activated(curbuf); - #endif - -! /* Change directories when the 'acd' option is set. */ -! DO_AUTOCHDIR - - #ifdef FEAT_KEYMAP - if (curbuf->b_kmap_state & KEYMAP_INIT) -*************** -*** 1435,1440 **** ---- 1427,1444 ---- - #endif - redraw_later(NOT_VALID); - } -+ -+ #if defined(FEAT_AUTOCHDIR) || defined(PROTO) -+ /* -+ * Change to the directory of the current buffer. -+ */ -+ void -+ do_autochdir() -+ { -+ if (curbuf->b_ffname != NULL && vim_chdirfile(curbuf->b_ffname) == OK) -+ shorten_fnames(TRUE); -+ } -+ #endif - - /* - * functions for dealing with the buffer list -*** ../vim-7.0.086/src/ex_cmds.c Tue Aug 29 17:28:56 2006 ---- src/ex_cmds.c Tue Sep 5 15:24:58 2006 -*************** -*** 2458,2463 **** ---- 2458,2465 ---- - #ifdef FEAT_AUTOCMD - apply_autocmds(EVENT_BUFFILEPOST, NULL, NULL, FALSE, curbuf); - #endif -+ /* Change directories when the 'acd' option is set. */ -+ DO_AUTOCHDIR - } - /* print full file name if :cd used */ - fileinfo(FALSE, FALSE, eap->forceit); -*************** -*** 2675,2682 **** - eap, eap->append, eap->forceit, TRUE, FALSE); - - /* After ":saveas fname" reset 'readonly'. */ -! if (eap->cmdidx == CMD_saveas && retval == OK) -! curbuf->b_p_ro = FALSE; - } - - theend: ---- 2677,2689 ---- - eap, eap->append, eap->forceit, TRUE, FALSE); - - /* After ":saveas fname" reset 'readonly'. */ -! if (eap->cmdidx == CMD_saveas) -! { -! if (retval == OK) -! curbuf->b_p_ro = FALSE; -! /* Change directories when the 'acd' option is set. */ -! DO_AUTOCHDIR -! } - } - - theend: -*************** -*** 3547,3557 **** - foldUpdateAll(curwin); - #endif - -! #ifdef FEAT_AUTOCHDIR -! if (p_acd && curbuf->b_ffname != NULL -! && vim_chdirfile(curbuf->b_ffname) == OK) -! shorten_fnames(TRUE); -! #endif - /* - * Careful: open_buffer() and apply_autocmds() may change the current - * buffer and window. ---- 3554,3562 ---- - foldUpdateAll(curwin); - #endif - -! /* Change directories when the 'acd' option is set. */ -! DO_AUTOCHDIR -! - /* - * Careful: open_buffer() and apply_autocmds() may change the current - * buffer and window. -*************** -*** 3718,3729 **** - if (p_im) - need_start_insertmode = TRUE; - -! #ifdef FEAT_AUTOCHDIR -! /* Change directories when the acd option is set on. */ -! if (p_acd && curbuf->b_ffname != NULL -! && vim_chdirfile(curbuf->b_ffname) == OK) -! shorten_fnames(TRUE); -! #endif - - #if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG) - if (gui.in_use && curbuf->b_ffname != NULL) ---- 3723,3730 ---- - if (p_im) - need_start_insertmode = TRUE; - -! /* Change directories when the 'acd' option is set. */ -! DO_AUTOCHDIR - - #if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG) - if (gui.in_use && curbuf->b_ffname != NULL) -*** ../vim-7.0.086/src/macros.h Wed Mar 1 23:00:25 2006 ---- src/macros.h Tue Sep 5 15:15:30 2006 -*************** -*** 276,278 **** ---- 276,284 ---- - # define MB_CHARLEN(p) STRLEN(p) - # define PTR2CHAR(p) ((int)*(p)) - #endif -+ -+ #ifdef FEAT_AUTOCHDIR -+ # define DO_AUTOCHDIR if (p_acd) do_autochdir(); -+ #else -+ # define DO_AUTOCHDIR -+ #endif -*** ../vim-7.0.086/src/option.c Tue Aug 29 17:28:56 2006 ---- src/option.c Tue Sep 5 15:20:04 2006 -*************** -*** 7326,7334 **** - #ifdef FEAT_AUTOCHDIR - else if ((int *)varp == &p_acd) - { -! if (p_acd && curbuf->b_ffname != NULL -! && vim_chdirfile(curbuf->b_ffname) == OK) -! shorten_fnames(TRUE); - } - #endif - ---- 7326,7333 ---- - #ifdef FEAT_AUTOCHDIR - else if ((int *)varp == &p_acd) - { -! /* Change directories when the 'acd' option is set now. */ -! DO_AUTOCHDIR - } - #endif - -*** ../vim-7.0.086/src/window.c Tue Aug 29 17:28:56 2006 ---- src/window.c Tue Sep 5 15:20:35 2006 -*************** -*** 3954,3966 **** - setmouse(); /* in case jumped to/from help buffer */ - #endif - -! #ifdef FEAT_AUTOCHDIR -! /* Change directories when the 'acd' option is set on and after -! * switching windows. */ -! if (p_acd && curbuf->b_ffname != NULL -! && vim_chdirfile(curbuf->b_ffname) == OK) -! shorten_fnames(TRUE); -! #endif - } - - #endif /* FEAT_WINDOWS */ ---- 3954,3961 ---- - setmouse(); /* in case jumped to/from help buffer */ - #endif - -! /* Change directories when the 'acd' option is set. */ -! DO_AUTOCHDIR - } - - #endif /* FEAT_WINDOWS */ -*** ../vim-7.0.086/src/version.c Tue Sep 5 15:36:30 2006 ---- src/version.c Tue Sep 5 15:52:45 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 87, - /**/ - --- -Overflow on /dev/null, please empty the bit bucket. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.088 b/7.0.088 deleted file mode 100644 index ef21db40..00000000 --- a/7.0.088 +++ /dev/null @@ -1,84 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.088 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.088 -Problem: When compiled with Perl the generated prototypes have "extern" - unnecessarily added. -Solution: Remove the "-pipe" argument from PERL_CFLAGS. -Files: src/auto/configure, src/configure.in - - -*** ../vim-7.0.087/src/auto/configure Thu May 4 23:52:03 2006 ---- src/auto/configure Tue Sep 5 17:09:55 2006 -*************** -*** 4014,4020 **** - LDFLAGS=$ldflags_save - if test $perl_ok = yes; then - if test "X$perlcppflags" != "X"; then -! PERL_CFLAGS="$perlcppflags" - fi - if test "X$perlldflags" != "X"; then - LDFLAGS="$perlldflags $LDFLAGS" ---- 4014,4020 ---- - LDFLAGS=$ldflags_save - if test $perl_ok = yes; then - if test "X$perlcppflags" != "X"; then -! PERL_CFLAGS=`echo "$perlcppflags" | sed 's/-pipe //'` - fi - if test "X$perlldflags" != "X"; then - LDFLAGS="$perlldflags $LDFLAGS" -*** ../vim-7.0.087/src/configure.in Thu May 4 23:52:32 2006 ---- src/configure.in Tue Sep 5 17:09:50 2006 -*************** -*** 508,514 **** - LDFLAGS=$ldflags_save - if test $perl_ok = yes; then - if test "X$perlcppflags" != "X"; then -! PERL_CFLAGS="$perlcppflags" - fi - if test "X$perlldflags" != "X"; then - LDFLAGS="$perlldflags $LDFLAGS" ---- 508,515 ---- - LDFLAGS=$ldflags_save - if test $perl_ok = yes; then - if test "X$perlcppflags" != "X"; then -! dnl remove -pipe, it confuses cproto -! PERL_CFLAGS=`echo "$perlcppflags" | sed 's/-pipe //'` - fi - if test "X$perlldflags" != "X"; then - LDFLAGS="$perlldflags $LDFLAGS" -*** ../vim-7.0.087/src/version.c Tue Sep 5 16:29:38 2006 ---- src/version.c Tue Sep 5 17:27:33 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 88, - /**/ - --- - ** Hello and Welcome to the Psychiatric Hotline ** -If you are obsessive-compulsive, please press 1 repeatedly. -If you are co-dependent, please ask someone to press 2. -If you have multiple personalities, please press 3, 4, 5 and 6. -If you are paranoid-delusional, we know who you are and what you want - - just stay on the line so we can trace the call. -If you are schizophrenic, listen carefully and a little voice will - tell you which number to press next. -If you are manic-depressive, it doesn't matter which number you press - - no one will answer. -If you suffer from panic attacks, push every button you can find. -If you are sane, please hold on - we have the rest of humanity on the - other line and they desparately want to ask you a few questions. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.089 b/7.0.089 deleted file mode 100644 index f3142863..00000000 --- a/7.0.089 +++ /dev/null @@ -1,97 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.089 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.089 -Problem: "ga" does not work properly for a non-Unicode multi-byte encoding. -Solution: Only check for composing chars for utf-8. (Taro Muraoka) -Files: src/ex_cmds.c - - -*** ../vim-7.0.088/src/ex_cmds.c Tue Sep 5 16:29:38 2006 ---- src/ex_cmds.c Tue Sep 5 18:12:41 2006 -*************** -*** 95,101 **** - _("<%s>%s%s %d, Hex %02x, Octal %03o"), - transchar(c), buf1, buf2, c, c, c); - #ifdef FEAT_MBYTE -! c = cc[ci++]; - #endif - } - ---- 95,104 ---- - _("<%s>%s%s %d, Hex %02x, Octal %03o"), - transchar(c), buf1, buf2, c, c, c); - #ifdef FEAT_MBYTE -! if (enc_utf8) -! c = cc[ci++]; -! else -! c = 0; - #endif - } - -*************** -*** 108,114 **** - if (len > 0) - IObuff[len++] = ' '; - IObuff[len++] = '<'; -! if (utf_iscomposing(c) - # ifdef USE_GUI - && !gui.in_use - # endif ---- 111,117 ---- - if (len > 0) - IObuff[len++] = ' '; - IObuff[len++] = '<'; -! if (enc_utf8 && utf_iscomposing(c) - # ifdef USE_GUI - && !gui.in_use - # endif -*************** -*** 120,126 **** - : _("> %d, Hex %08x, Octal %o"), c, c, c); - if (ci == MAX_MCO) - break; -! c = cc[ci++]; - } - #endif - ---- 123,132 ---- - : _("> %d, Hex %08x, Octal %o"), c, c, c); - if (ci == MAX_MCO) - break; -! if (enc_utf8) -! c = cc[ci++]; -! else -! c = 0; - } - #endif - -*** ../vim-7.0.088/src/version.c Tue Sep 5 17:30:25 2006 ---- src/version.c Tue Sep 5 18:19:42 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 89, - /**/ - --- - [clop clop] -GUARD #1: Halt! Who goes there? -ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of - Camelot. King of the Britons, defeator of the Saxons, sovereign of - all England! -GUARD #1: Pull the other one! - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.090 b/7.0.090 deleted file mode 100644 index 413d59bc..00000000 --- a/7.0.090 +++ /dev/null @@ -1,81 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.090 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.090 -Problem: Cancelling the conform() dialog on the console with Esc requires - typing it twice. (Benji Fisher) -Solution: When the start of an escape sequence is found use 'timeoutlen' or - 'ttimeoutlen'. -Files: src/misc1.c - - -*** ../vim-7.0.089/src/misc1.c Sun Sep 3 16:39:51 2006 ---- src/misc1.c Tue Sep 5 20:31:43 2006 -*************** -*** 3016,3021 **** ---- 3016,3022 ---- - int len = 0; - int n; - int save_mapped_ctrl_c = mapped_ctrl_c; -+ int waited = 0; - - mapped_ctrl_c = FALSE; /* mappings are not used here */ - for (;;) -*************** -*** 3034,3044 **** - /* Replace zero and CSI by a special key code. */ - n = fix_input_buffer(buf + len, n, FALSE); - len += n; - } - -! /* incomplete termcode: get more characters */ -! if ((n = check_termcode(1, buf, len)) < 0) - continue; - /* found a termcode: adjust length */ - if (n > 0) - len = n; ---- 3035,3050 ---- - /* Replace zero and CSI by a special key code. */ - n = fix_input_buffer(buf + len, n, FALSE); - len += n; -+ waited = 0; - } -+ else if (len > 0) -+ ++waited; /* keep track of the waiting time */ - -! /* Incomplete termcode and not timed out yet: get more characters */ -! if ((n = check_termcode(1, buf, len)) < 0 -! && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm))) - continue; -+ - /* found a termcode: adjust length */ - if (n > 0) - len = n; -*** ../vim-7.0.089/src/version.c Tue Sep 5 18:28:45 2006 ---- src/version.c Tue Sep 5 20:49:01 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 90, - /**/ - --- -GUARD #1: Where'd you get the coconut? -ARTHUR: We found them. -GUARD #1: Found them? In Mercea? The coconut's tropical! -ARTHUR: What do you mean? -GUARD #1: Well, this is a temperate zone. - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.091 b/7.0.091 deleted file mode 100644 index 46aad92e..00000000 --- a/7.0.091 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.091 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.091 -Problem: Using winrestview() while 'showcmd' is set causes the cursor to be - displayed in the wrong position. (Yakov Lerner) -Solution: Set the window topline properly. -Files: src/eval.c - - -*** ../vim-7.0.090/src/eval.c Tue Sep 5 12:57:14 2006 ---- src/eval.c Tue Sep 5 21:21:37 2006 -*************** -*** 16225,16231 **** - curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant"); - curwin->w_set_curswant = FALSE; - -! curwin->w_topline = get_dict_number(dict, (char_u *)"topline"); - #ifdef FEAT_DIFF - curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill"); - #endif ---- 16225,16231 ---- - curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant"); - curwin->w_set_curswant = FALSE; - -! set_topline(curwin, get_dict_number(dict, (char_u *)"topline")); - #ifdef FEAT_DIFF - curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill"); - #endif -*** ../vim-7.0.090/src/version.c Tue Sep 5 20:56:11 2006 ---- src/version.c Wed Sep 6 22:12:31 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 91, - /**/ - --- -Shit makes the flowers grow and that's beautiful - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.092 b/7.0.092 deleted file mode 100644 index c247eeba..00000000 --- a/7.0.092 +++ /dev/null @@ -1,104 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.092 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.092 (after 7.0.082 and 7.0.084) -Problem: The list of internal function arguments is obsolete now that - garbage collection is only done at the toplevel. -Solution: Remove the list of all arguments to internal functions. -Files: src/eval.c - - -*** ../vim-7.0.091/src/eval.c Wed Sep 6 22:14:42 2006 ---- src/eval.c Sat Sep 9 12:00:28 2006 -*************** -*** 248,264 **** - }; - - /* -- * Struct used to make a list of all arguments used in internal functions. -- */ -- typedef struct av_list_item_S av_list_item_T; -- struct av_list_item_S { -- av_list_item_T *avl_next; -- typval_T *avl_argvars; -- }; -- -- av_list_item_T *argvars_list = NULL; -- -- /* - * Info used by a ":for" loop. - */ - typedef struct ---- 248,253 ---- -*************** -*** 6069,6075 **** - int i; - funccall_T *fc; - int did_free = FALSE; -- av_list_item_T *av; - #ifdef FEAT_WINDOWS - tabpage_T *tp; - #endif ---- 6058,6063 ---- -*************** -*** 6110,6120 **** - set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); - } - -- /* arguments for internal functions */ -- for (av = argvars_list; av != NULL; av = av->avl_next) -- for (i = 0; av->avl_argvars[i].v_type != VAR_UNKNOWN; ++i) -- set_ref_in_item(&av->avl_argvars[i], copyID); -- - /* - * 2. Go through the list of dicts and free items without the copyID. - */ ---- 6098,6103 ---- -*************** -*** 7558,7578 **** - error = ERROR_TOOMANY; - else - { -- av_list_item_T av_list_item; -- -- /* Add the arguments to the "argvars_list" to avoid the -- * garbage collector not seeing them. This isn't needed -- * for user functions, because the arguments are available -- * in the a: hashtab. */ -- av_list_item.avl_argvars = argvars; -- av_list_item.avl_next = argvars_list; -- argvars_list = &av_list_item; -- - argvars[argcount].v_type = VAR_UNKNOWN; - functions[i].f_func(argvars, rettv); - error = ERROR_NONE; -- -- argvars_list = av_list_item.avl_next; - } - } - } ---- 7541,7549 ---- -*** ../vim-7.0.091/src/version.c Wed Sep 6 22:14:42 2006 ---- src/version.c Sat Sep 9 12:04:55 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 92, - /**/ - --- -"Hegel was right when he said that we learn from history that man can -never learn anything from history." (George Bernard Shaw) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.093 b/7.0.093 deleted file mode 100644 index 953e5f8a..00000000 --- a/7.0.093 +++ /dev/null @@ -1,74 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.093 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.093 -Problem: The matchparen plugin can't handle a 'matchpairs' value where a - colon is matched. -Solution: Change the split() that is used to change 'matchpairs' into a - List. -Files: runtime/plugin/matchparen.vim - - -*** ../vim-7.0.092/runtime/plugin/matchparen.vim Wed Sep 6 22:13:48 2006 ---- runtime/plugin/matchparen.vim Sat Sep 9 13:35:54 2006 -*************** -*** 1,6 **** - " Vim plugin for showing matching parens - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Jun 26 - - " Exit quickly when: - " - this plugin was already loaded (or disabled) ---- 1,6 ---- - " Vim plugin for showing matching parens - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Sep 09 - - " Exit quickly when: - " - this plugin was already loaded (or disabled) -*************** -*** 44,50 **** - let before = 0 - - let c = getline(c_lnum)[c_col - 1] -! let plist = split(&matchpairs, ':\|,') - let i = index(plist, c) - if i < 0 - " not found, in Insert mode try character before the cursor ---- 44,50 ---- - let before = 0 - - let c = getline(c_lnum)[c_col - 1] -! let plist = split(&matchpairs, '.\zs[:,]') - let i = index(plist, c) - if i < 0 - " not found, in Insert mode try character before the cursor -*** ../vim-7.0.092/src/version.c Sat Sep 9 12:05:39 2006 ---- src/version.c Sat Sep 9 13:29:58 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 93, - /**/ - --- -BLACK KNIGHT: I move for no man. -ARTHUR: So be it! - [hah] [parry thrust] - [ARTHUR chops the BLACK KNIGHT's left arm off] -ARTHUR: Now stand aside, worthy adversary. -BLACK KNIGHT: 'Tis but a scratch. - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.094 b/7.0.094 deleted file mode 100644 index c45a9bcf..00000000 --- a/7.0.094 +++ /dev/null @@ -1,73 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.094 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.094 -Problem: When a hidden buffer is made the current buffer and another file - edited later, the file message will still be given. Using - ":silent" also doesn't prevent the file message. (Marvin Renich) -Solution: Reset the need_fileinfo flag when reading a file. Don't set - need_fileinfo when msg_silent is set. -Files: src/buffer.c, src/fileio.c - - -*** ../vim-7.0.093/src/buffer.c Tue Sep 5 16:29:38 2006 ---- src/buffer.c Thu Sep 7 21:43:41 2006 -*************** -*** 1386,1392 **** - } - else - { -! need_fileinfo = TRUE; /* display file info after redraw */ - (void)buf_check_timestamp(curbuf, FALSE); /* check if file changed */ - #ifdef FEAT_AUTOCMD - curwin->w_topline = 1; ---- 1386,1393 ---- - } - else - { -! if (!msg_silent) -! need_fileinfo = TRUE; /* display file info after redraw */ - (void)buf_check_timestamp(curbuf, FALSE); /* check if file changed */ - #ifdef FEAT_AUTOCMD - curwin->w_topline = 1; -*** ../vim-7.0.093/src/fileio.c Tue Aug 29 18:16:37 2006 ---- src/fileio.c Wed Sep 6 22:54:19 2006 -*************** -*** 316,321 **** ---- 316,324 ---- - * display the line. */ - ex_no_reprint = TRUE; - -+ /* don't display the file info for another buffer now */ -+ need_fileinfo = FALSE; -+ - /* - * For Unix: Use the short file name whenever possible. - * Avoids problems with networks and when directory names are changed. -*** ../vim-7.0.093/src/version.c Sat Sep 9 13:36:51 2006 ---- src/version.c Sat Sep 9 14:19:04 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 94, - /**/ - --- -ARTHUR: A scratch? Your arm's off! -BLACK KNIGHT: No, it isn't. -ARTHUR: Well, what's that then? -BLACK KNIGHT: I've had worse. - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.095_patched b/7.0.095_patched deleted file mode 100644 index 1ed06a12..00000000 --- a/7.0.095_patched +++ /dev/null @@ -1,70 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.095 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.095 -Problem: The Greek tutor is not available in utf-8. "el" is used for the - language, only "gr" for the country is recognized. -Solution: Add the utf-8 Greek tutor. Use it for conversion to iso-8859-7 - and cp737. (Lefteris Dimitroulakis) -Files: runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8, - runtime/tutor/tutor.vim - - -*** ../vim-7.0.094/runtime/tutor/Makefile Sat Sep 2 14:54:17 2006 ---- runtime/tutor/Makefile Sun Sep 10 11:56:54 2006 -*************** -*** 7,13 **** - - all: tutor.ja.sjis tutor.ja.euc \ - tutor.ko.euc \ -! tutor.ru tutor.ru.cp1251 - - tutor.ja.sjis: tutor.ja.utf-8 - nkf -WXs tutor.ja.utf-8 > tutor.ja.sjis ---- 7,14 ---- - - all: tutor.ja.sjis tutor.ja.euc \ - tutor.ko.euc \ -! tutor.ru tutor.ru.cp1251 \ -! tutor.gr tutor.gr.cp737 - - tutor.ja.sjis: tutor.ja.utf-8 - nkf -WXs tutor.ja.utf-8 > tutor.ja.sjis -*************** -*** 23,25 **** ---- 24,32 ---- - - tutor.ru.cp1251: tutor.ru.utf-8 - iconv -f UTF-8 -t cp1251 tutor.ru.utf-8 > tutor.ru.cp1251 -+ -+ tutor.gr: tutor.gr.utf-8 -+ iconv -f UTF-8 -t ISO-8859-7 tutor.gr.utf-8 > tutor.gr -+ -+ tutor.gr.cp737: tutor.gr.utf-8 -+ iconv -f UTF-8 -t cp737 tutor.gr.utf-8 > tutor.gr.cp737 -*** ../vim-7.0.094/src/version.c Sat Sep 9 14:51:43 2006 ---- src/version.c Sun Sep 10 13:19:23 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 95, - /**/ - --- -FATHER: You killed eight wedding guests in all! -LAUNCELOT: Er, Well ... the thing is ... I thought your son was a lady. -FATHER: I can understand that. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.096 b/7.0.096 deleted file mode 100644 index 755b78ea..00000000 --- a/7.0.096 +++ /dev/null @@ -1,82 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.096 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.096 -Problem: taglist() returns the filename relative to the tags file, while - the directory of the tags file is unknown. (Hari Krishna Dara) -Solution: Expand the file name. (Yegappan Lakshmanan) -Files: src/tag.c - - -*** ../vim-7.0.095/src/tag.c Thu Apr 27 23:40:34 2006 ---- src/tag.c Sun Sep 10 13:42:41 2006 -*************** -*** 3787,3792 **** ---- 3787,3793 ---- - { - int num_matches, i, ret; - char_u **matches, *p; -+ char_u *full_fname; - dict_T *dict; - tagptrs_T tp; - long is_static; -*************** -*** 3809,3823 **** - if (list_append_dict(list, dict) == FAIL) - ret = FAIL; - - if (add_tag_field(dict, "name", tp.tagname, tp.tagname_end) == FAIL -! || add_tag_field(dict, "filename", tp.fname, -! tp.fname_end) == FAIL - || add_tag_field(dict, "cmd", tp.command, - tp.command_end) == FAIL - || add_tag_field(dict, "kind", tp.tagkind, - tp.tagkind_end) == FAIL - || dict_add_nr_str(dict, "static", is_static, NULL) == FAIL) - ret = FAIL; - - if (tp.command_end != NULL) - { ---- 3810,3827 ---- - if (list_append_dict(list, dict) == FAIL) - ret = FAIL; - -+ full_fname = tag_full_fname(&tp); - if (add_tag_field(dict, "name", tp.tagname, tp.tagname_end) == FAIL -! || add_tag_field(dict, "filename", full_fname, -! NULL) == FAIL - || add_tag_field(dict, "cmd", tp.command, - tp.command_end) == FAIL - || add_tag_field(dict, "kind", tp.tagkind, - tp.tagkind_end) == FAIL - || dict_add_nr_str(dict, "static", is_static, NULL) == FAIL) - ret = FAIL; -+ -+ vim_free(full_fname); - - if (tp.command_end != NULL) - { -*** ../vim-7.0.095/src/version.c Sun Sep 10 13:22:26 2006 ---- src/version.c Sun Sep 10 13:52:01 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 96, - /**/ - --- -The early bird gets the worm. If you want something else for -breakfast, get up later. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.097 b/7.0.097 deleted file mode 100644 index c16ba933..00000000 --- a/7.0.097 +++ /dev/null @@ -1,113 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.097 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.097 -Problem: ":tabclose N" that closes another tab page does not remove the tab - pages line. Same problem when using the mouse. -Solution: Adjust the tab pages line when needed in tabpage_close_other(). -Files: src/ex_docmd.c - - -*** ../vim-7.0.096/src/ex_docmd.c Tue Aug 29 17:28:56 2006 ---- src/ex_docmd.c Sun Sep 10 15:47:33 2006 -*************** -*** 6296,6302 **** - exarg_T *eap; - { - tabpage_T *tp; -- int h = tabline_height(); - - # ifdef FEAT_CMDWIN - if (cmdwin_type != 0) ---- 6296,6301 ---- -*************** -*** 6328,6336 **** - ) - tabpage_close(eap->forceit); - } -- -- if (h != tabline_height()) -- shell_new_rows(); - } - - /* ---- 6327,6332 ---- -*************** -*** 6342,6348 **** - { - tabpage_T *tp; - int done; -- int h = tabline_height(); - - # ifdef FEAT_CMDWIN - if (cmdwin_type != 0) ---- 6338,6343 ---- -*************** -*** 6371,6379 **** - break; - } - } -- -- if (h != tabline_height()) -- shell_new_rows(); - } - - /* ---- 6366,6371 ---- -*************** -*** 6397,6402 **** ---- 6389,6396 ---- - /* - * Close tab page "tp", which is not the current tab page. - * Note that autocommands may make "tp" invalid. -+ * Also takes care of the tab pages line disappearing when closing the -+ * last-but-one tab page. - */ - void - tabpage_close_other(tp, forceit) -*************** -*** 6405,6410 **** ---- 6399,6405 ---- - { - int done = 0; - win_T *wp; -+ int h = tabline_height(); - - /* Limit to 1000 windows, autocommands may add a window while we close - * one. OK, so I'm paranoid... */ -*************** -*** 6418,6424 **** ---- 6413,6422 ---- - if (!valid_tabpage(tp) || tp->tp_firstwin == wp) - break; - } -+ - redraw_tabline = TRUE; -+ if (h != tabline_height()) -+ shell_new_rows(); - } - - /* -*** ../vim-7.0.096/src/version.c Sun Sep 10 13:56:06 2006 ---- src/version.c Sun Sep 10 15:44:24 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 97, - /**/ - --- -Advice to worms: Sleep late. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.098 b/7.0.098 deleted file mode 100644 index c970faa4..00000000 --- a/7.0.098 +++ /dev/null @@ -1,71 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.098 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.098 -Problem: Redirecting command output in a cmdline completion function - doesn't work. (Hari Krishna Dara) -Solution: Enable redirection when redirection is started. -Files: src/ex_docmd.c, src/ex_getln.c - - -*** ../vim-7.0.097/src/ex_docmd.c Sun Sep 10 15:50:32 2006 ---- src/ex_docmd.c Sun Sep 10 20:59:46 2006 -*************** -*** 8422,8427 **** ---- 8422,8436 ---- - else - EMSG2(_(e_invarg2), eap->arg); - } -+ -+ /* Make sure redirection is not off. Can happen for cmdline completion -+ * that indirectly invokes a command to catch its output. */ -+ if (redir_fd != NULL -+ #ifdef FEAT_EVAL -+ || redir_reg || redir_vname -+ #endif -+ ) -+ redir_off = FALSE; - } - - /* -*** ../vim-7.0.097/src/ex_getln.c Sat Sep 2 17:58:36 2006 ---- src/ex_getln.c Sun Sep 10 21:04:57 2006 -*************** -*** 324,329 **** ---- 324,332 ---- - */ - for (;;) - { -+ redir_off = TRUE; /* Don't redirect the typed command. -+ Repeated, because a ":redir" inside -+ completion may switch it on. */ - #ifdef USE_ON_FLY_SCROLL - dont_scroll = FALSE; /* allow scrolling here */ - #endif -*** ../vim-7.0.097/src/version.c Sun Sep 10 15:50:32 2006 ---- src/version.c Sun Sep 10 20:58:17 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 98, - /**/ - --- -GUEST: He's killed the best man! -SECOND GUEST: (holding a limp WOMAN) He's killed my auntie. -FATHER: No, please! This is supposed to be a happy occasion! Let's - not bicker and argue about who killed who ... - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.099 b/7.0.099 deleted file mode 100644 index c51ad0d9..00000000 --- a/7.0.099 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.099 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.099 -Problem: GUI: When the popup menu is visible using the scrollbar messes up - the display. -Solution: Disallow scrolling the current window. Redraw the popup menu - after scrolling another window. -Files: src/gui.c - - -*** ../vim-7.0.098/src/gui.c Tue Aug 29 18:16:37 2006 ---- src/gui.c Sun Sep 10 21:28:57 2006 -*************** -*** 3734,3739 **** ---- 3734,3745 ---- - if (dont_scroll || input_available()) - return; - #endif -+ #ifdef FEAT_INS_EXPAND -+ /* Disallow scrolling the current window when the completion popup menu is -+ * visible. */ -+ if ((sb->wp == NULL || sb->wp == curwin) && pum_visible()) -+ return; -+ #endif - - #ifdef FEAT_RIGHTLEFT - if (sb->wp == NULL && curwin->w_p_rl) -*************** -*** 4207,4212 **** ---- 4213,4224 ---- - redraw_win_later(wp, VALID); - updateWindow(wp); /* update window, status line, and cmdline */ - } -+ -+ #ifdef FEAT_INS_EXPAND -+ /* May need to redraw the popup menu. */ -+ if (pum_visible()) -+ pum_redraw(); -+ #endif - - return (wp == curwin && !equalpos(curwin->w_cursor, old_cursor)); - } -*** ../vim-7.0.098/src/version.c Sun Sep 10 21:05:39 2006 ---- src/version.c Sun Sep 10 21:35:27 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 99, - /**/ - --- -FATHER: We are here today to witness the union of two young people in the - joyful bond of the holy wedlock. Unfortunately, one of them, my son - Herbert, has just fallen to his death. - [Murmurs from CROWD; the BRIDE smiles with relief, coughs.] - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.100 b/7.0.100 deleted file mode 100644 index 222e9786..00000000 --- a/7.0.100 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.100 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.100 -Problem: "zug" may report the wrong filename. (Lawrence Kesteloot) -Solution: Call home_replace() to fill NameBuff[]. -Files: src/spell.c - - -*** ../vim-7.0.099/src/spell.c Tue Aug 29 17:28:56 2006 ---- src/spell.c Mon Sep 11 20:45:35 2006 -*************** -*** 1483,1489 **** - else if ((mode == FIND_COMPOUND || mode == FIND_KEEPCOMPOUND - || !word_ends)) - { -! /* If there is no flag or the word is shorter than - * COMPOUNDMIN reject it quickly. - * Makes you wonder why someone puts a compound flag on a word - * that's too short... Myspell compatibility requires this ---- 1483,1489 ---- - else if ((mode == FIND_COMPOUND || mode == FIND_KEEPCOMPOUND - || !word_ends)) - { -! /* If there is no compound flag or the word is shorter than - * COMPOUNDMIN reject it quickly. - * Makes you wonder why someone puts a compound flag on a word - * that's too short... Myspell compatibility requires this -*************** -*** 9336,9342 **** ---- 9336,9345 ---- - { - fputc('#', fd); - if (undo) -+ { -+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE); - smsg((char_u *)_("Word removed from %s"), NameBuff); -+ } - } - fseek(fd, fpos_next, SEEK_SET); - } -*** ../vim-7.0.099/src/version.c Sun Sep 10 21:38:48 2006 ---- src/version.c Mon Sep 11 21:36:13 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 100, - /**/ - --- -Be nice to your kids... they'll be the ones choosing your nursing home. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.101 b/7.0.101 deleted file mode 100644 index bc1d1cd2..00000000 --- a/7.0.101 +++ /dev/null @@ -1,89 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.101 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.101 -Problem: When the "~/.vim/spell" directory does not exist "zg" may create - a wrong directory. "zw" doesn't work. -Solution: Use the directory of the file name instead of NameBuff. For "zw" - not only remove a good word but also add the word with "!". -Files: src/spell.c - - -*** ../vim-7.0.100/src/spell.c Mon Sep 11 21:37:27 2006 ---- src/spell.c Tue Sep 12 20:21:01 2006 -*************** -*** 9347,9366 **** - fclose(fd); - } - } -! else - { - fd = mch_fopen((char *)fname, "a"); - if (fd == NULL && new_spf) - { - /* We just initialized the 'spellfile' option and can't open the - * file. We may need to create the "spell" directory first. We - * already checked the runtime directory is writable in - * init_spellfile(). */ -! if (!dir_of_file_exists(fname)) - { - /* The directory doesn't exist. Try creating it and opening - * the file again. */ -! vim_mkdir(NameBuff, 0755); - fd = mch_fopen((char *)fname, "a"); - } - } ---- 9347,9373 ---- - fclose(fd); - } - } -! -! if (!undo) - { - fd = mch_fopen((char *)fname, "a"); - if (fd == NULL && new_spf) - { -+ char_u *p; -+ - /* We just initialized the 'spellfile' option and can't open the - * file. We may need to create the "spell" directory first. We - * already checked the runtime directory is writable in - * init_spellfile(). */ -! if (!dir_of_file_exists(fname) && (p = gettail_sep(fname)) != fname) - { -+ int c = *p; -+ - /* The directory doesn't exist. Try creating it and opening - * the file again. */ -! *p = NUL; -! vim_mkdir(fname, 0755); -! *p = c; - fd = mch_fopen((char *)fname, "a"); - } - } -*** ../vim-7.0.100/src/version.c Mon Sep 11 21:37:27 2006 ---- src/version.c Tue Sep 12 21:47:21 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 101, - /**/ - --- -ARTHUR: Did you say shrubberies? -ROGER: Yes. Shrubberies are my trade. I am a shrubber. My name is Roger - the Shrubber. I arrange, design, and sell shrubberies. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.102 b/7.0.102 deleted file mode 100644 index ae27fcb1..00000000 --- a/7.0.102 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.102 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.102 -Problem: Redrawing cmdline is not correct when using SCIM. -Solution: Don't call im_get_status(). (Yukihiro Nakadaira) -Files: src/ex_getln.c - - -*** ../vim-7.0.101/src/ex_getln.c Sun Sep 10 21:05:39 2006 ---- src/ex_getln.c Tue Sep 12 20:52:51 2006 -*************** -*** 2363,2369 **** - { - if ((State & CMDLINE) - && xic != NULL -! && im_get_status() - && !p_imdisable - && im_is_preediting()) - { ---- 2363,2369 ---- - { - if ((State & CMDLINE) - && xic != NULL -! /* && im_get_status() doesn't work when using SCIM */ - && !p_imdisable - && im_is_preediting()) - { -*** ../vim-7.0.101/src/version.c Tue Sep 12 22:24:48 2006 ---- src/version.c Thu Sep 14 10:23:45 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 102, - /**/ - --- -TIM: That is not an ordinary rabbit ... 'tis the most foul cruel and - bad-tempered thing you ever set eyes on. -ROBIN: You tit. I soiled my armour I was so scared! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.103 b/7.0.103 deleted file mode 100644 index 975d6486..00000000 --- a/7.0.103 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.103 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.103 (after 7.0.101) -Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) -Solution: Init variable. -Files: src/spell.c - - -*** ../vim-7.0.102/src/spell.c Tue Sep 12 22:24:48 2006 ---- src/spell.c Wed Sep 13 20:46:22 2006 -*************** -*** 9251,9257 **** - 'spellfile' */ - int undo; /* TRUE for "zug", "zuG", "zuw" and "zuW" */ - { -! FILE *fd; - buf_T *buf = NULL; - int new_spf = FALSE; - char_u *fname; ---- 9251,9257 ---- - 'spellfile' */ - int undo; /* TRUE for "zug", "zuG", "zuw" and "zuW" */ - { -! FILE *fd = NULL; - buf_T *buf = NULL; - int new_spf = FALSE; - char_u *fname; -*** ../vim-7.0.102/src/version.c Thu Sep 14 10:25:34 2006 ---- src/version.c Thu Sep 14 10:47:39 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 103, - /**/ - --- -ARTHUR: Go on, Bors, chop its head off. -BORS: Right. Silly little bleeder. One rabbit stew coming up. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.104 b/7.0.104 deleted file mode 100644 index 55b3d440..00000000 --- a/7.0.104 +++ /dev/null @@ -1,89 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.104 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.104 -Problem: The CursorHoldI event only triggers once in Insert mode. It also - triggers after CTRL-V and other two-key commands. -Solution: Set "did_cursorhold" before getting a second key. Reset - "did_cursorhold" after handling a command. -Files: src/edit.c, src/fileio.c - - -*** ../vim-7.0.103/src/edit.c Tue Aug 29 18:36:55 2006 ---- src/edit.c Tue Sep 12 21:12:10 2006 -*************** -*** 707,712 **** ---- 707,717 ---- - lastc = c; /* remember previous char for CTRL-D */ - c = safe_vgetc(); - -+ #ifdef FEAT_AUTOCMD -+ /* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */ -+ did_cursorhold = TRUE; -+ #endif -+ - #ifdef FEAT_RIGHTLEFT - if (p_hkmap && KeyTyped) - c = hkmap(c); /* Hebrew mode mapping */ -*************** -*** 1388,1393 **** ---- 1393,1404 ---- - #endif - break; - } /* end of switch (c) */ -+ -+ #ifdef FEAT_AUTOCMD -+ /* If typed something may trigger CursorHoldI again. */ -+ if (c != K_CURSORHOLD) -+ did_cursorhold = FALSE; -+ #endif - - /* If the cursor was moved we didn't just insert a space */ - if (arrow_used) -*** ../vim-7.0.103/src/fileio.c Sat Sep 9 14:51:43 2006 ---- src/fileio.c Tue Sep 12 20:58:55 2006 -*************** -*** 8289,8295 **** - { - int state; - -! if (!did_cursorhold && has_cursorhold() && !Recording) - { - state = get_real_state(); - if (state == NORMAL_BUSY || (state & INSERT) != 0) ---- 8289,8299 ---- - { - int state; - -! if (!did_cursorhold && has_cursorhold() && !Recording -! #ifdef FEAT_INS_EXPAND -! && !ins_compl_active() -! #endif -! ) - { - state = get_real_state(); - if (state == NORMAL_BUSY || (state & INSERT) != 0) -*** ../vim-7.0.103/src/version.c Thu Sep 14 10:48:00 2006 ---- src/version.c Thu Sep 14 11:05:33 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 104, - /**/ - --- -A hamburger walks into a bar, and the bartender says: "I'm sorry, -but we don't serve food here." - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.105 b/7.0.105 deleted file mode 100644 index 31c29396..00000000 --- a/7.0.105 +++ /dev/null @@ -1,50 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.105 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.105 -Problem: When using incremental search the statusline ruler isn't updated. - (Christoph Koegl) -Solution: Update the statusline when it contains the ruler. -Files: src/ex_getln.c - - -*** ../vim-7.0.104/src/ex_getln.c Thu Sep 14 10:25:34 2006 ---- src/ex_getln.c Thu Sep 14 10:42:24 2006 -*************** -*** 1756,1761 **** ---- 1756,1766 ---- - end_pos = curwin->w_cursor; /* shutup gcc 4 */ - - validate_cursor(); -+ # ifdef FEAT_WINDOWS -+ /* May redraw the status line to show the cursor position. */ -+ if (p_ru && curwin->w_status_height > 0) -+ curwin->w_redr_status = TRUE; -+ # endif - - save_cmdline(&save_ccline); - update_screen(SOME_VALID); -*** ../vim-7.0.104/src/version.c Thu Sep 14 11:07:08 2006 ---- src/version.c Thu Sep 14 11:25:37 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 105, - /**/ - --- -An indication you must be a manager: -You feel sorry for Dilbert's boss. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.108 b/7.0.108 deleted file mode 100644 index 768ddb5f..00000000 --- a/7.0.108 +++ /dev/null @@ -1,88 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.108 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.108 (extra) -Problem: Amiga: Compilation problem. -Solution: Have mch_mkdir() return a failure flag. (Willy Catteau) -Files: src/os_amiga.c, src/proto/os_amiga.pro - - -*** ../vim-7.0.107/src/os_amiga.c Tue Mar 7 23:38:27 2006 ---- src/os_amiga.c Thu Sep 14 21:29:03 2006 -*************** -*** 799,805 **** - /* - * Create directory "name". - */ -! void - mch_mkdir(name) - char_u *name; - { ---- 799,805 ---- - /* - * Create directory "name". - */ -! int - mch_mkdir(name) - char_u *name; - { -*************** -*** 807,813 **** ---- 807,817 ---- - - lock = CreateDir(name); - if (lock != NULL) -+ { - UnLock(lock); -+ return 0; -+ } -+ return -1; - } - - /* -*** ../vim-7.0.107/src/proto/os_amiga.pro Fri Mar 24 22:41:43 2006 ---- src/proto/os_amiga.pro Thu Sep 14 21:29:32 2006 -*************** -*** 25,31 **** - extern int mch_setperm __ARGS((char_u *name, long perm)); - extern void mch_hide __ARGS((char_u *name)); - extern int mch_isdir __ARGS((char_u *name)); -! extern void mch_mkdir __ARGS((char_u *name)); - extern int mch_can_exe __ARGS((char_u *name)); - extern int mch_nodetype __ARGS((char_u *name)); - extern void mch_early_init __ARGS((void)); ---- 25,31 ---- - extern int mch_setperm __ARGS((char_u *name, long perm)); - extern void mch_hide __ARGS((char_u *name)); - extern int mch_isdir __ARGS((char_u *name)); -! extern int mch_mkdir __ARGS((char_u *name)); - extern int mch_can_exe __ARGS((char_u *name)); - extern int mch_nodetype __ARGS((char_u *name)); - extern void mch_early_init __ARGS((void)); -*** ../vim-7.0.107/src/version.c Thu Sep 14 21:04:09 2006 ---- src/version.c Thu Sep 14 21:34:33 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 108, - /**/ - --- -BEDEVERE: Look! It's the old man from scene 24 - what's he Doing here? -ARTHUR: He is the keeper of the Bridge. He asks each traveler five - questions ... -GALAHAD: Three questions. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.109 b/7.0.109 deleted file mode 100644 index 62c2ff21..00000000 --- a/7.0.109 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.109 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.109 -Problem: Lisp indenting is confused by escaped quotes in strings. (Dorai - Sitaram) -Solution: Check for backslash inside strings. (Sergey Khorev) -Files: src/misc1.c - - -*** ../vim-7.0.108/src/misc1.c Tue Sep 5 20:56:11 2006 ---- src/misc1.c Wed Sep 13 20:13:57 2006 -*************** -*** 8074,8082 **** - } - if (*that == '"' && *(that + 1) != NUL) - { -! that++; -! while (*that && (*that != '"' || *(that - 1) == '\\')) -! ++that; - } - if (*that == '(' || *that == '[') - ++parencount; ---- 8074,8093 ---- - } - if (*that == '"' && *(that + 1) != NUL) - { -! while (*++that && *that != '"') -! { -! /* skipping escaped characters in the string */ -! if (*that == '\\') -! { -! if (*++that == NUL) -! break; -! if (that[1] == NUL) -! { -! ++that; -! break; -! } -! } -! } - } - if (*that == '(' || *that == '[') - ++parencount; -*** ../vim-7.0.108/src/version.c Thu Sep 14 21:36:35 2006 ---- src/version.c Fri Sep 15 20:15:40 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 109, - /**/ - --- -ARTHUR: No, hang on! Just answer the five questions ... -GALAHAD: Three questions ... -ARTHUR: Three questions ... And we shall watch ... and pray. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.110 b/7.0.110 deleted file mode 100644 index c107a773..00000000 --- a/7.0.110 +++ /dev/null @@ -1,88 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.110 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.110 -Problem: Amiga: Compilation problems when not using libnix. -Solution: Change a few #ifdefs. (Willy Catteau) -Files: src/memfile.c - - -*** ../vim-7.0.109/src/memfile.c Tue Mar 7 00:27:12 2006 ---- src/memfile.c Sun Sep 17 15:50:00 2006 -*************** -*** 517,523 **** - mf_ins_free(mfp, hp); /* put *hp in the free list */ - } - -! #if defined(__MORPHOS__) - /* function is missing in MorphOS libnix version */ - extern unsigned long *__stdfiledes; - ---- 517,523 ---- - mf_ins_free(mfp, hp); /* put *hp in the free list */ - } - -! #if defined(__MORPHOS__) && defined(__libnix__) - /* function is missing in MorphOS libnix version */ - extern unsigned long *__stdfiledes; - -*************** -*** 677,691 **** - # else - # if defined(_DCC) || defined(__GNUC__) || defined(__MORPHOS__) - { -! # if defined(__GNUC__) && !defined(__MORPHOS__) - /* Have function (in libnix at least), - * but ain't got no prototype anywhere. */ - extern unsigned long fdtofh(int filedescriptor); - # endif - BPTR fh = (BPTR)fdtofh(mfp->mf_fd); - - if (fh != 0) - Flush(fh); - } - # else /* assume Manx */ - Flush(_devtab[mfp->mf_fd].fd); ---- 677,695 ---- - # else - # if defined(_DCC) || defined(__GNUC__) || defined(__MORPHOS__) - { -! # if defined(__GNUC__) && !defined(__MORPHOS__) && defined(__libnix__) - /* Have function (in libnix at least), - * but ain't got no prototype anywhere. */ - extern unsigned long fdtofh(int filedescriptor); - # endif -+ # if !defined(__libnix__) -+ fflush(NULL); -+ # else - BPTR fh = (BPTR)fdtofh(mfp->mf_fd); - - if (fh != 0) - Flush(fh); -+ # endif - } - # else /* assume Manx */ - Flush(_devtab[mfp->mf_fd].fd); -*** ../vim-7.0.109/src/version.c Fri Sep 15 20:17:49 2006 ---- src/version.c Tue Sep 26 13:48:48 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 110, - /**/ - --- -A fool must search for a greater fool to find admiration. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.111 b/7.0.111 deleted file mode 100644 index 5eef7e3c..00000000 --- a/7.0.111 +++ /dev/null @@ -1,336 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.111 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.111 -Problem: The gzip plugin can't handle filenames with single quotes. -Solution: Add and use the shellescape() function. (partly by Alexey Froloff) -Files: runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c, - src/mbyte.c, src/misc2.c, src/proto/misc2.pro - - -*** ../vim-7.0.110/runtime/autoload/gzip.vim Tue Aug 8 19:55:06 2006 ---- runtime/autoload/gzip.vim Tue Oct 3 14:39:29 2006 -*************** -*** 1,6 **** - " Vim autoload file for editing compressed files. - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Jul 19 - - " These functions are used by the gzip plugin. - ---- 1,6 ---- - " Vim autoload file for editing compressed files. - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Oct 03 - - " These functions are used by the gzip plugin. - -*************** -*** 68,76 **** - let tmp = tempname() - let tmpe = tmp . "." . expand(":e") - " write the just read lines to a temp file "'[,']w tmp.gz" -! execute "silent '[,']w " . tmpe - " uncompress the temp file: call system("gzip -dn tmp.gz") -! call system(a:cmd . " " . tmpe) - if !filereadable(tmp) - " uncompress didn't work! Keep the compressed file then. - echoerr "Error: Could not read uncompressed file" ---- 68,76 ---- - let tmp = tempname() - let tmpe = tmp . "." . expand(":e") - " write the just read lines to a temp file "'[,']w tmp.gz" -! execute "silent '[,']w " . escape(tmpe, ' ') - " uncompress the temp file: call system("gzip -dn tmp.gz") -! call system(a:cmd . " " . s:escape(tmpe)) - if !filereadable(tmp) - " uncompress didn't work! Keep the compressed file then. - echoerr "Error: Could not read uncompressed file" -*************** -*** 127,135 **** - let nmt = s:tempname(nm) - if rename(nm, nmt) == 0 - if exists("b:gzip_comp_arg") -! call system(a:cmd . " " . b:gzip_comp_arg . " '" . nmt . "'") - else -! call system(a:cmd . " '" . nmt . "'") - endif - call rename(nmt . "." . expand(":e"), nm) - endif ---- 127,135 ---- - let nmt = s:tempname(nm) - if rename(nm, nmt) == 0 - if exists("b:gzip_comp_arg") -! call system(a:cmd . " " . b:gzip_comp_arg . " " . s:escape(nmt)) - else -! call system(a:cmd . " " . s:escape(nmt)) - endif - call rename(nmt . "." . expand(":e"), nm) - endif -*************** -*** 154,163 **** - if rename(nm, nmte) == 0 - if &patchmode != "" && getfsize(nm . &patchmode) == -1 - " Create patchmode file by creating the decompressed file new -! call system(a:cmd . " -c " . nmte . " > " . nmt) - call rename(nmte, nm . &patchmode) - else -! call system(a:cmd . " " . nmte) - endif - call rename(nmt, nm) - endif ---- 154,163 ---- - if rename(nm, nmte) == 0 - if &patchmode != "" && getfsize(nm . &patchmode) == -1 - " Create patchmode file by creating the decompressed file new -! call system(a:cmd . " -c " . s:escape(nmte) . " > " . s:escape(nmt)) - call rename(nmte, nm . &patchmode) - else -! call system(a:cmd . " " . s:escape(nmte)) - endif - call rename(nmt, nm) - endif -*************** -*** 173,178 **** ---- 173,186 ---- - return fn - endif - return fnamemodify(a:name, ":p:h") . "/X~=@l9q5" -+ endfun -+ -+ fun s:escape(name) -+ " shellescape() was added by patch 7.0.111 -+ if v:version > 700 || (v:version == 700 && has('patch111')) -+ return shellescape(a:name) -+ endif -+ return "'" . a:name . "'" - endfun - - " vim: set sw=2 : -*** ../vim-7.0.110/runtime/doc/eval.txt Sun May 7 17:08:32 2006 ---- runtime/doc/eval.txt Fri Sep 22 19:43:18 2006 -*************** -*** 1,4 **** -! *eval.txt* For Vim version 7.0. Last change: 2006 Sep 09 - - - VIM REFERENCE MANUAL by Bram Moolenaar ---- 1,4 ---- -! *eval.txt* For Vim version 7.0. Last change: 2006 Sep 22 - - - VIM REFERENCE MANUAL by Bram Moolenaar -*************** -*** 1709,1714 **** ---- 1715,1722 ---- - settabwinvar( {tabnr}, {winnr}, {varname}, {val}) set {varname} in window - {winnr} in tab page {tabnr} to {val} - setwinvar( {nr}, {varname}, {val}) set {varname} in window {nr} to {val} -+ shellescape( {string}) String escape {string} for use as shell -+ command argument - simplify( {filename}) String simplify filename as much as possible - sort( {list} [, {func}]) List sort {list}, using {func} to compare - soundfold( {word}) String sound-fold {word} -*************** -*** 4434,4439 **** ---- 4457,4477 ---- - :call setwinvar(1, "&list", 0) - :call setwinvar(2, "myvar", "foobar") - -+ shellescape({string}) *shellescape()* -+ Escape {string} for use as shell command argument. -+ On MS-Windows and MS-DOS, when 'shellslash' is not set, it -+ will enclose {string} double quotes and double all double -+ quotes within {string}. -+ For other systems, it will enclose {string} in single quotes -+ and replace all "'" with "'\''". -+ Example: > -+ :echo shellescape('c:\program files\vim') -+ < results in: -+ "c:\program files\vim" ~ -+ Example usage: > -+ :call system("chmod +x -- " . shellescape(expand("%"))) -+ -+ - simplify({filename}) *simplify()* - Simplify the file name as much as possible without changing - the meaning. Shortcuts (on MS-Windows) or symbolic links (on -*** ../vim-7.0.110/src/eval.c Sat Sep 9 12:05:39 2006 ---- src/eval.c Thu Sep 14 17:44:41 2006 -*************** -*** 622,627 **** ---- 622,628 ---- - static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv)); -+ static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_sort __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_soundfold __ARGS((typval_T *argvars, typval_T *rettv)); -*************** -*** 7146,7151 **** ---- 7147,7153 ---- - {"setreg", 2, 3, f_setreg}, - {"settabwinvar", 4, 4, f_settabwinvar}, - {"setwinvar", 3, 3, f_setwinvar}, -+ {"shellescape", 1, 1, f_shellescape}, - {"simplify", 1, 1, f_simplify}, - {"sort", 1, 2, f_sort}, - {"soundfold", 1, 1, f_soundfold}, -*************** -*** 14602,14607 **** ---- 14604,14621 ---- - } - #endif - } -+ } -+ -+ /* -+ * "shellescape({string})" function -+ */ -+ static void -+ f_shellescape(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ rettv->vval.v_string = vim_strsave_shellescape(get_tv_string(&argvars[0])); -+ rettv->v_type = VAR_STRING; - } - - /* -*** ../vim-7.0.110/src/misc2.c Thu May 4 23:50:56 2006 ---- src/misc2.c Tue Sep 26 23:13:57 2006 -*************** -*** 1229,1234 **** ---- 1229,1322 ---- - return escaped_string; - } - -+ #if defined(FEAT_EVAL) || defined(PROTO) -+ /* -+ * Escape "string" for use as a shell argument with system(). -+ * This uses single quotes, except when we know we need to use double qoutes -+ * (MS-DOS and MS-Windows without 'shellslash' set). -+ * Returns the result in allocated memory, NULL if we have run out. -+ */ -+ char_u * -+ vim_strsave_shellescape(string) -+ char_u *string; -+ { -+ unsigned length; -+ char_u *p; -+ char_u *d; -+ char_u *escaped_string; -+ -+ /* First count the number of extra bytes required. */ -+ length = STRLEN(string) + 3; /* two quotes and the trailing NUL */ -+ for (p = string; *p != NUL; mb_ptr_adv(p)) -+ { -+ # if defined(WIN32) || defined(WIN16) || defined(DOS) -+ if (!p_ssl) -+ { -+ if (*p == '"') -+ ++length; /* " -> "" */ -+ } -+ else -+ # endif -+ if (*p == '\'') -+ length += 3; /* ' => '\'' */ -+ } -+ -+ /* Allocate memory for the result and fill it. */ -+ escaped_string = alloc(length); -+ if (escaped_string != NULL) -+ { -+ d = escaped_string; -+ -+ /* add opening quote */ -+ # if defined(WIN32) || defined(WIN16) || defined(DOS) -+ if (!p_ssl) -+ *d++ = '"'; -+ else -+ # endif -+ *d++ = '\''; -+ -+ for (p = string; *p != NUL; ) -+ { -+ # if defined(WIN32) || defined(WIN16) || defined(DOS) -+ if (!p_ssl) -+ { -+ if (*p == '"') -+ { -+ *d++ = '"'; -+ *d++ = '"'; -+ ++p; -+ continue; -+ } -+ } -+ else -+ # endif -+ if (*p == '\'') -+ { -+ *d++='\''; -+ *d++='\\'; -+ *d++='\''; -+ *d++='\''; -+ ++p; -+ continue; -+ } -+ -+ MB_COPY_CHAR(p, d); -+ } -+ -+ /* add terminating quote and finish with a NUL */ -+ # if defined(WIN32) || defined(WIN16) || defined(DOS) -+ if (!p_ssl) -+ *d++ = '"'; -+ else -+ # endif -+ *d++ = '\''; -+ *d = NUL; -+ } -+ -+ return escaped_string; -+ } -+ #endif -+ - /* - * Like vim_strsave(), but make all characters uppercase. - * This uses ASCII lower-to-upper case translation, language independent. -*** ../vim-7.0.110/src/proto/misc2.pro Fri Mar 24 23:42:55 2006 ---- src/proto/misc2.pro Thu Sep 14 18:28:43 2006 -*************** -*** 29,34 **** ---- 29,35 ---- - extern char_u *vim_strnsave __ARGS((char_u *string, int len)); - extern char_u *vim_strsave_escaped __ARGS((char_u *string, char_u *esc_chars)); - extern char_u *vim_strsave_escaped_ext __ARGS((char_u *string, char_u *esc_chars, int cc, int bsl)); -+ extern char_u *vim_strsave_shellescape __ARGS((char_u *string)); - extern char_u *vim_strsave_up __ARGS((char_u *string)); - extern char_u *vim_strnsave_up __ARGS((char_u *string, int len)); - extern void vim_strup __ARGS((char_u *p)); -*** ../vim-7.0.110/src/version.c Tue Sep 26 13:49:41 2006 ---- src/version.c Tue Oct 3 14:36:40 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 111, - /**/ - --- -The only way the average employee can speak to an executive is by taking a -second job as a golf caddie. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.112 b/7.0.112 deleted file mode 100644 index 3b6ce3bc..00000000 --- a/7.0.112 +++ /dev/null @@ -1,108 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.112 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.112 -Problem: Python interface does not work with Python 2.5. -Solution: Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes) -Files: src/if_python.c - - -*** ../vim-7.0.111/src/if_python.c Sun Apr 30 20:48:37 2006 ---- src/if_python.c Fri Sep 22 15:08:33 2006 -*************** -*** 1463,1469 **** - if (this->buf && this->buf != INVALID_BUFFER_VALUE) - this->buf->b_python_ref = NULL; - -! PyMem_DEL(self); - } - - static PyObject * ---- 1463,1469 ---- - if (this->buf && this->buf != INVALID_BUFFER_VALUE) - this->buf->b_python_ref = NULL; - -! Py_DECREF(self); - } - - static PyObject * -*************** -*** 1674,1680 **** - bufr = (BufferObject *)BufferNew(buf); - if (bufr == NULL) - { -! PyMem_DEL(self); - return NULL; - } - Py_INCREF(bufr); ---- 1674,1680 ---- - bufr = (BufferObject *)BufferNew(buf); - if (bufr == NULL) - { -! Py_DECREF(self); - return NULL; - } - Py_INCREF(bufr); -*************** -*** 1690,1696 **** - RangeDestructor(PyObject *self) - { - Py_DECREF(((RangeObject *)(self))->buf); -! PyMem_DEL(self); - } - - static PyObject * ---- 1690,1696 ---- - RangeDestructor(PyObject *self) - { - Py_DECREF(((RangeObject *)(self))->buf); -! Py_DECREF(self); - } - - static PyObject * -*************** -*** 1944,1950 **** - if (this->win && this->win != INVALID_WINDOW_VALUE) - this->win->w_python_ref = NULL; - -! PyMem_DEL(self); - } - - static int ---- 1944,1950 ---- - if (this->win && this->win != INVALID_WINDOW_VALUE) - this->win->w_python_ref = NULL; - -! Py_DECREF(self); - } - - static int -*** ../vim-7.0.111/src/version.c Tue Oct 3 14:43:31 2006 ---- src/version.c Tue Oct 3 14:46:10 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 112, - /**/ - --- -A salesperson says: Translation: -"backward compatible" Old technology -"Premium" Overpriced -"Can't keep it on the shelf" Unavailable -"Stands alone" Piece of shit -"Proprietary" Incompatible - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.113 b/7.0.113 deleted file mode 100644 index 7a783c68..00000000 --- a/7.0.113 +++ /dev/null @@ -1,57 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.113 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.113 -Problem: Using CTRL-L in Insert completion when there is no current match - may cause a crash. (Yukihiro Nakadaira) -Solution: Check for compl_leader to be NULL -Files: src/edit.c - - -*** ../vim-7.0.112/src/edit.c Thu Sep 14 11:07:08 2006 ---- src/edit.c Tue Oct 3 14:57:47 2006 -*************** -*** 3206,3212 **** - for (cp = compl_shown_match->cp_next; cp != NULL - && cp != compl_first_match; cp = cp->cp_next) - { -! if (ins_compl_equal(cp, compl_leader, - (int)STRLEN(compl_leader))) - { - p = cp->cp_str; ---- 3206,3213 ---- - for (cp = compl_shown_match->cp_next; cp != NULL - && cp != compl_first_match; cp = cp->cp_next) - { -! if (compl_leader == NULL -! || ins_compl_equal(cp, compl_leader, - (int)STRLEN(compl_leader))) - { - p = cp->cp_str; -*** ../vim-7.0.112/src/version.c Tue Oct 3 15:02:11 2006 ---- src/version.c Tue Oct 3 15:20:13 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 113, - /**/ - --- -I recommend ordering large cargo containers of paper towels to make up -whatever budget underruns you have. Paper products are always useful and they -have the advantage of being completely flushable if you need to make room in -the storage area later. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.114 b/7.0.114 deleted file mode 100644 index 77848328..00000000 --- a/7.0.114 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.114 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.114 -Problem: When aborting an insert with CTRL-C an extra undo point is - created in the GUI. (Yukihiro Nakadaira) -Solution: Call gotchars() only when advancing. -Files: src/getchar.c - - -*** ../vim-7.0.113/src/getchar.c Tue Sep 5 12:57:14 2006 ---- src/getchar.c Tue Sep 26 17:44:45 2006 -*************** -*** 1960,1969 **** - c = Ctrl_C; - flush_buffers(TRUE); /* flush all typeahead */ - -! /* Also record this character, it might be needed to -! * get out of Insert mode. */ -! *typebuf.tb_buf = c; -! gotchars(typebuf.tb_buf, 1); - cmd_silent = FALSE; - - break; ---- 1962,1974 ---- - c = Ctrl_C; - flush_buffers(TRUE); /* flush all typeahead */ - -! if (advance) -! { -! /* Also record this character, it might be needed to -! * get out of Insert mode. */ -! *typebuf.tb_buf = c; -! gotchars(typebuf.tb_buf, 1); -! } - cmd_silent = FALSE; - - break; -*** ../vim-7.0.113/src/version.c Tue Oct 3 15:22:00 2006 ---- src/version.c Tue Oct 3 15:34:14 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 114, - /**/ - --- -Sometimes you can protect millions of dollars in your budget simply by buying -a bag of cookies, dropping it on the budget anylyst's desk, and saying -something deeply personal such as "How was your weekend, big guy?" - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.115 b/7.0.115 deleted file mode 100644 index 1b1b17e3..00000000 --- a/7.0.115 +++ /dev/null @@ -1,75 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.115 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.115 -Problem: When 'ignorecase' is set, Insert mode completion only adds "foo" - and not "Foo" when both are found. - A found match isn't displayed right away when 'completeopt' does - not have "menu" or "menuone". -Solution: Do not ignore case when checking if a completion match already - exists. call ins_compl_check_keys() also when not using a popup - menu. (Yukihiro Nakadaira) -Files: src/edit.c - - -*** ../vim-7.0.114/src/edit.c Tue Oct 3 15:22:00 2006 ---- src/edit.c Tue Oct 3 14:57:47 2006 -*************** -*** 2157,2163 **** - do - { - if ( !(match->cp_flags & ORIGINAL_TEXT) -! && ins_compl_equal(match, str, len) - && match->cp_str[len] == NUL) - return NOTDONE; - match = match->cp_next; ---- 2157,2163 ---- - do - { - if ( !(match->cp_flags & ORIGINAL_TEXT) -! && STRNCMP(match->cp_str, str, len) == 0 - && match->cp_str[len] == NUL) - return NOTDONE; - match = match->cp_next; -*************** -*** 4042,4048 **** - if (got_int) - break; - /* Fill the popup menu as soon as possible. */ -! if (pum_wanted() && type != -1) - ins_compl_check_keys(0); - - if ((ctrl_x_mode != 0 && ctrl_x_mode != CTRL_X_WHOLE_LINE) ---- 4042,4048 ---- - if (got_int) - break; - /* Fill the popup menu as soon as possible. */ -! if (type != -1) - ins_compl_check_keys(0); - - if ((ctrl_x_mode != 0 && ctrl_x_mode != CTRL_X_WHOLE_LINE) -*** ../vim-7.0.114/src/version.c Tue Oct 3 15:36:09 2006 ---- src/version.c Tue Oct 3 15:46:15 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 115, - /**/ - --- -The budget process was invented by an alien race of sadistic beings who -resemble large cats. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.116 b/7.0.116 deleted file mode 100644 index ad1de264..00000000 --- a/7.0.116 +++ /dev/null @@ -1,49 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.116 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.116 -Problem: 64 bit Windows version reports "32 bit" in the ":version" output. - (M. Veerman) -Solution: Change the text for Win64. -Files: src/version.c - - -*** ../vim-7.0.115/src/version.c Tue Oct 3 15:49:20 2006 ---- src/version.c Tue Oct 3 16:29:31 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 116, - /**/ -*************** -*** 962,966 **** ---- 964,972 ---- - MSG_PUTS(_("\nMS-Windows 16/32 bit GUI version")); - # else -+ # ifdef _WIN64 -+ MSG_PUTS(_("\nMS-Windows 64 bit GUI version")); -+ # else - MSG_PUTS(_("\nMS-Windows 32 bit GUI version")); -+ # endif - # endif - if (gui_is_win32s()) - --- -Article in the first Free Software Magazine: "Bram Moolenaar studied electrical -engineering at the Technical University of Delft and graduated in 1985 on a -multi-processor Unix architecture." -Response by "dimator": Could the school not afford a proper stage for the -ceremony? - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.117 b/7.0.117 deleted file mode 100644 index c025534c..00000000 --- a/7.0.117 +++ /dev/null @@ -1,166 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.117 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.117 -Problem: Using "extend" on a syntax item inside a region with "keepend", an - intermediate item may be truncated. - When applying the "keepend" and there is an offset to the end - pattern the highlighting of a contained item isn't adjusted. -Solution: Use the seen_keepend flag to remember when to apply the "keepend" - flag. Adjust the keepend highlighting properly. (Ilya Bobir) -Files: src/syntax.c - - -*** ../vim-7.0.116/src/syntax.c Thu Apr 27 01:58:59 2006 ---- src/syntax.c Tue Oct 3 17:00:44 2006 -*************** -*** 977,982 **** ---- 977,983 ---- - { - stateitem_T *cur_si; - int i; -+ int seen_keepend; - - if (startofline) - { -*************** -*** 1002,1008 **** - /* - * Need to update the end of a start/skip/end that continues from the - * previous line. And regions that have "keepend", because they may -! * influence contained items. - * Then check for items ending in column 0. - */ - i = current_state.ga_len - 1; ---- 1003,1012 ---- - /* - * Need to update the end of a start/skip/end that continues from the - * previous line. And regions that have "keepend", because they may -! * influence contained items. If we've just removed "extend" -! * (startofline == 0) then we should update ends of normal regions -! * contained inside "keepend" because "extend" could have extended -! * these "keepend" regions as well as contained normal regions. - * Then check for items ending in column 0. - */ - i = current_state.ga_len - 1; -*************** -*** 1010,1019 **** ---- 1014,1026 ---- - for ( ; i > keepend_level; --i) - if (CUR_STATE(i).si_flags & HL_EXTEND) - break; -+ -+ seen_keepend = FALSE; - for ( ; i < current_state.ga_len; ++i) - { - cur_si = &CUR_STATE(i); - if ((cur_si->si_flags & HL_KEEPEND) -+ || (seen_keepend && !startofline) - || (i == current_state.ga_len - 1 && startofline)) - { - cur_si->si_h_startpos.col = 0; /* start highl. in col 0 */ -*************** -*** 1021,1026 **** ---- 1028,1036 ---- - - if (!(cur_si->si_flags & HL_MATCHCONT)) - update_si_end(cur_si, (int)current_col, !startofline); -+ -+ if (!startofline && (cur_si->si_flags & HL_KEEPEND)) -+ seen_keepend = TRUE; - } - } - check_keepend(); -*************** -*** 2564,2569 **** ---- 2574,2580 ---- - { - int i; - lpos_T maxpos; -+ lpos_T maxpos_h; - stateitem_T *sip; - - /* -*************** -*** 2583,2605 **** - break; - - maxpos.lnum = 0; - for ( ; i < current_state.ga_len; ++i) - { - sip = &CUR_STATE(i); - if (maxpos.lnum != 0) - { - limit_pos_zero(&sip->si_m_endpos, &maxpos); -! limit_pos_zero(&sip->si_h_endpos, &maxpos); - limit_pos_zero(&sip->si_eoe_pos, &maxpos); - sip->si_ends = TRUE; - } -! if (sip->si_ends -! && (sip->si_flags & HL_KEEPEND) -! && (maxpos.lnum == 0 - || maxpos.lnum > sip->si_m_endpos.lnum - || (maxpos.lnum == sip->si_m_endpos.lnum -! && maxpos.col > sip->si_m_endpos.col))) -! maxpos = sip->si_m_endpos; - } - } - ---- 2594,2623 ---- - break; - - maxpos.lnum = 0; -+ maxpos_h.lnum = 0; - for ( ; i < current_state.ga_len; ++i) - { - sip = &CUR_STATE(i); - if (maxpos.lnum != 0) - { - limit_pos_zero(&sip->si_m_endpos, &maxpos); -! limit_pos_zero(&sip->si_h_endpos, &maxpos_h); - limit_pos_zero(&sip->si_eoe_pos, &maxpos); - sip->si_ends = TRUE; - } -! if (sip->si_ends && (sip->si_flags & HL_KEEPEND)) -! { -! if (maxpos.lnum == 0 - || maxpos.lnum > sip->si_m_endpos.lnum - || (maxpos.lnum == sip->si_m_endpos.lnum -! && maxpos.col > sip->si_m_endpos.col)) -! maxpos = sip->si_m_endpos; -! if (maxpos_h.lnum == 0 -! || maxpos_h.lnum > sip->si_h_endpos.lnum -! || (maxpos_h.lnum == sip->si_h_endpos.lnum -! && maxpos_h.col > sip->si_h_endpos.col)) -! maxpos_h = sip->si_h_endpos; -! } - } - } - -*** ../vim-7.0.116/src/version.c Tue Oct 3 16:30:40 2006 ---- src/version.c Tue Oct 3 16:59:50 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 117, - /**/ - --- -For humans, honesty is a matter of degree. Engineers are always honest in -matters of technology and human relationships. That's why it's a good idea -to keep engineers away from customers, romantic interests, and other people -who can't handle the truth. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.118 b/7.0.118 deleted file mode 100644 index 01c8bcad..00000000 --- a/7.0.118 +++ /dev/null @@ -1,49 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.118 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.118 -Problem: printf() does not do zero padding for strings. -Solution: Do allow zero padding for strings. -Files: src/message.c - - -*** ../vim-7.0.117/src/message.c Sun Sep 3 16:39:51 2006 ---- src/message.c Tue Oct 3 15:41:44 2006 -*************** -*** 4124,4131 **** - case 'c': - case 's': - length_modifier = '\0'; -- zero_padding = 0; /* turn zero padding off for string -- conversions */ - str_arg_l = 1; - switch (fmt_spec) - { ---- 4124,4129 ---- -*** ../vim-7.0.117/src/version.c Tue Oct 3 17:04:21 2006 ---- src/version.c Tue Oct 3 17:20:11 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 118, - /**/ - --- -While it's true that many normal people whould prefer not to _date_ an -engineer, most normal people harbor an intense desire to _mate_ with them, -thus producing engineerlike children who will have high-paying jobs long -before losing their virginity. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.119 b/7.0.119 deleted file mode 100644 index e0c19dbd..00000000 --- a/7.0.119 +++ /dev/null @@ -1,48 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.119 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.119 -Problem: When going back from Insert to Normal mode the CursorHold event - doesn't trigger. (Yakov Lerner) -Solution: Reset "did_cursorhold" when leaving Insert mode. -Files: src/edit.c - - -*** ../vim-7.0.118/src/edit.c Tue Oct 3 15:49:20 2006 ---- src/edit.c Thu Oct 5 22:26:27 2006 -*************** -*** 923,928 **** ---- 923,929 ---- - if (cmdchar != 'r' && cmdchar != 'v') - apply_autocmds(EVENT_INSERTLEAVE, NULL, NULL, - FALSE, curbuf); -+ did_cursorhold = FALSE; - #endif - return (c == Ctrl_O); - } -*** ../vim-7.0.118/src/version.c Tue Oct 3 17:21:04 2006 ---- src/version.c Fri Oct 6 20:35:45 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 119, - /**/ - --- -The Feynman problem solving Algorithm: - 1) Write down the problem - 2) Think real hard - 3) Write down the answer - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.120 b/7.0.120 deleted file mode 100644 index 58cb1eff..00000000 --- a/7.0.120 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.120 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.120 -Problem: Crash when using CTRL-R = at the command line and entering - "getreg('=')". (James Vega) -Solution: Avoid recursiveness of evaluating the = register. -Files: src/ops.c - - -*** ../vim-7.0.119/src/ops.c Sun Jul 23 22:37:29 2006 ---- src/ops.c Fri Oct 6 21:27:40 2006 -*************** -*** 770,775 **** ---- 770,776 ---- - { - char_u *expr_copy; - char_u *rv; -+ static int nested = 0; - - if (expr_line == NULL) - return NULL; -*************** -*** 780,786 **** ---- 781,794 ---- - if (expr_copy == NULL) - return NULL; - -+ /* When we are invoked recursively limit the evaluation to 10 levels. -+ * Then return the string as-is. */ -+ if (nested >= 10) -+ return expr_copy; -+ -+ ++nested; - rv = eval_to_string(expr_copy, NULL, TRUE); -+ --nested; - vim_free(expr_copy); - return rv; - } -*** ../vim-7.0.119/src/version.c Fri Oct 6 20:39:58 2006 ---- src/version.c Fri Oct 6 21:31:56 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 120, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -16. You step out of your room and realize that your parents have moved and - you don't have a clue when it happened. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.121 b/7.0.121 deleted file mode 100644 index 42ec0885..00000000 --- a/7.0.121 +++ /dev/null @@ -1,50 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.121 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.121 -Problem: GUI: Dragging the last status line doesn't work when there is a - text tabline. (Markus Wolf) -Solution: Take the text tabline into account when deciding to start modeless - selection. -Files: src/gui.c - - -*** ../vim-7.0.120/src/gui.c Sun Sep 10 21:38:48 2006 ---- src/gui.c Sun Oct 8 12:47:04 2006 -*************** -*** 2873,2878 **** ---- 2873,2881 ---- - */ - if ((State == NORMAL || State == NORMAL_BUSY || (State & INSERT)) - && Y_2_ROW(y) >= topframe->fr_height -+ # ifdef FEAT_WINDOWS -+ + firstwin->w_winrow -+ # endif - && button != MOUSE_DRAG - # ifdef FEAT_MOUSESHAPE - && !drag_status_line -*** ../vim-7.0.120/src/version.c Fri Oct 6 23:33:22 2006 ---- src/version.c Sun Oct 8 13:55:58 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 121, - /**/ - --- -If they don't keep on exercising their lips, he thought, their brains -start working. - -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.122 b/7.0.122 deleted file mode 100644 index ba3b35ca..00000000 --- a/7.0.122 +++ /dev/null @@ -1,92 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.122 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.122 -Problem: GUI: When clearing after a bold, double-wide character half a - character may be drawn. -Solution: Check for double-wide character and redraw it. (Yukihiro Nakadaira) -Files: src/screen.c - - -*** ../vim-7.0.121/src/screen.c Thu Sep 14 21:04:09 2006 ---- src/screen.c Sat Oct 7 15:13:43 2006 -*************** -*** 5079,5093 **** - * character too. If we didn't skip any blanks above, then we - * only redraw if the character wasn't already redrawn anyway. - */ -! if (gui.in_use && (col > startCol || !redraw_this) -! # ifdef FEAT_MBYTE -! && enc_dbcs == 0 -! # endif -! ) - { - hl = ScreenAttrs[off_to]; - if (hl > HL_ALL || (hl & HL_BOLD)) -! screen_char(off_to - 1, row, col + coloff - 1); - } - #endif - screen_fill(row, row + 1, col + coloff, clear_width + coloff, ---- 5079,5116 ---- - * character too. If we didn't skip any blanks above, then we - * only redraw if the character wasn't already redrawn anyway. - */ -! if (gui.in_use && (col > startCol || !redraw_this)) - { - hl = ScreenAttrs[off_to]; - if (hl > HL_ALL || (hl & HL_BOLD)) -! { -! int prev_cells = 1; -! # ifdef FEAT_MBYTE -! if (enc_utf8) -! /* for utf-8, ScreenLines[char_offset + 1] == 0 means -! * that its width is 2. */ -! prev_cells = ScreenLines[off_to - 1] == 0 ? 2 : 1; -! else if (enc_dbcs != 0) -! { -! /* find previous character by counting from first -! * column and get its width. */ -! unsigned off = LineOffset[row]; -! -! while (off < off_to) -! { -! prev_cells = (*mb_off2cells)(off); -! off += prev_cells; -! } -! } -! -! if (enc_dbcs != 0 && prev_cells > 1) -! screen_char_2(off_to - prev_cells, row, -! col + coloff - prev_cells); -! else -! # endif -! screen_char(off_to - prev_cells, row, -! col + coloff - prev_cells); -! } - } - #endif - screen_fill(row, row + 1, col + coloff, clear_width + coloff, -*** ../vim-7.0.121/src/version.c Sun Oct 8 13:56:53 2006 ---- src/version.c Mon Oct 9 22:10:17 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 122, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -7. Finish all your sentences with "in accordance with the prophecy". - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.123 b/7.0.123 deleted file mode 100644 index fa3a69d8..00000000 --- a/7.0.123 +++ /dev/null @@ -1,112 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.123 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.123 -Problem: On SCO Openserver configure selects the wrong terminal library. -Solution: Put terminfo before the other libraries. (Roger Cornelius) - Also fix a small problem compiling on Mac without Darwin. -Files: src/configure.in, src/auto/configure - - -*** ../vim-7.0.122/src/configure.in Tue Sep 5 17:30:25 2006 ---- src/configure.in Thu Oct 5 22:01:13 2006 -*************** -*** 681,687 **** - AC_MSG_CHECKING([if -pthread should be used]) - threadsafe_flag= - thread_lib= -! if test "x$MACOSX" != "xyes"; then - test "$GCC" = yes && threadsafe_flag="-pthread" - if test "`(uname) 2>/dev/null`" = FreeBSD; then - threadsafe_flag="-D_THREAD_SAFE" ---- 681,688 ---- - AC_MSG_CHECKING([if -pthread should be used]) - threadsafe_flag= - thread_lib= -! dnl if test "x$MACOSX" != "xyes"; then -! if test "`(uname) 2>/dev/null`" != Darwin; then - test "$GCC" = yes && threadsafe_flag="-pthread" - if test "`(uname) 2>/dev/null`" = FreeBSD; then - threadsafe_flag="-D_THREAD_SAFE" -*************** -*** 2151,2158 **** - dnl Newer versions of ncurses are preferred over anything. - dnl Older versions of ncurses have bugs, get a new one! - dnl Digital Unix (OSF1) should use curses (Ronald Schild). - case "`uname -s 2>/dev/null`" in -! OSF1) tlibs="ncurses curses termlib termcap";; - *) tlibs="ncurses termlib termcap curses";; - esac - for libname in $tlibs; do ---- 2152,2160 ---- - dnl Newer versions of ncurses are preferred over anything. - dnl Older versions of ncurses have bugs, get a new one! - dnl Digital Unix (OSF1) should use curses (Ronald Schild). -+ dnl On SCO Openserver should prefer termlib (Roger Cornelius). - case "`uname -s 2>/dev/null`" in -! OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";; - *) tlibs="ncurses termlib termcap curses";; - esac - for libname in $tlibs; do -*** ../vim-7.0.122/src/auto/configure Tue Sep 5 17:30:25 2006 ---- src/auto/configure Thu Oct 5 22:02:45 2006 -*************** -*** 4256,4262 **** - echo $ECHO_N "checking if -pthread should be used... $ECHO_C" >&6 - threadsafe_flag= - thread_lib= -! if test "x$MACOSX" != "xyes"; then - test "$GCC" = yes && threadsafe_flag="-pthread" - if test "`(uname) 2>/dev/null`" = FreeBSD; then - threadsafe_flag="-D_THREAD_SAFE" ---- 4256,4262 ---- - echo $ECHO_N "checking if -pthread should be used... $ECHO_C" >&6 - threadsafe_flag= - thread_lib= -! if test "`(uname) 2>/dev/null`" != Darwin; then - test "$GCC" = yes && threadsafe_flag="-pthread" - if test "`(uname) 2>/dev/null`" = FreeBSD; then - threadsafe_flag="-D_THREAD_SAFE" -*************** -*** 11555,11562 **** - else - echo "$as_me:$LINENO: result: empty: automatic terminal library selection" >&5 - echo "${ECHO_T}empty: automatic terminal library selection" >&6 -! case "`uname -s 2>/dev/null`" in -! OSF1) tlibs="ncurses curses termlib termcap";; - *) tlibs="ncurses termlib termcap curses";; - esac - for libname in $tlibs; do ---- 11555,11562 ---- - else - echo "$as_me:$LINENO: result: empty: automatic terminal library selection" >&5 - echo "${ECHO_T}empty: automatic terminal library selection" >&6 -! case "`uname -s 2>/dev/null`" in -! OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";; - *) tlibs="ncurses termlib termcap curses";; - esac - for libname in $tlibs; do -*** ../vim-7.0.122/src/version.c Mon Oct 9 22:11:52 2006 ---- src/version.c Tue Oct 10 11:37:26 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 123, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -12. Sing along at the opera. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.124 b/7.0.124 deleted file mode 100644 index 418d6b9b..00000000 --- a/7.0.124 +++ /dev/null @@ -1,87 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.124 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.124 -Problem: getwinvar() obtains a dictionary with window-local variables, but - it's always for the current window. -Solution: Get the variables of the specified window. (Geoff Reedy) -Files: src/eval.c - - -*** ../vim-7.0.123/src/eval.c Tue Oct 3 14:43:31 2006 ---- src/eval.c Fri Oct 6 21:08:57 2006 -*************** -*** 10432,10451 **** - - if (win != NULL && varname != NULL) - { -! if (*varname == '&') /* window-local-option */ -! { -! /* Set curwin to be our win, temporarily. Also set curbuf, so -! * that we can get buffer-local options. */ -! oldcurwin = curwin; -! curwin = win; -! curbuf = win->w_buffer; - - get_option_tv(&varname, rettv, 1); -- -- /* restore previous notion of curwin */ -- curwin = oldcurwin; -- curbuf = curwin->w_buffer; -- } - else - { - if (*varname == NUL) ---- 10432,10445 ---- - - if (win != NULL && varname != NULL) - { -! /* Set curwin to be our win, temporarily. Also set curbuf, so -! * that we can get buffer-local options. */ -! oldcurwin = curwin; -! curwin = win; -! curbuf = win->w_buffer; - -+ if (*varname == '&') /* window-local-option */ - get_option_tv(&varname, rettv, 1); - else - { - if (*varname == NUL) -*************** -*** 10458,10463 **** ---- 10452,10461 ---- - if (v != NULL) - copy_tv(&v->di_tv, rettv); - } -+ -+ /* restore previous notion of curwin */ -+ curwin = oldcurwin; -+ curbuf = curwin->w_buffer; - } - - --emsg_off; -*** ../vim-7.0.123/src/version.c Tue Oct 10 11:41:44 2006 ---- src/version.c Tue Oct 10 12:53:15 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 124, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -14. Put mosquito netting around your work area. Play a tape of jungle - sounds all day. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.125 b/7.0.125 deleted file mode 100644 index 19441ab4..00000000 --- a/7.0.125 +++ /dev/null @@ -1,72 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.125 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.125 -Problem: When "autoselect" is in the 'clipboard' option then the '< and '> - marks are set while Visual mode is still active. -Solution: Don't set the '< and '> marks when yanking the selected area for - the clipboard. -Files: src/normal.c - - -*** ../vim-7.0.124/src/normal.c Tue Aug 29 17:28:56 2006 ---- src/normal.c Sat Oct 7 14:11:26 2006 -*************** -*** 1477,1490 **** - } - else if (VIsual_active) - { -! /* Save the current VIsual area for '< and '> marks, and "gv" */ -! curbuf->b_visual.vi_start = VIsual; -! curbuf->b_visual.vi_end = curwin->w_cursor; -! curbuf->b_visual.vi_mode = VIsual_mode; -! curbuf->b_visual.vi_curswant = curwin->w_curswant; - # ifdef FEAT_EVAL -! curbuf->b_visual_mode_eval = VIsual_mode; - # endif - - /* In Select mode, a linewise selection is operated upon like a - * characterwise selection. */ ---- 1477,1493 ---- - } - else if (VIsual_active) - { -! if (!gui_yank) -! { -! /* Save the current VIsual area for '< and '> marks, and "gv" */ -! curbuf->b_visual.vi_start = VIsual; -! curbuf->b_visual.vi_end = curwin->w_cursor; -! curbuf->b_visual.vi_mode = VIsual_mode; -! curbuf->b_visual.vi_curswant = curwin->w_curswant; - # ifdef FEAT_EVAL -! curbuf->b_visual_mode_eval = VIsual_mode; - # endif -+ } - - /* In Select mode, a linewise selection is operated upon like a - * characterwise selection. */ -*** ../vim-7.0.124/src/version.c Tue Oct 10 12:56:09 2006 ---- src/version.c Tue Oct 10 13:25:27 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 125, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -15. Five days in advance, tell your friends you can't attend their - party because you're not in the mood. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.126 b/7.0.126 deleted file mode 100644 index b6dba703..00000000 --- a/7.0.126 +++ /dev/null @@ -1,63 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.126 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.126 -Problem: When 'formatexpr' uses setline() and later internal formatting is - used undo information is not correct. (Jiri Cerny, Benji Fisher) -Solution: Set ins_need_undo after using 'formatexpr'. -Files: src/edit.c - - -*** ../vim-7.0.125/src/edit.c Fri Oct 6 20:39:58 2006 ---- src/edit.c Tue Oct 10 12:46:04 2006 -*************** -*** 5333,5340 **** - /* Format with 'formatexpr' when it's set. Use internal formatting - * when 'formatexpr' isn't set or it returns non-zero. */ - #if defined(FEAT_EVAL) -! if (*curbuf->b_p_fex == NUL -! || fex_format(curwin->w_cursor.lnum, 1L, c) != 0) - #endif - internal_format(textwidth, second_indent, flags, c == NUL); - } ---- 5333,5348 ---- - /* Format with 'formatexpr' when it's set. Use internal formatting - * when 'formatexpr' isn't set or it returns non-zero. */ - #if defined(FEAT_EVAL) -! int do_internal = TRUE; -! -! if (*curbuf->b_p_fex != NUL) -! { -! do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0); -! /* It may be required to save for undo again, e.g. when setline() -! * was called. */ -! ins_need_undo = TRUE; -! } -! if (do_internal) - #endif - internal_format(textwidth, second_indent, flags, c == NUL); - } -*** ../vim-7.0.125/src/version.c Tue Oct 10 13:27:30 2006 ---- src/version.c Tue Oct 10 15:47:20 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 126, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -16. Have your coworkers address you by your wrestling name, Rock Hard Kim. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.127 b/7.0.127 deleted file mode 100644 index 46857d74..00000000 --- a/7.0.127 +++ /dev/null @@ -1,99 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.127 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.127 -Problem: Crash when swap files has invalid timestamp. -Solution: Check return value of ctime() for being NULL. -Files: src/memline.c - - -*** ../vim-7.0.126/src/memline.c Tue Aug 29 17:28:56 2006 ---- src/memline.c Tue Oct 10 16:19:56 2006 -*************** -*** 1633,1638 **** ---- 1633,1639 ---- - int fd; - struct block0 b0; - time_t x = (time_t)0; -+ char *p; - #ifdef UNIX - char_u uname[B0_UNAME_SIZE]; - #endif -*************** -*** 1652,1659 **** - #endif - MSG_PUTS(_(" dated: ")); - x = st.st_mtime; /* Manx C can't do &st.st_mtime */ -! MSG_PUTS(ctime(&x)); /* includes '\n' */ -! - } - - /* ---- 1653,1663 ---- - #endif - MSG_PUTS(_(" dated: ")); - x = st.st_mtime; /* Manx C can't do &st.st_mtime */ -! p = ctime(&x); /* includes '\n' */ -! if (p == NULL) -! MSG_PUTS("(invalid)\n"); -! else -! MSG_PUTS(p); - } - - /* -*************** -*** 3652,3657 **** ---- 3656,3662 ---- - { - struct stat st; - time_t x, sx; -+ char *p; - - ++no_wait_return; - (void)EMSG(_("E325: ATTENTION")); -*************** -*** 3666,3672 **** - { - MSG_PUTS(_(" dated: ")); - x = st.st_mtime; /* Manx C can't do &st.st_mtime */ -! MSG_PUTS(ctime(&x)); - if (sx != 0 && x > sx) - MSG_PUTS(_(" NEWER than swap file!\n")); - } ---- 3671,3681 ---- - { - MSG_PUTS(_(" dated: ")); - x = st.st_mtime; /* Manx C can't do &st.st_mtime */ -! p = ctime(&x); /* includes '\n' */ -! if (p == NULL) -! MSG_PUTS("(invalid)\n"); -! else -! MSG_PUTS(p); - if (sx != 0 && x > sx) - MSG_PUTS(_(" NEWER than swap file!\n")); - } -*** ../vim-7.0.126/src/version.c Tue Oct 10 15:49:41 2006 ---- src/version.c Tue Oct 10 16:18:51 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 127, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -17. When the money comes out the ATM, scream "I won!, I won! 3rd - time this week!!!!!" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.128 b/7.0.128 deleted file mode 100644 index 72356f8e..00000000 --- a/7.0.128 +++ /dev/null @@ -1,76 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.128 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.128 -Problem: GUI: when closing gvim is cancelled because there is a changed - buffer the screen isn't updated to show the changed buffer in the - current window. (Krzysztof Kacprzak) -Solution: Redraw when closing gvim is cancelled. -Files: src/gui.c - - -*** ../vim-7.0.127/src/gui.c Sun Oct 8 13:56:53 2006 ---- src/gui.c Tue Oct 10 13:45:13 2006 -*************** -*** 637,642 **** ---- 637,643 ---- - - #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) || defined(FEAT_GUI_MSWIN) \ - || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) || defined(PROTO) -+ # define NEED_GUI_UPDATE_SCREEN 1 - /* - * Called when the GUI shell is closed by the user. If there are no changed - * files Vim exits, otherwise there will be a dialog to ask the user what to -*************** -*** 665,672 **** - - exiting = FALSE; - cmdmod = save_cmdmod; -! setcursor(); /* position cursor */ -! out_flush(); - } - #endif - ---- 666,672 ---- - - exiting = FALSE; - cmdmod = save_cmdmod; -! gui_update_screen(); /* redraw, window may show changed buffer */ - } - #endif - -*************** -*** 4823,4828 **** ---- 4823,4829 ---- - #endif - - #if defined(FIND_REPLACE_DIALOG) || defined(FEAT_SUN_WORKSHOP) \ -+ || defined(NEED_GUI_UPDATE_SCREEN) \ - || defined(PROTO) - /* - * Update the current window and the screen. -*** ../vim-7.0.127/src/version.c Tue Oct 10 16:20:51 2006 ---- src/version.c Tue Oct 10 17:35:42 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 128, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -18. When leaving the zoo, start running towards the parking lot, - yelling "run for your lives, they're loose!!" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.129 b/7.0.129 deleted file mode 100644 index 0659bdec..00000000 --- a/7.0.129 +++ /dev/null @@ -1,86 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.129 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.129 -Problem: GTK GUI: the GTK file dialog can't handle a relative path. -Solution: Make the initial directory a full path before passing it to GTK. - (James Vega) Also postpone adding the default file name until - after setting the directory. -Files: src/gui_gtk.c - - -*** ../vim-7.0.128/src/gui_gtk.c Tue Aug 29 17:28:56 2006 ---- src/gui_gtk.c Tue Oct 10 18:16:00 2006 -*************** -*** 1275,1292 **** - title = CONVERT_TO_UTF8(title); - # endif - -! /* Concatenate "initdir" and "dflt". */ - if (initdir == NULL || *initdir == NUL) - mch_dirname(dirbuf, MAXPATHL); -! else if (STRLEN(initdir) + 2 < MAXPATHL) -! STRCPY(dirbuf, initdir); -! else - dirbuf[0] = NUL; - /* Always need a trailing slash for a directory. */ - add_pathsep(dirbuf); -- if (dflt != NULL && *dflt != NUL -- && STRLEN(dirbuf) + 2 + STRLEN(dflt) < MAXPATHL) -- STRCAT(dirbuf, dflt); - - /* If our pointer is currently hidden, then we should show it. */ - gui_mch_mousehide(FALSE); ---- 1275,1287 ---- - title = CONVERT_TO_UTF8(title); - # endif - -! /* GTK has a bug, it only works with an absolute path. */ - if (initdir == NULL || *initdir == NUL) - mch_dirname(dirbuf, MAXPATHL); -! else if (vim_FullName(initdir, dirbuf, MAXPATHL - 2, FALSE) == FAIL) - dirbuf[0] = NUL; - /* Always need a trailing slash for a directory. */ - add_pathsep(dirbuf); - - /* If our pointer is currently hidden, then we should show it. */ - gui_mch_mousehide(FALSE); -*************** -*** 1340,1345 **** ---- 1335,1345 ---- - } - else - gtk_window_set_title(GTK_WINDOW(gui.filedlg), (const gchar *)title); -+ -+ /* Concatenate "initdir" and "dflt". */ -+ if (dflt != NULL && *dflt != NUL -+ && STRLEN(dirbuf) + 2 + STRLEN(dflt) < MAXPATHL) -+ STRCAT(dirbuf, dflt); - - gtk_file_selection_set_filename(GTK_FILE_SELECTION(gui.filedlg), - (const gchar *)dirbuf); -*** ../vim-7.0.128/src/version.c Tue Oct 10 17:36:50 2006 ---- src/version.c Tue Oct 10 18:25:11 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 129, - /**/ - --- -I'm not familiar with this proof, but I'm aware of a significant -following of toddlers who believe that peanut butter is the solution -to all of life's problems... -- Tim Hammerquist - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.130 b/7.0.130 deleted file mode 100644 index 50b2abe9..00000000 --- a/7.0.130 +++ /dev/null @@ -1,169 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.130 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.130 (extra) -Problem: Win32: Trying to edit or write devices may cause Vim to get stuck. -Solution: Add the 'opendevice' option, default off. Disallow - reading/writing from/to devices when it's off. - Also detect more devices by the full name starting with "\\.\". -Files: runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h, - src/os_win32.c - - -*** ../vim-7.0.129/runtime/doc/options.txt Sun May 7 17:07:10 2006 ---- runtime/doc/options.txt Tue Oct 10 17:34:48 2006 -*************** -*** 4792,4801 **** - completion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O| - See |complete-functions| for an explanation of how the function is - invoked and what it should return. -! This option is usually set by a filetype plugin. - |:filetype-plugin-on| - - - *'operatorfunc'* *'opfunc'* - 'operatorfunc' 'opfunc' string (default: empty) - global ---- 4815,4836 ---- - completion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O| - See |complete-functions| for an explanation of how the function is - invoked and what it should return. -! This option is usually set by a filetype plugin: - |:filetype-plugin-on| - - -+ *'opendevice* *'odev* *'noopendevice* *'noodev* -+ 'opendevice' 'odev' boolean (default off) -+ global -+ {not in Vi} -+ {only for MS-DOS, MS-Windows and OS/2} -+ Enable reading and writing from devices. This may get Vim stuck on a -+ device that can be opened but doesn't actually do the I/O. Therefore -+ it is off by default. -+ Note that on MS-Windows editing "aux.h", "lpt1.txt" and the like also -+ result in editing a device. -+ -+ - *'operatorfunc'* *'opfunc'* - 'operatorfunc' 'opfunc' string (default: empty) - global -*** ../vim-7.0.129/src/fileio.c Thu Sep 14 11:07:08 2006 ---- src/fileio.c Tue Oct 10 18:41:24 2006 -*************** -*** 419,424 **** ---- 419,438 ---- - } - #endif - -+ #if defined(MSDOS) || defined(MSWIN) || defined(OS2) -+ /* -+ * MS-Windows allows opening a device, but we will probably get stuck -+ * trying to read it. -+ */ -+ if (!p_odev && mch_nodetype(fname) == NODE_WRITABLE) -+ { -+ filemess(curbuf, fname, (char_u *)_("is a device (disabled with 'opendevice' option"), 0); -+ msg_end(); -+ msg_scroll = msg_save; -+ return FAIL; -+ } -+ #endif -+ - /* set default 'fileformat' */ - if (set_options) - { -*************** -*** 3163,3168 **** ---- 3177,3192 ---- - } - if (c == NODE_WRITABLE) - { -+ # if defined(MSDOS) || defined(MSWIN) || defined(OS2) -+ /* MS-Windows allows opening a device, but we will probably get stuck -+ * trying to write to it. */ -+ if (!p_odev) -+ { -+ errnum = (char_u *)"E796: "; -+ errmsg = (char_u *)_("writing to device disabled with 'opendevice' option"); -+ goto fail; -+ } -+ # endif - device = TRUE; - newfile = TRUE; - perm = -1; -*** ../vim-7.0.129/src/option.c Tue Sep 5 16:29:38 2006 ---- src/option.c Tue Oct 10 17:16:00 2006 -*************** -*** 1810,1815 **** ---- 1810,1823 ---- - {"open", NULL, P_BOOL|P_VI_DEF, - (char_u *)NULL, PV_NONE, - {(char_u *)FALSE, (char_u *)0L}}, -+ {"opendevice", "odev", P_BOOL|P_VI_DEF, -+ #if defined(MSDOS) || defined(MSWIN) || defined(OS2) -+ (char_u *)&p_odev, PV_NONE, -+ #else -+ (char_u *)NULL, PV_NONE, -+ #endif -+ {(char_u *)FALSE, (char_u *)FALSE} -+ }, - {"operatorfunc", "opfunc", P_STRING|P_VI_DEF|P_SECURE, - (char_u *)&p_opfunc, PV_NONE, - {(char_u *)"", (char_u *)0L} }, -*** ../vim-7.0.129/src/option.h Mon Apr 24 21:37:06 2006 ---- src/option.h Tue Oct 10 17:17:09 2006 -*************** -*** 618,623 **** ---- 618,626 ---- - #ifdef FEAT_MZSCHEME - EXTERN long p_mzq; /* 'mzquantum */ - #endif -+ #if defined(MSDOS) || defined(MSWIN) || defined(OS2) -+ EXTERN int p_odev; /* 'opendevice' */ -+ #endif - EXTERN char_u *p_opfunc; /* 'operatorfunc' */ - EXTERN char_u *p_para; /* 'paragraphs' */ - EXTERN int p_paste; /* 'paste' */ -*** ../vim-7.0.129/src/os_win32.c Sun Apr 23 00:24:31 2006 ---- src/os_win32.c Tue Oct 10 17:08:23 2006 -*************** -*** 2702,2707 **** ---- 2702,2713 ---- - HANDLE hFile; - int type; - -+ /* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to -+ * read from it later will cause Vim to hang. Thus return NODE_WRITABLE -+ * here. */ -+ if (STRNCMP(name, "\\\\.\\", 4) == 0) -+ return NODE_WRITABLE; -+ - hFile = CreateFile(name, /* file name */ - GENERIC_WRITE, /* access mode */ - 0, /* share mode */ -*** ../vim-7.0.129/src/version.c Tue Oct 10 18:29:21 2006 ---- src/version.c Tue Oct 10 18:37:12 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 130, - /**/ - --- -"Space is big. Really big. You just won't believe how vastly hugely mind- -bogglingly big it is. I mean, you may think it's a long way down the -road to the chemist, but that's just peanuts to space." - -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.131 b/7.0.131 deleted file mode 100644 index d43989fe..00000000 --- a/7.0.131 +++ /dev/null @@ -1,77 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.131 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.131 -Problem: Win32: "vim -r" does not list all the swap files. -Solution: Also check for swap files starting with a dot. -Files: src/memline.c - - -*** ../vim-7.0.130/src/memline.c Tue Oct 10 16:20:51 2006 ---- src/memline.c Tue Oct 10 21:54:21 2006 -*************** -*** 1400,1407 **** - names[0] = vim_strsave((char_u *)"*.sw?"); - # endif - #endif -! #ifdef UNIX -! /* for Unix names starting with a dot are special */ - names[1] = vim_strsave((char_u *)".*.sw?"); - names[2] = vim_strsave((char_u *)".sw?"); - num_names = 3; ---- 1400,1408 ---- - names[0] = vim_strsave((char_u *)"*.sw?"); - # endif - #endif -! #if defined(UNIX) || defined(WIN3264) -! /* For Unix names starting with a dot are special. MS-Windows -! * supports this too, on some file systems. */ - names[1] = vim_strsave((char_u *)".*.sw?"); - names[2] = vim_strsave((char_u *)".sw?"); - num_names = 3; -*************** -*** 1430,1437 **** - names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE); - # endif - #endif -! #ifdef UNIX -! /* for Unix names starting with a dot are special */ - names[1] = concat_fnames(dir_name, (char_u *)".*.sw?", TRUE); - names[2] = concat_fnames(dir_name, (char_u *)".sw?", TRUE); - num_names = 3; ---- 1431,1439 ---- - names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE); - # endif - #endif -! #if defined(UNIX) || defined(WIN3264) -! /* For Unix names starting with a dot are special. MS-Windows -! * supports this too, on some file systems. */ - names[1] = concat_fnames(dir_name, (char_u *)".*.sw?", TRUE); - names[2] = concat_fnames(dir_name, (char_u *)".sw?", TRUE); - num_names = 3; -*** ../vim-7.0.130/src/version.c Tue Oct 10 18:43:50 2006 ---- src/version.c Tue Oct 10 21:55:02 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 131, - /**/ - --- -Apparently, 1 in 5 people in the world are Chinese. And there are 5 -people in my family, so it must be one of them. It's either my mum -or my dad. Or my older brother Colin. Or my younger brother -Ho-Cha-Chu. But I think it's Colin. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.132 b/7.0.132 deleted file mode 100644 index fd479c72..00000000 --- a/7.0.132 +++ /dev/null @@ -1,78 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.132 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.132 (after 7.0.130) -Problem: Win32: Crash when Vim reads from stdin. -Solution: Only use mch_nodetype() when there is a file name. -Files: src/fileio.c - - -*** ../vim-7.0.131/src/fileio.c Tue Oct 10 18:43:50 2006 ---- src/fileio.c Thu Oct 12 20:50:35 2006 -*************** -*** 416,435 **** - msg_scroll = msg_save; - return FAIL; - } -- } -- #endif - -! #if defined(MSDOS) || defined(MSWIN) || defined(OS2) -! /* -! * MS-Windows allows opening a device, but we will probably get stuck -! * trying to read it. -! */ -! if (!p_odev && mch_nodetype(fname) == NODE_WRITABLE) -! { -! filemess(curbuf, fname, (char_u *)_("is a device (disabled with 'opendevice' option"), 0); -! msg_end(); -! msg_scroll = msg_save; -! return FAIL; - } - #endif - ---- 416,435 ---- - msg_scroll = msg_save; - return FAIL; - } - -! # if defined(MSDOS) || defined(MSWIN) || defined(OS2) -! /* -! * MS-Windows allows opening a device, but we will probably get stuck -! * trying to read it. -! */ -! if (!p_odev && mch_nodetype(fname) == NODE_WRITABLE) -! { -! filemess(curbuf, fname, (char_u *)_("is a device (disabled with 'opendevice' option"), 0); -! msg_end(); -! msg_scroll = msg_save; -! return FAIL; -! } -! # endif - } - #endif - -*** ../vim-7.0.131/src/version.c Tue Oct 10 21:56:37 2006 ---- src/version.c Thu Oct 12 21:13:34 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 132, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -31. You code your homework in HTML and give your instructor the URL. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.133 b/7.0.133 deleted file mode 100644 index cd15433b..00000000 --- a/7.0.133 +++ /dev/null @@ -1,93 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.133 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.133 -Problem: When searching included files messages are added to the history. -Solution: Set msg_hist_off for messages about scanning included files. - Set msg_silent to avoid message about wrapping around. -Files: src/edit.c, src/globals.h, src/message.c, src/search.c - - -*** ../vim-7.0.132/src/edit.c Tue Oct 10 15:49:41 2006 ---- src/edit.c Sat Oct 14 14:22:09 2006 -*************** -*** 3909,3914 **** ---- 3909,3916 ---- - { - int flags = 0; - -+ ++msg_silent; /* Don't want messages for wrapscan. */ -+ - /* ctrl_x_mode == CTRL_X_WHOLE_LINE || word-wise search that - * has added a word that was at the beginning of the line */ - if ( ctrl_x_mode == CTRL_X_WHOLE_LINE -*************** -*** 3920,3925 **** ---- 3922,3928 ---- - compl_direction, - compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG, - RE_LAST, (linenr_T)0); -+ --msg_silent; - if (!compl_started) - { - /* set "compl_started" even on fail */ -*** ../vim-7.0.132/src/globals.h Tue Sep 5 12:57:14 2006 ---- src/globals.h Sat Oct 14 14:05:02 2006 -*************** -*** 166,171 **** ---- 166,172 ---- - EXTERN int emsg_off INIT(= 0); /* don't display errors for now, - unless 'debug' is set. */ - EXTERN int info_message INIT(= FALSE); /* printing informative message */ -+ EXTERN int msg_hist_off INIT(= FALSE); /* don't add messages to history */ - #ifdef FEAT_EVAL - EXTERN int emsg_skip INIT(= 0); /* don't display errors for - expression that is skipped */ -*** ../vim-7.0.132/src/message.c Tue Oct 3 17:21:04 2006 ---- src/message.c Sat Oct 14 14:03:58 2006 -*************** -*** 53,59 **** - static struct msg_hist *first_msg_hist = NULL; - static struct msg_hist *last_msg_hist = NULL; - static int msg_hist_len = 0; -- static int msg_hist_off = FALSE; /* don't add messages to history */ - - /* - * When writing messages to the screen, there are many different situations. ---- 53,58 ---- -*** ../vim-7.0.132/src/search.c Tue Aug 29 18:01:39 2006 ---- src/search.c Sat Oct 14 14:15:26 2006 -*************** -*** 4688,4693 **** ---- 4688,4694 ---- - #ifdef FEAT_INS_EXPAND - if (action == ACTION_EXPAND) - { -+ msg_hist_off = TRUE; /* reset in msg_trunc_attr() */ - vim_snprintf((char*)IObuff, IOSIZE, - _("Scanning included file: %s"), - (char *)new_fname); -*** ../vim-7.0.132/src/version.c Thu Oct 12 21:15:04 2006 ---- src/version.c Sat Oct 14 14:32:31 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 133, - /**/ - --- -You have the right to remain silent. Anything you say will be -misquoted, then used against you. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.134 b/7.0.134 deleted file mode 100644 index 8eed9c59..00000000 --- a/7.0.134 +++ /dev/null @@ -1,83 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.134 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.134 -Problem: Crash when comparing a recursively looped List or Dictionary. -Solution: Limit recursiveness for comparing to 1000. -Files: src/eval.c - - -*** ../vim-7.0.133/src/eval.c Tue Oct 10 12:56:09 2006 ---- src/eval.c Sun Oct 15 15:08:13 2006 -*************** -*** 5520,5538 **** - { - char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN]; - char_u *s1, *s2; - -! if (tv1->v_type != tv2->v_type) - return FALSE; - - switch (tv1->v_type) - { - case VAR_LIST: -! /* recursive! */ -! return list_equal(tv1->vval.v_list, tv2->vval.v_list, ic); - - case VAR_DICT: -! /* recursive! */ -! return dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic); - - case VAR_FUNC: - return (tv1->vval.v_string != NULL ---- 5520,5546 ---- - { - char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN]; - char_u *s1, *s2; -+ static int recursive = 0; /* cach recursive loops */ -+ int r; - -! /* Catch lists and dicts that have an endless loop by limiting -! * recursiveness to 1000. */ -! if (tv1->v_type != tv2->v_type || recursive >= 1000) - return FALSE; - - switch (tv1->v_type) - { - case VAR_LIST: -! ++recursive; -! r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic); -! --recursive; -! return r; - - case VAR_DICT: -! ++recursive; -! r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic); -! --recursive; -! return r; - - case VAR_FUNC: - return (tv1->vval.v_string != NULL -*** ../vim-7.0.133/src/version.c Sat Oct 14 14:33:21 2006 ---- src/version.c Sun Oct 15 15:03:30 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 134, - /**/ - --- -It was recently discovered that research causes cancer in rats. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.135 b/7.0.135 deleted file mode 100644 index 3663d670..00000000 --- a/7.0.135 +++ /dev/null @@ -1,362 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.135 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.135 -Problem: Crash when garbage collecting list or dict with loop. -Solution: Don't use DEL_REFCOUNT but don't recurse into Lists and - Dictionaries when freeing them in the garbage collector. - Also add allocated Dictionaries to the list of Dictionaries to - avoid leaking memory. -Files: src/eval.c, src/proto/eval.pro, src/tag.c - - -*** ../vim-7.0.134/src/eval.c Sun Oct 15 15:10:08 2006 ---- src/eval.c Sun Oct 15 22:30:09 2006 -*************** -*** 191,198 **** - #define FC_RANGE 2 /* function accepts range */ - #define FC_DICT 4 /* Dict function, uses "self" */ - -- #define DEL_REFCOUNT 999999 /* list/dict is being deleted */ -- - /* - * All user-defined functions are found in this hashtable. - */ ---- 191,196 ---- -*************** -*** 435,441 **** - static void set_ref_in_list __ARGS((list_T *l, int copyID)); - static void set_ref_in_item __ARGS((typval_T *tv, int copyID)); - static void dict_unref __ARGS((dict_T *d)); -! static void dict_free __ARGS((dict_T *d)); - static dictitem_T *dictitem_alloc __ARGS((char_u *key)); - static dictitem_T *dictitem_copy __ARGS((dictitem_T *org)); - static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item)); ---- 433,439 ---- - static void set_ref_in_list __ARGS((list_T *l, int copyID)); - static void set_ref_in_item __ARGS((typval_T *tv, int copyID)); - static void dict_unref __ARGS((dict_T *d)); -! static void dict_free __ARGS((dict_T *d, int recurse)); - static dictitem_T *dictitem_alloc __ARGS((char_u *key)); - static dictitem_T *dictitem_copy __ARGS((dictitem_T *org)); - static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item)); -*************** -*** 4899,4905 **** - { - if (list_append_tv(l, &item->li_tv) == FAIL) - { -! list_free(l); - return FAIL; - } - item = item->li_next; ---- 4897,4903 ---- - { - if (list_append_tv(l, &item->li_tv) == FAIL) - { -! list_free(l, TRUE); - return FAIL; - } - item = item->li_next; -*************** -*** 5299,5305 **** - EMSG2(_("E697: Missing end of List ']': %s"), *arg); - failret: - if (evaluate) -! list_free(l); - return FAIL; - } - ---- 5297,5303 ---- - EMSG2(_("E697: Missing end of List ']': %s"), *arg); - failret: - if (evaluate) -! list_free(l, TRUE); - return FAIL; - } - -*************** -*** 5363,5370 **** - list_unref(l) - list_T *l; - { -! if (l != NULL && l->lv_refcount != DEL_REFCOUNT && --l->lv_refcount <= 0) -! list_free(l); - } - - /* ---- 5361,5368 ---- - list_unref(l) - list_T *l; - { -! if (l != NULL && --l->lv_refcount <= 0) -! list_free(l, TRUE); - } - - /* -*************** -*** 5372,5385 **** - * Ignores the reference count. - */ - void -! list_free(l) -! list_T *l; - { - listitem_T *item; - -- /* Avoid that recursive reference to the list frees us again. */ -- l->lv_refcount = DEL_REFCOUNT; -- - /* Remove the list from the list of lists for garbage collection. */ - if (l->lv_used_prev == NULL) - first_list = l->lv_used_next; ---- 5370,5381 ---- - * Ignores the reference count. - */ - void -! list_free(l, recurse) -! list_T *l; -! int recurse; /* Free Lists and Dictionaries recursively. */ - { - listitem_T *item; - - /* Remove the list from the list of lists for garbage collection. */ - if (l->lv_used_prev == NULL) - first_list = l->lv_used_next; -*************** -*** 5392,5398 **** - { - /* Remove the item before deleting it. */ - l->lv_first = item->li_next; -! listitem_free(item); - } - vim_free(l); - } ---- 5388,5397 ---- - { - /* Remove the item before deleting it. */ - l->lv_first = item->li_next; -! if (recurse || (item->li_tv.v_type != VAR_LIST -! && item->li_tv.v_type != VAR_DICT)) -! clear_tv(&item->li_tv); -! vim_free(item); - } - vim_free(l); - } -*************** -*** 6113,6119 **** - for (dd = first_dict; dd != NULL; ) - if (dd->dv_copyID != copyID) - { -! dict_free(dd); - did_free = TRUE; - - /* restart, next dict may also have been freed */ ---- 6118,6127 ---- - for (dd = first_dict; dd != NULL; ) - if (dd->dv_copyID != copyID) - { -! /* Free the Dictionary and ordinary items it contains, but don't -! * recurse into Lists and Dictionaries, they will be in the list -! * of dicts or list of lists. */ -! dict_free(dd, FALSE); - did_free = TRUE; - - /* restart, next dict may also have been freed */ -*************** -*** 6130,6136 **** - for (ll = first_list; ll != NULL; ) - if (ll->lv_copyID != copyID && ll->lv_watch == NULL) - { -! list_free(ll); - did_free = TRUE; - - /* restart, next list may also have been freed */ ---- 6138,6147 ---- - for (ll = first_list; ll != NULL; ) - if (ll->lv_copyID != copyID && ll->lv_watch == NULL) - { -! /* Free the List and ordinary items it contains, but don't recurse -! * into Lists and Dictionaries, they will be in the list of dicts -! * or list of lists. */ -! list_free(ll, FALSE); - did_free = TRUE; - - /* restart, next list may also have been freed */ -*************** -*** 6223,6233 **** - d = (dict_T *)alloc(sizeof(dict_T)); - if (d != NULL) - { -! /* Add the list to the hashtable for garbage collection. */ - if (first_dict != NULL) - first_dict->dv_used_prev = d; - d->dv_used_next = first_dict; - d->dv_used_prev = NULL; - - hash_init(&d->dv_hashtab); - d->dv_lock = 0; ---- 6234,6245 ---- - d = (dict_T *)alloc(sizeof(dict_T)); - if (d != NULL) - { -! /* Add the list to the list of dicts for garbage collection. */ - if (first_dict != NULL) - first_dict->dv_used_prev = d; - d->dv_used_next = first_dict; - d->dv_used_prev = NULL; -+ first_dict = d; - - hash_init(&d->dv_hashtab); - d->dv_lock = 0; -*************** -*** 6245,6252 **** - dict_unref(d) - dict_T *d; - { -! if (d != NULL && d->dv_refcount != DEL_REFCOUNT && --d->dv_refcount <= 0) -! dict_free(d); - } - - /* ---- 6257,6264 ---- - dict_unref(d) - dict_T *d; - { -! if (d != NULL && --d->dv_refcount <= 0) -! dict_free(d, TRUE); - } - - /* -*************** -*** 6254,6269 **** - * Ignores the reference count. - */ - static void -! dict_free(d) -! dict_T *d; - { - int todo; - hashitem_T *hi; - dictitem_T *di; - -- /* Avoid that recursive reference to the dict frees us again. */ -- d->dv_refcount = DEL_REFCOUNT; -- - /* Remove the dict from the list of dicts for garbage collection. */ - if (d->dv_used_prev == NULL) - first_dict = d->dv_used_next; ---- 6266,6279 ---- - * Ignores the reference count. - */ - static void -! dict_free(d, recurse) -! dict_T *d; -! int recurse; /* Free Lists and Dictionaries recursively. */ - { - int todo; - hashitem_T *hi; - dictitem_T *di; - - /* Remove the dict from the list of dicts for garbage collection. */ - if (d->dv_used_prev == NULL) - first_dict = d->dv_used_next; -*************** -*** 6283,6289 **** - * something recursive causing trouble. */ - di = HI2DI(hi); - hash_remove(&d->dv_hashtab, hi); -! dictitem_free(di); - --todo; - } - } ---- 6293,6302 ---- - * something recursive causing trouble. */ - di = HI2DI(hi); - hash_remove(&d->dv_hashtab, hi); -! if (recurse || (di->di_tv.v_type != VAR_LIST -! && di->di_tv.v_type != VAR_DICT)) -! clear_tv(&di->di_tv); -! vim_free(di); - --todo; - } - } -*************** -*** 6734,6740 **** - EMSG2(_("E723: Missing end of Dictionary '}': %s"), *arg); - failret: - if (evaluate) -! dict_free(d); - return FAIL; - } - ---- 6747,6753 ---- - EMSG2(_("E723: Missing end of Dictionary '}': %s"), *arg); - failret: - if (evaluate) -! dict_free(d, TRUE); - return FAIL; - } - -*** ../vim-7.0.134/src/proto/eval.pro Fri Mar 24 23:16:28 2006 ---- src/proto/eval.pro Sun Oct 15 22:08:11 2006 -*************** -*** 44,50 **** - extern char_u *get_user_var_name __ARGS((expand_T *xp, int idx)); - extern list_T *list_alloc __ARGS((void)); - extern void list_unref __ARGS((list_T *l)); -! extern void list_free __ARGS((list_T *l)); - extern dictitem_T *dict_lookup __ARGS((hashitem_T *hi)); - extern int list_append_dict __ARGS((list_T *list, dict_T *dict)); - extern int garbage_collect __ARGS((void)); ---- 44,50 ---- - extern char_u *get_user_var_name __ARGS((expand_T *xp, int idx)); - extern list_T *list_alloc __ARGS((void)); - extern void list_unref __ARGS((list_T *l)); -! extern void list_free __ARGS((list_T *l, int recurse)); - extern dictitem_T *dict_lookup __ARGS((hashitem_T *hi)); - extern int list_append_dict __ARGS((list_T *list, dict_T *dict)); - extern int garbage_collect __ARGS((void)); -*** ../vim-7.0.134/src/tag.c Sun Sep 10 13:56:06 2006 ---- src/tag.c Sun Oct 15 21:44:56 2006 -*************** -*** 911,917 **** - - set_errorlist(curwin, list, ' '); - -! list_free(list); - - cur_match = 0; /* Jump to the first tag */ - } ---- 911,917 ---- - - set_errorlist(curwin, list, ' '); - -! list_free(list, TRUE); - - cur_match = 0; /* Jump to the first tag */ - } -*** ../vim-7.0.134/src/version.c Sun Oct 15 15:10:08 2006 ---- src/version.c Sun Oct 15 22:01:53 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 135, - /**/ - --- -Well, you come from nothing, you go back to nothing... What have you -lost? Nothing! - -- Monty Python: The life of Brian - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.136 b/7.0.136 deleted file mode 100644 index 75842f4d..00000000 --- a/7.0.136 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.136 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.136 -Problem: Using "O" while matching parens are highlighted may not remove the - highlighting. (Ilya Bobir) -Solution: Also trigger CursorMoved when a line is inserted under the cursor. -Files: src/misc1.c - - -*** ../vim-7.0.135/src/misc1.c Fri Sep 15 20:17:49 2006 ---- src/misc1.c Tue Oct 17 11:11:42 2006 -*************** -*** 2842,2848 **** - - #ifdef FEAT_AUTOCMD - /* when the cursor line is changed always trigger CursorMoved */ -! if (lnum <= curwin->w_cursor.lnum && lnume > curwin->w_cursor.lnum) - last_cursormoved.lnum = 0; - #endif - } ---- 2842,2849 ---- - - #ifdef FEAT_AUTOCMD - /* when the cursor line is changed always trigger CursorMoved */ -! if (lnum <= curwin->w_cursor.lnum -! && lnume + (xtra < 0 ? -xtra : xtra) > curwin->w_cursor.lnum) - last_cursormoved.lnum = 0; - #endif - } -*** ../vim-7.0.135/src/version.c Sun Oct 15 22:38:41 2006 ---- src/version.c Tue Oct 17 11:10:21 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 136, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -46. Your wife makes a new rule: "The computer cannot come to bed." - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.137 b/7.0.137 deleted file mode 100644 index 83296aed..00000000 --- a/7.0.137 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.137 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.137 -Problem: Configure check for big features is wrong. -Solution: Change "==" to "=". (Martti Kuparinen) -Files: src/auto/configure, src/configure.in - - -*** ../vim-7.0.136/src/auto/configure Tue Oct 10 11:40:53 2006 ---- src/auto/configure Tue Oct 17 11:41:59 2006 -*************** -*** 15302,15308 **** - && test "x$GUITYPE" != "xCARBONGUI"; then - echo "$as_me:$LINENO: checking whether we need -framework Carbon" >&5 - echo $ECHO_N "checking whether we need -framework Carbon... $ECHO_C" >&6 -! if test "x$enable_multibyte" = "xyes" || test "x$features" == "xbig" \ - || test "x$features" = "xhuge"; then - LIBS="$LIBS -framework Carbon" - echo "$as_me:$LINENO: result: yes" >&5 ---- 15302,15308 ---- - && test "x$GUITYPE" != "xCARBONGUI"; then - echo "$as_me:$LINENO: checking whether we need -framework Carbon" >&5 - echo $ECHO_N "checking whether we need -framework Carbon... $ECHO_C" >&6 -! if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \ - || test "x$features" = "xhuge"; then - LIBS="$LIBS -framework Carbon" - echo "$as_me:$LINENO: result: yes" >&5 -*** ../vim-7.0.136/src/configure.in Tue Oct 10 11:40:53 2006 ---- src/configure.in Tue Oct 17 11:40:59 2006 -*************** -*** 2838,2844 **** - && test "x$GUITYPE" != "xCARBONGUI"; then - AC_MSG_CHECKING(whether we need -framework Carbon) - dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE -! if test "x$enable_multibyte" = "xyes" || test "x$features" == "xbig" \ - || test "x$features" = "xhuge"; then - LIBS="$LIBS -framework Carbon" - AC_MSG_RESULT(yes) ---- 2838,2844 ---- - && test "x$GUITYPE" != "xCARBONGUI"; then - AC_MSG_CHECKING(whether we need -framework Carbon) - dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE -! if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \ - || test "x$features" = "xhuge"; then - LIBS="$LIBS -framework Carbon" - AC_MSG_RESULT(yes) -*** ../vim-7.0.136/src/version.c Tue Oct 17 11:12:28 2006 ---- src/version.c Tue Oct 17 11:49:14 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 137, - /**/ - --- -CVS sux, men don't like commitment - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.138 b/7.0.138 deleted file mode 100644 index 25b82cb3..00000000 --- a/7.0.138 +++ /dev/null @@ -1,419 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.138 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.138 (extra) -Problem: Mac: modifiers don't work with function keys. -Solution: Use GetEventParameter() to obtain modifiers. (Nicolas Weber) -Files: src/gui_mac.c - - -*** ../vim-7.0.137/src/gui_mac.c Tue Aug 22 21:39:18 2006 ---- src/gui_mac.c Sun Oct 15 14:53:38 2006 -*************** -*** 2014,2020 **** - void *data) - { - /* Multibyte-friendly key event handler */ -! OSStatus e = -1; - UInt32 actualSize; - UniChar *text; - char_u result[INLINE_KEY_BUFFER_SIZE]; ---- 2014,2020 ---- - void *data) - { - /* Multibyte-friendly key event handler */ -! OSStatus err = -1; - UInt32 actualSize; - UniChar *text; - char_u result[INLINE_KEY_BUFFER_SIZE]; -*************** -*** 2022,2195 **** - UInt32 key_sym; - char charcode; - int key_char; -! UInt32 modifiers; - size_t encLen; - char_u *to = NULL; - Boolean isSpecial = FALSE; - int i; - - /* Mask the mouse (as per user setting) */ - if (p_mh) - ObscureCursor(); - -! do -! { -! /* Don't use the keys when the dialog wants them. */ -! if (dialog_busy) -! break; - -! if (noErr != GetEventParameter(theEvent, kEventParamTextInputSendText, -! typeUnicodeText, NULL, 0, &actualSize, NULL)) -! break; - -! text = (UniChar *)alloc(actualSize); - -! if (text) -! { -! do -! { -! if (noErr != GetEventParameter(theEvent, -! kEventParamTextInputSendText, -! typeUnicodeText, NULL, actualSize, NULL, text)) -! break; -! EventRef keyEvent; -! if (noErr != GetEventParameter(theEvent, -! kEventParamTextInputSendKeyboardEvent, -! typeEventRef, NULL, sizeof(EventRef), NULL, &keyEvent)) -! break; -! if (noErr != GetEventParameter(keyEvent, -! kEventParamKeyModifiers, -! typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers)) -! break; -! if (noErr != GetEventParameter(keyEvent, -! kEventParamKeyCode, -! typeUInt32, NULL, sizeof(UInt32), NULL, &key_sym)) -! break; -! if (noErr != GetEventParameter(keyEvent, -! kEventParamKeyMacCharCodes, -! typeChar, NULL, sizeof(char), NULL, &charcode)) -! break; - -! key_char = charcode; - -! if (modifiers & controlKey) -! { -! if ((modifiers & ~(controlKey|shiftKey)) == 0 -! && (key_char == '2' || key_char == '6')) -! { -! /* CTRL-^ and CTRL-@ don't work in the normal way. */ -! if (key_char == '2') -! key_char = Ctrl_AT; -! else -! key_char = Ctrl_HAT; - -! text[0] = (UniChar)key_char; -! modifiers = 0; -! } -! } - -! if (modifiers & cmdKey) -! #ifndef USE_CMD_KEY -! break; /* Let system handle Cmd+... */ -! #else -! { -! /* Intercept CMD-. */ -! if (key_char == '.') -! got_int = TRUE; -! -! /* Convert the modifiers */ -! modifiers = EventModifiers2VimModifiers(modifiers); -! -! /* Following code to simplify and consolidate modifiers -! * taken liberally from gui_w48.c */ -! -! key_char = simplify_key(key_char, (int *)&modifiers); -! -! /* remove SHIFT for keys that are already shifted, e.g., -! * '(' and '*' */ -! if (key_char < 0x100 && -! !isalpha(key_char) && isprint(key_char)) -! modifiers &= ~MOD_MASK_SHIFT; -! -! /* Interpret META, include SHIFT, etc. */ -! key_char = extract_modifiers(key_char, (int *)&modifiers); -! if (key_char == CSI) -! key_char = K_CSI; - -! if (modifiers) -! { -! result[len++] = CSI; -! result[len++] = KS_MODIFIER; -! result[len++] = modifiers; -! } - -! isSpecial = TRUE; -! } -! #endif -! else -! { -! /* Find the special key (eg., for cursor keys) */ -! if (!(actualSize > sizeof(UniChar)) && -! ((text[0] < 0x20) || (text[0] == 0x7f))) -! { -! for (i = 0; special_keys[i].key_sym != (KeySym)0; ++i) -! if (special_keys[i].key_sym == key_sym) -! { -! key_char = TO_SPECIAL(special_keys[i].vim_code0, -! special_keys[i].vim_code1); -! key_char = simplify_key(key_char, -! (int *)&modifiers); -! isSpecial = TRUE; -! break; -! } -! } -! } - -! if (isSpecial && IS_SPECIAL(key_char)) -! { -! result[len++] = CSI; -! result[len++] = K_SECOND(key_char); -! result[len++] = K_THIRD(key_char); -! } -! else -! { -! encLen = actualSize; -! to = mac_utf16_to_enc(text, actualSize, &encLen); -! } - -! if (to) -! { -! /* This is basically add_to_input_buf_csi() */ -! for (i = 0; i < encLen && len < (INLINE_KEY_BUFFER_SIZE-1); ++i) -! { -! result[len++] = to[i]; -! if (to[i] == CSI) -! { -! result[len++] = KS_EXTRA; -! result[len++] = (int)KE_CSI; -! } -! } -! vim_free(to); -! } - -! add_to_input_buf(result, len); -! e = noErr; -! } -! while (0); - -! vim_free(text); -! if (e == noErr) -! { -! /* Fake event to wake up WNE (required to get -! * key repeat working */ -! PostEvent(keyUp, 0); -! return noErr; -! } -! } - } -- while (0); - -! return CallNextEventHandler(nextHandler, theEvent); - } - #else - void ---- 2022,2174 ---- - UInt32 key_sym; - char charcode; - int key_char; -! UInt32 modifiers, vimModifiers; - size_t encLen; - char_u *to = NULL; - Boolean isSpecial = FALSE; - int i; -+ EventRef keyEvent; - - /* Mask the mouse (as per user setting) */ - if (p_mh) - ObscureCursor(); - -! /* Don't use the keys when the dialog wants them. */ -! if (dialog_busy) -! return eventNotHandledErr; -! -! if (noErr != GetEventParameter(theEvent, kEventParamTextInputSendText, -! typeUnicodeText, NULL, 0, &actualSize, NULL)) -! return eventNotHandledErr; -! -! text = (UniChar *)alloc(actualSize); -! if (!text) -! return eventNotHandledErr; -! -! err = GetEventParameter(theEvent, kEventParamTextInputSendText, -! typeUnicodeText, NULL, actualSize, NULL, text); -! require_noerr(err, done); -! -! err = GetEventParameter(theEvent, kEventParamTextInputSendKeyboardEvent, -! typeEventRef, NULL, sizeof(EventRef), NULL, &keyEvent); -! require_noerr(err, done); -! -! err = GetEventParameter(keyEvent, kEventParamKeyModifiers, -! typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers); -! require_noerr(err, done); -! -! err = GetEventParameter(keyEvent, kEventParamKeyCode, -! typeUInt32, NULL, sizeof(UInt32), NULL, &key_sym); -! require_noerr(err, done); -! -! err = GetEventParameter(keyEvent, kEventParamKeyMacCharCodes, -! typeChar, NULL, sizeof(char), NULL, &charcode); -! require_noerr(err, done); - -! #ifndef USE_CMD_KEY -! if (modifiers & cmdKey) -! goto done; /* Let system handle Cmd+... */ -! #endif - -! key_char = charcode; -! vimModifiers = EventModifiers2VimModifiers(modifiers); - -! /* Find the special key (eg., for cursor keys) */ -! if (actualSize <= sizeof(UniChar) && -! ((text[0] < 0x20) || (text[0] == 0x7f))) -! { -! for (i = 0; special_keys[i].key_sym != (KeySym)0; ++i) -! if (special_keys[i].key_sym == key_sym) -! { -! key_char = TO_SPECIAL(special_keys[i].vim_code0, -! special_keys[i].vim_code1); -! key_char = simplify_key(key_char, -! (int *)&vimModifiers); -! isSpecial = TRUE; -! break; -! } -! } - -! /* Intercept CMD-. and CTRL-c */ -! if (((modifiers & controlKey) && key_char == 'c') || -! ((modifiers & cmdKey) && key_char == '.')) -! got_int = TRUE; - -! if (!isSpecial) -! { -! /* remove SHIFT for keys that are already shifted, e.g., -! * '(' and '*' */ -! if (key_char < 0x100 && !isalpha(key_char) && isprint(key_char)) -! vimModifiers &= ~MOD_MASK_SHIFT; - -! /* remove CTRL from keys that already have it */ -! if (key_char < 0x20) -! vimModifiers &= ~MOD_MASK_CTRL; - -! /* don't process unicode characters here */ -! if (!IS_SPECIAL(key_char)) -! { -! /* Following code to simplify and consolidate vimModifiers -! * taken liberally from gui_w48.c */ -! key_char = simplify_key(key_char, (int *)&vimModifiers); - -! /* Interpret META, include SHIFT, etc. */ -! key_char = extract_modifiers(key_char, (int *)&vimModifiers); -! if (key_char == CSI) -! key_char = K_CSI; - -! if (IS_SPECIAL(key_char)) -! isSpecial = TRUE; -! } -! } - -! if (vimModifiers) -! { -! result[len++] = CSI; -! result[len++] = KS_MODIFIER; -! result[len++] = vimModifiers; -! } - -! if (isSpecial && IS_SPECIAL(key_char)) -! { -! result[len++] = CSI; -! result[len++] = K_SECOND(key_char); -! result[len++] = K_THIRD(key_char); -! } -! else -! { -! encLen = actualSize; -! to = mac_utf16_to_enc(text, actualSize, &encLen); -! if (to) -! { -! /* This is basically add_to_input_buf_csi() */ -! for (i = 0; i < encLen && len < (INLINE_KEY_BUFFER_SIZE-1); ++i) -! { -! result[len++] = to[i]; -! if (to[i] == CSI) -! { -! result[len++] = KS_EXTRA; -! result[len++] = (int)KE_CSI; -! } -! } -! vim_free(to); -! } -! } - -! add_to_input_buf(result, len); -! err = noErr; - -! done: -! vim_free(text); -! if (err == noErr) -! { -! /* Fake event to wake up WNE (required to get -! * key repeat working */ -! PostEvent(keyUp, 0); -! return noErr; - } - -! return eventNotHandledErr; - } - #else - void -*************** -*** 5748,5754 **** - /* TODO: Get the text selection from Vim */ - - /* Call to Handle Popup */ -! status = ContextualMenuSelect(CntxMenu, where, false, kCMHelpItemNoHelp, HelpName, NULL, &CntxType, &CntxMenuID, &CntxMenuItem); - - if (status == noErr) - { ---- 5727,5734 ---- - /* TODO: Get the text selection from Vim */ - - /* Call to Handle Popup */ -! status = ContextualMenuSelect(CntxMenu, where, false, kCMHelpItemNoHelp, -! HelpName, NULL, &CntxType, &CntxMenuID, &CntxMenuItem); - - if (status == noErr) - { -*************** -*** 5756,5762 **** - { - /* Handle the menu CntxMenuID, CntxMenuItem */ - /* The submenu can be handle directly by gui_mac_handle_menu */ -! /* But what about the current menu, is the menu changed by ContextualMenuSelect */ - gui_mac_handle_menu((CntxMenuID << 16) + CntxMenuItem); - } - else if (CntxMenuID == kCMShowHelpSelected) ---- 5736,5743 ---- - { - /* Handle the menu CntxMenuID, CntxMenuItem */ - /* The submenu can be handle directly by gui_mac_handle_menu */ -! /* But what about the current menu, is the menu changed by -! * ContextualMenuSelect */ - gui_mac_handle_menu((CntxMenuID << 16) + CntxMenuItem); - } - else if (CntxMenuID == kCMShowHelpSelected) -*** ../vim-7.0.137/src/version.c Tue Oct 17 11:50:45 2006 ---- src/version.c Tue Oct 17 12:51:21 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 138, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -52. You ask a plumber how much it would cost to replace the chair in front of - your computer with a toilet. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.139 b/7.0.139 deleted file mode 100644 index 89a91f59..00000000 --- a/7.0.139 +++ /dev/null @@ -1,79 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.139 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.139 -Problem: Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another - tab page does not prepare for undo properly. (Stefano Zacchiroli) -Solution: Call start_arrow() before switching tab page. -Files: src/edit.c - - -*** ../vim-7.0.138/src/edit.c Sat Oct 14 14:33:21 2006 ---- src/edit.c Mon Oct 16 21:28:05 2006 -*************** -*** 8822,8828 **** - if (mod_mask & MOD_MASK_CTRL) - { - /* : tab page back */ -! goto_tabpage(-1); - return; - } - #endif ---- 8822,8832 ---- - if (mod_mask & MOD_MASK_CTRL) - { - /* : tab page back */ -! if (first_tabpage->tp_next != NULL) -! { -! start_arrow(&curwin->w_cursor); -! goto_tabpage(-1); -! } - return; - } - #endif -*************** -*** 8881,8887 **** - if (mod_mask & MOD_MASK_CTRL) - { - /* : tab page forward */ -! goto_tabpage(0); - return; - } - #endif ---- 8885,8895 ---- - if (mod_mask & MOD_MASK_CTRL) - { - /* : tab page forward */ -! if (first_tabpage->tp_next != NULL) -! { -! start_arrow(&curwin->w_cursor); -! goto_tabpage(0); -! } - return; - } - #endif -*** ../vim-7.0.138/src/version.c Tue Oct 17 12:53:31 2006 ---- src/version.c Tue Oct 17 13:38:27 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 139, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -53. To find out what time it is, you send yourself an e-mail and check the - "Date:" field. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.140 b/7.0.140 deleted file mode 100644 index 39b629e3..00000000 --- a/7.0.140 +++ /dev/null @@ -1,82 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.140 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.140 (after 7.0.134) -Problem: Comparing recursively looped List or Dictionary doesn't work well. -Solution: Detect comparing a List or Dictionary with itself. -Files: src/eval.c - - -*** ../vim-7.0.139/src/eval.c Sun Oct 15 22:38:41 2006 ---- src/eval.c Sun Oct 15 22:30:09 2006 -*************** -*** 5451,5456 **** ---- 5451,5458 ---- - { - listitem_T *item1, *item2; - -+ if (l1 == l2) -+ return TRUE; - if (list_len(l1) != list_len(l2)) - return FALSE; - -*************** -*** 5487,5492 **** ---- 5489,5496 ---- - dictitem_T *item2; - int todo; - -+ if (d1 == d2) -+ return TRUE; - if (dict_len(d1) != dict_len(d2)) - return FALSE; - -*************** -*** 5522,5531 **** - static int recursive = 0; /* cach recursive loops */ - int r; - -! /* Catch lists and dicts that have an endless loop by limiting -! * recursiveness to 1000. */ -! if (tv1->v_type != tv2->v_type || recursive >= 1000) - return FALSE; - - switch (tv1->v_type) - { ---- 5526,5537 ---- - static int recursive = 0; /* cach recursive loops */ - int r; - -! if (tv1->v_type != tv2->v_type) - return FALSE; -+ /* Catch lists and dicts that have an endless loop by limiting -+ * recursiveness to 1000. We guess they are equal then. */ -+ if (recursive >= 1000) -+ return TRUE; - - switch (tv1->v_type) - { -*** ../vim-7.0.139/src/version.c Tue Oct 17 13:39:36 2006 ---- src/version.c Tue Oct 17 15:15:04 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 140, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -54. You start tilting your head sideways to smile. :-) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.141 b/7.0.141 deleted file mode 100644 index a8b4f0b8..00000000 --- a/7.0.141 +++ /dev/null @@ -1,210 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.141 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.141 -Problem: When pasting a while line on the command line an extra CR is added - literally. -Solution: Don't add the trailing CR when pasting with the mouse. -Files: src/ex_getln.c, src/proto/ops.pro, src/ops.c - - -*** ../vim-7.0.140/src/ex_getln.c Thu Sep 14 11:27:12 2006 ---- src/ex_getln.c Sun Oct 15 16:17:20 2006 -*************** -*** 86,92 **** - static void draw_cmdline __ARGS((int start, int len)); - static void save_cmdline __ARGS((struct cmdline_info *ccp)); - static void restore_cmdline __ARGS((struct cmdline_info *ccp)); -! static int cmdline_paste __ARGS((int regname, int literally)); - #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) - static void redrawcmd_preedit __ARGS((void)); - #endif ---- 86,92 ---- - static void draw_cmdline __ARGS((int start, int len)); - static void save_cmdline __ARGS((struct cmdline_info *ccp)); - static void restore_cmdline __ARGS((struct cmdline_info *ccp)); -! static int cmdline_paste __ARGS((int regname, int literally, int remcr)); - #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) - static void redrawcmd_preedit __ARGS((void)); - #endif -*************** -*** 1116,1122 **** - #endif - if (c != ESC) /* use ESC to cancel inserting register */ - { -! cmdline_paste(c, i == Ctrl_R); - - #ifdef FEAT_EVAL - /* When there was a serious error abort getting the ---- 1116,1122 ---- - #endif - if (c != ESC) /* use ESC to cancel inserting register */ - { -! cmdline_paste(c, i == Ctrl_R, FALSE); - - #ifdef FEAT_EVAL - /* When there was a serious error abort getting the -*************** -*** 1231,1246 **** - goto cmdline_not_changed; /* Ignore mouse */ - # ifdef FEAT_CLIPBOARD - if (clip_star.available) -! cmdline_paste('*', TRUE); - else - # endif -! cmdline_paste(0, TRUE); - redrawcmd(); - goto cmdline_changed; - - # ifdef FEAT_DND - case K_DROP: -! cmdline_paste('~', TRUE); - redrawcmd(); - goto cmdline_changed; - # endif ---- 1231,1246 ---- - goto cmdline_not_changed; /* Ignore mouse */ - # ifdef FEAT_CLIPBOARD - if (clip_star.available) -! cmdline_paste('*', TRUE, TRUE); - else - # endif -! cmdline_paste(0, TRUE, TRUE); - redrawcmd(); - goto cmdline_changed; - - # ifdef FEAT_DND - case K_DROP: -! cmdline_paste('~', TRUE, FALSE); - redrawcmd(); - goto cmdline_changed; - # endif -*************** -*** 2890,2898 **** - * return FAIL for failure, OK otherwise - */ - static int -! cmdline_paste(regname, literally) - int regname; - int literally; /* Insert text literally instead of "as typed" */ - { - long i; - char_u *arg; ---- 2890,2899 ---- - * return FAIL for failure, OK otherwise - */ - static int -! cmdline_paste(regname, literally, remcr) - int regname; - int literally; /* Insert text literally instead of "as typed" */ -+ int remcr; /* remove trailing CR */ - { - long i; - char_u *arg; -*************** -*** 2968,2974 **** - return OK; - } - -! return cmdline_paste_reg(regname, literally); - } - - /* ---- 2969,2975 ---- - return OK; - } - -! return cmdline_paste_reg(regname, literally, remcr); - } - - /* -*** ../vim-7.0.140/src/proto/ops.pro Sun Apr 30 20:25:07 2006 ---- src/proto/ops.pro Tue Oct 17 16:24:08 2006 -*************** -*** 20,26 **** - extern int do_execreg __ARGS((int regname, int colon, int addcr)); - extern int insert_reg __ARGS((int regname, int literally)); - extern int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg)); -! extern int cmdline_paste_reg __ARGS((int regname, int literally)); - extern void adjust_clip_reg __ARGS((int *rp)); - extern int op_delete __ARGS((oparg_T *oap)); - extern int op_replace __ARGS((oparg_T *oap, int c)); ---- 20,26 ---- - extern int do_execreg __ARGS((int regname, int colon, int addcr)); - extern int insert_reg __ARGS((int regname, int literally)); - extern int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg)); -! extern int cmdline_paste_reg __ARGS((int regname, int literally, int remcr)); - extern void adjust_clip_reg __ARGS((int *rp)); - extern int op_delete __ARGS((oparg_T *oap)); - extern int op_replace __ARGS((oparg_T *oap, int c)); -*** ../vim-7.0.140/src/ops.c Fri Oct 6 23:33:22 2006 ---- src/ops.c Sun Oct 15 16:43:54 2006 -*************** -*** 1480,1488 **** - * return FAIL for failure, OK otherwise - */ - int -! cmdline_paste_reg(regname, literally) - int regname; - int literally; /* Insert text literally instead of "as typed" */ - { - long i; - ---- 1481,1490 ---- - * return FAIL for failure, OK otherwise - */ - int -! cmdline_paste_reg(regname, literally, remcr) - int regname; - int literally; /* Insert text literally instead of "as typed" */ -+ int remcr; /* don't add trailing CR */ - { - long i; - -*************** -*** 1494,1501 **** - { - cmdline_paste_str(y_current->y_array[i], literally); - -! /* insert ^M between lines and after last line if type is MLINE */ -! if (y_current->y_type == MLINE || i < y_current->y_size - 1) - cmdline_paste_str((char_u *)"\r", literally); - - /* Check for CTRL-C, in case someone tries to paste a few thousand ---- 1496,1508 ---- - { - cmdline_paste_str(y_current->y_array[i], literally); - -! /* Insert ^M between lines and after last line if type is MLINE. -! * Don't do this when "remcr" is TRUE and the next line is empty. */ -! if (y_current->y_type == MLINE -! || (i < y_current->y_size - 1 -! && !(remcr -! && i == y_current->y_size - 2 -! && *y_current->y_array[i + 1] == NUL))) - cmdline_paste_str((char_u *)"\r", literally); - - /* Check for CTRL-C, in case someone tries to paste a few thousand -*** ../vim-7.0.140/src/version.c Tue Oct 17 15:17:41 2006 ---- src/version.c Tue Oct 17 16:22:55 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 141, - /**/ - --- -ERROR 047: Keyboard not found. Press RETURN to continue. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.142 b/7.0.142 deleted file mode 100644 index 0f82a313..00000000 --- a/7.0.142 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.142 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.142 -Problem: Using the middle mouse button in Select mode to paste text results - in an extra "y". (Kriton Kyrimis) -Solution: Let the middle mouse button replace the selected text with the - contents of the clipboard. -Files: src/normal.c - - -*** ../vim-7.0.141/src/normal.c Tue Oct 10 13:27:30 2006 ---- src/normal.c Tue Oct 17 16:54:57 2006 -*************** -*** 2380,2390 **** - /* - * If visual was active, yank the highlighted text and put it - * before the mouse pointer position. - */ - if (VIsual_active) - { -! stuffcharReadbuff('y'); -! stuffcharReadbuff(K_MIDDLEMOUSE); - do_always = TRUE; /* ignore 'mouse' setting next time */ - return FALSE; - } ---- 2380,2399 ---- - /* - * If visual was active, yank the highlighted text and put it - * before the mouse pointer position. -+ * In Select mode replace the highlighted text with the clipboard. - */ - if (VIsual_active) - { -! if (VIsual_select) -! { -! stuffcharReadbuff(Ctrl_G); -! stuffReadbuff("\"+p"); -! } -! else -! { -! stuffcharReadbuff('y'); -! stuffcharReadbuff(K_MIDDLEMOUSE); -! } - do_always = TRUE; /* ignore 'mouse' setting next time */ - return FALSE; - } -*** ../vim-7.0.141/src/version.c Tue Oct 17 16:26:52 2006 ---- src/version.c Tue Oct 17 16:51:23 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 142, - /**/ - --- -Keyboard not found. Think ENTER to continue. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.143 b/7.0.143 deleted file mode 100644 index e94130bf..00000000 --- a/7.0.143 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.143 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.143 -Problem: Setting 'scroll' to its default value was not handled correctly. -Solution: Compare the right field to PV_SCROLL. -Files: src/option.c - - -*** ../vim-7.0.142/src/option.c Tue Oct 10 18:43:50 2006 ---- src/option.c Tue Oct 17 17:29:09 2006 -*************** -*** 3405,3411 **** - } - else if (flags & P_NUM) - { -! if (varp == (char_u *)PV_SCROLL) - win_comp_scroll(curwin); - else - { ---- 3405,3411 ---- - } - else if (flags & P_NUM) - { -! if (options[opt_idx].indir == PV_SCROLL) - win_comp_scroll(curwin); - else - { -*** ../vim-7.0.142/src/version.c Tue Oct 17 16:55:47 2006 ---- src/version.c Tue Oct 17 18:34:53 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 143, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -56. You leave the modem speaker on after connecting because you think it - sounds like the ocean wind...the perfect soundtrack for "surfing the net". - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.144 b/7.0.144 deleted file mode 100644 index 4f5176ac..00000000 --- a/7.0.144 +++ /dev/null @@ -1,219 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.144 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.144 -Problem: May compare two unrelated pointers when matching a pattern against - a string. (Dominique Pelle) -Solution: Avoid calling reg_getline() when REG_MULTI is false. -Files: src/regexp.c - - -*** ../vim-7.0.143/src/regexp.c Tue Aug 29 17:28:56 2006 ---- src/regexp.c Tue Oct 17 18:30:18 2006 -*************** -*** 3777,3784 **** - - op = OP(scan); - /* Check for character class with NL added. */ -! if (!reg_line_lbr && WITH_NL(op) && *reginput == NUL -! && reglnum <= reg_maxline) - { - reg_nextline(); - } ---- 3777,3784 ---- - - op = OP(scan); - /* Check for character class with NL added. */ -! if (!reg_line_lbr && WITH_NL(op) && REG_MULTI -! && *reginput == NUL && reglnum <= reg_maxline) - { - reg_nextline(); - } -*************** -*** 4855,4862 **** - break; - - case NEWL: -! if ((c != NUL || reglnum > reg_maxline || reg_line_lbr) -! && (c != '\n' || !reg_line_lbr)) - status = RA_NOMATCH; - else if (reg_line_lbr) - ADVANCE_REGINPUT(); ---- 4855,4862 ---- - break; - - case NEWL: -! if ((c != NUL || !REG_MULTI || reglnum > reg_maxline -! || reg_line_lbr) && (c != '\n' || !reg_line_lbr)) - status = RA_NOMATCH; - else if (reg_line_lbr) - ADVANCE_REGINPUT(); -*************** -*** 5316,5323 **** - ++count; - mb_ptr_adv(scan); - } -! if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr -! || count == maxcount) - break; - ++count; /* count the line-break */ - reg_nextline(); ---- 5316,5323 ---- - ++count; - mb_ptr_adv(scan); - } -! if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline -! || reg_line_lbr || count == maxcount) - break; - ++count; /* count the line-break */ - reg_nextline(); -*************** -*** 5341,5347 **** - } - else if (*scan == NUL) - { -! if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; ---- 5341,5348 ---- - } - else if (*scan == NUL) - { -! if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline -! || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; -*************** -*** 5370,5376 **** - } - else if (*scan == NUL) - { -! if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; ---- 5371,5378 ---- - } - else if (*scan == NUL) - { -! if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline -! || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; -*************** -*** 5399,5405 **** - } - else if (*scan == NUL) - { -! if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; ---- 5401,5408 ---- - } - else if (*scan == NUL) - { -! if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline -! || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; -*************** -*** 5424,5430 **** - { - if (*scan == NUL) - { -! if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; ---- 5427,5434 ---- - { - if (*scan == NUL) - { -! if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline -! || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; -*************** -*** 5454,5460 **** - #endif - if (*scan == NUL) - { -! if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; ---- 5458,5465 ---- - #endif - if (*scan == NUL) - { -! if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline -! || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; -*************** -*** 5617,5623 **** - #endif - if (*scan == NUL) - { -! if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; ---- 5622,5629 ---- - #endif - if (*scan == NUL) - { -! if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline -! || reg_line_lbr) - break; - reg_nextline(); - scan = reginput; -*************** -*** 5646,5653 **** - - case NEWL: - while (count < maxcount -! && ((*scan == NUL && reglnum <= reg_maxline && !reg_line_lbr) -! || (*scan == '\n' && reg_line_lbr))) - { - count++; - if (reg_line_lbr) ---- 5652,5659 ---- - - case NEWL: - while (count < maxcount -! && ((*scan == NUL && reglnum <= reg_maxline && !reg_line_lbr -! && REG_MULTI) || (*scan == '\n' && reg_line_lbr))) - { - count++; - if (reg_line_lbr) -*** ../vim-7.0.143/src/version.c Tue Oct 17 18:36:03 2006 ---- src/version.c Tue Oct 17 18:48:51 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 144, - /**/ - --- -Be thankful to be in a traffic jam, because it means you own a car. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.145 b/7.0.145 deleted file mode 100644 index 18593681..00000000 --- a/7.0.145 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.145 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.145 (after 7.0.142) -Problem: Compiler warning. -Solution: Add type cast. -Files: src/normal.c - - -*** ../vim-7.0.144/src/normal.c Tue Oct 17 16:55:47 2006 ---- src/normal.c Tue Oct 17 22:37:42 2006 -*************** -*** 2387,2393 **** - if (VIsual_select) - { - stuffcharReadbuff(Ctrl_G); -! stuffReadbuff("\"+p"); - } - else - { ---- 2387,2393 ---- - if (VIsual_select) - { - stuffcharReadbuff(Ctrl_G); -! stuffReadbuff((char_u *)"\"+p"); - } - else - { -*** ../vim-7.0.144/src/version.c Tue Oct 17 18:50:15 2006 ---- src/version.c Tue Oct 17 22:38:21 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 145, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -59. Your wife says communication is important in a marriage...so you buy - another computer and install a second phone line so the two of you can - chat. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.146 b/7.0.146 deleted file mode 100644 index 050f8520..00000000 --- a/7.0.146 +++ /dev/null @@ -1,137 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.146 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.146 -Problem: When 'switchbuf' is set to "usetab" and the current tab has only a - quickfix window, jumping to an error always opens a new window. - Also, when the buffer is open in another tab page it's not found. -Solution: Check for the "split" value of 'switchbuf' properly. Search in - other tab pages for the desired buffer. (Yegappan Lakshmanan) -Files: src/buffer.c, src/quickfix.c - - -*** ../vim-7.0.145/src/buffer.c Sat Sep 9 14:51:43 2006 ---- src/buffer.c Fri Oct 20 20:08:49 2006 -*************** -*** 1208,1218 **** - { - # ifdef FEAT_WINDOWS - /* jump to first window containing buf if one exists ("useopen") */ -! if (vim_strchr(p_swb, 'o') && buf_jump_open_win(buf)) - return OK; - /* jump to first window in any tab page containing buf if one exists - * ("usetab") */ -! if (vim_strchr(p_swb, 'a') && buf_jump_open_tab(buf)) - return OK; - if (win_split(0, 0) == FAIL) - # endif ---- 1208,1218 ---- - { - # ifdef FEAT_WINDOWS - /* jump to first window containing buf if one exists ("useopen") */ -! if (vim_strchr(p_swb, 'o') != NULL && buf_jump_open_win(buf)) - return OK; - /* jump to first window in any tab page containing buf if one exists - * ("usetab") */ -! if (vim_strchr(p_swb, 'a') != NULL && buf_jump_open_tab(buf)) - return OK; - if (win_split(0, 0) == FAIL) - # endif -*************** -*** 1842,1854 **** - if (options & GETF_SWITCH) - { - /* use existing open window for buffer if wanted */ -! if (vim_strchr(p_swb, 'o')) /* useopen */ - wp = buf_jump_open_win(buf); - /* use existing open window in any tab page for buffer if wanted */ -! if (vim_strchr(p_swb, 'a')) /* usetab */ - wp = buf_jump_open_tab(buf); - /* split window if wanted ("split") */ -! if (wp == NULL && vim_strchr(p_swb, 't') && !bufempty()) - { - if (win_split(0, 0) == FAIL) - return FAIL; ---- 1842,1854 ---- - if (options & GETF_SWITCH) - { - /* use existing open window for buffer if wanted */ -! if (vim_strchr(p_swb, 'o') != NULL) /* useopen */ - wp = buf_jump_open_win(buf); - /* use existing open window in any tab page for buffer if wanted */ -! if (vim_strchr(p_swb, 'a') != NULL) /* usetab */ - wp = buf_jump_open_tab(buf); - /* split window if wanted ("split") */ -! if (wp == NULL && vim_strchr(p_swb, 'l') != NULL && !bufempty()) - { - if (win_split(0, 0) == FAIL) - return FAIL; -*** ../vim-7.0.145/src/quickfix.c Tue Sep 5 15:36:30 2006 ---- src/quickfix.c Fri Oct 20 20:05:00 2006 -*************** -*** 1586,1595 **** - } - - /* -! * If there is only one window, create a new one above the quickfix -! * window. - */ -! if (firstwin == lastwin || !usable_win) - { - ll_ref = curwin->w_llist_ref; - ---- 1586,1615 ---- - } - - /* -! * If no usable window is found and 'switchbuf' is set to 'usetab' -! * then search in other tabs. - */ -! if (!usable_win && vim_strchr(p_swb, 'a') != NULL) -! { -! tabpage_T *tp; -! win_T *wp; -! -! FOR_ALL_TAB_WINDOWS(tp, wp) -! { -! if (wp->w_buffer->b_fnum == qf_ptr->qf_fnum) -! { -! goto_tabpage_win(tp, wp); -! usable_win = 1; -! break; -! } -! } -! } -! -! /* -! * If there is only one window and is the quickfix window, create a new -! * one above the quickfix window. -! */ -! if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win) - { - ll_ref = curwin->w_llist_ref; - -*** ../vim-7.0.145/src/version.c Tue Oct 17 22:40:14 2006 ---- src/version.c Fri Oct 20 20:11:58 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 146, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -80. At parties, you introduce your spouse as your "service provider." - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.147 b/7.0.147 deleted file mode 100644 index 7480d503..00000000 --- a/7.0.147 +++ /dev/null @@ -1,297 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.147 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.147 -Problem: When creating a session file and there are several tab pages and - some windows have a local directory a short file name may be used - when it's not valid. (Marius Roets) - A session with multiple tab pages may result in "No Name" buffers. - (Bill McCarthy) -Solution: Don't enter tab pages when going through the list, only use a - pointer to the first window in each tab page. - Use "tabedit" instead of "tabnew | edit" when possible. -Files: src/ex_docmd.c - - -*** ../vim-7.0.146/src/ex_docmd.c Sun Sep 10 21:05:39 2006 ---- src/ex_docmd.c Tue Oct 24 12:55:11 2006 -*************** -*** 9643,9649 **** - #endif - - #ifdef FEAT_SESSION -! static int ses_winsizes __ARGS((FILE *fd, int restore_size)); - static int ses_win_rec __ARGS((FILE *fd, frame_T *fr)); - static frame_T *ses_skipframe __ARGS((frame_T *fr)); - static int ses_do_frame __ARGS((frame_T *fr)); ---- 9643,9650 ---- - #endif - - #ifdef FEAT_SESSION -! static int ses_winsizes __ARGS((FILE *fd, int restore_size, -! win_T *tab_firstwin)); - static int ses_win_rec __ARGS((FILE *fd, frame_T *fr)); - static frame_T *ses_skipframe __ARGS((frame_T *fr)); - static int ses_do_frame __ARGS((frame_T *fr)); -*************** -*** 9669,9676 **** - win_T *wp; - char_u *sname; - win_T *edited_win = NULL; -- tabpage_T *old_curtab = curtab; - int tabnr; - - if (ssop_flags & SSOP_BUFFERS) - only_save_windows = FALSE; /* Save ALL buffers */ ---- 9670,9677 ---- - win_T *wp; - char_u *sname; - win_T *edited_win = NULL; - int tabnr; -+ win_T *tab_firstwin; - - if (ssop_flags & SSOP_BUFFERS) - only_save_windows = FALSE; /* Save ALL buffers */ -*************** -*** 9778,9791 **** - /* - * May repeat putting Windows for each tab, when "tabpages" is in - * 'sessionoptions'. - */ - for (tabnr = 1; ; ++tabnr) - { - if ((ssop_flags & SSOP_TABPAGES)) - { -! goto_tabpage(tabnr); -! if (tabnr > 1 && put_line(fd, "tabnew") == FAIL) -! return FAIL; - } - - /* ---- 9779,9804 ---- - /* - * May repeat putting Windows for each tab, when "tabpages" is in - * 'sessionoptions'. -+ * Don't use goto_tabpage(), it may change directory and trigger -+ * autocommands. - */ -+ tab_firstwin = firstwin; /* first window in tab page "tabnr" */ - for (tabnr = 1; ; ++tabnr) - { -+ int need_tabnew = FALSE; -+ - if ((ssop_flags & SSOP_TABPAGES)) - { -! tabpage_T *tp = find_tabpage(tabnr); -! -! if (tp == NULL) -! break; /* done all tab pages */ -! if (tp == curtab) -! tab_firstwin = firstwin; -! else -! tab_firstwin = tp->tp_firstwin; -! if (tabnr > 1) -! need_tabnew = TRUE; - } - - /* -*************** -*** 9793,9799 **** - * is aborted we don't end up with a number of useless windows. - * This may have side effects! (e.g., compressed or network file). - */ -! for (wp = firstwin; wp != NULL; wp = wp->w_next) - { - if (ses_do_win(wp) - && wp->w_buffer->b_ffname != NULL ---- 9806,9812 ---- - * is aborted we don't end up with a number of useless windows. - * This may have side effects! (e.g., compressed or network file). - */ -! for (wp = tab_firstwin; wp != NULL; wp = wp->w_next) - { - if (ses_do_win(wp) - && wp->w_buffer->b_ffname != NULL -*************** -*** 9803,9817 **** - #endif - ) - { -! if (fputs("edit ", fd) < 0 - || ses_fname(fd, wp->w_buffer, &ssop_flags) == FAIL) - return FAIL; - if (!wp->w_arg_idx_invalid) - edited_win = wp; - break; - } - } - - /* - * Save current window layout. - */ ---- 9816,9835 ---- - #endif - ) - { -! if (fputs(need_tabnew ? "tabedit " : "edit ", fd) < 0 - || ses_fname(fd, wp->w_buffer, &ssop_flags) == FAIL) - return FAIL; -+ need_tabnew = FALSE; - if (!wp->w_arg_idx_invalid) - edited_win = wp; - break; - } - } - -+ /* If no file got edited create an empty tab page. */ -+ if (need_tabnew && put_line(fd, "tabnew") == FAIL) -+ return FAIL; -+ - /* - * Save current window layout. - */ -*************** -*** 9829,9835 **** - * Remember the window number of the current window after restoring. - */ - nr = 0; -! for (wp = firstwin; wp != NULL; wp = W_NEXT(wp)) - { - if (ses_do_win(wp)) - ++nr; ---- 9847,9853 ---- - * Remember the window number of the current window after restoring. - */ - nr = 0; -! for (wp = tab_firstwin; wp != NULL; wp = W_NEXT(wp)) - { - if (ses_do_win(wp)) - ++nr; -*************** -*** 9852,9864 **** - */ - if (put_line(fd, "set winheight=1 winwidth=1") == FAIL) - return FAIL; -! if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL) - return FAIL; - - /* - * Restore the view of the window (options, file, cursor, etc.). - */ -! for (wp = firstwin; wp != NULL; wp = wp->w_next) - { - if (!ses_do_win(wp)) - continue; ---- 9870,9882 ---- - */ - if (put_line(fd, "set winheight=1 winwidth=1") == FAIL) - return FAIL; -! if (nr > 1 && ses_winsizes(fd, restore_size, tab_firstwin) == FAIL) - return FAIL; - - /* - * Restore the view of the window (options, file, cursor, etc.). - */ -! for (wp = tab_firstwin; wp != NULL; wp = wp->w_next) - { - if (!ses_do_win(wp)) - continue; -*************** -*** 9879,9897 **** - * Restore window sizes again after jumping around in windows, because - * the current window has a minimum size while others may not. - */ -! if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL) - return FAIL; - - /* Don't continue in another tab page when doing only the current one - * or when at the last tab page. */ -! if (!(ssop_flags & SSOP_TABPAGES) || curtab->tp_next == NULL) - break; - } - - if (ssop_flags & SSOP_TABPAGES) - { -- if (valid_tabpage(old_curtab)) -- goto_tabpage_tp(old_curtab); - if (fprintf(fd, "tabnext %d", tabpage_index(curtab)) < 0 - || put_eol(fd) == FAIL) - return FAIL; ---- 9897,9913 ---- - * Restore window sizes again after jumping around in windows, because - * the current window has a minimum size while others may not. - */ -! if (nr > 1 && ses_winsizes(fd, restore_size, tab_firstwin) == FAIL) - return FAIL; - - /* Don't continue in another tab page when doing only the current one - * or when at the last tab page. */ -! if (!(ssop_flags & SSOP_TABPAGES)) - break; - } - - if (ssop_flags & SSOP_TABPAGES) - { - if (fprintf(fd, "tabnext %d", tabpage_index(curtab)) < 0 - || put_eol(fd) == FAIL) - return FAIL; -*************** -*** 9927,9942 **** - } - - static int -! ses_winsizes(fd, restore_size) - FILE *fd; - int restore_size; - { - int n = 0; - win_T *wp; - - if (restore_size && (ssop_flags & SSOP_WINSIZE)) - { -! for (wp = firstwin; wp != NULL; wp = wp->w_next) - { - if (!ses_do_win(wp)) - continue; ---- 9943,9959 ---- - } - - static int -! ses_winsizes(fd, restore_size, tab_firstwin) - FILE *fd; - int restore_size; -+ win_T *tab_firstwin; - { - int n = 0; - win_T *wp; - - if (restore_size && (ssop_flags & SSOP_WINSIZE)) - { -! for (wp = tab_firstwin; wp != NULL; wp = wp->w_next) - { - if (!ses_do_win(wp)) - continue; -*** ../vim-7.0.146/src/version.c Fri Oct 20 20:15:05 2006 ---- src/version.c Tue Oct 24 12:57:04 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 147, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -95. Only communication in your household is through email. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.148 b/7.0.148 deleted file mode 100644 index 4a3b4673..00000000 --- a/7.0.148 +++ /dev/null @@ -1,58 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.148 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.148 -Problem: When doing "call a.xyz()" and "xyz" does not exist in dictionary - "a" there is no error message. (Yegappan Lakshmanan) -Solution: Add the error message. -Files: src/eval.c - - -*** ../vim-7.0.147/src/eval.c Tue Oct 17 15:17:41 2006 ---- src/eval.c Tue Oct 24 11:01:25 2006 -*************** -*** 3125,3131 **** - funcdict_T fudi; - - tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi); -! vim_free(fudi.fd_newkey); - if (tofree == NULL) - return; - ---- 3125,3136 ---- - funcdict_T fudi; - - tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi); -! if (fudi.fd_newkey != NULL) -! { -! /* Still need to give an error message for missing key. */ -! EMSG2(_(e_dictkey), fudi.fd_newkey); -! vim_free(fudi.fd_newkey); -! } - if (tofree == NULL) - return; - -*** ../vim-7.0.147/src/version.c Tue Oct 24 13:02:27 2006 ---- src/version.c Tue Oct 24 13:50:39 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 148, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -99. The hum of a cooling fan and the click of keys is comforting to you. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.149 b/7.0.149 deleted file mode 100644 index 102ed43c..00000000 --- a/7.0.149 +++ /dev/null @@ -1,186 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.149 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.149 -Problem: When resizing a window that shows "~" lines the text sometimes - jumps down. -Solution: Remove code that uses "~" lines in some situations. Fix the - computation of the screen line of the cursor. Also set w_skipcol - to handle very long lines. -Files: src/misc1.c, src/window.c - - -*** ../vim-7.0.148/src/misc1.c Tue Oct 17 11:12:28 2006 ---- src/misc1.c Tue Oct 24 17:33:39 2006 -*************** -*** 1761,1775 **** - * Add column offset for 'number', 'foldcolumn', etc. - */ - width = W_WIDTH(wp) - win_col_off(wp); -! if (width > 0) -! { -! lines += 1; -! if (col >= width) -! lines += (col - width) / (width + win_col_off2(wp)); -! if (lines <= wp->w_height) -! return lines; -! } -! return (int)(wp->w_height); /* maximum length */ - } - - int ---- 1761,1773 ---- - * Add column offset for 'number', 'foldcolumn', etc. - */ - width = W_WIDTH(wp) - win_col_off(wp); -! if (width <= 0) -! return 9999; -! -! lines += 1; -! if (col > width) -! lines += (col - width) / (width + win_col_off2(wp)) + 1; -! return lines; - } - - int -*** ../vim-7.0.148/src/window.c Tue Sep 5 16:29:38 2006 ---- src/window.c Tue Oct 24 20:39:56 2006 -*************** -*** 5189,5199 **** - int height; - { - linenr_T lnum; -- linenr_T bot; - int sline, line_size; -- int space; -- int did_below = FALSE; -- int old_height = wp->w_height; - #define FRACTION_MULT 16384L - - /* Don't want a negative height. Happens when splitting a tiny window. ---- 5189,5195 ---- -*************** -*** 5228,5281 **** - wp->w_wrow = ((long)wp->w_fraction * (long)height - 1L) / FRACTION_MULT; - line_size = plines_win_col(wp, lnum, (long)(wp->w_cursor.col)) - 1; - sline = wp->w_wrow - line_size; - if (sline < 0) - { - /* - * Cursor line would go off top of screen if w_wrow was this high. - */ - wp->w_wrow = line_size; - } - else - { -! space = height - 1; -! -! while (lnum > 1) - { -- /* When using "~" lines stop when at the old topline, don't -- * scroll down. */ -- if (did_below && height < old_height && lnum <= wp->w_topline) -- sline = 0; -- -- space -= line_size; -- if (space > 0 && sline <= 0 && !did_below) -- { -- /* Try to use "~" lines below the text to avoid that text -- * is above the window while there are empty lines. -- * Subtract the rows below the cursor from "space" and -- * give the rest to "sline". */ -- did_below = TRUE; -- bot = wp->w_cursor.lnum; -- while (space > 0) -- { -- if (wp->w_buffer->b_ml.ml_line_count - bot >= space) -- space = 0; -- else -- { -- #ifdef FEAT_FOLDING -- hasFoldingWin(wp, bot, NULL, &bot, TRUE, NULL); -- #endif -- if (bot >= wp->w_buffer->b_ml.ml_line_count) -- break; -- ++bot; -- space -= plines_win(wp, bot, TRUE); -- } -- } -- if (bot == wp->w_buffer->b_ml.ml_line_count && space > 0) -- sline += space; -- } -- if (sline <= 0) -- break; -- - #ifdef FEAT_FOLDING - hasFoldingWin(wp, lnum, &lnum, NULL, TRUE, NULL); - if (lnum == 1) ---- 5224,5267 ---- - wp->w_wrow = ((long)wp->w_fraction * (long)height - 1L) / FRACTION_MULT; - line_size = plines_win_col(wp, lnum, (long)(wp->w_cursor.col)) - 1; - sline = wp->w_wrow - line_size; -+ -+ if (sline >= 0) -+ { -+ /* Make sure the whole cursor line is visible, if possible. */ -+ int rows = plines_win(wp, lnum, FALSE); -+ -+ if (sline > wp->w_height - rows) -+ { -+ sline = wp->w_height - rows; -+ wp->w_wrow -= rows - line_size; -+ } -+ } -+ - if (sline < 0) - { - /* - * Cursor line would go off top of screen if w_wrow was this high. -+ * Make cursor line the first line in the window. If not enough -+ * room use w_skipcol; - */ - wp->w_wrow = line_size; -+ if (wp->w_wrow >= wp->w_height -+ && (W_WIDTH(wp) - win_col_off(wp)) > 0) -+ { -+ wp->w_skipcol += W_WIDTH(wp) - win_col_off(wp); -+ --wp->w_wrow; -+ while (wp->w_wrow >= wp->w_height) -+ { -+ wp->w_skipcol += W_WIDTH(wp) - win_col_off(wp) -+ + win_col_off2(wp); -+ --wp->w_wrow; -+ } -+ } - } - else - { -! while (sline > 0 && lnum > 1) - { - #ifdef FEAT_FOLDING - hasFoldingWin(wp, lnum, &lnum, NULL, TRUE, NULL); - if (lnum == 1) -*** ../vim-7.0.148/src/version.c Tue Oct 24 13:51:47 2006 ---- src/version.c Tue Oct 24 21:13:31 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 149, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -104. When people ask about the Presidential Election you ask "Which country?" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.150 b/7.0.150 deleted file mode 100644 index a395c49c..00000000 --- a/7.0.150 +++ /dev/null @@ -1,97 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.150 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.150 -Problem: When resizing the Vim window scrollbinding doesn't work. (Yakov - Lerner) -Solution: Do scrollbinding in set_shellsize(). -Files: src/term.c - - -*** ../vim-7.0.149/src/term.c Wed Aug 16 21:42:34 2006 ---- src/term.c Tue Oct 24 11:26:33 2006 -*************** -*** 3137,3161 **** - screenalloc(FALSE); - repeat_message(); - } -- else if (State & CMDLINE) -- { -- update_screen(NOT_VALID); -- redrawcmdline(); -- } - else - { -! update_topline(); -! #if defined(FEAT_INS_EXPAND) -! if (pum_visible()) - { -! redraw_later(NOT_VALID); -! ins_compl_show_pum(); /* This includes the redraw. */ - } - else - #endif -! update_screen(NOT_VALID); -! if (redrawing()) -! setcursor(); - } - cursor_on(); /* redrawing may have switched it off */ - } ---- 3138,3169 ---- - screenalloc(FALSE); - repeat_message(); - } - else - { -! #ifdef FEAT_SCROLLBIND -! if (curwin->w_p_scb) -! do_check_scrollbind(TRUE); -! #endif -! if (State & CMDLINE) - { -! update_screen(NOT_VALID); -! redrawcmdline(); - } - else -+ { -+ update_topline(); -+ #if defined(FEAT_INS_EXPAND) -+ if (pum_visible()) -+ { -+ redraw_later(NOT_VALID); -+ ins_compl_show_pum(); /* This includes the redraw. */ -+ } -+ else - #endif -! update_screen(NOT_VALID); -! if (redrawing()) -! setcursor(); -! } - } - cursor_on(); /* redrawing may have switched it off */ - } -*** ../vim-7.0.149/src/version.c Tue Oct 24 21:15:09 2006 ---- src/version.c Tue Oct 24 21:33:39 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 150, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -106. When told to "go to your room" you inform your parents that you - can't...because you were kicked out and banned. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.151 b/7.0.151 deleted file mode 100644 index d448c96f..00000000 --- a/7.0.151 +++ /dev/null @@ -1,55 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.151 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.151 -Problem: Buttons in file dialog are not according to Gnome guidelines. -Solution: Swap Cancel and Open buttons. (Stefano Zacchiroli) -Files: src/gui_gtk.c - - -*** ../vim-7.0.150/src/gui_gtk.c Tue Oct 10 18:29:21 2006 ---- src/gui_gtk.c Sun Oct 22 15:33:40 2006 -*************** -*** 1293,1300 **** - GTK_WINDOW(gui.mainwin), - saving ? GTK_FILE_CHOOSER_ACTION_SAVE - : GTK_FILE_CHOOSER_ACTION_OPEN, -- saving ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - NULL); - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc), - (const gchar *)dirbuf); ---- 1293,1300 ---- - GTK_WINDOW(gui.mainwin), - saving ? GTK_FILE_CHOOSER_ACTION_SAVE - : GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, -+ saving ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - NULL); - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc), - (const gchar *)dirbuf); -*** ../vim-7.0.150/src/version.c Tue Oct 24 21:38:16 2006 ---- src/version.c Tue Oct 24 22:01:07 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 151, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -108. While reading a magazine, you look for the Zoom icon for a better - look at a photograph. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.152 b/7.0.152 deleted file mode 100644 index 6f388330..00000000 --- a/7.0.152 +++ /dev/null @@ -1,74 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.152 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.152 -Problem: Crash when using lesstif 2. -Solution: Fill in the extension field. (Ben Hutchings) -Files: src/gui_xmebw.c - - -*** ../vim-7.0.151/src/gui_xmebw.c Sat May 13 17:26:10 2006 ---- src/gui_xmebw.c Tue Oct 24 22:27:53 2006 -*************** -*** 138,143 **** ---- 138,156 ---- - } - }; - -+ /* This is needed to work around a bug in Lesstif 2, leaving the extension -+ * NULL somehow results in getting it set to an invalid pointer. */ -+ XmPrimitiveClassExtRec xmEnhancedButtonPrimClassExtRec = -+ { -+ /* next_extension */ NULL, -+ /* record_type */ NULLQUARK, -+ /* version */ XmPrimitiveClassExtVersion, -+ /* record_size */ sizeof(XmPrimitiveClassExtRec), -+ /* widget_baseline */ XmInheritBaselineProc, -+ /* widget_display_rect */ XmInheritDisplayRectProc, -+ /* widget_margins */ NULL -+ }; -+ - XmEnhancedButtonClassRec xmEnhancedButtonClassRec = - { - { -*************** -*** 184,190 **** - /* arm and activate */ XmInheritArmAndActivate, - /* synthetic resources */ NULL, - /* number of syn res */ 0, -! /* extension */ NULL, - }, - - /* label_class fields */ ---- 197,203 ---- - /* arm and activate */ XmInheritArmAndActivate, - /* synthetic resources */ NULL, - /* number of syn res */ 0, -! /* extension */ (XtPointer)&xmEnhancedButtonPrimClassExtRec, - }, - - /* label_class fields */ -*** ../vim-7.0.151/src/version.c Tue Oct 24 22:01:55 2006 ---- src/version.c Tue Oct 24 22:30:40 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 152, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -110. You actually volunteer to become your employer's webmaster. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.153 b/7.0.153 deleted file mode 100644 index 7e4ec6c5..00000000 --- a/7.0.153 +++ /dev/null @@ -1,154 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.153 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.153 -Problem: When using cscope and opening the temp file fails Vim crashes. - (Kaya Bekiroglu) -Solution: Check for NULL pointer returned from mch_open(). -Files: src/if_cscope.c - - -*** ../vim-7.0.152/src/if_cscope.c Tue Aug 29 17:28:56 2006 ---- src/if_cscope.c Mon Oct 30 22:26:01 2006 -*************** -*** 1100,1137 **** - if (qfpos != NULL && *qfpos != '0' && totmatches > 0) - { - /* fill error list */ -! FILE *f; -! char_u *tmp = vim_tempname('c'); - qf_info_T *qi = NULL; - win_T *wp = NULL; - - f = mch_fopen((char *)tmp, "w"); -! cs_file_results(f, nummatches); -! fclose(f); -! if (use_ll) /* Use location list */ -! wp = curwin; -! /* '-' starts a new error list */ -! if (qf_init(wp, tmp, (char_u *)"%f%*\\t%l%*\\t%m", *qfpos == '-') > 0) - { -! # ifdef FEAT_WINDOWS -! if (postponed_split != 0) - { -! win_split(postponed_split > 0 ? postponed_split : 0, - postponed_split_flags); - # ifdef FEAT_SCROLLBIND -! curwin->w_p_scb = FALSE; - # endif -! postponed_split = 0; -! } - # endif -! if (use_ll) -! /* -! * In the location list window, use the displayed location -! * list. Otherwise, use the location list for the window. -! */ -! qi = (bt_quickfix(wp->w_buffer) && wp->w_llist_ref != NULL) ? -! wp->w_llist_ref : wp->w_llist; -! qf_jump(qi, 0, 0, forceit); - } - mch_remove(tmp); - vim_free(tmp); ---- 1100,1143 ---- - if (qfpos != NULL && *qfpos != '0' && totmatches > 0) - { - /* fill error list */ -! FILE *f; -! char_u *tmp = vim_tempname('c'); - qf_info_T *qi = NULL; - win_T *wp = NULL; - - f = mch_fopen((char *)tmp, "w"); -! if (f == NULL) -! EMSG2(_(e_notopen), tmp); -! else - { -! cs_file_results(f, nummatches); -! fclose(f); -! if (use_ll) /* Use location list */ -! wp = curwin; -! /* '-' starts a new error list */ -! if (qf_init(wp, tmp, (char_u *)"%f%*\\t%l%*\\t%m", -! *qfpos == '-') > 0) - { -! # ifdef FEAT_WINDOWS -! if (postponed_split != 0) -! { -! win_split(postponed_split > 0 ? postponed_split : 0, - postponed_split_flags); - # ifdef FEAT_SCROLLBIND -! curwin->w_p_scb = FALSE; - # endif -! postponed_split = 0; -! } - # endif -! if (use_ll) -! /* -! * In the location list window, use the displayed location -! * list. Otherwise, use the location list for the window. -! */ -! qi = (bt_quickfix(wp->w_buffer) && wp->w_llist_ref != NULL) -! ? wp->w_llist_ref : wp->w_llist; -! qf_jump(qi, 0, 0, forceit); -! } - } - mch_remove(tmp); - vim_free(tmp); -*************** -*** 1723,1729 **** - continue; - - context = (char *)alloc((unsigned)strlen(cntx)+5); -! if (context==NULL) - continue; - - if (strcmp(cntx, "")==0) ---- 1729,1735 ---- - continue; - - context = (char *)alloc((unsigned)strlen(cntx)+5); -! if (context == NULL) - continue; - - if (strcmp(cntx, "")==0) -*************** -*** 1731,1737 **** - else - sprintf(context, "<<%s>>", cntx); - -! if (search==NULL) - fprintf(f, "%s\t%s\t%s\n", fullname, slno, context); - else - fprintf(f, "%s\t%s\t%s %s\n", fullname, slno, context, search); ---- 1737,1743 ---- - else - sprintf(context, "<<%s>>", cntx); - -! if (search == NULL) - fprintf(f, "%s\t%s\t%s\n", fullname, slno, context); - else - fprintf(f, "%s\t%s\t%s %s\n", fullname, slno, context, search); -*** ../vim-7.0.152/src/version.c Tue Oct 24 22:31:51 2006 ---- src/version.c Mon Oct 30 22:29:45 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 153, - /**/ - --- -You cannot have a baby in one month by getting nine women pregnant. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.154 b/7.0.154 deleted file mode 100644 index 4822d91f..00000000 --- a/7.0.154 +++ /dev/null @@ -1,65 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.154 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.154 -Problem: When 'foldnextmax' is negative Vim can hang. (James Vega) -Solution: Avoid the fold level becoming negative. -Files: src/fold.c, src/syntax.c - - -*** ../vim-7.0.153/src/fold.c Sun Apr 23 00:31:04 2006 ---- src/fold.c Sun Oct 29 20:23:21 2006 -*************** -*** 2971,2977 **** ---- 2971,2981 ---- - else - flp->lvl = get_indent_buf(buf, lnum) / buf->b_p_sw; - if (flp->lvl > flp->wp->w_p_fdn) -+ { - flp->lvl = flp->wp->w_p_fdn; -+ if (flp->lvl < 0) -+ flp->lvl = 0; -+ } - } - - /* foldlevelDiff() {{{2 */ -*** ../vim-7.0.153/src/syntax.c Tue Oct 3 17:04:21 2006 ---- src/syntax.c Sun Oct 29 20:21:27 2006 -*************** -*** 6072,6078 **** ---- 6072,6082 ---- - ++level; - } - if (level > wp->w_p_fdn) -+ { - level = wp->w_p_fdn; -+ if (level < 0) -+ level = 0; -+ } - return level; - } - #endif -*** ../vim-7.0.153/src/version.c Mon Oct 30 22:31:30 2006 ---- src/version.c Wed Nov 1 12:41:14 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 154, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -134. You consider bandwidth to be more important than carats. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.155 b/7.0.155 deleted file mode 100644 index 265fa64e..00000000 --- a/7.0.155 +++ /dev/null @@ -1,196 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.155 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.155 -Problem: When getchar() returns a mouse button click there is no way to get - the mouse coordinates. -Solution: Add v:mouse_win, v:mouse_lnum and v:mouse_col. -Files: runtime/doc/eval.txt, src/eval.c, src/vim.h - - -*** ../vim-7.0.154/runtime/doc/eval.txt Tue Oct 3 14:43:31 2006 ---- runtime/doc/eval.txt Wed Nov 1 15:20:42 2006 -*************** -*** 1,4 **** -! *eval.txt* For Vim version 7.0. Last change: 2006 Sep 22 - - - VIM REFERENCE MANUAL by Bram Moolenaar ---- 1,4 ---- -! *eval.txt* For Vim version 7.0. Last change: 2006 Nov 01 - - - VIM REFERENCE MANUAL by Bram Moolenaar -*************** -*** 1374,1379 **** ---- 1380,1400 ---- - 'guitabtooltip'. Only valid while one of these expressions is - being evaluated. Read-only when in the |sandbox|. - -+ *v:mouse_win* *mouse_win-variable* -+ v:mouse_win Window number for a mouse click obtained with |getchar()|. -+ First window has number 1, like with |winnr()|. The value is -+ zero when there was no mouse button click. -+ -+ *v:mouse_lnum* *mouse_lnum-variable* -+ v:mouse_lnum Line number for a mouse click obtained with |getchar()|. -+ This is the text line number, not the screen line number. The -+ value is zero when there was no mouse button click. -+ -+ *v:mouse_col* *mouse_col-variable* -+ v:mouse_col Column number for a mouse click obtained with |getchar()|. -+ This is the screen column number, like with |virtcol()|. The -+ value is zero when there was no mouse button click. -+ - *v:prevcount* *prevcount-variable* - v:prevcount The count given for the last but one Normal mode command. - This is the v:count value of the previous command. Useful if -*************** -*** 2702,2707 **** ---- 2728,2744 ---- - one-byte character it is the character itself as a number. - Use nr2char() to convert it to a String. - -+ When the user clicks a mouse button, the mouse event will be -+ returned. The position can then be found in |v:mouse_col|, -+ |v:mouse_lnum| and |v:mouse_win|. This example positions the -+ mouse as it would normally happen: > -+ let c = getchar() -+ if c == "\" && v:mouse_win > 0 -+ exe v:mouse_win . "wincmd w" -+ exe v:mouse_lnum -+ exe "normal " . v:mouse_col . "|" -+ endif -+ < - There is no prompt, you will somehow have to make clear to the - user that a character has to be typed. - There is no mapping for the character. -*** ../vim-7.0.154/src/eval.c Tue Oct 24 13:51:47 2006 ---- src/eval.c Wed Nov 1 13:39:52 2006 -*************** -*** 343,348 **** ---- 342,350 ---- - {VV_NAME("swapchoice", VAR_STRING), 0}, - {VV_NAME("swapcommand", VAR_STRING), VV_RO}, - {VV_NAME("char", VAR_STRING), VV_RO}, -+ {VV_NAME("mouse_win", VAR_NUMBER), 0}, -+ {VV_NAME("mouse_lnum", VAR_NUMBER), 0}, -+ {VV_NAME("mouse_col", VAR_NUMBER), 0}, - }; - - /* shorthand */ -*************** -*** 9855,9860 **** ---- 9857,9866 ---- - --no_mapping; - --allow_keys; - -+ vimvars[VV_MOUSE_WIN].vv_nr = 0; -+ vimvars[VV_MOUSE_LNUM].vv_nr = 0; -+ vimvars[VV_MOUSE_COL].vv_nr = 0; -+ - rettv->vval.v_number = n; - if (IS_SPECIAL(n) || mod_mask != 0) - { -*************** -*** 9883,9888 **** ---- 9889,9941 ---- - temp[i++] = NUL; - rettv->v_type = VAR_STRING; - rettv->vval.v_string = vim_strsave(temp); -+ -+ #ifdef FEAT_MOUSE -+ if (n == K_LEFTMOUSE -+ || n == K_LEFTMOUSE_NM -+ || n == K_LEFTDRAG -+ || n == K_LEFTRELEASE -+ || n == K_LEFTRELEASE_NM -+ || n == K_MIDDLEMOUSE -+ || n == K_MIDDLEDRAG -+ || n == K_MIDDLERELEASE -+ || n == K_RIGHTMOUSE -+ || n == K_RIGHTDRAG -+ || n == K_RIGHTRELEASE -+ || n == K_X1MOUSE -+ || n == K_X1DRAG -+ || n == K_X1RELEASE -+ || n == K_X2MOUSE -+ || n == K_X2DRAG -+ || n == K_X2RELEASE -+ || n == K_MOUSEDOWN -+ || n == K_MOUSEUP) -+ { -+ int row = mouse_row; -+ int col = mouse_col; -+ win_T *win; -+ linenr_T lnum; -+ # ifdef FEAT_WINDOWS -+ win_T *wp; -+ # endif -+ int n = 1; -+ -+ if (row >= 0 && col >= 0) -+ { -+ /* Find the window at the mouse coordinates and compute the -+ * text position. */ -+ win = mouse_find_win(&row, &col); -+ (void)mouse_comp_pos(win, &row, &col, &lnum); -+ # ifdef FEAT_WINDOWS -+ for (wp = firstwin; wp != win; wp = wp->w_next) -+ ++n; -+ # endif -+ vimvars[VV_MOUSE_WIN].vv_nr = n; -+ vimvars[VV_MOUSE_LNUM].vv_nr = lnum; -+ vimvars[VV_MOUSE_COL].vv_nr = col + 1; -+ } -+ } -+ #endif - } - } - -*** ../vim-7.0.154/src/vim.h Tue Aug 29 18:16:37 2006 ---- src/vim.h Wed Nov 1 13:11:16 2006 -*************** -*** 1669,1675 **** - #define VV_SWAPCHOICE 46 - #define VV_SWAPCOMMAND 47 - #define VV_CHAR 48 -! #define VV_LEN 49 /* number of v: vars */ - - #ifdef FEAT_CLIPBOARD - ---- 1669,1678 ---- - #define VV_SWAPCHOICE 46 - #define VV_SWAPCOMMAND 47 - #define VV_CHAR 48 -! #define VV_MOUSE_WIN 49 -! #define VV_MOUSE_LNUM 50 -! #define VV_MOUSE_COL 51 -! #define VV_LEN 52 /* number of v: vars */ - - #ifdef FEAT_CLIPBOARD - -*** ../vim-7.0.154/src/version.c Wed Nov 1 12:43:07 2006 ---- src/version.c Wed Nov 1 15:22:33 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 155, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -138. You develop a liking for cold coffee. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.156 b/7.0.156 deleted file mode 100644 index a91e2eb6..00000000 --- a/7.0.156 +++ /dev/null @@ -1,883 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.156 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.156 (extra) -Problem: Vim doesn't compile for Amiga OS 4. -Solution: Various changes for Amiga OS4. (Peter Bengtsson) -Files: src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c, - src/os_amiga.c, src/os_amiga.h, src/pty.c - - -*** ../vim-7.0.155/src/feature.h Thu Apr 27 01:54:09 2006 ---- src/feature.h Wed Nov 1 17:52:54 2006 -*************** -*** 1133,1139 **** - /* - * +ARP Amiga only. Use arp.library, DOS 2.0 is not required. - */ -! #ifndef NO_ARP - # define FEAT_ARP - #endif - ---- 1133,1139 ---- - /* - * +ARP Amiga only. Use arp.library, DOS 2.0 is not required. - */ -! #if !defined(NO_ARP) && !defined(__amigaos4__) - # define FEAT_ARP - #endif - -*** ../vim-7.0.155/src/mbyte.c Tue Aug 29 17:28:56 2006 ---- src/mbyte.c Wed Nov 1 17:52:54 2006 -*************** -*** 667,673 **** - * API */ - n = IsDBCSLeadByteEx(enc_dbcs, (BYTE)i) ? 2 : 1; - #else -! # ifdef MACOS - /* - * if mblen() is not available, character which MSB is turned on - * are treated as leading byte character. (note : This assumption ---- 667,673 ---- - * API */ - n = IsDBCSLeadByteEx(enc_dbcs, (BYTE)i) ? 2 : 1; - #else -! # if defined(MACOS) || defined(__amigaos4__) - /* - * if mblen() is not available, character which MSB is turned on - * are treated as leading byte character. (note : This assumption -*** ../vim-7.0.155/src/memfile.c Tue Sep 26 13:49:41 2006 ---- src/memfile.c Wed Nov 1 17:52:54 2006 -*************** -*** 655,661 **** - # endif - #endif - #ifdef AMIGA -! # ifdef __AROS__ - if (fsync(mfp->mf_fd) != 0) - status = FAIL; - # else ---- 655,661 ---- - # endif - #endif - #ifdef AMIGA -! # if defined(__AROS__) || defined(__amigaos4__) - if (fsync(mfp->mf_fd) != 0) - status = FAIL; - # else -*** ../vim-7.0.155/src/memline.c Tue Oct 10 21:56:37 2006 ---- src/memline.c Wed Nov 1 17:52:54 2006 -*************** -*** 55,64 **** - # include - #endif - -! #ifdef SASC - # include /* for Open() and Close() */ - #endif - - typedef struct block0 ZERO_BL; /* contents of the first block */ - typedef struct pointer_block PTR_BL; /* contents of a pointer block */ - typedef struct data_block DATA_BL; /* contents of a data block */ ---- 55,68 ---- - # include - #endif - -! #if defined(SASC) || defined(__amigaos4__) - # include /* for Open() and Close() */ - #endif - -+ #ifdef HAVE_ERRNO_H -+ # include -+ #endif -+ - typedef struct block0 ZERO_BL; /* contents of the first block */ - typedef struct pointer_block PTR_BL; /* contents of a pointer block */ - typedef struct data_block DATA_BL; /* contents of a data block */ -*************** -*** 4481,4487 **** - curchnk = buf->b_ml.ml_chunksize + curix; - - if (updtype == ML_CHNK_DELLINE) -! len *= -1; - curchnk->mlcs_totalsize += len; - if (updtype == ML_CHNK_ADDLINE) - { ---- 4485,4491 ---- - curchnk = buf->b_ml.ml_chunksize + curix; - - if (updtype == ML_CHNK_DELLINE) -! len = -len; - curchnk->mlcs_totalsize += len; - if (updtype == ML_CHNK_ADDLINE) - { -*** ../vim-7.0.155/src/os_amiga.c Thu Sep 14 21:36:35 2006 ---- src/os_amiga.c Wed Nov 1 18:09:46 2006 -*************** -*** 30,49 **** - # include - # include - # include -- # include - # include -- #else -- # include -- # include -- # include -- # include - #endif - - #include - - #include /* for 2.0 functions */ - #include - - #if defined(LATTICE) && !defined(SASC) && defined(FEAT_ARP) - # include - #endif ---- 30,60 ---- - # include - # include - # include - # include - #endif - -+ /* XXX These are included from os_amiga.h -+ #include -+ #include -+ #include -+ */ -+ - #include -+ #include - - #include /* for 2.0 functions */ - #include - -+ /* From version 4 of AmigaOS, several system structures must be allocated -+ * and freed using system functions. "struct AnchorPath" is one. -+ */ -+ #ifdef __amigaos4__ -+ # include -+ # define free_fib(x) FreeDosObject(DOS_FIB, x) -+ #else -+ # define free_fib(x) vim_free(fib) -+ #endif -+ - #if defined(LATTICE) && !defined(SASC) && defined(FEAT_ARP) - # include - #endif -*************** -*** 56,62 **** - #undef FALSE - #define FALSE (0) - -! #if !defined(AZTEC_C) && !defined(__AROS__) - static long dos_packet __ARGS((struct MsgPort *, long, long)); - #endif - static int lock2name __ARGS((BPTR lock, char_u *buf, long len)); ---- 67,75 ---- - #undef FALSE - #define FALSE (0) - -! #ifdef __amigaos4__ -! # define dos_packet(a, b, c) DoPkt(a, b, c, 0, 0, 0, 0) -! #elif !defined(AZTEC_C) && !defined(__AROS__) - static long dos_packet __ARGS((struct MsgPort *, long, long)); - #endif - static int lock2name __ARGS((BPTR lock, char_u *buf, long len)); -*************** -*** 68,74 **** ---- 81,89 ---- - static BPTR raw_out = (BPTR)NULL; - static int close_win = FALSE; /* set if Vim opened the window */ - -+ #ifndef __amigaos4__ /* Use autoopen for AmigaOS4 */ - struct IntuitionBase *IntuitionBase = NULL; -+ #endif - #ifdef FEAT_ARP - struct ArpBase *ArpBase = NULL; - #endif -*************** -*** 186,194 **** ---- 201,217 ---- - mch_avail_mem(special) - int special; - { -+ #ifdef __amigaos4__ -+ return (long_u)AvailMem(MEMF_ANY); -+ #else - return (long_u)AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY); -+ #endif - } - -+ /* -+ * Waits a specified amount of time, or until input arrives if -+ * ignoreinput is FALSE. -+ */ - void - mch_delay(msec, ignoreinput) - long msec; -*************** -*** 252,257 **** ---- 275,281 ---- - out_flush(); - - wb_window = NULL; -+ #ifndef __amigaos4__ - if ((IntuitionBase = (struct IntuitionBase *) - OpenLibrary((UBYTE *)intlibname, 0L)) == NULL) - { -*************** -*** 260,265 **** ---- 284,290 ---- - mch_errmsg("!?\n"); - mch_exit(3); - } -+ #endif - } - - #include -*************** -*** 284,290 **** - { - int i; - BPTR nilfh, fh; -! char_u buf1[20]; - char_u buf2[BUF2SIZE]; - static char_u *(constrings[3]) = {(char_u *)"con:0/0/662/210/", - (char_u *)"con:0/0/640/200/", ---- 309,315 ---- - { - int i; - BPTR nilfh, fh; -! char_u buf1[24]; - char_u buf2[BUF2SIZE]; - static char_u *(constrings[3]) = {(char_u *)"con:0/0/662/210/", - (char_u *)"con:0/0/640/200/", -*************** -*** 295,329 **** - char *av; - char_u *device = NULL; - int exitval = 4; - struct Library *DosBase; - int usewin = FALSE; - - /* - * check if we are running under DOS 2.0x or higher - */ - DosBase = OpenLibrary(DOS_LIBRARY, 37L); - if (DosBase != NULL) - /* if (((struct Library *)DOSBase)->lib_Version >= 37) */ - { - CloseLibrary(DosBase); -! #ifdef FEAT_ARP - dos2 = TRUE; -! #endif - } - else /* without arp functions we NEED 2.0 */ - { -! #ifndef FEAT_ARP - mch_errmsg(_("Need Amigados version 2.04 or later\n")); - exit(3); -! #else - /* need arp functions for dos 1.x */ - if (!(ArpBase = (struct ArpBase *) OpenLibrary((UBYTE *)ArpName, ArpVersion))) - { - fprintf(stderr, _("Need %s version %ld\n"), ArpName, ArpVersion); - exit(3); - } -! #endif - } - - /* - * scan argv[] for the "-f" and "-d" arguments ---- 320,358 ---- - char *av; - char_u *device = NULL; - int exitval = 4; -+ #ifndef __amigaos4__ - struct Library *DosBase; -+ #endif - int usewin = FALSE; - - /* - * check if we are running under DOS 2.0x or higher - */ -+ #ifndef __amigaos4__ - DosBase = OpenLibrary(DOS_LIBRARY, 37L); - if (DosBase != NULL) - /* if (((struct Library *)DOSBase)->lib_Version >= 37) */ - { - CloseLibrary(DosBase); -! # ifdef FEAT_ARP - dos2 = TRUE; -! # endif - } - else /* without arp functions we NEED 2.0 */ - { -! # ifndef FEAT_ARP - mch_errmsg(_("Need Amigados version 2.04 or later\n")); - exit(3); -! # else - /* need arp functions for dos 1.x */ - if (!(ArpBase = (struct ArpBase *) OpenLibrary((UBYTE *)ArpName, ArpVersion))) - { - fprintf(stderr, _("Need %s version %ld\n"), ArpName, ArpVersion); - exit(3); - } -! # endif - } -+ #endif /* __amigaos4__ */ - - /* - * scan argv[] for the "-f" and "-d" arguments -*************** -*** 398,405 **** ---- 427,441 ---- - /* - * Make a unique name for the temp file (which we will not delete!). - * Use a pointer on the stack (nobody else will be using it). -+ * Under AmigaOS4, this assumption might change in the future, so -+ * we use a pointer to the current task instead. This should be a -+ * shared structure and thus globally unique. - */ -+ #ifdef __amigaos4__ -+ sprintf((char *)buf1, "t:nc%p", FindTask(0)); -+ #else - sprintf((char *)buf1, "t:nc%ld", (long)buf1); -+ #endif - if ((fh = Open((UBYTE *)buf1, (long)MODE_NEWFILE)) == (BPTR)NULL) - { - mch_errmsg(_("Cannot create ")); -*************** -*** 513,519 **** - - /* - * fname_case(): Set the case of the file name, if it already exists. -! * This will cause the file name to remain exactly the same. - */ - /*ARGSUSED*/ - void ---- 549,556 ---- - - /* - * fname_case(): Set the case of the file name, if it already exists. -! * This will cause the file name to remain exactly the same -! * if the file system ignores, but preserves case. - */ - /*ARGSUSED*/ - void -*************** -*** 528,536 **** - if (fib != NULL) - { - flen = STRLEN(name); - if (flen == strlen(fib->fib_FileName)) /* safety check */ - mch_memmove(name, fib->fib_FileName, flen); -! vim_free(fib); - } - } - ---- 565,578 ---- - if (fib != NULL) - { - flen = STRLEN(name); -+ /* TODO: Check if this fix applies to AmigaOS < 4 too.*/ -+ #ifdef __amigaos4__ -+ if (fib->fib_DirEntryType == ST_ROOT) -+ strcat(fib->fib_FileName, ":"); -+ #endif - if (flen == strlen(fib->fib_FileName)) /* safety check */ - mch_memmove(name, fib->fib_FileName, flen); -! free_fib(fib); - } - } - -*************** -*** 548,560 **** - - if (fname == NULL) /* safety check */ - return NULL; -! fib = (struct FileInfoBlock *)malloc(sizeof(struct FileInfoBlock)); - if (fib != NULL) - { - flock = Lock((UBYTE *)fname, (long)ACCESS_READ); - if (flock == (BPTR)NULL || !Examine(flock, fib)) - { -! vim_free(fib); /* in case of an error the memory is freed here */ - fib = NULL; - } - if (flock) ---- 590,606 ---- - - if (fname == NULL) /* safety check */ - return NULL; -! #ifdef __amigaos4__ -! fib = AllocDosObject(DOS_FIB,0); -! #else -! fib = (struct FileInfoBlock *)alloc(sizeof(struct FileInfoBlock)); -! #endif - if (fib != NULL) - { - flock = Lock((UBYTE *)fname, (long)ACCESS_READ); - if (flock == (BPTR)NULL || !Examine(flock, fib)) - { -! free_fib(fib); /* in case of an error the memory is freed here */ - fib = NULL; - } - if (flock) -*************** -*** 613,618 **** ---- 659,665 ---- - char_u *s; - int len; - { -+ /* TODO: Implement this. */ - *s = NUL; - return FAIL; - } -*************** -*** 625,631 **** ---- 672,682 ---- - char_u *s; - int len; - { -+ #if defined(__amigaos4__) && defined(__CLIB2__) -+ gethostname(s, len); -+ #else - vim_strncpy(s, "Amiga", len - 1); -+ #endif - } - - /* -*************** -*** 634,640 **** ---- 685,698 ---- - long - mch_get_pid() - { -+ #ifdef __amigaos4__ -+ /* This is as close to a pid as we can come. We could use CLI numbers also, -+ * but then we would have two different types of process identifiers. -+ */ -+ return((long)FindTask(0)); -+ #else - return (long)0; -+ #endif - } - - /* -*************** -*** 746,752 **** - if (fib != NULL) - { - retval = fib->fib_Protection; -! vim_free(fib); - } - return retval; - } ---- 804,810 ---- - if (fib != NULL) - { - retval = fib->fib_Protection; -! free_fib(fib); - } - return retval; - } -*************** -*** 790,797 **** - fib = get_fib(name); - if (fib != NULL) - { - retval = ((fib->fib_DirEntryType >= 0) ? TRUE : FALSE); -! vim_free(fib); - } - return retval; - } ---- 848,859 ---- - fib = get_fib(name); - if (fib != NULL) - { -+ #ifdef __amigaos4__ -+ retval = (FIB_IS_DRAWER(fib)) ? TRUE : FALSE; -+ #else - retval = ((fib->fib_DirEntryType >= 0) ? TRUE : FALSE); -! #endif -! free_fib(fib); - } - return retval; - } -*************** -*** 912,918 **** - mch_settmode(tmode) - int tmode; - { -! #ifdef __AROS__ - if (!SetMode(raw_in, tmode == TMODE_RAW ? 1 : 0)) - #else - if (dos_packet(MP(raw_in), (long)ACTION_SCREEN_MODE, ---- 974,980 ---- - mch_settmode(tmode) - int tmode; - { -! #if defined(__AROS__) || defined(__amigaos4__) - if (!SetMode(raw_in, tmode == TMODE_RAW ? 1 : 0)) - #else - if (dos_packet(MP(raw_in), (long)ACTION_SCREEN_MODE, -*************** -*** 954,967 **** - mch_get_shellsize() - { - struct ConUnit *conUnit; - char id_a[sizeof(struct InfoData) + 3]; -! struct InfoData *id; - - if (!term_console) /* not an amiga window */ -! return FAIL; - - /* insure longword alignment */ - id = (struct InfoData *)(((long)id_a + 3L) & ~3L); - - /* - * Should make console aware of real window size, not the one we set. ---- 1016,1036 ---- - mch_get_shellsize() - { - struct ConUnit *conUnit; -+ #ifndef __amigaos4__ - char id_a[sizeof(struct InfoData) + 3]; -! #endif -! struct InfoData *id=0; - - if (!term_console) /* not an amiga window */ -! goto out; - - /* insure longword alignment */ -+ #ifdef __amigaos4__ -+ if(!(id = AllocDosObject(DOS_INFODATA, 0))) -+ goto out; -+ #else - id = (struct InfoData *)(((long)id_a + 3L) & ~3L); -+ #endif - - /* - * Should make console aware of real window size, not the one we set. -*************** -*** 983,989 **** - /* it's not an amiga window, maybe aux device */ - /* terminal type should be set */ - term_console = FALSE; -! return FAIL; - } - if (oldwindowtitle == NULL) - oldwindowtitle = (char_u *)wb_window->Title; ---- 1052,1058 ---- - /* it's not an amiga window, maybe aux device */ - /* terminal type should be set */ - term_console = FALSE; -! goto out; - } - if (oldwindowtitle == NULL) - oldwindowtitle = (char_u *)wb_window->Title; -*************** -*** 1006,1011 **** ---- 1075,1086 ---- - } - - return OK; -+ out: -+ #ifdef __amigaos4__ -+ FreeDosObject(DOS_INFODATA, id); /* Safe to pass NULL */ -+ #endif -+ -+ return FAIL; - } - - /* -*************** -*** 1046,1052 **** - OUT_STR_NF(tltoa((unsigned long)n)); - } - -! #if !defined(AZTEC_C) && !defined(__AROS__) - /* - * Sendpacket.c - * ---- 1121,1127 ---- - OUT_STR_NF(tltoa((unsigned long)n)); - } - -! #if !defined(AZTEC_C) && !defined(__AROS__) && !defined(__amigaos4__) - /* - * Sendpacket.c - * -*************** -*** 1371,1378 **** - * Use and abuse as you please. - */ - -! #define ANCHOR_BUF_SIZE (512) -! #define ANCHOR_SIZE (sizeof(struct AnchorPath) + ANCHOR_BUF_SIZE) - - int - mch_expandpath(gap, pat, flags) ---- 1446,1457 ---- - * Use and abuse as you please. - */ - -! #ifdef __amigaos4__ -! # define ANCHOR_BUF_SIZE 1024 -! #else -! # define ANCHOR_BUF_SIZE (512) -! # define ANCHOR_SIZE (sizeof(struct AnchorPath) + ANCHOR_BUF_SIZE) -! #endif - - int - mch_expandpath(gap, pat, flags) -*************** -*** 1385,1403 **** - char_u *starbuf, *sp, *dp; - int start_len; - int matches; - - start_len = gap->ga_len; - - /* Get our AnchorBase */ - Anchor = (struct AnchorPath *)alloc_clear((unsigned)ANCHOR_SIZE); - if (Anchor == NULL) - return 0; - - Anchor->ap_Strlen = ANCHOR_BUF_SIZE; /* ap_Length not supported anymore */ -! #ifdef APF_DODOT - Anchor->ap_Flags = APF_DODOT | APF_DOWILD; /* allow '.' for current dir */ -! #else - Anchor->ap_Flags = APF_DoDot | APF_DoWild; /* allow '.' for current dir */ - #endif - - #ifdef FEAT_ARP ---- 1464,1495 ---- - char_u *starbuf, *sp, *dp; - int start_len; - int matches; -+ #ifdef __amigaos4__ -+ struct TagItem AnchorTags[] = { -+ {ADO_Strlen, ANCHOR_BUF_SIZE}, -+ {ADO_Flags, APF_DODOT|APF_DOWILD|APF_MultiAssigns}, -+ {TAG_DONE, 0L} -+ }; -+ #endif - - start_len = gap->ga_len; - - /* Get our AnchorBase */ -+ #ifdef __amigaos4__ -+ Anchor = AllocDosObject(DOS_ANCHORPATH, AnchorTags); -+ #else - Anchor = (struct AnchorPath *)alloc_clear((unsigned)ANCHOR_SIZE); -+ #endif - if (Anchor == NULL) - return 0; - -+ #ifndef __amigaos4__ - Anchor->ap_Strlen = ANCHOR_BUF_SIZE; /* ap_Length not supported anymore */ -! # ifdef APF_DODOT - Anchor->ap_Flags = APF_DODOT | APF_DOWILD; /* allow '.' for current dir */ -! # else - Anchor->ap_Flags = APF_DoDot | APF_DoWild; /* allow '.' for current dir */ -+ # endif - #endif - - #ifdef FEAT_ARP -*************** -*** 1432,1438 **** ---- 1524,1534 ---- - */ - while (Result == 0) - { -+ #ifdef __amigaos4__ -+ addfile(gap, (char_u *)Anchor->ap_Buffer, flags); -+ #else - addfile(gap, (char_u *)Anchor->ap_Buf, flags); -+ #endif - #ifdef FEAT_ARP - if (dos2) - #endif -*************** -*** 1469,1475 **** ---- 1565,1575 ---- - #endif - - Return: -+ #ifdef __amigaos4__ -+ FreeDosObject(DOS_ANCHORPATH, Anchor); -+ #else - vim_free(Anchor); -+ #endif - - return matches; - } -*** ../vim-7.0.155/src/os_amiga.h Sun Jun 13 22:09:36 2004 ---- src/os_amiga.h Wed Nov 1 18:03:32 2006 -*************** -*** 17,25 **** - #define HAVE_AVAIL_MEM - - #ifndef HAVE_CONFIG_H -! # ifdef AZTEC_C - # define HAVE_STAT_H - # endif - # define HAVE_STDLIB_H - # define HAVE_STRING_H - # define HAVE_FCNTL_H ---- 17,28 ---- - #define HAVE_AVAIL_MEM - - #ifndef HAVE_CONFIG_H -! # if defined(AZTEC_C) || defined(__amigaos4__) - # define HAVE_STAT_H - # endif -+ # ifdef __amigaos4__ -+ # define HAVE_STDARG_H -+ # endif - # define HAVE_STDLIB_H - # define HAVE_STRING_H - # define HAVE_FCNTL_H -*************** -*** 34,48 **** - # define HAVE_DATE_TIME - # endif - -! #define DFLT_ERRORFILE "AztecC.Err" -! #define DFLT_RUNTIMEPATH "home:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,home:vimfiles/after" - -! #define BASENAMELEN 26 /* Amiga */ - -! #define TEMPNAME "t:v?XXXXXX" -! #define TEMPNAMELEN 12 - -! #endif /* HAVE_CONFIG_H */ - - #include - #include ---- 37,60 ---- - # define HAVE_DATE_TIME - # endif - -! #endif /* HAVE_CONFIG_H */ - -! #ifndef DFLT_ERRORFILE -! # define DFLT_ERRORFILE "AztecC.Err" /* Should this change? */ -! #endif - -! #ifndef DFLT_RUNTIMEPATH -! # define DFLT_RUNTIMEPATH "home:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,home:vimfiles/after" -! #endif - -! #ifndef BASENAMELEN -! # define BASENAMELEN 26 /* Amiga */ -! #endif -! -! #ifndef TEMPNAME -! # define TEMPNAME "t:v?XXXXXX" -! # define TEMPNAMELEN 12 -! #endif - - #include - #include -*************** -*** 155,163 **** - #endif - - #ifdef FEAT_VIMINFO -! #ifndef VIMINFO_FILE -! # define VIMINFO_FILE "s:.viminfo" -! #endif - #endif /* FEAT_VIMINFO */ - - #ifndef EXRC_FILE ---- 167,175 ---- - #endif - - #ifdef FEAT_VIMINFO -! # ifndef VIMINFO_FILE -! # define VIMINFO_FILE "s:.viminfo" -! # endif - #endif /* FEAT_VIMINFO */ - - #ifndef EXRC_FILE -*** ../vim-7.0.155/src/pty.c Sun Jun 13 22:04:27 2004 ---- src/pty.c Wed Nov 1 17:53:01 2006 -*************** -*** 51,57 **** - # include - #endif - -! #if HAVE_SYS_IOCTL_H - # include - #endif - ---- 51,57 ---- - # include - #endif - -! #ifdef HAVE_SYS_IOCTL_H - # include - #endif - -*************** -*** 69,82 **** - # endif - #endif - -! #if HAVE_UNISTD_H - # include - #endif - - #if HAVE_TERMIO_H - # include - #else -! # if HAVE_TERMIOS_H - # include - # endif - #endif ---- 69,82 ---- - # endif - #endif - -! #ifdef HAVE_UNISTD_H - # include - #endif - - #if HAVE_TERMIO_H - # include - #else -! # ifdef HAVE_TERMIOS_H - # include - # endif - #endif -*** ../vim-7.0.155/src/version.c Wed Nov 1 15:31:02 2006 ---- src/version.c Wed Nov 1 18:04:17 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 156, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -139. You down your lunch in five minutes, at your desk, so you can - spend the rest of the hour surfing the Net. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.157 b/7.0.157 deleted file mode 100644 index bcdf62e1..00000000 --- a/7.0.157 +++ /dev/null @@ -1,105 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.157 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.157 -Problem: When a function is used recursively the profiling information is - invalid. (Mikolaj Machowski) -Solution: Put the start time on the stack instead of in the function. -Files: src/eval.c - - -*** ../vim-7.0.156/src/eval.c Wed Nov 1 15:31:02 2006 ---- src/eval.c Wed Nov 1 13:39:52 2006 -*************** -*** 166,172 **** - int uf_tm_count; /* nr of calls */ - proftime_T uf_tm_total; /* time spend in function + children */ - proftime_T uf_tm_self; /* time spend in function itself */ -- proftime_T uf_tm_start; /* time at function call */ - proftime_T uf_tm_children; /* time spent in children this call */ - /* profiling the function per line */ - int *uf_tml_count; /* nr of times line was executed */ ---- 166,171 ---- -*************** -*** 19764,19769 **** ---- 19763,19769 ---- - char_u *name; - #ifdef FEAT_PROFILE - proftime_T wait_start; -+ proftime_T call_start; - #endif - - /* If depth of calling is getting too high, don't execute the function */ -*************** -*** 19943,19949 **** - || (fc.caller != NULL && &fc.caller->func->uf_profiling)) - { - ++fp->uf_tm_count; -! profile_start(&fp->uf_tm_start); - profile_zero(&fp->uf_tm_children); - } - script_prof_save(&wait_start); ---- 19943,19949 ---- - || (fc.caller != NULL && &fc.caller->func->uf_profiling)) - { - ++fp->uf_tm_count; -! profile_start(&call_start); - profile_zero(&fp->uf_tm_children); - } - script_prof_save(&wait_start); -*************** -*** 19973,19986 **** - if (do_profiling == PROF_YES && (fp->uf_profiling - || (fc.caller != NULL && &fc.caller->func->uf_profiling))) - { -! profile_end(&fp->uf_tm_start); -! profile_sub_wait(&wait_start, &fp->uf_tm_start); -! profile_add(&fp->uf_tm_total, &fp->uf_tm_start); -! profile_self(&fp->uf_tm_self, &fp->uf_tm_start, &fp->uf_tm_children); - if (fc.caller != NULL && &fc.caller->func->uf_profiling) - { -! profile_add(&fc.caller->func->uf_tm_children, &fp->uf_tm_start); -! profile_add(&fc.caller->func->uf_tml_children, &fp->uf_tm_start); - } - } - #endif ---- 19973,19986 ---- - if (do_profiling == PROF_YES && (fp->uf_profiling - || (fc.caller != NULL && &fc.caller->func->uf_profiling))) - { -! profile_end(&call_start); -! profile_sub_wait(&wait_start, &call_start); -! profile_add(&fp->uf_tm_total, &call_start); -! profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children); - if (fc.caller != NULL && &fc.caller->func->uf_profiling) - { -! profile_add(&fc.caller->func->uf_tm_children, &call_start); -! profile_add(&fc.caller->func->uf_tml_children, &call_start); - } - } - #endif -*** ../vim-7.0.156/src/version.c Wed Nov 1 18:10:36 2006 ---- src/version.c Wed Nov 1 18:32:42 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 157, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -140. You'd rather catch a score on the web than watch the game as - it is being played on tv. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.158 b/7.0.158 deleted file mode 100644 index 68c8382e..00000000 --- a/7.0.158 +++ /dev/null @@ -1,50 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.158 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.158 -Problem: In a C file with ":set foldmethod=syntax", typing { on the - last line results in the cursor being in a closed fold. (Gautam - Iyer) -Solution: Open fold after inserting a new line. -Files: src/edit.c - - -*** ../vim-7.0.157/src/edit.c Tue Oct 17 13:39:36 2006 ---- src/edit.c Wed Nov 1 21:17:19 2006 -*************** -*** 9204,9209 **** ---- 9204,9213 ---- - #ifdef FEAT_CINDENT - can_cindent = TRUE; - #endif -+ #ifdef FEAT_FOLDING -+ /* When inserting a line the cursor line must never be in a closed fold. */ -+ foldOpenCursor(); -+ #endif - - return (!i); - } -*** ../vim-7.0.157/src/version.c Wed Nov 1 18:33:43 2006 ---- src/version.c Wed Nov 1 21:21:22 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 158, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -142. You dream about creating the world's greatest web site. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.159 b/7.0.159 deleted file mode 100644 index 1120da08..00000000 --- a/7.0.159 +++ /dev/null @@ -1,80 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.159 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.159 -Problem: When there is an I/O error in the swap file the cause of the error - cannot be seen. -Solution: Use PERROR() instead of EMSG() where possible. -Files: src/memfile.c - - -*** ../vim-7.0.158/src/memfile.c Wed Nov 1 18:10:36 2006 ---- src/memfile.c Wed Nov 1 21:38:59 2006 -*************** -*** 1028,1039 **** - size = page_size * hp->bh_page_count; - if (lseek(mfp->mf_fd, offset, SEEK_SET) != offset) - { -! EMSG(_("E294: Seek error in swap file read")); - return FAIL; - } - if ((unsigned)vim_read(mfp->mf_fd, hp->bh_data, size) != size) - { -! EMSG(_("E295: Read error in swap file")); - return FAIL; - } - return OK; ---- 1028,1039 ---- - size = page_size * hp->bh_page_count; - if (lseek(mfp->mf_fd, offset, SEEK_SET) != offset) - { -! PERROR(_("E294: Seek error in swap file read")); - return FAIL; - } - if ((unsigned)vim_read(mfp->mf_fd, hp->bh_data, size) != size) - { -! PERROR(_("E295: Read error in swap file")); - return FAIL; - } - return OK; -*************** -*** 1085,1091 **** - offset = (off_t)page_size * nr; - if (lseek(mfp->mf_fd, offset, SEEK_SET) != offset) - { -! EMSG(_("E296: Seek error in swap file write")); - return FAIL; - } - if (hp2 == NULL) /* freed block, fill with dummy data */ ---- 1085,1091 ---- - offset = (off_t)page_size * nr; - if (lseek(mfp->mf_fd, offset, SEEK_SET) != offset) - { -! PERROR(_("E296: Seek error in swap file write")); - return FAIL; - } - if (hp2 == NULL) /* freed block, fill with dummy data */ -*** ../vim-7.0.158/src/version.c Wed Nov 1 21:24:58 2006 ---- src/version.c Tue Nov 7 17:58:58 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 159, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -171. You invent another person and chat with yourself in empty chat rooms. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.160 b/7.0.160 deleted file mode 100644 index 5b547232..00000000 --- a/7.0.160 +++ /dev/null @@ -1,309 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.160 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.160 -Problem: ":@a" echoes the command, Vi doesn't do that. -Solution: Set the silent flag in the typeahead buffer to avoid echoing the - command. -Files: src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro - - -*** ../vim-7.0.159/src/ex_docmd.c Tue Oct 24 13:02:27 2006 ---- src/ex_docmd.c Tue Nov 7 17:42:52 2006 -*************** -*** 8219,8226 **** - c = *eap->arg; - if (c == NUL || (c == '*' && *eap->cmd == '*')) - c = '@'; -! /* put the register in mapbuf */ -! if (do_execreg(c, TRUE, vim_strchr(p_cpo, CPO_EXECBUF) != NULL) == FAIL) - { - beep_flush(); - } ---- 8219,8227 ---- - c = *eap->arg; - if (c == NUL || (c == '*' && *eap->cmd == '*')) - c = '@'; -! /* Put the register in the typeahead buffer with the "silent" flag. */ -! if (do_execreg(c, TRUE, vim_strchr(p_cpo, CPO_EXECBUF) != NULL, TRUE) -! == FAIL) - { - beep_flush(); - } -*** ../vim-7.0.159/src/normal.c Tue Oct 17 22:40:14 2006 ---- src/normal.c Tue Nov 7 17:42:59 2006 -*************** -*** 8860,8866 **** - #endif - while (cap->count1-- && !got_int) - { -! if (do_execreg(cap->nchar, FALSE, FALSE) == FAIL) - { - clearopbeep(cap->oap); - break; ---- 8860,8866 ---- - #endif - while (cap->count1-- && !got_int) - { -! if (do_execreg(cap->nchar, FALSE, FALSE, FALSE) == FAIL) - { - clearopbeep(cap->oap); - break; -*** ../vim-7.0.159/src/ops.c Tue Oct 17 16:26:52 2006 ---- src/ops.c Tue Nov 7 17:52:30 2006 -*************** -*** 95,102 **** - static void block_insert __ARGS((oparg_T *oap, char_u *s, int b_insert, struct block_def*bdp)); - #endif - static int stuff_yank __ARGS((int, char_u *)); -! static void put_reedit_in_typebuf __ARGS((void)); -! static int put_in_typebuf __ARGS((char_u *s, int colon)); - static void stuffescaped __ARGS((char_u *arg, int literally)); - #ifdef FEAT_MBYTE - static void mb_adjust_opend __ARGS((oparg_T *oap)); ---- 95,102 ---- - static void block_insert __ARGS((oparg_T *oap, char_u *s, int b_insert, struct block_def*bdp)); - #endif - static int stuff_yank __ARGS((int, char_u *)); -! static void put_reedit_in_typebuf __ARGS((int silent)); -! static int put_in_typebuf __ARGS((char_u *s, int colon, int silent)); - static void stuffescaped __ARGS((char_u *arg, int literally)); - #ifdef FEAT_MBYTE - static void mb_adjust_opend __ARGS((oparg_T *oap)); -*************** -*** 1120,1129 **** - * return FAIL for failure, OK otherwise - */ - int -! do_execreg(regname, colon, addcr) - int regname; - int colon; /* insert ':' before each line */ - int addcr; /* always add '\n' to end of line */ - { - static int lastc = NUL; - long i; ---- 1120,1130 ---- - * return FAIL for failure, OK otherwise - */ - int -! do_execreg(regname, colon, addcr, silent) - int regname; - int colon; /* insert ':' before each line */ - int addcr; /* always add '\n' to end of line */ -+ int silent; /* set "silent" flag in typeahead buffer */ - { - static int lastc = NUL; - long i; -*************** -*** 1173,1181 **** - /* When in Visual mode "'<,'>" will be prepended to the command. - * Remove it when it's already there. */ - if (VIsual_active && STRNCMP(p, "'<,'>", 5) == 0) -! retval = put_in_typebuf(p + 5, TRUE); - else -! retval = put_in_typebuf(p, TRUE); - } - vim_free(p); - } ---- 1174,1182 ---- - /* When in Visual mode "'<,'>" will be prepended to the command. - * Remove it when it's already there. */ - if (VIsual_active && STRNCMP(p, "'<,'>", 5) == 0) -! retval = put_in_typebuf(p + 5, TRUE, silent); - else -! retval = put_in_typebuf(p, TRUE, silent); - } - vim_free(p); - } -*************** -*** 1186,1192 **** - p = get_expr_line(); - if (p == NULL) - return FAIL; -! retval = put_in_typebuf(p, colon); - vim_free(p); - } - #endif ---- 1187,1193 ---- - p = get_expr_line(); - if (p == NULL) - return FAIL; -! retval = put_in_typebuf(p, colon, silent); - vim_free(p); - } - #endif -*************** -*** 1198,1204 **** - EMSG(_(e_noinstext)); - return FAIL; - } -! retval = put_in_typebuf(p, colon); - vim_free(p); - } - else ---- 1199,1205 ---- - EMSG(_(e_noinstext)); - return FAIL; - } -! retval = put_in_typebuf(p, colon, silent); - vim_free(p); - } - else -*************** -*** 1213,1232 **** - /* - * Insert lines into typeahead buffer, from last one to first one. - */ -! put_reedit_in_typebuf(); - for (i = y_current->y_size; --i >= 0; ) - { - /* insert NL between lines and after last line if type is MLINE */ - if (y_current->y_type == MLINE || i < y_current->y_size - 1 - || addcr) - { -! if (ins_typebuf((char_u *)"\n", remap, 0, TRUE, FALSE) == FAIL) - return FAIL; - } -! if (ins_typebuf(y_current->y_array[i], remap, 0, TRUE, FALSE) - == FAIL) - return FAIL; -! if (colon && ins_typebuf((char_u *)":", remap, 0, TRUE, FALSE) - == FAIL) - return FAIL; - } ---- 1214,1233 ---- - /* - * Insert lines into typeahead buffer, from last one to first one. - */ -! put_reedit_in_typebuf(silent); - for (i = y_current->y_size; --i >= 0; ) - { - /* insert NL between lines and after last line if type is MLINE */ - if (y_current->y_type == MLINE || i < y_current->y_size - 1 - || addcr) - { -! if (ins_typebuf((char_u *)"\n", remap, 0, TRUE, silent) == FAIL) - return FAIL; - } -! if (ins_typebuf(y_current->y_array[i], remap, 0, TRUE, silent) - == FAIL) - return FAIL; -! if (colon && ins_typebuf((char_u *)":", remap, 0, TRUE, silent) - == FAIL) - return FAIL; - } -*************** -*** 1240,1246 **** - * used only after other typeahead has been processed. - */ - static void -! put_reedit_in_typebuf() - { - char_u buf[3]; - ---- 1241,1248 ---- - * used only after other typeahead has been processed. - */ - static void -! put_reedit_in_typebuf(silent) -! int silent; - { - char_u buf[3]; - -*************** -*** 1257,1281 **** - buf[0] = restart_edit == 'I' ? 'i' : restart_edit; - buf[1] = NUL; - } -! if (ins_typebuf(buf, REMAP_NONE, 0, TRUE, FALSE) == OK) - restart_edit = NUL; - } - } - - static int -! put_in_typebuf(s, colon) - char_u *s; - int colon; /* add ':' before the line */ - { - int retval = OK; - -! put_reedit_in_typebuf(); - if (colon) -! retval = ins_typebuf((char_u *)"\n", REMAP_YES, 0, TRUE, FALSE); - if (retval == OK) -! retval = ins_typebuf(s, REMAP_YES, 0, TRUE, FALSE); - if (colon && retval == OK) -! retval = ins_typebuf((char_u *)":", REMAP_YES, 0, TRUE, FALSE); - return retval; - } - ---- 1259,1284 ---- - buf[0] = restart_edit == 'I' ? 'i' : restart_edit; - buf[1] = NUL; - } -! if (ins_typebuf(buf, REMAP_NONE, 0, TRUE, silent) == OK) - restart_edit = NUL; - } - } - - static int -! put_in_typebuf(s, colon, silent) - char_u *s; - int colon; /* add ':' before the line */ -+ int silent; - { - int retval = OK; - -! put_reedit_in_typebuf(silent); - if (colon) -! retval = ins_typebuf((char_u *)"\n", REMAP_YES, 0, TRUE, silent); - if (retval == OK) -! retval = ins_typebuf(s, REMAP_YES, 0, TRUE, silent); - if (colon && retval == OK) -! retval = ins_typebuf((char_u *)":", REMAP_YES, 0, TRUE, silent); - return retval; - } - -*** ../vim-7.0.159/src/proto/ops.pro Tue Oct 17 16:26:52 2006 ---- src/proto/ops.pro Tue Nov 7 18:08:35 2006 -*************** -*** 17,23 **** - extern void put_register __ARGS((int name, void *reg)); - extern int yank_register_mline __ARGS((int regname)); - extern int do_record __ARGS((int c)); -! extern int do_execreg __ARGS((int regname, int colon, int addcr)); - extern int insert_reg __ARGS((int regname, int literally)); - extern int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg)); - extern int cmdline_paste_reg __ARGS((int regname, int literally, int remcr)); ---- 17,23 ---- - extern void put_register __ARGS((int name, void *reg)); - extern int yank_register_mline __ARGS((int regname)); - extern int do_record __ARGS((int c)); -! extern int do_execreg __ARGS((int regname, int colon, int addcr, int silent)); - extern int insert_reg __ARGS((int regname, int literally)); - extern int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg)); - extern int cmdline_paste_reg __ARGS((int regname, int literally, int remcr)); -*** ../vim-7.0.159/src/version.c Tue Nov 7 18:02:19 2006 ---- src/version.c Tue Nov 7 18:05:36 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 160, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -172. You join listservers just for the extra e-mail. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.161 b/7.0.161 deleted file mode 100644 index aac9965d..00000000 --- a/7.0.161 +++ /dev/null @@ -1,244 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.161 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.161 -Problem: Win32: Tab pages line popup menu isn't using the right encoding. - (Yongwei Wu) -Solution: Convert the text when necessary. Also fixes the Find/Replace - dialog title. (Yegappan Lakshmanan) -Files: src/gui_w48.c - - -*** ../vim-7.0.160/src/gui_w48.c Tue Aug 29 21:30:15 2006 ---- src/gui_w48.c Tue Nov 7 19:03:52 2006 -*************** -*** 2217,2226 **** - - #if defined(FEAT_GUI_TABLINE) || defined(PROTO) - static void - show_tabline_popup_menu(void) - { - HMENU tab_pmenu; -- MENUITEMINFO minfo; - long rval; - POINT pt; - ---- 2217,2270 ---- - - #if defined(FEAT_GUI_TABLINE) || defined(PROTO) - static void -+ add_tabline_popup_menu_entry(HMENU pmenu, UINT item_id, char_u *item_text) -+ { -+ #ifdef FEAT_MBYTE -+ WCHAR *wn = NULL; -+ int n; -+ -+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -+ { -+ /* 'encoding' differs from active codepage: convert menu name -+ * and use wide function */ -+ wn = enc_to_ucs2(item_text, NULL); -+ if (wn != NULL) -+ { -+ MENUITEMINFOW infow; -+ -+ infow.cbSize = sizeof(infow); -+ infow.fMask = MIIM_TYPE | MIIM_ID; -+ infow.wID = item_id; -+ infow.fType = MFT_STRING; -+ infow.dwTypeData = wn; -+ infow.cch = (UINT)wcslen(wn); -+ n = InsertMenuItemW(pmenu, item_id, FALSE, &infow); -+ vim_free(wn); -+ if (n == 0 && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) -+ /* Failed, try using non-wide function. */ -+ wn = NULL; -+ } -+ } -+ -+ if (wn == NULL) -+ #endif -+ { -+ MENUITEMINFO info; -+ -+ info.cbSize = sizeof(info); -+ info.fMask = MIIM_TYPE | MIIM_ID; -+ info.wID = item_id; -+ info.fType = MFT_STRING; -+ info.dwTypeData = item_text; -+ info.cch = (UINT)STRLEN(item_text); -+ InsertMenuItem(pmenu, item_id, FALSE, &info); -+ } -+ } -+ -+ static void - show_tabline_popup_menu(void) - { - HMENU tab_pmenu; - long rval; - POINT pt; - -*************** -*** 2236,2256 **** - if (tab_pmenu == NULL) - return; - -! minfo.cbSize = sizeof(MENUITEMINFO); -! minfo.fMask = MIIM_TYPE|MIIM_ID; -! minfo.fType = MFT_STRING; -! -! minfo.dwTypeData = _("Close tab"); -! minfo.wID = TABLINE_MENU_CLOSE; -! InsertMenuItem(tab_pmenu, TABLINE_MENU_CLOSE, FALSE, &minfo); -! -! minfo.dwTypeData = _("New tab"); -! minfo.wID = TABLINE_MENU_NEW; -! InsertMenuItem(tab_pmenu, TABLINE_MENU_NEW, FALSE, &minfo); -! -! minfo.dwTypeData = _("Open tab..."); -! minfo.wID = TABLINE_MENU_OPEN; -! InsertMenuItem(tab_pmenu, TABLINE_MENU_OPEN, FALSE, &minfo); - - GetCursorPos(&pt); - rval = TrackPopupMenuEx(tab_pmenu, TPM_RETURNCMD, pt.x, pt.y, s_tabhwnd, ---- 2280,2289 ---- - if (tab_pmenu == NULL) - return; - -! add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_CLOSE, _("Close tab")); -! add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_NEW, _("New tab")); -! add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_OPEN, -! _("Open tab...")); - - GetCursorPos(&pt); - rval = TrackPopupMenuEx(tab_pmenu, TPM_RETURNCMD, pt.x, pt.y, s_tabhwnd, -*************** -*** 2455,2460 **** ---- 2488,2517 ---- - } - #endif - -+ static void -+ set_window_title(HWND hwnd, char *title) -+ { -+ #ifdef FEAT_MBYTE -+ if (title != NULL && enc_codepage >= 0 && enc_codepage != (int)GetACP()) -+ { -+ WCHAR *wbuf; -+ int n; -+ -+ /* Convert the title from 'encoding' to ucs2. */ -+ wbuf = (WCHAR *)enc_to_ucs2((char_u *)title, NULL); -+ if (wbuf != NULL) -+ { -+ n = SetWindowTextW(hwnd, wbuf); -+ vim_free(wbuf); -+ if (n != 0 || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) -+ return; -+ /* Retry with non-wide function (for Windows 98). */ -+ } -+ } -+ #endif -+ (void)SetWindowText(hwnd, (LPCSTR)title); -+ } -+ - void - gui_mch_find_dialog(exarg_T *eap) - { -*************** -*** 2470,2477 **** - s_findrep_hwnd = FindText((LPFINDREPLACE) &s_findrep_struct); - } - -! (void)SetWindowText(s_findrep_hwnd, -! (LPCSTR)_("Find string (use '\\\\' to find a '\\')")); - (void)SetFocus(s_findrep_hwnd); - - s_findrep_is_find = TRUE; ---- 2527,2534 ---- - s_findrep_hwnd = FindText((LPFINDREPLACE) &s_findrep_struct); - } - -! set_window_title(s_findrep_hwnd, -! _("Find string (use '\\\\' to find a '\\')")); - (void)SetFocus(s_findrep_hwnd); - - s_findrep_is_find = TRUE; -*************** -*** 2495,2502 **** - s_findrep_hwnd = ReplaceText((LPFINDREPLACE) &s_findrep_struct); - } - -! (void)SetWindowText(s_findrep_hwnd, -! (LPCSTR)_("Find & Replace (use '\\\\' to find a '\\')")); - (void)SetFocus(s_findrep_hwnd); - - s_findrep_is_find = FALSE; ---- 2552,2559 ---- - s_findrep_hwnd = ReplaceText((LPFINDREPLACE) &s_findrep_struct); - } - -! set_window_title(s_findrep_hwnd, -! _("Find & Replace (use '\\\\' to find a '\\')")); - (void)SetFocus(s_findrep_hwnd); - - s_findrep_is_find = FALSE; -*************** -*** 3015,3039 **** - char_u *title, - char_u *icon) - { -! #ifdef FEAT_MBYTE -! if (title != NULL && enc_codepage >= 0 && enc_codepage != (int)GetACP()) -! { -! WCHAR *wbuf; -! int n; -! -! /* Convert the title from 'encoding' to ucs2. */ -! wbuf = (WCHAR *)enc_to_ucs2(title, NULL); -! if (wbuf != NULL) -! { -! n = SetWindowTextW(s_hwnd, wbuf); -! vim_free(wbuf); -! if (n != 0 || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) -! return; -! /* Retry with non-wide function (for Windows 98). */ -! } -! } -! #endif -! SetWindowText(s_hwnd, (LPCSTR)(title == NULL ? "VIM" : (char *)title)); - } - - #ifdef FEAT_MOUSESHAPE ---- 3072,3078 ---- - char_u *title, - char_u *icon) - { -! set_window_title(s_hwnd, (title == NULL ? "VIM" : (char *)title)); - } - - #ifdef FEAT_MOUSESHAPE -*** ../vim-7.0.160/src/version.c Tue Nov 7 18:43:10 2006 ---- src/version.c Tue Nov 7 18:57:42 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 161, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -174. You know what a listserv is. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.162 b/7.0.162 deleted file mode 100644 index f21e80d6..00000000 --- a/7.0.162 +++ /dev/null @@ -1,200 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.162 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.162 -Problem: "vim -o a b" when file "a" triggers the ATTENTION dialog, - selecting "Quit" exits Vim instead of editing "b" only. - When file "b" triggers the ATTENTION dialog selecting "Quit" or - "Abort" results in editing file "a" in that window. -Solution: When selecting "Abort" exit Vim. When selecting "Quit" close the - window. Also avoid hit-enter prompt when selecting Abort. -Files: src/buffer.c, src/main.c - - -*** ../vim-7.0.161/src/buffer.c Fri Oct 20 20:15:05 2006 ---- src/buffer.c Tue Nov 7 21:08:02 2006 -*************** -*** 4220,4226 **** - - /* Use the name from the associated buffer if it exists. */ - bp = buflist_findnr(aep->ae_fnum); -! if (bp == NULL) - return aep->ae_fname; - return bp->b_fname; - } ---- 4222,4228 ---- - - /* Use the name from the associated buffer if it exists. */ - bp = buflist_findnr(aep->ae_fnum); -! if (bp == NULL || bp->b_fname == NULL) - return aep->ae_fname; - return bp->b_fname; - } -*** ../vim-7.0.161/src/main.c Tue Sep 5 12:57:14 2006 ---- src/main.c Tue Nov 7 22:35:49 2006 -*************** -*** 2392,2398 **** - (void)open_buffer(FALSE, NULL); /* create memfile, read file */ - - #if defined(HAS_SWAP_EXISTS_ACTION) -! check_swap_exists_action(); - #endif - #ifdef FEAT_AUTOCMD - dorewind = TRUE; /* start again */ ---- 2392,2414 ---- - (void)open_buffer(FALSE, NULL); /* create memfile, read file */ - - #if defined(HAS_SWAP_EXISTS_ACTION) -! if (swap_exists_action == SEA_QUIT) -! { -! if (got_int || only_one_window()) -! { -! /* abort selected or quit and only one window */ -! did_emsg = FALSE; /* avoid hit-enter prompt */ -! getout(1); -! } -! /* We can't close the window, it would disturb what -! * happens next. Clear the file name and set the arg -! * index to -1 to delete it later. */ -! setfname(curbuf, NULL, NULL, FALSE); -! curwin->w_arg_idx = -1; -! swap_exists_action = SEA_NONE; -! } -! else -! handle_swap_exists(NULL); - #endif - #ifdef FEAT_AUTOCMD - dorewind = TRUE; /* start again */ -*************** -*** 2432,2437 **** ---- 2448,2455 ---- - { - int arg_idx; /* index in argument list */ - int i; -+ int advance = TRUE; -+ buf_T *old_curbuf; - - # ifdef FEAT_AUTOCMD - /* -*************** -*** 2440,2470 **** - ++autocmd_no_enter; - ++autocmd_no_leave; - # endif - arg_idx = 1; - for (i = 1; i < parmp->window_count; ++i) - { -! if (parmp->window_layout == WIN_TABS) - { -! if (curtab->tp_next == NULL) /* just checking */ -! break; -! goto_tabpage(0); - } -! else - { -! if (curwin->w_next == NULL) /* just checking */ -! break; -! win_enter(curwin->w_next, FALSE); - } - - /* Only open the file if there is no file in this window yet (that can -! * happen when .vimrc contains ":sall") */ - if (curbuf == firstwin->w_buffer || curbuf->b_ffname == NULL) - { - curwin->w_arg_idx = arg_idx; -! /* edit file from arg list, if there is one */ - (void)do_ecmd(0, arg_idx < GARGCOUNT - ? alist_name(&GARGLIST[arg_idx]) : NULL, - NULL, NULL, ECMD_LASTL, ECMD_HIDE); - if (arg_idx == GARGCOUNT - 1) - arg_had_last = TRUE; - ++arg_idx; ---- 2458,2522 ---- - ++autocmd_no_enter; - ++autocmd_no_leave; - # endif -+ -+ /* When w_arg_idx is -1 remove the window (see create_windows()). */ -+ if (curwin->w_arg_idx == -1) -+ { -+ win_close(curwin, TRUE); -+ advance = FALSE; -+ } -+ - arg_idx = 1; - for (i = 1; i < parmp->window_count; ++i) - { -! /* When w_arg_idx is -1 remove the window (see create_windows()). */ -! if (curwin->w_arg_idx == -1) - { -! ++arg_idx; -! win_close(curwin, TRUE); -! advance = FALSE; -! continue; - } -! -! if (advance) - { -! if (parmp->window_layout == WIN_TABS) -! { -! if (curtab->tp_next == NULL) /* just checking */ -! break; -! goto_tabpage(0); -! } -! else -! { -! if (curwin->w_next == NULL) /* just checking */ -! break; -! win_enter(curwin->w_next, FALSE); -! } - } -+ advance = TRUE; - - /* Only open the file if there is no file in this window yet (that can -! * happen when .vimrc contains ":sall"). */ - if (curbuf == firstwin->w_buffer || curbuf->b_ffname == NULL) - { - curwin->w_arg_idx = arg_idx; -! /* Edit file from arg list, if there is one. When "Quit" selected -! * at the ATTENTION prompt close the window. */ -! old_curbuf = curbuf; - (void)do_ecmd(0, arg_idx < GARGCOUNT - ? alist_name(&GARGLIST[arg_idx]) : NULL, - NULL, NULL, ECMD_LASTL, ECMD_HIDE); -+ if (curbuf == old_curbuf) -+ { -+ if (got_int || only_one_window()) -+ { -+ /* abort selected or quit and only one window */ -+ did_emsg = FALSE; /* avoid hit-enter prompt */ -+ getout(1); -+ } -+ win_close(curwin, TRUE); -+ advance = FALSE; -+ } - if (arg_idx == GARGCOUNT - 1) - arg_had_last = TRUE; - ++arg_idx; -*** ../vim-7.0.161/src/version.c Tue Nov 7 19:05:36 2006 ---- src/version.c Tue Nov 7 21:21:28 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 162, - /**/ - --- -The CIA drives around in cars with the "Intel inside" logo. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.163 b/7.0.163 deleted file mode 100644 index 2622ab1f..00000000 --- a/7.0.163 +++ /dev/null @@ -1,133 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.163 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.163 -Problem: Can't retrieve the position of a sign after it was set. -Solution: Add the netbeans interface getAnno command. (Xavier de Gaye) -Files: runtime/doc/netbeans.txt, src/netbeans.c - - -*** ../vim-7.0.162/runtime/doc/netbeans.txt Sun May 7 16:58:43 2006 ---- runtime/doc/netbeans.txt Tue Nov 14 18:24:32 2006 -*************** -*** 1,4 **** -! *netbeans.txt* For Vim version 7.0. Last change: 2006 Mar 09 - - - VIM REFERENCE MANUAL by Gordon Prieur ---- 1,4 ---- -! *netbeans.txt* For Vim version 7.0. Last change: 2006 Nov 14 - - - VIM REFERENCE MANUAL by Gordon Prieur -*************** -*** 259,266 **** - confusion happening again, netbeans_saved() has been renamed to - netbeans_save_buffer(). - -! We are now at version 2.3. For the differences between 2.2 and 2.3 search for -! "2.3" below. - - The messages are currently sent over a socket. Since the messages are in - plain UTF-8 text this protocol could also be used with any other communication ---- 259,266 ---- - confusion happening again, netbeans_saved() has been renamed to - netbeans_save_buffer(). - -! We are now at version 2.4. For the differences between 2.3 and 2.4 search for -! "2.4" below. - - The messages are currently sent over a socket. Since the messages are in - plain UTF-8 text this protocol could also be used with any other communication -*************** -*** 604,609 **** ---- 604,618 ---- - TODO: explain use of partial line. - - getMark Not implemented. -+ -+ getAnno serNum -+ Return the line number of the annotation in the buffer. -+ Argument: -+ serNum serial number of this placed annotation -+ The reply is: -+ 123 lnum line number of the annotation -+ 123 0 invalid annotation serial number -+ New in version 2.4. - - getModified When a buffer is specified: Return zero if the buffer does not - have changes, one if it does have changes. -*** ../vim-7.0.162/src/netbeans.c Tue Aug 29 17:28:56 2006 ---- src/netbeans.c Tue Nov 14 18:23:48 2006 -*************** -*** 61,67 **** - - /* The first implementation (working only with Netbeans) returned "1.1". The - * protocol implemented here also supports A-A-P. */ -! static char *ExtEdProtocolVersion = "2.3"; - - static long pos2off __ARGS((buf_T *, pos_T *)); - static pos_T *off2pos __ARGS((buf_T *, long)); ---- 61,67 ---- - - /* The first implementation (working only with Netbeans) returned "1.1". The - * protocol implemented here also supports A-A-P. */ -! static char *ExtEdProtocolVersion = "2.4"; - - static long pos2off __ARGS((buf_T *, pos_T *)); - static pos_T *off2pos __ARGS((buf_T *, long)); -*************** -*** 1269,1274 **** ---- 1269,1297 ---- - (int)curwin->w_cursor.col, - pos2off(curbuf, &curwin->w_cursor)); - nb_reply_text(cmdno, text); -+ /* =====================================================================*/ -+ } -+ else if (streq((char *)cmd, "getAnno")) -+ { -+ long linenum = 0; -+ #ifdef FEAT_SIGNS -+ if (buf == NULL || buf->bufp == NULL) -+ { -+ nbdebug((" null bufp in getAnno")); -+ EMSG("E652: null bufp in getAnno"); -+ retval = FAIL; -+ } -+ else -+ { -+ int serNum; -+ -+ cp = (char *)args; -+ serNum = strtol(cp, &cp, 10); -+ /* If the sign isn't found linenum will be zero. */ -+ linenum = (long)buf_findsign(buf->bufp, serNum); -+ } -+ #endif -+ nb_reply_nr(cmdno, linenum); - /* =====================================================================*/ - } - else if (streq((char *)cmd, "getLength")) -*** ../vim-7.0.162/src/version.c Tue Nov 7 22:41:37 2006 ---- src/version.c Tue Nov 14 18:25:31 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 163, - /**/ - --- -A computer without Windows is like a fish without a bicycle. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.164 b/7.0.164 deleted file mode 100644 index af5be32f..00000000 --- a/7.0.164 +++ /dev/null @@ -1,55 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.164 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.164 -Problem: ":redir @+" doesn't work. -Solution: Accept "@+" just like "@*". (Yegappan Lakshmanan) -Files: src/ex_docmd.c - - -*** ../vim-7.0.163/src/ex_docmd.c Tue Nov 7 18:43:10 2006 ---- src/ex_docmd.c Tue Nov 14 20:17:42 2006 -*************** -*** 8371,8376 **** ---- 8371,8377 ---- - if (ASCII_ISALPHA(*arg) - # ifdef FEAT_CLIPBOARD - || *arg == '*' -+ || *arg == '+' - # endif - || *arg == '"') - { -*************** -*** 8381,8386 **** ---- 8382,8388 ---- - (islower(redir_reg) - # ifdef FEAT_CLIPBOARD - || redir_reg == '*' -+ || redir_reg == '+' - # endif - || redir_reg == '"')) - { -*** ../vim-7.0.163/src/version.c Tue Nov 14 18:29:00 2006 ---- src/version.c Tue Nov 14 20:23:38 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 164, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -232. You start conversations with, "Have you gotten an ISDN line?" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.165 b/7.0.165 deleted file mode 100644 index f9f1df3c..00000000 --- a/7.0.165 +++ /dev/null @@ -1,76 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.165 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.165 -Problem: Using CTRL-L at the search prompt adds a "/" and other characters - without escaping, causing the pattern not to match. -Solution: Escape special characters with a backslash. -Files: src/ex_getln.c - - -*** ../vim-7.0.164/src/ex_getln.c Tue Oct 17 16:26:52 2006 ---- src/ex_getln.c Tue Nov 14 21:36:13 2006 -*************** -*** 34,40 **** - int xp_context; /* type of expansion */ - # ifdef FEAT_EVAL - char_u *xp_arg; /* user-defined expansion arg */ -! int input_fn; /* Invoked for input() function */ - # endif - }; - ---- 34,40 ---- - int xp_context; /* type of expansion */ - # ifdef FEAT_EVAL - char_u *xp_arg; /* user-defined expansion arg */ -! int input_fn; /* when TRUE Invoked for input() function */ - # endif - }; - -*************** -*** 1390,1396 **** ---- 1390,1406 ---- - { - c = gchar_cursor(); - if (c != NUL) -+ { -+ if (c == firstc || vim_strchr((char_u *)( -+ p_magic ? "\\^$.*[" : "\\^$"), c) -+ != NULL) -+ { -+ /* put a backslash before special characters */ -+ stuffcharReadbuff(c); -+ c = '\\'; -+ } - break; -+ } - } - goto cmdline_not_changed; - } -*** ../vim-7.0.164/src/version.c Tue Nov 14 20:24:32 2006 ---- src/version.c Tue Nov 21 11:28:43 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 165, - /**/ - --- - He was not in the least bit scared to be mashed into a pulp - Or to have his eyes gouged out and his elbows broken; - To have his kneecaps split and his body burned away - And his limbs all hacked and mangled, brave Sir Robin. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.166 b/7.0.166 deleted file mode 100644 index 8a806a49..00000000 --- a/7.0.166 +++ /dev/null @@ -1,61 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.166 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.166 -Problem: Crash in cscope code when connection could not be opened. - (Kaya Bekiroglu) -Solution: Check for the file descriptor to be NULL. -Files: src/if_cscope.c - - -*** ../vim-7.0.165/src/if_cscope.c Mon Oct 30 22:31:30 2006 ---- src/if_cscope.c Tue Nov 14 22:04:30 2006 -*************** -*** 1008,1014 **** - totmatches = 0; - for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) - { -! if (csinfo[i].fname == NULL) - continue; - - /* send cmd to cscope */ ---- 1008,1014 ---- - totmatches = 0; - for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) - { -! if (csinfo[i].fname == NULL || csinfo[i].to_fp == NULL) - continue; - - /* send cmd to cscope */ -*** ../vim-7.0.165/src/version.c Tue Nov 21 11:29:56 2006 ---- src/version.c Tue Nov 21 11:42:13 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 166, - /**/ - --- -The greatest lies of all time: - (1) The check is in the mail. - (2) We have a really challenging assignment for you. - (3) I love you. - (4) All bugs have been fixed. - (5) This won't hurt a bit. - (6) Honey, I just need to debug this program and be home in 5 minutes. - (7) I have just sent you an e-mail about that. - (8) Of course I'll respect you in the morning. - (9) I'm from the government, and I'm here to help you. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.167 b/7.0.167 deleted file mode 100644 index b048a558..00000000 --- a/7.0.167 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.167 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.167 -Problem: ":function" redefining a dict function doesn't work properly. - (Richard Emberson) -Solution: Allow a function name to be a number when it's a function - reference. -Files: src/eval.c - - -*** ../vim-7.0.166/src/eval.c Wed Nov 1 18:33:43 2006 ---- src/eval.c Tue Nov 21 11:04:13 2006 -*************** -*** 18539,18550 **** - - if (!eap->skip) - { -! /* Check the name of the function. */ - if (name != NULL) - arg = name; - else - arg = fudi.fd_newkey; -! if (arg != NULL) - { - if (*arg == K_SPECIAL) - j = 3; ---- 18539,18552 ---- - - if (!eap->skip) - { -! /* Check the name of the function. Unless it's a dictionary function -! * (that we are overwriting). */ - if (name != NULL) - arg = name; - else - arg = fudi.fd_newkey; -! if (arg != NULL && (fudi.fd_di == NULL -! || fudi.fd_di->di_tv.v_type != VAR_FUNC)) - { - if (*arg == K_SPECIAL) - j = 3; -*** ../vim-7.0.166/src/version.c Tue Nov 21 11:43:49 2006 ---- src/version.c Tue Nov 21 11:48:12 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 167, - /**/ - --- - They now pass three KNIGHTS impaled to a tree. With their feet off the - ground, with one lance through the lot of them, they are skewered up - like a barbecue. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.168 b/7.0.168 deleted file mode 100644 index b4bf838c..00000000 --- a/7.0.168 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.168 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.168 -Problem: Using uninitialized memory and memory leak. (Dominique Pelle) -Solution: Use alloc_clear() instead of alloc() for w_lines. Free - b_ml.ml_stack after recovery. -Files: src/memline.c, src/window.c - - -*** ../vim-7.0.167/src/memline.c Wed Nov 1 18:10:36 2006 ---- src/memline.c Thu Nov 16 22:29:19 2006 -*************** -*** 1329,1334 **** ---- 1329,1335 ---- - mf_put(mfp, hp, FALSE, FALSE); - mf_close(mfp, FALSE); /* will also vim_free(mfp->mf_fname) */ - } -+ vim_free(buf->b_ml.ml_stack); - vim_free(buf); - if (serious_error && called_from_main) - ml_close(curbuf, TRUE); -*** ../vim-7.0.167/src/window.c Tue Oct 24 21:15:09 2006 ---- src/window.c Thu Nov 16 22:24:51 2006 -*************** -*** 4273,4279 **** - win_T *wp; - { - wp->w_lines_valid = 0; -! wp->w_lines = (wline_T *)alloc((unsigned)(Rows * sizeof(wline_T))); - if (wp->w_lines == NULL) - return FAIL; - return OK; ---- 4273,4279 ---- - win_T *wp; - { - wp->w_lines_valid = 0; -! wp->w_lines = (wline_T *)alloc_clear((unsigned)(Rows * sizeof(wline_T))); - if (wp->w_lines == NULL) - return FAIL; - return OK; -*** ../vim-7.0.167/src/version.c Tue Nov 21 19:36:00 2006 ---- src/version.c Tue Nov 21 20:34:13 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 168, - /**/ - --- - GALAHAD turns back. We see from his POV the lovely ZOOT standing by him - smiling enchantingly and a number of equally delectable GIRLIES draped - around in the seductively poulticed room. They look at him smilingly and - wave. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.170 b/7.0.170 deleted file mode 100644 index 0da339c6..00000000 --- a/7.0.170 +++ /dev/null @@ -1,98 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.170 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.170 (extra) -Problem: Win32: Using "gvim --remote-tab foo" when gvim is minimized while - it previously was maximized, un-maximizing doesn't work properly. - And the labels are not displayed properly when 'encoding' is - utf-8. -Solution: When minimized check for SW_SHOWMINIMIZED. When updating the tab - pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu - Yubao) -Files: src/gui_w48.c - - -*** ../vim-7.0.169/src/gui_w48.c Tue Nov 7 19:05:36 2006 ---- src/gui_w48.c Mon Nov 27 22:26:15 2006 -*************** -*** 2405,2412 **** - tiw.mask = TCIF_TEXT; - tiw.iImage = -1; - tiw.pszText = wstr; -! SendMessage(s_tabhwnd, TCM_INSERTITEMW, (WPARAM)nr, -! (LPARAM)&tiw); - vim_free(wstr); - } - } ---- 2405,2411 ---- - tiw.mask = TCIF_TEXT; - tiw.iImage = -1; - tiw.pszText = wstr; -! SendMessage(s_tabhwnd, TCM_SETITEMW, (WPARAM)nr, (LPARAM)&tiw); - vim_free(wstr); - } - } -*************** -*** 3033,3045 **** - return OK; - } - - /* - * Return TRUE if the GUI window is maximized, filling the whole screen. - */ - int - gui_mch_maximized() - { -! return IsZoomed(s_hwnd); - } - - /* ---- 3032,3056 ---- - return OK; - } - -+ #ifndef WPF_RESTORETOMAXIMIZED -+ # define WPF_RESTORETOMAXIMIZED 2 /* just in case someone doesn't have it */ -+ #endif -+ - /* - * Return TRUE if the GUI window is maximized, filling the whole screen. - */ - int - gui_mch_maximized() - { -! WINDOWPLACEMENT wp; -! -! wp.length = sizeof(WINDOWPLACEMENT); -! if (GetWindowPlacement(s_hwnd, &wp)) -! return wp.showCmd == SW_SHOWMAXIMIZED -! || (wp.showCmd == SW_SHOWMINIMIZED -! && wp.flags == WPF_RESTORETOMAXIMIZED); -! -! return 0; - } - - /* -*** ../vim-7.0.169/src/version.c Tue Nov 28 16:16:03 2006 ---- src/version.c Tue Nov 28 17:16:07 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 170, - /**/ - --- -Veni, Vidi, Video -- I came, I saw, I taped what I saw. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.171 b/7.0.171 deleted file mode 100644 index 80fd1663..00000000 --- a/7.0.171 +++ /dev/null @@ -1,509 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.171 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.171 (extra) -Problem: VMS: A file name with multiple paths is written in the wrong file. -Solution: Get the actually used file name. (Zoltan Arpadffy) - Also add info to the :version command about compilation. -Files: src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c - - -*** ../vim-7.0.170/src/Make_vms.mms Sun Apr 30 20:46:53 2006 ---- src/Make_vms.mms Mon Sep 4 20:54:51 2006 -*************** -*** 2,8 **** - # Makefile for Vim on OpenVMS - # - # Maintainer: Zoltan Arpadffy -! # Last change: 2006 Apr 30 - # - # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 - # with MMS and MMK ---- 2,8 ---- - # Makefile for Vim on OpenVMS - # - # Maintainer: Zoltan Arpadffy -! # Last change: 2006 Sep 04 - # - # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 - # with MMS and MMK -*************** -*** 13,19 **** - # - # Edit the lines in the Configuration section below for fine tuning. - # -! # To build: mms/descrip=Make_vms.mms - # To clean up: mms/descrip=Make_vms.mms clean - # - # Hints and detailed description could be found in INSTALLVMS.TXT file. ---- 13,19 ---- - # - # Edit the lines in the Configuration section below for fine tuning. - # -! # To build: mms/descrip=Make_vms.mms /ignore=warning - # To clean up: mms/descrip=Make_vms.mms clean - # - # Hints and detailed description could be found in INSTALLVMS.TXT file. -*************** -*** 21,30 **** - ###################################################################### - # Configuration section. - ###################################################################### -- # Platform selection -- # Define this if you will use the VAX platform to build. -- # VAX = YES -- - # VMS version - # Uncomment if you use VMS version 6.2 or older - # OLD_VMS = YES ---- 21,26 ---- -*************** -*** 49,54 **** ---- 45,51 ---- - - # GUI with GTK - # If you have GTK installed you might want to enable this option. -+ # NOTE: you will need to properly define GTK_DIR below - # GTK = YES - - # GUI/Motif with XPM -*************** -*** 97,103 **** - - # Compiler setup - -! .IFDEF VAX - .IFDEF DECC # VAX with DECC - CC_DEF = cc # /decc # some system requires this switch - # but when it is not required /ver might fail ---- 94,100 ---- - - # Compiler setup - -! .IFDEF MMSVAX - .IFDEF DECC # VAX with DECC - CC_DEF = cc # /decc # some system requires this switch - # but when it is not required /ver might fail -*************** -*** 165,172 **** - # NOTE: you need to set up your GTK_DIR (GTK root directory), because it is - # unique on every system - logicals are not accepted - # please note: directory should end with . in order to /trans=conc work -! # Example: GTK_DIR = $1$DGA104:[USERS.ZAY.WORK.GTK1210.] -! GTK_DIR = DKA0:[GTK1210.] - DEFS = "HAVE_CONFIG_H","FEAT_GUI_GTK" - LIBS = ,OS_VMS_GTK.OPT/OPT - GUI_FLAG = /name=(as_is,short)/float=ieee/ieee=denorm ---- 162,169 ---- - # NOTE: you need to set up your GTK_DIR (GTK root directory), because it is - # unique on every system - logicals are not accepted - # please note: directory should end with . in order to /trans=conc work -! # This value for GTK_DIR is an example. -! GTK_DIR = $1$DGA104:[USERS.ZAY.WORK.GTK1210.] - DEFS = "HAVE_CONFIG_H","FEAT_GUI_GTK" - LIBS = ,OS_VMS_GTK.OPT/OPT - GUI_FLAG = /name=(as_is,short)/float=ieee/ieee=denorm -*************** -*** 274,280 **** - # Please, do not change anything below without programming experience. - ###################################################################### - -- - MODEL_DEF = "FEAT_$(MODEL)", - - # These go into pathdef.c ---- 271,276 ---- -*************** -*** 360,366 **** - -@ write pd "char_u *all_lflags = (char_u *)""$(LD_DEF)$(LDFLAGS) /exe=$(TARGET) *.OBJ $(ALL_LIBS)"";" - -@ write pd "char_u *compiler_version = (char_u *) ""''CC_VER'"";" - -@ write pd "char_u *compiled_user = (char_u *) "$(VIMUSER)";" -! -@ write pd "char_u *compiled_sys = (char_u *) "$(VIMHOST)";" - -@ close pd - - if_perl.c : if_perl.xs ---- 356,363 ---- - -@ write pd "char_u *all_lflags = (char_u *)""$(LD_DEF)$(LDFLAGS) /exe=$(TARGET) *.OBJ $(ALL_LIBS)"";" - -@ write pd "char_u *compiler_version = (char_u *) ""''CC_VER'"";" - -@ write pd "char_u *compiled_user = (char_u *) "$(VIMUSER)";" -! -@ write pd "char_u *compiled_sys = (char_u *) "$(VIMHOST)";" -! -@ write pd "char_u *compiled_arch = (char_u *) ""$(MMSARCH_NAME)"";" - -@ close pd - - if_perl.c : if_perl.xs -*** ../vim-7.0.170/src/buffer.c Tue Nov 7 22:41:37 2006 ---- src/buffer.c Tue Nov 7 21:08:02 2006 -*************** -*** 4145,4155 **** - /* - * Force expanding the path always for Unix, because symbolic links may - * mess up the full path name, even though it starts with a '/'. - * Also expand when there is ".." in the file name, try to remove it, - * because "c:/src/../README" is equal to "c:/README". - * For MS-Windows also expand names like "longna~1" to "longname". - */ -! #ifdef UNIX - return FullName_save(fname, TRUE); - #else - if (!vim_isAbsName(fname) || strstr((char *)fname, "..") != NULL ---- 4145,4157 ---- - /* - * Force expanding the path always for Unix, because symbolic links may - * mess up the full path name, even though it starts with a '/'. -+ * Also expand always for VMS, it may have alternate paths that need to be -+ * resolved. - * Also expand when there is ".." in the file name, try to remove it, - * because "c:/src/../README" is equal to "c:/README". - * For MS-Windows also expand names like "longna~1" to "longname". - */ -! #if defined(UNIX) || defined(VMS) - return FullName_save(fname, TRUE); - #else - if (!vim_isAbsName(fname) || strstr((char *)fname, "..") != NULL -*** ../vim-7.0.170/src/os_unix.c Tue Aug 29 17:28:56 2006 ---- src/os_unix.c Tue Nov 28 17:38:54 2006 -*************** -*** 2202,2208 **** - #endif - - /* -! * Get absolute file name into buffer 'buf' of length 'len' bytes. - * - * return FAIL for failure, OK for success - */ ---- 2202,2208 ---- - #endif - - /* -! * Get absolute file name into "buf[len]". - * - * return FAIL for failure, OK for success - */ -*************** -*** 2212,2233 **** - int len; - int force; /* also expand when already absolute path */ - { - int l; -! #ifdef OS2 - int only_drive; /* file name is only a drive letter */ -! #endif -! #ifdef HAVE_FCHDIR - int fd = -1; - static int dont_fchdir = FALSE; /* TRUE when fchdir() doesn't work */ -! #endif - char_u olddir[MAXPATHL]; - char_u *p; - int retval = OK; - -- #ifdef VMS -- fname = vms_fixfilename(fname); -- #endif -- - /* expand it if forced or not an absolute path */ - if (force || !mch_isFullName(fname)) - { ---- 2212,2261 ---- - int len; - int force; /* also expand when already absolute path */ - { -+ #ifdef VMS -+ /* -+ * VMS does this in a completely different way. -+ * -+ * By default a file found in a complex path is written to the first -+ * directory in the path and not to the original directory. This -+ * behaviour should be avoided for the existing files and we need to find -+ * the exact path of the edited file. -+ */ -+ if (force || !mch_isFullName(fname)) -+ { -+ char_u *fixed_fname = vms_fixfilename(fname); -+ int fd = mch_open((char *)fixed_fname, O_RDONLY | O_EXTRA, 0); -+ -+ if (fd > 0) -+ { -+ char nbuf[MAXNAMLEN]; -+ -+ /* File exists, use getname() to get the real name. */ -+ if (getname(fd, nbuf)) -+ vim_strncpy(fixed_fname, (char_u *)nbuf, (size_t)(len - 1)); -+ close(fd); -+ } -+ -+ if (STRLEN(fixed_fname) >= len) -+ return FAIL; -+ -+ STRCPY(buf, fixed_fname); -+ } -+ -+ #else /* not VMS */ -+ - int l; -! # ifdef OS2 - int only_drive; /* file name is only a drive letter */ -! # endif -! # ifdef HAVE_FCHDIR - int fd = -1; - static int dont_fchdir = FALSE; /* TRUE when fchdir() doesn't work */ -! # endif - char_u olddir[MAXPATHL]; - char_u *p; - int retval = OK; - - /* expand it if forced or not an absolute path */ - if (force || !mch_isFullName(fname)) - { -*************** -*** 2236,2251 **** - * and then do the getwd() (and get back to where we were). - * This will get the correct path name with "../" things. - */ -! #ifdef OS2 - only_drive = 0; - if (((p = vim_strrchr(fname, '/')) != NULL) - || ((p = vim_strrchr(fname, '\\')) != NULL) - || (((p = vim_strchr(fname, ':')) != NULL) && ++only_drive)) -! #else - if ((p = vim_strrchr(fname, '/')) != NULL) -! #endif - { -! #ifdef HAVE_FCHDIR - /* - * Use fchdir() if possible, it's said to be faster and more - * reliable. But on SunOS 4 it might not work. Check this by ---- 2264,2279 ---- - * and then do the getwd() (and get back to where we were). - * This will get the correct path name with "../" things. - */ -! # ifdef OS2 - only_drive = 0; - if (((p = vim_strrchr(fname, '/')) != NULL) - || ((p = vim_strrchr(fname, '\\')) != NULL) - || (((p = vim_strchr(fname, ':')) != NULL) && ++only_drive)) -! # else - if ((p = vim_strrchr(fname, '/')) != NULL) -! # endif - { -! # ifdef HAVE_FCHDIR - /* - * Use fchdir() if possible, it's said to be faster and more - * reliable. But on SunOS 4 it might not work. Check this by -*************** -*** 2261,2274 **** - dont_fchdir = TRUE; /* don't try again */ - } - } -! #endif - - /* Only change directory when we are sure we can return to where - * we are now. After doing "su" chdir(".") might not work. */ - if ( -! #ifdef HAVE_FCHDIR - fd < 0 && -! #endif - (mch_dirname(olddir, MAXPATHL) == FAIL - || mch_chdir((char *)olddir) != 0)) - { ---- 2289,2302 ---- - dont_fchdir = TRUE; /* don't try again */ - } - } -! # endif - - /* Only change directory when we are sure we can return to where - * we are now. After doing "su" chdir(".") might not work. */ - if ( -! # ifdef HAVE_FCHDIR - fd < 0 && -! # endif - (mch_dirname(olddir, MAXPATHL) == FAIL - || mch_chdir((char *)olddir) != 0)) - { -*************** -*** 2277,2283 **** - } - else - { -! #ifdef OS2 - /* - * compensate for case where ':' from "D:" was the only - * path separator detected in the file name; the _next_ ---- 2305,2311 ---- - } - else - { -! # ifdef OS2 - /* - * compensate for case where ':' from "D:" was the only - * path separator detected in the file name; the _next_ -*************** -*** 2285,2291 **** - */ - if (only_drive) - p++; -! #endif - /* The directory is copied into buf[], to be able to remove - * the file name without changing it (could be a string in - * read-only memory) */ ---- 2313,2319 ---- - */ - if (only_drive) - p++; -! # endif - /* The directory is copied into buf[], to be able to remove - * the file name without changing it (could be a string in - * read-only memory) */ -*************** -*** 2300,2313 **** - fname = p + 1; - *buf = NUL; - } -! #ifdef OS2 - if (only_drive) - { - p--; - if (retval != FAIL) - fname--; - } -! #endif - } - } - if (mch_dirname(buf, len) == FAIL) ---- 2328,2341 ---- - fname = p + 1; - *buf = NUL; - } -! # ifdef OS2 - if (only_drive) - { - p--; - if (retval != FAIL) - fname--; - } -! # endif - } - } - if (mch_dirname(buf, len) == FAIL) -*************** -*** 2317,2330 **** - } - if (p != NULL) - { -! #ifdef HAVE_FCHDIR - if (fd >= 0) - { - l = fchdir(fd); - close(fd); - } - else -! #endif - l = mch_chdir((char *)olddir); - if (l != 0) - EMSG(_(e_prev_dir)); ---- 2345,2358 ---- - } - if (p != NULL) - { -! # ifdef HAVE_FCHDIR - if (fd >= 0) - { - l = fchdir(fd); - close(fd); - } - else -! # endif - l = mch_chdir((char *)olddir); - if (l != 0) - EMSG(_(e_prev_dir)); -*************** -*** 2333,2347 **** - l = STRLEN(buf); - if (l >= len) - retval = FAIL; -- #ifndef VMS - else - { - if (l > 0 && buf[l - 1] != '/' && *fname != NUL - && STRCMP(fname, ".") != 0) - STRCAT(buf, "/"); - } -- #endif - } - /* Catch file names which are too long. */ - if (retval == FAIL || STRLEN(buf) + STRLEN(fname) >= len) - return FAIL; ---- 2361,2374 ---- - l = STRLEN(buf); - if (l >= len) - retval = FAIL; - else - { - if (l > 0 && buf[l - 1] != '/' && *fname != NUL - && STRCMP(fname, ".") != 0) - STRCAT(buf, "/"); - } - } -+ - /* Catch file names which are too long. */ - if (retval == FAIL || STRLEN(buf) + STRLEN(fname) >= len) - return FAIL; -*************** -*** 2349,2354 **** ---- 2376,2383 ---- - /* Do not append ".", "/dir/." is equal to "/dir". */ - if (STRCMP(fname, ".") != 0) - STRCAT(buf, fname); -+ -+ #endif /* VMS */ - - return OK; - } -*** ../vim-7.0.170/src/version.c Tue Nov 28 17:18:03 2006 ---- src/version.c Tue Nov 28 17:35:05 2006 -*************** -*** 1113,1118 **** ---- 1115,1128 ---- - #endif - #ifdef VMS - MSG_PUTS("\nOpenVMS version"); -+ # ifdef HAVE_PATHDEF -+ if (*compiled_arch != NUL) -+ { -+ MSG_PUTS(" - "); -+ MSG_PUTS(compiled_arch); -+ } -+ # endif -+ - #endif - - /* Print the list of patch numbers if there is at least one. */ -*** ../vim-7.0.170/src/version.c Tue Nov 28 17:18:03 2006 ---- src/version.c Tue Nov 28 17:35:05 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 171, - /**/ - --- -GUARD #1: What, ridden on a horse? -ARTHUR: Yes! -GUARD #1: You're using coconuts! -ARTHUR: What? -GUARD #1: You've got two empty halves of coconut and you're bangin' 'em - together. - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.172 b/7.0.172 deleted file mode 100644 index a56d0df3..00000000 --- a/7.0.172 +++ /dev/null @@ -1,78 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.172 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.172 -Problem: Crash when recovering and quitting at the "press-enter" prompt. -Solution: Check for "msg_list" to be NULL. (Liu Yubao) -Files: src/ex_eval.c - - -*** ../vim-7.0.171/src/ex_eval.c Sun Apr 23 00:28:06 2006 ---- src/ex_eval.c Tue Nov 28 18:30:23 2006 -*************** -*** 340,346 **** - - /* If no exception is to be thrown or the conversion should be done after - * returning to a previous invocation of do_one_cmd(), do nothing. */ -! if (*msg_list == NULL) - return; - - if (throw_exception(*msg_list, ET_ERROR, cmdname) == FAIL) ---- 340,346 ---- - - /* If no exception is to be thrown or the conversion should be done after - * returning to a previous invocation of do_one_cmd(), do nothing. */ -! if (msg_list == NULL || *msg_list == NULL) - return; - - if (throw_exception(*msg_list, ET_ERROR, cmdname) == FAIL) -*************** -*** 2026,2033 **** - - /* If an error was about to be converted to an exception when - * enter_cleanup() was called, free the message list. */ -! free_msglist(*msg_list); -! *msg_list = NULL; - } - - /* ---- 2026,2036 ---- - - /* If an error was about to be converted to an exception when - * enter_cleanup() was called, free the message list. */ -! if (msg_list != NULL) -! { -! free_msglist(*msg_list); -! *msg_list = NULL; -! } - } - - /* -*** ../vim-7.0.171/src/version.c Tue Nov 28 17:44:51 2006 ---- src/version.c Tue Nov 28 18:32:50 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 172, - /**/ - --- -GUARD #1: Where'd you get the coconut? -ARTHUR: We found them. -GUARD #1: Found them? In Mercea? The coconut's tropical! -ARTHUR: What do you mean? -GUARD #1: Well, this is a temperate zone. - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.173 b/7.0.173 deleted file mode 100644 index 93c30750..00000000 --- a/7.0.173 +++ /dev/null @@ -1,57 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.173 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.173 -Problem: ":call f().TT()" doesn't work. (Richard Emberson) -Solution: When a function returns a Dictionary or another composite continue - evaluating what follows. -Files: src/eval.c - - -*** ../vim-7.0.172/src/eval.c Tue Nov 21 19:36:00 2006 ---- src/eval.c Tue Nov 28 20:50:02 2006 -*************** -*** 3184,3192 **** ---- 3184,3201 ---- - failed = TRUE; - break; - } -+ -+ /* Handle a function returning a Funcref, Dictionary or List. */ -+ if (handle_subscript(&arg, &rettv, !eap->skip, TRUE) == FAIL) -+ { -+ failed = TRUE; -+ break; -+ } -+ - clear_tv(&rettv); - if (doesrange || eap->skip) - break; -+ - /* Stop when immediately aborting on error, or when an interrupt - * occurred or an exception was thrown but not caught. - * get_func_tv() returned OK, so that the check for trailing -*** ../vim-7.0.172/src/version.c Tue Nov 28 18:37:55 2006 ---- src/version.c Tue Nov 28 20:53:18 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 173, - /**/ - --- -"A mouse can be just as dangerous as a bullet or a bomb." - (US Representative Lamar Smith, R-Texas) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.174 b/7.0.174 deleted file mode 100644 index 2c4904ec..00000000 --- a/7.0.174 +++ /dev/null @@ -1,95 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.0.174 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.174 -Problem: ":mksession" doesn't restore window layout correctly in tab pages - other than the current one. (Zhibin He) -Solution: Use the correct topframe for producing the window layout commands. -Files: src/ex_docmd.c - - -*** ../vim-7.0.173/src/ex_docmd.c Tue Nov 14 20:24:32 2006 ---- src/ex_docmd.c Tue Nov 28 21:32:41 2006 -*************** -*** 9675,9680 **** ---- 9675,9681 ---- - win_T *edited_win = NULL; - int tabnr; - win_T *tab_firstwin; -+ frame_T *tab_topframe; - - if (ssop_flags & SSOP_BUFFERS) - only_save_windows = FALSE; /* Save ALL buffers */ -*************** -*** 9786,9791 **** ---- 9787,9793 ---- - * autocommands. - */ - tab_firstwin = firstwin; /* first window in tab page "tabnr" */ -+ tab_topframe = topframe; - for (tabnr = 1; ; ++tabnr) - { - int need_tabnew = FALSE; -*************** -*** 9797,9805 **** ---- 9799,9813 ---- - if (tp == NULL) - break; /* done all tab pages */ - if (tp == curtab) -+ { - tab_firstwin = firstwin; -+ tab_topframe = topframe; -+ } - else -+ { - tab_firstwin = tp->tp_firstwin; -+ tab_topframe = tp->tp_topframe; -+ } - if (tabnr > 1) - need_tabnew = TRUE; - } -*************** -*** 9838,9844 **** - */ - if (put_line(fd, "set splitbelow splitright") == FAIL) - return FAIL; -! if (ses_win_rec(fd, topframe) == FAIL) - return FAIL; - if (!p_sb && put_line(fd, "set nosplitbelow") == FAIL) - return FAIL; ---- 9846,9852 ---- - */ - if (put_line(fd, "set splitbelow splitright") == FAIL) - return FAIL; -! if (ses_win_rec(fd, tab_topframe) == FAIL) - return FAIL; - if (!p_sb && put_line(fd, "set nosplitbelow") == FAIL) - return FAIL; -*** ../vim-7.0.173/src/version.c Tue Nov 28 20:54:32 2006 ---- src/version.c Tue Nov 28 21:40:07 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 174, - /**/ - --- -ARTHUR: Well, it doesn't matter. Will you go and tell your master that - Arthur from the Court of Camelot is here. -GUARD #1: Listen, in order to maintain air-speed velocity, a swallow - needs to beat its wings 43 times every second, right? -ARTHUR: Please! - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.175 b/7.0.175 deleted file mode 100644 index 7cd64f3c..00000000 --- a/7.0.175 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.175 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.175 -Problem: The result of tr() is missing the terminating NUL. (Ingo Karkat) -Solution: Add the NUL. -Files: src/eval.c - - -*** ../vim-7.0.174/src/eval.c Tue Nov 28 20:54:32 2006 ---- src/eval.c Tue Dec 5 10:30:00 2006 -*************** -*** 16072,16077 **** ---- 16072,16081 ---- - ++instr; - } - } -+ -+ /* add a terminating NUL */ -+ ga_grow(&ga, 1); -+ ga_append(&ga, NUL); - - rettv->vval.v_string = ga.ga_data; - } -*** ../vim-7.0.174/src/version.c Tue Nov 28 21:41:19 2006 ---- src/version.c Tue Dec 5 10:32:58 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 175, - /**/ - --- -BLACK KNIGHT: I move for no man. -ARTHUR: So be it! - [hah] [parry thrust] - [ARTHUR chops the BLACK KNIGHT's left arm off] -ARTHUR: Now stand aside, worthy adversary. -BLACK KNIGHT: 'Tis but a scratch. - The Quest for the Holy Grail (Monty Python) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.176 b/7.0.176 deleted file mode 100644 index e0497b18..00000000 --- a/7.0.176 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.176 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.176 -Problem: ":emenu" isn't executed directly, causing the encryption key - prompt to fail. (Life Jazzer) -Solution: Fix wrong #ifdef. -Files: src/menu.c - - -*** ../vim-7.0.175/src/menu.c Wed Aug 16 21:42:34 2006 ---- src/menu.c Wed Nov 29 21:15:36 2006 -*************** -*** 2246,2252 **** - { - /* When executing a script or function execute the commands right now. - * Otherwise put them in the typeahead buffer. */ -! #ifdef FEAT_En - if (current_SID != 0) - exec_normal_cmd(menu->strings[idx], menu->noremap[idx], - menu->silent[idx]); ---- 2246,2252 ---- - { - /* When executing a script or function execute the commands right now. - * Otherwise put them in the typeahead buffer. */ -! #ifdef FEAT_EVAL - if (current_SID != 0) - exec_normal_cmd(menu->strings[idx], menu->noremap[idx], - menu->silent[idx]); -*** ../vim-7.0.175/src/version.c Tue Dec 5 10:33:57 2006 ---- src/version.c Tue Dec 5 21:31:03 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 176, - /**/ - --- --rwxr-xr-x 1 root 24 Oct 29 1929 /bin/ed --rwxr-xr-t 4 root 131720 Jan 1 1970 /usr/ucb/vi --rwxr-xr-x 1 root 5.89824e37 Oct 22 1990 /usr/bin/emacs - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.177 b/7.0.177 deleted file mode 100644 index 3653959e..00000000 --- a/7.0.177 +++ /dev/null @@ -1,142 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.177 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.177 -Problem: When the press-enter prompt gets a character from a non-remappable - mapping, it's put back in the typeahead buffer as remappable, - which may cause an endless loop. -Solution: Restore the non-remappable flag and the silent flag when putting a - char back in the typeahead buffer. -Files: src/getchar.c, src/message.c, src/normal.c - - -*** ../vim-7.0.176/src/getchar.c Tue Oct 3 15:36:09 2006 ---- src/getchar.c Tue Dec 5 21:17:42 2006 -*************** -*** 76,82 **** - */ - static mapblock_T *first_abbr = NULL; /* first entry in abbrlist */ - -! static int KeyNoremap = FALSE; /* remapping disabled */ - - /* - * variables used by vgetorpeek() and flush_buffers() ---- 76,82 ---- - */ - static mapblock_T *first_abbr = NULL; /* first entry in abbrlist */ - -! static int KeyNoremap = 0; /* remapping flags */ - - /* - * variables used by vgetorpeek() and flush_buffers() -*************** -*** 1035,1040 **** ---- 1037,1044 ---- - /* - * Put character "c" back into the typeahead buffer. - * Can be used for a character obtained by vgetc() that needs to be put back. -+ * Uses cmd_silent, KeyTyped and KeyNoremap to restore the flags belonging to -+ * the char. - */ - void - ins_char_typebuf(c) -*************** -*** 1061,1067 **** - buf[1] = NUL; - #endif - } -! (void)ins_typebuf(buf, REMAP_YES, 0, !KeyTyped, FALSE); - } - - /* ---- 1065,1071 ---- - buf[1] = NUL; - #endif - } -! (void)ins_typebuf(buf, KeyNoremap, 0, !KeyTyped, cmd_silent); - } - - /* -*************** -*** 2270,2278 **** - gotchars(typebuf.tb_buf - + typebuf.tb_off, 1); - } -! KeyNoremap = (typebuf.tb_noremap[ -! typebuf.tb_off] -! & (RM_NONE|RM_SCRIPT)); - del_typebuf(1, 0); - } - break; /* got character, break for loop */ ---- 2276,2283 ---- - gotchars(typebuf.tb_buf - + typebuf.tb_off, 1); - } -! KeyNoremap = typebuf.tb_noremap[ -! typebuf.tb_off]; - del_typebuf(1, 0); - } - break; /* got character, break for loop */ -*************** -*** 4196,4202 **** - - if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */ - return FALSE; -! if (KeyNoremap) /* no remapping implies no abbreviation */ - return FALSE; - - /* ---- 4201,4208 ---- - - if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */ - return FALSE; -! if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0) -! /* no remapping implies no abbreviation */ - return FALSE; - - /* -*** ../vim-7.0.176/src/normal.c Tue Nov 7 18:43:10 2006 ---- src/normal.c Tue Dec 5 21:16:07 2006 -*************** -*** 651,659 **** - /* Fake a "c"hange command. When "restart_edit" is set (e.g., because - * 'insertmode' is set) fake a "d"elete command, Insert mode will - * restart automatically. -! * Insert the typed character in the typeahead buffer, so that it will -! * be mapped in Insert mode. Required for ":lmap" to work. May cause -! * mapping a character from ":vnoremap"... */ - ins_char_typebuf(c); - if (restart_edit != 0) - c = 'd'; ---- 651,658 ---- - /* Fake a "c"hange command. When "restart_edit" is set (e.g., because - * 'insertmode' is set) fake a "d"elete command, Insert mode will - * restart automatically. -! * Insert the typed character in the typeahead buffer, so that it can -! * be mapped in Insert mode. Required for ":lmap" to work. */ - ins_char_typebuf(c); - if (restart_edit != 0) - c = 'd'; -*** ../vim-7.0.176/src/version.c Tue Dec 5 21:32:00 2006 ---- src/version.c Tue Dec 5 21:36:07 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 177, - /**/ - --- -5 out of 4 people have trouble with fractions. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.178 b/7.0.178 deleted file mode 100644 index 3a286495..00000000 --- a/7.0.178 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.178 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.178 -Problem: When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo - ("\xe4" == "\xe4")" varies. -Solution: In mb_strnicmp() avoid looking past NUL bytes. -Files: src/mbyte.c - - -*** ../vim-7.0.177/src/mbyte.c Wed Nov 1 18:10:36 2006 ---- src/mbyte.c Tue Dec 5 22:04:34 2006 -*************** -*** 2294,2301 **** ---- 2294,2307 ---- - } - /* Check directly first, it's faster. */ - for (j = 0; j < l; ++j) -+ { - if (s1[i + j] != s2[i + j]) - break; -+ if (s1[i + j] == 0) -+ /* Both stings have the same bytes but are incomplete or -+ * have illegal bytes, accept them as equal. */ -+ l = j; -+ } - if (j < l) - { - /* If one of the two characters is incomplete return -1. */ -*** ../vim-7.0.177/src/version.c Tue Dec 5 21:45:20 2006 ---- src/version.c Tue Dec 5 22:08:08 2006 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 178, - /**/ - --- -Trees moving back and forth is what makes the wind blow. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.179 b/7.0.179 deleted file mode 100644 index d9e4f76f..00000000 --- a/7.0.179 +++ /dev/null @@ -1,57 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.179 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.179 -Problem: Using ":recover" or "vim -r" without a swapfile crashes Vim. -Solution: Check for "buf" to be unequal NULL. (Yukihiro Nakadaira) -Files: src/memline.c - - -*** ../vim-7.0.178/src/memline.c Tue Nov 21 20:57:21 2006 ---- src/memline.c Tue Jan 9 14:33:44 2007 -*************** -*** 1329,1336 **** - mf_put(mfp, hp, FALSE, FALSE); - mf_close(mfp, FALSE); /* will also vim_free(mfp->mf_fname) */ - } -! vim_free(buf->b_ml.ml_stack); -! vim_free(buf); - if (serious_error && called_from_main) - ml_close(curbuf, TRUE); - #ifdef FEAT_AUTOCMD ---- 1329,1339 ---- - mf_put(mfp, hp, FALSE, FALSE); - mf_close(mfp, FALSE); /* will also vim_free(mfp->mf_fname) */ - } -! if (buf != NULL) -! { -! vim_free(buf->b_ml.ml_stack); -! vim_free(buf); -! } - if (serious_error && called_from_main) - ml_close(curbuf, TRUE); - #ifdef FEAT_AUTOCMD -*** ../vim-7.0.178/src/version.c Tue Dec 5 22:09:02 2006 ---- src/version.c Tue Jan 9 14:35:59 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 179, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -10. And even your night dreams are in HTML. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.180 b/7.0.180 deleted file mode 100644 index 72255b18..00000000 --- a/7.0.180 +++ /dev/null @@ -1,101 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.180 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.180 (extra, after 7.0.171) -Problem: VMS: build failed. Problem with swapfiles. -Solution: Add "compiled_arch". Always expand path and pass it to - buf_modname(). (Zoltan Arpadffy) -Files: src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim - - -*** ../vim-7.0.179/src/globals.h Sat Oct 14 14:33:21 2006 ---- src/globals.h Tue Jan 9 14:26:51 2007 -*************** -*** 1092,1097 **** ---- 1092,1098 ---- - extern char_u *all_lflags; - # ifdef VMS - extern char_u *compiler_version; -+ extern char_u *compiled_arch; - # endif - extern char_u *compiled_user; - extern char_u *compiled_sys; -*** ../vim-7.0.179/src/memline.c Tue Jan 9 14:37:10 2007 ---- src/memline.c Tue Jan 9 14:33:44 2007 -*************** -*** 3572,3579 **** - #else - (buf->b_p_sn || buf->b_shortname), - #endif -! #ifdef RISCOS -! /* Avoid problems if fname has special chars, eg */ - ffname, - #else - # ifdef HAVE_READLINK ---- 3572,3580 ---- - #else - (buf->b_p_sn || buf->b_shortname), - #endif -! #if defined(VMS) || defined(RISCOS) -! /* Avoid problems if fname has special chars, eg . -! * For VMS always use full path for swapfile. */ - ffname, - #else - # ifdef HAVE_READLINK -*** ../vim-7.0.179/src/os_unix.c Tue Nov 28 17:44:51 2006 ---- src/os_unix.c Tue Jan 9 14:31:08 2007 -*************** -*** 2221,2227 **** - * behaviour should be avoided for the existing files and we need to find - * the exact path of the edited file. - */ -- if (force || !mch_isFullName(fname)) - { - char_u *fixed_fname = vms_fixfilename(fname); - int fd = mch_open((char *)fixed_fname, O_RDONLY | O_EXTRA, 0); ---- 2221,2226 ---- -*** ../vim-7.0.179/runtime/menu.vim Thu Sep 14 13:35:17 2006 ---- runtime/menu.vim Tue Jan 9 14:31:40 2007 -*************** -*** 384,390 **** - " Programming menu - if !exists("g:ctags_command") - if has("vms") -! let g:ctags_command = "mc vim:ctags ." - else - let g:ctags_command = "ctags -R ." - endif ---- 384,390 ---- - " Programming menu - if !exists("g:ctags_command") - if has("vms") -! let g:ctags_command = "mc vim:ctags *.*" - else - let g:ctags_command = "ctags -R ." - endif -*** ../vim-7.0.179/src/version.c Tue Jan 9 14:37:10 2007 ---- src/version.c Tue Jan 9 15:00:57 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 180, - /**/ - --- -The Feynman problem solving Algorithm: - 1) Write down the problem - 2) Think real hard - 3) Write down the answer - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.181 b/7.0.181 deleted file mode 100644 index 87c5d2c8..00000000 --- a/7.0.181 +++ /dev/null @@ -1,56 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.181 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.181 -Problem: When reloading a file that starts with an empty line, the reloaded - buffer has an extra empty line at the end. (Motty Lentzitzky) -Solution: Delete all lines, don't use bufempty(). -Files: src/fileio.c - - -*** ../vim-7.0.180/src/fileio.c Thu Oct 12 21:15:04 2006 ---- src/fileio.c Tue Jan 9 15:38:13 2007 -*************** -*** 6178,6185 **** - if (retval != FAIL) - { - curbuf = frombuf; -! while (!bufempty()) -! if (ml_delete(curbuf->b_ml.ml_line_count, FALSE) == FAIL) - { - /* Oops! We could try putting back the saved lines, but that - * might fail again... */ ---- 6179,6186 ---- - if (retval != FAIL) - { - curbuf = frombuf; -! for (lnum = curbuf->b_ml.ml_line_count; lnum > 0; --lnum) -! if (ml_delete(lnum, FALSE) == FAIL) - { - /* Oops! We could try putting back the saved lines, but that - * might fail again... */ -*** ../vim-7.0.180/src/version.c Tue Jan 9 15:15:36 2007 ---- src/version.c Tue Jan 9 15:41:55 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 181, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -11. You find yourself typing "com" after every period when using a word - processor.com - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.182 b/7.0.182 deleted file mode 100644 index 2d1d3802..00000000 --- a/7.0.182 +++ /dev/null @@ -1,90 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.182 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.182 -Problem: When using a mix of undo and "g-" it may no longer be possible to - go to every point in the undo tree. (Andy Wokula) -Solution: Correctly update pointers in the undo tree. -Files: src/undo.c - - -*** ../vim-7.0.181/src/undo.c Tue Aug 29 17:28:56 2006 ---- src/undo.c Tue Jan 9 20:18:27 2007 -*************** -*** 341,351 **** - uhp->uh_alt_next = old_curhead; - if (old_curhead != NULL) - { - old_curhead->uh_alt_prev = uhp; - if (curbuf->b_u_oldhead == old_curhead) - curbuf->b_u_oldhead = uhp; - } -! uhp->uh_alt_prev = NULL; - if (curbuf->b_u_newhead != NULL) - curbuf->b_u_newhead->uh_prev = uhp; - ---- 341,355 ---- - uhp->uh_alt_next = old_curhead; - if (old_curhead != NULL) - { -+ uhp->uh_alt_prev = old_curhead->uh_alt_prev; -+ if (uhp->uh_alt_prev != NULL) -+ uhp->uh_alt_prev->uh_alt_next = uhp; - old_curhead->uh_alt_prev = uhp; - if (curbuf->b_u_oldhead == old_curhead) - curbuf->b_u_oldhead = uhp; - } -! else -! uhp->uh_alt_prev = NULL; - if (curbuf->b_u_newhead != NULL) - curbuf->b_u_newhead->uh_prev = uhp; - -*************** -*** 856,861 **** ---- 860,870 ---- - uhp = curbuf->b_u_curhead; - while (uhp != NULL) - { -+ /* Go back to the first branch with a mark. */ -+ while (uhp->uh_alt_prev != NULL -+ && uhp->uh_alt_prev->uh_walk == mark) -+ uhp = uhp->uh_alt_prev; -+ - /* Find the last branch with a mark, that's the one. */ - last = uhp; - while (last->uh_alt_next != NULL -*************** -*** 865,870 **** ---- 874,881 ---- - { - /* Make the used branch the first entry in the list of - * alternatives to make "u" and CTRL-R take this branch. */ -+ while (uhp->uh_alt_prev != NULL) -+ uhp = uhp->uh_alt_prev; - if (last->uh_alt_next != NULL) - last->uh_alt_next->uh_alt_prev = last->uh_alt_prev; - last->uh_alt_prev->uh_alt_next = last->uh_alt_next; -*** ../vim-7.0.181/src/version.c Tue Jan 9 15:43:39 2007 ---- src/version.c Tue Jan 9 20:26:47 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 182, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -13. You refer to going to the bathroom as downloading. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.183 b/7.0.183 deleted file mode 100644 index d1355176..00000000 --- a/7.0.183 +++ /dev/null @@ -1,163 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.183 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.183 -Problem: Crash in ":let" when redirecting to a variable that's being - displayed. (Thomas Link) -Solution: When redirecting to a variable only do the assignment when - stopping redirection to avoid that setting the variable causes a - freed string to be accessed. -Files: src/eval.c - - -*** ../vim-7.0.182/src/eval.c Tue Dec 5 10:33:57 2006 ---- src/eval.c Sun Jan 14 14:20:49 2007 -*************** -*** 898,903 **** ---- 898,904 ---- - } - - static lval_T *redir_lval = NULL; -+ static garray_T redir_ga; /* only valid when redir_lval is not NULL */ - static char_u *redir_endp = NULL; - static char_u *redir_varname = NULL; - -*************** -*** 932,937 **** ---- 933,941 ---- - return FAIL; - } - -+ /* The output is stored in growarray "redir_ga" until redirection ends. */ -+ ga_init2(&redir_ga, (int)sizeof(char), 500); -+ - /* Parse the variable name (can be a dict or list entry). */ - redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, FALSE, - FNE_CHECK_START); -*************** -*** 974,1015 **** - } - - /* -! * Append "value[len]" to the variable set by var_redir_start(). - */ - void -! var_redir_str(value, len) - char_u *value; -! int len; - { -! char_u *val; -! typval_T tv; -! int save_emsg; -! int err; - - if (redir_lval == NULL) - return; - -! if (len == -1) -! /* Append the entire string */ -! val = vim_strsave(value); -! else -! /* Append only the specified number of characters */ -! val = vim_strnsave(value, len); -! if (val == NULL) -! return; -! -! tv.v_type = VAR_STRING; -! tv.vval.v_string = val; - -! save_emsg = did_emsg; -! did_emsg = FALSE; -! set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)"."); -! err = did_emsg; -! did_emsg |= save_emsg; -! if (err) - var_redir_stop(); -- -- vim_free(tv.vval.v_string); - } - - /* ---- 978,1013 ---- - } - - /* -! * Append "value[value_len]" to the variable set by var_redir_start(). -! * The actual appending is postponed until redirection ends, because the value -! * appended may in fact be the string we write to, changing it may cause freed -! * memory to be used: -! * :redir => foo -! * :let foo -! * :redir END - */ - void -! var_redir_str(value, value_len) - char_u *value; -! int value_len; - { -! size_t len; - - if (redir_lval == NULL) - return; - -! if (value_len == -1) -! len = STRLEN(value); /* Append the entire string */ -! else -! len = value_len; /* Append only "value_len" characters */ - -! if (ga_grow(&redir_ga, (int)len) == OK) -! { -! mch_memmove((char *)redir_ga.ga_data + redir_ga.ga_len, value, len); -! redir_ga.ga_len += len; -! } -! else - var_redir_stop(); - } - - /* -*************** -*** 1018,1025 **** ---- 1016,1034 ---- - void - var_redir_stop() - { -+ typval_T tv; -+ - if (redir_lval != NULL) - { -+ /* Append the trailing NUL. */ -+ ga_append(&redir_ga, NUL); -+ -+ /* Assign the text to the variable. */ -+ tv.v_type = VAR_STRING; -+ tv.vval.v_string = redir_ga.ga_data; -+ set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)"."); -+ vim_free(tv.vval.v_string); -+ - clear_lval(redir_lval); - vim_free(redir_lval); - redir_lval = NULL; -*** ../vim-7.0.182/src/version.c Tue Jan 9 20:29:55 2007 ---- src/version.c Sun Jan 14 15:23:23 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 183, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -16. Have your coworkers address you by your wrestling name, Rock Hard Kim. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.184 b/7.0.184 deleted file mode 100644 index a4a840c6..00000000 --- a/7.0.184 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.184 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.184 -Problem: When the cscope program is called "mlcscope" the Cscope interface - doesn't work. -Solution: Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik) -Files: src/if_cscope.c - - -*** ../vim-7.0.183/src/if_cscope.c Tue Nov 21 11:43:49 2006 ---- src/if_cscope.c Fri Jan 12 20:02:37 2007 -*************** -*** 627,636 **** - * If the database is out of date, or there's some other problem, - * cscope will output error messages before the number-of-lines output. - * Display/discard any output that doesn't match what we want. - */ - if ((stok = strtok(buf, (const char *)" ")) == NULL) - continue; -! if (strcmp((const char *)stok, "cscope:")) - continue; - - if ((stok = strtok(NULL, (const char *)" ")) == NULL) ---- 627,637 ---- - * If the database is out of date, or there's some other problem, - * cscope will output error messages before the number-of-lines output. - * Display/discard any output that doesn't match what we want. -+ * Accept "\S*cscope: X lines", also matches "mlcscope". - */ - if ((stok = strtok(buf, (const char *)" ")) == NULL) - continue; -! if (strstr((const char *)stok, "cscope:") == NULL) - continue; - - if ((stok = strtok(NULL, (const char *)" ")) == NULL) -*** ../vim-7.0.183/src/version.c Sun Jan 14 15:27:05 2007 ---- src/version.c Tue Jan 16 15:16:41 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 184, - /**/ - --- -The technology involved in making anything invisible is so infinitely -complex that nine hundred and ninety-nine billion, nine hundred and -ninety-nine million, nine hundred and ninety-nine thousand, nine hundred -and ninety-nine times out of a trillion it is much simpler and more -effective just to take the thing away and do without it. - -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.185 b/7.0.185 deleted file mode 100644 index 48583521..00000000 --- a/7.0.185 +++ /dev/null @@ -1,105 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.185 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.185 -Problem: Multi-byte characters in a message are displayed with attributes - from what comes before it. -Solution: Don't use the attributes for a multi-byte character. Do use - attributes for special characters. (Yukihiro Nakadaira) -Files: src/message.c - - -*** ../vim-7.0.184/src/message.c Sat Oct 14 14:33:21 2006 ---- src/message.c Sat Jan 13 17:27:31 2007 -*************** -*** 1556,1562 **** - int c_extra = 0; - char_u *p_extra = NULL; /* init to make SASC shut up */ - int n; -! int attr= 0; - char_u *trail = NULL; - #ifdef FEAT_MBYTE - int l; ---- 1556,1562 ---- - int c_extra = 0; - char_u *p_extra = NULL; /* init to make SASC shut up */ - int n; -! int attr = 0; - char_u *trail = NULL; - #ifdef FEAT_MBYTE - int l; -*************** -*** 1581,1587 **** - - while (!got_int) - { -! if (n_extra) - { - --n_extra; - if (c_extra) ---- 1581,1587 ---- - - while (!got_int) - { -! if (n_extra > 0) - { - --n_extra; - if (c_extra) -*************** -*** 1595,1601 **** - col += (*mb_ptr2cells)(s); - mch_memmove(buf, s, (size_t)l); - buf[l] = NUL; -! msg_puts_attr(buf, attr); - s += l; - continue; - } ---- 1595,1601 ---- - col += (*mb_ptr2cells)(s); - mch_memmove(buf, s, (size_t)l); - buf[l] = NUL; -! msg_puts(buf); - s += l; - continue; - } -*************** -*** 1635,1640 **** ---- 1635,1643 ---- - p_extra = transchar_byte(c); - c_extra = NUL; - c = *p_extra++; -+ /* Use special coloring to be able to distinguish from -+ * the same in plain text. */ -+ attr = hl_attr(HLF_8); - } - else if (c == ' ' && trail != NULL && s > trail) - { -*** ../vim-7.0.184/src/version.c Tue Jan 16 15:17:43 2007 ---- src/version.c Tue Jan 16 15:43:37 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 185, - /**/ - --- -This planet has -- or rather had -- a problem, which was this: most -of the people living on it were unhappy for pretty much of the time. -Many solutions were suggested for this problem, but most of these -were largely concerned with the movements of small green pieces of -paper, which is odd because on the whole it wasn't the small green -pieces of paper that were unhappy. - -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.186 b/7.0.186 deleted file mode 100644 index 8f8798dc..00000000 --- a/7.0.186 +++ /dev/null @@ -1,58 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.186 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.186 -Problem: Get an ml_get error when 'encoding' is "utf-8" and searching for - "/\_s*/e" in an empty buffer. (Andrew Maykov) -Solution: Don't try getting the line just below the last line. -Files: src/search.c - - -*** ../vim-7.0.185/src/search.c Sat Oct 14 14:33:21 2006 ---- src/search.c Tue Jan 16 15:31:28 2007 -*************** -*** 812,818 **** - #ifdef FEAT_MBYTE - if (has_mbyte) - { -! ptr = ml_get_buf(buf, pos->lnum, FALSE); - pos->col -= (*mb_head_off)(ptr, ptr + pos->col); - } - #endif ---- 812,822 ---- - #ifdef FEAT_MBYTE - if (has_mbyte) - { -! /* 'e' offset may put us just below the last line */ -! if (pos->lnum > buf->b_ml.ml_line_count) -! ptr = ""; -! else -! ptr = ml_get_buf(buf, pos->lnum, FALSE); - pos->col -= (*mb_head_off)(ptr, ptr + pos->col); - } - #endif -*** ../vim-7.0.185/src/version.c Tue Jan 16 15:44:59 2007 ---- src/version.c Tue Jan 16 15:59:37 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 186, - /**/ - --- -Time is an illusion. Lunchtime doubly so. - -- Ford Prefect, in Douglas Adams' - "The Hitchhiker's Guide to the Galaxy" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.187 b/7.0.187 deleted file mode 100644 index 5cba615a..00000000 --- a/7.0.187 +++ /dev/null @@ -1,158 +0,0 @@ -# KH: Modified as it collides with the runtime-update patch - -To: vim-dev@vim.org -Subject: patch 7.0.187 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.187 -Problem: Can't source a remote script properly. -Solution: Add the SourceCmd event. (Charles Campbell) -Files: runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h - -diff -urN runtime/doc/autocmd.txt runtime/doc/autocmd.txt.new ---- runtime/doc/autocmd.txt 2006-09-08 17:26:31.000000000 -0400 -+++ runtime/doc/autocmd.txt 2007-01-23 06:17:46.000000000 -0500 -@@ -1,4 +1,4 @@ --*autocmd.txt* For Vim version 7.0. Last change: 2006 Aug 29 -+*autocmd.txt* For Vim version 7.0. Last change: 2007 Jan 16 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -279,6 +279,7 @@ - |FuncUndefined| a user function is used but it isn't defined - |SpellFileMissing| a spell file is used but it can't be found - |SourcePre| before sourcing a Vim script -+|SourceCmd| before sourcing a Vim script |Cmd-event| - - |VimResized| after the Vim window size changed - |FocusGained| Vim got input focus -@@ -695,10 +696,16 @@ - *SourcePre* - SourcePre Before sourcing a Vim script. |:source| - is the name of the file being sourced. -+ *SourceCmd* -+SourceCmd When sourcing a Vim script. |:source| -+ is the name of the file being sourced. -+ The autocommand must source this file. -+ |Cmd-event| - *SpellFileMissing* - SpellFileMissing When trying to load a spell checking file and -- it can't be found. is the language, -- 'encoding' also matters. See -+ it can't be found. The pattern is matched -+ against the language. is the -+ language, 'encoding' also matters. See - |spell-SpellFileMissing|. - *StdinReadPost* - StdinReadPost After reading from the stdin into the buffer, -@@ -1224,8 +1231,8 @@ - - *Cmd-event* - When using one of the "*Cmd" events, the matching autocommands are expected to --do the file reading or writing. This can be used when working with a special --kind of file, for example on a remote system. -+do the file reading, writing or sourcing. This can be used when working with -+a special kind of file, for example on a remote system. - CAREFUL: If you use these events in a wrong way, it may have the effect of - making it impossible to read or write the matching files! Make sure you test - your autocommands properly. Best is to use a pattern that will never match a -@@ -1238,9 +1245,10 @@ - original file isn't needed for recovery. You might want to do this only when - you expect the file to be modified. - --The |v:cmdarg| variable holds the "++enc=" and "++ff=" argument that are --effective. These should be used for the command that reads/writes the file. --The |v:cmdbang| variable is one when "!" was used, zero otherwise. -+For file read and write commands the |v:cmdarg| variable holds the "++enc=" -+and "++ff=" argument that are effective. These should be used for the command -+that reads/writes the file. The |v:cmdbang| variable is one when "!" was -+used, zero otherwise. - - See the $VIMRUNTIME/plugin/netrw.vim for examples. - -*** ../vim-7.0.186/src/ex_cmds2.c Tue Aug 29 17:28:56 2006 ---- src/ex_cmds2.c Tue Jan 16 18:30:40 2007 -*************** -*** 2811,2816 **** ---- 2811,2827 ---- - } - - #ifdef FEAT_AUTOCMD -+ /* Apply SourceCmd autocommands, they should get the file and source it. */ -+ if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL) -+ && apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp, -+ FALSE, curbuf)) -+ # ifdef FEAT_EVAL -+ return aborting() ? FAIL : OK; -+ # else -+ return OK; -+ # endif -+ -+ /* Apply SourcePre autocommands, they may get the file. */ - apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf); - #endif - -*** ../vim-7.0.186/src/fileio.c Tue Jan 9 15:43:39 2007 ---- src/fileio.c Tue Jan 16 18:23:35 2007 -*************** -*** 7019,7024 **** ---- 7020,7026 ---- - {"ShellCmdPost", EVENT_SHELLCMDPOST}, - {"ShellFilterPost", EVENT_SHELLFILTERPOST}, - {"SourcePre", EVENT_SOURCEPRE}, -+ {"SourceCmd", EVENT_SOURCECMD}, - {"SpellFileMissing",EVENT_SPELLFILEMISSING}, - {"StdinReadPost", EVENT_STDINREADPOST}, - {"StdinReadPre", EVENT_STDINREADPRE}, -*** ../vim-7.0.186/src/vim.h Wed Nov 1 15:31:02 2006 ---- src/vim.h Tue Jan 16 18:22:28 2007 -*************** -*** 1102,1108 **** - EVENT_COLORSCHEME, /* after loading a colorscheme */ - EVENT_FILEAPPENDPOST, /* after appending to a file */ - EVENT_FILEAPPENDPRE, /* before appending to a file */ -! EVENT_FILEAPPENDCMD, /* appende to a file using command */ - EVENT_FILECHANGEDSHELL, /* after shell command that changed file */ - EVENT_FILECHANGEDSHELLPOST, /* after (not) reloading changed file */ - EVENT_FILECHANGEDRO, /* before first change to read-only file */ ---- 1102,1108 ---- - EVENT_COLORSCHEME, /* after loading a colorscheme */ - EVENT_FILEAPPENDPOST, /* after appending to a file */ - EVENT_FILEAPPENDPRE, /* before appending to a file */ -! EVENT_FILEAPPENDCMD, /* append to a file using command */ - EVENT_FILECHANGEDSHELL, /* after shell command that changed file */ - EVENT_FILECHANGEDSHELLPOST, /* after (not) reloading changed file */ - EVENT_FILECHANGEDRO, /* before first change to read-only file */ -*************** -*** 1147,1152 **** ---- 1147,1153 ---- - EVENT_REMOTEREPLY, /* upon string reception from a remote vim */ - EVENT_SWAPEXISTS, /* found existing swap file */ - EVENT_SOURCEPRE, /* before sourcing a Vim script */ -+ EVENT_SOURCECMD, /* sourcing a Vim script using command */ - EVENT_SPELLFILEMISSING, /* spell file missing */ - EVENT_CURSORMOVED, /* cursor was moved */ - EVENT_CURSORMOVEDI, /* cursor was moved in Insert mode */ -*** ../vim-7.0.186/src/version.c Tue Jan 16 16:00:38 2007 ---- src/version.c Tue Jan 16 20:37:23 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 187, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -29. Your phone bill comes to your doorstep in a box. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.188 b/7.0.188 deleted file mode 100644 index 4ae7a1d8..00000000 --- a/7.0.188 +++ /dev/null @@ -1,51 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.188 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.188 (after 7.0.186) -Problem: Warning for wrong pointer type. -Solution: Add a type cast. -Files: src/search.c - - -*** ../vim-7.0.187/src/search.c Tue Jan 16 16:00:38 2007 ---- src/search.c Tue Jan 16 21:16:01 2007 -*************** -*** 814,820 **** - { - /* 'e' offset may put us just below the last line */ - if (pos->lnum > buf->b_ml.ml_line_count) -! ptr = ""; - else - ptr = ml_get_buf(buf, pos->lnum, FALSE); - pos->col -= (*mb_head_off)(ptr, ptr + pos->col); ---- 814,820 ---- - { - /* 'e' offset may put us just below the last line */ - if (pos->lnum > buf->b_ml.ml_line_count) -! ptr = (char_u *)""; - else - ptr = ml_get_buf(buf, pos->lnum, FALSE); - pos->col -= (*mb_head_off)(ptr, ptr + pos->col); -*** ../vim-7.0.187/src/version.c Tue Jan 16 21:31:38 2007 ---- src/version.c Tue Jan 16 21:33:05 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 188, - /**/ - --- -Due knot trussed yore spell chequer two fined awl miss steaks. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.189 b/7.0.189 deleted file mode 100644 index 21e57e08..00000000 --- a/7.0.189 +++ /dev/null @@ -1,72 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.189 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.189 -Problem: Translated message about finding matches is truncated. (Yukihiro - Nakadaira) -Solution: Enlarge the buffer. Also use vim_snprintf(). -Files: src/edit.c - - -*** ../vim-7.0.188/src/edit.c Wed Nov 1 21:24:58 2006 ---- src/edit.c Fri Jan 19 20:22:09 2007 -*************** -*** 4970,4985 **** - * just a safety check. */ - if (compl_curr_match->cp_number != -1) - { -! /* Space for 10 text chars. + 2x10-digit no.s */ -! static char_u match_ref[31]; - - if (compl_matches > 0) -! sprintf((char *)IObuff, _("match %d of %d"), - compl_curr_match->cp_number, compl_matches); - else -! sprintf((char *)IObuff, _("match %d"), -! compl_curr_match->cp_number); -! vim_strncpy(match_ref, IObuff, 30); - edit_submode_extra = match_ref; - edit_submode_highl = HLF_R; - if (dollar_vcol) ---- 4970,4987 ---- - * just a safety check. */ - if (compl_curr_match->cp_number != -1) - { -! /* Space for 10 text chars. + 2x10-digit no.s = 31. -! * Translations may need more than twice that. */ -! static char_u match_ref[81]; - - if (compl_matches > 0) -! vim_snprintf((char *)match_ref, sizeof(match_ref), -! _("match %d of %d"), - compl_curr_match->cp_number, compl_matches); - else -! vim_snprintf((char *)match_ref, sizeof(match_ref), -! _("match %d"), -! compl_curr_match->cp_number); - edit_submode_extra = match_ref; - edit_submode_highl = HLF_R; - if (dollar_vcol) -*** ../vim-7.0.188/src/version.c Tue Jan 16 22:13:53 2007 ---- src/version.c Sun Feb 4 02:35:43 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 189, - /**/ - --- -How many light bulbs does it take to change a person? - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.190 b/7.0.190 deleted file mode 100644 index bbfe711f..00000000 --- a/7.0.190 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.190 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.190 -Problem: "syntax spell default" results in an error message. -Solution: Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado) -Files: src/syntax.c - - -*** ../vim-7.0.189/src/syntax.c Wed Nov 1 12:43:07 2006 ---- src/syntax.c Sun Jan 21 13:12:19 2007 -*************** -*** 3206,3212 **** - curbuf->b_syn_spell = SYNSPL_TOP; - else if (STRNICMP(arg, "notoplevel", 10) == 0 && next - arg == 10) - curbuf->b_syn_spell = SYNSPL_NOTOP; -! else if (STRNICMP(arg, "default", 4) == 0 && next - arg == 4) - curbuf->b_syn_spell = SYNSPL_DEFAULT; - else - EMSG2(_("E390: Illegal argument: %s"), arg); ---- 3206,3212 ---- - curbuf->b_syn_spell = SYNSPL_TOP; - else if (STRNICMP(arg, "notoplevel", 10) == 0 && next - arg == 10) - curbuf->b_syn_spell = SYNSPL_NOTOP; -! else if (STRNICMP(arg, "default", 7) == 0 && next - arg == 7) - curbuf->b_syn_spell = SYNSPL_DEFAULT; - else - EMSG2(_("E390: Illegal argument: %s"), arg); -*** ../vim-7.0.189/src/version.c Sun Feb 4 02:37:40 2007 ---- src/version.c Sun Feb 4 02:40:23 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 190, - /**/ - --- -From "know your smileys": - :-)-O Smiling doctor with stethoscope - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.191 b/7.0.191 deleted file mode 100644 index 99a9b265..00000000 --- a/7.0.191 +++ /dev/null @@ -1,220 +0,0 @@ -# KH: modified, as one line was already in the runtime update patch -To: vim-dev@vim.org -Subject: patch 7.0.191 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.191 -Problem: The items used by getqflist() and setqflist() don't match. -Solution: Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan) -Files: runtime/doc/eval.txt, src/quickfix.c - - ---- runtime/doc/eval.txt.191 2007-02-06 06:18:06.000000000 -0500 -+++ runtime/doc/eval.txt 2007-02-06 06:20:52.000000000 -0500 -@@ -2914,7 +2914,8 @@ - valid non-zero: recognized error message - - When there is no error list or it's empty an empty list is -- returned. -+ returned. Quickfix list entries with non-existing buffer -+ number are returned with "bufnr" set to zero. - - Useful application: Find pattern matches in multiple files and - do something with them: > -@@ -4392,7 +4393,10 @@ - Non-dictionary items in {list} are ignored. Each dictionary - item can contain the following entries: - -- filename name of a file -+ bufnr buffer number; must be the number of a valid -+ buffer -+ filename name of a file; only used when "bufnr" is not -+ present or it is invalid. - lnum line number in the file - pattern search pattern used to locate the error - col column number -@@ -4405,11 +4409,13 @@ - The "col", "vcol", "nr", "type" and "text" entries are - optional. Either "lnum" or "pattern" entry can be used to - locate a matching error line. -- If the "filename" entry is not present or neither the "lnum" -- or "pattern" entries are present, then the item will not be -- handled as an error line. -+ If the "filename" and "bufnr" entries are not present or -+ neither the "lnum" or "pattern" entries are present, then the -+ item will not be handled as an error line. - If both "pattern" and "lnum" are present then "pattern" will - be used. -+ Note that the list is not exactly the same as what -+ |getqflist()| returns. - - If {action} is set to 'a', then the items from {list} are - added to the existing quickfix list. If there is no existing ---- src/quickfix.c.191 2007-02-06 06:18:06.000000000 -0500 -+++ src/quickfix.c 2007-02-06 06:18:06.000000000 -0500 -@@ -106,7 +106,7 @@ - - static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast)); - static void qf_new_list __ARGS((qf_info_T *qi)); --static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid)); -+static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid)); - static void qf_msg __ARGS((qf_info_T *qi)); - static void qf_free __ARGS((qf_info_T *qi, int idx)); - static char_u *qf_types __ARGS((int, int)); -@@ -791,6 +791,7 @@ - (*namebuf || directory) - ? namebuf - : ((currfile && valid) ? currfile : (char_u *)NULL), -+ 0, - errmsg, - lnum, - col, -@@ -936,12 +937,13 @@ - * Returns OK or FAIL. - */ - static int --qf_add_entry(qi, prevp, dir, fname, mesg, lnum, col, vis_col, pattern, nr, type, -- valid) -+qf_add_entry(qi, prevp, dir, fname, bufnum, mesg, lnum, col, vis_col, pattern, -+ nr, type, valid) - qf_info_T *qi; /* quickfix list */ - qfline_T **prevp; /* pointer to previously added entry or NULL */ - char_u *dir; /* optional directory name */ - char_u *fname; /* file name or NULL */ -+ int bufnum; /* buffer number or zero */ - char_u *mesg; /* message */ - long lnum; /* line number */ - int col; /* column */ -@@ -955,7 +957,10 @@ - - if ((qfp = (qfline_T *)alloc((unsigned)sizeof(qfline_T))) == NULL) - return FAIL; -- qfp->qf_fnum = qf_get_fnum(dir, fname); -+ if (bufnum != 0) -+ qfp->qf_fnum = bufnum; -+ else -+ qfp->qf_fnum = qf_get_fnum(dir, fname); - if ((qfp->qf_text = vim_strsave(mesg)) == NULL) - { - vim_free(qfp); -@@ -1106,6 +1111,7 @@ - if (qf_add_entry(to->w_llist, &prevp, - NULL, - NULL, -+ 0, - from_qfp->qf_text, - from_qfp->qf_lnum, - from_qfp->qf_col, -@@ -3134,6 +3140,7 @@ - if (qf_add_entry(qi, &prevp, - NULL, /* dir */ - fnames[fi], -+ 0, - ml_get_buf(buf, - regmatch.startpos[0].lnum + lnum, FALSE), - regmatch.startpos[0].lnum + lnum, -@@ -3419,6 +3426,7 @@ - char_u buf[2]; - qfline_T *qfp; - int i; -+ int bufnum; - - if (wp != NULL) - { -@@ -3434,6 +3442,11 @@ - qfp = qi->qf_lists[qi->qf_curlist].qf_start; - for (i = 1; !got_int && i <= qi->qf_lists[qi->qf_curlist].qf_count; ++i) - { -+ /* Handle entries with a non-existing buffer number. */ -+ bufnum = qfp->qf_fnum; -+ if (bufnum != 0 && (buflist_findnr(bufnum) == NULL)) -+ bufnum = 0; -+ - if ((dict = dict_alloc()) == NULL) - return FAIL; - if (list_append_dict(list, dict) == FAIL) -@@ -3441,7 +3454,7 @@ - - buf[0] = qfp->qf_type; - buf[1] = NUL; -- if ( dict_add_nr_str(dict, "bufnr", (long)qfp->qf_fnum, NULL) == FAIL -+ if ( dict_add_nr_str(dict, "bufnr", (long)bufnum, NULL) == FAIL - || dict_add_nr_str(dict, "lnum", (long)qfp->qf_lnum, NULL) == FAIL - || dict_add_nr_str(dict, "col", (long)qfp->qf_col, NULL) == FAIL - || dict_add_nr_str(dict, "vcol", (long)qfp->qf_viscol, NULL) == FAIL -@@ -3472,6 +3485,7 @@ - listitem_T *li; - dict_T *d; - char_u *filename, *pattern, *text, *type; -+ int bufnum; - long lnum; - int col, nr; - int vcol; -@@ -3479,6 +3493,7 @@ - int valid, status; - int retval = OK; - qf_info_T *qi = &ql_info; -+ int did_bufnr_emsg = FALSE; - - if (wp != NULL) - { -@@ -3508,6 +3523,7 @@ - continue; - - filename = get_dict_string(d, (char_u *)"filename", TRUE); -+ bufnum = get_dict_number(d, (char_u *)"bufnr"); - lnum = get_dict_number(d, (char_u *)"lnum"); - col = get_dict_number(d, (char_u *)"col"); - vcol = get_dict_number(d, (char_u *)"vcol"); -@@ -3519,12 +3535,26 @@ - text = vim_strsave((char_u *)""); - - valid = TRUE; -- if (filename == NULL || (lnum == 0 && pattern == NULL)) -+ if ((filename == NULL && bufnum == 0) || (lnum == 0 && pattern == NULL)) - valid = FALSE; - -+ /* Mark entries with non-existing buffer number as not valid. Give the -+ * error message only once. */ -+ if (bufnum != 0 && (buflist_findnr(bufnum) == NULL)) -+ { -+ if (!did_bufnr_emsg) -+ { -+ did_bufnr_emsg = TRUE; -+ EMSGN(_("E92: Buffer %ld not found"), bufnum); -+ } -+ valid = FALSE; -+ bufnum = 0; -+ } -+ - status = qf_add_entry(qi, &prevp, - NULL, /* dir */ - filename, -+ bufnum, - text, - lnum, - col, -@@ -3757,6 +3787,7 @@ - if (qf_add_entry(qi, &prevp, - NULL, /* dir */ - fnames[fi], -+ 0, - IObuff, - lnum, - (int)(regmatch.startp[0] - IObuff) ---- src/version.c.191 2007-02-06 06:18:06.000000000 -0500 -+++ src/version.c 2007-02-06 06:18:06.000000000 -0500 -@@ -667,6 +667,8 @@ - static int included_patches[] = - { /* Add new patch number below this line */ - /**/ -+ 191, -+/**/ - 190, - /**/ - 189, diff --git a/7.0.192 b/7.0.192 deleted file mode 100644 index de0b0015..00000000 --- a/7.0.192 +++ /dev/null @@ -1,158 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.192 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.192 -Problem: When 'swapfile' is switched off in an empty file it is possible - that not all blocks are loaded into memory, causing ml_get errors - later. -Solution: Rename "dont_release" to "mf_dont_release" and also use it to - avoid using the cached line and locked block. -Files: src/globals.h, src/memfile.c, src/memline.c - - -*** ../vim-7.0.191/src/globals.h Tue Jan 9 15:15:36 2007 ---- src/globals.h Wed Feb 7 03:29:52 2007 -*************** -*** 554,559 **** ---- 554,563 ---- - EXTERN buf_T *firstbuf INIT(= NULL); /* first buffer */ - EXTERN buf_T *lastbuf INIT(= NULL); /* last buffer */ - EXTERN buf_T *curbuf INIT(= NULL); /* currently active buffer */ -+ -+ /* Flag that is set when switching off 'swapfile'. It means that all blocks -+ * are to be loaded into memory. Shouldn't be global... */ -+ EXTERN int mf_dont_release INIT(= FALSE); /* don't release blocks */ - - /* - * List of files being edited (global argument list). curwin->w_alist points -*** ../vim-7.0.191/src/memfile.c Tue Nov 7 18:02:19 2006 ---- src/memfile.c Wed Feb 7 03:22:11 2007 -*************** -*** 76,82 **** - #define MEMFILE_PAGE_SIZE 4096 /* default page size */ - - static long_u total_mem_used = 0; /* total memory used for memfiles */ -- static int dont_release = FALSE; /* don't release blocks */ - - static void mf_ins_hash __ARGS((memfile_T *, bhdr_T *)); - static void mf_rem_hash __ARGS((memfile_T *, bhdr_T *)); ---- 76,81 ---- -*************** -*** 279,288 **** - if (getlines) - { - /* get all blocks in memory by accessing all lines (clumsy!) */ -! dont_release = TRUE; - for (lnum = 1; lnum <= buf->b_ml.ml_line_count; ++lnum) - (void)ml_get_buf(buf, lnum, FALSE); -! dont_release = FALSE; - /* TODO: should check if all blocks are really in core */ - } - ---- 278,287 ---- - if (getlines) - { - /* get all blocks in memory by accessing all lines (clumsy!) */ -! mf_dont_release = TRUE; - for (lnum = 1; lnum <= buf->b_ml.ml_line_count; ++lnum) - (void)ml_get_buf(buf, lnum, FALSE); -! mf_dont_release = FALSE; - /* TODO: should check if all blocks are really in core */ - } - -*************** -*** 830,836 **** - buf_T *buf; - - /* don't release while in mf_close_file() */ -! if (dont_release) - return NULL; - - /* ---- 829,835 ---- - buf_T *buf; - - /* don't release while in mf_close_file() */ -! if (mf_dont_release) - return NULL; - - /* -*** ../vim-7.0.191/src/memline.c Tue Jan 9 15:15:36 2007 ---- src/memline.c Wed Feb 7 03:29:31 2007 -*************** -*** 2074,2081 **** - /* - * See if it is the same line as requested last time. - * Otherwise may need to flush last used line. - */ -! if (buf->b_ml.ml_line_lnum != lnum) - { - ml_flush_line(buf); - ---- 2074,2083 ---- - /* - * See if it is the same line as requested last time. - * Otherwise may need to flush last used line. -+ * Don't use the last used line when 'swapfile' is reset, need to load all -+ * blocks. - */ -! if (buf->b_ml.ml_line_lnum != lnum || mf_dont_release) - { - ml_flush_line(buf); - -*************** -*** 3200,3212 **** - * If not, flush and release the locked block. - * Don't do this for ML_INSERT_SAME, because the stack need to be updated. - * Don't do this for ML_FLUSH, because we want to flush the locked block. - */ - if (buf->b_ml.ml_locked) - { -! if (ML_SIMPLE(action) && buf->b_ml.ml_locked_low <= lnum -! && buf->b_ml.ml_locked_high >= lnum) - { -! /* remember to update pointer blocks and stack later */ - if (action == ML_INSERT) - { - ++(buf->b_ml.ml_locked_lineadd); ---- 3202,3217 ---- - * If not, flush and release the locked block. - * Don't do this for ML_INSERT_SAME, because the stack need to be updated. - * Don't do this for ML_FLUSH, because we want to flush the locked block. -+ * Don't do this when 'swapfile' is reset, we want to load all the blocks. - */ - if (buf->b_ml.ml_locked) - { -! if (ML_SIMPLE(action) -! && buf->b_ml.ml_locked_low <= lnum -! && buf->b_ml.ml_locked_high >= lnum -! && !mf_dont_release) - { -! /* remember to update pointer blocks and stack later */ - if (action == ML_INSERT) - { - ++(buf->b_ml.ml_locked_lineadd); -*** ../vim-7.0.191/src/version.c Sun Feb 4 02:59:04 2007 ---- src/version.c Wed Feb 7 03:40:28 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 192, - /**/ - --- -From "know your smileys": - %-) After staring at screen for 15 hours - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.193 b/7.0.193 deleted file mode 100644 index bcf4d0fd..00000000 --- a/7.0.193 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.193 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.193 -Problem: Using --remote or --remote-tab with an argument that matches - 'wildignore' causes a crash. -Solution: Check the argument count before using ARGLIST[0]. -Files: src/ex_cmds.c - - -*** ../vim-7.0.192/src/ex_cmds.c Tue Sep 5 18:28:45 2006 ---- src/ex_cmds.c Tue Feb 13 03:47:52 2007 -*************** -*** 6967,6972 **** ---- 6967,6980 ---- - */ - set_arglist(eap->arg); - -+ /* -+ * Expanding wildcards may result in an empty argument list. E.g. when -+ * editing "foo.pyc" and ".pyc" is in 'wildignore'. Assume that we -+ * already did an error message for this. -+ */ -+ if (ARGCOUNT == 0) -+ return; -+ - # ifdef FEAT_WINDOWS - if (cmdmod.tab) - { -*** ../vim-7.0.192/src/version.c Wed Feb 7 03:42:37 2007 ---- src/version.c Tue Feb 13 03:47:08 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 193, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -113. You are asked about a bus schedule, you wonder if it is 16 or 32 bits. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.194 b/7.0.194 deleted file mode 100644 index 66fac554..00000000 --- a/7.0.194 +++ /dev/null @@ -1,97 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.194 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.194 -Problem: Once an ml_get error is given redrawing part of the screen may - cause it again, resulting in an endless loop. -Solution: Don't give the error message for a recursive call. -Files: src/memline.c - - -*** ../vim-7.0.193/src/memline.c Wed Feb 7 03:42:37 2007 ---- src/memline.c Tue Feb 13 03:56:00 2007 -*************** -*** 2054,2066 **** - linenr_T lnum; - int will_change; /* line will be changed */ - { -! bhdr_T *hp; -! DATA_BL *dp; -! char_u *ptr; - - if (lnum > buf->b_ml.ml_line_count) /* invalid line number */ - { -! EMSGN(_("E315: ml_get: invalid lnum: %ld"), lnum); - errorret: - STRCPY(IObuff, "???"); - return IObuff; ---- 2054,2074 ---- - linenr_T lnum; - int will_change; /* line will be changed */ - { -! bhdr_T *hp; -! DATA_BL *dp; -! char_u *ptr; -! static int recursive = 0; - - if (lnum > buf->b_ml.ml_line_count) /* invalid line number */ - { -! if (recursive == 0) -! { -! /* Avoid giving this message for a recursive call, may happen when -! * the GUI redraws part of the text. */ -! ++recursive; -! EMSGN(_("E315: ml_get: invalid lnum: %ld"), lnum); -! --recursive; -! } - errorret: - STRCPY(IObuff, "???"); - return IObuff; -*************** -*** 2088,2094 **** - */ - if ((hp = ml_find_line(buf, lnum, ML_FIND)) == NULL) - { -! EMSGN(_("E316: ml_get: cannot find line %ld"), lnum); - goto errorret; - } - ---- 2096,2109 ---- - */ - if ((hp = ml_find_line(buf, lnum, ML_FIND)) == NULL) - { -! if (recursive == 0) -! { -! /* Avoid giving this message for a recursive call, may happen -! * when the GUI redraws part of the text. */ -! ++recursive; -! EMSGN(_("E316: ml_get: cannot find line %ld"), lnum); -! --recursive; -! } - goto errorret; - } - -*** ../vim-7.0.193/src/version.c Tue Feb 13 03:49:01 2007 ---- src/version.c Tue Feb 13 03:59:22 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 194, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -114. You are counting items, you go "0,1,2,3,4,5,6,7,8,9,A,B,C,D...". - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.195 b/7.0.195 deleted file mode 100644 index 471a369f..00000000 --- a/7.0.195 +++ /dev/null @@ -1,89 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.195 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.195 -Problem: When a buffer is modified and 'autowriteall' is set, ":quit" - results in an endless loop when there is a conversion error while - writing. (Nikolai Weibull) -Solution: Make autowrite() return FAIL if the buffer is still changed after - writing it. -Files: src/ex_cmds2.c - - -*** ../vim-7.0.194/src/ex_cmds2.c Tue Jan 16 21:31:38 2007 ---- src/ex_cmds2.c Tue Feb 13 06:11:28 2007 -*************** -*** 1242,1255 **** - buf_T *buf; - int forceit; - { - if (!(p_aw || p_awa) || !p_write - #ifdef FEAT_QUICKFIX -! /* never autowrite a "nofile" or "nowrite" buffer */ -! || bt_dontwrite(buf) - #endif -! || (!forceit && buf->b_p_ro) || buf->b_ffname == NULL) - return FAIL; -! return buf_write_all(buf, forceit); - } - - /* ---- 1242,1263 ---- - buf_T *buf; - int forceit; - { -+ int r; -+ - if (!(p_aw || p_awa) || !p_write - #ifdef FEAT_QUICKFIX -! /* never autowrite a "nofile" or "nowrite" buffer */ -! || bt_dontwrite(buf) - #endif -! || (!forceit && buf->b_p_ro) || buf->b_ffname == NULL) - return FAIL; -! r = buf_write_all(buf, forceit); -! -! /* Writing may succeed but the buffer still changed, e.g., when there is a -! * conversion error. We do want to return FAIL then. */ -! if (buf_valid(buf) && bufIsChanged(buf)) -! r = FAIL; -! return r; - } - - /* -*************** -*** 1472,1477 **** ---- 1480,1487 ---- - if (buf == NULL) /* No buffers changed */ - return FALSE; - -+ /* Try auto-writing the buffer. If this fails but the buffer no -+ * longer exists it's not changed, that's OK. */ - if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf)) - break; /* didn't save - still changes */ - } -*** ../vim-7.0.194/src/version.c Tue Feb 13 04:03:05 2007 ---- src/version.c Tue Feb 13 06:18:28 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 195, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -115. You are late picking up your kid from school and try to explain - to the teacher you were stuck in Web traffic. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.196 b/7.0.196 deleted file mode 100644 index 7c792ac8..00000000 --- a/7.0.196 +++ /dev/null @@ -1,89 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.196 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.196 -Problem: When using ":vert ball" the computation of the mouse pointer - position may be off by one column. (Stefan Karlsson) -Solution: Recompute the frame width when moving the vertical separator from - one window to another. -Files: src/window.c - - -*** ../vim-7.0.195/src/window.c Tue Nov 21 20:57:21 2006 ---- src/window.c Tue Feb 20 00:16:35 2007 -*************** -*** 1541,1548 **** - win1->w_prev->w_status_height = win1->w_status_height; - win1->w_status_height = height; - #ifdef FEAT_VERTSPLIT -! win1->w_prev->w_vsep_width = 0; -! win1->w_vsep_width = 1; - #endif - } - else if (win2 == lastwin) ---- 1541,1555 ---- - win1->w_prev->w_status_height = win1->w_status_height; - win1->w_status_height = height; - #ifdef FEAT_VERTSPLIT -! if (win1->w_prev->w_vsep_width == 1) -! { -! /* Remove the vertical separator from the last-but-one window, -! * add it to the last window. Adjust the frame widths. */ -! win1->w_prev->w_vsep_width = 0; -! win1->w_prev->w_frame->fr_width -= 1; -! win1->w_vsep_width = 1; -! win1->w_frame->fr_width += 1; -! } - #endif - } - else if (win2 == lastwin) -*************** -*** 1551,1558 **** - win1->w_status_height = win2->w_status_height; - win2->w_status_height = height; - #ifdef FEAT_VERTSPLIT -! win2->w_vsep_width = 1; -! win1->w_vsep_width = 0; - #endif - } - win_remove(win1, NULL); ---- 1558,1572 ---- - win1->w_status_height = win2->w_status_height; - win2->w_status_height = height; - #ifdef FEAT_VERTSPLIT -! if (win1->w_vsep_width == 1) -! { -! /* Remove the vertical separator from win1, add it to the last -! * window, win2. Adjust the frame widths. */ -! win2->w_vsep_width = 1; -! win2->w_frame->fr_width += 1; -! win1->w_vsep_width = 0; -! win1->w_frame->fr_width -= 1; -! } - #endif - } - win_remove(win1, NULL); -*** ../vim-7.0.195/src/version.c Tue Feb 13 06:21:24 2007 ---- src/version.c Tue Feb 20 00:14:00 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 196, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -150. You find yourself counting emoticons to get to sleep. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.197 b/7.0.197 deleted file mode 100644 index b0f9c1f0..00000000 --- a/7.0.197 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.197 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.197 (extra) -Problem: Win32: Compiling with EXITFREE doesn't work. -Solution: Adjust a few #ifdefs. (Alexei Alexandrof) -Files: src/misc2.c, src/os_mswin.c - - -*** ../vim-7.0.196/src/misc2.c Tue Oct 3 14:43:31 2006 ---- src/misc2.c Wed Feb 7 05:00:13 2007 -*************** -*** 1075,1081 **** - ResetRedobuff(); - ResetRedobuff(); - -! #ifdef FEAT_CLIENTSERVER - vim_free(serverDelayedStartName); - #endif - ---- 1075,1081 ---- - ResetRedobuff(); - ResetRedobuff(); - -! #if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11) - vim_free(serverDelayedStartName); - #endif - -*** ../vim-7.0.196/src/os_mswin.c Thu Apr 27 01:53:04 2006 ---- src/os_mswin.c Mon Feb 5 04:46:08 2007 -*************** -*** 239,244 **** ---- 239,249 ---- - - if (gui.in_use) - gui_exit(r); -+ -+ #ifdef EXITFREE -+ free_all_mem(); -+ #endif -+ - exit(r); - } - -*** ../vim-7.0.196/src/version.c Tue Feb 20 00:17:01 2007 ---- src/version.c Tue Feb 20 02:59:44 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 197, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -154. You fondle your mouse. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.198 b/7.0.198 deleted file mode 100644 index cd244ac5..00000000 --- a/7.0.198 +++ /dev/null @@ -1,232 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.198 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.198 (extra) -Problem: Win32: Compiler warnings. No need to generate gvim.exe.mnf. -Solution: Add type casts. Use "*" for processorArchitecture. (George Reilly) -Files: src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c - - -*** ../vim-7.0.197/src/Make_mvc.mak Thu Apr 27 01:50:26 2006 ---- src/Make_mvc.mak Wed Feb 7 05:04:15 2007 -*************** -*** 683,689 **** - # on a crash (doesn't add overhead to the executable). - # - CFLAGS = $(CFLAGS) /Zi /Fd$(OUTDIR)/ -! LINK_PDB = /PDB:$(OUTDIR)/$(VIM).pdb -debug # -debug:full -debugtype:cv,fixup - - # - # End extra feature include ---- 683,689 ---- - # on a crash (doesn't add overhead to the executable). - # - CFLAGS = $(CFLAGS) /Zi /Fd$(OUTDIR)/ -! LINK_PDB = /PDB:$(VIM).pdb -debug # -debug:full -debugtype:cv,fixup - - # - # End extra feature include -*************** -*** 761,767 **** - - if exist $(VIM).pdb del $(VIM).pdb - - if exist $(VIM).map del $(VIM).map - - if exist $(VIM).ncb del $(VIM).ncb -- - if exist gvim.exe.mnf del gvim.exe.mnf - - if exist vimrun.exe del vimrun.exe - - if exist install.exe del install.exe - - if exist uninstal.exe del uninstal.exe ---- 761,766 ---- -*************** -*** 943,949 **** - $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c - $(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c - -! $(OUTDIR)/vim.res: $(OUTDIR) gvim.exe.mnf vim.rc version.h tools.bmp tearoff.bmp \ - vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico - $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc - ---- 942,948 ---- - $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c - $(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c - -! $(OUTDIR)/vim.res: $(OUTDIR) vim.rc version.h tools.bmp tearoff.bmp \ - vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico - $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc - -*************** -*** 961,966 **** ---- 960,966 ---- - # $CFLAGS may contain backslashes and double quotes, escape them both. - E0_CFLAGS = $(CFLAGS:\=\\) - E_CFLAGS = $(E0_CFLAGS:"=\") -+ # ") stop the string - - $(PATHDEF_SRC): auto - @echo creating $(PATHDEF_SRC) -*************** -*** 972,1001 **** - @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(LINKARGS2:\=\\)"; >> $(PATHDEF_SRC) - @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC) - @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC) -- -- gvim.exe.mnf: auto -- @echo ^ >$@ -- @echo ^ >>$@ -- @echo ^>$@ -- @echo processorArchitecture="$(ASSEMBLY_ARCHITECTURE)" >>$@ -- @echo version="7.0.0.0" >>$@ -- @echo type="win32" >>$@ -- @echo name="Vim" >>$@ -- @echo /^> >>$@ -- @echo ^Vi Improved - A Text Editor^ >>$@ -- @echo ^ >>$@ -- @echo ^ >>$@ -- @echo ^>$@ -- @echo type="win32" >>$@ -- @echo name="Microsoft.Windows.Common-Controls" >>$@ -- @echo version="6.0.0.0" >>$@ -- @echo publicKeyToken="6595b64144ccf1df" >>$@ -- @echo language="*" >>$@ -- @echo processorArchitecture="$(ASSEMBLY_ARCHITECTURE)" >>$@ -- @echo /^> >>$@ -- @echo ^ >>$@ -- @echo ^ >>$@ -- @echo ^ >>$@ - - auto: - if not exist auto/nul mkdir auto ---- 972,977 ---- -*** ../vim-7.0.197/src/eval.c Sun Jan 14 15:27:05 2007 ---- src/eval.c Wed Feb 7 05:01:29 2007 -*************** -*** 1004,1010 **** - if (ga_grow(&redir_ga, (int)len) == OK) - { - mch_memmove((char *)redir_ga.ga_data + redir_ga.ga_len, value, len); -! redir_ga.ga_len += len; - } - else - var_redir_stop(); ---- 1004,1010 ---- - if (ga_grow(&redir_ga, (int)len) == OK) - { - mch_memmove((char *)redir_ga.ga_data + redir_ga.ga_len, value, len); -! redir_ga.ga_len += (int)len; - } - else - var_redir_stop(); -*************** -*** 10307,10313 **** - win_T *wp; - #endif - -! rettv->vval.v_number = FALSE; - #ifdef FEAT_QUICKFIX - if (rettv_list_alloc(rettv) == OK) - { ---- 10307,10313 ---- - win_T *wp; - #endif - -! rettv->vval.v_number = 0; - #ifdef FEAT_QUICKFIX - if (rettv_list_alloc(rettv) == OK) - { -*** ../vim-7.0.197/src/gvim.exe.mnf Sun Jun 13 17:13:20 2004 ---- src/gvim.exe.mnf Wed Feb 7 05:06:52 2007 -*************** -*** 1,8 **** - - - ---- 1,8 ---- - - - -*************** -*** 15,21 **** - version="6.0.0.0" - publicKeyToken="6595b64144ccf1df" - language="*" -! processorArchitecture="X86" - /> - - ---- 15,21 ---- - version="6.0.0.0" - publicKeyToken="6595b64144ccf1df" - language="*" -! processorArchitecture="*" - /> - - -*** ../vim-7.0.197/src/misc2.c Tue Feb 20 03:01:33 2007 ---- src/misc2.c Wed Feb 7 05:00:13 2007 -*************** -*** 1246,1252 **** - char_u *escaped_string; - - /* First count the number of extra bytes required. */ -! length = STRLEN(string) + 3; /* two quotes and the trailing NUL */ - for (p = string; *p != NUL; mb_ptr_adv(p)) - { - # if defined(WIN32) || defined(WIN16) || defined(DOS) ---- 1246,1252 ---- - char_u *escaped_string; - - /* First count the number of extra bytes required. */ -! length = (unsigned)STRLEN(string) + 3; /* two quotes and a trailing NUL */ - for (p = string; *p != NUL; mb_ptr_adv(p)) - { - # if defined(WIN32) || defined(WIN16) || defined(DOS) -*************** -*** 3718,3724 **** - * - * ATTENTION: - * ========== -! * Also we use an allocated search context here, this functions ARE NOT - * thread-safe!!!!! - * - * To minimize parameter passing (or because I'm to lazy), only the ---- 3718,3724 ---- - * - * ATTENTION: - * ========== -! * Also we use an allocated search context here, this functions are NOT - * thread-safe!!!!! - * - * To minimize parameter passing (or because I'm to lazy), only the -*** ../vim-7.0.197/src/version.c Tue Feb 20 03:01:33 2007 ---- src/version.c Tue Feb 20 03:14:39 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 198, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -155. You forget to eat because you're too busy surfing the net. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.199 b/7.0.199 deleted file mode 100644 index 16977dad..00000000 --- a/7.0.199 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.199 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.199 -Problem: When using multi-byte characters the combination of completion and - formatting may result in a wrong cursor position. -Solution: Don't decrement the cursor column, use dec_cursor(). (Yukihiro - Nakadaira) Also check for the column to be zero. -Files: src/edit.c - - -*** ../vim-7.0.198/src/edit.c Sun Feb 4 02:37:40 2007 ---- src/edit.c Fri Feb 16 01:15:49 2007 -*************** -*** 3448,3458 **** - } - else - { - /* put the cursor on the last char, for 'tw' formatting */ -! curwin->w_cursor.col--; - if (stop_arrow() == OK) - insertchar(NUL, 0, -1); -! curwin->w_cursor.col++; - } - - auto_format(FALSE, TRUE); ---- 3449,3464 ---- - } - else - { -+ int prev_col = curwin->w_cursor.col; -+ - /* put the cursor on the last char, for 'tw' formatting */ -! if (prev_col > 0) -! dec_cursor(); - if (stop_arrow() == OK) - insertchar(NUL, 0, -1); -! if (prev_col > 0 -! && ml_get_curline()[curwin->w_cursor.col] != NUL) -! inc_cursor(); - } - - auto_format(FALSE, TRUE); -*** ../vim-7.0.198/src/version.c Tue Feb 20 03:18:20 2007 ---- src/version.c Tue Feb 20 03:32:12 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 199, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -156. You forget your friend's name but not her e-mail address. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.200 b/7.0.200 deleted file mode 100644 index d48d5873..00000000 --- a/7.0.200 +++ /dev/null @@ -1,100 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.200 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.200 -Problem: Memory leaks when out of memory. -Solution: Free the memory. -Files: src/edit.c, src/diff.c - - -*** ../vim-7.0.199/src/edit.c Tue Feb 20 03:33:51 2007 ---- src/edit.c Fri Feb 16 01:15:49 2007 -*************** -*** 2698,2703 **** ---- 2698,2704 ---- - buf = alloc(LSIZE); - if (buf == NULL) - return; -+ regmatch.regprog = NULL; /* so that we can goto theend */ - - /* If 'infercase' is set, don't use 'smartcase' here */ - save_p_scs = p_scs; -*************** -*** 2712,2724 **** - char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); - - if (pat_esc == NULL) -! return ; - i = (int)STRLEN(pat_esc) + 10; - ptr = alloc(i); - if (ptr == NULL) - { - vim_free(pat_esc); -! return; - } - vim_snprintf((char *)ptr, i, "^\\s*\\zs\\V%s", pat_esc); - regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); ---- 2713,2725 ---- - char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); - - if (pat_esc == NULL) -! goto theend ; - i = (int)STRLEN(pat_esc) + 10; - ptr = alloc(i); - if (ptr == NULL) - { - vim_free(pat_esc); -! goto theend; - } - vim_snprintf((char *)ptr, i, "^\\s*\\zs\\V%s", pat_esc); - regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); -*** ../vim-7.0.199/src/diff.c Sun Apr 23 00:23:34 2006 ---- src/diff.c Fri Feb 16 01:18:41 2007 -*************** -*** 1822,1835 **** ---- 1822,1841 ---- - - idx = diff_buf_idx(wp->w_buffer); - if (idx == DB_COUNT) /* cannot happen */ -+ { -+ vim_free(line_org); - return FALSE; -+ } - - /* search for a change that includes "lnum" in the list of diffblocks. */ - for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next) - if (lnum <= dp->df_lnum[idx] + dp->df_count[idx]) - break; - if (dp == NULL || diff_check_sanity(curtab, dp) == FAIL) -+ { -+ vim_free(line_org); - return FALSE; -+ } - - off = lnum - dp->df_lnum[idx]; - -*** ../vim-7.0.199/src/version.c Tue Feb 20 03:33:51 2007 ---- src/version.c Tue Feb 20 03:48:16 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 200, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -157. You fum through a magazine, you first check to see if it has a web - address. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.201 b/7.0.201 deleted file mode 100644 index 65533cf0..00000000 --- a/7.0.201 +++ /dev/null @@ -1,81 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.201 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.201 -Problem: Message for ":diffput" about buffer not being in diff mode may be - wrong. -Solution: Check for buffer in diff mode but not modifiable. -Files: src/diff.c - - -*** ../vim-7.0.200/src/diff.c Tue Feb 20 03:52:04 2007 ---- src/diff.c Fri Feb 16 01:18:41 2007 -*************** -*** 2014,2019 **** ---- 2014,2020 ---- - int start_skip, end_skip; - int new_count; - int buf_empty; -+ int found_not_ma = FALSE; - - /* Find the current buffer in the list of diff buffers. */ - idx_cur = diff_buf_idx(curbuf); -*************** -*** 2028,2040 **** - /* No argument: Find the other buffer in the list of diff buffers. */ - for (idx_other = 0; idx_other < DB_COUNT; ++idx_other) - if (curtab->tp_diffbuf[idx_other] != curbuf -! && curtab->tp_diffbuf[idx_other] != NULL -! && (eap->cmdidx != CMD_diffput -! || curtab->tp_diffbuf[idx_other]->b_p_ma)) -! break; - if (idx_other == DB_COUNT) - { -! EMSG(_("E100: No other buffer in diff mode")); - return; - } - ---- 2029,2047 ---- - /* No argument: Find the other buffer in the list of diff buffers. */ - for (idx_other = 0; idx_other < DB_COUNT; ++idx_other) - if (curtab->tp_diffbuf[idx_other] != curbuf -! && curtab->tp_diffbuf[idx_other] != NULL) -! { -! if (eap->cmdidx != CMD_diffput -! || curtab->tp_diffbuf[idx_other]->b_p_ma) -! break; -! found_not_ma = TRUE; -! } - if (idx_other == DB_COUNT) - { -! if (found_not_ma) -! EMSG(_("E793: No other buffer in diff mode is modifiable")); -! else -! EMSG(_("E100: No other buffer in diff mode")); - return; - } - -*** ../vim-7.0.200/src/version.c Tue Feb 20 03:52:04 2007 ---- src/version.c Tue Feb 20 04:46:00 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 201, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -159. You get excited whenever discussing your hard drive. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.202 b/7.0.202 deleted file mode 100644 index f873bffd..00000000 --- a/7.0.202 +++ /dev/null @@ -1,320 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.202 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.202 -Problem: Problems on Tandem systems while compiling and at runtime. -Solution: Recognize root uid is 65535. Check select() return value for it - not being supported. Avoid wrong function prototypes. Mention - use of -lfloss. (Matthew Woehlke) -Files: src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c, - src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c, - src/vim.h - - -*** ../vim-7.0.201/src/Makefile Tue Feb 20 04:46:41 2007 ---- src/Makefile Tue Feb 27 10:24:05 2007 -*************** -*** 201,206 **** ---- 201,207 ---- - #SunOS 4.1.x +X11 -GUI 5.1b (J) Bram Moolenaar - #SunOS 4.1.3_U1 (sun4c) gcc +X11 +GUI Athena 5.0w (J) Darren Hiebert - #SUPER-UX 6.2 (NEC SX-4) cc +X11R6 Motif,Athena4.6b (P) Lennart Schultz -+ #Tandem/NSK (c) Matthew Woehlke - #Unisys 6035 cc +X11 Motif 5.3 (8) Glauber Ribeiro - #ESIX V4.2 cc +X11 6.0 (a) Reinhard Wobst - #Mac OS X 10.[23] gcc Carbon 6.2 (x) Bram Moolenaar -*************** -*** 251,256 **** ---- 252,258 ---- - # (a) See line with EXTRA_LIBS below. - # (b) When using gcc with the Solaris linker, make sure you don't use GNU - # strip, otherwise the binary may not run: "Cannot find ELF". -+ # (c) Add -lfloss to EXTRA_LIBS, see below. - # (x) When you get warnings for precompiled header files, run - # "sudo fixPrecomps". Also see CONF_OPT_DARWIN below. - # }}} -*************** -*** 793,798 **** ---- 796,804 ---- - - ### (a) ESIX V4.2 (Reinhard Wobst) - #EXTRA_LIBS = -lnsl -lsocket -lgen -lXIM -lXmu -lXext -+ -+ ### (c) Tandem/NSK (Matthew Woehlke) -+ #EXTRA_LIBS = -lfloss - - ### If you want to use ncurses library instead of the automatically found one - ### after changing this, you need to do "make reconfig". -*** ../vim-7.0.201/src/ex_cmds.c Tue Feb 13 03:49:01 2007 ---- src/ex_cmds.c Tue Feb 20 05:20:55 2007 -*************** -*** 1772,1778 **** - */ - st_old.st_dev = st_old.st_ino = 0; - st_old.st_mode = 0600; -! if (mch_stat((char *)fname, &st_old) == 0 && getuid() - && !(st_old.st_uid == getuid() - ? (st_old.st_mode & 0200) - : (st_old.st_gid == getgid() ---- 1772,1779 ---- - */ - st_old.st_dev = st_old.st_ino = 0; - st_old.st_mode = 0600; -! if (mch_stat((char *)fname, &st_old) == 0 -! && getuid() != ROOT_UID - && !(st_old.st_uid == getuid() - ? (st_old.st_mode & 0200) - : (st_old.st_gid == getgid() -*** ../vim-7.0.201/src/fileio.c Tue Jan 16 21:31:38 2007 ---- src/fileio.c Wed Feb 21 06:04:39 2007 -*************** -*** 1122,1128 **** - if (!skip_read) - { - #if SIZEOF_INT > 2 -! # ifdef __TANDEM - size = SSIZE_MAX; /* use max I/O size, 52K */ - # else - size = 0x10000L; /* use buffer >= 64K */ ---- 1122,1128 ---- - if (!skip_read) - { - #if SIZEOF_INT > 2 -! # if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L) - size = SSIZE_MAX; /* use max I/O size, 52K */ - # else - size = 0x10000L; /* use buffer >= 64K */ -*** ../vim-7.0.201/src/main.c Tue Nov 7 22:41:37 2006 ---- src/main.c Tue Feb 20 05:22:33 2007 -*************** -*** 3280,3286 **** - # ifdef FEAT_GUI - (gui.in_use - # ifdef UNIX -! && getuid() != 0 - # endif - ) || - # endif ---- 3280,3286 ---- - # ifdef FEAT_GUI - (gui.in_use - # ifdef UNIX -! && getuid() != ROOT_UID - # endif - ) || - # endif -*** ../vim-7.0.201/src/osdef1.h.in Sun Jun 13 21:14:18 2004 ---- src/osdef1.h.in Tue Feb 20 05:13:23 2007 -*************** -*** 98,104 **** ---- 98,106 ---- - - #ifndef USE_SYSTEM - extern int fork __ARGS((void)); -+ # ifndef __TANDEM - extern int execvp __ARGS((const char *, const char **)); -+ # endif - extern int wait __ARGS((int *)); /* will this break things ...? */ - extern int waitpid __ARGS((pid_t, int *, int)); - #endif -*************** -*** 123,132 **** - - extern int kill __ARGS((int, int)); - - extern int access __ARGS((char *, int)); - extern int fsync __ARGS((int)); - extern int fchown __ARGS((int, int, int)); -! #if defined(HAVE_GETCWD) && !defined(sun) - extern char *getcwd __ARGS((char *, int)); - #else - extern char *getwd __ARGS((char *)); ---- 125,136 ---- - - extern int kill __ARGS((int, int)); - -+ #ifndef __TANDEM - extern int access __ARGS((char *, int)); -+ #endif - extern int fsync __ARGS((int)); - extern int fchown __ARGS((int, int, int)); -! #if defined(HAVE_GETCWD) && !defined(sun) && !defined(__TANDEM) - extern char *getcwd __ARGS((char *, int)); - #else - extern char *getwd __ARGS((char *)); -*** ../vim-7.0.201/src/osdef2.h.in Sun Jun 13 17:19:40 2004 ---- src/osdef2.h.in Tue Feb 20 05:14:50 2007 -*************** -*** 11,23 **** ---- 11,29 ---- - extern int setenv __ARGS((char *, char *, int)); - extern int putenv __ARGS((const char *)); - -+ #ifndef __TANDEM - extern int gethostname __ARGS((char *, int)); -+ #endif - extern void perror __ARGS((char *)); - -+ #ifndef __TANDEM - extern int sleep __ARGS((int)); -+ #endif - extern int usleep __ARGS((unsigned int)); - extern unsigned int alarm __ARGS((unsigned int)); -+ #ifndef __TANDEM - extern int chdir __ARGS((char *)); -+ #endif - extern int fchdir __ARGS((int)); - #ifndef stat /* could be redefined to stat64() */ - extern int stat __ARGS((const char *, struct stat *)); -*************** -*** 28,35 **** ---- 34,43 ---- - extern int fstat __ARGS((int, struct stat *)); - extern int open __ARGS((const char *, int, ...)); - extern int close __ARGS((int)); -+ #ifndef __TANDEM - extern int read __ARGS((int, char *, size_t)); - extern int write __ARGS((int, char *, size_t)); -+ #endif - extern int pipe __ARGS((int *)); - extern off_t lseek __ARGS((int, off_t, int)); - extern void sync __ARGS((void)); -*** ../vim-7.0.201/src/os_unix.c Tue Jan 9 15:15:36 2007 ---- src/os_unix.c Tue Feb 20 05:17:23 2007 -*************** -*** 25,31 **** - * Don't use it for the Mac, it causes a warning for precompiled headers. - * TODO: use a configure check for precompiled headers? - */ -! #ifndef __APPLE__ - # define select select_declared_wrong - #endif - ---- 25,31 ---- - * Don't use it for the Mac, it causes a warning for precompiled headers. - * TODO: use a configure check for precompiled headers? - */ -! #if !defined(__APPLE__) && !defined(__TANDEM) - # define select select_declared_wrong - #endif - -*************** -*** 48,56 **** - /* - * Use this prototype for select, some include files have a wrong prototype - */ -! #undef select -! #ifdef __BEOS__ -! # define select beos_select - #endif - - #if defined(HAVE_SELECT) ---- 48,58 ---- - /* - * Use this prototype for select, some include files have a wrong prototype - */ -! #ifndef __TANDEM -! # undef select -! # ifdef __BEOS__ -! # define select beos_select -! # endif - #endif - - #if defined(HAVE_SELECT) -*************** -*** 4770,4775 **** ---- 4772,4785 ---- - # else - ret = select(maxfd + 1, &rfds, NULL, &efds, tvp); - # endif -+ # ifdef __TANDEM -+ if (ret == -1 && errno == ENOTSUP) -+ { -+ FD_ZERO(&rfds); -+ FD_ZERO(&efds); -+ ret = 0; -+ } -+ #endif - # ifdef FEAT_MZSCHEME - if (ret == 0 && mzquantum_used) - /* loop if MzThreads must be scheduled and timeout occured */ -*** ../vim-7.0.201/src/pty.c Wed Nov 1 18:12:46 2006 ---- src/pty.c Tue Feb 20 05:21:22 2007 -*************** -*** 330,336 **** - if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0) - return -1; - strncpy(TtyName, ttyname(f), sizeof(TtyName)); -! if (geteuid() && mch_access(TtyName, R_OK | W_OK)) - { - close(f); - return -1; ---- 330,336 ---- - if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0) - return -1; - strncpy(TtyName, ttyname(f), sizeof(TtyName)); -! if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK)) - { - close(f); - return -1; -*************** -*** 394,400 **** - q[0] = *l; - q[1] = *d; - #ifndef MACOS -! if (geteuid() && mch_access(TtyName, R_OK | W_OK)) - { - close(f); - continue; ---- 394,400 ---- - q[0] = *l; - q[1] = *d; - #ifndef MACOS -! if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK)) - { - close(f); - continue; -*** ../vim-7.0.201/src/vim.h Tue Jan 16 21:31:38 2007 ---- src/vim.h Tue Feb 20 05:23:47 2007 -*************** -*** 50,55 **** ---- 50,64 ---- - # endif - #endif - -+ /* user ID of root is usually zero, but not for everybody */ -+ #ifdef __TANDEM -+ # define _TANDEM_SOURCE -+ # include -+ # define ROOT_UID 65535 -+ #else -+ # define ROOT_UID 0 -+ #endif -+ - #ifdef __EMX__ /* hand-edited config.h for OS/2 with EMX */ - # include "os_os2_cfg.h" - #endif -*** ../vim-7.0.201/src/version.c Tue Feb 20 04:46:32 2007 ---- src/version.c Tue Feb 27 16:44:14 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 202, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -214. Your MCI "Circle of Friends" are all Hayes-compatible. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.203 b/7.0.203 deleted file mode 100644 index 0bbcbb57..00000000 --- a/7.0.203 +++ /dev/null @@ -1,193 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.203 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.203 -Problem: 0x80 characters in a register are not handled correctly for the - "@" command. -Solution: Escape CSI and 0x80 characters. (Yukihiro Nakadaira) -Files: src/ops.c - - -*** ../vim-7.0.202/src/ops.c Tue Nov 7 18:43:10 2006 ---- src/ops.c Tue Feb 27 17:24:02 2007 -*************** -*** 96,102 **** - #endif - static int stuff_yank __ARGS((int, char_u *)); - static void put_reedit_in_typebuf __ARGS((int silent)); -! static int put_in_typebuf __ARGS((char_u *s, int colon, int silent)); - static void stuffescaped __ARGS((char_u *arg, int literally)); - #ifdef FEAT_MBYTE - static void mb_adjust_opend __ARGS((oparg_T *oap)); ---- 96,103 ---- - #endif - static int stuff_yank __ARGS((int, char_u *)); - static void put_reedit_in_typebuf __ARGS((int silent)); -! static int put_in_typebuf __ARGS((char_u *s, int esc, int colon, -! int silent)); - static void stuffescaped __ARGS((char_u *arg, int literally)); - #ifdef FEAT_MBYTE - static void mb_adjust_opend __ARGS((oparg_T *oap)); -*************** -*** 1174,1182 **** - /* When in Visual mode "'<,'>" will be prepended to the command. - * Remove it when it's already there. */ - if (VIsual_active && STRNCMP(p, "'<,'>", 5) == 0) -! retval = put_in_typebuf(p + 5, TRUE, silent); - else -! retval = put_in_typebuf(p, TRUE, silent); - } - vim_free(p); - } ---- 1175,1183 ---- - /* When in Visual mode "'<,'>" will be prepended to the command. - * Remove it when it's already there. */ - if (VIsual_active && STRNCMP(p, "'<,'>", 5) == 0) -! retval = put_in_typebuf(p + 5, TRUE, TRUE, silent); - else -! retval = put_in_typebuf(p, TRUE, TRUE, silent); - } - vim_free(p); - } -*************** -*** 1187,1193 **** - p = get_expr_line(); - if (p == NULL) - return FAIL; -! retval = put_in_typebuf(p, colon, silent); - vim_free(p); - } - #endif ---- 1188,1194 ---- - p = get_expr_line(); - if (p == NULL) - return FAIL; -! retval = put_in_typebuf(p, TRUE, colon, silent); - vim_free(p); - } - #endif -*************** -*** 1199,1205 **** - EMSG(_(e_noinstext)); - return FAIL; - } -! retval = put_in_typebuf(p, colon, silent); - vim_free(p); - } - else ---- 1200,1206 ---- - EMSG(_(e_noinstext)); - return FAIL; - } -! retval = put_in_typebuf(p, FALSE, colon, silent); - vim_free(p); - } - else -*************** -*** 1217,1222 **** ---- 1218,1225 ---- - put_reedit_in_typebuf(silent); - for (i = y_current->y_size; --i >= 0; ) - { -+ char_u *escaped; -+ - /* insert NL between lines and after last line if type is MLINE */ - if (y_current->y_type == MLINE || i < y_current->y_size - 1 - || addcr) -*************** -*** 1224,1231 **** - if (ins_typebuf((char_u *)"\n", remap, 0, TRUE, silent) == FAIL) - return FAIL; - } -! if (ins_typebuf(y_current->y_array[i], remap, 0, TRUE, silent) -! == FAIL) - return FAIL; - if (colon && ins_typebuf((char_u *)":", remap, 0, TRUE, silent) - == FAIL) ---- 1227,1238 ---- - if (ins_typebuf((char_u *)"\n", remap, 0, TRUE, silent) == FAIL) - return FAIL; - } -! escaped = vim_strsave_escape_csi(y_current->y_array[i]); -! if (escaped == NULL) -! return FAIL; -! retval = ins_typebuf(escaped, remap, 0, TRUE, silent); -! vim_free(escaped); -! if (retval == FAIL) - return FAIL; - if (colon && ins_typebuf((char_u *)":", remap, 0, TRUE, silent) - == FAIL) -*************** -*** 1265,1272 **** - } - - static int -! put_in_typebuf(s, colon, silent) - char_u *s; - int colon; /* add ':' before the line */ - int silent; - { ---- 1272,1280 ---- - } - - static int -! put_in_typebuf(s, esc, colon, silent) - char_u *s; -+ int esc; /* Escape CSI characters */ - int colon; /* add ':' before the line */ - int silent; - { -*************** -*** 1276,1282 **** - if (colon) - retval = ins_typebuf((char_u *)"\n", REMAP_YES, 0, TRUE, silent); - if (retval == OK) -! retval = ins_typebuf(s, REMAP_YES, 0, TRUE, silent); - if (colon && retval == OK) - retval = ins_typebuf((char_u *)":", REMAP_YES, 0, TRUE, silent); - return retval; ---- 1284,1303 ---- - if (colon) - retval = ins_typebuf((char_u *)"\n", REMAP_YES, 0, TRUE, silent); - if (retval == OK) -! { -! char_u *p; -! -! if (esc) -! p = vim_strsave_escape_csi(s); -! else -! p = s; -! if (p == NULL) -! retval = FAIL; -! else -! retval = ins_typebuf(p, REMAP_YES, 0, TRUE, silent); -! if (esc) -! vim_free(p); -! } - if (colon && retval == OK) - retval = ins_typebuf((char_u *)":", REMAP_YES, 0, TRUE, silent); - return retval; -*** ../vim-7.0.202/src/version.c Tue Feb 27 16:51:07 2007 ---- src/version.c Tue Feb 27 17:22:13 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 203, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -215. Your mouse-clicking forearm rivals Popeye's. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.204 b/7.0.204 deleted file mode 100644 index 44b160dd..00000000 --- a/7.0.204 +++ /dev/null @@ -1,61 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.204 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.204 -Problem: Cscope: Parsing matches for listing isn't done properly. -Solution: Check for line number being found. (Yu Zhao) -Files: src/if_cscope.c - - -*** ../vim-7.0.203/src/if_cscope.c Tue Jan 16 15:17:43 2007 ---- src/if_cscope.c Tue Feb 27 17:56:49 2007 -*************** -*** 1932,1945 **** - if ((fname = strtok(NULL, (const char *)"\t")) == NULL) - continue; - if ((lno = strtok(NULL, (const char *)"\t")) == NULL) -! { -! /* if NULL, then no "extra", although in cscope's case, there -! * should always be "extra". -! */ -! extra = NULL; -! } -! -! extra = lno + strlen(lno) + 1; - - lno[strlen(lno)-2] = '\0'; /* ignore ;" at the end */ - ---- 1932,1939 ---- - if ((fname = strtok(NULL, (const char *)"\t")) == NULL) - continue; - if ((lno = strtok(NULL, (const char *)"\t")) == NULL) -! continue; -! extra = strtok(NULL, (const char *)"\t"); - - lno[strlen(lno)-2] = '\0'; /* ignore ;" at the end */ - -*** ../vim-7.0.203/src/version.c Tue Feb 27 17:25:28 2007 ---- src/version.c Tue Feb 27 18:03:48 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 204, - /**/ - --- -I noticed my daughter's Disney-net password on a sticky note: -"MickeyMinnieGoofyPluto". I asked her why it was so long. -"Because they say it has to have at least four characters." - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.205 b/7.0.205 deleted file mode 100644 index ab9dbcfe..00000000 --- a/7.0.205 +++ /dev/null @@ -1,56 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.205 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.205 (after 7.0.203) -Problem: Can't compile. -Solution: Always include the vim_strsave_escape_csi function. -Files: src/getchar.c - - -*** ../vim-7.0.204/src/getchar.c Tue Dec 5 21:45:20 2006 ---- src/getchar.c Tue Feb 27 23:04:38 2007 -*************** -*** 4401,4407 **** - } - #endif - -- #if defined(FEAT_EVAL) || defined(PROTO) - /* - * Copy "p" to allocated memory, escaping K_SPECIAL and CSI so that the result - * can be put in the typeahead buffer. ---- 4405,4410 ---- -*************** -*** 4440,4446 **** - } - return res; - } -- #endif - - /* - * Write map commands for the current mappings to an .exrc file. ---- 4443,4448 ---- -*** ../vim-7.0.204/src/version.c Tue Feb 27 18:11:55 2007 ---- src/version.c Tue Feb 27 23:05:15 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 205, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -218. Your spouse hands you a gift wrapped magnet with your PC's name - on it and you accuse him or her of genocide. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.206 b/7.0.206 deleted file mode 100644 index 3a42e4e9..00000000 --- a/7.0.206 +++ /dev/null @@ -1,66 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.206 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.206 (after 7.0.058) -Problem: Some characters of the "gb18030" encoding are not handled - properly. -Solution: Do not use "cp936" as an alias for "gb18030" encoding. Instead - initialize 'encoding' to "cp936". -Files: src/mbyte.c, src/option.c - - -*** ../vim-7.0.205/src/mbyte.c Tue Dec 5 22:09:02 2006 ---- src/mbyte.c Tue Feb 27 16:27:44 2007 -*************** -*** 364,370 **** - {"949", IDX_CP949}, - {"936", IDX_CP936}, - {"gbk", IDX_CP936}, -- {"gb18030", IDX_CP936}, /* only 99% the same */ - {"950", IDX_CP950}, - {"eucjp", IDX_EUC_JP}, - {"unix-jis", IDX_EUC_JP}, ---- 364,369 ---- -*** ../vim-7.0.205/src/option.c Tue Oct 17 18:36:03 2006 ---- src/option.c Thu Mar 1 21:02:06 2007 -*************** -*** 3290,3295 **** ---- 3290,3303 ---- - * If not, go back to the default "latin1". */ - save_enc = p_enc; - p_enc = p; -+ if (STRCMP(p_enc, "gb18030") == 0) -+ { -+ /* We don't support "gb18030", but "cp936" is a good substitute -+ * for practical purposes, thus use that. It's not an alias to -+ * still support conversion between gb18030 and utf-8. */ -+ p_enc = vim_strsave((char_u *)"cp936"); -+ vim_free(p); -+ } - if (mb_init() == NULL) - { - opt_idx = findoption((char_u *)"encoding"); -*** ../vim-7.0.205/src/version.c Tue Feb 27 23:06:44 2007 ---- src/version.c Fri Mar 2 19:58:04 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 206, - /**/ - --- -You can tune a file system, but you can't tuna fish - -- man tunefs - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.207 b/7.0.207 deleted file mode 100644 index b91d21cb..00000000 --- a/7.0.207 +++ /dev/null @@ -1,101 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.207 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.207 -Problem: After patch 2.0.203 CSI and K_SPECIAL characters are escaped when - recorded and then again when the register is executed. -Solution: Remove escaping before putting the recorded characters in a - register. (Yukihiro Nakadaira) -Files: src/getchar.c, src/ops.c, src/proto/getchar.pro - - -*** ../vim-7.0.206/src/getchar.c Tue Feb 27 23:06:44 2007 ---- src/getchar.c Sun Mar 4 21:19:50 2007 -*************** -*** 4438,4443 **** ---- 4442,4476 ---- - *d = NUL; - } - return res; -+ } -+ -+ /* -+ * Remove escaping from CSI and K_SPECIAL characters. Reverse of -+ * vim_strsave_escape_csi(). Works in-place. -+ */ -+ void -+ vim_unescape_csi(p) -+ char_u *p; -+ { -+ char_u *s = p, *d = p; -+ -+ while (*s != NUL) -+ { -+ if (s[0] == K_SPECIAL && s[1] == KS_SPECIAL && s[2] == KE_FILLER) -+ { -+ *d++ = K_SPECIAL; -+ s += 3; -+ } -+ else if ((s[0] == K_SPECIAL || s[0] == CSI) -+ && s[1] == KS_EXTRA && s[2] == (int)KE_CSI) -+ { -+ *d++ = CSI; -+ s += 3; -+ } -+ else -+ *d++ = *s++; -+ } -+ *d = NUL; - } - - /* -*** ../vim-7.0.206/src/ops.c Tue Feb 27 17:25:28 2007 ---- src/ops.c Sun Mar 4 21:23:47 2007 -*************** -*** 1042,1047 **** ---- 1042,1050 ---- - retval = FAIL; - else - { -+ /* Remove escaping for CSI and K_SPECIAL in multi-byte chars. */ -+ vim_unescape_csi(p); -+ - /* - * We don't want to change the default register here, so save and - * restore the current register name. -*** ../vim-7.0.206/src/proto/getchar.pro Sun Apr 30 20:38:15 2006 ---- src/proto/getchar.pro Sun Mar 4 21:19:41 2007 -*************** -*** 56,61 **** ---- 56,62 ---- - extern int ExpandMappings __ARGS((regmatch_T *regmatch, int *num_file, char_u ***file)); - extern int check_abbr __ARGS((int c, char_u *ptr, int col, int mincol)); - extern char_u *vim_strsave_escape_csi __ARGS((char_u *p)); -+ extern void vim_unescape_csi __ARGS((char_u *p)); - extern int makemap __ARGS((FILE *fd, buf_T *buf)); - extern int put_escstr __ARGS((FILE *fd, char_u *strstart, int what)); - extern void check_map_keycodes __ARGS((void)); -*** ../vim-7.0.206/src/version.c Fri Mar 2 20:00:06 2007 ---- src/version.c Sun Mar 4 21:24:26 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 207, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -251. You've never seen your closest friends who usually live WAY too far away. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.208 b/7.0.208 deleted file mode 100644 index 28d46f0c..00000000 --- a/7.0.208 +++ /dev/null @@ -1,350 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.208 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.208 (after 7.0.171 and 7.0.180) -Problem: VMS: changes to path handling cause more trouble than they solve. -Solution: Revert changes. -Files: src/buffer.c, src/memline.c, src/os_unix.c - - -*** ../vim-7.0.207/src/buffer.c Tue Nov 28 17:44:51 2006 ---- src/buffer.c Mon Mar 5 21:34:41 2007 -*************** -*** 4145,4157 **** - /* - * Force expanding the path always for Unix, because symbolic links may - * mess up the full path name, even though it starts with a '/'. -- * Also expand always for VMS, it may have alternate paths that need to be -- * resolved. - * Also expand when there is ".." in the file name, try to remove it, - * because "c:/src/../README" is equal to "c:/README". - * For MS-Windows also expand names like "longna~1" to "longname". - */ -! #if defined(UNIX) || defined(VMS) - return FullName_save(fname, TRUE); - #else - if (!vim_isAbsName(fname) || strstr((char *)fname, "..") != NULL ---- 4145,4155 ---- - /* - * Force expanding the path always for Unix, because symbolic links may - * mess up the full path name, even though it starts with a '/'. - * Also expand when there is ".." in the file name, try to remove it, - * because "c:/src/../README" is equal to "c:/README". - * For MS-Windows also expand names like "longna~1" to "longname". - */ -! #ifdef UNIX - return FullName_save(fname, TRUE); - #else - if (!vim_isAbsName(fname) || strstr((char *)fname, "..") != NULL -*** ../vim-7.0.207/src/memline.c Tue Feb 13 04:03:05 2007 ---- src/memline.c Mon Mar 5 21:34:41 2007 -*************** -*** 3592,3600 **** - #else - (buf->b_p_sn || buf->b_shortname), - #endif -! #if defined(VMS) || defined(RISCOS) -! /* Avoid problems if fname has special chars, eg . -! * For VMS always use full path for swapfile. */ - ffname, - #else - # ifdef HAVE_READLINK ---- 3592,3599 ---- - #else - (buf->b_p_sn || buf->b_shortname), - #endif -! #ifdef RISCOS -! /* Avoid problems if fname has special chars, eg */ - ffname, - #else - # ifdef HAVE_READLINK -*** ../vim-7.0.207/src/os_unix.c Tue Feb 27 16:51:07 2007 ---- src/os_unix.c Mon Mar 5 21:40:31 2007 -*************** -*** 2214,2262 **** - int len; - int force; /* also expand when already absolute path */ - { -- #ifdef VMS -- /* -- * VMS does this in a completely different way. -- * -- * By default a file found in a complex path is written to the first -- * directory in the path and not to the original directory. This -- * behaviour should be avoided for the existing files and we need to find -- * the exact path of the edited file. -- */ -- { -- char_u *fixed_fname = vms_fixfilename(fname); -- int fd = mch_open((char *)fixed_fname, O_RDONLY | O_EXTRA, 0); -- -- if (fd > 0) -- { -- char nbuf[MAXNAMLEN]; -- -- /* File exists, use getname() to get the real name. */ -- if (getname(fd, nbuf)) -- vim_strncpy(fixed_fname, (char_u *)nbuf, (size_t)(len - 1)); -- close(fd); -- } -- -- if (STRLEN(fixed_fname) >= len) -- return FAIL; -- -- STRCPY(buf, fixed_fname); -- } -- -- #else /* not VMS */ -- - int l; -! # ifdef OS2 - int only_drive; /* file name is only a drive letter */ -! # endif -! # ifdef HAVE_FCHDIR - int fd = -1; - static int dont_fchdir = FALSE; /* TRUE when fchdir() doesn't work */ -! # endif - char_u olddir[MAXPATHL]; - char_u *p; - int retval = OK; - - /* expand it if forced or not an absolute path */ - if (force || !mch_isFullName(fname)) - { ---- 2214,2235 ---- - int len; - int force; /* also expand when already absolute path */ - { - int l; -! #ifdef OS2 - int only_drive; /* file name is only a drive letter */ -! #endif -! #ifdef HAVE_FCHDIR - int fd = -1; - static int dont_fchdir = FALSE; /* TRUE when fchdir() doesn't work */ -! #endif - char_u olddir[MAXPATHL]; - char_u *p; - int retval = OK; - -+ #ifdef VMS -+ fname = vms_fixfilename(fname); -+ #endif -+ - /* expand it if forced or not an absolute path */ - if (force || !mch_isFullName(fname)) - { -*************** -*** 2265,2280 **** - * and then do the getwd() (and get back to where we were). - * This will get the correct path name with "../" things. - */ -! # ifdef OS2 - only_drive = 0; - if (((p = vim_strrchr(fname, '/')) != NULL) - || ((p = vim_strrchr(fname, '\\')) != NULL) - || (((p = vim_strchr(fname, ':')) != NULL) && ++only_drive)) -! # else - if ((p = vim_strrchr(fname, '/')) != NULL) -! # endif - { -! # ifdef HAVE_FCHDIR - /* - * Use fchdir() if possible, it's said to be faster and more - * reliable. But on SunOS 4 it might not work. Check this by ---- 2238,2253 ---- - * and then do the getwd() (and get back to where we were). - * This will get the correct path name with "../" things. - */ -! #ifdef OS2 - only_drive = 0; - if (((p = vim_strrchr(fname, '/')) != NULL) - || ((p = vim_strrchr(fname, '\\')) != NULL) - || (((p = vim_strchr(fname, ':')) != NULL) && ++only_drive)) -! #else - if ((p = vim_strrchr(fname, '/')) != NULL) -! #endif - { -! #ifdef HAVE_FCHDIR - /* - * Use fchdir() if possible, it's said to be faster and more - * reliable. But on SunOS 4 it might not work. Check this by -*************** -*** 2290,2303 **** - dont_fchdir = TRUE; /* don't try again */ - } - } -! # endif - - /* Only change directory when we are sure we can return to where - * we are now. After doing "su" chdir(".") might not work. */ - if ( -! # ifdef HAVE_FCHDIR - fd < 0 && -! # endif - (mch_dirname(olddir, MAXPATHL) == FAIL - || mch_chdir((char *)olddir) != 0)) - { ---- 2263,2276 ---- - dont_fchdir = TRUE; /* don't try again */ - } - } -! #endif - - /* Only change directory when we are sure we can return to where - * we are now. After doing "su" chdir(".") might not work. */ - if ( -! #ifdef HAVE_FCHDIR - fd < 0 && -! #endif - (mch_dirname(olddir, MAXPATHL) == FAIL - || mch_chdir((char *)olddir) != 0)) - { -*************** -*** 2306,2312 **** - } - else - { -! # ifdef OS2 - /* - * compensate for case where ':' from "D:" was the only - * path separator detected in the file name; the _next_ ---- 2279,2285 ---- - } - else - { -! #ifdef OS2 - /* - * compensate for case where ':' from "D:" was the only - * path separator detected in the file name; the _next_ -*************** -*** 2314,2320 **** - */ - if (only_drive) - p++; -! # endif - /* The directory is copied into buf[], to be able to remove - * the file name without changing it (could be a string in - * read-only memory) */ ---- 2287,2293 ---- - */ - if (only_drive) - p++; -! #endif - /* The directory is copied into buf[], to be able to remove - * the file name without changing it (could be a string in - * read-only memory) */ -*************** -*** 2329,2342 **** - fname = p + 1; - *buf = NUL; - } -! # ifdef OS2 - if (only_drive) - { - p--; - if (retval != FAIL) - fname--; - } -! # endif - } - } - if (mch_dirname(buf, len) == FAIL) ---- 2302,2315 ---- - fname = p + 1; - *buf = NUL; - } -! #ifdef OS2 - if (only_drive) - { - p--; - if (retval != FAIL) - fname--; - } -! #endif - } - } - if (mch_dirname(buf, len) == FAIL) -*************** -*** 2346,2359 **** - } - if (p != NULL) - { -! # ifdef HAVE_FCHDIR - if (fd >= 0) - { - l = fchdir(fd); - close(fd); - } - else -! # endif - l = mch_chdir((char *)olddir); - if (l != 0) - EMSG(_(e_prev_dir)); ---- 2319,2332 ---- - } - if (p != NULL) - { -! #ifdef HAVE_FCHDIR - if (fd >= 0) - { - l = fchdir(fd); - close(fd); - } - else -! #endif - l = mch_chdir((char *)olddir); - if (l != 0) - EMSG(_(e_prev_dir)); -*************** -*** 2362,2373 **** ---- 2335,2348 ---- - l = STRLEN(buf); - if (l >= len) - retval = FAIL; -+ #ifndef VMS - else - { - if (l > 0 && buf[l - 1] != '/' && *fname != NUL - && STRCMP(fname, ".") != 0) - STRCAT(buf, "/"); - } -+ #endif - } - - /* Catch file names which are too long. */ -*************** -*** 2377,2384 **** - /* Do not append ".", "/dir/." is equal to "/dir". */ - if (STRCMP(fname, ".") != 0) - STRCAT(buf, fname); -- -- #endif /* VMS */ - - return OK; - } ---- 2352,2357 ---- -*** ../vim-7.0.207/src/version.c Sun Mar 4 21:25:44 2007 ---- src/version.c Tue Mar 6 20:22:52 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 208, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -262. Your computer has it's own phone line - but your daughter doesn't. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.209 b/7.0.209 deleted file mode 100644 index 6d189f2e..00000000 --- a/7.0.209 +++ /dev/null @@ -1,60 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.209 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.209 -Problem: When replacing a line through Python the cursor may end up beyond - the end of the line. -Solution: Check the cursor column after replacing the line. -Files: src/if_python.c - - -*** ../vim-7.0.208/src/if_python.c Tue Oct 3 15:02:11 2006 ---- src/if_python.c Tue Mar 6 23:00:53 2007 -*************** -*** 2410,2415 **** ---- 2410,2417 ---- - curwin->w_cursor.lnum = lo; - check_cursor(); - } -+ else -+ check_cursor_col(); - changed_cline_bef_curs(); - } - invalidate_botline(); -*************** -*** 2486,2491 **** ---- 2488,2497 ---- - changed_bytes((linenr_T)n, 0); - - curbuf = savebuf; -+ -+ /* Check that the cursor is not beyond the end of the line now. */ -+ if (buf == curwin->w_buffer) -+ check_cursor_col(); - - if (PyErr_Occurred() || VimErrorCheck()) - return FAIL; -*** ../vim-7.0.208/src/version.c Tue Mar 6 20:27:03 2007 ---- src/version.c Thu Mar 8 10:16:23 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 209, - /**/ - --- -In his lifetime van Gogh painted 486 oil paintings. Oddly enough, 8975 -of them are to be found in the United States. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.210 b/7.0.210 deleted file mode 100644 index 991789a0..00000000 --- a/7.0.210 +++ /dev/null @@ -1,108 +0,0 @@ -# KH: Modified for the runtime-update patch -To: vim-dev@vim.org -Subject: patch 7.0.210 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.210 -Problem: ":cbuffer" and ":lbuffer" always fail when the buffer is modified. - (Gary Johnson) -Solution: Support adding a !. (Yegappan Lakshmanan) -Files: runtime/doc/quickfix.txt, src/ex_cmds.h - - ---- vim70/runtime/doc/quickfix.txt.210 2007-03-30 11:03:58.000000000 +0200 -+++ runtime/doc/quickfix.txt 2007-03-30 11:07:04.000000000 +0200 -@@ -178,15 +178,16 @@ - current window is used instead of the quickfix list. - - *:cb* *:cbuffer* *E681* --:cb[uffer] [bufnr] Read the error list from the current buffer. -+:cb[uffer][!] [bufnr] Read the error list from the current buffer. - When [bufnr] is given it must be the number of a - loaded buffer. That buffer will then be used instead - of the current buffer. - A range can be specified for the lines to be used. - Otherwise all lines in the buffer are used. -+ See |:cc| for [!]. - - *:lb* *:lbuffer* --:lb[uffer] [bufnr] Same as ":cbuffer", except the location list for the -+:lb[uffer][!] [bufnr] Same as ":cbuffer", except the location list for the - current window is used instead of the quickfix list. - - *:cgetb* *:cgetbuffer* ---- 178,193 ---- - current window is used instead of the quickfix list. - - *:cb* *:cbuffer* *E681* -! :cb[uffer][!] [bufnr] Read the error list from the current buffer. - When [bufnr] is given it must be the number of a - loaded buffer. That buffer will then be used instead - of the current buffer. - A range can be specified for the lines to be used. - Otherwise all lines in the buffer are used. -+ See |:cc| for [!]. - - *:lb* *:lbuffer* -! :lb[uffer][!] [bufnr] Same as ":cbuffer", except the location list for the - current window is used instead of the quickfix list. - - *:cgetb* *:cgetbuffer* -*** ../vim-7.0.209/src/ex_cmds.h Thu Jun 22 21:15:46 2006 ---- src/ex_cmds.h Wed Mar 7 21:53:27 2007 -*************** -*** 198,204 **** - EX(CMD_catch, "catch", ex_catch, - EXTRA|SBOXOK|CMDWIN), - EX(CMD_cbuffer, "cbuffer", ex_cbuffer, -! RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_cc, "cc", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cclose, "cclose", ex_cclose, ---- 198,204 ---- - EX(CMD_catch, "catch", ex_catch, - EXTRA|SBOXOK|CMDWIN), - EX(CMD_cbuffer, "cbuffer", ex_cbuffer, -! BANG|RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_cc, "cc", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cclose, "cclose", ex_cclose, -*************** -*** 498,504 **** - EX(CMD_later, "later", ex_later, - TRLBAR|EXTRA|NOSPC|CMDWIN), - EX(CMD_lbuffer, "lbuffer", ex_cbuffer, -! RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_lcd, "lcd", ex_cd, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_lchdir, "lchdir", ex_cd, ---- 498,504 ---- - EX(CMD_later, "later", ex_later, - TRLBAR|EXTRA|NOSPC|CMDWIN), - EX(CMD_lbuffer, "lbuffer", ex_cbuffer, -! BANG|RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_lcd, "lcd", ex_cd, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_lchdir, "lchdir", ex_cd, -*** ../vim-7.0.209/src/version.c Thu Mar 8 10:25:03 2007 ---- src/version.c Thu Mar 8 11:04:35 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 210, - /**/ - --- -press CTRL-ALT-DEL for more information - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.211 b/7.0.211 deleted file mode 100644 index 46c0a979..00000000 --- a/7.0.211 +++ /dev/null @@ -1,59 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.211 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.211 -Problem: With ":set cindent noai bs=0" using CTRL-U in Insert mode will - delete auto-indent. After ":set ai" it doesn't. -Solution: Also check 'cindent' being set. (Ryan Lortie) -Files: src/edit.c - - -*** ../vim-7.0.210/src/edit.c Tue Feb 20 03:52:04 2007 ---- src/edit.c Thu Mar 8 13:10:42 2007 -*************** -*** 8250,8256 **** - #endif - mincol = 0; - /* keep indent */ -! if (mode == BACKSPACE_LINE && curbuf->b_p_ai - #ifdef FEAT_RIGHTLEFT - && !revins_on - #endif ---- 8250,8261 ---- - #endif - mincol = 0; - /* keep indent */ -! if (mode == BACKSPACE_LINE -! && (curbuf->b_p_ai -! #ifdef FEAT_CINDENT -! || cindent_on() -! #endif -! ) - #ifdef FEAT_RIGHTLEFT - && !revins_on - #endif -*** ../vim-7.0.210/src/version.c Thu Mar 8 11:05:32 2007 ---- src/version.c Thu Mar 8 13:14:13 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 211, - /**/ - --- -Microsoft: "Windows NT 4.0 now has the same user-interface as Windows 95" - Windows 95: "Press CTRL-ALT-DEL to reboot" -Windows NT 4.0: "Press CTRL-ALT-DEL to login" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.212 b/7.0.212 deleted file mode 100644 index 15845c58..00000000 --- a/7.0.212 +++ /dev/null @@ -1,98 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.212 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.212 -Problem: The GUI can't be terminated with SIGTERM. (Mark Logan) -Solution: Use the signal protection in the GUI as in the console, allow - signals when waiting for 100 msec or longer. -Files: src/ui.c - - -*** ../vim-7.0.211/src/ui.c Tue Aug 29 17:28:56 2006 ---- src/ui.c Thu Mar 8 13:24:17 2007 -*************** -*** 166,175 **** - } - #endif - -! /* When doing a blocking wait there is no need for CTRL-C to interrupt -! * something, don't let it set got_int when it was mapped. */ -! if (mapped_ctrl_c && (wtime == -1 || wtime > 100L)) -! ctrl_c_interrupts = FALSE; - - #ifdef FEAT_GUI - if (gui.in_use) ---- 166,182 ---- - } - #endif - -! /* If we are going to wait for some time or block... */ -! if (wtime == -1 || wtime > 100L) -! { -! /* ... allow signals to kill us. */ -! (void)vim_handle_signal(SIGNAL_UNBLOCK); -! -! /* ... there is no need for CTRL-C to interrupt something, don't let -! * it set got_int when it was mapped. */ -! if (mapped_ctrl_c) -! ctrl_c_interrupts = FALSE; -! } - - #ifdef FEAT_GUI - if (gui.in_use) -*************** -*** 183,198 **** - else - # endif - { -- if (wtime == -1 || wtime > 100L) -- /* allow signals to kill us */ -- (void)vim_handle_signal(SIGNAL_UNBLOCK); - retval = mch_inchar(buf, maxlen, wtime, tb_change_cnt); -- if (wtime == -1 || wtime > 100L) -- /* block SIGHUP et al. */ -- (void)vim_handle_signal(SIGNAL_BLOCK); - } - #endif - - ctrl_c_interrupts = TRUE; - - #ifdef NO_CONSOLE_INPUT ---- 190,203 ---- - else - # endif - { - retval = mch_inchar(buf, maxlen, wtime, tb_change_cnt); - } - #endif - -+ if (wtime == -1 || wtime > 100L) -+ /* block SIGHUP et al. */ -+ (void)vim_handle_signal(SIGNAL_BLOCK); -+ - ctrl_c_interrupts = TRUE; - - #ifdef NO_CONSOLE_INPUT -*** ../vim-7.0.211/src/version.c Thu Mar 8 13:15:08 2007 ---- src/version.c Thu Mar 8 13:37:06 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 212, - /**/ - --- -This is an airconditioned room, do not open Windows. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.213 b/7.0.213 deleted file mode 100644 index 01857569..00000000 --- a/7.0.213 +++ /dev/null @@ -1,48 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.213 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.213 -Problem: When 'spellfile' has two regions that use the same sound folding - using "z=" will cause memory to be freed twice. (Mark Woodward) -Solution: Clear the hashtable properly so that the items are only freed once. -Files: src/spell.c - - -*** ../vim-7.0.212/src/spell.c Thu Sep 14 10:48:00 2006 ---- src/spell.c Thu Mar 8 14:54:46 2007 -*************** -*** 13094,13100 **** ---- 13094,13103 ---- - vim_free(HI2SFT(hi)); - --todo; - } -+ -+ /* Clear the hashtable, it may also be used by another region. */ - hash_clear(&slang->sl_sounddone); -+ hash_init(&slang->sl_sounddone); - } - } - } -*** ../vim-7.0.212/src/version.c Thu Mar 8 13:41:25 2007 ---- src/version.c Thu Mar 8 14:53:40 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 213, - /**/ - --- -The software said it requires Windows 95 or better, so I installed Linux. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.214 b/7.0.214 deleted file mode 100644 index 21fb804e..00000000 --- a/7.0.214 +++ /dev/null @@ -1,142 +0,0 @@ -# KH: Modified for runtime update -To: vim-dev@vim.org -Subject: patch 7.0.214 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.214 -Problem: When using in a user command it's not possible to have an - argument end in '\ '. -Solution: Change the handling of backslashes. (Yakov Lerner) -Files: runtime/doc/map.txt, src/ex_docmd.c - - ---- vim70/runtime/doc/map.txt.214 2006-09-08 23:26:31.000000000 +0200 -+++ runtime/doc/map.txt 2007-03-30 11:54:36.000000000 +0200 -@@ -1,4 +1,4 @@ --*map.txt* For Vim version 7.0. Last change: 2006 Sep 05 -+*map.txt* For Vim version 7.0. Last change: 2007 Mar 08 - - - VIM REFERENCE MANUAL by Bram Moolenaar -@@ -1312,6 +1312,22 @@ - arguments at spaces and Tabs, quotes each argument individually, and the - sequence is replaced by the comma-separated list of quoted arguments. - See the Mycmd example below. If no arguments are given is removed. -+ To embed whitespace into an argument of , prepend a backslash. -+ replaces every pair of backslashes (\\) with one backslash. A -+ backslash followed by a character other than white space or a backslash -+ remains unmodified. Overview: -+ -+ command ~ -+ XX ab 'ab' -+ XX a\b 'a\b' -+ XX a\ b 'a b' -+ XX a\ b 'a ', 'b' -+ XX a\\b 'a\b' -+ XX a\\ b 'a\', 'b' -+ XX a\\\b 'a\\b' -+ XX a\\\ b 'a\ b' -+ XX a\\\\b 'a\\b' -+ XX a\\\\ b 'a\\', 'b' - - Examples > - -*** ../vim-7.0.213/src/ex_docmd.c Tue Nov 28 21:41:19 2006 ---- src/ex_docmd.c Thu Mar 8 17:49:11 2007 -*************** -*** 5551,5556 **** ---- 5551,5559 ---- - mch_memmove(cmd, cmd + 1, (gap->ga_len - i) * sizeof(ucmd_T)); - } - -+ /* -+ * split and quote args for -+ */ - static char_u * - uc_split_args(arg, lenp) - char_u *arg; -*************** -*** 5567,5573 **** - - while (*p) - { -! if (p[0] == '\\' && vim_iswhite(p[1])) - { - len += 1; - p += 2; ---- 5570,5581 ---- - - while (*p) - { -! if (p[0] == '\\' && p[1] == '\\') -! { -! len += 2; -! p += 2; -! } -! else if (p[0] == '\\' && vim_iswhite(p[1])) - { - len += 1; - p += 2; -*************** -*** 5603,5609 **** - *q++ = '"'; - while (*p) - { -! if (p[0] == '\\' && vim_iswhite(p[1])) - { - *q++ = p[1]; - p += 2; ---- 5611,5623 ---- - *q++ = '"'; - while (*p) - { -! if (p[0] == '\\' && p[1] == '\\') -! { -! *q++ = '\\'; -! *q++ = '\\'; -! p += 2; -! } -! else if (p[0] == '\\' && vim_iswhite(p[1])) - { - *q++ = p[1]; - p += 2; -*************** -*** 5735,5741 **** - } - - break; -! case 2: /* Quote and split */ - /* This is hard, so only do it once, and cache the result */ - if (*split_buf == NULL) - *split_buf = uc_split_args(eap->arg, split_len); ---- 5749,5755 ---- - } - - break; -! case 2: /* Quote and split () */ - /* This is hard, so only do it once, and cache the result */ - if (*split_buf == NULL) - *split_buf = uc_split_args(eap->arg, split_len); -*** ../vim-7.0.213/src/version.c Thu Mar 8 14:54:52 2007 ---- src/version.c Thu Mar 8 18:11:47 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 214, - /**/ - --- -Microsoft's definition of a boolean: TRUE, FALSE, MAYBE -"Embrace and extend"...? - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.215 b/7.0.215 deleted file mode 100644 index a352b601..00000000 --- a/7.0.215 +++ /dev/null @@ -1,86 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.215 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.215 (extra) -Problem: Mac: Scrollbar size isn't set. Context menu has disabled useless - Help entry. Call to MoreMasterPointers() is ignored. -Solution: Call SetControlViewSize() in gui_mch_set_scrollbar_thumb(). Use - kCMHelpItemRemoveHelp for ContextualMenuSelect(). Remove call to - MoreMasterPointers(). (Nicolas Weber) -Files: src/gui_mac.c - - -*** ../vim-7.0.214/src/gui_mac.c Tue Oct 17 12:53:31 2006 ---- src/gui_mac.c Thu Mar 8 16:44:31 2007 -*************** -*** 2800,2808 **** - # endif - #endif - -- /* Why did I put that in? (Dany) */ -- MoreMasterPointers (0x40 * 3); /* we love handles */ -- - #if 0 - InitCursor(); - ---- 2800,2805 ---- -*************** -*** 4966,4971 **** ---- 4963,4969 ---- - SetControl32BitMaximum (sb->id, max); - SetControl32BitMinimum (sb->id, 0); - SetControl32BitValue (sb->id, val); -+ SetControlViewSize (sb->id, size); - #ifdef DEBUG_MAC_SB - printf("thumb_sb (%x) %x, %x,%x\n",sb->id, val, size, max); - #endif -*************** -*** 5727,5733 **** - /* TODO: Get the text selection from Vim */ - - /* Call to Handle Popup */ -! status = ContextualMenuSelect(CntxMenu, where, false, kCMHelpItemNoHelp, - HelpName, NULL, &CntxType, &CntxMenuID, &CntxMenuItem); - - if (status == noErr) ---- 5725,5731 ---- - /* TODO: Get the text selection from Vim */ - - /* Call to Handle Popup */ -! status = ContextualMenuSelect(CntxMenu, where, false, kCMHelpItemRemoveHelp, - HelpName, NULL, &CntxType, &CntxMenuID, &CntxMenuItem); - - if (status == noErr) -*** ../vim-7.0.214/src/version.c Thu Mar 8 18:16:54 2007 ---- src/version.c Thu Mar 8 20:38:17 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 215, - /**/ - --- - When danger reared its ugly head, - He bravely turned his tail and fled - Yes, Brave Sir Robin turned about - And gallantly he chickened out - Bravely taking to his feet - He beat a very brave retreat - Bravest of the brave Sir Robin - Petrified of being dead - Soiled his pants then brave Sir Robin - Turned away and fled. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.216 b/7.0.216 deleted file mode 100644 index 42279711..00000000 --- a/7.0.216 +++ /dev/null @@ -1,123 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.216 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.216 -Problem: ":tab wincmd ]" does not open a tab page. (Tony Mechelynck) -Solution: Copy the cmdmod.tab value to postponed_split_tab and use it. -Files: src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c - - -*** ../vim-7.0.215/src/globals.h Wed Feb 7 03:42:37 2007 ---- src/globals.h Sun Mar 11 15:27:12 2007 -*************** -*** 1030,1035 **** ---- 1030,1036 ---- - #ifdef FEAT_WINDOWS - EXTERN int postponed_split INIT(= 0); /* for CTRL-W CTRL-] command */ - EXTERN int postponed_split_flags INIT(= 0); /* args for win_split() */ -+ EXTERN int postponed_split_tab INIT(= 0); /* cmdmod.tab */ - # ifdef FEAT_QUICKFIX - EXTERN int g_do_tagpreview INIT(= 0); /* for tag preview commands: - height of preview window */ -*** ../vim-7.0.215/src/ex_docmd.c Thu Mar 8 18:16:54 2007 ---- src/ex_docmd.c Sun Mar 11 15:29:06 2007 -*************** -*** 7980,7987 **** ---- 7980,7989 ---- - { - /* Pass flags on for ":vertical wincmd ]". */ - postponed_split_flags = cmdmod.split; -+ postponed_split_tab = cmdmod.tab; - do_window(*eap->arg, eap->addr_count > 0 ? eap->line2 : 0L, xchar); - postponed_split_flags = 0; -+ postponed_split_tab = 0; - } - } - #endif -*************** -*** 9189,9196 **** ---- 9191,9200 ---- - { - postponed_split = -1; - postponed_split_flags = cmdmod.split; -+ postponed_split_tab = cmdmod.tab; - ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1); - postponed_split_flags = 0; -+ postponed_split_tab = 0; - } - #endif - -*** ../vim-7.0.215/src/if_cscope.c Tue Feb 27 18:11:55 2007 ---- src/if_cscope.c Sun Mar 11 15:29:57 2007 -*************** -*** 128,133 **** ---- 128,134 ---- - } - postponed_split = -1; - postponed_split_flags = cmdmod.split; -+ postponed_split_tab = cmdmod.tab; - } - #endif - -*************** -*** 135,140 **** ---- 136,142 ---- - - #ifdef FEAT_WINDOWS - postponed_split_flags = 0; -+ postponed_split_tab = 0; - #endif - } - -*** ../vim-7.0.215/src/window.c Tue Feb 20 00:17:01 2007 ---- src/window.c Sun Mar 11 15:31:57 2007 -*************** -*** 3290,3300 **** - int - may_open_tabpage() - { -! int n = cmdmod.tab; - -! if (cmdmod.tab != 0) - { - cmdmod.tab = 0; /* reset it to avoid doing it twice */ - return win_new_tabpage(n); - } - return FAIL; ---- 3290,3301 ---- - int - may_open_tabpage() - { -! int n = (cmdmod.tab == 0) ? postponed_split_tab : cmdmod.tab; - -! if (n != 0) - { - cmdmod.tab = 0; /* reset it to avoid doing it twice */ -+ postponed_split_tab = 0; - return win_new_tabpage(n); - } - return FAIL; -*** ../vim-7.0.215/src/version.c Thu Mar 8 20:39:02 2007 ---- src/version.c Sun Mar 11 15:50:04 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 216, - /**/ - --- -You were lucky to have a LAKE! There were a hundred and sixty of -us living in a small shoebox in the middle of the road. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.217 b/7.0.217 deleted file mode 100644 index 50478da4..00000000 --- a/7.0.217 +++ /dev/null @@ -1,63 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.217 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.217 -Problem: This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion) -Solution: Set "skip_match" to advance to the next line. -Files: src/ex_cmds.c - - -*** ../vim-7.0.216/src/ex_cmds.c Tue Feb 27 16:51:07 2007 ---- src/ex_cmds.c Thu Mar 15 21:31:35 2007 -*************** -*** 4677,4687 **** - /* For a multi-line match, put matchcol at the NUL at - * the end of the line and set nmatch to one, so that - * we continue looking for a match on the next line. -! * Avoids that ":s/\nB\@=//gc" get stuck. */ - if (nmatch > 1) - { - matchcol = (colnr_T)STRLEN(sub_firstline); -! nmatch = 1; - } - goto skip; - } ---- 4677,4688 ---- - /* For a multi-line match, put matchcol at the NUL at - * the end of the line and set nmatch to one, so that - * we continue looking for a match on the next line. -! * Avoids that ":%s/\nB\@=//gc" and ":%s/\n/,\r/gc" -! * get stuck when pressing 'n'. */ - if (nmatch > 1) - { - matchcol = (colnr_T)STRLEN(sub_firstline); -! skip_match = TRUE; - } - goto skip; - } -*** ../vim-7.0.216/src/version.c Sun Mar 11 15:53:27 2007 ---- src/version.c Thu Mar 15 21:36:34 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 217, - /**/ - --- -A mathematician is a device for turning coffee into theorems. - Paul Erdos -A computer programmer is a device for turning coffee into bugs. - Bram Moolenaar - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.218 b/7.0.218 deleted file mode 100644 index 1663fd96..00000000 --- a/7.0.218 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.218 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.218 -Problem: "%B" in 'statusline' always shows zero in Insert mode. (DervishD) -Solution: Remove the exception for Insert mode, check the column for being - valid instead. -Files: src/buffer.c - - -*** ../vim-7.0.217/src/buffer.c Tue Mar 6 20:27:03 2007 ---- src/buffer.c Thu Mar 15 22:50:54 2007 -*************** -*** 3710,3716 **** - case STL_BYTEVAL_X: - base = 'X'; - case STL_BYTEVAL: -! if (((State & INSERT) && wp == curwin) || empty_line) - num = 0; - else - { ---- 3710,3716 ---- - case STL_BYTEVAL_X: - base = 'X'; - case STL_BYTEVAL: -! if (wp->w_cursor.col > STRLEN(linecont)) - num = 0; - else - { -*** ../vim-7.0.217/src/version.c Thu Mar 15 21:38:30 2007 ---- src/version.c Thu Mar 15 22:54:05 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 218, - /**/ - --- -Vim is like Emacs without all the typing. (John "Johann" Spetz) - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.219 b/7.0.219 deleted file mode 100644 index 2f42e052..00000000 --- a/7.0.219 +++ /dev/null @@ -1,132 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.219 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.219 -Problem: When using the 'editexisting.vim' script and a file is being - edited in another tab page the window is split. The "+123" - argument is not used. -Solution: Make the tab page with the file the current tab page. Set - v:swapcommand when starting up to the first "+123" or "-c" command - line argument. -Files: runtime/macros/editexisting.vim, src/main.c - - -*** ../vim-7.0.218/runtime/macros/editexisting.vim Sun Apr 30 20:33:40 2006 ---- runtime/macros/editexisting.vim Sat Mar 17 22:21:30 2007 -*************** -*** 1,6 **** - " Vim Plugin: Edit the file with an existing Vim if possible - " Maintainer: Bram Moolenaar -! " Last Change: 2006 Apr 30 - - " This is a plugin, drop it in your (Unix) ~/.vim/plugin or (Win32) - " $VIM/vimfiles/plugin directory. Or make a symbolic link, so that you ---- 1,6 ---- - " Vim Plugin: Edit the file with an existing Vim if possible - " Maintainer: Bram Moolenaar -! " Last Change: 2007 Mar 17 - - " This is a plugin, drop it in your (Unix) ~/.vim/plugin or (Win32) - " $VIM/vimfiles/plugin directory. Or make a symbolic link, so that you -*************** -*** 85,93 **** - " Function used on the server to make the file visible and possibly execute a - " command. - func! EditExisting(fname, command) -! let n = bufwinnr(a:fname) -! if n > 0 -! exe n . "wincmd w" - else - exe "split " . escape(a:fname, ' #%"|') - endif ---- 85,107 ---- - " Function used on the server to make the file visible and possibly execute a - " command. - func! EditExisting(fname, command) -! " Get the window number of the file in the current tab page. -! let winnr = bufwinnr(a:fname) -! if winnr <= 0 -! " Not found, look in other tab pages. -! let bufnr = bufnr(a:fname) -! for i in range(tabpagenr('$')) -! if index(tabpagebuflist(i + 1), bufnr) >= 0 -! " Make this tab page the current one and find the window number. -! exe 'tabnext ' . (i + 1) -! let winnr = bufwinnr(a:fname) -! break; -! endif -! endfor -! endif -! -! if winnr > 0 -! exe winnr . "wincmd w" - else - exe "split " . escape(a:fname, ' #%"|') - endif -*** ../vim-7.0.218/src/main.c Tue Feb 27 16:51:07 2007 ---- src/main.c Sun Mar 18 21:51:48 2007 -*************** -*** 798,803 **** ---- 798,808 ---- - create_windows(¶ms); - TIME_MSG("opening buffers"); - -+ #ifdef FEAT_EVAL -+ /* clear v:swapcommand */ -+ set_vim_var_string(VV_SWAPCOMMAND, NULL, -1); -+ #endif -+ - /* Ex starts at last line of the file */ - if (exmode_active) - curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count; -*************** -*** 2202,2207 **** ---- 2207,2227 ---- - argv_idx = 1; - } - } -+ -+ #ifdef FEAT_EVAL -+ /* If there is a "+123" or "-c" command, set v:swapcommand to the first -+ * one. */ -+ if (parmp->n_commands > 0) -+ { -+ p = alloc((unsigned)STRLEN(parmp->commands[0]) + 3); -+ if (p != NULL) -+ { -+ sprintf((char *)p, ":%s\r", parmp->commands[0]); -+ set_vim_var_string(VV_SWAPCOMMAND, p, -1); -+ vim_free(p); -+ } -+ } -+ #endif - } - - /* -*** ../vim-7.0.218/src/version.c Thu Mar 15 22:54:51 2007 ---- src/version.c Sun Mar 18 21:49:11 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 219, - /**/ - --- -FATHER: You only killed the bride's father - that's all - -LAUNCELOT: Oh dear, I didn't really mean to... -FATHER: Didn't mean to? You put your sword right through his head! -LAUNCELOT: Gosh - Is he all right? - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.220 b/7.0.220 deleted file mode 100644 index 5332716f..00000000 --- a/7.0.220 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.220 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.220 -Problem: Crash when using winnr('#') in a new tab page. (Andy Wokula) -Solution: Check for not finding the window. -Files: src/eval.c - - -*** ../vim-7.0.219/src/eval.c Tue Feb 20 03:18:20 2007 ---- src/eval.c Sun Mar 25 17:43:53 2007 -*************** -*** 15769,15775 **** ---- 15769,15783 ---- - if (nr > 0) - for (wp = (tp == curtab) ? firstwin : tp->tp_firstwin; - wp != twin; wp = wp->w_next) -+ { -+ if (wp == NULL) -+ { -+ /* didn't find it in this tabpage */ -+ nr = 0; -+ break; -+ } - ++nr; -+ } - return nr; - } - #endif -*** ../vim-7.0.219/src/version.c Sun Mar 18 21:52:09 2007 ---- src/version.c Sun Mar 25 17:48:20 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 220, - /**/ - --- -Men may not be seen publicly in any kind of strapless gown. - [real standing law in Florida, United States of America] - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.221 b/7.0.221 deleted file mode 100644 index 2ed0e083..00000000 --- a/7.0.221 +++ /dev/null @@ -1,56 +0,0 @@ -#KH: Modified for runtime patch -To: vim-dev@vim.org -Subject: patch 7.0.221 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.221 -Problem: finddir() uses 'path' by default, where "." means relative to the - current file. But it works relative to the current directory. - (Tye Zdrojewski) -Solution: Add the current buffer name to find_file_in_path_option() for the - relative file name. -Files: runtime/doc/eval.txt, src/eval.c - - -*** ../vim-7.0.220/src/eval.c Sun Mar 25 17:50:22 2007 ---- src/eval.c Sun Mar 25 17:43:53 2007 -*************** -*** 9195,9201 **** - vim_free(fresult); - fresult = find_file_in_path_option(first ? fname : NULL, - first ? (int)STRLEN(fname) : 0, -! 0, first, path, dir, NULL, - dir ? (char_u *)"" : curbuf->b_p_sua); - first = FALSE; - ---- 9195,9201 ---- - vim_free(fresult); - fresult = find_file_in_path_option(first ? fname : NULL, - first ? (int)STRLEN(fname) : 0, -! 0, first, path, dir, curbuf->b_ffname, - dir ? (char_u *)"" : curbuf->b_p_sua); - first = FALSE; - -*** ../vim-7.0.220/src/version.c Sun Mar 25 17:50:22 2007 ---- src/version.c Tue Mar 27 10:16:35 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 221, - /**/ - --- -Beer & pretzels can't be served at the same time in any bar or restaurant. - [real standing law in North Dakota, United States of America] - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.222 b/7.0.222 deleted file mode 100644 index a364370f..00000000 --- a/7.0.222 +++ /dev/null @@ -1,137 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.222 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.222 -Problem: Perl indenting using 'cindent' works almost right. -Solution: Recognize '#' to start a comment. (Alex Manoussakis) Added '#' - flag in 'cinoptions'. -Files: runtime/doc/indent.txt, src/misc1.c - - -*** ../vim-7.0.221/runtime/doc/indent.txt Sun May 7 17:00:59 2006 ---- runtime/doc/indent.txt Sat Mar 17 16:27:57 2007 -*************** -*** 1,4 **** -! *indent.txt* For Vim version 7.0. Last change: 2006 Apr 30 - - - VIM REFERENCE MANUAL by Bram Moolenaar ---- 1,4 ---- -! *indent.txt* For Vim version 7.0. Last change: 2007 Mar 17 - - - VIM REFERENCE MANUAL by Bram Moolenaar -*************** -*** 434,443 **** - limits the time needed to search for the start of a comment. - (default 30 lines). - - - The defaults, spelled out in full, are: - cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,c3,C0, -! /0,(2s,us,U0,w0,W0,m0,j0,)20,*30 - - Vim puts a line in column 1 if: - - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'. ---- 434,448 ---- - limits the time needed to search for the start of a comment. - (default 30 lines). - -+ #N When N is non-zero recognize shell/Perl comments, starting with -+ '#'. Default N is zero: don't recognizes '#' comments. Note -+ that lines starting with # will still be seen as preprocessor -+ lines. -+ - - The defaults, spelled out in full, are: - cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,c3,C0, -! /0,(2s,us,U0,w0,W0,m0,j0,)20,*30,#0 - - Vim puts a line in column 1 if: - - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'. -*** ../vim-7.0.221/src/misc1.c Tue Oct 24 21:15:09 2006 ---- src/misc1.c Sat Mar 17 16:36:00 2007 -*************** -*** 4796,4803 **** ---- 4796,4806 ---- - static int find_last_paren __ARGS((char_u *l, int start, int end)); - static int find_match __ARGS((int lookfor, linenr_T ourscope, int ind_maxparen, int ind_maxcomment)); - -+ static int ind_hash_comment = 0; /* # starts a comment */ -+ - /* - * Skip over white space and C comments within the line. -+ * Also skip over Perl/shell comments if desired. - */ - static char_u * - cin_skipcomment(s) -*************** -*** 4805,4811 **** ---- 4808,4824 ---- - { - while (*s) - { -+ char_u *prev_s = s; -+ - s = skipwhite(s); -+ -+ /* Perl/shell # comment comment continues until eol. Require a space -+ * before # to avoid recognizing $#array. */ -+ if (ind_hash_comment != 0 && s != prev_s && *s == '#') -+ { -+ s += STRLEN(s); -+ break; -+ } - if (*s != '/') - break; - ++s; -*************** -*** 6133,6139 **** - if (l[1] == '-') - n = -n; - /* When adding an entry here, also update the default 'cinoptions' in -! * change.txt, and add explanation for it! */ - switch (*l) - { - case '>': ind_level = n; break; ---- 6146,6152 ---- - if (l[1] == '-') - n = -n; - /* When adding an entry here, also update the default 'cinoptions' in -! * doc/indent.txt, and add explanation for it! */ - switch (*l) - { - case '>': ind_level = n; break; -*************** -*** 6166,6171 **** ---- 6179,6185 ---- - case 'h': ind_scopedecl_code = n; break; - case 'j': ind_java = n; break; - case 'l': ind_keep_case_label = n; break; -+ case '#': ind_hash_comment = n; break; - } - } - -*** ../vim-7.0.221/src/version.c Tue Mar 27 10:20:59 2007 ---- src/version.c Tue Mar 27 10:56:50 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 222, - /**/ - --- -My Go , this amn keyboar oesn't have a . - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.223 b/7.0.223 deleted file mode 100644 index 3db3e3e6..00000000 --- a/7.0.223 +++ /dev/null @@ -1,87 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.223 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.223 -Problem: Unprintable characters in completion text mess up the popup menu. - (Gombault Damien) -Solution: Use strtrans() to make the text printable. -Files: src/charset.c, src/popupmnu.c - - -*** ../vim-7.0.222/src/charset.c Tue Apr 18 00:04:40 2006 ---- src/charset.c Sat Mar 24 21:10:37 2007 -*************** -*** 317,323 **** - } - } - -! #if defined(FEAT_EVAL) || defined(FEAT_TITLE) || defined(PROTO) - /* - * Translate a string into allocated memory, replacing special chars with - * printable chars. Returns NULL when out of memory. ---- 317,324 ---- - } - } - -! #if defined(FEAT_EVAL) || defined(FEAT_TITLE) || defined(FEAT_INS_EXPAND) \ -! || defined(PROTO) - /* - * Translate a string into allocated memory, replacing special chars with - * printable chars. Returns NULL when out of memory. -*** ../vim-7.0.222/src/popupmnu.c Tue Aug 22 21:51:18 2006 ---- src/popupmnu.c Sat Mar 24 21:07:39 2007 -*************** -*** 280,287 **** - w = ptr2cells(p); - if (*p == NUL || *p == TAB || totwidth + w > pum_width) - { -! /* Display the text that fits or comes before a Tab. */ -! screen_puts_len(s, (int)(p - s), row, col, attr); - col += width; - - if (*p != TAB) ---- 280,299 ---- - w = ptr2cells(p); - if (*p == NUL || *p == TAB || totwidth + w > pum_width) - { -! /* Display the text that fits or comes before a Tab. -! * First convert it to printable characters. */ -! char_u *st; -! int saved = *p; -! -! *p = NUL; -! st = transstr(s); -! *p = saved; -! if (st != NULL) -! { -! screen_puts_len(st, (int)STRLEN(st), row, col, -! attr); -! vim_free(st); -! } - col += width; - - if (*p != TAB) -*** ../vim-7.0.222/src/version.c Tue Mar 27 11:00:43 2007 ---- src/version.c Tue Mar 27 12:42:15 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 223, - /**/ - --- -Violators can be fined, arrested or jailed for making ugly faces at a dog. - [real standing law in Oklahoma, United States of America] - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.224 b/7.0.224 deleted file mode 100644 index 79b80db2..00000000 --- a/7.0.224 +++ /dev/null @@ -1,199 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.224 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.224 -Problem: When expanding "##" spaces are escaped twice. (Pavol Juhas) -Solution: Don't escape the spaces that separate arguments. -Files: src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro - - -*** ../vim-7.0.223/src/eval.c Tue Mar 27 10:20:59 2007 ---- src/eval.c Tue Mar 27 16:47:56 2007 -*************** -*** 8924,8930 **** - if (*s == '%' || *s == '#' || *s == '<') - { - ++emsg_off; -! rettv->vval.v_string = eval_vars(s, &len, NULL, &errormsg, s); - --emsg_off; - } - else ---- 8924,8930 ---- - if (*s == '%' || *s == '#' || *s == '<') - { - ++emsg_off; -! rettv->vval.v_string = eval_vars(s, s, &len, NULL, &errormsg, NULL); - --emsg_off; - } - else -*** ../vim-7.0.223/src/ex_docmd.c Sun Mar 11 15:53:27 2007 ---- src/ex_docmd.c Tue Mar 27 16:49:06 2007 -*************** -*** 4176,4181 **** ---- 4177,4183 ---- - int srclen; - char_u *p; - int n; -+ int escaped; - - #ifdef FEAT_QUICKFIX - /* Skip a regexp pattern for ":vimgrep[add] pat file..." */ -*************** -*** 4216,4222 **** - /* - * Try to find a match at this position. - */ -! repl = eval_vars(p, &srclen, &(eap->do_ecmd_lnum), errormsgp, eap->arg); - if (*errormsgp != NULL) /* error detected */ - return FAIL; - if (repl == NULL) /* no match found */ ---- 4218,4225 ---- - /* - * Try to find a match at this position. - */ -! repl = eval_vars(p, eap->arg, &srclen, &(eap->do_ecmd_lnum), -! errormsgp, &escaped); - if (*errormsgp != NULL) /* error detected */ - return FAIL; - if (repl == NULL) /* no match found */ -*************** -*** 4235,4245 **** - vim_free(l); - } - -! /* Need to escape white space et al. with a backslash. Don't do this -! * for shell commands (may have to use quotes instead). Don't do this -! * for non-unix systems when there is a single argument (spaces don't -! * separate arguments then). */ - if (!eap->usefilter - && eap->cmdidx != CMD_bang - && eap->cmdidx != CMD_make - && eap->cmdidx != CMD_lmake ---- 4238,4252 ---- - vim_free(l); - } - -! /* Need to escape white space et al. with a backslash. -! * Don't do this for: -! * - replacement that already has been escaped: "##" -! * - shell commands (may have to use quotes instead). -! * - non-unix systems when there is a single argument (spaces don't -! * separate arguments then). -! */ - if (!eap->usefilter -+ && !escaped - && eap->cmdidx != CMD_bang - && eap->cmdidx != CMD_make - && eap->cmdidx != CMD_lmake -*************** -*** 9280,9291 **** - * number of characters to skip. - */ - char_u * -! eval_vars(src, usedlen, lnump, errormsg, srcstart) - char_u *src; /* pointer into commandline */ - int *usedlen; /* characters after src that are used */ - linenr_T *lnump; /* line number for :e command, or NULL */ - char_u **errormsg; /* pointer to error message */ -! char_u *srcstart; /* beginning of valid memory for src */ - { - int i; - char_u *s; ---- 9289,9302 ---- - * number of characters to skip. - */ - char_u * -! eval_vars(src, srcstart, usedlen, lnump, errormsg, escaped) - char_u *src; /* pointer into commandline */ -+ char_u *srcstart; /* beginning of valid memory for src */ - int *usedlen; /* characters after src that are used */ - linenr_T *lnump; /* line number for :e command, or NULL */ - char_u **errormsg; /* pointer to error message */ -! int *escaped; /* return value has escaped white space (can -! * be NULL) */ - { - int i; - char_u *s; -*************** -*** 9332,9337 **** ---- 9343,9350 ---- - #endif - - *errormsg = NULL; -+ if (escaped != NULL) -+ *escaped = FALSE; - - /* - * Check if there is something to do. -*************** -*** 9407,9412 **** ---- 9420,9427 ---- - result = arg_all(); - resultbuf = result; - *usedlen = 2; -+ if (escaped != NULL) -+ *escaped = TRUE; - #ifdef FEAT_MODIFY_FNAME - skip_mod = TRUE; - #endif -*************** -*** 9627,9633 **** - else - { - /* replace "" with the sourced file name, and do ":" stuff */ -! repl = eval_vars(p, &srclen, NULL, &errormsg, result); - if (errormsg != NULL) - { - if (*errormsg) ---- 9642,9648 ---- - else - { - /* replace "" with the sourced file name, and do ":" stuff */ -! repl = eval_vars(p, result, &srclen, NULL, &errormsg, NULL); - if (errormsg != NULL) - { - if (*errormsg) -*** ../vim-7.0.223/src/proto/ex_docmd.pro Fri Mar 24 23:02:09 2006 ---- src/proto/ex_docmd.pro Tue Mar 27 16:50:04 2007 -*************** -*** 44,50 **** - extern FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode)); - extern void update_topline_cursor __ARGS((void)); - extern void exec_normal_cmd __ARGS((char_u *cmd, int remap, int silent)); -! extern char_u *eval_vars __ARGS((char_u *src, int *usedlen, linenr_T *lnump, char_u **errormsg, char_u *srcstart)); - extern char_u *expand_sfile __ARGS((char_u *arg)); - extern int put_eol __ARGS((FILE *fd)); - extern int put_line __ARGS((FILE *fd, char *s)); ---- 44,50 ---- - extern FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode)); - extern void update_topline_cursor __ARGS((void)); - extern void exec_normal_cmd __ARGS((char_u *cmd, int remap, int silent)); -! extern char_u *eval_vars __ARGS((char_u *src, char_u *srcstart, int *usedlen, linenr_T *lnump, char_u **errormsg, int *escaped)); - extern char_u *expand_sfile __ARGS((char_u *arg)); - extern int put_eol __ARGS((FILE *fd)); - extern int put_line __ARGS((FILE *fd, char *s)); -*** ../vim-7.0.223/src/version.c Tue Mar 27 12:43:30 2007 ---- src/version.c Tue Mar 27 16:55:21 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 224, - /**/ - --- -"Software is like sex... it's better when it's free." - -- Linus Torvalds, initiator of the free Linux OS -Makes me wonder what FSF stands for...? - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.225 b/7.0.225 deleted file mode 100644 index ce57077a..00000000 --- a/7.0.225 +++ /dev/null @@ -1,75 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.225 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.225 -Problem: When using setline() in an InsertEnter autocommand and doing "A" - the cursor ends up on the last byte in the line. (Yukihiro - Nakadaira) -Solution: Only adjust the column when using setline() for the cursor line. - Move it back to the head byte if necessary. -Files: src/eval.c, src/misc2.c - - -*** ../vim-7.0.224/src/eval.c Tue Mar 27 16:57:54 2007 ---- src/eval.c Thu Apr 26 10:52:09 2007 -*************** -*** 14397,14403 **** - if (u_savesub(lnum) == OK && ml_replace(lnum, line, TRUE) == OK) - { - changed_bytes(lnum, 0); -! check_cursor_col(); - rettv->vval.v_number = 0; /* OK */ - } - } ---- 14411,14418 ---- - if (u_savesub(lnum) == OK && ml_replace(lnum, line, TRUE) == OK) - { - changed_bytes(lnum, 0); -! if (lnum == curwin->w_cursor.lnum) -! check_cursor_col(); - rettv->vval.v_number = 0; /* OK */ - } - } -*** ../vim-7.0.224/src/misc2.c Tue Feb 20 03:18:20 2007 ---- src/misc2.c Tue Mar 27 21:59:56 2007 -*************** -*** 516,522 **** ---- 516,529 ---- - || virtual_active()) - curwin->w_cursor.col = len; - else -+ { - curwin->w_cursor.col = len - 1; -+ #ifdef FEAT_MBYTE -+ /* prevent cursor from moving on the trail byte */ -+ if (has_mbyte) -+ mb_adjust_cursor(); -+ #endif -+ } - } - - #ifdef FEAT_VIRTUALEDIT -*** ../vim-7.0.224/src/version.c Tue Mar 27 16:57:54 2007 ---- src/version.c Thu Apr 26 10:53:33 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 225, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -14. You start introducing yourself as "Jim at I-I-Net dot net dot au" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.226 b/7.0.226 deleted file mode 100644 index f5f55051..00000000 --- a/7.0.226 +++ /dev/null @@ -1,49 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.226 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.226 -Problem: Display flickering when updating signs through the netbeans - interface. (Xavier de Gaye) -Solution: Remove the redraw_later(CLEAR) call. -Files: src/netbeans.c - - -*** ../vim-7.0.225/src/netbeans.c Tue Nov 14 18:29:00 2006 ---- src/netbeans.c Sat Apr 21 18:14:00 2007 -*************** -*** 2143,2150 **** - coloncmd(":sign jump %d buffer=%d", serNum, - buf->bufp->b_fnum); - } -- /* XXX only redraw what changed. */ -- redraw_later(CLEAR); - #endif - /* =====================================================================*/ - } ---- 2143,2148 ---- -*** ../vim-7.0.225/src/version.c Thu Apr 26 10:55:46 2007 ---- src/version.c Thu Apr 26 11:00:01 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 226, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -15. Your heart races faster and beats irregularly each time you see a new WWW - site address in print or on TV, even though you've never had heart - problems before. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.227 b/7.0.227 deleted file mode 100644 index 737238a1..00000000 --- a/7.0.227 +++ /dev/null @@ -1,62 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.227 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.227 -Problem: Crash when closing a window in the GUI. (Charles Campbell) -Solution: Don't call out_flush() from win_free(). -Files: src/window.c - - -*** ../vim-7.0.226/src/window.c Sun Mar 11 15:53:27 2007 ---- src/window.c Wed Apr 18 22:31:52 2007 -*************** -*** 2084,2089 **** ---- 2084,2096 ---- - } - #endif - -+ #ifdef FEAT_GUI -+ /* Avoid trouble with scrollbars that are going to be deleted in -+ * win_free(). */ -+ if (gui.in_use) -+ out_flush(); -+ #endif -+ - /* - * Close the link to the buffer. - */ -*************** -*** 4174,4180 **** - #ifdef FEAT_GUI - if (gui.in_use) - { -- out_flush(); - gui_mch_destroy_scrollbar(&wp->w_scrollbars[SBAR_LEFT]); - gui_mch_destroy_scrollbar(&wp->w_scrollbars[SBAR_RIGHT]); - } ---- 4181,4186 ---- -*** ../vim-7.0.226/src/version.c Thu Apr 26 11:01:16 2007 ---- src/version.c Thu Apr 26 16:09:30 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 227, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -16. You step out of your room and realize that your parents have moved and - you don't have a clue when it happened. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.228 b/7.0.228 deleted file mode 100644 index 481d23d2..00000000 --- a/7.0.228 +++ /dev/null @@ -1,66 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.228 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.228 -Problem: Cygwin: problem with symlink to DOS style path. -Solution: Invoke cygwin_conv_to_posix_path(). (Luca Masini) -Files: src/os_unix.c - - -*** ../vim-7.0.227/src/os_unix.c Tue Mar 6 20:27:03 2007 ---- src/os_unix.c Mon Apr 23 22:27:16 2007 -*************** -*** 55,60 **** ---- 55,66 ---- - # endif - #endif - -+ #ifdef __CYGWIN__ -+ # ifndef WIN32 -+ # include /* for cygwin_conv_to_posix_path() */ -+ # endif -+ #endif -+ - #if defined(HAVE_SELECT) - extern int select __ARGS((int, fd_set *, fd_set *, fd_set *, struct timeval *)); - #endif -*************** -*** 2228,2233 **** ---- 2258,2270 ---- - - #ifdef VMS - fname = vms_fixfilename(fname); -+ #endif -+ -+ #ifdef __CYGWIN__ -+ /* -+ * This helps for when "/etc/hosts" is a symlink to "c:/something/hosts". -+ */ -+ cygwin_conv_to_posix_path(fname, fname); - #endif - - /* expand it if forced or not an absolute path */ -*** ../vim-7.0.227/src/version.c Thu Apr 26 16:11:47 2007 ---- src/version.c Thu Apr 26 16:27:29 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 228, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -19. All of your friends have an @ in their names. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.229 b/7.0.229 deleted file mode 100644 index 6d0bd076..00000000 --- a/7.0.229 +++ /dev/null @@ -1,55 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.229 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.229 -Problem: When 'pastetoggle' starts with Esc then pressing Esc in Insert - mode will not time out. (Jeffery Small) -Solution: Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies - to the 'pastetoggle' key. -Files: src/getchar.c - - -*** ../vim-7.0.228/src/getchar.c Sun Mar 4 21:25:44 2007 ---- src/getchar.c Thu Apr 19 22:13:37 2007 -*************** -*** 2183,2189 **** - } - /* Need more chars for partly match. */ - if (mlen == typebuf.tb_len) -! keylen = KL_PART_MAP; - else if (max_mlen < mlen) - /* no match, may have to check for termcode at - * next character */ ---- 2187,2193 ---- - } - /* Need more chars for partly match. */ - if (mlen == typebuf.tb_len) -! keylen = KL_PART_KEY; - else if (max_mlen < mlen) - /* no match, may have to check for termcode at - * next character */ -*** ../vim-7.0.228/src/version.c Thu Apr 26 16:28:43 2007 ---- src/version.c Thu Apr 26 16:48:59 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 229, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -20. When looking at a pageful of someone else's links, you notice all of them - are already highlighted in purple. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.230 b/7.0.230 deleted file mode 100644 index 42161efb..00000000 --- a/7.0.230 +++ /dev/null @@ -1,137 +0,0 @@ -# KH: patched for runtimeupdate -To: vim-dev@vim.org -Subject: patch 7.0.230 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.230 -Problem: After using ":lcd" a script doesn't know how to restore the - current directory. -Solution: Add the haslocaldir() function. (Bob Hiestand) -Files: runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c - - -*** ../vim-7.0.229/runtime/doc/usr_41.txt Sun May 7 17:02:39 2006 ---- runtime/doc/usr_41.txt Thu Apr 26 17:06:48 2007 -*************** -*** 1,4 **** -! *usr_41.txt* For Vim version 7.0. Last change: 2006 Aug 16 - - VIM USER MANUAL - by Bram Moolenaar - ---- 1,4 ---- -! *usr_41.txt* For Vim version 7.0. Last change: 2007 Apr 26 - - VIM USER MANUAL - by Bram Moolenaar - -*************** -*** 703,708 **** ---- 703,709 ---- - isdirectory() check if a directory exists - getfsize() get the size of a file - getcwd() get the current working directory -+ haslocaldir() check if current window used |:lcd| - tempname() get the name of a temporary file - mkdir() create a new directory - delete() delete a file -*** ../vim-7.0.229/runtime/doc/eval.txt Tue Mar 27 10:20:58 2007 ---- runtime/doc/eval.txt Tue Apr 24 21:50:49 2007 -*************** -*** 1,4 **** -! *eval.txt* For Vim version 7.0. Last change: 2006 Nov 01 - - - VIM REFERENCE MANUAL by Bram Moolenaar ---- 1,4 ---- -! *eval.txt* For Vim version 7.0. Last change: 2007 Apr 24 - - - VIM REFERENCE MANUAL by Bram Moolenaar -*************** -*** 1623,1628 **** ---- 1633,1639 ---- - globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path} - has( {feature}) Number TRUE if feature {feature} supported - has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} -+ haslocaldir() Number TRUE if current window executed |:lcd| - hasmapto( {what} [, {mode} [, {abbr}]]) - Number TRUE if mapping to {what} exists - histadd( {history},{item}) String add an item to a history -*************** -*** 3016,3021 **** ---- 3041,3049 ---- - The result is a Number, which is 1 if |Dictionary| {dict} has - an entry with key {key}. Zero otherwise. - -+ haslocaldir() *haslocaldir()* -+ The result is a Number, which is 1 when the current -+ window has set a local path via |:lcd|, and 0 otherwise. - - hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()* - The result is a Number, which is 1 if there is a mapping that -*** ../vim-7.0.229/src/eval.c Thu Apr 26 10:55:46 2007 ---- src/eval.c Thu Apr 26 10:52:09 2007 -*************** -*** 541,546 **** ---- 541,547 ---- - static void f_globpath __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_has __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_has_key __ARGS((typval_T *argvars, typval_T *rettv)); -+ static void f_haslocaldir __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_hasmapto __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_histadd __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_histdel __ARGS((typval_T *argvars, typval_T *rettv)); -*************** -*** 7110,7115 **** ---- 7111,7117 ---- - {"globpath", 2, 2, f_globpath}, - {"has", 1, 1, f_has}, - {"has_key", 2, 2, f_has_key}, -+ {"haslocaldir", 0, 0, f_haslocaldir}, - {"hasmapto", 1, 3, f_hasmapto}, - {"highlightID", 1, 1, f_hlID}, /* obsolete */ - {"highlight_exists",1, 1, f_hlexists}, /* obsolete */ -*************** -*** 11131,11136 **** ---- 11133,11150 ---- - - rettv->vval.v_number = dict_find(argvars[0].vval.v_dict, - get_tv_string(&argvars[1]), -1) != NULL; -+ } -+ -+ /* -+ * "haslocaldir()" function -+ */ -+ /*ARGSUSED*/ -+ static void -+ f_haslocaldir(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ rettv->vval.v_number = (curwin->w_localdir != NULL); - } - - /* -*** ../vim-7.0.229/src/version.c Thu Apr 26 16:50:05 2007 ---- src/version.c Thu Apr 26 17:04:15 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 230, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -22. You've already visited all the links at Yahoo and you're halfway through - Lycos. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.231 b/7.0.231 deleted file mode 100644 index 5b089d92..00000000 --- a/7.0.231 +++ /dev/null @@ -1,81 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.231 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.231 -Problem: When recovering from a swap file the page size is likely to be - different from the minimum. The block used for the first page - then has a buffer of the wrong size, causing a crash when it's - reused later. (Zephaniah Hull) -Solution: Reallocate the buffer when the page size changes. Also check that - the page size is at least the minimum value. -Files: src/memline.c - - -*** ../vim-7.0.230/src/memline.c Tue Mar 6 20:27:03 2007 ---- src/memline.c Thu Apr 19 16:10:39 2007 -*************** -*** 1015,1032 **** ---- 1015,1053 ---- - msg_end(); - goto theend; - } -+ - /* - * If we guessed the wrong page size, we have to recalculate the - * highest block number in the file. - */ - if (mfp->mf_page_size != (unsigned)char_to_long(b0p->b0_page_size)) - { -+ unsigned previous_page_size = mfp->mf_page_size; -+ - mf_new_page_size(mfp, (unsigned)char_to_long(b0p->b0_page_size)); -+ if (mfp->mf_page_size < previous_page_size) -+ { -+ msg_start(); -+ msg_outtrans_attr(mfp->mf_fname, attr | MSG_HIST); -+ MSG_PUTS_ATTR(_(" has been damaged (page size is smaller than minimum value).\n"), -+ attr | MSG_HIST); -+ msg_end(); -+ goto theend; -+ } - if ((size = lseek(mfp->mf_fd, (off_t)0L, SEEK_END)) <= 0) - mfp->mf_blocknr_max = 0; /* no file or empty file */ - else - mfp->mf_blocknr_max = (blocknr_T)(size / mfp->mf_page_size); - mfp->mf_infile_count = mfp->mf_blocknr_max; -+ -+ /* need to reallocate the memory used to store the data */ -+ p = alloc(mfp->mf_page_size); -+ if (p == NULL) -+ goto theend; -+ mch_memmove(p, hp->bh_data, previous_page_size); -+ vim_free(hp->bh_data); -+ hp->bh_data = p; -+ b0p = (ZERO_BL *)(hp->bh_data); - } - - /* -*** ../vim-7.0.230/src/version.c Thu Apr 26 17:08:16 2007 ---- src/version.c Thu Apr 26 17:11:38 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 231, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -23. You can't call your mother...she doesn't have a modem. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.232 b/7.0.232 deleted file mode 100644 index 7d60af50..00000000 --- a/7.0.232 +++ /dev/null @@ -1,593 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.232 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.232 (extra) -Problem: Mac: doesn't support GUI tab page labels. -Solution: Add GUI tab page labels. (Nicolas Weber) -Files: src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c, - src/proto/gui_mac.pro - - -*** ../vim-7.0.231/src/feature.h Wed Nov 1 18:10:36 2006 ---- src/feature.h Thu Mar 15 19:02:15 2007 -*************** -*** 756,761 **** ---- 756,762 ---- - #if defined(FEAT_WINDOWS) && defined(FEAT_NORMAL) \ - && (defined(FEAT_GUI_GTK) \ - || (defined(FEAT_GUI_MOTIF) && defined(HAVE_XM_NOTEBOOK_H)) \ -+ || defined(FEAT_GUI_MAC) \ - || (defined(FEAT_GUI_MSWIN) && (!defined(_MSC_VER) || _MSC_VER > 1020))) - # define FEAT_GUI_TABLINE - #endif -*** ../vim-7.0.231/src/gui.c Tue Oct 10 17:36:50 2006 ---- src/gui.c Thu Mar 15 19:02:15 2007 -*************** -*** 1159,1165 **** - #endif - - # if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \ -! || defined(FEAT_GUI_MOTIF)) - if (gui_has_tabline()) - text_area_y += gui.tabline_height; - #endif ---- 1159,1165 ---- - #endif - - # if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \ -! || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_MAC)) - if (gui_has_tabline()) - text_area_y += gui.tabline_height; - #endif -*** ../vim-7.0.231/src/gui.h Thu Apr 27 01:52:33 2006 ---- src/gui.h Thu Mar 15 19:02:15 2007 -*************** -*** 421,427 **** - #endif /* FEAT_GUI_GTK */ - - #if defined(FEAT_GUI_TABLINE) \ -! && (defined(FEAT_GUI_W32) || defined(FEAT_GUI_MOTIF)) - int tabline_height; - #endif - ---- 425,432 ---- - #endif /* FEAT_GUI_GTK */ - - #if defined(FEAT_GUI_TABLINE) \ -! && (defined(FEAT_GUI_W32) || defined(FEAT_GUI_MOTIF) \ -! || defined(FEAT_GUI_MAC)) - int tabline_height; - #endif - -*** ../vim-7.0.231/src/gui_mac.c Thu Mar 8 20:39:02 2007 ---- src/gui_mac.c Fri Mar 16 11:26:05 2007 -*************** -*** 4,10 **** - * GUI/Motif support by Robert Webb - * Macintosh port by Dany St-Amant - * and Axel Kielhorn -! * Port to MPW by Bernhard PrŸmmer - * Initial Carbon port by Ammon Skidmore - * - * Do ":help uganda" in Vim to read copying and usage conditions. ---- 4,10 ---- - * GUI/Motif support by Robert Webb - * Macintosh port by Dany St-Amant - * and Axel Kielhorn -! * Port to MPW by Bernhard Pruemmer - * Initial Carbon port by Ammon Skidmore - * - * Do ":help uganda" in Vim to read copying and usage conditions. -*************** -*** 260,265 **** ---- 260,270 ---- - OSErr HandleUnusedParms(const AppleEvent *theAEvent); - #endif - -+ #ifdef FEAT_GUI_TABLINE -+ static void initialise_tabline(void); -+ static WindowRef drawer = NULL; // TODO: put into gui.h -+ #endif -+ - /* - * ------------------------------------------------------------ - * Conversion Utility -*************** -*** 2357,2362 **** ---- 2323,2335 ---- - - thePart = FindWindow(theEvent->where, &whichWindow); - -+ #ifdef FEAT_GUI_TABLINE -+ /* prevent that the vim window size changes if it's activated by a -+ click into the tab pane */ -+ if (whichWindow == drawer) -+ return; -+ #endif -+ - switch (thePart) - { - case (inDesk): -*************** -*** 3097,3102 **** ---- 3070,3082 ---- - #endif - */ - -+ #ifdef FEAT_GUI_TABLINE -+ /* -+ * Create the tabline -+ */ -+ initialise_tabline(); -+ #endif -+ - /* TODO: Load bitmap if using TOOLBAR */ - return OK; - } -*************** -*** 5895,5901 **** - theCPB.dirInfo.ioFDirIndex = 0; - theCPB.dirInfo.ioNamePtr = file.name; - theCPB.dirInfo.ioVRefNum = file.vRefNum; -! /*theCPB.hFileInfo.ioDirID = 0;*/ - theCPB.dirInfo.ioDrDirID = file.parID; - - /* As ioFDirIndex = 0, get the info of ioNamePtr, ---- 5875,5881 ---- - theCPB.dirInfo.ioFDirIndex = 0; - theCPB.dirInfo.ioNamePtr = file.name; - theCPB.dirInfo.ioVRefNum = file.vRefNum; -! /*theCPB.hFileInfo.ioDirID = 0;*/ - theCPB.dirInfo.ioDrDirID = file.parID; - - /* As ioFDirIndex = 0, get the info of ioNamePtr, -*************** -*** 6093,6096 **** ---- 6073,6479 ---- - return (script != smRoman - && script == GetScriptManagerVariable(smSysScript)) ? 1 : 0; - } -+ - #endif /* defined(USE_IM_CONTROL) || defined(PROTO) */ -+ -+ -+ -+ -+ #if defined(FEAT_GUI_TABLINE) || defined(PROTO) -+ // drawer implementation -+ static MenuRef contextMenu = NULL; -+ enum -+ { -+ kTabContextMenuId = 42, -+ }; -+ -+ // the caller has to CFRelease() the returned string -+ static CFStringRef -+ getTabLabel(tabpage_T *page) -+ { -+ get_tabline_label(page, FALSE); -+ #ifdef MACOS_CONVERT -+ return mac_enc_to_cfstring(NameBuff, STRLEN(NameBuff)); -+ #else -+ // TODO: check internal encoding? -+ return CFStringCreateWithCString(kCFAllocatorDefault, (char *)NameBuff, -+ kCFStringEncodingMacRoman); -+ #endif -+ } -+ -+ -+ #define DRAWER_SIZE 150 -+ #define DRAWER_INSET 16 -+ -+ static ControlRef dataBrowser = NULL; -+ -+ // when the tabline is hidden, vim doesn't call update_tabline(). When -+ // the tabline is shown again, show_tabline() is called before upate_tabline(), -+ // and because of this, the tab labels and vims internal tabs are out of sync -+ // for a very short time. to prevent inconsistent state, we store the labels -+ // of the tabs, not pointers to the tabs (which are invalid for a short time). -+ static CFStringRef *tabLabels = NULL; -+ static int tabLabelsSize = 0; -+ -+ enum -+ { -+ kTabsColumn = 'Tabs' -+ }; -+ -+ static int -+ getTabCount(void) -+ { -+ tabpage_T *tp; -+ int numTabs = 0; -+ -+ for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) -+ ++numTabs; -+ return numTabs; -+ } -+ -+ // data browser item display callback -+ static OSStatus -+ dbItemDataCallback(ControlRef browser, -+ DataBrowserItemID itemID, -+ DataBrowserPropertyID property /* column id */, -+ DataBrowserItemDataRef itemData, -+ Boolean changeValue) -+ { -+ OSStatus status = noErr; -+ -+ // assert(property == kTabsColumn); // why is this violated?? -+ -+ // changeValue is true if we have a modifieable list and data was changed. -+ // In our case, it's always false. -+ // (that is: if (changeValue) updateInternalData(); else return -+ // internalData(); -+ if (!changeValue) -+ { -+ CFStringRef str; -+ -+ assert(itemID - 1 >= 0 && itemID - 1 < tabLabelsSize); -+ str = tabLabels[itemID - 1]; -+ status = SetDataBrowserItemDataText(itemData, str); -+ } -+ else -+ status = errDataBrowserPropertyNotSupported; -+ -+ return status; -+ } -+ -+ // data browser action callback -+ static void -+ dbItemNotificationCallback(ControlRef browser, -+ DataBrowserItemID item, -+ DataBrowserItemNotification message) -+ { -+ switch (message) -+ { -+ case kDataBrowserItemSelected: -+ send_tabline_event(item); -+ break; -+ } -+ } -+ -+ // callbacks needed for contextual menu: -+ static void -+ dbGetContextualMenuCallback(ControlRef browser, -+ MenuRef *menu, -+ UInt32 *helpType, -+ CFStringRef *helpItemString, -+ AEDesc *selection) -+ { -+ // on mac os 9: kCMHelpItemNoHelp, but it's not the same -+ *helpType = kCMHelpItemRemoveHelp; // OS X only ;-) -+ *helpItemString = NULL; -+ -+ *menu = contextMenu; -+ } -+ -+ static void -+ dbSelectContextualMenuCallback(ControlRef browser, -+ MenuRef menu, -+ UInt32 selectionType, -+ SInt16 menuID, -+ MenuItemIndex menuItem) -+ { -+ if (selectionType == kCMMenuItemSelected) -+ { -+ MenuCommand command; -+ GetMenuItemCommandID(menu, menuItem, &command); -+ -+ // get tab that was selected when the context menu appeared -+ // (there is always one tab selected). TODO: check if the context menu -+ // isn't opened on an item but on empty space (has to be possible some -+ // way, the finder does it too ;-) ) -+ Handle items = NewHandle(0); -+ if (items != NULL) -+ { -+ int numItems; -+ -+ GetDataBrowserItems(browser, kDataBrowserNoItem, false, -+ kDataBrowserItemIsSelected, items); -+ numItems = GetHandleSize(items) / sizeof(DataBrowserItemID); -+ if (numItems > 0) -+ { -+ int idx; -+ DataBrowserItemID *itemsPtr; -+ -+ HLock(items); -+ itemsPtr = (DataBrowserItemID *)*items; -+ idx = itemsPtr[0]; -+ HUnlock(items); -+ send_tabline_menu_event(idx, command); -+ } -+ DisposeHandle(items); -+ } -+ } -+ } -+ -+ // focus callback of the data browser to always leave focus in vim -+ static OSStatus -+ dbFocusCallback(EventHandlerCallRef handler, EventRef event, void *data) -+ { -+ assert(GetEventClass(event) == kEventClassControl -+ && GetEventKind(event) == kEventControlSetFocusPart); -+ -+ return paramErr; -+ } -+ -+ -+ // drawer callback to resize data browser to drawer size -+ static OSStatus -+ drawerCallback(EventHandlerCallRef handler, EventRef event, void *data) -+ { -+ switch (GetEventKind(event)) -+ { -+ case kEventWindowBoundsChanged: // move or resize -+ { -+ UInt32 attribs; -+ GetEventParameter(event, kEventParamAttributes, typeUInt32, -+ NULL, sizeof(attribs), NULL, &attribs); -+ if (attribs & kWindowBoundsChangeSizeChanged) // resize -+ { -+ Rect r; -+ GetWindowBounds(drawer, kWindowContentRgn, &r); -+ SetRect(&r, 0, 0, r.right - r.left, r.bottom - r.top); -+ SetControlBounds(dataBrowser, &r); -+ SetDataBrowserTableViewNamedColumnWidth(dataBrowser, -+ kTabsColumn, r.right); -+ } -+ } -+ break; -+ } -+ -+ return eventNotHandledErr; -+ } -+ -+ // Load DataBrowserChangeAttributes() dynamically on tiger (and better). -+ // This way the code works on 10.2 and 10.3 as well (it doesn't have the -+ // blue highlights in the list view on these systems, though. Oh well.) -+ -+ -+ #import -+ -+ enum { kMyDataBrowserAttributeListViewAlternatingRowColors = (1 << 1) }; -+ -+ static OSStatus -+ myDataBrowserChangeAttributes(ControlRef inDataBrowser, -+ OptionBits inAttributesToSet, -+ OptionBits inAttributesToClear) -+ { -+ long osVersion; -+ char *symbolName; -+ NSSymbol symbol = NULL; -+ OSStatus (*dataBrowserChangeAttributes)(ControlRef inDataBrowser, -+ OptionBits inAttributesToSet, OptionBits inAttributesToClear); -+ -+ Gestalt(gestaltSystemVersion, &osVersion); -+ if (osVersion < 0x1040) // only supported for 10.4 (and up) -+ return noErr; -+ -+ // C name mangling... -+ symbolName = "_DataBrowserChangeAttributes"; -+ if (!NSIsSymbolNameDefined(symbolName) -+ || (symbol = NSLookupAndBindSymbol(symbolName)) == NULL) -+ return noErr; -+ -+ dataBrowserChangeAttributes = NSAddressOfSymbol(symbol); -+ if (dataBrowserChangeAttributes == NULL) -+ return noErr; // well... -+ return dataBrowserChangeAttributes(inDataBrowser, -+ inAttributesToSet, inAttributesToClear); -+ } -+ -+ static void -+ initialise_tabline(void) -+ { -+ Rect drawerRect = { 0, 0, 0, DRAWER_SIZE }; -+ DataBrowserCallbacks dbCallbacks; -+ EventTypeSpec focusEvent = {kEventClassControl, kEventControlSetFocusPart}; -+ EventTypeSpec resizeEvent = {kEventClassWindow, kEventWindowBoundsChanged}; -+ DataBrowserListViewColumnDesc colDesc; -+ -+ // drawers have to have compositing enabled -+ CreateNewWindow(kDrawerWindowClass, -+ kWindowStandardHandlerAttribute -+ | kWindowCompositingAttribute -+ | kWindowResizableAttribute -+ | kWindowLiveResizeAttribute, -+ &drawerRect, &drawer); -+ -+ SetThemeWindowBackground(drawer, kThemeBrushDrawerBackground, true); -+ SetDrawerParent(drawer, gui.VimWindow); -+ SetDrawerOffsets(drawer, kWindowOffsetUnchanged, DRAWER_INSET); -+ -+ -+ // create list view embedded in drawer -+ CreateDataBrowserControl(drawer, &drawerRect, kDataBrowserListView, -+ &dataBrowser); -+ -+ dbCallbacks.version = kDataBrowserLatestCallbacks; -+ InitDataBrowserCallbacks(&dbCallbacks); -+ dbCallbacks.u.v1.itemDataCallback = -+ NewDataBrowserItemDataUPP(dbItemDataCallback); -+ dbCallbacks.u.v1.itemNotificationCallback = -+ NewDataBrowserItemNotificationUPP(dbItemNotificationCallback); -+ dbCallbacks.u.v1.getContextualMenuCallback = -+ NewDataBrowserGetContextualMenuUPP(dbGetContextualMenuCallback); -+ dbCallbacks.u.v1.selectContextualMenuCallback = -+ NewDataBrowserSelectContextualMenuUPP(dbSelectContextualMenuCallback); -+ -+ SetDataBrowserCallbacks(dataBrowser, &dbCallbacks); -+ -+ SetDataBrowserListViewHeaderBtnHeight(dataBrowser, 0); // no header -+ SetDataBrowserHasScrollBars(dataBrowser, false, true); // only vertical -+ SetDataBrowserSelectionFlags(dataBrowser, -+ kDataBrowserSelectOnlyOne | kDataBrowserNeverEmptySelectionSet); -+ SetDataBrowserTableViewHiliteStyle(dataBrowser, -+ kDataBrowserTableViewFillHilite); -+ Boolean b = false; -+ SetControlData(dataBrowser, kControlEntireControl, -+ kControlDataBrowserIncludesFrameAndFocusTag, sizeof(b), &b); -+ -+ // enable blue background in data browser (this is only in 10.4 and vim -+ // has to support older osx versions as well, so we have to load this -+ // function dynamically) -+ myDataBrowserChangeAttributes(dataBrowser, -+ kMyDataBrowserAttributeListViewAlternatingRowColors, 0); -+ -+ // install callback that keeps focus in vim and away from the data browser -+ InstallControlEventHandler(dataBrowser, dbFocusCallback, 1, &focusEvent, -+ NULL, NULL); -+ -+ // install callback that keeps data browser at the size of the drawer -+ InstallWindowEventHandler(drawer, drawerCallback, 1, &resizeEvent, -+ NULL, NULL); -+ -+ // add "tabs" column to data browser -+ colDesc.propertyDesc.propertyID = kTabsColumn; -+ colDesc.propertyDesc.propertyType = kDataBrowserTextType; -+ -+ // add if items can be selected (?): kDataBrowserListViewSelectionColumn -+ colDesc.propertyDesc.propertyFlags = kDataBrowserDefaultPropertyFlags; -+ -+ colDesc.headerBtnDesc.version = kDataBrowserListViewLatestHeaderDesc; -+ colDesc.headerBtnDesc.minimumWidth = 100; -+ colDesc.headerBtnDesc.maximumWidth = 150; -+ colDesc.headerBtnDesc.titleOffset = 0; -+ colDesc.headerBtnDesc.titleString = CFSTR("Tabs"); -+ colDesc.headerBtnDesc.initialOrder = kDataBrowserOrderIncreasing; -+ colDesc.headerBtnDesc.btnFontStyle.flags = 0; // use default font -+ colDesc.headerBtnDesc.btnContentInfo.contentType = kControlContentTextOnly; -+ -+ AddDataBrowserListViewColumn(dataBrowser, &colDesc, 0); -+ -+ // create tabline popup menu required by vim docs (see :he tabline-menu) -+ CreateNewMenu(kTabContextMenuId, 0, &contextMenu); -+ AppendMenuItemTextWithCFString(contextMenu, CFSTR("Close"), 0, -+ TABLINE_MENU_CLOSE, NULL); -+ AppendMenuItemTextWithCFString(contextMenu, CFSTR("New Tab"), 0, -+ TABLINE_MENU_NEW, NULL); -+ AppendMenuItemTextWithCFString(contextMenu, CFSTR("Open Tab..."), 0, -+ TABLINE_MENU_OPEN, NULL); -+ } -+ -+ -+ /* -+ * Show or hide the tabline. -+ */ -+ void -+ gui_mch_show_tabline(int showit) -+ { -+ if (showit == 0) -+ CloseDrawer(drawer, true); -+ else -+ OpenDrawer(drawer, kWindowEdgeRight, true); -+ } -+ -+ /* -+ * Return TRUE when tabline is displayed. -+ */ -+ int -+ gui_mch_showing_tabline(void) -+ { -+ WindowDrawerState state = GetDrawerState(drawer); -+ -+ return state == kWindowDrawerOpen || state == kWindowDrawerOpening; -+ } -+ -+ /* -+ * Update the labels of the tabline. -+ */ -+ void -+ gui_mch_update_tabline(void) -+ { -+ tabpage_T *tp; -+ int numTabs = getTabCount(); -+ int nr = 1; -+ int curtabidx = 1; -+ -+ // adjust data browser -+ if (tabLabels != NULL) -+ { -+ int i; -+ -+ for (i = 0; i < tabLabelsSize; ++i) -+ CFRelease(tabLabels[i]); -+ free(tabLabels); -+ } -+ tabLabels = (CFStringRef *)malloc(numTabs * sizeof(CFStringRef)); -+ tabLabelsSize = numTabs; -+ -+ for (tp = first_tabpage; tp != NULL; tp = tp->tp_next, ++nr) -+ { -+ if (tp == curtab) -+ curtabidx = nr; -+ tabLabels[nr-1] = getTabLabel(tp); -+ } -+ -+ RemoveDataBrowserItems(dataBrowser, kDataBrowserNoItem, 0, NULL, -+ kDataBrowserItemNoProperty); -+ // data browser uses ids 1, 2, 3, ... numTabs per default, so we -+ // can pass NULL for the id array -+ AddDataBrowserItems(dataBrowser, kDataBrowserNoItem, numTabs, NULL, -+ kDataBrowserItemNoProperty); -+ -+ DataBrowserItemID item = curtabidx; -+ SetDataBrowserSelectedItems(dataBrowser, 1, &item, kDataBrowserItemsAssign); -+ } -+ -+ /* -+ * Set the current tab to "nr". First tab is 1. -+ */ -+ void -+ gui_mch_set_curtab(nr) -+ int nr; -+ { -+ DataBrowserItemID item = nr; -+ SetDataBrowserSelectedItems(dataBrowser, 1, &item, kDataBrowserItemsAssign); -+ -+ // TODO: call something like this?: (or restore scroll position, or...) -+ RevealDataBrowserItem(dataBrowser, item, kTabsColumn, -+ kDataBrowserRevealOnly); -+ } -+ -+ #endif // FEAT_GUI_TABLINE -*** ../vim-7.0.231/src/proto/gui_mac.pro Tue Mar 28 23:01:02 2006 ---- src/proto/gui_mac.pro Thu Mar 15 20:23:42 2007 -*************** -*** 84,89 **** ---- 84,93 ---- - int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield)); - char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter)); - void gui_mch_set_foreground __ARGS((void)); -+ void gui_mch_show_tabline __ARGS((int showit)); -+ int gui_mch_showing_tabline __ARGS((void)); -+ void gui_mch_update_tabline __ARGS((void)); -+ void gui_mch_set_curtab __ARGS((int nr)); - - char_u *C2Pascal_save __ARGS((char_u *Cstring)); - char_u *C2Pascal_save_and_remove_backslash __ARGS((char_u *Cstring)); -*** ../vim-7.0.231/src/version.c Thu Apr 26 17:23:28 2007 ---- src/version.c Thu Apr 26 18:17:42 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 232, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -24. You realize there is not a sound in the house and you have no idea where - your children are. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.233 b/7.0.233 deleted file mode 100644 index 963b6a4f..00000000 --- a/7.0.233 +++ /dev/null @@ -1,421 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.233 (extra) -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.233 (extra) -Problem: Mac: code formatted badly. -Solution: Fix code formatting -Files: src/gui_mac.c - - -*** ../vim-7.0.232/src/gui_mac.c Thu Apr 26 18:22:12 2007 ---- src/gui_mac.c Fri Mar 16 11:26:05 2007 -*************** -*** 28,38 **** - * - */ - -! /* TODO (Jussi) -! * * Clipboard does not work (at least some cases) -! * * ATSU font rendering has some problems -! * * Investigate and remove dead code (there is still lots of that) -! */ - - #include /* included first to avoid CR problems */ - #include "vim.h" ---- 28,38 ---- - * - */ - -! /* TODO (Jussi) -! * * Clipboard does not work (at least some cases) -! * * ATSU font rendering has some problems -! * * Investigate and remove dead code (there is still lots of that) -! */ - - #include /* included first to avoid CR problems */ - #include "vim.h" -*************** -*** 504,512 **** - /* Get number of files in list */ - *error = AECountItems(theList, numFiles); - if (*error) -! { -! return(fnames); -! } - - /* Allocate the pointer list */ - fnames = (char_u **) alloc(*numFiles * sizeof(char_u *)); ---- 504,510 ---- - /* Get number of files in list */ - *error = AECountItems(theList, numFiles); - if (*error) -! return fnames; - - /* Allocate the pointer list */ - fnames = (char_u **) alloc(*numFiles * sizeof(char_u *)); -*************** -*** 526,532 **** - { - /* Caller is able to clean up */ - /* TODO: Should be clean up or not? For safety. */ -! return(fnames); - } - - /* Convert the FSSpec to a pathname */ ---- 524,530 ---- - { - /* Caller is able to clean up */ - /* TODO: Should be clean up or not? For safety. */ -! return fnames; - } - - /* Convert the FSSpec to a pathname */ -*************** -*** 589,603 **** - - error = AEGetParamPtr(theAEvent, keyDirectObject, typeChar, &typeCode, (Ptr) &SearchData, sizeof(WindowSearch), &actualSize); - if (error) -! { -! return(error); -! } - - error = HandleUnusedParms(theAEvent); - if (error) -! { -! return(error); -! } - - for (buf = firstbuf; buf != NULL; buf = buf->b_next) - if (buf->b_ml.ml_mfp != NULL ---- 587,597 ---- - - error = AEGetParamPtr(theAEvent, keyDirectObject, typeChar, &typeCode, (Ptr) &SearchData, sizeof(WindowSearch), &actualSize); - if (error) -! return error; - - error = HandleUnusedParms(theAEvent); - if (error) -! return error; - - for (buf = firstbuf; buf != NULL; buf = buf->b_next) - if (buf->b_ml.ml_mfp != NULL -*************** -*** 668,676 **** - - error = HandleUnusedParms(theAEvent); - if (error) -! { -! return(error); -! } - - /* Send the reply */ - /* replyObject.descriptorType = typeNull; ---- 662,668 ---- - - error = HandleUnusedParms(theAEvent); - if (error) -! return error; - - /* Send the reply */ - /* replyObject.descriptorType = typeNull; -*************** -*** 679,687 **** - /* AECreateDesc(typeChar, (Ptr)&title[1], title[0], &data) */ - error = AECreateList(nil, 0, false, &replyList); - if (error) -! { -! return(error); -! } - - #if 0 - error = AECountItems(&replyList, &numFiles); ---- 671,677 ---- - /* AECreateDesc(typeChar, (Ptr)&title[1], title[0], &data) */ - error = AECreateList(nil, 0, false, &replyList); - if (error) -! return error; - - #if 0 - error = AECountItems(&replyList, &numFiles); -*************** -*** 775,783 **** - error = AEGetParamPtr(theAEvent, keyDirectObject, typeChar, &typeCode, (Ptr) &GetTextData, sizeof(GetTextData), &actualSize); - - if (error) -! { -! return(error); -! } - - for (buf = firstbuf; buf != NULL; buf = buf->b_next) - if (buf->b_ml.ml_mfp != NULL) ---- 765,771 ---- - error = AEGetParamPtr(theAEvent, keyDirectObject, typeChar, &typeCode, (Ptr) &GetTextData, sizeof(GetTextData), &actualSize); - - if (error) -! return error; - - for (buf = firstbuf; buf != NULL; buf = buf->b_next) - if (buf->b_ml.ml_mfp != NULL) -*************** -*** 826,837 **** - } - - error = HandleUnusedParms(theAEvent); -- if (error) -- { -- return(error); -- } - -! return(error); - } - - /* ---- 814,821 ---- - } - - error = HandleUnusedParms(theAEvent); - -! return error; - } - - /* -*************** -*** 1017,1025 **** - /* the direct object parameter is the list of aliases to files (one or more) */ - error = AEGetParamDesc(theAEvent, keyDirectObject, typeAEList, &theList); - if (error) -! { -! return(error); -! } - - - error = AEGetParamPtr(theAEvent, keyAEPosition, typeChar, &typeCode, (Ptr) &thePosition, sizeof(SelectionRange), &actualSize); ---- 1001,1007 ---- - /* the direct object parameter is the list of aliases to files (one or more) */ - error = AEGetParamDesc(theAEvent, keyDirectObject, typeAEList, &theList); - if (error) -! return error; - - - error = AEGetParamPtr(theAEvent, keyAEPosition, typeChar, &typeCode, (Ptr) &thePosition, sizeof(SelectionRange), &actualSize); -*************** -*** 1028,1036 **** - if (error == errAEDescNotFound) - error = noErr; - if (error) -! { -! return(error); -! } - - /* - error = AEGetParamDesc(theAEvent, keyAEPosition, typeChar, &thePosition); ---- 1010,1016 ---- - if (error == errAEDescNotFound) - error = noErr; - if (error) -! return error; - - /* - error = AEGetParamDesc(theAEvent, keyAEPosition, typeChar, &thePosition); -*************** -*** 1134,1148 **** - /* Fake mouse event to wake from stall */ - PostEvent(mouseUp, 0); - -! finished: - AEDisposeDesc(&theList); /* dispose what we allocated */ - - error = HandleUnusedParms(theAEvent); -! if (error) -! { -! return(error); -! } -! return(error); - } - - /* ---- 1114,1124 ---- - /* Fake mouse event to wake from stall */ - PostEvent(mouseUp, 0); - -! finished: - AEDisposeDesc(&theList); /* dispose what we allocated */ - - error = HandleUnusedParms(theAEvent); -! return error; - } - - /* -*************** -*** 1158,1169 **** - OSErr error = noErr; - - error = HandleUnusedParms(theAEvent); -! if (error) -! { -! return(error); -! } -! -! return(error); - } - - /* ---- 1134,1140 ---- - OSErr error = noErr; - - error = HandleUnusedParms(theAEvent); -! return error; - } - - /* -*************** -*** 1180,1193 **** - - error = HandleUnusedParms(theAEvent); - if (error) -! { -! return(error); -! } - - /* Need to fake a :confirm qa */ - do_cmdline_cmd((char_u *)"confirm qa"); - -! return(error); - } - - /* ---- 1151,1162 ---- - - error = HandleUnusedParms(theAEvent); - if (error) -! return error; - - /* Need to fake a :confirm qa */ - do_cmdline_cmd((char_u *)"confirm qa"); - -! return error; - } - - /* -*************** -*** 1203,1214 **** - OSErr error = noErr; - - error = HandleUnusedParms(theAEvent); -- if (error) -- { -- return(error); -- } - -! return(error); - } - - /* ---- 1172,1179 ---- - OSErr error = noErr; - - error = HandleUnusedParms(theAEvent); - -! return error; - } - - /* -*************** -*** 1225,1236 **** - OSErr error = noErr; - - error = HandleUnusedParms(theAEvent); -- if (error) -- { -- return(error); -- } - -! return(error); - } - - ---- 1190,1197 ---- - OSErr error = noErr; - - error = HandleUnusedParms(theAEvent); - -! return error; - } - - -*************** -*** 2517,2523 **** - - return noErr; - -! bail: - /* - * when we fail give any additional callback handler a chance to perform - * it's actions ---- 2478,2484 ---- - - return noErr; - -! bail: - /* - * when we fail give any additional callback handler a chance to perform - * it's actions -*************** -*** 2907,2913 **** - #endif - - static OSErr -! receiveHandler(WindowRef theWindow, void* handlerRefCon, DragRef theDrag) - { - int x, y; - int_u modifiers; ---- 2868,2874 ---- - #endif - - static OSErr -! receiveHandler(WindowRef theWindow, void *handlerRefCon, DragRef theDrag) - { - int x, y; - int_u modifiers; -*************** -*** 4982,4988 **** - SetControl32BitMaximum (sb->id, max); - SetControl32BitMinimum (sb->id, 0); - SetControl32BitValue (sb->id, val); -! SetControlViewSize (sb->id, size); - #ifdef DEBUG_MAC_SB - printf("thumb_sb (%x) %x, %x,%x\n",sb->id, val, size, max); - #endif ---- 4943,4949 ---- - SetControl32BitMaximum (sb->id, max); - SetControl32BitMinimum (sb->id, 0); - SetControl32BitValue (sb->id, val); -! SetControlViewSize (sb->id, size); - #ifdef DEBUG_MAC_SB - printf("thumb_sb (%x) %x, %x,%x\n",sb->id, val, size, max); - #endif -*** ../vim-7.0.232/src/version.c Thu Apr 26 18:22:12 2007 ---- src/version.c Thu Apr 26 18:41:08 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 233, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -25. You believe nothing looks sexier than a man in boxer shorts illuminated - only by a 17" inch svga monitor. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.234 b/7.0.234 deleted file mode 100644 index 8cc3d793..00000000 --- a/7.0.234 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.234 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.234 -Problem: It's possible to use feedkeys() from a modeline. That is a - security issue, can be used for a trojan horse. -Solution: Disallow using feedkeys() in the sandbox. -Files: src/eval.c - - -*** ../vim-7.0.233/src/eval.c Thu Apr 26 17:08:16 2007 ---- src/eval.c Fri Apr 27 21:48:18 2007 -*************** -*** 9078,9083 **** ---- 9078,9089 ---- - int typed = FALSE; - char_u *keys_esc; - -+ /* This is not allowed in the sandbox. If the commands would still be -+ * executed in the sandbox it would be OK, but it probably happens later, -+ * when "sandbox" is no longer set. */ -+ if (check_secure()) -+ return; -+ - rettv->vval.v_number = 0; - keys = get_tv_string(&argvars[0]); - if (*keys != NUL) -*** ../vim-7.0.233/src/version.c Thu Apr 26 18:42:17 2007 ---- src/version.c Fri Apr 27 22:13:23 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 234, - /**/ - --- -"Making it up? Why should I want to make anything up? Life's bad enough -as it is without wanting to invent any more of it." - -- Marvin, the Paranoid Android in Douglas Adams' - "The Hitchhiker's Guide to the Galaxy" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.235 b/7.0.235 deleted file mode 100644 index b1d2690b..00000000 --- a/7.0.235 +++ /dev/null @@ -1,71 +0,0 @@ -To: vim-dev@vim.org -Subject: patch 7.0.235 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.0.235 -Problem: It is possible to use writefile() in the sandbox. -Solution: Add a few more checks for the sandbox. -Files: src/eval.c - - -*** ../vim-7.0.234/src/eval.c Fri Apr 27 22:17:43 2007 ---- src/eval.c Sat Apr 28 21:36:02 2007 -*************** -*** 15598,15603 **** ---- 15598,15606 ---- - int err = FALSE; - FILE *fd; - -+ if (check_restricted() || check_secure()) -+ return; -+ - if (argvars[1].v_type != VAR_UNKNOWN) - { - /* -*************** -*** 16430,16435 **** ---- 16433,16441 ---- - char_u *s; - int ret = 0; - int c; -+ -+ if (check_restricted() || check_secure()) -+ return; - - if (argvars[0].v_type != VAR_LIST) - { -*** ../vim-7.0.234/src/version.c Fri Apr 27 22:17:43 2007 ---- src/version.c Sun Apr 29 13:54:29 2007 -*************** -*** 668,669 **** ---- 668,671 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 235, - /**/ - --- -Now it is such a bizarrely improbable coincidence that anything as -mind-bogglingly useful as the Babel fish could have evolved purely by chance -that some thinkers have chosen to see it as a final and clinching proof of the -NON-existence of God. -The argument goes something like this: 'I refuse to prove that I exist,' says -God, 'for proof denies faith, and without faith I am nothing.' -'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not -have evolved by chance. It proves you exist, and so therefore, by your own -arguments, you don't. QED.' -'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a -puff of logic. -'Oh, that was easy,' says Man, and for an encore goes on to prove that black -is white and gets himself killed on the next pedestrian crossing. - -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.001 b/7.1.001 new file mode 100644 index 00000000..444e84c3 --- /dev/null +++ b/7.1.001 @@ -0,0 +1,75 @@ +To: vim-dev@vim.org +Subject: patch 7.1.001 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.001 +Problem: Still can't build with Gnome libraries. +Solution: Fix typo in bind_textdomain_codeset. (Mike Kelly) +Files: src/gui_gtk.c, src/gui_gtk_x11.c + + +*** ../vim-7.1.000/src/gui_gtk.c Thu May 10 20:27:29 2007 +--- src/gui_gtk.c Mon May 14 14:40:54 2007 +*************** +*** 53,60 **** + # ifdef bindtextdomain + # undef bindtextdomain + # endif +! # ifdef bindtextdomain_codeset +! # undef bindtextdomain_codeset + # endif + # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS) + # define ENABLE_NLS /* so the texts in the dialog boxes are translated */ +--- 53,60 ---- + # ifdef bindtextdomain + # undef bindtextdomain + # endif +! # ifdef bind_textdomain_codeset +! # undef bind_textdomain_codeset + # endif + # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS) + # define ENABLE_NLS /* so the texts in the dialog boxes are translated */ +*** ../vim-7.1.000/src/gui_gtk_x11.c Thu May 10 21:17:51 2007 +--- src/gui_gtk_x11.c Mon May 14 14:41:06 2007 +*************** +*** 36,43 **** + # ifdef bindtextdomain + # undef bindtextdomain + # endif +! # ifdef bindtextdomain_codeset +! # undef bindtextdomain_codeset + # endif + # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS) + # define ENABLE_NLS /* so the texts in the dialog boxes are translated */ +--- 36,43 ---- + # ifdef bindtextdomain + # undef bindtextdomain + # endif +! # ifdef bind_textdomain_codeset +! # undef bind_textdomain_codeset + # endif + # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS) + # define ENABLE_NLS /* so the texts in the dialog boxes are translated */ +*** ../vim-7.1.000/src/version.c Sat May 12 16:34:15 2007 +--- src/version.c Mon May 14 14:42:19 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +127. You bring your laptop and cellular phone to church. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.002 b/7.1.002 new file mode 100644 index 00000000..d75be05a --- /dev/null +++ b/7.1.002 @@ -0,0 +1,69 @@ +To: vim-dev@vim.org +Subject: patch 7.1.002 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.002 +Problem: Oracle Pro*C/C++ files are not detected. +Solution: Add the missing star. (Micah J. Cowan) +Files: runtime/filetype.vim + + +*** ../vim-7.1.001/runtime/filetype.vim Thu May 10 20:42:30 2007 +--- runtime/filetype.vim Tue May 15 09:12:06 2007 +*************** +*** 1,7 **** + " Vim support file to detect file types + " + " Maintainer: Bram Moolenaar +! " Last Change: 2007 May 10 + + " Listen very carefully, I will say this only once + if exists("did_load_filetypes") +--- 1,7 ---- + " Vim support file to detect file types + " + " Maintainer: Bram Moolenaar +! " Last Change: 2007 May 15 + + " Listen very carefully, I will say this only once + if exists("did_load_filetypes") +*************** +*** 1286,1292 **** + au BufNewFile,BufRead *.it,*.ih setf ppwiz + + " Oracle Pro*C/C++ +! au BufNewFile,BufRead .pc setf proc + + " Privoxy actions file + au BufNewFile,BufRead *.action setf privoxy +--- 1286,1292 ---- + au BufNewFile,BufRead *.it,*.ih setf ppwiz + + " Oracle Pro*C/C++ +! au BufNewFile,BufRead *.pc setf proc + + " Privoxy actions file + au BufNewFile,BufRead *.action setf privoxy +*** ../vim-7.1.001/src/version.c Mon May 14 19:35:51 2007 +--- src/version.c Tue May 15 09:13:11 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 2, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +132. You come back and check this list every half-hour. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.003 b/7.1.003 new file mode 100644 index 00000000..4beb4348 --- /dev/null +++ b/7.1.003 @@ -0,0 +1,48 @@ +To: vim-dev@vim.org +Subject: patch 7.1.003 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.003 (extra) +Problem: The "Tear off this menu" message appears in the message history + when using a menu. (Yongwei Wu) +Solution: Disable message history when displaying the menu tip. +Files: src/gui_w32.c + + +*** ../vim-7.1.002/src/gui_w32.c Thu May 10 22:17:22 2007 +--- src/gui_w32.c Sat Jun 9 13:43:07 2007 +*************** +*** 1051,1057 **** +--- 1051,1059 ---- + if (pMenu != NULL && pMenu->strings[MENU_INDEX_TIP] != 0 + && GetMenuState(s_menuBar, pMenu->id, MF_BYCOMMAND) != -1) + { ++ ++msg_hist_off; + msg(pMenu->strings[MENU_INDEX_TIP]); ++ --msg_hist_off; + setcursor(); + out_flush(); + did_menu_tip = TRUE; +*** ../vim-7.1.002/src/version.c Tue May 15 09:14:33 2007 +--- src/version.c Tue Jun 19 10:08:17 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 3, + /**/ + +-- +In his lifetime van Gogh painted 486 oil paintings. Oddly enough, 8975 +of them are to be found in the United States. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.004 b/7.1.004 new file mode 100644 index 00000000..ce28af8a --- /dev/null +++ b/7.1.004 @@ -0,0 +1,73 @@ +To: vim-dev@vim.org +Subject: patch 7.1.004 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.004 +Problem: Crash when doing ":next directory". (Raphael Finkel) +Solution: Do not use "buf", it may be invalid after autocommands. +Files: src/ex_cmds.c + + +*** ../vim-7.1.003/src/ex_cmds.c Thu May 10 21:24:24 2007 +--- src/ex_cmds.c Mon Jun 18 22:03:56 2007 +*************** +*** 3367,3373 **** + * was in this window (or another window). If not used + * before, reset the local window options to the global + * values. Also restores old folding stuff. */ +! get_winopts(buf); + #ifdef FEAT_SPELL + did_get_winopts = TRUE; + #endif +--- 3367,3373 ---- + * was in this window (or another window). If not used + * before, reset the local window options to the global + * values. Also restores old folding stuff. */ +! get_winopts(curbuf); + #ifdef FEAT_SPELL + did_get_winopts = TRUE; + #endif +*************** +*** 3649,3656 **** + #ifdef FEAT_SPELL + /* If the window options were changed may need to set the spell language. + * Can only do this after the buffer has been properly setup. */ +! if (did_get_winopts && curwin->w_p_spell && *buf->b_p_spl != NUL) +! did_set_spelllang(buf); + #endif + + if (command == NULL) +--- 3649,3656 ---- + #ifdef FEAT_SPELL + /* If the window options were changed may need to set the spell language. + * Can only do this after the buffer has been properly setup. */ +! if (did_get_winopts && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! did_set_spelllang(curbuf); + #endif + + if (command == NULL) +*** ../vim-7.1.003/src/version.c Tue Jun 19 10:09:15 2007 +--- src/version.c Tue Jun 19 11:53:34 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 4, + /**/ + +-- +FIRST HEAD: Oh! quick! get the sword out I want to cut his head off. +THIRD HEAD: Oh, cut your own head off. +SECOND HEAD: Yes - do us all a favour. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.005 b/7.1.005 new file mode 100644 index 00000000..273b1f5c --- /dev/null +++ b/7.1.005 @@ -0,0 +1,149 @@ +To: vim-dev@vim.org +Subject: patch 7.1.005 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.005 +Problem: "cit" used on deletes . Should not delete + anything and start insertion, like "ci'" does on "". (Michal + Bozon) +Solution: Handle an empty object specifically. Made it work consistent for + various text objects. +Files: src/search.c + + +*** ../vim-7.1.004/src/search.c Thu May 10 20:54:46 2007 +--- src/search.c Mon Jun 4 12:31:04 2007 +*************** +*** 3600,3612 **** + { + oap->start = start_pos; + oap->motion_type = MCHAR; + if (sol) +- { + incl(&curwin->w_cursor); +! oap->inclusive = FALSE; +! } +! else + oap->inclusive = TRUE; + } + + return OK; +--- 3600,3615 ---- + { + oap->start = start_pos; + oap->motion_type = MCHAR; ++ oap->inclusive = FALSE; + if (sol) + incl(&curwin->w_cursor); +! else if (lt(start_pos, curwin->w_cursor)) +! /* Include the character under the cursor. */ + oap->inclusive = TRUE; ++ else ++ /* End is before the start (no text in between <>, [], etc.): don't ++ * operate on any text. */ ++ curwin->w_cursor = start_pos; + } + + return OK; +*************** +*** 3734,3740 **** + + if (in_html_tag(FALSE)) + { +! /* cursor on start tag, move to just after it */ + while (*ml_get_cursor() != '>') + if (inc_cursor() < 0) + break; +--- 3737,3743 ---- + + if (in_html_tag(FALSE)) + { +! /* cursor on start tag, move to its '>' */ + while (*ml_get_cursor() != '>') + if (inc_cursor() < 0) + break; +*************** +*** 3838,3844 **** + /* Exclude the start tag. */ + curwin->w_cursor = start_pos; + while (inc_cursor() >= 0) +! if (*ml_get_cursor() == '>' && lt(curwin->w_cursor, end_pos)) + { + inc_cursor(); + start_pos = curwin->w_cursor; +--- 3841,3847 ---- + /* Exclude the start tag. */ + curwin->w_cursor = start_pos; + while (inc_cursor() >= 0) +! if (*ml_get_cursor() == '>') + { + inc_cursor(); + start_pos = curwin->w_cursor; +*************** +*** 3860,3866 **** + #ifdef FEAT_VISUAL + if (VIsual_active) + { +! if (*p_sel == 'e') + ++curwin->w_cursor.col; + VIsual = start_pos; + VIsual_mode = 'v'; +--- 3863,3873 ---- + #ifdef FEAT_VISUAL + if (VIsual_active) + { +! /* If the end is before the start there is no text between tags, select +! * the char under the cursor. */ +! if (lt(end_pos, start_pos)) +! curwin->w_cursor = start_pos; +! else if (*p_sel == 'e') + ++curwin->w_cursor.col; + VIsual = start_pos; + VIsual_mode = 'v'; +*************** +*** 3872,3878 **** + { + oap->start = start_pos; + oap->motion_type = MCHAR; +! oap->inclusive = TRUE; + } + retval = OK; + +--- 3879,3893 ---- + { + oap->start = start_pos; + oap->motion_type = MCHAR; +! if (lt(end_pos, start_pos)) +! { +! /* End is before the start: there is no text between tags; operate +! * on an empty area. */ +! curwin->w_cursor = start_pos; +! oap->inclusive = FALSE; +! } +! else +! oap->inclusive = TRUE; + } + retval = OK; + +*** ../vim-7.1.004/src/version.c Tue Jun 19 11:54:23 2007 +--- src/version.c Tue Jun 19 12:57:03 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 5, + /**/ + +-- +Life would be so much easier if we could just look at the source code. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.006 b/7.1.006 new file mode 100644 index 00000000..510c9017 --- /dev/null +++ b/7.1.006 @@ -0,0 +1,85 @@ +To: vim-dev@vim.org +Subject: patch 7.1.006 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.006 +Problem: Resetting 'modified' in a StdinReadPost autocommand doesn't work. +Solution: Set 'modified' before the autocommands instead of after it. +Files: src/buffer.c + + +*** ../vim-7.1.005/src/buffer.c Thu May 10 18:43:46 2007 +--- src/buffer.c Fri Jun 8 20:59:04 2007 +*************** +*** 171,176 **** +--- 171,183 ---- + /* Put the cursor on the first line. */ + curwin->w_cursor.lnum = 1; + curwin->w_cursor.col = 0; ++ ++ /* Set or reset 'modified' before executing autocommands, so that ++ * it can be changed there. */ ++ if (!readonlymode && !bufempty()) ++ changed(); ++ else if (retval != FAIL) ++ unchanged(curbuf, FALSE); + #ifdef FEAT_AUTOCMD + # ifdef FEAT_EVAL + apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE, +*************** +*** 194,209 **** + /* When reading stdin, the buffer contents always needs writing, so set + * the changed flag. Unless in readonly mode: "ls | gview -". + * When interrupted and 'cpoptions' contains 'i' set changed flag. */ +! if ((read_stdin && !readonlymode && !bufempty()) + #ifdef FEAT_AUTOCMD + || modified_was_set /* ":set modified" used in autocmd */ + # ifdef FEAT_EVAL + || (aborting() && vim_strchr(p_cpo, CPO_INTMOD) != NULL) + # endif + #endif +! || (got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL)) + changed(); +! else if (retval != FAIL) + unchanged(curbuf, FALSE); + save_file_ff(curbuf); /* keep this fileformat */ + +--- 201,216 ---- + /* When reading stdin, the buffer contents always needs writing, so set + * the changed flag. Unless in readonly mode: "ls | gview -". + * When interrupted and 'cpoptions' contains 'i' set changed flag. */ +! if ((got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL) + #ifdef FEAT_AUTOCMD + || modified_was_set /* ":set modified" used in autocmd */ + # ifdef FEAT_EVAL + || (aborting() && vim_strchr(p_cpo, CPO_INTMOD) != NULL) + # endif + #endif +! ) + changed(); +! else if (retval != FAIL && !read_stdin) + unchanged(curbuf, FALSE); + save_file_ff(curbuf); /* keep this fileformat */ + +*** ../vim-7.1.005/src/version.c Tue Jun 19 12:58:55 2007 +--- src/version.c Tue Jun 19 15:37:53 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 6, + /**/ + +-- +If I tell you "you have a beautiful body", would you hold it against me? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.007 b/7.1.007 new file mode 100644 index 00000000..cdd1d4d4 --- /dev/null +++ b/7.1.007 @@ -0,0 +1,221 @@ +To: vim-dev@vim.org +Subject: patch 7.1.007 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.007 (extra) +Problem: Mac: Context menu doesn't work on Intel Macs. + Scrollbars are not dimmed when Vim is not the active application. +Solution: Remove the test whether context menus are supported. They are + always there in OS/X. Handle the dimming. (Nicolas Weber) +Files: src/gui_mac.c, src/gui.h + + +*** ../vim-7.1.006/src/gui_mac.c Thu May 10 20:07:25 2007 +--- src/gui_mac.c Sat Jun 9 14:19:25 2007 +*************** +*** 1676,1688 **** + /* TODO: NEEDED? */ + clickIsPopup = FALSE; + +! if ((gui.MacOSHaveCntxMenu) && (mouse_model_popup())) +! if (IsShowContextualMenuClick(theEvent)) +! { +! vimMouseButton = MOUSE_RIGHT; +! vimModifiers &= ~MOUSE_CTRL; +! clickIsPopup = TRUE; +! } + + /* Is it a double click ? */ + dblClick = ((theEvent->when - lastMouseTick) < GetDblTime()); +--- 1676,1687 ---- + /* TODO: NEEDED? */ + clickIsPopup = FALSE; + +! if (mouse_model_popup() && IsShowContextualMenuClick(theEvent)) +! { +! vimMouseButton = MOUSE_RIGHT; +! vimModifiers &= ~MOUSE_CTRL; +! clickIsPopup = TRUE; +! } + + /* Is it a double click ? */ + dblClick = ((theEvent->when - lastMouseTick) < GetDblTime()); +*************** +*** 1920,1943 **** + WindowPtr whichWindow; + + whichWindow = (WindowPtr) event->message; +! if ((event->modifiers) & activeFlag) +! /* Activate */ +! gui_focus_change(TRUE); +! else + { +! /* Deactivate */ +! gui_focus_change(FALSE); +! /* DON'T KNOW what the code below was doing +! found in the deactivate clause, but the +! clause writing TRUE into in_focus (BUG) +! */ +! +! #if 0 /* Removed by Dany as per above June 2001 */ +! a_bool = false; +! SetPreserveGlyph(a_bool); +! SetOutlinePreferred(a_bool); +! #endif + } + } + + +--- 1919,1937 ---- + WindowPtr whichWindow; + + whichWindow = (WindowPtr) event->message; +! /* Dim scrollbars */ +! if (whichWindow == gui.VimWindow) + { +! ControlRef rootControl; +! GetRootControl(gui.VimWindow, &rootControl); +! if ((event->modifiers) & activeFlag) +! ActivateControl(rootControl); +! else +! DeactivateControl(rootControl); + } ++ ++ /* Activate */ ++ gui_focus_change((event->modifiers) & activeFlag); + } + + +*************** +*** 2559,2574 **** + OSErr error; + + /* Handle contextual menu right now (if needed) */ +! if (gui.MacOSHaveCntxMenu) +! if (IsShowContextualMenuClick(event)) +! { + # if 0 +! gui_mac_handle_contextual_menu(event); + # else +! gui_mac_doMouseDownEvent(event); + # endif +! return; +! } + + /* Handle normal event */ + switch (event->what) +--- 2553,2567 ---- + OSErr error; + + /* Handle contextual menu right now (if needed) */ +! if (IsShowContextualMenuClick(event)) +! { + # if 0 +! gui_mac_handle_contextual_menu(event); + # else +! gui_mac_doMouseDownEvent(event); + # endif +! return; +! } + + /* Handle normal event */ + switch (event->what) +*************** +*** 2782,2795 **** + (void) InstallAEHandlers(); + #endif + +- if (Gestalt(gestaltContextualMenuAttr, &gestalt_rc) == noErr) +- gui.MacOSHaveCntxMenu = BitTst(&gestalt_rc, 31-gestaltContextualMenuTrapAvailable); +- else +- gui.MacOSHaveCntxMenu = false; +- +- if (gui.MacOSHaveCntxMenu) +- gui.MacOSHaveCntxMenu = (InitContextualMenus()==noErr); +- + pomme = NewMenu(256, "\p\024"); /* 0x14= = Apple Menu */ + + AppendMenu(pomme, "\pAbout VIM"); +--- 2775,2780 ---- +*************** +*** 2941,2946 **** +--- 2926,2932 ---- + #ifdef USE_CARBONKEYHANDLER + EventHandlerRef keyEventHandlerRef; + #endif ++ ControlRef rootControl; + + if (Gestalt(gestaltSystemVersion, &gMacSystemVersion) != noErr) + gMacSystemVersion = 0x1000; /* TODO: Default to minimum sensible value */ +*************** +*** 2954,2968 **** + (void) InstallAEHandlers(); + #endif + +- /* Ctrl click */ +- if (Gestalt(gestaltContextualMenuAttr, &gestalt_rc) == noErr) +- gui.MacOSHaveCntxMenu = BitTst(&gestalt_rc, 31-gestaltContextualMenuTrapAvailable); +- else +- gui.MacOSHaveCntxMenu = false; +- +- if (gui.MacOSHaveCntxMenu) +- gui.MacOSHaveCntxMenu = (InitContextualMenus()==noErr); +- + pomme = NewMenu(256, "\p\024"); /* 0x14= = Apple Menu */ + + AppendMenu(pomme, "\pAbout VIM"); +--- 2940,2945 ---- +*************** +*** 2981,2986 **** +--- 2958,2964 ---- + gui.VimWindow = NewCWindow(nil, &windRect, "\pgVim on Macintosh", true, + zoomDocProc, + (WindowPtr)-1L, true, 0); ++ CreateRootControl(gui.VimWindow, &rootControl); + InstallReceiveHandler((DragReceiveHandlerUPP)receiveHandler, + gui.VimWindow, NULL); + SetPortWindowPort(gui.VimWindow); +*** ../vim-7.1.006/src/gui.h Thu May 10 19:18:46 2007 +--- src/gui.h Sat Jun 9 14:10:34 2007 +*************** +*** 460,466 **** + WindowPtr VimWindow; + MenuHandle MacOSHelpMenu; /* Help menu provided by the MacOS */ + int MacOSHelpItems; /* Nr of help-items supplied by MacOS */ +- int MacOSHaveCntxMenu; /* Contextual menu available */ + WindowPtr wid; /* Window id of text area */ + int visibility; /* Is window partially/fully obscured? */ + #endif +--- 460,465 ---- +*** ../vim-7.1.006/src/version.c Tue Jun 19 15:40:51 2007 +--- src/version.c Tue Jun 19 15:44:15 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 7, + /**/ + +-- + When danger reared its ugly head, + He bravely turned his tail and fled + Yes, Brave Sir Robin turned about + And gallantly he chickened out + Bravely taking to his feet + He beat a very brave retreat + Bravest of the brave Sir Robin + Petrified of being dead + Soiled his pants then brave Sir Robin + Turned away and fled. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.008 b/7.1.008 new file mode 100644 index 00000000..092009d3 --- /dev/null +++ b/7.1.008 @@ -0,0 +1,82 @@ +To: vim-dev@vim.org +Subject: patch 7.1.008 (correction +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Oops, forgot the src/version.c change. + +Patch 7.1.008 +Problem: getfsize() returns a negative number for very big files. +Solution: Check for overflow and return -2. +Files: runtime/doc/eval.txt, src/eval.c + + +*** ../vim-7.1.007/runtime/doc/eval.txt Sat May 12 16:38:23 2007 +--- runtime/doc/eval.txt Sat Jun 9 15:48:40 2007 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.1. Last change: 2007 May 11 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.1. Last change: 2007 Jun 09 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 2824,2829 **** +--- 2824,2831 ---- + given file {fname}. + If {fname} is a directory, 0 is returned. + If the file {fname} can't be found, -1 is returned. ++ If the size of {fname} is too big to fit in a Number then -2 ++ is returned. + + getfontname([{name}]) *getfontname()* + Without an argument returns the name of the normal font being +*** ../vim-7.1.007/src/eval.c Thu May 10 21:30:00 2007 +--- src/eval.c Sat Jun 9 15:46:46 2007 +*************** +*** 10136,10142 **** +--- 10136,10148 ---- + if (mch_isdir(fname)) + rettv->vval.v_number = 0; + else ++ { + rettv->vval.v_number = (varnumber_T)st.st_size; ++ ++ /* non-perfect check for overflow */ ++ if ((off_t)rettv->vval.v_number != (off_t)st.st_size) ++ rettv->vval.v_number = -2; ++ } + } + else + rettv->vval.v_number = -1; +*** ../vim-7.1.007/src/version.c Tue Jun 19 16:33:53 2007 +--- src/version.c Tue Jun 19 17:30:50 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 8, + /**/ + + +-- +ZOOT: I'm afraid our life must seem very dull and quiet compared to yours. + We are but eightscore young blondes, all between sixteen and + nineteen-and-a-half, cut off in this castle, with no one to protect us. + Oooh. It is a lonely life ... bathing ... dressing ... undressing ... + making exciting underwear.... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.009 b/7.1.009 new file mode 100644 index 00000000..a81c1bee --- /dev/null +++ b/7.1.009 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: patch 7.1.009 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.009 +Problem: In diff mode, displaying the difference between a tab and spaces + is not highlighted correctly. +Solution: Only change highlighting at the end of displaying a tab. +Files: src/screen.c + + +*** ../vim-7.1.008/src/screen.c Thu May 10 20:15:31 2007 +--- src/screen.c Mon Jun 11 21:49:44 2007 +*************** +*** 3459,3467 **** + #ifdef FEAT_DIFF + if (diff_hlf != (hlf_T)0) + { +! if (diff_hlf == HLF_CHD && ptr - line >= change_start) + diff_hlf = HLF_TXD; /* changed text */ +! if (diff_hlf == HLF_TXD && ptr - line > change_end) + diff_hlf = HLF_CHD; /* changed line */ + line_attr = hl_attr(diff_hlf); + } +--- 3459,3469 ---- + #ifdef FEAT_DIFF + if (diff_hlf != (hlf_T)0) + { +! if (diff_hlf == HLF_CHD && ptr - line >= change_start +! && n_extra == 0) + diff_hlf = HLF_TXD; /* changed text */ +! if (diff_hlf == HLF_TXD && ptr - line > change_end +! && n_extra == 0) + diff_hlf = HLF_CHD; /* changed line */ + line_attr = hl_attr(diff_hlf); + } +*** ../vim-7.1.008/src/version.c Tue Jun 19 17:33:52 2007 +--- src/version.c Tue Jun 19 17:36:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 9, + /**/ + +-- +Linux is just like a wigwam: no Windows, no Gates and an Apache inside. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.010 b/7.1.010 new file mode 100644 index 00000000..ee8c03a8 --- /dev/null +++ b/7.1.010 @@ -0,0 +1,75 @@ +To: vim-dev@vim.org +Subject: patch 7.1.010 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.010 +Problem: The Gnome session file doesn't restore tab pages. +Solution: Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio) +Files: src/gui_gtk_x11.c + + +*** ../vim-7.1.009/src/gui_gtk_x11.c Mon May 14 19:35:51 2007 +--- src/gui_gtk_x11.c Sat Jun 9 16:54:13 2007 +*************** +*** 2188,2195 **** + escaped_filename = vim_strsave_escaped(filename, escape_chars); + if (escaped_filename == NULL) + return FALSE; +! mksession_cmdline = g_strconcat("mksession ", (char *)escaped_filename, NULL); + vim_free(escaped_filename); + /* + * Use a reasonable hardcoded set of 'sessionoptions' flags to avoid + * unpredictable effects when the session is saved automatically. Also, +--- 2188,2197 ---- + escaped_filename = vim_strsave_escaped(filename, escape_chars); + if (escaped_filename == NULL) + return FALSE; +! mksession_cmdline = g_strconcat("mksession ", (char *)escaped_filename, +! NULL); + vim_free(escaped_filename); ++ + /* + * Use a reasonable hardcoded set of 'sessionoptions' flags to avoid + * unpredictable effects when the session is saved automatically. Also, +*************** +*** 2199,2205 **** + */ + save_ssop_flags = ssop_flags; + ssop_flags = (SSOP_BLANK|SSOP_CURDIR|SSOP_FOLDS|SSOP_GLOBALS +! |SSOP_HELP|SSOP_OPTIONS|SSOP_WINSIZE); + + do_cmdline_cmd((char_u *)"let Save_VV_this_session = v:this_session"); + failed = (do_cmdline_cmd((char_u *)mksession_cmdline) == FAIL); +--- 2201,2207 ---- + */ + save_ssop_flags = ssop_flags; + ssop_flags = (SSOP_BLANK|SSOP_CURDIR|SSOP_FOLDS|SSOP_GLOBALS +! |SSOP_HELP|SSOP_OPTIONS|SSOP_WINSIZE|SSOP_TABPAGES); + + do_cmdline_cmd((char_u *)"let Save_VV_this_session = v:this_session"); + failed = (do_cmdline_cmd((char_u *)mksession_cmdline) == FAIL); +*** ../vim-7.1.009/src/version.c Tue Jun 19 17:49:12 2007 +--- src/version.c Tue Jun 19 18:07:09 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 10, + /**/ + +-- +GALAHAD: No look, really, this isn't nescess ... +PIGLET: We must examine you. +GALAHAD: There's nothing wrong with ... that. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.011 b/7.1.011 new file mode 100644 index 00000000..6322cb15 --- /dev/null +++ b/7.1.011 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: patch 7.1.011 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.011 +Problem: Possible buffer overflow when $VIMRUNTIME is very long. (Victor + Stinner) +Solution: Use vim_snprintf(). +Files: src/main.c + + +*** ../vim-7.1.010/src/main.c Thu May 10 21:12:25 2007 +--- src/main.c Sat Jun 9 22:37:46 2007 +*************** +*** 1360,1367 **** + p = vim_getenv((char_u *)"VIMRUNTIME", &mustfree); + if (p != NULL && *p != NUL) + { +! STRCPY(NameBuff, p); +! STRCAT(NameBuff, "/lang"); + bindtextdomain(VIMPACKAGE, (char *)NameBuff); + } + if (mustfree) +--- 1360,1366 ---- + p = vim_getenv((char_u *)"VIMRUNTIME", &mustfree); + if (p != NULL && *p != NUL) + { +! vim_snprintf((char *)NameBuff, MAXPATHL, "%s/lang", p); + bindtextdomain(VIMPACKAGE, (char *)NameBuff); + } + if (mustfree) +*** ../vim-7.1.010/src/version.c Tue Jun 19 18:07:52 2007 +--- src/version.c Tue Jun 19 20:29:44 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 11, + /**/ + +-- + GALAHAD hurries to the door and pushes through it. As he leaves the room + we CUT TO the reverse to show that he is now in a room full of bathing + and romping GIRLIES, all innocent, wide-eyed and beautiful. They smile + enchantingly at him as he tries to keep walking without being diverted by + the lovely sights assaulting his eyeballs. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.012 b/7.1.012 new file mode 100644 index 00000000..97ce9040 --- /dev/null +++ b/7.1.012 @@ -0,0 +1,62 @@ +To: vim-dev@vim.org +Subject: patch 7.1.012 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.012 +Problem: ":let &shiftwidth = 'asdf'" doesn't produce an error message. +Solution: Check for a string argument. (Chris Lubinski) +Files: src/option.c + + +*** ../vim-7.1.011/src/option.c Sun May 6 15:37:32 2007 +--- src/option.c Tue Jun 19 20:56:36 2007 +*************** +*** 8219,8224 **** +--- 8219,8243 ---- + varp = get_varp(&options[opt_idx]); + if (varp != NULL) /* hidden option is not changed */ + { ++ if (number == 0 && string != NULL) ++ { ++ int index; ++ ++ /* Either we are given a string or we are setting option ++ * to zero. */ ++ for (index = 0; string[index] == '0'; ++index) ++ ; ++ if (string[index] != NUL || index == 0) ++ { ++ /* There's another character after zeros or the string ++ * is empty. In both cases, we are trying to set a ++ * num option using a string. */ ++ EMSG3(_("E521: Number required: &%s = '%s'"), ++ name, string); ++ return; /* do nothing as we hit an error */ ++ ++ } ++ } + if (flags & P_NUM) + (void)set_num_option(opt_idx, varp, number, + NULL, 0, opt_flags); +*** ../vim-7.1.011/src/version.c Tue Jun 19 20:30:46 2007 +--- src/version.c Tue Jun 19 20:53:15 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 12, + /**/ + +-- +Ten million Linux users can't be wrong! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.013 b/7.1.013 new file mode 100644 index 00000000..83b224a1 --- /dev/null +++ b/7.1.013 @@ -0,0 +1,60 @@ +To: vim-dev@vim.org +Subject: patch 7.1.013 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.013 +Problem: ":syn include" only loads the first file, while it is documented + as doing the equivalent of ":runtime!". +Solution: Change the argument to source_runtime(). (James Vega) +Files: src/syntax.c + + +*** ../vim-7.1.012/src/syntax.c Thu May 10 20:54:33 2007 +--- src/syntax.c Sun Jun 17 22:03:30 2007 +*************** +*** 4460,4467 **** + current_syn_inc_tag = ++running_syn_inc_tag; + prev_toplvl_grp = curbuf->b_syn_topgrp; + curbuf->b_syn_topgrp = sgl_id; +! if (source ? do_source(eap->arg, FALSE, FALSE) == FAIL +! : source_runtime(eap->arg, DOSO_NONE) == FAIL) + EMSG2(_(e_notopen), eap->arg); + curbuf->b_syn_topgrp = prev_toplvl_grp; + current_syn_inc_tag = prev_syn_inc_tag; +--- 4460,4467 ---- + current_syn_inc_tag = ++running_syn_inc_tag; + prev_toplvl_grp = curbuf->b_syn_topgrp; + curbuf->b_syn_topgrp = sgl_id; +! if (source ? do_source(eap->arg, FALSE, DOSO_NONE) == FAIL +! : source_runtime(eap->arg, TRUE) == FAIL) + EMSG2(_(e_notopen), eap->arg); + curbuf->b_syn_topgrp = prev_toplvl_grp; + current_syn_inc_tag = prev_syn_inc_tag; +*** ../vim-7.1.012/src/version.c Tue Jun 19 20:56:52 2007 +--- src/version.c Thu Jun 28 11:58:25 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 13, + /**/ + +-- +MORTICIAN: What? +CUSTOMER: Nothing -- here's your nine pence. +DEAD PERSON: I'm not dead! +MORTICIAN: Here -- he says he's not dead! +CUSTOMER: Yes, he is. +DEAD PERSON: I'm not! + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.014 b/7.1.014 new file mode 100644 index 00000000..5b5b1dee --- /dev/null +++ b/7.1.014 @@ -0,0 +1,46 @@ +To: vim-dev@vim.org +Subject: patch 7.1.014 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.014 +Problem: Crash when doing C indenting. (Chris Monson) +Solution: Obtain the current line again after invoking cin_islabel(). +Files: src/edit.c + + +*** ../vim-7.1.013/src/edit.c Thu May 10 20:44:18 2007 +--- src/edit.c Wed Jun 20 18:25:54 2007 +*************** +*** 7215,7220 **** +--- 7215,7222 ---- + p = ml_get_curline(); + if (cin_iscase(p) || cin_isscopedecl(p) || cin_islabel(30)) + return TRUE; ++ /* Need to get the line again after cin_islabel(). */ ++ p = ml_get_curline(); + if (curwin->w_cursor.col > 2 + && p[curwin->w_cursor.col - 1] == ':' + && p[curwin->w_cursor.col - 2] == ':') +*** ../vim-7.1.013/src/version.c Thu Jun 28 11:59:13 2007 +--- src/version.c Thu Jun 28 12:26:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 14, + /**/ + +-- +Have you heard about the new Barbie doll? It's called Divorce +Barbie. It comes with all of Ken's stuff. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.015 b/7.1.015 new file mode 100644 index 00000000..0dedb235 --- /dev/null +++ b/7.1.015 @@ -0,0 +1,97 @@ +To: vim-dev@vim.org +Subject: patch 7.1.015 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.015 +Problem: MzScheme interface: current-library-collection-paths produces no + list. Interface doesn't build on a Mac. +Solution: Use a list instead of a pair. (Bernhard Fisseni) Use "-framework" + argument for MZSCHEME_LIBS in configure. +Files: src/configure.in, src/if_mzsch.c, src/auto/configure + + +*** ../vim-7.1.014/src/configure.in Sat May 12 16:30:49 2007 +--- src/configure.in Sun Jun 10 16:47:43 2007 +*************** +*** 423,429 **** + fi + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then +! if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a" + else + MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc" +--- 423,431 ---- + fi + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then +! if test "x$MACOSX" = "xyes"; then +! MZSCHEME_LIBS="-framework PLT_MzScheme" +! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a" + else + MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc" +*** ../vim-7.1.014/src/if_mzsch.c Sat May 12 17:29:20 2007 +--- src/if_mzsch.c Sun Jun 10 16:39:51 2007 +*************** +*** 773,780 **** + #ifdef MZSCHEME_COLLECTS + /* setup 'current-library-collection-paths' parameter */ + scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS, +! scheme_make_pair(scheme_make_string(MZSCHEME_COLLECTS), +! scheme_null)); + #endif + #ifdef HAVE_SANDBOX + /* setup sandbox guards */ +--- 773,779 ---- + #ifdef MZSCHEME_COLLECTS + /* setup 'current-library-collection-paths' parameter */ + scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS, +! scheme_build_list(0, scheme_make_string(MZSCHEME_COLLECTS))); + #endif + #ifdef HAVE_SANDBOX + /* setup sandbox guards */ +*** ../vim-7.1.014/src/auto/configure Sat May 12 16:23:27 2007 +--- src/auto/configure Sun Jun 10 16:49:58 2007 +*************** +*** 3843,3849 **** + fi + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then +! if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a" + else + MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc" +--- 3843,3851 ---- + fi + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then +! if test "x$MACOSX" = "xyes"; then +! MZSCHEME_LIBS="-framework PLT_MzScheme" +! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a" + else + MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc" +*** ../vim-7.1.014/src/version.c Thu Jun 28 12:44:56 2007 +--- src/version.c Thu Jun 28 13:00:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 15, + /**/ + +-- +You know you use Vim too much when you have this alias in your +~/.bashrc file: alias :e=/bin/vim (Eljay Love-Jensen) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.016 b/7.1.016 new file mode 100644 index 00000000..220f780b --- /dev/null +++ b/7.1.016 @@ -0,0 +1,72 @@ +To: vim-dev@vim.org +Subject: patch 7.1.016 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.016 (after patch 7.1.012) +Problem: Error message about setting 'diff' to a string. +Solution: Don't pass an empty string to set_option_value() when setting + 'diff'. +Files: src/quickfix.c, src/popupmnu.c + + +*** ../vim-7.1.015/src/quickfix.c Sun Feb 4 02:58:00 2007 +--- src/quickfix.c Thu Jun 28 18:56:16 2007 +*************** +*** 2331,2337 **** + set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", + OPT_LOCAL); + set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL); +! set_option_value((char_u *)"diff", 0L, (char_u *)"", OPT_LOCAL); + } + + /* Only set the height when still in the same tab page and there is no +--- 2331,2337 ---- + set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", + OPT_LOCAL); + set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL); +! set_option_value((char_u *)"diff", 0L, NULL, OPT_LOCAL); + } + + /* Only set the height when still in the same tab page and there is no +*** ../vim-7.1.015/src/popupmnu.c Tue Mar 27 12:42:05 2007 +--- src/popupmnu.c Thu Jun 28 19:00:51 2007 +*************** +*** 466,472 **** + set_option_value((char_u *)"bh", 0L, + (char_u *)"wipe", OPT_LOCAL); + set_option_value((char_u *)"diff", 0L, +! (char_u *)"", OPT_LOCAL); + } + } + if (res == OK) +--- 466,472 ---- + set_option_value((char_u *)"bh", 0L, + (char_u *)"wipe", OPT_LOCAL); + set_option_value((char_u *)"diff", 0L, +! NULL, OPT_LOCAL); + } + } + if (res == OK) +*** ../vim-7.1.015/src/version.c Thu Jun 28 13:02:22 2007 +--- src/version.c Thu Jun 28 21:20:20 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 16, + /**/ + +-- +We do not stumble over mountains, but over molehills. + Confucius + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.017 b/7.1.017 new file mode 100644 index 00000000..aa2a3477 --- /dev/null +++ b/7.1.017 @@ -0,0 +1,212 @@ +To: vim-dev@vim.org +Subject: patch 7.1.017 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.017 +Problem: ":confirm w" does give a prompt when 'readonly' is set, but not + when the file permissions are read-only. (Michael Schaap) +Solution: Provide a dialog in both situations. (Chris Lubinski) +Files: src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro + + +*** ../vim-7.1.016/src/ex_cmds.c Tue Jun 19 11:54:23 2007 +--- src/ex_cmds.c Tue Jun 19 22:37:25 2007 +*************** +*** 2912,2933 **** + } + + /* +! * Check if a buffer is read-only. Ask for overruling in a dialog. +! * Return TRUE and give an error message when the buffer is readonly. + */ + static int + check_readonly(forceit, buf) + int *forceit; + buf_T *buf; + { +! if (!*forceit && buf->b_p_ro) + { + #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) + if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL) + { + char_u buff[IOSIZE]; + +! dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"), + buf->b_fname); + + if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) == VIM_YES) +--- 2912,2946 ---- + } + + /* +! * Check if a buffer is read-only (either 'readonly' option is set or file is +! * read-only). Ask for overruling in a dialog. Return TRUE and give an error +! * message when the buffer is readonly. + */ + static int + check_readonly(forceit, buf) + int *forceit; + buf_T *buf; + { +! struct stat st; +! +! /* Handle a file being readonly when the 'readonly' option is set or when +! * the file exists and permissions are read-only. +! * We will send 0777 to check_file_readonly(), as the "perm" variable is +! * important for device checks but not here. */ +! if (!*forceit && (buf->b_p_ro +! || (mch_stat((char *)buf->b_ffname, &st) >= 0 +! && check_file_readonly(buf->b_ffname, 0777)))) + { + #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) + if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL) + { + char_u buff[IOSIZE]; + +! if (buf->b_p_ro) +! dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"), +! buf->b_fname); +! else +! dialog_msg(buff, _("File permissions of \"%s\" are read-only.\nIt may still be possible to write it.\nDo you wish to try?"), + buf->b_fname); + + if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) == VIM_YES) +*************** +*** 2941,2949 **** +--- 2954,2967 ---- + } + else + #endif ++ if (buf->b_p_ro) + EMSG(_(e_readonly)); ++ else ++ EMSG2(_("E505: \"%s\" is read-only (add ! to override)"), ++ buf->b_fname); + return TRUE; + } ++ + return FALSE; + } + +*** ../vim-7.1.016/src/fileio.c Thu May 10 19:32:17 2007 +--- src/fileio.c Thu Jun 28 21:54:18 2007 +*************** +*** 424,430 **** + */ + if (!p_odev && mch_nodetype(fname) == NODE_WRITABLE) + { +! filemess(curbuf, fname, (char_u *)_("is a device (disabled with 'opendevice' option"), 0); + msg_end(); + msg_scroll = msg_save; + return FAIL; +--- 424,430 ---- + */ + if (!p_odev && mch_nodetype(fname) == NODE_WRITABLE) + { +! filemess(curbuf, fname, (char_u *)_("is a device (disabled with 'opendevice' option)"), 0); + msg_end(); + msg_scroll = msg_save; + return FAIL; +*************** +*** 2734,2739 **** +--- 2734,2765 ---- + #endif + + /* ++ * Return TRUE if a file appears to be read-only from the file permissions. ++ */ ++ int ++ check_file_readonly(fname, perm) ++ char_u *fname; /* full path to file */ ++ int perm; /* known permissions on file */ ++ { ++ #ifndef USE_MCH_ACCESS ++ int fd = 0; ++ #endif ++ ++ return ( ++ #ifdef USE_MCH_ACCESS ++ # ifdef UNIX ++ (perm & 0222) == 0 || ++ # endif ++ mch_access((char *)fname, W_OK) ++ #else ++ (fd = mch_open((char *)fname, O_RDWR | O_EXTRA, 0)) < 0 ++ ? TRUE : (close(fd), FALSE) ++ #endif ++ ); ++ } ++ ++ ++ /* + * buf_write() - write to file "fname" lines "start" through "end" + * + * We do our own buffering here because fwrite() is so slow. +*************** +*** 3219,3235 **** + * Check if the file is really writable (when renaming the file to + * make a backup we won't discover it later). + */ +! file_readonly = ( +! # ifdef USE_MCH_ACCESS +! # ifdef UNIX +! (perm & 0222) == 0 || +! # endif +! mch_access((char *)fname, W_OK) +! # else +! (fd = mch_open((char *)fname, O_RDWR | O_EXTRA, 0)) < 0 +! ? TRUE : (close(fd), FALSE) +! # endif +! ); + if (!forceit && file_readonly) + { + if (vim_strchr(p_cpo, CPO_FWRITE) != NULL) +--- 3245,3252 ---- + * Check if the file is really writable (when renaming the file to + * make a backup we won't discover it later). + */ +! file_readonly = check_file_readonly(fname, (int)perm); +! + if (!forceit && file_readonly) + { + if (vim_strchr(p_cpo, CPO_FWRITE) != NULL) +*** ../vim-7.1.016/src/proto/fileio.pro Sat May 5 19:59:00 2007 +--- src/proto/fileio.pro Thu Jun 28 21:09:59 2007 +*************** +*** 2,7 **** +--- 2,8 ---- + void filemess __ARGS((buf_T *buf, char_u *name, char_u *s, int attr)); + int readfile __ARGS((char_u *fname, char_u *sfname, linenr_T from, linenr_T lines_to_skip, linenr_T lines_to_read, exarg_T *eap, int flags)); + int prep_exarg __ARGS((exarg_T *eap, buf_T *buf)); ++ int check_file_readonly __ARGS((char_u *fname, int perm)); + int buf_write __ARGS((buf_T *buf, char_u *fname, char_u *sfname, linenr_T start, linenr_T end, exarg_T *eap, int append, int forceit, int reset_changed, int filtering)); + void msg_add_fname __ARGS((buf_T *buf, char_u *fname)); + void msg_add_lines __ARGS((int insert_space, long lnum, long nchars)); +*** ../vim-7.1.016/src/version.c Thu Jun 28 21:23:52 2007 +--- src/version.c Thu Jun 28 21:49:29 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 17, + /**/ + +-- +CUSTOMER: Well, can you hang around a couple of minutes? He won't be + long. +MORTICIAN: Naaah, I got to go on to Robinson's -- they've lost nine today. +CUSTOMER: Well, when is your next round? +MORTICIAN: Thursday. +DEAD PERSON: I think I'll go for a walk. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.018 b/7.1.018 new file mode 100644 index 00000000..0d4c032c --- /dev/null +++ b/7.1.018 @@ -0,0 +1,60 @@ +To: vim-dev@vim.org +Subject: patch 7.1.018 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.018 +Problem: When 'virtualedit' is set a "p" of a block just past the end of + the line inserts before the cursor. (Engelke) +Solution: Check for the cursor being just after the line (Chris Lubinski) +Files: src/ops.c + + +*** ../vim-7.1.017/src/ops.c Thu May 10 20:34:55 2007 +--- src/ops.c Tue Jun 19 22:40:45 2007 +*************** +*** 3404,3410 **** + + #ifdef FEAT_VIRTUALEDIT + col += curwin->w_cursor.coladd; +! if (ve_flags == VE_ALL && curwin->w_cursor.coladd > 0) + { + if (dir == FORWARD && c == NUL) + ++col; +--- 3404,3412 ---- + + #ifdef FEAT_VIRTUALEDIT + col += curwin->w_cursor.coladd; +! if (ve_flags == VE_ALL +! && (curwin->w_cursor.coladd > 0 +! || endcol2 == curwin->w_cursor.col)) + { + if (dir == FORWARD && c == NUL) + ++col; +*** ../vim-7.1.017/src/version.c Thu Jun 28 21:57:08 2007 +--- src/version.c Thu Jun 28 22:12:49 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 18, + /**/ + +-- + [clop clop] +MORTICIAN: Who's that then? +CUSTOMER: I don't know. +MORTICIAN: Must be a king. +CUSTOMER: Why? +MORTICIAN: He hasn't got shit all over him. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.019 b/7.1.019 new file mode 100644 index 00000000..d0c10ce9 --- /dev/null +++ b/7.1.019 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: patch 7.1.019 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.019 +Problem: ":py" asks for an argument, ":py asd" then gives the error that + ":py" isn't implemented. Should already happen for ":py". +Solution: Compare with ex_script_ni. (Chris Lubinski) +Files: src/ex_docmd.c + + +*** ../vim-7.1.018/src/ex_docmd.c Thu May 10 18:53:03 2007 +--- src/ex_docmd.c Sat Jun 23 13:36:37 2007 +*************** +*** 2118,2124 **** + #ifdef FEAT_USR_CMDS + !USER_CMDIDX(ea.cmdidx) && + #endif +! cmdnames[ea.cmdidx].cmd_func == ex_ni); + + #ifndef FEAT_EVAL + /* +--- 2118,2125 ---- + #ifdef FEAT_USR_CMDS + !USER_CMDIDX(ea.cmdidx) && + #endif +! (cmdnames[ea.cmdidx].cmd_func == ex_ni +! || cmdnames[ea.cmdidx].cmd_func == ex_script_ni)); + + #ifndef FEAT_EVAL + /* +*** ../vim-7.1.018/src/version.c Thu Jun 28 22:14:28 2007 +--- src/version.c Thu Jul 5 09:48:11 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 19, + /**/ + +-- +MARTHA'S WAY: Don't throw out all that leftover wine. Freeze into ice cubes + for future use in casseroles and sauces. +MY WAY: What leftover wine? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.020 b/7.1.020 new file mode 100644 index 00000000..c343cb03 --- /dev/null +++ b/7.1.020 @@ -0,0 +1,115 @@ +To: vim-dev@vim.org +Subject: patch 7.1.020 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.020 +Problem: Reading from uninitialized memory when using a dialog. (Dominique + Pelle) +Solution: In msg_show_console_dialog() append a NUL after every appended + character. +Files: src/message.c + + +*** ../vim-7.1.019/src/message.c Thu May 10 18:49:39 2007 +--- src/message.c Sun Jul 1 12:06:52 2007 +*************** +*** 3456,3466 **** + /* advance to next hotkey and set default hotkey */ + #ifdef FEAT_MBYTE + if (has_mbyte) +! hotkp += (*mb_ptr2len)(hotkp); + else + #endif + ++hotkp; +! (void)copy_char(r + 1, hotkp, TRUE); + if (dfltbutton) + --dfltbutton; + +--- 3456,3466 ---- + /* advance to next hotkey and set default hotkey */ + #ifdef FEAT_MBYTE + if (has_mbyte) +! hotkp += STRLEN(hotkp); + else + #endif + ++hotkp; +! hotkp[copy_char(r + 1, hotkp, TRUE)] = NUL; + if (dfltbutton) + --dfltbutton; + +*************** +*** 3493,3499 **** + *msgp++ = (dfltbutton == 1) ? ']' : ')'; + + /* redefine hotkey */ +! (void)copy_char(r, hotkp, TRUE); + } + } + else +--- 3493,3499 ---- + *msgp++ = (dfltbutton == 1) ? ']' : ')'; + + /* redefine hotkey */ +! hotkp[copy_char(r, hotkp, TRUE)] = NUL; + } + } + else +*************** +*** 3519,3526 **** + *msgp++ = ':'; + *msgp++ = ' '; + *msgp = NUL; +- mb_ptr_adv(hotkp); +- *hotkp = NUL; + } + else + { +--- 3519,3524 ---- +*************** +*** 3555,3562 **** + msgp = confirm_msg + 1 + STRLEN(message); + hotkp = hotk; + +! /* define first default hotkey */ +! (void)copy_char(buttons, hotkp, TRUE); + + /* Remember where the choices start, displaying starts here when + * "hotkp" typed at the more prompt. */ +--- 3553,3561 ---- + msgp = confirm_msg + 1 + STRLEN(message); + hotkp = hotk; + +! /* Define first default hotkey. Keep the hotkey string NUL +! * terminated to avoid reading past the end. */ +! hotkp[copy_char(buttons, hotkp, TRUE)] = NUL; + + /* Remember where the choices start, displaying starts here when + * "hotkp" typed at the more prompt. */ +*** ../vim-7.1.019/src/version.c Thu Jul 5 09:53:20 2007 +--- src/version.c Thu Jul 5 10:09:34 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 20, + /**/ + +-- +BLACK KNIGHT: Come on you pansy! + [hah] [parry thrust] + [ARTHUR chops the BLACK KNIGHT's right arm off] +ARTHUR: Victory is mine! [kneeling] + We thank thee Lord, that in thy merc- + [Black Knight kicks Arthur in the head while he is praying] + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.021 b/7.1.021 new file mode 100644 index 00000000..1f537ea3 --- /dev/null +++ b/7.1.021 @@ -0,0 +1,92 @@ +To: vim-dev@vim.org +Subject: patch 7.1.021 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.021 (after 7.1.015) +Problem: Mzscheme interface doesn't compile on Win32. +Solution: Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev) +Files: src/if_mzsch.c + + +*** ../vim-7.1.020/src/if_mzsch.c Thu Jun 28 13:02:22 2007 +--- src/if_mzsch.c Sun Jul 1 18:44:49 2007 +*************** +*** 308,313 **** +--- 308,315 ---- + static Scheme_Config *(*dll_scheme_current_config)(void); + static Scheme_Object *(*dll_scheme_char_string_to_byte_string) + (Scheme_Object *s); ++ static Scheme_Object *(*dll_scheme_char_string_to_path) ++ (Scheme_Object *s); + # endif + + /* arrays are imported directly */ +*************** +*** 398,403 **** +--- 400,407 ---- + # define scheme_current_config dll_scheme_current_config + # define scheme_char_string_to_byte_string \ + dll_scheme_char_string_to_byte_string ++ # define scheme_char_string_to_path \ ++ dll_scheme_char_string_to_path + # endif + + typedef struct +*************** +*** 498,503 **** +--- 502,509 ---- + {"scheme_current_config", (void **)&dll_scheme_current_config}, + {"scheme_char_string_to_byte_string", + (void **)&dll_scheme_char_string_to_byte_string}, ++ {"scheme_char_string_to_path", ++ (void **)&dll_scheme_char_string_to_path}, + # endif + {NULL, NULL}}; + +*************** +*** 773,779 **** + #ifdef MZSCHEME_COLLECTS + /* setup 'current-library-collection-paths' parameter */ + scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS, +! scheme_build_list(0, scheme_make_string(MZSCHEME_COLLECTS))); + #endif + #ifdef HAVE_SANDBOX + /* setup sandbox guards */ +--- 779,793 ---- + #ifdef MZSCHEME_COLLECTS + /* setup 'current-library-collection-paths' parameter */ + scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS, +! scheme_make_pair( +! # if MZSCHEME_VERSION_MAJOR >= 299 +! scheme_char_string_to_path( +! scheme_byte_string_to_char_string( +! scheme_make_byte_string(MZSCHEME_COLLECTS))), +! # else +! scheme_make_string(MZSCHEME_COLLECTS), +! # endif +! scheme_null)); + #endif + #ifdef HAVE_SANDBOX + /* setup sandbox guards */ +*** ../vim-7.1.020/src/version.c Thu Jul 5 10:10:29 2007 +--- src/version.c Fri Jul 6 19:41:04 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 21, + /**/ + +-- +Advice to worms: Sleep late. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.022 b/7.1.022 new file mode 100644 index 00000000..1357982b --- /dev/null +++ b/7.1.022 @@ -0,0 +1,67 @@ +To: vim-dev@vim.org +Subject: patch 7.1.022 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.022 +Problem: When setting 'keymap' twice the b:keymap_name variable isn't set. + (Milan Berta) +Solution: Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft) +Files: src/digraph.c + + +*** ../vim-7.1.021/src/digraph.c Wed May 3 00:07:11 2006 +--- src/digraph.c Mon Jul 2 21:24:30 2007 +*************** +*** 2349,2356 **** + + if (*curbuf->b_p_keymap == NUL) + { +! /* Stop any active keymap and clear the table. */ + keymap_unload(); + } + else + { +--- 2349,2358 ---- + + if (*curbuf->b_p_keymap == NUL) + { +! /* Stop any active keymap and clear the table. Also remove +! * b:keymap_unload, as no keymap is active now. */ + keymap_unload(); ++ do_cmdline_cmd((char_u *)"unlet! b:keymap_name"); + } + else + { +*************** +*** 2500,2506 **** + + ga_clear(&curbuf->b_kmap_ga); + curbuf->b_kmap_state &= ~KEYMAP_LOADED; +- do_cmdline_cmd((char_u *)"unlet! b:keymap_name"); + #ifdef FEAT_WINDOWS + status_redraw_curbuf(); + #endif +--- 2502,2507 ---- +*** ../vim-7.1.021/src/version.c Fri Jul 6 19:42:09 2007 +--- src/version.c Sat Jul 7 13:56:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 22, + /**/ + +-- +If your life is a hard drive, +Christ can be your backup. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.023 b/7.1.023 new file mode 100644 index 00000000..28fe3506 --- /dev/null +++ b/7.1.023 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: patch 7.1.023 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.023 +Problem: "dw" in a line with one character deletes the line. Vi and nvi + don't do this. (Kjell Arne Rekaa) +Solution: Check for one-character words especially. +Files: src/search.c + + +*** ../vim-7.1.022/src/search.c Tue Jun 19 12:58:55 2007 +--- src/search.c Thu Jul 5 21:18:55 2007 +*************** +*** 2795,2801 **** + i = inc_cursor(); + if (i == -1 || (i >= 1 && last_line)) /* started at last char in file */ + return FAIL; +! if (i == 1 && eol && count == 0) /* started at last char in line */ + return OK; + + /* +--- 2802,2808 ---- + i = inc_cursor(); + if (i == -1 || (i >= 1 && last_line)) /* started at last char in file */ + return FAIL; +! if (i >= 1 && eol && count == 0) /* started at last char in line */ + return OK; + + /* +*** ../vim-7.1.022/src/version.c Sat Jul 7 13:57:39 2007 +--- src/version.c Tue Jul 10 12:35:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 23, + /**/ + +-- +BRIDGEKEEPER: What is your favorite editor? +GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm! + "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.024 b/7.1.024 new file mode 100644 index 00000000..6bde6009 --- /dev/null +++ b/7.1.024 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: patch 7.1.024 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.024 +Problem: Using a pointer that has become invalid. (Chris Monson) +Solution: Obtain the line pointer again after we looked at another line. +Files: src/search.c + + +*** ../vim-7.1.023/src/search.c Tue Jul 10 12:36:51 2007 +--- src/search.c Thu Jul 5 21:18:55 2007 +*************** +*** 2124,2129 **** +--- 2128,2136 ---- + else if (!backwards) + inquote = TRUE; + } ++ ++ /* ml_get() only keeps one line, need to get linep again */ ++ linep = ml_get(pos.lnum); + } + } + } +*** ../vim-7.1.023/src/version.c Tue Jul 10 12:36:51 2007 +--- src/version.c Tue Jul 10 13:06:02 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 24, + /**/ + +-- +Q: Why does /dev/null accept only integers? +A: You can't sink a float. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.025 b/7.1.025 new file mode 100644 index 00000000..54e292cc --- /dev/null +++ b/7.1.025 @@ -0,0 +1,72 @@ +To: vim-dev@vim.org +Subject: patch 7.1.025 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.025 +Problem: search() and searchpos() don't use match under cursor at start of + line when using 'bc' flags. (Viktor Kojouharov) +Solution: Don't go to the previous line when the 'c' flag is present. + Also fix that "j" doesn't move the cursor to the right column. +Files: src/eval.c, src/search.c + + +*** ../vim-7.1.024/src/eval.c Tue Jun 19 17:23:46 2007 +--- src/eval.c Thu Jul 5 21:16:31 2007 +*************** +*** 13925,13930 **** +--- 13925,13932 ---- + /* If 'n' flag is used: restore cursor position. */ + if (flags & SP_NOMOVE) + curwin->w_cursor = save_cursor; ++ else ++ curwin->w_set_curswant = TRUE; + theend: + p_ws = save_p_ws; + +*** ../vim-7.1.024/src/search.c Tue Jul 10 13:07:08 2007 +--- src/search.c Thu Jul 5 21:18:55 2007 +*************** +*** 573,580 **** + /* + * Start searching in current line, unless searching backwards and + * we're in column 0. + */ +! if (dir == BACKWARD && start_pos.col == 0) + { + lnum = pos->lnum - 1; + at_first_line = FALSE; +--- 573,584 ---- + /* + * Start searching in current line, unless searching backwards and + * we're in column 0. ++ * If we are searching backwards, in column 0, and not including the ++ * current position, gain some efficiency by skipping back a line. ++ * Otherwise begin the search in the current line. + */ +! if (dir == BACKWARD && start_pos.col == 0 +! && (options & SEARCH_START) == 0) + { + lnum = pos->lnum - 1; + at_first_line = FALSE; +*** ../vim-7.1.024/src/version.c Tue Jul 10 13:07:08 2007 +--- src/version.c Tue Jul 10 13:26:13 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 25, + /**/ + +-- +SIGFUN -- signature too funny (core dumped) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.026 b/7.1.026 new file mode 100644 index 00000000..071331ae --- /dev/null +++ b/7.1.026 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: patch 7.1.026 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.026 +Problem: "[p" doesn't work in Visual mode. (David Brown) +Solution: Use checkclearop() instead of checkclearopq(). +Files: src/normal.c + + +*** ../vim-7.1.025/src/normal.c Thu May 10 18:45:26 2007 +--- src/normal.c Wed Jul 4 21:16:36 2007 +*************** +*** 6379,6385 **** + */ + else if (cap->nchar == 'p' || cap->nchar == 'P') + { +! if (!checkclearopq(cap->oap)) + { + prep_redo_cmd(cap); + do_put(cap->oap->regname, +--- 6379,6385 ---- + */ + else if (cap->nchar == 'p' || cap->nchar == 'P') + { +! if (!checkclearop(cap->oap)) + { + prep_redo_cmd(cap); + do_put(cap->oap->regname, +*** ../vim-7.1.025/src/version.c Tue Jul 10 13:27:46 2007 +--- src/version.c Tue Jul 10 14:01:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 26, + /**/ + +-- +BRIDGEKEEPER: What is the air-speed velocity of an unladen swallow? +ARTHUR: What do you mean? An African or European swallow? +BRIDGEKEEPER: Er ... I don't know that ... Aaaaarrrrrrggghhh! + BRIDGEKEEPER is cast into the gorge. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.027 b/7.1.027 new file mode 100644 index 00000000..b13676f0 --- /dev/null +++ b/7.1.027 @@ -0,0 +1,120 @@ +To: vim-dev@vim.org +Subject: patch 7.1.027 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.027 +Problem: On Sun systems opening /dev/fd/N doesn't work, and they are used + by process substitutions. +Solution: Allow opening specific character special files for Sun systems. + (Gary Johnson) +Files: src/fileio.c, src/os_unix.h + + +*** ../vim-7.1.026/src/fileio.c Thu Jun 28 21:57:08 2007 +--- src/fileio.c Mon Jul 9 11:19:50 2007 +*************** +*** 44,49 **** +--- 44,53 ---- + /* Is there any system that doesn't have access()? */ + #define USE_MCH_ACCESS + ++ #if defined(sun) && defined(S_ISCHR) ++ # define OPEN_CHR_FILES ++ static int is_dev_fd_file(char_u *fname); ++ #endif + #ifdef FEAT_MBYTE + static char_u *next_fenc __ARGS((char_u **pp)); + # ifdef FEAT_EVAL +*************** +*** 406,411 **** +--- 410,419 ---- + # ifdef S_ISSOCK + && !S_ISSOCK(perm) /* ... or socket */ + # endif ++ # ifdef OPEN_CHR_FILES ++ && !(S_ISCHR(perm) && is_dev_fd_file(fname)) ++ /* ... or a character special file named /dev/fd/ */ ++ # endif + ) + { + if (S_ISDIR(perm)) +*************** +*** 2265,2270 **** +--- 2273,2285 ---- + } + # endif + # endif ++ # ifdef OPEN_CHR_FILES ++ if (S_ISCHR(perm)) /* or character special */ ++ { ++ STRCAT(IObuff, _("[character special]")); ++ c = TRUE; ++ } ++ # endif + #endif + if (curbuf->b_p_ro) + { +*************** +*** 2463,2468 **** +--- 2478,2502 ---- + return FAIL; + return OK; + } ++ ++ #ifdef OPEN_CHR_FILES ++ /* ++ * Returns TRUE if the file name argument is of the form "/dev/fd/\d\+", ++ * which is the name of files used for process substitution output by ++ * some shells on some operating systems, e.g., bash on SunOS. ++ * Do not accept "/dev/fd/[012]", opening these may hang Vim. ++ */ ++ static int ++ is_dev_fd_file(fname) ++ char_u *fname; ++ { ++ return (STRNCMP(fname, "/dev/fd/", 8) == 0 ++ && VIM_ISDIGIT(fname[8]) ++ && *skipdigits(fname + 9) == NUL ++ && (fname[9] != NUL ++ || (fname[8] != '0' && fname[8] != '1' && fname[8] != '2'))); ++ } ++ #endif + + #ifdef FEAT_MBYTE + +*** ../vim-7.1.026/src/os_unix.h Thu May 10 19:43:10 2007 +--- src/os_unix.h Sat Jul 7 13:08:56 2007 +*************** +*** 508,513 **** +--- 508,516 ---- + #if !defined(S_ISFIFO) && defined(S_IFIFO) + # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) + #endif ++ #if !defined(S_ISCHR) && defined(S_IFCHR) ++ # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) ++ #endif + + /* Note: Some systems need both string.h and strings.h (Savage). However, + * some systems can't handle both, only use string.h in that case. */ +*** ../vim-7.1.026/src/version.c Tue Jul 10 14:02:51 2007 +--- src/version.c Tue Jul 10 17:00:43 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 27, + /**/ + +-- +Every exit is an entrance into something else. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.028 b/7.1.028 new file mode 100644 index 00000000..a1b4e7aa --- /dev/null +++ b/7.1.028 @@ -0,0 +1,71 @@ +To: vim-dev@vim.org +Subject: patch 7.1.028 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.028 +Problem: Can't use last search pattern for ":sort". (Brian McKee) +Solution: When the pattern is emtpy use the last search pattern. (Martin + Toft) +Files: runtime/doc/change.txt, src/ex_cmds.c + + +*** ../vim-7.1.027/runtime/doc/change.txt Sat May 12 16:10:12 2007 +--- runtime/doc/change.txt Tue Jul 10 11:30:56 2007 +*************** +*** 1571,1576 **** +--- 1571,1580 ---- + in their original order, right before the sorted + lines. + ++ If {pattern} is empty (e.g. // is specified), the ++ last search pattern is used. This allows trying out ++ a pattern first. ++ + Note that using ":sort" with ":global" doesn't sort the matching lines, it's + quite useless. + +*** ../vim-7.1.027/src/ex_cmds.c Thu Jun 28 21:57:08 2007 +--- src/ex_cmds.c Tue Jul 10 17:25:10 2007 +*************** +*** 408,414 **** + goto sortend; + } + *s = NUL; +! regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC); + if (regmatch.regprog == NULL) + goto sortend; + p = s; /* continue after the regexp */ +--- 408,418 ---- + goto sortend; + } + *s = NUL; +! /* Use last search pattern if sort pattern is empty. */ +! if (s == p + 1 && last_search_pat() != NULL) +! regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC); +! else +! regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC); + if (regmatch.regprog == NULL) + goto sortend; + p = s; /* continue after the regexp */ +*** ../vim-7.1.027/src/version.c Tue Jul 10 17:09:51 2007 +--- src/version.c Tue Jul 10 17:20:01 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 28, + /**/ + +-- +Every person is responsible for the choices he makes. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.029 b/7.1.029 new file mode 100644 index 00000000..069e19ed --- /dev/null +++ b/7.1.029 @@ -0,0 +1,84 @@ +To: vim-dev@vim.org +Subject: patch 7.1.029 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.029 (after 7.1.019) +Problem: Can't compile when all interfaces are used. (Taylor Venable) +Solution: Only check for ex_script_ni when it's defined. +Files: src/ex_docmd.c + + +*** ../vim-7.1.028/src/ex_docmd.c Thu Jul 5 09:53:20 2007 +--- src/ex_docmd.c Sun Jul 15 17:20:09 2007 +*************** +*** 133,138 **** +--- 133,139 ---- + static void get_flags __ARGS((exarg_T *eap)); + #if !defined(FEAT_PERL) || !defined(FEAT_PYTHON) || !defined(FEAT_TCL) \ + || !defined(FEAT_RUBY) || !defined(FEAT_MZSCHEME) ++ # define HAVE_EX_SCRIPT_NI + static void ex_script_ni __ARGS((exarg_T *eap)); + #endif + static char_u *invalid_range __ARGS((exarg_T *eap)); +*************** +*** 2119,2125 **** + !USER_CMDIDX(ea.cmdidx) && + #endif + (cmdnames[ea.cmdidx].cmd_func == ex_ni +! || cmdnames[ea.cmdidx].cmd_func == ex_script_ni)); + + #ifndef FEAT_EVAL + /* +--- 2120,2129 ---- + !USER_CMDIDX(ea.cmdidx) && + #endif + (cmdnames[ea.cmdidx].cmd_func == ex_ni +! #ifdef HAVE_EX_SCRIPT_NI +! || cmdnames[ea.cmdidx].cmd_func == ex_script_ni +! #endif +! )); + + #ifndef FEAT_EVAL + /* +*************** +*** 3998,4005 **** + eap->errmsg = (char_u *)N_("E319: Sorry, the command is not available in this version"); + } + +! #if !defined(FEAT_PERL) || !defined(FEAT_PYTHON) || !defined(FEAT_TCL) \ +! || !defined(FEAT_RUBY) || !defined(FEAT_MZSCHEME) + /* + * Function called for script command which is Not Implemented. NI! + * Skips over ":perl <errmsg = (char_u *)N_("E319: Sorry, the command is not available in this version"); + } + +! #ifdef HAVE_EX_SCRIPT_NI + /* + * Function called for script command which is Not Implemented. NI! + * Skips over ":perl < +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.030 +Problem: The "vimtutor" shell script checks for "vim6" but not for "vim7". + (Christian Robinson) +Solution: Check for more versions, but prefer using "vim". +Files: src/vimtutor + + +*** ../vim-7.1.029/src/vimtutor Sun Jun 13 20:37:33 2004 +--- src/vimtutor Sun Jul 8 17:16:29 2007 +*************** +*** 39,56 **** + # remove the copy of the tutor on exit + trap "rm -rf $TODELETE" 0 1 2 3 9 11 13 15 + +! # Vim could be called "vim" or "vi". Also check for "vim6", for people who +! # have Vim 5.x installed as "vim" and Vim 6.0 as "vim6". +! testvim=`which vim6 2>/dev/null` +! if test -f "$testvim"; then +! VIM=vim6 +! else +! testvim=`which vim` + if test -f "$testvim"; then +! VIM=vim +! else +! VIM=vi + fi + fi + + # Use Vim to copy the tutor, it knows the value of $VIMRUNTIME +--- 39,60 ---- + # remove the copy of the tutor on exit + trap "rm -rf $TODELETE" 0 1 2 3 9 11 13 15 + +! # Vim could be called "vim" or "vi". Also check for "vimN", for people who +! # have Vim installed with its version number. +! # We anticipate up to a future Vim 8 version :-). +! seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi" +! for i in $seq; do +! testvim=`which $i 2>/dev/null` + if test -f "$testvim"; then +! VIM=$i +! break + fi ++ done ++ ++ # When no Vim version was found fall back to "vim", you'll get an error message ++ # below. ++ if test -z "$VIM"; then ++ VIM=vim + fi + + # Use Vim to copy the tutor, it knows the value of $VIMRUNTIME +*** ../vim-7.1.029/src/version.c Mon Jul 16 20:38:56 2007 +--- src/version.c Tue Jul 17 14:30:51 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 30, + /**/ + +-- +BLACK KNIGHT: I'm invincible! +ARTHUR: You're a looney. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.031 b/7.1.031 new file mode 100644 index 00000000..a03ac8ce --- /dev/null +++ b/7.1.031 @@ -0,0 +1,191 @@ +To: vim-dev@vim.org +Subject: patch 7.1.031 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.031 +Problem: virtcol([123, '$']) doesn't work. (Michael Schaap) +Solution: When '$' is used for the column number get the last column. +Files: runtime/doc/eval.txt, src/eval.c + + +*** ../vim-7.1.030/runtime/doc/eval.txt Tue Jun 19 17:23:46 2007 +--- runtime/doc/eval.txt Wed Jul 11 21:21:28 2007 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.1. Last change: 2007 Jun 09 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.1. Last change: 2007 Jul 11 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 2020,2025 **** +--- 2020,2029 ---- + number of characters in the cursor line plus one) + 'x position of mark x (if the mark is not set, 0 is + returned) ++ Additionally {expr} can be [lnum, col]: a |List| with the line ++ and column number. Most useful when the column is "$", to get ++ the las column of a specific line. When "lnum" or "col" is ++ out of range then col() returns zero. + To get the line number use |line()|. To get both use + |getpos()|. + For the screen column position use |virtcol()|. +*************** +*** 5024,5037 **** + position, the returned Number will be the column at the end of + the . For example, for a in column 1, with 'ts' + set to 8, it returns 8. +! For the use of {expr} see |col()|. Additionally you can use +! [lnum, col]: a |List| with the line and column number. When +! "lnum" or "col" is out of range then virtcol() returns zero. +! When 'virtualedit' is used it can be [lnum, col, off], where + "off" is the offset in screen columns from the start of the + character. E.g., a position within a or after the last + character. +- For the byte position use |col()|. + When Virtual editing is active in the current mode, a position + beyond the end of the line can be returned. |'virtualedit'| + The accepted positions are: +--- 5029,5040 ---- + position, the returned Number will be the column at the end of + the . For example, for a in column 1, with 'ts' + set to 8, it returns 8. +! For the byte position use |col()|. +! For the use of {expr} see |col()|. +! When 'virtualedit' is used {expr} can be [lnum, col, off], where + "off" is the offset in screen columns from the start of the + character. E.g., a position within a or after the last + character. + When Virtual editing is active in the current mode, a position + beyond the end of the line can be returned. |'virtualedit'| + The accepted positions are: +*** ../vim-7.1.030/src/eval.c Tue Jul 10 13:27:46 2007 +--- src/eval.c Wed Jul 11 19:50:27 2007 +*************** +*** 672,678 **** + static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv)); + + static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump)); +! static pos_T *var2fpos __ARGS((typval_T *varp, int lnum, int *fnum)); + static int get_env_len __ARGS((char_u **arg)); + static int get_id_len __ARGS((char_u **arg)); + static int get_name_len __ARGS((char_u **arg, char_u **alias, int evaluate, int verbose)); +--- 672,678 ---- + static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv)); + + static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump)); +! static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum)); + static int get_env_len __ARGS((char_u **arg)); + static int get_id_len __ARGS((char_u **arg)); + static int get_name_len __ARGS((char_u **arg, char_u **alias, int evaluate, int verbose)); +*************** +*** 16505,16513 **** + * Returns NULL when there is an error. + */ + static pos_T * +! var2fpos(varp, lnum, fnum) + typval_T *varp; +! int lnum; /* TRUE when $ is last line */ + int *fnum; /* set to fnum for '0, 'A, etc. */ + { + char_u *name; +--- 16508,16516 ---- + * Returns NULL when there is an error. + */ + static pos_T * +! var2fpos(varp, dollar_lnum, fnum) + typval_T *varp; +! int dollar_lnum; /* TRUE when $ is last line */ + int *fnum; /* set to fnum for '0, 'A, etc. */ + { + char_u *name; +*************** +*** 16520,16525 **** +--- 16523,16529 ---- + list_T *l; + int len; + int error = FALSE; ++ listitem_T *li; + + l = varp->vval.v_list; + if (l == NULL) +*************** +*** 16535,16540 **** +--- 16539,16552 ---- + if (error) + return NULL; + len = (long)STRLEN(ml_get(pos.lnum)); ++ ++ /* We accept "$" for the column number: last column. */ ++ li = list_find(l, 1L); ++ if (li != NULL && li->li_tv.v_type == VAR_STRING ++ && li->li_tv.vval.v_string != NULL ++ && STRCMP(li->li_tv.vval.v_string, "$") == 0) ++ pos.col = len + 1; ++ + /* Accept a position up to the NUL after the line. */ + if (pos.col == 0 || (int)pos.col > len + 1) + return NULL; /* invalid column number */ +*************** +*** 16567,16573 **** + pos.coladd = 0; + #endif + +! if (name[0] == 'w' && lnum) + { + pos.col = 0; + if (name[1] == '0') /* "w0": first visible line */ +--- 16579,16585 ---- + pos.coladd = 0; + #endif + +! if (name[0] == 'w' && dollar_lnum) + { + pos.col = 0; + if (name[1] == '0') /* "w0": first visible line */ +*************** +*** 16585,16591 **** + } + else if (name[0] == '$') /* last column or line */ + { +! if (lnum) + { + pos.lnum = curbuf->b_ml.ml_line_count; + pos.col = 0; +--- 16597,16603 ---- + } + else if (name[0] == '$') /* last column or line */ + { +! if (dollar_lnum) + { + pos.lnum = curbuf->b_ml.ml_line_count; + pos.col = 0; +*** ../vim-7.1.030/src/version.c Tue Jul 17 14:32:07 2007 +--- src/version.c Tue Jul 17 16:24:54 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 31, + /**/ + +-- +CRONE: Who sent you? +ARTHUR: The Knights Who Say GNU! +CRONE: Aaaagh! (she looks around in rear) No! We have no licenses here. + "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.032 b/7.1.032 new file mode 100644 index 00000000..f2ed6996 --- /dev/null +++ b/7.1.032 @@ -0,0 +1,97 @@ +To: vim-dev@vim.org +Subject: patch 7.1.032 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.032 +Problem: Potential crash when editing a command line. (Chris Monson) +Solution: Check the position to avoid access before the start of an array. +Files: src/ex_getln.c + + +*** ../vim-7.1.031/src/ex_getln.c Thu May 10 20:22:29 2007 +--- src/ex_getln.c Tue Jul 17 18:05:49 2007 +*************** +*** 484,490 **** + if (xpc.xp_context == EXPAND_MENUNAMES && p_wmnu) + { + /* Hitting after "emenu Name.": complete submenu */ +! if (ccline.cmdbuff[ccline.cmdpos - 1] == '.' && c == K_DOWN) + c = p_wc; + else if (c == K_UP) + { +--- 486,493 ---- + if (xpc.xp_context == EXPAND_MENUNAMES && p_wmnu) + { + /* Hitting after "emenu Name.": complete submenu */ +! if (c == K_DOWN && ccline.cmdpos > 0 +! && ccline.cmdbuff[ccline.cmdpos - 1] == '.') + c = p_wc; + else if (c == K_UP) + { +*************** +*** 533,541 **** + upseg[3] = PATHSEP; + upseg[4] = NUL; + +! if (ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP +! && c == K_DOWN +! && (ccline.cmdbuff[ccline.cmdpos - 2] != '.' + || ccline.cmdbuff[ccline.cmdpos - 3] != '.')) + { + /* go down a directory */ +--- 536,546 ---- + upseg[3] = PATHSEP; + upseg[4] = NUL; + +! if (c == K_DOWN +! && ccline.cmdpos > 0 +! && ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP +! && (ccline.cmdpos < 3 +! || ccline.cmdbuff[ccline.cmdpos - 2] != '.' + || ccline.cmdbuff[ccline.cmdpos - 3] != '.')) + { + /* go down a directory */ +*************** +*** 730,737 **** + /* In Ex mode a backslash escapes a newline. */ + if (exmode_active + && c != ESC +- && ccline.cmdpos > 0 + && ccline.cmdpos == ccline.cmdlen + && ccline.cmdbuff[ccline.cmdpos - 1] == '\\') + { + if (c == K_KENTER) +--- 735,742 ---- + /* In Ex mode a backslash escapes a newline. */ + if (exmode_active + && c != ESC + && ccline.cmdpos == ccline.cmdlen ++ && ccline.cmdpos > 0 + && ccline.cmdbuff[ccline.cmdpos - 1] == '\\') + { + if (c == K_KENTER) +*** ../vim-7.1.031/src/version.c Tue Jul 17 16:31:15 2007 +--- src/version.c Tue Jul 17 18:10:37 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 32, + /**/ + +-- +ALL: A witch! A witch! +WITCH: It's a fair cop. +ALL: Burn her! Burn her! Let's make her into a ladder. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.033 b/7.1.033 new file mode 100644 index 00000000..9b7c73bb --- /dev/null +++ b/7.1.033 @@ -0,0 +1,48 @@ +To: vim-dev@vim.org +Subject: patch 7.1.033 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.033 +Problem: A buffer is marked modified when it was first deleted and then + added again using a ":next" command. (John Mullin) +Solution: When checking if a buffer is modified use the BF_NEVERLOADED flag. +Files: src/option.c + + +*** ../vim-7.1.032/src/option.c Tue Jun 19 20:56:52 2007 +--- src/option.c Sun Jul 22 16:42:47 2007 +*************** +*** 10624,10629 **** +--- 10624,10632 ---- + file_ff_differs(buf) + buf_T *buf; + { ++ /* In a buffer that was never loaded the options are not valid. */ ++ if (buf->b_flags & BF_NEVERLOADED) ++ return FALSE; + if ((buf->b_flags & BF_NEW) + && buf->b_ml.ml_line_count == 1 + && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL) +*** ../vim-7.1.032/src/version.c Tue Jul 17 18:14:14 2007 +--- src/version.c Mon Jul 23 09:45:44 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 33, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +8. Don't use any punctuation marks. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.034 b/7.1.034 new file mode 100644 index 00000000..5801c941 --- /dev/null +++ b/7.1.034 @@ -0,0 +1,116 @@ +To: vim-dev@vim.org +Subject: patch 7.1.034 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.034 +Problem: Win64: A few compiler warnings. Problems with optimizer. +Solution: Use int instead of size_t. Disable the optimizer in one function. + (George V. Reilly) +Files: src/eval.c, src/spell.c + + +*** ../vim-7.1.033/src/eval.c Tue Jul 17 16:31:15 2007 +--- src/eval.c Wed Jul 11 19:50:27 2007 +*************** +*** 992,1011 **** + char_u *value; + int value_len; + { +! size_t len; + + if (redir_lval == NULL) + return; + + if (value_len == -1) +! len = STRLEN(value); /* Append the entire string */ + else +! len = value_len; /* Append only "value_len" characters */ + +! if (ga_grow(&redir_ga, (int)len) == OK) + { + mch_memmove((char *)redir_ga.ga_data + redir_ga.ga_len, value, len); +! redir_ga.ga_len += (int)len; + } + else + var_redir_stop(); +--- 992,1011 ---- + char_u *value; + int value_len; + { +! int len; + + if (redir_lval == NULL) + return; + + if (value_len == -1) +! len = (int)STRLEN(value); /* Append the entire string */ + else +! len = value_len; /* Append only "value_len" characters */ + +! if (ga_grow(&redir_ga, len) == OK) + { + mch_memmove((char *)redir_ga.ga_data + redir_ga.ga_len, value, len); +! redir_ga.ga_len += len; + } + else + var_redir_stop(); +*** ../vim-7.1.033/src/spell.c Thu May 10 18:45:53 2007 +--- src/spell.c Sat Jul 14 17:17:52 2007 +*************** +*** 7829,7835 **** + # if (_MSC_VER <= 1200) + /* This line is required for VC6 without the service pack. Also see the + * matching #pragma below. */ +! /* # pragma optimize("", off) */ + # endif + #endif + +--- 7829,7835 ---- + # if (_MSC_VER <= 1200) + /* This line is required for VC6 without the service pack. Also see the + * matching #pragma below. */ +! # pragma optimize("", off) + # endif + #endif + +*************** +*** 7859,7865 **** + + #ifdef _MSC_VER + # if (_MSC_VER <= 1200) +! /* # pragma optimize("", on) */ + # endif + #endif + +--- 7859,7865 ---- + + #ifdef _MSC_VER + # if (_MSC_VER <= 1200) +! # pragma optimize("", on) + # endif + #endif + +*** ../vim-7.1.033/src/version.c Tue Jul 24 09:50:22 2007 +--- src/version.c Tue Jul 24 09:47:17 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 34, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +17. When the money comes out the ATM, scream "I won!, I won! 3rd + time this week!!!!!" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.035 b/7.1.035 new file mode 100644 index 00000000..77fcb72b --- /dev/null +++ b/7.1.035 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: patch 7.1.035 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.035 +Problem: After ":s/./&/#" all listed lines have a line number. (Yakov + Lerner) +Solution: Reset the line number flag when not using the "&" flag. +Files: src/ex_cmds.c + + +*** ../vim-7.1.034/src/ex_cmds.c Tue Jul 10 17:25:20 2007 +--- src/ex_cmds.c Sat Jul 14 14:39:38 2007 +*************** +*** 4316,4321 **** +--- 4316,4322 ---- + do_error = TRUE; + do_print = FALSE; + do_count = FALSE; ++ do_number = FALSE; + do_ic = 0; + } + while (*cmd) +*** ../vim-7.1.034/src/version.c Tue Jul 24 10:44:10 2007 +--- src/version.c Tue Jul 24 11:15:09 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 35, + /**/ + +-- +The startling truth finally became apparent, and it was this: Numbers +written on restaurant checks within the confines of restaurants do not follow +the same mathematical laws as numbers written on any other pieces of paper in +any other parts of the Universe. This single statement took the scientific +world by storm. So many mathematical conferences got held in such good +restaurants that many of the finest minds of a generation died of obesity and +heart failure, and the science of mathematics was put back by years. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.036 b/7.1.036 new file mode 100644 index 00000000..5366b3e4 --- /dev/null +++ b/7.1.036 @@ -0,0 +1,461 @@ +To: vim-dev@vim.org +Subject: patch 7.1.036 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.036 +Problem: Completing ":echohl" argument should include "None". (Ori + Avtalion) ":match" should have "none" too. +Solution: Add flags to use expand_highlight(). Also fix that when disabling + FEAT_CMDL_COMPL compilation fails. (Chris Lubinski) +Files: src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro + src/syntax.c + + +*** ../vim-7.1.035/src/eval.c Tue Jul 24 10:44:10 2007 +--- src/eval.c Wed Jul 11 19:50:27 2007 +*************** +*** 1411,1417 **** + } + + +! #if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO) + /* + * Call some vimL function and return the result in "*rettv". + * Uses argv[argc] for the function arguments. +--- 1411,1418 ---- + } + + +! #if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) \ +! || defined(FEAT_COMPL_FUNC) || defined(PROTO) + /* + * Call some vimL function and return the result in "*rettv". + * Uses argv[argc] for the function arguments. +*************** +*** 1484,1489 **** +--- 1485,1491 ---- + return ret; + } + ++ # if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO) + /* + * Call vimL function "func" and return the result as a string. + * Returns NULL when calling the function fails. +*************** +*** 1506,1513 **** + clear_tv(&rettv); + return retval; + } + +! #if defined(FEAT_COMPL_FUNC) || defined(PROTO) + /* + * Call vimL function "func" and return the result as a number. + * Returns -1 when calling the function fails. +--- 1508,1516 ---- + clear_tv(&rettv); + return retval; + } ++ # endif + +! # if defined(FEAT_COMPL_FUNC) || defined(PROTO) + /* + * Call vimL function "func" and return the result as a number. + * Returns -1 when calling the function fails. +*************** +*** 1530,1536 **** + clear_tv(&rettv); + return retval; + } +! #endif + + /* + * Call vimL function "func" and return the result as a list +--- 1533,1539 ---- + clear_tv(&rettv); + return retval; + } +! # endif + + /* + * Call vimL function "func" and return the result as a list +*************** +*** 1556,1563 **** + + return rettv.vval.v_list; + } +- + #endif + + /* + * Save the current function call pointer, and set it to NULL. +--- 1559,1566 ---- + + return rettv.vval.v_list; + } + #endif ++ + + /* + * Save the current function call pointer, and set it to NULL. +*** ../vim-7.1.035/src/ex_docmd.c Mon Jul 16 20:38:56 2007 +--- src/ex_docmd.c Sun Jul 15 17:20:09 2007 +*************** +*** 3406,3419 **** + case CMD_windo: + return arg; + +! #ifdef FEAT_SEARCH_EXTRA + case CMD_match: + if (*arg == NUL || !ends_excmd(*arg)) + { +! /* Dummy call to clear variables. */ +! set_context_in_highlight_cmd(xp, (char_u *)"link n"); +! xp->xp_context = EXPAND_HIGHLIGHT; +! xp->xp_pattern = arg; + arg = skipwhite(skiptowhite(arg)); + if (*arg != NUL) + { +--- 3406,3418 ---- + case CMD_windo: + return arg; + +! #ifdef FEAT_CMDL_COMPL +! # ifdef FEAT_SEARCH_EXTRA + case CMD_match: + if (*arg == NUL || !ends_excmd(*arg)) + { +! /* also complete "None" */ +! set_context_in_echohl_cmd(xp, arg); + arg = skipwhite(skiptowhite(arg)); + if (*arg != NUL) + { +*************** +*** 3422,3430 **** + } + } + return find_nextcmd(arg); +! #endif + +- #ifdef FEAT_CMDL_COMPL + /* + * All completion for the +cmdline_compl feature goes here. + */ +--- 3421,3428 ---- + } + } + return find_nextcmd(arg); +! # endif + + /* + * All completion for the +cmdline_compl feature goes here. + */ +*************** +*** 3622,3629 **** + break; + + case CMD_echohl: +! xp->xp_context = EXPAND_HIGHLIGHT; +! xp->xp_pattern = arg; + break; + #endif + case CMD_highlight: +--- 3620,3626 ---- + break; + + case CMD_echohl: +! set_context_in_echohl_cmd(xp, arg); + break; + #endif + case CMD_highlight: +*** ../vim-7.1.035/src/ex_getln.c Tue Jul 17 18:14:14 2007 +--- src/ex_getln.c Tue Jul 17 18:05:49 2007 +*************** +*** 268,274 **** +--- 268,276 ---- + { + xpc.xp_context = ccline.xp_context; + xpc.xp_pattern = ccline.cmdbuff; ++ # if defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL) + xpc.xp_arg = ccline.xp_arg; ++ # endif + } + #endif + +*************** +*** 4151,4163 **** +--- 4153,4171 ---- + + #ifdef FEAT_EVAL + if (ccline.cmdfirstc == '=') ++ { ++ # ifdef FEAT_CMDL_COMPL + /* pass CMD_SIZE because there is no real command */ + set_context_for_expression(xp, str, CMD_SIZE); ++ # endif ++ } + else if (ccline.input_fn) + { + xp->xp_context = ccline.xp_context; + xp->xp_pattern = ccline.cmdbuff; ++ # if defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL) + xp->xp_arg = ccline.xp_arg; ++ # endif + } + else + #endif +*************** +*** 4504,4509 **** +--- 4512,4523 ---- + /* Sort the results. Keep menu's in the specified order. */ + if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS) + sort_strings(*file, *num_file); ++ ++ #ifdef FEAT_CMDL_COMPL ++ /* Reset the variables used for special highlight names expansion, so that ++ * they don't show up when getting normal highlight names by ID. */ ++ reset_expand_highlight(); ++ #endif + + return OK; + } +*** ../vim-7.1.035/src/proto/syntax.pro Sat May 5 19:23:52 2007 +--- src/proto/syntax.pro Fri Jul 13 19:51:43 2007 +*************** +*** 8,13 **** +--- 8,15 ---- + void syntax_clear __ARGS((buf_T *buf)); + void ex_syntax __ARGS((exarg_T *eap)); + int syntax_present __ARGS((buf_T *buf)); ++ void reset_expand_highlight __ARGS((void)); ++ void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg)); + void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg)); + char_u *get_syntax_name __ARGS((expand_T *xp, int idx)); + int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp)); +*** ../vim-7.1.035/src/syntax.c Thu Jun 28 11:59:13 2007 +--- src/syntax.c Fri Jul 13 19:51:39 2007 +*************** +*** 66,73 **** + #define HL_TABLE() ((struct hl_group *)((highlight_ga.ga_data))) + + #ifdef FEAT_CMDL_COMPL +! static int include_default = FALSE; /* include "default" for expansion */ +! static int include_link = FALSE; /* include "link" for expansion */ + #endif + + /* +--- 66,75 ---- + #define HL_TABLE() ((struct hl_group *)((highlight_ga.ga_data))) + + #ifdef FEAT_CMDL_COMPL +! /* Flags to indicate an additional string for highlight name completion. */ +! static int include_none = 0; /* when 1 include "None" */ +! static int include_default = 0; /* when 1 include "default" */ +! static int include_link = 0; /* when 2 include "link" and "clear" */ + #endif + + /* +*************** +*** 5968,5973 **** +--- 5970,5998 ---- + EXP_CASE /* expand ":syn case" arguments */ + } expand_what; + ++ /* ++ * Reset include_link, include_default, include_none to 0. ++ * Called when we are done expanding. ++ */ ++ void ++ reset_expand_highlight() ++ { ++ include_link = include_default = include_none = 0; ++ } ++ ++ /* ++ * Handle command line completion for :match and :echohl command: Add "None" ++ * as highlight group. ++ */ ++ void ++ set_context_in_echohl_cmd(xp, arg) ++ expand_T *xp; ++ char_u *arg; ++ { ++ xp->xp_context = EXPAND_HIGHLIGHT; ++ xp->xp_pattern = arg; ++ include_none = 1; ++ } + + /* + * Handle command line completion for :syntax command. +*************** +*** 5983,5990 **** + xp->xp_context = EXPAND_SYNTAX; + expand_what = EXP_SUBCMD; + xp->xp_pattern = arg; +! include_link = FALSE; +! include_default = FALSE; + + /* (part of) subcommand already typed */ + if (*arg != NUL) +--- 6008,6015 ---- + xp->xp_context = EXPAND_SYNTAX; + expand_what = EXP_SUBCMD; + xp->xp_pattern = arg; +! include_link = 0; +! include_default = 0; + + /* (part of) subcommand already typed */ + if (*arg != NUL) +*************** +*** 8949,8955 **** + return OK; + } + +! #ifdef FEAT_CMDL_COMPL + + static void highlight_list __ARGS((void)); + static void highlight_list_two __ARGS((int cnt, int attr)); +--- 8974,8980 ---- + return OK; + } + +! #if defined(FEAT_CMDL_COMPL) || defined(PROTO) + + static void highlight_list __ARGS((void)); + static void highlight_list_two __ARGS((int cnt, int attr)); +*************** +*** 8967,8974 **** + /* Default: expand group names */ + xp->xp_context = EXPAND_HIGHLIGHT; + xp->xp_pattern = arg; +! include_link = TRUE; +! include_default = TRUE; + + /* (part of) subcommand already typed */ + if (*arg != NUL) +--- 8992,8999 ---- + /* Default: expand group names */ + xp->xp_context = EXPAND_HIGHLIGHT; + xp->xp_pattern = arg; +! include_link = 2; +! include_default = 1; + + /* (part of) subcommand already typed */ + if (*arg != NUL) +*************** +*** 8976,8982 **** + p = skiptowhite(arg); + if (*p != NUL) /* past "default" or group name */ + { +! include_default = FALSE; + if (STRNCMP("default", arg, p - arg) == 0) + { + arg = skipwhite(p); +--- 9001,9007 ---- + p = skiptowhite(arg); + if (*p != NUL) /* past "default" or group name */ + { +! include_default = 0; + if (STRNCMP("default", arg, p - arg) == 0) + { + arg = skipwhite(p); +*************** +*** 8985,8991 **** + } + if (*p != NUL) /* past group name */ + { +! include_link = FALSE; + if (arg[1] == 'i' && arg[0] == 'N') + highlight_list(); + if (STRNCMP("link", arg, p - arg) == 0 +--- 9010,9016 ---- + } + if (*p != NUL) /* past group name */ + { +! include_link = 0; + if (arg[1] == 'i' && arg[0] == 'N') + highlight_list(); + if (STRNCMP("link", arg, p - arg) == 0 +*************** +*** 9045,9075 **** + expand_T *xp; + int idx; + { +- if (idx == highlight_ga.ga_len + #ifdef FEAT_CMDL_COMPL +! && include_link +! #endif +! ) + return (char_u *)"link"; +! if (idx == highlight_ga.ga_len + 1 +! #ifdef FEAT_CMDL_COMPL +! && include_link +! #endif +! ) + return (char_u *)"clear"; +- if (idx == highlight_ga.ga_len + 2 +- #ifdef FEAT_CMDL_COMPL +- && include_default + #endif +- ) +- return (char_u *)"default"; + if (idx < 0 || idx >= highlight_ga.ga_len) + return NULL; + return HL_TABLE()[idx].sg_name; + } + #endif + +! #ifdef FEAT_GUI + /* + * Free all the highlight group fonts. + * Used when quitting for systems which need it. +--- 9070,9094 ---- + expand_T *xp; + int idx; + { + #ifdef FEAT_CMDL_COMPL +! if (idx == highlight_ga.ga_len && include_none != 0) +! return (char_u *)"none"; +! if (idx == highlight_ga.ga_len + include_none && include_default != 0) +! return (char_u *)"default"; +! if (idx == highlight_ga.ga_len + include_none + include_default +! && include_link != 0) + return (char_u *)"link"; +! if (idx == highlight_ga.ga_len + include_none + include_default + 1 +! && include_link != 0) + return (char_u *)"clear"; + #endif + if (idx < 0 || idx >= highlight_ga.ga_len) + return NULL; + return HL_TABLE()[idx].sg_name; + } + #endif + +! #if defined(FEAT_GUI) || defined(PROTO) + /* + * Free all the highlight group fonts. + * Used when quitting for systems which need it. +*** ../vim-7.1.035/src/version.c Tue Jul 24 11:15:46 2007 +--- src/version.c Tue Jul 24 14:30:18 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 36, + /**/ + +-- +Apparently, 1 in 5 people in the world are Chinese. And there are 5 +people in my family, so it must be one of them. It's either my mum +or my dad. Or my older brother Colin. Or my younger brother +Ho-Cha-Chu. But I think it's Colin. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.037 b/7.1.037 new file mode 100644 index 00000000..4b6b1b69 --- /dev/null +++ b/7.1.037 @@ -0,0 +1,57 @@ +To: vim-dev@vim.org +Subject: patch 7.1.037 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.037 +Problem: strcpy() used for overlapping strings. (Chris Monson) +Solution: Use mch_memmove() instead. +Files: src/option.c + + +*** ../vim-7.1.036/src/option.c Tue Jul 24 09:50:22 2007 +--- src/option.c Sun Jul 22 16:42:47 2007 +*************** +*** 4628,4634 **** + if ((!(flags & P_COMMA) || *s != ',') + && vim_strchr(s + 1, *s) != NULL) + { +! STRCPY(s, s + 1); + --s; + } + } +--- 4628,4634 ---- + if ((!(flags & P_COMMA) || *s != ',') + && vim_strchr(s + 1, *s) != NULL) + { +! mch_memmove(s, s + 1, STRLEN(s)); + --s; + } + } +*** ../vim-7.1.036/src/version.c Tue Jul 24 14:32:44 2007 +--- src/version.c Tue Jul 24 14:56:03 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 37, + /**/ + +-- +This planet has -- or rather had -- a problem, which was this: most +of the people living on it were unhappy for pretty much of the time. +Many solutions were suggested for this problem, but most of these +were largely concerned with the movements of small green pieces of +paper, which is odd because on the whole it wasn't the small green +pieces of paper that were unhappy. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.038 b/7.1.038 new file mode 100644 index 00000000..cdb3d665 --- /dev/null +++ b/7.1.038 @@ -0,0 +1,205 @@ +To: vim-dev@vim.org +Subject: patch 7.1.038 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.038 +Problem: When 'expandtab' is set then a Tab copied for 'copyindent' is + expanded to spaces, even when 'preserveindent' is set. (Alexei + Alexandrov) +Solution: Remove the check for 'expandtab'. Also fix that ">>" doesn't obey + 'preserveindent'. (Chris Lubinski) +Files: src/misc1.c + + +*** ../vim-7.1.037/src/misc1.c Thu May 10 21:03:33 2007 +--- src/misc1.c Tue Jul 24 15:24:50 2007 +*************** +*** 90,96 **** + */ + int + set_indent(size, flags) +! int size; + int flags; + { + char_u *p; +--- 90,96 ---- + */ + int + set_indent(size, flags) +! int size; /* measured in spaces */ + int flags; + { + char_u *p; +*************** +*** 98,109 **** + char_u *oldline; + char_u *s; + int todo; +! int ind_len; + int line_len; + int doit = FALSE; +! int ind_done; + int tab_pad; + int retval = FALSE; + + /* + * First check if there is anything to do and compute the number of +--- 98,111 ---- + char_u *oldline; + char_u *s; + int todo; +! int ind_len; /* measured in characters */ + int line_len; + int doit = FALSE; +! int ind_done = 0; /* measured in spaces */ + int tab_pad; + int retval = FALSE; ++ int orig_char_len = 0; /* number of initial whitespace chars when ++ 'et' and 'pi' are both set */ + + /* + * First check if there is anything to do and compute the number of +*************** +*** 116,123 **** + /* Calculate the buffer size for the new indent, and check to see if it + * isn't already set */ + +! /* if 'expandtab' isn't set: use TABs */ +! if (!curbuf->b_p_et) + { + /* If 'preserveindent' is set then reuse as much as possible of + * the existing indent structure for the new indent */ +--- 118,127 ---- + /* Calculate the buffer size for the new indent, and check to see if it + * isn't already set */ + +! /* if 'expandtab' isn't set: use TABs; if both 'expandtab' and +! * 'preserveindent' are set count the number of characters at the +! * beginning of the line to be copied */ +! if (!curbuf->b_p_et || (!(flags & SIN_INSERT) && curbuf->b_p_pi)) + { + /* If 'preserveindent' is set then reuse as much as possible of + * the existing indent structure for the new indent */ +*************** +*** 148,156 **** + ++p; + } + + /* Fill to next tabstop with a tab, if possible */ + tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts); +! if (todo >= tab_pad) + { + doit = TRUE; + todo -= tab_pad; +--- 152,165 ---- + ++p; + } + ++ /* Set initial number of whitespace chars to copy if we are ++ * preserving indent but expandtab is set */ ++ if (curbuf->b_p_et) ++ orig_char_len = ind_len; ++ + /* Fill to next tabstop with a tab, if possible */ + tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts); +! if (todo >= tab_pad && orig_char_len == 0) + { + doit = TRUE; + todo -= tab_pad; +*************** +*** 193,205 **** + else + p = skipwhite(p); + line_len = (int)STRLEN(p) + 1; +! newline = alloc(ind_len + line_len); +! if (newline == NULL) +! return FALSE; + + /* Put the characters in the new line. */ +- s = newline; +- todo = size; + /* if 'expandtab' isn't set: use TABs */ + if (!curbuf->b_p_et) + { +--- 202,239 ---- + else + p = skipwhite(p); + line_len = (int)STRLEN(p) + 1; +! +! /* If 'preserveindent' and 'expandtab' are both set keep the original +! * characters and allocate accordingly. We will fill the rest with spaces +! * after the if (!curbuf->b_p_et) below. */ +! if (orig_char_len != 0) +! { +! newline = alloc(orig_char_len + size - ind_done + line_len); +! if (newline == NULL) +! return FALSE; +! p = oldline; +! s = newline; +! while (orig_char_len > 0) +! { +! *s++ = *p++; +! orig_char_len--; +! } +! /* Skip over any additional white space (useful when newindent is less +! * than old) */ +! while (vim_iswhite(*p)) +! (void)*p++; +! todo = size-ind_done; +! } +! else +! { +! todo = size; +! newline = alloc(ind_len + line_len); +! if (newline == NULL) +! return FALSE; +! s = newline; +! } + + /* Put the characters in the new line. */ + /* if 'expandtab' isn't set: use TABs */ + if (!curbuf->b_p_et) + { +*************** +*** 1320,1327 **** + newindent += (int)curbuf->b_p_sw; + } + #endif +! /* Copy the indent only if expand tab is disabled */ +! if (curbuf->b_p_ci && !curbuf->b_p_et) + { + (void)copy_indent(newindent, saved_line); + +--- 1354,1361 ---- + newindent += (int)curbuf->b_p_sw; + } + #endif +! /* Copy the indent */ +! if (curbuf->b_p_ci) + { + (void)copy_indent(newindent, saved_line); + +*** ../vim-7.1.037/src/version.c Tue Jul 24 14:57:16 2007 +--- src/version.c Tue Jul 24 15:22:44 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 38, + /**/ + +-- +Time is an illusion. Lunchtime doubly so. + -- Ford Prefect, in Douglas Adams' + "The Hitchhiker's Guide to the Galaxy" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.039 b/7.1.039 new file mode 100644 index 00000000..5ce096d2 --- /dev/null +++ b/7.1.039 @@ -0,0 +1,57 @@ +To: vim-dev@vim.org +Subject: patch 7.1.039 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.039 +Problem: A tag in a help file that starts with "help-tags" and contains a + percent sign may make Vim crash. (Ulf Harnhammar) +Solution: Use puts() instead of fprintf(). +Files: src/ex_cmds.c + + +*** ../vim-7.1.038/src/ex_cmds.c Tue Jul 24 11:15:46 2007 +--- src/ex_cmds.c Wed Jul 25 20:06:20 2007 +*************** +*** 6374,6382 **** + for (i = 0; i < ga.ga_len; ++i) + { + s = ((char_u **)ga.ga_data)[i]; +! if (STRNCMP(s, "help-tags", 9) == 0) + /* help-tags entry was added in formatted form */ +! fprintf(fd_tags, (char *)s); + else + { + fprintf(fd_tags, "%s\t/*", s); +--- 6374,6382 ---- + for (i = 0; i < ga.ga_len; ++i) + { + s = ((char_u **)ga.ga_data)[i]; +! if (STRNCMP(s, "help-tags\t", 10) == 0) + /* help-tags entry was added in formatted form */ +! fputs((char *)s, fd_tags); + else + { + fprintf(fd_tags, "%s\t/*", s); +*** ../vim-7.1.038/src/version.c Tue Jul 24 15:25:27 2007 +--- src/version.c Wed Jul 25 22:41:18 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 39, + /**/ + +-- +On the other hand, you have different fingers. + -- Steven Wright + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.040 b/7.1.040 new file mode 100644 index 00000000..febac6a0 --- /dev/null +++ b/7.1.040 @@ -0,0 +1,1843 @@ +To: vim-dev@vim.org +Subject: patch 7.1.040 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.040 +Problem: ":match" only supports three matches. +Solution: Add functions clearmatches(), getmatches(), matchadd(), + matchdelete() and setmatches(). Changed the data structures for + this. A small bug in syntax.c is fixed, so newly created + highlight groups can have their name resolved correctly from their + ID. (Martin Toft) +Files: runtime/doc/eval.txt, runtime/doc/pattern.txt, + runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c, + src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c, + src/testdir/Makefile, src/testdir/test63.in, + src/testdir/test63.ok, src/window.c + + +*** ../vim-7.1.039/runtime/doc/eval.txt Tue Jul 17 16:31:15 2007 +--- runtime/doc/eval.txt Wed Jul 25 21:05:56 2007 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.1. Last change: 2007 Jul 11 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.1. Last change: 2007 Jul 25 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1557,1562 **** +--- 1557,1563 ---- + changenr() Number current change number + char2nr( {expr}) Number ASCII value of first char in {expr} + cindent( {lnum}) Number C indent for line {lnum} ++ clearmatches() None clear all matches + col( {expr}) Number column nr of cursor or mark + complete({startcol}, {matches}) String set Insert mode completion + complete_add( {expr}) Number add completion match +*************** +*** 1622,1627 **** +--- 1623,1629 ---- + getline( {lnum}) String line {lnum} of current buffer + getline( {lnum}, {end}) List lines {lnum} to {end} of current buffer + getloclist({nr}) List list of location list items ++ getmatches() List list of current matches + getpos( {expr}) List position of cursor, mark, etc. + getqflist() List list of quickfix items + getreg( [{regname} [, 1]]) String contents of register +*************** +*** 1676,1682 **** +--- 1678,1687 ---- + String check for mappings matching {name} + match( {expr}, {pat}[, {start}[, {count}]]) + Number position where {pat} matches in {expr} ++ matchadd( {group}, {pattern}[, {priority}[, {id}]]) ++ Number highlight {pattern} with {group} + matcharg( {nr}) List arguments of |:match| ++ matchdelete( {id}) Number delete match identified by {id} + matchend( {expr}, {pat}[, {start}[, {count}]]) + Number position where {pat} ends in {expr} + matchlist( {expr}, {pat}[, {start}[, {count}]]) +*************** +*** 1731,1736 **** +--- 1736,1742 ---- + setline( {lnum}, {line}) Number set line {lnum} to {line} + setloclist( {nr}, {list}[, {action}]) + Number modify location list using {list} ++ setmatches( {list}) Number restore a list of matches + setpos( {expr}, {list}) none set the {expr} position to {list} + setqflist( {list}[, {action}]) Number modify quickfix list using {list} + setreg( {n}, {v}[, {opt}]) Number set register to value and type +*************** +*** 2012,2017 **** +--- 2018,2027 ---- + feature, -1 is returned. + See |C-indenting|. + ++ clearmatches() *clearmatches()* ++ Clears all matches previously defined by |matchadd()| and the ++ |:match| commands. ++ + *col()* + col({expr}) The result is a Number, which is the byte index of the column + position given with {expr}. The accepted positions are: +*************** +*** 2918,2923 **** +--- 2928,2955 ---- + returned. For an invalid window number {nr}, an empty list is + returned. Otherwise, same as getqflist(). + ++ getmatches() *getmatches()* ++ Returns a |List| with all matches previously defined by ++ |matchadd()| and the |:match| commands. |getmatches()| is ++ useful in combination with |setmatches()|, as |setmatches()| ++ can restore a list of matches saved by |getmatches()|. ++ Example: > ++ :echo getmatches() ++ < [{'group': 'MyGroup1', 'pattern': 'TODO', ++ 'priority': 10, 'id': 1}, {'group': 'MyGroup2', ++ 'pattern': 'FIXME', 'priority': 10, 'id': 2}] > ++ :let m = getmatches() ++ :call clearmatches() ++ :echo getmatches() ++ < [] > ++ :call setmatches(m) ++ :echo getmatches() ++ < [{'group': 'MyGroup1', 'pattern': 'TODO', ++ 'priority': 10, 'id': 1}, {'group': 'MyGroup2', ++ 'pattern': 'FIXME', 'priority': 10, 'id': 2}] > ++ :unlet m ++ < ++ + getqflist() *getqflist()* + Returns a list with all the current quickfix errors. Each + list item is a dictionary with these entries: +*************** +*** 3622,3627 **** +--- 3654,3697 ---- + the pattern. 'smartcase' is NOT used. The matching is always + done like 'magic' is set and 'cpoptions' is empty. + ++ *matchadd()* *E798* *E799* *E801* ++ matchadd({group}, {pattern}[, {priority}[, {id}]]) ++ Defines a pattern to be highlighted in the current window (a ++ "match"). It will be highlighted with {group}. Returns an ++ identification number (ID), which can be used to delete the ++ match using |matchdelete()|. ++ ++ The optional {priority} argument assigns a priority to the ++ match. A match with a high priority will have its ++ highlighting overrule that of a match with a lower priority. ++ A priority is specified as an integer (negative numbers are no ++ exception). If the {priority} argument is not specified, the ++ default priority is 10. The priority of 'hlsearch' is zero, ++ hence all matches with a priority greater than zero will ++ overrule it. Syntax highlighting (see 'syntax') is a separate ++ mechanism, and regardless of the chosen priority a match will ++ always overrule syntax highlighting. ++ ++ The optional {id} argument allows the request for a specific ++ match ID. If a specified ID is already taken, an error ++ message will appear and the match will not be added. An ID ++ is specified as a positive integer (zero excluded). IDs 1, 2 ++ and 3 are reserved for |:match|, |:2match| and |:3match|, ++ respectively. If the {id} argument is not specified, ++ |matchadd()| automatically chooses a free ID. ++ ++ The number of matches is not limited, as it is the case with ++ the |:match| commands. ++ ++ Example: > ++ :highlight MyGroup ctermbg=green guibg=green ++ :let m = matchadd("MyGroup", "TODO") ++ < Deletion of the pattern: > ++ :call matchdelete(m) ++ ++ < A list of matches defined by |matchadd()| and |:match| are ++ available from |getmatches()|. All matches can be deleted in ++ one operation by |clearmatches()|. + + matcharg({nr}) *matcharg()* + Selects the {nr} match item, as set with a |:match|, +*************** +*** 3631,3638 **** + The pattern used. + When {nr} is not 1, 2 or 3 returns an empty |List|. + When there is no match item set returns ['', '']. +! This is usef to save and restore a |:match|. +! + + matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()* + Same as match(), but return the index of first character after +--- 3701,3715 ---- + The pattern used. + When {nr} is not 1, 2 or 3 returns an empty |List|. + When there is no match item set returns ['', '']. +! This is useful to save and restore a |:match|. +! Highlighting matches using the |:match| commands are limited +! to three matches. |matchadd()| does not have this limitation. +! +! matchdelete({id}) *matchdelete()* *E802* *E803* +! Deletes a match with ID {id} previously defined by |matchadd()| +! or one of the |:match| commands. Returns 0 if succesfull, +! otherwise -1. See example for |matchadd()|. All matches can +! be deleted in one operation by |clearmatches()|. + + matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()* + Same as match(), but return the index of first character after +*************** +*** 4385,4391 **** + When {nr} is zero the current window is used. For a location + list window, the displayed location list is modified. For an + invalid window number {nr}, -1 is returned. +! Otherwise, same as setqflist(). + + *setpos()* + setpos({expr}, {list}) +--- 4462,4474 ---- + When {nr} is zero the current window is used. For a location + list window, the displayed location list is modified. For an + invalid window number {nr}, -1 is returned. +! Otherwise, same as |setqflist()|. +! Also see |location-list|. +! +! setmatches({list}) *setmatches()* +! Restores a list of matches saved by |getmatches()|. Returns 0 +! if succesfull, otherwise -1. All current matches are cleared +! before the list is restored. See example for |getmatches()|. + + *setpos()* + setpos({expr}, {list}) +*** ../vim-7.1.039/runtime/doc/pattern.txt Sat May 12 16:57:31 2007 +--- runtime/doc/pattern.txt Tue Jul 24 15:47:01 2007 +*************** +*** 1212,1218 **** + {group} must exist at the moment this command is executed. + + The {group} highlighting still applies when a character is +! to be highlighted for 'hlsearch'. + + Note that highlighting the last used search pattern with + 'hlsearch' is used in all windows, while the pattern defined +--- 1212,1221 ---- + {group} must exist at the moment this command is executed. + + The {group} highlighting still applies when a character is +! to be highlighted for 'hlsearch', as the highlighting for +! matches is given higher priority than that of 'hlsearch'. +! Syntax highlighting (see 'syntax') is also overruled by +! matches. + + Note that highlighting the last used search pattern with + 'hlsearch' is used in all windows, while the pattern defined +*************** +*** 1226,1233 **** + display you may get unexpected results. That is because Vim + looks for a match in the line where redrawing starts. + +! Also see |matcharg()|, it returns the highlight group and +! pattern of a previous :match command. + + Another example, which highlights all characters in virtual + column 72 and more: > +--- 1229,1243 ---- + display you may get unexpected results. That is because Vim + looks for a match in the line where redrawing starts. + +! Also see |matcharg()|and |getmatches()|. The former returns +! the highlight group and pattern of a previous |:match| +! command. The latter returns a list with highlight groups and +! patterns defined by both |matchadd()| and |:match|. +! +! Highlighting matches using |:match| are limited to three +! matches (aside from |:match|, |:2match| and |:3match|are +! available). |matchadd()| does not have this limitation and in +! addition makes it possible to prioritize matches. + + Another example, which highlights all characters in virtual + column 72 and more: > +*** ../vim-7.1.039/runtime/doc/usr_41.txt Sat May 12 15:54:55 2007 +--- runtime/doc/usr_41.txt Tue Jul 24 15:47:01 2007 +*************** +*** 763,775 **** +--- 763,784 ---- + foldtextresult() get the text displayed for a closed fold + + Syntax and highlighting: ++ clearmatches() clear all matches defined by |matchadd()| and ++ the |:match| commands ++ getmatches() get all matches defined by |matchadd()| and ++ the |:match| commands + hlexists() check if a highlight group exists + hlID() get ID of a highlight group + synID() get syntax ID at a specific position + synIDattr() get a specific attribute of a syntax ID + synIDtrans() get translated syntax ID + diff_hlID() get highlight ID for diff mode at a position ++ matchadd() define a pattern to highlight (a "match") + matcharg() get info about |:match| arguments ++ matchdelete() delete a match defined by |matchadd()| or a ++ |:match| command ++ setmatches() restore a list of matches saved by ++ |getmatches()| + + Spelling: + spellbadword() locate badly spelled word at or after cursor +*** ../vim-7.1.039/src/eval.c Tue Jul 24 14:32:44 2007 +--- src/eval.c Tue Jul 24 20:40:52 2007 +*************** +*** 475,480 **** +--- 475,481 ---- + static void f_changenr __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_char2nr __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_cindent __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_clearmatches __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_col __ARGS((typval_T *argvars, typval_T *rettv)); + #if defined(FEAT_INS_EXPAND) + static void f_complete __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 529,534 **** +--- 530,536 ---- + static void f_getftime __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getftype __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getline __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_getmatches __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getpos __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getqflist __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getreg __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 577,583 **** +--- 579,587 ---- + static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_match __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_matchadd __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_matcharg __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_matchdelete __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_matchend __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_matchlist __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_matchstr __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 618,623 **** +--- 622,628 ---- + static void f_setcmdpos __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setline __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setloclist __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_setmatches __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setpos __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setqflist __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 7046,7051 **** +--- 7051,7057 ---- + {"changenr", 0, 0, f_changenr}, + {"char2nr", 1, 1, f_char2nr}, + {"cindent", 1, 1, f_cindent}, ++ {"clearmatches", 0, 0, f_clearmatches}, + {"col", 1, 1, f_col}, + #if defined(FEAT_INS_EXPAND) + {"complete", 2, 2, f_complete}, +*************** +*** 7102,7107 **** +--- 7108,7114 ---- + {"getftype", 1, 1, f_getftype}, + {"getline", 1, 2, f_getline}, + {"getloclist", 1, 1, f_getqflist}, ++ {"getmatches", 0, 0, f_getmatches}, + {"getpos", 1, 1, f_getpos}, + {"getqflist", 0, 0, f_getqflist}, + {"getreg", 0, 2, f_getreg}, +*************** +*** 7152,7158 **** +--- 7159,7167 ---- + {"maparg", 1, 3, f_maparg}, + {"mapcheck", 1, 3, f_mapcheck}, + {"match", 2, 4, f_match}, ++ {"matchadd", 2, 4, f_matchadd}, + {"matcharg", 1, 1, f_matcharg}, ++ {"matchdelete", 1, 1, f_matchdelete}, + {"matchend", 2, 4, f_matchend}, + {"matchlist", 2, 4, f_matchlist}, + {"matchstr", 2, 4, f_matchstr}, +*************** +*** 7193,7198 **** +--- 7202,7208 ---- + {"setcmdpos", 1, 1, f_setcmdpos}, + {"setline", 2, 2, f_setline}, + {"setloclist", 2, 3, f_setloclist}, ++ {"setmatches", 1, 1, f_setmatches}, + {"setpos", 2, 2, f_setpos}, + {"setqflist", 1, 2, f_setqflist}, + {"setreg", 2, 3, f_setreg}, +*************** +*** 8243,8248 **** +--- 8253,8272 ---- + } + + /* ++ * "clearmatches()" function ++ */ ++ /*ARGSUSED*/ ++ static void ++ f_clearmatches(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ #ifdef FEAT_SEARCH_EXTRA ++ clear_matches(curwin); ++ #endif ++ } ++ ++ /* + * "col(string)" function + */ + static void +*************** +*** 10278,10283 **** +--- 10302,10341 ---- + } + + /* ++ * "getmatches()" function ++ */ ++ /*ARGSUSED*/ ++ static void ++ f_getmatches(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ #ifdef FEAT_SEARCH_EXTRA ++ dict_T *dict; ++ matchitem_T *cur = curwin->w_match_head; ++ ++ rettv->vval.v_number = 0; ++ ++ if (rettv_list_alloc(rettv) == OK) ++ { ++ while (cur != NULL) ++ { ++ dict = dict_alloc(); ++ if (dict == NULL) ++ return; ++ ++dict->dv_refcount; ++ dict_add_nr_str(dict, "group", 0L, syn_id2name(cur->hlg_id)); ++ dict_add_nr_str(dict, "pattern", 0L, cur->pattern); ++ dict_add_nr_str(dict, "priority", (long)cur->priority, NULL); ++ dict_add_nr_str(dict, "id", (long)cur->id, NULL); ++ list_append_dict(rettv->vval.v_list, dict); ++ cur = cur->next; ++ } ++ } ++ #endif ++ } ++ ++ /* + * "getpos(string)" function + */ + static void +*************** +*** 12448,12453 **** +--- 12506,12547 ---- + } + + /* ++ * "matchadd()" function ++ */ ++ static void ++ f_matchadd(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ #ifdef FEAT_SEARCH_EXTRA ++ char_u buf[NUMBUFLEN]; ++ char_u *grp = get_tv_string_buf_chk(&argvars[0], buf); /* group */ ++ char_u *pat = get_tv_string_buf_chk(&argvars[1], buf); /* pattern */ ++ int prio = 10; /* default priority */ ++ int id = -1; ++ int error = FALSE; ++ ++ rettv->vval.v_number = -1; ++ ++ if (grp == NULL || pat == NULL) ++ return; ++ if (argvars[2].v_type != VAR_UNKNOWN) ++ prio = get_tv_number_chk(&argvars[2], &error); ++ if (argvars[3].v_type != VAR_UNKNOWN) ++ id = get_tv_number_chk(&argvars[3], &error); ++ if (error == TRUE) ++ return; ++ if (id >= 1 && id <= 3) ++ { ++ EMSGN("E798: ID is reserved for \":match\": %ld", id); ++ return; ++ } ++ ++ rettv->vval.v_number = match_add(curwin, grp, pat, prio, id); ++ #endif ++ } ++ ++ /* + * "matcharg()" function + */ + static void +*************** +*** 12458,12477 **** + if (rettv_list_alloc(rettv) == OK) + { + #ifdef FEAT_SEARCH_EXTRA +! int mi = get_tv_number(&argvars[0]); + +! if (mi >= 1 && mi <= 3) + { +! list_append_string(rettv->vval.v_list, +! syn_id2name(curwin->w_match_id[mi - 1]), -1); +! list_append_string(rettv->vval.v_list, +! curwin->w_match_pat[mi - 1], -1); + } + #endif + } + } + + /* + * "matchend()" function + */ + static void +--- 12552,12593 ---- + if (rettv_list_alloc(rettv) == OK) + { + #ifdef FEAT_SEARCH_EXTRA +! int id = get_tv_number(&argvars[0]); +! matchitem_T *m; + +! if (id >= 1 && id <= 3) + { +! if ((m = (matchitem_T *)get_match(curwin, id)) != NULL) +! { +! list_append_string(rettv->vval.v_list, +! syn_id2name(m->hlg_id), -1); +! list_append_string(rettv->vval.v_list, m->pattern, -1); +! } +! else +! { +! list_append_string(rettv->vval.v_list, NUL, -1); +! list_append_string(rettv->vval.v_list, NUL, -1); +! } + } + #endif + } + } + + /* ++ * "matchdelete()" function ++ */ ++ static void ++ f_matchdelete(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ #ifdef FEAT_SEARCH_EXTRA ++ rettv->vval.v_number = match_delete(curwin, ++ (int)get_tv_number(&argvars[0]), TRUE); ++ #endif ++ } ++ ++ /* + * "matchend()" function + */ + static void +*************** +*** 14506,14511 **** +--- 14622,14687 ---- + win = find_win_by_nr(&argvars[0], NULL); + if (win != NULL) + set_qf_ll_list(win, &argvars[1], &argvars[2], rettv); ++ } ++ ++ /* ++ * "setmatches()" function ++ */ ++ static void ++ f_setmatches(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ #ifdef FEAT_SEARCH_EXTRA ++ list_T *l; ++ listitem_T *li; ++ dict_T *d; ++ ++ rettv->vval.v_number = -1; ++ if (argvars[0].v_type != VAR_LIST) ++ { ++ EMSG(_(e_listreq)); ++ return; ++ } ++ if ((l = argvars[0].vval.v_list) != NULL) ++ { ++ ++ /* To some extent make sure that we are dealing with a list from ++ * "getmatches()". */ ++ li = l->lv_first; ++ while (li != NULL) ++ { ++ if (li->li_tv.v_type != VAR_DICT ++ || (d = li->li_tv.vval.v_dict) == NULL) ++ { ++ EMSG(_(e_invarg)); ++ return; ++ } ++ if (!(dict_find(d, (char_u *)"group", -1) != NULL ++ && dict_find(d, (char_u *)"pattern", -1) != NULL ++ && dict_find(d, (char_u *)"priority", -1) != NULL ++ && dict_find(d, (char_u *)"id", -1) != NULL)) ++ { ++ EMSG(_(e_invarg)); ++ return; ++ } ++ li = li->li_next; ++ } ++ ++ clear_matches(curwin); ++ li = l->lv_first; ++ while (li != NULL) ++ { ++ d = li->li_tv.vval.v_dict; ++ match_add(curwin, get_dict_string(d, (char_u *)"group", FALSE), ++ get_dict_string(d, (char_u *)"pattern", FALSE), ++ (int)get_dict_number(d, (char_u *)"priority"), ++ (int)get_dict_number(d, (char_u *)"id")); ++ li = li->li_next; ++ } ++ rettv->vval.v_number = 0; ++ } ++ #endif + } + + /* +*** ../vim-7.1.039/src/ex_docmd.c Tue Jul 24 14:32:44 2007 +--- src/ex_docmd.c Tue Jul 24 15:47:01 2007 +*************** +*** 10817,10828 **** + exarg_T *eap; + { + char_u *p; + char_u *end; + int c; +! int mi; + + if (eap->line2 <= 3) +! mi = eap->line2 - 1; + else + { + EMSG(e_invcmd); +--- 10817,10829 ---- + exarg_T *eap; + { + char_u *p; ++ char_u *g; + char_u *end; + int c; +! int id; + + if (eap->line2 <= 3) +! id = eap->line2; + else + { + EMSG(e_invcmd); +*************** +*** 10831,10843 **** + + /* First clear any old pattern. */ + if (!eap->skip) +! { +! vim_free(curwin->w_match[mi].regprog); +! curwin->w_match[mi].regprog = NULL; +! vim_free(curwin->w_match_pat[mi]); +! curwin->w_match_pat[mi] = NULL; +! redraw_later(SOME_VALID); /* always need a redraw */ +! } + + if (ends_excmd(*eap->arg)) + end = eap->arg; +--- 10832,10838 ---- + + /* First clear any old pattern. */ + if (!eap->skip) +! match_delete(curwin, id, FALSE); + + if (ends_excmd(*eap->arg)) + end = eap->arg; +*************** +*** 10848,10862 **** + { + p = skiptowhite(eap->arg); + if (!eap->skip) +! { +! curwin->w_match_id[mi] = syn_namen2id(eap->arg, +! (int)(p - eap->arg)); +! if (curwin->w_match_id[mi] == 0) +! { +! EMSG2(_(e_nogroup), eap->arg); +! return; +! } +! } + p = skipwhite(p); + if (*p == NUL) + { +--- 10843,10849 ---- + { + p = skiptowhite(eap->arg); + if (!eap->skip) +! g = vim_strnsave(eap->arg, (int)(p - eap->arg)); + p = skipwhite(p); + if (*p == NUL) + { +*************** +*** 10880,10893 **** + + c = *end; + *end = NUL; +! curwin->w_match[mi].regprog = vim_regcomp(p + 1, RE_MAGIC); +! if (curwin->w_match[mi].regprog == NULL) +! { +! EMSG2(_(e_invarg2), p); +! *end = c; +! return; +! } +! curwin->w_match_pat[mi] = vim_strsave(p + 1); + *end = c; + } + } +--- 10867,10874 ---- + + c = *end; + *end = NUL; +! match_add(curwin, g, p + 1, 10, id); +! vim_free(g); + *end = c; + } + } +*** ../vim-7.1.039/src/proto/window.pro Sat May 5 19:52:36 2007 +--- src/proto/window.pro Tue Jul 24 16:38:19 2007 +*************** +*** 59,62 **** +--- 59,66 ---- + int only_one_window __ARGS((void)); + void check_lnums __ARGS((int do_curwin)); + int win_hasvertsplit __ARGS((void)); ++ int match_add __ARGS((win_T *wp, char_u *grp, char_u *pat, int prio, int id)); ++ int match_delete __ARGS((win_T *wp, int id, int perr)); ++ void clear_matches __ARGS((win_T *wp)); ++ matchitem_T *get_match __ARGS((win_T *wp, int id)); + /* vim: set ft=c : */ +*** ../vim-7.1.039/src/screen.c Tue Jun 19 17:49:12 2007 +--- src/screen.c Thu Jul 26 21:55:40 2007 +*************** +*** 100,126 **** + static int screen_cur_row, screen_cur_col; /* last known cursor position */ + + #ifdef FEAT_SEARCH_EXTRA +- /* +- * Struct used for highlighting 'hlsearch' matches for the last use search +- * pattern or a ":match" item. +- * For 'hlsearch' there is one pattern for all windows. For ":match" there is +- * a different pattern for each window. +- */ +- typedef struct +- { +- regmmatch_T rm; /* points to the regexp program; contains last found +- match (may continue in next line) */ +- buf_T *buf; /* the buffer to search for a match */ +- linenr_T lnum; /* the line to search for a match */ +- int attr; /* attributes to be used for a match */ +- int attr_cur; /* attributes currently active in win_line() */ +- linenr_T first_lnum; /* first lnum to search for multi-line pat */ +- colnr_T startcol; /* in win_line() points to char where HL starts */ +- colnr_T endcol; /* in win_line() points to char where HL ends */ +- } match_T; +- + static match_T search_hl; /* used for 'hlsearch' highlight matching */ +- static match_T match_hl[3]; /* used for ":match" highlight matching */ + #endif + + #ifdef FEAT_FOLDING +--- 100,106 ---- +*************** +*** 155,160 **** +--- 135,141 ---- + static void redraw_custum_statusline __ARGS((win_T *wp)); + #endif + #ifdef FEAT_SEARCH_EXTRA ++ #define SEARCH_HL_PRIORITY 0 + static void start_search_hl __ARGS((void)); + static void end_search_hl __ARGS((void)); + static void prepare_search_hl __ARGS((win_T *wp, linenr_T lnum)); +*************** +*** 787,792 **** +--- 768,774 ---- + w_topline got smaller a bit */ + #endif + #ifdef FEAT_SEARCH_EXTRA ++ matchitem_T *cur; /* points to the match list */ + int top_to_mod = FALSE; /* redraw above mod_top */ + #endif + +*************** +*** 848,865 **** + #endif + + #ifdef FEAT_SEARCH_EXTRA +! /* Setup for ":match" and 'hlsearch' highlighting. Disable any previous + * match */ +! for (i = 0; i < 3; ++i) + { +! match_hl[i].rm = wp->w_match[i]; +! if (wp->w_match_id[i] == 0) +! match_hl[i].attr = 0; + else +! match_hl[i].attr = syn_id2attr(wp->w_match_id[i]); +! match_hl[i].buf = buf; +! match_hl[i].lnum = 0; +! match_hl[i].first_lnum = 0; + } + search_hl.buf = buf; + search_hl.lnum = 0; +--- 830,849 ---- + #endif + + #ifdef FEAT_SEARCH_EXTRA +! /* Setup for match and 'hlsearch' highlighting. Disable any previous + * match */ +! cur = wp->w_match_head; +! while (cur != NULL) + { +! cur->hl.rm = cur->match; +! if (cur->hlg_id == 0) +! cur->hl.attr = 0; + else +! cur->hl.attr = syn_id2attr(cur->hlg_id); +! cur->hl.buf = buf; +! cur->hl.lnum = 0; +! cur->hl.first_lnum = 0; +! cur = cur->next; + } + search_hl.buf = buf; + search_hl.lnum = 0; +*************** +*** 923,941 **** + * change in one line may make the Search highlighting in a + * previous line invalid. Simple solution: redraw all visible + * lines above the change. +! * Same for a ":match" pattern. + */ + if (search_hl.rm.regprog != NULL + && re_multiline(search_hl.rm.regprog)) + top_to_mod = TRUE; + else +! for (i = 0; i < 3; ++i) +! if (match_hl[i].rm.regprog != NULL +! && re_multiline(match_hl[i].rm.regprog)) + { + top_to_mod = TRUE; + break; + } + #endif + } + #ifdef FEAT_FOLDING +--- 907,931 ---- + * change in one line may make the Search highlighting in a + * previous line invalid. Simple solution: redraw all visible + * lines above the change. +! * Same for a match pattern. + */ + if (search_hl.rm.regprog != NULL + && re_multiline(search_hl.rm.regprog)) + top_to_mod = TRUE; + else +! { +! cur = wp->w_match_head; +! while (cur != NULL) +! { +! if (cur->match.regprog != NULL +! && re_multiline(cur->match.regprog)) + { + top_to_mod = TRUE; + break; + } ++ cur = cur->next; ++ } ++ } + #endif + } + #ifdef FEAT_FOLDING +*************** +*** 2626,2635 **** + int line_attr = 0; /* atrribute for the whole line */ + #endif + #ifdef FEAT_SEARCH_EXTRA +! match_T *shl; /* points to search_hl or match_hl */ +! #endif +! #if defined(FEAT_SEARCH_EXTRA) || defined(FEAT_MBYTE) +! int i; + #endif + #ifdef FEAT_ARABIC + int prev_c = 0; /* previous Arabic character */ +--- 2634,2646 ---- + int line_attr = 0; /* atrribute for the whole line */ + #endif + #ifdef FEAT_SEARCH_EXTRA +! matchitem_T *cur; /* points to the match list */ +! match_T *shl; /* points to search_hl or a match */ +! int shl_flag; /* flag to indicate whether search_hl +! has been processed or not */ +! int prevcol_hl_flag; /* flag to indicate whether prevcol +! equals startcol of search_hl or one +! of the matches */ + #endif + #ifdef FEAT_ARABIC + int prev_c = 0; /* previous Arabic character */ +*************** +*** 3074,3085 **** + + #ifdef FEAT_SEARCH_EXTRA + /* +! * Handle highlighting the last used search pattern and ":match". +! * Do this for both search_hl and match_hl[3]. + */ +! for (i = 3; i >= 0; --i) + { +! shl = (i == 3) ? &search_hl : &match_hl[i]; + shl->startcol = MAXCOL; + shl->endcol = MAXCOL; + shl->attr_cur = 0; +--- 3085,3104 ---- + + #ifdef FEAT_SEARCH_EXTRA + /* +! * Handle highlighting the last used search pattern and matches. +! * Do this for both search_hl and the match list. + */ +! cur = wp->w_match_head; +! shl_flag = FALSE; +! while (cur != NULL || shl_flag == FALSE) + { +! if (shl_flag == FALSE) +! { +! shl = &search_hl; +! shl_flag = TRUE; +! } +! else +! shl = &cur->hl; + shl->startcol = MAXCOL; + shl->endcol = MAXCOL; + shl->attr_cur = 0; +*************** +*** 3122,3127 **** +--- 3141,3148 ---- + area_highlighting = TRUE; + } + } ++ if (shl != &search_hl && cur != NULL) ++ cur = cur->next; + } + #endif + +*************** +*** 3388,3400 **** + * After end, check for start/end of next match. + * When another match, have to check for start again. + * Watch out for matching an empty string! +! * Do this first for search_hl, then for match_hl, so that +! * ":match" overrules 'hlsearch'. + */ + v = (long)(ptr - line); +! for (i = 3; i >= 0; --i) +! { +! shl = (i == 3) ? &search_hl : &match_hl[i]; + while (shl->rm.regprog != NULL) + { + if (shl->startcol != MAXCOL +--- 3409,3432 ---- + * After end, check for start/end of next match. + * When another match, have to check for start again. + * Watch out for matching an empty string! +! * Do this for 'search_hl' and the match list (ordered by +! * priority). + */ + v = (long)(ptr - line); +! cur = wp->w_match_head; +! shl_flag = FALSE; +! while (cur != NULL || shl_flag == FALSE) +! { +! if (shl_flag == FALSE +! && ((cur != NULL +! && cur->priority > SEARCH_HL_PRIORITY) +! || cur == NULL)) +! { +! shl = &search_hl; +! shl_flag = TRUE; +! } +! else +! shl = &cur->hl; + while (shl->rm.regprog != NULL) + { + if (shl->startcol != MAXCOL +*************** +*** 3442,3458 **** + } + break; + } + } + +! /* ":match" highlighting overrules 'hlsearch' */ +! for (i = 0; i <= 3; ++i) +! if (i == 3) +! search_attr = search_hl.attr_cur; +! else if (match_hl[i].attr_cur != 0) + { +! search_attr = match_hl[i].attr_cur; +! break; + } + } + #endif + +--- 3474,3505 ---- + } + break; + } ++ if (shl != &search_hl && cur != NULL) ++ cur = cur->next; + } + +! /* Use attributes from match with highest priority among +! * 'search_hl' and the match list. */ +! search_attr = search_hl.attr_cur; +! cur = wp->w_match_head; +! shl_flag = FALSE; +! while (cur != NULL || shl_flag == FALSE) +! { +! if (shl_flag == FALSE +! && ((cur != NULL +! && cur->priority > SEARCH_HL_PRIORITY) +! || cur == NULL)) + { +! shl = &search_hl; +! shl_flag = TRUE; + } ++ else ++ shl = &cur->hl; ++ if (shl->attr_cur != 0) ++ search_attr = shl->attr_cur; ++ if (shl != &search_hl && cur != NULL) ++ cur = cur->next; ++ } + } + #endif + +*************** +*** 3613,3618 **** +--- 3660,3667 ---- + * Draw it as a space with a composing char. */ + if (utf_iscomposing(mb_c)) + { ++ int i; ++ + for (i = Screen_mco - 1; i > 0; --i) + u8cc[i] = u8cc[i - 1]; + u8cc[0] = mb_c; +*************** +*** 4256,4269 **** + * highlight match at end of line. If it's beyond the last + * char on the screen, just overwrite that one (tricky!) Not + * needed when a '$' was displayed for 'list'. */ + if (lcs_eol == lcs_eol_one + && ((area_attr != 0 && vcol == fromcol && c == NUL) + #ifdef FEAT_SEARCH_EXTRA + /* highlight 'hlsearch' match at end of line */ +! || ((prevcol == (long)search_hl.startcol +! || prevcol == (long)match_hl[0].startcol +! || prevcol == (long)match_hl[1].startcol +! || prevcol == (long)match_hl[2].startcol) + # if defined(LINE_ATTR) + && did_line_attr <= 1 + # endif +--- 4305,4333 ---- + * highlight match at end of line. If it's beyond the last + * char on the screen, just overwrite that one (tricky!) Not + * needed when a '$' was displayed for 'list'. */ ++ #ifdef FEAT_SEARCH_EXTRA ++ prevcol_hl_flag = FALSE; ++ if (prevcol == (long)search_hl.startcol) ++ prevcol_hl_flag = TRUE; ++ else ++ { ++ cur = wp->w_match_head; ++ while (cur != NULL) ++ { ++ if (prevcol == (long)cur->hl.startcol) ++ { ++ prevcol_hl_flag = TRUE; ++ break; ++ } ++ cur = cur->next; ++ } ++ } ++ #endif + if (lcs_eol == lcs_eol_one + && ((area_attr != 0 && vcol == fromcol && c == NUL) + #ifdef FEAT_SEARCH_EXTRA + /* highlight 'hlsearch' match at end of line */ +! || (prevcol_hl_flag == TRUE + # if defined(LINE_ATTR) + && did_line_attr <= 1 + # endif +*************** +*** 4304,4318 **** + #ifdef FEAT_SEARCH_EXTRA + if (area_attr == 0) + { +! for (i = 0; i <= 3; ++i) +! { +! if (i == 3) +! char_attr = search_hl.attr; +! else if ((ptr - line) - 1 == (long)match_hl[i].startcol) + { +! char_attr = match_hl[i].attr; +! break; + } + } + } + #endif +--- 4368,4394 ---- + #ifdef FEAT_SEARCH_EXTRA + if (area_attr == 0) + { +! /* Use attributes from match with highest priority among +! * 'search_hl' and the match list. */ +! char_attr = search_hl.attr; +! cur = wp->w_match_head; +! shl_flag = FALSE; +! while (cur != NULL || shl_flag == FALSE) +! { +! if (shl_flag == FALSE +! && ((cur != NULL +! && cur->priority > SEARCH_HL_PRIORITY) +! || cur == NULL)) + { +! shl = &search_hl; +! shl_flag = TRUE; + } ++ else ++ shl = &cur->hl; ++ if ((ptr - line) - 1 == (long)shl->startcol) ++ char_attr = shl->attr; ++ if (shl != &search_hl && cur != NULL) ++ cur = cur->next; + } + } + #endif +*************** +*** 4462,4467 **** +--- 4538,4545 ---- + { + if (mb_utf8) + { ++ int i; ++ + ScreenLinesUC[off] = mb_c; + if ((c & 0xff) == 0) + ScreenLines[off] = 0x80; /* avoid storing zero */ +*************** +*** 6320,6326 **** + + #ifdef FEAT_SEARCH_EXTRA + /* +! * Prepare for 'searchhl' highlighting. + */ + static void + start_search_hl() +--- 6398,6404 ---- + + #ifdef FEAT_SEARCH_EXTRA + /* +! * Prepare for 'hlsearch' highlighting. + */ + static void + start_search_hl() +*************** +*** 6333,6339 **** + } + + /* +! * Clean up for 'searchhl' highlighting. + */ + static void + end_search_hl() +--- 6411,6417 ---- + } + + /* +! * Clean up for 'hlsearch' highlighting. + */ + static void + end_search_hl() +*************** +*** 6353,6370 **** + win_T *wp; + linenr_T lnum; + { +! match_T *shl; /* points to search_hl or match_hl */ + int n; +- int i; + + /* + * When using a multi-line pattern, start searching at the top + * of the window or just after a closed fold. +! * Do this both for search_hl and match_hl[3]. + */ +! for (i = 3; i >= 0; --i) + { +! shl = (i == 3) ? &search_hl : &match_hl[i]; + if (shl->rm.regprog != NULL + && shl->lnum == 0 + && re_multiline(shl->rm.regprog)) +--- 6431,6458 ---- + win_T *wp; + linenr_T lnum; + { +! matchitem_T *cur; /* points to the match list */ +! match_T *shl; /* points to search_hl or a match */ +! int shl_flag; /* flag to indicate whether search_hl +! has been processed or not */ + int n; + + /* + * When using a multi-line pattern, start searching at the top + * of the window or just after a closed fold. +! * Do this both for search_hl and the match list. + */ +! cur = wp->w_match_head; +! shl_flag = FALSE; +! while (cur != NULL || shl_flag == FALSE) + { +! if (shl_flag == FALSE) +! { +! shl = &search_hl; +! shl_flag = TRUE; +! } +! else +! shl = &cur->hl; + if (shl->rm.regprog != NULL + && shl->lnum == 0 + && re_multiline(shl->rm.regprog)) +*************** +*** 6399,6409 **** + } + } + } + } + } + + /* +! * Search for a next 'searchl' or ":match" match. + * Uses shl->buf. + * Sets shl->lnum and shl->rm contents. + * Note: Assumes a previous match is always before "lnum", unless +--- 6487,6499 ---- + } + } + } ++ if (shl != &search_hl && cur != NULL) ++ cur = cur->next; + } + } + + /* +! * Search for a next 'hlsearch' or match. + * Uses shl->buf. + * Sets shl->lnum and shl->rm contents. + * Note: Assumes a previous match is always before "lnum", unless +*************** +*** 6413,6419 **** + static void + next_search_hl(win, shl, lnum, mincol) + win_T *win; +! match_T *shl; /* points to search_hl or match_hl */ + linenr_T lnum; + colnr_T mincol; /* minimal column for a match */ + { +--- 6503,6509 ---- + static void + next_search_hl(win, shl, lnum, mincol) + win_T *win; +! match_T *shl; /* points to search_hl or a match */ + linenr_T lnum; + colnr_T mincol; /* minimal column for a match */ + { +*************** +*** 6481,6487 **** + /* Error while handling regexp: stop using this regexp. */ + if (shl == &search_hl) + { +! /* don't free the regprog in match_hl[], it's a copy */ + vim_free(shl->rm.regprog); + no_hlsearch = TRUE; + } +--- 6571,6577 ---- + /* Error while handling regexp: stop using this regexp. */ + if (shl == &search_hl) + { +! /* don't free regprog in the match list, it's a copy */ + vim_free(shl->rm.regprog); + no_hlsearch = TRUE; + } +*** ../vim-7.1.039/src/structs.h Thu May 10 20:32:30 2007 +--- src/structs.h Wed Jul 25 21:08:46 2007 +*************** +*** 1694,1699 **** +--- 1694,1734 ---- + #define FR_COL 2 /* frame with a column of windows */ + + /* ++ * Struct used for highlighting 'hlsearch' matches, matches defined by ++ * ":match" and matches defined by match functions. ++ * For 'hlsearch' there is one pattern for all windows. For ":match" and the ++ * match functions there is a different pattern for each window. ++ */ ++ typedef struct ++ { ++ regmmatch_T rm; /* points to the regexp program; contains last found ++ match (may continue in next line) */ ++ buf_T *buf; /* the buffer to search for a match */ ++ linenr_T lnum; /* the line to search for a match */ ++ int attr; /* attributes to be used for a match */ ++ int attr_cur; /* attributes currently active in win_line() */ ++ linenr_T first_lnum; /* first lnum to search for multi-line pat */ ++ colnr_T startcol; /* in win_line() points to char where HL starts */ ++ colnr_T endcol; /* in win_line() points to char where HL ends */ ++ } match_T; ++ ++ /* ++ * matchitem_T provides a linked list for storing match items for ":match" and ++ * the match functions. ++ */ ++ typedef struct matchitem matchitem_T; ++ struct matchitem ++ { ++ matchitem_T *next; ++ int id; /* match ID */ ++ int priority; /* match priority */ ++ char_u *pattern; /* pattern to highlight */ ++ int hlg_id; /* highlight group ID */ ++ regmmatch_T match; /* regexp program for pattern */ ++ match_T hl; /* struct for doing the actual highlighting */ ++ }; ++ ++ /* + * Structure which contains all information that belongs to a window + * + * All row numbers are relative to the start of the window, except w_winrow. +*************** +*** 1934,1942 **** + #endif + + #ifdef FEAT_SEARCH_EXTRA +! regmmatch_T w_match[3]; /* regexp programs for ":match" */ +! char_u *(w_match_pat[3]); /* patterns for ":match" */ +! int w_match_id[3]; /* highlight IDs for ":match" */ + #endif + + /* +--- 1969,1976 ---- + #endif + + #ifdef FEAT_SEARCH_EXTRA +! matchitem_T *w_match_head; /* head of match list */ +! int w_next_match_id; /* next match ID */ + #endif + + /* +*** ../vim-7.1.039/src/syntax.c Tue Jul 24 14:32:44 2007 +--- src/syntax.c Tue Jul 24 15:47:01 2007 +*************** +*** 8504,8510 **** + syn_id2name(id) + int id; + { +! if (id <= 0 || id >= highlight_ga.ga_len) + return (char_u *)""; + return HL_TABLE()[id - 1].sg_name; + } +--- 8504,8510 ---- + syn_id2name(id) + int id; + { +! if (id <= 0 || id > highlight_ga.ga_len) + return (char_u *)""; + return HL_TABLE()[id - 1].sg_name; + } +*** ../vim-7.1.039/src/testdir/Makefile Sun Apr 30 20:48:47 2006 +--- src/testdir/Makefile Tue Jul 24 15:34:33 2007 +*************** +*** 1,5 **** + # +! # Makefile to run al tests for Vim + # + + VIMPROG = ../vim +--- 1,5 ---- + # +! # Makefile to run all tests for Vim + # + + VIMPROG = ../vim +*************** +*** 15,21 **** + test43.out test44.out test45.out test46.out test47.out \ + test48.out test49.out test51.out test52.out test53.out \ + test54.out test55.out test56.out test57.out test58.out \ +! test59.out test60.out test61.out test62.out + + SCRIPTS_GUI = test16.out + +--- 15,21 ---- + test43.out test44.out test45.out test46.out test47.out \ + test48.out test49.out test51.out test52.out test53.out \ + test54.out test55.out test56.out test57.out test58.out \ +! test59.out test60.out test61.out test62.out test63.out + + SCRIPTS_GUI = test16.out + +*** ../vim-7.1.039/src/testdir/test63.in Tue Jul 24 16:45:02 2007 +--- src/testdir/test63.in Tue Jul 24 15:32:30 2007 +*************** +*** 0 **** +--- 1,157 ---- ++ Test for ":match", ":2match", ":3match", "clearmatches()", "getmatches()", ++ "matchadd()", "matcharg()", "matchdelete()", and "setmatches()". ++ ++ STARTTEST ++ :so small.vim ++ :" --- Check that "matcharg()" returns the correct group and pattern if a match ++ :" --- is defined. ++ :let @r = "*** Test 1: " ++ :highlight MyGroup1 ctermbg=red ++ :highlight MyGroup2 ctermbg=green ++ :highlight MyGroup3 ctermbg=blue ++ :match MyGroup1 /TODO/ ++ :2match MyGroup2 /FIXME/ ++ :3match MyGroup3 /XXX/ ++ :if matcharg(1) == ['MyGroup1', 'TODO'] && matcharg(2) == ['MyGroup2', 'FIXME'] && matcharg(3) == ['MyGroup3', 'XXX'] ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :" --- Check that "matcharg()" returns an empty list if the argument is not 1, ++ :" --- 2 or 3 (only 0 and 4 are tested). ++ :let @r .= "*** Test 2: " ++ :if matcharg(0) == [] && matcharg(4) == [] ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :" --- Check that "matcharg()" returns ['', ''] if a match is not defined. ++ :let @r .= "*** Test 3: " ++ :match ++ :2match ++ :3match ++ :if matcharg(1) == ['', ''] && matcharg(2) == ['', ''] && matcharg(3) == ['', ''] ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :" --- Check that "matchadd()" and "getmatches()" agree on added matches and ++ :" --- that default values apply. ++ :let @r .= "*** Test 4: " ++ :let m1 = matchadd("MyGroup1", "TODO") ++ :let m2 = matchadd("MyGroup2", "FIXME", 42) ++ :let m3 = matchadd("MyGroup3", "XXX", 60, 17) ++ :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 4}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 42, 'id': 5}, {'group': 'MyGroup3', 'pattern': 'XXX', 'priority': 60, 'id': 17}] ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :" --- Check that "matchdelete()" deletes the matches defined in the previous ++ :" --- test correctly. ++ :let @r .= "*** Test 5: " ++ :call matchdelete(m1) ++ :call matchdelete(m2) ++ :call matchdelete(m3) ++ :unlet m1 ++ :unlet m2 ++ :unlet m3 ++ :if getmatches() == [] ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :" --- Check that "matchdelete()" returns 0 if succesfull and otherwise -1. ++ :let @r .= "*** Test 6: " ++ :let m = matchadd("MyGroup1", "TODO") ++ :let r1 = matchdelete(m) ++ :let r2 = matchdelete(42) ++ :if r1 == 0 && r2 == -1 ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :unlet m ++ :unlet r1 ++ :unlet r2 ++ :" --- Check that "clearmatches()" clears all matches defined by ":match" and ++ :" --- "matchadd()". ++ :let @r .= "*** Test 7: " ++ :let m1 = matchadd("MyGroup1", "TODO") ++ :let m2 = matchadd("MyGroup2", "FIXME", 42) ++ :let m3 = matchadd("MyGroup3", "XXX", 60, 17) ++ :match MyGroup1 /COFFEE/ ++ :2match MyGroup2 /HUMPPA/ ++ :3match MyGroup3 /VIM/ ++ :call clearmatches() ++ :if getmatches() == [] ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :unlet m1 ++ :unlet m2 ++ :unlet m3 ++ :" --- Check that "setmatches()" restores a list of matches saved by ++ :" --- "getmatches()" without changes. (Matches with equal priority must also ++ :" --- remain in the same order.) ++ :let @r .= "*** Test 8: " ++ :let m1 = matchadd("MyGroup1", "TODO") ++ :let m2 = matchadd("MyGroup2", "FIXME", 42) ++ :let m3 = matchadd("MyGroup3", "XXX", 60, 17) ++ :match MyGroup1 /COFFEE/ ++ :2match MyGroup2 /HUMPPA/ ++ :3match MyGroup3 /VIM/ ++ :let ml = getmatches() ++ :call clearmatches() ++ :call setmatches(ml) ++ :if getmatches() == ml ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :call clearmatches() ++ :unlet m1 ++ :unlet m2 ++ :unlet m3 ++ :unlet ml ++ :" --- Check that "setmatches()" will not add two matches with the same ID. The ++ :" --- expected behaviour (for now) is to add the first match but not the ++ :" --- second and to return 0 (even though it is a matter of debate whether ++ :" --- this can be considered succesfull behaviour). ++ :let @r .= "*** Test 9: " ++ :let r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}]) ++ :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}] && r1 == 0 ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :call clearmatches() ++ :unlet r1 ++ :" --- Check that "setmatches()" returns 0 if succesfull and otherwise -1. ++ :" --- (A range of valid and invalid input values are tried out to generate the ++ :" --- return values.) ++ :let @r .= "*** Test 10: " ++ :let rs1 = setmatches([]) ++ :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) ++ :call clearmatches() ++ :let rf1 = setmatches(0) ++ :let rf2 = setmatches([0]) ++ :let rf3 = setmatches([{'wrong key': 'wrong value'}]) ++ :if rs1 == 0 && rs2 == 0 && rf1 == -1 && rf2 == -1 && rf3 == -1 ++ : let @r .= "OK\n" ++ :else ++ : let @r .= "FAILED\n" ++ :endif ++ :unlet rs1 ++ :unlet rs2 ++ :unlet rf1 ++ :unlet rf2 ++ :unlet rf3 ++ :highlight clear MyGroup1 ++ :highlight clear MyGroup2 ++ :highlight clear MyGroup3 ++ G"rp ++ :/^Results/,$wq! test.out ++ ENDTEST ++ ++ Results of test63: +*** ../vim-7.1.039/src/testdir/test63.ok Tue Jul 24 16:45:02 2007 +--- src/testdir/test63.ok Tue Jul 24 15:32:30 2007 +*************** +*** 0 **** +--- 1,11 ---- ++ Results of test63: ++ *** Test 1: OK ++ *** Test 2: OK ++ *** Test 3: OK ++ *** Test 4: OK ++ *** Test 5: OK ++ *** Test 6: OK ++ *** Test 7: OK ++ *** Test 8: OK ++ *** Test 9: OK ++ *** Test 10: OK +*** ../vim-7.1.039/src/window.c Thu May 10 18:42:26 2007 +--- src/window.c Tue Jul 24 20:38:58 2007 +*************** +*** 75,80 **** +--- 75,81 ---- + static win_T *restore_snapshot_rec __ARGS((frame_T *sn, frame_T *fr)); + + #endif /* FEAT_WINDOWS */ ++ + static win_T *win_alloc __ARGS((win_T *after)); + static void win_new_height __ARGS((win_T *, int)); + +*************** +*** 4128,4133 **** +--- 4129,4138 ---- + #ifdef FEAT_AUTOCMD + --autocmd_block; + #endif ++ #ifdef FEAT_SEARCH_EXTRA ++ newwin->w_match_head = NULL; ++ newwin->w_next_match_id = 4; ++ #endif + } + return newwin; + } +*************** +*** 4185,4195 **** + vim_free(wp->w_tagstack[i].tagname); + + vim_free(wp->w_localdir); + #ifdef FEAT_SEARCH_EXTRA +! vim_free(wp->w_match[0].regprog); +! vim_free(wp->w_match[1].regprog); +! vim_free(wp->w_match[2].regprog); + #endif + #ifdef FEAT_JUMPLIST + free_jumplist(wp); + #endif +--- 4190,4200 ---- + vim_free(wp->w_tagstack[i].tagname); + + vim_free(wp->w_localdir); ++ + #ifdef FEAT_SEARCH_EXTRA +! clear_matches(wp); + #endif ++ + #ifdef FEAT_JUMPLIST + free_jumplist(wp); + #endif +*************** +*** 6172,6176 **** +--- 6177,6351 ---- + return TRUE; + + return FALSE; ++ } ++ #endif ++ ++ #if defined(FEAT_SEARCH_EXTRA) || defined(PROTO) ++ /* ++ * Add match to the match list of window 'wp'. The pattern 'pat' will be ++ * highligted with the group 'grp' with priority 'prio'. ++ * Optionally, a desired ID 'id' can be specified (greater than or equal to 1). ++ * If no particular ID is desired, -1 must be specified for 'id'. ++ * Return ID of added match, -1 on failure. ++ */ ++ int ++ match_add(wp, grp, pat, prio, id) ++ win_T *wp; ++ char_u *grp; ++ char_u *pat; ++ int prio; ++ int id; ++ { ++ matchitem_T *cur; ++ matchitem_T *prev; ++ matchitem_T *m; ++ int hlg_id; ++ regmmatch_T match; ++ ++ if (*grp == NUL || *pat == NUL) ++ return -1; ++ if (id < -1 || id == 0) ++ { ++ EMSGN("E799: Invalid ID: %ld (must be greater than or equal to 1)", id); ++ return -1; ++ } ++ if (id != -1) ++ { ++ cur = wp->w_match_head; ++ while (cur != NULL) ++ { ++ if (cur->id == id) ++ { ++ EMSGN("E801: ID already taken: %ld", id); ++ return -1; ++ } ++ cur = cur->next; ++ } ++ } ++ if ((hlg_id = syn_namen2id(grp, STRLEN(grp))) == 0) ++ { ++ EMSG2(_(e_nogroup), grp); ++ return -1; ++ } ++ if ((match.regprog = vim_regcomp(pat, RE_MAGIC)) == NULL) ++ { ++ EMSG2(_(e_invarg2), pat); ++ return -1; ++ } ++ ++ /* Find available match ID. */ ++ while (id == -1) ++ { ++ cur = wp->w_match_head; ++ while (cur != NULL && cur->id != wp->w_next_match_id) ++ cur = cur->next; ++ if (cur == NULL) ++ id = wp->w_next_match_id; ++ wp->w_next_match_id++; ++ } ++ ++ /* Build new match. */ ++ m = (matchitem_T *)alloc(sizeof(matchitem_T)); ++ m->id = id; ++ m->priority = prio; ++ m->pattern = vim_strsave(pat); ++ m->hlg_id = hlg_id; ++ m->match.regprog = match.regprog; ++ ++ /* Insert new match. The match list is in ascending order with regard to ++ * the match priorities. */ ++ cur = wp->w_match_head; ++ prev = cur; ++ while (cur != NULL && prio >= cur->priority) ++ { ++ prev = cur; ++ cur = cur->next; ++ } ++ if (cur == prev) ++ wp->w_match_head = m; ++ else ++ prev->next = m; ++ m->next = cur; ++ ++ redraw_later(SOME_VALID); ++ return id; ++ } ++ ++ /* ++ * Delete match with ID 'id' in the match list of window 'wp'. ++ * Print error messages if 'perr' is TRUE. ++ */ ++ int ++ match_delete(wp, id, perr) ++ win_T *wp; ++ int id; ++ int perr; ++ { ++ matchitem_T *cur = wp->w_match_head; ++ matchitem_T *prev = cur; ++ ++ if (id < 1) ++ { ++ if (perr == TRUE) ++ EMSGN("E802: Invalid ID: %ld (must be greater than or equal to 1)", ++ id); ++ return -1; ++ } ++ while (cur != NULL && cur->id != id) ++ { ++ prev = cur; ++ cur = cur->next; ++ } ++ if (cur == NULL) ++ { ++ if (perr == TRUE) ++ EMSGN("E803: ID not found: %ld", id); ++ return -1; ++ } ++ if (cur == prev) ++ wp->w_match_head = cur->next; ++ else ++ prev->next = cur->next; ++ vim_free(cur->match.regprog); ++ vim_free(cur->pattern); ++ vim_free(cur); ++ redraw_later(SOME_VALID); ++ return 0; ++ } ++ ++ /* ++ * Delete all matches in the match list of window 'wp'. ++ */ ++ void ++ clear_matches(wp) ++ win_T *wp; ++ { ++ matchitem_T *m; ++ ++ while (wp->w_match_head != NULL) ++ { ++ m = wp->w_match_head->next; ++ vim_free(wp->w_match_head->match.regprog); ++ vim_free(wp->w_match_head->pattern); ++ vim_free(wp->w_match_head); ++ wp->w_match_head = m; ++ } ++ redraw_later(SOME_VALID); ++ } ++ ++ /* ++ * Get match from ID 'id' in window 'wp'. ++ * Return NULL if match not found. ++ */ ++ matchitem_T * ++ get_match(wp, id) ++ win_T *wp; ++ int id; ++ { ++ matchitem_T *cur = wp->w_match_head; ++ ++ while (cur != NULL && cur->id != id) ++ cur = cur->next; ++ return cur; + } + #endif +*** ../vim-7.1.039/src/version.c Wed Jul 25 22:55:22 2007 +--- src/version.c Thu Jul 26 22:50:54 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 40, + /**/ + +-- +It is hard to understand how a cemetery raised its burial +cost and blamed it on the cost of living. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.041 b/7.1.041 new file mode 100644 index 00000000..a0e545e3 --- /dev/null +++ b/7.1.041 @@ -0,0 +1,133 @@ +To: vim-dev@vim.org +Subject: patch 7.1.041 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.041 (extra, after 7.1.040) +Problem: Some changes for patch 7.1.0 are in extra files. +Solution: Update the extra files. +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms + + +*** ../vim-7.1.040/src/testdir/Make_amiga.mak Sun Apr 30 20:42:49 2006 +--- src/testdir/Make_amiga.mak Tue Jul 24 15:36:00 2007 +*************** +*** 25,31 **** + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out + + .SUFFIXES: .in .out + +--- 25,31 ---- + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out + + .SUFFIXES: .in .out + +*************** +*** 107,109 **** +--- 107,110 ---- + test60.out: test60.in + test61.out: test61.in + test62.out: test62.in ++ test63.out: test63.in +*** ../vim-7.1.040/src/testdir/Make_dos.mak Sun Apr 30 20:41:13 2006 +--- src/testdir/Make_dos.mak Tue Jul 24 15:37:47 2007 +*************** +*** 19,25 **** + test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out \ + test55.out test56.out test57.out test58.out test59.out \ +! test60.out test61.out test62.out + + SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ + test8.out test9.out test11.out test13.out test14.out \ +--- 19,25 ---- + test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out \ + test55.out test56.out test57.out test58.out test59.out \ +! test60.out test61.out test62.out test63.out + + SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ + test8.out test9.out test11.out test13.out test14.out \ +*** ../vim-7.1.040/src/testdir/Make_os2.mak Sun Apr 30 20:29:29 2006 +--- src/testdir/Make_os2.mak Tue Jul 24 15:39:15 2007 +*************** +*** 25,31 **** + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out + + .SUFFIXES: .in .out + +--- 25,31 ---- + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out + + .SUFFIXES: .in .out + +*** ../vim-7.1.040/src/testdir/Make_vms.mms Sun Apr 30 20:51:12 2006 +--- src/testdir/Make_vms.mms Tue Jul 24 15:39:23 2007 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2006 Apr 30 + # + # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2007 Jul 24 + # + # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX. + # Edit the lines in the Configuration section below to select. +*************** +*** 59,65 **** + test43.out test44.out test45.out test46.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out + + .IFDEF WANT_GUI + SCRIPT_GUI = test16.out +--- 59,65 ---- + test43.out test44.out test45.out test46.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out + + .IFDEF WANT_GUI + SCRIPT_GUI = test16.out +*** ../vim-7.1.040/src/version.c Thu Jul 26 22:55:11 2007 +--- src/version.c Thu Jul 26 22:58:57 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 41, + /**/ + +-- +Just remember...if the world didn't suck, we'd all fall off. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.042 b/7.1.042 new file mode 100644 index 00000000..f3383695 --- /dev/null +++ b/7.1.042 @@ -0,0 +1,75 @@ +To: vim-dev@vim.org +Subject: patch 7.1.042 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.042 (after 7.1.040) +Problem: Internal error when using matchadd(). (David Larson) +Solution: Check the third argument to be present before using the fourth + argument. (Martin Toft) +Files: src/eval.c + + +*** ../vim-7.1.041/src/eval.c Thu Jul 26 22:55:11 2007 +--- src/eval.c Fri Jul 27 21:29:39 2007 +*************** +*** 7108,7114 **** + {"getftype", 1, 1, f_getftype}, + {"getline", 1, 2, f_getline}, + {"getloclist", 1, 1, f_getqflist}, +! {"getmatches", 0, 0, f_getmatches}, + {"getpos", 1, 1, f_getpos}, + {"getqflist", 0, 0, f_getqflist}, + {"getreg", 0, 2, f_getreg}, +--- 7108,7114 ---- + {"getftype", 1, 1, f_getftype}, + {"getline", 1, 2, f_getline}, + {"getloclist", 1, 1, f_getqflist}, +! {"getmatches", 0, 0, f_getmatches}, + {"getpos", 1, 1, f_getpos}, + {"getqflist", 0, 0, f_getqflist}, + {"getreg", 0, 2, f_getreg}, +*************** +*** 12526,12534 **** + if (grp == NULL || pat == NULL) + return; + if (argvars[2].v_type != VAR_UNKNOWN) + prio = get_tv_number_chk(&argvars[2], &error); +! if (argvars[3].v_type != VAR_UNKNOWN) +! id = get_tv_number_chk(&argvars[3], &error); + if (error == TRUE) + return; + if (id >= 1 && id <= 3) +--- 12526,12536 ---- + if (grp == NULL || pat == NULL) + return; + if (argvars[2].v_type != VAR_UNKNOWN) ++ { + prio = get_tv_number_chk(&argvars[2], &error); +! if (argvars[3].v_type != VAR_UNKNOWN) +! id = get_tv_number_chk(&argvars[3], &error); +! } + if (error == TRUE) + return; + if (id >= 1 && id <= 3) +*** ../vim-7.1.041/src/version.c Thu Jul 26 23:10:50 2007 +--- src/version.c Fri Jul 27 21:31:13 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 42, + /**/ + +-- +The future isn't what it used to be. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.043 b/7.1.043 new file mode 100644 index 00000000..7009f2f6 --- /dev/null +++ b/7.1.043 @@ -0,0 +1,103 @@ +To: vim-dev@vim.org +Subject: patch 7.1.043 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.043 +Problem: In Ex mode using CTRL-D twice may cause a crash. Cursor isn't + positioned properly after CTRL-D. +Solution: Set prev_char properly. Position the cursor correctly. (Antony + Scriven) +Files: src/ex_getln.c + + +*** ../vim-7.1.042/src/ex_getln.c Tue Jul 24 14:32:44 2007 +--- src/ex_getln.c Wed Jul 25 20:57:05 2007 +*************** +*** 2095,2105 **** + garray_T line_ga; + char_u *pend; + int startcol = 0; +! int c1; + int escaped = FALSE; /* CTRL-V typed */ + int vcol = 0; + char_u *p; +! int prev_char = 0; + + /* Switch cursor on now. This avoids that it happens after the "\n", which + * confuses the system function that computes tabstops. */ +--- 2095,2105 ---- + garray_T line_ga; + char_u *pend; + int startcol = 0; +! int c1 = 0; + int escaped = FALSE; /* CTRL-V typed */ + int vcol = 0; + char_u *p; +! int prev_char; + + /* Switch cursor on now. This avoids that it happens after the "\n", which + * confuses the system function that computes tabstops. */ +*************** +*** 2152,2157 **** +--- 2152,2158 ---- + + /* Get one character at a time. Don't use inchar(), it can't handle + * special characters. */ ++ prev_char = c1; + c1 = vgetc(); + + /* +*************** +*** 2209,2215 **** + redraw: + /* redraw the line */ + msg_col = startcol; +- windgoto(msg_row, msg_col); + vcol = 0; + for (p = (char_u *)line_ga.ga_data; + p < (char_u *)line_ga.ga_data + line_ga.ga_len; ++p) +--- 2210,2215 ---- +*************** +*** 2228,2233 **** +--- 2228,2234 ---- + } + } + msg_clr_eos(); ++ windgoto(msg_row, msg_col); + continue; + } + +*************** +*** 2273,2279 **** + if (IS_SPECIAL(c1)) + c1 = '?'; + ((char_u *)line_ga.ga_data)[line_ga.ga_len] = c1; +- prev_char = c1; + if (c1 == '\n') + msg_putchar('\n'); + else if (c1 == TAB) +--- 2274,2279 ---- +*** ../vim-7.1.042/src/version.c Fri Jul 27 21:32:13 2007 +--- src/version.c Sat Jul 28 14:19:37 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 43, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +48. You get a tatoo that says "This body best viewed with Netscape 3.1 or + higher." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.044 b/7.1.044 new file mode 100644 index 00000000..81b4f16d --- /dev/null +++ b/7.1.044 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: patch 7.1.044 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.044 +Problem: In Insert mode 0 CTRL-T deletes all indent, it should add indent. + (Gautam Iyer) +Solution: Check for CTRL-D typed. +Files: src/edit.c + + +*** ../vim-7.1.043/src/edit.c Thu Jun 28 12:44:56 2007 +--- src/edit.c Wed Jul 25 22:50:28 2007 +*************** +*** 8000,8006 **** + /* + * 0^D and ^^D: remove all indent. + */ +! if ((lastc == '0' || lastc == '^') && curwin->w_cursor.col) + { + --curwin->w_cursor.col; + (void)del_char(FALSE); /* delete the '^' or '0' */ +--- 8000,8007 ---- + /* + * 0^D and ^^D: remove all indent. + */ +! if (c == Ctrl_D && (lastc == '0' || lastc == '^') +! && curwin->w_cursor.col > 0) + { + --curwin->w_cursor.col; + (void)del_char(FALSE); /* delete the '^' or '0' */ +*** ../vim-7.1.043/src/version.c Sat Jul 28 14:21:04 2007 +--- src/version.c Sun Jul 29 14:14:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 44, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +54. You start tilting your head sideways to smile. :-) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.045 b/7.1.045 new file mode 100644 index 00000000..32307d2b --- /dev/null +++ b/7.1.045 @@ -0,0 +1,101 @@ +To: vim-dev@vim.org +Subject: patch 7.1.045 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.045 +Problem: Unnecessary screen redrawing. (Jjgod Jiang) +Solution: Reset "must_redraw" after clearing the screen. +Files: src/screen.c + + +*** ../vim-7.1.044/src/screen.c Thu Jul 26 22:55:11 2007 +--- src/screen.c Mon Jul 30 21:39:32 2007 +*************** +*** 331,336 **** +--- 331,341 ---- + { + if (type < must_redraw) /* use maximal type */ + type = must_redraw; ++ ++ /* must_redraw is reset here, so that when we run into some weird ++ * reason to redraw while busy redrawing (e.g., asynchronous ++ * scrolling), or update_topline() in win_update() will cause a ++ * scroll, the screen will be redrawn later or in win_update(). */ + must_redraw = 0; + } + +*************** +*** 1019,1024 **** +--- 1024,1036 ---- + type = VALID; + } + ++ /* Trick: we want to avoid clearning the screen twice. screenclear() will ++ * set "screen_cleared" to TRUE. The special value MAYBE (which is still ++ * non-zero and thus not FALSE) will indicate that screenclear() was not ++ * called. */ ++ if (screen_cleared) ++ screen_cleared = MAYBE; ++ + /* + * If there are no changes on the screen that require a complete redraw, + * handle three cases: +*************** +*** 1220,1226 **** + mid_end = wp->w_height; + if (lastwin == firstwin) + { +! screenclear(); + #ifdef FEAT_WINDOWS + /* The screen was cleared, redraw the tab pages line. */ + if (redraw_tabline) +--- 1232,1242 ---- + mid_end = wp->w_height; + if (lastwin == firstwin) + { +! /* Clear the screen when it was not done by win_del_lines() or +! * win_ins_lines() above, "screen_cleared" is FALSE or MAYBE +! * then. */ +! if (screen_cleared != TRUE) +! screenclear(); + #ifdef FEAT_WINDOWS + /* The screen was cleared, redraw the tab pages line. */ + if (redraw_tabline) +*************** +*** 1228,1233 **** +--- 1244,1256 ---- + #endif + } + } ++ ++ /* When win_del_lines() or win_ins_lines() caused the screen to be ++ * cleared (only happens for the first window) or when screenclear() ++ * was called directly above, "must_redraw" will have been set to ++ * NOT_VALID, need to reset it here to avoid redrawing twice. */ ++ if (screen_cleared == TRUE) ++ must_redraw = 0; + } + else + { +*** ../vim-7.1.044/src/version.c Sun Jul 29 15:02:34 2007 +--- src/version.c Mon Jul 30 21:58:06 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 45, + /**/ + +-- +Be thankful to be in a traffic jam, because it means you own a car. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.046 b/7.1.046 new file mode 100644 index 00000000..349b6b1d --- /dev/null +++ b/7.1.046 @@ -0,0 +1,60 @@ +To: vim-dev@vim.org +Subject: patch 7.1.046 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.046 +Problem: ":s" command removes combining characters. (Ron Aaron) +Solution: Copy composing characters individually. (Chris Lubinski) +Files: src/regexp.c + + +*** ../vim-7.1.045/src/regexp.c Thu May 10 19:58:01 2007 +--- src/regexp.c Fri Jul 27 21:17:47 2007 +*************** +*** 7014,7020 **** + #ifdef FEAT_MBYTE + if (has_mbyte) + { +! int l = mb_ptr2len(s) - 1; + + s += l; + len -= l; +--- 7014,7027 ---- + #ifdef FEAT_MBYTE + if (has_mbyte) + { +! int l; +! +! /* Copy composing characters separately, one +! * at a time. */ +! if (enc_utf8) +! l = utf_ptr2len(s) - 1; +! else +! l = mb_ptr2len(s) - 1; + + s += l; + len -= l; +*** ../vim-7.1.045/src/version.c Mon Jul 30 21:59:50 2007 +--- src/version.c Mon Jul 30 22:30:02 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 46, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +57. You begin to wonder how on earth your service provider is allowed to call + 200 hours per month "unlimited." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.047 b/7.1.047 new file mode 100644 index 00000000..e41bbbea --- /dev/null +++ b/7.1.047 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: patch 7.1.047 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.047 +Problem: vim_regcomp() called with invalid argument. (Xiaozhou Liu) +Solution: Change TRUE to RE_MAGIC + RE_STRING. +Files: src/ex_eval.c + + +*** ../vim-7.1.046/src/ex_eval.c Thu May 10 20:23:50 2007 +--- src/ex_eval.c Sat Jul 28 13:09:00 2007 +*************** +*** 1551,1557 **** + } + save_cpo = p_cpo; + p_cpo = (char_u *)""; +! regmatch.regprog = vim_regcomp(pat, TRUE); + regmatch.rm_ic = FALSE; + if (end != NULL) + *end = save_char; +--- 1551,1557 ---- + } + save_cpo = p_cpo; + p_cpo = (char_u *)""; +! regmatch.regprog = vim_regcomp(pat, RE_MAGIC + RE_STRING); + regmatch.rm_ic = FALSE; + if (end != NULL) + *end = save_char; +*** ../vim-7.1.046/src/version.c Mon Jul 30 22:32:11 2007 +--- src/version.c Wed Aug 1 15:46:28 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 47, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +80. At parties, you introduce your spouse as your "service provider." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.048 b/7.1.048 new file mode 100644 index 00000000..3ff6a97c --- /dev/null +++ b/7.1.048 @@ -0,0 +1,135 @@ +To: vim-dev@vim.org +Subject: patch 7.1.048 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.048 +Problem: The matchparen plugin doesn't update the match when scrolling with + the mouse wheel. (Ilya Bobir) +Solution: Set the match highlighting for text that can be scrolled into the + viewable area without moving the cursor. (Chris Lubinski) +Files: runtime/plugin/matchparen.vim + + +*** ../vim-7.1.047/runtime/plugin/matchparen.vim Sun May 6 14:26:16 2007 +--- runtime/plugin/matchparen.vim Mon Jul 30 21:14:06 2007 +*************** +*** 1,6 **** + " Vim plugin for showing matching parens + " Maintainer: Bram Moolenaar +! " Last Change: 2006 Oct 12 + + " Exit quickly when: + " - this plugin was already loaded (or disabled) +--- 1,6 ---- + " Vim plugin for showing matching parens + " Maintainer: Bram Moolenaar +! " Last Change: 2007 Jul 30 + + " Exit quickly when: + " - this plugin was already loaded (or disabled) +*************** +*** 62,86 **** + " Figure out the arguments for searchpairpos(). + " Restrict the search to visible lines with "stopline". + " And avoid searching very far (e.g., for closed folds and long lines) + if i % 2 == 0 + let s_flags = 'nW' + let c2 = plist[i + 1] + if has("byte_offset") && has("syntax_items") && &smc > 0 + let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2]) +! let stopline = min([line('w$'), byte2line(stopbyte)]) + else +! let stopline = min([line('w$'), c_lnum + 100]) + endif + else + let s_flags = 'nbW' + let c2 = c + let c = plist[i - 1] + if has("byte_offset") && has("syntax_items") && &smc > 0 + let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2]) +! let stopline = max([line('w0'), byte2line(stopbyte)]) + else +! let stopline = max([line('w0'), c_lnum - 100]) + endif + endif + if c == '[' + let c = '\[' +--- 62,98 ---- + " Figure out the arguments for searchpairpos(). + " Restrict the search to visible lines with "stopline". + " And avoid searching very far (e.g., for closed folds and long lines) ++ " The "viewable" variables give a range in which we can scroll while keeping ++ " the cursor at the same position ++ " adjustedScrolloff accounts for very large numbers of scrolloff ++ let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2]) ++ let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2]) ++ let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2]) ++ " one of these stoplines will be adjusted below, but the current values are ++ " minimal boundaries within the current window ++ let stoplinebottom = line('w$') ++ let stoplinetop = line('w0') + if i % 2 == 0 + let s_flags = 'nW' + let c2 = plist[i + 1] + if has("byte_offset") && has("syntax_items") && &smc > 0 + let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2]) +! let stopline = min([bottom_viewable, byte2line(stopbyte)]) + else +! let stopline = min([bottom_viewable, c_lnum + 100]) + endif ++ let stoplinebottom = stopline + else + let s_flags = 'nbW' + let c2 = c + let c = plist[i - 1] + if has("byte_offset") && has("syntax_items") && &smc > 0 + let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2]) +! let stopline = max([top_viewable, byte2line(stopbyte)]) + else +! let stopline = max([top_viewable, c_lnum - 100]) + endif ++ let stoplinetop = stopline + endif + if c == '[' + let c = '\[' +*************** +*** 106,112 **** + endif + + " If a match is found setup match highlighting. +! if m_lnum > 0 && m_lnum >= line('w0') && m_lnum <= line('w$') + exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . + \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/' + let w:paren_hl_on = 1 +--- 118,124 ---- + endif + + " If a match is found setup match highlighting. +! if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom + exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . + \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/' + let w:paren_hl_on = 1 +*** ../vim-7.1.047/src/version.c Wed Aug 1 15:47:06 2007 +--- src/version.c Thu Aug 2 22:59:07 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 48, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +91. It's Saturday afternoon in the middle of May and you + are on computer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.049 b/7.1.049 new file mode 100644 index 00000000..f60f908e --- /dev/null +++ b/7.1.049 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: patch 7.1.049 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.049 +Problem: Cannot compile GTK2 version with Hangul input feature. +Solution: Don't define FEAT_XFONTSET when using GTK2. +Files: src/feature.h + + +*** ../vim-7.1.048/src/feature.h Thu May 10 19:43:24 2007 +--- src/feature.h Fri Aug 3 19:32:56 2007 +*************** +*** 673,679 **** + # define ESC_CHG_TO_ENG_MODE /* if defined, when ESC pressed, + * turn to english mode + */ +! # if !defined(FEAT_XFONTSET) && defined(HAVE_X11) + # define FEAT_XFONTSET /* Hangul input requires xfontset */ + # endif + # if defined(FEAT_XIM) && !defined(LINT) +--- 673,679 ---- + # define ESC_CHG_TO_ENG_MODE /* if defined, when ESC pressed, + * turn to english mode + */ +! # if !defined(FEAT_XFONTSET) && defined(HAVE_X11) && !defined(HAVE_GTK2) + # define FEAT_XFONTSET /* Hangul input requires xfontset */ + # endif + # if defined(FEAT_XIM) && !defined(LINT) +*** ../vim-7.1.048/src/version.c Thu Aug 2 23:00:06 2007 +--- src/version.c Fri Aug 3 21:58:23 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 49, + /**/ + +-- +From "know your smileys": + :-O>-o Smiley American tourist (note big mouth and camera) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.050 b/7.1.050 new file mode 100644 index 00000000..7d9af869 --- /dev/null +++ b/7.1.050 @@ -0,0 +1,172 @@ +To: vim-dev@vim.org +Subject: patch 7.1.050 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.050 +Problem: Possible crash when using C++ indenting. (Chris Monson) +Solution: Keep the line pointer to the line to compare with. Avoid going + past the end of line. +Files: src/misc1.c + + +*** ../vim-7.1.049/src/misc1.c Tue Jul 24 15:25:27 2007 +--- src/misc1.c Fri Aug 3 21:07:17 2007 +*************** +*** 4820,4826 **** + static int cin_iswhileofdo __ARGS((char_u *, linenr_T, int)); + static int cin_iswhileofdo_end __ARGS((int terminated, int ind_maxparen, int ind_maxcomment)); + static int cin_isbreak __ARGS((char_u *)); +! static int cin_is_cpp_baseclass __ARGS((char_u *line, colnr_T *col)); + static int get_baseclass_amount __ARGS((int col, int ind_maxparen, int ind_maxcomment, int ind_cpp_baseclass)); + static int cin_ends_in __ARGS((char_u *, char_u *, char_u *)); + static int cin_skip2pos __ARGS((pos_T *trypos)); +--- 4820,4826 ---- + static int cin_iswhileofdo __ARGS((char_u *, linenr_T, int)); + static int cin_iswhileofdo_end __ARGS((int terminated, int ind_maxparen, int ind_maxcomment)); + static int cin_isbreak __ARGS((char_u *)); +! static int cin_is_cpp_baseclass __ARGS((colnr_T *col)); + static int get_baseclass_amount __ARGS((int col, int ind_maxparen, int ind_maxcomment, int ind_cpp_baseclass)); + static int cin_ends_in __ARGS((char_u *, char_u *, char_u *)); + static int cin_skip2pos __ARGS((pos_T *trypos)); +*************** +*** 5585,5597 **** + * This is a lot of guessing. Watch out for "cond ? func() : foo". + */ + static int +! cin_is_cpp_baseclass(line, col) +! char_u *line; + colnr_T *col; /* return: column to align with */ + { + char_u *s; + int class_or_struct, lookfor_ctor_init, cpp_base_class; + linenr_T lnum = curwin->w_cursor.lnum; + + *col = 0; + +--- 5585,5597 ---- + * This is a lot of guessing. Watch out for "cond ? func() : foo". + */ + static int +! cin_is_cpp_baseclass(col) + colnr_T *col; /* return: column to align with */ + { + char_u *s; + int class_or_struct, lookfor_ctor_init, cpp_base_class; + linenr_T lnum = curwin->w_cursor.lnum; ++ char_u *line = ml_get_curline(); + + *col = 0; + +*************** +*** 5619,5625 **** + */ + while (lnum > 1) + { +! s = skipwhite(ml_get(lnum - 1)); + if (*s == '#' || *s == NUL) + break; + while (*s != NUL) +--- 5619,5626 ---- + */ + while (lnum > 1) + { +! line = ml_get(lnum - 1); +! s = skipwhite(line); + if (*s == '#' || *s == NUL) + break; + while (*s != NUL) +*************** +*** 5636,5642 **** + --lnum; + } + +! s = cin_skipcomment(ml_get(lnum)); + for (;;) + { + if (*s == NUL) +--- 5637,5644 ---- + --lnum; + } + +! line = ml_get(lnum); +! s = cin_skipcomment(line); + for (;;) + { + if (*s == NUL) +*************** +*** 5644,5650 **** + if (lnum == curwin->w_cursor.lnum) + break; + /* Continue in the cursor line. */ +! s = cin_skipcomment(ml_get(++lnum)); + } + + if (s[0] == ':') +--- 5646,5655 ---- + if (lnum == curwin->w_cursor.lnum) + break; + /* Continue in the cursor line. */ +! line = ml_get(++lnum); +! s = cin_skipcomment(line); +! if (*s == NUL) +! continue; + } + + if (s[0] == ':') +*************** +*** 7113,7119 **** + n = FALSE; + if (lookfor != LOOKFOR_TERM && ind_cpp_baseclass > 0) + { +! n = cin_is_cpp_baseclass(l, &col); + l = ml_get_curline(); + } + if (n) +--- 7118,7124 ---- + n = FALSE; + if (lookfor != LOOKFOR_TERM && ind_cpp_baseclass > 0) + { +! n = cin_is_cpp_baseclass(&col); + l = ml_get_curline(); + } + if (n) +*************** +*** 7704,7710 **** + n = FALSE; + if (ind_cpp_baseclass != 0 && theline[0] != '{') + { +! n = cin_is_cpp_baseclass(l, &col); + l = ml_get_curline(); + } + if (n) +--- 7709,7715 ---- + n = FALSE; + if (ind_cpp_baseclass != 0 && theline[0] != '{') + { +! n = cin_is_cpp_baseclass(&col); + l = ml_get_curline(); + } + if (n) +*** ../vim-7.1.049/src/version.c Fri Aug 3 22:01:35 2007 +--- src/version.c Sat Aug 4 12:11:51 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 50, + /**/ + +-- +From "know your smileys": + |-P Reaction to unusually ugly C code + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.051 b/7.1.051 new file mode 100644 index 00000000..bee1c1e7 --- /dev/null +++ b/7.1.051 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: patch 7.1.051 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.051 +Problem: Accessing uninitialized memory when finding spell suggestions. +Solution: Don't try swapping characters at the end of a word. +Files: src/spell.c + + +*** ../vim-7.1.050/src/spell.c Tue Jul 24 10:44:10 2007 +--- src/spell.c Sun Aug 5 16:59:48 2007 +*************** +*** 12182,12188 **** + { + n = mb_cptr2len(p); + c = mb_ptr2char(p); +! if (!soundfold && !spell_iswordp(p + n, curbuf)) + c2 = c; /* don't swap non-word char */ + else + c2 = mb_ptr2char(p + n); +--- 12182,12190 ---- + { + n = mb_cptr2len(p); + c = mb_ptr2char(p); +! if (p[n] == NUL) +! c2 = NUL; +! else if (!soundfold && !spell_iswordp(p + n, curbuf)) + c2 = c; /* don't swap non-word char */ + else + c2 = mb_ptr2char(p + n); +*************** +*** 12190,12199 **** + else + #endif + { +! if (!soundfold && !spell_iswordp(p + 1, curbuf)) + c2 = c; /* don't swap non-word char */ + else + c2 = p[1]; + } + + /* When characters are identical, swap won't do anything. +--- 12192,12210 ---- + else + #endif + { +! if (p[1] == NUL) +! c2 = NUL; +! else if (!soundfold && !spell_iswordp(p + 1, curbuf)) + c2 = c; /* don't swap non-word char */ + else + c2 = p[1]; ++ } ++ ++ /* When the second character is NUL we can't swap. */ ++ if (c2 == NUL) ++ { ++ sp->ts_state = STATE_REP_INI; ++ break; + } + + /* When characters are identical, swap won't do anything. +*** ../vim-7.1.050/src/version.c Sat Aug 4 12:14:04 2007 +--- src/version.c Sun Aug 5 18:31:09 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 51, + /**/ + +-- +From "know your smileys": + 8<}} Glasses, big nose, beard + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.052 b/7.1.052 new file mode 100644 index 00000000..d4da9f00 --- /dev/null +++ b/7.1.052 @@ -0,0 +1,89 @@ +To: vim-dev@vim.org +Subject: patch 7.1.052 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.052 +Problem: When creating a new match not all fields are initialized, which + may lead to unpredictable results. +Solution: Initialise rmm_ic and rmm_maxcol. +Files: src/window.c + + +*** ../vim-7.1.051/src/window.c Thu Jul 26 22:55:11 2007 +--- src/window.c Sun Aug 5 17:17:51 2007 +*************** +*** 6200,6206 **** + matchitem_T *prev; + matchitem_T *m; + int hlg_id; +! regmmatch_T match; + + if (*grp == NUL || *pat == NUL) + return -1; +--- 6243,6249 ---- + matchitem_T *prev; + matchitem_T *m; + int hlg_id; +! regprog_T *regprog; + + if (*grp == NUL || *pat == NUL) + return -1; +*************** +*** 6227,6233 **** + EMSG2(_(e_nogroup), grp); + return -1; + } +! if ((match.regprog = vim_regcomp(pat, RE_MAGIC)) == NULL) + { + EMSG2(_(e_invarg2), pat); + return -1; +--- 6270,6276 ---- + EMSG2(_(e_nogroup), grp); + return -1; + } +! if ((regprog = vim_regcomp(pat, RE_MAGIC)) == NULL) + { + EMSG2(_(e_invarg2), pat); + return -1; +*************** +*** 6250,6256 **** + m->priority = prio; + m->pattern = vim_strsave(pat); + m->hlg_id = hlg_id; +! m->match.regprog = match.regprog; + + /* Insert new match. The match list is in ascending order with regard to + * the match priorities. */ +--- 6293,6301 ---- + m->priority = prio; + m->pattern = vim_strsave(pat); + m->hlg_id = hlg_id; +! m->match.regprog = regprog; +! m->match.rmm_ic = FALSE; +! m->match.rmm_maxcol = 0; + + /* Insert new match. The match list is in ascending order with regard to + * the match priorities. */ +*** ../vim-7.1.051/src/version.c Sun Aug 5 18:32:21 2007 +--- src/version.c Sun Aug 5 18:47:55 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 52, + /**/ + +-- +From "know your smileys": + 8-O "Omigod!!" (done "rm -rf *" ?) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.053 b/7.1.053 new file mode 100644 index 00000000..22a4a089 --- /dev/null +++ b/7.1.053 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: patch 7.1.053 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.053 +Problem: Accessing uninitialized memory when giving a message. +Solution: Check going the length before checking for a NUL byte. +Files: src/message.c + + +*** ../vim-7.1.052/src/message.c Thu Jul 5 10:10:29 2007 +--- src/message.c Sat Aug 4 23:13:58 2007 +*************** +*** 1842,1848 **** + int wrap; + + did_wait_return = FALSE; +! while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen)) + { + /* + * We are at the end of the screen line when: +--- 1842,1848 ---- + int wrap; + + did_wait_return = FALSE; +! while ((maxlen < 0 || (int)(s - str) < maxlen) && *s != NUL) + { + /* + * We are at the end of the screen line when: +*** ../vim-7.1.052/src/version.c Sun Aug 5 18:49:07 2007 +--- src/version.c Sun Aug 5 19:18:46 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 53, + /**/ + +-- +From "know your smileys": + <>:-) Bishop + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.054 b/7.1.054 new file mode 100644 index 00000000..42d60bba --- /dev/null +++ b/7.1.054 @@ -0,0 +1,148 @@ +To: vim-dev@vim.org +Subject: patch 7.1.054 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.054 +Problem: Accessing uninitialized memory when displaying the fold column. +Solution: Add a NUL to the extra array. (Dominique Pelle). Also do this in + a couple of other situations. +Files: src/screen.c + + +*** ../vim-7.1.053/src/screen.c Mon Jul 30 21:59:50 2007 +--- src/screen.c Sun Aug 5 16:10:53 2007 +*************** +*** 2555,2561 **** + + char_u extra[18]; /* "%ld" and 'fdc' must fit in here */ + int n_extra = 0; /* number of extra chars */ +! char_u *p_extra = NULL; /* string of extra chars */ + int c_extra = NUL; /* extra chars, all the same */ + int extra_attr = 0; /* attributes when n_extra != 0 */ + static char_u *at_end_str = (char_u *)""; /* used for p_extra when +--- 2555,2561 ---- + + char_u extra[18]; /* "%ld" and 'fdc' must fit in here */ + int n_extra = 0; /* number of extra chars */ +! char_u *p_extra = NULL; /* string of extra chars, plus NUL */ + int c_extra = NUL; /* extra chars, all the same */ + int extra_attr = 0; /* attributes when n_extra != 0 */ + static char_u *at_end_str = (char_u *)""; /* used for p_extra when +*************** +*** 3189,3198 **** + if (cmdwin_type != 0 && wp == curwin) + { + /* Draw the cmdline character. */ +- *extra = cmdwin_type; + n_extra = 1; +! p_extra = extra; +! c_extra = NUL; + char_attr = hl_attr(HLF_AT); + } + } +--- 3189,3196 ---- + if (cmdwin_type != 0 && wp == curwin) + { + /* Draw the cmdline character. */ + n_extra = 1; +! c_extra = cmdwin_type; + char_attr = hl_attr(HLF_AT); + } + } +*************** +*** 3208,3213 **** +--- 3206,3212 ---- + fill_foldcolumn(extra, wp, FALSE, lnum); + n_extra = wp->w_p_fdc; + p_extra = extra; ++ p_extra[n_extra] = NUL; + c_extra = NUL; + char_attr = hl_attr(HLF_FC); + } +*************** +*** 3550,3558 **** + * Get the next character to put on the screen. + */ + /* +! * The 'extra' array contains the extra stuff that is inserted to +! * represent special characters (non-printable stuff). When all +! * characters are the same, c_extra is used. + * For the '$' of the 'list' option, n_extra == 1, p_extra == "". + */ + if (n_extra > 0) +--- 3549,3559 ---- + * Get the next character to put on the screen. + */ + /* +! * The "p_extra" points to the extra stuff that is inserted to +! * represent special characters (non-printable stuff) and other +! * things. When all characters are the same, c_extra is used. +! * "p_extra" must end in a NUL to avoid mb_ptr2len() reads past +! * "p_extra[n_extra]". + * For the '$' of the 'list' option, n_extra == 1, p_extra == "". + */ + if (n_extra > 0) +*************** +*** 3808,3817 **** + * a '<' in the first column. */ + if (n_skip > 0 && mb_l > 1) + { +- extra[0] = '<'; +- p_extra = extra; + n_extra = 1; +! c_extra = NUL; + c = ' '; + if (area_attr == 0 && search_attr == 0) + { +--- 3809,3816 ---- + * a '<' in the first column. */ + if (n_skip > 0 && mb_l > 1) + { + n_extra = 1; +! c_extra = '<'; + c = ' '; + if (area_attr == 0 && search_attr == 0) + { +*************** +*** 6204,6211 **** + return; + + off = LineOffset[row] + col; +! while (*ptr != NUL && col < screen_Columns +! && (len < 0 || (int)(ptr - text) < len)) + { + c = *ptr; + #ifdef FEAT_MBYTE +--- 6203,6211 ---- + return; + + off = LineOffset[row] + col; +! while (col < screen_Columns +! && (len < 0 || (int)(ptr - text) < len) +! && *ptr != NUL) + { + c = *ptr; + #ifdef FEAT_MBYTE +*** ../vim-7.1.053/src/version.c Sun Aug 5 19:20:04 2007 +--- src/version.c Sun Aug 5 20:07:47 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 54, + /**/ + +-- +From "know your smileys": + +<(:-) The Pope + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.055 b/7.1.055 new file mode 100644 index 00000000..654797a6 --- /dev/null +++ b/7.1.055 @@ -0,0 +1,216 @@ +To: vim-dev@vim.org +Subject: patch 7.1.055 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.055 +Problem: Using strcpy() with arguments that overlap. +Solution: Use mch_memmove() instead. +Files: src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c, + src/misc1.c, src/regexp.c, src/termlib.c + + +*** ../vim-7.1.054/src/buffer.c Tue Jun 19 15:40:51 2007 +--- src/buffer.c Sun Aug 5 16:14:03 2007 +*************** +*** 4860,4866 **** + */ + for (e = s; *e != ':' && *e != NUL; ++e) + if (e[0] == '\\' && e[1] == ':') +! STRCPY(e, e + 1); + if (*e == NUL) + end = TRUE; + +--- 4860,4866 ---- + */ + for (e = s; *e != ':' && *e != NUL; ++e) + if (e[0] == '\\' && e[1] == ':') +! mch_memmove(e, e + 1, STRLEN(e)); + if (*e == NUL) + end = TRUE; + +*** ../vim-7.1.054/src/charset.c Tue Mar 27 12:41:45 2007 +--- src/charset.c Sun Aug 5 21:53:44 2007 +*************** +*** 1898,1904 **** + { + for ( ; *p; ++p) + if (rem_backslash(p)) +! STRCPY(p, p + 1); + } + + /* +--- 1898,1904 ---- + { + for ( ; *p; ++p) + if (rem_backslash(p)) +! mch_memmove(p, p + 1, STRLEN(p)); + } + + /* +*** ../vim-7.1.054/src/eval.c Fri Jul 27 21:32:13 2007 +--- src/eval.c Sun Aug 5 16:25:03 2007 +*************** +*** 13807,13813 **** + } + /* Shorten "remain". */ + if (*q != NUL) +! STRCPY(remain, q - 1); + else + { + vim_free(remain); +--- 13807,13813 ---- + } + /* Shorten "remain". */ + if (*q != NUL) +! mch_memmove(remain, q - 1, STRLEN(q - 1) + 1); + else + { + vim_free(remain); +*** ../vim-7.1.054/src/ex_getln.c Sat Jul 28 14:21:04 2007 +--- src/ex_getln.c Sun Aug 5 21:55:56 2007 +*************** +*** 4306,4315 **** + && pat[i + 1] == '\\' + && pat[i + 2] == '\\' + && pat[i + 3] == ' ') +! STRCPY(pat + i, pat + i + 3); + if (xp->xp_backslash == XP_BS_ONE + && pat[i + 1] == ' ') +! STRCPY(pat + i, pat + i + 1); + } + } + +--- 4306,4316 ---- + && pat[i + 1] == '\\' + && pat[i + 2] == '\\' + && pat[i + 3] == ' ') +! mch_memmove(pat + i, pat + i + 3, +! STRLEN(pat + i + 3) + 1); + if (xp->xp_backslash == XP_BS_ONE + && pat[i + 1] == ' ') +! mch_memmove(pat + i, pat + i + 1, STRLEN(pat + i)); + } + } + +*************** +*** 4552,4558 **** + pat = vim_strsave(filepat); + for (i = 0; pat[i]; ++i) + if (pat[i] == '\\' && pat[i + 1] == ' ') +! STRCPY(pat + i, pat + i + 1); + + flags |= EW_FILE | EW_EXEC; + +--- 4553,4559 ---- + pat = vim_strsave(filepat); + for (i = 0; pat[i]; ++i) + if (pat[i] == '\\' && pat[i + 1] == ' ') +! mch_memmove(pat + i, pat + i + 1, STRLEN(pat + i)); + + flags |= EW_FILE | EW_EXEC; + +*** ../vim-7.1.054/src/misc1.c Sat Aug 4 12:14:04 2007 +--- src/misc1.c Sun Aug 5 21:57:15 2007 +*************** +*** 8635,8641 **** + for (p = buf + wildoff; p < s; ++p) + if (rem_backslash(p)) + { +! STRCPY(p, p + 1); + --e; + --s; + } +--- 8635,8641 ---- + for (p = buf + wildoff; p < s; ++p) + if (rem_backslash(p)) + { +! mch_memmove(p, p + 1, STRLEN(p)); + --e; + --s; + } +*************** +*** 8936,8942 **** + for (p = buf + wildoff; p < s; ++p) + if (rem_backslash(p)) + { +! STRCPY(p, p + 1); + --e; + --s; + } +--- 8936,8942 ---- + for (p = buf + wildoff; p < s; ++p) + if (rem_backslash(p)) + { +! mch_memmove(p, p + 1, STRLEN(p)); + --e; + --s; + } +*** ../vim-7.1.054/src/regexp.c Mon Jul 30 22:32:11 2007 +--- src/regexp.c Sun Aug 5 15:43:27 2007 +*************** +*** 6637,6645 **** + } + } + else if (magic) +! STRCPY(p, p + 1); /* remove '~' */ + else +! STRCPY(p, p + 2); /* remove '\~' */ + --p; + } + else +--- 6638,6646 ---- + } + } + else if (magic) +! mch_memmove(p, p + 1, STRLEN(p)); /* remove '~' */ + else +! mch_memmove(p, p + 2, STRLEN(p) - 1); /* remove '\~' */ + --p; + } + else +*** ../vim-7.1.054/src/termlib.c Thu May 10 20:20:59 2007 +--- src/termlib.c Sun Aug 5 21:52:41 2007 +*************** +*** 191,197 **** + lbuf[0] == '\t' && + lbuf[1] == ':') + { +! strcpy(lbuf, lbuf+2); + llen -= 2; + } + if (lbuf[llen-2] == '\\') /* and continuations */ +--- 191,197 ---- + lbuf[0] == '\t' && + lbuf[1] == ':') + { +! mch_memmove(lbuf, lbuf + 2, strlen(lbuf + 2) + 1); + llen -= 2; + } + if (lbuf[llen-2] == '\\') /* and continuations */ +*** ../vim-7.1.054/src/version.c Sun Aug 5 20:10:16 2007 +--- src/version.c Mon Aug 6 21:34:54 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 55, + /**/ + +-- +From "know your smileys": + % Bike accident. A bit far-fetched, I suppose; although... + o _ _ _ + _o /\_ _ \\o (_)\__/o (_) + _< \_ _>(_) (_)/<_ \_| \ _|/' \/ + (_)>(_) (_) (_) (_) (_)' _\o_ + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.056 b/7.1.056 new file mode 100644 index 00000000..3986b5e6 --- /dev/null +++ b/7.1.056 @@ -0,0 +1,106 @@ +To: vim-dev@vim.org +Subject: patch 7.1.056 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.056 +Problem: More prompt does not behave correctly after scrolling back. + (Randall W. Morris) +Solution: Avoid lines_left becomes negative. (Chris Lubinski) Don't check + mp_last when deciding to show the more prompt. (Martin Toft) +Files: src/message.c + + +*** ../vim-7.1.055/src/message.c Sun Aug 5 19:20:04 2007 +--- src/message.c Tue Aug 7 21:52:10 2007 +*************** +*** 1878,1884 **** + /* output postponed text */ + t_puts(&t_col, t_s, s, attr); + +! /* When no more prompt an no more room, truncate here */ + if (msg_no_more && lines_left == 0) + break; + +--- 1878,1884 ---- + /* output postponed text */ + t_puts(&t_col, t_s, s, attr); + +! /* When no more prompt and no more room, truncate here */ + if (msg_no_more && lines_left == 0) + break; + +*************** +*** 1927,1933 **** + * If screen is completely filled and 'more' is set then wait + * for a character. + */ +! --lines_left; + if (p_more && lines_left == 0 && State != HITRETURN + && !msg_no_more && !exmode_active) + { +--- 1927,1934 ---- + * If screen is completely filled and 'more' is set then wait + * for a character. + */ +! if (lines_left > 0) +! --lines_left; + if (p_more && lines_left == 0 && State != HITRETURN + && !msg_no_more && !exmode_active) + { +*************** +*** 2234,2240 **** + { + msgchunk_T *mp; + +! /* Only show somethign if there is more than one line, otherwise it looks + * weird, typing a command without output results in one line. */ + mp = msg_sb_start(last_msgchunk); + if (mp == NULL || mp->sb_prev == NULL) +--- 2235,2241 ---- + { + msgchunk_T *mp; + +! /* Only show something if there is more than one line, otherwise it looks + * weird, typing a command without output results in one line. */ + mp = msg_sb_start(last_msgchunk); + if (mp == NULL || mp->sb_prev == NULL) +*************** +*** 2622,2628 **** + } + } + +! if (scroll < 0 || (scroll == 0 && mp_last != NULL)) + { + /* displayed the requested text, more prompt again */ + screen_fill((int)Rows - 1, (int)Rows, 0, +--- 2623,2629 ---- + } + } + +! if (scroll <= 0) + { + /* displayed the requested text, more prompt again */ + screen_fill((int)Rows - 1, (int)Rows, 0, +*** ../vim-7.1.055/src/version.c Mon Aug 6 22:27:13 2007 +--- src/version.c Tue Aug 7 21:57:02 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 56, + /**/ + +-- +From "know your smileys": + :-| :-| Deja' vu! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.057 b/7.1.057 new file mode 100644 index 00000000..daa4ae8a --- /dev/null +++ b/7.1.057 @@ -0,0 +1,91 @@ +To: vim-dev@vim.org +Subject: patch 7.1.057 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.057 +Problem: Problem with CursorHoldI when using "r" in Visual mode (Max + Dyckhoff) +Solution: Ignore CursorHold(I) when getting a second character for a Normal + mode command. Also abort the "r" command in Visual when a special + key is typed. +Files: src/normal.c + + +*** ../vim-7.1.056/src/normal.c Tue Jul 10 14:02:51 2007 +--- src/normal.c Sun Aug 5 21:57:43 2007 +*************** +*** 889,894 **** +--- 889,899 ---- + + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ ++ #ifdef FEAT_AUTOCMD ++ /* Don't generate a CursorHold event here, most commands can't handle ++ * it, e.g., nv_replace(), nv_csearch(). */ ++ did_cursorhold = TRUE; ++ #endif + if (ca.cmdchar == 'g') + { + /* +*************** +*** 6662,6667 **** +--- 6668,6680 ---- + else + had_ctrl_v = NUL; + ++ /* Abort if the character is a special key. */ ++ if (IS_SPECIAL(cap->nchar)) ++ { ++ clearopbeep(cap->oap); ++ return; ++ } ++ + #ifdef FEAT_VISUAL + /* Visual mode "r" */ + if (VIsual_active) +*************** +*** 6688,6698 **** + } + #endif + +! /* +! * Check for a special key or not enough characters to replace. +! */ + ptr = ml_get_cursor(); +! if (IS_SPECIAL(cap->nchar) || STRLEN(ptr) < (unsigned)cap->count1 + #ifdef FEAT_MBYTE + || (has_mbyte && mb_charlen(ptr) < cap->count1) + #endif +--- 6701,6709 ---- + } + #endif + +! /* Abort if not enough characters to replace. */ + ptr = ml_get_cursor(); +! if (STRLEN(ptr) < (unsigned)cap->count1 + #ifdef FEAT_MBYTE + || (has_mbyte && mb_charlen(ptr) < cap->count1) + #endif +*** ../vim-7.1.056/src/version.c Tue Aug 7 21:59:26 2007 +--- src/version.c Wed Aug 8 21:39:43 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 57, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +95. Only communication in your household is through email. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.058 b/7.1.058 new file mode 100644 index 00000000..f4e3864a --- /dev/null +++ b/7.1.058 @@ -0,0 +1,397 @@ +To: vim-dev@vim.org +Subject: patch 7.1.058 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.058 +Problem: When 'rightleft' is set the completion menu is positioned wrong. + (Baha-Eddine MOKADEM) +Solution: Fix the completion menu. (Martin Toft) +Files: src/popupmnu.c, src/proto/search.pro, src/search.c + + +*** ../vim-7.1.057/src/popupmnu.c Thu Jun 28 21:23:52 2007 +--- src/popupmnu.c Wed Aug 1 15:43:06 2007 +*************** +*** 75,81 **** + + row = curwin->w_cline_row + W_WINROW(curwin); + height = curwin->w_cline_height; +- col = curwin->w_wcol + W_WINCOL(curwin) - curwin->w_leftcol; + + if (firstwin->w_p_pvw) + top_clear = firstwin->w_height; +--- 75,80 ---- +*************** +*** 167,172 **** +--- 166,180 ---- + pum_base_width = max_width; + pum_kind_width = kind_width; + ++ /* Calculate column */ ++ #ifdef FEAT_RIGHTLEFT ++ if (curwin->w_p_rl) ++ col = W_WINCOL(curwin) + W_WIDTH(curwin) - curwin->w_wcol - ++ curwin->w_leftcol - 1; ++ else ++ #endif ++ col = W_WINCOL(curwin) + curwin->w_wcol - curwin->w_leftcol; ++ + /* if there are more items than room we need a scrollbar */ + if (pum_height < size) + { +*************** +*** 179,189 **** + if (def_width < max_width) + def_width = max_width; + +! if (col < Columns - PUM_DEF_WIDTH || col < Columns - max_width) + { + /* align pum column with "col" */ + pum_col = col; +! pum_width = Columns - pum_col - pum_scrollbar; + if (pum_width > max_width + kind_width + extra_width + 1 + && pum_width > PUM_DEF_WIDTH) + { +--- 187,209 ---- + if (def_width < max_width) + def_width = max_width; + +! if (((col < Columns - PUM_DEF_WIDTH || col < Columns - max_width) +! #ifdef FEAT_RIGHTLEFT +! && !curwin->w_p_rl) +! || (curwin->w_p_rl && (col > PUM_DEF_WIDTH || col > max_width) +! #endif +! )) + { + /* align pum column with "col" */ + pum_col = col; +! +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) +! pum_width = pum_col - pum_scrollbar + 1; +! else +! #endif +! pum_width = Columns - pum_col - pum_scrollbar; +! + if (pum_width > max_width + kind_width + extra_width + 1 + && pum_width > PUM_DEF_WIDTH) + { +*************** +*** 195,208 **** + else if (Columns < def_width) + { + /* not enough room, will use what we have */ +! pum_col = 0; + pum_width = Columns - 1; + } + else + { + if (max_width > PUM_DEF_WIDTH) + max_width = PUM_DEF_WIDTH; /* truncate */ +! pum_col = Columns - max_width; + pum_width = max_width - pum_scrollbar; + } + +--- 215,238 ---- + else if (Columns < def_width) + { + /* not enough room, will use what we have */ +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) +! pum_col = Columns - 1; +! else +! #endif +! pum_col = 0; + pum_width = Columns - 1; + } + else + { + if (max_width > PUM_DEF_WIDTH) + max_width = PUM_DEF_WIDTH; /* truncate */ +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) +! pum_col = max_width - 1; +! else +! #endif +! pum_col = Columns - max_width; + pum_width = max_width - pum_scrollbar; + } + +*************** +*** 255,262 **** + attr = (idx == pum_selected) ? attr_select : attr_norm; + + /* prepend a space if there is room */ +! if (pum_col > 0) +! screen_putchar(' ', row, pum_col - 1, attr); + + /* Display each entry, use two spaces for a Tab. + * Do this 3 times: For the main text, kind and extra info */ +--- 285,300 ---- + attr = (idx == pum_selected) ? attr_select : attr_norm; + + /* prepend a space if there is room */ +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) +! { +! if (pum_col < W_WINCOL(curwin) + W_WIDTH(curwin) - 1) +! screen_putchar(' ', row, pum_col + 1, attr); +! } +! else +! #endif +! if (pum_col > 0) +! screen_putchar(' ', row, pum_col - 1, attr); + + /* Display each entry, use two spaces for a Tab. + * Do this 3 times: For the main text, kind and extra info */ +*************** +*** 282,307 **** + { + /* Display the text that fits or comes before a Tab. + * First convert it to printable characters. */ +! char_u *st; +! int saved = *p; + + *p = NUL; + st = transstr(s); + *p = saved; +! if (st != NULL) + { +! screen_puts_len(st, (int)STRLEN(st), row, col, + attr); +! vim_free(st); + } +- col += width; + + if (*p != TAB) + break; + + /* Display two spaces for a Tab. */ +! screen_puts_len((char_u *)" ", 2, row, col, attr); +! col += 2; + totwidth += 2; + s = NULL; /* start text at next char */ + width = 0; +--- 320,386 ---- + { + /* Display the text that fits or comes before a Tab. + * First convert it to printable characters. */ +! char_u *st; +! int saved = *p; + + *p = NUL; + st = transstr(s); + *p = saved; +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) + { +! if (st != NULL) +! { +! char_u *rt = reverse_text(st); +! char_u *rt_saved = rt; +! int len, j; +! +! if (rt != NULL) +! { +! len = STRLEN(rt); +! if (len > pum_width) +! { +! for (j = pum_width; j < len; ++j) +! mb_ptr_adv(rt); +! len = pum_width; +! } +! screen_puts_len(rt, len, row, +! col - len + 1, attr); +! vim_free(rt_saved); +! } +! vim_free(st); +! } +! col -= width; +! } +! else +! #endif +! { +! if (st != NULL) +! { +! screen_puts_len(st, (int)STRLEN(st), row, col, + attr); +! vim_free(st); +! } +! col += width; + } + + if (*p != TAB) + break; + + /* Display two spaces for a Tab. */ +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) +! { +! screen_puts_len((char_u *)" ", 2, row, col - 1, +! attr); +! col -= 2; +! } +! else +! #endif +! { +! screen_puts_len((char_u *)" ", 2, row, col, attr); +! col += 2; +! } + totwidth += 2; + s = NULL; /* start text at next char */ + width = 0; +*************** +*** 322,338 **** + && pum_array[idx].pum_extra == NULL) + || pum_base_width + n >= pum_width) + break; +! screen_fill(row, row + 1, col, pum_col + pum_base_width + n, + ' ', ' ', attr); +! col = pum_col + pum_base_width + n; + totwidth = pum_base_width + n; + } + +! screen_fill(row, row + 1, col, pum_col + pum_width, ' ', ' ', attr); + if (pum_scrollbar > 0) +! screen_putchar(' ', row, pum_col + pum_width, +! i >= thumb_pos && i < thumb_pos + thumb_heigth + ? attr_thumb : attr_scroll); + + ++row; + } +--- 401,444 ---- + && pum_array[idx].pum_extra == NULL) + || pum_base_width + n >= pum_width) + break; +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) +! { +! screen_fill(row, row + 1, pum_col - pum_base_width - n + 1, +! col + 1, ' ', ' ', attr); +! col = pum_col - pum_base_width - n + 1; +! } +! else +! #endif +! { +! screen_fill(row, row + 1, col, pum_col + pum_base_width + n, + ' ', ' ', attr); +! col = pum_col + pum_base_width + n; +! } + totwidth = pum_base_width + n; + } + +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) +! screen_fill(row, row + 1, pum_col - pum_width + 1, col + 1, ' ', +! ' ', attr); +! else +! #endif +! screen_fill(row, row + 1, col, pum_col + pum_width, ' ', ' ', +! attr); + if (pum_scrollbar > 0) +! { +! #ifdef FEAT_RIGHTLEFT +! if (curwin->w_p_rl) +! screen_putchar(' ', row, pum_col - pum_width, +! i >= thumb_pos && i < thumb_pos + thumb_heigth + ? attr_thumb : attr_scroll); ++ else ++ #endif ++ screen_putchar(' ', row, pum_col + pum_width, ++ i >= thumb_pos && i < thumb_pos + thumb_heigth ++ ? attr_thumb : attr_scroll); ++ } + + ++row; + } +*** ../vim-7.1.057/src/proto/search.pro Sat May 5 20:20:36 2007 +--- src/proto/search.pro Wed Aug 1 12:41:25 2007 +*************** +*** 1,6 **** +--- 1,7 ---- + /* search.c */ + int search_regcomp __ARGS((char_u *pat, int pat_save, int pat_use, int options, regmmatch_T *regmatch)); + char_u *get_search_pat __ARGS((void)); ++ char_u *reverse_text __ARGS((char_u *s)); + void save_search_patterns __ARGS((void)); + void restore_search_patterns __ARGS((void)); + void free_search_patterns __ARGS((void)); +*** ../vim-7.1.057/src/search.c Tue Jul 10 13:27:46 2007 +--- src/search.c Wed Aug 1 12:39:22 2007 +*************** +*** 101,107 **** + static char_u *mr_pattern = NULL; /* pattern used by search_regcomp() */ + #ifdef FEAT_RIGHTLEFT + static int mr_pattern_alloced = FALSE; /* mr_pattern was allocated */ +- static char_u *reverse_text __ARGS((char_u *s)); + #endif + + #ifdef FEAT_FIND_ID +--- 101,106 ---- +*************** +*** 228,239 **** + return mr_pattern; + } + +! #ifdef FEAT_RIGHTLEFT + /* + * Reverse text into allocated memory. + * Returns the allocated string, NULL when out of memory. + */ +! static char_u * + reverse_text(s) + char_u *s; + { +--- 227,238 ---- + return mr_pattern; + } + +! #if defined(FEAT_RIGHTLEFT) || defined(PROTO) + /* + * Reverse text into allocated memory. + * Returns the allocated string, NULL when out of memory. + */ +! char_u * + reverse_text(s) + char_u *s; + { +*************** +*** 1898,1904 **** + } + + #ifdef FEAT_RIGHTLEFT +! /* This is just guessing: when 'rightleft' is set, search for a maching + * paren/brace in the other direction. */ + if (curwin->w_p_rl && vim_strchr((char_u *)"()[]{}<>", initc) != NULL) + backwards = !backwards; +--- 1897,1903 ---- + } + + #ifdef FEAT_RIGHTLEFT +! /* This is just guessing: when 'rightleft' is set, search for a matching + * paren/brace in the other direction. */ + if (curwin->w_p_rl && vim_strchr((char_u *)"()[]{}<>", initc) != NULL) + backwards = !backwards; +*** ../vim-7.1.057/src/version.c Wed Aug 8 21:41:19 2007 +--- src/version.c Wed Aug 8 22:44:49 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 58, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +99. The hum of a cooling fan and the click of keys is comforting to you. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.059 b/7.1.059 new file mode 100644 index 00000000..8e19558a --- /dev/null +++ b/7.1.059 @@ -0,0 +1,104 @@ +To: vim-dev@vim.org +Subject: patch 7.1.059 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.059 +Problem: When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim + hangs and beeps. (Antony Scriven) +Solution: Clear "got_int" in the main loop to avoid the hang. When typing + CTRL-C twice in a row abort the ":g" command. This is Vi + compatible. +Files: src/main.c + + +*** ../vim-7.1.058/src/main.c Tue Jun 19 20:30:46 2007 +--- src/main.c Tue Aug 7 22:40:35 2007 +*************** +*** 954,960 **** + int cmdwin; /* TRUE when working in the command-line window */ + int noexmode; /* TRUE when return on entering Ex mode */ + { +! oparg_T oa; /* operator arguments */ + + #if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD) + /* Setup to catch a terminating error from the X server. Just ignore +--- 954,961 ---- + int cmdwin; /* TRUE when working in the command-line window */ + int noexmode; /* TRUE when return on entering Ex mode */ + { +! oparg_T oa; /* operator arguments */ +! int previous_got_int = FALSE; /* "got_int" was TRUE */ + + #if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD) + /* Setup to catch a terminating error from the X server. Just ignore +*************** +*** 1015,1026 **** + need_fileinfo = FALSE; + } + } +! if (got_int && !global_busy) + { +! if (!quit_more) +! (void)vgetc(); /* flush all buffers */ +! got_int = FALSE; + } + if (!exmode_active) + msg_scroll = FALSE; + quit_more = FALSE; +--- 1016,1047 ---- + need_fileinfo = FALSE; + } + } +! +! /* Reset "got_int" now that we got back to the main loop. Except when +! * inside a ":g/pat/cmd" command, then the "got_int" needs to abort +! * the ":g" command. +! * For ":g/pat/vi" we reset "got_int" when used once. When used +! * a second time we go back to Ex mode and abort the ":g" command. */ +! if (got_int) + { +! if (noexmode && global_busy && !exmode_active && previous_got_int) +! { +! /* Typed two CTRL-C in a row: go back to ex mode as if "Q" was +! * used and keep "got_int" set, so that it aborts ":g". */ +! exmode_active = EXMODE_NORMAL; +! State = NORMAL; +! } +! else if (!global_busy || !exmode_active) +! { +! if (!quit_more) +! (void)vgetc(); /* flush all buffers */ +! got_int = FALSE; +! } +! previous_got_int = TRUE; + } ++ else ++ previous_got_int = FALSE; ++ + if (!exmode_active) + msg_scroll = FALSE; + quit_more = FALSE; +*** ../vim-7.1.058/src/version.c Wed Aug 8 22:48:16 2007 +--- src/version.c Fri Aug 10 21:30:39 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 59, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +116. You are living with your boyfriend who networks your respective + computers so you can sit in separate rooms and email each other + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.060 b/7.1.060 new file mode 100644 index 00000000..8c3cb33c --- /dev/null +++ b/7.1.060 @@ -0,0 +1,176 @@ +To: vim-dev@vim.org +Subject: patch 7.1.060 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.060 +Problem: Splitting quickfix window messes up window layout. (Marius + Gedminas) +Solution: Compute the window size in a smarter way. (Martin Toft) +Files: src/window.c + + +*** ../vim-7.1.059/src/window.c Sun Aug 5 18:49:07 2007 +--- src/window.c Sun Aug 5 17:17:51 2007 +*************** +*** 2121,2127 **** + if (wp->w_p_pvw || bt_quickfix(wp->w_buffer)) + { + /* +! * The cursor goes to the preview or the quickfix window, try + * finding another window to go to. + */ + for (;;) +--- 2121,2127 ---- + if (wp->w_p_pvw || bt_quickfix(wp->w_buffer)) + { + /* +! * If the cursor goes to the preview or the quickfix window, try + * finding another window to go to. + */ + for (;;) +*************** +*** 2308,2314 **** + frame_T *frp, *frp2, *frp3; + frame_T *frp_close = win->w_frame; + win_T *wp; +- int old_size = 0; + + /* + * If there is only one window there is nothing to remove. +--- 2308,2313 ---- +*************** +*** 2329,2361 **** + if (frp_close->fr_parent->fr_layout == FR_COL) + { + #endif +! /* When 'winfixheight' is set, remember its old size and restore +! * it later (it's a simplistic solution...). Don't do this if the +! * window will occupy the full height of the screen. */ +! if (frp2->fr_win != NULL +! && (frp2->fr_next != NULL || frp2->fr_prev != NULL) +! && frp2->fr_win->w_p_wfh) +! old_size = frp2->fr_win->w_height; + frame_new_height(frp2, frp2->fr_height + frp_close->fr_height, + frp2 == frp_close->fr_next ? TRUE : FALSE, FALSE); +- if (old_size != 0) +- win_setheight_win(old_size, frp2->fr_win); + #ifdef FEAT_VERTSPLIT + *dirp = 'v'; + } + else + { +! /* When 'winfixwidth' is set, remember its old size and restore +! * it later (it's a simplistic solution...). Don't do this if the +! * window will occupy the full width of the screen. */ +! if (frp2->fr_win != NULL +! && (frp2->fr_next != NULL || frp2->fr_prev != NULL) +! && frp2->fr_win->w_p_wfw) +! old_size = frp2->fr_win->w_width; + frame_new_width(frp2, frp2->fr_width + frp_close->fr_width, + frp2 == frp_close->fr_next ? TRUE : FALSE, FALSE); +- if (old_size != 0) +- win_setwidth_win(old_size, frp2->fr_win); + *dirp = 'h'; + } + #endif +--- 2328,2404 ---- + if (frp_close->fr_parent->fr_layout == FR_COL) + { + #endif +! /* When 'winfixheight' is set, try to find another frame in the column +! * (as close to the closed frame as possible) to distribute the height +! * to. */ +! if (frp2->fr_win != NULL && frp2->fr_win->w_p_wfh) +! { +! frp = frp_close->fr_prev; +! frp3 = frp_close->fr_next; +! while (frp != NULL || frp3 != NULL) +! { +! if (frp != NULL) +! { +! if (frp->fr_win != NULL && !frp->fr_win->w_p_wfh) +! { +! frp2 = frp; +! wp = frp->fr_win; +! break; +! } +! frp = frp->fr_prev; +! } +! if (frp3 != NULL) +! { +! if (frp3->fr_win != NULL && !frp3->fr_win->w_p_wfh) +! { +! frp2 = frp3; +! wp = frp3->fr_win; +! break; +! } +! frp3 = frp3->fr_next; +! } +! } +! } + frame_new_height(frp2, frp2->fr_height + frp_close->fr_height, + frp2 == frp_close->fr_next ? TRUE : FALSE, FALSE); + #ifdef FEAT_VERTSPLIT + *dirp = 'v'; + } + else + { +! /* When 'winfixwidth' is set, try to find another frame in the column +! * (as close to the closed frame as possible) to distribute the width +! * to. */ +! if (frp2->fr_win != NULL && frp2->fr_win->w_p_wfw) +! { +! frp = frp_close->fr_prev; +! frp3 = frp_close->fr_next; +! while (frp != NULL || frp3 != NULL) +! { +! if (frp != NULL) +! { +! if (frp->fr_win != NULL && !frp->fr_win->w_p_wfw) +! { +! frp2 = frp; +! wp = frp->fr_win; +! break; +! } +! frp = frp->fr_prev; +! } +! if (frp3 != NULL) +! { +! if (frp3->fr_win != NULL && !frp3->fr_win->w_p_wfw) +! { +! frp2 = frp3; +! wp = frp3->fr_win; +! break; +! } +! frp3 = frp3->fr_next; +! } +! } +! } + frame_new_width(frp2, frp2->fr_width + frp_close->fr_width, + frp2 == frp_close->fr_next ? TRUE : FALSE, FALSE); + *dirp = 'h'; + } + #endif +*** ../vim-7.1.059/src/version.c Fri Aug 10 21:32:41 2007 +--- src/version.c Sat Aug 11 13:34:42 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 60, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +117. You are more comfortable typing in html. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.061 b/7.1.061 new file mode 100644 index 00000000..e5cb28a8 --- /dev/null +++ b/7.1.061 @@ -0,0 +1,222 @@ +To: vim-dev@vim.org +Subject: patch 7.1.061 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.061 +Problem: Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for + characters with umlaut. (Joachim Hofmann) +Solution: Do not use islower()/isupper()/tolower()/toupper() but our own + functions. (Chris Lubinski) +Files: src/mbyte.c, src/regexp.c, src/vim.h + + +*** ../vim-7.1.060/src/mbyte.c Thu May 10 19:45:20 2007 +--- src/mbyte.c Sat Aug 4 13:44:36 2007 +*************** +*** 2320,2326 **** + /* Single byte: first check normally, then with ignore case. */ + if (s1[i] != s2[i]) + { +! cdiff = TOLOWER_LOC(s1[i]) - TOLOWER_LOC(s2[i]); + if (cdiff != 0) + return cdiff; + } +--- 2320,2326 ---- + /* Single byte: first check normally, then with ignore case. */ + if (s1[i] != s2[i]) + { +! cdiff = MB_TOLOWER(s1[i]) - MB_TOLOWER(s2[i]); + if (cdiff != 0) + return cdiff; + } +*** ../vim-7.1.060/src/regexp.c Mon Aug 6 22:27:13 2007 +--- src/regexp.c Sun Aug 5 15:43:27 2007 +*************** +*** 2220,2226 **** + break; + case CLASS_LOWER: + for (cu = 1; cu <= 255; cu++) +! if (islower(cu)) + regc(cu); + break; + case CLASS_PRINT: +--- 2220,2226 ---- + break; + case CLASS_LOWER: + for (cu = 1; cu <= 255; cu++) +! if (MB_ISLOWER(cu)) + regc(cu); + break; + case CLASS_PRINT: +*************** +*** 2240,2246 **** + break; + case CLASS_UPPER: + for (cu = 1; cu <= 255; cu++) +! if (isupper(cu)) + regc(cu); + break; + case CLASS_XDIGIT: +--- 2240,2246 ---- + break; + case CLASS_UPPER: + for (cu = 1; cu <= 255; cu++) +! if (MB_ISUPPER(cu)) + regc(cu); + break; + case CLASS_XDIGIT: +*************** +*** 3465,3471 **** + (enc_utf8 && utf_fold(prog->regstart) == utf_fold(c))) + || (c < 255 && prog->regstart < 255 && + #endif +! TOLOWER_LOC(prog->regstart) == TOLOWER_LOC(c))))) + retval = regtry(prog, col); + else + retval = 0; +--- 3465,3471 ---- + (enc_utf8 && utf_fold(prog->regstart) == utf_fold(c))) + || (c < 255 && prog->regstart < 255 && + #endif +! MB_TOLOWER(prog->regstart) == MB_TOLOWER(c))))) + retval = regtry(prog, col); + else + retval = 0; +*************** +*** 4200,4206 **** + #ifdef FEAT_MBYTE + !enc_utf8 && + #endif +! TOLOWER_LOC(*opnd) != TOLOWER_LOC(*reginput)))) + status = RA_NOMATCH; + else if (*opnd == NUL) + { +--- 4200,4206 ---- + #ifdef FEAT_MBYTE + !enc_utf8 && + #endif +! MB_TOLOWER(*opnd) != MB_TOLOWER(*reginput)))) + status = RA_NOMATCH; + else if (*opnd == NUL) + { +*************** +*** 4733,4742 **** + rst.nextb = *OPERAND(next); + if (ireg_ic) + { +! if (isupper(rst.nextb)) +! rst.nextb_ic = TOLOWER_LOC(rst.nextb); + else +! rst.nextb_ic = TOUPPER_LOC(rst.nextb); + } + else + rst.nextb_ic = rst.nextb; +--- 4733,4742 ---- + rst.nextb = *OPERAND(next); + if (ireg_ic) + { +! if (MB_ISUPPER(rst.nextb)) +! rst.nextb_ic = MB_TOLOWER(rst.nextb); + else +! rst.nextb_ic = MB_TOUPPER(rst.nextb); + } + else + rst.nextb_ic = rst.nextb; +*************** +*** 5558,5568 **** + int cu, cl; + + /* This doesn't do a multi-byte character, because a MULTIBYTECODE +! * would have been used for it. */ + if (ireg_ic) + { +! cu = TOUPPER_LOC(*opnd); +! cl = TOLOWER_LOC(*opnd); + while (count < maxcount && (*scan == cu || *scan == cl)) + { + count++; +--- 5558,5569 ---- + int cu, cl; + + /* This doesn't do a multi-byte character, because a MULTIBYTECODE +! * would have been used for it. It does handle single-byte +! * characters, such as latin1. */ + if (ireg_ic) + { +! cu = MB_TOUPPER(*opnd); +! cl = MB_TOLOWER(*opnd); + while (count < maxcount && (*scan == cu || *scan == cl)) + { + count++; +*************** +*** 6490,6499 **** + cc = utf_fold(c); + else + #endif +! if (isupper(c)) +! cc = TOLOWER_LOC(c); +! else if (islower(c)) +! cc = TOUPPER_LOC(c); + else + return vim_strchr(s, c); + +--- 6491,6500 ---- + cc = utf_fold(c); + else + #endif +! if (MB_ISUPPER(c)) +! cc = MB_TOLOWER(c); +! else if (MB_ISLOWER(c)) +! cc = MB_TOUPPER(c); + else + return vim_strchr(s, c); + +*** ../vim-7.1.060/src/vim.h Sat May 12 15:08:22 2007 +--- src/vim.h Sat Aug 4 13:57:36 2007 +*************** +*** 1380,1387 **** + #endif + + #ifdef FEAT_MBYTE +! # define MB_STRICMP(d, s) (has_mbyte ? mb_strnicmp((char_u *)(d), (char_u *)(s), (int)MAXCOL) : STRICMP((d), (s))) +! # define MB_STRNICMP(d, s, n) (has_mbyte ? mb_strnicmp((char_u *)(d), (char_u *)(s), (int)(n)) : STRNICMP((d), (s), (n))) + #else + # define MB_STRICMP(d, s) STRICMP((d), (s)) + # define MB_STRNICMP(d, s, n) STRNICMP((d), (s), (n)) +--- 1380,1393 ---- + #endif + + #ifdef FEAT_MBYTE +! /* We need to call mb_stricmp() even when we aren't dealing with a multi-byte +! * encoding because mb_stricmp() takes care of all ascii and non-ascii +! * encodings, including characters with umluats in latin1, etc., while +! * STRICMP() only handles the system locale version, which often does not +! * handle non-ascii properly. */ +! +! # define MB_STRICMP(d, s) mb_strnicmp((char_u *)(d), (char_u *)(s), (int)MAXCOL) +! # define MB_STRNICMP(d, s, n) mb_strnicmp((char_u *)(d), (char_u *)(s), (int)(n)) + #else + # define MB_STRICMP(d, s) STRICMP((d), (s)) + # define MB_STRNICMP(d, s, n) STRNICMP((d), (s), (n)) +*** ../vim-7.1.060/src/version.c Sat Aug 11 13:37:36 2007 +--- src/version.c Sat Aug 11 13:55:24 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 61, + /**/ + +-- +Support your right to bare arms! Wear short sleeves! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.062 b/7.1.062 new file mode 100644 index 00000000..683b304a --- /dev/null +++ b/7.1.062 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: patch 7.1.062 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.062 (after 7.1.038) +Problem: Indents of C comments can be wrong. (John Mullin) +Solution: Adjust ind_len. (Chris Lubinski) +Files: src/misc1.c + + +*** ../vim-7.1.061/src/misc1.c Mon Aug 6 22:27:13 2007 +--- src/misc1.c Fri Aug 10 19:41:42 2007 +*************** +*** 222,228 **** + * than old) */ + while (vim_iswhite(*p)) + (void)*p++; +! todo = size-ind_done; + } + else + { +--- 222,231 ---- + * than old) */ + while (vim_iswhite(*p)) + (void)*p++; +! todo = size - ind_done; +! ind_len += todo; /* Set total length of indent in characters, +! * which may have been undercounted until now */ +! + } + else + { +*** ../vim-7.1.061/src/version.c Sat Aug 11 13:57:31 2007 +--- src/version.c Sat Aug 11 14:30:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 62, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +120. You ask a friend, "What's that big shiny thing?" He says, "It's the sun." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.063 b/7.1.063 new file mode 100644 index 00000000..d276d54d --- /dev/null +++ b/7.1.063 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: patch 7.1.063 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.063 (after 7.1.040) +Problem: Warning for unitialized variable. +Solution: Initialise it to NULL. +Files: src/ex_docmd.c + + +*** ../vim-7.1.062/src/ex_docmd.c Thu Jul 26 22:55:11 2007 +--- src/ex_docmd.c Wed Aug 8 22:28:33 2007 +*************** +*** 10817,10823 **** + exarg_T *eap; + { + char_u *p; +! char_u *g; + char_u *end; + int c; + int id; +--- 10818,10824 ---- + exarg_T *eap; + { + char_u *p; +! char_u *g = NULL; + char_u *end; + int c; + int id; +*** ../vim-7.1.062/src/version.c Sat Aug 11 14:32:10 2007 +--- src/version.c Sat Aug 11 15:58:55 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 63, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +124. You begin conversations with, "Who is your internet service provider?" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.064 b/7.1.064 new file mode 100644 index 00000000..f1fb1309 --- /dev/null +++ b/7.1.064 @@ -0,0 +1,50 @@ +To: vim-dev@vim.org +Subject: patch 7.1.064 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.064 +Problem: On Interix some files appear not to exist. +Solution: Remove the top bit from st_mode. (Ligesh) +Files: src/os_unix.c + + +*** ../vim-7.1.063/src/os_unix.c Thu May 10 19:42:47 2007 +--- src/os_unix.c Fri Aug 10 19:32:20 2007 +*************** +*** 2499,2505 **** +--- 2499,2511 ---- + if (stat((char *)name, &statb)) + #endif + return -1; ++ #ifdef __INTERIX ++ /* The top bit makes the value negative, which means the file doesn't ++ * exist. Remove the bit, we don't use it. */ ++ return statb.st_mode & ~S_ADDACE; ++ #else + return statb.st_mode; ++ #endif + } + + /* +*** ../vim-7.1.063/src/version.c Sat Aug 11 15:59:44 2007 +--- src/version.c Sat Aug 11 22:21:35 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 64, + /**/ + +-- +I have a watch cat! Just break in and she'll watch. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.065 b/7.1.065 new file mode 100644 index 00000000..57c7f224 --- /dev/null +++ b/7.1.065 @@ -0,0 +1,113 @@ +To: vim-dev@vim.org +Subject: patch 7.1.065 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.065 (extra) +Problem: Win32: Compilation problem for newer version of w32api. +Solution: Only define __IID_DEFINED__ when needed. (Chris Sutcliffe) +Files: src/Make_ming.mak, src/iid_ole.c + + +*** ../vim-7.1.064/src/Make_ming.mak Thu May 10 19:35:54 2007 +--- src/Make_ming.mak Sat Aug 11 14:52:11 2007 +*************** +*** 572,579 **** + $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h + $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o + + $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) +! $(CC) $(CFLAGS) -D__IID_DEFINED__ -c -o $(OUTDIR)/if_ole.o if_ole.cpp + + $(OUTDIR)/if_ruby.o: if_ruby.c $(INCL) + ifeq (16, $(RUBY)) +--- 572,580 ---- + $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h + $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o + ++ # Remove -D__IID_DEFINED__ for newer versions of the w32api + $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) +! $(CC) $(CFLAGS) -c -o $(OUTDIR)/if_ole.o if_ole.cpp + + $(OUTDIR)/if_ruby.o: if_ruby.c $(INCL) + ifeq (16, $(RUBY)) +*** ../vim-7.1.064/src/iid_ole.c Sun Jun 13 18:45:30 2004 +--- src/iid_ole.c Sat Aug 11 14:57:58 2007 +*************** +*** 16,24 **** + extern "C"{ + #endif + + + #ifndef __IID_DEFINED__ +! #define __IID_DEFINED__ + + typedef struct _IID + { +--- 16,33 ---- + extern "C"{ + #endif + ++ #ifdef __MINGW32__ ++ # include ++ ++ # if __W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION < 10 ++ /* This define is missing from older MingW versions of w32api, even though ++ * IID is defined. */ ++ # define __IID_DEFINED__ ++ # endif ++ #endif + + #ifndef __IID_DEFINED__ +! # define __IID_DEFINED__ + + typedef struct _IID + { +*************** +*** 28,39 **** + unsigned char c[8]; + } IID; + +! #endif // __IID_DEFINED__ + + #ifndef CLSID_DEFINED +! #define CLSID_DEFINED + typedef IID CLSID; +! #endif // CLSID_DEFINED + + const IID IID_IVim = {0x0F0BFAE2,0x4C90,0x11d1,{0x82,0xD7,0x00,0x04,0xAC,0x36,0x85,0x19}}; + +--- 37,48 ---- + unsigned char c[8]; + } IID; + +! #endif + + #ifndef CLSID_DEFINED +! # define CLSID_DEFINED + typedef IID CLSID; +! #endif + + const IID IID_IVim = {0x0F0BFAE2,0x4C90,0x11d1,{0x82,0xD7,0x00,0x04,0xAC,0x36,0x85,0x19}}; + +*** ../vim-7.1.064/src/version.c Sat Aug 11 22:22:56 2007 +--- src/version.c Sun Aug 12 15:21:34 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 65, + /**/ + +-- +I'm writing a book. I've got the page numbers done. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.066 b/7.1.066 new file mode 100644 index 00000000..c9f16294 --- /dev/null +++ b/7.1.066 @@ -0,0 +1,152 @@ +To: vim-dev@vim.org +Subject: patch 7.1.066 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.066 +Problem: When 'bomb' is set or reset the file should be considered + modified. (Tony Mechelynck) +Solution: Handle like 'endofline'. (Martin Toft) +Files: src/buffer.c, src/fileio.c, src/option.c, src/structs.h + + +*** ../vim-7.1.065/src/buffer.c Mon Aug 6 22:27:12 2007 +--- src/buffer.c Sat Aug 11 16:56:57 2007 +*************** +*** 502,507 **** +--- 502,508 ---- + buf->b_start_eol = TRUE; + #ifdef FEAT_MBYTE + buf->b_p_bomb = FALSE; ++ buf->b_start_bomb = FALSE; + #endif + buf->b_ml.ml_mfp = NULL; + buf->b_ml.ml_flags = ML_EMPTY; /* empty buffer */ +*** ../vim-7.1.065/src/fileio.c Tue Jul 10 17:09:51 2007 +--- src/fileio.c Sat Aug 11 16:56:57 2007 +*************** +*** 654,659 **** +--- 654,660 ---- + curbuf->b_start_eol = TRUE; + #ifdef FEAT_MBYTE + curbuf->b_p_bomb = FALSE; ++ curbuf->b_start_bomb = FALSE; + #endif + } + +*************** +*** 912,918 **** +--- 913,922 ---- + file_rewind = FALSE; + #ifdef FEAT_MBYTE + if (set_options) ++ { + curbuf->b_p_bomb = FALSE; ++ curbuf->b_start_bomb = FALSE; ++ } + conv_error = 0; + #endif + } +*************** +*** 1361,1367 **** +--- 1365,1374 ---- + size -= blen; + mch_memmove(ptr, ptr + blen, (size_t)size); + if (set_options) ++ { + curbuf->b_p_bomb = TRUE; ++ curbuf->b_start_bomb = TRUE; ++ } + } + + if (fio_flags == FIO_UCSBOM) +*** ../vim-7.1.065/src/option.c Tue Jul 24 14:57:16 2007 +--- src/option.c Sat Aug 11 16:56:57 2007 +*************** +*** 7118,7123 **** +--- 7118,7128 ---- + /* when 'endofline' is changed, redraw the window title */ + else if ((int *)varp == &curbuf->b_p_eol) + need_maketitle = TRUE; ++ #ifdef FEAT_MBYTE ++ /* when 'bomb' is changed, redraw the window title */ ++ else if ((int *)varp == &curbuf->b_p_bomb) ++ need_maketitle = TRUE; ++ #endif + #endif + + /* when 'bin' is set also set some other options */ +*************** +*** 10604,10609 **** +--- 10609,10616 ---- + buf->b_start_ffc = *buf->b_p_ff; + buf->b_start_eol = buf->b_p_eol; + #ifdef FEAT_MBYTE ++ buf->b_start_bomb = buf->b_p_bomb; ++ + /* Only use free/alloc when necessary, they take time. */ + if (buf->b_start_fenc == NULL + || STRCMP(buf->b_start_fenc, buf->b_p_fenc) != 0) +*************** +*** 10617,10623 **** + /* + * Return TRUE if 'fileformat' and/or 'fileencoding' has a different value + * from when editing started (save_file_ff() called). +! * Also when 'endofline' was changed and 'binary' is set. + * Don't consider a new, empty buffer to be changed. + */ + int +--- 10624,10631 ---- + /* + * Return TRUE if 'fileformat' and/or 'fileencoding' has a different value + * from when editing started (save_file_ff() called). +! * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was +! * changed and 'binary' is not set. + * Don't consider a new, empty buffer to be changed. + */ + int +*************** +*** 10636,10641 **** +--- 10644,10651 ---- + if (buf->b_p_bin && buf->b_start_eol != buf->b_p_eol) + return TRUE; + #ifdef FEAT_MBYTE ++ if (!buf->b_p_bin && buf->b_start_bomb != buf->b_p_bomb) ++ return TRUE; + if (buf->b_start_fenc == NULL) + return (*buf->b_p_fenc != NUL); + return (STRCMP(buf->b_start_fenc, buf->b_p_fenc) != 0); +*** ../vim-7.1.065/src/structs.h Thu Jul 26 22:55:11 2007 +--- src/structs.h Sat Aug 11 16:56:57 2007 +*************** +*** 1453,1458 **** +--- 1453,1459 ---- + #ifdef FEAT_MBYTE + char_u *b_start_fenc; /* 'fileencoding' when edit started or NULL */ + int b_bad_char; /* "++bad=" argument when edit started or 0 */ ++ int b_start_bomb; /* 'bomb' when it was read */ + #endif + + #ifdef FEAT_EVAL +*** ../vim-7.1.065/src/version.c Sun Aug 12 15:24:05 2007 +--- src/version.c Sun Aug 12 15:48:34 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 66, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +127. You bring your laptop and cellular phone to church. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.067 b/7.1.067 new file mode 100644 index 00000000..6da49e3f --- /dev/null +++ b/7.1.067 @@ -0,0 +1,302 @@ +To: vim-dev@vim.org +Subject: patch 7.1.067 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.067 +Problem: 'thesaurus' doesn't work when 'infercase' is set. (Mohsin) +Solution: Don't copy the characters being completed but check the case and + apply it to the suggested word. Also fix that the first word in + the thesaurus line is not used. (Martin Toft) +Files: src/edit.c + + +*** ../vim-7.1.066/src/edit.c Sun Jul 29 15:02:34 2007 +--- src/edit.c Sat Aug 11 17:16:51 2007 +*************** +*** 2057,2063 **** + * case of the originally typed text is used, and the case of the completed + * text is inferred, ie this tries to work out what case you probably wanted + * the rest of the word to be in -- webb +- * TODO: make this work for multi-byte characters. + */ + int + ins_compl_add_infercase(str, len, icase, fname, dir, flags) +--- 2057,2062 ---- +*************** +*** 2068,2121 **** + int dir; + int flags; + { + int has_lower = FALSE; + int was_letter = FALSE; +- int idx; + +! if (p_ic && curbuf->b_p_inf && len < IOSIZE) + { +! /* Infer case of completed part -- webb */ +! /* Use IObuff, str would change text in buffer! */ +! vim_strncpy(IObuff, str, len); + +! /* Rule 1: Were any chars converted to lower? */ +! for (idx = 0; idx < compl_length; ++idx) + { +! if (islower(compl_orig_text[idx])) + { +! has_lower = TRUE; +! if (isupper(IObuff[idx])) +! { +! /* Rule 1 is satisfied */ +! for (idx = compl_length; idx < len; ++idx) +! IObuff[idx] = TOLOWER_LOC(IObuff[idx]); +! break; +! } + } + } + +! /* +! * Rule 2: No lower case, 2nd consecutive letter converted to +! * upper case. +! */ +! if (!has_lower) + { +! for (idx = 0; idx < compl_length; ++idx) + { +! if (was_letter && isupper(compl_orig_text[idx]) +! && islower(IObuff[idx])) + { +! /* Rule 2 is satisfied */ +! for (idx = compl_length; idx < len; ++idx) +! IObuff[idx] = TOUPPER_LOC(IObuff[idx]); +! break; + } +- was_letter = isalpha(compl_orig_text[idx]); + } +- } + +! /* Copy the original case of the part we typed */ +! STRNCPY(IObuff, compl_orig_text, compl_length); + + return ins_compl_add(IObuff, len, icase, fname, NULL, dir, + flags, FALSE); +--- 2067,2213 ---- + int dir; + int flags; + { ++ char_u *p; ++ int i, c; ++ int actual_len; /* Take multi-byte characters */ ++ int actual_compl_length; /* into account. */ ++ int *wca; /* Wide character array. */ + int has_lower = FALSE; + int was_letter = FALSE; + +! if (p_ic && curbuf->b_p_inf) + { +! /* Infer case of completed part. */ + +! /* Find actual length of completion. */ +! #ifdef FEAT_MBYTE +! if (has_mbyte) + { +! p = str; +! actual_len = 0; +! while (*p != NUL) + { +! mb_ptr_adv(p); +! ++actual_len; + } + } ++ else ++ #endif ++ actual_len = len; + +! /* Find actual length of original text. */ +! #ifdef FEAT_MBYTE +! if (has_mbyte) + { +! p = compl_orig_text; +! actual_compl_length = 0; +! while (*p != NUL) + { +! mb_ptr_adv(p); +! ++actual_compl_length; +! } +! } +! else +! #endif +! actual_compl_length = compl_length; +! +! /* Allocate wide character array for the completion and fill it. */ +! wca = (int *)alloc(actual_len * sizeof(int)); +! if (wca != NULL) +! { +! p = str; +! for (i = 0; i < actual_len; ++i) +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! wca[i] = mb_ptr2char_adv(&p); +! else +! #endif +! wca[i] = *(p++); +! +! /* Rule 1: Were any chars converted to lower? */ +! p = compl_orig_text; +! for (i = 0; i < actual_compl_length; ++i) +! { +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! c = mb_ptr2char_adv(&p); +! else +! #endif +! c = *(p++); +! if (MB_ISLOWER(c)) + { +! has_lower = TRUE; +! if (MB_ISUPPER(wca[i])) +! { +! /* Rule 1 is satisfied. */ +! for (i = actual_compl_length; i < actual_len; ++i) +! wca[i] = MB_TOLOWER(wca[i]); +! break; +! } + } + } + +! /* +! * Rule 2: No lower case, 2nd consecutive letter converted to +! * upper case. +! */ +! if (!has_lower) +! { +! p = compl_orig_text; +! for (i = 0; i < actual_compl_length; ++i) +! { +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! c = mb_ptr2char_adv(&p); +! else +! #endif +! c = *(p++); +! if (was_letter && MB_ISUPPER(c) && MB_ISLOWER(wca[i])) +! { +! /* Rule 2 is satisfied. */ +! for (i = actual_compl_length; i < actual_len; ++i) +! wca[i] = MB_TOUPPER(wca[i]); +! break; +! } +! was_letter = MB_ISLOWER(c) || MB_ISUPPER(c); +! } +! } +! +! /* Copy the original case of the part we typed. */ +! p = compl_orig_text; +! for (i = 0; i < actual_compl_length; ++i) +! { +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! c = mb_ptr2char_adv(&p); +! else +! #endif +! c = *(p++); +! if (MB_ISLOWER(c)) +! wca[i] = MB_TOLOWER(wca[i]); +! else if (MB_ISUPPER(c)) +! wca[i] = MB_TOUPPER(wca[i]); +! } +! +! /* +! * Generate encoding specific output from wide character array. +! * Multi-byte characters can occupy up to five bytes more than +! * ASCII characters, and we also need one byte for NUL, so stay +! * six bytes away from the edge of IObuff. +! */ +! p = IObuff; +! i = 0; +! while (i < actual_len && (p - IObuff + 6) < IOSIZE) +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! p += mb_char2bytes(wca[i++], p); +! else +! #endif +! *(p++) = wca[i++]; +! *p = NUL; +! +! vim_free(wca); +! } + + return ins_compl_add(IObuff, len, icase, fname, NULL, dir, + flags, FALSE); +*************** +*** 2842,2847 **** +--- 2934,2940 ---- + /* + * Add the other matches on the line + */ ++ ptr = buf; + while (!got_int) + { + /* Find start of the next word. Skip white +*************** +*** 2851,2857 **** + break; + wstart = ptr; + +! /* Find end of the word and add it. */ + #ifdef FEAT_MBYTE + if (has_mbyte) + /* Japanese words may have characters in +--- 2944,2950 ---- + break; + wstart = ptr; + +! /* Find end of the word. */ + #ifdef FEAT_MBYTE + if (has_mbyte) + /* Japanese words may have characters in +*************** +*** 2868,2876 **** + else + #endif + ptr = find_word_end(ptr); +! add_r = ins_compl_add_infercase(wstart, +! (int)(ptr - wstart), +! p_ic, files[i], *dir, 0); + } + } + if (add_r == OK) +--- 2961,2972 ---- + else + #endif + ptr = find_word_end(ptr); +! +! /* Add the word. Skip the regexp match. */ +! if (wstart != regmatch->startp[0]) +! add_r = ins_compl_add_infercase(wstart, +! (int)(ptr - wstart), +! p_ic, files[i], *dir, 0); + } + } + if (add_r == OK) +*** ../vim-7.1.066/src/version.c Sun Aug 12 15:50:26 2007 +--- src/version.c Sun Aug 12 16:36:34 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 67, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +128. You can access the Net -- via your portable and cellular phone. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.068 b/7.1.068 new file mode 100644 index 00000000..5f0d6851 --- /dev/null +++ b/7.1.068 @@ -0,0 +1,206 @@ +To: vim-dev@vim.org +Subject: patch 7.1.068 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.068 +Problem: When 'equalalways' is set and splitting a window, it's possible + that another small window gets bigger. +Solution: Only equalize window sizes when after a split the windows are + smaller than another window. (Martin Toft) +Files: runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c + + +*** ../vim-7.1.067/runtime/doc/options.txt Sat May 12 16:27:04 2007 +--- runtime/doc/options.txt Sat Aug 11 17:25:38 2007 +*************** +*** 1,4 **** +! *options.txt* For Vim version 7.1. Last change: 2007 May 11 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *options.txt* For Vim version 7.1. Last change: 2007 Aug 10 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 2415,2422 **** + When mixing vertically and horizontally split windows, a minimal size + is computed and some windows may be larger if there is room. The + 'eadirection' option tells in which direction the size is affected. +! Changing the height of a window can be avoided by setting +! 'winfixheight'. + + *'equalprg'* *'ep'* + 'equalprg' 'ep' string (default "") +--- 2418,2425 ---- + When mixing vertically and horizontally split windows, a minimal size + is computed and some windows may be larger if there is room. The + 'eadirection' option tells in which direction the size is affected. +! Changing the height and width of a window can be avoided by setting +! 'winfixheight' and 'winfixwidth', respectively. + + *'equalprg'* *'ep'* + 'equalprg' 'ep' string (default "") +*** ../vim-7.1.067/runtime/doc/windows.txt Sat May 12 16:42:48 2007 +--- runtime/doc/windows.txt Sat Aug 11 17:25:38 2007 +*************** +*** 132,138 **** + the same file. Make new window N high (default is to use half + the height of the current window). Reduces the current window + height to create room (and others, if the 'equalalways' option +! is set and 'eadirection' isn't "hor"). + Note: CTRL-S does not work on all terminals and might block + further input, use CTRL-Q to get going again. + Also see |++opt| and |+cmd|. +--- 132,139 ---- + the same file. Make new window N high (default is to use half + the height of the current window). Reduces the current window + height to create room (and others, if the 'equalalways' option +! is set, 'eadirection' isn't "hor", and one of them is higher +! than the current or the new window). + Note: CTRL-S does not work on all terminals and might block + further input, use CTRL-Q to get going again. + Also see |++opt| and |+cmd|. +*************** +*** 140,148 **** + CTRL-W CTRL-V *CTRL-W_CTRL-V* + CTRL-W v *CTRL-W_v* + :[N]vs[plit] [++opt] [+cmd] [file] *:vs* *:vsplit* +! Like |:split|, but split vertically. If 'equalalways' is set +! and 'eadirection' isn't "ver" the windows will be spread out +! horizontally, unless a width was specified. + Note: In other places CTRL-Q does the same as CTRL-V, but here + it doesn't! + +--- 141,153 ---- + CTRL-W CTRL-V *CTRL-W_CTRL-V* + CTRL-W v *CTRL-W_v* + :[N]vs[plit] [++opt] [+cmd] [file] *:vs* *:vsplit* +! Like |:split|, but split vertically. The windows will be +! spread out horizontally if +! 1. a width was not specified, +! 2. 'equalalways' is set, +! 3. 'eadirection' isn't "ver", and +! 4. one of the other windows are wider than the current or new +! window. + Note: In other places CTRL-Q does the same as CTRL-V, but here + it doesn't! + +*** ../vim-7.1.067/src/window.c Sat Aug 11 13:37:36 2007 +--- src/window.c Sat Aug 11 17:25:38 2007 +*************** +*** 733,739 **** + if (flags & WSP_VERT) + { + layout = FR_ROW; +- do_equal = (p_ea && new_size == 0 && *p_ead != 'v'); + + /* + * Check if we are able to split the current window and compute its +--- 733,738 ---- +*************** +*** 770,785 **** + * instead, if possible. */ + if (oldwin->w_p_wfw) + win_setwidth_win(oldwin->w_width + new_size, oldwin); + } + else + #endif + { + layout = FR_COL; +- do_equal = (p_ea && new_size == 0 +- #ifdef FEAT_VERTSPLIT +- && *p_ead != 'h' +- #endif +- ); + + /* + * Check if we are able to split the current window and compute its +--- 769,799 ---- + * instead, if possible. */ + if (oldwin->w_p_wfw) + win_setwidth_win(oldwin->w_width + new_size, oldwin); ++ ++ /* Only make all windows the same width if one of them (except oldwin) ++ * is wider than one of the split windows. */ ++ if (!do_equal && p_ea && size == 0 && *p_ead != 'v' ++ && oldwin->w_frame->fr_parent != NULL) ++ { ++ frp = oldwin->w_frame->fr_parent->fr_child; ++ while (frp != NULL) ++ { ++ if (frp->fr_win != oldwin && frp->fr_win != NULL ++ && (frp->fr_win->w_width > new_size ++ || frp->fr_win->w_width > oldwin->w_width ++ - new_size - STATUS_HEIGHT)) ++ { ++ do_equal = TRUE; ++ break; ++ } ++ frp = frp->fr_next; ++ } ++ } + } + else + #endif + { + layout = FR_COL; + + /* + * Check if we are able to split the current window and compute its +*************** +*** 831,836 **** +--- 845,873 ---- + oldwin_height = oldwin->w_height; + if (need_status) + oldwin_height -= STATUS_HEIGHT; ++ } ++ ++ /* Only make all windows the same height if one of them (except oldwin) ++ * is higher than one of the split windows. */ ++ if (!do_equal && p_ea && size == 0 ++ #ifdef FEAT_VERTSPLIT ++ && *p_ead != 'h' ++ #endif ++ && oldwin->w_frame->fr_parent != NULL) ++ { ++ frp = oldwin->w_frame->fr_parent->fr_child; ++ while (frp != NULL) ++ { ++ if (frp->fr_win != oldwin && frp->fr_win != NULL ++ && (frp->fr_win->w_height > new_size ++ || frp->fr_win->w_height > oldwin_height - new_size ++ - STATUS_HEIGHT)) ++ { ++ do_equal = TRUE; ++ break; ++ } ++ frp = frp->fr_next; ++ } + } + } + +*** ../vim-7.1.067/src/version.c Sun Aug 12 16:38:03 2007 +--- src/version.c Sun Aug 12 16:51:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 68, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +129. You cancel your newspaper subscription. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.069 b/7.1.069 new file mode 100644 index 00000000..9de0d5be --- /dev/null +++ b/7.1.069 @@ -0,0 +1,82 @@ +To: vim-dev@vim.org +Subject: patch 7.1.069 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.069 +Problem: GTK GUI: When using confirm() without a default button there still + is a default choice. +Solution: Ignore Enter and Space when there is no default button. (Chris + Lubinski) +Files: src/gui_gtk.c + + +*** ../vim-7.1.068/src/gui_gtk.c Mon May 14 19:35:51 2007 +--- src/gui_gtk.c Sat Aug 11 17:38:03 2007 +*************** +*** 1630,1640 **** + */ + /*ARGSUSED*/ + static int +! dlg_key_press_event(GtkWidget * widget, GdkEventKey * event, CancelData *data) + { +! /* Ignore hitting Enter when there is no default button. */ +! if (data->ignore_enter && event->keyval == GDK_Return) + return TRUE; + + if (event->keyval != GDK_Escape && event->keyval != GDK_Return) + return FALSE; +--- 1630,1643 ---- + */ + /*ARGSUSED*/ + static int +! dlg_key_press_event(GtkWidget *widget, GdkEventKey *event, CancelData *data) + { +! /* Ignore hitting Enter (or Space) when there is no default button. */ +! if (data->ignore_enter && (event->keyval == GDK_Return +! || event->keyval == ' ')) + return TRUE; ++ else /* A different key was pressed, return to normal behavior */ ++ data->ignore_enter = FALSE; + + if (event->keyval != GDK_Escape && event->keyval != GDK_Return) + return FALSE; +*************** +*** 2223,2228 **** +--- 2226,2238 ---- + dialog_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) + { + DialogInfo *di = (DialogInfo *)data; ++ ++ /* Ignore hitting Enter (or Space) when there is no default button. */ ++ if (di->ignore_enter && (event->keyval == GDK_Return ++ || event->keyval == ' ')) ++ return TRUE; ++ else /* A different key was pressed, return to normal behavior */ ++ di->ignore_enter = FALSE; + + /* Close the dialog when hitting "Esc". */ + if (event->keyval == GDK_Escape) +*** ../vim-7.1.068/src/version.c Sun Aug 12 16:55:01 2007 +--- src/version.c Tue Aug 14 14:58:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 69, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +148. You find it easier to dial-up the National Weather Service + Weather/your_town/now.html than to simply look out the window. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.070 b/7.1.070 new file mode 100644 index 00000000..4658c0ca --- /dev/null +++ b/7.1.070 @@ -0,0 +1,49 @@ +To: vim-dev@vim.org +Subject: patch 7.1.070 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.070 (extra) +Problem: Win32 GUI: When using confirm() without a default button there + still is a default choice. +Solution: Set focus on something else than a button. (Chris Lubinski) +Files: src/gui_w32.c + + +*** ../vim-7.1.069/src/gui_w32.c Tue Jun 19 10:09:15 2007 +--- src/gui_w32.c Sat Aug 11 17:39:50 2007 +*************** +*** 2894,2899 **** +--- 2894,2903 ---- + (void)SetFocus(hwnd); + if (dialog_default_button > IDCANCEL) + (void)SetFocus(GetDlgItem(hwnd, dialog_default_button)); ++ else ++ /* We don't have a default, set focus on another element of the ++ * dialog window, probably the icon */ ++ (void)SetFocus(GetDlgItem(hwnd, DLG_NONBUTTON_CONTROL)); + return FALSE; + } + +*** ../vim-7.1.069/src/version.c Tue Aug 14 14:59:41 2007 +--- src/version.c Tue Aug 14 16:55:41 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 70, + /**/ + +-- +You are not really successful until someone claims he sat +beside you in school. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.071 b/7.1.071 new file mode 100644 index 00000000..d7f3e86c --- /dev/null +++ b/7.1.071 @@ -0,0 +1,169 @@ +To: vim-dev@vim.org +Subject: patch 7.1.071 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.071 (after 7.1.040) +Problem: Regexp patterns are not tested. +Solution: Add a basic test, to be expanded later. + Also add (commented-out) support for valgrind. +Files: src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok + + +*** ../vim-7.1.070/src/testdir/Makefile Thu Jul 26 22:55:11 2007 +--- src/testdir/Makefile Tue Aug 14 15:16:08 2007 +*************** +*** 4,9 **** +--- 4,13 ---- + + VIMPROG = ../vim + ++ # Uncomment this line for using valgrind. ++ # The output goes into a file "valgrind.$PID" (sorry, no test number). ++ # VALGRIND = valgrind --tool=memcheck --num-callers=15 --logfile=valgrind ++ + SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ + test7.out test8.out test9.out test10.out test11.out \ + test12.out test13.out test14.out test15.out test17.out \ +*************** +*** 15,21 **** + test43.out test44.out test45.out test46.out test47.out \ + test48.out test49.out test51.out test52.out test53.out \ + test54.out test55.out test56.out test57.out test58.out \ +! test59.out test60.out test61.out test62.out test63.out + + SCRIPTS_GUI = test16.out + +--- 19,26 ---- + test43.out test44.out test45.out test46.out test47.out \ + test48.out test49.out test51.out test52.out test53.out \ + test54.out test55.out test56.out test57.out test58.out \ +! test59.out test60.out test61.out test62.out test63.out \ +! test64.out + + SCRIPTS_GUI = test16.out + +*************** +*** 38,44 **** + + test1.out: test1.in + -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo +! $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in + @/bin/sh -c "if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ + else echo; \ +--- 43,49 ---- + + test1.out: test1.in + -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo +! $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in + @/bin/sh -c "if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ + else echo; \ +*************** +*** 51,57 **** + cp $*.ok test.ok + # Sleep a moment to avoid that the xterm title is messed up + @-sleep .2 +! -$(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in + @/bin/sh -c "if test -f test.out; then\ + if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ +--- 56,62 ---- + cp $*.ok test.ok + # Sleep a moment to avoid that the xterm title is messed up + @-sleep .2 +! -$(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in + @/bin/sh -c "if test -f test.out; then\ + if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ +*** ../vim-7.1.070/src/testdir/test64.in Tue Aug 14 17:26:28 2007 +--- src/testdir/test64.in Tue Aug 14 16:03:44 2007 +*************** +*** 0 **** +--- 1,52 ---- ++ Test for regexp patterns. ++ ++ A pattern that gives the expected result produces OK, so that we know it was ++ actually tried. ++ ++ STARTTEST ++ :so small.vim ++ :" tl is a List of Lists with: ++ :" regexp pattern ++ :" text to test the pattern on ++ :" expected match (optional) ++ :" expected submatch 1 (optional) ++ :" expected submatch 2 (optional) ++ :" etc. ++ :" When there is no match use only the first two items. ++ :let tl = [] ++ :call add(tl, ['b', 'abcdef', 'b']) ++ :call add(tl, ['bc*', 'abccccdef', 'bcccc']) ++ :call add(tl, ['bc\{-}', 'abccccdef', 'b']) ++ :call add(tl, ['bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd']) ++ :call add(tl, ['x', 'abcdef']) ++ :" ++ :for t in tl ++ : let l = matchlist(t[1], t[0]) ++ :" check the match itself ++ : if len(l) == 0 && len(t) > 2 ++ : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", did not match, expected: \"' . t[2] . '\"' ++ : elseif len(l) > 0 && len(t) == 2 ++ : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", match: \"' . l[0] . '\", expected no match' ++ : elseif len(t) > 2 && l[0] != t[2] ++ : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", match: \"' . l[0] . '\", expected: \"' . t[2] . '\"' ++ : else ++ : $put ='OK' ++ : endif ++ : if len(l) > 0 ++ :" check all the nine submatches ++ : for i in range(1, 9) ++ : if len(t) <= i + 2 ++ : let e = '' ++ : else ++ : let e = t[i + 2] ++ : endif ++ : if l[i] != e ++ : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"' ++ : endif ++ : endfor ++ : endif ++ :endfor ++ :/^Results/,$wq! test.out ++ ENDTEST ++ ++ Results of test64: +*** ../vim-7.1.070/src/testdir/test64.ok Tue Aug 14 17:26:28 2007 +--- src/testdir/test64.ok Tue Aug 14 16:01:47 2007 +*************** +*** 0 **** +--- 1,6 ---- ++ Results of test64: ++ OK ++ OK ++ OK ++ OK ++ OK +*** ../vim-7.1.070/src/version.c Tue Aug 14 16:57:04 2007 +--- src/version.c Tue Aug 14 17:25:20 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 71, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +150. You find yourself counting emoticons to get to sleep. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.072 b/7.1.072 new file mode 100644 index 00000000..f909adcc --- /dev/null +++ b/7.1.072 @@ -0,0 +1,177 @@ +To: vim-dev@vim.org +Subject: patch 7.1.072 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.072 (extra, after 7.1.041 and 7.1.071) +Problem: Some changes for patch 7.1.071 are in extra files. +Solution: Update the extra files. Also fix a few warnings from the DOS test + makefile. +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms + + +*** ../vim-7.1.071/src/testdir/Make_amiga.mak Thu Jul 26 23:10:50 2007 +--- src/testdir/Make_amiga.mak Tue Aug 14 15:14:03 2007 +*************** +*** 25,31 **** + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out + + .SUFFIXES: .in .out + +--- 25,31 ---- + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out test64.out + + .SUFFIXES: .in .out + +*************** +*** 108,110 **** +--- 108,111 ---- + test61.out: test61.in + test62.out: test62.in + test63.out: test63.in ++ test64.out: test64.in +*** ../vim-7.1.071/src/testdir/Make_dos.mak Thu Jul 26 23:10:50 2007 +--- src/testdir/Make_dos.mak Tue Aug 14 15:14:25 2007 +*************** +*** 19,25 **** + test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out \ + test55.out test56.out test57.out test58.out test59.out \ +! test60.out test61.out test62.out test63.out + + SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ + test8.out test9.out test11.out test13.out test14.out \ +--- 19,25 ---- + test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out \ + test55.out test56.out test57.out test58.out test59.out \ +! test60.out test61.out test62.out test63.out test64.out + + SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ + test8.out test9.out test11.out test13.out test14.out \ +*************** +*** 51,69 **** + + clean: + -del *.out +! -del test.ok +! -del small.vim +! -del tiny.vim +! -del mbyte.vim + -del X* +! -del viminfo + + .in.out: + copy $*.ok test.ok + $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in + diff test.out $*.ok +! -del $*.out + rename test.out $*.out + -del X* + -del test.ok +! -del viminfo +--- 51,69 ---- + + clean: + -del *.out +! -if exist test.ok del test.ok +! -if exist small.vim del small.vim +! -if exist tiny.vim del tiny.vim +! -if exist mbyte.vim del mbyte.vim + -del X* +! -if exist viminfo del viminfo + + .in.out: + copy $*.ok test.ok + $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in + diff test.out $*.ok +! -if exist $*.out del $*.out + rename test.out $*.out + -del X* + -del test.ok +! -if exist viminfo del viminfo +*** ../vim-7.1.071/src/testdir/Make_os2.mak Thu Jul 26 23:10:50 2007 +--- src/testdir/Make_os2.mak Tue Aug 14 15:14:44 2007 +*************** +*** 25,31 **** + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out + + .SUFFIXES: .in .out + +--- 25,31 ---- + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out test64.out + + .SUFFIXES: .in .out + +*** ../vim-7.1.071/src/testdir/Make_vms.mms Thu Jul 26 23:10:50 2007 +--- src/testdir/Make_vms.mms Tue Aug 14 15:15:56 2007 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2007 Jul 24 + # + # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2007 Aug 14 + # + # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX. + # Edit the lines in the Configuration section below to select. +*************** +*** 59,65 **** + test43.out test44.out test45.out test46.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out + + .IFDEF WANT_GUI + SCRIPT_GUI = test16.out +--- 59,65 ---- + test43.out test44.out test45.out test46.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out test64.out + + .IFDEF WANT_GUI + SCRIPT_GUI = test16.out +*** ../vim-7.1.071/src/version.c Tue Aug 14 17:28:14 2007 +--- src/version.c Tue Aug 14 17:51:21 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 72, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +152. You find yourself falling for someone you've never seen or hardly + know, but, boy can he/she TYPE!!!!!! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.073 b/7.1.073 new file mode 100644 index 00000000..ff9a0168 --- /dev/null +++ b/7.1.073 @@ -0,0 +1,113 @@ +To: vim-dev@vim.org +Subject: patch 7.1.073 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.073 (after 7.1.062) +Problem: Wrong cursor position and crash when 'preserveindent' is set. + (Charles Campbell) +Solution: Handle the situation that we start without indent. (Chris + Lubinski) +Files: src/misc1.c + + +*** ../vim-7.1.072/src/misc1.c Sat Aug 11 14:32:10 2007 +--- src/misc1.c Tue Aug 14 21:21:49 2007 +*************** +*** 104,110 **** + int ind_done = 0; /* measured in spaces */ + int tab_pad; + int retval = FALSE; +! int orig_char_len = 0; /* number of initial whitespace chars when + 'et' and 'pi' are both set */ + + /* +--- 104,110 ---- + int ind_done = 0; /* measured in spaces */ + int tab_pad; + int retval = FALSE; +! int orig_char_len = -1; /* number of initial whitespace chars when + 'et' and 'pi' are both set */ + + /* +*************** +*** 159,165 **** + + /* Fill to next tabstop with a tab, if possible */ + tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts); +! if (todo >= tab_pad && orig_char_len == 0) + { + doit = TRUE; + todo -= tab_pad; +--- 159,165 ---- + + /* Fill to next tabstop with a tab, if possible */ + tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts); +! if (todo >= tab_pad && orig_char_len == -1) + { + doit = TRUE; + todo -= tab_pad; +*************** +*** 206,216 **** + /* If 'preserveindent' and 'expandtab' are both set keep the original + * characters and allocate accordingly. We will fill the rest with spaces + * after the if (!curbuf->b_p_et) below. */ +! if (orig_char_len != 0) + { + newline = alloc(orig_char_len + size - ind_done + line_len); + if (newline == NULL) + return FALSE; + p = oldline; + s = newline; + while (orig_char_len > 0) +--- 206,220 ---- + /* If 'preserveindent' and 'expandtab' are both set keep the original + * characters and allocate accordingly. We will fill the rest with spaces + * after the if (!curbuf->b_p_et) below. */ +! if (orig_char_len != -1) + { + newline = alloc(orig_char_len + size - ind_done + line_len); + if (newline == NULL) + return FALSE; ++ todo = size - ind_done; ++ ind_len = orig_char_len + todo; /* Set total length of indent in ++ * characters, which may have been ++ * undercounted until now */ + p = oldline; + s = newline; + while (orig_char_len > 0) +*************** +*** 222,230 **** + * than old) */ + while (vim_iswhite(*p)) + (void)*p++; +- todo = size - ind_done; +- ind_len += todo; /* Set total length of indent in characters, +- * which may have been undercounted until now */ + + } + else +--- 226,231 ---- +*** ../vim-7.1.072/src/version.c Tue Aug 14 17:54:37 2007 +--- src/version.c Tue Aug 14 22:14:54 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 73, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +157. You fum through a magazine, you first check to see if it has a web + address. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.074 b/7.1.074 new file mode 100644 index 00000000..0911f4e1 --- /dev/null +++ b/7.1.074 @@ -0,0 +1,171 @@ +To: vim-dev@vim.org +Subject: patch 7.1.074 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.074 +Problem: Crash when calling string() on a recurively nested List. +Solution: Check result value for being NULL. (Yukihiro Nakadaira) +Files: src/eval.c + + +*** ../vim-7.1.073/src/eval.c Mon Aug 6 22:27:12 2007 +--- src/eval.c Tue Aug 14 22:01:12 2007 +*************** +*** 6802,6808 **** + * "numbuf" is used for a number. + * Does not put quotes around strings, as ":echo" displays values. + * When "copyID" is not NULL replace recursive lists and dicts with "...". +! * May return NULL; + */ + static char_u * + echo_string(tv, tofree, numbuf, copyID) +--- 6802,6808 ---- + * "numbuf" is used for a number. + * Does not put quotes around strings, as ":echo" displays values. + * When "copyID" is not NULL replace recursive lists and dicts with "...". +! * May return NULL. + */ + static char_u * + echo_string(tv, tofree, numbuf, copyID) +*************** +*** 6887,6893 **** + * If the memory is allocated "tofree" is set to it, otherwise NULL. + * "numbuf" is used for a number. + * Puts quotes around strings, so that they can be parsed back by eval(). +! * May return NULL; + */ + static char_u * + tv2string(tv, tofree, numbuf, copyID) +--- 6887,6893 ---- + * If the memory is allocated "tofree" is set to it, otherwise NULL. + * "numbuf" is used for a number. + * Puts quotes around strings, so that they can be parsed back by eval(). +! * May return NULL. + */ + static char_u * + tv2string(tv, tofree, numbuf, copyID) +*************** +*** 14974,14979 **** +--- 14974,14983 ---- + + p1 = tv2string(&(*(listitem_T **)s1)->li_tv, &tofree1, numbuf1, 0); + p2 = tv2string(&(*(listitem_T **)s2)->li_tv, &tofree2, numbuf2, 0); ++ if (p1 == NULL) ++ p1 = (char_u *)""; ++ if (p2 == NULL) ++ p2 = (char_u *)""; + if (item_compare_ic) + res = STRICMP(p1, p2); + else +*************** +*** 15463,15469 **** + + rettv->v_type = VAR_STRING; + rettv->vval.v_string = tv2string(&argvars[0], &tofree, numbuf, 0); +! if (tofree == NULL) + rettv->vval.v_string = vim_strsave(rettv->vval.v_string); + } + +--- 15467,15474 ---- + + rettv->v_type = VAR_STRING; + rettv->vval.v_string = tv2string(&argvars[0], &tofree, numbuf, 0); +! /* Make a copy if we have a value but it's not in allocate memory. */ +! if (rettv->vval.v_string != NULL && tofree == NULL) + rettv->vval.v_string = vim_strsave(rettv->vval.v_string); + } + +*************** +*** 20167,20172 **** +--- 20174,20180 ---- + char_u buf[MSG_BUF_LEN]; + char_u numbuf2[NUMBUFLEN]; + char_u *tofree; ++ char_u *s; + + msg_puts((char_u *)"("); + for (i = 0; i < argcount; ++i) +*************** +*** 20177,20186 **** + msg_outnum((long)argvars[i].vval.v_number); + else + { +! trunc_string(tv2string(&argvars[i], &tofree, +! numbuf2, 0), buf, MSG_BUF_CLEN); +! msg_puts(buf); +! vim_free(tofree); + } + } + msg_puts((char_u *)")"); +--- 20185,20197 ---- + msg_outnum((long)argvars[i].vval.v_number); + else + { +! s = tv2string(&argvars[i], &tofree, numbuf2, 0); +! if (s != NULL) +! { +! trunc_string(s, buf, MSG_BUF_CLEN); +! msg_puts(buf); +! vim_free(tofree); +! } + } + } + msg_puts((char_u *)")"); +*************** +*** 20258,20271 **** + char_u buf[MSG_BUF_LEN]; + char_u numbuf2[NUMBUFLEN]; + char_u *tofree; + + /* The value may be very long. Skip the middle part, so that we + * have some idea how it starts and ends. smsg() would always + * truncate it at the end. */ +! trunc_string(tv2string(fc.rettv, &tofree, numbuf2, 0), +! buf, MSG_BUF_CLEN); +! smsg((char_u *)_("%s returning %s"), sourcing_name, buf); +! vim_free(tofree); + } + msg_puts((char_u *)"\n"); /* don't overwrite this either */ + +--- 20269,20286 ---- + char_u buf[MSG_BUF_LEN]; + char_u numbuf2[NUMBUFLEN]; + char_u *tofree; ++ char_u *s; + + /* The value may be very long. Skip the middle part, so that we + * have some idea how it starts and ends. smsg() would always + * truncate it at the end. */ +! s = tv2string(fc.rettv, &tofree, numbuf2, 0); +! if (s != NULL) +! { +! trunc_string(s, buf, MSG_BUF_CLEN); +! smsg((char_u *)_("%s returning %s"), sourcing_name, buf); +! vim_free(tofree); +! } + } + msg_puts((char_u *)"\n"); /* don't overwrite this either */ + +*** ../vim-7.1.073/src/version.c Tue Aug 14 22:15:53 2007 +--- src/version.c Tue Aug 14 22:27:24 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 74, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +159. You get excited whenever discussing your hard drive. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.075 b/7.1.075 new file mode 100644 index 00000000..40638e8c --- /dev/null +++ b/7.1.075 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: patch 7.1.075 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.075 +Problem: ":let v:statusmsg" reads memory already freed. +Solution: Don't set v:statusmsg when listing it. +Files: src/eval.c + + +*** ../vim-7.1.074/src/eval.c Tue Aug 14 22:28:35 2007 +--- src/eval.c Tue Aug 14 22:01:12 2007 +*************** +*** 18022,18028 **** + int type; + char_u *string; + { +! msg_attr(prefix, 0); /* don't use msg(), it overwrites "v:statusmsg" */ + if (name != NULL) /* "a:" vars don't have a name stored */ + msg_puts(name); + msg_putchar(' '); +--- 18022,18030 ---- + int type; + char_u *string; + { +! /* don't use msg() or msg_attr() to avoid overwriting "v:statusmsg" */ +! msg_start(); +! msg_puts(prefix); + if (name != NULL) /* "a:" vars don't have a name stored */ + msg_puts(name); + msg_putchar(' '); +*** ../vim-7.1.074/src/version.c Tue Aug 14 22:28:35 2007 +--- src/version.c Tue Aug 14 22:39:49 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 75, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +160. You get in the elevator and double-click the button for the floor + you want. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.076 b/7.1.076 new file mode 100644 index 00000000..39569552 --- /dev/null +++ b/7.1.076 @@ -0,0 +1,74 @@ +To: vim-dev@vim.org +Subject: patch 7.1.076 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.076 +Problem: Another strcpy() with overlapping arguments. +Solution: Use mch_memmove(). (Dominique Pelle) And another one. +Files: src/ex_docmd.c, src/normal.c + + +*** ../vim-7.1.075/src/ex_docmd.c Sat Aug 11 15:59:44 2007 +--- src/ex_docmd.c Wed Aug 8 22:28:33 2007 +*************** +*** 4493,4499 **** + if (eap->argt & (USECTRLV | XFILE)) + ++p; /* skip CTRL-V and next char */ + else +! STRCPY(p, p + 1); /* remove CTRL-V and skip next char */ + if (*p == NUL) /* stop at NUL after CTRL-V */ + break; + } +--- 4493,4500 ---- + if (eap->argt & (USECTRLV | XFILE)) + ++p; /* skip CTRL-V and next char */ + else +! /* remove CTRL-V and skip next char */ +! mch_memmove(p, p + 1, STRLEN(p)); + if (*p == NUL) /* stop at NUL after CTRL-V */ + break; + } +*** ../vim-7.1.075/src/normal.c Wed Aug 8 21:41:19 2007 +--- src/normal.c Sun Aug 12 17:35:20 2007 +*************** +*** 3760,3766 **** + extra_len = (int)STRLEN(p); + overflow = old_len + extra_len - SHOWCMD_COLS; + if (overflow > 0) +! STRCPY(showcmd_buf, showcmd_buf + overflow); + STRCAT(showcmd_buf, p); + + if (char_avail()) +--- 3760,3767 ---- + extra_len = (int)STRLEN(p); + overflow = old_len + extra_len - SHOWCMD_COLS; + if (overflow > 0) +! mch_memmove(showcmd_buf, showcmd_buf + overflow, +! old_len - overflow + 1); + STRCAT(showcmd_buf, p); + + if (char_avail()) +*** ../vim-7.1.075/src/version.c Tue Aug 14 22:40:13 2007 +--- src/version.c Tue Aug 14 22:53:13 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 76, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +161. You get up before the sun rises to check your e-mail, and you + find yourself in the very same chair long after the sun has set. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.077 b/7.1.077 new file mode 100644 index 00000000..9cfcfeca --- /dev/null +++ b/7.1.077 @@ -0,0 +1,50 @@ +To: vim-dev@vim.org +Subject: patch 7.1.077 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.077 +Problem: Using "can_spell" without initializing it. (Dominique Pelle) +Solution: Set a default for get_syntax_attr(). +Files: src/syntax.c + + +*** ../vim-7.1.076/src/syntax.c Thu Jul 26 22:55:11 2007 +--- src/syntax.c Sun Aug 12 19:49:07 2007 +*************** +*** 1727,1732 **** +--- 1727,1739 ---- + { + int attr = 0; + ++ if (can_spell != NULL) ++ /* Default: Only do spelling when there is no @Spell cluster or when ++ * ":syn spell toplevel" was used. */ ++ *can_spell = syn_buf->b_syn_spell == SYNSPL_DEFAULT ++ ? (syn_buf->b_spell_cluster_id == 0) ++ : (syn_buf->b_syn_spell == SYNSPL_TOP); ++ + /* check for out of memory situation */ + if (syn_buf->b_sst_array == NULL) + return 0; +*** ../vim-7.1.076/src/version.c Tue Aug 14 22:54:00 2007 +--- src/version.c Tue Aug 14 23:06:26 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 77, + /**/ + +-- +Send $25.00 for handy leaflet on how to make money by selling leaflets + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.078 b/7.1.078 new file mode 100644 index 00000000..74349a22 --- /dev/null +++ b/7.1.078 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: patch 7.1.078 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.078 +Problem: Dropping a file name on gvim that contains a CSI byte doesn't work + when editing the command line. +Solution: Escape the CSI byte when inserting in the input buffer. (Yukihiro + Nakadaira) +Files: src/gui.c, src/ui.c + + +*** ../vim-7.1.077/src/gui.c Thu May 10 19:19:15 2007 +--- src/gui.c Tue Aug 14 12:41:43 2007 +*************** +*** 5117,5123 **** + p = vim_strsave_escaped(fnames[i], (char_u *)"\\ \t\"|"); + # endif + if (p != NULL) +! add_to_input_buf(p, (int)STRLEN(p)); + vim_free(p); + vim_free(fnames[i]); + } +--- 5117,5123 ---- + p = vim_strsave_escaped(fnames[i], (char_u *)"\\ \t\"|"); + # endif + if (p != NULL) +! add_to_input_buf_csi(p, (int)STRLEN(p)); + vim_free(p); + vim_free(fnames[i]); + } +*** ../vim-7.1.077/src/ui.c Thu May 10 21:14:11 2007 +--- src/ui.c Tue Aug 14 12:41:42 2007 +*************** +*** 1603,1610 **** + #if defined(FEAT_GUI) || defined(FEAT_MOUSE_GPM) \ + || defined(FEAT_XCLIPBOARD) || defined(VMS) \ + || defined(FEAT_SNIFF) || defined(FEAT_CLIENTSERVER) \ +- || (defined(FEAT_GUI) && (!defined(USE_ON_FLY_SCROLL) \ +- || defined(FEAT_MENU))) \ + || defined(PROTO) + /* + * Add the given bytes to the input buffer +--- 1603,1608 ---- +*************** +*** 1630,1636 **** + } + #endif + +! #if (defined(FEAT_XIM) && defined(FEAT_GUI_GTK)) \ + || (defined(FEAT_MBYTE) && defined(FEAT_MBYTE_IME)) \ + || (defined(FEAT_GUI) && (!defined(USE_ON_FLY_SCROLL) \ + || defined(FEAT_MENU))) \ +--- 1628,1636 ---- + } + #endif + +! #if ((defined(FEAT_XIM) || defined(FEAT_DND)) && defined(FEAT_GUI_GTK)) \ +! || defined(FEAT_GUI_MSWIN) \ +! || defined(FEAT_GUI_MAC) \ + || (defined(FEAT_MBYTE) && defined(FEAT_MBYTE_IME)) \ + || (defined(FEAT_GUI) && (!defined(USE_ON_FLY_SCROLL) \ + || defined(FEAT_MENU))) \ +*** ../vim-7.1.077/src/version.c Tue Aug 14 23:06:51 2007 +--- src/version.c Wed Aug 15 20:07:06 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 78, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +164. You got out to buy software, instead of going out for a beer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.079 b/7.1.079 new file mode 100644 index 00000000..7f2a1fa4 --- /dev/null +++ b/7.1.079 @@ -0,0 +1,84 @@ +To: vim-dev@vim.org +Subject: patch 7.1.079 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.079 +Problem: When the locale is "C" and 'encoding' is "latin1" then the "@" + character in 'isfname', 'isprint', etc. doesn't pick up accented + characters. +Solution: Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER(). +Files: src/charset.c, src/macros.h + + +*** ../vim-7.1.078/src/charset.c Mon Aug 6 22:27:12 2007 +--- src/charset.c Tue Aug 14 13:43:30 2007 +*************** +*** 207,213 **** + } + while (c <= c2) + { +! if (!do_isalpha || isalpha(c) + #ifdef FEAT_FKMAP + || (p_altkeymap && (F_isalpha(c) || F_isdigit(c))) + #endif +--- 207,216 ---- + } + while (c <= c2) + { +! /* Use the MB_ functions here, because isalpha() doesn't +! * work properly when 'encoding' is "latin1" and the locale is +! * "C". */ +! if (!do_isalpha || MB_ISLOWER(c) || MB_ISUPPER(c) + #ifdef FEAT_FKMAP + || (p_altkeymap && (F_isalpha(c) || F_isdigit(c))) + #endif +*** ../vim-7.1.078/src/macros.h Thu May 10 19:21:00 2007 +--- src/macros.h Sat Aug 4 13:44:18 2007 +*************** +*** 54,63 **** + + /* + * toupper() and tolower() that use the current locale. +! * On some systems toupper()/tolower() only work on lower/uppercase characters + * Careful: Only call TOUPPER_LOC() and TOLOWER_LOC() with a character in the + * range 0 - 255. toupper()/tolower() on some systems can't handle others. +! * Note: for UTF-8 use utf_toupper() and utf_tolower(). + */ + #ifdef MSWIN + # define TOUPPER_LOC(c) toupper_tab[(c) & 255] +--- 54,65 ---- + + /* + * toupper() and tolower() that use the current locale. +! * On some systems toupper()/tolower() only work on lower/uppercase +! * characters, first use islower() or isupper() then. + * Careful: Only call TOUPPER_LOC() and TOLOWER_LOC() with a character in the + * range 0 - 255. toupper()/tolower() on some systems can't handle others. +! * Note: It is often better to use MB_TOLOWER() and MB_TOUPPER(), because many +! * toupper() and tolower() implementations only work for ASCII. + */ + #ifdef MSWIN + # define TOUPPER_LOC(c) toupper_tab[(c) & 255] +*** ../vim-7.1.078/src/version.c Wed Aug 15 20:07:53 2007 +--- src/version.c Wed Aug 15 20:39:18 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 79, + /**/ + +-- +You're as much use as a condom machine at the Vatican. + -- Rimmer to Holly in Red Dwarf 'Queeg' + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.080 b/7.1.080 new file mode 100644 index 00000000..446ffc7d --- /dev/null +++ b/7.1.080 @@ -0,0 +1,104 @@ +To: vim-dev@vim.org +Subject: patch 7.1.080 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.080 (extra) +Problem: Compiler warnings for using "const char *" for "char *". +Solution: Add type casts. (Chris Sutcliffe) +Files: src/GvimExt/gvimext.cpp + + +*** ../vim-7.1.079/src/GvimExt/gvimext.cpp Thu May 10 21:09:38 2007 +--- src/GvimExt/gvimext.cpp Thu Aug 16 21:25:56 2007 +*************** +*** 69,82 **** + + // Registry didn't work, use the search path. + if (name[0] == 0) +! strcpy(name, searchpath("gvim.exe")); + + if (!runtime) + { + // Only when looking for the executable, not the runtime dir, we can + // search for the batch file or a name without a path. + if (name[0] == 0) +! strcpy(name, searchpath("gvim.bat")); + if (name[0] == 0) + strcpy(name, "gvim"); // finds gvim.bat or gvim.exe + +--- 69,82 ---- + + // Registry didn't work, use the search path. + if (name[0] == 0) +! strcpy(name, searchpath((char *)"gvim.exe")); + + if (!runtime) + { + // Only when looking for the executable, not the runtime dir, we can + // search for the batch file or a name without a path. + if (name[0] == 0) +! strcpy(name, searchpath((char *)"gvim.bat")); + if (name[0] == 0) + strcpy(name, "gvim"); // finds gvim.bat or gvim.exe + +*************** +*** 152,160 **** + FARPROC *ptr; + } libintl_entry[] = + { +! {"gettext", (FARPROC*)&dyn_libintl_gettext}, +! {"textdomain", (FARPROC*)&dyn_libintl_textdomain}, +! {"bindtextdomain", (FARPROC*)&dyn_libintl_bindtextdomain}, + {NULL, NULL} + }; + +--- 152,160 ---- + FARPROC *ptr; + } libintl_entry[] = + { +! {(char *)"gettext", (FARPROC*)&dyn_libintl_gettext}, +! {(char *)"textdomain", (FARPROC*)&dyn_libintl_textdomain}, +! {(char *)"bindtextdomain", (FARPROC*)&dyn_libintl_bindtextdomain}, + {NULL, NULL} + }; + +*************** +*** 835,841 **** + (LPTSTR)location) > (HINSTANCE)32) + return location; + } +! return ""; + } + # endif + #endif +--- 835,841 ---- + (LPTSTR)location) > (HINSTANCE)32) + return location; + } +! return (char *)""; + } + # endif + #endif +*** ../vim-7.1.079/src/version.c Wed Aug 15 20:40:45 2007 +--- src/version.c Sat Aug 18 16:58:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 80, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +192. Your boss asks you to "go fer" coffee and you come up with 235 FTP sites. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.081 b/7.1.081 new file mode 100644 index 00000000..85b7bbba --- /dev/null +++ b/7.1.081 @@ -0,0 +1,143 @@ +To: vim-dev@vim.org +Subject: patch 7.1.081 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.081 +Problem: Command line completion for a shell command: "cat " + doesn't work. +Solution: Start the file name at any character that can't be in a file name. + (Martin Toft) +Files: src/ex_docmd.c + + +*** ../vim-7.1.080/src/ex_docmd.c Tue Aug 14 22:54:00 2007 +--- src/ex_docmd.c Sat Aug 18 14:58:53 2007 +*************** +*** 3281,3319 **** + + if (ea.argt & XFILE) + { +! int in_quote = FALSE; +! char_u *bow = NULL; /* Beginning of word */ + + /* + * Allow spaces within back-quotes to count as part of the argument + * being expanded. + */ + xp->xp_pattern = skipwhite(arg); +! for (p = xp->xp_pattern; *p; ) + { +! if (*p == '\\' && p[1] != NUL) + ++p; + #ifdef SPACE_IN_FILENAME +! else if (vim_iswhite(*p) && (!(ea.argt & NOSPC) || usefilter)) + #else +! else if (vim_iswhite(*p)) + #endif + { +! p = skipwhite(p); + if (in_quote) + bow = p; + else + xp->xp_pattern = p; +! --p; +! } +! else if (*p == '`') +! { +! if (!in_quote) +! { +! xp->xp_pattern = p; +! bow = p + 1; +! } +! in_quote = !in_quote; + } + mb_ptr_adv(p); + } +--- 3281,3344 ---- + + if (ea.argt & XFILE) + { +! int c; +! int in_quote = FALSE; +! char_u *bow = NULL; /* Beginning of word */ + + /* + * Allow spaces within back-quotes to count as part of the argument + * being expanded. + */ + xp->xp_pattern = skipwhite(arg); +! p = xp->xp_pattern; +! while (*p != NUL) + { +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! c = mb_ptr2char(p); +! else +! #endif +! c = *p; +! if (c == '\\' && p[1] != NUL) + ++p; ++ else if (c == '`') ++ { ++ if (!in_quote) ++ { ++ xp->xp_pattern = p; ++ bow = p + 1; ++ } ++ in_quote = !in_quote; ++ } + #ifdef SPACE_IN_FILENAME +! else if (!vim_isfilec(c) && (!(ea.argt & NOSPC) || usefilter)) + #else +! else if (!vim_isfilec(c)) + #endif + { +! while (*p != NUL) +! { +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! c = mb_ptr2char(p); +! else +! #endif +! c = *p; +! if (c == '`' || vim_isfilec(c)) +! break; +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! len = (*mb_ptr2len)(p); +! else +! #endif +! len = 1; +! mb_ptr_adv(p); +! } + if (in_quote) + bow = p; + else + xp->xp_pattern = p; +! p -= len; + } + mb_ptr_adv(p); + } +*** ../vim-7.1.080/src/version.c Sat Aug 18 16:59:43 2007 +--- src/version.c Sat Aug 18 17:45:54 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 81, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +194. Your business cards contain your e-mail and home page address. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.082 b/7.1.082 new file mode 100644 index 00000000..1c2dc4ed --- /dev/null +++ b/7.1.082 @@ -0,0 +1,107 @@ +To: vim-dev@vim.org +Subject: patch 7.1.082 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.082 +Problem: After a ":split" the matchparen highlighting isn't there. +Solution: Install a WinEnter autocommand. Also fixes that after + ":NoMatchParen" only the current window is updated. (Martin Toft) +Files: runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim + + +*** ../vim-7.1.081/runtime/doc/pi_paren.txt Sat May 12 16:23:41 2007 +--- runtime/doc/pi_paren.txt Sat Aug 18 15:08:32 2007 +*************** +*** 12,19 **** + You can avoid loading this plugin by setting the "loaded_matchparen" variable: > + :let loaded_matchparen = 1 + +! The plugin installs CursorMoved autocommands to redefine the match +! highlighting. + + To disable the plugin after it was loaded use this command: > + +--- 12,19 ---- + You can avoid loading this plugin by setting the "loaded_matchparen" variable: > + :let loaded_matchparen = 1 + +! The plugin installs CursorMoved, CursorMovedI and WinEnter autocommands to +! redefine the match highlighting. + + To disable the plugin after it was loaded use this command: > + +*** ../vim-7.1.081/runtime/plugin/matchparen.vim Thu Aug 2 23:00:06 2007 +--- runtime/plugin/matchparen.vim Sat Aug 18 15:08:32 2007 +*************** +*** 1,6 **** + " Vim plugin for showing matching parens + " Maintainer: Bram Moolenaar +! " Last Change: 2007 Jul 30 + + " Exit quickly when: + " - this plugin was already loaded (or disabled) +--- 1,6 ---- + " Vim plugin for showing matching parens + " Maintainer: Bram Moolenaar +! " Last Change: 2007 Aug 8 + + " Exit quickly when: + " - this plugin was already loaded (or disabled) +*************** +*** 13,19 **** + + augroup matchparen + " Replace all matchparen autocommands +! autocmd! CursorMoved,CursorMovedI * call s:Highlight_Matching_Pair() + augroup END + + " Skip the rest if it was already done. +--- 13,19 ---- + + augroup matchparen + " Replace all matchparen autocommands +! autocmd! CursorMoved,CursorMovedI,WinEnter * call s:Highlight_Matching_Pair() + augroup END + + " Skip the rest if it was already done. +*************** +*** 126,132 **** + endfunction + + " Define commands that will disable and enable the plugin. +! command! NoMatchParen 3match none | unlet! g:loaded_matchparen | au! matchparen +! command! DoMatchParen runtime plugin/matchparen.vim | doau CursorMoved + + let &cpo = cpo_save +--- 126,133 ---- + endfunction + + " Define commands that will disable and enable the plugin. +! command! NoMatchParen windo 3match none | unlet! g:loaded_matchparen | +! \ au! matchparen +! command! DoMatchParen runtime plugin/matchparen.vim | windo doau CursorMoved + + let &cpo = cpo_save +*** ../vim-7.1.081/src/version.c Sat Aug 18 17:46:50 2007 +--- src/version.c Sat Aug 18 18:19:20 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 82, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +195. Your cat has its own home page. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.083 b/7.1.083 new file mode 100644 index 00000000..61073205 --- /dev/null +++ b/7.1.083 @@ -0,0 +1,123 @@ +To: vim-dev@vim.org +Subject: patch 7.1.083 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.083 (after 7.1.081) +Problem: Command line completion doesn't work with wildcards. +Solution: Add vim_isfilec_or_wc() and use it. (Martin Toft) +Files: src/charset.c, src/proto/charset.pro, src/ex_docmd.c + + +*** ../vim-7.1.082/src/charset.c Wed Aug 15 20:40:45 2007 +--- src/charset.c Sun Aug 19 22:30:25 2007 +*************** +*** 932,937 **** +--- 932,954 ---- + } + + /* ++ * return TRUE if 'c' is a valid file-name character or a wildcard character ++ * Assume characters above 0x100 are valid (multi-byte). ++ * Explicitly interpret ']' as a wildcard character as mch_has_wildcard("]") ++ * returns false. ++ */ ++ int ++ vim_isfilec_or_wc(c) ++ int c; ++ { ++ char_u buf[2]; ++ ++ buf[0] = (char_u)c; ++ buf[1] = NUL; ++ return vim_isfilec(c) || c == ']' || mch_has_wildcard(buf); ++ } ++ ++ /* + * return TRUE if 'c' is a printable character + * Assume characters above 0x100 are printable (multi-byte), except for + * Unicode. +*** ../vim-7.1.082/src/proto/charset.pro Sat May 5 19:21:32 2007 +--- src/proto/charset.pro Sun Aug 19 22:30:28 2007 +*************** +*** 21,26 **** +--- 21,27 ---- + int vim_iswordp __ARGS((char_u *p)); + int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf)); + int vim_isfilec __ARGS((int c)); ++ int vim_isfilec_or_wc __ARGS((int c)); + int vim_isprintc __ARGS((int c)); + int vim_isprintc_strict __ARGS((int c)); + int lbr_chartabsize __ARGS((unsigned char *s, colnr_T col)); +*** ../vim-7.1.082/src/ex_docmd.c Sat Aug 18 17:46:50 2007 +--- src/ex_docmd.c Sun Aug 19 22:29:17 2007 +*************** +*** 3311,3319 **** + in_quote = !in_quote; + } + #ifdef SPACE_IN_FILENAME +! else if (!vim_isfilec(c) && (!(ea.argt & NOSPC) || usefilter)) + #else +! else if (!vim_isfilec(c)) + #endif + { + while (*p != NUL) +--- 3311,3320 ---- + in_quote = !in_quote; + } + #ifdef SPACE_IN_FILENAME +! else if (!vim_isfilec_or_wc(c) +! && (!(ea.argt & NOSPC) || usefilter)) + #else +! else if (!vim_isfilec_or_wc(c)) + #endif + { + while (*p != NUL) +*************** +*** 3324,3330 **** + else + #endif + c = *p; +! if (c == '`' || vim_isfilec(c)) + break; + #ifdef FEAT_MBYTE + if (has_mbyte) +--- 3325,3331 ---- + else + #endif + c = *p; +! if (c == '`' || vim_isfilec_or_wc(c)) + break; + #ifdef FEAT_MBYTE + if (has_mbyte) +*** ../vim-7.1.082/src/version.c Sat Aug 18 18:20:57 2007 +--- src/version.c Sun Aug 19 22:31:43 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 83, + /**/ + +-- + "You mean there really is an answer?" + "Yes! But you're not going to like it!" + "Oh do please tell us!" + "You're really not going to like it!" + "but we MUST know - tell us" + "Alright, the answer is...." + "yes..." + "... is ..." + "yes... come on!" + "is 42!" + (Douglas Adams - The Hitchhiker's Guide to the Galaxy) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.084 b/7.1.084 new file mode 100644 index 00000000..119c94f3 --- /dev/null +++ b/7.1.084 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: patch 7.1.084 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.084 +Problem: Using the "-nb" argument twice causes netbeans not to get + fileOpened events. +Solution: Change "&" to "&&". (Xavier de Gaye) +Files: src/ex_cmds.c + + +*** ../vim-7.1.083/src/ex_cmds.c Wed Jul 25 22:55:22 2007 +--- src/ex_cmds.c Tue Aug 21 15:02:43 2007 +*************** +*** 3776,3782 **** + workshop_file_opened((char *)curbuf->b_ffname, curbuf->b_p_ro); + # endif + # ifdef FEAT_NETBEANS_INTG +! if (usingNetbeans & ((flags & ECMD_SET_HELP) != ECMD_SET_HELP)) + netbeans_file_opened(curbuf); + # endif + } +--- 3787,3793 ---- + workshop_file_opened((char *)curbuf->b_ffname, curbuf->b_p_ro); + # endif + # ifdef FEAT_NETBEANS_INTG +! if (usingNetbeans && ((flags & ECMD_SET_HELP) != ECMD_SET_HELP)) + netbeans_file_opened(curbuf); + # endif + } +*** ../vim-7.1.083/src/version.c Sun Aug 19 22:42:27 2007 +--- src/version.c Tue Aug 21 15:04:03 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 84, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +220. Your wife asks for sex and you tell her where to find you on IRC. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.085 b/7.1.085 new file mode 100644 index 00000000..47502638 --- /dev/null +++ b/7.1.085 @@ -0,0 +1,85 @@ +To: vim-dev@vim.org +Subject: patch 7.1.085 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.085 +Problem: ":e fold.c" then ":sp fold.c" results in folds of original window + to disappear. (Akita Noek) +Solution: Invoke foldUpdateAll() for all windows of the changed buffer. + (Martin Toft) +Files: src/ex_cmds.c + + +*** ../vim-7.1.084/src/ex_cmds.c Tue Aug 21 15:05:54 2007 +--- src/ex_cmds.c Tue Aug 21 15:02:43 2007 +*************** +*** 2974,2980 **** + * 'fnum' is the number of the file, if zero use ffname/sfname. + * + * Return 1 for "normal" error, 2 for "not written" error, 0 for success +! * -1 for succesfully opening another file. + * 'lnum' is the line number for the cursor in the new file (if non-zero). + */ + int +--- 2974,2980 ---- + * 'fnum' is the number of the file, if zero use ffname/sfname. + * + * Return 1 for "normal" error, 2 for "not written" error, 0 for success +! * -1 for successfully opening another file. + * 'lnum' is the line number for the cursor in the new file (if non-zero). + */ + int +*************** +*** 3584,3592 **** + curwin_init(); + + #ifdef FEAT_FOLDING +! /* It's like all lines in the buffer changed. Need to update +! * automatic folding. */ + foldUpdateAll(curwin); + #endif + + /* Change directories when the 'acd' option is set. */ +--- 3584,3603 ---- + curwin_init(); + + #ifdef FEAT_FOLDING +! /* It's possible that all lines in the buffer changed. Need to update +! * automatic folding for all windows where it's used. */ +! # ifdef FEAT_WINDOWS +! { +! win_T *win; +! tabpage_T *tp; +! +! FOR_ALL_TAB_WINDOWS(tp, win) +! if (win->w_buffer == curbuf) +! foldUpdateAll(win); +! } +! # else + foldUpdateAll(curwin); ++ # endif + #endif + + /* Change directories when the 'acd' option is set. */ +*** ../vim-7.1.084/src/version.c Tue Aug 21 15:05:54 2007 +--- src/version.c Tue Aug 21 15:26:43 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 85, + /**/ + +-- +Your fault: core dumped + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.086 b/7.1.086 new file mode 100644 index 00000000..8d9ac8d9 --- /dev/null +++ b/7.1.086 @@ -0,0 +1,123 @@ +To: vim-dev@vim.org +Subject: patch 7.1.086 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.086 +Problem: Crash when using specific Python syntax highlighting. (Quirk) +Solution: Check for a negative index, coming from a keyword match at the + start of a line from a saved state. +Files: src/syntax.c + + +*** ../vim-7.1.085/src/syntax.c Tue Aug 14 23:06:51 2007 +--- src/syntax.c Tue Aug 21 17:13:51 2007 +*************** +*** 279,285 **** + */ + typedef struct state_item + { +! int si_idx; /* index of syntax pattern */ + int si_id; /* highlight group ID for keywords */ + int si_trans_id; /* idem, transparancy removed */ + int si_m_lnum; /* lnum of the match */ +--- 279,286 ---- + */ + typedef struct state_item + { +! int si_idx; /* index of syntax pattern or +! KEYWORD_IDX */ + int si_id; /* highlight group ID for keywords */ + int si_trans_id; /* idem, transparancy removed */ + int si_m_lnum; /* lnum of the match */ +*************** +*** 837,845 **** + current_lnum = end_lnum; + break; + } +! spp = &(SYN_ITEMS(syn_buf)[cur_si->si_idx]); +! found_flags = spp->sp_flags; +! found_match_idx = spp->sp_sync_idx; + found_current_lnum = current_lnum; + found_current_col = current_col; + found_m_endpos = cur_si->si_m_endpos; +--- 838,855 ---- + current_lnum = end_lnum; + break; + } +! if (cur_si->si_idx < 0) +! { +! /* Cannot happen? */ +! found_flags = 0; +! found_match_idx = KEYWORD_IDX; +! } +! else +! { +! spp = &(SYN_ITEMS(syn_buf)[cur_si->si_idx]); +! found_flags = spp->sp_flags; +! found_match_idx = spp->sp_sync_idx; +! } + found_current_lnum = current_lnum; + found_current_col = current_col; + found_m_endpos = cur_si->si_m_endpos; +*************** +*** 2533,2538 **** +--- 2543,2552 ---- + stateitem_T *sip = &CUR_STATE(idx); + synpat_T *spp; + ++ /* This should not happen... */ ++ if (sip->si_idx < 0) ++ return; ++ + spp = &(SYN_ITEMS(syn_buf)[sip->si_idx]); + if (sip->si_flags & HL_MATCH) + sip->si_id = spp->sp_syn_match_id; +*************** +*** 2648,2653 **** +--- 2662,2671 ---- + lpos_T end_endpos; + int end_idx; + ++ /* return quickly for a keyword */ ++ if (sip->si_idx < 0) ++ return; ++ + /* Don't update when it's already done. Can be a match of an end pattern + * that started in a previous line. Watch out: can also be a "keepend" + * from a containing item. */ +*************** +*** 2759,2764 **** +--- 2777,2786 ---- + lpos_T pos; + char_u *line; + int had_match = FALSE; ++ ++ /* just in case we are invoked for a keyword */ ++ if (idx < 0) ++ return; + + /* + * Check for being called with a START pattern. +*** ../vim-7.1.085/src/version.c Tue Aug 21 15:28:32 2007 +--- src/version.c Tue Aug 21 17:21:06 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 86, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +222. You send more than 20 personal e-mails a day. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.087 b/7.1.087 new file mode 100644 index 00000000..3ba731e6 --- /dev/null +++ b/7.1.087 @@ -0,0 +1,151 @@ +To: vim-dev@vim.org +Subject: patch 7.1.087 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.087 +Problem: Reading past ":cscope find" command. Writing past end of a buffer. +Solution: Check length of the argument before using the pattern. Use + vim_strncpy(). (Dominique Pelle) +Files: if_cscope.c + + +*** ../vim-7.1.086/src/if_cscope.c Sun Mar 11 15:48:29 2007 +--- src/if_cscope.c Sun Aug 19 22:17:09 2007 +*************** +*** 73,78 **** +--- 73,80 ---- + + + static csinfo_T csinfo[CSCOPE_MAX_CONNECTIONS]; ++ static int eap_arg_len; /* length of eap->arg, set in ++ cs_lookup_cmd() */ + static cscmd_T cs_cmds[] = + { + { "add", cs_add, +*************** +*** 260,273 **** + + if ((p = cs_manage_matches(NULL, NULL, -1, Get)) == NULL) + return TRUE; +! +! if ((int)strlen(p) > size) +! { +! strncpy((char *)buf, p, size - 1); +! buf[size] = '\0'; +! } +! else +! (void)strcpy((char *)buf, p); + + return FALSE; + } /* cs_fgets */ +--- 262,268 ---- + + if ((p = cs_manage_matches(NULL, NULL, -1, Get)) == NULL) + return TRUE; +! vim_strncpy(buf, (char_u *)p, size - 1); + + return FALSE; + } /* cs_fgets */ +*************** +*** 386,392 **** + * PRIVATE: cs_add + * + * add cscope database or a directory name (to look for cscope.out) +! * the the cscope connection list + * + * MAXPATHL 256 + */ +--- 381,387 ---- + * PRIVATE: cs_add + * + * add cscope database or a directory name (to look for cscope.out) +! * to the cscope connection list + * + * MAXPATHL 256 + */ +*************** +*** 966,972 **** + } + + pat = opt + strlen(opt) + 1; +! if (pat == NULL || (pat != NULL && pat[0] == '\0')) + { + cs_usage_msg(Find); + return FALSE; +--- 961,967 ---- + } + + pat = opt + strlen(opt) + 1; +! if (pat >= (char *)eap->arg + eap_arg_len) + { + cs_usage_msg(Find); + return FALSE; +*************** +*** 1317,1323 **** + #else + /* compare pathnames first */ + && ((fullpathcmp(csinfo[j].fname, fname, FALSE) & FPC_SAME) +! /* if not Windows 9x, test index file atributes too */ + || (!mch_windows95() + && csinfo[j].nVolume == bhfi.dwVolumeSerialNumber + && csinfo[j].nIndexHigh == bhfi.nFileIndexHigh +--- 1312,1318 ---- + #else + /* compare pathnames first */ + && ((fullpathcmp(csinfo[j].fname, fname, FALSE) & FPC_SAME) +! /* if not Windows 9x, test index file attributes too */ + || (!mch_windows95() + && csinfo[j].nVolume == bhfi.dwVolumeSerialNumber + && csinfo[j].nIndexHigh == bhfi.nFileIndexHigh +*************** +*** 1401,1406 **** +--- 1396,1404 ---- + if (eap->arg == NULL) + return NULL; + ++ /* Store length of eap->arg before it gets modified by strtok(). */ ++ eap_arg_len = STRLEN(eap->arg); ++ + if ((stok = strtok((char *)(eap->arg), (const char *)" ")) == NULL) + return NULL; + +*************** +*** 2195,2201 **** + cs_add_common(dblist[i], pplist[i], fllist[i]); + if (p_csverbose) + { +! /* dont' use smsg_attr because want to display + * connection number in the same line as + * "Added cscope database..." + */ +--- 2193,2199 ---- + cs_add_common(dblist[i], pplist[i], fllist[i]); + if (p_csverbose) + { +! /* don't use smsg_attr() because we want to display the + * connection number in the same line as + * "Added cscope database..." + */ +*** ../vim-7.1.086/src/version.c Tue Aug 21 17:29:04 2007 +--- src/version.c Tue Aug 21 17:59:42 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 87, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +223. You set up a web-cam as your home's security system. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.088 b/7.1.088 new file mode 100644 index 00000000..fc07d601 --- /dev/null +++ b/7.1.088 @@ -0,0 +1,70 @@ +To: vim-dev@vim.org +Subject: patch 7.1.088 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.088 (extra) +Problem: The coordinates used by ":winpos" differ from what getwinposx() + and getwinposy() return. +Solution: Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry) +Files: src/gui_mac.c + + +*** ../vim-7.1.087/src/gui_mac.c Tue Jun 19 16:33:53 2007 +--- src/gui_mac.c Wed Aug 29 20:33:34 2007 +*************** +*** 3149,3155 **** + /* TODO: Should make sure the window is move within range + * e.g.: y > ~16 [Menu bar], x > 0, x < screen width + */ +! MoveWindow(gui.VimWindow, x, y, TRUE); + } + + void +--- 3149,3155 ---- + /* TODO: Should make sure the window is move within range + * e.g.: y > ~16 [Menu bar], x > 0, x < screen width + */ +! MoveWindowStructure(gui.VimWindow, x, y, TRUE); + } + + void +*************** +*** 5556,5562 **** + * SetDialogTracksCursor() : Get the I-beam cursor over input box + * MoveDialogItem(): Probably better than SetDialogItem + * SizeDialogItem(): (but is it Carbon Only?) +! * AutoSizeDialog(): Magic resize of dialog based on text lenght + */ + } + #endif /* FEAT_DIALOG_GUI */ +--- 5556,5562 ---- + * SetDialogTracksCursor() : Get the I-beam cursor over input box + * MoveDialogItem(): Probably better than SetDialogItem + * SizeDialogItem(): (but is it Carbon Only?) +! * AutoSizeDialog(): Magic resize of dialog based on text length + */ + } + #endif /* FEAT_DIALOG_GUI */ +*** ../vim-7.1.087/src/version.c Tue Aug 21 18:02:58 2007 +--- src/version.c Thu Aug 30 10:32:28 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 88, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +10E. You start counting in hex. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.089 b/7.1.089 new file mode 100644 index 00000000..50773af7 --- /dev/null +++ b/7.1.089 @@ -0,0 +1,494 @@ +To: vim-dev@vim.org +Subject: patch 7.1.089 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.089 +Problem: ":let loaded_getscriptPlugin" doesn't clear to eol, result is + "#1in". +Solution: Clear to the end of the screen after displaying the first variable + value. +Files: src/eval.c + + +*** ../vim-7.1.088/src/eval.c Tue Aug 14 22:40:13 2007 +--- src/eval.c Wed Aug 29 22:40:15 2007 +*************** +*** 369,385 **** + static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars)); + static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon)); + static char_u *skip_var_one __ARGS((char_u *arg)); +! static void list_hashtable_vars __ARGS((hashtab_T *ht, char_u *prefix, int empty)); +! static void list_glob_vars __ARGS((void)); +! static void list_buf_vars __ARGS((void)); +! static void list_win_vars __ARGS((void)); + #ifdef FEAT_WINDOWS +! static void list_tab_vars __ARGS((void)); + #endif +! static void list_vim_vars __ARGS((void)); +! static void list_script_vars __ARGS((void)); +! static void list_func_vars __ARGS((void)); +! static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg)); + static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op)); + static int check_changedtick __ARGS((char_u *arg)); + static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int quiet, int fne_flags)); +--- 369,385 ---- + static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars)); + static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon)); + static char_u *skip_var_one __ARGS((char_u *arg)); +! static void list_hashtable_vars __ARGS((hashtab_T *ht, char_u *prefix, int empty, int *first)); +! static void list_glob_vars __ARGS((int *first)); +! static void list_buf_vars __ARGS((int *first)); +! static void list_win_vars __ARGS((int *first)); + #ifdef FEAT_WINDOWS +! static void list_tab_vars __ARGS((int *first)); + #endif +! static void list_vim_vars __ARGS((int *first)); +! static void list_script_vars __ARGS((int *first)); +! static void list_func_vars __ARGS((int *first)); +! static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg, int *first)); + static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op)); + static int check_changedtick __ARGS((char_u *arg)); + static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int quiet, int fne_flags)); +*************** +*** 704,711 **** + static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname)); + static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val)); + static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi)); +! static void list_one_var __ARGS((dictitem_T *v, char_u *prefix)); +! static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string)); + static void set_var __ARGS((char_u *name, typval_T *varp, int copy)); + static int var_check_ro __ARGS((int flags, char_u *name)); + static int var_check_fixed __ARGS((int flags, char_u *name)); +--- 704,711 ---- + static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname)); + static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val)); + static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi)); +! static void list_one_var __ARGS((dictitem_T *v, char_u *prefix, int *first)); +! static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string, int *first)); + static void set_var __ARGS((char_u *name, typval_T *varp, int copy)); + static int var_check_ro __ARGS((int flags, char_u *name)); + static int var_check_fixed __ARGS((int flags, char_u *name)); +*************** +*** 1699,1704 **** +--- 1699,1705 ---- + int semicolon = 0; + char_u op[2]; + char_u *argend; ++ int first = TRUE; + + argend = skip_var_list(arg, &var_count, &semicolon); + if (argend == NULL) +*************** +*** 1715,1733 **** + EMSG(_(e_invarg)); + else if (!ends_excmd(*arg)) + /* ":let var1 var2" */ +! arg = list_arg_vars(eap, arg); + else if (!eap->skip) + { + /* ":let" */ +! list_glob_vars(); +! list_buf_vars(); +! list_win_vars(); + #ifdef FEAT_WINDOWS +! list_tab_vars(); + #endif +! list_script_vars(); +! list_func_vars(); +! list_vim_vars(); + } + eap->nextcmd = check_nextcmd(arg); + } +--- 1716,1734 ---- + EMSG(_(e_invarg)); + else if (!ends_excmd(*arg)) + /* ":let var1 var2" */ +! arg = list_arg_vars(eap, arg, &first); + else if (!eap->skip) + { + /* ":let" */ +! list_glob_vars(&first); +! list_buf_vars(&first); +! list_win_vars(&first); + #ifdef FEAT_WINDOWS +! list_tab_vars(&first); + #endif +! list_script_vars(&first); +! list_func_vars(&first); +! list_vim_vars(&first); + } + eap->nextcmd = check_nextcmd(arg); + } +*************** +*** 1932,1941 **** + * If "empty" is TRUE also list NULL strings as empty strings. + */ + static void +! list_hashtable_vars(ht, prefix, empty) + hashtab_T *ht; + char_u *prefix; + int empty; + { + hashitem_T *hi; + dictitem_T *di; +--- 1933,1943 ---- + * If "empty" is TRUE also list NULL strings as empty strings. + */ + static void +! list_hashtable_vars(ht, prefix, empty, first) + hashtab_T *ht; + char_u *prefix; + int empty; ++ int *first; + { + hashitem_T *hi; + dictitem_T *di; +*************** +*** 1950,1956 **** + di = HI2DI(hi); + if (empty || di->di_tv.v_type != VAR_STRING + || di->di_tv.vval.v_string != NULL) +! list_one_var(di, prefix); + } + } + } +--- 1952,1958 ---- + di = HI2DI(hi); + if (empty || di->di_tv.v_type != VAR_STRING + || di->di_tv.vval.v_string != NULL) +! list_one_var(di, prefix, first); + } + } + } +*************** +*** 1959,1990 **** + * List global variables. + */ + static void +! list_glob_vars() + { +! list_hashtable_vars(&globvarht, (char_u *)"", TRUE); + } + + /* + * List buffer variables. + */ + static void +! list_buf_vars() + { + char_u numbuf[NUMBUFLEN]; + +! list_hashtable_vars(&curbuf->b_vars.dv_hashtab, (char_u *)"b:", TRUE); + + sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick); +! list_one_var_a((char_u *)"b:", (char_u *)"changedtick", VAR_NUMBER, numbuf); + } + + /* + * List window variables. + */ + static void +! list_win_vars() + { +! list_hashtable_vars(&curwin->w_vars.dv_hashtab, (char_u *)"w:", TRUE); + } + + #ifdef FEAT_WINDOWS +--- 1961,1998 ---- + * List global variables. + */ + static void +! list_glob_vars(first) +! int *first; + { +! list_hashtable_vars(&globvarht, (char_u *)"", TRUE, first); + } + + /* + * List buffer variables. + */ + static void +! list_buf_vars(first) +! int *first; + { + char_u numbuf[NUMBUFLEN]; + +! list_hashtable_vars(&curbuf->b_vars.dv_hashtab, (char_u *)"b:", +! TRUE, first); + + sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick); +! list_one_var_a((char_u *)"b:", (char_u *)"changedtick", VAR_NUMBER, +! numbuf, first); + } + + /* + * List window variables. + */ + static void +! list_win_vars(first) +! int *first; + { +! list_hashtable_vars(&curwin->w_vars.dv_hashtab, +! (char_u *)"w:", TRUE, first); + } + + #ifdef FEAT_WINDOWS +*************** +*** 1992,2000 **** + * List tab page variables. + */ + static void +! list_tab_vars() + { +! list_hashtable_vars(&curtab->tp_vars.dv_hashtab, (char_u *)"t:", TRUE); + } + #endif + +--- 2000,2010 ---- + * List tab page variables. + */ + static void +! list_tab_vars(first) +! int *first; + { +! list_hashtable_vars(&curtab->tp_vars.dv_hashtab, +! (char_u *)"t:", TRUE, first); + } + #endif + +*************** +*** 2002,2040 **** + * List Vim variables. + */ + static void +! list_vim_vars() + { +! list_hashtable_vars(&vimvarht, (char_u *)"v:", FALSE); + } + + /* + * List script-local variables, if there is a script. + */ + static void +! list_script_vars() + { + if (current_SID > 0 && current_SID <= ga_scripts.ga_len) +! list_hashtable_vars(&SCRIPT_VARS(current_SID), (char_u *)"s:", FALSE); + } + + /* + * List function variables, if there is a function. + */ + static void +! list_func_vars() + { + if (current_funccal != NULL) + list_hashtable_vars(¤t_funccal->l_vars.dv_hashtab, +! (char_u *)"l:", FALSE); + } + + /* + * List variables in "arg". + */ + static char_u * +! list_arg_vars(eap, arg) + exarg_T *eap; + char_u *arg; + { + int error = FALSE; + int len; +--- 2012,2055 ---- + * List Vim variables. + */ + static void +! list_vim_vars(first) +! int *first; + { +! list_hashtable_vars(&vimvarht, (char_u *)"v:", FALSE, first); + } + + /* + * List script-local variables, if there is a script. + */ + static void +! list_script_vars(first) +! int *first; + { + if (current_SID > 0 && current_SID <= ga_scripts.ga_len) +! list_hashtable_vars(&SCRIPT_VARS(current_SID), +! (char_u *)"s:", FALSE, first); + } + + /* + * List function variables, if there is a function. + */ + static void +! list_func_vars(first) +! int *first; + { + if (current_funccal != NULL) + list_hashtable_vars(¤t_funccal->l_vars.dv_hashtab, +! (char_u *)"l:", FALSE, first); + } + + /* + * List variables in "arg". + */ + static char_u * +! list_arg_vars(eap, arg, first) + exarg_T *eap; + char_u *arg; ++ int *first; + { + int error = FALSE; + int len; +*************** +*** 2091,2105 **** + { + switch (*name) + { +! case 'g': list_glob_vars(); break; +! case 'b': list_buf_vars(); break; +! case 'w': list_win_vars(); break; + #ifdef FEAT_WINDOWS +! case 't': list_tab_vars(); break; + #endif +! case 'v': list_vim_vars(); break; +! case 's': list_script_vars(); break; +! case 'l': list_func_vars(); break; + default: + EMSG2(_("E738: Can't list variables for %s"), name); + } +--- 2106,2120 ---- + { + switch (*name) + { +! case 'g': list_glob_vars(first); break; +! case 'b': list_buf_vars(first); break; +! case 'w': list_win_vars(first); break; + #ifdef FEAT_WINDOWS +! case 't': list_tab_vars(first); break; + #endif +! case 'v': list_vim_vars(first); break; +! case 's': list_script_vars(first); break; +! case 'l': list_func_vars(first); break; + default: + EMSG2(_("E738: Can't list variables for %s"), name); + } +*************** +*** 2116,2122 **** + *arg = NUL; + list_one_var_a((char_u *)"", + arg == arg_subsc ? name : name_start, +! tv.v_type, s == NULL ? (char_u *)"" : s); + *arg = c; + vim_free(tf); + } +--- 2131,2139 ---- + *arg = NUL; + list_one_var_a((char_u *)"", + arg == arg_subsc ? name : name_start, +! tv.v_type, +! s == NULL ? (char_u *)"" : s, +! first); + *arg = c; + vim_free(tf); + } +*************** +*** 18001,18009 **** + * List the value of one internal variable. + */ + static void +! list_one_var(v, prefix) + dictitem_T *v; + char_u *prefix; + { + char_u *tofree; + char_u *s; +--- 18024,18033 ---- + * List the value of one internal variable. + */ + static void +! list_one_var(v, prefix, first) + dictitem_T *v; + char_u *prefix; ++ int *first; + { + char_u *tofree; + char_u *s; +*************** +*** 18011,18026 **** + + s = echo_string(&v->di_tv, &tofree, numbuf, ++current_copyID); + list_one_var_a(prefix, v->di_key, v->di_tv.v_type, +! s == NULL ? (char_u *)"" : s); + vim_free(tofree); + } + + static void +! list_one_var_a(prefix, name, type, string) + char_u *prefix; + char_u *name; + int type; + char_u *string; + { + /* don't use msg() or msg_attr() to avoid overwriting "v:statusmsg" */ + msg_start(); +--- 18035,18051 ---- + + s = echo_string(&v->di_tv, &tofree, numbuf, ++current_copyID); + list_one_var_a(prefix, v->di_key, v->di_tv.v_type, +! s == NULL ? (char_u *)"" : s, first); + vim_free(tofree); + } + + static void +! list_one_var_a(prefix, name, type, string, first) + char_u *prefix; + char_u *name; + int type; + char_u *string; ++ int *first; /* when TRUE clear rest of screen and set to FALSE */ + { + /* don't use msg() or msg_attr() to avoid overwriting "v:statusmsg" */ + msg_start(); +*************** +*** 18052,18057 **** +--- 18077,18087 ---- + + if (type == VAR_FUNC) + msg_puts((char_u *)"()"); ++ if (*first) ++ { ++ msg_clr_eos(); ++ *first = FALSE; ++ } + } + + /* +*** ../vim-7.1.088/src/version.c Thu Aug 30 10:34:19 2007 +--- src/version.c Thu Aug 30 11:06:32 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 89, + /**/ + +-- +Edison's greatest achievement came in 1879, when he invented the +electric company. Edison's design was a brilliant adaptation of the +simple electrical circuit: the electric company sends electricity +through a wire to a customer, then immediately gets the electricity +back through another wire + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.090 b/7.1.090 new file mode 100644 index 00000000..319483ac --- /dev/null +++ b/7.1.090 @@ -0,0 +1,75 @@ +To: vim-dev@vim.org +Subject: patch 7.1.090 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.090 +Problem: Compiler warning on Mac OS X 10.5. +Solution: Don't redeclare sigaltstack(). (Hisashi T Fujinaka) +Files: src/os_unix.c + + +*** ../vim-7.1.089/src/os_unix.c Sat Aug 11 22:22:56 2007 +--- src/os_unix.c Wed Aug 22 22:28:48 2007 +*************** +*** 753,759 **** + if (signal_stack != NULL) + { + # ifdef HAVE_SIGALTSTACK +! # ifdef __APPLE__ + /* missing prototype. Adding it to osdef?.h.in doesn't work, because + * "struct sigaltstack" needs to be declared. */ + extern int sigaltstack __ARGS((const struct sigaltstack *ss, struct sigaltstack *oss)); +--- 753,760 ---- + if (signal_stack != NULL) + { + # ifdef HAVE_SIGALTSTACK +! # if defined(__APPLE__) && (!defined(MAC_OS_X_VERSION_MAX_ALLOWED) \ +! || MAC_OS_X_VERSION_MAX_ALLOWED <= 1040) + /* missing prototype. Adding it to osdef?.h.in doesn't work, because + * "struct sigaltstack" needs to be declared. */ + extern int sigaltstack __ARGS((const struct sigaltstack *ss, struct sigaltstack *oss)); +*************** +*** 5688,5694 **** + + /* + * Closes connection to gpm +! * returns non-zero if connection succesfully closed + */ + static void + gpm_close() +--- 5689,5695 ---- + + /* + * Closes connection to gpm +! * returns non-zero if connection successfully closed + */ + static void + gpm_close() +*** ../vim-7.1.089/src/version.c Thu Aug 30 11:10:38 2007 +--- src/version.c Thu Aug 30 11:46:07 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 90, + /**/ + +-- + We're knights of the round table + We dance whene'er we're able + We do routines and chorus scenes + With footwork impeccable. + We dine well here in Camelot + We eat ham and jam and spam a lot. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.091 b/7.1.091 new file mode 100644 index 00000000..041286c2 --- /dev/null +++ b/7.1.091 @@ -0,0 +1,355 @@ +To: vim-dev@vim.org +Subject: patch 7.1.091 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.091 (extra) +Problem: Win32: Can't embed Vim inside another application. +Solution: Add the --windowid argument. (Nageshwar) +Files: runtime/doc/gui_w32.txt, runtime/doc/starting.txt, + runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c + + +*** ../vim-7.1.090/runtime/doc/gui_w32.txt Sat May 12 15:35:53 2007 +--- runtime/doc/gui_w32.txt Tue Aug 14 17:32:27 2007 +*************** +*** 1,4 **** +! *gui_w32.txt* For Vim version 7.1. Last change: 2007 May 03 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *gui_w32.txt* For Vim version 7.1. Last change: 2007 Aug 14 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 52,57 **** +--- 52,67 ---- + *gui-w32s* + There is a specific version of gvim.exe that runs under the Win32s subsystem + of Windows 3.1 or 3.11. See |win32s|. ++ ++ ++ Using Vim as a plugin *gui-w32-windowid* ++ ++ When gvim starts up normally, it creates its own top level window. If you ++ pass Vim the command-line option |--windowid| with a decimal or hexadecimal ++ value, Vim will create a window that is a child of the window with the given ++ ID. This enables Vim to act as a plugin in another application. This really ++ is a programmer's interface, and is of no use without a supporting application ++ to spawn Vim correctly. + + ============================================================================== + 2. Vim as default editor *vim-default-editor* +*** ../vim-7.1.090/runtime/doc/starting.txt Sat May 12 16:56:17 2007 +--- runtime/doc/starting.txt Tue Aug 14 17:34:22 2007 +*************** +*** 1,4 **** +! *starting.txt* For Vim version 7.1. Last change: 2007 May 12 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *starting.txt* For Vim version 7.1. Last change: 2007 Aug 14 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 547,552 **** +--- 547,557 ---- + GTK+ GUI Vim only. Make gvim try to use GtkPlug mechanism, so + that it runs inside another window. See |gui-gtk-socketid| + for details. {not in Vi} ++ ++ --windowid {id} *--windowid* ++ Win32 GUI Vim only. Make gvim try to use the window {id} as a ++ parent, so that it runs inside that window. See ++ |gui-w32-windowid| for details. {not in Vi} + + --echo-wid *--echo-wid* + GTK+ GUI Vim only. Make gvim echo the Window ID on stdout, +*** ../vim-7.1.090/runtime/doc/vi_diff.txt Sat May 12 14:54:28 2007 +--- runtime/doc/vi_diff.txt Tue Aug 14 17:35:10 2007 +*************** +*** 1,4 **** +! *vi_diff.txt* For Vim version 7.1. Last change: 2007 May 07 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *vi_diff.txt* For Vim version 7.1. Last change: 2007 Aug 14 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 826,831 **** +--- 826,833 ---- + --servername {name} Vim: Specify Vim server name + + --socketid {id} Vim: GTK window socket to run Vim in ++ ++ --windowid {id} Vim: Win32 window ID to run Vim in + + --version Vim: show version message and exit. + +*** ../vim-7.1.090/src/globals.h Thu May 10 19:26:02 2007 +--- src/globals.h Wed Aug 29 22:27:45 2007 +*************** +*** 876,882 **** + EXTERN int no_mapping INIT(= FALSE); /* currently no mapping allowed */ + EXTERN int no_zero_mapping INIT(= 0); /* mapping zero not allowed */ + EXTERN int allow_keys INIT(= FALSE); /* allow key codes when no_mapping +! * is set */ + EXTERN int no_u_sync INIT(= 0); /* Don't call u_sync() */ + + EXTERN int restart_edit INIT(= 0); /* call edit when next cmd finished */ +--- 876,882 ---- + EXTERN int no_mapping INIT(= FALSE); /* currently no mapping allowed */ + EXTERN int no_zero_mapping INIT(= 0); /* mapping zero not allowed */ + EXTERN int allow_keys INIT(= FALSE); /* allow key codes when no_mapping +! * is set */ + EXTERN int no_u_sync INIT(= 0); /* Don't call u_sync() */ + + EXTERN int restart_edit INIT(= 0); /* call edit when next cmd finished */ +*************** +*** 1250,1255 **** +--- 1250,1263 ---- + #ifdef FEAT_GUI_GTK + EXTERN guint32 gtk_socket_id INIT(= 0); + EXTERN int echo_wid_arg INIT(= FALSE); /* --echo-wid argument */ ++ #endif ++ ++ #ifdef FEAT_GUI_W32 ++ /* ++ * The value of the --windowid argument. ++ * For embedding gvim inside another application. ++ */ ++ EXTERN int win_socket_id INIT(= 0); + #endif + + #if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL) +*** ../vim-7.1.090/src/gui_w32.c Tue Aug 14 16:57:04 2007 +--- src/gui_w32.c Tue Aug 14 17:13:41 2007 +*************** +*** 23,28 **** +--- 23,30 ---- + * e.g., replace LONG with LONG_PTR, etc. + */ + ++ #include "vim.h" ++ + /* + * These are new in Windows ME/XP, only defined in recent compilers. + */ +*************** +*** 1432,1447 **** + } + } + else +! /* Open toplevel window. */ + s_hwnd = CreateWindow( +! szVimWndClass, "Vim MSWindows GUI", +! WS_OVERLAPPEDWINDOW, +! gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x, +! gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y, +! 100, /* Any value will do */ +! 100, /* Any value will do */ +! NULL, NULL, +! s_hinst, NULL); + + if (s_hwnd == NULL) + return FAIL; +--- 1434,1462 ---- + } + } + else +! { +! /* If the provided windowid is not valid reset it to zero, so that it +! * is ignored and we open our own window. */ +! if (IsWindow((HWND)win_socket_id) <= 0) +! win_socket_id = 0; +! +! /* Create a window. If win_socket_id is not zero without border and +! * titlebar, it will be reparented below. */ + s_hwnd = CreateWindow( +! szVimWndClass, "Vim MSWindows GUI", +! win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP, +! gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x, +! gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y, +! 100, /* Any value will do */ +! 100, /* Any value will do */ +! NULL, NULL, +! s_hinst, NULL); +! if (s_hwnd != NULL && win_socket_id != 0) +! { +! SetParent(s_hwnd, (HWND)win_socket_id); +! ShowWindow(s_hwnd, SW_SHOWMAXIMIZED); +! } +! } + + if (s_hwnd == NULL) + return FAIL; +*** ../vim-7.1.090/src/main.c Fri Aug 10 21:32:41 2007 +--- src/main.c Tue Aug 14 17:22:52 2007 +*************** +*** 275,280 **** +--- 275,281 ---- + * -display or --display + * --server... + * --socketid ++ * --windowid + */ + early_arg_scan(¶ms); + +*************** +*** 1489,1495 **** + * Get the name of the display, before gui_prepare() removes it from + * argv[]. Used for the xterm-clipboard display. + * +! * Also find the --server... arguments and --socketid + */ + /*ARGSUSED*/ + static void +--- 1490,1496 ---- + * Get the name of the display, before gui_prepare() removes it from + * argv[]. Used for the xterm-clipboard display. + * +! * Also find the --server... arguments and --socketid and --windowid + */ + /*ARGSUSED*/ + static void +*************** +*** 1536,1559 **** + # endif + } + # endif +! # ifdef FEAT_GUI_GTK + else if (STRICMP(argv[i], "--socketid") == 0) + { +! unsigned int socket_id; + int count; + + if (i == argc - 1) + mainerr_arg_missing((char_u *)argv[i]); + if (STRNICMP(argv[i+1], "0x", 2) == 0) +! count = sscanf(&(argv[i + 1][2]), "%x", &socket_id); + else +! count = sscanf(argv[i+1], "%u", &socket_id); + if (count != 1) + mainerr(ME_INVALID_ARG, (char_u *)argv[i]); + else +! gtk_socket_id = socket_id; + i++; + } + else if (STRICMP(argv[i], "--echo-wid") == 0) + echo_wid_arg = TRUE; + # endif +--- 1537,1571 ---- + # endif + } + # endif +! +! # if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32) +! # ifdef FEAT_GUI_W32 +! else if (STRICMP(argv[i], "--windowid") == 0) +! # else + else if (STRICMP(argv[i], "--socketid") == 0) ++ # endif + { +! unsigned int id; + int count; + + if (i == argc - 1) + mainerr_arg_missing((char_u *)argv[i]); + if (STRNICMP(argv[i+1], "0x", 2) == 0) +! count = sscanf(&(argv[i + 1][2]), "%x", &id); + else +! count = sscanf(argv[i+1], "%u", &id); + if (count != 1) + mainerr(ME_INVALID_ARG, (char_u *)argv[i]); + else +! # ifdef FEAT_GUI_W32 +! win_socket_id = id; +! # else +! gtk_socket_id = id; +! # endif + i++; + } ++ # endif ++ # ifdef FEAT_GUI_GTK + else if (STRICMP(argv[i], "--echo-wid") == 0) + echo_wid_arg = TRUE; + # endif +*************** +*** 1683,1690 **** + } + } + #endif +! #ifdef FEAT_GUI_GTK + else if (STRNICMP(argv[0] + argv_idx, "socketid", 8) == 0) + { + /* already processed -- snatch the following arg */ + if (argc > 1) +--- 1695,1706 ---- + } + } + #endif +! #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32) +! # ifdef FEAT_GUI_GTK + else if (STRNICMP(argv[0] + argv_idx, "socketid", 8) == 0) ++ # else ++ else if (STRNICMP(argv[0] + argv_idx, "windowid", 8) == 0) ++ # endif + { + /* already processed -- snatch the following arg */ + if (argc > 1) +*************** +*** 1693,1698 **** +--- 1709,1716 ---- + ++argv; + } + } ++ #endif ++ #ifdef FEAT_GUI_GTK + else if (STRNICMP(argv[0] + argv_idx, "echo-wid", 8) == 0) + { + /* already processed, skip */ +*************** +*** 3120,3125 **** +--- 3138,3144 ---- + #endif + #ifdef FEAT_GUI_W32 + main_msg(_("-P \tOpen Vim inside parent application")); ++ main_msg(_("--windowid \tOpen Vim inside another win32 widget")); + #endif + + #ifdef FEAT_GUI_GNOME +*** ../vim-7.1.090/src/version.c Thu Aug 30 11:46:46 2007 +--- src/version.c Thu Aug 30 12:21:02 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 91, + /**/ + +-- + We're knights of the Round Table + Our shows are formidable + But many times + We're given rhymes + That are quite unsingable + We're opera mad in Camelot + We sing from the diaphragm a lot. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.092 b/7.1.092 new file mode 100644 index 00000000..e2638552 --- /dev/null +++ b/7.1.092 @@ -0,0 +1,92 @@ +To: vim-dev@vim.org +Subject: patch 7.1.092 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.092 (extra, after 7.1.088) +Problem: Wrong arguments for MoveWindowStructure(). +Solution: Remove "TRUE". (Michael Henry) +Files: src/gui_mac.c + + +*** ../vim-7.1.091/src/gui_mac.c Thu Aug 30 10:34:19 2007 +--- src/gui_mac.c Thu Aug 30 12:48:41 2007 +*************** +*** 3149,3155 **** + /* TODO: Should make sure the window is move within range + * e.g.: y > ~16 [Menu bar], x > 0, x < screen width + */ +! MoveWindowStructure(gui.VimWindow, x, y, TRUE); + } + + void +--- 3149,3155 ---- + /* TODO: Should make sure the window is move within range + * e.g.: y > ~16 [Menu bar], x > 0, x < screen width + */ +! MoveWindowStructure(gui.VimWindow, x, y); + } + + void +*************** +*** 5293,5299 **** + short itemType; + short useIcon; + short width; +! short totalButtonWidth = 0; /* the width of all button together + including spacing */ + short widestButton = 0; + short dfltButtonEdge = 20; /* gut feeling */ +--- 5293,5299 ---- + short itemType; + short useIcon; + short width; +! short totalButtonWidth = 0; /* the width of all buttons together + including spacing */ + short widestButton = 0; + short dfltButtonEdge = 20; /* gut feeling */ +*************** +*** 5483,5489 **** + { + + macMoveDialogItem(theDialog, button, buttonItm.box.left, buttonItm.box.top, &box); +! /* With vertical, it's better to have all button the same lenght */ + if (vertical) + { + macSizeDialogItem(theDialog, button, widestButton, 0); +--- 5483,5489 ---- + { + + macMoveDialogItem(theDialog, button, buttonItm.box.left, buttonItm.box.top, &box); +! /* With vertical, it's better to have all buttons the same length */ + if (vertical) + { + macSizeDialogItem(theDialog, button, widestButton, 0); +*** ../vim-7.1.091/src/version.c Thu Aug 30 12:24:21 2007 +--- src/version.c Thu Aug 30 12:47:24 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 92, + /**/ + +-- + In war we're tough and able. + Quite indefatigable + Between our quests + We sequin vests + And impersonate Clark Gable + It's a busy life in Camelot. + I have to push the pram a lot. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.093 b/7.1.093 new file mode 100644 index 00000000..8c3c6b29 --- /dev/null +++ b/7.1.093 @@ -0,0 +1,551 @@ +To: vim-dev@vim.org +Subject: patch 7.1.093 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.093 +Problem: Reading past end of a screen line when determining cell width. + (Dominique Pelle) +Solution: Add an argument to mb_off2cells() for the maximum offset. +Files: src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro, + src/screen.c + + +*** ../vim-7.1.092/src/globals.h Thu Aug 30 12:24:21 2007 +--- src/globals.h Wed Aug 29 22:27:45 2007 +*************** +*** 801,807 **** + EXTERN int (*mb_char2bytes) __ARGS((int c, char_u *buf)) INIT(= latin_char2bytes); + EXTERN int (*mb_ptr2cells) __ARGS((char_u *p)) INIT(= latin_ptr2cells); + EXTERN int (*mb_char2cells) __ARGS((int c)) INIT(= latin_char2cells); +! EXTERN int (*mb_off2cells) __ARGS((unsigned off)) INIT(= latin_off2cells); + EXTERN int (*mb_ptr2char) __ARGS((char_u *p)) INIT(= latin_ptr2char); + EXTERN int (*mb_head_off) __ARGS((char_u *base, char_u *p)) INIT(= latin_head_off); + +--- 801,807 ---- + EXTERN int (*mb_char2bytes) __ARGS((int c, char_u *buf)) INIT(= latin_char2bytes); + EXTERN int (*mb_ptr2cells) __ARGS((char_u *p)) INIT(= latin_ptr2cells); + EXTERN int (*mb_char2cells) __ARGS((int c)) INIT(= latin_char2cells); +! EXTERN int (*mb_off2cells) __ARGS((unsigned off, unsigned max_off)) INIT(= latin_off2cells); + EXTERN int (*mb_ptr2char) __ARGS((char_u *p)) INIT(= latin_ptr2char); + EXTERN int (*mb_head_off) __ARGS((char_u *base, char_u *p)) INIT(= latin_head_off); + +*** ../vim-7.1.092/src/gui.c Wed Aug 15 20:07:53 2007 +--- src/gui.c Wed Aug 29 22:16:51 2007 +*************** +*** 1080,1086 **** + cur_width = gui.char_width; + } + #ifdef FEAT_MBYTE +! if (has_mbyte && (*mb_off2cells)(LineOffset[gui.row] + gui.col) > 1) + { + /* Double wide character. */ + if (shape_table[idx].shape != SHAPE_VER) +--- 1080,1087 ---- + cur_width = gui.char_width; + } + #ifdef FEAT_MBYTE +! if (has_mbyte && (*mb_off2cells)(LineOffset[gui.row] + gui.col, +! LineOffset[gui.row] + screen_Columns) > 1) + { + /* Double wide character. */ + if (shape_table[idx].shape != SHAPE_VER) +*************** +*** 1159,1165 **** + #endif + + # if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \ +! || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_MAC)) + if (gui_has_tabline()) + text_area_y += gui.tabline_height; + #endif +--- 1160,1166 ---- + #endif + + # if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \ +! || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_MAC)) + if (gui_has_tabline()) + text_area_y += gui.tabline_height; + #endif +*** ../vim-7.1.092/src/mbyte.c Sat Aug 11 13:57:31 2007 +--- src/mbyte.c Thu Aug 30 13:48:30 2007 +*************** +*** 1310,1329 **** + /* + * mb_off2cells() function pointer. + * Return number of display cells for char at ScreenLines[off]. +! * Caller must make sure "off" and "off + 1" are valid! + */ + /*ARGSUSED*/ + int +! latin_off2cells(off) + unsigned off; + { + return 1; + } + + int +! dbcs_off2cells(off) + unsigned off; + { + /* Number of cells is equal to number of bytes, except for euc-jp when + * the first byte is 0x8e. */ + if (enc_dbcs == DBCS_JPNU && ScreenLines[off] == 0x8e) +--- 1310,1335 ---- + /* + * mb_off2cells() function pointer. + * Return number of display cells for char at ScreenLines[off]. +! * We make sure that the offset used is less than "max_off". + */ + /*ARGSUSED*/ + int +! latin_off2cells(off, max_off) + unsigned off; ++ unsigned max_off; + { + return 1; + } + + int +! dbcs_off2cells(off, max_off) + unsigned off; ++ unsigned max_off; + { ++ /* never check beyond end of the line */ ++ if (off >= max_off) ++ return 1; ++ + /* Number of cells is equal to number of bytes, except for euc-jp when + * the first byte is 0x8e. */ + if (enc_dbcs == DBCS_JPNU && ScreenLines[off] == 0x8e) +*************** +*** 1332,1341 **** + } + + int +! utf_off2cells(off) + unsigned off; + { +! return ScreenLines[off + 1] == 0 ? 2 : 1; + } + + /* +--- 1338,1348 ---- + } + + int +! utf_off2cells(off, max_off) + unsigned off; ++ unsigned max_off; + { +! return (off + 1 < max_off && ScreenLines[off + 1] == 0) ? 2 : 1; + } + + /* +*************** +*** 2899,2910 **** + if (composing_hangul) + return TRUE; + #endif +! if (enc_dbcs != 0) +! return dbcs_off2cells(LineOffset[row] + col) > 1; +! if (enc_utf8) +! return (col + 1 < Columns +! && ScreenLines[LineOffset[row] + col + 1] == 0); +! return FALSE; + } + + # if defined(FEAT_CLIPBOARD) || defined(FEAT_GUI) || defined(FEAT_RIGHTLEFT) \ +--- 2906,2913 ---- + if (composing_hangul) + return TRUE; + #endif +! return (*mb_off2cells)(LineOffset[row] + col, +! LineOffset[row] + screen_Columns) > 1; + } + + # if defined(FEAT_CLIPBOARD) || defined(FEAT_GUI) || defined(FEAT_RIGHTLEFT) \ +*** ../vim-7.1.092/src/proto/mbyte.pro Sat May 5 20:02:52 2007 +--- src/proto/mbyte.pro Wed Aug 29 20:49:02 2007 +*************** +*** 12,20 **** + int utf_ptr2cells __ARGS((char_u *p)); + int dbcs_ptr2cells __ARGS((char_u *p)); + int latin_char2cells __ARGS((int c)); +! int latin_off2cells __ARGS((unsigned off)); +! int dbcs_off2cells __ARGS((unsigned off)); +! int utf_off2cells __ARGS((unsigned off)); + int latin_ptr2char __ARGS((char_u *p)); + int utf_ptr2char __ARGS((char_u *p)); + int mb_ptr2char_adv __ARGS((char_u **pp)); +--- 12,20 ---- + int utf_ptr2cells __ARGS((char_u *p)); + int dbcs_ptr2cells __ARGS((char_u *p)); + int latin_char2cells __ARGS((int c)); +! int latin_off2cells __ARGS((unsigned off, unsigned max_off)); +! int dbcs_off2cells __ARGS((unsigned off, unsigned max_off)); +! int utf_off2cells __ARGS((unsigned off, unsigned max_off)); + int latin_ptr2char __ARGS((char_u *p)); + int utf_ptr2char __ARGS((char_u *p)); + int mb_ptr2char_adv __ARGS((char_u **pp)); +*** ../vim-7.1.092/src/screen.c Sun Aug 5 20:10:16 2007 +--- src/screen.c Thu Aug 30 10:31:26 2007 +*************** +*** 1024,1030 **** + type = VALID; + } + +! /* Trick: we want to avoid clearning the screen twice. screenclear() will + * set "screen_cleared" to TRUE. The special value MAYBE (which is still + * non-zero and thus not FALSE) will indicate that screenclear() was not + * called. */ +--- 1024,1030 ---- + type = VALID; + } + +! /* Trick: we want to avoid clearing the screen twice. screenclear() will + * set "screen_cleared" to TRUE. The special value MAYBE (which is still + * non-zero and thus not FALSE) will indicate that screenclear() was not + * called. */ +*************** +*** 4632,4638 **** + + /* + * At end of screen line and there is more to come: Display the line +! * so far. If there is no more to display it is catched above. + */ + if (( + #ifdef FEAT_RIGHTLEFT +--- 4632,4638 ---- + + /* + * At end of screen line and there is more to come: Display the line +! * so far. If there is no more to display it is caught above. + */ + if (( + #ifdef FEAT_RIGHTLEFT +*************** +*** 4709,4717 **** + #endif + #ifdef FEAT_MBYTE + && !(has_mbyte +! && ((*mb_off2cells)(LineOffset[screen_row]) == 2 + || (*mb_off2cells)(LineOffset[screen_row - 1] +! + (int)Columns - 2) == 2)) + #endif + ) + { +--- 4709,4721 ---- + #endif + #ifdef FEAT_MBYTE + && !(has_mbyte +! && ((*mb_off2cells)(LineOffset[screen_row], +! LineOffset[screen_row] + screen_Columns) +! == 2 + || (*mb_off2cells)(LineOffset[screen_row - 1] +! + (int)Columns - 2, +! LineOffset[screen_row] + screen_Columns) +! == 2)) + #endif + ) + { +*************** +*** 4871,4876 **** +--- 4875,4884 ---- + { + unsigned off_from; + unsigned off_to; ++ #ifdef FEAT_MBYTE ++ unsigned max_off_from; ++ unsigned max_off_to; ++ #endif + int col = 0; + #if defined(FEAT_GUI) || defined(UNIX) || defined(FEAT_VERTSPLIT) + int hl; +*************** +*** 4897,4902 **** +--- 4905,4914 ---- + + off_from = (unsigned)(current_ScreenLine - ScreenLines); + off_to = LineOffset[row] + coloff; ++ #ifdef FEAT_MBYTE ++ max_off_from = off_from + screen_Columns; ++ max_off_to = LineOffset[row] + screen_Columns; ++ #endif + + #ifdef FEAT_RIGHTLEFT + if (rlflag) +*************** +*** 4931,4937 **** + { + #ifdef FEAT_MBYTE + if (has_mbyte && (col + 1 < endcol)) +! char_cells = (*mb_off2cells)(off_from); + else + char_cells = 1; + #endif +--- 4943,4949 ---- + { + #ifdef FEAT_MBYTE + if (has_mbyte && (col + 1 < endcol)) +! char_cells = (*mb_off2cells)(off_from, max_off_from); + else + char_cells = 1; + #endif +*************** +*** 5008,5014 **** + * ScreenLinesUC[] is sufficient. */ + if (char_cells == 1 + && col + 1 < endcol +! && (*mb_off2cells)(off_to) > 1) + { + /* Writing a single-cell character over a double-cell + * character: need to redraw the next cell. */ +--- 5020,5026 ---- + * ScreenLinesUC[] is sufficient. */ + if (char_cells == 1 + && col + 1 < endcol +! && (*mb_off2cells)(off_to, max_off_to) > 1) + { + /* Writing a single-cell character over a double-cell + * character: need to redraw the next cell. */ +*************** +*** 5017,5024 **** + } + else if (char_cells == 2 + && col + 2 < endcol +! && (*mb_off2cells)(off_to) == 1 +! && (*mb_off2cells)(off_to + 1) > 1) + { + /* Writing the second half of a double-cell character over + * a double-cell character: need to redraw the second +--- 5029,5036 ---- + } + else if (char_cells == 2 + && col + 2 < endcol +! && (*mb_off2cells)(off_to, max_off_to) == 1 +! && (*mb_off2cells)(off_to + 1, max_off_to) > 1) + { + /* Writing the second half of a double-cell character over + * a double-cell character: need to redraw the second +*************** +*** 5037,5046 **** + * char over the left halve of an existing one. */ + if (has_mbyte && col + char_cells == endcol + && ((char_cells == 1 +! && (*mb_off2cells)(off_to) > 1) + || (char_cells == 2 +! && (*mb_off2cells)(off_to) == 1 +! && (*mb_off2cells)(off_to + 1) > 1))) + clear_next = TRUE; + #endif + +--- 5049,5058 ---- + * char over the left halve of an existing one. */ + if (has_mbyte && col + char_cells == endcol + && ((char_cells == 1 +! && (*mb_off2cells)(off_to, max_off_to) > 1) + || (char_cells == 2 +! && (*mb_off2cells)(off_to, max_off_to) == 1 +! && (*mb_off2cells)(off_to + 1, max_off_to) > 1))) + clear_next = TRUE; + #endif + +*************** +*** 5180,5189 **** + /* find previous character by counting from first + * column and get its width. */ + unsigned off = LineOffset[row]; + + while (off < off_to) + { +! prev_cells = (*mb_off2cells)(off); + off += prev_cells; + } + } +--- 5192,5202 ---- + /* find previous character by counting from first + * column and get its width. */ + unsigned off = LineOffset[row]; ++ unsigned max_off = LineOffset[row] + screen_Columns; + + while (off < off_to) + { +! prev_cells = (*mb_off2cells)(off, max_off); + off += prev_cells; + } + } +*************** +*** 5369,5375 **** + static int skip_status_match_char __ARGS((expand_T *xp, char_u *s)); + + /* +! * Get the lenght of an item as it will be shown in the status line. + */ + static int + status_match_len(xp, s) +--- 5382,5388 ---- + static int skip_status_match_char __ARGS((expand_T *xp, char_u *s)); + + /* +! * Get the length of an item as it will be shown in the status line. + */ + static int + status_match_len(xp, s) +*************** +*** 5435,5441 **** + int row; + char_u *buf; + int len; +! int clen; /* lenght in screen cells */ + int fillchar; + int attr; + int i; +--- 5448,5454 ---- + int row; + char_u *buf; + int len; +! int clen; /* length in screen cells */ + int fillchar; + int attr; + int i; +*************** +*** 6187,6192 **** +--- 6200,6206 ---- + char_u *ptr = text; + int c; + #ifdef FEAT_MBYTE ++ unsigned max_off; + int mbyte_blen = 1; + int mbyte_cells = 1; + int u8c = 0; +*************** +*** 6203,6208 **** +--- 6217,6225 ---- + return; + + off = LineOffset[row] + col; ++ #ifdef FEAT_MBYTE ++ max_off = LineOffset[row] + screen_Columns; ++ #endif + while (col < screen_Columns + && (len < 0 || (int)(ptr - text) < len) + && *ptr != NUL) +*************** +*** 6326,6344 **** + else if (has_mbyte + && (len < 0 ? ptr[mbyte_blen] == NUL + : ptr + mbyte_blen >= text + len) +! && ((mbyte_cells == 1 && (*mb_off2cells)(off) > 1) + || (mbyte_cells == 2 +! && (*mb_off2cells)(off) == 1 +! && (*mb_off2cells)(off + 1) > 1))) + clear_next_cell = TRUE; + + /* Make sure we never leave a second byte of a double-byte behind, + * it confuses mb_off2cells(). */ + if (enc_dbcs +! && ((mbyte_cells == 1 && (*mb_off2cells)(off) > 1) + || (mbyte_cells == 2 +! && (*mb_off2cells)(off) == 1 +! && (*mb_off2cells)(off + 1) > 1))) + ScreenLines[off + mbyte_blen] = 0; + #endif + ScreenLines[off] = c; +--- 6343,6361 ---- + else if (has_mbyte + && (len < 0 ? ptr[mbyte_blen] == NUL + : ptr + mbyte_blen >= text + len) +! && ((mbyte_cells == 1 && (*mb_off2cells)(off, max_off) > 1) + || (mbyte_cells == 2 +! && (*mb_off2cells)(off, max_off) == 1 +! && (*mb_off2cells)(off + 1, max_off) > 1))) + clear_next_cell = TRUE; + + /* Make sure we never leave a second byte of a double-byte behind, + * it confuses mb_off2cells(). */ + if (enc_dbcs +! && ((mbyte_cells == 1 && (*mb_off2cells)(off, max_off) > 1) + || (mbyte_cells == 2 +! && (*mb_off2cells)(off, max_off) == 1 +! && (*mb_off2cells)(off + 1, max_off) > 1))) + ScreenLines[off + mbyte_blen] = 0; + #endif + ScreenLines[off] = c; +*************** +*** 6924,6929 **** +--- 6941,6949 ---- + { + int r, c; + int off; ++ #ifdef FEAT_MBYTE ++ int max_off; ++ #endif + + /* Can't use ScreenLines unless initialized */ + if (ScreenLines == NULL) +*************** +*** 6934,6943 **** + for (r = row; r < row + height; ++r) + { + off = LineOffset[r]; + for (c = col; c < col + width; ++c) + { + #ifdef FEAT_MBYTE +! if (enc_dbcs != 0 && dbcs_off2cells(off + c) > 1) + { + screen_char_2(off + c, r, c); + ++c; +--- 6954,6966 ---- + for (r = row; r < row + height; ++r) + { + off = LineOffset[r]; ++ #ifdef FEAT_MBYTE ++ max_off = off + screen_Columns; ++ #endif + for (c = col; c < col + width; ++c) + { + #ifdef FEAT_MBYTE +! if (enc_dbcs != 0 && dbcs_off2cells(off + c, max_off) > 1) + { + screen_char_2(off + c, r, c); + ++c; +*************** +*** 6947,6953 **** + { + screen_char(off + c, r, c); + #ifdef FEAT_MBYTE +! if (utf_off2cells(off + c) > 1) + ++c; + #endif + } +--- 6970,6976 ---- + { + screen_char(off + c, r, c); + #ifdef FEAT_MBYTE +! if (utf_off2cells(off + c, max_off) > 1) + ++c; + #endif + } +*** ../vim-7.1.092/src/version.c Thu Aug 30 12:50:00 2007 +--- src/version.c Thu Aug 30 13:45:25 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 93, + /**/ + +-- +There is a fine line between courage and foolishness. +Unfortunately, it's not a fence. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.094 b/7.1.094 new file mode 100644 index 00000000..06318fce --- /dev/null +++ b/7.1.094 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: patch 7.1.094 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.094 +Problem: When checking if syntax highlighting is present, looking in the + current buffer instead of the specified one. +Solution: Use "buf" instead of "curbuf". +Files: src/syntax.c + + +*** ../vim-7.1.093/src/syntax.c Tue Aug 21 17:29:04 2007 +--- src/syntax.c Wed Aug 29 23:27:52 2007 +*************** +*** 5987,5994 **** + { + return (buf->b_syn_patterns.ga_len != 0 + || buf->b_syn_clusters.ga_len != 0 +! || curbuf->b_keywtab.ht_used > 0 +! || curbuf->b_keywtab_ic.ht_used > 0); + } + + #if defined(FEAT_CMDL_COMPL) || defined(PROTO) +--- 5987,5994 ---- + { + return (buf->b_syn_patterns.ga_len != 0 + || buf->b_syn_clusters.ga_len != 0 +! || buf->b_keywtab.ht_used > 0 +! || buf->b_keywtab_ic.ht_used > 0); + } + + #if defined(FEAT_CMDL_COMPL) || defined(PROTO) +*** ../vim-7.1.093/src/version.c Thu Aug 30 13:51:52 2007 +--- src/version.c Thu Aug 30 19:35:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 94, + /**/ + +-- +MAN: You don't frighten us, English pig-dog! Go and boil your bottoms, + son of a silly person. I blow my nose on you, so-called Arthur-king, + you and your silly English K...kaniggets. + He puts hands to his ears and blows a raspberry. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.095 b/7.1.095 new file mode 100644 index 00000000..1b6fe273 --- /dev/null +++ b/7.1.095 @@ -0,0 +1,210 @@ +To: vim-dev@vim.org +Subject: patch 7.1.095 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.095 +Problem: The FocusLost and FocusGained autocommands are triggered + asynchronously in the GUI. This may cause arbitrary problems. +Solution: Put the focus event in the input buffer and handle it when ready + for it. +Files: src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c, + src/keymap.h + + +*** ../vim-7.1.094/src/eval.c Thu Aug 30 11:10:38 2007 +--- src/eval.c Mon Sep 3 22:48:09 2007 +*************** +*** 9912,9929 **** + + ++no_mapping; + ++allow_keys; +! if (argvars[0].v_type == VAR_UNKNOWN) +! /* getchar(): blocking wait. */ +! n = safe_vgetc(); +! else if (get_tv_number_chk(&argvars[0], &error) == 1) +! /* getchar(1): only check if char avail */ +! n = vpeekc(); +! else if (error || vpeekc() == NUL) +! /* illegal argument or getchar(0) and no char avail: return zero */ +! n = 0; +! else +! /* getchar(0) and char avail: return char */ +! n = safe_vgetc(); + --no_mapping; + --allow_keys; + +--- 9912,9935 ---- + + ++no_mapping; + ++allow_keys; +! for (;;) +! { +! if (argvars[0].v_type == VAR_UNKNOWN) +! /* getchar(): blocking wait. */ +! n = safe_vgetc(); +! else if (get_tv_number_chk(&argvars[0], &error) == 1) +! /* getchar(1): only check if char avail */ +! n = vpeekc(); +! else if (error || vpeekc() == NUL) +! /* illegal argument or getchar(0) and no char avail: return zero */ +! n = 0; +! else +! /* getchar(0) and char avail: return char */ +! n = safe_vgetc(); +! if (n == K_IGNORE) +! continue; +! break; +! } + --no_mapping; + --allow_keys; + +*** ../vim-7.1.094/src/getchar.c Thu May 10 18:43:02 2007 +--- src/getchar.c Wed Aug 29 22:38:49 2007 +*************** +*** 1596,1603 **** + continue; + } + #endif +- + #ifdef FEAT_GUI + /* Translate K_CSI to CSI. The special key is only used to avoid + * it being recognized as the start of a special key. */ + if (c == K_CSI) +--- 1596,1610 ---- + continue; + } + #endif + #ifdef FEAT_GUI ++ /* The caller doesn't need to know that the focus event is delayed ++ * until getting a character. */ ++ if (c == K_FOCUSGAINED || c == K_FOCUSLOST) ++ { ++ ui_focus_change(c == K_FOCUSGAINED); ++ continue; ++ } ++ + /* Translate K_CSI to CSI. The special key is only used to avoid + * it being recognized as the start of a special key. */ + if (c == K_CSI) +*** ../vim-7.1.094/src/gui.c Thu Aug 30 13:51:52 2007 +--- src/gui.c Thu Aug 30 14:10:48 2007 +*************** +*** 4519,4525 **** + xim_set_focus(in_focus); + # endif + +! ui_focus_change(in_focus); + #endif + } + +--- 4519,4536 ---- + xim_set_focus(in_focus); + # endif + +! /* Put events in the input queue only when allowed. +! * ui_focus_change() isn't called directly, because it invokes +! * autocommands and that must not happen asynchronously. */ +! if (!hold_gui_events) +! { +! char_u bytes[3]; +! +! bytes[0] = CSI; +! bytes[1] = KS_EXTRA; +! bytes[2] = in_focus ? (int)KE_FOCUSGAINED : (int)KE_FOCUSLOST; +! add_to_input_buf(bytes, 3); +! } + #endif + } + +*** ../vim-7.1.094/src/gui_gtk_x11.c Tue Jun 19 18:07:52 2007 +--- src/gui_gtk_x11.c Wed Aug 29 22:43:34 2007 +*************** +*** 813,822 **** + if (blink_state == BLINK_NONE) + gui_mch_start_blink(); + +! /* make sure keyboard input goes to the draw area (if this is focus for a window) */ + if (widget != gui.drawarea) + gtk_widget_grab_focus(gui.drawarea); + + return TRUE; + } + +--- 813,827 ---- + if (blink_state == BLINK_NONE) + gui_mch_start_blink(); + +! /* make sure keyboard input goes to the draw area (if this is focus for a +! * window) */ + if (widget != gui.drawarea) + gtk_widget_grab_focus(gui.drawarea); + ++ /* make sure the input buffer is read */ ++ if (gtk_main_level() > 0) ++ gtk_main_quit(); ++ + return TRUE; + } + +*************** +*** 828,833 **** +--- 833,842 ---- + + if (blink_state != BLINK_NONE) + gui_mch_stop_blink(); ++ ++ /* make sure the input buffer is read */ ++ if (gtk_main_level() > 0) ++ gtk_main_quit(); + + return TRUE; + } +*** ../vim-7.1.094/src/keymap.h Sat May 5 19:34:22 2007 +--- src/keymap.h Wed Aug 29 22:17:51 2007 +*************** +*** 254,259 **** +--- 254,261 ---- + , KE_DROP /* DnD data is available */ + , KE_CURSORHOLD /* CursorHold event */ + , KE_NOP /* doesn't do something */ ++ , KE_FOCUSGAINED /* focus gained */ ++ , KE_FOCUSLOST /* focus lost */ + }; + + /* +*************** +*** 445,450 **** +--- 447,454 ---- + #define K_CMDWIN TERMCAP2KEY(KS_EXTRA, KE_CMDWIN) + + #define K_DROP TERMCAP2KEY(KS_EXTRA, KE_DROP) ++ #define K_FOCUSGAINED TERMCAP2KEY(KS_EXTRA, KE_FOCUSGAINED) ++ #define K_FOCUSLOST TERMCAP2KEY(KS_EXTRA, KE_FOCUSLOST) + + #define K_CURSORHOLD TERMCAP2KEY(KS_EXTRA, KE_CURSORHOLD) + +*** ../vim-7.1.094/src/version.c Thu Aug 30 19:36:52 2007 +--- src/version.c Wed Sep 5 21:42:41 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 95, + /**/ + +-- +ARTHUR: Who are you? +TALL KNIGHT: We are the Knights Who Say "Ni"! +BEDEVERE: No! Not the Knights Who Say "Ni"! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.096 b/7.1.096 new file mode 100644 index 00000000..3eabea47 --- /dev/null +++ b/7.1.096 @@ -0,0 +1,89 @@ +To: vim-dev@vim.org +Subject: patch 7.1.096 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.096 +Problem: Reading past end of a string when resizing Vim. (Dominique Pelle) +Solution: Check the string pointer before getting the char it points to. +Files: src/message.c + + +*** ../vim-7.1.095/src/message.c Tue Aug 7 21:59:26 2007 +--- src/message.c Thu Aug 30 22:53:03 2007 +*************** +*** 944,949 **** +--- 944,950 ---- + c = K_IGNORE; + } + #endif ++ + /* + * Allow scrolling back in the messages. + * Also accept scroll-down commands when messages fill the screen, +*************** +*** 1840,1845 **** +--- 1841,1847 ---- + char_u *sb_str = str; + int sb_col = msg_col; + int wrap; ++ int did_last_char; + + did_wait_return = FALSE; + while ((maxlen < 0 || (int)(s - str) < maxlen) && *s != NUL) +*************** +*** 1909,1915 **** +--- 1911,1920 ---- + else + #endif + msg_screen_putchar(*s++, attr); ++ did_last_char = TRUE; + } ++ else ++ did_last_char = FALSE; + + if (p_more) + /* store text for scrolling back */ +*************** +*** 1944,1954 **** + + /* When we displayed a char in last column need to check if there + * is still more. */ +! if (*s >= ' ' +! #ifdef FEAT_RIGHTLEFT +! && !cmdmsg_rl +! #endif +! ) + continue; + } + +--- 1949,1955 ---- + + /* When we displayed a char in last column need to check if there + * is still more. */ +! if (did_last_char) + continue; + } + +*** ../vim-7.1.095/src/version.c Wed Sep 5 21:45:54 2007 +--- src/version.c Thu Sep 6 12:31:28 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 96, + /**/ + +-- +Yah, well, we had to carve our electrons out of driftwood we'd +find. In the winter. Uphill. Both ways. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.043 b/7.1.097 similarity index 60% rename from 7.0.043 rename to 7.1.097 index 8485d16a..52438939 100644 --- a/7.0.043 +++ b/7.1.097 @@ -1,5 +1,5 @@ To: vim-dev@vim.org -Subject: Patch 7.0.043 +Subject: patch 7.1.097 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 @@ -7,44 +7,43 @@ Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ -Patch 7.0.043 -Problem: Using "%!" at the start of 'statusline' doesn't work. -Solution: Recognize the special item when the option is being set. +Patch 7.1.097 +Problem: ":setlocal stl=%!1+1" does not work. +Solution: Adjust check for pointer. (Politz) Files: src/option.c -*** ../vim-7.0.042/src/option.c Sat May 13 14:41:15 2006 ---- src/option.c Mon Jul 10 22:41:20 2006 +*** ../vim-7.1.096/src/option.c Sun Aug 12 15:50:26 2007 +--- src/option.c Wed Sep 5 22:34:27 2007 *************** -*** 6325,6331 **** - else +*** 6348,6354 **** errmsg = check_stl_option(p_ruf); } -! else - errmsg = check_stl_option(s); - if (varp == &p_ruf && errmsg == NULL) - comp_col(); ---- 6325,6332 ---- - else - errmsg = check_stl_option(p_ruf); - } -! /* check 'statusline' only if it doesn't start with "%!" */ + /* check 'statusline' only if it doesn't start with "%!" */ ! else if (varp != &p_stl || s[0] != '%' || s[1] != '!') errmsg = check_stl_option(s); if (varp == &p_ruf && errmsg == NULL) comp_col(); -*** ../vim-7.0.042/src/version.c Sun Jul 23 22:37:29 2006 ---- src/version.c Tue Aug 8 16:29:24 2006 +--- 6352,6358 ---- + errmsg = check_stl_option(p_ruf); + } + /* check 'statusline' only if it doesn't start with "%!" */ +! else if (varp == &p_ruf || s[0] != '%' || s[1] != '!') + errmsg = check_stl_option(s); + if (varp == &p_ruf && errmsg == NULL) + comp_col(); +*** ../vim-7.1.096/src/version.c Thu Sep 6 12:53:59 2007 +--- src/version.c Thu Sep 6 13:31:37 2007 *************** *** 668,669 **** --- 668,671 ---- { /* Add new patch number below this line */ + /**/ -+ 43, ++ 97, /**/ -- -There's no place like $(HOME)! +Not too long ago, cut and paste was done with scissors and glue... /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ diff --git a/7.1.098 b/7.1.098 new file mode 100644 index 00000000..608bd628 --- /dev/null +++ b/7.1.098 @@ -0,0 +1,65 @@ +To: vim-dev@vim.org +Subject: patch 7.1.098 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.098 +Problem: ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula) +Solution: Before converting "s:" into a script ID, check if it is a Funcref. +Files: src/eval.c + + +*** ../vim-7.1.097/src/eval.c Wed Sep 5 21:45:54 2007 +--- src/eval.c Thu Sep 6 12:11:19 2007 +*************** +*** 19367,19372 **** +--- 19367,19394 ---- + if (lv.ll_name == NULL) + { + /* Error found, but continue after the function name. */ ++ *pp = end; ++ goto theend; ++ } ++ ++ /* Check if the name is a Funcref. If so, use the value. */ ++ if (lv.ll_exp_name != NULL) ++ { ++ len = (int)STRLEN(lv.ll_exp_name); ++ name = deref_func_name(lv.ll_exp_name, &len); ++ if (name == lv.ll_exp_name) ++ name = NULL; ++ } ++ else ++ { ++ len = (int)(end - *pp); ++ name = deref_func_name(*pp, &len); ++ if (name == *pp) ++ name = NULL; ++ } ++ if (name != NULL) ++ { ++ name = vim_strsave(name); + *pp = end; + goto theend; + } +*** ../vim-7.1.097/src/version.c Thu Sep 6 13:32:53 2007 +--- src/version.c Thu Sep 6 14:24:10 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 98, + /**/ + +-- +Not too long ago, a program was something you watched on TV... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.099 b/7.1.099 new file mode 100644 index 00000000..77e02e62 --- /dev/null +++ b/7.1.099 @@ -0,0 +1,137 @@ +To: vim-dev@vim.org +Subject: patch 7.1.099 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.099 +Problem: When the 'keymap' and 'paste' options have a non-default value, + ":mkexrc" and ":mksession" do not correctly set the options. +Solution: Set the options with side effects before other options. +Files: src/option.c + + +*** ../vim-7.1.098/src/option.c Thu Sep 6 13:32:53 2007 +--- src/option.c Wed Sep 5 22:34:27 2007 +*************** +*** 427,432 **** +--- 427,434 ---- + #define P_NOGLOB 0x100000L/* do not use local value for global vimrc */ + #define P_NFNAME 0x200000L/* only normal file name chars allowed */ + #define P_INSECURE 0x400000L/* option was set from a modeline */ ++ #define P_PRI_MKRC 0x800000L/* priority for :mkvimrc (setting option has ++ side effects) */ + + #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255" + +*************** +*** 773,778 **** +--- 775,782 ---- + {(char_u *)0L, (char_u *)0L} + #endif + }, ++ /* P_PRI_MKRC isn't needed here, optval_default() ++ * always returns TRUE for 'compatible' */ + {"compatible", "cp", P_BOOL|P_RALL, + (char_u *)&p_cp, PV_NONE, + {(char_u *)TRUE, (char_u *)FALSE}}, +*************** +*** 1515,1521 **** + {(char_u *)0L, (char_u *)0L} + #endif + }, +! {"keymap", "kmp", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_RSTAT|P_NFNAME, + #ifdef FEAT_KEYMAP + (char_u *)&p_keymap, PV_KMAP, + {(char_u *)"", (char_u *)0L} +--- 1519,1525 ---- + {(char_u *)0L, (char_u *)0L} + #endif + }, +! {"keymap", "kmp", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_RSTAT|P_NFNAME|P_PRI_MKRC, + #ifdef FEAT_KEYMAP + (char_u *)&p_keymap, PV_KMAP, + {(char_u *)"", (char_u *)0L} +*************** +*** 1836,1842 **** + {"paragraphs", "para", P_STRING|P_VI_DEF, + (char_u *)&p_para, PV_NONE, + {(char_u *)"IPLPPPQPP LIpplpipbp", (char_u *)0L}}, +! {"paste", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_paste, PV_NONE, + {(char_u *)FALSE, (char_u *)0L}}, + {"pastetoggle", "pt", P_STRING|P_VI_DEF, +--- 1840,1846 ---- + {"paragraphs", "para", P_STRING|P_VI_DEF, + (char_u *)&p_para, PV_NONE, + {(char_u *)"IPLPPPQPP LIpplpipbp", (char_u *)0L}}, +! {"paste", NULL, P_BOOL|P_VI_DEF|P_PRI_MKRC, + (char_u *)&p_paste, PV_NONE, + {(char_u *)FALSE, (char_u *)0L}}, + {"pastetoggle", "pt", P_STRING|P_VI_DEF, +*************** +*** 8535,8547 **** + char_u *varp_local = NULL; /* fresh value */ + char *cmd; + int round; + + /* + * The options that don't have a default (terminal name, columns, lines) + * are never written. Terminal options are also not written. + */ +! for (p = &options[0]; !istermoption(p); p++) +! if (!(p->flags & P_NO_MKRC) && !istermoption(p)) + { + /* skip global option when only doing locals */ + if (p->indir == PV_NONE && !(opt_flags & OPT_GLOBAL)) +--- 8539,8558 ---- + char_u *varp_local = NULL; /* fresh value */ + char *cmd; + int round; ++ int pri; + + /* + * The options that don't have a default (terminal name, columns, lines) + * are never written. Terminal options are also not written. ++ * Do the loop over "options[]" twice: once for options with the ++ * P_PRI_MKRC flag and once without. + */ +! for (pri = 1; pri >= 0; --pri) +! { +! for (p = &options[0]; !istermoption(p); p++) +! if (!(p->flags & P_NO_MKRC) +! && !istermoption(p) +! && ((pri == 1) == ((p->flags & P_PRI_MKRC) != 0))) + { + /* skip global option when only doing locals */ + if (p->indir == PV_NONE && !(opt_flags & OPT_GLOBAL)) +*************** +*** 8637,8642 **** +--- 8648,8654 ---- + } + } + } ++ } + return OK; + } + +*** ../vim-7.1.098/src/version.c Thu Sep 6 14:25:50 2007 +--- src/version.c Thu Sep 6 16:32:31 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 99, + /**/ + +-- +Not too long ago, a keyboard was something to make music with... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.100 b/7.1.100 new file mode 100644 index 00000000..86e6fa49 --- /dev/null +++ b/7.1.100 @@ -0,0 +1,513 @@ +To: vim-dev@vim.org +Subject: patch 7.1.100 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.100 +Problem: Win32: Executing cscope doesn't always work properly. +Solution: Use another way to invoke cscope. (Mike Williams) +Files: src/if_cscope.c, src/if_cscope.h, src/main.c, + src/proto/if_cscope.pro + + +*** ../vim-7.1.099/src/if_cscope.c Tue Aug 21 18:02:58 2007 +--- src/if_cscope.c Sun Sep 2 16:50:50 2007 +*************** +*** 24,34 **** + /* not UNIX, must be WIN32 */ + # include "vimio.h" + # include +- # include +- # define STDIN_FILENO 0 +- # define STDOUT_FILENO 1 +- # define STDERR_FILENO 2 +- # define pipe(fds) _pipe(fds, 256, O_TEXT|O_NOINHERIT) + #endif + #include "if_cscope.h" + +--- 24,29 ---- +*************** +*** 65,71 **** + static char * cs_parse_results __ARGS((int cnumber, char *buf, int bufsize, char **context, char **linenumber, char **search)); + static char * cs_pathcomponents __ARGS((char *path)); + static void cs_print_tags_priv __ARGS((char **, char **, int)); +! static int cs_read_prompt __ARGS((int )); + static void cs_release_csp __ARGS((int, int freefnpp)); + static int cs_reset __ARGS((exarg_T *eap)); + static char * cs_resolve_file __ARGS((int, char *)); +--- 60,66 ---- + static char * cs_parse_results __ARGS((int cnumber, char *buf, int bufsize, char **context, char **linenumber, char **search)); + static char * cs_pathcomponents __ARGS((char *path)); + static void cs_print_tags_priv __ARGS((char **, char **, int)); +! static int cs_read_prompt __ARGS((int)); + static void cs_release_csp __ARGS((int, int freefnpp)); + static int cs_reset __ARGS((exarg_T *eap)); + static char * cs_resolve_file __ARGS((int, char *)); +*************** +*** 504,510 **** + #if defined(UNIX) + else if (S_ISREG(statbuf.st_mode) || S_ISLNK(statbuf.st_mode)) + #else +! /* substitute define S_ISREG from os_unix.h */ + else if (((statbuf.st_mode) & S_IFMT) == S_IFREG) + #endif + { +--- 499,505 ---- + #if defined(UNIX) + else if (S_ISREG(statbuf.st_mode) || S_ISLNK(statbuf.st_mode)) + #else +! /* WIN32 - substitute define S_ISREG from os_unix.h */ + else if (((statbuf.st_mode) & S_IFMT) == S_IFREG) + #endif + { +*************** +*** 717,733 **** + cs_create_connection(i) + int i; + { +! int to_cs[2], from_cs[2], len; +! char *prog, *cmd, *ppath = NULL; +! #ifndef UNIX +! int in_save, out_save, err_save; +! long_i ph; +! # ifdef FEAT_GUI +! HWND activewnd = NULL; +! HWND consolewnd = NULL; +! # endif + #endif + + /* + * Cscope reads from to_cs[0] and writes to from_cs[1]; vi reads from + * from_cs[0] and writes to to_cs[1]. +--- 712,734 ---- + cs_create_connection(i) + int i; + { +! #ifdef UNIX +! int to_cs[2], from_cs[2]; +! #endif +! int len; +! char *prog, *cmd, *ppath = NULL; +! #ifdef WIN32 +! int fd; +! SECURITY_ATTRIBUTES sa; +! PROCESS_INFORMATION pi; +! STARTUPINFO si; +! BOOL pipe_stdin = FALSE, pipe_stdout = FALSE; +! HANDLE stdin_rd, stdout_rd; +! HANDLE stdout_wr, stdin_wr; +! BOOL created; + #endif + ++ #if defined(UNIX) + /* + * Cscope reads from to_cs[0] and writes to from_cs[1]; vi reads from + * from_cs[0] and writes to to_cs[1]. +*************** +*** 748,765 **** + return CSCOPE_FAILURE; + } + +- #if defined(UNIX) + switch (csinfo[i].pid = fork()) + { + case -1: + (void)EMSG(_("E622: Could not fork for cscope")); + goto err_closing; + case 0: /* child: run cscope. */ +- #else +- in_save = dup(STDIN_FILENO); +- out_save = dup(STDOUT_FILENO); +- err_save = dup(STDERR_FILENO); +- #endif + if (dup2(to_cs[0], STDIN_FILENO) == -1) + PERROR("cs_create_connection 1"); + if (dup2(from_cs[1], STDOUT_FILENO) == -1) +--- 749,760 ---- +*************** +*** 768,782 **** + PERROR("cs_create_connection 3"); + + /* close unused */ +- #if defined(UNIX) + (void)close(to_cs[1]); + (void)close(from_cs[0]); + #else +! /* On win32 we must close opposite ends because we are the parent */ +! (void)close(to_cs[0]); +! to_cs[0] = -1; +! (void)close(from_cs[1]); +! from_cs[1] = -1; + #endif + /* expand the cscope exec for env var's */ + if ((prog = (char *)alloc(MAXPATHL + 1)) == NULL) +--- 763,794 ---- + PERROR("cs_create_connection 3"); + + /* close unused */ + (void)close(to_cs[1]); + (void)close(from_cs[0]); + #else +! /* WIN32 */ +! /* Create pipes to communicate with cscope */ +! sa.nLength = sizeof(SECURITY_ATTRIBUTES); +! sa.bInheritHandle = TRUE; +! sa.lpSecurityDescriptor = NULL; +! +! if (!(pipe_stdin = CreatePipe(&stdin_rd, &stdin_wr, &sa, 0)) +! || !(pipe_stdout = CreatePipe(&stdout_rd, &stdout_wr, &sa, 0))) +! { +! (void)EMSG(_("E566: Could not create cscope pipes")); +! err_closing: +! if (pipe_stdin) +! { +! CloseHandle(stdin_rd); +! CloseHandle(stdin_wr); +! } +! if (pipe_stdout) +! { +! CloseHandle(stdout_rd); +! CloseHandle(stdout_wr); +! } +! return CSCOPE_FAILURE; +! } + #endif + /* expand the cscope exec for env var's */ + if ((prog = (char *)alloc(MAXPATHL + 1)) == NULL) +*************** +*** 784,789 **** +--- 796,802 ---- + #ifdef UNIX + return CSCOPE_FAILURE; + #else ++ /* WIN32 */ + goto err_closing; + #endif + } +*************** +*** 800,805 **** +--- 813,819 ---- + #ifdef UNIX + return CSCOPE_FAILURE; + #else ++ /* WIN32 */ + goto err_closing; + #endif + } +*************** +*** 818,823 **** +--- 832,838 ---- + #ifdef UNIX + return CSCOPE_FAILURE; + #else ++ /* WIN32 */ + goto err_closing; + #endif + } +*************** +*** 826,831 **** +--- 841,847 ---- + #if defined(UNIX) + (void)sprintf(cmd, "exec %s -dl -f %s", prog, csinfo[i].fname); + #else ++ /* WIN32 */ + (void)sprintf(cmd, "%s -dl -f %s", prog, csinfo[i].fname); + #endif + if (csinfo[i].ppath != NULL) +*************** +*** 851,910 **** + exit(127); + /* NOTREACHED */ + default: /* parent. */ +- #else +- # ifdef FEAT_GUI +- activewnd = GetForegroundWindow(); /* on win9x cscope steals focus */ +- /* Dirty hack to hide annoying console window */ +- if (AllocConsole()) +- { +- char *title; +- title = (char *)alloc(1024); +- if (title == NULL) +- FreeConsole(); +- else +- { +- GetConsoleTitle(title, 1024); /* save for future restore */ +- SetConsoleTitle( +- "GVIMCS{5499421B-CBEF-45b0-85EF-38167FDEA5C5}GVIMCS"); +- Sleep(40); /* as stated in MS KB we must wait 40 ms */ +- consolewnd = FindWindow(NULL, +- "GVIMCS{5499421B-CBEF-45b0-85EF-38167FDEA5C5}GVIMCS"); +- if (consolewnd != NULL) +- ShowWindow(consolewnd, SW_HIDE); +- SetConsoleTitle(title); +- vim_free(title); +- } +- } +- # endif +- /* May be use &shell, &shellquote etc */ +- # ifdef __BORLANDC__ +- /* BCC 5.5 uses a different function name for spawnlp */ +- ph = (long_i)spawnlp(P_NOWAIT, prog, cmd, NULL); +- # else +- ph = (long_i)_spawnlp(_P_NOWAIT, prog, cmd, NULL); +- # endif +- vim_free(prog); +- vim_free(cmd); +- # ifdef FEAT_GUI +- /* Dirty hack part two */ +- if (activewnd != NULL) +- /* restoring focus */ +- SetForegroundWindow(activewnd); +- if (consolewnd != NULL) +- FreeConsole(); +- +- # endif +- if (ph == -1) +- { +- PERROR(_("cs_create_connection exec failed")); +- (void)EMSG(_("E623: Could not spawn cscope process")); +- goto err_closing; +- } +- /* else */ +- csinfo[i].pid = 0; +- csinfo[i].hProc = (HANDLE)ph; +- +- #endif /* !UNIX */ + /* + * Save the file descriptors for later duplication, and + * reopen as streams. +--- 867,872 ---- +*************** +*** 914,935 **** + if ((csinfo[i].fr_fp = fdopen(from_cs[0], "r")) == NULL) + PERROR(_("cs_create_connection: fdopen for fr_fp failed")); + +- #if defined(UNIX) + /* close unused */ + (void)close(to_cs[0]); + (void)close(from_cs[1]); + + break; + } + #else +! /* restore stdhandles */ +! dup2(in_save, STDIN_FILENO); +! dup2(out_save, STDOUT_FILENO); +! dup2(err_save, STDERR_FILENO); +! close(in_save); +! close(out_save); +! close(err_save); +! #endif + return CSCOPE_SUCCESS; + } /* cs_create_connection */ + +--- 876,927 ---- + if ((csinfo[i].fr_fp = fdopen(from_cs[0], "r")) == NULL) + PERROR(_("cs_create_connection: fdopen for fr_fp failed")); + + /* close unused */ + (void)close(to_cs[0]); + (void)close(from_cs[1]); + + break; + } ++ + #else +! /* WIN32 */ +! /* Create a new process to run cscope and use pipes to talk with it */ +! GetStartupInfo(&si); +! si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; +! si.wShowWindow = SW_HIDE; /* Hide child application window */ +! si.hStdOutput = stdout_wr; +! si.hStdError = stdout_wr; +! si.hStdInput = stdin_rd; +! created = CreateProcess(NULL, cmd, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, +! NULL, NULL, &si, &pi); +! vim_free(prog); +! vim_free(cmd); +! +! if (!created) +! { +! PERROR(_("cs_create_connection exec failed")); +! (void)EMSG(_("E623: Could not spawn cscope process")); +! goto err_closing; +! } +! /* else */ +! csinfo[i].pid = pi.dwProcessId; +! csinfo[i].hProc = pi.hProcess; +! CloseHandle(pi.hThread); +! +! /* TODO - tidy up after failure to create files on pipe handles. */ +! if (((fd = _open_osfhandle((intptr_t)stdin_wr, _O_TEXT|_O_APPEND)) < 0) +! || ((csinfo[i].to_fp = _fdopen(fd, "w")) == NULL)) +! PERROR(_("cs_create_connection: fdopen for to_fp failed")); +! if (((fd = _open_osfhandle((intptr_t)stdout_rd, _O_TEXT|_O_RDONLY)) < 0) +! || ((csinfo[i].fr_fp = _fdopen(fd, "r")) == NULL)) +! PERROR(_("cs_create_connection: fdopen for fr_fp failed")); +! +! /* Close handles for file descriptors inherited by the cscope process */ +! CloseHandle(stdin_rd); +! CloseHandle(stdout_wr); +! +! #endif /* !UNIX */ +! + return CSCOPE_SUCCESS; + } /* cs_create_connection */ + +*************** +*** 2097,2104 **** + /* + * PRIVATE: cs_release_csp + * +! * does the actual free'ing for the cs ptr with an optional flag of whether +! * or not to free the filename. called by cs_kill and cs_reset. + */ + static void + cs_release_csp(i, freefnpp) +--- 2089,2096 ---- + /* + * PRIVATE: cs_release_csp + * +! * Does the actual free'ing for the cs ptr with an optional flag of whether +! * or not to free the filename. Called by cs_kill and cs_reset. + */ + static void + cs_release_csp(i, freefnpp) +*************** +*** 2116,2125 **** + (void)fputs("q\n", csinfo[i].to_fp); + (void)fflush(csinfo[i].to_fp); + } +! /* give cscope chance to exit normally */ +! if (csinfo[i].hProc != NULL +! && WaitForSingleObject(csinfo[i].hProc, 1000) == WAIT_TIMEOUT) +! TerminateProcess(csinfo[i].hProc, 0); + #endif + + if (csinfo[i].fr_fp != NULL) +--- 2108,2120 ---- + (void)fputs("q\n", csinfo[i].to_fp); + (void)fflush(csinfo[i].to_fp); + } +! if (csinfo[i].hProc != NULL) +! { +! /* Give cscope a chance to exit normally */ +! if (WaitForSingleObject(csinfo[i].hProc, 1000) == WAIT_TIMEOUT) +! TerminateProcess(csinfo[i].hProc, 0); +! CloseHandle(csinfo[i].hProc); +! } + #endif + + if (csinfo[i].fr_fp != NULL) +*************** +*** 2301,2306 **** +--- 2296,2316 ---- + wait_return(TRUE); + return CSCOPE_SUCCESS; + } /* cs_show */ ++ ++ ++ /* ++ * PUBLIC: cs_end ++ * ++ * Only called when VIM exits to quit any cscope sessions. ++ */ ++ void ++ cs_end() ++ { ++ int i; ++ ++ for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) ++ cs_release_csp(i, TRUE); ++ } + + #endif /* FEAT_CSCOPE */ + +*** ../vim-7.1.099/src/if_cscope.h Thu Jun 30 23:59:58 2005 +--- src/if_cscope.h Sun Sep 2 16:51:08 2007 +*************** +*** 72,78 **** + ino_t st_ino; /* inode number of cscope db */ + #else + # if defined(WIN32) +! int pid; /* Can't get pid so set it to 0 ;) */ + HANDLE hProc; /* cscope process handle */ + DWORD nVolume; /* Volume serial number, instead of st_dev */ + DWORD nIndexHigh; /* st_ino has no meaning in the Windows */ +--- 72,78 ---- + ino_t st_ino; /* inode number of cscope db */ + #else + # if defined(WIN32) +! DWORD pid; /* PID of the connected cscope process. */ + HANDLE hProc; /* cscope process handle */ + DWORD nVolume; /* Volume serial number, instead of st_dev */ + DWORD nIndexHigh; /* st_ino has no meaning in the Windows */ +*** ../vim-7.1.099/src/main.c Thu Aug 30 12:24:21 2007 +--- src/main.c Sun Sep 2 16:44:36 2007 +*************** +*** 1331,1336 **** +--- 1331,1339 ---- + #ifdef FEAT_NETBEANS_INTG + netbeans_end(); + #endif ++ #ifdef FEAT_CSCOPE ++ cs_end(); ++ #endif + + mch_exit(exitval); + } +*************** +*** 3671,3677 **** + mainerr_arg_missing((char_u *)filev[-1]); + if (mch_dirname(cwd, MAXPATHL) != OK) + return NULL; +! if ((p = vim_strsave_escaped_ext(cwd, PATH_ESC_CHARS, '\\', TRUE)) == NULL) + return NULL; + ga_init2(&ga, 1, 100); + ga_concat(&ga, (char_u *)":cd "); +--- 3674,3686 ---- + mainerr_arg_missing((char_u *)filev[-1]); + if (mch_dirname(cwd, MAXPATHL) != OK) + return NULL; +! if ((p = vim_strsave_escaped_ext(cwd, +! #ifdef BACKSLASH_IN_FILENAME +! "", /* rem_backslash() will tell what chars to escape */ +! #else +! PATH_ESC_CHARS, +! #endif +! '\\', TRUE)) == NULL) + return NULL; + ga_init2(&ga, 1, 100); + ga_concat(&ga, (char_u *)":cd "); +*** ../vim-7.1.099/src/proto/if_cscope.pro Sat May 5 19:15:39 2007 +--- src/proto/if_cscope.pro Sun Sep 2 16:51:34 2007 +*************** +*** 6,9 **** +--- 6,10 ---- + void cs_free_tags __ARGS((void)); + void cs_print_tags __ARGS((void)); + int cs_connection __ARGS((int num, char_u *dbpath, char_u *ppath)); ++ void cs_end __ARGS((void)); + /* vim: set ft=c : */ +*** ../vim-7.1.099/src/version.c Thu Sep 6 16:33:47 2007 +--- src/version.c Thu Sep 6 17:27:51 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 100, + /**/ + +-- +I have to exercise early in the morning before my brain +figures out what I'm doing. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.101 b/7.1.101 new file mode 100644 index 00000000..65ea8c62 --- /dev/null +++ b/7.1.101 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: patch 7.1.101 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.101 +Problem: Ruby: The Buffer.line= method does not work. +Solution: Add the "self" argument to set_current_line(). (Jonathan Hankins) +Files: src/if_ruby.c + + +*** ../vim-7.1.100/src/if_ruby.c Sat May 12 15:01:49 2007 +--- src/if_ruby.c Mon Sep 10 10:40:38 2007 +*************** +*** 789,795 **** + return get_buffer_line(curbuf, curwin->w_cursor.lnum); + } + +! static VALUE set_current_line(VALUE str) + { + return set_buffer_line(curbuf, curwin->w_cursor.lnum, str); + } +--- 789,795 ---- + return get_buffer_line(curbuf, curwin->w_cursor.lnum); + } + +! static VALUE set_current_line(VALUE self, VALUE str) + { + return set_buffer_line(curbuf, curwin->w_cursor.lnum, str); + } +*** ../vim-7.1.100/src/version.c Thu Sep 6 17:38:06 2007 +--- src/version.c Thu Sep 13 14:59:47 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 101, + /**/ + +-- +The question is: What do you do with your life? +The wrong answer is: Become the richest guy in the graveyard. + (billionaire and Oracle founder Larry Ellison) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.102 b/7.1.102 new file mode 100644 index 00000000..5f58d85d --- /dev/null +++ b/7.1.102 @@ -0,0 +1,103 @@ +To: vim-dev@vim.org +Subject: patch 7.1.102 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.102 +Problem: Perl interface doesn't compile with new version of Perl. +Solution: Add two variables to the dynamic library loading. (Suresh + Govindachar) +Files: src/if_perl.xs + + +*** ../vim-7.1.101/src/if_perl.xs Wed Aug 16 19:33:57 2006 +--- src/if_perl.xs Wed Sep 5 22:00:36 2007 +*************** +*** 40,45 **** +--- 40,65 ---- + # define PERL_SUBVERSION SUBVERSION + #endif + ++ /* ++ * Quoting Jan Dubois of Active State: ++ * ActivePerl build 822 still identifies itself as 5.8.8 but already ++ * contains many of the changes from the upcoming Perl 5.8.9 release. ++ * ++ * The changes include addition of two symbols (Perl_sv_2iv_flags, ++ * Perl_newXS_flags) not present in earlier releases. ++ * ++ * Jan Dubois suggested the following guarding scheme: ++ */ ++ #if (ACTIVEPERL_VERSION >= 822) ++ # define PERL589_OR_LATER ++ #endif ++ #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 9) ++ # define PERL589_OR_LATER ++ #endif ++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 9) ++ # define PERL589_OR_LATER ++ #endif ++ + #ifndef pTHX + # define pTHX void + # define pTHX_ +*************** +*** 109,114 **** +--- 129,138 ---- + # else + # define Perl_sv_catpvn dll_Perl_sv_catpvn + # endif ++ #ifdef PERL589_OR_LATER ++ # define Perl_sv_2iv_flags dll_Perl_sv_2iv_flags ++ # define Perl_newXS_flags dll_Perl_newXS_flags ++ #endif + # define Perl_sv_free dll_Perl_sv_free + # define Perl_sv_isa dll_Perl_sv_isa + # define Perl_sv_magic dll_Perl_sv_magic +*************** +*** 192,197 **** +--- 216,225 ---- + #else + static void (*Perl_sv_catpvn)(pTHX_ SV*, const char*, STRLEN); + #endif ++ #ifdef PERL589_OR_LATER ++ static IV (*Perl_sv_2iv_flags)(pTHX_ SV* sv, I32 flags); ++ static CV * (*Perl_newXS_flags)(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags); ++ #endif + static void (*Perl_sv_free)(pTHX_ SV*); + static int (*Perl_sv_isa)(pTHX_ SV*, const char*); + static void (*Perl_sv_magic)(pTHX_ SV*, SV*, int, const char*, I32); +*************** +*** 266,271 **** +--- 294,303 ---- + {"Perl_sv_2pv_nolen", (PERL_PROC*)&Perl_sv_2pv_nolen}, + #else + {"Perl_sv_2pv", (PERL_PROC*)&Perl_sv_2pv}, ++ #endif ++ #ifdef PERL589_OR_LATER ++ {"Perl_sv_2iv_flags", (PERL_PROC*)&Perl_sv_2iv_flags}, ++ {"Perl_newXS_flags", (PERL_PROC*)&Perl_newXS_flags}, + #endif + {"Perl_sv_bless", (PERL_PROC*)&Perl_sv_bless}, + #if (PERL_REVISION == 5) && (PERL_VERSION >= 8) +*** ../vim-7.1.101/src/version.c Thu Sep 13 15:00:28 2007 +--- src/version.c Thu Sep 13 15:18:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 102, + /**/ + +-- +Witches prefer brooms: vacuum-cleaners need extension cords! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.103 b/7.1.103 new file mode 100644 index 00000000..9c391165 --- /dev/null +++ b/7.1.103 @@ -0,0 +1,57 @@ +To: vim-dev@vim.org +Subject: patch 7.1.103 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.103 +Problem: Using "dw" with the cursor past the end of the last line (using + CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase) +Solution: Don't move the cursor back when the movement failed. +Files: src/normal.c + + +*** ../vim-7.1.102/src/normal.c Tue Aug 14 22:54:00 2007 +--- src/normal.c Tue Sep 11 19:32:42 2007 +*************** +*** 8364,8370 **** + n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP); + + /* Don't leave the cursor on the NUL past a line */ +! if (curwin->w_cursor.col && gchar_cursor() == NUL) + { + --curwin->w_cursor.col; + cap->oap->inclusive = TRUE; +--- 8364,8370 ---- + n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP); + + /* Don't leave the cursor on the NUL past a line */ +! if (n != FAIL && curwin->w_cursor.col > 0 && gchar_cursor() == NUL) + { + --curwin->w_cursor.col; + cap->oap->inclusive = TRUE; +*** ../vim-7.1.102/src/version.c Thu Sep 13 15:19:32 2007 +--- src/version.c Thu Sep 13 15:32:05 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 103, + /**/ + +-- +ARTHUR: Then who is your lord? +WOMAN: We don't have a lord. +ARTHUR: What? +DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in + turns to act as a sort of executive officer for the week. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.104 b/7.1.104 new file mode 100644 index 00000000..2c330f89 --- /dev/null +++ b/7.1.104 @@ -0,0 +1,538 @@ +To: vim-dev@vim.org +Subject: patch 7.1.104 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.104 (after 7.1.095) +Problem: When 'lazyredraw' is set a focus event causes redraw to be + postponed until a key is pressed. +Solution: Instead of not returning from vgetc() when a focus event is + encountered return K_IGNORE. Add plain_vgetc() for when the + caller doesn't want to get K_IGNORE. +Files: src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c, + src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c + + +*** ../vim-7.1.103/src/digraph.c Sat Jul 7 13:57:39 2007 +--- src/digraph.c Thu Sep 13 16:11:54 2007 +*************** +*** 2028,2034 **** + + ++no_mapping; + ++allow_keys; +! c = safe_vgetc(); + --no_mapping; + --allow_keys; + if (c != ESC) /* ESC cancels CTRL-K */ +--- 2028,2034 ---- + + ++no_mapping; + ++allow_keys; +! c = plain_vgetc(); + --no_mapping; + --allow_keys; + if (c != ESC) /* ESC cancels CTRL-K */ +*************** +*** 2050,2056 **** + #endif + ++no_mapping; + ++allow_keys; +! cc = safe_vgetc(); + --no_mapping; + --allow_keys; + if (cc != ESC) /* ESC cancels CTRL-K */ +--- 2050,2056 ---- + #endif + ++no_mapping; + ++allow_keys; +! cc = plain_vgetc(); + --no_mapping; + --allow_keys; + if (cc != ESC) /* ESC cancels CTRL-K */ +*************** +*** 2350,2356 **** + if (*curbuf->b_p_keymap == NUL) + { + /* Stop any active keymap and clear the table. Also remove +! * b:keymap_unload, as no keymap is active now. */ + keymap_unload(); + do_cmdline_cmd((char_u *)"unlet! b:keymap_name"); + } +--- 2350,2356 ---- + if (*curbuf->b_p_keymap == NUL) + { + /* Stop any active keymap and clear the table. Also remove +! * b:keymap_name, as no keymap is active now. */ + keymap_unload(); + do_cmdline_cmd((char_u *)"unlet! b:keymap_name"); + } +*** ../vim-7.1.103/src/edit.c Sun Aug 12 16:38:03 2007 +--- src/edit.c Thu Sep 13 16:17:54 2007 +*************** +*** 788,794 **** + ins_redraw(FALSE); + ++no_mapping; + ++allow_keys; +! c = safe_vgetc(); + --no_mapping; + --allow_keys; + if (c != Ctrl_N && c != Ctrl_G && c != Ctrl_O) +--- 788,794 ---- + ins_redraw(FALSE); + ++no_mapping; + ++allow_keys; +! c = plain_vgetc(); + --no_mapping; + --allow_keys; + if (c != Ctrl_N && c != Ctrl_G && c != Ctrl_O) +*************** +*** 981,987 **** + #ifdef FEAT_NETBEANS_INTG + case K_F21: /* NetBeans command */ + ++no_mapping; /* don't map the next key hits */ +! i = safe_vgetc(); + --no_mapping; + netbeans_keycommand(i); + break; +--- 981,987 ---- + #ifdef FEAT_NETBEANS_INTG + case K_F21: /* NetBeans command */ + ++no_mapping; /* don't map the next key hits */ +! i = plain_vgetc(); + --no_mapping; + netbeans_keycommand(i); + break; +*************** +*** 5224,5233 **** + i = 0; + for (;;) + { +! do +! nc = safe_vgetc(); +! while (nc == K_IGNORE || nc == K_VER_SCROLLBAR +! || nc == K_HOR_SCROLLBAR); + #ifdef FEAT_CMDL_INFO + if (!(State & CMDLINE) + # ifdef FEAT_MBYTE +--- 5224,5230 ---- + i = 0; + for (;;) + { +! nc = plain_vgetc(); + #ifdef FEAT_CMDL_INFO + if (!(State & CMDLINE) + # ifdef FEAT_MBYTE +*************** +*** 7575,7581 **** + * deleted when ESC is hit. + */ + ++no_mapping; +! regname = safe_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(regname, TRUE); + #endif +--- 7572,7578 ---- + * deleted when ESC is hit. + */ + ++no_mapping; +! regname = plain_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(regname, TRUE); + #endif +*************** +*** 7586,7592 **** + #ifdef FEAT_CMDL_INFO + add_to_showcmd_c(literally); + #endif +! regname = safe_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(regname, TRUE); + #endif +--- 7583,7589 ---- + #ifdef FEAT_CMDL_INFO + add_to_showcmd_c(literally); + #endif +! regname = plain_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(regname, TRUE); + #endif +*************** +*** 7677,7683 **** + * deleted when ESC is hit. + */ + ++no_mapping; +! c = safe_vgetc(); + --no_mapping; + switch (c) + { +--- 7674,7680 ---- + * deleted when ESC is hit. + */ + ++no_mapping; +! c = plain_vgetc(); + --no_mapping; + switch (c) + { +*************** +*** 9356,9362 **** + * mode message to be deleted when ESC is hit */ + ++no_mapping; + ++allow_keys; +! c = safe_vgetc(); + --no_mapping; + --allow_keys; + if (IS_SPECIAL(c) || mod_mask) /* special key */ +--- 9353,9359 ---- + * mode message to be deleted when ESC is hit */ + ++no_mapping; + ++allow_keys; +! c = plain_vgetc(); + --no_mapping; + --allow_keys; + if (IS_SPECIAL(c) || mod_mask) /* special key */ +*************** +*** 9388,9394 **** + } + ++no_mapping; + ++allow_keys; +! cc = safe_vgetc(); + --no_mapping; + --allow_keys; + if (cc != ESC) +--- 9385,9391 ---- + } + ++no_mapping; + ++allow_keys; +! cc = plain_vgetc(); + --no_mapping; + --allow_keys; + if (cc != ESC) +*** ../vim-7.1.103/src/ex_cmds.c Tue Aug 21 15:28:32 2007 +--- src/ex_cmds.c Thu Sep 13 16:19:40 2007 +*************** +*** 4498,4504 **** + * + * The new text is built up in new_start[]. It has some extra + * room to avoid using alloc()/free() too often. new_start_len is +! * the lenght of the allocated memory at new_start. + * + * Make a copy of the old line, so it won't be taken away when + * updating the screen or handling a multi-line match. The "old_" +--- 4499,4505 ---- + * + * The new text is built up in new_start[]. It has some extra + * room to avoid using alloc()/free() too often. new_start_len is +! * the length of the allocated memory at new_start. + * + * Make a copy of the old line, so it won't be taken away when + * updating the screen or handling a multi-line match. The "old_" +*************** +*** 4669,4675 **** + #endif + ++no_mapping; /* don't map this key */ + ++allow_keys; /* allow special keys */ +! i = safe_vgetc(); + --allow_keys; + --no_mapping; + +--- 4670,4676 ---- + #endif + ++no_mapping; /* don't map this key */ + ++allow_keys; /* allow special keys */ +! i = plain_vgetc(); + --allow_keys; + --no_mapping; + +*** ../vim-7.1.103/src/ex_getln.c Mon Aug 6 22:27:12 2007 +--- src/ex_getln.c Thu Sep 13 16:20:49 2007 +*************** +*** 641,647 **** + { + ++no_mapping; + ++allow_keys; +! c = safe_vgetc(); + --no_mapping; + --allow_keys; + /* CTRL-\ e doesn't work when obtaining an expression. */ +--- 641,647 ---- + { + ++no_mapping; + ++allow_keys; +! c = plain_vgetc(); + --no_mapping; + --allow_keys; + /* CTRL-\ e doesn't work when obtaining an expression. */ +*************** +*** 1091,1101 **** + #endif + putcmdline('"', TRUE); + ++no_mapping; +! i = c = safe_vgetc(); /* CTRL-R */ + if (i == Ctrl_O) + i = Ctrl_R; /* CTRL-R CTRL-O == CTRL-R CTRL-R */ + if (i == Ctrl_R) +! c = safe_vgetc(); /* CTRL-R CTRL-R */ + --no_mapping; + #ifdef FEAT_EVAL + /* +--- 1091,1101 ---- + #endif + putcmdline('"', TRUE); + ++no_mapping; +! i = c = plain_vgetc(); /* CTRL-R */ + if (i == Ctrl_O) + i = Ctrl_R; /* CTRL-R CTRL-O == CTRL-R CTRL-R */ + if (i == Ctrl_R) +! c = plain_vgetc(); /* CTRL-R CTRL-R */ + --no_mapping; + #ifdef FEAT_EVAL + /* +*** ../vim-7.1.103/src/getchar.c Wed Sep 5 21:45:54 2007 +--- src/getchar.c Thu Sep 13 16:16:53 2007 +*************** +*** 1597,1608 **** + } + #endif + #ifdef FEAT_GUI +! /* The caller doesn't need to know that the focus event is delayed +! * until getting a character. */ + if (c == K_FOCUSGAINED || c == K_FOCUSLOST) + { + ui_focus_change(c == K_FOCUSGAINED); +! continue; + } + + /* Translate K_CSI to CSI. The special key is only used to avoid +--- 1597,1609 ---- + } + #endif + #ifdef FEAT_GUI +! /* Handle focus event here, so that the caller doesn't need to +! * know about it. Return K_IGNORE so that we loop once (needed if +! * 'lazyredraw' is set). */ + if (c == K_FOCUSGAINED || c == K_FOCUSLOST) + { + ui_focus_change(c == K_FOCUSGAINED); +! c = K_IGNORE; + } + + /* Translate K_CSI to CSI. The special key is only used to avoid +*************** +*** 1744,1749 **** +--- 1745,1766 ---- + c = vgetc(); + if (c == NUL) + c = get_keystroke(); ++ return c; ++ } ++ ++ /* ++ * Like safe_vgetc(), but loop to handle K_IGNORE. ++ * Also ignore scrollbar events. ++ */ ++ int ++ plain_vgetc() ++ { ++ int c; ++ ++ do ++ { ++ c = safe_vgetc(); ++ } while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR); + return c; + } + +*** ../vim-7.1.103/src/normal.c Thu Sep 13 15:33:18 2007 +--- src/normal.c Thu Sep 13 16:24:51 2007 +*************** +*** 696,702 **** + ++allow_keys; /* no mapping for nchar, but keys */ + } + ++no_zero_mapping; /* don't map zero here */ +! c = safe_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); + #endif +--- 696,702 ---- + ++allow_keys; /* no mapping for nchar, but keys */ + } + ++no_zero_mapping; /* don't map zero here */ +! c = plain_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); + #endif +*************** +*** 721,727 **** + ca.count0 = 0; + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but keys */ +! c = safe_vgetc(); /* get next character */ + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); + #endif +--- 721,727 ---- + ca.count0 = 0; + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but keys */ +! c = plain_vgetc(); /* get next character */ + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); + #endif +*************** +*** 900,906 **** + * For 'g' get the next character now, so that we can check for + * "gr", "g'" and "g`". + */ +! ca.nchar = safe_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(ca.nchar, TRUE); + #endif +--- 900,906 ---- + * For 'g' get the next character now, so that we can check for + * "gr", "g'" and "g`". + */ +! ca.nchar = plain_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(ca.nchar, TRUE); + #endif +*************** +*** 957,963 **** + im_set_active(TRUE); + #endif + +! *cp = safe_vgetc(); + + if (langmap_active) + { +--- 957,963 ---- + im_set_active(TRUE); + #endif + +! *cp = plain_vgetc(); + + if (langmap_active) + { +*************** +*** 1045,1051 **** + } + if (c > 0) + { +! c = safe_vgetc(); + if (c != Ctrl_N && c != Ctrl_G) + vungetc(c); + else +--- 1045,1051 ---- + } + if (c > 0) + { +! c = plain_vgetc(); + if (c != Ctrl_N && c != Ctrl_G) + vungetc(c); + else +*************** +*** 1064,1070 **** + while (enc_utf8 && lang && (c = vpeekc()) > 0 + && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1)) + { +! c = safe_vgetc(); + if (!utf_iscomposing(c)) + { + vungetc(c); /* it wasn't, put it back */ +--- 1064,1070 ---- + while (enc_utf8 && lang && (c = vpeekc()) > 0 + && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1)) + { +! c = plain_vgetc(); + if (!utf_iscomposing(c)) + { + vungetc(c); /* it wasn't, put it back */ +*************** +*** 4564,4570 **** + #endif + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ +! nchar = safe_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(nchar, TRUE); + #endif +--- 4564,4570 ---- + #endif + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ +! nchar = plain_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(nchar, TRUE); + #endif +*************** +*** 4922,4928 **** + case 'u': /* "zug" and "zuw": undo "zg" and "zw" */ + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ +! nchar = safe_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(nchar, TRUE); + #endif +--- 4922,4928 ---- + case 'u': /* "zug" and "zuw": undo "zg" and "zw" */ + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ +! nchar = plain_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(nchar, TRUE); + #endif +*** ../vim-7.1.103/src/proto/getchar.pro Sun May 6 15:04:24 2007 +--- src/proto/getchar.pro Thu Sep 13 16:13:19 2007 +*************** +*** 38,43 **** +--- 38,44 ---- + void updatescript __ARGS((int c)); + int vgetc __ARGS((void)); + int safe_vgetc __ARGS((void)); ++ int plain_vgetc __ARGS((void)); + int vpeekc __ARGS((void)); + int vpeekc_nomap __ARGS((void)); + int vpeekc_any __ARGS((void)); +*** ../vim-7.1.103/src/window.c Sun Aug 12 16:55:01 2007 +--- src/window.c Thu Sep 13 16:25:01 2007 +*************** +*** 584,590 **** + ++no_mapping; + ++allow_keys; /* no mapping for xchar, but allow key codes */ + if (xchar == NUL) +! xchar = safe_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(xchar, TRUE); + #endif +--- 584,590 ---- + ++no_mapping; + ++allow_keys; /* no mapping for xchar, but allow key codes */ + if (xchar == NUL) +! xchar = plain_vgetc(); + #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(xchar, TRUE); + #endif +*** ../vim-7.1.103/src/version.c Thu Sep 13 15:33:18 2007 +--- src/version.c Thu Sep 13 18:22:59 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 104, + /**/ + +-- +ARTHUR: I am your king! +WOMAN: Well, I didn't vote for you. +ARTHUR: You don't vote for kings. +WOMAN: Well, 'ow did you become king then? + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.105 b/7.1.105 new file mode 100644 index 00000000..34b6aad3 --- /dev/null +++ b/7.1.105 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: patch 7.1.105 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.105 +Problem: Internal error when using "0 ? {'a': 1} : {}". (A.Politz) +Solution: When parsing a dictionary value without using the value, don't try + obtaining the key name. +Files: src/eval.c + + +*** ../vim-7.1.104/src/eval.c Thu Sep 6 14:25:50 2007 +--- src/eval.c Thu Sep 13 20:29:31 2007 +*************** +*** 6746,6765 **** + clear_tv(&tvkey); + goto failret; + } +! key = get_tv_string_buf_chk(&tvkey, buf); +! if (key == NULL || *key == NUL) + { +! /* "key" is NULL when get_tv_string_buf_chk() gave an errmsg */ +! if (key != NULL) +! EMSG(_(e_emptykey)); +! clear_tv(&tvkey); +! goto failret; + } + + *arg = skipwhite(*arg + 1); + if (eval1(arg, &tv, evaluate) == FAIL) /* recursive! */ + { +! clear_tv(&tvkey); + goto failret; + } + if (evaluate) +--- 6746,6769 ---- + clear_tv(&tvkey); + goto failret; + } +! if (evaluate) + { +! key = get_tv_string_buf_chk(&tvkey, buf); +! if (key == NULL || *key == NUL) +! { +! /* "key" is NULL when get_tv_string_buf_chk() gave an errmsg */ +! if (key != NULL) +! EMSG(_(e_emptykey)); +! clear_tv(&tvkey); +! goto failret; +! } + } + + *arg = skipwhite(*arg + 1); + if (eval1(arg, &tv, evaluate) == FAIL) /* recursive! */ + { +! if (evaluate) +! clear_tv(&tvkey); + goto failret; + } + if (evaluate) +*** ../vim-7.1.104/src/version.c Thu Sep 13 18:25:08 2007 +--- src/version.c Thu Sep 13 20:36:38 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 105, + /**/ + +-- +DENNIS: Listen -- strange women lying in ponds distributing swords is no + basis for a system of government. Supreme executive power derives + from a mandate from the masses, not from some farcical aquatic + ceremony. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.106 b/7.1.106 new file mode 100644 index 00000000..359c54eb --- /dev/null +++ b/7.1.106 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: patch 7.1.106 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.106 +Problem: ":messages" doesn't quit listing on ":". +Solution: Break the loop when "got_int" is set. +Files: src/message.c + + +*** ../vim-7.1.105/src/message.c Thu Sep 6 12:53:59 2007 +--- src/message.c Thu Sep 13 21:45:57 2007 +*************** +*** 828,834 **** + _("Messages maintainer: Bram Moolenaar "), + hl_attr(HLF_T)); + +! for (p = first_msg_hist; p != NULL; p = p->next) + if (p->msg != NULL) + msg_attr(p->msg, p->attr); + +--- 828,834 ---- + _("Messages maintainer: Bram Moolenaar "), + hl_attr(HLF_T)); + +! for (p = first_msg_hist; p != NULL && !got_int; p = p->next) + if (p->msg != NULL) + msg_attr(p->msg, p->attr); + +*** ../vim-7.1.105/src/version.c Thu Sep 13 20:39:58 2007 +--- src/version.c Thu Sep 13 21:57:40 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 106, + /**/ + +-- +I'm sure that I asked CBuilder to do a "full" install. Looks like I got +a "fool" install, instead. Charles E Campbell, Jr, PhD + + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.107 b/7.1.107 new file mode 100644 index 00000000..586219d9 --- /dev/null +++ b/7.1.107 @@ -0,0 +1,130 @@ +To: vim-dev@vim.org +Subject: patch 7.1.107 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.107 +Problem: When doing a block selection and using "s" to change the text, + while triggering auto-indenting, causes the wrong text to be + repeated in other lines. (Adri Verhoef) +Solution: Compute the change of indent and compensate for that. +Files: src/ops.c + + +*** ../vim-7.1.106/src/ops.c Thu Jun 28 22:14:28 2007 +--- src/ops.c Thu Aug 30 11:41:10 2007 +*************** +*** 2477,2483 **** + + /* + * Spaces and tabs in the indent may have changed to other spaces and +! * tabs. Get the starting column again and correct the lenght. + * Don't do this when "$" used, end-of-line will have changed. + */ + block_prep(oap, &bd2, oap->start.lnum, TRUE); +--- 2477,2483 ---- + + /* + * Spaces and tabs in the indent may have changed to other spaces and +! * tabs. Get the starting column again and correct the length. + * Don't do this when "$" used, end-of-line will have changed. + */ + block_prep(oap, &bd2, oap->start.lnum, TRUE); +*************** +*** 2534,2540 **** + #ifdef FEAT_VISUALEXTRA + long offset; + linenr_T linenr; +! long ins_len, pre_textlen = 0; + char_u *firstline; + char_u *ins_text, *newp, *oldp; + struct block_def bd; +--- 2534,2542 ---- + #ifdef FEAT_VISUALEXTRA + long offset; + linenr_T linenr; +! long ins_len; +! long pre_textlen = 0; +! long pre_indent = 0; + char_u *firstline; + char_u *ins_text, *newp, *oldp; + struct block_def bd; +*************** +*** 2579,2585 **** + || gchar_cursor() == NUL)) + coladvance_force(getviscol()); + # endif +! pre_textlen = (long)STRLEN(ml_get(oap->start.lnum)); + bd.textcol = curwin->w_cursor.col; + } + #endif +--- 2581,2589 ---- + || gchar_cursor() == NUL)) + coladvance_force(getviscol()); + # endif +! firstline = ml_get(oap->start.lnum); +! pre_textlen = (long)STRLEN(firstline); +! pre_indent = (long)(skipwhite(firstline) - firstline); + bd.textcol = curwin->w_cursor.col; + } + #endif +*************** +*** 2598,2610 **** + */ + if (oap->block_mode && oap->start.lnum != oap->end.lnum) + { + firstline = ml_get(oap->start.lnum); +! /* +! * Subsequent calls to ml_get() flush the firstline data - take a +! * copy of the required bit. +! */ +! if ((ins_len = (long)STRLEN(firstline) - pre_textlen) > 0) + { + if ((ins_text = alloc_check((unsigned)(ins_len + 1))) != NULL) + { + vim_strncpy(ins_text, firstline + bd.textcol, (size_t)ins_len); +--- 2602,2623 ---- + */ + if (oap->block_mode && oap->start.lnum != oap->end.lnum) + { ++ /* Auto-indenting may have changed the indent. If the cursor was past ++ * the indent, exclude that indent change from the inserted text. */ + firstline = ml_get(oap->start.lnum); +! if (bd.textcol > pre_indent) +! { +! long new_indent = (long)(skipwhite(firstline) - firstline); +! +! pre_textlen += new_indent - pre_indent; +! bd.textcol += new_indent - pre_indent; +! } +! +! ins_len = (long)STRLEN(firstline) - pre_textlen; +! if (ins_len > 0) + { ++ /* Subsequent calls to ml_get() flush the firstline data - take a ++ * copy of the inserted text. */ + if ((ins_text = alloc_check((unsigned)(ins_len + 1))) != NULL) + { + vim_strncpy(ins_text, firstline + bd.textcol, (size_t)ins_len); +*** ../vim-7.1.106/src/version.c Thu Sep 13 22:04:30 2007 +--- src/version.c Thu Sep 13 22:38:28 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 107, + /**/ + +-- +Windows +M!uqoms + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.108 b/7.1.108 new file mode 100644 index 00000000..a70620ad --- /dev/null +++ b/7.1.108 @@ -0,0 +1,78 @@ +To: vim-dev@vim.org +Subject: patch 7.1.108 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.108 (after 7.1.100) +Problem: Win32: Compilation problems in Cscope code. (Jeff Lanzarotta) +Solution: Use (long) instead of (intptr_t) when it's not defined. +Files: src/if_cscope.c + + +*** ../vim-7.1.107/src/if_cscope.c Thu Sep 6 17:38:06 2007 +--- src/if_cscope.c Wed Sep 12 20:32:17 2007 +*************** +*** 726,731 **** +--- 726,740 ---- + HANDLE stdin_rd, stdout_rd; + HANDLE stdout_wr, stdin_wr; + BOOL created; ++ # ifdef __BORLANDC__ ++ # define OPEN_OH_ARGTYPE long ++ # else ++ # if (_MSC_VER >= 1300) ++ # define OPEN_OH_ARGTYPE intptr_t ++ # else ++ # define OPEN_OH_ARGTYPE long ++ # endif ++ # endif + #endif + + #if defined(UNIX) +*************** +*** 909,918 **** + CloseHandle(pi.hThread); + + /* TODO - tidy up after failure to create files on pipe handles. */ +! if (((fd = _open_osfhandle((intptr_t)stdin_wr, _O_TEXT|_O_APPEND)) < 0) + || ((csinfo[i].to_fp = _fdopen(fd, "w")) == NULL)) + PERROR(_("cs_create_connection: fdopen for to_fp failed")); +! if (((fd = _open_osfhandle((intptr_t)stdout_rd, _O_TEXT|_O_RDONLY)) < 0) + || ((csinfo[i].fr_fp = _fdopen(fd, "r")) == NULL)) + PERROR(_("cs_create_connection: fdopen for fr_fp failed")); + +--- 918,929 ---- + CloseHandle(pi.hThread); + + /* TODO - tidy up after failure to create files on pipe handles. */ +! if (((fd = _open_osfhandle((OPEN_OH_ARGTYPE)stdin_wr, +! _O_TEXT|_O_APPEND)) < 0) + || ((csinfo[i].to_fp = _fdopen(fd, "w")) == NULL)) + PERROR(_("cs_create_connection: fdopen for to_fp failed")); +! if (((fd = _open_osfhandle((OPEN_OH_ARGTYPE)stdout_rd, +! _O_TEXT|_O_RDONLY)) < 0) + || ((csinfo[i].fr_fp = _fdopen(fd, "r")) == NULL)) + PERROR(_("cs_create_connection: fdopen for fr_fp failed")); + +*** ../vim-7.1.107/src/version.c Thu Sep 13 22:40:47 2007 +--- src/version.c Fri Sep 14 19:55:12 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 108, + /**/ + +-- +Q: How many hardware engineers does it take to change a lightbulb? +A: None. We'll fix it in software. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.109 b/7.1.109 new file mode 100644 index 00000000..22367e93 --- /dev/null +++ b/7.1.109 @@ -0,0 +1,69 @@ +To: vim-dev@vim.org +Subject: patch 7.1.109 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.109 +Problem: GTK: when there are many tab pages, clicking on the arrow left of + the labels moves to the next tab page on the right. (Simeon Bird) +Solution: Check the X coordinate of the click and pass -1 as value for the + left arrow. +Files: src/gui_gtk_x11.c, src/term.c + + +*** ../vim-7.1.108/src/gui_gtk_x11.c Wed Sep 5 21:45:54 2007 +--- src/gui_gtk_x11.c Fri Sep 14 20:59:55 2007 +*************** +*** 3223,3230 **** + { + if (clicked_page == 0) + { +! /* Click after all tabs moves to next tab page. */ +! if (send_tabline_event(0) && gtk_main_level() > 0) + gtk_main_quit(); + } + #ifndef HAVE_GTK2 +--- 3223,3231 ---- + { + if (clicked_page == 0) + { +! /* Click after all tabs moves to next tab page. When "x" is +! * small guess it's the left button. */ +! if (send_tabline_event(x < 50 ? -1 : 0) && gtk_main_level() > 0) + gtk_main_quit(); + } + #ifndef HAVE_GTK2 +*** ../vim-7.1.108/src/term.c Thu May 10 20:48:32 2007 +--- src/term.c Fri Sep 14 20:56:40 2007 +*************** +*** 4809,4814 **** +--- 4809,4816 ---- + if (num_bytes == -1) + return -1; + current_tab = (int)bytes[0]; ++ if (current_tab == 255) /* -1 in a byte gives 255 */ ++ current_tab = -1; + slen += num_bytes; + } + else if (key_name[0] == (int)KS_TABMENU) +*** ../vim-7.1.108/src/version.c Fri Sep 14 19:56:18 2007 +--- src/version.c Sat Sep 15 14:05:25 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 109, + /**/ + +-- +No letters of the alphabet were harmed in the creation of this message. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.110 b/7.1.110 new file mode 100644 index 00000000..e8ff715c --- /dev/null +++ b/7.1.110 @@ -0,0 +1,66 @@ +To: vim-dev@vim.org +Subject: patch 7.1.110 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.110 (after 7.1.102) +Problem: Win32: Still compilation problems with Perl. +Solution: Change the #ifdefs. (Suresh Govindachar) +Files: src/if_perl.xs + + +*** ../vim-7.1.109/src/if_perl.xs Thu Sep 13 15:19:32 2007 +--- src/if_perl.xs Fri Sep 14 21:23:38 2007 +*************** +*** 48,60 **** + * The changes include addition of two symbols (Perl_sv_2iv_flags, + * Perl_newXS_flags) not present in earlier releases. + * +! * Jan Dubois suggested the following guarding scheme: + */ +! #if (ACTIVEPERL_VERSION >= 822) +! # define PERL589_OR_LATER +! #endif +! #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 9) +! # define PERL589_OR_LATER + #endif + #if (PERL_REVISION == 5) && (PERL_VERSION >= 9) + # define PERL589_OR_LATER +--- 48,62 ---- + * The changes include addition of two symbols (Perl_sv_2iv_flags, + * Perl_newXS_flags) not present in earlier releases. + * +! * Jan Dubois suggested the following guarding scheme. +! * +! * Active State defined ACTIVEPERL_VERSION as a string in versions before +! * 5.8.8; and so the comparison to 822 below needs to be guarded. + */ +! #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 8) +! # if (ACTIVEPERL_VERSION >= 822) || (PERL_SUBVERSION >= 9) +! # define PERL589_OR_LATER +! # endif + #endif + #if (PERL_REVISION == 5) && (PERL_VERSION >= 9) + # define PERL589_OR_LATER +*** ../vim-7.1.109/src/version.c Sat Sep 15 14:06:41 2007 +--- src/version.c Sat Sep 15 14:48:05 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 110, + /**/ + +-- +"It's so simple to be wise. Just think of something stupid to say +and then don't say it." -- Sam Levenson + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.111 b/7.1.111 new file mode 100644 index 00000000..e2b89921 --- /dev/null +++ b/7.1.111 @@ -0,0 +1,105 @@ +To: vim-dev@vim.org +Subject: patch 7.1.111 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.111 +Problem: When using ":vimgrep" with the "j" flag folds from another buffer + may be displayed. (A.Politz) +Solution: When not jumping to another buffer update the folds. +Files: src/quickfix.c + + +*** ../vim-7.1.110/src/quickfix.c Thu Jun 28 21:23:52 2007 +--- src/quickfix.c Fri Sep 14 22:16:23 2007 +*************** +*** 1612,1619 **** + } + + /* +! * If there is only one window and is the quickfix window, create a new +! * one above the quickfix window. + */ + if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win) + { +--- 1612,1619 ---- + } + + /* +! * If there is only one window and it is the quickfix window, create a +! * new one above the quickfix window. + */ + if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win) + { +*************** +*** 2981,2986 **** +--- 2981,2987 ---- + buf_T *buf; + int duplicate_name = FALSE; + int using_dummy; ++ int redraw_for_dummy = FALSE; + int found_match; + buf_T *first_match_buf = NULL; + time_t seconds = 0; +*************** +*** 3097,3102 **** +--- 3098,3104 ---- + /* Remember that a buffer with this name already exists. */ + duplicate_name = (buf != NULL); + using_dummy = TRUE; ++ redraw_for_dummy = TRUE; + + #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) + /* Don't do Filetype autocommands to avoid loading syntax and +*************** +*** 3243,3252 **** +--- 3245,3272 ---- + if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + { + if ((flags & VGR_NOJUMP) == 0) ++ { ++ buf = curbuf; + qf_jump(qi, 0, 0, eap->forceit); ++ if (buf != curbuf) ++ /* If we jumped to another buffer redrawing will already be ++ * taken care of. */ ++ redraw_for_dummy = FALSE; ++ } + } + else + EMSG2(_(e_nomatch2), s); ++ ++ /* If we loaded a dummy buffer into the current window, the autocommands ++ * may have messed up things, need to redraw and recompute folds. */ ++ if (redraw_for_dummy) ++ { ++ #ifdef FEAT_FOLDING ++ foldUpdateAll(curwin); ++ #else ++ redraw_later(NOT_VALID); ++ #endif ++ } + + theend: + vim_free(regmatch.regprog); +*** ../vim-7.1.110/src/version.c Sat Sep 15 14:48:57 2007 +--- src/version.c Sun Sep 16 13:23:48 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 111, + /**/ + +-- +Trees moving back and forth is what makes the wind blow. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.112 b/7.1.112 new file mode 100644 index 00000000..24f192b2 --- /dev/null +++ b/7.1.112 @@ -0,0 +1,64 @@ +To: vim-dev@vim.org +Subject: patch 7.1.112 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.112 +Problem: Using input() with a wrong argument may crash Vim. (A.Politz) +Solution: Init the input() return value to NULL. +Files: src/eval.c + + +*** ../vim-7.1.111/src/eval.c Thu Sep 13 20:39:58 2007 +--- src/eval.c Sat Sep 15 19:04:51 2007 +*************** +*** 11565,11578 **** + char_u *xp_arg = NULL; + + rettv->v_type = VAR_STRING; + + #ifdef NO_CONSOLE_INPUT + /* While starting up, there is no place to enter text. */ + if (no_console_input()) +- { +- rettv->vval.v_string = NULL; + return; +- } + #endif + + cmd_silent = FALSE; /* Want to see the prompt. */ +--- 11566,11577 ---- + char_u *xp_arg = NULL; + + rettv->v_type = VAR_STRING; ++ rettv->vval.v_string = NULL; + + #ifdef NO_CONSOLE_INPUT + /* While starting up, there is no place to enter text. */ + if (no_console_input()) + return; + #endif + + cmd_silent = FALSE; /* Want to see the prompt. */ +*** ../vim-7.1.111/src/version.c Sun Sep 16 13:26:56 2007 +--- src/version.c Sun Sep 16 14:19:04 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 112, + /**/ + +-- +The early bird gets the worm. If you want something else for +breakfast, get up later. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.113 b/7.1.113 new file mode 100644 index 00000000..5eed3067 --- /dev/null +++ b/7.1.113 @@ -0,0 +1,114 @@ +To: vim-dev@vim.org +Subject: patch 7.1.113 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.113 +Problem: Using map() to go over an empty list causes memory to be freed + twice. (A.Politz) +Solution: Don't clear the typeval in restore_vimvar(). +Files: src/eval.c + + +*** ../vim-7.1.112/src/eval.c Sun Sep 16 14:20:18 2007 +--- src/eval.c Sun Sep 16 19:24:49 2007 +*************** +*** 1318,1324 **** + { + hashitem_T *hi; + +- clear_tv(&vimvars[idx].vv_tv); + vimvars[idx].vv_tv = *save_tv; + if (vimvars[idx].vv_type == VAR_UNKNOWN) + { +--- 1318,1323 ---- +*************** +*** 1362,1368 **** + + if (p_verbose == 0) + --emsg_off; +- vimvars[VV_VAL].vv_str = NULL; + restore_vimvar(VV_VAL, &save_val); + + return list; +--- 1361,1366 ---- +*************** +*** 9387,9401 **** + { + typval_T rettv; + char_u *s; + + copy_tv(tv, &vimvars[VV_VAL].vv_tv); + s = expr; + if (eval1(&s, &rettv, TRUE) == FAIL) +! return FAIL; + if (*s != NUL) /* check for trailing chars after expr */ + { + EMSG2(_(e_invexpr2), s); +! return FAIL; + } + if (map) + { +--- 9386,9401 ---- + { + typval_T rettv; + char_u *s; ++ int retval = FAIL; + + copy_tv(tv, &vimvars[VV_VAL].vv_tv); + s = expr; + if (eval1(&s, &rettv, TRUE) == FAIL) +! goto theend; + if (*s != NUL) /* check for trailing chars after expr */ + { + EMSG2(_(e_invexpr2), s); +! goto theend; + } + if (map) + { +*************** +*** 9414,9423 **** + /* On type error, nothing has been removed; return FAIL to stop the + * loop. The error message was given by get_tv_number_chk(). */ + if (error) +! return FAIL; + } + clear_tv(&vimvars[VV_VAL].vv_tv); +! return OK; + } + + /* +--- 9414,9425 ---- + /* On type error, nothing has been removed; return FAIL to stop the + * loop. The error message was given by get_tv_number_chk(). */ + if (error) +! goto theend; + } ++ retval = OK; ++ theend: + clear_tv(&vimvars[VV_VAL].vv_tv); +! return retval; + } + + /* +*** ../vim-7.1.112/src/version.c Sun Sep 16 14:20:18 2007 +--- src/version.c Mon Sep 17 21:33:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 113, + /**/ + +-- +Mental Floss prevents moral decay! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.114 b/7.1.114 new file mode 100644 index 00000000..fe7c5a73 --- /dev/null +++ b/7.1.114 @@ -0,0 +1,44 @@ +To: vim-dev@vim.org +Subject: patch 7.1.114 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.114 +Problem: Memory leak in getmatches(). +Solution: Don't increment the refcount twice. +Files: src/eval.c + + +*** ../vim-7.1.113/src/eval.c Mon Sep 17 21:37:09 2007 +--- src/eval.c Sun Sep 16 19:24:49 2007 +*************** +*** 10351,10357 **** + dict = dict_alloc(); + if (dict == NULL) + return; +- ++dict->dv_refcount; + dict_add_nr_str(dict, "group", 0L, syn_id2name(cur->hlg_id)); + dict_add_nr_str(dict, "pattern", 0L, cur->pattern); + dict_add_nr_str(dict, "priority", (long)cur->priority, NULL); +--- 10355,10360 ---- +*** ../vim-7.1.113/src/version.c Mon Sep 17 21:37:09 2007 +--- src/version.c Mon Sep 17 21:54:08 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 114, + /**/ + +-- +Be nice to your kids... they'll be the ones choosing your nursing home. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.115 b/7.1.115 new file mode 100644 index 00000000..ec960241 --- /dev/null +++ b/7.1.115 @@ -0,0 +1,51 @@ +To: vim-dev@vim.org +Subject: patch 7.1.115 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.115 (after 7.1.105) +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Init variable to NULL. +Files: src/eval.c + + +*** ../vim-7.1.114/src/eval.c Mon Sep 17 21:55:02 2007 +--- src/eval.c Sun Sep 16 19:24:49 2007 +*************** +*** 6704,6710 **** + dict_T *d = NULL; + typval_T tvkey; + typval_T tv; +! char_u *key; + dictitem_T *item; + char_u *start = skipwhite(*arg + 1); + char_u buf[NUMBUFLEN]; +--- 6705,6711 ---- + dict_T *d = NULL; + typval_T tvkey; + typval_T tv; +! char_u *key = NULL; + dictitem_T *item; + char_u *start = skipwhite(*arg + 1); + char_u buf[NUMBUFLEN]; +*** ../vim-7.1.114/src/version.c Mon Sep 17 21:55:02 2007 +--- src/version.c Mon Sep 17 22:18:42 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 115, + /**/ + +-- +Proofread carefully to see if you any words out. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.116 b/7.1.116 new file mode 100644 index 00000000..f7310db9 --- /dev/null +++ b/7.1.116 @@ -0,0 +1,119 @@ +To: vim-dev@vim.org +Subject: patch 7.1.116 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.116 +Problem: Cannot display Unicode characters above 0x10000. +Solution: Remove the replacement with a question mark when UNICODE16 is not + defined. (partly by Nicolas Weber) +Files: src/screen.c + + +*** ../vim-7.1.115/src/screen.c Thu Aug 30 13:51:52 2007 +--- src/screen.c Mon Sep 10 22:29:42 2007 +*************** +*** 2305,2313 **** +--- 2305,2315 ---- + prev_c = u8c; + #endif + /* Non-BMP character: display as ? or fullwidth ?. */ ++ #ifdef UNICODE16 + if (u8c >= 0x10000) + ScreenLinesUC[idx] = (cells == 2) ? 0xff1f : (int)'?'; + else ++ #endif + ScreenLinesUC[idx] = u8c; + for (i = 0; i < Screen_mco; ++i) + { +*************** +*** 3678,3690 **** + if ((mb_l == 1 && c >= 0x80) + || (mb_l >= 1 && mb_c == 0) + || (mb_l > 1 && (!vim_isprintc(mb_c) +! || mb_c >= 0x10000))) + { + /* + * Illegal UTF-8 byte: display as . + * Non-BMP character : display as ? or fullwidth ?. + */ + if (mb_c < 0x10000) + { + transchar_hex(extra, mb_c); + # ifdef FEAT_RIGHTLEFT +--- 3680,3697 ---- + if ((mb_l == 1 && c >= 0x80) + || (mb_l >= 1 && mb_c == 0) + || (mb_l > 1 && (!vim_isprintc(mb_c) +! # ifdef UNICODE16 +! || mb_c >= 0x10000 +! # endif +! ))) + { + /* + * Illegal UTF-8 byte: display as . + * Non-BMP character : display as ? or fullwidth ?. + */ ++ # ifdef UNICODE16 + if (mb_c < 0x10000) ++ # endif + { + transchar_hex(extra, mb_c); + # ifdef FEAT_RIGHTLEFT +*************** +*** 3692,3702 **** +--- 3699,3711 ---- + rl_mirror(extra); + # endif + } ++ # ifdef UNICODE16 + else if (utf_char2cells(mb_c) != 2) + STRCPY(extra, "?"); + else + /* 0xff1f in UTF-8: full-width '?' */ + STRCPY(extra, "\357\274\237"); ++ # endif + + p_extra = extra; + c = *p_extra; +*************** +*** 6245,6250 **** +--- 6254,6260 ---- + else + u8c = utfc_ptr2char(ptr, u8cc); + mbyte_cells = utf_char2cells(u8c); ++ # ifdef UNICODE16 + /* Non-BMP character: display as ? or fullwidth ?. */ + if (u8c >= 0x10000) + { +*************** +*** 6252,6257 **** +--- 6262,6268 ---- + if (attr == 0) + attr = hl_attr(HLF_8); + } ++ # endif + # ifdef FEAT_ARABIC + if (p_arshape && !p_tbidi && ARABIC_CHAR(u8c)) + { +*** ../vim-7.1.116/src/version.c Mon Sep 17 22:19:43 2007 +--- src/version.c Mon Sep 17 22:37:31 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 116, + /**/ + +-- +There can't be a crisis today, my schedule is already full. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.024 b/7.1.117 similarity index 54% rename from 7.0.024 rename to 7.1.117 index 017335ef..dcb291b5 100644 --- a/7.0.024 +++ b/7.1.117 @@ -1,5 +1,5 @@ To: vim-dev@vim.org -Subject: Patch 7.0.024 +Subject: patch 7.1.117 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 @@ -7,38 +7,34 @@ Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ -Patch 7.0.024 -Problem: It is possible to set arbitrary "v:" variables. -Solution: Disallow setting "v:" variables that are not predefined. +Patch 7.1.117 +Problem: Can't check wether Vim was compiled with Gnome. (Tony Mechelynck) +Solution: Add gui_gnome to the has() list. Files: src/eval.c -*** ../vim-7.0.023/src/eval.c Sat May 13 13:36:47 2006 ---- src/eval.c Thu Jun 22 17:27:51 2006 +*** ../vim-7.1.116/src/eval.c Mon Sep 17 22:19:43 2007 +--- src/eval.c Sun Sep 16 19:24:49 2007 *************** -*** 17759,17764 **** ---- 17763,17775 ---- - } - else /* add a new variable */ - { -+ /* Can't add "v:" variable. */ -+ if (ht == &vimvarht) -+ { -+ EMSG2(_(e_illvar), name); -+ return; -+ } -+ - /* Make sure the variable name is valid. */ - for (p = varname; *p != NUL; ++p) - if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p)) -*** ../vim-7.0.023/src/version.c Thu Jun 22 16:48:43 2006 ---- src/version.c Thu Jun 22 17:30:59 2006 +*** 10879,10884 **** +--- 10883,10891 ---- + "gui_gtk2", + # endif + #endif ++ #ifdef FEAT_GUI_GNOME ++ "gui_gnome", ++ #endif + #ifdef FEAT_GUI_MAC + "gui_mac", + #endif +*** ../vim-7.1.116/src/version.c Mon Sep 17 22:38:49 2007 +--- src/version.c Tue Sep 25 12:48:59 2007 *************** *** 668,669 **** --- 668,671 ---- { /* Add new patch number below this line */ + /**/ -+ 24, ++ 117, /**/ -- diff --git a/7.1.118 b/7.1.118 new file mode 100644 index 00000000..2b08815b --- /dev/null +++ b/7.1.118 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: patch 7.1.118 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.118 (after 7.1.107) +Problem: Compiler warning for Visual C compiler. +Solution: Add typecast. (Mike Williams) +Files: src/ops.c + + +*** ../vim-7.1.117/src/ops.c Thu Sep 13 22:40:47 2007 +--- src/ops.c Mon Sep 24 18:30:09 2007 +*************** +*** 2605,2611 **** + /* Auto-indenting may have changed the indent. If the cursor was past + * the indent, exclude that indent change from the inserted text. */ + firstline = ml_get(oap->start.lnum); +! if (bd.textcol > pre_indent) + { + long new_indent = (long)(skipwhite(firstline) - firstline); + +--- 2605,2611 ---- + /* Auto-indenting may have changed the indent. If the cursor was past + * the indent, exclude that indent change from the inserted text. */ + firstline = ml_get(oap->start.lnum); +! if (bd.textcol > (colnr_T)pre_indent) + { + long new_indent = (long)(skipwhite(firstline) - firstline); + +*** ../vim-7.1.117/src/version.c Tue Sep 25 12:50:00 2007 +--- src/version.c Tue Sep 25 14:18:37 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 118, + /**/ + +-- +BRIDGEKEEPER: What is your favorite editor? +GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm! + "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.119 b/7.1.119 new file mode 100644 index 00000000..20159fc8 --- /dev/null +++ b/7.1.119 @@ -0,0 +1,59 @@ +To: vim-dev@vim.org +Subject: patch 7.1.119 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.119 +Problem: Crash when 'cmdheight' set to very large value. (A.Politz) +Solution: Limit 'cmdheight' to 'lines' minus one. Store right value of + 'cmdheight' when running out of room. +Files: src/option.c, src/window.c + + +*** ../vim-7.1.118/src/option.c Thu Sep 6 16:33:47 2007 +--- src/option.c Tue Sep 25 12:17:35 2007 +*************** +*** 7824,7829 **** +--- 7824,7831 ---- + errmsg = e_positive; + p_ch = 1; + } ++ if (p_ch > Rows - min_rows() + 1) ++ p_ch = Rows - min_rows() + 1; + + /* Only compute the new window layout when startup has been + * completed. Otherwise the frame sizes may be wrong. */ +*** ../vim-7.1.118/src/window.c Thu Sep 13 18:25:08 2007 +--- src/window.c Tue Sep 25 12:13:56 2007 +*************** +*** 5523,5528 **** +--- 5523,5529 ---- + { + EMSG(_(e_noroom)); + p_ch = old_p_ch; ++ curtab->tp_ch_used = p_ch; + cmdline_row = Rows - p_ch; + break; + } +*** ../vim-7.1.118/src/version.c Tue Sep 25 14:19:35 2007 +--- src/version.c Tue Sep 25 14:48:14 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 119, + /**/ + +-- +Q: Why does /dev/null accept only integers? +A: You can't sink a float. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.120 b/7.1.120 new file mode 100644 index 00000000..e2ff367e --- /dev/null +++ b/7.1.120 @@ -0,0 +1,558 @@ +To: vim-dev@vim.org +Subject: patch 7.1.120 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.120 +Problem: Can't properly check memory leaks while running tests. +Solution: Add an argument to garbagecollect(). Delete functions and + variables in the test scripts. +Files: runtime/doc/eval.txt, src/eval.c, src/globals.h, src/main.c, + src/testdir/Makefile, src/testdir/test14.in, + src/testdir/test26.in, src/testdir/test34.in, + src/testdir/test45.in, src/testdir/test47.in, + src/testdir/test49.in, src/testdir/test55.in, + src/testdir/test56.in, src/testdir/test58.in, + src/testdir/test59.in, src/testdir/test60.in, + src/testdir/test60.vim, src/testdir/test62.in, + src/testdir/test63.in, src/testdir/test64.in + + +*** ../vim-7.1.119/runtime/doc/eval.txt Thu Jul 26 22:55:11 2007 +--- runtime/doc/eval.txt Tue Sep 25 17:40:30 2007 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.1. Last change: 2007 Jul 25 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.1. Last change: 2007 Sep 25 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1603,1609 **** + foldtextresult( {lnum}) String text for closed fold at {lnum} + foreground( ) Number bring the Vim window to the foreground + function( {name}) Funcref reference to function {name} +! garbagecollect() none free memory, breaking cyclic references + get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def} + get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def} + getbufline( {expr}, {lnum} [, {end}]) +--- 1603,1609 ---- + foldtextresult( {lnum}) String text for closed fold at {lnum} + foreground( ) Number bring the Vim window to the foreground + function( {name}) Funcref reference to function {name} +! garbagecollect( [at_exit]) none free memory, breaking cyclic references + get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def} + get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def} + getbufline( {expr}, {lnum} [, {end}]) +*************** +*** 2673,2679 **** + {name} can be a user defined function or an internal function. + + +! garbagecollect() *garbagecollect()* + Cleanup unused |Lists| and |Dictionaries| that have circular + references. There is hardly ever a need to invoke this + function, as it is automatically done when Vim runs out of +--- 2673,2679 ---- + {name} can be a user defined function or an internal function. + + +! garbagecollect([at_exit]) *garbagecollect()* + Cleanup unused |Lists| and |Dictionaries| that have circular + references. There is hardly ever a need to invoke this + function, as it is automatically done when Vim runs out of +*************** +*** 2683,2688 **** +--- 2683,2691 ---- + This is useful if you have deleted a very big |List| and/or + |Dictionary| with circular references in a script that runs + for a long time. ++ When the optional "at_exit" argument is one, garbage ++ collection will also be done when exiting Vim, if it wasn't ++ done before. This is useful when checking for memory leaks. + + get({list}, {idx} [, {default}]) *get()* + Get item {idx} from |List| {list}. When this item is not +*** ../vim-7.1.119/src/eval.c Tue Sep 25 12:50:00 2007 +--- src/eval.c Sun Sep 16 19:24:49 2007 +*************** +*** 6128,6133 **** +--- 6128,6134 ---- + /* Only do this once. */ + want_garbage_collect = FALSE; + may_garbage_collect = FALSE; ++ garbage_collect_at_exit = FALSE; + + /* + * 1. Go through all accessible variables and mark all lists and dicts +*************** +*** 7110,7116 **** + {"foldtextresult", 1, 1, f_foldtextresult}, + {"foreground", 0, 0, f_foreground}, + {"function", 1, 1, f_function}, +! {"garbagecollect", 0, 0, f_garbagecollect}, + {"get", 2, 3, f_get}, + {"getbufline", 2, 3, f_getbufline}, + {"getbufvar", 2, 2, f_getbufvar}, +--- 7111,7117 ---- + {"foldtextresult", 1, 1, f_foldtextresult}, + {"foreground", 0, 0, f_foreground}, + {"function", 1, 1, f_function}, +! {"garbagecollect", 0, 1, f_garbagecollect}, + {"get", 2, 3, f_get}, + {"getbufline", 2, 3, f_getbufline}, + {"getbufvar", 2, 2, f_getbufvar}, +*************** +*** 9719,9724 **** +--- 9720,9728 ---- + /* This is postponed until we are back at the toplevel, because we may be + * using Lists and Dicts internally. E.g.: ":echo [garbagecollect()]". */ + want_garbage_collect = TRUE; ++ ++ if (argvars[0].v_type != VAR_UNKNOWN && get_tv_number(&argvars[0]) == 1) ++ garbage_collect_at_exit = TRUE; + } + + /* +*** ../vim-7.1.119/src/globals.h Thu Aug 30 13:51:52 2007 +--- src/globals.h Sun Sep 16 18:42:41 2007 +*************** +*** 301,313 **** + #endif + + #ifdef FEAT_EVAL +! /* Garbage collection can only take place when we are sure there are no Lists + * or Dictionaries being used internally. This is flagged with + * "may_garbage_collect" when we are at the toplevel. + * "want_garbage_collect" is set by the garbagecollect() function, which means +! * we do garbage collection before waiting for a char at the toplevel. */ + EXTERN int may_garbage_collect INIT(= FALSE); + EXTERN int want_garbage_collect INIT(= FALSE); + + /* ID of script being sourced or was sourced to define the current function. */ + EXTERN scid_T current_SID INIT(= 0); +--- 301,317 ---- + #endif + + #ifdef FEAT_EVAL +! /* +! * Garbage collection can only take place when we are sure there are no Lists + * or Dictionaries being used internally. This is flagged with + * "may_garbage_collect" when we are at the toplevel. + * "want_garbage_collect" is set by the garbagecollect() function, which means +! * we do garbage collection before waiting for a char at the toplevel. +! * "garbage_collect_at_exit" indicates garbagecollect(1) was called. +! */ + EXTERN int may_garbage_collect INIT(= FALSE); + EXTERN int want_garbage_collect INIT(= FALSE); ++ EXTERN int garbage_collect_at_exit INIT(= FALSE); + + /* ID of script being sourced or was sourced to define the current function. */ + EXTERN scid_T current_SID INIT(= 0); +*** ../vim-7.1.119/src/main.c Thu Sep 6 17:38:06 2007 +--- src/main.c Sun Sep 16 18:44:54 2007 +*************** +*** 1334,1339 **** +--- 1334,1343 ---- + #ifdef FEAT_CSCOPE + cs_end(); + #endif ++ #ifdef FEAT_EVAL ++ if (garbage_collect_at_exit) ++ garbage_collect(); ++ #endif + + mch_exit(exitval); + } +*** ../vim-7.1.119/src/testdir/Makefile Tue Aug 14 17:28:14 2007 +--- src/testdir/Makefile Mon Sep 17 20:04:13 2007 +*************** +*** 6,12 **** + + # Uncomment this line for using valgrind. + # The output goes into a file "valgrind.$PID" (sorry, no test number). +! # VALGRIND = valgrind --tool=memcheck --num-callers=15 --logfile=valgrind + + SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ + test7.out test8.out test9.out test10.out test11.out \ +--- 6,12 ---- + + # Uncomment this line for using valgrind. + # The output goes into a file "valgrind.$PID" (sorry, no test number). +! # VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --logfile=valgrind + + SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ + test7.out test8.out test9.out test10.out test11.out \ +*************** +*** 39,45 **** + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + + clean: +! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim test.ok X* viminfo + + test1.out: test1.in + -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo +--- 39,45 ---- + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + + clean: +! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim test.ok X* valgrind.pid* viminfo + + test1.out: test1.in + -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo +*************** +*** 65,70 **** +--- 65,74 ---- + else echo $* NO OUTPUT >>test.log; \ + fi" + -rm -rf X* test.ok viminfo ++ ++ test49.out: test49.vim ++ ++ test60.out: test60.vim + + nolog: + -echo Test results: >test.log +*** ../vim-7.1.119/src/testdir/test14.in Sun Jun 13 20:24:08 2004 +--- src/testdir/test14.in Sun Sep 16 15:57:54 2007 +*************** +*** 18,23 **** +--- 18,24 ---- + : let tt = "o\65\x42\o103 \33a\xfg\o78\" + :endif + :exe "normal " . tt ++ :unlet tt + :.w >>test.out + :set vb + /^Piece +*** ../vim-7.1.119/src/testdir/test26.in Sun Jun 13 17:05:48 2004 +--- src/testdir/test26.in Sun Sep 16 16:54:19 2007 +*************** +*** 37,42 **** +--- 37,43 ---- + : endif + : endif + :endwhile ++ :unlet i j + :'t,$w! test.out + :qa! + ENDTEST +*** ../vim-7.1.119/src/testdir/test34.in Sun Apr 30 20:46:14 2006 +--- src/testdir/test34.in Sun Sep 16 21:25:47 2007 +*************** +*** 52,58 **** + ---*--- + (one + (two +! [(one again:$-5,$wq! test.out + ENDTEST + + here +--- 52,66 ---- + ---*--- + (one + (two +! [(one again:$-5,$w! test.out +! :delfunc Table +! :delfunc Compute +! :delfunc Expr1 +! :delfunc Expr2 +! :delfunc ListItem +! :delfunc ListReset +! :unlet retval counter +! :q! + ENDTEST + + here +*** ../vim-7.1.119/src/testdir/test45.in Sun Jun 13 19:57:02 2004 +--- src/testdir/test45.in Sun Sep 16 18:27:20 2007 +*************** +*** 55,60 **** +--- 55,61 ---- + /kk$ + :call append("$", foldlevel(".")) + :/^last/+1,$w! test.out ++ :delfun Flvl + :qa! + ENDTEST + +*** ../vim-7.1.119/src/testdir/test47.in Sun Jun 13 18:40:29 2004 +--- src/testdir/test47.in Sun Sep 16 18:32:03 2007 +*************** +*** 34,39 **** +--- 34,40 ---- + :call append("$", two) + :call append("$", three) + :$-2,$w! test.out ++ :unlet one two three + :qa! + ENDTEST + +*** ../vim-7.1.119/src/testdir/test49.in Sun Jun 13 18:10:00 2004 +--- src/testdir/test49.in Sun Sep 16 23:30:35 2007 +*************** +*** 1,13 **** + This is a test of the script language. + + If after adding a new test, the test output doesn't appear properly in +! test49.failed, try to add one ore more "G"s at the line before ENDTEST. + + STARTTEST + :so small.vim + :se nocp nomore viminfo+=nviminfo + :so test49.vim +! GGGGGGGGGG"rp:.-,$wq! test.out + ENDTEST + + Results of test49.vim: +--- 1,29 ---- + This is a test of the script language. + + If after adding a new test, the test output doesn't appear properly in +! test49.failed, try to add one ore more "G"s at the line ending in "test.out" + + STARTTEST + :so small.vim + :se nocp nomore viminfo+=nviminfo + :so test49.vim +! GGGGGGGGGGGGGG"rp:.-,$w! test.out +! :" +! :" make valgrind happy +! :redir => funclist +! :silent func +! :redir END +! :for line in split(funclist, "\n") +! : let name = matchstr(line, 'function \zs[A-Z]\w*\ze(') +! : if name != '' +! : exe "delfunc " . name +! : endif +! :endfor +! :for v in keys(g:) +! : silent! exe "unlet " . v +! :endfor +! :unlet v +! :qa! + ENDTEST + + Results of test49.vim: +*** ../vim-7.1.119/src/testdir/test55.in Sat May 5 20:03:56 2007 +--- src/testdir/test55.in Mon Sep 17 19:53:48 2007 +*************** +*** 345,350 **** +--- 345,354 ---- + :endfun + :call Test(1, 2, [3, 4], {5: 6}) " This may take a while + :" ++ :delfunc Test ++ :unlet dict ++ :call garbagecollect(1) ++ :" + :/^start:/,$wq! test.out + ENDTEST + +*** ../vim-7.1.119/src/testdir/test56.in Tue Sep 5 13:36:02 2006 +--- src/testdir/test56.in Sun Sep 16 17:54:20 2007 +*************** +*** 17,21 **** + fun s:DoNothing() + call append(line('$'), "nothing line") + endfun +! nnoremap _x :call DoNothing()call DoLast() + end: +--- 17,21 ---- + fun s:DoNothing() + call append(line('$'), "nothing line") + endfun +! nnoremap _x :call DoNothing()call DoLast()delfunc DoNothingdelfunc DoLast + end: +*** ../vim-7.1.119/src/testdir/test58.in Wed Apr 5 22:38:56 2006 +--- src/testdir/test58.in Sun Sep 16 18:17:03 2007 +*************** +*** 86,91 **** +--- 86,92 ---- + :$put =str + `m]s:let [str, a] = spellbadword() + :$put =str ++ :unlet str a + :" + :" Postponed prefixes + :call TestOne('2', '1') +*************** +*** 99,104 **** +--- 100,109 ---- + :" + :" NOSLITSUGS + :call TestOne('8', '8') ++ :" ++ :" clean up for valgrind ++ :delfunc TestOne ++ :set spl= enc=latin1 + :" + gg:/^test output:/,$wq! test.out + ENDTEST +*** ../vim-7.1.119/src/testdir/test59.in Wed Apr 5 22:27:11 2006 +--- src/testdir/test59.in Sun Sep 16 18:17:23 2007 +*************** +*** 90,95 **** +--- 90,96 ---- + :$put =str + `m]s:let [str, a] = spellbadword() + :$put =str ++ :unlet str a + :" + :" Postponed prefixes + :call TestOne('2', '1') +*************** +*** 100,105 **** +--- 101,110 ---- + :call TestOne('5', '5') + :call TestOne('6', '6') + :call TestOne('7', '7') ++ :" ++ :" clean up for valgrind ++ :delfunc TestOne ++ :set spl= enc=latin1 + :" + gg:/^test output:/,$wq! test.out + ENDTEST +*** ../vim-7.1.119/src/testdir/test60.in Fri May 5 23:11:11 2006 +--- src/testdir/test60.in Mon Sep 17 19:58:43 2007 +*************** +*** 569,574 **** +--- 569,577 ---- + redir END + endfunction + :call TestExists() ++ :delfunc TestExists ++ :delfunc RunTest ++ :delfunc TestFuncArg + :edit! test.out + :set ff=unix + :w +*** ../vim-7.1.119/src/testdir/test60.vim Fri Jan 13 00:14:55 2006 +--- src/testdir/test60.vim Mon Sep 17 19:56:02 2007 +*************** +*** 94,97 **** +--- 94,98 ---- + else + echo "FAILED" + endif ++ unlet str + +*** ../vim-7.1.119/src/testdir/test62.in Sun Apr 30 20:28:14 2006 +--- src/testdir/test62.in Sun Sep 16 17:24:04 2007 +*************** +*** 7,12 **** +--- 7,13 ---- + :let nr = tabpagenr() + :q + :call append(line('$'), 'tab page ' . nr) ++ :unlet nr + :" + :" Open three tab pages and use ":tabdo" + :0tabnew +*************** +*** 23,28 **** +--- 24,30 ---- + :q! + :call append(line('$'), line1) + :call append(line('$'), line2) ++ :unlet line1 line2 + :" + :" + :/^Results/,$w! test.out +*** ../vim-7.1.119/src/testdir/test63.in Thu Jul 26 22:55:11 2007 +--- src/testdir/test63.in Sun Sep 16 17:11:07 2007 +*************** +*** 60,66 **** + :else + : let @r .= "FAILED\n" + :endif +! :" --- Check that "matchdelete()" returns 0 if succesfull and otherwise -1. + :let @r .= "*** Test 6: " + :let m = matchadd("MyGroup1", "TODO") + :let r1 = matchdelete(m) +--- 60,66 ---- + :else + : let @r .= "FAILED\n" + :endif +! :" --- Check that "matchdelete()" returns 0 if successful and otherwise -1. + :let @r .= "*** Test 6: " + :let m = matchadd("MyGroup1", "TODO") + :let r1 = matchdelete(m) +*************** +*** 117,123 **** + :" --- Check that "setmatches()" will not add two matches with the same ID. The + :" --- expected behaviour (for now) is to add the first match but not the + :" --- second and to return 0 (even though it is a matter of debate whether +! :" --- this can be considered succesfull behaviour). + :let @r .= "*** Test 9: " + :let r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}]) + :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}] && r1 == 0 +--- 117,123 ---- + :" --- Check that "setmatches()" will not add two matches with the same ID. The + :" --- expected behaviour (for now) is to add the first match but not the + :" --- second and to return 0 (even though it is a matter of debate whether +! :" --- this can be considered successful behaviour). + :let @r .= "*** Test 9: " + :let r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}]) + :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}] && r1 == 0 +*************** +*** 127,133 **** + :endif + :call clearmatches() + :unlet r1 +! :" --- Check that "setmatches()" returns 0 if succesfull and otherwise -1. + :" --- (A range of valid and invalid input values are tried out to generate the + :" --- return values.) + :let @r .= "*** Test 10: " +--- 127,133 ---- + :endif + :call clearmatches() + :unlet r1 +! :" --- Check that "setmatches()" returns 0 if successful and otherwise -1. + :" --- (A range of valid and invalid input values are tried out to generate the + :" --- return values.) + :let @r .= "*** Test 10: " +*** ../vim-7.1.119/src/testdir/test64.in Tue Aug 14 17:28:14 2007 +--- src/testdir/test64.in Sun Sep 16 17:43:03 2007 +*************** +*** 44,51 **** +--- 44,53 ---- + : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"' + : endif + : endfor ++ : unlet i + : endif + :endfor ++ :unlet t tl e l + :/^Results/,$wq! test.out + ENDTEST + +*** ../vim-7.1.119/src/version.c Tue Sep 25 14:50:19 2007 +--- src/version.c Tue Sep 25 17:36:22 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 120, + /**/ + +-- +BEDEVERE: How do you know so much about swallows? +ARTHUR: Well you have to know these things when you're a king, you know. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.121 b/7.1.121 new file mode 100644 index 00000000..ab6f878d --- /dev/null +++ b/7.1.121 @@ -0,0 +1,81 @@ +To: vim-dev@vim.org +Subject: patch 7.1.121 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.121 +Problem: Using ":cd %:h" when editing a file in the current directory + results in an error message for using an empty string. +Solution: When "%:h" results in an empty string use ".". +Files: src/eval.c + + +*** ../vim-7.1.120/src/eval.c Tue Sep 25 17:54:41 2007 +--- src/eval.c Sun Sep 16 19:24:49 2007 +*************** +*** 21308,21321 **** + *usedlen += 2; + s = get_past_head(*fnamep); + while (tail > s && after_pathsep(s, tail)) +! --tail; + *fnamelen = (int)(tail - *fnamep); + #ifdef VMS + if (*fnamelen > 0) + *fnamelen += 1; /* the path separator is part of the path */ + #endif +! while (tail > s && !after_pathsep(s, tail)) +! mb_ptr_back(*fnamep, tail); + } + + /* ":8" - shortname */ +--- 21308,21334 ---- + *usedlen += 2; + s = get_past_head(*fnamep); + while (tail > s && after_pathsep(s, tail)) +! mb_ptr_back(*fnamep, tail); + *fnamelen = (int)(tail - *fnamep); + #ifdef VMS + if (*fnamelen > 0) + *fnamelen += 1; /* the path separator is part of the path */ + #endif +! if (*fnamelen == 0) +! { +! /* Result is empty. Turn it into "." to make ":cd %:h" work. */ +! p = vim_strsave((char_u *)"."); +! if (p == NULL) +! return -1; +! vim_free(*bufp); +! *bufp = *fnamep = tail = p; +! *fnamelen = 1; +! } +! else +! { +! while (tail > s && !after_pathsep(s, tail)) +! mb_ptr_back(*fnamep, tail); +! } + } + + /* ":8" - shortname */ +*** ../vim-7.1.120/src/version.c Tue Sep 25 17:54:41 2007 +--- src/version.c Tue Sep 25 20:38:08 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 121, + /**/ + +-- +It is illegal for anyone to try and stop a child from playfully jumping over +puddles of water. + [real standing law in California, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.122 b/7.1.122 new file mode 100644 index 00000000..ade147c6 --- /dev/null +++ b/7.1.122 @@ -0,0 +1,98 @@ +To: vim-dev@vim.org +Subject: patch 7.1.122 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.122 +Problem: Mac: building Vim.app fails. Using wrong architecture. +Solution: Use line continuation for the gui_bundle dependency. Detect the + system architecture with "uname -a". +Files: src/main.aap + + +*** ../vim-7.1.121/src/main.aap Thu May 10 18:48:19 2007 +--- src/main.aap Tue Sep 25 21:26:03 2007 +*************** +*** 56,64 **** + config {virtual} auto/config.h auto/config.aap : + auto/configure.aap configure.aap + config.arg config.h.in config.aap.in + :sys CONFIG_STATUS=auto/config.status + ./configure.aap `file2string("config.arg")` +! --with-mac-arch=ppc + --cache-file=auto/config.cache + + # Configure arguments: create an empty "config.arg" file when its missing +--- 56,71 ---- + config {virtual} auto/config.h auto/config.aap : + auto/configure.aap configure.aap + config.arg config.h.in config.aap.in ++ # Use "uname -a" to detect the architecture of the system. ++ @ok, uname = redir_system('uname -a', 0) ++ @if string.find(uname, "i386") >= 0: ++ @ arch = "i386" ++ @else: ++ @ arch = "ppc" ++ :print Building for $arch system + :sys CONFIG_STATUS=auto/config.status + ./configure.aap `file2string("config.arg")` +! --with-mac-arch=$arch + --cache-file=auto/config.cache + + # Configure arguments: create an empty "config.arg" file when its missing +*************** +*** 1167,1173 **** + :symlink `os.getcwd()`/../runtime $RESDIR/vim/runtime + # TODO: Create the vimtutor application. + +! gui_bundle {virtual}: $(RESDIR) bundle-dir bundle-executable bundle-info + bundle-resource bundle-language + + bundle-dir {virtual}: $(APPDIR)/Contents $(VIMTARGET) +--- 1174,1180 ---- + :symlink `os.getcwd()`/../runtime $RESDIR/vim/runtime + # TODO: Create the vimtutor application. + +! gui_bundle {virtual}: $(RESDIR) bundle-dir bundle-executable bundle-info \ + bundle-resource bundle-language + + bundle-dir {virtual}: $(APPDIR)/Contents $(VIMTARGET) +*************** +*** 1187,1193 **** + :sys m4 $(M4FLAGSX) infplist.xml > $(APPDIR)/Contents/Info.plist + + bundle-resource {virtual}: bundle-dir bundle-rsrc +! :copy {force} $(RSRC_DIR)/*.icns $(RESDIR) + + ### Classic resources + # Resource fork (in the form of a .rsrc file) for Classic Vim (Mac OS 9) +--- 1194,1200 ---- + :sys m4 $(M4FLAGSX) infplist.xml > $(APPDIR)/Contents/Info.plist + + bundle-resource {virtual}: bundle-dir bundle-rsrc +! :copy {force} $(RSRC_DIR)/*.icns $(RESDIR) + + ### Classic resources + # Resource fork (in the form of a .rsrc file) for Classic Vim (Mac OS 9) +*** ../vim-7.1.121/src/version.c Tue Sep 25 20:39:14 2007 +--- src/version.c Tue Sep 25 22:12:16 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 122, + /**/ + +-- +Men may not be seen publicly in any kind of strapless gown. + [real standing law in Florida, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.123 b/7.1.123 new file mode 100644 index 00000000..6b3ee044 --- /dev/null +++ b/7.1.123 @@ -0,0 +1,259 @@ +To: vim-dev@vim.org +Subject: patch 7.1.123 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.123 +Problem: Win32: ":edit foo ~ foo" expands "~". +Solution: Change the call to expand_env(). +Files: src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c + + +*** ../vim-7.1.122/src/ex_docmd.c Sun Aug 19 22:42:27 2007 +--- src/ex_docmd.c Wed Sep 26 20:29:36 2007 +*************** +*** 4403,4409 **** + || vim_strchr(eap->arg, '~') != NULL) + { + expand_env_esc(eap->arg, NameBuff, MAXPATHL, +! TRUE, NULL); + has_wildcards = mch_has_wildcard(NameBuff); + p = NameBuff; + } +--- 4402,4408 ---- + || vim_strchr(eap->arg, '~') != NULL) + { + expand_env_esc(eap->arg, NameBuff, MAXPATHL, +! TRUE, TRUE, NULL); + has_wildcards = mch_has_wildcard(NameBuff); + p = NameBuff; + } +*** ../vim-7.1.122/src/misc1.c Tue Aug 14 22:15:53 2007 +--- src/misc1.c Tue Sep 25 17:30:01 2007 +*************** +*** 3506,3514 **** + #endif + + /* + * Expand environment variable with path name. + * "~/" is also expanded, using $HOME. For Unix "~user/" is expanded. +! * Skips over "\ ", "\~" and "\$". + * If anything fails no expansion is done and dst equals src. + */ + void +--- 3506,3543 ---- + #endif + + /* ++ * Call expand_env() and store the result in an allocated string. ++ * This is not very memory efficient, this expects the result to be freed ++ * again soon. ++ */ ++ char_u * ++ expand_env_save(src) ++ char_u *src; ++ { ++ return expand_env_save_opt(src, FALSE); ++ } ++ ++ /* ++ * Idem, but when "one" is TRUE handle the string as one file name, only ++ * expand "~" at the start. ++ */ ++ char_u * ++ expand_env_save_opt(src, one) ++ char_u *src; ++ int one; ++ { ++ char_u *p; ++ ++ p = alloc(MAXPATHL); ++ if (p != NULL) ++ expand_env_esc(src, p, MAXPATHL, FALSE, one, NULL); ++ return p; ++ } ++ ++ /* + * Expand environment variable with path name. + * "~/" is also expanded, using $HOME. For Unix "~user/" is expanded. +! * Skips over "\ ", "\~" and "\$" (not for Win32 though). + * If anything fails no expansion is done and dst equals src. + */ + void +*************** +*** 3517,3531 **** + char_u *dst; /* where to put the result */ + int dstlen; /* maximum length of the result */ + { +! expand_env_esc(src, dst, dstlen, FALSE, NULL); + } + + void +! expand_env_esc(srcp, dst, dstlen, esc, startstr) + char_u *srcp; /* input string e.g. "$HOME/vim.hlp" */ + char_u *dst; /* where to put the result */ + int dstlen; /* maximum length of the result */ + int esc; /* escape spaces in expanded variables */ + char_u *startstr; /* start again after this (can be NULL) */ + { + char_u *src; +--- 3546,3561 ---- + char_u *dst; /* where to put the result */ + int dstlen; /* maximum length of the result */ + { +! expand_env_esc(src, dst, dstlen, FALSE, FALSE, NULL); + } + + void +! expand_env_esc(srcp, dst, dstlen, esc, one, startstr) + char_u *srcp; /* input string e.g. "$HOME/vim.hlp" */ + char_u *dst; /* where to put the result */ + int dstlen; /* maximum length of the result */ + int esc; /* escape spaces in expanded variables */ ++ int one; /* "srcp" is one file name */ + char_u *startstr; /* start again after this (can be NULL) */ + { + char_u *src; +*************** +*** 3766,3771 **** +--- 3796,3803 ---- + { + /* + * Recognize the start of a new name, for '~'. ++ * Don't do this when "one" is TRUE, to avoid expanding "~" in ++ * ":edit foo ~ foo". + */ + at_start = FALSE; + if (src[0] == '\\' && src[1] != NUL) +*************** +*** 3773,3779 **** + *dst++ = *src++; + --dstlen; + } +! else if (src[0] == ' ' || src[0] == ',') + at_start = TRUE; + *dst++ = *src++; + --dstlen; +--- 3805,3811 ---- + *dst++ = *src++; + --dstlen; + } +! else if ((src[0] == ' ' || src[0] == ',') && !one) + at_start = TRUE; + *dst++ = *src++; + --dstlen; +*************** +*** 4070,4092 **** + } + + /* +- * Call expand_env() and store the result in an allocated string. +- * This is not very memory efficient, this expects the result to be freed +- * again soon. +- */ +- char_u * +- expand_env_save(src) +- char_u *src; +- { +- char_u *p; +- +- p = alloc(MAXPATHL); +- if (p != NULL) +- expand_env(src, p, MAXPATHL); +- return p; +- } +- +- /* + * Our portable version of setenv. + */ + void +--- 4102,4107 ---- +*************** +*** 9139,9145 **** + */ + if (vim_strpbrk(p, (char_u *)"$~") != NULL) + { +! p = expand_env_save(p); + if (p == NULL) + p = pat[i]; + #ifdef UNIX +--- 9154,9160 ---- + */ + if (vim_strpbrk(p, (char_u *)"$~") != NULL) + { +! p = expand_env_save_opt(p, TRUE); + if (p == NULL) + p = pat[i]; + #ifdef UNIX +*** ../vim-7.1.122/src/proto/misc1.pro Sat May 5 20:15:33 2007 +--- src/proto/misc1.pro Tue Sep 25 17:22:36 2007 +*************** +*** 48,57 **** + void vim_beep __ARGS((void)); + void init_homedir __ARGS((void)); + void free_homedir __ARGS((void)); + void expand_env __ARGS((char_u *src, char_u *dst, int dstlen)); +! void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, char_u *startstr)); + char_u *vim_getenv __ARGS((char_u *name, int *mustfree)); +- char_u *expand_env_save __ARGS((char_u *src)); + void vim_setenv __ARGS((char_u *name, char_u *val)); + char_u *get_env_name __ARGS((expand_T *xp, int idx)); + void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one)); +--- 48,58 ---- + void vim_beep __ARGS((void)); + void init_homedir __ARGS((void)); + void free_homedir __ARGS((void)); ++ char_u *expand_env_save __ARGS((char_u *src)); ++ char_u *expand_env_save_opt __ARGS((char_u *src, int one)); + void expand_env __ARGS((char_u *src, char_u *dst, int dstlen)); +! void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, int one, char_u *startstr)); + char_u *vim_getenv __ARGS((char_u *name, int *mustfree)); + void vim_setenv __ARGS((char_u *name, char_u *val)); + char_u *get_env_name __ARGS((expand_T *xp, int idx)); + void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one)); +*** ../vim-7.1.122/src/option.c Tue Sep 25 14:50:19 2007 +--- src/option.c Tue Sep 25 17:20:05 2007 +*************** +*** 4996,5002 **** + * For 'spellsuggest' expand after "file:". + */ + expand_env_esc(val, NameBuff, MAXPATHL, +! (char_u **)options[opt_idx].var == &p_tags, + #ifdef FEAT_SPELL + (char_u **)options[opt_idx].var == &p_sps ? (char_u *)"file:" : + #endif +--- 4996,5002 ---- + * For 'spellsuggest' expand after "file:". + */ + expand_env_esc(val, NameBuff, MAXPATHL, +! (char_u **)options[opt_idx].var == &p_tags, FALSE, + #ifdef FEAT_SPELL + (char_u **)options[opt_idx].var == &p_sps ? (char_u *)"file:" : + #endif +*** ../vim-7.1.122/src/version.c Tue Sep 25 22:13:14 2007 +--- src/version.c Wed Sep 26 22:30:59 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 123, + /**/ + +-- +So when I saw the post to comp.editors, I rushed over to the FTP site to +grab it. So I yank apart the tarball, light x candles, where x= the +vim version multiplied by the md5sum of the source divided by the MAC of +my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights, +wave a dead chicken over the hard drive, and summon the power of GNU GCC +with the magic words "make config ; make!". + [Jason Spence, compiling Vim 5.0] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.124 b/7.1.124 new file mode 100644 index 00000000..6e524265 --- /dev/null +++ b/7.1.124 @@ -0,0 +1,82 @@ +To: vim-dev@vim.org +Subject: patch 7.1.124 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.124 (extra) +Problem: Mac: When dropping a file on Vim.app that is already in the buffer + list (from .viminfo) results in editing an empty, unnamed buffer. + (Axel Kielhorn) Also: warning for unused variable. +Solution: Move to the buffer of the first agument. Delete unused variable. +Files: src/gui_mac.c + + +*** ../vim-7.1.123/src/gui_mac.c Thu Aug 30 12:50:00 2007 +--- src/gui_mac.c Sat Sep 29 13:12:26 2007 +*************** +*** 1046,1051 **** +--- 1046,1052 ---- + { + int i; + char_u *p; ++ int fnum = -1; + + /* these are the initial files dropped on the Vim icon */ + for (i = 0 ; i < numFiles; i++) +*************** +*** 1055,1060 **** +--- 1056,1073 ---- + mch_exit(2); + else + alist_add(&global_alist, p, 2); ++ if (fnum == -1) ++ fnum = GARGLIST[GARGCOUNT - 1].ae_fnum; ++ } ++ ++ /* If the file name was already in the buffer list we need to switch ++ * to it. */ ++ if (curbuf->b_fnum != fnum) ++ { ++ char_u cmd[30]; ++ ++ vim_snprintf((char *)cmd, 30, "silent %dbuffer", fnum); ++ do_cmdline_cmd(cmd); + } + + /* Change directory to the location of the first file. */ +*************** +*** 2920,2926 **** + /* TODO: Move most of this stuff toward gui_mch_init */ + Rect windRect; + MenuHandle pomme; +- long gestalt_rc; + EventTypeSpec eventTypeSpec; + EventHandlerRef mouseWheelHandlerRef; + #ifdef USE_CARBONKEYHANDLER +--- 2933,2938 ---- +*** ../vim-7.1.123/src/version.c Wed Sep 26 22:35:06 2007 +--- src/version.c Sat Sep 29 13:13:16 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 124, + /**/ + +-- +ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY + KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T + HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR + LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER), + BROTHER MAYNARD + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.125 b/7.1.125 new file mode 100644 index 00000000..f202db43 --- /dev/null +++ b/7.1.125 @@ -0,0 +1,454 @@ +To: vim-dev@vim.org +Subject: patch 7.1.125 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.125 +Problem: The TermResponse autocommand event is not always triggered. (Aron + Griffis) +Solution: When unblocking autocommands check if v:termresponse changed and + trigger the event then. +Files: src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c, + src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c + + +*** ../vim-7.1.124/src/buffer.c Sun Aug 12 15:50:26 2007 +--- src/buffer.c Wed Sep 26 20:05:38 2007 +*************** +*** 5515,5525 **** + + #ifdef FEAT_AUTOCMD + if (!aucmd) /* Don't trigger BufDelete autocommands here. */ +! ++autocmd_block; + #endif + close_buffer(NULL, buf, DOBUF_WIPE); + #ifdef FEAT_AUTOCMD + if (!aucmd) +! --autocmd_block; + #endif + } +--- 5512,5522 ---- + + #ifdef FEAT_AUTOCMD + if (!aucmd) /* Don't trigger BufDelete autocommands here. */ +! block_autocmds(); + #endif + close_buffer(NULL, buf, DOBUF_WIPE); + #ifdef FEAT_AUTOCMD + if (!aucmd) +! unblock_autocmds(); + #endif + } +*** ../vim-7.1.124/src/diff.c Tue Feb 20 04:43:13 2007 +--- src/diff.c Tue Sep 25 22:01:40 2007 +*************** +*** 840,850 **** + tmp_orig, tmp_new); + append_redir(cmd, p_srr, tmp_diff); + #ifdef FEAT_AUTOCMD +! ++autocmd_block; /* Avoid ShellCmdPost stuff */ + #endif + (void)call_shell(cmd, SHELL_FILTER|SHELL_SILENT|SHELL_DOOUT); + #ifdef FEAT_AUTOCMD +! --autocmd_block; + #endif + vim_free(cmd); + } +--- 840,850 ---- + tmp_orig, tmp_new); + append_redir(cmd, p_srr, tmp_diff); + #ifdef FEAT_AUTOCMD +! block_autocmds(); /* Avoid ShellCmdPost stuff */ + #endif + (void)call_shell(cmd, SHELL_FILTER|SHELL_SILENT|SHELL_DOOUT); + #ifdef FEAT_AUTOCMD +! unblock_autocmds(); + #endif + vim_free(cmd); + } +*************** +*** 949,959 **** + # endif + eap->arg); + #ifdef FEAT_AUTOCMD +! ++autocmd_block; /* Avoid ShellCmdPost stuff */ + #endif + (void)call_shell(buf, SHELL_FILTER | SHELL_COOKED); + #ifdef FEAT_AUTOCMD +! --autocmd_block; + #endif + } + +--- 949,959 ---- + # endif + eap->arg); + #ifdef FEAT_AUTOCMD +! block_autocmds(); /* Avoid ShellCmdPost stuff */ + #endif + (void)call_shell(buf, SHELL_FILTER | SHELL_COOKED); + #ifdef FEAT_AUTOCMD +! unblock_autocmds(); + #endif + } + +*** ../vim-7.1.124/src/ex_getln.c Thu Sep 13 18:25:08 2007 +--- src/ex_getln.c Tue Sep 25 22:03:05 2007 +*************** +*** 5925,5931 **** + + # ifdef FEAT_AUTOCMD + /* Don't execute autocommands while creating the window. */ +! ++autocmd_block; + # endif + /* don't use a new tab page */ + cmdmod.tab = 0; +--- 5925,5931 ---- + + # ifdef FEAT_AUTOCMD + /* Don't execute autocommands while creating the window. */ +! block_autocmds(); + # endif + /* don't use a new tab page */ + cmdmod.tab = 0; +*************** +*** 5934,5939 **** +--- 5934,5942 ---- + if (win_split((int)p_cwh, WSP_BOT) == FAIL) + { + beep_flush(); ++ # ifdef FEAT_AUTOCMD ++ unblock_autocmds(); ++ # endif + return K_IGNORE; + } + cmdwin_type = ccline.cmdfirstc; +*************** +*** 5956,5962 **** + + # ifdef FEAT_AUTOCMD + /* Do execute autocommands for setting the filetype (load syntax). */ +! --autocmd_block; + # endif + + /* Showing the prompt may have set need_wait_return, reset it. */ +--- 5959,5965 ---- + + # ifdef FEAT_AUTOCMD + /* Do execute autocommands for setting the filetype (load syntax). */ +! unblock_autocmds(); + # endif + + /* Showing the prompt may have set need_wait_return, reset it. */ +*************** +*** 6110,6116 **** + + # ifdef FEAT_AUTOCMD + /* Don't execute autocommands while deleting the window. */ +! ++autocmd_block; + # endif + wp = curwin; + bp = curbuf; +--- 6113,6119 ---- + + # ifdef FEAT_AUTOCMD + /* Don't execute autocommands while deleting the window. */ +! block_autocmds(); + # endif + wp = curwin; + bp = curbuf; +*************** +*** 6122,6128 **** + win_size_restore(&winsizes); + + # ifdef FEAT_AUTOCMD +! --autocmd_block; + # endif + } + +--- 6125,6131 ---- + win_size_restore(&winsizes); + + # ifdef FEAT_AUTOCMD +! unblock_autocmds(); + # endif + } + +*** ../vim-7.1.124/src/fileio.c Sun Aug 12 15:50:26 2007 +--- src/fileio.c Wed Sep 26 20:02:54 2007 +*************** +*** 7165,7170 **** +--- 7187,7193 ---- + + static event_T last_event; + static int last_group; ++ static int autocmd_blocked = 0; /* block all autocmds */ + + /* + * Show the autocommands for one AutoPat. +*************** +*** 8454,8460 **** + * Quickly return if there are no autocommands for this event or + * autocommands are blocked. + */ +! if (first_autopat[(int)event] == NULL || autocmd_block > 0) + goto BYPASS_AU; + + /* +--- 8477,8483 ---- + * Quickly return if there are no autocommands for this event or + * autocommands are blocked. + */ +! if (first_autopat[(int)event] == NULL || autocmd_blocked > 0) + goto BYPASS_AU; + + /* +*************** +*** 8766,8771 **** +--- 8789,8828 ---- + aubuflocal_remove(buf); + + return retval; ++ } ++ ++ # ifdef FEAT_EVAL ++ static char_u *old_termresponse = NULL; ++ # endif ++ ++ /* ++ * Block triggering autocommands until unblock_autocmd() is called. ++ * Can be used recursively, so long as it's symmetric. ++ */ ++ void ++ block_autocmds() ++ { ++ # ifdef FEAT_EVAL ++ /* Remember the value of v:termresponse. */ ++ if (autocmd_blocked == 0) ++ old_termresponse = get_vim_var_str(VV_TERMRESPONSE); ++ # endif ++ ++autocmd_blocked; ++ } ++ ++ void ++ unblock_autocmds() ++ { ++ --autocmd_blocked; ++ ++ # ifdef FEAT_EVAL ++ /* When v:termresponse was set while autocommands were blocked, trigger ++ * the autocommands now. Esp. useful when executing a shell command ++ * during startup (vimdiff). */ ++ if (autocmd_blocked == 0 ++ && get_vim_var_str(VV_TERMRESPONSE) != old_termresponse) ++ apply_autocmds(EVENT_TERMRESPONSE, NULL, NULL, FALSE, curbuf); ++ # endif + } + + /* +*** ../vim-7.1.124/src/globals.h Tue Sep 25 17:54:41 2007 +--- src/globals.h Tue Sep 25 22:03:39 2007 +*************** +*** 366,372 **** + EXTERN int autocmd_busy INIT(= FALSE); /* Is apply_autocmds() busy? */ + EXTERN int autocmd_no_enter INIT(= FALSE); /* *Enter autocmds disabled */ + EXTERN int autocmd_no_leave INIT(= FALSE); /* *Leave autocmds disabled */ +- EXTERN int autocmd_block INIT(= 0); /* block all autocmds */ + EXTERN int modified_was_set; /* did ":set modified" */ + EXTERN int did_filetype INIT(= FALSE); /* FileType event found */ + EXTERN int keep_filetype INIT(= FALSE); /* value for did_filetype when +--- 366,371 ---- +*** ../vim-7.1.124/src/misc2.c Thu May 10 19:58:47 2007 +--- src/misc2.c Tue Sep 25 22:04:39 2007 +*************** +*** 972,978 **** + return; + entered = TRUE; + +! ++autocmd_block; /* don't want to trigger autocommands here */ + + #ifdef FEAT_WINDOWS + /* close all tabs and windows */ +--- 973,979 ---- + return; + entered = TRUE; + +! block_autocmds(); /* don't want to trigger autocommands here */ + + #ifdef FEAT_WINDOWS + /* close all tabs and windows */ +*** ../vim-7.1.124/src/proto/fileio.pro Thu Jun 28 21:57:08 2007 +--- src/proto/fileio.pro Wed Sep 26 20:05:02 2007 +*************** +*** 40,45 **** +--- 41,48 ---- + int trigger_cursorhold __ARGS((void)); + int has_cursormoved __ARGS((void)); + int has_cursormovedI __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)); + char_u *get_augroup_name __ARGS((expand_T *xp, int idx)); + char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd)); +*** ../vim-7.1.124/src/window.c Tue Sep 25 14:50:19 2007 +--- src/window.c Tue Sep 25 22:05:45 2007 +*************** +*** 1291,1297 **** + * Don't execute autocommands while creating the windows. Must do that + * when putting the buffers in the windows. + */ +! ++autocmd_block; + #endif + + /* todo is number of windows left to create */ +--- 1291,1297 ---- + * Don't execute autocommands while creating the windows. Must do that + * when putting the buffers in the windows. + */ +! block_autocmds(); + #endif + + /* todo is number of windows left to create */ +*************** +*** 1313,1319 **** + } + + #ifdef FEAT_AUTOCMD +! --autocmd_block; + #endif + + /* return actual number of windows */ +--- 1313,1319 ---- + } + + #ifdef FEAT_AUTOCMD +! unblock_autocmds(); + #endif + + /* return actual number of windows */ +*************** +*** 3415,3421 **** + * Don't execute autocommands while creating the tab pages. Must do that + * when putting the buffers in the windows. + */ +! ++autocmd_block; + #endif + + for (todo = count - 1; todo > 0; --todo) +--- 3415,3421 ---- + * Don't execute autocommands while creating the tab pages. Must do that + * when putting the buffers in the windows. + */ +! block_autocmds(); + #endif + + for (todo = count - 1; todo > 0; --todo) +*************** +*** 3423,3429 **** + break; + + #ifdef FEAT_AUTOCMD +! --autocmd_block; + #endif + + /* return actual number of tab pages */ +--- 3423,3429 ---- + break; + + #ifdef FEAT_AUTOCMD +! unblock_autocmds(); + #endif + + /* return actual number of tab pages */ +*************** +*** 4162,4168 **** + /* Don't execute autocommands while the window is not properly + * initialized yet. gui_create_scrollbar() may trigger a FocusGained + * event. */ +! ++autocmd_block; + #endif + /* + * link the window in the window list +--- 4162,4168 ---- + /* Don't execute autocommands while the window is not properly + * initialized yet. gui_create_scrollbar() may trigger a FocusGained + * event. */ +! block_autocmds(); + #endif + /* + * link the window in the window list +*************** +*** 4207,4213 **** + foldInitWin(newwin); + #endif + #ifdef FEAT_AUTOCMD +! --autocmd_block; + #endif + #ifdef FEAT_SEARCH_EXTRA + newwin->w_match_head = NULL; +--- 4207,4213 ---- + foldInitWin(newwin); + #endif + #ifdef FEAT_AUTOCMD +! unblock_autocmds(); + #endif + #ifdef FEAT_SEARCH_EXTRA + newwin->w_match_head = NULL; +*************** +*** 4232,4238 **** + #ifdef FEAT_AUTOCMD + /* Don't execute autocommands while the window is halfway being deleted. + * gui_mch_destroy_scrollbar() may trigger a FocusGained event. */ +! ++autocmd_block; + #endif + + #ifdef FEAT_MZSCHEME +--- 4232,4238 ---- + #ifdef FEAT_AUTOCMD + /* Don't execute autocommands while the window is halfway being deleted. + * gui_mch_destroy_scrollbar() may trigger a FocusGained event. */ +! block_autocmds(); + #endif + + #ifdef FEAT_MZSCHEME +*************** +*** 4295,4301 **** + vim_free(wp); + + #ifdef FEAT_AUTOCMD +! --autocmd_block; + #endif + } + +--- 4295,4301 ---- + vim_free(wp); + + #ifdef FEAT_AUTOCMD +! unblock_autocmds(); + #endif + } + +*** ../vim-7.1.124/src/version.c Sat Sep 29 13:15:29 2007 +--- src/version.c Sat Sep 29 14:08:31 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 125, + /**/ + +-- +MICHAEL PALIN PLAYED: 1ST SOLDIER WITH A KEEN INTEREST IN BIRDS, DENNIS, MR + DUCK (A VILLAGE CARPENTER WHO IS ALMOST KEENER THAN + ANYONE ELSE TO BURN WITCHES), THREE-HEADED KNIGHT, SIR + GALAHAD, KING OF SWAMP CASTLE, BROTHER MAYNARD'S ROOMATE + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.126 b/7.1.126 new file mode 100644 index 00000000..4246b148 --- /dev/null +++ b/7.1.126 @@ -0,0 +1,469 @@ +To: vim-dev@vim.org +Subject: patch 7.1.126 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.126 +Problem: ":vimgrep */*" fails when a BufRead autocommand changes directory. + (Bernhard Kuhn) +Solution: Change back to the original directory after loading a file. + Also: use shorten_fname1() to avoid duplicating code. +Files: src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c, + src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro, + src/quickfix.c + + +*** ../vim-7.1.125/src/buffer.c Sat Sep 29 14:15:00 2007 +--- src/buffer.c Wed Sep 26 20:05:38 2007 +*************** +*** 4261,4272 **** + do_arg_all(count, forceit, keep_tabs) + int count; + int forceit; /* hide buffers in current windows */ +! int keep_tabs; /* keep curren tabs, for ":tab drop file" */ + { + int i; + win_T *wp, *wpnext; + char_u *opened; /* array of flags for which args are open */ +! int opened_len; /* lenght of opened[] */ + int use_firstwin = FALSE; /* use first window for arglist */ + int split_ret = OK; + int p_ea_save; +--- 4261,4272 ---- + do_arg_all(count, forceit, keep_tabs) + int count; + int forceit; /* hide buffers in current windows */ +! int keep_tabs; /* keep current tabs, for ":tab drop file" */ + { + int i; + win_T *wp, *wpnext; + char_u *opened; /* array of flags for which args are open */ +! int opened_len; /* length of opened[] */ + int use_firstwin = FALSE; /* use first window for arglist */ + int split_ret = OK; + int p_ea_save; +*************** +*** 4946,4955 **** + /* Expand "~/" in the file name at "line + 1" to a full path. + * Then try shortening it by comparing with the current directory */ + expand_env(xline, NameBuff, MAXPATHL); +! mch_dirname(IObuff, IOSIZE); +! sfname = shorten_fname(NameBuff, IObuff); +! if (sfname == NULL) +! sfname = NameBuff; + + buf = buflist_new(NameBuff, sfname, (linenr_T)0, BLN_LISTED); + if (buf != NULL) /* just in case... */ +--- 4946,4952 ---- + /* Expand "~/" in the file name at "line + 1" to a full path. + * Then try shortening it by comparing with the current directory */ + expand_env(xline, NameBuff, MAXPATHL); +! sfname = shorten_fname1(NameBuff); + + buf = buflist_new(NameBuff, sfname, (linenr_T)0, BLN_LISTED); + if (buf != NULL) /* just in case... */ +*** ../vim-7.1.125/src/ex_docmd.c Wed Sep 26 22:35:06 2007 +--- src/ex_docmd.c Wed Sep 26 20:29:36 2007 +*************** +*** 276,282 **** + static void ex_swapname __ARGS((exarg_T *eap)); + static void ex_syncbind __ARGS((exarg_T *eap)); + static void ex_read __ARGS((exarg_T *eap)); +- static void ex_cd __ARGS((exarg_T *eap)); + static void ex_pwd __ARGS((exarg_T *eap)); + static void ex_equal __ARGS((exarg_T *eap)); + static void ex_sleep __ARGS((exarg_T *eap)); +--- 276,281 ---- +*************** +*** 7778,7784 **** + /* + * ":cd", ":lcd", ":chdir" and ":lchdir". + */ +! static void + ex_cd(eap) + exarg_T *eap; + { +--- 7777,7783 ---- + /* + * ":cd", ":lcd", ":chdir" and ":lchdir". + */ +! void + ex_cd(eap) + exarg_T *eap; + { +*** ../vim-7.1.125/src/fileio.c Sat Sep 29 14:15:00 2007 +--- src/fileio.c Wed Sep 26 20:02:54 2007 +*************** +*** 114,120 **** + { + int bw_fd; /* file descriptor */ + char_u *bw_buf; /* buffer with data to be written */ +! int bw_len; /* lenght of data */ + #ifdef HAS_BW_FLAGS + int bw_flags; /* FIO_ flags */ + #endif +--- 114,120 ---- + { + int bw_fd; /* file descriptor */ + char_u *bw_buf; /* buffer with data to be written */ +! int bw_len; /* length of data */ + #ifdef HAS_BW_FLAGS + int bw_flags; /* FIO_ flags */ + #endif +*************** +*** 5552,5557 **** +--- 5553,5579 ---- + return (int)(p - buf); + } + #endif ++ ++ /* ++ * Try to find a shortname by comparing the fullname with the current ++ * directory. ++ * Returns "full_path" or pointer into "full_path" if shortened. ++ */ ++ char_u * ++ shorten_fname1(full_path) ++ char_u *full_path; ++ { ++ char_u dirname[MAXPATHL]; ++ char_u *p = full_path; ++ ++ if (mch_dirname(dirname, MAXPATHL) == OK) ++ { ++ p = shorten_fname(full_path, dirname); ++ if (p == NULL || *p == NUL) ++ p = full_path; ++ } ++ return p; ++ } + + /* + * Try to find a shortname by comparing the fullname with the current +*** ../vim-7.1.125/src/gui_gtk.c Tue Aug 14 14:59:41 2007 +--- src/gui_gtk.c Wed Sep 26 20:07:58 2007 +*************** +*** 1272,1278 **** + GtkWidget *fc; + #endif + char_u dirbuf[MAXPATHL]; +- char_u *p; + + # ifdef HAVE_GTK2 + title = CONVERT_TO_UTF8(title); +--- 1272,1277 ---- +*************** +*** 1363,1373 **** + return NULL; + + /* shorten the file name if possible */ +! mch_dirname(dirbuf, MAXPATHL); +! p = shorten_fname(gui.browse_fname, dirbuf); +! if (p == NULL) +! p = gui.browse_fname; +! return vim_strsave(p); + } + + #if defined(HAVE_GTK2) || defined(PROTO) +--- 1362,1368 ---- + return NULL; + + /* shorten the file name if possible */ +! return vim_strsave(shorten_fname1(gui.browse_fname)); + } + + #if defined(HAVE_GTK2) || defined(PROTO) +*************** +*** 1427,1437 **** + return NULL; + + /* shorten the file name if possible */ +! mch_dirname(dirbuf, MAXPATHL); +! p = shorten_fname(dirname, dirbuf); +! if (p == NULL || *p == NUL) +! p = dirname; +! p = vim_strsave(p); + g_free(dirname); + return p; + +--- 1422,1428 ---- + return NULL; + + /* shorten the file name if possible */ +! p = vim_strsave(shorten_fname1(dirname)); + g_free(dirname); + return p; + +*** ../vim-7.1.125/src/gui_w48.c Thu May 10 19:17:07 2007 +--- src/gui_w48.c Wed Sep 26 20:09:33 2007 +*************** +*** 3301,3311 **** + SetFocus(s_hwnd); + + /* Shorten the file name if possible */ +! mch_dirname(IObuff, IOSIZE); +! p = shorten_fname((char_u *)fileBuf, IObuff); +! if (p == NULL) +! p = (char_u *)fileBuf; +! return vim_strsave(p); + } + # endif /* FEAT_MBYTE */ + +--- 3301,3307 ---- + SetFocus(s_hwnd); + + /* Shorten the file name if possible */ +! return vim_strsave(shorten_fname1((char_u *)fileBuf)); + } + # endif /* FEAT_MBYTE */ + +*************** +*** 3450,3460 **** + SetFocus(s_hwnd); + + /* Shorten the file name if possible */ +! mch_dirname(IObuff, IOSIZE); +! p = shorten_fname((char_u *)fileBuf, IObuff); +! if (p == NULL) +! p = (char_u *)fileBuf; +! return vim_strsave(p); + } + #endif /* FEAT_BROWSE */ + +--- 3446,3452 ---- + SetFocus(s_hwnd); + + /* Shorten the file name if possible */ +! return vim_strsave(shorten_fname1((char_u *)fileBuf)); + } + #endif /* FEAT_BROWSE */ + +*** ../vim-7.1.125/src/proto/ex_docmd.pro Sun May 6 14:46:22 2007 +--- src/proto/ex_docmd.pro Wed Sep 26 20:30:10 2007 +*************** +*** 39,44 **** +--- 39,45 ---- + void tabpage_new __ARGS((void)); + void do_exedit __ARGS((exarg_T *eap, win_T *old_curwin)); + void free_cd_dir __ARGS((void)); ++ void ex_cd __ARGS((exarg_T *eap)); + void do_sleep __ARGS((long msec)); + int vim_mkdir_emsg __ARGS((char_u *name, int prot)); + FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode)); +*** ../vim-7.1.125/src/proto/fileio.pro Sat Sep 29 14:15:00 2007 +--- src/proto/fileio.pro Wed Sep 26 20:05:02 2007 +*************** +*** 6,11 **** +--- 6,12 ---- + int buf_write __ARGS((buf_T *buf, char_u *fname, char_u *sfname, linenr_T start, linenr_T end, exarg_T *eap, int append, int forceit, int reset_changed, int filtering)); + void msg_add_fname __ARGS((buf_T *buf, char_u *fname)); + void msg_add_lines __ARGS((int insert_space, long lnum, long nchars)); ++ char_u *shorten_fname1 __ARGS((char_u *full_path)); + char_u *shorten_fname __ARGS((char_u *full_path, char_u *dir_name)); + void shorten_fnames __ARGS((int force)); + void shorten_filenames __ARGS((char_u **fnames, int count)); +*** ../vim-7.1.125/src/quickfix.c Sun Sep 16 13:26:56 2007 +--- src/quickfix.c Sun Sep 30 13:58:38 2007 +*************** +*** 2972,2977 **** +--- 2972,2978 ---- + regmmatch_T regmatch; + int fcount; + char_u **fnames; ++ char_u *fname; + char_u *s; + char_u *p; + int fi; +*************** +*** 2995,3000 **** +--- 2996,3004 ---- + int flags = 0; + colnr_T col; + long tomatch; ++ char_u dirname_start[MAXPATHL]; ++ char_u dirname_now[MAXPATHL]; ++ char_u *target_dir = NULL; + + switch (eap->cmdidx) + { +*************** +*** 3069,3085 **** + goto theend; + } + + seconds = (time_t)0; + for (fi = 0; fi < fcount && !got_int && tomatch > 0; ++fi) + { + if (time(NULL) > seconds) + { +! /* Display the file name every second or so. */ + seconds = time(NULL); + msg_start(); +! p = msg_strtrunc(fnames[fi], TRUE); + if (p == NULL) +! msg_outtrans(fnames[fi]); + else + { + msg_outtrans(p); +--- 3073,3095 ---- + goto theend; + } + ++ /* Remember the current directory, because a BufRead autocommand that does ++ * ":lcd %:p:h" changes the meaning of short path names. */ ++ mch_dirname(dirname_start, MAXPATHL); ++ + seconds = (time_t)0; + for (fi = 0; fi < fcount && !got_int && tomatch > 0; ++fi) + { ++ fname = shorten_fname1(fnames[fi]); + if (time(NULL) > seconds) + { +! /* Display the file name every second or so, show the user we are +! * working on it. */ + seconds = time(NULL); + msg_start(); +! p = msg_strtrunc(fname, TRUE); + if (p == NULL) +! msg_outtrans(fname); + else + { + msg_outtrans(p); +*************** +*** 3111,3117 **** + + /* Load file into a buffer, so that 'fileencoding' is detected, + * autocommands applied, etc. */ +! buf = load_dummy_buffer(fnames[fi]); + + p_mls = save_mls; + #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) +--- 3121,3139 ---- + + /* Load file into a buffer, so that 'fileencoding' is detected, + * autocommands applied, etc. */ +! buf = load_dummy_buffer(fname); +! +! /* When autocommands changed directory: go back. We assume it was +! * ":lcd %:p:h". */ +! mch_dirname(dirname_now, MAXPATHL); +! if (STRCMP(dirname_start, dirname_now) != 0) +! { +! exarg_T ea; +! +! ea.arg = dirname_start; +! ea.cmdidx = CMD_lcd; +! ex_cd(&ea); +! } + + p_mls = save_mls; + #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) +*************** +*** 3125,3131 **** + if (buf == NULL) + { + if (!got_int) +! smsg((char_u *)_("Cannot open file \"%s\""), fnames[fi]); + } + else + { +--- 3147,3153 ---- + if (buf == NULL) + { + if (!got_int) +! smsg((char_u *)_("Cannot open file \"%s\""), fname); + } + else + { +*************** +*** 3139,3147 **** + while (vim_regexec_multi(®match, curwin, buf, lnum, + col) > 0) + { + if (qf_add_entry(qi, &prevp, + NULL, /* dir */ +! fnames[fi], + 0, + ml_get_buf(buf, + regmatch.startpos[0].lnum + lnum, FALSE), +--- 3161,3170 ---- + while (vim_regexec_multi(®match, curwin, buf, lnum, + col) > 0) + { ++ ; + if (qf_add_entry(qi, &prevp, + NULL, /* dir */ +! fname, + 0, + ml_get_buf(buf, + regmatch.startpos[0].lnum + lnum, FALSE), +*************** +*** 3209,3214 **** +--- 3232,3244 ---- + + if (buf != NULL) + { ++ /* If the buffer is still loaded we need to use the ++ * directory we jumped to below. */ ++ if (buf == first_match_buf ++ && target_dir == NULL ++ && STRCMP(dirname_start, dirname_now) != 0) ++ target_dir = vim_strsave(dirname_now); ++ + /* The buffer is still loaded, the Filetype autocommands + * need to be done now, in that buffer. And the modelines + * need to be done (again). But not the window-local +*************** +*** 3252,3257 **** +--- 3282,3297 ---- + /* If we jumped to another buffer redrawing will already be + * taken care of. */ + redraw_for_dummy = FALSE; ++ ++ /* Jump to the directory used after loading the buffer. */ ++ if (curbuf == first_match_buf && target_dir != NULL) ++ { ++ exarg_T ea; ++ ++ ea.arg = target_dir; ++ ea.cmdidx = CMD_lcd; ++ ex_cd(&ea); ++ } + } + } + else +*************** +*** 3269,3274 **** +--- 3309,3315 ---- + } + + theend: ++ vim_free(target_dir); + vim_free(regmatch.regprog); + } + +*** ../vim-7.1.125/src/version.c Sat Sep 29 14:15:00 2007 +--- src/version.c Sun Sep 30 13:41:30 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 126, + /**/ + +-- +The MS-Windows registry is no more hostile than any other bunch of state +information... that is held in a binary format... a format that nobody +understands... and is replicated and cached in a complex and largely +undocumented way... and contains large amounts of duplicate and obfuscated +information... (Ben Peterson) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.127 b/7.1.127 new file mode 100644 index 00000000..5f161fcd --- /dev/null +++ b/7.1.127 @@ -0,0 +1,78 @@ +To: vim-dev@vim.org +Subject: About patch 7.1.127 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.127 +Problem: Memory leak when doing cmdline completion. (Dominique Pelle) +Solution: Free "orig" argument of ExpandOne() when it's not used. +Files: src/ex_getln.c + + +*** ../vim-7.1.126/src/ex_getln.c Sat Sep 29 14:15:00 2007 +--- src/ex_getln.c Sun Sep 30 17:55:47 2007 +*************** +*** 3316,3321 **** +--- 3316,3325 ---- + * Return a pointer to alloced memory containing the new string. + * Return NULL for failure. + * ++ * "orig" is the originally expanded string, copied to allocated memory. It ++ * should either be kept in orig_save or freed. When "mode" is WILD_NEXT or ++ * WILD_PREV "orig" should be NULL. ++ * + * Results are cached in xp->xp_files and xp->xp_numfiles, except when "mode" + * is WILD_EXPAND_FREE or WILD_ALL. + * +*************** +*** 3400,3406 **** + return NULL; + } + +! /* free old names */ + if (xp->xp_numfiles != -1 && mode != WILD_ALL && mode != WILD_LONGEST) + { + FreeWild(xp->xp_numfiles, xp->xp_files); +--- 3404,3410 ---- + return NULL; + } + +! /* free old names */ + if (xp->xp_numfiles != -1 && mode != WILD_ALL && mode != WILD_LONGEST) + { + FreeWild(xp->xp_numfiles, xp->xp_files); +*************** +*** 3540,3545 **** +--- 3544,3553 ---- + + if (mode == WILD_EXPAND_FREE || mode == WILD_ALL) + ExpandCleanup(xp); ++ ++ /* Free "orig" if it wasn't stored in "orig_save". */ ++ if (orig != orig_save) ++ vim_free(orig); + + return ss; + } +*** ../vim-7.1.126/src/version.c Sun Sep 30 14:00:41 2007 +--- src/version.c Sun Sep 30 14:20:14 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 127, + /**/ + +-- +A M00se once bit my sister ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.128 b/7.1.128 new file mode 100644 index 00000000..6750de40 --- /dev/null +++ b/7.1.128 @@ -0,0 +1,67 @@ +To: vim-dev@vim.org +Subject: About patch 7.1.128 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.128 (extra) +Problem: Build problems with new version of Cygwin. +Solution: Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen) +Files: src/Make_cyg.mak + + +*** ../vim-7.1.127/src/Make_cyg.mak Sun Apr 30 20:46:49 2006 +--- src/Make_cyg.mak Sat Sep 29 13:09:34 2007 +*************** +*** 1,6 **** + # + # Makefile for VIM on Win32, using Cygnus gcc +! # Last updated by Dan Sharp. Last Change: 2006 Apr 30 + # + # Also read INSTALLpc.txt! + # +--- 1,6 ---- + # + # Makefile for VIM on Win32, using Cygnus gcc +! # Last updated by Dan Sharp. Last Change: 2007 Sep 29 + # + # Also read INSTALLpc.txt! + # +*************** +*** 503,509 **** + $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o + + $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) +! $(CC) -c $(CFLAGS) -D__IID_DEFINED__ if_ole.cpp -o $(OUTDIR)/if_ole.o + + if_perl.c: if_perl.xs typemap + $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \ +--- 503,509 ---- + $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o + + $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) +! $(CC) -c $(CFLAGS) if_ole.cpp -o $(OUTDIR)/if_ole.o + + if_perl.c: if_perl.xs typemap + $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \ +*** ../vim-7.1.127/src/version.c Sun Sep 30 22:10:45 2007 +--- src/version.c Sun Sep 30 22:27:51 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 128, + /**/ + +-- +Mynd you, m00se bites Kan be pretty nasti ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.129 b/7.1.129 new file mode 100644 index 00000000..f1da884f --- /dev/null +++ b/7.1.129 @@ -0,0 +1,56 @@ +To: vim-dev@vim.org +Subject: About patch 7.1.129 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.129 (extra) +Problem: Win32: Can't get the user name when it is longer than 15 + characters. +Solution: Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov) +Files: src/os_win32.c + + +*** ../vim-7.1.128/src/os_win32.c Thu May 10 19:22:59 2007 +--- src/os_win32.c Mon Oct 1 20:07:24 2007 +*************** +*** 2378,2384 **** + char_u *s, + int len) + { +! char szUserName[MAX_COMPUTERNAME_LENGTH + 1]; + DWORD cch = sizeof szUserName; + + if (GetUserName(szUserName, &cch)) +--- 2378,2384 ---- + char_u *s, + int len) + { +! char szUserName[256 + 1]; /* UNLEN is 256 */ + DWORD cch = sizeof szUserName; + + if (GetUserName(szUserName, &cch)) +*** ../vim-7.1.128/src/version.c Sun Sep 30 22:28:08 2007 +--- src/version.c Mon Oct 1 20:32:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 129, + /**/ + +-- +ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot. + King of all Britons, defeator of the Saxons, sovereign of all England! + [Pause] +SOLDIER: Get away! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.130 b/7.1.130 new file mode 100644 index 00000000..f3c098de --- /dev/null +++ b/7.1.130 @@ -0,0 +1,363 @@ +To: vim-dev@vim.org +Subject: About patch 7.1.130 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.130 +Problem: Crash with specific order of undo and redo. (A.Politz) +Solution: Clear and adjust pointers properly. Add u_check() for debugging. +Files: src/undo.c, src/structs.h + + +*** ../vim-7.1.129/src/undo.c Thu May 10 20:01:43 2007 +--- src/undo.c Mon Oct 1 22:49:16 2007 +*************** +*** 76,81 **** +--- 76,87 ---- + * buffer is unloaded. + */ + ++ /* Uncomment the next line for including the u_check() function. This warns ++ * for errors in the debug information. */ ++ /* #define U_DEBUG 1 */ ++ #define UH_MAGIC 0x18dade /* value for uh_magic when in use */ ++ #define UE_MAGIC 0xabc123 /* value for ue_magic when in use */ ++ + #include "vim.h" + + /* See below: use malloc()/free() for memory management. */ +*************** +*** 113,118 **** +--- 119,213 ---- + */ + static int undo_undoes = FALSE; + ++ #ifdef U_DEBUG ++ /* ++ * Check the undo structures for being valid. Print a warning when something ++ * looks wrong. ++ */ ++ static int seen_b_u_curhead; ++ static int seen_b_u_newhead; ++ static int header_count; ++ ++ static void ++ u_check_tree(u_header_T *uhp, ++ u_header_T *exp_uh_next, ++ u_header_T *exp_uh_alt_prev) ++ { ++ u_entry_T *uep; ++ ++ if (uhp == NULL) ++ return; ++ ++header_count; ++ if (uhp == curbuf->b_u_curhead && ++seen_b_u_curhead > 1) ++ { ++ EMSG("b_u_curhead found twice (looping?)"); ++ return; ++ } ++ if (uhp == curbuf->b_u_newhead && ++seen_b_u_newhead > 1) ++ { ++ EMSG("b_u_newhead found twice (looping?)"); ++ return; ++ } ++ ++ if (uhp->uh_magic != UH_MAGIC) ++ EMSG("uh_magic wrong (may be using freed memory)"); ++ else ++ { ++ /* Check pointers back are correct. */ ++ if (uhp->uh_next != exp_uh_next) ++ { ++ EMSG("uh_next wrong"); ++ smsg((char_u *)"expected: 0x%x, actual: 0x%x", ++ exp_uh_next, uhp->uh_next); ++ } ++ if (uhp->uh_alt_prev != exp_uh_alt_prev) ++ { ++ EMSG("uh_alt_prev wrong"); ++ smsg((char_u *)"expected: 0x%x, actual: 0x%x", ++ exp_uh_alt_prev, uhp->uh_alt_prev); ++ } ++ ++ /* Check the undo tree at this header. */ ++ for (uep = uhp->uh_entry; uep != NULL; uep = uep->ue_next) ++ { ++ if (uep->ue_magic != UE_MAGIC) ++ { ++ EMSG("ue_magic wrong (may be using freed memory)"); ++ break; ++ } ++ } ++ ++ /* Check the next alt tree. */ ++ u_check_tree(uhp->uh_alt_next, uhp->uh_next, uhp); ++ ++ /* Check the next header in this branch. */ ++ u_check_tree(uhp->uh_prev, uhp, NULL); ++ } ++ } ++ ++ void ++ u_check(int newhead_may_be_NULL) ++ { ++ seen_b_u_newhead = 0; ++ seen_b_u_curhead = 0; ++ header_count = 0; ++ ++ u_check_tree(curbuf->b_u_oldhead, NULL, NULL); ++ ++ if (seen_b_u_newhead == 0 && curbuf->b_u_oldhead != NULL ++ && !(newhead_may_be_NULL && curbuf->b_u_newhead == NULL)) ++ EMSGN("b_u_newhead invalid: 0x%x", curbuf->b_u_newhead); ++ if (curbuf->b_u_curhead != NULL && seen_b_u_curhead == 0) ++ EMSGN("b_u_curhead invalid: 0x%x", curbuf->b_u_curhead); ++ if (header_count != curbuf->b_u_numhead) ++ { ++ EMSG("b_u_numhead invalid"); ++ smsg((char_u *)"expected: %ld, actual: %ld", ++ (long)header_count, (long)curbuf->b_u_numhead); ++ } ++ } ++ #endif ++ + /* + * Save the current line for both the "u" and "U" command. + * Returns OK or FAIL. +*************** +*** 243,248 **** +--- 338,346 ---- + if (!undo_allowed()) + return FAIL; + ++ #ifdef U_DEBUG ++ u_check(FALSE); ++ #endif + #ifdef FEAT_NETBEANS_INTG + /* + * Netbeans defines areas that cannot be modified. Bail out here when +*************** +*** 294,299 **** +--- 392,400 ---- + uhp = (u_header_T *)U_ALLOC_LINE((unsigned)sizeof(u_header_T)); + if (uhp == NULL) + goto nomem; ++ #ifdef U_DEBUG ++ uhp->uh_magic = UH_MAGIC; ++ #endif + } + else + uhp = NULL; +*************** +*** 316,323 **** + { + u_header_T *uhfree = curbuf->b_u_oldhead; + +! /* If there is no branch only free one header. */ +! if (uhfree->uh_alt_next == NULL) + u_freeheader(curbuf, uhfree, &old_curhead); + else + { +--- 417,427 ---- + { + u_header_T *uhfree = curbuf->b_u_oldhead; + +! if (uhfree == old_curhead) +! /* Can't reconnect the branch, delete all of it. */ +! u_freebranch(curbuf, uhfree, &old_curhead); +! else if (uhfree->uh_alt_next == NULL) +! /* There is no branch, only free one header. */ + u_freeheader(curbuf, uhfree, &old_curhead); + else + { +*************** +*** 326,331 **** +--- 430,438 ---- + uhfree = uhfree->uh_alt_next; + u_freebranch(curbuf, uhfree, &old_curhead); + } ++ #ifdef U_DEBUG ++ u_check(TRUE); ++ #endif + } + + if (uhp == NULL) /* no undo at all */ +*************** +*** 478,483 **** +--- 585,593 ---- + uep = (u_entry_T *)U_ALLOC_LINE((unsigned)sizeof(u_entry_T)); + if (uep == NULL) + goto nomem; ++ #ifdef U_DEBUG ++ uep->ue_magic = UE_MAGIC; ++ #endif + + uep->ue_size = size; + uep->ue_top = top; +*************** +*** 525,530 **** +--- 635,643 ---- + curbuf->b_u_synced = FALSE; + undo_undoes = FALSE; + ++ #ifdef U_DEBUG ++ u_check(FALSE); ++ #endif + return OK; + + nomem: +*************** +*** 955,960 **** +--- 1068,1076 ---- + int empty_buffer; /* buffer became empty */ + u_header_T *curhead = curbuf->b_u_curhead; + ++ #ifdef U_DEBUG ++ u_check(FALSE); ++ #endif + old_flags = curhead->uh_flags; + new_flags = (curbuf->b_changed ? UH_CHANGED : 0) + + ((curbuf->b_ml.ml_flags & ML_EMPTY) ? UH_EMPTYBUF : 0); +*************** +*** 1186,1191 **** +--- 1302,1310 ---- + /* The timestamp can be the same for multiple changes, just use the one of + * the undone/redone change. */ + curbuf->b_u_seq_time = curhead->uh_time; ++ #ifdef U_DEBUG ++ u_check(FALSE); ++ #endif + } + + /* +*************** +*** 1515,1521 **** + } + + /* +! * Free one header and its entry list and adjust the pointers. + */ + static void + u_freeheader(buf, uhp, uhpp) +--- 1634,1640 ---- + } + + /* +! * Free one header "uhp" and its entry list and adjust the pointers. + */ + static void + u_freeheader(buf, uhp, uhpp) +*************** +*** 1523,1528 **** +--- 1642,1649 ---- + u_header_T *uhp; + u_header_T **uhpp; /* if not NULL reset when freeing this header */ + { ++ u_header_T *uhap; ++ + /* When there is an alternate redo list free that branch completely, + * because we can never go there. */ + if (uhp->uh_alt_next != NULL) +*************** +*** 1540,1546 **** + if (uhp->uh_prev == NULL) + buf->b_u_newhead = uhp->uh_next; + else +! uhp->uh_prev->uh_next = uhp->uh_next; + + u_freeentries(buf, uhp, uhpp); + } +--- 1661,1668 ---- + if (uhp->uh_prev == NULL) + buf->b_u_newhead = uhp->uh_next; + else +! for (uhap = uhp->uh_prev; uhap != NULL; uhap = uhap->uh_alt_next) +! uhap->uh_next = uhp->uh_next; + + u_freeentries(buf, uhp, uhpp); + } +*************** +*** 1585,1590 **** +--- 1707,1714 ---- + /* Check for pointers to the header that become invalid now. */ + if (buf->b_u_curhead == uhp) + buf->b_u_curhead = NULL; ++ if (buf->b_u_newhead == uhp) ++ buf->b_u_newhead = NULL; /* freeing the newest entry */ + if (uhpp != NULL && uhp == *uhpp) + *uhpp = NULL; + +*************** +*** 1594,1599 **** +--- 1718,1726 ---- + u_freeentry(uep, uep->ue_size); + } + ++ #ifdef U_DEBUG ++ uhp->uh_magic = 0; ++ #endif + U_FREE_LINE((char_u *)uhp); + --buf->b_u_numhead; + } +*************** +*** 1609,1614 **** +--- 1736,1744 ---- + while (n > 0) + U_FREE_LINE(uep->ue_array[--n]); + U_FREE_LINE((char_u *)uep->ue_array); ++ #ifdef U_DEBUG ++ uep->ue_magic = 0; ++ #endif + U_FREE_LINE((char_u *)uep); + } + +*** ../vim-7.1.129/src/structs.h Sun Aug 12 15:50:26 2007 +--- src/structs.h Sat Sep 29 15:03:38 2007 +*************** +*** 278,283 **** +--- 278,286 ---- + linenr_T ue_lcount; /* linecount when u_save called */ + char_u **ue_array; /* array of lines in undo block */ + long ue_size; /* number of lines in ue_array */ ++ #ifdef U_DEBUG ++ int ue_magic; /* magic number to check allocation */ ++ #endif + }; + + struct u_header +*************** +*** 300,305 **** +--- 303,311 ---- + visualinfo_T uh_visual; /* Visual areas before undo/after redo */ + #endif + time_t uh_time; /* timestamp when the change was made */ ++ #ifdef U_DEBUG ++ int uh_magic; /* magic number to check allocation */ ++ #endif + }; + + /* values for uh_flags */ +*** ../vim-7.1.129/src/version.c Mon Oct 1 20:33:45 2007 +--- src/version.c Mon Oct 1 22:50:23 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 130, + /**/ + +-- +FIRST SOLDIER: So they wouldn't be able to bring a coconut back anyway. +SECOND SOLDIER: Wait a minute! Suppose two swallows carried it together? +FIRST SOLDIER: No, they'd have to have it on a line. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.131 b/7.1.131 new file mode 100644 index 00000000..830a7dc1 --- /dev/null +++ b/7.1.131 @@ -0,0 +1,50 @@ +To: vim-dev@vim.org +Subject: patch 7.1.131 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.131 +Problem: ":mksession" always adds ":setlocal autoread". (Christian J. + Robinson) +Solution: Skip boolean global/local option using global value. +Files: src/option.c + + +*** ../vim-7.1.130/src/option.c Wed Sep 26 22:35:06 2007 +--- src/option.c Sun Sep 30 16:21:08 2007 +*************** +*** 8753,8758 **** +--- 8753,8760 ---- + char *name; + int value; + { ++ if (value < 0) /* global/local option using global value */ ++ return OK; + if (fprintf(fd, "%s %s%s", cmd, value ? "" : "no", name) < 0 + || put_eol(fd) < 0) + return FAIL; +*** ../vim-7.1.130/src/version.c Mon Oct 1 22:53:27 2007 +--- src/version.c Tue Oct 2 20:39:02 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 131, + /**/ + +-- +ARTHUR: Old woman! +DENNIS: Man! +ARTHUR: Man. I'm sorry. Old man, What knight live in that castle over there? +DENNIS: I'm thirty-seven. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.132 b/7.1.132 new file mode 100644 index 00000000..0d549d0e --- /dev/null +++ b/7.1.132 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: patch 7.1.132 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.132 +Problem: getpos("'>") may return a negative column number for a Linewise + selection. (A.Politz) +Solution: Don't add one to MAXCOL. +Files: src/eval.c + + +*** ../vim-7.1.131/src/eval.c Tue Sep 25 20:39:14 2007 +--- src/eval.c Mon Oct 1 20:56:09 2007 +*************** +*** 10388,10394 **** + list_append_number(l, (varnumber_T)0); + list_append_number(l, (fp != NULL) ? (varnumber_T)fp->lnum + : (varnumber_T)0); +! list_append_number(l, (fp != NULL) ? (varnumber_T)fp->col + 1 + : (varnumber_T)0); + list_append_number(l, + #ifdef FEAT_VIRTUALEDIT +--- 10388,10395 ---- + list_append_number(l, (varnumber_T)0); + list_append_number(l, (fp != NULL) ? (varnumber_T)fp->lnum + : (varnumber_T)0); +! list_append_number(l, (fp != NULL) +! ? (varnumber_T)(fp->col == MAXCOL ? MAXCOL : fp->col + 1) + : (varnumber_T)0); + list_append_number(l, + #ifdef FEAT_VIRTUALEDIT +*** ../vim-7.1.131/src/version.c Tue Oct 2 20:40:01 2007 +--- src/version.c Tue Oct 2 22:07:17 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 132, + /**/ + +-- +"The future's already arrived - it's just not evenly distributed yet." + -- William Gibson + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.133 b/7.1.133 new file mode 100644 index 00000000..c41190d9 --- /dev/null +++ b/7.1.133 @@ -0,0 +1,56 @@ +To: vim-dev@vim.org +Subject: patch 7.1.133 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.133 (after 7.1.126) +Problem: shorten_fname1() linked when it's not needed. +Solution: Add #ifdef. +Files: src/fileio.c + + +*** ../vim-7.1.132/src/fileio.c Sun Sep 30 14:00:41 2007 +--- src/fileio.c Sun Sep 30 16:32:43 2007 +*************** +*** 5553,5558 **** +--- 5554,5561 ---- + } + #endif + ++ #if defined(FEAT_VIMINFO) || defined(FEAT_BROWSE) || \ ++ defined(FEAT_QUICKFIX) || defined(PROTO) + /* + * Try to find a shortname by comparing the fullname with the current + * directory. +*************** +*** 5573,5578 **** +--- 5576,5582 ---- + } + return p; + } ++ #endif + + /* + * Try to find a shortname by comparing the fullname with the current +*** ../vim-7.1.132/src/version.c Tue Oct 2 22:07:58 2007 +--- src/version.c Wed Oct 3 12:46:59 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 133, + /**/ + +-- +"Beware of bugs in the above code; I have only proved +it correct, not tried it." -- Donald Knuth + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.134 b/7.1.134 new file mode 100644 index 00000000..7fbf6650 --- /dev/null +++ b/7.1.134 @@ -0,0 +1,377 @@ +To: vim-dev@vim.org +Subject: patch 7.1.134 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.134 (extra) +Problem: Win32: Can't build with VC8 +Solution: Detect the MSVC version instead of using NMAKE_VER. + (Mike Williams) +Files: src/Make_mvc.mak + + +*** ../vim-7.1.133/src/Make_mvc.mak Tue Feb 20 03:15:08 2007 +--- src/Make_mvc.mak Mon Oct 1 21:37:20 2007 +*************** +*** 92,97 **** +--- 92,99 ---- + # Netbeans Debugging Support: NBDEBUG=[yes or no] (should be no, yes + # doesn't work) + # ++ # Visual C Version: MSVCVER=m.n (default derived from nmake if undefined) ++ # + # You can combine any of these interfaces + # + # Example: To build the non-debug, GUI version with Perl interface: +*************** +*** 101,107 **** + # This makefile gives a fineness of control which is not supported in + # Visual C++ configuration files. Therefore, debugging requires a bit of + # extra work. +! # Make_dvc.mak is a Visual C++ project to access that support. + # To use Make_dvc.mak: + # 1) Build Vim with Make_mvc.mak. + # Use a "DEBUG=yes" argument to build Vim with debug support. +--- 103,110 ---- + # This makefile gives a fineness of control which is not supported in + # Visual C++ configuration files. Therefore, debugging requires a bit of + # extra work. +! # Make_dvc.mak is a Visual C++ project to access that support. It may be +! # badly out of date for the Visual C++ you are using... + # To use Make_dvc.mak: + # 1) Build Vim with Make_mvc.mak. + # Use a "DEBUG=yes" argument to build Vim with debug support. +*************** +*** 198,211 **** + !if "$(DEBUG)" != "yes" + NODEBUG = 1 + !else + MAKEFLAGS_GVIMEXT = DEBUG=yes + !endif + + +! # Get all sorts of useful, standard macros from the SDK. (Note that +! # MSVC 2.2 does not install in the \msvc20\include +! # directory, but you can find it in \msvc20\include on the CD-ROM. +! # You may also need from the same place.) + + !include + +--- 201,212 ---- + !if "$(DEBUG)" != "yes" + NODEBUG = 1 + !else ++ !undef NODEBUG + MAKEFLAGS_GVIMEXT = DEBUG=yes + !endif + + +! # Get all sorts of useful, standard macros from the Platform SDK. + + !include + +*************** +*** 272,283 **** + + # Set which version of the CRT to use + !if defined(USE_MSVCRT) +! CVARS = $(cvarsdll) + # !elseif defined(MULTITHREADED) + # CVARS = $(cvarsmt) + !else + # CVARS = $(cvars) +! CVARS = $(cvarsmt) + !endif + + # need advapi32.lib for GetUserName() +--- 273,284 ---- + + # Set which version of the CRT to use + !if defined(USE_MSVCRT) +! # CVARS = $(cvarsdll) + # !elseif defined(MULTITHREADED) + # CVARS = $(cvarsmt) + !else + # CVARS = $(cvars) +! # CVARS = $(cvarsmt) + !endif + + # need advapi32.lib for GetUserName() +*************** +*** 320,326 **** +--- 321,364 ---- + INTDIR=$(OBJDIR) + OUTDIR=$(OBJDIR) + ++ # Derive version of VC being used from nmake if not specified ++ !if "$(MSVCVER)" == "" ++ !if "$(_NMAKE_VER)" == "" ++ MSVCVER = 4.0 ++ !endif ++ !if "$(_NMAKE_VER)" == "162" ++ MSVCVER = 5.0 ++ !endif ++ !if "$(_NMAKE_VER)" == "6.00.8168.0" ++ MSVCVER = 6.0 ++ !endif ++ !if "$(_NMAKE_VER)" == "7.00.9466" ++ MSVCVER = 7.0 ++ !endif ++ !if "$(_NMAKE_VER)" == "7.10.3077" ++ MSVCVER = 7.1 ++ !endif ++ !if "$(_NMAKE_VER)" == "8.00.50727.42" ++ MSVCVER = 8.0 ++ !endif ++ !if "$(_NMAKE_VER)" == "8.00.50727.762" ++ MSVCVER = 8.0 ++ !endif ++ !endif ++ ++ # Abort bulding VIM if version of VC is unrecognised. ++ !ifndef MSVCVER ++ !message *** ERROR ++ !message Cannot determine Visual C version being used. If you are using the ++ !message Windows SDK then you must have the environment variable MSVCVER set to ++ !message your version of the VC compiler. If you are not using the Express ++ !message version of Visual C you van either set MSVCVER or update this makefile ++ !message to handle the new value for _NMAKE_VER. ++ !error Make aborted. ++ !endif ++ + # Convert processor ID to MVC-compatible number ++ !if "$(MSVCVER)" != "8.0" + !if "$(CPUNR)" == "i386" + CPUARG = /G3 + !elseif "$(CPUNR)" == "i486" +*************** +*** 334,339 **** +--- 372,386 ---- + !else + CPUARG = + !endif ++ !else ++ # VC8 only allows specifying SSE architecture ++ !if "$(CPUNR)" == "pentium4" ++ CPUARG = /arch:SSE2 ++ !endif ++ !endif ++ ++ LIBC = ++ DEBUGINFO = /Zi + + !ifdef NODEBUG + VIM = vim +*************** +*** 344,384 **** + !else # MAXSPEED + OPTFLAG = /Ox + !endif + CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG) + RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG + ! ifdef USE_MSVCRT +! CFLAGS = $(CFLAGS) -MD + LIBC = msvcrt.lib +- # CFLAGS = $(CFLAGS) $(cvarsdll) +- # ! elseif defined(MULTITHREADED) +- # LIBC = libcmt.lib +- # CFLAGS = $(CFLAGS) $(cvarsmt) + ! else +- # LIBC = libc.lib + LIBC = libcmt.lib +! # CFLAGS = $(CFLAGS) $(cvars) + ! endif + !else # DEBUG + VIM = vimd + CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od + RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG + # The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0. +! ! if "$(_NMAKE_VER)" == "" + LIBC = + ! else + LIBC = /fixed:no + ! endif + ! ifdef USE_MSVCRT +! CFLAGS = $(CFLAGS) -MDd + LIBC = $(LIBC) msvcrtd.lib +- # CFLAGS = $(CFLAGS) $(cvarsdll) +- # ! elseif defined(MULTITHREADED) +- # LIBC = $(LIBC) libcmtd.lib +- # CFLAGS = $(CFLAGS) $(cvarsmt) + ! else +- # LIBC = $(LIBC) libcd.lib + LIBC = $(LIBC) libcmtd.lib +! # CFLAGS = $(CFLAGS) $(cvars) + ! endif + !endif # DEBUG + +--- 391,430 ---- + !else # MAXSPEED + OPTFLAG = /Ox + !endif ++ !if "$(MSVCVER)" == "8.0" ++ # Use link time code generation if not worried about size ++ !if "$(OPTIMIZE)" != "SPACE" ++ OPTFLAG = $(OPTFLAG) /GL ++ !endif ++ !endif + CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG) + RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG + ! ifdef USE_MSVCRT +! CFLAGS = $(CFLAGS) /MD + LIBC = msvcrt.lib + ! else + LIBC = libcmt.lib +! CFLAGS = $(CFLAGS) /MT + ! endif + !else # DEBUG + VIM = vimd ++ ! if "$(CPU)" == "i386" ++ DEBUGINFO = /ZI ++ ! endif + CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od + RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG + # The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0. +! ! if "$(MSVCVER)" == "4.0" + LIBC = + ! else + LIBC = /fixed:no + ! endif + ! ifdef USE_MSVCRT +! CFLAGS = $(CFLAGS) /MDd + LIBC = $(LIBC) msvcrtd.lib + ! else + LIBC = $(LIBC) libcmtd.lib +! CFLAGS = $(CFLAGS) /MTd + ! endif + !endif # DEBUG + +*************** +*** 681,696 **** + # + # Always generate the .pdb file, so that we get debug symbols that can be used + # on a crash (doesn't add overhead to the executable). + # +! CFLAGS = $(CFLAGS) /Zi /Fd$(OUTDIR)/ +! LINK_PDB = /PDB:$(VIM).pdb -debug # -debug:full -debugtype:cv,fixup + + # + # End extra feature include + # + !message + +! conflags = /nologo /subsystem:$(SUBSYSTEM) /incremental:no + + PATHDEF_SRC = $(OUTDIR)\pathdef.c + +--- 727,744 ---- + # + # Always generate the .pdb file, so that we get debug symbols that can be used + # on a crash (doesn't add overhead to the executable). ++ # Generate edit-and-continue debug info when no optimization - allows to ++ # debug more conveniently (able to look at variables which are in registers) + # +! CFLAGS = $(CFLAGS) /Fd$(OUTDIR)/ $(DEBUGINFO) +! LINK_PDB = /PDB:$(VIM).pdb -debug + + # + # End extra feature include + # + !message + +! conflags = /nologo /subsystem:$(SUBSYSTEM) + + PATHDEF_SRC = $(OUTDIR)\pathdef.c + +*************** +*** 702,712 **** + conflags = $(conflags) /map /mapinfo:lines + !ENDIF + +! LINKARGS1 = $(linkdebug) $(conflags) /nodefaultlib:libc + LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \ + $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) \ + $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB) + + all: $(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe \ + GvimExt/gvimext.dll + +--- 750,769 ---- + conflags = $(conflags) /map /mapinfo:lines + !ENDIF + +! LINKARGS1 = $(linkdebug) $(conflags) + LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \ + $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) \ + $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB) + ++ # Report link time code generation progress if used. ++ !ifdef NODEBUG ++ !if "$(MSVCVER)" == "8.0" ++ !if "$(OPTIMIZE)" != "SPACE" ++ LINKARGS1 = $(LINKARGS1) /LTCG:STATUS ++ !endif ++ !endif ++ !endif ++ + all: $(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe \ + GvimExt/gvimext.dll + +*************** +*** 794,800 **** + + # Create a default rule for transforming .c files to .obj files in $(OUTDIR) + # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later) +! !IF "$(_NMAKE_VER)" == "" + .c{$(OUTDIR)/}.obj: + !ELSE + .c{$(OUTDIR)/}.obj:: +--- 851,857 ---- + + # Create a default rule for transforming .c files to .obj files in $(OUTDIR) + # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later) +! !IF "$(MSVCVER)" == "4.0" + .c{$(OUTDIR)/}.obj: + !ELSE + .c{$(OUTDIR)/}.obj:: +*************** +*** 803,809 **** + + # Create a default rule for transforming .cpp files to .obj files in $(OUTDIR) + # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later) +! !IF "$(_NMAKE_VER)" == "" + .cpp{$(OUTDIR)/}.obj: + !ELSE + .cpp{$(OUTDIR)/}.obj:: +--- 860,866 ---- + + # Create a default rule for transforming .cpp files to .obj files in $(OUTDIR) + # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later) +! !IF "$(MSVCVER)" == "4.0" + .cpp{$(OUTDIR)/}.obj: + !ELSE + .cpp{$(OUTDIR)/}.obj:: +*** ../vim-7.1.133/src/version.c Wed Oct 3 12:49:24 2007 +--- src/version.c Wed Oct 3 13:23:51 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 134, + /**/ + +-- +BLACK KNIGHT: The Black Knight always triumphs. Have at you! + ARTHUR takes his last leg off. The BLACK KNIGHT's body lands upright. +BLACK KNIGHT: All right, we'll call it a draw. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.135 b/7.1.135 new file mode 100644 index 00000000..db9b0ccb --- /dev/null +++ b/7.1.135 @@ -0,0 +1,106 @@ +To: vim-dev@vim.org +Subject: patch 7.1.135 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.135 +Problem: Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two + buffers for the same file. (Suresh Govindachar) +Solution: Invoke FullName_save() when a path contains "//" or "\\". +Files: src/buffer.c + + +*** ../vim-7.1.134/src/buffer.c Sun Sep 30 14:00:41 2007 +--- src/buffer.c Wed Oct 3 14:24:52 2007 +*************** +*** 4175,4203 **** + * mess up the full path name, even though it starts with a '/'. + * Also expand when there is ".." in the file name, try to remove it, + * because "c:/src/../README" is equal to "c:/README". + * For MS-Windows also expand names like "longna~1" to "longname". + */ + #ifdef UNIX + return FullName_save(fname, TRUE); + #else +! if (!vim_isAbsName(fname) || strstr((char *)fname, "..") != NULL +! #if defined(MSWIN) || defined(DJGPP) + || vim_strchr(fname, '~') != NULL +! #endif + ) + return FullName_save(fname, FALSE); + + fname = vim_strsave(fname); + +! #ifdef USE_FNAME_CASE +! # ifdef USE_LONG_FNAME + if (USE_LONG_FNAME) +! # endif + { + if (fname != NULL) + fname_case(fname, 0); /* set correct case for file name */ + } +! #endif + + return fname; + #endif +--- 4175,4209 ---- + * mess up the full path name, even though it starts with a '/'. + * Also expand when there is ".." in the file name, try to remove it, + * because "c:/src/../README" is equal to "c:/README". ++ * Similarly "c:/src//file" is equal to "c:/src/file". + * For MS-Windows also expand names like "longna~1" to "longname". + */ + #ifdef UNIX + return FullName_save(fname, TRUE); + #else +! if (!vim_isAbsName(fname) +! || strstr((char *)fname, "..") != NULL +! || strstr((char *)fname, "//") != NULL +! # ifdef BACKSLASH_IN_FILENAME +! || strstr((char *)fname, "\\\\") != NULL +! # endif +! # if defined(MSWIN) || defined(DJGPP) + || vim_strchr(fname, '~') != NULL +! # endif + ) + return FullName_save(fname, FALSE); + + fname = vim_strsave(fname); + +! # ifdef USE_FNAME_CASE +! # ifdef USE_LONG_FNAME + if (USE_LONG_FNAME) +! # endif + { + if (fname != NULL) + fname_case(fname, 0); /* set correct case for file name */ + } +! # endif + + return fname; + #endif +*** ../vim-7.1.134/src/version.c Wed Oct 3 13:28:40 2007 +--- src/version.c Wed Oct 3 14:26:54 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 135, + /**/ + +-- + A village. Sound of chanting of Latin canon, punctuated by short, sharp + cracks. It comes nearer. We see it is a line of MONKS ala SEVENTH SEAL + flagellation scene, chanting and banging themselves on the foreheads with + wooden boards. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.136 b/7.1.136 new file mode 100644 index 00000000..c1a9a82c --- /dev/null +++ b/7.1.136 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.136 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.136 +Problem: Memory leak when using Ruby syntax highlighting. (Dominique Pelle) +Solution: Free the contained-in list. +Files: src/syntax.c + + +*** ../vim-7.1.135/src/syntax.c Thu Aug 30 19:36:52 2007 +--- src/syntax.c Sun Oct 7 15:10:54 2007 +*************** +*** 3354,3359 **** +--- 3354,3360 ---- + { + vim_free(SYN_ITEMS(buf)[i].sp_cont_list); + vim_free(SYN_ITEMS(buf)[i].sp_next_list); ++ vim_free(SYN_ITEMS(buf)[i].sp_syn.cont_in_list); + } + } + +*** ../vim-7.1.135/src/version.c Wed Oct 3 14:30:54 2007 +--- src/version.c Sun Oct 7 15:20:22 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 136, + /**/ + +-- +Every engineer dreams about saving the universe and having sex with aliens. +This is much more glamorous than the real life of an engineer, which consists +of hiding from the universe and having sex without the participation of other +life forms. (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.137 b/7.1.137 new file mode 100644 index 00000000..7e3a53f6 --- /dev/null +++ b/7.1.137 @@ -0,0 +1,49 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.137 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.137 +Problem: Build failure when using EXITFREE. (Dominique Pelle) +Solution: Add an #ifdef around using clip_exclude_prog. +Files: src/misc2.c + + +*** ../vim-7.1.136/src/misc2.c Sat Sep 29 14:15:00 2007 +--- src/misc2.c Sun Sep 30 18:00:09 2007 +*************** +*** 1037,1043 **** +--- 1038,1046 ---- + + /* Free some global vars. */ + vim_free(username); ++ # ifdef FEAT_CLIPBOARD + vim_free(clip_exclude_prog); ++ # endif + vim_free(last_cmdline); + vim_free(new_last_cmdline); + set_keep_msg(NULL, 0); +*** ../vim-7.1.136/src/version.c Sun Oct 7 15:21:31 2007 +--- src/version.c Sun Oct 7 15:42:26 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 137, + /**/ + +-- +For society, it's probably a good thing that engineers value function over +appearance. For example, you wouldn't want engineers to build nuclear power +plants that only _look_ like they would keep all the radiation inside. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.138 b/7.1.138 new file mode 100644 index 00000000..792cdbc6 --- /dev/null +++ b/7.1.138 @@ -0,0 +1,66 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.138 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.138 +Problem: The Perl Msg() function doesn't stop when "q" is typed at the more + prompt. (Hari Krishna Dara) +Solution: Check got_int. +Files: src/if_perl.xs + + +*** ../vim-7.1.137/src/if_perl.xs Sat Sep 15 14:48:57 2007 +--- src/if_perl.xs Wed Oct 3 17:00:16 2007 +*************** +*** 445,457 **** + char *next; + char *token = (char *)s; + +! while ((next = strchr(token, '\n'))) + { + *next++ = '\0'; /* replace \n with \0 */ + msg_attr((char_u *)token, attr); + token = next; + } +! if (*token) + msg_attr((char_u *)token, attr); + } + +--- 445,457 ---- + char *next; + char *token = (char *)s; + +! while ((next = strchr(token, '\n')) && !got_int) + { + *next++ = '\0'; /* replace \n with \0 */ + msg_attr((char_u *)token, attr); + token = next; + } +! if (*token && !got_int) + msg_attr((char_u *)token, attr); + } + +*** ../vim-7.1.137/src/version.c Sun Oct 7 15:44:28 2007 +--- src/version.c Tue Oct 9 10:45:08 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 138, + /**/ + +-- +A consultant is a person who takes your money and annoys your employees while +tirelessly searching for the best way to extend the consulting contract. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.139 b/7.1.139 new file mode 100644 index 00000000..27671514 --- /dev/null +++ b/7.1.139 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.139 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.139 +Problem: When using marker folding and ending Insert mode with CTRL-C the + current fold is truncated. (Fred Kater) +Solution: Ignore got_int while updating folds. +Files: src/fold.c + + +*** ../vim-7.1.138/src/fold.c Thu May 10 21:02:13 2007 +--- src/fold.c Sun Oct 14 15:27:13 2007 +*************** +*** 858,864 **** +--- 858,871 ---- + || foldmethodIsDiff(wp) + #endif + || foldmethodIsSyntax(wp)) ++ { ++ int save_got_int = got_int; ++ ++ /* reset got_int here, otherwise it won't work */ ++ got_int = FALSE; + foldUpdateIEMS(wp, top, bot); ++ got_int |= save_got_int; ++ } + } + + /* foldUpdateAll() {{{2 */ +*** ../vim-7.1.138/src/version.c Tue Oct 9 10:46:39 2007 +--- src/version.c Sun Oct 14 15:31:18 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 139, + /**/ + +-- +If Pacman had affected us as kids we'd be running around in dark rooms, +munching pills and listening to repetitive music. + -- Marcus Brigstocke + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.140 b/7.1.140 new file mode 100644 index 00000000..d10c1884 --- /dev/null +++ b/7.1.140 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.140 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.140 +Problem: v:count is set only after typing a non-digit, that makes it + difficult to make a nice mapping. +Solution: Set v:count while still typing the count. +Files: src/normal.c + + +*** ../vim-7.1.139/src/normal.c Thu Sep 13 18:25:08 2007 +--- src/normal.c Sun Oct 14 17:15:36 2007 +*************** +*** 690,695 **** +--- 690,702 ---- + ca.count0 = ca.count0 * 10 + (c - '0'); + if (ca.count0 < 0) /* got too large! */ + ca.count0 = 999999999L; ++ #ifdef FEAT_EVAL ++ /* Set v:count here, when called from main() and not a stuffed ++ * command, so that v:count can be used in an expression mapping ++ * right after the count. */ ++ if (toplevel && stuff_empty()) ++ set_vcount(ca.count0, ca.count0 == 0 ? 1 : ca.count0); ++ #endif + if (ctrl_w) + { + ++no_mapping; +*** ../vim-7.1.139/src/version.c Sun Oct 14 15:32:10 2007 +--- src/version.c Sun Oct 14 17:13:15 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 140, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +11. Specify that your drive-through order is "to go". + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.141 b/7.1.141 new file mode 100644 index 00000000..7b3c5d9f --- /dev/null +++ b/7.1.141 @@ -0,0 +1,97 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.141 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.141 +Problem: GTK: -geom argument doesn't support a negative offset. +Solution: Compute position from the right/lower corner. +Files: src/gui_gtk_x11.c + + +*** ../vim-7.1.140/src/gui_gtk_x11.c Sat Sep 15 14:06:41 2007 +--- src/gui_gtk_x11.c Mon Oct 8 21:26:50 2007 +*************** +*** 4044,4049 **** +--- 4044,4051 ---- + unsigned int w, h; + int x = 0; + int y = 0; ++ guint pixel_width; ++ guint pixel_height; + + mask = XParseGeometry((char *)gui.geom, &x, &y, &w, &h); + +*************** +*** 4055,4066 **** +--- 4057,4087 ---- + p_window = h - 1; + Rows = h; + } ++ ++ pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width); ++ pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height); ++ ++ #ifdef HAVE_GTK2 ++ pixel_width += get_menu_tool_width(); ++ pixel_height += get_menu_tool_height(); ++ #endif ++ + if (mask & (XValue | YValue)) ++ { ++ int w, h; ++ gui_mch_get_screen_dimensions(&w, &h); ++ h += p_ghr + get_menu_tool_height(); ++ w += get_menu_tool_width(); ++ if (mask & XNegative) ++ x += w - pixel_width; ++ if (mask & YNegative) ++ y += h - pixel_height; + #ifdef HAVE_GTK2 + gtk_window_move(GTK_WINDOW(gui.mainwin), x, y); + #else + gtk_widget_set_uposition(gui.mainwin, x, y); + #endif ++ } + vim_free(gui.geom); + gui.geom = NULL; + +*************** +*** 4071,4084 **** + */ + if (gtk_socket_id != 0 && (mask & WidthValue || mask & HeightValue)) + { +- guint pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width); +- guint pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height); +- +- #ifdef HAVE_GTK2 +- pixel_width += get_menu_tool_width(); +- pixel_height += get_menu_tool_height(); +- #endif +- + update_window_manager_hints(pixel_width, pixel_height); + init_window_hints_state = 1; + g_timeout_add(1000, check_startup_plug_hints, NULL); +--- 4092,4097 ---- +*** ../vim-7.1.140/src/version.c Sun Oct 14 17:15:45 2007 +--- src/version.c Fri Oct 19 14:28:52 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 141, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +35. Your husband tells you he's had the beard for 2 months. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.142 b/7.1.142 new file mode 100644 index 00000000..892cf99f --- /dev/null +++ b/7.1.142 @@ -0,0 +1,77 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.142 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.142 +Problem: ":redir @A>" doesn't work. +Solution: Ignore the extra ">" also when appending. (James Vega) +Files: src/ex_docmd.c + + +*** ../vim-7.1.141/src/ex_docmd.c Sun Sep 30 14:00:41 2007 +--- src/ex_docmd.c Tue Oct 9 11:09:09 2007 +*************** +*** 8426,8446 **** + || *arg == '"') + { + redir_reg = *arg++; +! if (*arg == '>' && arg[1] == '>') + arg += 2; +! else if ((*arg == NUL || (*arg == '>' && arg[1] == NUL)) && +! (islower(redir_reg) +! # ifdef FEAT_CLIPBOARD +! || redir_reg == '*' +! || redir_reg == '+' +! # endif +! || redir_reg == '"')) + { + if (*arg == '>') + arg++; +! +! /* make register empty */ +! write_reg_contents(redir_reg, (char_u *)"", -1, FALSE); + } + } + if (*arg != NUL) +--- 8426,8442 ---- + || *arg == '"') + { + redir_reg = *arg++; +! if (*arg == '>' && arg[1] == '>') /* append */ + arg += 2; +! else + { ++ /* Can use both "@a" and "@a>". */ + if (*arg == '>') + arg++; +! /* Make register empty when not using @A-@Z and the +! * command is valid. */ +! if (*arg == NUL && !isupper(redir_reg)) +! write_reg_contents(redir_reg, (char_u *)"", -1, FALSE); + } + } + if (*arg != NUL) +*** ../vim-7.1.141/src/version.c Fri Oct 19 14:32:50 2007 +--- src/version.c Fri Oct 19 16:18:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 142, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +36. You miss more than five meals a week downloading the latest games from + Apogee. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.143 b/7.1.143 new file mode 100644 index 00000000..fa385afa --- /dev/null +++ b/7.1.143 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.143 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.143 +Problem: Uninitialized memory read when diffing three files. (Dominique + Pelle) +Solution: Remove "+ !notset" so that we don't use fields that were not + computed. +Files: src/diff.c + + +*** ../vim-7.1.142/src/diff.c Sat Sep 29 14:15:00 2007 +--- src/diff.c Sun Oct 14 21:52:56 2007 +*************** +*** 1310,1316 **** + dp->df_count[idx_new] += -off; + off = 0; + } +! for (i = idx_orig; i < idx_new + !notset; ++i) + if (curtab->tp_diffbuf[i] != NULL) + dp->df_count[i] = dpl->df_lnum[i] + dpl->df_count[i] + - dp->df_lnum[i] + off; +--- 1310,1316 ---- + dp->df_count[idx_new] += -off; + off = 0; + } +! for (i = idx_orig; i < idx_new; ++i) + if (curtab->tp_diffbuf[i] != NULL) + dp->df_count[i] = dpl->df_lnum[i] + dpl->df_count[i] + - dp->df_lnum[i] + off; +*** ../vim-7.1.142/src/version.c Fri Oct 19 16:20:09 2007 +--- src/version.c Fri Oct 19 17:32:18 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 143, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +37. You start looking for hot HTML addresses in public restrooms. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.144 b/7.1.144 new file mode 100644 index 00000000..d2bcfa0c --- /dev/null +++ b/7.1.144 @@ -0,0 +1,46 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.144 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.144 +Problem: After ":diffup" cursor can be in the wrong position. +Solution: Force recomputing the cursor position. +Files: src/diff.c + + +*** ../vim-7.1.143/src/diff.c Fri Oct 19 17:32:58 2007 +--- src/diff.c Fri Oct 19 18:54:13 2007 +*************** +*** 791,796 **** +--- 791,799 ---- + } + mch_remove(tmp_orig); + ++ /* force updating cursor position on screen */ ++ curwin->w_valid_cursor.lnum = 0; ++ + diff_redraw(TRUE); + + theend: +*** ../vim-7.1.143/src/version.c Fri Oct 19 17:32:58 2007 +--- src/version.c Fri Oct 19 18:56:49 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 144, + /**/ + +-- +He who laughs last, thinks slowest. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.145 b/7.1.145 new file mode 100644 index 00000000..cb947995 --- /dev/null +++ b/7.1.145 @@ -0,0 +1,171 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.145 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.145 +Problem: Insert mode completion: When using the popup menu, after + completing a word and typing a non-word character Vim is still + completing the same word, following CTRL-N doesn't work. + Insert mode Completion: When using CTRL-X O and there is only + "struct." before the cursor, typing one char to reduce the + matches, then BS completion stops. +Solution: When typing a character that is not part of the item being + completed, stop complete mode. For whole line completion also + accept a space. For file name completion stop at a path + separator. + For omni completion stay in completion mode even if completing + with empty string. +Files: src/edit.c + + +*** ../vim-7.1.144/src/edit.c Thu Sep 13 18:25:08 2007 +--- src/edit.c Fri Oct 19 16:04:38 2007 +*************** +*** 129,134 **** +--- 129,135 ---- + + static void ins_ctrl_x __ARGS((void)); + static int has_compl_option __ARGS((int dict_opt)); ++ static int ins_compl_accept_char __ARGS((int c)); + static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int adup)); + static int ins_compl_equal __ARGS((compl_T *match, char_u *str, int len)); + static void ins_compl_longest_match __ARGS((compl_T *match)); +*************** +*** 754,761 **** + continue; + } + +! /* A printable, non-white character: Add to "compl_leader". */ +! if (vim_isprintc(c) && !vim_iswhite(c)) + { + ins_compl_addleader(c); + continue; +--- 755,763 ---- + continue; + } + +! /* A non-white character that fits in with the current +! * completion: Add to "compl_leader". */ +! if (ins_compl_accept_char(c)) + { + ins_compl_addleader(c); + continue; +*************** +*** 2053,2058 **** +--- 2055,2094 ---- + } + + /* ++ * Return TRUE when character "c" is part of the item currently being ++ * completed. Used to decide whether to abandon complete mode when the menu ++ * is visible. ++ */ ++ static int ++ ins_compl_accept_char(c) ++ int c; ++ { ++ if (ctrl_x_mode & CTRL_X_WANT_IDENT) ++ /* When expanding an identifier only accept identifier chars. */ ++ return vim_isIDc(c); ++ ++ switch (ctrl_x_mode) ++ { ++ case CTRL_X_FILES: ++ /* When expanding file name only accept file name chars. But not ++ * path separators, so that "proto/" expands files in ++ * "proto", not "proto/" as a whole */ ++ return vim_isfilec(c) && !vim_ispathsep(c); ++ ++ case CTRL_X_CMDLINE: ++ case CTRL_X_OMNI: ++ /* Command line and Omni completion can work with just about any ++ * printable character, but do stop at white space. */ ++ return vim_isprintc(c) && !vim_iswhite(c); ++ ++ case CTRL_X_WHOLE_LINE: ++ /* For while line completion a space can be part of the line. */ ++ return vim_isprintc(c); ++ } ++ return vim_iswordc(c); ++ } ++ ++ /* + * This is like ins_compl_add(), but if 'ic' and 'inf' are set, then the + * case of the originally typed text is used, and the case of the completed + * text is inferred, ie this tries to work out what case you probably wanted +*************** +*** 3128,3135 **** + p = line + curwin->w_cursor.col; + mb_ptr_back(line, p); + +! /* Stop completion when the whole word was deleted. */ +! if ((int)(p - line) - (int)compl_col <= 0) + return K_BS; + + /* Deleted more than what was used to find matches or didn't finish +--- 3164,3174 ---- + p = line + curwin->w_cursor.col; + mb_ptr_back(line, p); + +! /* Stop completion when the whole word was deleted. For Omni completion +! * allow the word to be deleted, we won't match everything. */ +! if ((int)(p - line) - (int)compl_col < 0 +! || ((int)(p - line) - (int)compl_col == 0 +! && (ctrl_x_mode & CTRL_X_OMNI) == 0)) + return K_BS; + + /* Deleted more than what was used to find matches or didn't finish +*************** +*** 4591,4604 **** + curs_col = curwin->w_cursor.col; + compl_pending = 0; + +! /* if this same ctrl_x_mode has been interrupted use the text from + * "compl_startpos" to the cursor as a pattern to add a new word + * instead of expand the one before the cursor, in word-wise if +! * "compl_startpos" +! * is not in the same line as the cursor then fix it (the line has +! * been split because it was longer than 'tw'). if SOL is set then +! * skip the previous pattern, a word at the beginning of the line has +! * been inserted, we'll look for that -- Acevedo. */ + if ((compl_cont_status & CONT_INTRPT) == CONT_INTRPT + && compl_cont_mode == ctrl_x_mode) + { +--- 4630,4642 ---- + curs_col = curwin->w_cursor.col; + compl_pending = 0; + +! /* If this same ctrl_x_mode has been interrupted use the text from + * "compl_startpos" to the cursor as a pattern to add a new word + * instead of expand the one before the cursor, in word-wise if +! * "compl_startpos" is not in the same line as the cursor then fix it +! * (the line has been split because it was longer than 'tw'). if SOL +! * is set then skip the previous pattern, a word at the beginning of +! * the line has been inserted, we'll look for that -- Acevedo. */ + if ((compl_cont_status & CONT_INTRPT) == CONT_INTRPT + && compl_cont_mode == ctrl_x_mode) + { +*** ../vim-7.1.144/src/version.c Fri Oct 19 18:57:33 2007 +--- src/version.c Fri Oct 19 20:38:21 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 145, + /**/ + +-- +Micro$oft: where do you want to go today? + Linux: where do you want to go tomorrow? + FreeBSD: are you guys coming, or what? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.146 b/7.1.146 new file mode 100644 index 00000000..75ce738f --- /dev/null +++ b/7.1.146 @@ -0,0 +1,92 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.146 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.146 (extra) +Problem: VMS: Files with a very rare record organization (VFC) cannot be + properly written by Vim. + On older VAX systems mms runs into a syntax error. +Solution: Check for this special situation. Do not wrap a comment, make it + one long line. (Zoltan Arpadffy) +Files: src/fileio.c, src/Make_vms.mms + + +*** ../vim-7.1.145/src/fileio.c Wed Oct 3 12:49:24 2007 +--- src/fileio.c Mon Oct 22 21:10:00 2007 +*************** +*** 4251,4257 **** + * they don't it adds one. + * With other RMS structures it works perfect without this fix. + */ +! if ((buf->b_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0) + { + int b2write; + +--- 4252,4259 ---- + * they don't it adds one. + * With other RMS structures it works perfect without this fix. + */ +! if (buf->b_fab_rfm == FAB$C_VFC +! || ((buf->b_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0)) + { + int b2write; + +*** ../vim-7.1.145/src/Make_vms.mms Thu May 10 20:47:35 2007 +--- src/Make_vms.mms Mon Oct 22 21:13:08 2007 +*************** +*** 2,8 **** + # Makefile for Vim on OpenVMS + # + # Maintainer: Zoltan Arpadffy +! # Last change: 2007 May 07 + # + # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 + # with MMS and MMK +--- 2,8 ---- + # Makefile for Vim on OpenVMS + # + # Maintainer: Zoltan Arpadffy +! # Last change: 2007 Oct 22 + # + # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 + # with MMS and MMK +*************** +*** 96,103 **** + + .IFDEF MMSVAX + .IFDEF DECC # VAX with DECC +! CC_DEF = cc # /decc # some system requires this switch +! # but when it is not required /ver might fail + PREFIX = /prefix=all + .ELSE # VAX with VAXC + CC_DEF = cc +--- 96,102 ---- + + .IFDEF MMSVAX + .IFDEF DECC # VAX with DECC +! CC_DEF = cc # /decc # some system requires this switch but when it is not required /ver might fail + PREFIX = /prefix=all + .ELSE # VAX with VAXC + CC_DEF = cc +*** ../vim-7.1.145/src/version.c Fri Oct 19 20:39:56 2007 +--- src/version.c Mon Oct 29 22:36:20 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 146, + /**/ + +-- +Be thankful to be in a traffic jam, because it means you own a car. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.147 b/7.1.147 new file mode 100644 index 00000000..57e49659 --- /dev/null +++ b/7.1.147 @@ -0,0 +1,75 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.147 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.147 (after 7.1.127) +Problem: Freeing memory already freed when completing user name. (Meino + Cramer) +Solution: Use a flag to remember if "orig" needs to be freed. +Files: src/ex_getln.c + + +*** ../vim-7.1.146/src/ex_getln.c Sun Sep 30 22:10:45 2007 +--- src/ex_getln.c Tue Oct 30 17:13:33 2007 +*************** +*** 3353,3358 **** +--- 3353,3359 ---- + char_u *ss = NULL; + static int findex; + static char_u *orig_save = NULL; /* kept value of orig */ ++ int orig_saved = FALSE; + int i; + long_u len; + int non_suf_match; /* number without matching suffix */ +*************** +*** 3421,3426 **** +--- 3422,3428 ---- + { + vim_free(orig_save); + orig_save = orig; ++ orig_saved = TRUE; + + /* + * Do the expansion. +*************** +*** 3546,3552 **** + ExpandCleanup(xp); + + /* Free "orig" if it wasn't stored in "orig_save". */ +! if (orig != orig_save) + vim_free(orig); + + return ss; +--- 3548,3554 ---- + ExpandCleanup(xp); + + /* Free "orig" if it wasn't stored in "orig_save". */ +! if (!orig_saved) + vim_free(orig); + + return ss; +*** ../vim-7.1.146/src/version.c Mon Oct 29 22:37:57 2007 +--- src/version.c Tue Oct 30 17:30:35 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 147, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +59. Your wife says communication is important in a marriage...so you buy + another computer and install a second phone line so the two of you can + chat. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.148 b/7.1.148 new file mode 100644 index 00000000..94872e59 --- /dev/null +++ b/7.1.148 @@ -0,0 +1,73 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.148 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.148 +Problem: Some types are not found by configure. +Solution: Test for the sys/types.h header file. (Sean Boudreau) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.1.147/src/configure.in Thu Jun 28 13:02:22 2007 +--- src/configure.in Sat Oct 27 15:52:16 2007 +*************** +*** 2026,2032 **** + fi + + AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \ +! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h termio.h \ + iconv.h langinfo.h unistd.h stropts.h errno.h \ + sys/resource.h sys/systeminfo.h locale.h \ + sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \ +--- 2026,2032 ---- + fi + + AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \ +! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \ + iconv.h langinfo.h unistd.h stropts.h errno.h \ + sys/resource.h sys/systeminfo.h locale.h \ + sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \ +*** ../vim-7.1.147/src/auto/configure Thu Jun 28 13:02:22 2007 +--- src/auto/configure Sun Nov 4 15:34:14 2007 +*************** +*** 10265,10272 **** + + + + for ac_header in stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \ +! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h termio.h \ + iconv.h langinfo.h unistd.h stropts.h errno.h \ + sys/resource.h sys/systeminfo.h locale.h \ + sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \ +--- 10265,10273 ---- + + + ++ + for ac_header in stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \ +! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \ + iconv.h langinfo.h unistd.h stropts.h errno.h \ + sys/resource.h sys/systeminfo.h locale.h \ + sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \ +*** ../vim-7.1.147/src/version.c Tue Oct 30 17:36:31 2007 +--- src/version.c Sun Nov 4 15:34:26 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 148, + /**/ + +-- +If your nose runs, and your feet smell, you might be upside down. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.149 b/7.1.149 new file mode 100644 index 00000000..e6a0f5b6 --- /dev/null +++ b/7.1.149 @@ -0,0 +1,180 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.149 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.149 +Problem: GTK GUI: When the completion popup menu is used scrolling another + window by the scrollbar is OK, but using the scroll wheel it + behaves line . +Solution: Ignore K_MOUSEDOWN and K_MOUSEUP. Fix redrawing the popup menu. +Files: src/edit.c, src/gui.c + + +*** ../vim-7.1.148/src/edit.c Fri Oct 19 20:39:56 2007 +--- src/edit.c Sun Nov 4 16:17:42 2007 +*************** +*** 3385,3392 **** + if (c != Ctrl_R && vim_is_ctrl_x_key(c)) + edit_submode_extra = NULL; + +! /* Ignore end of Select mode mapping */ +! if (c == K_SELECT) + return retval; + + /* Set "compl_get_longest" when finding the first matches. */ +--- 3385,3392 ---- + if (c != Ctrl_R && vim_is_ctrl_x_key(c)) + edit_submode_extra = NULL; + +! /* Ignore end of Select mode mapping and mouse scroll buttons. */ +! if (c == K_SELECT || c == K_MOUSEDOWN || c == K_MOUSEUP) + return retval; + + /* Set "compl_get_longest" when finding the first matches. */ +*************** +*** 8652,8666 **** + int up; + { + pos_T tpos; +! # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) +! win_T *old_curwin; + # endif + + tpos = curwin->w_cursor; + + # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) +- old_curwin = curwin; +- + /* Currently the mouse coordinates are only known in the GUI. */ + if (gui.in_use && mouse_row >= 0 && mouse_col >= 0) + { +--- 8652,8667 ---- + int up; + { + pos_T tpos; +! # if defined(FEAT_WINDOWS) +! win_T *old_curwin = curwin; +! # endif +! # ifdef FEAT_INS_EXPAND +! int did_scroll = FALSE; + # endif + + tpos = curwin->w_cursor; + + # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) + /* Currently the mouse coordinates are only known in the GUI. */ + if (gui.in_use && mouse_row >= 0 && mouse_col >= 0) + { +*************** +*** 8677,8692 **** + # endif + undisplay_dollar(); + +! if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL)) +! scroll_redraw(up, (long)(curwin->w_botline - curwin->w_topline)); +! else +! scroll_redraw(up, 3L); + + # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) + curwin->w_redr_status = TRUE; + + curwin = old_curwin; + curbuf = curwin->w_buffer; + # endif + + if (!equalpos(curwin->w_cursor, tpos)) +--- 8678,8717 ---- + # endif + undisplay_dollar(); + +! # ifdef FEAT_INS_EXPAND +! /* Don't scroll the window in which completion is being done. */ +! if (!pum_visible() +! # if defined(FEAT_WINDOWS) +! || curwin != old_curwin +! # endif +! ) +! # endif +! { +! if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL)) +! scroll_redraw(up, (long)(curwin->w_botline - curwin->w_topline)); +! else +! scroll_redraw(up, 3L); +! # ifdef FEAT_INS_EXPAND +! did_scroll = TRUE; +! # endif +! } + + # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) + curwin->w_redr_status = TRUE; + + curwin = old_curwin; + curbuf = curwin->w_buffer; ++ # endif ++ ++ # ifdef FEAT_INS_EXPAND ++ /* The popup menu may overlay the window, need to redraw it. ++ * TODO: Would be more efficient to only redraw the windows that are ++ * overlapped by the popup menu. */ ++ if (pum_visible() && did_scroll) ++ { ++ redraw_all_later(NOT_VALID); ++ ins_compl_show_pum(); ++ } + # endif + + if (!equalpos(curwin->w_cursor, tpos)) +*** ../vim-7.1.148/src/gui.c Wed Sep 5 21:45:54 2007 +--- src/gui.c Fri Oct 19 16:14:57 2007 +*************** +*** 4214,4220 **** + #endif + ) + { +! redraw_win_later(wp, VALID); + updateWindow(wp); /* update window, status line, and cmdline */ + } + +--- 4214,4232 ---- + #endif + ) + { +! int type = VALID; +! +! #ifdef FEAT_INS_EXPAND +! if (pum_visible()) +! { +! type = NOT_VALID; +! wp->w_lines_valid = 0; +! } +! #endif +! /* Don't set must_redraw here, it may cause the popup menu to +! * disappear when losing focus after a scrollbar drag. */ +! if (wp->w_redr_type < type) +! wp->w_redr_type = type; + updateWindow(wp); /* update window, status line, and cmdline */ + } + +*** ../vim-7.1.148/src/version.c Sun Nov 4 15:35:23 2007 +--- src/version.c Tue Nov 6 22:21:03 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 149, + /**/ + +-- +From "know your smileys": + ...---... SOS + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.150 b/7.1.150 new file mode 100644 index 00000000..b0074a95 --- /dev/null +++ b/7.1.150 @@ -0,0 +1,59 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.150 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.150 +Problem: When 'clipboard' has "unnamed" using "p" in Visual mode doesn't + work correctly. (Jianrong Yu) +Solution: When 'clipboard' has "unnamed" also obtain the selection when + getting the default register. +Files: src/ops.c + + +*** ../vim-7.1.149/src/ops.c Tue Sep 25 14:19:35 2007 +--- src/ops.c Sun Oct 28 13:58:35 2007 +*************** +*** 933,941 **** + #ifdef FEAT_CLIPBOARD + /* When Visual area changed, may have to update selection. Obtain the + * selection too. */ +! if (name == '*' && clip_star.available && clip_isautosel()) + { +! clip_update_selection(); + may_get_selection(name); + } + #endif +--- 933,942 ---- + #ifdef FEAT_CLIPBOARD + /* When Visual area changed, may have to update selection. Obtain the + * selection too. */ +! if (name == '*' && clip_star.available) + { +! if (clip_isautosel()) +! clip_update_selection(); + may_get_selection(name); + } + #endif +*** ../vim-7.1.149/src/version.c Tue Nov 6 22:26:39 2007 +--- src/version.c Thu Nov 8 10:34:18 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 150, + /**/ + +-- +From "know your smileys": + 8<}} Glasses, big nose, beard + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.151 b/7.1.151 new file mode 100644 index 00000000..610bafb1 --- /dev/null +++ b/7.1.151 @@ -0,0 +1,70 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.151 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.151 +Problem: Using whole line completion with 'ignorecase' and 'infercase' set + and the line is empty get an lalloc(0) error. +Solution: Don't try changing case for an empty match. (Matthew Wozniski) +Files: src/edit.c + + +*** ../vim-7.1.150/src/edit.c Tue Nov 6 22:26:39 2007 +--- src/edit.c Sun Nov 4 16:17:42 2007 +*************** +*** 2111,2117 **** + int has_lower = FALSE; + int was_letter = FALSE; + +! if (p_ic && curbuf->b_p_inf) + { + /* Infer case of completed part. */ + +--- 2111,2117 ---- + int has_lower = FALSE; + int was_letter = FALSE; + +! if (p_ic && curbuf->b_p_inf && len > 0) + { + /* Infer case of completed part. */ + +*************** +*** 2225,2231 **** + wca[i] = MB_TOUPPER(wca[i]); + } + +! /* + * Generate encoding specific output from wide character array. + * Multi-byte characters can occupy up to five bytes more than + * ASCII characters, and we also need one byte for NUL, so stay +--- 2225,2231 ---- + wca[i] = MB_TOUPPER(wca[i]); + } + +! /* + * Generate encoding specific output from wide character array. + * Multi-byte characters can occupy up to five bytes more than + * ASCII characters, and we also need one byte for NUL, so stay +*** ../vim-7.1.150/src/version.c Thu Nov 8 10:35:02 2007 +--- src/version.c Thu Nov 8 13:01:34 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 151, + /**/ + +-- +From "know your smileys": + %-) After staring at screen for 15 hours + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.152 b/7.1.152 new file mode 100644 index 00000000..d1a0f30b --- /dev/null +++ b/7.1.152 @@ -0,0 +1,118 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.152 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.152 +Problem: Display problem when 'hls' and 'cursorcolumn' are set and + searching for "$". (John Mullin) Also when scrolling + horizontally when 'wrap' is off. +Solution: Keep track of the column where highlighting was set. Check the + column offset when skipping characters. +Files: src/screen.c + + +*** ../vim-7.1.151/src/screen.c Mon Sep 17 22:37:05 2007 +--- src/screen.c Fri Oct 19 15:18:49 2007 +*************** +*** 2599,2604 **** +--- 2599,2605 ---- + int syntax_attr = 0; /* attributes desired by syntax */ + int has_syntax = FALSE; /* this buffer has syntax highl. */ + int save_did_emsg; ++ int eol_hl_off = 0; /* 1 if highlighted char after EOL */ + #endif + #ifdef FEAT_SPELL + int has_spell = FALSE; /* this buffer has spell checking */ +*************** +*** 4312,4317 **** +--- 4313,4322 ---- + { + #ifdef FEAT_SEARCH_EXTRA + long prevcol = (long)(ptr - line) - (c == NUL); ++ ++ /* we're not really at that column when skipping some text */ ++ if ((wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol) ++ ++prevcol; + #endif + + /* invert at least one char, used for Visual and empty line or +*************** +*** 4408,4418 **** +--- 4413,4432 ---- + ScreenAttrs[off] = char_attr; + #ifdef FEAT_RIGHTLEFT + if (wp->w_p_rl) ++ { + --col; ++ --off; ++ } + else + #endif ++ { + ++col; ++ ++off; ++ } + ++vcol; ++ #ifdef FEAT_SYN_HL ++ eol_hl_off = 1; ++ #endif + } + } + +*************** +*** 4422,4427 **** +--- 4436,4449 ---- + if (c == NUL) + { + #ifdef FEAT_SYN_HL ++ if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol) ++ { ++ /* highlight last char after line */ ++ --col; ++ --off; ++ --vcol; ++ } ++ + /* Highlight 'cursorcolumn' past end of the line. */ + if (wp->w_p_wrap) + v = wp->w_skipcol; +*************** +*** 4432,4438 **** + + vcol = v + col - win_col_off(wp); + if (wp->w_p_cuc +! && (int)wp->w_virtcol >= vcol + && (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1) + + v + && lnum != wp->w_cursor.lnum +--- 4454,4460 ---- + + vcol = v + col - win_col_off(wp); + if (wp->w_p_cuc +! && (int)wp->w_virtcol >= vcol - eol_hl_off + && (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1) + + v + && lnum != wp->w_cursor.lnum +*** ../vim-7.1.151/src/version.c Thu Nov 8 13:03:33 2007 +--- src/version.c Thu Nov 8 14:48:59 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 152, + /**/ + +-- +From "know your smileys": + 2B|^2B Message from Shakespeare + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.153 b/7.1.153 new file mode 100644 index 00000000..839977eb --- /dev/null +++ b/7.1.153 @@ -0,0 +1,143 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.153 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.153 +Problem: Compiler warnings on SGI. Undefined XpmAllocColor (Charles + Campbell) +Solution: Add type casts. Init st_dev and st_ino separately. Don't use + type casts for vim_snprintf() when HAVE_STDARG_H is defined. + Define XpmAllocColor when needed. +Files: src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c, + src/gui_xmebw.c + + +*** ../vim-7.1.152/src/eval.c Tue Oct 2 22:07:58 2007 +--- src/eval.c Mon Oct 1 20:56:09 2007 +*************** +*** 8729,8735 **** + static int fnum = 0; + static int change_start = 0; + static int change_end = 0; +! static hlf_T hlID = 0; + int filler_lines; + int col; + +--- 8729,8735 ---- + static int fnum = 0; + static int change_start = 0; + static int change_end = 0; +! static hlf_T hlID = (hlf_T)0; + int filler_lines; + int col; + +*** ../vim-7.1.152/src/ex_cmds.c Thu Sep 13 18:25:08 2007 +--- src/ex_cmds.c Thu Sep 13 16:19:40 2007 +*************** +*** 1774,1780 **** + * overwrite a user's viminfo file after a "su root", with a + * viminfo file that the user can't read. + */ +! st_old.st_dev = st_old.st_ino = 0; + st_old.st_mode = 0600; + if (mch_stat((char *)fname, &st_old) == 0 + && getuid() != ROOT_UID +--- 1774,1781 ---- + * overwrite a user's viminfo file after a "su root", with a + * viminfo file that the user can't read. + */ +! st_old.st_dev = 0; +! st_old.st_ino = 0; + st_old.st_mode = 0600; + if (mch_stat((char *)fname, &st_old) == 0 + && getuid() != ROOT_UID +*** ../vim-7.1.152/src/fileio.c Mon Oct 29 22:37:57 2007 +--- src/fileio.c Mon Oct 22 21:10:00 2007 +*************** +*** 3209,3215 **** + * Get information about original file (if there is one). + */ + #if defined(UNIX) && !defined(ARCHIE) +! st_old.st_dev = st_old.st_ino = 0; + perm = -1; + if (mch_stat((char *)fname, &st_old) < 0) + newfile = TRUE; +--- 3209,3216 ---- + * Get information about original file (if there is one). + */ + #if defined(UNIX) && !defined(ARCHIE) +! st_old.st_dev = 0; +! st_old.st_ino = 0; + perm = -1; + if (mch_stat((char *)fname, &st_old) < 0) + newfile = TRUE; +*** ../vim-7.1.152/src/misc2.c Sun Oct 7 15:44:28 2007 +--- src/misc2.c Sun Sep 30 18:00:09 2007 +*************** +*** 5924,5930 **** +--- 5925,5935 ---- + { + if (emsg_not_now()) + return TRUE; /* no error messages at the moment */ ++ #ifdef HAVE_STDARG_H ++ vim_snprintf((char *)IObuff, IOSIZE, (char *)s, a1, a2); ++ #else + vim_snprintf((char *)IObuff, IOSIZE, (char *)s, (long_u)a1, (long_u)a2); ++ #endif + return emsg(IObuff); + } + +*** ../vim-7.1.152/src/gui_xmebw.c Thu May 10 19:46:55 2007 +--- src/gui_xmebw.c Thu Sep 6 12:57:51 2007 +*************** +*** 395,405 **** + + /* Create the "highlight" pixmap. */ + color[4].pixel = eb->primitive.bottom_shadow_color; + attr.valuemask = XpmColorSymbols | XpmCloseness | XpmAllocColor; + attr.closeness = 65535; /* accuracy isn't crucial */ + attr.colorsymbols = color; + attr.numsymbols = XtNumber(color); +- attr.alloc_color = alloc_color; + + status = XpmCreatePixmapFromData(dpy, root, data, &pix, NULL, &attr); + XpmFreeAttributes(&attr); +--- 395,409 ---- + + /* Create the "highlight" pixmap. */ + color[4].pixel = eb->primitive.bottom_shadow_color; ++ #ifdef XpmAllocColor /* SGI doesn't have it */ + attr.valuemask = XpmColorSymbols | XpmCloseness | XpmAllocColor; ++ attr.alloc_color = alloc_color; ++ #else ++ attr.valuemask = XpmColorSymbols | XpmCloseness; ++ #endif + attr.closeness = 65535; /* accuracy isn't crucial */ + attr.colorsymbols = color; + attr.numsymbols = XtNumber(color); + + status = XpmCreatePixmapFromData(dpy, root, data, &pix, NULL, &attr); + XpmFreeAttributes(&attr); +*** ../vim-7.1.152/src/version.c Thu Nov 8 14:50:58 2007 +--- src/version.c Thu Nov 8 20:45:56 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 153, + /**/ + +-- +From "know your smileys": + @:-() Elvis Presley + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.154 b/7.1.154 new file mode 100644 index 00000000..f38ac016 --- /dev/null +++ b/7.1.154 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.154 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.154 +Problem: Compiler warning for signed/unsigned compare. +Solution: Add type cast. +Files: src/screen.c + + +*** ../vim-7.1.153/src/screen.c Thu Nov 8 14:50:58 2007 +--- src/screen.c Thu Nov 8 21:18:46 2007 +*************** +*** 4315,4321 **** + long prevcol = (long)(ptr - line) - (c == NUL); + + /* we're not really at that column when skipping some text */ +! if ((wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol) + ++prevcol; + #endif + +--- 4315,4321 ---- + long prevcol = (long)(ptr - line) - (c == NUL); + + /* we're not really at that column when skipping some text */ +! if ((long)(wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol) + ++prevcol; + #endif + +*** ../vim-7.1.153/src/version.c Thu Nov 8 20:47:34 2007 +--- src/version.c Thu Nov 8 21:19:59 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 154, + /**/ + +-- +From "know your smileys": + :-F Bucktoothed vampire with one tooth missing + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.155 b/7.1.155 new file mode 100644 index 00000000..c813fef6 --- /dev/null +++ b/7.1.155 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.155 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.155 +Problem: Crash when 'undolevels' is 0 and repeating "udd". (James Vega) +Solution: When there is only one branch use u_freeheader() to delete it. +Files: src/undo.c + + +*** ../vim-7.1.154/src/undo.c Mon Oct 1 22:53:27 2007 +--- src/undo.c Sat Nov 10 13:45:28 2007 +*************** +*** 1677,1682 **** +--- 1677,1690 ---- + u_header_T **uhpp; /* if not NULL reset when freeing this header */ + { + u_header_T *tofree, *next; ++ ++ /* If this is the top branch we may need to use u_freeheader() to update ++ * all the pointers. */ ++ if (uhp == buf->b_u_oldhead) ++ { ++ u_freeheader(buf, uhp, uhpp); ++ return; ++ } + + if (uhp->uh_alt_prev != NULL) + uhp->uh_alt_prev->uh_alt_next = NULL; +*** ../vim-7.1.154/src/version.c Thu Nov 8 21:23:34 2007 +--- src/version.c Sat Nov 10 22:49:40 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 155, + /**/ + +-- +I AM THANKFUL... +...for the piles of laundry and ironing because it means I +have plenty of clothes to wear. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.156 b/7.1.156 new file mode 100644 index 00000000..4701e023 --- /dev/null +++ b/7.1.156 @@ -0,0 +1,121 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.156 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.156 +Problem: Overlapping arguments for strcpy() when expanding command line + variables. +Solution: Use mch_memmove() instead of STRCPY(). Also fix a few typos. + (Dominique Pelle) +Files: src/ex_docmd.c + + +*** ../vim-7.1.155/src/ex_docmd.c Fri Oct 19 16:20:09 2007 +--- src/ex_docmd.c Sat Nov 10 12:39:51 2007 +*************** +*** 666,672 **** + if (ex_pressedreturn) + { + /* go up one line, to overwrite the ":" line, so the +! * output doensn't contain empty lines. */ + msg_row = prev_msg_row; + if (prev_msg_row == Rows - 1) + msg_row--; +--- 666,672 ---- + if (ex_pressedreturn) + { + /* go up one line, to overwrite the ":" line, so the +! * output doesn't contain empty lines. */ + msg_row = prev_msg_row; + if (prev_msg_row == Rows - 1) + msg_row--; +*************** +*** 2760,2766 **** + + /* + * Isolate the command and search for it in the command table. +! * Exeptions: + * - the 'k' command can directly be followed by any character. + * - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r' + * but :sre[wind] is another command, as are :scrip[tnames], +--- 2760,2766 ---- + + /* + * Isolate the command and search for it in the command table. +! * Exceptions: + * - the 'k' command can directly be followed by any character. + * - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r' + * but :sre[wind] is another command, as are :scrip[tnames], +*************** +*** 6677,6683 **** + * The list should be allocated using alloc(), as should each item in the + * list. This function takes over responsibility for freeing the list. + * +! * XXX The list is made into the arggument list. This is freed using + * FreeWild(), which does a series of vim_free() calls, unless the two defines + * __EMX__ and __ALWAYS_HAS_TRAILING_NUL_POINTER are set. In this case, a + * routine _fnexplodefree() is used. This may cause problems, but as the drop +--- 6677,6683 ---- + * The list should be allocated using alloc(), as should each item in the + * list. This function takes over responsibility for freeing the list. + * +! * XXX The list is made into the argument list. This is freed using + * FreeWild(), which does a series of vim_free() calls, unless the two defines + * __EMX__ and __ALWAYS_HAS_TRAILING_NUL_POINTER are set. In this case, a + * routine _fnexplodefree() is used. This may cause problems, but as the drop +*************** +*** 7795,7801 **** + if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged() + && !eap->forceit) + { +! EMSG(_("E747: Cannot change directory, buffer is modifed (add ! to override)")); + return; + } + +--- 7795,7801 ---- + if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged() + && !eap->forceit) + { +! EMSG(_("E747: Cannot change directory, buffer is modified (add ! to override)")); + return; + } + +*************** +*** 9391,9397 **** + if (src > srcstart && src[-1] == '\\') + { + *usedlen = 0; +! STRCPY(src - 1, src); /* remove backslash */ + return NULL; + } + +--- 9391,9397 ---- + if (src > srcstart && src[-1] == '\\') + { + *usedlen = 0; +! mch_memmove(src - 1, src, STRLEN(src) + 1); /* remove backslash */ + return NULL; + } + +*** ../vim-7.1.155/src/version.c Sat Nov 10 22:50:20 2007 +--- src/version.c Sun Nov 11 19:15:51 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 156, + /**/ + +-- +Common sense is what tells you that the world is flat. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.157 b/7.1.157 new file mode 100644 index 00000000..071fdd8c --- /dev/null +++ b/7.1.157 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.157 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.157 +Problem: In Ex mode, :" gives an error at end-of-file. (Michael Hordijk) +Solution: Only give an error for an empty line, not for a comment. +Files: src/ex_docmd.c + + +*** ../vim-7.1.156/src/ex_docmd.c Sun Nov 11 19:16:44 2007 +--- src/ex_docmd.c Sat Nov 17 20:23:38 2007 +*************** +*** 1741,1747 **** + } + + /* ignore comment and empty lines */ +! if (*ea.cmd == '"' || *ea.cmd == NUL) + { + ex_pressedreturn = TRUE; + goto doend; +--- 1741,1749 ---- + } + + /* ignore comment and empty lines */ +! if (*ea.cmd == '"') +! goto doend; +! if (*ea.cmd == NUL) + { + ex_pressedreturn = TRUE; + goto doend; +*** ../vim-7.1.156/src/version.c Sun Nov 11 19:16:44 2007 +--- src/version.c Tue Nov 20 12:28:22 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 157, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +119. You are reading a book and look for the scroll bar to get to + the next page. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.158 b/7.1.158 new file mode 100644 index 00000000..8bd2e8f6 --- /dev/null +++ b/7.1.158 @@ -0,0 +1,157 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.158 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.158 (extra) +Problem: Win32 console: When 'encoding' is "utf-8" and typing Alt-y the + result is wrong. Win32 GUI: Alt-y results in "u" when 'encoding' + is "cp1250" (Lukas Cerman) +Solution: For utf-8 don't set the 7th bit in a byte, convert to the correct + byte sequence. For cp1250, when conversion to 'encoding' results + in the 7th bit not set, set the 7th bit after conversion. +Files: src/os_win32.c, src/gui_w48.c + + +*** ../vim-7.1.157/src/os_win32.c Mon Oct 1 20:33:45 2007 +--- src/os_win32.c Sat Oct 27 17:35:04 2007 +*************** +*** 1521,1527 **** +--- 1521,1532 ---- + #endif + ) + { ++ #ifdef FEAT_MBYTE ++ n = (*mb_char2bytes)(typeahead[typeaheadlen] | 0x80, ++ typeahead + typeaheadlen); ++ #else + typeahead[typeaheadlen] |= 0x80; ++ #endif + modifiers &= ~MOD_MASK_ALT; + } + +*** ../vim-7.1.157/src/gui_w48.c Sun Sep 30 14:00:41 2007 +--- src/gui_w48.c Mon Oct 29 20:00:25 2007 +*************** +*** 486,495 **** + + /* + * Convert Unicode character "ch" to bytes in "string[slen]". + * Return the length. + */ + static int +! char_to_string(int ch, char_u *string, int slen) + { + int len; + int i; +--- 486,496 ---- + + /* + * Convert Unicode character "ch" to bytes in "string[slen]". ++ * When "had_alt" is TRUE the ALT key was included in "ch". + * Return the length. + */ + static int +! char_to_string(int ch, char_u *string, int slen, int had_alt) + { + int len; + int i; +*************** +*** 522,529 **** +--- 523,544 ---- + * "enc_codepage" is non-zero use the standard Win32 function, + * otherwise use our own conversion function (e.g., for UTF-8). */ + if (enc_codepage > 0) ++ { + len = WideCharToMultiByte(enc_codepage, 0, wstring, len, + string, slen, 0, NULL); ++ /* If we had included the ALT key into the character but now the ++ * upper bit is no longer set, that probably means the conversion ++ * failed. Convert the original character and set the upper bit ++ * afterwards. */ ++ if (had_alt && len == 1 && ch >= 0x80 && string[0] < 0x80) ++ { ++ wstring[0] = ch & 0x7f; ++ len = WideCharToMultiByte(enc_codepage, 0, wstring, len, ++ string, slen, 0, NULL); ++ if (len == 1) /* safety check */ ++ string[0] |= 0x80; ++ } ++ } + else + { + len = 1; +*************** +*** 573,579 **** + char_u string[40]; + int len = 0; + +! len = char_to_string(ch, string, 40); + if (len == 1 && string[0] == Ctrl_C && ctrl_c_interrupts) + { + trash_input_buf(); +--- 588,594 ---- + char_u string[40]; + int len = 0; + +! len = char_to_string(ch, string, 40, FALSE); + if (len == 1 && string[0] == Ctrl_C && ctrl_c_interrupts) + { + trash_input_buf(); +*************** +*** 640,646 **** + { + /* Although the documentation isn't clear about it, we assume "ch" is + * a Unicode character. */ +! len += char_to_string(ch, string + len, 40 - len); + } + + add_to_input_buf(string, len); +--- 655,661 ---- + { + /* Although the documentation isn't clear about it, we assume "ch" is + * a Unicode character. */ +! len += char_to_string(ch, string + len, 40 - len, TRUE); + } + + add_to_input_buf(string, len); +*************** +*** 1775,1781 **** + int len; + + /* Handle "key" as a Unicode character. */ +! len = char_to_string(key, string, 40); + add_to_input_buf(string, len); + } + break; +--- 1790,1796 ---- + int len; + + /* Handle "key" as a Unicode character. */ +! len = char_to_string(key, string, 40, FALSE); + add_to_input_buf(string, len); + } + break; +*** ../vim-7.1.157/src/version.c Tue Nov 20 12:30:31 2007 +--- src/version.c Tue Nov 20 17:19:18 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 158, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +123. You ask the car dealer to install an extra cigarette lighter + on your new car to power your notebook. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.159 b/7.1.159 new file mode 100644 index 00000000..e7f86991 --- /dev/null +++ b/7.1.159 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.159 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.159 +Problem: strcpy() has overlapping arguments. +Solution: Use mch_memmove() instead. (Dominique Pelle) +Files: src/ex_cmds.c + + +*** ../vim-7.1.158/src/ex_cmds.c Thu Nov 8 20:47:34 2007 +--- src/ex_cmds.c Sun Nov 18 14:11:58 2007 +*************** +*** 4885,4891 **** + ++line2; + /* move the cursor to the new line, like Vi */ + ++curwin->w_cursor.lnum; +! STRCPY(new_start, p1 + 1); /* copy the rest */ + p1 = new_start - 1; + } + } +--- 4885,4892 ---- + ++line2; + /* move the cursor to the new line, like Vi */ + ++curwin->w_cursor.lnum; +! /* copy the rest */ +! mch_memmove(new_start, p1 + 1, STRLEN(p1 + 1) + 1); + p1 = new_start - 1; + } + } +*** ../vim-7.1.158/src/version.c Tue Nov 20 17:21:28 2007 +--- src/version.c Tue Nov 20 18:01:45 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 159, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +125. You begin to wonder how often it REALLY is necessary to get up + and shower or bathe. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.160 b/7.1.160 new file mode 100644 index 00000000..48d0443d --- /dev/null +++ b/7.1.160 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.160 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.160 +Problem: When a focus autocommand is defined, getting or losing focus + causes the hit-enter prompt to be redrawn. (Bjorn Winckler) +Solution: Overwrite the last line. +Files: src/message.c + + +*** ../vim-7.1.159/src/message.c Thu Sep 13 22:04:30 2007 +--- src/message.c Sun Nov 4 17:33:15 2007 +*************** +*** 2850,2855 **** +--- 2850,2864 ---- + } + else if (State == HITRETURN || State == SETWSIZE) + { ++ if (msg_row == Rows - 1) ++ { ++ /* Avoid drawing the "hit-enter" prompt below the previous one, ++ * overwrite it. Esp. useful when regaining focus and a ++ * FocusGained autocmd exists but didn't draw anything. */ ++ msg_didout = FALSE; ++ msg_col = 0; ++ msg_clr_eos(); ++ } + hit_return_msg(); + msg_row = Rows - 1; + } +*** ../vim-7.1.159/src/version.c Tue Nov 20 18:03:34 2007 +--- src/version.c Sat Nov 24 15:41:43 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 160, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +142. You dream about creating the world's greatest web site. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.161 b/7.1.161 new file mode 100644 index 00000000..69469ca3 --- /dev/null +++ b/7.1.161 @@ -0,0 +1,176 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.161 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.161 +Problem: Compilation errors with tiny features and EXITFREE. +Solution: Add #ifdefs. (Dominique Pelle) +Files: src/edit.c, src/misc2.c + + +*** ../vim-7.1.160/src/edit.c Thu Nov 8 13:03:33 2007 +--- src/edit.c Sat Nov 24 14:57:46 2007 +*************** +*** 2236,2242 **** + while (i < actual_len && (p - IObuff + 6) < IOSIZE) + #ifdef FEAT_MBYTE + if (has_mbyte) +! p += mb_char2bytes(wca[i++], p); + else + #endif + *(p++) = wca[i++]; +--- 2236,2242 ---- + while (i < actual_len && (p - IObuff + 6) < IOSIZE) + #ifdef FEAT_MBYTE + if (has_mbyte) +! p += (*mb_char2bytes)(wca[i++], p); + else + #endif + *(p++) = wca[i++]; +*************** +*** 6444,6451 **** +--- 6444,6453 ---- + { + vim_free(last_insert); + last_insert = NULL; ++ # ifdef FEAT_INS_EXPAND + vim_free(compl_orig_text); + compl_orig_text = NULL; ++ # endif + } + #endif + +*** ../vim-7.1.160/src/misc2.c Thu Nov 8 20:47:34 2007 +--- src/misc2.c Sat Nov 24 15:01:46 2007 +*************** +*** 964,970 **** + { + buf_T *buf, *nextbuf; + static int entered = FALSE; +- win_T *win; + + /* When we cause a crash here it is caught and Vim tries to exit cleanly. + * Don't try freeing everything again. */ +--- 965,970 ---- +*************** +*** 972,986 **** + return; + entered = TRUE; + + block_autocmds(); /* don't want to trigger autocommands here */ + +! #ifdef FEAT_WINDOWS + /* close all tabs and windows */ + if (first_tabpage->tp_next != NULL) + do_cmdline_cmd((char_u *)"tabonly!"); + if (firstwin != lastwin) + do_cmdline_cmd((char_u *)"only!"); +! #endif + + # if defined(FEAT_SPELL) + /* Free all spell info. */ +--- 972,988 ---- + return; + entered = TRUE; + ++ # ifdef FEAT_AUTOCMD + block_autocmds(); /* don't want to trigger autocommands here */ ++ # endif + +! # ifdef FEAT_WINDOWS + /* close all tabs and windows */ + if (first_tabpage->tp_next != NULL) + do_cmdline_cmd((char_u *)"tabonly!"); + if (firstwin != lastwin) + do_cmdline_cmd((char_u *)"only!"); +! # endif + + # if defined(FEAT_SPELL) + /* Free all spell info. */ +*************** +*** 1031,1038 **** +--- 1033,1044 ---- + free_regexp_stuff(); + free_tag_stuff(); + free_cd_dir(); ++ # ifdef FEAT_EVAL + set_expr_line(NULL); ++ # endif ++ # ifdef FEAT_DIFF + diff_clear(curtab); ++ # endif + clear_sb_text(); /* free any scrollback text */ + + /* Free some global vars. */ +*************** +*** 1041,1059 **** + vim_free(clip_exclude_prog); + # endif + vim_free(last_cmdline); + vim_free(new_last_cmdline); + set_keep_msg(NULL, 0); + vim_free(ff_expand_buffer); + + /* Clear cmdline history. */ + p_hi = 0; + init_history(); + + #ifdef FEAT_QUICKFIX +! qf_free_all(NULL); +! /* Free all location lists */ +! FOR_ALL_WINDOWS(win) +! qf_free_all(win); + #endif + + /* Close all script inputs. */ +--- 1047,1073 ---- + vim_free(clip_exclude_prog); + # endif + vim_free(last_cmdline); ++ # ifdef FEAT_CMDHIST + vim_free(new_last_cmdline); ++ # endif + set_keep_msg(NULL, 0); + vim_free(ff_expand_buffer); + + /* Clear cmdline history. */ + p_hi = 0; ++ # ifdef FEAT_CMDHIST + init_history(); ++ # endif + + #ifdef FEAT_QUICKFIX +! { +! win_T *win; +! +! qf_free_all(NULL); +! /* Free all location lists */ +! FOR_ALL_WINDOWS(win) +! qf_free_all(win); +! } + #endif + + /* Close all script inputs. */ +*** ../vim-7.1.160/src/version.c Sat Nov 24 15:44:17 2007 +--- src/version.c Sat Nov 24 20:55:38 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 161, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +143. You dream in pallettes of 216 websafe colors. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.162 b/7.1.162 new file mode 100644 index 00000000..b61631c3 --- /dev/null +++ b/7.1.162 @@ -0,0 +1,172 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.162 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.162 +Problem: Crash when using a modifier before "while" or "for". (A.Politz) +Solution: Skip modifiers when checking for a loop command. +Files: src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c + + +*** ../vim-7.1.161/src/proto/ex_docmd.pro Sun Sep 30 14:00:41 2007 +--- src/proto/ex_docmd.pro Sat Nov 24 16:34:06 2007 +*************** +*** 5,10 **** +--- 5,11 ---- + int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int))); + void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie)); + int checkforcmd __ARGS((char_u **pp, char *cmd, int len)); ++ int modifier_len __ARGS((char_u *cmd)); + int cmd_exists __ARGS((char_u *name)); + char_u *set_one_cmd_context __ARGS((expand_T *xp, char_u *buff)); + char_u *skip_range __ARGS((char_u *cmd, int *ctx)); +*** ../vim-7.1.161/src/ex_docmd.c Tue Nov 20 12:30:31 2007 +--- src/ex_docmd.c Sat Nov 24 16:41:20 2007 +*************** +*** 2963,2968 **** +--- 2963,3019 ---- + #endif + + #if defined(FEAT_EVAL) || defined(PROTO) ++ static struct cmdmod ++ { ++ char *name; ++ int minlen; ++ int has_count; /* :123verbose :3tab */ ++ } cmdmods[] = { ++ {"aboveleft", 3, FALSE}, ++ {"belowright", 3, FALSE}, ++ {"botright", 2, FALSE}, ++ {"browse", 3, FALSE}, ++ {"confirm", 4, FALSE}, ++ {"hide", 3, FALSE}, ++ {"keepalt", 5, FALSE}, ++ {"keepjumps", 5, FALSE}, ++ {"keepmarks", 3, FALSE}, ++ {"leftabove", 5, FALSE}, ++ {"lockmarks", 3, FALSE}, ++ {"rightbelow", 6, FALSE}, ++ {"sandbox", 3, FALSE}, ++ {"silent", 3, FALSE}, ++ {"tab", 3, TRUE}, ++ {"topleft", 2, FALSE}, ++ {"verbose", 4, TRUE}, ++ {"vertical", 4, FALSE}, ++ }; ++ ++ /* ++ * Return length of a command modifier (including optional count). ++ * Return zero when it's not a modifier. ++ */ ++ int ++ modifier_len(cmd) ++ char_u *cmd; ++ { ++ int i, j; ++ char_u *p = cmd; ++ ++ if (VIM_ISDIGIT(*cmd)) ++ p = skipwhite(skipdigits(cmd)); ++ for (i = 0; i < sizeof(cmdmods) / sizeof(struct cmdmod); ++i) ++ { ++ for (j = 0; p[j] != NUL; ++j) ++ if (p[j] != cmdmods[i].name[j]) ++ break; ++ if (!isalpha(p[j]) && j >= cmdmods[i].minlen ++ && (p == cmd || cmdmods[i].has_count)) ++ return j + (p - cmd); ++ } ++ return 0; ++ } ++ + /* + * Return > 0 if an Ex command "name" exists. + * Return 2 if there is an exact match. +*************** +*** 2977,3006 **** + int i; + int j; + char_u *p; +- static struct cmdmod +- { +- char *name; +- int minlen; +- } cmdmods[] = { +- {"aboveleft", 3}, +- {"belowright", 3}, +- {"botright", 2}, +- {"browse", 3}, +- {"confirm", 4}, +- {"hide", 3}, +- {"keepalt", 5}, +- {"keepjumps", 5}, +- {"keepmarks", 3}, +- {"leftabove", 5}, +- {"lockmarks", 3}, +- {"rightbelow", 6}, +- {"sandbox", 3}, +- {"silent", 3}, +- {"tab", 3}, +- {"topleft", 2}, +- {"verbose", 4}, +- {"vertical", 4}, +- }; + + /* Check command modifiers. */ + for (i = 0; i < sizeof(cmdmods) / sizeof(struct cmdmod); ++i) +--- 3028,3033 ---- +*** ../vim-7.1.161/src/ex_eval.c Wed Aug 1 15:47:06 2007 +--- src/ex_eval.c Sat Nov 24 16:34:09 2007 +*************** +*** 2269,2277 **** + has_loop_cmd(p) + char_u *p; + { +! p = skipwhite(p); +! while (*p == ':') +! p = skipwhite(p + 1); + if ((p[0] == 'w' && p[1] == 'h') + || (p[0] == 'f' && p[1] == 'o' && p[2] == 'r')) + return TRUE; +--- 2269,2286 ---- + has_loop_cmd(p) + char_u *p; + { +! int len; +! +! /* skip modifiers, white space and ':' */ +! for (;;) +! { +! while (*p == ' ' || *p == '\t' || *p == ':') +! ++p; +! len = modifier_len(p); +! if (len == 0) +! break; +! p += len; +! } + if ((p[0] == 'w' && p[1] == 'h') + || (p[0] == 'f' && p[1] == 'o' && p[2] == 'r')) + return TRUE; +*** ../vim-7.1.161/src/version.c Sat Nov 24 21:27:33 2007 +--- src/version.c Sat Nov 24 21:48:38 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 162, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +144. You eagerly await the update of the "Cool Site of the Day." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.106_patched b/7.1.163 similarity index 51% rename from 7.0.106_patched rename to 7.1.163 index 1ad12590..433b2b3d 100644 --- a/7.0.106_patched +++ b/7.1.163 @@ -1,5 +1,5 @@ To: vim-dev@vim.org -Subject: Patch 7.0.106 +Subject: Patch 7.1.163 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 @@ -7,21 +7,20 @@ Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ -Patch 7.0.106 -Problem: The spell popup menu uses ":amenu", triggering mappings. Other - PopupMenu autocommands are removed. (John Little) -Solution: Use ":anoremenu" and use an autocmd group. +Patch 7.1.163 +Problem: Warning for the unknown option 'bufsecret'. +Solution: Remove the lines .vim that use this option. (Andy Wokula) Files: runtime/menu.vim -*** ../vim-7.0.105/runtime/menu.vim Tue Apr 18 00:06:31 2006 ---- runtime/menu.vim Thu Sep 14 13:14:25 2006 +*** ../vim-7.1.162/runtime/menu.vim Sun May 6 15:21:23 2007 +--- runtime/menu.vim Mon Nov 19 23:17:11 2007 *************** *** 2,8 **** " You can also use this as a start for your own set of menus. " " Maintainer: Bram Moolenaar -! " Last Change: 2006 Aug 16 +! " Last Change: 2007 Jan 09 " Note that ":an" (short for ":anoremenu") is often used to make a menu work " in all modes and avoid side effects from mappings defined by the user. @@ -29,30 +28,43 @@ Files: runtime/menu.vim " You can also use this as a start for your own set of menus. " " Maintainer: Bram Moolenaar -! " Last Change: 2006 Sep 14 +! " Last Change: 2007 Nov 19 " Note that ":an" (short for ":anoremenu") is often used to make a menu work " in all modes and avoid side effects from mappings defined by the user. -*** ../vim-7.0.105/src/version.c Thu Sep 14 11:27:12 2006 ---- src/version.c Thu Sep 14 13:24:44 2006 +*************** +*** 658,664 **** + let buf = 1 + while buf <= bufnr('$') + if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf) +- \ && !getbufvar(buf, "&bufsecret") + let s:bmenu_count = s:bmenu_count + 1 + endif + let buf = buf + 1 +--- 658,663 ---- +*************** +*** 671,677 **** + let buf = 1 + while buf <= bufnr('$') + if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf) +- \ && !getbufvar(buf, "&bufsecret") + call BMFilename(bufname(buf), buf) + endif + let buf = buf + 1 +--- 670,675 ---- +*** ../vim-7.1.162/src/version.c Sat Nov 24 21:49:19 2007 +--- src/version.c Thu Nov 29 17:44:08 2007 *************** *** 668,669 **** --- 668,671 ---- { /* Add new patch number below this line */ + /**/ -+ 106, ++ 163, /**/ -- -BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One. -ANOTHER MONK: And St. Attila raised his hand grenade up on high saying "O - Lord bless this thy hand grenade that with it thou mayest - blow thine enemies to tiny bits, in thy mercy. "and the Lord - did grin and people did feast upon the lambs and sloths and - carp and anchovies and orang-utans and breakfast cereals and - fruit bats and... -BROTHER MAYNARD: Skip a bit brother ... - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD +hundred-and-one symptoms of being an internet addict: +158. You get a tuner card so you can watch TV while surfing. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ diff --git a/7.1.164 b/7.1.164 new file mode 100644 index 00000000..09aee5d3 --- /dev/null +++ b/7.1.164 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.164 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.164 +Problem: Reading past end of regexp pattern. (Dominique Pelle) +Solution: Use utf_ptr2len(). +Files: src/regexp.c + + +*** ../vim-7.1.163/src/regexp.c Sat Aug 11 13:57:31 2007 +--- src/regexp.c Sat Nov 24 13:23:53 2007 +*************** +*** 2770,2776 **** + { + #ifdef FEAT_MBYTE + if (enc_utf8) +! prevchr_len += utf_char2len(mb_ptr2char(regparse + prevchr_len)); + else if (has_mbyte) + prevchr_len += (*mb_ptr2len)(regparse + prevchr_len); + else +--- 2770,2777 ---- + { + #ifdef FEAT_MBYTE + if (enc_utf8) +! /* exclude composing chars that mb_ptr2len does include */ +! prevchr_len += utf_ptr2len(regparse + prevchr_len); + else if (has_mbyte) + prevchr_len += (*mb_ptr2len)(regparse + prevchr_len); + else +*** ../vim-7.1.163/src/version.c Thu Nov 29 17:46:01 2007 +--- src/version.c Thu Nov 29 21:25:45 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 164, + /**/ + +-- +Send $25.00 for handy leaflet on how to make money by selling leaflets + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.165 b/7.1.165 new file mode 100644 index 00000000..b2e8b303 --- /dev/null +++ b/7.1.165 @@ -0,0 +1,177 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.165 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.165 +Problem: Crash related to getting X window ID. (Dominique Pelle) +Solution: Don't trust the window ID that we got in the past, check it every + time. +Files: src/os_unix.c + + +*** ../vim-7.1.164/src/os_unix.c Thu Aug 30 11:46:46 2007 +--- src/os_unix.c Thu Nov 29 18:19:56 2007 +*************** +*** 310,316 **** + } + + /* +! * mch_inchar(): low level input funcion. + * Get a characters from the keyboard. + * Return the number of characters that are available. + * If wtime == 0 do not wait for characters. +--- 310,316 ---- + } + + /* +! * mch_inchar(): low level input function. + * Get a characters from the keyboard. + * Return the number of characters that are available. + * If wtime == 0 do not wait for characters. +*************** +*** 1567,1584 **** + #ifdef FEAT_XCLIPBOARD + if (xterm_dpy != NULL && x11_window != 0) + { +! /* Checked it already. */ +! if (x11_display_from == XD_XTERM) +! return OK; +! +! /* +! * If the X11 display was opened here before, for the window where Vim +! * was started, close that one now to avoid a memory leak. +! */ +! if (x11_display_from == XD_HERE && x11_display != NULL) +! XCloseDisplay(x11_display); +! x11_display = xterm_dpy; +! x11_display_from = XD_XTERM; + if (test_x11_window(x11_display) == FAIL) + { + /* probably bad $WINDOWID */ +--- 1567,1585 ---- + #ifdef FEAT_XCLIPBOARD + if (xterm_dpy != NULL && x11_window != 0) + { +! /* We may have checked it already, but Gnome terminal can move us to +! * another window, so we need to check every time. */ +! if (x11_display_from != XD_XTERM) +! { +! /* +! * If the X11 display was opened here before, for the window where +! * Vim was started, close that one now to avoid a memory leak. +! */ +! if (x11_display_from == XD_HERE && x11_display != NULL) +! XCloseDisplay(x11_display); +! x11_display = xterm_dpy; +! x11_display_from = XD_XTERM; +! } + if (test_x11_window(x11_display) == FAIL) + { + /* probably bad $WINDOWID */ +*************** +*** 2421,2427 **** + /* + * Set the case of the file name, if it already exists. This will cause the + * file name to remain exactly the same. +! * Only required for file systems where case is ingored and preserved. + */ + /*ARGSUSED*/ + void +--- 2422,2428 ---- + /* + * Set the case of the file name, if it already exists. This will cause the + * file name to remain exactly the same. +! * Only required for file systems where case is ignored and preserved. + */ + /*ARGSUSED*/ + void +*************** +*** 4653,4659 **** + ret = poll(fds, nfd, towait); + # ifdef FEAT_MZSCHEME + if (ret == 0 && mzquantum_used) +! /* MzThreads scheduling is required and timeout occured */ + finished = FALSE; + # endif + +--- 4654,4660 ---- + ret = poll(fds, nfd, towait); + # ifdef FEAT_MZSCHEME + if (ret == 0 && mzquantum_used) +! /* MzThreads scheduling is required and timeout occurred */ + finished = FALSE; + # endif + +*************** +*** 4801,4807 **** + #endif + # ifdef FEAT_MZSCHEME + if (ret == 0 && mzquantum_used) +! /* loop if MzThreads must be scheduled and timeout occured */ + finished = FALSE; + # endif + +--- 4802,4808 ---- + #endif + # ifdef FEAT_MZSCHEME + if (ret == 0 && mzquantum_used) +! /* loop if MzThreads must be scheduled and timeout occurred */ + finished = FALSE; + # endif + +*************** +*** 5191,5197 **** + { + /* When using system() always add extra quotes, because the shell + * is started twice. Otherwise put a backslash before special +! * characters, except insice ``. */ + #ifdef USE_SYSTEM + STRCAT(command, " \""); + STRCAT(command, pat[i]); +--- 5192,5198 ---- + { + /* When using system() always add extra quotes, because the shell + * is started twice. Otherwise put a backslash before special +! * characters, except inside ``. */ + #ifdef USE_SYSTEM + STRCAT(command, " \""); + STRCAT(command, pat[i]); +*************** +*** 5675,5681 **** + /* gpm library tries to handling TSTP causes + * problems. Anyways, we close connection to Gpm whenever + * we are going to suspend or starting an external process +! * so we should'nt have problem with this + */ + signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); + return 1; /* succeed */ +--- 5676,5682 ---- + /* gpm library tries to handling TSTP causes + * problems. Anyways, we close connection to Gpm whenever + * we are going to suspend or starting an external process +! * so we shouldn't have problem with this + */ + signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); + return 1; /* succeed */ +*** ../vim-7.1.164/src/version.c Thu Nov 29 21:26:38 2007 +--- src/version.c Sat Dec 1 17:17:20 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 165, + /**/ + +-- +"Hit any key to continue" is very confusing when you have two keyboards. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.166 b/7.1.166 new file mode 100644 index 00000000..14268d72 --- /dev/null +++ b/7.1.166 @@ -0,0 +1,80 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.166 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.166 +Problem: Memory leak for using "gp" in Visual mode. +Solution: Free memory in put_register(). (Dominique Pelle) +Files: src/ops.c + + +*** ../vim-7.1.165/src/ops.c Thu Nov 8 10:35:02 2007 +--- src/ops.c Sun Nov 25 15:17:43 2007 +*************** +*** 927,934 **** + int name; + int copy; /* make a copy, if FALSE make register empty. */ + { +! static struct yankreg *reg; +! int i; + + #ifdef FEAT_CLIPBOARD + /* When Visual area changed, may have to update selection. Obtain the +--- 927,934 ---- + int name; + int copy; /* make a copy, if FALSE make register empty. */ + { +! struct yankreg *reg; +! int i; + + #ifdef FEAT_CLIPBOARD + /* When Visual area changed, may have to update selection. Obtain the +*************** +*** 967,973 **** + } + + /* +! * Put "reg" into register "name". Free any previous contents. + */ + void + put_register(name, reg) +--- 967,973 ---- + } + + /* +! * Put "reg" into register "name". Free any previous contents and "reg". + */ + void + put_register(name, reg) +*************** +*** 977,982 **** +--- 977,983 ---- + get_yank_register(name, 0); + free_yank_all(); + *y_current = *(struct yankreg *)reg; ++ vim_free(reg); + + # ifdef FEAT_CLIPBOARD + /* Send text written to clipboard register to the clipboard. */ +*** ../vim-7.1.165/src/version.c Sat Dec 1 17:18:45 2007 +--- src/version.c Sat Dec 1 21:11:25 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 166, + /**/ + +-- +An error has occurred. Hit any user to continue. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.167 b/7.1.167 new file mode 100644 index 00000000..66426401 --- /dev/null +++ b/7.1.167 @@ -0,0 +1,80 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.167 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.167 +Problem: Xxd crashes when using "xxd -b -c 110". (Debian bug 452789) +Solution: Allocate more memory. Fix check for maximum number of columns. +Files: src/xxd/xxd.c + + +*** ../vim-7.1.166/src/xxd/xxd.c Thu May 10 19:07:42 2007 +--- src/xxd/xxd.c Thu Nov 29 21:05:16 2007 +*************** +*** 212,218 **** + + #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */ + #define COLS 256 /* change here, if you ever need more columns */ +! #define LLEN (9 + (5*COLS-1)/2 + 2 + COLS) + + char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa; + +--- 212,218 ---- + + #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */ + #define COLS 256 /* change here, if you ever need more columns */ +! #define LLEN (11 + (9*COLS-1)/1 + COLS + 2) + + char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa; + +*************** +*** 590,596 **** + default: octspergrp = 0; break; + } + +! if (cols < 1 || (!hextype && (cols > COLS))) + { + fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS); + exit(1); +--- 590,597 ---- + default: octspergrp = 0; break; + } + +! if (cols < 1 || ((hextype == HEX_NORMAL || hextype == HEX_BITS) +! && (cols > COLS))) + { + fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS); + exit(1); +*************** +*** 750,755 **** +--- 751,757 ---- + } + if (ebcdic) + e = (e < 64) ? '.' : etoa64[e-64]; ++ /* When changing this update definition of LLEN above. */ + l[11 + (grplen * cols - 1)/octspergrp + p] = + #ifdef __MVS__ + (e >= 64) +*** ../vim-7.1.166/src/version.c Sat Dec 1 21:12:23 2007 +--- src/version.c Mon Dec 3 21:30:31 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 167, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +178. You look for an icon to double-click to open your bedroom window. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.168 b/7.1.168 new file mode 100644 index 00000000..07bf9c24 --- /dev/null +++ b/7.1.168 @@ -0,0 +1,112 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.168 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.168 (extra) +Problem: Win32 GUI: Since patch 7.1.095, when the Vim window does not have + focus, clicking in it doesn't position the cursor. (Juergen + Kraemer) +Solution: Don't reset s_button_pending just after receiving focus. +Files: src/gui_w48.c + + +*** ../vim-7.1.167/src/gui_w48.c Tue Nov 20 17:21:28 2007 +--- src/gui_w48.c Mon Dec 3 22:13:16 2007 +*************** +*** 290,295 **** +--- 290,300 ---- + + /* Local variables */ + static int s_button_pending = -1; ++ ++ /* s_getting_focus is set when we got focus but didn't see mouse-up event yet, ++ * so don't reset s_button_pending. */ ++ static int s_getting_focus = FALSE; ++ + static int s_x_pending; + static int s_y_pending; + static UINT s_kFlags_pending; +*************** +*** 671,676 **** +--- 676,683 ---- + { + int vim_modifiers = 0x0; + ++ s_getting_focus = FALSE; ++ + if (keyFlags & MK_SHIFT) + vim_modifiers |= MOUSE_SHIFT; + if (keyFlags & MK_CONTROL) +*************** +*** 792,797 **** +--- 799,805 ---- + { + int button; + ++ s_getting_focus = FALSE; + if (s_button_pending > -1) + { + /* Delayed action for mouse down event */ +*************** +*** 1951,1958 **** + allow_scrollbar = FALSE; + + /* Clear pending mouse button, the release event may have been +! * taken by the dialog window. */ +! s_button_pending = -1; + + return OK; + } +--- 1959,1968 ---- + allow_scrollbar = FALSE; + + /* Clear pending mouse button, the release event may have been +! * taken by the dialog window. But don't do this when getting +! * focus, we need the mouse-up event then. */ +! if (!s_getting_focus) +! s_button_pending = -1; + + return OK; + } +*************** +*** 2702,2707 **** +--- 2712,2718 ---- + HWND hwndOldFocus) + { + gui_focus_change(TRUE); ++ s_getting_focus = TRUE; + (void)MyWindowProc(hwnd, WM_SETFOCUS, (WPARAM)hwndOldFocus, 0); + } + +*************** +*** 2711,2716 **** +--- 2722,2728 ---- + HWND hwndNewFocus) + { + gui_focus_change(FALSE); ++ s_getting_focus = FALSE; + (void)MyWindowProc(hwnd, WM_KILLFOCUS, (WPARAM)hwndNewFocus, 0); + } + +*** ../vim-7.1.167/src/version.c Mon Dec 3 21:31:56 2007 +--- src/version.c Mon Dec 3 22:16:32 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 168, + /**/ + +-- +Rule #1: Don't give somebody a tool that he's going to hurt himself with. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.169 b/7.1.169 new file mode 100644 index 00000000..12f66df6 --- /dev/null +++ b/7.1.169 @@ -0,0 +1,75 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.169 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.169 +Problem: Using uninitialized variable when system() fails. (Dominique + Pelle) +Solution: Let system() return an empty string when it fails. +Files: src/eval.c + + +*** ../vim-7.1.168/src/eval.c Thu Nov 8 20:47:34 2007 +--- src/eval.c Fri Nov 30 21:01:26 2007 +*************** +*** 15826,15832 **** + FILE *fd; + + if (check_restricted() || check_secure()) +! return; + + if (argvars[1].v_type != VAR_UNKNOWN) + { +--- 15826,15832 ---- + FILE *fd; + + if (check_restricted() || check_secure()) +! goto done; + + if (argvars[1].v_type != VAR_UNKNOWN) + { +*************** +*** 15837,15843 **** + if ((infile = vim_tempname('i')) == NULL) + { + EMSG(_(e_notmp)); +! return; + } + + fd = mch_fopen((char *)infile, WRITEBIN); +--- 15837,15843 ---- + if ((infile = vim_tempname('i')) == NULL) + { + EMSG(_(e_notmp)); +! goto done; + } + + fd = mch_fopen((char *)infile, WRITEBIN); +*** ../vim-7.1.168/src/version.c Mon Dec 3 22:20:17 2007 +--- src/version.c Fri Dec 7 17:07:32 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 169, + /**/ + +-- +% cat /usr/include/sys/errno.h +#define EPERM 1 /* Operation not permitted */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +[...] +#define EMACS 666 /* Too many macros */ +% + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.170 b/7.1.170 new file mode 100644 index 00000000..fabeb110 --- /dev/null +++ b/7.1.170 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.170 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.170 +Problem: Valgrind warning for overlapping arguments for strcpy(). +Solution: Use mch_memmove() instead. (Dominique Pelle) +Files: src/getchar.c + + +*** ../vim-7.1.169/src/getchar.c Thu Sep 13 18:25:08 2007 +--- src/getchar.c Mon Dec 3 20:42:29 2007 +*************** +*** 253,260 **** + return; + } + else if (buf->bh_index != 0) +! STRCPY(buf->bh_first.b_next->b_str, +! buf->bh_first.b_next->b_str + buf->bh_index); + buf->bh_index = 0; + + if (buf->bh_space >= (int)slen) +--- 253,261 ---- + return; + } + else if (buf->bh_index != 0) +! mch_memmove(buf->bh_first.b_next->b_str, +! buf->bh_first.b_next->b_str + buf->bh_index, +! STRLEN(buf->bh_first.b_next->b_str + buf->bh_index) + 1); + buf->bh_index = 0; + + if (buf->bh_space >= (int)slen) +*** ../vim-7.1.169/src/version.c Fri Dec 7 17:08:35 2007 +--- src/version.c Fri Dec 7 17:27:13 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 170, + /**/ + +-- +Some of the well know MS-Windows errors: + ESLEEP Operator fell asleep + ENOERR No error yet + EDOLLAR OS too expensive + EWINDOWS MS-Windows loaded, system in danger + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.171 b/7.1.171 new file mode 100644 index 00000000..cad1edd4 --- /dev/null +++ b/7.1.171 @@ -0,0 +1,79 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.171 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.171 +Problem: Reading one byte before allocated memory. +Solution: Check index not to become negative. (Dominique Pelle) +Files: src/ex_getln.c + + +*** ../vim-7.1.170/src/ex_getln.c Tue Oct 30 17:36:31 2007 +--- src/ex_getln.c Tue Dec 4 21:49:24 2007 +*************** +*** 1186,1195 **** + case K_LEFT: + case K_S_LEFT: + case K_C_LEFT: + do + { +- if (ccline.cmdpos == 0) +- break; + --ccline.cmdpos; + #ifdef FEAT_MBYTE + if (has_mbyte) /* move to first byte of char */ +--- 1186,1195 ---- + case K_LEFT: + case K_S_LEFT: + case K_C_LEFT: ++ if (ccline.cmdpos == 0) ++ goto cmdline_not_changed; + do + { + --ccline.cmdpos; + #ifdef FEAT_MBYTE + if (has_mbyte) /* move to first byte of char */ +*************** +*** 1198,1204 **** + #endif + ccline.cmdspos -= cmdline_charsize(ccline.cmdpos); + } +! while ((c == K_S_LEFT || c == K_C_LEFT + || (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL))) + && ccline.cmdbuff[ccline.cmdpos - 1] != ' '); + #ifdef FEAT_MBYTE +--- 1198,1205 ---- + #endif + ccline.cmdspos -= cmdline_charsize(ccline.cmdpos); + } +! while (ccline.cmdpos > 0 +! && (c == K_S_LEFT || c == K_C_LEFT + || (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL))) + && ccline.cmdbuff[ccline.cmdpos - 1] != ' '); + #ifdef FEAT_MBYTE +*** ../vim-7.1.170/src/version.c Fri Dec 7 17:30:04 2007 +--- src/version.c Fri Dec 7 20:00:06 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 171, + /**/ + +-- +Some of the well know MS-Windows errors: + EMULTI Multitasking attempted, system confused + EKEYBOARD Keyboard locked, try getting out of this one! + EXPLAIN Unexplained error, please tell us what happened + EFUTURE Reserved for our future mistakes + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.172 b/7.1.172 new file mode 100644 index 00000000..9f608823 --- /dev/null +++ b/7.1.172 @@ -0,0 +1,50 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.172 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.172 +Problem: When 'buftype' is "acwrite" Vim still checks if the file or + directory exists before overwriting. +Solution: Don't check for overwriting when the buffer name is not a file + name. +Files: src/ex_cmds.c + + +*** ../vim-7.1.171/src/ex_cmds.c Tue Nov 20 18:03:34 2007 +--- src/ex_cmds.c Fri Dec 7 22:13:32 2007 +*************** +*** 2732,2737 **** +--- 2732,2740 ---- + && vim_strchr(p_cpo, CPO_OVERNEW) == NULL) + || (buf->b_flags & BF_READERR)) + && !p_wa ++ #ifdef FEAT_QUICKFIX ++ && !bt_nofile(buf) ++ #endif + && vim_fexists(ffname)) + { + if (!eap->forceit && !eap->append) +*** ../vim-7.1.171/src/version.c Fri Dec 7 20:28:13 2007 +--- src/version.c Sat Dec 8 22:18:54 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 172, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +206. You religiously respond immediately to e-mail, while ignoring + your growing pile of snail mail. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.173 b/7.1.173 new file mode 100644 index 00000000..e6a855d0 --- /dev/null +++ b/7.1.173 @@ -0,0 +1,61 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.173 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.173 +Problem: Accessing freed memory. (Dominique Pelle) +Solution: Don't call reg_getline() to check if a line is the first in the + file. +Files: src/regexp.c + + +*** ../vim-7.1.172/src/regexp.c Thu Nov 29 21:26:38 2007 +--- src/regexp.c Sat Dec 8 15:54:05 2007 +*************** +*** 3810,3820 **** + break; + + case RE_BOF: +! /* Passing -1 to the getline() function provided for the search +! * should always return NULL if the current line is the first +! * line of the file. */ + if (reglnum != 0 || reginput != regline +! || (REG_MULTI && reg_getline((linenr_T)-1) != NULL)) + status = RA_NOMATCH; + break; + +--- 3810,3820 ---- + break; + + case RE_BOF: +! /* We're not at the beginning of the file when below the first +! * line where we started, not at the start of the line or we +! * didn't start at the first line of the buffer. */ + if (reglnum != 0 || reginput != regline +! || (REG_MULTI && reg_firstlnum > 1)) + status = RA_NOMATCH; + break; + +*** ../vim-7.1.172/src/version.c Sat Dec 8 22:20:24 2007 +--- src/version.c Sun Dec 9 19:24:36 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 173, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +213. Your kids start referring to you as "that guy in front of the monitor." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.174 b/7.1.174 new file mode 100644 index 00000000..7eb4c218 --- /dev/null +++ b/7.1.174 @@ -0,0 +1,71 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.174 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.174 +Problem: Writing NUL past end of a buffer. +Solution: Copy one byte less when using strncat(). (Dominuque Pelle) +Files: src/ex_cmds.c, src/ex_docmd.c + + +*** ../vim-7.1.173/src/ex_cmds.c Sat Dec 8 22:20:24 2007 +--- src/ex_cmds.c Fri Dec 7 22:13:32 2007 +*************** +*** 1650,1656 **** + { + vim_snprintf((char *)IObuff, IOSIZE, _("%sviminfo: %s in line: "), + errnum, message); +! STRNCAT(IObuff, line, IOSIZE - STRLEN(IObuff)); + if (IObuff[STRLEN(IObuff) - 1] == '\n') + IObuff[STRLEN(IObuff) - 1] = NUL; + emsg(IObuff); +--- 1650,1656 ---- + { + vim_snprintf((char *)IObuff, IOSIZE, _("%sviminfo: %s in line: "), + errnum, message); +! STRNCAT(IObuff, line, IOSIZE - STRLEN(IObuff) - 1); + if (IObuff[STRLEN(IObuff) - 1] == '\n') + IObuff[STRLEN(IObuff) - 1] = NUL; + emsg(IObuff); +*** ../vim-7.1.173/src/ex_docmd.c Sat Nov 24 21:49:19 2007 +--- src/ex_docmd.c Fri Dec 7 21:01:03 2007 +*************** +*** 2660,2666 **** + errormsg = IObuff; + } + STRCAT(errormsg, ": "); +! STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff)); + } + emsg(errormsg); + } +--- 2660,2666 ---- + errormsg = IObuff; + } + STRCAT(errormsg, ": "); +! STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff) - 1); + } + emsg(errormsg); + } +*** ../vim-7.1.173/src/version.c Sun Dec 9 19:25:35 2007 +--- src/version.c Sun Dec 9 19:36:50 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 174, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +214. Your MCI "Circle of Friends" are all Hayes-compatible. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.175 b/7.1.175 new file mode 100644 index 00000000..3ec00fd7 --- /dev/null +++ b/7.1.175 @@ -0,0 +1,179 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.175 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.175 +Problem: doesn't work with some combination of 'sts', 'linebreak' and + 'backspace'. (Francois Ingelrest) +Solution: When adding white space results in not moving back delete one + character. +Files: src/edit.c + + +*** ../vim-7.1.174/src/edit.c Sat Nov 24 21:27:33 2007 +--- src/edit.c Fri Dec 7 21:32:48 2007 +*************** +*** 8189,8194 **** +--- 8189,8217 ---- + AppendCharToRedobuff(K_DEL); + } + ++ static void ins_bs_one __ARGS((colnr_T *vcolp)); ++ ++ /* ++ * Delete one character for ins_bs(). ++ */ ++ static void ++ ins_bs_one(vcolp) ++ colnr_T *vcolp; ++ { ++ dec_cursor(); ++ getvcol(curwin, &curwin->w_cursor, vcolp, NULL, NULL); ++ if (State & REPLACE_FLAG) ++ { ++ /* Don't delete characters before the insert point when in ++ * Replace mode */ ++ if (curwin->w_cursor.lnum != Insstart.lnum ++ || curwin->w_cursor.col >= Insstart.col) ++ replace_do_bs(); ++ } ++ else ++ (void)del_char(FALSE); ++ } ++ + /* + * Handle Backspace, delete-word and delete-line in Insert mode. + * Return TRUE when backspace was actually used. +*************** +*** 8418,8426 **** + int ts; + colnr_T vcol; + colnr_T want_vcol; +! #if 0 +! int extra = 0; +! #endif + + *inserted_space_p = FALSE; + if (p_sta && in_indent) +--- 8441,8447 ---- + int ts; + colnr_T vcol; + colnr_T want_vcol; +! colnr_T start_vcol; + + *inserted_space_p = FALSE; + if (p_sta && in_indent) +*************** +*** 8431,8436 **** +--- 8452,8458 ---- + * 'showbreak' may get in the way, need to get the last column of + * the previous character. */ + getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL); ++ start_vcol = vcol; + dec_cursor(); + getvcol(curwin, &curwin->w_cursor, NULL, NULL, &want_vcol); + inc_cursor(); +*************** +*** 8439,8468 **** + /* delete characters until we are at or before want_vcol */ + while (vcol > want_vcol + && (cc = *(ml_get_cursor() - 1), vim_iswhite(cc))) +! { +! dec_cursor(); +! getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL); +! if (State & REPLACE_FLAG) +! { +! /* Don't delete characters before the insert point when in +! * Replace mode */ +! if (curwin->w_cursor.lnum != Insstart.lnum +! || curwin->w_cursor.col >= Insstart.col) +! { +! #if 0 /* what was this for? It causes problems when sw != ts. */ +! if (State == REPLACE && (int)vcol < want_vcol) +! { +! (void)del_char(FALSE); +! extra = 2; /* don't pop too much */ +! } +! else +! #endif +! replace_do_bs(); +! } +! } +! else +! (void)del_char(FALSE); +! } + + /* insert extra spaces until we are at want_vcol */ + while (vcol < want_vcol) +--- 8461,8467 ---- + /* delete characters until we are at or before want_vcol */ + while (vcol > want_vcol + && (cc = *(ml_get_cursor() - 1), vim_iswhite(cc))) +! ins_bs_one(&vcol); + + /* insert extra spaces until we are at want_vcol */ + while (vcol < want_vcol) +*************** +*** 8479,8500 **** + #endif + { + ins_str((char_u *)" "); +! if ((State & REPLACE_FLAG) /* && extra <= 1 */) +! { +! #if 0 +! if (extra) +! replace_push_off(NUL); +! else +! #endif +! replace_push(NUL); +! } +! #if 0 +! if (extra == 2) +! extra = 1; +! #endif + } + getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL); + } + } + + /* +--- 8478,8493 ---- + #endif + { + ins_str((char_u *)" "); +! if ((State & REPLACE_FLAG)) +! replace_push(NUL); + } + getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL); + } ++ ++ /* If we are now back where we started delete one character. Can ++ * happen when using 'sts' and 'linebreak'. */ ++ if (vcol >= start_vcol) ++ ins_bs_one(&vcol); + } + + /* +*** ../vim-7.1.174/src/version.c Sun Dec 9 19:37:37 2007 +--- src/version.c Sun Dec 9 20:24:11 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 175, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +215. Your mouse-clicking forearm rivals Popeye's. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.176 b/7.1.176 new file mode 100644 index 00000000..e752419f --- /dev/null +++ b/7.1.176 @@ -0,0 +1,88 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.176 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.176 +Problem: Building with Aap fails when the "compiledby" argument contains + '<' or '>' characters. (Alex Yeh) +Solution: Change how quoting is done in the Aap recipe. +Files: src/main.aap + + +*** ../vim-7.1.175/src/main.aap Tue Sep 25 22:13:14 2007 +--- src/main.aap Fri Dec 7 17:03:31 2007 +*************** +*** 63,70 **** + @else: + @ arch = "ppc" + :print Building for $arch system + :sys CONFIG_STATUS=auto/config.status +! ./configure.aap `file2string("config.arg")` + --with-mac-arch=$arch + --cache-file=auto/config.cache + +--- 63,71 ---- + @else: + @ arch = "ppc" + :print Building for $arch system ++ config_args = `file2string("config.arg")` + :sys CONFIG_STATUS=auto/config.status +! ./configure.aap $config_args + --with-mac-arch=$arch + --cache-file=auto/config.cache + +*************** +*** 440,450 **** + :print >> $target char_u *all_lflags = (char_u *)"$linkcmd"; + @if _no.get("COMPILEDBY"): + who = $COMPILEDBY +! where = '' + @else: + :syseval whoami | :eval re.sub("\n", "", stdin) | :assign who + + :syseval hostname | :eval re.sub("\n", "", stdin) | :assign where + :print >> $target char_u *compiled_user = (char_u *)"$who"; + :print >> $target char_u *compiled_sys = (char_u *)"$where"; + +--- 441,453 ---- + :print >> $target char_u *all_lflags = (char_u *)"$linkcmd"; + @if _no.get("COMPILEDBY"): + who = $COMPILEDBY +! where = + @else: + :syseval whoami | :eval re.sub("\n", "", stdin) | :assign who + + :syseval hostname | :eval re.sub("\n", "", stdin) | :assign where ++ @who = string.replace(who, '"', '\\"') ++ @where = string.replace(where, '"', '\\"') + :print >> $target char_u *compiled_user = (char_u *)"$who"; + :print >> $target char_u *compiled_sys = (char_u *)"$where"; + +*** ../vim-7.1.175/src/version.c Sun Dec 9 20:25:59 2007 +--- src/version.c Mon Dec 31 16:40:01 2007 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 176, + /**/ + +-- +E M A C S +s e l o h +c t t n i +a a t f +p r t +e o + l + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.177 b/7.1.177 new file mode 100644 index 00000000..cc3b13c5 --- /dev/null +++ b/7.1.177 @@ -0,0 +1,193 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.177 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.177 +Problem: Freeing memory twice when in debug mode while reading a script. +Solution: Ignore script input while in debug mode. +Files: src/ex_cmds2.c, src/getchar.c, src/globals.h + + +*** ../vim-7.1.176/src/ex_cmds2.c Thu May 10 20:55:46 2007 +--- src/ex_cmds2.c Tue Jan 1 14:13:41 2008 +*************** +*** 93,98 **** +--- 93,100 ---- + int save_emsg_silent = emsg_silent; + int save_redir_off = redir_off; + tasave_T typeaheadbuf; ++ int typeahead_saved = FALSE; ++ int save_ignore_script; + # ifdef FEAT_EX_EXTRA + int save_ex_normal_busy; + # endif +*************** +*** 159,176 **** + * This makes sure we get input from the user here and don't interfere + * with the commands being executed. Reset "ex_normal_busy" to avoid + * the side effects of using ":normal". Save the stuff buffer and make +! * it empty. */ + # ifdef FEAT_EX_EXTRA + save_ex_normal_busy = ex_normal_busy; + ex_normal_busy = 0; + # endif + if (!debug_greedy) + save_typeahead(&typeaheadbuf); + + cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL); + +! if (!debug_greedy) + restore_typeahead(&typeaheadbuf); + # ifdef FEAT_EX_EXTRA + ex_normal_busy = save_ex_normal_busy; + # endif +--- 161,186 ---- + * This makes sure we get input from the user here and don't interfere + * with the commands being executed. Reset "ex_normal_busy" to avoid + * the side effects of using ":normal". Save the stuff buffer and make +! * it empty. Set ignore_script to avoid reading from script input. */ + # ifdef FEAT_EX_EXTRA + save_ex_normal_busy = ex_normal_busy; + ex_normal_busy = 0; + # endif + if (!debug_greedy) ++ { + save_typeahead(&typeaheadbuf); ++ typeahead_saved = TRUE; ++ save_ignore_script = ignore_script; ++ ignore_script = TRUE; ++ } + + cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL); + +! if (typeahead_saved) +! { + restore_typeahead(&typeaheadbuf); ++ ignore_script = save_ignore_script; ++ } + # ifdef FEAT_EX_EXTRA + ex_normal_busy = save_ex_normal_busy; + # endif +*** ../vim-7.1.176/src/getchar.c Fri Dec 7 17:30:04 2007 +--- src/getchar.c Tue Jan 1 14:11:42 2008 +*************** +*** 1279,1286 **** + void + free_typebuf() + { +! vim_free(typebuf.tb_buf); +! vim_free(typebuf.tb_noremap); + } + + /* +--- 1279,1292 ---- + void + free_typebuf() + { +! if (typebuf.tb_buf == typebuf_init) +! EMSG2(_(e_intern2), "Free typebuf 1"); +! else +! vim_free(typebuf.tb_buf); +! if (typebuf.tb_buf == noremapbuf_init) +! EMSG2(_(e_intern2), "Free typebuf 2"); +! else +! vim_free(typebuf.tb_noremap); + } + + /* +*************** +*** 1359,1364 **** +--- 1365,1375 ---- + EMSG(_(e_nesting)); + return; + } ++ #ifdef FEAT_EVAL ++ if (ignore_script) ++ /* Not reading from script, also don't open one. Warning message? */ ++ return; ++ #endif + + if (scriptin[curscript] != NULL) /* already reading script */ + ++curscript; +*************** +*** 2346,2352 **** + current_menu->silent[idx]); + } + } +! #endif /* FEAT_GUI */ + continue; /* try mapping again */ + } + +--- 2357,2363 ---- + current_menu->silent[idx]); + } + } +! #endif /* FEAT_GUI && FEAT_MENU */ + continue; /* try mapping again */ + } + +*************** +*** 2862,2872 **** + undo_off = FALSE; /* restart undo now */ + + /* +! * first try script file +! * If interrupted: Stop reading script files. + */ + script_char = -1; +! while (scriptin[curscript] != NULL && script_char < 0) + { + if (got_int || (script_char = getc(scriptin[curscript])) < 0) + { +--- 2873,2887 ---- + undo_off = FALSE; /* restart undo now */ + + /* +! * Get a character from a script file if there is one. +! * If interrupted: Stop reading script files, close them all. + */ + script_char = -1; +! while (scriptin[curscript] != NULL && script_char < 0 +! #ifdef FEAT_EVAL +! && !ignore_script +! #endif +! ) + { + if (got_int || (script_char = getc(scriptin[curscript])) < 0) + { +*** ../vim-7.1.176/src/globals.h Sat Sep 29 14:15:00 2007 +--- src/globals.h Mon Dec 31 17:00:21 2007 +*************** +*** 954,959 **** +--- 954,962 ---- + EXTERN int ex_normal_busy INIT(= 0); /* recursiveness of ex_normal() */ + EXTERN int ex_normal_lock INIT(= 0); /* forbid use of ex_normal() */ + #endif ++ #ifdef FEAT_EVAL ++ EXTERN int ignore_script INIT(= FALSE); /* ignore script input */ ++ #endif + EXTERN int stop_insert_mode; /* for ":stopinsert" and 'insertmode' */ + + EXTERN int KeyTyped; /* TRUE if user typed current char */ +*** ../vim-7.1.176/src/version.c Mon Dec 31 16:41:31 2007 +--- src/version.c Tue Jan 1 14:00:09 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 177, + /**/ + +-- +Back up my hard drive? I can't find the reverse switch! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.178 b/7.1.178 new file mode 100644 index 00000000..972e4951 --- /dev/null +++ b/7.1.178 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.178 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.178 +Problem: "%" doesn't work on "/* comment *//* comment */". +Solution: Don't handle the "//" in "*//*" as a C++ comment. (Markus + Heidelberg) +Files: src/search.c + + +*** ../vim-7.1.177/src/search.c Wed Aug 8 22:48:16 2007 +--- src/search.c Mon Dec 10 21:21:17 2007 +*************** +*** 2319,2325 **** + #endif + while ((p = vim_strchr(p, '/')) != NULL) + { +! if (p[1] == '/') + break; + ++p; + } +--- 2319,2327 ---- + #endif + while ((p = vim_strchr(p, '/')) != NULL) + { +! /* accept a double /, unless it's preceded with * and followed by *, +! * because * / / * is an end and start of a C comment */ +! if (p[1] == '/' && (p == line || p[-1] != '*' || p[2] != '*')) + break; + ++p; + } +*** ../vim-7.1.177/src/version.c Tue Jan 1 14:16:42 2008 +--- src/version.c Tue Jan 1 15:41:33 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 178, + /**/ + +-- +I'd like to meet the man who invented sex and see what he's working on now. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.179 b/7.1.179 new file mode 100644 index 00000000..1e131759 --- /dev/null +++ b/7.1.179 @@ -0,0 +1,189 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.179 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.179 +Problem: Need to check for TCL 8.5. +Solution: Adjust configure script. (Alexey Froloff) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.1.178/src/configure.in Sun Nov 4 15:35:23 2007 +--- src/configure.in Sun Dec 30 13:55:28 2007 +*************** +*** 759,773 **** + + if test "$enable_tclinterp" = "yes"; then + +! dnl on FreeBSD tclsh is a silly script, look for tclsh8.[420] + AC_MSG_CHECKING(--with-tclsh argument) + AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)], + tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name), +! tclsh_name="tclsh8.4"; AC_MSG_RESULT(no)) + AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name) + AC_SUBST(vi_cv_path_tcl) + +! dnl when no specific version specified, also try 8.2 and 8.0 + if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then + tclsh_name="tclsh8.2" + AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name) +--- 759,777 ---- + + if test "$enable_tclinterp" = "yes"; then + +! dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420] + AC_MSG_CHECKING(--with-tclsh argument) + AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)], + tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name), +! tclsh_name="tclsh8.5"; AC_MSG_RESULT(no)) + AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name) + AC_SUBST(vi_cv_path_tcl) + +! dnl when no specific version specified, also try 8.4, 8.2 and 8.0 +! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then +! tclsh_name="tclsh8.4" +! AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name) +! fi + if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then + tclsh_name="tclsh8.2" + AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name) +*************** +*** 810,815 **** +--- 814,820 ---- + AC_MSG_CHECKING(for location of tclConfig.sh script) + if test "x$MACOSX" != "xyes"; then + tclcnf=`echo $tclinc | sed s/include/lib/g` ++ tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`" + else + dnl For Mac OS X 10.3, use the OS-provided framework location + tclcnf="/System/Library/Frameworks/Tcl.framework" +*************** +*** 830,835 **** +--- 835,841 ---- + AC_MSG_RESULT() + AC_MSG_CHECKING(for Tcl library by myself) + tcllib=`echo $tclinc | sed s/include/lib/g` ++ tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`" + for ext in .so .a ; do + for ver in "" $tclver ; do + for try in $tcllib ; do +*** ../vim-7.1.178/src/auto/configure Sun Nov 4 15:35:23 2007 +--- src/auto/configure Sun Dec 30 13:55:35 2007 +*************** +*** 4445,4451 **** + tclsh_name="$withval"; echo "$as_me:$LINENO: result: $tclsh_name" >&5 + echo "${ECHO_T}$tclsh_name" >&6 + else +! tclsh_name="tclsh8.4"; echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi; + # Extract the first word of "$tclsh_name", so it can be a program name with args. +--- 4445,4451 ---- + tclsh_name="$withval"; echo "$as_me:$LINENO: result: $tclsh_name" >&5 + echo "${ECHO_T}$tclsh_name" >&6 + else +! tclsh_name="tclsh8.5"; echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi; + # Extract the first word of "$tclsh_name", so it can be a program name with args. +*************** +*** 4489,4495 **** + + + +! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then + tclsh_name="tclsh8.2" + # Extract the first word of "$tclsh_name", so it can be a program name with args. + set dummy $tclsh_name; ac_word=$2 +--- 4489,4537 ---- + + + +! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then +! tclsh_name="tclsh8.4" +! # Extract the first word of "$tclsh_name", so it can be a program name with args. +! set dummy $tclsh_name; ac_word=$2 +! echo "$as_me:$LINENO: checking for $ac_word" >&5 +! echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +! if test "${ac_cv_path_vi_cv_path_tcl+set}" = set; then +! echo $ECHO_N "(cached) $ECHO_C" >&6 +! else +! case $vi_cv_path_tcl in +! [\\/]* | ?:[\\/]*) +! ac_cv_path_vi_cv_path_tcl="$vi_cv_path_tcl" # Let the user override the test with a path. +! ;; +! *) +! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +! for as_dir in $PATH +! do +! IFS=$as_save_IFS +! test -z "$as_dir" && as_dir=. +! for ac_exec_ext in '' $ac_executable_extensions; do +! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +! ac_cv_path_vi_cv_path_tcl="$as_dir/$ac_word$ac_exec_ext" +! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 +! break 2 +! fi +! done +! done +! +! ;; +! esac +! fi +! vi_cv_path_tcl=$ac_cv_path_vi_cv_path_tcl +! +! if test -n "$vi_cv_path_tcl"; then +! echo "$as_me:$LINENO: result: $vi_cv_path_tcl" >&5 +! echo "${ECHO_T}$vi_cv_path_tcl" >&6 +! else +! echo "$as_me:$LINENO: result: no" >&5 +! echo "${ECHO_T}no" >&6 +! fi +! +! fi +! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then + tclsh_name="tclsh8.2" + # Extract the first word of "$tclsh_name", so it can be a program name with args. + set dummy $tclsh_name; ac_word=$2 +*************** +*** 4649,4654 **** +--- 4691,4697 ---- + echo $ECHO_N "checking for location of tclConfig.sh script... $ECHO_C" >&6 + if test "x$MACOSX" != "xyes"; then + tclcnf=`echo $tclinc | sed s/include/lib/g` ++ tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`" + else + tclcnf="/System/Library/Frameworks/Tcl.framework" + fi +*************** +*** 4668,4673 **** +--- 4711,4717 ---- + echo "$as_me:$LINENO: checking for Tcl library by myself" >&5 + echo $ECHO_N "checking for Tcl library by myself... $ECHO_C" >&6 + tcllib=`echo $tclinc | sed s/include/lib/g` ++ tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`" + for ext in .so .a ; do + for ver in "" $tclver ; do + for try in $tcllib ; do +*** ../vim-7.1.178/src/version.c Tue Jan 1 15:42:45 2008 +--- src/version.c Tue Jan 1 16:24:07 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 179, + /**/ + +-- +Just think of all the things we haven't thought of yet. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.180 b/7.1.180 new file mode 100644 index 00000000..db8ef5dd --- /dev/null +++ b/7.1.180 @@ -0,0 +1,266 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.180 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.180 +Problem: Regexp patterns not tested sufficiently. +Solution: Add more checks to the regexp test. +Files: src/testdir/test64.in, src/testdir/test64.ok + + +*** ../vim-7.1.179/src/testdir/test64.in Tue Sep 25 17:54:41 2007 +--- src/testdir/test64.in Mon Dec 31 14:20:23 2007 +*************** +*** 14,23 **** +--- 14,136 ---- + :" etc. + :" When there is no match use only the first two items. + :let tl = [] ++ :call add(tl, ['ab', 'aab', 'ab']) + :call add(tl, ['b', 'abcdef', 'b']) + :call add(tl, ['bc*', 'abccccdef', 'bcccc']) + :call add(tl, ['bc\{-}', 'abccccdef', 'b']) + :call add(tl, ['bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd']) ++ :call add(tl, ['bc*', 'abbdef', 'b']) ++ :call add(tl, ['c*', 'ccc', 'ccc']) ++ :call add(tl, ['bc*', 'abdef', 'b']) ++ :call add(tl, ['c*', 'abdef', '']) ++ :call add(tl, ['bc\+', 'abccccdef', 'bcccc']) ++ :call add(tl, ['bc\+', 'abdef']) "no match ++ :" ++ :"operator \| ++ :call add(tl, ['a\|ab', 'cabd', 'a']) "alternation is ordered ++ :" ++ :call add(tl, ['c\?', 'ccb', 'c']) ++ :call add(tl, ['bc\?', 'abd', 'b']) ++ :call add(tl, ['bc\?', 'abccd', 'bc']) ++ :" ++ :call add(tl, ['\va{1}', 'ab', 'a']) ++ :" ++ :call add(tl, ['\va{2}', 'aa', 'aa']) ++ :call add(tl, ['\va{2}', 'caad', 'aa']) ++ :call add(tl, ['\va{2}', 'aba']) ++ :call add(tl, ['\va{2}', 'ab']) ++ :call add(tl, ['\va{2}', 'abaa', 'aa']) ++ :call add(tl, ['\va{2}', 'aaa', 'aa']) ++ :" ++ :call add(tl, ['\vb{1}', 'abca', 'b']) ++ :call add(tl, ['\vba{2}', 'abaa', 'baa']) ++ :call add(tl, ['\vba{3}', 'aabaac']) ++ :" ++ :call add(tl, ['\v(ab){1}', 'ab', 'ab', 'ab']) ++ :call add(tl, ['\v(ab){1}', 'dabc', 'ab', 'ab']) ++ :call add(tl, ['\v(ab){1}', 'acb']) ++ :" ++ :call add(tl, ['\v(ab){0,2}', 'acb', "", ""]) ++ :call add(tl, ['\v(ab){0,2}', 'ab', 'ab', 'ab']) ++ :call add(tl, ['\v(ab){1,2}', 'ab', 'ab', 'ab']) ++ :call add(tl, ['\v(ab){1,2}', 'ababc', 'abab', 'ab']) ++ :call add(tl, ['\v(ab){2,4}', 'ababcab', 'abab', 'ab']) ++ :call add(tl, ['\v(ab){2,4}', 'abcababa', 'abab', 'ab']) ++ :" ++ :call add(tl, ['\v(ab){2}', 'abab', 'abab', 'ab']) ++ :call add(tl, ['\v(ab){2}', 'cdababe', 'abab', 'ab']) ++ :call add(tl, ['\v(ab){2}', 'abac']) ++ :call add(tl, ['\v(ab){2}', 'abacabab', 'abab', 'ab']) ++ :call add(tl, ['\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab']) ++ :call add(tl, ['\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab']) ++ :" ++ :call add(tl, ['\v(a{1}){1}', 'a', 'a', 'a']) ++ :call add(tl, ['\v(a{2}){1}', 'aa', 'aa', 'aa']) ++ :call add(tl, ['\v(a{2}){1}', 'aaac', 'aa', 'aa']) ++ :call add(tl, ['\v(a{2}){1}', 'daaac', 'aa', 'aa']) ++ :call add(tl, ['\v(a{1}){2}', 'daaac', 'aa', 'a']) ++ :call add(tl, ['\v(a{1}){2}', 'aaa', 'aa', 'a']) ++ :call add(tl, ['\v(a{2})+', 'adaac', 'aa', 'aa']) ++ :call add(tl, ['\v(a{2})+', 'aa', 'aa', 'aa']) ++ :call add(tl, ['\v(a{2}){1}', 'aa', 'aa', 'aa']) ++ :call add(tl, ['\v(a{1}){2}', 'aa', 'aa', 'a']) ++ :call add(tl, ['\v(a{1}){1}', 'a', 'a', 'a']) ++ :call add(tl, ['\v(a{2}){2}', 'aaaa', 'aaaa', 'aa']) ++ :call add(tl, ['\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa']) ++ :" ++ :call add(tl, ['\v(a+){2}', 'dadaac', 'aa', 'a']) ++ :call add(tl, ['\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa']) ++ :" ++ :call add(tl, ['\v(a{1,2}){2}', 'daaac', 'aaa', 'a']) ++ :call add(tl, ['\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a']) ++ :call add(tl, ['\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa']) ++ :call add(tl, ['\v(a{1,3}){3}', 'daac']) ++ :call add(tl, ['\v(a{1,2}){2}', 'dac']) ++ :call add(tl, ['\v(a+)+', 'daac', 'aa', 'aa']) ++ :call add(tl, ['\v(a+)+', 'aaa', 'aaa', 'aaa']) ++ :call add(tl, ['\v(a+){1,2}', 'aaa', 'aaa', 'aaa']) ++ :call add(tl, ['\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a']) ++ :call add(tl, ['\v(a{3})+', 'daaaac', 'aaa', 'aaa']) ++ :call add(tl, ['\v(a|b|c)+', 'aacb', 'aacb', 'b']) ++ :call add(tl, ['\v(a|b|c){2}', 'abcb', 'ab', 'b']) ++ :call add(tl, ['\v(abc){2}', 'abcabd', ]) ++ :call add(tl, ['\v(abc){2}', 'abdabcabc','abcabc', 'abc']) ++ :" ++ :call add(tl, ['a*', 'cc', '']) ++ :call add(tl, ['\v(a*)+', 'cc', '']) ++ :call add(tl, ['\v((ab)+)+', 'ab', 'ab', 'ab', 'ab']) ++ :call add(tl, ['\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab']) ++ :call add(tl, ['\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab']) ++ :call add(tl, ['\v(a{0,2})+', 'cc', '']) ++ :call add(tl, ['\v(a*)+', '', '']) ++ :call add(tl, ['\v((a*)+)+', '', '']) ++ :call add(tl, ['\v((ab)*)+', '', '']) ++ :call add(tl, ['\va{1,3}', 'aab', 'aa']) ++ :call add(tl, ['\va{2,3}', 'abaa', 'aa']) ++ :" ++ :call add(tl, ['\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab']) ++ :call add(tl, ['\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb']) ++ :call add(tl, ['\va{2}|b{2}', 'abab']) ++ :call add(tl, ['\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a']) ++ :call add(tl, ['\vab{2,3}c', 'aabbccccccccccccc', 'abbc']) ++ :call add(tl, ['\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc']) ++ :call add(tl, ['\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde']) ++ :call add(tl, ['\va(bc){2}d', 'aabcbfbc' ]) ++ :call add(tl, ['\va*a{2}', 'a', ]) ++ :call add(tl, ['\va*a{2}', 'aa', 'aa' ]) ++ :call add(tl, ['\va*a{2}', 'aaa', 'aaa' ]) ++ :call add(tl, ['\va*a{2}', 'bbbabcc', ]) ++ :call add(tl, ['\va*b*|a*c*', 'a', 'a']) ++ :call add(tl, ['\va{1}b{1}|a{1}b{1}', '']) ++ :" ++ :"submatches ++ :call add(tl, ['\v(a)', 'ab', 'a', 'a']) ++ :call add(tl, ['\v(a)(b)', 'ab', 'ab', 'a', 'b']) ++ :call add(tl, ['\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c']) ++ :call add(tl, ['\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b']) ++ :call add(tl, ['\v(a)|(b)', 'ab', 'a', 'a']) ++ :" ++ :call add(tl, ['\v(a*)+', 'aaaa', 'aaaa', '']) + :call add(tl, ['x', 'abcdef']) + :" + :for t in tl +*** ../vim-7.1.179/src/testdir/test64.ok Tue Aug 14 17:28:14 2007 +--- src/testdir/test64.ok Mon Dec 31 14:20:26 2007 +*************** +*** 4,6 **** +--- 4,102 ---- + OK + OK + OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK ++ OK +*** ../vim-7.1.179/src/version.c Tue Jan 1 16:25:33 2008 +--- src/version.c Tue Jan 1 17:34:32 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 180, + /**/ + +-- +CONCORDE: Message for you, sir. + He falls forward revealing the arrow with the note. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.181 b/7.1.181 new file mode 100644 index 00000000..124ff2a8 --- /dev/null +++ b/7.1.181 @@ -0,0 +1,62 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.181 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.181 +Problem: Accessing uninitialized memory in Farsi mode. (Dominuque Pelle) +Solution: Only invoke lrF_sub() when there is something to do. +Files: src/ex_cmds.c + + +*** ../vim-7.1.180/src/ex_cmds.c Sun Dec 9 19:37:37 2007 +--- src/ex_cmds.c Mon Dec 31 17:29:25 2007 +*************** +*** 4212,4222 **** + sub_nlines = 0; + } + +- #ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */ +- if (p_altkeymap && curwin->w_p_rl) +- lrF_sub(cmd); +- #endif +- + if (eap->cmdidx == CMD_tilde) + which_pat = RE_LAST; /* use last used regexp */ + else +--- 4212,4217 ---- +*************** +*** 4252,4257 **** +--- 4247,4256 ---- + } + else /* find the end of the regexp */ + { ++ #ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */ ++ if (p_altkeymap && curwin->w_p_rl) ++ lrF_sub(cmd); ++ #endif + which_pat = RE_LAST; /* use last used regexp */ + delimiter = *cmd++; /* remember delimiter character */ + pat = cmd; /* remember start of search pat */ +*** ../vim-7.1.180/src/version.c Tue Jan 1 17:37:01 2008 +--- src/version.c Wed Jan 2 13:57:31 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 181, + /**/ + +-- +Yah, well, we had to carve our electrons out of driftwood we'd +find. In the winter. Uphill. Both ways. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.182 b/7.1.182 new file mode 100644 index 00000000..23ef997f --- /dev/null +++ b/7.1.182 @@ -0,0 +1,169 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.182 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.182 +Problem: When using tab pages and an argument list the session file may + contain wrong "next" commands. (Alexander Bluem) +Solution: Use "argu" commands and only when needed. +Files: src/ex_docmd.c + + +*** ../vim-7.1.181/src/ex_docmd.c Sun Dec 9 19:37:37 2007 +--- src/ex_docmd.c Mon Dec 31 18:24:16 2007 +*************** +*** 372,378 **** + static char_u *arg_all __ARGS((void)); + #ifdef FEAT_SESSION + static int makeopens __ARGS((FILE *fd, char_u *dirnow)); +! static int put_view __ARGS((FILE *fd, win_T *wp, int add_edit, unsigned *flagp)); + static void ex_loadview __ARGS((exarg_T *eap)); + static char_u *get_view_file __ARGS((int c)); + static int did_lcd; /* whether ":lcd" was produced for a session */ +--- 372,378 ---- + static char_u *arg_all __ARGS((void)); + #ifdef FEAT_SESSION + static int makeopens __ARGS((FILE *fd, char_u *dirnow)); +! static int put_view __ARGS((FILE *fd, win_T *wp, int add_edit, unsigned *flagp, int current_arg_idx)); + static void ex_loadview __ARGS((exarg_T *eap)); + static char_u *get_view_file __ARGS((int c)); + static int did_lcd; /* whether ":lcd" was produced for a session */ +*************** +*** 8762,8768 **** + } + else + { +! failed |= (put_view(fd, curwin, !using_vdir, flagp) == FAIL); + } + if (put_line(fd, "let &so = s:so_save | let &siso = s:siso_save") + == FAIL) +--- 8762,8769 ---- + } + else + { +! failed |= (put_view(fd, curwin, !using_vdir, flagp, +! -1) == FAIL); + } + if (put_line(fd, "let &so = s:so_save | let &siso = s:siso_save") + == FAIL) +*************** +*** 9761,9766 **** +--- 9762,9769 ---- + int tabnr; + win_T *tab_firstwin; + frame_T *tab_topframe; ++ int cur_arg_idx = 0; ++ int next_arg_idx; + + if (ssop_flags & SSOP_BUFFERS) + only_save_windows = FALSE; /* Save ALL buffers */ +*************** +*** 9976,9987 **** + { + if (!ses_do_win(wp)) + continue; +! if (put_view(fd, wp, wp != edited_win, &ssop_flags) == FAIL) + return FAIL; + if (nr > 1 && put_line(fd, "wincmd w") == FAIL) + return FAIL; + } + + /* + * Restore cursor to the current window if it's not the first one. + */ +--- 9979,9997 ---- + { + if (!ses_do_win(wp)) + continue; +! if (put_view(fd, wp, wp != edited_win, &ssop_flags, +! cur_arg_idx) == FAIL) + return FAIL; + if (nr > 1 && put_line(fd, "wincmd w") == FAIL) + return FAIL; ++ next_arg_idx = wp->w_arg_idx; + } + ++ /* The argument index in the first tab page is zero, need to set it in ++ * each window. For further tab pages it's the window where we do ++ * "tabedit". */ ++ cur_arg_idx = next_arg_idx; ++ + /* + * Restore cursor to the current window if it's not the first one. + */ +*************** +*** 10190,10200 **** + * Caller must make sure 'scrolloff' is zero. + */ + static int +! put_view(fd, wp, add_edit, flagp) + FILE *fd; + win_T *wp; + int add_edit; /* add ":edit" command to view */ + unsigned *flagp; /* vop_flags or ssop_flags */ + { + win_T *save_curwin; + int f; +--- 10200,10212 ---- + * Caller must make sure 'scrolloff' is zero. + */ + static int +! put_view(fd, wp, add_edit, flagp, current_arg_idx) + FILE *fd; + win_T *wp; + int add_edit; /* add ":edit" command to view */ + unsigned *flagp; /* vop_flags or ssop_flags */ ++ int current_arg_idx; /* current argument index of the window, use ++ * -1 if unknown */ + { + win_T *save_curwin; + int f; +*************** +*** 10224,10233 **** + + /* Only when part of a session: restore the argument index. Some + * arguments may have been deleted, check if the index is valid. */ +! if (wp->w_arg_idx != 0 && wp->w_arg_idx <= WARGCOUNT(wp) + && flagp == &ssop_flags) + { +! if (fprintf(fd, "%ldnext", (long)wp->w_arg_idx) < 0 + || put_eol(fd) == FAIL) + return FAIL; + did_next = TRUE; +--- 10236,10245 ---- + + /* Only when part of a session: restore the argument index. Some + * arguments may have been deleted, check if the index is valid. */ +! if (wp->w_arg_idx != current_arg_idx && wp->w_arg_idx <= WARGCOUNT(wp) + && flagp == &ssop_flags) + { +! if (fprintf(fd, "%ldargu", (long)wp->w_arg_idx + 1) < 0 + || put_eol(fd) == FAIL) + return FAIL; + did_next = TRUE; +*** ../vim-7.1.181/src/version.c Wed Jan 2 13:58:17 2008 +--- src/version.c Wed Jan 2 15:10:01 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 182, + /**/ + +-- +You were lucky. We lived for three months in a brown paper bag in a +septic tank. We used to have to get up at six o'clock in the morning, +clean the bag, eat a crust of stale bread, go to work down mill for +fourteen hours a day week in-week out. When we got home, our Dad +would thrash us to sleep with his belt! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.183 b/7.1.183 new file mode 100644 index 00000000..79fd6500 --- /dev/null +++ b/7.1.183 @@ -0,0 +1,99 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.183 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.183 +Problem: "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu + Paul) +Solution: Inside "\%[]" detect \&, \| and \) as an error. +Files: src/regexp.c + + +*** ../vim-7.1.182/src/regexp.c Sun Dec 9 19:25:35 2007 +--- src/regexp.c Wed Jan 2 15:02:37 2008 +*************** +*** 1288,1295 **** + } + + /* +! * regbranch - one alternative of an | operator +! * + * Implements the & operator. + */ + static char_u * +--- 1288,1294 ---- + } + + /* +! * Handle one alternative of an | operator. + * Implements the & operator. + */ + static char_u * +*************** +*** 1330,1337 **** + } + + /* +! * regbranch - one alternative of an | or & operator +! * + * Implements the concatenation operator. + */ + static char_u * +--- 1329,1335 ---- + } + + /* +! * Handle one alternative of an | or & operator. + * Implements the concatenation operator. + */ + static char_u * +*************** +*** 1708,1713 **** +--- 1706,1713 ---- + case Magic('|'): + case Magic('&'): + case Magic(')'): ++ if (one_exactly) ++ EMSG_ONE_RET_NULL; + EMSG_RET_NULL(_(e_internal)); /* Supposed to be caught earlier. */ + /* NOTREACHED */ + +*************** +*** 3106,3112 **** + * slow, we keep one allocated piece of memory and only re-allocate it when + * it's too small. It's freed in vim_regexec_both() when finished. + */ +! static char_u *reg_tofree; + static unsigned reg_tofreelen; + + /* +--- 3106,3112 ---- + * slow, we keep one allocated piece of memory and only re-allocate it when + * it's too small. It's freed in vim_regexec_both() when finished. + */ +! static char_u *reg_tofree = NULL; + static unsigned reg_tofreelen; + + /* +*** ../vim-7.1.182/src/version.c Wed Jan 2 15:12:29 2008 +--- src/version.c Wed Jan 2 15:33:52 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 183, + /**/ + +-- +Not too long ago, unzipping in public was illegal... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.184 b/7.1.184 new file mode 100644 index 00000000..9afeff6a --- /dev/null +++ b/7.1.184 @@ -0,0 +1,63 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.184 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.184 +Problem: Crash when deleting backwards over a line break in Insert mode. +Solution: Don't advance the cursor when it's already on the NUL after a + line. (Matthew Wozniski) +Files: src/normal.c + + +*** ../vim-7.1.183/src/normal.c Sun Oct 14 17:15:45 2007 +--- src/normal.c Tue Jan 1 16:40:24 2008 +*************** +*** 5849,5860 **** + /* When the NL before the first char has to be deleted we + * put the cursor on the NUL after the previous line. + * This is a very special case, be careful! +! * don't adjust op_end now, otherwise it won't work */ + if ( (cap->oap->op_type == OP_DELETE + || cap->oap->op_type == OP_CHANGE) + && !lineempty(curwin->w_cursor.lnum)) + { +! ++curwin->w_cursor.col; + cap->retval |= CA_NO_ADJ_OP_END; + } + continue; +--- 5849,5861 ---- + /* When the NL before the first char has to be deleted we + * put the cursor on the NUL after the previous line. + * This is a very special case, be careful! +! * Don't adjust op_end now, otherwise it won't work. */ + if ( (cap->oap->op_type == OP_DELETE + || cap->oap->op_type == OP_CHANGE) + && !lineempty(curwin->w_cursor.lnum)) + { +! if (*ml_get_cursor() != NUL) +! ++curwin->w_cursor.col; + cap->retval |= CA_NO_ADJ_OP_END; + } + continue; +*** ../vim-7.1.183/src/version.c Wed Jan 2 15:34:48 2008 +--- src/version.c Wed Jan 2 16:24:19 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 184, + /**/ + +-- +Not too long ago, cut and paste was done with scissors and glue... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.185 b/7.1.185 new file mode 100644 index 00000000..0a1e0923 --- /dev/null +++ b/7.1.185 @@ -0,0 +1,140 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.185 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.185 +Problem: Using "gR" with a multi-byte encoding and typing a CR pushes + characters onto the replace stack incorrectly, resulting in BS + putting back the wrong characters. (Paul B. Mahol) +Solution: Push multi-byte characters onto the replace stack in reverse byte + order. Add replace_push_mb(). +Files: src/edit.c, src/misc1.c, src/proto/edit.pro + + +*** ../vim-7.1.184/src/edit.c Sun Dec 9 20:25:59 2007 +--- src/edit.c Tue Jan 1 17:28:07 2008 +*************** +*** 6939,6944 **** +--- 6939,6963 ---- + ++replace_stack_nr; + } + ++ #if defined(FEAT_MBYTE) || defined(PROTO) ++ /* ++ * Push a character onto the replace stack. Handles a multi-byte character in ++ * reverse byte order, so that the first byte is popped off first. ++ * Return the number of bytes done (includes composing characters). ++ */ ++ int ++ replace_push_mb(p) ++ char_u *p; ++ { ++ int l = (*mb_ptr2len)(p); ++ int j; ++ ++ for (j = l - 1; j >= 0; --j) ++ replace_push(p[j]); ++ return l; ++ } ++ #endif ++ + #if 0 + /* + * call replace_push(c) with replace_offset set to the first NUL. +*** ../vim-7.1.184/src/misc1.c Wed Sep 26 22:35:06 2007 +--- src/misc1.c Wed Jan 2 17:48:00 2008 +*************** +*** 591,597 **** + replace_push(NUL); + p = saved_line + curwin->w_cursor.col; + while (*p != NUL) +! replace_push(*p++); + saved_line[curwin->w_cursor.col] = NUL; + } + #endif +--- 592,605 ---- + replace_push(NUL); + p = saved_line + curwin->w_cursor.col; + while (*p != NUL) +! { +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! p += replace_push_mb(p); +! else +! #endif +! replace_push(*p++); +! } + saved_line[curwin->w_cursor.col] = NUL; + } + #endif +*************** +*** 1914,1920 **** + int charlen; + { + int c = buf[0]; +- int l, j; + #endif + int newlen; /* nr of bytes inserted */ + int oldlen; /* nr of bytes deleted (0 when not replacing) */ +--- 1922,1927 ---- +*************** +*** 2016,2028 **** + for (i = 0; i < oldlen; ++i) + { + #ifdef FEAT_MBYTE +! l = (*mb_ptr2len)(oldp + col + i) - 1; +! for (j = l; j >= 0; --j) +! replace_push(oldp[col + i + j]); +! i += l; +! #else +! replace_push(oldp[col + i]); + #endif + } + } + +--- 2023,2033 ---- + for (i = 0; i < oldlen; ++i) + { + #ifdef FEAT_MBYTE +! if (has_mbyte) +! i += replace_push_mb(oldp + col + i) - 1; +! else + #endif ++ replace_push(oldp[col + i]); + } + } + +*** ../vim-7.1.184/src/proto/edit.pro Sat May 5 20:21:34 2007 +--- src/proto/edit.pro Tue Jan 1 17:21:24 2008 +*************** +*** 32,37 **** +--- 32,38 ---- + char_u *get_last_insert __ARGS((void)); + char_u *get_last_insert_save __ARGS((void)); + void replace_push __ARGS((int c)); ++ int replace_push_mb __ARGS((char_u *p)); + void fixthisline __ARGS((int (*get_the_indent)(void))); + void fix_indent __ARGS((void)); + int in_cinkeys __ARGS((int keytyped, int when, int line_is_empty)); +*** ../vim-7.1.184/src/version.c Wed Jan 2 16:25:20 2008 +--- src/version.c Wed Jan 2 17:45:10 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 185, + /**/ + +-- +Not too long ago, a keyboard was something to make music with... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.186 b/7.1.186 new file mode 100644 index 00000000..c848cbba --- /dev/null +++ b/7.1.186 @@ -0,0 +1,111 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.186 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.186 +Problem: "expand('')" returns a bogus value after changing + directory. (Dave Fishburn) +Solution: Copy "autocmd_fname" to allocated memory and expand to full + filename. Shorten the path when expanding . +Files: src/ex_docmd.c, src/fileio.c + + +*** ../vim-7.1.185/src/ex_docmd.c Wed Jan 2 15:12:29 2008 +--- src/ex_docmd.c Wed Jan 2 20:12:33 2008 +*************** +*** 7799,7804 **** +--- 7799,7805 ---- + free_cd_dir() + { + vim_free(prev_dir); ++ prev_dir = NULL; + } + #endif + +*************** +*** 9521,9526 **** +--- 9522,9528 ---- + *errormsg = (char_u *)_("E495: no autocommand file name to substitute for \"\""); + return NULL; + } ++ result = shorten_fname1(result); + break; + + case SPEC_ABUF: /* buffer number for autocommand */ +*** ../vim-7.1.185/src/fileio.c Thu Nov 8 20:47:34 2007 +--- src/fileio.c Wed Jan 2 20:21:43 2008 +*************** +*** 5556,5562 **** + #endif + + #if defined(FEAT_VIMINFO) || defined(FEAT_BROWSE) || \ +! defined(FEAT_QUICKFIX) || defined(PROTO) + /* + * Try to find a shortname by comparing the fullname with the current + * directory. +--- 5556,5562 ---- + #endif + + #if defined(FEAT_VIMINFO) || defined(FEAT_BROWSE) || \ +! defined(FEAT_QUICKFIX) || defined(FEAT_AUTOCMD) || defined(PROTO) + /* + * Try to find a shortname by comparing the fullname with the current + * directory. +*************** +*** 8546,8551 **** +--- 8546,8553 ---- + + /* + * Set the file name to be used for . ++ * Make a copy to avoid that changing a buffer name or directory makes it ++ * invalid. + */ + if (fname_io == NULL) + { +*************** +*** 8558,8563 **** +--- 8560,8567 ---- + } + else + autocmd_fname = fname_io; ++ if (autocmd_fname != NULL) ++ autocmd_fname = FullName_save(autocmd_fname, FALSE); + + /* + * Set the buffer number to be used for . +*************** +*** 8740,8745 **** +--- 8744,8750 ---- + vim_free(sourcing_name); + sourcing_name = save_sourcing_name; + sourcing_lnum = save_sourcing_lnum; ++ vim_free(autocmd_fname); + autocmd_fname = save_autocmd_fname; + autocmd_bufnr = save_autocmd_bufnr; + autocmd_match = save_autocmd_match; +*** ../vim-7.1.185/src/version.c Wed Jan 2 17:48:24 2008 +--- src/version.c Wed Jan 2 21:06:35 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 186, + /**/ + +-- + LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and + hacks him to the floor. Blood. Swashbuckling music (perhaps). + LAUNCELOT races through into the castle screaming. +SECOND SENTRY: Hey! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.187 b/7.1.187 new file mode 100644 index 00000000..421a42da --- /dev/null +++ b/7.1.187 @@ -0,0 +1,81 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.187 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.187 +Problem: Win32 GUI: Custom completion using system() no longer works + after patch 7.1.104. (Erik Falor) +Solution: Loop when safe_vgetc() returns K_IGNORE. +Files: src/ex_getln.c + + +*** ../vim-7.1.186/src/ex_getln.c Fri Dec 7 20:28:13 2007 +--- src/ex_getln.c Wed Jan 2 21:42:51 2008 +*************** +*** 335,341 **** + quit_more = FALSE; /* reset after CTRL-D which had a more-prompt */ + + cursorcmd(); /* set the cursor on the right spot */ +! c = safe_vgetc(); + if (KeyTyped) + { + some_key_typed = TRUE; +--- 335,348 ---- + quit_more = FALSE; /* reset after CTRL-D which had a more-prompt */ + + cursorcmd(); /* set the cursor on the right spot */ +! +! /* Get a character. Ignore K_IGNORE, it should not do anything, such +! * as stop completion. */ +! do +! { +! c = safe_vgetc(); +! } while (c == K_IGNORE); +! + if (KeyTyped) + { + some_key_typed = TRUE; +*************** +*** 1209,1215 **** + goto cmdline_not_changed; + + case K_IGNORE: +! goto cmdline_not_changed; /* Ignore mouse */ + + #ifdef FEAT_GUI_W32 + /* On Win32 ignore , we get it when closing the window was +--- 1216,1223 ---- + goto cmdline_not_changed; + + case K_IGNORE: +! /* Ignore mouse event or ex_window() result. */ +! goto cmdline_not_changed; + + #ifdef FEAT_GUI_W32 + /* On Win32 ignore , we get it when closing the window was +*** ../vim-7.1.186/src/version.c Wed Jan 2 21:07:32 2008 +--- src/version.c Wed Jan 2 21:53:24 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 187, + /**/ + +-- +FATHER: Who are you? +PRINCE: I'm ... your son ... +FATHER: Not you. +LAUNCELOT: I'm ... er ... Sir Launcelot, sir. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.188 b/7.1.188 new file mode 100644 index 00000000..1af3bf2f --- /dev/null +++ b/7.1.188 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.188 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.188 +Problem: When 'showmode' is off the message for changing a readonly file is + given in the second column instead of the first. (Payl B. Mahol) +Solution: Put the W10 message in the first column. +Files: src/edit.c + + +*** ../vim-7.1.187/src/edit.c Wed Jan 2 17:48:24 2008 +--- src/edit.c Wed Jan 2 20:56:46 2008 +*************** +*** 550,556 **** + i = showmode(); + + if (!p_im && did_restart_edit == 0) +! change_warning(i + 1); + + #ifdef CURSOR_SHAPE + ui_cursor_shape(); /* may show different cursor shape */ +--- 550,556 ---- + i = showmode(); + + if (!p_im && did_restart_edit == 0) +! change_warning(i == 0 ? 0 : i + 1); + + #ifdef CURSOR_SHAPE + ui_cursor_shape(); /* may show different cursor shape */ +*** ../vim-7.1.187/src/version.c Wed Jan 2 21:54:33 2008 +--- src/version.c Wed Jan 2 22:06:19 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 188, + /**/ + +-- +PRINCE: He's come to rescue me, father. +LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.189 b/7.1.189 new file mode 100644 index 00000000..86666158 --- /dev/null +++ b/7.1.189 @@ -0,0 +1,76 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.189 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.189 (after 7.1.104) +Problem: Patch 7.1.104 was incomplete. +Solution: Also call plain_vgetc() in ask_yesno(). +Files: src/misc1.c + + +*** ../vim-7.1.188/src/misc1.c Wed Jan 2 17:48:24 2008 +--- src/misc1.c Wed Jan 2 17:48:00 2008 +*************** +*** 222,231 **** + *s++ = *p++; + orig_char_len--; + } + /* Skip over any additional white space (useful when newindent is less + * than old) */ + while (vim_iswhite(*p)) +! (void)*p++; + + } + else +--- 222,232 ---- + *s++ = *p++; + orig_char_len--; + } ++ + /* Skip over any additional white space (useful when newindent is less + * than old) */ + while (vim_iswhite(*p)) +! ++p; + + } + else +*************** +*** 3024,3030 **** + if (direct) + r = get_keystroke(); + else +! r = safe_vgetc(); + if (r == Ctrl_C || r == ESC) + r = 'n'; + msg_putchar(r); /* show what you typed */ +--- 3025,3031 ---- + if (direct) + r = get_keystroke(); + else +! r = plain_vgetc(); + if (r == Ctrl_C || r == ESC) + r = 'n'; + msg_putchar(r); /* show what you typed */ +*** ../vim-7.1.188/src/version.c Wed Jan 2 22:08:43 2008 +--- src/version.c Thu Jan 3 12:40:31 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 189, + /**/ + +-- +Q: How does a UNIX Guru do Sex ? +A: unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.169 b/7.1.190 similarity index 52% rename from 7.0.169 rename to 7.1.190 index b59cd499..6cf181c4 100644 --- a/7.0.169 +++ b/7.1.190 @@ -1,5 +1,5 @@ To: vim-dev@vim.org -Subject: Patch 7.0.169 +Subject: Patch 7.1.190 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 @@ -7,35 +7,37 @@ Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ -Patch 7.0.169 -Problem: With a Visual block selection, with the cursor in the left upper - corner, pressing "I" doesn't remove the highlighting. (Guopeng - Wen) -Solution: When checking if redrawing is needed also check if Visual - selection is still active. -Files: src/screen.c +Patch 7.1.190 +Problem: Cursor after end-of-line: "iA sentence.)" +Solution: Move cursor back and make motion inclusive. +Files: src/normal.c -*** ../vim-7.0.168/src/screen.c Mon Oct 9 22:11:52 2006 ---- src/screen.c Tue Nov 28 16:11:24 2006 +*** ../vim-7.1.189/src/normal.c Wed Jan 2 16:25:20 2008 +--- src/normal.c Wed Jan 2 22:04:38 2008 *************** -*** 455,460 **** ---- 455,461 ---- - && curwin->w_topline == curwin->w_lines[0].wl_lnum) - #ifdef FEAT_VISUAL - || (type == INVERTED -+ && VIsual_active - && curwin->w_old_cursor_lnum == curwin->w_cursor.lnum - && curwin->w_old_visual_mode == VIsual_mode - && (curwin->w_valid & VALID_VIRTCOL) -*** ../vim-7.0.168/src/version.c Tue Nov 21 20:57:21 2006 ---- src/version.c Tue Nov 28 16:13:40 2006 +*** 6564,6569 **** +--- 6564,6575 ---- + clearopbeep(cap->oap); + else + { ++ /* Don't leave the cursor on the NUL past a line */ ++ if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL) ++ { ++ --curwin->w_cursor.col; ++ cap->oap->inclusive = TRUE; ++ } + #ifdef FEAT_VIRTUALEDIT + curwin->w_cursor.coladd = 0; + #endif +*** ../vim-7.1.189/src/version.c Thu Jan 3 12:42:39 2008 +--- src/version.c Thu Jan 3 13:19:03 2008 *************** *** 668,669 **** --- 668,671 ---- { /* Add new patch number below this line */ + /**/ -+ 169, ++ 190, /**/ -- diff --git a/7.1.191 b/7.1.191 new file mode 100644 index 00000000..4cbc35c3 --- /dev/null +++ b/7.1.191 @@ -0,0 +1,61 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.191 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.191 +Problem: Win32 GUI: after patch 7.1.168 there is still a problem when + clicking in a scrollbar. (Juergen Jottkaerr) +Solution: Don't check the input buffer when dragging the scrollbar. +Files: src/gui.c + + +*** ../vim-7.1.190/src/gui.c Tue Nov 6 22:26:39 2007 +--- src/gui.c Thu Jan 3 13:16:29 2008 +*************** +*** 3734,3741 **** + sb->value = value; + + #ifdef USE_ON_FLY_SCROLL +! /* When not allowed to do the scrolling right now, return. */ +! if (dont_scroll || input_available()) + return; + #endif + #ifdef FEAT_INS_EXPAND +--- 3734,3743 ---- + sb->value = value; + + #ifdef USE_ON_FLY_SCROLL +! /* When not allowed to do the scrolling right now, return. +! * This also checked input_available(), but that causes the first click in +! * a scrollbar to be ignored when Vim doesn't have focus. */ +! if (dont_scroll) + return; + #endif + #ifdef FEAT_INS_EXPAND +*** ../vim-7.1.190/src/version.c Thu Jan 3 13:19:50 2008 +--- src/version.c Thu Jan 3 16:13:23 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 191, + /**/ + +-- +GUARD #1: What -- a swallow carrying a coconut? +ARTHUR: It could grip it by the husk! +GUARD #1: It's not a question of where he grips it! It's a simple question + of weight ratios! A five ounce bird could not carry a 1 pound + coconut. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.192 b/7.1.192 new file mode 100644 index 00000000..4dd16382 --- /dev/null +++ b/7.1.192 @@ -0,0 +1,79 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.192 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.192 +Problem: With Visual block selection, "s" and typing something, CTRL-C + doesn't stop Vim from repeating the replacement in other lines, + like happens for "I". +Solution: Check for "got_int" to be set. +Files: src/ops.c + + +*** ../vim-7.1.191/src/ops.c Sat Dec 1 21:12:23 2007 +--- src/ops.c Thu Jan 3 16:26:37 2008 +*************** +*** 2468,2476 **** + + edit(NUL, FALSE, (linenr_T)count1); + +! /* if user has moved off this line, we don't know what to do, so do +! * nothing */ +! if (curwin->w_cursor.lnum != oap->start.lnum) + return; + + if (oap->block_mode) +--- 2468,2477 ---- + + edit(NUL, FALSE, (linenr_T)count1); + +! /* If user has moved off this line, we don't know what to do, so do +! * nothing. +! * Also don't repeat the insert when Insert mode ended with CTRL-C. */ +! if (curwin->w_cursor.lnum != oap->start.lnum || got_int) + return; + + if (oap->block_mode) +*************** +*** 2601,2608 **** + /* + * In Visual block mode, handle copying the new text to all lines of the + * block. + */ +! if (oap->block_mode && oap->start.lnum != oap->end.lnum) + { + /* Auto-indenting may have changed the indent. If the cursor was past + * the indent, exclude that indent change from the inserted text. */ +--- 2602,2610 ---- + /* + * In Visual block mode, handle copying the new text to all lines of the + * block. ++ * Don't repeat the insert when Insert mode ended with CTRL-C. + */ +! if (oap->block_mode && oap->start.lnum != oap->end.lnum && !got_int) + { + /* Auto-indenting may have changed the indent. If the cursor was past + * the indent, exclude that indent change from the inserted text. */ +*** ../vim-7.1.191/src/version.c Thu Jan 3 16:14:25 2008 +--- src/version.c Thu Jan 3 16:30:07 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 192, + /**/ + +-- +"A mouse can be just as dangerous as a bullet or a bomb." + (US Representative Lamar Smith, R-Texas) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.193 b/7.1.193 new file mode 100644 index 00000000..b3836f73 --- /dev/null +++ b/7.1.193 @@ -0,0 +1,100 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.193 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.193 +Problem: Some Vim 5.x digraphs are missing in Vim 7, even though the + character pairs are not used. (Philippe de Muyter) +Solution: Add those Vim 5.x digraphs that don't conflict with others. +Files: src/digraph.c + + +*** ../vim-7.1.192/src/digraph.c Thu Sep 13 18:25:08 2007 +--- src/digraph.c Thu Jan 3 17:48:47 2008 +*************** +*** 1978,1983 **** +--- 1978,2038 ---- + {'f', 't', 0xfb05}, + {'s', 't', 0xfb06}, + # endif /* FEAT_MBYTE */ ++ ++ /* Vim 5.x compatible digraphs that don't conflict with the above */ ++ {'~', '!', 161}, /* ¡ */ ++ {'c', '|', 162}, /* ¢ */ ++ {'$', '$', 163}, /* £ */ ++ {'o', 'x', 164}, /* ¤ - currency symbol in ISO 8859-1 */ ++ {'Y', '-', 165}, /* ¥ */ ++ {'|', '|', 166}, /* ¦ */ ++ {'c', 'O', 169}, /* © */ ++ {'-', ',', 172}, /* ¬ */ ++ {'-', '=', 175}, /* ¯ */ ++ {'~', 'o', 176}, /* ° */ ++ {'2', '2', 178}, /* ² */ ++ {'3', '3', 179}, /* ³ */ ++ {'p', 'p', 182}, /* ¶ */ ++ {'~', '.', 183}, /* · */ ++ {'1', '1', 185}, /* ¹ */ ++ {'~', '?', 191}, /* ¿ */ ++ {'A', '`', 192}, /* À */ ++ {'A', '^', 194}, /* Â */ ++ {'A', '~', 195}, /* Ã */ ++ {'A', '"', 196}, /* Ä */ ++ {'A', '@', 197}, /* Å */ ++ {'E', '`', 200}, /* È */ ++ {'E', '^', 202}, /* Ê */ ++ {'E', '"', 203}, /* Ë */ ++ {'I', '`', 204}, /* Ì */ ++ {'I', '^', 206}, /* Î */ ++ {'I', '"', 207}, /* Ï */ ++ {'N', '~', 209}, /* Ñ */ ++ {'O', '`', 210}, /* Ò */ ++ {'O', '^', 212}, /* Ô */ ++ {'O', '~', 213}, /* Õ */ ++ {'/', '\\', 215}, /* × - multiplication symbol in ISO 8859-1 */ ++ {'U', '`', 217}, /* Ù */ ++ {'U', '^', 219}, /* Û */ ++ {'I', 'p', 222}, /* Þ */ ++ {'a', '`', 224}, /* à */ ++ {'a', '^', 226}, /* â */ ++ {'a', '~', 227}, /* ã */ ++ {'a', '"', 228}, /* ä */ ++ {'a', '@', 229}, /* å */ ++ {'e', '`', 232}, /* è */ ++ {'e', '^', 234}, /* ê */ ++ {'e', '"', 235}, /* ë */ ++ {'i', '`', 236}, /* ì */ ++ {'i', '^', 238}, /* î */ ++ {'n', '~', 241}, /* ñ */ ++ {'o', '`', 242}, /* ò */ ++ {'o', '^', 244}, /* ô */ ++ {'o', '~', 245}, /* õ */ ++ {'u', '`', 249}, /* ù */ ++ {'u', '^', 251}, /* û */ ++ {'y', '"', 255}, /* x XX */ ++ + {NUL, NUL, NUL} + }; + +*** ../vim-7.1.192/src/version.c Thu Jan 3 16:31:17 2008 +--- src/version.c Thu Jan 3 17:52:51 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 193, + /**/ + +-- +Futility Factor: No experiment is ever a complete failure - it can always +serve as a negative example. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.194 b/7.1.194 new file mode 100644 index 00000000..b05ca9ed --- /dev/null +++ b/7.1.194 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.194 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.194 +Problem: ":echo glob('~/{}')" results in /home/user//. +Solution: Don't add a slash if there already is one. +Files: src/os_unix.c + + +*** ../vim-7.1.193/src/os_unix.c Sat Dec 1 17:18:45 2007 +--- src/os_unix.c Thu Jan 3 18:52:22 2008 +*************** +*** 5482,5488 **** + { + STRCPY(p, (*file)[i]); + if (dir) +! STRCAT(p, "/"); /* add '/' to a directory name */ + (*file)[j++] = p; + } + } +--- 5482,5488 ---- + { + STRCPY(p, (*file)[i]); + if (dir) +! add_pathsep(p); /* add '/' to a directory name */ + (*file)[j++] = p; + } + } +*** ../vim-7.1.193/src/version.c Thu Jan 3 17:53:41 2008 +--- src/version.c Thu Jan 3 18:54:41 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 194, + /**/ + +-- +ARTHUR: Will you ask your master if he wants to join my court at Camelot?! +GUARD #1: But then of course African swallows are not migratory. +GUARD #2: Oh, yeah... +GUARD #1: So they couldn't bring a coconut back anyway... + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.195 b/7.1.195 new file mode 100644 index 00000000..37e3264f --- /dev/null +++ b/7.1.195 @@ -0,0 +1,75 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.195 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.195 +Problem: '0 mark doesn't work for "~/foo ~ foo". +Solution: Don't expand the whole file name, only "~/". +Files: src/mark.c + + +*** ../vim-7.1.194/src/mark.c Thu May 10 18:48:03 2007 +--- src/mark.c Thu Jan 3 20:17:29 2008 +*************** +*** 505,513 **** + { + /* + * First expand "~/" in the file name to the home directory. +! * Try to shorten the file name. + */ +! expand_env(fm->fname, NameBuff, MAXPATHL); + mch_dirname(IObuff, IOSIZE); + p = shorten_fname(NameBuff, IObuff); + +--- 505,528 ---- + { + /* + * First expand "~/" in the file name to the home directory. +! * Don't expand the whole name, it may contain other '~' chars. + */ +! if (fm->fname[0] == '~' && (fm->fname[1] == '/' +! #ifdef BACKSLASH_IN_FILENAME +! || fm->fname[1] == '\\' +! #endif +! )) +! { +! int len; +! +! expand_env((char_u *)"~/", NameBuff, MAXPATHL); +! len = STRLEN(NameBuff); +! vim_strncpy(NameBuff + len, fm->fname + 2, MAXPATHL - len - 1); +! } +! else +! vim_strncpy(NameBuff, fm->fname, MAXPATHL - 1); +! +! /* Try to shorten the file name. */ + mch_dirname(IObuff, IOSIZE); + p = shorten_fname(NameBuff, IObuff); + +*** ../vim-7.1.194/src/version.c Thu Jan 3 18:55:21 2008 +--- src/version.c Thu Jan 3 20:10:16 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 195, + /**/ + +-- +GUARD #2: Wait a minute -- supposing two swallows carried it together? +GUARD #1: No, they'd have to have it on a line. +GUARD #2: Well, simple! They'd just use a standard creeper! +GUARD #1: What, held under the dorsal guiding feathers? +GUARD #2: Well, why not? + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.196 b/7.1.196 new file mode 100644 index 00000000..087577a7 --- /dev/null +++ b/7.1.196 @@ -0,0 +1,90 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.196 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.196 (extra) +Problem: Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik + Falor) +Solution: Use the TTM_SETMAXTIPWIDTH message. +Files: src/gui_w32.c + + +*** ../vim-7.1.195/src/gui_w32.c Thu Aug 30 12:24:21 2007 +--- src/gui_w32.c Thu Jan 3 13:56:26 2008 +*************** +*** 987,992 **** +--- 987,997 ---- + { + LPNMTTDISPINFOW lpdi = (LPNMTTDISPINFOW)lParam; + ++ /* Set the maximum width, this also enables using ++ * \n for line break. */ ++ SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, ++ 0, 500); ++ + tt_text = enc_to_ucs2(str, NULL); + lpdi->lpszText = tt_text; + /* can't show tooltip if failed */ +*************** +*** 996,1001 **** +--- 1001,1011 ---- + { + LPNMTTDISPINFO lpdi = (LPNMTTDISPINFO)lParam; + ++ /* Set the maximum width, this also enables using ++ * \n for line break. */ ++ SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, ++ 0, 500); ++ + if (STRLEN(str) < sizeof(lpdi->szText) + || ((tt_text = vim_strsave(str)) == NULL)) + vim_strncpy(lpdi->szText, str, +*************** +*** 4734,4745 **** + cur_beval->showState = ShS_NEUTRAL; + break; + case TTN_GETDISPINFO: +! { +! /* if you get there then we have new common controls */ +! NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh; +! info->lpszText = (LPSTR)info->lParam; +! info->uFlags |= TTF_DI_SETITEM; +! } + break; + } + } +--- 4744,4755 ---- + cur_beval->showState = ShS_NEUTRAL; + break; + case TTN_GETDISPINFO: +! { +! /* if you get there then we have new common controls */ +! NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh; +! info->lpszText = (LPSTR)info->lParam; +! info->uFlags |= TTF_DI_SETITEM; +! } + break; + } + } +*** ../vim-7.1.195/src/version.c Thu Jan 3 20:21:34 2008 +--- src/version.c Thu Jan 3 20:43:22 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 196, + /**/ + +-- +Shit makes the flowers grow and that's beautiful + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.197 b/7.1.197 new file mode 100644 index 00000000..e9b58c23 --- /dev/null +++ b/7.1.197 @@ -0,0 +1,62 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.197 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.197 +Problem: Mac: "make install" doesn't work when prefix defined. +Solution: Pass different arguments to "make installruntime". (Jjgod Jiang) +Files: src/Makefile + + +*** ../vim-7.1.196/src/Makefile Thu Jan 3 20:44:40 2008 +--- src/Makefile Thu Jan 3 18:30:02 2008 +*************** +*** 2559,2566 **** + # -mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin + srcdir=`pwd`; $(MAKE) -f Makefile installruntime \ + VIMEXE=$$srcdir/$(VIMTARGET) \ +! prefix=$(DESTDIR)$(prefix)/$(RESDIR)/vim \ +! VIMRTLOC=$(DESTDIR)$(prefix)/$(RESDIR)/vim/runtime + # Put the link back. + ln -s `pwd`/../runtime $(RESDIR)/vim + # Copy rgb.txt, Mac doesn't always have X11 +--- 2564,2574 ---- + # -mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin + srcdir=`pwd`; $(MAKE) -f Makefile installruntime \ + VIMEXE=$$srcdir/$(VIMTARGET) \ +! prefix=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR) \ +! exec_prefix=$(DESTDIR)$(prefix)/$(APPDIR)/Contents \ +! BINDIR=$(DESTDIR)$(prefix)/$(APPDIR)/Contents/MacOS \ +! VIMLOC=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR) \ +! VIMRTLOC=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR)/runtime + # Put the link back. + ln -s `pwd`/../runtime $(RESDIR)/vim + # Copy rgb.txt, Mac doesn't always have X11 +*** ../vim-7.1.196/src/version.c Thu Jan 3 20:44:35 2008 +--- src/version.c Fri Jan 4 11:52:46 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 197, + /**/ + +-- +CUSTOMER: Well, can you hang around a couple of minutes? He won't be + long. +MORTICIAN: Naaah, I got to go on to Robinson's -- they've lost nine today. +CUSTOMER: Well, when is your next round? +MORTICIAN: Thursday. +DEAD PERSON: I think I'll go for a walk. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.198 b/7.1.198 new file mode 100644 index 00000000..d5c6f14d --- /dev/null +++ b/7.1.198 @@ -0,0 +1,51 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.198 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.198 +Problem: Hang when using ":s/\n//gn". (Burak Gorkemli) +Solution: Set "skip_match". +Files: src/ex_cmds.c + + +*** ../vim-7.1.197/src/ex_cmds.c Wed Jan 2 13:58:17 2008 +--- src/ex_cmds.c Fri Jan 4 14:46:34 2008 +*************** +*** 4575,4580 **** +--- 4575,4581 ---- + { + matchcol = (colnr_T)STRLEN(sub_firstline); + nmatch = 1; ++ skip_match = TRUE; + } + sub_nsubs++; + did_sub = TRUE; +*** ../vim-7.1.197/src/version.c Fri Jan 4 11:54:11 2008 +--- src/version.c Fri Jan 4 14:52:09 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 198, + /**/ + +-- + [clop clop] +ARTHUR: Old woman! +DENNIS: Man! +ARTHUR: Man, sorry. What knight lives in that castle over there? +DENNIS: I'm thirty seven. +ARTHUR: What? +DENNIS: I'm thirty seven -- I'm not old! + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.199 b/7.1.199 new file mode 100644 index 00000000..18d731e6 --- /dev/null +++ b/7.1.199 @@ -0,0 +1,105 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.199 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.199 +Problem: Can't do command line completion for a specific file name + extension. +Solution: When the pattern ends in "$" don't add a star for completion and + remove the "$" before matching with file names. +Files: runtime/doc/cmdline.txt, src/ex_getln.c + + +*** ../vim-7.1.198/runtime/doc/cmdline.txt Sat May 12 15:38:39 2007 +--- runtime/doc/cmdline.txt Fri Jan 4 15:13:06 2008 +*************** +*** 1,4 **** +! *cmdline.txt* For Vim version 7.1. Last change: 2006 Jul 18 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *cmdline.txt* For Vim version 7.1. Last change: 2008 Jan 04 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 316,322 **** + command-line is shown. (Note: the shifted arrow keys do not work on all + terminals) + +! *his* *:history* + :his[tory] Print the history of last entered commands. + {not in Vi} + {not available when compiled without the |+cmdline_hist| +--- 316,322 ---- + command-line is shown. (Note: the shifted arrow keys do not work on all + terminals) + +! *:his* *:history* + :his[tory] Print the history of last entered commands. + {not in Vi} + {not available when compiled without the |+cmdline_hist| +*************** +*** 447,452 **** +--- 447,457 ---- + + To completely ignore files with some extension use 'wildignore'. + ++ To match only files that end at the end of the typed text append a "$". For ++ example, to match only files that end in ".c": > ++ :e *.c$ ++ This will not match a file ending in ".cpp". Without the "$" it does match. ++ + The old value of an option can be obtained by hitting 'wildchar' just after + the '='. For example, typing 'wildchar' after ":set dir=" will insert the + current value of 'dir'. This overrules file name completion for the options +*** ../vim-7.1.198/src/ex_getln.c Wed Jan 2 21:54:33 2008 +--- src/ex_getln.c Fri Jan 4 15:05:31 2008 +*************** +*** 4078,4083 **** +--- 4078,4084 ---- + * ~ would be at the start of the file name, but not the tail. + * $ could be anywhere in the tail. + * ` could be anywhere in the file name. ++ * When the name ends in '$' don't add a star, remove the '$'. + */ + tail = gettail(retval); + if ((*retval != '~' || tail != retval) +*************** +*** 4085,4090 **** +--- 4086,4093 ---- + && vim_strchr(tail, '$') == NULL + && vim_strchr(retval, '`') == NULL) + retval[len++] = '*'; ++ else if (len > 0 && retval[len - 1] == '$') ++ --len; + retval[len] = NUL; + } + } +*** ../vim-7.1.198/src/version.c Fri Jan 4 14:52:14 2008 +--- src/version.c Fri Jan 4 15:14:29 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 199, + /**/ + +-- +ARTHUR: Well, I can't just call you `Man'. +DENNIS: Well, you could say `Dennis'. +ARTHUR: Well, I didn't know you were called `Dennis.' +DENNIS: Well, you didn't bother to find out, did you? + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.200 b/7.1.200 new file mode 100644 index 00000000..8a0a1261 --- /dev/null +++ b/7.1.200 @@ -0,0 +1,74 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.200 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.200 (after 7.1.177 and 7.1.182) +Problem: Compiler warnings for uninitialized variables. +Solution: Init variables. +Files: src/ex_cmds2.c, src/ex_docmd.c + + +*** ../vim-7.1.199/src/ex_cmds2.c Tue Jan 1 14:16:42 2008 +--- src/ex_cmds2.c Fri Jan 4 15:55:54 2008 +*************** +*** 94,100 **** + int save_redir_off = redir_off; + tasave_T typeaheadbuf; + int typeahead_saved = FALSE; +! int save_ignore_script; + # ifdef FEAT_EX_EXTRA + int save_ex_normal_busy; + # endif +--- 94,100 ---- + int save_redir_off = redir_off; + tasave_T typeaheadbuf; + int typeahead_saved = FALSE; +! int save_ignore_script = 0; + # ifdef FEAT_EX_EXTRA + int save_ex_normal_busy; + # endif +*** ../vim-7.1.199/src/ex_docmd.c Wed Jan 2 21:07:32 2008 +--- src/ex_docmd.c Fri Jan 4 15:57:28 2008 +*************** +*** 9765,9771 **** + win_T *tab_firstwin; + frame_T *tab_topframe; + int cur_arg_idx = 0; +! int next_arg_idx; + + if (ssop_flags & SSOP_BUFFERS) + only_save_windows = FALSE; /* Save ALL buffers */ +--- 9766,9772 ---- + win_T *tab_firstwin; + frame_T *tab_topframe; + int cur_arg_idx = 0; +! int next_arg_idx = 0; + + if (ssop_flags & SSOP_BUFFERS) + only_save_windows = FALSE; /* Save ALL buffers */ +*** ../vim-7.1.199/src/version.c Fri Jan 4 15:16:57 2008 +--- src/version.c Fri Jan 4 15:59:46 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 200, + /**/ + +-- +ARTHUR: I did say sorry about the `old woman,' but from the behind you + looked-- +DENNIS: What I object to is you automatically treat me like an inferior! +ARTHUR: Well, I AM king... + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.201 b/7.1.201 new file mode 100644 index 00000000..6742191b --- /dev/null +++ b/7.1.201 @@ -0,0 +1,87 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.201 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.201 +Problem: When reading stdin 'fenc' and 'ff are not set. +Solution: Set the options after reading stdin. (Ben Schmidt) +Files: src/fileio.c + + +*** ../vim-7.1.200/src/fileio.c Wed Jan 2 21:07:32 2008 +--- src/fileio.c Fri Jan 4 16:18:27 2008 +*************** +*** 221,231 **** + { + int fd = 0; + int newfile = (flags & READ_NEW); +- int set_options = newfile || (eap != NULL && eap->read_edit); + int check_readonly; + int filtering = (flags & READ_FILTER); + int read_stdin = (flags & READ_STDIN); + int read_buffer = (flags & READ_BUFFER); + linenr_T read_buf_lnum = 1; /* next line to read from curbuf */ + colnr_T read_buf_col = 0; /* next char to read from this line */ + char_u c; +--- 221,232 ---- + { + int fd = 0; + int newfile = (flags & READ_NEW); + int check_readonly; + int filtering = (flags & READ_FILTER); + int read_stdin = (flags & READ_STDIN); + int read_buffer = (flags & READ_BUFFER); ++ int set_options = newfile || read_buffer ++ || (eap != NULL && eap->read_edit); + linenr_T read_buf_lnum = 1; /* next line to read from curbuf */ + colnr_T read_buf_col = 0; /* next char to read from this line */ + char_u c; +*************** +*** 650,657 **** + + if (set_options) + { +! curbuf->b_p_eol = TRUE; +! curbuf->b_start_eol = TRUE; + #ifdef FEAT_MBYTE + curbuf->b_p_bomb = FALSE; + curbuf->b_start_bomb = FALSE; +--- 651,663 ---- + + if (set_options) + { +! /* Don't change 'eol' if reading from buffer as it will already be +! * correctly set when reading stdin. */ +! if (!read_buffer) +! { +! curbuf->b_p_eol = TRUE; +! curbuf->b_start_eol = TRUE; +! } + #ifdef FEAT_MBYTE + curbuf->b_p_bomb = FALSE; + curbuf->b_start_bomb = FALSE; +*** ../vim-7.1.200/src/version.c Fri Jan 4 16:00:10 2008 +--- src/version.c Fri Jan 4 16:27:01 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 201, + /**/ + +-- +A mathematician is a device for turning coffee into theorems. + Paul Erdos +A computer programmer is a device for turning coffee into bugs. + Bram Moolenaar + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.202 b/7.1.202 new file mode 100644 index 00000000..5e7006de --- /dev/null +++ b/7.1.202 @@ -0,0 +1,83 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.202 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.202 +Problem: Incomplete utf-8 byte sequence is not checked for validity. +Solution: Check the bytes that are present for being valid. (Ben Schmidt) +Files: src/mbyte.c + + +*** ../vim-7.1.201/src/mbyte.c Thu Aug 30 13:51:52 2007 +--- src/mbyte.c Fri Jan 4 17:30:16 2008 +*************** +*** 1642,1648 **** + * Get the length of UTF-8 byte sequence "p[size]". Does not include any + * following composing characters. + * Returns 1 for "". +! * Returns 1 for an illegal byte sequence. + * Returns number > "size" for an incomplete byte sequence. + */ + int +--- 1642,1648 ---- + * Get the length of UTF-8 byte sequence "p[size]". Does not include any + * following composing characters. + * Returns 1 for "". +! * Returns 1 for an illegal byte sequence (also in incomplete byte seq.). + * Returns number > "size" for an incomplete byte sequence. + */ + int +*************** +*** 1652,1664 **** + { + int len; + int i; + + if (*p == NUL) + return 1; +! len = utf8len_tab[*p]; + if (len > size) +! return len; /* incomplete byte sequence. */ +! for (i = 1; i < len; ++i) + if ((p[i] & 0xc0) != 0x80) + return 1; + return len; +--- 1652,1665 ---- + { + int len; + int i; ++ int m; + + if (*p == NUL) + return 1; +! m = len = utf8len_tab[*p]; + if (len > size) +! m = size; /* incomplete byte sequence. */ +! for (i = 1; i < m; ++i) + if ((p[i] & 0xc0) != 0x80) + return 1; + return len; +*** ../vim-7.1.201/src/version.c Fri Jan 4 16:30:40 2008 +--- src/version.c Fri Jan 4 17:45:33 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 202, + /**/ + +-- +A computer programmer is a device for turning requirements into +undocumented features. It runs on cola, pizza and Dilbert cartoons. + Bram Moolenaar + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.203 b/7.1.203 new file mode 100644 index 00000000..92703946 --- /dev/null +++ b/7.1.203 @@ -0,0 +1,68 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.203 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.203 +Problem: When 'virtualedit' is "onemore" then "99|" works but ":normal 99|" + doesn't. (Andy Wokula) +Solution: Check for "onemore" flag in check_cursor_col(). +Files: src/misc2.c + + +*** ../vim-7.1.202/src/misc2.c Sat Nov 24 21:27:33 2007 +--- src/misc2.c Fri Jan 4 21:24:46 2008 +*************** +*** 507,517 **** + curwin->w_cursor.col = 0; + else if (curwin->w_cursor.col >= len) + { +! /* Allow cursor past end-of-line in Insert mode, restarting Insert +! * mode or when in Visual mode and 'selection' isn't "old" */ + if ((State & INSERT) || restart_edit + #ifdef FEAT_VISUAL + || (VIsual_active && *p_sel != 'o') + #endif + || virtual_active()) + curwin->w_cursor.col = len; +--- 508,523 ---- + curwin->w_cursor.col = 0; + else if (curwin->w_cursor.col >= len) + { +! /* Allow cursor past end-of-line when: +! * - in Insert mode or restarting Insert mode +! * - in Visual mode and 'selection' isn't "old" +! * - 'virtualedit' is set */ + if ((State & INSERT) || restart_edit + #ifdef FEAT_VISUAL + || (VIsual_active && *p_sel != 'o') ++ #endif ++ #ifdef FEAT_VIRTUALEDIT ++ || (ve_flags & VE_ONEMORE) + #endif + || virtual_active()) + curwin->w_cursor.col = len; +*** ../vim-7.1.202/src/version.c Fri Jan 4 17:46:46 2008 +--- src/version.c Fri Jan 4 21:22:29 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 203, + /**/ + +-- +`When any government, or any church for that matter, undertakes to say to + its subjects, "This you may not read, this you must not see, this you are + forbidden to know," the end result is tyranny and oppression no matter how + holy the motives' -- Robert A Heinlein, "If this goes on --" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.204 b/7.1.204 new file mode 100644 index 00000000..085e88f5 --- /dev/null +++ b/7.1.204 @@ -0,0 +1,74 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.204 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.204 (extra) +Problem: Win32: Using the example at 'balloonexpr' the balloon disappears + after four seconds and then comes back again. Also moves the + mouse pointer a little bit. (Yongwei Wu) +Solution: Set the autopop time to 30 seconds (the max value). (Sergey + Khorev) Move the mouse two pixels forward and one back to end up + in the same position (really!). +Files: src/gui_w32.c + + + +*** ../vim-7.1.203/src/gui_w32.c Thu Jan 3 20:44:35 2008 +--- src/gui_w32.c Sat Jan 5 13:09:56 2008 +*************** +*** 4575,4585 **** + SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)pti); + /* Make tooltip appear sooner */ + SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_INITIAL, 10); + /* + * HACK: force tooltip to appear, because it'll not appear until + * first mouse move. D*mn M$ + */ +! mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, 0); + mouse_event(MOUSEEVENTF_MOVE, (DWORD)-1, (DWORD)-1, 0, 0); + vim_free(pti); + } +--- 4575,4589 ---- + SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)pti); + /* Make tooltip appear sooner */ + SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_INITIAL, 10); ++ /* I've performed some tests and it seems the longest possible life time ++ * of tooltip is 30 seconds */ ++ SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_AUTOPOP, 30000); + /* + * HACK: force tooltip to appear, because it'll not appear until + * first mouse move. D*mn M$ ++ * Amazingly moving (2, 2) and then (-1, -1) the mouse doesn't move. + */ +! mouse_event(MOUSEEVENTF_MOVE, 2, 2, 0, 0); + mouse_event(MOUSEEVENTF_MOVE, (DWORD)-1, (DWORD)-1, 0, 0); + vim_free(pti); + } +*** ../vim-7.1.203/src/version.c Fri Jan 4 21:25:01 2008 +--- src/version.c Sat Jan 5 13:12:22 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 204, + /**/ + +-- +WOMAN: I didn't know we had a king. I thought we were an autonomous + collective. +DENNIS: You're fooling yourself. We're living in a dictatorship. A + self-perpetuating autocracy in which the working classes-- +WOMAN: Oh there you go, bringing class into it again. +DENNIS: That's what it's all about if only people would-- + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.205 b/7.1.205 new file mode 100644 index 00000000..a1c15ed7 --- /dev/null +++ b/7.1.205 @@ -0,0 +1,181 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.205 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.205 +Problem: Can't get the operator in an ":omap". +Solution: Add the "v:operator" variable. (Ben Schmidt) +Files: runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h + + +*** ../vim-7.1.204/runtime/doc/eval.txt Tue Sep 25 17:54:41 2007 +--- runtime/doc/eval.txt Fri Jan 4 20:38:55 2008 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.1. Last change: 2007 Sep 25 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 04 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1401,1410 **** + This is the screen column number, like with |virtcol()|. The + value is zero when there was no mouse button click. + + *v:prevcount* *prevcount-variable* + v:prevcount The count given for the last but one Normal mode command. + This is the v:count value of the previous command. Useful if +! you want to cancel Visual mode and then use the count. > + :vmap % :call MyFilter(v:prevcount) + < Read-only. + +--- 1401,1424 ---- + This is the screen column number, like with |virtcol()|. The + value is zero when there was no mouse button click. + ++ *v:operator* *operator-variable* ++ v:operator The last operator given in Normal mode. This is a single ++ character except for commands starting with or , ++ in which case it is two characters. Best used alongside ++ |v:prevcount| and |v:register|. Useful if you want to cancel ++ Operator-pending mode and then use the operator, e.g.: > ++ :omap O :call MyMotion(v:operator) ++ < The value remains set until another operator is entered, thus ++ don't expect it to be empty. ++ v:operator is not set for |:delete|, |:yank| or other Ex ++ commands. ++ Read-only. ++ + *v:prevcount* *prevcount-variable* + v:prevcount The count given for the last but one Normal mode command. + This is the v:count value of the previous command. Useful if +! you want to cancel Visual or Operator-pending mode and then +! use the count, e.g.: > + :vmap % :call MyFilter(v:prevcount) + < Read-only. + +*** ../vim-7.1.204/src/eval.c Fri Dec 7 17:08:35 2007 +--- src/eval.c Sat Jan 5 13:22:52 2008 +*************** +*** 345,350 **** +--- 345,351 ---- + {VV_NAME("mouse_win", VAR_NUMBER), 0}, + {VV_NAME("mouse_lnum", VAR_NUMBER), 0}, + {VV_NAME("mouse_col", VAR_NUMBER), 0}, ++ {VV_NAME("operator", VAR_STRING), VV_RO}, + }; + + /* shorthand */ +*** ../vim-7.1.204/src/normal.c Thu Jan 3 13:19:50 2008 +--- src/normal.c Fri Jan 4 20:53:43 2008 +*************** +*** 141,146 **** +--- 141,149 ---- + static void nv_Undo __ARGS((cmdarg_T *cap)); + static void nv_tilde __ARGS((cmdarg_T *cap)); + static void nv_operator __ARGS((cmdarg_T *cap)); ++ #ifdef FEAT_EVAL ++ static void set_op_var __ARGS((int optype)); ++ #endif + static void nv_lineop __ARGS((cmdarg_T *cap)); + static void nv_home __ARGS((cmdarg_T *cap)); + static void nv_pipe __ARGS((cmdarg_T *cap)); +*************** +*** 7180,7185 **** +--- 7183,7191 ---- + { + cap->oap->start = curwin->w_cursor; + cap->oap->op_type = OP_DELETE; ++ #ifdef FEAT_EVAL ++ set_op_var(OP_DELETE); ++ #endif + cap->count1 = 1; + nv_dollar(cap); + finish_op = TRUE; +*************** +*** 8219,8226 **** +--- 8225,8257 ---- + { + cap->oap->start = curwin->w_cursor; + cap->oap->op_type = op_type; ++ #ifdef FEAT_EVAL ++ set_op_var(op_type); ++ #endif ++ } ++ } ++ ++ #ifdef FEAT_EVAL ++ /* ++ * Set v:operator to the characters for "optype". ++ */ ++ static void ++ set_op_var(optype) ++ int optype; ++ { ++ char_u opchars[3]; ++ ++ if (optype == OP_NOP) ++ set_vim_var_string(VV_OP, NULL, 0); ++ else ++ { ++ opchars[0] = get_op_char(optype); ++ opchars[1] = get_extra_op_char(optype); ++ opchars[2] = NUL; ++ set_vim_var_string(VV_OP, opchars, -1); + } + } ++ #endif + + /* + * Handle linewise operator "dd", "yy", etc. +*** ../vim-7.1.204/src/vim.h Sat Aug 11 13:57:31 2007 +--- src/vim.h Fri Jan 4 19:11:31 2008 +*************** +*** 1688,1694 **** + #define VV_MOUSE_WIN 49 + #define VV_MOUSE_LNUM 50 + #define VV_MOUSE_COL 51 +! #define VV_LEN 52 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +--- 1688,1695 ---- + #define VV_MOUSE_WIN 49 + #define VV_MOUSE_LNUM 50 + #define VV_MOUSE_COL 51 +! #define VV_OP 52 +! #define VV_LEN 53 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +*** ../vim-7.1.204/src/version.c Sat Jan 5 13:15:08 2008 +--- src/version.c Sat Jan 5 13:31:49 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 205, + /**/ + +-- +ARTHUR: Then who is your lord? +WOMAN: We don't have a lord. +ARTHUR: What? +DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in + turns to act as a sort of executive officer for the week. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.206 b/7.1.206 new file mode 100644 index 00000000..4531a002 --- /dev/null +++ b/7.1.206 @@ -0,0 +1,59 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.206 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.206 +Problem: Compiler warnings when using MODIFIED_BY. +Solution: Add type casts. (Ben Schmidt) +Files: src/version.c + + +*** ../vim-7.1.205/src/version.c Sat Jan 5 13:34:01 2008 +--- src/version.c Sat Jan 5 13:56:55 2008 +*************** +*** 1587,1595 **** + + if (*mesg == ' ') + { +! vim_strncpy(modby, _("Modified by "), MODBY_LEN - 1); + l = STRLEN(modby); +! vim_strncpy(modby + l, MODIFIED_BY, MODBY_LEN - l - 1); + mesg = modby; + } + #endif +--- 1589,1597 ---- + + if (*mesg == ' ') + { +! vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1); + l = STRLEN(modby); +! vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1); + mesg = modby; + } + #endif +*** ../vim-7.1.205/src/version.c Sat Jan 5 13:34:01 2008 +--- src/version.c Sat Jan 5 13:56:55 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 206, + /**/ + +-- +ARTHUR: I am your king! +WOMAN: Well, I didn't vote for you. +ARTHUR: You don't vote for kings. +WOMAN: Well, 'ow did you become king then? + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.207 b/7.1.207 new file mode 100644 index 00000000..1eba2ccf --- /dev/null +++ b/7.1.207 @@ -0,0 +1,253 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.207 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.207 +Problem: Netbeans: "remove" cannot delete one line. +Solution: Remove partial lines and whole lines properly. Avoid a memory + leak. (Xavier de Gaye) +Files: src/netbeans.c + + +*** ../vim-7.1.206/src/netbeans.c Thu May 10 18:40:48 2007 +--- src/netbeans.c Sat Jan 5 18:03:24 2008 +*************** +*** 1204,1209 **** +--- 1204,1257 ---- + return result; + } + ++ /* ++ * Remove from "first" byte to "last" byte (inclusive), at line "lnum" of the ++ * current buffer. Remove to end of line when "last" is MAXCOL. ++ */ ++ static void ++ nb_partialremove(linenr_T lnum, colnr_T first, colnr_T last) ++ { ++ char_u *oldtext, *newtext; ++ int oldlen; ++ int lastbyte = last; ++ ++ oldtext = ml_get(lnum); ++ oldlen = STRLEN(oldtext); ++ if (first >= oldlen || oldlen == 0) /* just in case */ ++ return; ++ if (lastbyte >= oldlen) ++ lastbyte = oldlen - 1; ++ newtext = alloc(oldlen - (int)(lastbyte - first)); ++ if (newtext != NULL) ++ { ++ mch_memmove(newtext, oldtext, first); ++ mch_memmove(newtext + first, oldtext + lastbyte + 1, STRLEN(oldtext + lastbyte + 1) + 1); ++ nbdebug((" NEW LINE %d: %s\n", lnum, newtext)); ++ ml_replace(lnum, newtext, FALSE); ++ } ++ } ++ ++ /* ++ * Replace the "first" line with the concatenation of the "first" and ++ * the "other" line. The "other" line is not removed. ++ */ ++ static void ++ nb_joinlines(linenr_T first, linenr_T other) ++ { ++ int len_first, len_other; ++ char_u *p; ++ ++ len_first = STRLEN(ml_get(first)); ++ len_other = STRLEN(ml_get(other)); ++ p = alloc((unsigned)(len_first + len_other + 1)); ++ if (p != NULL) ++ { ++ mch_memmove(p, ml_get(first), len_first); ++ mch_memmove(p + len_first, ml_get(other), len_other + 1); ++ ml_replace(first, p, FALSE); ++ } ++ } ++ + #define SKIP_STOP 2 + #define streq(a,b) (strcmp(a,b) == 0) + static int needupdate = 0; +*************** +*** 1371,1376 **** +--- 1419,1426 ---- + long count; + pos_T first, last; + pos_T *pos; ++ pos_T *next; ++ linenr_T del_from_lnum, del_to_lnum; /* lines to be deleted as a whole */ + int oldFire = netbeansFireChanges; + int oldSuppress = netbeansSuppressNoLines; + int wasChanged; +*************** +*** 1420,1444 **** + } + last = *pos; + nbdebug((" LAST POS: line %d, col %d\n", last.lnum, last.col)); +! curwin->w_cursor = first; + doupdate = 1; + +! /* keep part of first line */ +! if (first.lnum == last.lnum && first.col != last.col) + { +! /* deletion is within one line */ +! char_u *p = ml_get(first.lnum); +! mch_memmove(p + first.col, p + last.col + 1, STRLEN(p + last.col) + 1); +! nbdebug((" NEW LINE %d: %s\n", first.lnum, p)); +! ml_replace(first.lnum, p, TRUE); + } + +! if (first.lnum < last.lnum) + { + int i; + + /* delete signs from the lines being deleted */ +! for (i = first.lnum; i <= last.lnum; i++) + { + int id = buf_findsign_id(buf->bufp, (linenr_T)i); + if (id > 0) +--- 1470,1544 ---- + } + last = *pos; + nbdebug((" LAST POS: line %d, col %d\n", last.lnum, last.col)); +! del_from_lnum = first.lnum; +! del_to_lnum = last.lnum; + doupdate = 1; + +! /* Get the position of the first byte after the deleted +! * section. "next" is NULL when deleting to the end of the +! * file. */ +! next = off2pos(buf->bufp, off + count); +! +! /* Remove part of the first line. */ +! if (first.col != 0 || (next != NULL && first.lnum == next->lnum)) + { +! if (first.lnum != last.lnum +! || (next != NULL && first.lnum != next->lnum)) +! { +! /* remove to the end of the first line */ +! nb_partialremove(first.lnum, first.col, +! (colnr_T)MAXCOL); +! if (first.lnum == last.lnum) +! { +! /* Partial line to remove includes the end of +! * line. Join the line with the next one, have +! * the next line deleted below. */ +! nb_joinlines(first.lnum, next->lnum); +! del_to_lnum = next->lnum; +! } +! } +! else +! { +! /* remove within one line */ +! nb_partialremove(first.lnum, first.col, last.col); +! } +! ++del_from_lnum; /* don't delete the first line */ +! } +! +! /* Remove part of the last line. */ +! if (first.lnum != last.lnum && next != NULL +! && next->col != 0 && last.lnum == next->lnum) +! { +! nb_partialremove(last.lnum, 0, last.col); +! if (del_from_lnum > first.lnum) +! { +! /* Join end of last line to start of first line; last +! * line is deleted below. */ +! nb_joinlines(first.lnum, last.lnum); +! } +! else +! /* First line is deleted as a whole, keep the last +! * line. */ +! --del_to_lnum; + } + +! /* First is partial line; last line to remove includes +! * the end of line; join first line to line following last +! * line; line following last line is deleted below. */ +! if (first.lnum != last.lnum && del_from_lnum > first.lnum +! && next != NULL && last.lnum != next->lnum) +! { +! nb_joinlines(first.lnum, next->lnum); +! del_to_lnum = next->lnum; +! } +! +! /* Delete whole lines if there are any. */ +! if (del_to_lnum >= del_from_lnum) + { + int i; + + /* delete signs from the lines being deleted */ +! for (i = del_from_lnum; i <= del_to_lnum; i++) + { + int id = buf_findsign_id(buf->bufp, (linenr_T)i); + if (id > 0) +*************** +*** 1450,1459 **** + nbdebug((" No sign on line %d\n", i)); + } + +! /* delete whole lines */ +! nbdebug((" Deleting lines %d through %d\n", first.lnum, last.lnum)); +! del_lines(last.lnum - first.lnum + 1, FALSE); + } + buf->bufp->b_changed = wasChanged; /* logically unchanged */ + netbeansFireChanges = oldFire; + netbeansSuppressNoLines = oldSuppress; +--- 1550,1564 ---- + nbdebug((" No sign on line %d\n", i)); + } + +! nbdebug((" Deleting lines %d through %d\n", del_from_lnum, del_to_lnum)); +! curwin->w_cursor.lnum = del_from_lnum; +! curwin->w_cursor.col = 0; +! del_lines(del_to_lnum - del_from_lnum + 1, FALSE); + } ++ ++ /* Leave cursor at first deleted byte. */ ++ curwin->w_cursor = first; ++ check_cursor_lnum(); + buf->bufp->b_changed = wasChanged; /* logically unchanged */ + netbeansFireChanges = oldFire; + netbeansSuppressNoLines = oldSuppress; +*************** +*** 2374,2381 **** + * the current buffer as "buf". + */ + static void +! nb_set_curbuf(buf) +! buf_T *buf; + { + if (curbuf != buf && buf_jump_open_win(buf) == NULL) + set_curbuf(buf, DOBUF_GOTO); +--- 2479,2485 ---- + * the current buffer as "buf". + */ + static void +! nb_set_curbuf(buf_T *buf) + { + if (curbuf != buf && buf_jump_open_win(buf) == NULL) + set_curbuf(buf, DOBUF_GOTO); +*** ../vim-7.1.206/src/version.c Sat Jan 5 13:58:48 2008 +--- src/version.c Sat Jan 5 18:06:04 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 207, + /**/ + +-- +Q: How many hardware engineers does it take to change a lightbulb? +A: None. We'll fix it in software. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.208 b/7.1.208 new file mode 100644 index 00000000..44f6633b --- /dev/null +++ b/7.1.208 @@ -0,0 +1,69 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.208 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.208 +Problem: On Alpha get an unaligned access error. +Solution: Store the dictitem pointer before using it. (Matthew Luckie) +Files: src/eval.c + + +*** ../vim-7.1.207/src/eval.c Sat Jan 5 13:34:01 2008 +--- src/eval.c Sat Jan 5 13:22:52 2008 +*************** +*** 3407,3412 **** +--- 3407,3413 ---- + hashtab_T *ht; + hashitem_T *hi; + char_u *varname; ++ dictitem_T *di; + + ht = find_var_ht(name, &varname); + if (ht != NULL && *varname != NUL) +*************** +*** 3414,3422 **** + hi = hash_find(ht, varname); + if (!HASHITEM_EMPTY(hi)) + { +! if (var_check_fixed(HI2DI(hi)->di_flags, name)) +! return FAIL; +! if (var_check_ro(HI2DI(hi)->di_flags, name)) + return FAIL; + delete_var(ht, hi); + return OK; +--- 3415,3423 ---- + hi = hash_find(ht, varname); + if (!HASHITEM_EMPTY(hi)) + { +! di = HI2DI(hi); +! if (var_check_fixed(di->di_flags, name) +! || var_check_ro(di->di_flags, name)) + return FAIL; + delete_var(ht, hi); + return OK; +*** ../vim-7.1.207/src/version.c Sat Jan 5 18:06:33 2008 +--- src/version.c Sat Jan 5 22:14:17 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 208, + /**/ + +-- +ARTHUR: Bloody peasant! +DENNIS: Oh, what a give away. Did you here that, did you here that, eh? + That's what I'm on about -- did you see him repressing me, you saw it + didn't you? + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.209 b/7.1.209 new file mode 100644 index 00000000..c62d2398 --- /dev/null +++ b/7.1.209 @@ -0,0 +1,71 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.209 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.209 +Problem: GTK: When using the netrw plugin and doing ":gui" Vim hangs. +Solution: Stop getting a selection after three seconds. This is a hack. +Files: src/gui_gtk_x11.c + + +*** ../vim-7.1.208/src/gui_gtk_x11.c Fri Oct 19 14:32:50 2007 +--- src/gui_gtk_x11.c Sun Jan 6 15:15:52 2008 +*************** +*** 6660,6665 **** +--- 6660,6666 ---- + unsigned i; + int nbytes; + char_u *buffer; ++ time_t start; + + for (i = 0; i < N_SELECTION_TARGETS; ++i) + { +*************** +*** 6670,6676 **** + cbd->gtk_sel_atom, target, + (guint32)GDK_CURRENT_TIME); + +! while (received_selection == RS_NONE) + gtk_main(); /* wait for selection_received_cb */ + + if (received_selection != RS_FAIL) +--- 6671,6681 ---- + cbd->gtk_sel_atom, target, + (guint32)GDK_CURRENT_TIME); + +! /* Hack: Wait up to three seconds for the selection. A hang was +! * noticed here when using the netrw plugin combined with ":gui" +! * during the FocusGained event. */ +! start = time(NULL); +! while (received_selection == RS_NONE && time(NULL) < start + 3) + gtk_main(); /* wait for selection_received_cb */ + + if (received_selection != RS_FAIL) +*** ../vim-7.1.208/src/version.c Sat Jan 5 22:15:21 2008 +--- src/version.c Sun Jan 6 15:14:48 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 209, + /**/ + +-- +BLACK KNIGHT: I move for no man. +ARTHUR: So be it! + [hah] [parry thrust] + [ARTHUR chops the BLACK KNIGHT's left arm off] +ARTHUR: Now stand aside, worthy adversary. +BLACK KNIGHT: 'Tis but a scratch. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.210 b/7.1.210 new file mode 100644 index 00000000..aa92ccdd --- /dev/null +++ b/7.1.210 @@ -0,0 +1,74 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.210 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.210 +Problem: Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony + Mechelynck) +Solution: Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte. +Files: src/mbyte.c + + +*** ../vim-7.1.209/src/mbyte.c Fri Jan 4 17:46:46 2008 +--- src/mbyte.c Sun Jan 6 17:13:51 2008 +*************** +*** 2863,2877 **** + buf[m++] = K_SPECIAL; + n += 2; + } + # ifdef FEAT_GUI +! else if (str[n] == CSI + && str[n + 1] == KS_EXTRA + && str[n + 2] == (int)KE_CSI) + { + buf[m++] = CSI; + n += 2; + } +- # endif + else if (str[n] == K_SPECIAL + # ifdef FEAT_GUI + || str[n] == CSI +--- 2882,2898 ---- + buf[m++] = K_SPECIAL; + n += 2; + } ++ else if ((str[n] == K_SPECIAL + # ifdef FEAT_GUI +! || str[n] == CSI +! # endif +! ) + && str[n + 1] == KS_EXTRA + && str[n + 2] == (int)KE_CSI) + { + buf[m++] = CSI; + n += 2; + } + else if (str[n] == K_SPECIAL + # ifdef FEAT_GUI + || str[n] == CSI +*** ../vim-7.1.209/src/version.c Sun Jan 6 15:16:12 2008 +--- src/version.c Sun Jan 6 17:17:25 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 210, + /**/ + +-- +ARTHUR: A scratch? Your arm's off! +BLACK KNIGHT: No, it isn't. +ARTHUR: Well, what's that then? +BLACK KNIGHT: I've had worse. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.211 b/7.1.211 new file mode 100644 index 00000000..38e3ea1d --- /dev/null +++ b/7.1.211 @@ -0,0 +1,748 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.211 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.211 +Problem: The matchparen plugin may take an unexpected amount of time, so + that it looks like Vim hangs. +Solution: Add a timeout to searchpair(), searchpairpos(), search() and + searchpos(). Use half a second timeout in the plugin. +Files: runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c, + src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c, + src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro, + src/search.c + + +*** ../vim-7.1.210/runtime/doc/eval.txt Sat Jan 5 13:34:01 2008 +--- runtime/doc/eval.txt Sun Jan 6 16:27:33 2008 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 04 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 06 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1733,1746 **** + repeat( {expr}, {count}) String repeat {expr} {count} times + resolve( {filename}) String get filename a shortcut points to + reverse( {list}) List reverse {list} in-place +! search( {pattern} [, {flags}]) Number search for {pattern} + searchdecl({name} [, {global} [, {thisblock}]]) + Number search for variable declaration +! searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]]) + Number search for other end of start/end pair +! searchpairpos( {start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]]) + List search for other end of start/end pair +! searchpos( {pattern} [, {flags} [, {stopline}]]) + List search for {pattern} + server2client( {clientid}, {string}) + Number send reply string +--- 1733,1747 ---- + repeat( {expr}, {count}) String repeat {expr} {count} times + resolve( {filename}) String get filename a shortcut points to + reverse( {list}) List reverse {list} in-place +! search( {pattern} [, {flags} [, {stopline} [, {timeout}]]]) +! Number search for {pattern} + searchdecl({name} [, {global} [, {thisblock}]]) + Number search for variable declaration +! searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [...]]]) + Number search for other end of start/end pair +! searchpairpos( {start}, {middle}, {end} [, {flags} [, {skip} [...]]]) + List search for other end of start/end pair +! searchpos( {pattern} [, {flags} [, {stopline} [, {timeout}]]]) + List search for {pattern} + server2client( {clientid}, {string}) + Number send reply string +*************** +*** 4212,4218 **** + If you want a list to remain unmodified make a copy first: > + :let revlist = reverse(copy(mylist)) + +! search({pattern} [, {flags} [, {stopline}]]) *search()* + Search for regexp pattern {pattern}. The search starts at the + cursor position (you can use |cursor()| to set it). + +--- 4216,4222 ---- + If you want a list to remain unmodified make a copy first: > + :let revlist = reverse(copy(mylist)) + +! search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()* + Search for regexp pattern {pattern}. The search starts at the + cursor position (you can use |cursor()| to set it). + +*************** +*** 4240,4245 **** +--- 4244,4257 ---- + let end = search('END', '', line("w$")) + < When {stopline} is used and it is not zero this also implies + that the search does not wrap around the end of the file. ++ A zero value is equal to not giving the argument. ++ ++ When the {timeout} argument is given the search stops when ++ more than this many milli seconds have passed. Thus when ++ {timeout} is 500 the search stops after half a second. ++ The value must not be negative. A zero value is like not ++ giving the argument. ++ {only available when compiled with the +reltime feature} + + If there is no match a 0 is returned and the cursor doesn't + move. No error message is given. +*************** +*** 4302,4308 **** + endif + < + *searchpair()* +! searchpair({start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]]) + Search for the match of a nested start-end pair. This can be + used to find the "endif" that matches an "if", while other + if/endif pairs in between are ignored. +--- 4314,4321 ---- + endif + < + *searchpair()* +! searchpair({start}, {middle}, {end} [, {flags} [, {skip} +! [, {stopline} [, {timeout}]]]]) + Search for the match of a nested start-end pair. This can be + used to find the "endif" that matches an "if", while other + if/endif pairs in between are ignored. +*************** +*** 4337,4343 **** + When evaluating {skip} causes an error the search is aborted + and -1 returned. + +! For {stopline} see |search()|. + + The value of 'ignorecase' is used. 'magic' is ignored, the + patterns are used like it's on. +--- 4350,4356 ---- + When evaluating {skip} causes an error the search is aborted + and -1 returned. + +! For {stopline} and {timeout} see |search()|. + + The value of 'ignorecase' is used. 'magic' is ignored, the + patterns are used like it's on. +*************** +*** 4383,4389 **** + \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"') + < + *searchpairpos()* +! searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]]) + Same as searchpair(), but returns a |List| with the line and + column position of the match. The first element of the |List| + is the line number and the second element is the byte index of +--- 4396,4403 ---- + \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"') + < + *searchpairpos()* +! searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} +! [, {stopline} [, {timeout}]]]]) + Same as searchpair(), but returns a |List| with the line and + column position of the match. The first element of the |List| + is the line number and the second element is the byte index of +*************** +*** 4394,4400 **** + < + See |match-parens| for a bigger and more useful example. + +! searchpos({pattern} [, {flags} [, {stopline}]]) *searchpos()* + Same as |search()|, but returns a |List| with the line and + column position of the match. The first element of the |List| + is the line number and the second element is the byte index of +--- 4408,4414 ---- + < + See |match-parens| for a bigger and more useful example. + +! searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *searchpos()* + Same as |search()|, but returns a |List| with the line and + column position of the match. The first element of the |List| + is the line number and the second element is the byte index of +*** ../vim-7.1.210/runtime/plugin/matchparen.vim Sat Aug 18 18:20:57 2007 +--- runtime/plugin/matchparen.vim Sun Jan 6 16:22:39 2008 +*************** +*** 1,6 **** + " Vim plugin for showing matching parens + " Maintainer: Bram Moolenaar +! " Last Change: 2007 Aug 8 + + " Exit quickly when: + " - this plugin was already loaded (or disabled) +--- 1,6 ---- + " Vim plugin for showing matching parens + " Maintainer: Bram Moolenaar +! " Last Change: 2008 Jan 06 + + " Exit quickly when: + " - this plugin was already loaded (or disabled) +*************** +*** 111,117 **** + \ '=~? "string\\|character\\|singlequote\\|comment"' + execute 'if' s_skip '| let s_skip = 0 | endif' + +! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) + + if before > 0 + call winrestview(save_cursor) +--- 111,122 ---- + \ '=~? "string\\|character\\|singlequote\\|comment"' + execute 'if' s_skip '| let s_skip = 0 | endif' + +! try +! " Limit the search time to 500 msec to avoid a hang on very long lines. +! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, 500) +! catch /E118/ +! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) +! endtry + + if before > 0 + call winrestview(save_cursor) +*** ../vim-7.1.210/src/edit.c Wed Jan 2 22:08:43 2008 +--- src/edit.c Sun Jan 6 16:08:00 2008 +*************** +*** 4062,4068 **** + found_new_match = searchit(NULL, ins_buf, pos, + compl_direction, + compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG, +! RE_LAST, (linenr_T)0); + --msg_silent; + if (!compl_started) + { +--- 4062,4068 ---- + found_new_match = searchit(NULL, ins_buf, pos, + compl_direction, + compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG, +! RE_LAST, (linenr_T)0, NULL); + --msg_silent; + if (!compl_started) + { +*** ../vim-7.1.210/src/eval.c Sat Jan 5 22:15:21 2008 +--- src/eval.c Sun Jan 6 16:37:42 2008 +*************** +*** 7213,7223 **** + {"repeat", 2, 2, f_repeat}, + {"resolve", 1, 1, f_resolve}, + {"reverse", 1, 1, f_reverse}, +! {"search", 1, 3, f_search}, + {"searchdecl", 1, 3, f_searchdecl}, +! {"searchpair", 3, 6, f_searchpair}, +! {"searchpairpos", 3, 6, f_searchpairpos}, +! {"searchpos", 1, 3, f_searchpos}, + {"server2client", 2, 2, f_server2client}, + {"serverlist", 0, 0, f_serverlist}, + {"setbufvar", 3, 3, f_setbufvar}, +--- 7213,7223 ---- + {"repeat", 2, 2, f_repeat}, + {"resolve", 1, 1, f_resolve}, + {"reverse", 1, 1, f_reverse}, +! {"search", 1, 4, f_search}, + {"searchdecl", 1, 3, f_searchdecl}, +! {"searchpair", 3, 7, f_searchpair}, +! {"searchpairpos", 3, 7, f_searchpairpos}, +! {"searchpos", 1, 4, f_searchpos}, + {"server2client", 2, 2, f_server2client}, + {"serverlist", 0, 0, f_serverlist}, + {"setbufvar", 3, 3, f_setbufvar}, +*************** +*** 14020,14025 **** +--- 14020,14029 ---- + int dir; + int retval = 0; /* default: FAIL */ + long lnum_stop = 0; ++ proftime_T tm; ++ #ifdef FEAT_RELTIME ++ long time_limit = 0; ++ #endif + int options = SEARCH_KEEP; + int subpatnum; + +*************** +*** 14033,14047 **** + if (flags & SP_END) + options |= SEARCH_END; + +! /* Optional extra argument: line number to stop searching. */ +! if (argvars[1].v_type != VAR_UNKNOWN +! && argvars[2].v_type != VAR_UNKNOWN) + { + lnum_stop = get_tv_number_chk(&argvars[2], NULL); + if (lnum_stop < 0) + goto theend; + } + + /* + * This function does not accept SP_REPEAT and SP_RETCOUNT flags. + * Check to make sure only those flags are set. +--- 14037,14063 ---- + if (flags & SP_END) + options |= SEARCH_END; + +! /* Optional arguments: line number to stop searching and timeout. */ +! if (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN) + { + lnum_stop = get_tv_number_chk(&argvars[2], NULL); + if (lnum_stop < 0) + goto theend; ++ #ifdef FEAT_RELTIME ++ if (argvars[3].v_type != VAR_UNKNOWN) ++ { ++ time_limit = get_tv_number_chk(&argvars[3], NULL); ++ if (time_limit < 0) ++ goto theend; ++ } ++ #endif + } + ++ #ifdef FEAT_RELTIME ++ /* Set the time limit, if there is one. */ ++ profile_setlimit(time_limit, &tm); ++ #endif ++ + /* + * This function does not accept SP_REPEAT and SP_RETCOUNT flags. + * Check to make sure only those flags are set. +*************** +*** 14057,14063 **** + + pos = save_cursor = curwin->w_cursor; + subpatnum = searchit(curwin, curbuf, &pos, dir, pat, 1L, +! options, RE_SEARCH, (linenr_T)lnum_stop); + if (subpatnum != FAIL) + { + if (flags & SP_SUBPAT) +--- 14073,14079 ---- + + pos = save_cursor = curwin->w_cursor; + subpatnum = searchit(curwin, curbuf, &pos, dir, pat, 1L, +! options, RE_SEARCH, (linenr_T)lnum_stop, &tm); + if (subpatnum != FAIL) + { + if (flags & SP_SUBPAT) +*************** +*** 14147,14152 **** +--- 14163,14169 ---- + char_u nbuf3[NUMBUFLEN]; + int retval = 0; /* default: FAIL */ + long lnum_stop = 0; ++ long time_limit = 0; + + /* Get the three pattern arguments: start, middle, end. */ + spat = get_tv_string_chk(&argvars[0]); +*************** +*** 14182,14194 **** + lnum_stop = get_tv_number_chk(&argvars[5], NULL); + if (lnum_stop < 0) + goto theend; + } + } + if (skip == NULL) + goto theend; /* type error */ + + retval = do_searchpair(spat, mpat, epat, dir, skip, flags, +! match_pos, lnum_stop); + + theend: + p_ws = save_p_ws; +--- 14199,14219 ---- + lnum_stop = get_tv_number_chk(&argvars[5], NULL); + if (lnum_stop < 0) + goto theend; ++ #ifdef FEAT_RELTIME ++ if (argvars[6].v_type != VAR_UNKNOWN) ++ { ++ time_limit = get_tv_number_chk(&argvars[6], NULL); ++ if (time_limit < 0) ++ goto theend; ++ } ++ #endif + } + } + if (skip == NULL) + goto theend; /* type error */ + + retval = do_searchpair(spat, mpat, epat, dir, skip, flags, +! match_pos, lnum_stop, time_limit); + + theend: + p_ws = save_p_ws; +*************** +*** 14240,14246 **** + * Returns 0 or -1 for no match, + */ + long +! do_searchpair(spat, mpat, epat, dir, skip, flags, match_pos, lnum_stop) + char_u *spat; /* start pattern */ + char_u *mpat; /* middle pattern */ + char_u *epat; /* end pattern */ +--- 14265,14272 ---- + * Returns 0 or -1 for no match, + */ + long +! do_searchpair(spat, mpat, epat, dir, skip, flags, match_pos, +! lnum_stop, time_limit) + char_u *spat; /* start pattern */ + char_u *mpat; /* middle pattern */ + char_u *epat; /* end pattern */ +*************** +*** 14249,14254 **** +--- 14275,14281 ---- + int flags; /* SP_SETPCMARK and other SP_ values */ + pos_T *match_pos; + linenr_T lnum_stop; /* stop at this line if not zero */ ++ long time_limit; /* stop after this many msec */ + { + char_u *save_cpo; + char_u *pat, *pat2 = NULL, *pat3 = NULL; +*************** +*** 14263,14273 **** +--- 14290,14306 ---- + int nest = 1; + int err; + int options = SEARCH_KEEP; ++ proftime_T tm; + + /* Make 'cpoptions' empty, the 'l' flag should not be used here. */ + save_cpo = p_cpo; + p_cpo = (char_u *)""; + ++ #ifdef FEAT_RELTIME ++ /* Set the time limit, if there is one. */ ++ profile_setlimit(time_limit, &tm); ++ #endif ++ + /* Make two search patterns: start/end (pat2, for in nested pairs) and + * start/middle/end (pat3, for the top pair). */ + pat2 = alloc((unsigned)(STRLEN(spat) + STRLEN(epat) + 15)); +*************** +*** 14291,14297 **** + for (;;) + { + n = searchit(curwin, curbuf, &pos, dir, pat, 1L, +! options, RE_SEARCH, lnum_stop); + if (n == FAIL || (firstpos.lnum != 0 && equalpos(pos, firstpos))) + /* didn't find it or found the first match again: FAIL */ + break; +--- 14324,14330 ---- + for (;;) + { + n = searchit(curwin, curbuf, &pos, dir, pat, 1L, +! options, RE_SEARCH, lnum_stop, &tm); + if (n == FAIL || (firstpos.lnum != 0 && equalpos(pos, firstpos))) + /* didn't find it or found the first match again: FAIL */ + break; +*** ../vim-7.1.210/src/ex_cmds2.c Fri Jan 4 16:00:10 2008 +--- src/ex_cmds2.c Sun Jan 6 18:22:28 2008 +*************** +*** 895,913 **** + sprintf(buf, "%10.6lf", (double)tm->QuadPart / (double)fr.QuadPart); + # else + sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec); +! #endif + return buf; + } + +! # endif /* FEAT_PROFILE || FEAT_RELTIME */ + +- # if defined(FEAT_PROFILE) || defined(PROTO) + /* +! * Functions for profiling. + */ +! static void script_do_profile __ARGS((scriptitem_T *si)); +! static void script_dump_profile __ARGS((FILE *fd)); +! static proftime_T prof_wait_time; + + /* + * Set the time in "tm" to zero. +--- 895,955 ---- + sprintf(buf, "%10.6lf", (double)tm->QuadPart / (double)fr.QuadPart); + # else + sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec); +! # endif + return buf; + } + +! /* +! * Put the time "msec" past now in "tm". +! */ +! void +! profile_setlimit(msec, tm) +! long msec; +! proftime_T *tm; +! { +! if (msec <= 0) /* no limit */ +! profile_zero(tm); +! else +! { +! # ifdef WIN3264 +! LARGE_INTEGER fr; +! +! QueryPerformanceCounter(tm); +! QueryPerformanceFrequency(&fr); +! tm->QuadPart += (double)msec / 1000.0 * (double)fr.QuadPart; +! # else +! long usec; +! +! gettimeofday(tm, NULL); +! usec = (long)tm->tv_usec + (long)msec * 1000; +! tm->tv_usec = usec % 1000000L; +! tm->tv_sec += usec / 1000000L; +! # endif +! } +! } + + /* +! * Return TRUE if the current time is past "tm". + */ +! int +! profile_passed_limit(tm) +! proftime_T *tm; +! { +! proftime_T now; +! +! # ifdef WIN3264 +! if (tm->QuadPart == 0) /* timer was not set */ +! return FALSE; +! QueryPerformanceCounter(&now); +! return (now.QuadPart > tm->QuadPart); +! # else +! if (tm->tv_sec == 0) /* timer was not set */ +! return FALSE; +! gettimeofday(&now, NULL); +! return (now.tv_sec > tm->tv_sec +! || (now.tv_sec == tm->tv_sec && now.tv_usec > tm->tv_usec)); +! # endif +! } + + /* + * Set the time in "tm" to zero. +*************** +*** 923,928 **** +--- 965,980 ---- + tm->tv_sec = 0; + # endif + } ++ ++ # endif /* FEAT_PROFILE || FEAT_RELTIME */ ++ ++ # if defined(FEAT_PROFILE) || defined(PROTO) ++ /* ++ * Functions for profiling. ++ */ ++ static void script_do_profile __ARGS((scriptitem_T *si)); ++ static void script_dump_profile __ARGS((FILE *fd)); ++ static proftime_T prof_wait_time; + + /* + * Add the time "tm2" to "tm". +*** ../vim-7.1.210/src/ex_docmd.c Fri Jan 4 16:00:10 2008 +--- src/ex_docmd.c Sun Jan 6 16:08:29 2008 +*************** +*** 3979,3985 **** + *cmd == '?' ? BACKWARD : FORWARD, + (char_u *)"", 1L, + SEARCH_MSG + SEARCH_START, +! i, (linenr_T)0) != FAIL) + lnum = pos.lnum; + else + { +--- 3980,3986 ---- + *cmd == '?' ? BACKWARD : FORWARD, + (char_u *)"", 1L, + SEARCH_MSG + SEARCH_START, +! i, (linenr_T)0, NULL) != FAIL) + lnum = pos.lnum; + else + { +*** ../vim-7.1.210/src/normal.c Sat Jan 5 13:34:01 2008 +--- src/normal.c Sun Jan 6 16:08:54 2008 +*************** +*** 4194,4200 **** + for (;;) + { + t = searchit(curwin, curbuf, &curwin->w_cursor, FORWARD, +! pat, 1L, searchflags, RE_LAST, (linenr_T)0); + if (curwin->w_cursor.lnum >= old_pos.lnum) + t = FAIL; /* match after start is failure too */ + +--- 4194,4200 ---- + for (;;) + { + t = searchit(curwin, curbuf, &curwin->w_cursor, FORWARD, +! pat, 1L, searchflags, RE_LAST, (linenr_T)0, NULL); + if (curwin->w_cursor.lnum >= old_pos.lnum) + t = FAIL; /* match after start is failure too */ + +*** ../vim-7.1.210/src/proto/eval.pro Sun May 6 15:18:09 2007 +--- src/proto/eval.pro Sun Jan 6 15:55:47 2008 +*************** +*** 54,60 **** + long get_dict_number __ARGS((dict_T *d, char_u *key)); + char_u *get_function_name __ARGS((expand_T *xp, int idx)); + char_u *get_expr_name __ARGS((expand_T *xp, int idx)); +! long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop)); + void set_vim_var_nr __ARGS((int idx, long val)); + long get_vim_var_nr __ARGS((int idx)); + char_u *get_vim_var_str __ARGS((int idx)); +--- 54,60 ---- + long get_dict_number __ARGS((dict_T *d, char_u *key)); + char_u *get_function_name __ARGS((expand_T *xp, int idx)); + char_u *get_expr_name __ARGS((expand_T *xp, int idx)); +! long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit)); + void set_vim_var_nr __ARGS((int idx, long val)); + long get_vim_var_nr __ARGS((int idx)); + char_u *get_vim_var_str __ARGS((int idx)); +*** ../vim-7.1.210/src/proto/ex_cmds2.pro Sat May 5 20:21:13 2007 +--- src/proto/ex_cmds2.pro Sun Jan 6 16:42:24 2008 +*************** +*** 14,19 **** +--- 14,21 ---- + void profile_end __ARGS((proftime_T *tm)); + void profile_sub __ARGS((proftime_T *tm, proftime_T *tm2)); + char *profile_msg __ARGS((proftime_T *tm)); ++ void profile_setlimit __ARGS((long msec, proftime_T *tm)); ++ int profile_passed_limit __ARGS((proftime_T *tm)); + void profile_zero __ARGS((proftime_T *tm)); + void profile_add __ARGS((proftime_T *tm, proftime_T *tm2)); + void profile_self __ARGS((proftime_T *self, proftime_T *total, proftime_T *children)); +*** ../vim-7.1.210/src/proto/search.pro Wed Aug 8 22:48:16 2007 +--- src/proto/search.pro Sun Jan 6 16:11:53 2008 +*************** +*** 10,16 **** + void reset_search_dir __ARGS((void)); + void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast)); + void last_pat_prog __ARGS((regmmatch_T *regmatch)); +! int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum)); + int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options)); + int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat)); + int searchc __ARGS((cmdarg_T *cap, int t_cmd)); +--- 10,16 ---- + void reset_search_dir __ARGS((void)); + void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast)); + void last_pat_prog __ARGS((regmmatch_T *regmatch)); +! int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm)); + int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options)); + int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat)); + int searchc __ARGS((cmdarg_T *cap, int t_cmd)); +*** ../vim-7.1.210/src/search.c Tue Jan 1 15:42:45 2008 +--- src/search.c Sun Jan 6 18:23:37 2008 +*************** +*** 494,501 **** + * When FEAT_EVAL is defined, returns the index of the first matching + * subpattern plus one; one if there was none. + */ + int +! searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum) + win_T *win; /* window to search in; can be NULL for a + buffer without a window! */ + buf_T *buf; +--- 494,502 ---- + * When FEAT_EVAL is defined, returns the index of the first matching + * subpattern plus one; one if there was none. + */ ++ /*ARGSUSED*/ + int +! searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm) + win_T *win; /* window to search in; can be NULL for a + buffer without a window! */ + buf_T *buf; +*************** +*** 506,511 **** +--- 507,513 ---- + int options; + int pat_use; /* which pattern to use when "pat" is empty */ + linenr_T stop_lnum; /* stop after this line number when != 0 */ ++ proftime_T *tm; /* timeout limit or NULL */ + { + int found; + linenr_T lnum; /* no init to shut up Apollo cc */ +*************** +*** 594,599 **** +--- 596,606 ---- + if (stop_lnum != 0 && (dir == FORWARD + ? lnum > stop_lnum : lnum < stop_lnum)) + break; ++ #ifdef FEAT_RELTIME ++ /* Stop after passing the "tm" time limit. */ ++ if (tm != NULL && profile_passed_limit(tm)) ++ break; ++ #endif + + /* + * Look for a match somewhere in line "lnum". +*************** +*** 1249,1255 **** + (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS + + SEARCH_MSG + SEARCH_START + + ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))), +! RE_LAST, (linenr_T)0); + + if (dircp != NULL) + *dircp = dirc; /* restore second '/' or '?' for normal_cmd() */ +--- 1256,1262 ---- + (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS + + SEARCH_MSG + SEARCH_START + + ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))), +! RE_LAST, (linenr_T)0, NULL); + + if (dircp != NULL) + *dircp = dirc; /* restore second '/' or '?' for normal_cmd() */ +*************** +*** 3780,3786 **** + if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|\\_s\\=>\\)", + (char_u *)"", + (char_u *)"]*>", BACKWARD, (char_u *)"", 0, +! NULL, (linenr_T)0) <= 0) + { + curwin->w_cursor = old_pos; + goto theend; +--- 3787,3793 ---- + if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|\\_s\\=>\\)", + (char_u *)"", + (char_u *)"]*>", BACKWARD, (char_u *)"", 0, +! NULL, (linenr_T)0, 0L) <= 0) + { + curwin->w_cursor = old_pos; + goto theend; +*************** +*** 3814,3820 **** + sprintf((char *)epat, "\\c", len, p); + + r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"", +! 0, NULL, (linenr_T)0); + + vim_free(spat); + vim_free(epat); +--- 3821,3827 ---- + sprintf((char *)epat, "\\c", len, p); + + r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"", +! 0, NULL, (linenr_T)0, 0L); + + vim_free(spat); + vim_free(epat); +*** ../vim-7.1.210/src/version.c Sun Jan 6 17:18:16 2008 +--- src/version.c Sun Jan 6 20:00:03 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 211, + /**/ + +-- +No letters of the alphabet were harmed in the creation of this message. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.212 b/7.1.212 new file mode 100644 index 00000000..a9aa7f55 --- /dev/null +++ b/7.1.212 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.212 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.212 +Problem: Accessing a byte before a line. +Solution: Check that the column is 1 or more. (Dominuque Pelle) +Files: src/edit.c + + +*** ../vim-7.1.211/src/edit.c Sun Jan 6 20:05:36 2008 +--- src/edit.c Mon Jan 7 22:31:36 2008 +*************** +*** 8452,8457 **** +--- 8452,8458 ---- + if ( mode == BACKSPACE_CHAR + && ((p_sta && in_indent) + || (curbuf->b_p_sts != 0 ++ && curwin->w_cursor.col > 0 + && (*(ml_get_cursor() - 1) == TAB + || (*(ml_get_cursor() - 1) == ' ' + && (!*inserted_space_p +*** ../vim-7.1.211/src/version.c Sun Jan 6 20:05:36 2008 +--- src/version.c Wed Jan 9 10:11:49 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 212, + /**/ + +-- +CRONE: Who sent you? +ARTHUR: The Knights Who Say Ni! +CRONE: Aaaagh! (she looks around in rear) No! We have no shrubberies here. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.213 b/7.1.213 new file mode 100644 index 00000000..aee3248d --- /dev/null +++ b/7.1.213 @@ -0,0 +1,57 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.213 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.213 +Problem: A ":tabedit" command that results in the "swap file exists" dialog + and selecting "abort" doesn't close the new tab. (Al Budden) +Solution: Pass "old_curwin" to do_exedit(). +Files: src/ex_docmd.c + + +*** ../vim-7.1.212/src/ex_docmd.c Sun Jan 6 20:05:36 2008 +--- src/ex_docmd.c Wed Jan 9 20:11:13 2008 +*************** +*** 7126,7132 **** + : eap->addr_count == 0 ? 0 + : (int)eap->line2 + 1) != FAIL) + { +! do_exedit(eap, NULL); + + /* set the alternate buffer for the window we came from */ + if (curwin != old_curwin +--- 7127,7133 ---- + : eap->addr_count == 0 ? 0 + : (int)eap->line2 + 1) != FAIL) + { +! do_exedit(eap, old_curwin); + + /* set the alternate buffer for the window we came from */ + if (curwin != old_curwin +*** ../vim-7.1.212/src/version.c Wed Jan 9 10:13:24 2008 +--- src/version.c Wed Jan 9 20:29:09 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 213, + /**/ + +-- +Q: What do you call a fish without an eye? +A: fsh! +Q: What do you call a deer with no eyes? +A: no eye deer. +Q: What do you call a deer with no eyes and no legs? +A: still no eye deer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.214 b/7.1.214 new file mode 100644 index 00000000..83786675 --- /dev/null +++ b/7.1.214 @@ -0,0 +1,266 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.214 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.214 +Problem: ":1s/g\n\zs1//" deletes characters from the first line. (A Politz) +Solution: Start replacing in the line where the match starts. +Files: src/ex_cmds.c + + +*** ../vim-7.1.213/src/ex_cmds.c Fri Jan 4 14:52:14 2008 +--- src/ex_cmds.c Wed Jan 9 22:32:26 2008 +*************** +*** 4200,4206 **** + linenr_T old_line_count = curbuf->b_ml.ml_line_count; + linenr_T line2; + long nmatch; /* number of lines in match */ +- linenr_T sub_firstlnum; /* nr of first sub line */ + char_u *sub_firstline; /* allocated copy of first sub line */ + int endcolumn = FALSE; /* cursor in last column when done */ + pos_T old_cursor = curwin->w_cursor; +--- 4200,4205 ---- +*************** +*** 4447,4453 **** + #endif + ); ++lnum) + { +- sub_firstlnum = lnum; + nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0); + if (nmatch) + { +--- 4446,4451 ---- +*************** +*** 4463,4468 **** +--- 4461,4467 ---- + long nmatch_tl = 0; /* nr of lines matched below lnum */ + int do_again; /* do it again after joining lines */ + int skip_match = FALSE; ++ linenr_T sub_firstlnum; /* nr of first sub line */ + + /* + * The new text is build up step by step, to avoid too much +*************** +*** 4482,4489 **** + * far. + * new_end The new text, where to append new text. + * +! * lnum The line number where we were looking for the +! * first match in the old line. + * sub_firstlnum The line number in the buffer where to look + * for a match. Can be different from "lnum" + * when the pattern or substitute string contains +--- 4481,4490 ---- + * far. + * new_end The new text, where to append new text. + * +! * lnum The line number where we found the start of +! * the match. Can be below the line we searched +! * when there is a \n before a \zs in the +! * pattern. + * sub_firstlnum The line number in the buffer where to look + * for a match. Can be different from "lnum" + * when the pattern or substitute string contains +*************** +*** 4507,4518 **** + * updating the screen or handling a multi-line match. The "old_" + * pointers point into this copy. + */ +! sub_firstline = vim_strsave(ml_get(sub_firstlnum)); +! if (sub_firstline == NULL) +! { +! vim_free(new_start); +! goto outofmem; +! } + copycol = 0; + matchcol = 0; + +--- 4508,4514 ---- + * updating the screen or handling a multi-line match. The "old_" + * pointers point into this copy. + */ +! sub_firstlnum = lnum; + copycol = 0; + matchcol = 0; + +*************** +*** 4533,4538 **** +--- 4529,4556 ---- + */ + for (;;) + { ++ /* Advance "lnum" to the line where the match starts. The ++ * match does not start in the first line when there is a line ++ * break before \zs. */ ++ if (regmatch.startpos[0].lnum > 0) ++ { ++ lnum += regmatch.startpos[0].lnum; ++ sub_firstlnum += regmatch.startpos[0].lnum; ++ nmatch -= regmatch.startpos[0].lnum; ++ vim_free(sub_firstline); ++ sub_firstline = NULL; ++ } ++ ++ if (sub_firstline == NULL) ++ { ++ sub_firstline = vim_strsave(ml_get(sub_firstlnum)); ++ if (sub_firstline == NULL) ++ { ++ vim_free(new_start); ++ goto outofmem; ++ } ++ } ++ + /* Save the line number of the last change for the final + * cursor position (just like Vi). */ + curwin->w_cursor.lnum = lnum; +*************** +*** 4638,4644 **** + temp = RedrawingDisabled; + RedrawingDisabled = 0; + +! search_match_lines = regmatch.endpos[0].lnum; + search_match_endcol = regmatch.endpos[0].col; + highlight_match = TRUE; + +--- 4656,4663 ---- + temp = RedrawingDisabled; + RedrawingDisabled = 0; + +! search_match_lines = regmatch.endpos[0].lnum +! - regmatch.startpos[0].lnum; + search_match_endcol = regmatch.endpos[0].col; + highlight_match = TRUE; + +*************** +*** 4749,4755 **** + * 3. substitute the string. + */ + /* get length of substitution part */ +! sublen = vim_regsub_multi(®match, sub_firstlnum, + sub, sub_firstline, FALSE, p_magic, TRUE); + + /* When the match included the "$" of the last line it may +--- 4768,4775 ---- + * 3. substitute the string. + */ + /* get length of substitution part */ +! sublen = vim_regsub_multi(®match, +! sub_firstlnum - regmatch.startpos[0].lnum, + sub, sub_firstline, FALSE, p_magic, TRUE); + + /* When the match included the "$" of the last line it may +*************** +*** 4819,4825 **** + mch_memmove(new_end, sub_firstline + copycol, (size_t)i); + new_end += i; + +! (void)vim_regsub_multi(®match, sub_firstlnum, + sub, new_end, TRUE, p_magic, TRUE); + sub_nsubs++; + did_sub = TRUE; +--- 4839,4846 ---- + mch_memmove(new_end, sub_firstline + copycol, (size_t)i); + new_end += i; + +! (void)vim_regsub_multi(®match, +! sub_firstlnum - regmatch.startpos[0].lnum, + sub, new_end, TRUE, p_magic, TRUE); + sub_nsubs++; + did_sub = TRUE; +*************** +*** 4908,4917 **** + skip: + /* We already know that we did the last subst when we are at + * the end of the line, except that a pattern like +! * "bar\|\nfoo" may match at the NUL. */ + lastone = (skip_match + || got_int + || got_quit + || !(do_all || do_again) + || (sub_firstline[matchcol] == NUL && nmatch <= 1 + && !re_multiline(regmatch.regprog))); +--- 4929,4941 ---- + skip: + /* We already know that we did the last subst when we are at + * the end of the line, except that a pattern like +! * "bar\|\nfoo" may match at the NUL. "lnum" can be below +! * "line2" when there is a \zs in the pattern after a line +! * break. */ + lastone = (skip_match + || got_int + || got_quit ++ || lnum > line2 + || !(do_all || do_again) + || (sub_firstline[matchcol] == NUL && nmatch <= 1 + && !re_multiline(regmatch.regprog))); +*************** +*** 4926,4937 **** + * When asking the user we like to show the already replaced + * text, but don't do it when "\<@=" or "\<@!" is used, it + * changes what matches. + */ + if (lastone + || (do_ask && !re_lookbehind(regmatch.regprog)) + || nmatch_tl > 0 + || (nmatch = vim_regexec_multi(®match, curwin, +! curbuf, sub_firstlnum, matchcol)) == 0) + { + if (new_start != NULL) + { +--- 4950,4964 ---- + * When asking the user we like to show the already replaced + * text, but don't do it when "\<@=" or "\<@!" is used, it + * changes what matches. ++ * When the match starts below where we start searching also ++ * need to replace the line first (using \zs after \n). + */ + if (lastone + || (do_ask && !re_lookbehind(regmatch.regprog)) + || nmatch_tl > 0 + || (nmatch = vim_regexec_multi(®match, curwin, +! curbuf, sub_firstlnum, matchcol)) == 0 +! || regmatch.startpos[0].lnum > 0) + { + if (new_start != NULL) + { +*************** +*** 5001,5007 **** +--- 5028,5041 ---- + * 5. break if there isn't another match in this line + */ + if (nmatch <= 0) ++ { ++ /* If the match found didn't start where we were ++ * searching, do the next search in the line where we ++ * found the match. */ ++ if (nmatch == -1) ++ lnum -= regmatch.startpos[0].lnum; + break; ++ } + } + + line_breakcheck(); +*** ../vim-7.1.213/src/version.c Wed Jan 9 20:29:51 2008 +--- src/version.c Wed Jan 9 22:37:47 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 214, + /**/ + +-- +Q: What's orange and sounds like a parrot? +A: A carrot + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.215 b/7.1.215 new file mode 100644 index 00000000..ea4a830a --- /dev/null +++ b/7.1.215 @@ -0,0 +1,198 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.215 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.215 +Problem: It is difficult to figure out what syntax items are nested at a + certain position. +Solution: Add the synstack() function. +Files: runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro, + src/syntax.c + + +*** ../vim-7.1.214/runtime/doc/eval.txt Sun Jan 6 20:05:36 2008 +--- runtime/doc/eval.txt Thu Jan 10 22:20:31 2008 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 06 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 10 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1786,1791 **** +--- 1786,1792 ---- + synIDattr( {synID}, {what} [, {mode}]) + String attribute {what} of syntax ID {synID} + synIDtrans( {synID}) Number translated syntax ID of {synID} ++ synstack({lnum}, {col}) List stack of syntax IDs at {lnum} and {col} + system( {expr} [, {input}]) String output of shell command/filter {expr} + tabpagebuflist( [{arg}]) List list of buffer numbers in tab page + tabpagenr( [{arg}]) Number number of current or last tab page +*************** +*** 4962,4967 **** +--- 4966,4989 ---- + highlight the character. Highlight links given with + ":highlight link" are followed. + ++ synstack({lnum}, {col}) *synstack()* ++ Return a |List|, which is the stack of syntax items at the ++ position {lnum} and {col} in the current window. Each item in ++ the List is an ID like what |synID()| returns. ++ The stack is the situation in between the character at "col" ++ and the next character. Note that a region of only one ++ character will not show up, it only exists inside that ++ character, not in between characters. ++ The first item in the List is the outer region, following are ++ items contained in that one. The last one is what |synID()| ++ returns, unless not the whole item is highlighted or it is a ++ transparent item. ++ This function is useful for debugging a syntax file. ++ Example that shows the syntax stack under the cursor: > ++ for id in synstack(line("."), col(".")) ++ echo synIDattr(id, "name") ++ endfor ++ + system({expr} [, {input}]) *system()* *E677* + Get the output of the shell command {expr}. + When {input} is given, this string is written to a file and +*** ../vim-7.1.214/src/eval.c Sun Jan 6 20:05:36 2008 +--- src/eval.c Wed Jan 9 13:42:56 2008 +*************** +*** 651,656 **** +--- 651,657 ---- + static void f_synID __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_synIDattr __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_synIDtrans __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_synstack __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_system __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_tabpagebuflist __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_tabpagenr __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 7252,7257 **** +--- 7253,7259 ---- + {"synID", 3, 3, f_synID}, + {"synIDattr", 2, 3, f_synIDattr}, + {"synIDtrans", 1, 1, f_synIDtrans}, ++ {"synstack", 2, 2, f_synstack}, + {"system", 1, 2, f_system}, + {"tabpagebuflist", 0, 1, f_tabpagebuflist}, + {"tabpagenr", 0, 1, f_tabpagenr}, +*************** +*** 15843,15848 **** +--- 15845,15890 ---- + id = 0; + + rettv->vval.v_number = id; ++ } ++ ++ /* ++ * "synstack(lnum, col)" function ++ */ ++ /*ARGSUSED*/ ++ static void ++ f_synstack(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ #ifdef FEAT_SYN_HL ++ long lnum; ++ long col; ++ int i; ++ int id; ++ #endif ++ ++ rettv->v_type = VAR_LIST; ++ rettv->vval.v_list = NULL; ++ ++ #ifdef FEAT_SYN_HL ++ lnum = get_tv_lnum(argvars); /* -1 on type error */ ++ col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */ ++ ++ if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count ++ && col >= 0 && col < (long)STRLEN(ml_get(lnum)) ++ && rettv_list_alloc(rettv) != FAIL) ++ { ++ (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL); ++ for (i = 0; ; ++i) ++ { ++ id = syn_get_stack_item(i); ++ if (id < 0) ++ break; ++ if (list_append_number(rettv->vval.v_list, id) == FAIL) ++ break; ++ } ++ } ++ #endif + } + + /* +*** ../vim-7.1.214/src/proto/syntax.pro Tue Jul 24 14:32:44 2007 +--- src/proto/syntax.pro Wed Jan 9 13:38:20 2008 +*************** +*** 13,18 **** +--- 13,19 ---- + void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg)); + char_u *get_syntax_name __ARGS((expand_T *xp, int idx)); + int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp)); ++ int syn_get_stack_item __ARGS((int i)); + int syn_get_foldlevel __ARGS((win_T *wp, long lnum)); + void init_highlight __ARGS((int both, int reset)); + int load_colors __ARGS((char_u *name)); +*** ../vim-7.1.214/src/syntax.c Sun Oct 7 15:21:31 2007 +--- src/syntax.c Wed Jan 9 15:17:47 2008 +*************** +*** 6104,6109 **** +--- 6102,6123 ---- + + return (trans ? current_trans_id : current_id); + } ++ ++ #if defined(FEAT_EVAL) || defined(PROTO) ++ /* ++ * Return the syntax ID at position "i" in the current stack. ++ * The caller must have called syn_get_id() before to fill the stack. ++ * Returns -1 when "i" is out of range. ++ */ ++ int ++ syn_get_stack_item(i) ++ int i; ++ { ++ if (i >= current_state.ga_len ) ++ return -1; ++ return CUR_STATE(i).si_id; ++ } ++ #endif + + #if defined(FEAT_FOLDING) || defined(PROTO) + /* +*** ../vim-7.1.214/src/version.c Wed Jan 9 22:39:55 2008 +--- src/version.c Thu Jan 10 22:17:38 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 215, + /**/ + +-- +TALL KNIGHT: We are now no longer the Knights Who Say Ni! +ONE KNIGHT: Ni! +OTHERS: Sh! +ONE KNIGHT: (whispers) Sorry. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.216 b/7.1.216 new file mode 100644 index 00000000..392d5d56 --- /dev/null +++ b/7.1.216 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.216 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.216 +Problem: Variants of --remote-tab are not mentioned for "vim --help". +Solution: Display optional -wait and -silent. +Files: src/main.c + + +*** ../vim-7.1.215/src/main.c Tue Sep 25 17:54:41 2007 +--- src/main.c Sun Dec 30 15:09:11 2007 +*************** +*** 3081,3087 **** + main_msg(_("--remote-wait As --remote but wait for files to have been edited")); + main_msg(_("--remote-wait-silent Same, don't complain if there is no server")); + # ifdef FEAT_WINDOWS +! main_msg(_("--remote-tab As --remote but open tab page for each file")); + # endif + main_msg(_("--remote-send \tSend to a Vim server and exit")); + main_msg(_("--remote-expr \tEvaluate in a Vim server and print result")); +--- 3081,3087 ---- + main_msg(_("--remote-wait As --remote but wait for files to have been edited")); + main_msg(_("--remote-wait-silent Same, don't complain if there is no server")); + # ifdef FEAT_WINDOWS +! main_msg(_("--remote-tab[-wait][-silent] As --remote but use tab page per file")); + # endif + main_msg(_("--remote-send \tSend to a Vim server and exit")); + main_msg(_("--remote-expr \tEvaluate in a Vim server and print result")); +*** ../vim-7.1.215/src/version.c Thu Jan 10 22:23:22 2008 +--- src/version.c Fri Jan 11 20:25:14 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 216, + /**/ + +-- +TIM: But follow only if you are men of valour. For the entrance to this cave + is guarded by a monster, a creature so foul and cruel that no man yet has + fought with it and lived. Bones of full fifty men lie strewn about its + lair ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.217 b/7.1.217 new file mode 100644 index 00000000..de40e64c --- /dev/null +++ b/7.1.217 @@ -0,0 +1,228 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.217 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.217 +Problem: The "help-tags" tag may be missing from runtime/doc/tags when it + was generated during "make install". +Solution: Add the "++t" argument to ":helptags" to force adding the tag. +Files: runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c, + src/ex_cmds.h + + +*** ../vim-7.1.216/runtime/doc/Makefile Sat May 5 19:14:15 2007 +--- runtime/doc/Makefile Fri Jan 11 20:55:34 2008 +*************** +*** 301,307 **** + # Use Vim to generate the tags file. Can only be used when Vim has been + # compiled and installed. Supports multiple languages. + vimtags: $(DOCS) +! $(VIMEXE) -u NONE -esX -c "helptags ." -c quit + + # Use "doctags" to generate the tags file. Only works for English! + tags: doctags $(DOCS) +--- 301,307 ---- + # Use Vim to generate the tags file. Can only be used when Vim has been + # compiled and installed. Supports multiple languages. + vimtags: $(DOCS) +! $(VIMEXE) -u NONE -esX -c "helptags ++t ." -c quit + + # Use "doctags" to generate the tags file. Only works for English! + tags: doctags $(DOCS) +*** ../vim-7.1.216/runtime/doc/various.txt Sat May 12 17:05:26 2007 +--- runtime/doc/various.txt Fri Jan 11 20:45:45 2008 +*************** +*** 1,4 **** +! *various.txt* For Vim version 7.1. Last change: 2007 Jan 14 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *various.txt* For Vim version 7.1. Last change: 2008 Jan 11 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 748,754 **** + + *:helpt* *:helptags* + *E154* *E150* *E151* *E152* *E153* *E670* +! :helpt[ags] {dir} Generate the help tags file(s) for directory {dir}. + All "*.txt" and "*.??x" files in the directory are + scanned for a help tag definition in between stars. + The "*.??x" files are for translated docs, they +--- 754,761 ---- + + *:helpt* *:helptags* + *E154* *E150* *E151* *E152* *E153* *E670* +! :helpt[ags] [++t] {dir} +! Generate the help tags file(s) for directory {dir}. + All "*.txt" and "*.??x" files in the directory are + scanned for a help tag definition in between stars. + The "*.??x" files are for translated docs, they +*************** +*** 756,761 **** +--- 763,771 ---- + The generated tags files are sorted. + When there are duplicates an error message is given. + An existing tags file is silently overwritten. ++ The optional "++t" argument forces adding the ++ "help-tags" tag. This is also done when the {dir} is ++ equal to $VIMRUNTIME/doc. + To rebuild the help tags in the runtime directory + (requires write permission there): > + :helptags $VIMRUNTIME/doc +*** ../vim-7.1.216/src/ex_cmds.c Wed Jan 9 22:39:55 2008 +--- src/ex_cmds.c Fri Jan 11 20:47:13 2008 +*************** +*** 6091,6097 **** + } + + #if defined(FEAT_EX_EXTRA) || defined(PROTO) +! static void helptags_one __ARGS((char_u *dir, char_u *ext, char_u *lang)); + + /* + * ":helptags" +--- 6091,6097 ---- + } + + #if defined(FEAT_EX_EXTRA) || defined(PROTO) +! static void helptags_one __ARGS((char_u *dir, char_u *ext, char_u *lang, int add_help_tags)); + + /* + * ":helptags" +*************** +*** 6110,6115 **** +--- 6110,6123 ---- + char_u fname[8]; + int filecount; + char_u **files; ++ int add_help_tags = FALSE; ++ ++ /* Check for ":helptags ++t {dir}". */ ++ if (STRNCMP(eap->arg, "++t", 3) == 0 && vim_iswhite(eap->arg[3])) ++ { ++ add_help_tags = TRUE; ++ eap->arg = skipwhite(eap->arg + 3); ++ } + + if (!mch_isdir(eap->arg)) + { +*************** +*** 6192,6198 **** + ext[1] = fname[5]; + ext[2] = fname[6]; + } +! helptags_one(eap->arg, ext, fname); + } + + ga_clear(&ga); +--- 6200,6206 ---- + ext[1] = fname[5]; + ext[2] = fname[6]; + } +! helptags_one(eap->arg, ext, fname, add_help_tags); + } + + ga_clear(&ga); +*************** +*** 6200,6214 **** + + #else + /* No language support, just use "*.txt" and "tags". */ +! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags"); + #endif + } + + static void +! helptags_one(dir, ext, tagfname) +! char_u *dir; /* doc directory */ +! char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */ +! char_u *tagfname; /* "tags" for English, "tags-it" for Italian. */ + { + FILE *fd_tags; + FILE *fd; +--- 6208,6223 ---- + + #else + /* No language support, just use "*.txt" and "tags". */ +! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags", add_help_tags); + #endif + } + + static void +! helptags_one(dir, ext, tagfname, add_help_tags) +! char_u *dir; /* doc directory */ +! char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */ +! char_u *tagfname; /* "tags" for English, "tags-fr" for French. */ +! int add_help_tags; /* add "help-tags" tag */ + { + FILE *fd_tags; + FILE *fd; +*************** +*** 6259,6268 **** + } + + /* +! * If generating tags for "$VIMRUNTIME/doc" add the "help-tags" tag. + */ + ga_init2(&ga, (int)sizeof(char_u *), 100); +! if (fullpathcmp((char_u *)"$VIMRUNTIME/doc", dir, FALSE) == FPC_SAME) + { + if (ga_grow(&ga, 1) == FAIL) + got_int = TRUE; +--- 6268,6279 ---- + } + + /* +! * If using the "++t" argument or generating tags for "$VIMRUNTIME/doc" +! * add the "help-tags" tag. + */ + ga_init2(&ga, (int)sizeof(char_u *), 100); +! if (add_help_tags || fullpathcmp((char_u *)"$VIMRUNTIME/doc", +! dir, FALSE) == FPC_SAME) + { + if (ga_grow(&ga, 1) == FAIL) + got_int = TRUE; +*** ../vim-7.1.216/src/ex_cmds.h Thu Mar 8 11:00:55 2007 +--- src/ex_cmds.h Fri Jan 11 20:49:18 2008 +*************** +*** 422,428 **** + EX(CMD_helpgrep, "helpgrep", ex_helpgrep, + EXTRA|NOTRLCOM|NEEDARG), + EX(CMD_helptags, "helptags", ex_helptags, +! NEEDARG|FILE1|TRLBAR|CMDWIN), + EX(CMD_hardcopy, "hardcopy", ex_hardcopy, + RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG), + EX(CMD_highlight, "highlight", ex_highlight, +--- 422,428 ---- + EX(CMD_helpgrep, "helpgrep", ex_helpgrep, + EXTRA|NOTRLCOM|NEEDARG), + EX(CMD_helptags, "helptags", ex_helptags, +! NEEDARG|FILES|TRLBAR|CMDWIN), + EX(CMD_hardcopy, "hardcopy", ex_hardcopy, + RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG), + EX(CMD_highlight, "highlight", ex_highlight, +*** ../vim-7.1.216/src/version.c Fri Jan 11 20:25:42 2008 +--- src/version.c Fri Jan 11 20:58:44 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 217, + /**/ + +-- +My girlfriend told me I should be more affectionate. +So I got TWO girlfriends. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.218 b/7.1.218 new file mode 100644 index 00000000..859f0b72 --- /dev/null +++ b/7.1.218 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.218 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.218 +Problem: A syntax region without a "keepend", containing a region with + "extend" could be truncated at the end of the containing region. +Solution: Do not call syn_update_ends() when there are no keepend items. +Files: src/syntax.c + + +*** ../vim-7.1.217/src/syntax.c Thu Jan 10 22:23:22 2008 +--- src/syntax.c Wed Jan 9 15:17:47 2008 +*************** +*** 2495,2501 **** + if (current_state.ga_len == 0) + break; + +! if (had_extend) + { + syn_update_ends(FALSE); + if (current_state.ga_len == 0) +--- 2493,2499 ---- + if (current_state.ga_len == 0) + break; + +! if (had_extend && keepend_level >= 0) + { + syn_update_ends(FALSE); + if (current_state.ga_len == 0) +*** ../vim-7.1.217/src/version.c Fri Jan 11 21:00:49 2008 +--- src/version.c Fri Jan 11 21:25:46 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 218, + /**/ + +-- +The Law of VIM: +For each member b of the possible behaviour space B of program P, there exists +a finite time t before which at least one user u in the total user space U of +program P will request b becomes a member of the allowed behaviour space B' +(B' <= B). +In other words: Sooner or later everyone wants everything as an option. + -- Vince Negri + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.219 b/7.1.219 new file mode 100644 index 00000000..68e4cfa2 --- /dev/null +++ b/7.1.219 @@ -0,0 +1,378 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.219 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.219 (after 7.1.215) +Problem: synstack() returns situation after the current character, can't + see the state for a one-character region. +Solution: Don't update ending states in the requested column. +Files: runtime/doc/eval.txt, src/eval.c, src/hardcopy.c, + src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c + + +*** ../vim-7.1.218/runtime/doc/eval.txt Thu Jan 10 22:23:22 2008 +--- runtime/doc/eval.txt Fri Jan 11 22:04:59 2008 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 10 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 11 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 4967,4976 **** + Return a |List|, which is the stack of syntax items at the + position {lnum} and {col} in the current window. Each item in + the List is an ID like what |synID()| returns. +- The stack is the situation in between the character at "col" +- and the next character. Note that a region of only one +- character will not show up, it only exists inside that +- character, not in between characters. + The first item in the List is the outer region, following are + items contained in that one. The last one is what |synID()| + returns, unless not the whole item is highlighted or it is a +--- 4970,4975 ---- +*** ../vim-7.1.218/src/eval.c Thu Jan 10 22:23:22 2008 +--- src/eval.c Fri Jan 11 21:46:12 2008 +*************** +*** 15725,15731 **** + + if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count + && col >= 0 && col < (long)STRLEN(ml_get(lnum))) +! id = syn_get_id(curwin, lnum, (colnr_T)col, trans, NULL); + #endif + + rettv->vval.v_number = id; +--- 15725,15731 ---- + + if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count + && col >= 0 && col < (long)STRLEN(ml_get(lnum))) +! id = syn_get_id(curwin, lnum, (colnr_T)col, trans, NULL, FALSE); + #endif + + rettv->vval.v_number = id; +*************** +*** 15874,15880 **** + && col >= 0 && col < (long)STRLEN(ml_get(lnum)) + && rettv_list_alloc(rettv) != FAIL) + { +! (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL); + for (i = 0; ; ++i) + { + id = syn_get_stack_item(i); +--- 15874,15880 ---- + && col >= 0 && col < (long)STRLEN(ml_get(lnum)) + && rettv_list_alloc(rettv) != FAIL) + { +! (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE); + for (i = 0; ; ++i) + { + id = syn_get_stack_item(i); +*** ../vim-7.1.218/src/hardcopy.c Thu May 10 20:40:02 2007 +--- src/hardcopy.c Fri Jan 11 21:46:20 2008 +*************** +*** 876,882 **** + */ + if (psettings->do_syntax) + { +! id = syn_get_id(curwin, ppos->file_line, col, 1, NULL); + if (id > 0) + id = syn_get_final_id(id); + else +--- 876,882 ---- + */ + if (psettings->do_syntax) + { +! id = syn_get_id(curwin, ppos->file_line, col, 1, NULL, FALSE); + if (id > 0) + id = syn_get_final_id(id); + else +*** ../vim-7.1.218/src/proto/syntax.pro Thu Jan 10 22:23:22 2008 +--- src/proto/syntax.pro Fri Jan 11 21:54:19 2008 +*************** +*** 4,10 **** + void syn_stack_apply_changes __ARGS((buf_T *buf)); + void syntax_end_parsing __ARGS((linenr_T lnum)); + int syntax_check_changed __ARGS((linenr_T lnum)); +! int get_syntax_attr __ARGS((colnr_T col, int *can_spell)); + void syntax_clear __ARGS((buf_T *buf)); + void ex_syntax __ARGS((exarg_T *eap)); + int syntax_present __ARGS((buf_T *buf)); +--- 4,10 ---- + void syn_stack_apply_changes __ARGS((buf_T *buf)); + void syntax_end_parsing __ARGS((linenr_T lnum)); + int syntax_check_changed __ARGS((linenr_T lnum)); +! int get_syntax_attr __ARGS((colnr_T col, int *can_spell, int keep_state)); + void syntax_clear __ARGS((buf_T *buf)); + void ex_syntax __ARGS((exarg_T *eap)); + int syntax_present __ARGS((buf_T *buf)); +*************** +*** 12,18 **** + void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg)); + void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg)); + char_u *get_syntax_name __ARGS((expand_T *xp, int idx)); +! int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp)); + int syn_get_stack_item __ARGS((int i)); + int syn_get_foldlevel __ARGS((win_T *wp, long lnum)); + void init_highlight __ARGS((int both, int reset)); +--- 12,18 ---- + void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg)); + void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg)); + char_u *get_syntax_name __ARGS((expand_T *xp, int idx)); +! int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp, int keep_state)); + int syn_get_stack_item __ARGS((int i)); + int syn_get_foldlevel __ARGS((win_T *wp, long lnum)); + void init_highlight __ARGS((int both, int reset)); +*** ../vim-7.1.218/src/screen.c Thu Nov 8 21:23:34 2007 +--- src/screen.c Fri Jan 11 21:48:10 2008 +*************** +*** 3885,3891 **** + # ifdef FEAT_SPELL + has_spell ? &can_spell : + # endif +! NULL); + + if (did_emsg) + { +--- 3885,3891 ---- + # ifdef FEAT_SPELL + has_spell ? &can_spell : + # endif +! NULL, FALSE); + + if (did_emsg) + { +*** ../vim-7.1.218/src/spell.c Sun Aug 5 18:32:21 2007 +--- src/spell.c Fri Jan 11 21:46:50 2008 +*************** +*** 2146,2152 **** + { + col = (int)(p - buf); + (void)syn_get_id(wp, lnum, (colnr_T)col, +! FALSE, &can_spell); + if (!can_spell) + attr = HLF_COUNT; + } +--- 2146,2152 ---- + { + col = (int)(p - buf); + (void)syn_get_id(wp, lnum, (colnr_T)col, +! FALSE, &can_spell, FALSE); + if (!can_spell) + attr = HLF_COUNT; + } +*** ../vim-7.1.218/src/syntax.c Fri Jan 11 21:26:49 2008 +--- src/syntax.c Sat Jan 12 16:42:25 2008 +*************** +*** 378,384 **** + static int syn_stack_equal __ARGS((synstate_T *sp)); + static void validate_current_state __ARGS((void)); + static int syn_finish_line __ARGS((int syncing)); +! static int syn_current_attr __ARGS((int syncing, int displaying, int *can_spell)); + static int did_match_already __ARGS((int idx, garray_T *gap)); + static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si)); + static void check_state_ends __ARGS((void)); +--- 378,384 ---- + static int syn_stack_equal __ARGS((synstate_T *sp)); + static void validate_current_state __ARGS((void)); + static int syn_finish_line __ARGS((int syncing)); +! static int syn_current_attr __ARGS((int syncing, int displaying, int *can_spell, int keep_state)); + static int did_match_already __ARGS((int idx, garray_T *gap)); + static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si)); + static void check_state_ends __ARGS((void)); +*************** +*** 1691,1697 **** + { + while (!current_finished) + { +! (void)syn_current_attr(syncing, FALSE, NULL); + /* + * When syncing, and found some item, need to check the item. + */ +--- 1690,1696 ---- + { + while (!current_finished) + { +! (void)syn_current_attr(syncing, FALSE, NULL, FALSE); + /* + * When syncing, and found some item, need to check the item. + */ +*************** +*** 1731,1739 **** + * done. + */ + int +! get_syntax_attr(col, can_spell) + colnr_T col; + int *can_spell; + { + int attr = 0; + +--- 1730,1739 ---- + * done. + */ + int +! get_syntax_attr(col, can_spell, keep_state) + colnr_T col; + int *can_spell; ++ int keep_state; /* keep state of char at "col" */ + { + int attr = 0; + +*************** +*** 1768,1774 **** + */ + while (current_col <= col) + { +! attr = syn_current_attr(FALSE, TRUE, can_spell); + ++current_col; + } + +--- 1768,1775 ---- + */ + while (current_col <= col) + { +! attr = syn_current_attr(FALSE, TRUE, can_spell, +! current_col == col ? keep_state : FALSE); + ++current_col; + } + +*************** +*** 1779,1788 **** + * Get syntax attributes for current_lnum, current_col. + */ + static int +! syn_current_attr(syncing, displaying, can_spell) + int syncing; /* When 1: called for syncing */ + int displaying; /* result will be displayed */ + int *can_spell; /* return: do spell checking */ + { + int syn_id; + lpos_T endpos; /* was: char_u *endp; */ +--- 1780,1790 ---- + * Get syntax attributes for current_lnum, current_col. + */ + static int +! syn_current_attr(syncing, displaying, can_spell, keep_state) + int syncing; /* When 1: called for syncing */ + int displaying; /* result will be displayed */ + int *can_spell; /* return: do spell checking */ ++ int keep_state; /* keep syntax stack afterwards */ + { + int syn_id; + lpos_T endpos; /* was: char_u *endp; */ +*************** +*** 2298,2304 **** + * may be for an empty match and a containing item might end in the + * current column. + */ +! if (!syncing) + { + check_state_ends(); + if (current_state.ga_len > 0 +--- 2300,2306 ---- + * may be for an empty match and a containing item might end in the + * current column. + */ +! if (!syncing && !keep_state) + { + check_state_ends(); + if (current_state.ga_len > 0 +*************** +*** 6086,6097 **** + * Function called for expression evaluation: get syntax ID at file position. + */ + int +! syn_get_id(wp, lnum, col, trans, spellp) + win_T *wp; + long lnum; + colnr_T col; +! int trans; /* remove transparancy */ +! int *spellp; /* return: can do spell checking */ + { + /* When the position is not after the current position and in the same + * line of the same buffer, need to restart parsing. */ +--- 6088,6100 ---- + * Function called for expression evaluation: get syntax ID at file position. + */ + int +! syn_get_id(wp, lnum, col, trans, spellp, keep_state) + win_T *wp; + long lnum; + colnr_T col; +! int trans; /* remove transparancy */ +! int *spellp; /* return: can do spell checking */ +! int keep_state; /* keep state of char at "col" */ + { + /* When the position is not after the current position and in the same + * line of the same buffer, need to restart parsing. */ +*************** +*** 6100,6106 **** + || col < current_col) + syntax_start(wp, lnum); + +! (void)get_syntax_attr(col, spellp); + + return (trans ? current_trans_id : current_id); + } +--- 6103,6109 ---- + || col < current_col) + syntax_start(wp, lnum); + +! (void)get_syntax_attr(col, spellp, keep_state); + + return (trans ? current_trans_id : current_id); + } +*************** +*** 6115,6122 **** + syn_get_stack_item(i) + int i; + { +! if (i >= current_state.ga_len ) + return -1; + return CUR_STATE(i).si_id; + } + #endif +--- 6118,6131 ---- + syn_get_stack_item(i) + int i; + { +! if (i >= current_state.ga_len) +! { +! /* Need to invalidate the state, because we didn't properly finish it +! * for the last character, "keep_state" was TRUE. */ +! invalidate_current_state(); +! current_col = MAXCOL; + return -1; ++ } + return CUR_STATE(i).si_id; + } + #endif +*** ../vim-7.1.218/src/version.c Fri Jan 11 21:26:49 2008 +--- src/version.c Sat Jan 12 16:40:47 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 219, + /**/ + +-- +ARTHUR: Go on, Bors, chop its head off. +BORS: Right. Silly little bleeder. One rabbit stew coming up. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.220 b/7.1.220 new file mode 100644 index 00000000..1ba8f040 --- /dev/null +++ b/7.1.220 @@ -0,0 +1,136 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.220 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.220 +Problem: When a ")" or word movement command moves the cursor back from the + end of the line it may end up on the trail byte of a multi-byte + character. It's also moved back when it isn't needed. +Solution: Add the adjust_cursor() function. +Files: src/normal.c + + +*** ../vim-7.1.219/src/normal.c Sun Jan 6 20:05:36 2008 +--- src/normal.c Sat Jan 12 17:10:14 2008 +*************** +*** 150,155 **** +--- 150,156 ---- + static void nv_bck_word __ARGS((cmdarg_T *cap)); + static void nv_wordcmd __ARGS((cmdarg_T *cap)); + static void nv_beginline __ARGS((cmdarg_T *cap)); ++ static void adjust_cursor __ARGS((oparg_T *oap)); + #ifdef FEAT_VISUAL + static void adjust_for_sel __ARGS((cmdarg_T *cap)); + static int unadjust_for_sel __ARGS((void)); +*************** +*** 6567,6578 **** + clearopbeep(cap->oap); + else + { +! /* Don't leave the cursor on the NUL past a line */ +! if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL) +! { +! --curwin->w_cursor.col; +! cap->oap->inclusive = TRUE; +! } + #ifdef FEAT_VIRTUALEDIT + curwin->w_cursor.coladd = 0; + #endif +--- 6568,6575 ---- + clearopbeep(cap->oap); + else + { +! /* Don't leave the cursor on the NUL past end of line. */ +! adjust_cursor(cap->oap); + #ifdef FEAT_VIRTUALEDIT + curwin->w_cursor.coladd = 0; + #endif +*************** +*** 8408,8419 **** + else + n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP); + +! /* Don't leave the cursor on the NUL past a line */ +! if (n != FAIL && curwin->w_cursor.col > 0 && gchar_cursor() == NUL) +! { +! --curwin->w_cursor.col; +! cap->oap->inclusive = TRUE; +! } + + if (n == FAIL && cap->oap->op_type == OP_NOP) + clearopbeep(cap->oap); +--- 8405,8413 ---- + else + n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP); + +! /* Don't leave the cursor on the NUL past the end of line. */ +! if (n != FAIL) +! adjust_cursor(cap->oap); + + if (n == FAIL && cap->oap->op_type == OP_NOP) + clearopbeep(cap->oap); +*************** +*** 8426,8431 **** +--- 8420,8458 ---- + if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP) + foldOpenCursor(); + #endif ++ } ++ } ++ ++ /* ++ * Used after a movement command: If the cursor ends up on the NUL after the ++ * end of the line, may move it back to the last character and make the motion ++ * inclusive. ++ */ ++ static void ++ adjust_cursor(oap) ++ oparg_T *oap; ++ { ++ /* The cursor cannot remain on the NUL when: ++ * - the column is > 0 ++ * - not in Visual mode or 'selection' is "o" ++ * - 'virtualedit' is not "all" and not "onemore". ++ */ ++ if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL ++ #ifdef FEAT_VISUAL ++ && (!VIsual_active || *p_sel == 'o') ++ #endif ++ #ifdef FEAT_VIRTUALEDIT ++ && !virtual_active() && (ve_flags & VE_ONEMORE) == 0 ++ #endif ++ ) ++ { ++ --curwin->w_cursor.col; ++ #ifdef FEAT_MBYTE ++ /* prevent cursor from moving on the trail byte */ ++ if (has_mbyte) ++ mb_adjust_cursor(); ++ #endif ++ oap->inclusive = TRUE; + } + } + +*** ../vim-7.1.219/src/version.c Sat Jan 12 16:45:25 2008 +--- src/version.c Sat Jan 12 17:07:28 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 220, + /**/ + +-- +A hamburger walks into a bar, and the bartender says: "I'm sorry, +but we don't serve food here." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.221 b/7.1.221 new file mode 100644 index 00000000..14fc9473 --- /dev/null +++ b/7.1.221 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.221 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.221 +Problem: When inserting a "(", triggering the matchparen plugin, the + following highlighting may be messed up. +Solution: Before triggering the CursorMovedI autocommands update the display + to update the stored syntax stacks for the change. +Files: src/edit.c + + +*** ../vim-7.1.220/src/edit.c Wed Jan 9 10:13:24 2008 +--- src/edit.c Sat Jan 12 16:07:41 2008 +*************** +*** 1455,1460 **** +--- 1455,1468 ---- + # endif + ) + { ++ # ifdef FEAT_SYN_HL ++ /* Need to update the screen first, to make sure syntax ++ * highlighting is correct after making a change (e.g., inserting ++ * a "(". The autocommand may also require a redraw, so it's done ++ * again below, unfortunately. */ ++ if (syntax_present(curbuf) && must_redraw) ++ update_screen(0); ++ # endif + apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf); + last_cursormoved = curwin->w_cursor; + } +*** ../vim-7.1.220/src/version.c Sat Jan 12 17:11:25 2008 +--- src/version.c Sat Jan 12 18:11:22 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 221, + /**/ + +-- +ROBIN: The what? +ARTHUR: The Holy Hand Grenade of Antioch. 'Tis one of the sacred relics + Brother Maynard always carries with him. +ALL: Yes. Of course. +ARTHUR: (shouting) Bring up the Holy Hand Grenade! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.222 b/7.1.222 new file mode 100644 index 00000000..f092e76b --- /dev/null +++ b/7.1.222 @@ -0,0 +1,135 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.222 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.222 (after 7.1.217) +Problem: Wildcards in argument of ":helptags" are not expanded. (Marcel + Svitalsky) +Solution: Expand wildcards in the directory name. +Files: src/ex_cmds.c + + +*** ../vim-7.1.221/src/ex_cmds.c Fri Jan 11 21:00:49 2008 +--- src/ex_cmds.c Sat Jan 12 21:40:51 2008 +*************** +*** 6106,6111 **** +--- 6106,6113 ---- + #ifdef FEAT_MULTI_LANG + char_u lang[2]; + #endif ++ expand_T xpc; ++ char_u *dirname; + char_u ext[5]; + char_u fname[8]; + int filecount; +*************** +*** 6119,6125 **** + eap->arg = skipwhite(eap->arg + 3); + } + +! if (!mch_isdir(eap->arg)) + { + EMSG2(_("E150: Not a directory: %s"), eap->arg); + return; +--- 6121,6131 ---- + eap->arg = skipwhite(eap->arg + 3); + } + +! ExpandInit(&xpc); +! xpc.xp_context = EXPAND_DIRECTORIES; +! dirname = ExpandOne(&xpc, eap->arg, NULL, +! WILD_LIST_NOTFOUND|WILD_SILENT, WILD_EXPAND_FREE); +! if (dirname == NULL || !mch_isdir(dirname)) + { + EMSG2(_("E150: Not a directory: %s"), eap->arg); + return; +*************** +*** 6127,6133 **** + + #ifdef FEAT_MULTI_LANG + /* Get a list of all files in the directory. */ +! STRCPY(NameBuff, eap->arg); + add_pathsep(NameBuff); + STRCAT(NameBuff, "*"); + if (gen_expand_wildcards(1, &NameBuff, &filecount, &files, +--- 6133,6139 ---- + + #ifdef FEAT_MULTI_LANG + /* Get a list of all files in the directory. */ +! STRCPY(NameBuff, dirname); + add_pathsep(NameBuff); + STRCAT(NameBuff, "*"); + if (gen_expand_wildcards(1, &NameBuff, &filecount, &files, +*************** +*** 6135,6140 **** +--- 6141,6147 ---- + || filecount == 0) + { + EMSG2("E151: No match: %s", NameBuff); ++ vim_free(dirname); + return; + } + +*************** +*** 6200,6206 **** + ext[1] = fname[5]; + ext[2] = fname[6]; + } +! helptags_one(eap->arg, ext, fname, add_help_tags); + } + + ga_clear(&ga); +--- 6207,6213 ---- + ext[1] = fname[5]; + ext[2] = fname[6]; + } +! helptags_one(dirname, ext, fname, add_help_tags); + } + + ga_clear(&ga); +*************** +*** 6208,6215 **** + + #else + /* No language support, just use "*.txt" and "tags". */ +! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags", add_help_tags); + #endif + } + + static void +--- 6215,6223 ---- + + #else + /* No language support, just use "*.txt" and "tags". */ +! helptags_one(dirname, (char_u *)".txt", (char_u *)"tags", add_help_tags); + #endif ++ vim_free(dirname); + } + + static void +*** ../vim-7.1.221/src/version.c Sat Jan 12 18:13:05 2008 +--- src/version.c Sun Jan 13 13:27:04 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 222, + /**/ + +-- + Arthur pulls Pin out. The MONK blesses the grenade as ... +ARTHUR: (quietly) One, two, five ... +GALAHAD: Three, sir! +ARTHUR: Three. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.223 b/7.1.223 new file mode 100644 index 00000000..0fbfb584 --- /dev/null +++ b/7.1.223 @@ -0,0 +1,263 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.223 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.223 +Problem: glob() doesn't work properly when 'shell' is "sh" or "bash" and + the expanded name contains spaces, '~', single quotes and other + special characters. (Adri Verhoef, Charles Campbell) +Solution: For Posix shells define a vimglob() function to list the matches + instead of using "echo" directly. +Files: src/os_unix.c + + +*** ../vim-7.1.222/src/os_unix.c Thu Jan 3 18:55:21 2008 +--- src/os_unix.c Sun Jan 13 13:52:53 2008 +*************** +*** 4946,4951 **** +--- 4946,4954 ---- + char_u *p; + int dir; + #ifdef __EMX__ ++ /* ++ * This is the OS/2 implementation. ++ */ + # define EXPL_ALLOC_INC 16 + char_u **expl_files; + size_t files_alloced, files_free; +*************** +*** 5056,5075 **** + return OK; + + #else /* __EMX__ */ +! + int j; + char_u *tempname; + char_u *command; + FILE *fd; + char_u *buffer; +! #define STYLE_ECHO 0 /* use "echo" to expand */ +! #define STYLE_GLOB 1 /* use "glob" to expand, for csh */ +! #define STYLE_PRINT 2 /* use "print -N" to expand, for zsh */ +! #define STYLE_BT 3 /* `cmd` expansion, execute the pattern directly */ + int shell_style = STYLE_ECHO; + int check_spaces; + static int did_find_nul = FALSE; + int ampersent = FALSE; + + *num_file = 0; /* default: no files found */ + *file = NULL; +--- 5059,5084 ---- + return OK; + + #else /* __EMX__ */ +! /* +! * This is the non-OS/2 implementation (really Unix). +! */ + int j; + char_u *tempname; + char_u *command; + FILE *fd; + char_u *buffer; +! #define STYLE_ECHO 0 /* use "echo", the default */ +! #define STYLE_GLOB 1 /* use "glob", for csh */ +! #define STYLE_VIMGLOB 2 /* use "vimglob", for Posix sh */ +! #define STYLE_PRINT 3 /* use "print -N", for zsh */ +! #define STYLE_BT 4 /* `cmd` expansion, execute the pattern +! * directly */ + int shell_style = STYLE_ECHO; + int check_spaces; + static int did_find_nul = FALSE; + int ampersent = FALSE; ++ /* vimglob() function to define for Posix shell */ ++ static char *sh_vimglob_func = "vimglob() { while [ $# -ge 1 ]; do echo -n \"$1\"; echo; shift; done }; vimglob >"; + + *num_file = 0; /* default: no files found */ + *file = NULL; +*************** +*** 5107,5115 **** + + /* + * Let the shell expand the patterns and write the result into the temp +! * file. if expanding `cmd` execute it directly. +! * If we use csh, glob will work better than echo. +! * If we use zsh, print -N will work better than glob. + */ + if (num_pat == 1 && *pat[0] == '`' + && (len = STRLEN(pat[0])) > 2 +--- 5116,5132 ---- + + /* + * Let the shell expand the patterns and write the result into the temp +! * file. +! * STYLE_BT: NL separated +! * If expanding `cmd` execute it directly. +! * STYLE_GLOB: NUL separated +! * If we use *csh, "glob" will work better than "echo". +! * STYLE_PRINT: NL or NUL separated +! * If we use *zsh, "print -N" will work better than "glob". +! * STYLE_VIMGLOB: NL separated +! * If we use *sh*, we define "vimglob()". +! * STYLE_ECHO: space separated. +! * A shell we don't know, stay safe and use "echo". + */ + if (num_pat == 1 && *pat[0] == '`' + && (len = STRLEN(pat[0])) > 2 +*************** +*** 5122,5130 **** + else if (STRCMP(p_sh + len - 3, "zsh") == 0) + shell_style = STYLE_PRINT; + } +! +! /* "unset nonomatch; print -N >" plus two is 29 */ + len = STRLEN(tempname) + 29; + for (i = 0; i < num_pat; ++i) + { + /* Count the length of the patterns in the same way as they are put in +--- 5139,5155 ---- + else if (STRCMP(p_sh + len - 3, "zsh") == 0) + shell_style = STYLE_PRINT; + } +! if (shell_style == STYLE_ECHO && strstr((char *)gettail(p_sh), +! "sh") != NULL) +! shell_style = STYLE_VIMGLOB; +! +! /* Compute the length of the command. We need 2 extra bytes: for the +! * optional '&' and for the NUL. +! * Worst case: "unset nonomatch; print -N >" plus two is 29 */ + len = STRLEN(tempname) + 29; ++ if (shell_style == STYLE_VIMGLOB) ++ len += STRLEN(sh_vimglob_func); ++ + for (i = 0; i < num_pat; ++i) + { + /* Count the length of the patterns in the same way as they are put in +*************** +*** 5183,5192 **** +--- 5208,5221 ---- + STRCAT(command, "glob >"); + else if (shell_style == STYLE_PRINT) + STRCAT(command, "print -N >"); ++ else if (shell_style == STYLE_VIMGLOB) ++ STRCAT(command, sh_vimglob_func); + else + STRCAT(command, "echo >"); + } ++ + STRCAT(command, tempname); ++ + if (shell_style != STYLE_BT) + for (i = 0; i < num_pat; ++i) + { +*************** +*** 5232,5239 **** + if (flags & EW_SILENT) + show_shell_mess = FALSE; + if (ampersent) +! STRCAT(command, "&"); /* put the '&' back after the +! redirection */ + + /* + * Using zsh -G: If a pattern has no matches, it is just deleted from +--- 5261,5267 ---- + if (flags & EW_SILENT) + show_shell_mess = FALSE; + if (ampersent) +! STRCAT(command, "&"); /* put the '&' after the redirection */ + + /* + * Using zsh -G: If a pattern has no matches, it is just deleted from +*************** +*** 5265,5271 **** + show_shell_mess = TRUE; + vim_free(command); + +! if (i) /* mch_call_shell() failed */ + { + mch_remove(tempname); + vim_free(tempname); +--- 5293,5299 ---- + show_shell_mess = TRUE; + vim_free(command); + +! if (i != 0) /* mch_call_shell() failed */ + { + mch_remove(tempname); + vim_free(tempname); +*************** +*** 5336,5342 **** + } + vim_free(tempname); + +! #if defined(__CYGWIN__) || defined(__CYGWIN32__) + /* Translate into . Caution, buffer may contain NUL. */ + p = buffer; + for (i = 0; i < len; ++i) +--- 5364,5370 ---- + } + vim_free(tempname); + +! # if defined(__CYGWIN__) || defined(__CYGWIN32__) + /* Translate into . Caution, buffer may contain NUL. */ + p = buffer; + for (i = 0; i < len; ++i) +*************** +*** 5359,5365 **** + } + } + /* file names are separated with NL */ +! else if (shell_style == STYLE_BT) + { + buffer[len] = NUL; /* make sure the buffer ends in NUL */ + p = buffer; +--- 5387,5393 ---- + } + } + /* file names are separated with NL */ +! else if (shell_style == STYLE_BT || shell_style == STYLE_VIMGLOB) + { + buffer[len] = NUL; /* make sure the buffer ends in NUL */ + p = buffer; +*************** +*** 5438,5444 **** + { + (*file)[i] = p; + /* Space or NL separates */ +! if (shell_style == STYLE_ECHO || shell_style == STYLE_BT) + { + while (!(shell_style == STYLE_ECHO && *p == ' ') + && *p != '\n' && *p != NUL) +--- 5466,5473 ---- + { + (*file)[i] = p; + /* Space or NL separates */ +! if (shell_style == STYLE_ECHO || shell_style == STYLE_BT +! || shell_style == STYLE_VIMGLOB) + { + while (!(shell_style == STYLE_ECHO && *p == ' ') + && *p != '\n' && *p != NUL) +*** ../vim-7.1.222/src/version.c Sun Jan 13 13:30:34 2008 +--- src/version.c Sun Jan 13 13:45:04 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 223, + /**/ + +-- +User: I'm having problems with my text editor. +Help desk: Which editor are you using? +User: I don't know, but it's version VI (pronounced: 6). +Help desk: Oh, then you should upgrade to version VIM (pronounced: 994). + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.224 b/7.1.224 new file mode 100644 index 00000000..4e6c9d3d --- /dev/null +++ b/7.1.224 @@ -0,0 +1,73 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.224 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.224 +Problem: When using "vim -F -o file1 file2" only one window is + right-to-left. Same for "-H". (Ben Schmidt) +Solution: use set_option_value() to set 'rightleft'. +Files: src/main.c + + +*** ../vim-7.1.223/src/main.c Fri Jan 11 20:25:42 2008 +--- src/main.c Sun Jan 13 16:12:09 2008 +*************** +*** 1775,1781 **** + + case 'F': /* "-F" start in Farsi mode: rl + fkmap set */ + #ifdef FEAT_FKMAP +! curwin->w_p_rl = p_fkmap = TRUE; + #else + mch_errmsg(_(e_nofarsi)); + mch_exit(2); +--- 1775,1782 ---- + + case 'F': /* "-F" start in Farsi mode: rl + fkmap set */ + #ifdef FEAT_FKMAP +! p_fkmap = TRUE; +! set_option_value((char_u *)"rl", 1L, NULL, 0); + #else + mch_errmsg(_(e_nofarsi)); + mch_exit(2); +*************** +*** 1792,1798 **** + + case 'H': /* "-H" start in Hebrew mode: rl + hkmap set */ + #ifdef FEAT_RIGHTLEFT +! curwin->w_p_rl = p_hkmap = TRUE; + #else + mch_errmsg(_(e_nohebrew)); + mch_exit(2); +--- 1793,1800 ---- + + case 'H': /* "-H" start in Hebrew mode: rl + hkmap set */ + #ifdef FEAT_RIGHTLEFT +! p_hkmap = TRUE; +! set_option_value((char_u *)"rl", 1L, NULL, 0); + #else + mch_errmsg(_(e_nohebrew)); + mch_exit(2); +*** ../vim-7.1.223/src/version.c Sun Jan 13 13:53:30 2008 +--- src/version.c Sun Jan 13 16:15:49 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 224, + /**/ + +-- +LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall? +ARTHUR: No, that's Saint Ives. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.225 b/7.1.225 new file mode 100644 index 00000000..acce0c55 --- /dev/null +++ b/7.1.225 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.225 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.225 +Problem: Using unitialized value when XGetWMNormalHints() fails. +Solution: Check the return value. (Dominique Pelle) +Files: src/os_unix.c + + +*** ../vim-7.1.224/src/os_unix.c Sun Jan 13 13:53:30 2008 +--- src/os_unix.c Sun Jan 13 13:52:53 2008 +*************** +*** 6145,6153 **** + if (xterm_trace == 1) + { + /* Get the hints just before tracking starts. The font size might +! * have changed recently */ +! XGetWMNormalHints(xterm_dpy, x11_window, &xterm_hints, &got_hints); +! if (!(got_hints & PResizeInc) + || xterm_hints.width_inc <= 1 + || xterm_hints.height_inc <= 1) + { +--- 6145,6153 ---- + if (xterm_trace == 1) + { + /* Get the hints just before tracking starts. The font size might +! * have changed recently. */ +! if (!XGetWMNormalHints(xterm_dpy, x11_window, &xterm_hints, &got_hints) +! || !(got_hints & PResizeInc) + || xterm_hints.width_inc <= 1 + || xterm_hints.height_inc <= 1) + { +*** ../vim-7.1.224/src/version.c Sun Jan 13 16:17:02 2008 +--- src/version.c Sun Jan 13 16:29:51 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 225, + /**/ + +-- +"When I die, I want a tombstone that says "GAME OVER" - Ton Richters + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.226 b/7.1.226 new file mode 100644 index 00000000..eb3cb6b7 --- /dev/null +++ b/7.1.226 @@ -0,0 +1,68 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.226 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.226 +Problem: Command line completion doesn't work when a file name contains a + '&' character. +Solution: Accept all characters in a file name, except ones that end a + command or white space. +Files: src/ex_docmd.c + + +*** ../vim-7.1.225/src/ex_docmd.c Wed Jan 9 20:29:51 2008 +--- src/ex_docmd.c Wed Jan 9 20:11:13 2008 +*************** +*** 3338,3349 **** + } + in_quote = !in_quote; + } + #ifdef SPACE_IN_FILENAME +! else if (!vim_isfilec_or_wc(c) +! && (!(ea.argt & NOSPC) || usefilter)) +! #else +! else if (!vim_isfilec_or_wc(c)) + #endif + { + while (*p != NUL) + { +--- 3338,3350 ---- + } + in_quote = !in_quote; + } ++ /* An argument can contain just about everything, except ++ * characters that end the command and white space. */ ++ else if (c == '|' || c == '\n' || c == '"' || (vim_iswhite(c) + #ifdef SPACE_IN_FILENAME +! && (!(ea.argt & NOSPC) || usefilter) + #endif ++ )) + { + while (*p != NUL) + { +*** ../vim-7.1.225/src/version.c Sun Jan 13 16:30:23 2008 +--- src/version.c Sun Jan 13 17:10:15 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 226, + /**/ + +-- + [Another hideous roar.] +BEDEVERE: That's it! +ARTHUR: What? +BEDEVERE: It's The Legendary Black Beast of Aaaaarrrrrrggghhh! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.227 b/7.1.227 new file mode 100644 index 00000000..042c4498 --- /dev/null +++ b/7.1.227 @@ -0,0 +1,188 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.227 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.227 +Problem: Hang in syntax HL when moving over a ")". (Dominique Pelle) +Solution: Avoid storing a syntax state in the wrong position in the list of + remembered states. +Files: src/syntax.c + + +*** ../vim-7.1.226/src/syntax.c Sat Jan 12 16:45:25 2008 +--- src/syntax.c Sat Jan 12 16:45:44 2008 +*************** +*** 372,378 **** + static int syn_stack_cleanup __ARGS((void)); + static void syn_stack_free_entry __ARGS((buf_T *buf, synstate_T *p)); + static synstate_T *syn_stack_find_entry __ARGS((linenr_T lnum)); +! static synstate_T *store_current_state __ARGS((synstate_T *sp)); + static void load_current_state __ARGS((synstate_T *from)); + static void invalidate_current_state __ARGS((void)); + static int syn_stack_equal __ARGS((synstate_T *sp)); +--- 372,378 ---- + static int syn_stack_cleanup __ARGS((void)); + static void syn_stack_free_entry __ARGS((buf_T *buf, synstate_T *p)); + static synstate_T *syn_stack_find_entry __ARGS((linenr_T lnum)); +! static synstate_T *store_current_state __ARGS((void)); + static void load_current_state __ARGS((synstate_T *from)); + static void invalidate_current_state __ARGS((void)); + static int syn_stack_equal __ARGS((synstate_T *sp)); +*************** +*** 464,470 **** + synstate_T *p; + synstate_T *last_valid = NULL; + synstate_T *last_min_valid = NULL; +! synstate_T *sp, *prev; + linenr_T parsed_lnum; + linenr_T first_stored; + int dist; +--- 464,470 ---- + synstate_T *p; + synstate_T *last_valid = NULL; + synstate_T *last_min_valid = NULL; +! synstate_T *sp, *prev = NULL; + linenr_T parsed_lnum; + linenr_T first_stored; + int dist; +*************** +*** 502,508 **** + if (!current_state_stored) + { + ++current_lnum; +! (void)store_current_state(NULL); + } + + /* +--- 502,508 ---- + if (!current_state_stored) + { + ++current_lnum; +! (void)store_current_state(); + } + + /* +*************** +*** 558,564 **** + dist = 999999; + else + dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1; +- prev = syn_stack_find_entry(current_lnum); + while (current_lnum < lnum) + { + syn_start_line(); +--- 558,563 ---- +*************** +*** 573,581 **** + * equal to the current state. If so, then validate all saved + * states that depended on a change before the parsed line. */ + if (prev == NULL) + sp = syn_buf->b_sst_first; + else +! sp = prev->sst_next; + if (sp != NULL + && sp->sst_lnum == current_lnum + && syn_stack_equal(sp)) +--- 572,584 ---- + * equal to the current state. If so, then validate all saved + * states that depended on a change before the parsed line. */ + if (prev == NULL) ++ prev = syn_stack_find_entry(current_lnum - 1); ++ if (prev == NULL) + sp = syn_buf->b_sst_first; + else +! sp = prev; +! while (sp != NULL && sp->sst_lnum < current_lnum) +! sp = sp->sst_next; + if (sp != NULL + && sp->sst_lnum == current_lnum + && syn_stack_equal(sp)) +*************** +*** 601,607 **** + else if (prev == NULL + || current_lnum == lnum + || current_lnum >= prev->sst_lnum + dist) +! prev = store_current_state(prev); + } + + /* This can take a long time: break when CTRL-C pressed. The current +--- 604,610 ---- + else if (prev == NULL + || current_lnum == lnum + || current_lnum >= prev->sst_lnum + dist) +! prev = store_current_state(); + } + + /* This can take a long time: break when CTRL-C pressed. The current +*************** +*** 1353,1369 **** + * The current state must be valid for the start of the current_lnum line! + */ + static synstate_T * +! store_current_state(sp) +! synstate_T *sp; /* at or before where state is to be saved or +! NULL */ + { + int i; + synstate_T *p; + bufstate_T *bp; + stateitem_T *cur_si; +! +! if (sp == NULL) +! sp = syn_stack_find_entry(current_lnum); + + /* + * If the current state contains a start or end pattern that continues +--- 1356,1368 ---- + * The current state must be valid for the start of the current_lnum line! + */ + static synstate_T * +! store_current_state() + { + int i; + synstate_T *p; + bufstate_T *bp; + stateitem_T *cur_si; +! synstate_T *sp = syn_stack_find_entry(current_lnum); + + /* + * If the current state contains a start or end pattern that continues +*************** +*** 1667,1673 **** + * Store the current state in b_sst_array[] for later use. + */ + ++current_lnum; +! (void)store_current_state(NULL); + } + } + +--- 1666,1672 ---- + * Store the current state in b_sst_array[] for later use. + */ + ++current_lnum; +! (void)store_current_state(); + } + } + +*** ../vim-7.1.226/src/version.c Sun Jan 13 17:11:25 2008 +--- src/version.c Sun Jan 13 17:37:10 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 227, + /**/ + +-- +Dreams are free, but there's a small charge for alterations. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.0.107 b/7.1.228 similarity index 57% rename from 7.0.107 rename to 7.1.228 index d0aafdfd..bab4dff5 100644 --- a/7.0.107 +++ b/7.1.228 @@ -1,5 +1,5 @@ To: vim-dev@vim.org -Subject: Patch 7.0.107 +Subject: Patch 7.1.228 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 @@ -7,40 +7,33 @@ Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ -Patch 7.0.107 -Problem: Incremental search doesn't redraw the text tabline. (Ilya Bobir) - Also happens in other situations with one window in a tab page. -Solution: Redraw the tabline after clearing the screen. -Files: src/screen.c +Patch 7.1.228 +Problem: When 'foldmethod' is "indent" and a fold is created with ">>" it + can't be closed with "zc". (Daniel Shahaf) +Solution: Reset the "small" flag of a fold when adding a line to it. +Files: src/fold.c -*** ../vim-7.0.106/src/screen.c Tue Aug 29 17:28:56 2006 ---- src/screen.c Thu Sep 14 21:00:32 2006 +*** ../vim-7.1.227/src/fold.c Sun Oct 14 15:32:10 2007 +--- src/fold.c Sun Jan 13 21:26:48 2008 *************** -*** 1228,1234 **** ---- 1228,1241 ---- - { - mid_end = wp->w_height; - if (lastwin == firstwin) -+ { - screenclear(); -+ #ifdef FEAT_WINDOWS -+ /* The screen was cleared, redraw the tab pages line. */ -+ if (redraw_tabline) -+ draw_tabline(); -+ #endif -+ } - } +*** 2676,2681 **** +--- 2676,2682 ---- + if (fp->fd_len < flp->lnum - fp->fd_top) + { + fp->fd_len = flp->lnum - fp->fd_top; ++ fp->fd_small = MAYBE; + fold_changed = TRUE; } - else -*** ../vim-7.0.106/src/version.c Thu Sep 14 13:35:17 2006 ---- src/version.c Thu Sep 14 21:03:40 2006 + +*** ../vim-7.1.227/src/version.c Sun Jan 13 17:39:29 2008 +--- src/version.c Sun Jan 13 21:56:53 2008 *************** *** 668,669 **** --- 668,671 ---- { /* Add new patch number below this line */ + /**/ -+ 107, ++ 228, /**/ -- diff --git a/7.1.229 b/7.1.229 new file mode 100644 index 00000000..c07e8e20 --- /dev/null +++ b/7.1.229 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.229 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.229 +Problem: A fold is closed when it shouldn't when 'foldmethod' is "indent" + and backspacing a non-white character so that the indent increases. +Solution: Keep the fold open after backspacing a character. +Files: src/edit.c + + +*** ../vim-7.1.228/src/edit.c Sat Jan 12 18:13:05 2008 +--- src/edit.c Mon Jan 14 20:06:43 2008 +*************** +*** 8618,8623 **** +--- 8619,8632 ---- + if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == 0) + dollar_vcol = curwin->w_virtcol; + ++ #ifdef FEAT_FOLDING ++ /* When deleting a char the cursor line must never be in a closed fold. ++ * E.g., when 'foldmethod' is indent and deleting the first non-white ++ * char before a Tab. */ ++ if (did_backspace) ++ foldOpenCursor(); ++ #endif ++ + return did_backspace; + } + +*** ../vim-7.1.228/src/version.c Sun Jan 13 21:57:25 2008 +--- src/version.c Mon Jan 14 20:08:35 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 229, + /**/ + +-- +ROBIN: (warily) And if you get a question wrong? +ARTHUR: You are cast into the Gorge of Eternal Peril. +ROBIN: Oh ... wacho! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.230 b/7.1.230 new file mode 100644 index 00000000..3cd72706 --- /dev/null +++ b/7.1.230 @@ -0,0 +1,64 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.230 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.230 +Problem: Memory leak when executing SourceCmd autocommands. +Solution: Free the memory. (Dominique Pelle) +Files: src/ex_cmds2.c + + +*** ../vim-7.1.229/src/ex_cmds2.c Sun Jan 6 20:05:36 2008 +--- src/ex_cmds2.c Tue Jan 15 20:41:28 2008 +*************** +*** 2889,2899 **** + if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL) + && apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp, + FALSE, curbuf)) + # ifdef FEAT_EVAL +! return aborting() ? FAIL : OK; + # else +! return OK; + # endif + + /* Apply SourcePre autocommands, they may get the file. */ + apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf); +--- 2889,2902 ---- + if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL) + && apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp, + FALSE, curbuf)) ++ { + # ifdef FEAT_EVAL +! retval = aborting() ? FAIL : OK; + # else +! retval = OK; + # endif ++ goto theend; ++ } + + /* Apply SourcePre autocommands, they may get the file. */ + apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf); +*** ../vim-7.1.229/src/version.c Mon Jan 14 20:11:37 2008 +--- src/version.c Tue Jan 15 22:15:03 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 230, + /**/ + +-- +Citizens are not allowed to attend a movie house or theater nor ride in a +public streetcar within at least four hours after eating garlic. + [real standing law in Indiana, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.231 b/7.1.231 new file mode 100644 index 00000000..e9c78859 --- /dev/null +++ b/7.1.231 @@ -0,0 +1,291 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.231 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.231 +Problem: When shifting lines the change is acted upon multiple times. +Solution: Don't have shift_line() call changed_bytes. +Files: src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro + + +*** ../vim-7.1.230/src/edit.c Mon Jan 14 20:11:37 2008 +--- src/edit.c Mon Jan 14 20:06:43 2008 +*************** +*** 1662,1672 **** + * if round is TRUE, round the indent to 'shiftwidth' (only with _INC and _Dec). + */ + void +! change_indent(type, amount, round, replaced) + int type; + int amount; + int round; + int replaced; /* replaced character, put on replace stack */ + { + int vcol; + int last_vcol; +--- 1662,1673 ---- + * if round is TRUE, round the indent to 'shiftwidth' (only with _INC and _Dec). + */ + void +! change_indent(type, amount, round, replaced, call_changed_bytes) + int type; + int amount; + int round; + int replaced; /* replaced character, put on replace stack */ ++ int call_changed_bytes; /* call changed_bytes() */ + { + int vcol; + int last_vcol; +*************** +*** 1723,1729 **** + * Set the new indent. The cursor will be put on the first non-blank. + */ + if (type == INDENT_SET) +! (void)set_indent(amount, SIN_CHANGED); + else + { + #ifdef FEAT_VREPLACE +--- 1724,1730 ---- + * Set the new indent. The cursor will be put on the first non-blank. + */ + if (type == INDENT_SET) +! (void)set_indent(amount, call_changed_bytes ? SIN_CHANGED : 0); + else + { + #ifdef FEAT_VREPLACE +*************** +*** 1733,1739 **** + if (State & VREPLACE_FLAG) + State = INSERT; + #endif +! shift_line(type == INDENT_DEC, round, 1); + #ifdef FEAT_VREPLACE + State = save_State; + #endif +--- 1734,1740 ---- + if (State & VREPLACE_FLAG) + State = INSERT; + #endif +! shift_line(type == INDENT_DEC, round, 1, call_changed_bytes); + #ifdef FEAT_VREPLACE + State = save_State; + #endif +*************** +*** 5921,5927 **** + { + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +! change_indent(INDENT_SET, second_indent, FALSE, NUL); + else + #endif + (void)set_indent(second_indent, SIN_CHANGED); +--- 5922,5928 ---- + { + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +! change_indent(INDENT_SET, second_indent, FALSE, NUL, TRUE); + else + #endif + (void)set_indent(second_indent, SIN_CHANGED); +*************** +*** 7227,7233 **** + fixthisline(get_the_indent) + int (*get_the_indent) __ARGS((void)); + { +! change_indent(INDENT_SET, get_the_indent(), FALSE, 0); + if (linewhite(curwin->w_cursor.lnum)) + did_ai = TRUE; /* delete the indent if the line stays empty */ + } +--- 7228,7234 ---- + fixthisline(get_the_indent) + int (*get_the_indent) __ARGS((void)); + { +! change_indent(INDENT_SET, get_the_indent(), FALSE, 0, TRUE); + if (linewhite(curwin->w_cursor.lnum)) + did_ai = TRUE; /* delete the indent if the line stays empty */ + } +*************** +*** 8170,8179 **** + replace_pop_ins(); + if (lastc == '^') + old_indent = get_indent(); /* remember curr. indent */ +! change_indent(INDENT_SET, 0, TRUE, 0); + } + else +! change_indent(c == Ctrl_D ? INDENT_DEC : INDENT_INC, 0, TRUE, 0); + + if (did_ai && *skipwhite(ml_get_curline()) != NUL) + did_ai = FALSE; +--- 8171,8180 ---- + replace_pop_ins(); + if (lastc == '^') + old_indent = get_indent(); /* remember curr. indent */ +! change_indent(INDENT_SET, 0, TRUE, 0, TRUE); + } + else +! change_indent(c == Ctrl_D ? INDENT_DEC : INDENT_INC, 0, TRUE, 0, TRUE); + + if (did_ai && *skipwhite(ml_get_curline()) != NUL) + did_ai = FALSE; +*************** +*** 9633,9639 **** + curwin->w_cursor = old_pos; + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +! change_indent(INDENT_SET, i, FALSE, NUL); + else + #endif + (void)set_indent(i, SIN_CHANGED); +--- 9634,9640 ---- + curwin->w_cursor = old_pos; + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +! change_indent(INDENT_SET, i, FALSE, NUL, TRUE); + else + #endif + (void)set_indent(i, SIN_CHANGED); +*************** +*** 9662,9668 **** + curwin->w_cursor = old_pos; + } + if (temp) +! shift_line(TRUE, FALSE, 1); + } + } + +--- 9663,9669 ---- + curwin->w_cursor = old_pos; + } + if (temp) +! shift_line(TRUE, FALSE, 1, TRUE); + } + } + +*** ../vim-7.1.230/src/ops.c Thu Jan 3 16:31:17 2008 +--- src/ops.c Sun Jan 13 21:52:18 2008 +*************** +*** 258,264 **** + if (first_char != '#' || !preprocs_left()) + #endif + { +! shift_line(oap->op_type == OP_LSHIFT, p_sr, amount); + } + ++curwin->w_cursor.lnum; + } +--- 258,264 ---- + if (first_char != '#' || !preprocs_left()) + #endif + { +! shift_line(oap->op_type == OP_LSHIFT, p_sr, amount, FALSE); + } + ++curwin->w_cursor.lnum; + } +*************** +*** 321,330 **** + * leaves cursor on first blank in the line + */ + void +! shift_line(left, round, amount) + int left; + int round; + int amount; + { + int count; + int i, j; +--- 321,331 ---- + * leaves cursor on first blank in the line + */ + void +! shift_line(left, round, amount, call_changed_bytes) + int left; + int round; + int amount; ++ int call_changed_bytes; /* call changed_bytes() */ + { + int count; + int i, j; +*************** +*** 363,372 **** + /* Set new indent */ + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +! change_indent(INDENT_SET, count, FALSE, NUL); + else + #endif +! (void)set_indent(count, SIN_CHANGED); + } + + #if defined(FEAT_VISUALEXTRA) || defined(PROTO) +--- 364,373 ---- + /* Set new indent */ + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +! change_indent(INDENT_SET, count, FALSE, NUL, call_changed_bytes); + else + #endif +! (void)set_indent(count, call_changed_bytes ? SIN_CHANGED : 0); + } + + #if defined(FEAT_VISUALEXTRA) || defined(PROTO) +*** ../vim-7.1.230/src/proto/edit.pro Wed Jan 2 17:48:24 2008 +--- src/proto/edit.pro Sun Jan 13 21:52:27 2008 +*************** +*** 3,9 **** + void edit_putchar __ARGS((int c, int highlight)); + void edit_unputchar __ARGS((void)); + void display_dollar __ARGS((colnr_T col)); +! void change_indent __ARGS((int type, int amount, int round, int replaced)); + void truncate_spaces __ARGS((char_u *line)); + void backspace_until_column __ARGS((int col)); + int vim_is_ctrl_x_key __ARGS((int c)); +--- 3,9 ---- + void edit_putchar __ARGS((int c, int highlight)); + void edit_unputchar __ARGS((void)); + void display_dollar __ARGS((colnr_T col)); +! void change_indent __ARGS((int type, int amount, int round, int replaced, int call_changed_bytes)); + void truncate_spaces __ARGS((char_u *line)); + void backspace_until_column __ARGS((int col)); + int vim_is_ctrl_x_key __ARGS((int c)); +*** ../vim-7.1.230/src/proto/ops.pro Sun May 6 13:56:32 2007 +--- src/proto/ops.pro Sun Jan 13 21:52:30 2008 +*************** +*** 4,10 **** + int get_op_char __ARGS((int optype)); + int get_extra_op_char __ARGS((int optype)); + void op_shift __ARGS((oparg_T *oap, int curs_top, int amount)); +! void shift_line __ARGS((int left, int round, int amount)); + void op_reindent __ARGS((oparg_T *oap, int (*how)(void))); + int get_expr_register __ARGS((void)); + void set_expr_line __ARGS((char_u *new_line)); +--- 4,10 ---- + int get_op_char __ARGS((int optype)); + int get_extra_op_char __ARGS((int optype)); + void op_shift __ARGS((oparg_T *oap, int curs_top, int amount)); +! void shift_line __ARGS((int left, int round, int amount, int call_changed_bytes)); + void op_reindent __ARGS((oparg_T *oap, int (*how)(void))); + int get_expr_register __ARGS((void)); + void set_expr_line __ARGS((char_u *new_line)); +*** ../vim-7.1.230/src/version.c Tue Jan 15 22:16:36 2008 +--- src/version.c Wed Jan 16 19:58:25 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 231, + /**/ + +-- +Snoring is prohibited unless all bedroom windows are closed and securely +locked. + [real standing law in Massachusetts, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.232 b/7.1.232 new file mode 100644 index 00000000..092d6fa9 --- /dev/null +++ b/7.1.232 @@ -0,0 +1,70 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.232 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.232 (after 7.1.207 and 7.1.211) +Problem: Compiler warnings with MSVC. +Solution: Add type casts. (Mike Williams) +Files: src/ex_cmds2.c, src/netbeans.c + + +*** ../vim-7.1.231/src/ex_cmds2.c Tue Jan 15 22:16:36 2008 +--- src/ex_cmds2.c Tue Jan 15 20:41:28 2008 +*************** +*** 916,922 **** + + QueryPerformanceCounter(tm); + QueryPerformanceFrequency(&fr); +! tm->QuadPart += (double)msec / 1000.0 * (double)fr.QuadPart; + # else + long usec; + +--- 916,922 ---- + + QueryPerformanceCounter(tm); + QueryPerformanceFrequency(&fr); +! tm->QuadPart += (LONGLONG)((double)msec / 1000.0 * (double)fr.QuadPart); + # else + long usec; + +*** ../vim-7.1.231/src/netbeans.c Sat Jan 5 18:06:33 2008 +--- src/netbeans.c Mon Jan 14 21:11:02 2008 +*************** +*** 1217,1223 **** + + oldtext = ml_get(lnum); + oldlen = STRLEN(oldtext); +! if (first >= oldlen || oldlen == 0) /* just in case */ + return; + if (lastbyte >= oldlen) + lastbyte = oldlen - 1; +--- 1217,1223 ---- + + oldtext = ml_get(lnum); + oldlen = STRLEN(oldtext); +! if (first >= (colnr_T)oldlen || oldlen == 0) /* just in case */ + return; + if (lastbyte >= oldlen) + lastbyte = oldlen - 1; +*** ../vim-7.1.231/src/version.c Wed Jan 16 20:01:14 2008 +--- src/version.c Fri Jan 18 11:38:39 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 232, + /**/ + +-- +Why is "abbreviation" such a long word? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.233 b/7.1.233 new file mode 100644 index 00000000..b2f07e3f --- /dev/null +++ b/7.1.233 @@ -0,0 +1,109 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.233 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.233 +Problem: Crash when doing Insert mode completion for a user defined + command. (Yegappan Lakshmanan) +Solution: Don't use the non-existing command line. +Files: src/ex_getln.c + + +*** ../vim-7.1.232/src/ex_getln.c Fri Jan 4 15:16:57 2008 +--- src/ex_getln.c Fri Jan 18 13:07:11 2008 +*************** +*** 4655,4661 **** + static void * call_user_expand_func __ARGS((void *(*user_expand_func) __ARGS((char_u *, int, char_u **, int)), expand_T *xp, int *num_file, char_u ***file)); + + /* +! * call "user_expand_func()" to invoke a user defined VimL function and return + * the result (either a string or a List). + */ + static void * +--- 4655,4661 ---- + static void * call_user_expand_func __ARGS((void *(*user_expand_func) __ARGS((char_u *, int, char_u **, int)), expand_T *xp, int *num_file, char_u ***file)); + + /* +! * Call "user_expand_func()" to invoke a user defined VimL function and return + * the result (either a string or a List). + */ + static void * +*************** +*** 4677,4687 **** + *num_file = 0; + *file = NULL; + +! keep = ccline.cmdbuff[ccline.cmdlen]; +! ccline.cmdbuff[ccline.cmdlen] = 0; +! sprintf((char *)num, "%d", ccline.cmdpos); + args[0] = xp->xp_pattern; +- args[1] = ccline.cmdbuff; + args[2] = num; + + /* Save the cmdline, we don't know what the function may do. */ +--- 4677,4698 ---- + *num_file = 0; + *file = NULL; + +! if (ccline.cmdbuff == NULL) +! { +! /* Completion from Insert mode, pass fake arguments. */ +! keep = 0; +! sprintf((char *)num, "%d", STRLEN(xp->xp_pattern)); +! args[1] = xp->xp_pattern; +! } +! else +! { +! /* Completion on the command line, pass real arguments. */ +! keep = ccline.cmdbuff[ccline.cmdlen]; +! ccline.cmdbuff[ccline.cmdlen] = 0; +! sprintf((char *)num, "%d", ccline.cmdpos); +! args[1] = ccline.cmdbuff; +! } + args[0] = xp->xp_pattern; + args[2] = num; + + /* Save the cmdline, we don't know what the function may do. */ +*************** +*** 4694,4701 **** + + ccline = save_ccline; + current_SID = save_current_SID; +! +! ccline.cmdbuff[ccline.cmdlen] = keep; + + return ret; + } +--- 4705,4712 ---- + + ccline = save_ccline; + current_SID = save_current_SID; +! if (ccline.cmdbuff != NULL) +! ccline.cmdbuff[ccline.cmdlen] = keep; + + return ret; + } +*** ../vim-7.1.232/src/version.c Fri Jan 18 11:40:02 2008 +--- src/version.c Fri Jan 18 13:01:05 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 233, + /**/ + +-- +"I love deadlines. I especially like the whooshing sound they +make as they go flying by." + -- Douglas Adams + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.234 b/7.1.234 new file mode 100644 index 00000000..03fa34da --- /dev/null +++ b/7.1.234 @@ -0,0 +1,210 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.234 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.234 +Problem: When diff'ing three files the third one isn't displayed correctly. + (Gary Johnson) +Solution: Compute the size of diff blocks correctly when merging blocks. + Compute filler lines correctly when scrolling. +Files: src/diff.c + + +*** ../vim-7.1.233/src/diff.c Fri Oct 19 18:57:33 2007 +--- src/diff.c Fri Jan 18 17:32:31 2008 +*************** +*** 1299,1305 **** + } + else + /* second overlap of new block with existing block */ +! dp->df_count[idx_new] += count_new - count_orig; + + /* Adjust the size of the block to include all the lines to the + * end of the existing block or the new diff, whatever ends last. */ +--- 1299,1307 ---- + } + else + /* second overlap of new block with existing block */ +! dp->df_count[idx_new] += count_new - count_orig +! + dpl->df_lnum[idx_orig] + dpl->df_count[idx_orig] +! - (dp->df_lnum[idx_orig] + dp->df_count[idx_orig]); + + /* Adjust the size of the block to include all the lines to the + * end of the existing block or the new diff, whatever ends last. */ +*************** +*** 1628,1641 **** + win_T *fromwin; + win_T *towin; + { +! buf_T *buf = fromwin->w_buffer; + linenr_T lnum = fromwin->w_topline; +! int idx; + diff_T *dp; + int i; + +! idx = diff_buf_idx(buf); +! if (idx == DB_COUNT) + return; /* safety check */ + + if (curtab->tp_diff_invalid) +--- 1630,1645 ---- + win_T *fromwin; + win_T *towin; + { +! buf_T *frombuf = fromwin->w_buffer; + linenr_T lnum = fromwin->w_topline; +! int fromidx; +! int toidx; + diff_T *dp; ++ int max_count; + int i; + +! fromidx = diff_buf_idx(frombuf); +! if (fromidx == DB_COUNT) + return; /* safety check */ + + if (curtab->tp_diff_invalid) +*************** +*** 1645,1686 **** + + /* search for a change that includes "lnum" in the list of diffblocks. */ + for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next) +! if (lnum <= dp->df_lnum[idx] + dp->df_count[idx]) + break; + if (dp == NULL) + { + /* After last change, compute topline relative to end of file; no + * filler lines. */ + towin->w_topline = towin->w_buffer->b_ml.ml_line_count +! - (buf->b_ml.ml_line_count - lnum); + } + else + { + /* Find index for "towin". */ +! i = diff_buf_idx(towin->w_buffer); +! if (i == DB_COUNT) + return; /* safety check */ + +! towin->w_topline = lnum + (dp->df_lnum[i] - dp->df_lnum[idx]); +! if (lnum >= dp->df_lnum[idx]) + { +! /* Inside a change: compute filler lines. */ +! if (dp->df_count[i] == dp->df_count[idx]) + towin->w_topfill = fromwin->w_topfill; +! else if (dp->df_count[i] > dp->df_count[idx]) + { +! if (lnum == dp->df_lnum[idx] + dp->df_count[idx]) +! towin->w_topline = dp->df_lnum[i] + dp->df_count[i] +! - fromwin->w_topfill; + } +! else + { +! if (towin->w_topline >= dp->df_lnum[i] + dp->df_count[i]) + { +! if (diff_flags & DIFF_FILLER) +! towin->w_topfill = dp->df_lnum[idx] +! + dp->df_count[idx] - lnum; +! towin->w_topline = dp->df_lnum[i] + dp->df_count[i]; + } + } + } +--- 1649,1720 ---- + + /* search for a change that includes "lnum" in the list of diffblocks. */ + for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next) +! if (lnum <= dp->df_lnum[fromidx] + dp->df_count[fromidx]) + break; + if (dp == NULL) + { + /* After last change, compute topline relative to end of file; no + * filler lines. */ + towin->w_topline = towin->w_buffer->b_ml.ml_line_count +! - (frombuf->b_ml.ml_line_count - lnum); + } + else + { + /* Find index for "towin". */ +! toidx = diff_buf_idx(towin->w_buffer); +! if (toidx == DB_COUNT) + return; /* safety check */ + +! towin->w_topline = lnum + (dp->df_lnum[toidx] - dp->df_lnum[fromidx]); +! if (lnum >= dp->df_lnum[fromidx]) + { +! /* Inside a change: compute filler lines. With three or more +! * buffers we need to know the largest count. */ +! max_count = 0; +! for (i = 0; i < DB_COUNT; ++i) +! if (curtab->tp_diffbuf[i] != NULL +! && max_count < dp->df_count[i]) +! max_count = dp->df_count[i]; +! +! if (dp->df_count[toidx] == dp->df_count[fromidx]) +! { +! /* same number of lines: use same filler count */ + towin->w_topfill = fromwin->w_topfill; +! } +! else if (dp->df_count[toidx] > dp->df_count[fromidx]) + { +! if (lnum == dp->df_lnum[fromidx] + dp->df_count[fromidx]) +! { +! /* more lines in towin and fromwin doesn't show diff +! * lines, only filler lines */ +! if (max_count - fromwin->w_topfill >= dp->df_count[toidx]) +! { +! /* towin also only shows filler lines */ +! towin->w_topline = dp->df_lnum[toidx] +! + dp->df_count[toidx]; +! towin->w_topfill = fromwin->w_topfill; +! } +! else +! /* towin still has some diff lines to show */ +! towin->w_topline = dp->df_lnum[toidx] +! + max_count - fromwin->w_topfill; +! } + } +! else if (towin->w_topline >= dp->df_lnum[toidx] +! + dp->df_count[toidx]) + { +! /* less lines in towin and no diff lines to show: compute +! * filler lines */ +! towin->w_topline = dp->df_lnum[toidx] + dp->df_count[toidx]; +! if (diff_flags & DIFF_FILLER) + { +! if (lnum == dp->df_lnum[fromidx] + dp->df_count[fromidx]) +! /* fromwin is also out of diff lines */ +! towin->w_topfill = fromwin->w_topfill; +! else +! /* fromwin has some diff lines */ +! towin->w_topfill = dp->df_lnum[fromidx] +! + max_count - lnum; + } + } + } +*** ../vim-7.1.233/src/version.c Fri Jan 18 13:15:32 2008 +--- src/version.c Fri Jan 18 17:37:32 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 234, + /**/ + +-- +ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY + KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T + HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR + LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER), + BROTHER MAYNARD + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.235 b/7.1.235 new file mode 100644 index 00000000..4ea2e396 --- /dev/null +++ b/7.1.235 @@ -0,0 +1,199 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.235 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.235 +Problem: Pattern matching is slow when using a lot of simple patterns. +Solution: Avoid allocating memory by not freeing it when it's not so much. + (Alexei Alexandrov) +Files: src/regexp.c + + +*** ../vim-7.1.234/src/regexp.c Wed Jan 2 15:34:48 2008 +--- src/regexp.c Fri Jan 18 20:35:21 2008 +*************** +*** 378,391 **** + + static char_u *reg_prev_sub = NULL; + +- #if defined(EXITFREE) || defined(PROTO) +- void +- free_regexp_stuff() +- { +- vim_free(reg_prev_sub); +- } +- #endif +- + /* + * REGEXP_INRANGE contains all characters which are always special in a [] + * range after '\'. +--- 378,383 ---- +*************** +*** 3206,3217 **** + } backpos_T; + + /* +! * regstack and backpos are used by regmatch(). They are kept over calls to +! * avoid invoking malloc() and free() often. + */ +! static garray_T regstack; /* stack with regitem_T items, sometimes +! preceded by regstar_T or regbehind_T. */ +! static garray_T backpos; /* table with backpos_T for BACK */ + + /* + * Get pointer to the line "lnum", which is relative to "reg_firstlnum". +--- 3198,3236 ---- + } backpos_T; + + /* +! * "regstack" and "backpos" are used by regmatch(). They are kept over calls +! * to avoid invoking malloc() and free() often. +! * "regstack" is a stack with regitem_T items, sometimes preceded by regstar_T +! * or regbehind_T. +! * "backpos_T" is a table with backpos_T for BACK +! */ +! static garray_T regstack = {0, 0, 0, 0, NULL}; +! static garray_T backpos = {0, 0, 0, 0, NULL}; +! +! /* +! * Both for regstack and backpos tables we use the following strategy of +! * allocation (to reduce malloc/free calls): +! * - Initial size is fairly small. +! * - When needed, the tables are grown bigger (8 times at first, double after +! * that). +! * - After executing the match we free the memory only if the array has grown. +! * Thus the memory is kept allocated when it's at the initial size. +! * This makes it fast while not keeping a lot of memory allocated. +! * A three times speed increase was observed when using many simple patterns. + */ +! #define REGSTACK_INITIAL 2048 +! #define BACKPOS_INITIAL 64 +! +! #if defined(EXITFREE) || defined(PROTO) +! void +! free_regexp_stuff() +! { +! ga_clear(®stack); +! ga_clear(&backpos); +! vim_free(reg_tofree); +! vim_free(reg_prev_sub); +! } +! #endif + + /* + * Get pointer to the line "lnum", which is relative to "reg_firstlnum". +*************** +*** 3346,3360 **** + char_u *s; + long retval = 0L; + +! reg_tofree = NULL; +! +! /* Init the regstack empty. Use an item size of 1 byte, since we push +! * different things onto it. Use a large grow size to avoid reallocating +! * it too often. */ +! ga_init2(®stack, 1, 10000); +! +! /* Init the backpos table empty. */ +! ga_init2(&backpos, sizeof(backpos_T), 10); + + if (REG_MULTI) + { +--- 3365,3389 ---- + char_u *s; + long retval = 0L; + +! /* Create "regstack" and "backpos" if they are not allocated yet. +! * We allocate *_INITIAL amount of bytes first and then set the grow size +! * to much bigger value to avoid many malloc calls in case of deep regular +! * expressions. */ +! if (regstack.ga_data == NULL) +! { +! /* Use an item size of 1 byte, since we push different things +! * onto the regstack. */ +! ga_init2(®stack, 1, REGSTACK_INITIAL); +! ga_grow(®stack, REGSTACK_INITIAL); +! regstack.ga_growsize = REGSTACK_INITIAL * 8; +! } +! +! if (backpos.ga_data == NULL) +! { +! ga_init2(&backpos, sizeof(backpos_T), BACKPOS_INITIAL); +! ga_grow(&backpos, BACKPOS_INITIAL); +! backpos.ga_growsize = BACKPOS_INITIAL * 8; +! } + + if (REG_MULTI) + { +*************** +*** 3525,3533 **** + } + + theend: +! vim_free(reg_tofree); +! ga_clear(®stack); +! ga_clear(&backpos); + + return retval; + } +--- 3554,3570 ---- + } + + theend: +! /* Free "reg_tofree" when it's a bit big. +! * Free regstack and backpos if they are bigger than their initial size. */ +! if (reg_tofreelen > 400) +! { +! vim_free(reg_tofree); +! reg_tofree = NULL; +! } +! if (regstack.ga_maxlen > REGSTACK_INITIAL) +! ga_clear(®stack); +! if (backpos.ga_maxlen > BACKPOS_INITIAL) +! ga_clear(&backpos); + + return retval; + } +*************** +*** 3717,3724 **** + #define RA_MATCH 4 /* successful match */ + #define RA_NOMATCH 5 /* didn't match */ + +! /* Init the regstack and backpos table empty. They are initialized and +! * freed in vim_regexec_both() to reduce malloc()/free() calls. */ + regstack.ga_len = 0; + backpos.ga_len = 0; + +--- 3754,3761 ---- + #define RA_MATCH 4 /* successful match */ + #define RA_NOMATCH 5 /* didn't match */ + +! /* Make "regstack" and "backpos" empty. They are allocated and freed in +! * vim_regexec_both() to reduce malloc()/free() calls. */ + regstack.ga_len = 0; + backpos.ga_len = 0; + +*** ../vim-7.1.234/src/version.c Fri Jan 18 17:39:10 2008 +--- src/version.c Fri Jan 18 20:33:26 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 235, + /**/ + +-- +NEIL INNES PLAYED: THE FIRST SELF-DESTRUCTIVE MONK, ROBIN'S LEAST FAVORITE + MINSTREL, THE PAGE CRUSHED BY A RABBIT, THE OWNER OF A DUCK + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.236 b/7.1.236 new file mode 100644 index 00000000..32944c75 --- /dev/null +++ b/7.1.236 @@ -0,0 +1,920 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.236 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.236 +Problem: When using 'incsearch' and 'hlsearch' a complicated pattern may + make Vim hang until CTRL-C is pressed. +Solution: Add the 'redrawtime' option. +Files: runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c, + src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c, + src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro, + src/proto/search.pro, src/search.c, src/screen.c, + src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c, + src/vim.h + + +*** ../vim-7.1.235/runtime/doc/options.txt Sun Aug 12 16:55:01 2007 +--- runtime/doc/options.txt Sat Jan 19 14:01:22 2008 +*************** +*** 3618,3623 **** +--- 3636,3642 ---- + When you get bored looking at the highlighted matches, you can turn it + off with |:nohlsearch|. As soon as you use a search command, the + highlighting comes back. ++ 'redrawtime' specifies the maximum time spend on finding matches. + When the search pattern can match an end-of-line, Vim will try to + highlight all of the matched text. However, this depends on where the + search starts. This will be the first line in the window or the first +*************** +*** 3851,3856 **** +--- 3870,3879 ---- + original position when no match is found and when pressing . You + still need to finish the search command with to move the + cursor to the match. ++ When compiled with the |+reltime| feature Vim only searches for about ++ half a second. With a complicated pattern and/or a lot of text the ++ match may not be found. This is to avoid that Vim hangs while you ++ are typing the pattern. + The highlighting can be set with the 'i' flag in 'highlight'. + See also: 'hlsearch'. + CTRL-L can be used to add one character from after the current match +*************** +*** 5185,5190 **** +--- 5210,5227 ---- + {not in Vi:} When using the ":view" command the 'readonly' option is + set for the newly edited buffer. + ++ *'redrawtime'* *'rdt'* ++ 'redrawtime' 'rdt' number (default 2000) ++ global ++ {not in Vi} ++ {only available when compiled with the |+reltime| ++ feature} ++ The time in milliseconds for redrawing the display. This applies to ++ searching for patterns for 'hlsearch' and |:match| highlighting. ++ When redrawing takes more than this many milliseconds no further ++ matches will be highlighted. This is used to avoid that Vim hangs ++ when using a very complicated pattern. ++ + *'remap'* *'noremap'* + 'remap' boolean (default on) + global +*** ../vim-7.1.235/src/ex_cmds.c Sun Jan 13 13:30:34 2008 +--- src/ex_cmds.c Sat Jan 19 13:04:28 2008 +*************** +*** 4446,4452 **** + #endif + ); ++lnum) + { +! nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0); + if (nmatch) + { + colnr_T copycol; +--- 4446,4453 ---- + #endif + ); ++lnum) + { +! nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum, +! (colnr_T)0, NULL); + if (nmatch) + { + colnr_T copycol; +*************** +*** 4957,4963 **** + || (do_ask && !re_lookbehind(regmatch.regprog)) + || nmatch_tl > 0 + || (nmatch = vim_regexec_multi(®match, curwin, +! curbuf, sub_firstlnum, matchcol)) == 0 + || regmatch.startpos[0].lnum > 0) + { + if (new_start != NULL) +--- 4958,4965 ---- + || (do_ask && !re_lookbehind(regmatch.regprog)) + || nmatch_tl > 0 + || (nmatch = vim_regexec_multi(®match, curwin, +! curbuf, sub_firstlnum, +! matchcol, NULL)) == 0 + || regmatch.startpos[0].lnum > 0) + { + if (new_start != NULL) +*************** +*** 5022,5028 **** + } + if (nmatch == -1 && !lastone) + nmatch = vim_regexec_multi(®match, curwin, curbuf, +! sub_firstlnum, matchcol); + + /* + * 5. break if there isn't another match in this line +--- 5024,5030 ---- + } + if (nmatch == -1 && !lastone) + nmatch = vim_regexec_multi(®match, curwin, curbuf, +! sub_firstlnum, matchcol, NULL); + + /* + * 5. break if there isn't another match in this line +*************** +*** 5252,5258 **** + for (lnum = eap->line1; lnum <= eap->line2 && !got_int; ++lnum) + { + /* a match on this line? */ +! match = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0); + if ((type == 'g' && match) || (type == 'v' && !match)) + { + ml_setmarked(lnum); +--- 5254,5261 ---- + for (lnum = eap->line1; lnum <= eap->line2 && !got_int; ++lnum) + { + /* a match on this line? */ +! match = vim_regexec_multi(®match, curwin, curbuf, lnum, +! (colnr_T)0, NULL); + if ((type == 'g' && match) || (type == 'v' && !match)) + { + ml_setmarked(lnum); +*** ../vim-7.1.235/src/ex_docmd.c Sun Jan 13 17:11:25 2008 +--- src/ex_docmd.c Fri Jan 18 21:01:16 2008 +*************** +*** 3931,3937 **** + curwin->w_cursor.col = 0; + searchcmdlen = 0; + if (!do_search(NULL, c, cmd, 1L, +! SEARCH_HIS + SEARCH_MSG + SEARCH_START)) + { + curwin->w_cursor = pos; + cmd = NULL; +--- 3931,3938 ---- + curwin->w_cursor.col = 0; + searchcmdlen = 0; + if (!do_search(NULL, c, cmd, 1L, +! SEARCH_HIS + SEARCH_MSG + SEARCH_START, +! NULL)) + { + curwin->w_cursor = pos; + cmd = NULL; +*** ../vim-7.1.235/src/ex_getln.c Fri Jan 18 13:15:32 2008 +--- src/ex_getln.c Fri Jan 18 21:34:42 2008 +*************** +*** 1709,1714 **** +--- 1709,1717 ---- + if (p_is && !cmd_silent && (firstc == '/' || firstc == '?')) + { + pos_T end_pos; ++ #ifdef FEAT_RELTIME ++ proftime_T tm; ++ #endif + + /* if there is a character waiting, search and redraw later */ + if (char_avail()) +*************** +*** 1727,1734 **** + cursor_off(); /* so the user knows we're busy */ + out_flush(); + ++emsg_off; /* So it doesn't beep if bad expr */ + i = do_search(NULL, firstc, ccline.cmdbuff, count, +! SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK); + --emsg_off; + /* if interrupted while searching, behave like it failed */ + if (got_int) +--- 1730,1747 ---- + cursor_off(); /* so the user knows we're busy */ + out_flush(); + ++emsg_off; /* So it doesn't beep if bad expr */ ++ #ifdef FEAT_RELTIME ++ /* Set the time limit to half a second. */ ++ profile_setlimit(500L, &tm); ++ #endif + i = do_search(NULL, firstc, ccline.cmdbuff, count, +! SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK, +! #ifdef FEAT_RELTIME +! &tm +! #else +! NULL +! #endif +! ); + --emsg_off; + /* if interrupted while searching, behave like it failed */ + if (got_int) +*** ../vim-7.1.235/src/gui.c Thu Jan 3 16:14:25 2008 +--- src/gui.c Fri Jan 18 21:01:36 2008 +*************** +*** 5052,5058 **** + /* Search for the next match. */ + i = msg_scroll; + do_search(NULL, down ? '/' : '?', ga.ga_data, 1L, +! SEARCH_MSG + SEARCH_MARK); + msg_scroll = i; /* don't let an error message set msg_scroll */ + } + +--- 5052,5058 ---- + /* Search for the next match. */ + i = msg_scroll; + do_search(NULL, down ? '/' : '?', ga.ga_data, 1L, +! SEARCH_MSG + SEARCH_MARK, NULL); + msg_scroll = i; /* don't let an error message set msg_scroll */ + } + +*** ../vim-7.1.235/src/misc1.c Thu Jan 3 12:42:38 2008 +--- src/misc1.c Sat Jan 19 13:04:39 2008 +*************** +*** 437,443 **** + { + regmatch.rmm_ic = FALSE; + regmatch.rmm_maxcol = 0; +! if (vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0)) + { + pos.lnum = regmatch.endpos[0].lnum + lnum; + pos.col = regmatch.endpos[0].col; +--- 437,444 ---- + { + regmatch.rmm_ic = FALSE; + regmatch.rmm_maxcol = 0; +! if (vim_regexec_multi(®match, curwin, curbuf, lnum, +! (colnr_T)0, NULL)) + { + pos.lnum = regmatch.endpos[0].lnum + lnum; + pos.col = regmatch.endpos[0].col; +*** ../vim-7.1.235/src/normal.c Sat Jan 12 17:11:25 2008 +--- src/normal.c Fri Jan 18 21:01:47 2008 +*************** +*** 6093,6099 **** + curwin->w_set_curswant = TRUE; + + i = do_search(cap->oap, dir, pat, cap->count1, +! opt | SEARCH_OPT | SEARCH_ECHO | SEARCH_MSG); + if (i == 0) + clearop(cap->oap); + else +--- 6093,6099 ---- + curwin->w_set_curswant = TRUE; + + i = do_search(cap->oap, dir, pat, cap->count1, +! opt | SEARCH_OPT | SEARCH_ECHO | SEARCH_MSG, NULL); + if (i == 0) + clearop(cap->oap); + else +*** ../vim-7.1.235/src/option.c Tue Oct 2 20:40:01 2007 +--- src/option.c Sat Jan 19 13:44:33 2008 +*************** +*** 1991,1996 **** +--- 1991,2003 ---- + {"redraw", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L}}, ++ {"redrawtime", "rdt", P_NUM|P_VI_DEF, ++ #ifdef FEAT_RELTIME ++ (char_u *)&p_rdt, PV_NONE, ++ #else ++ (char_u *)NULL, PV_NONE, ++ #endif ++ {(char_u *)2000L, (char_u *)0L}}, + {"remap", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_remap, PV_NONE, + {(char_u *)TRUE, (char_u *)0L}}, +*** ../vim-7.1.235/src/quickfix.c Sun Sep 30 14:00:41 2007 +--- src/quickfix.c Sat Jan 19 13:04:53 2008 +*************** +*** 1803,1809 **** + /* Move the cursor to the first line in the buffer */ + save_cursor = curwin->w_cursor; + curwin->w_cursor.lnum = 0; +! if (!do_search(NULL, '/', qf_ptr->qf_pattern, (long)1, SEARCH_KEEP)) + curwin->w_cursor = save_cursor; + } + +--- 1803,1810 ---- + /* Move the cursor to the first line in the buffer */ + save_cursor = curwin->w_cursor; + curwin->w_cursor.lnum = 0; +! if (!do_search(NULL, '/', qf_ptr->qf_pattern, (long)1, +! SEARCH_KEEP, NULL)) + curwin->w_cursor = save_cursor; + } + +*************** +*** 3159,3165 **** + { + col = 0; + while (vim_regexec_multi(®match, curwin, buf, lnum, +! col) > 0) + { + ; + if (qf_add_entry(qi, &prevp, +--- 3160,3166 ---- + { + col = 0; + while (vim_regexec_multi(®match, curwin, buf, lnum, +! col, NULL) > 0) + { + ; + if (qf_add_entry(qi, &prevp, +*** ../vim-7.1.235/src/regexp.c Fri Jan 18 20:36:40 2008 +--- src/regexp.c Sat Jan 19 15:18:12 2008 +*************** +*** 3040,3046 **** + } save_se_T; + + static char_u *reg_getline __ARGS((linenr_T lnum)); +! static long vim_regexec_both __ARGS((char_u *line, colnr_T col)); + static long regtry __ARGS((regprog_T *prog, colnr_T col)); + static void cleanup_subexpr __ARGS((void)); + #ifdef FEAT_SYN_HL +--- 3040,3046 ---- + } save_se_T; + + static char_u *reg_getline __ARGS((linenr_T lnum)); +! static long vim_regexec_both __ARGS((char_u *line, colnr_T col, proftime_T *tm)); + static long regtry __ARGS((regprog_T *prog, colnr_T col)); + static void cleanup_subexpr __ARGS((void)); + #ifdef FEAT_SYN_HL +*************** +*** 3284,3290 **** + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return (vim_regexec_both(line, col) != 0); + } + + #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \ +--- 3284,3290 ---- + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return (vim_regexec_both(line, col, NULL) != 0); + } + + #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \ +*************** +*** 3308,3314 **** + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return (vim_regexec_both(line, col) != 0); + } + #endif + +--- 3308,3314 ---- + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return (vim_regexec_both(line, col, NULL) != 0); + } + #endif + +*************** +*** 3321,3332 **** + * match otherwise. + */ + long +! vim_regexec_multi(rmp, win, buf, lnum, col) + regmmatch_T *rmp; + win_T *win; /* window in which to search or NULL */ + buf_T *buf; /* buffer in which to search */ + linenr_T lnum; /* nr of line to start looking for match */ + colnr_T col; /* column to start looking for match */ + { + long r; + buf_T *save_curbuf = curbuf; +--- 3321,3333 ---- + * match otherwise. + */ + long +! vim_regexec_multi(rmp, win, buf, lnum, col, tm) + regmmatch_T *rmp; + win_T *win; /* window in which to search or NULL */ + buf_T *buf; /* buffer in which to search */ + linenr_T lnum; /* nr of line to start looking for match */ + colnr_T col; /* column to start looking for match */ ++ proftime_T *tm; /* timeout limit or NULL */ + { + long r; + buf_T *save_curbuf = curbuf; +*************** +*** 3346,3352 **** + + /* Need to switch to buffer "buf" to make vim_iswordc() work. */ + curbuf = buf; +! r = vim_regexec_both(NULL, col); + curbuf = save_curbuf; + + return r; +--- 3347,3353 ---- + + /* Need to switch to buffer "buf" to make vim_iswordc() work. */ + curbuf = buf; +! r = vim_regexec_both(NULL, col, tm); + curbuf = save_curbuf; + + return r; +*************** +*** 3356,3365 **** + * Match a regexp against a string ("line" points to the string) or multiple + * lines ("line" is NULL, use reg_getline()). + */ + static long +! vim_regexec_both(line, col) + char_u *line; + colnr_T col; /* column to start looking for match */ + { + regprog_T *prog; + char_u *s; +--- 3357,3368 ---- + * Match a regexp against a string ("line" points to the string) or multiple + * lines ("line" is NULL, use reg_getline()). + */ ++ /*ARGSUSED*/ + static long +! vim_regexec_both(line, col, tm) + char_u *line; + colnr_T col; /* column to start looking for match */ ++ proftime_T *tm; /* timeout limit or NULL */ + { + regprog_T *prog; + char_u *s; +*************** +*** 3502,3507 **** +--- 3505,3513 ---- + } + else + { ++ #ifdef FEAT_RELTIME ++ int tm_count = 0; ++ #endif + /* Messy cases: unanchored match. */ + while (!got_int) + { +*************** +*** 3550,3555 **** +--- 3556,3570 ---- + else + #endif + ++col; ++ #ifdef FEAT_RELTIME ++ /* Check for timeout once in a twenty times to avoid overhead. */ ++ if (tm != NULL && ++tm_count == 20) ++ { ++ tm_count = 0; ++ if (profile_passed_limit(tm)) ++ break; ++ } ++ #endif + } + } + +*** ../vim-7.1.235/src/proto/regexp.pro Sat May 5 19:42:08 2007 +--- src/proto/regexp.pro Sat Jan 19 13:14:09 2008 +*************** +*** 1,13 **** + /* regexp.c */ +- void free_regexp_stuff __ARGS((void)); + int re_multiline __ARGS((regprog_T *prog)); + int re_lookbehind __ARGS((regprog_T *prog)); + char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp)); + regprog_T *vim_regcomp __ARGS((char_u *expr, int re_flags)); + int vim_regcomp_had_eol __ARGS((void)); + int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col)); + int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col)); +! long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col)); + reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em)); + void unref_extmatch __ARGS((reg_extmatch_T *em)); + char_u *regtilde __ARGS((char_u *source, int magic)); +--- 1,13 ---- + /* regexp.c */ + int re_multiline __ARGS((regprog_T *prog)); + int re_lookbehind __ARGS((regprog_T *prog)); + char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp)); + regprog_T *vim_regcomp __ARGS((char_u *expr, int re_flags)); + int vim_regcomp_had_eol __ARGS((void)); ++ void free_regexp_stuff __ARGS((void)); + int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col)); + int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col)); +! long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, proftime_T *tm)); + reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em)); + void unref_extmatch __ARGS((reg_extmatch_T *em)); + char_u *regtilde __ARGS((char_u *source, int magic)); +*** ../vim-7.1.235/src/proto/search.pro Sun Jan 6 20:05:36 2008 +--- src/proto/search.pro Fri Jan 18 21:03:49 2008 +*************** +*** 11,17 **** + void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast)); + void last_pat_prog __ARGS((regmmatch_T *regmatch)); + int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm)); +! int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options)); + int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat)); + int searchc __ARGS((cmdarg_T *cap, int t_cmd)); + pos_T *findmatch __ARGS((oparg_T *oap, int initc)); +--- 11,17 ---- + void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast)); + void last_pat_prog __ARGS((regmmatch_T *regmatch)); + int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm)); +! int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options, proftime_T *tm)); + int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat)); + int searchc __ARGS((cmdarg_T *cap, int t_cmd)); + pos_T *findmatch __ARGS((oparg_T *oap, int initc)); +*** ../vim-7.1.235/src/search.c Sun Jan 6 20:05:36 2008 +--- src/search.c Sat Jan 19 13:13:25 2008 +*************** +*** 606,612 **** + * Look for a match somewhere in line "lnum". + */ + nmatched = vim_regexec_multi(®match, win, buf, +! lnum, (colnr_T)0); + /* Abort searching on an error (e.g., out of stack). */ + if (called_emsg) + break; +--- 606,618 ---- + * Look for a match somewhere in line "lnum". + */ + nmatched = vim_regexec_multi(®match, win, buf, +! lnum, (colnr_T)0, +! #ifdef FEAT_RELTIME +! tm +! #else +! NULL +! #endif +! ); + /* Abort searching on an error (e.g., out of stack). */ + if (called_emsg) + break; +*************** +*** 615,623 **** + /* match may actually be in another line when using \zs */ + matchpos = regmatch.startpos[0]; + endpos = regmatch.endpos[0]; +! # ifdef FEAT_EVAL + submatch = first_submatch(®match); +! # endif + /* Line me be past end of buffer for "\n\zs". */ + if (lnum + matchpos.lnum > buf->b_ml.ml_line_count) + ptr = (char_u *)""; +--- 621,629 ---- + /* match may actually be in another line when using \zs */ + matchpos = regmatch.startpos[0]; + endpos = regmatch.endpos[0]; +! #ifdef FEAT_EVAL + submatch = first_submatch(®match); +! #endif + /* Line me be past end of buffer for "\n\zs". */ + if (lnum + matchpos.lnum > buf->b_ml.ml_line_count) + ptr = (char_u *)""; +*************** +*** 693,699 **** + if (ptr[matchcol] == NUL + || (nmatched = vim_regexec_multi(®match, + win, buf, lnum + matchpos.lnum, +! matchcol)) == 0) + { + match_ok = FALSE; + break; +--- 699,711 ---- + if (ptr[matchcol] == NUL + || (nmatched = vim_regexec_multi(®match, + win, buf, lnum + matchpos.lnum, +! matchcol, +! #ifdef FEAT_RELTIME +! tm +! #else +! NULL +! #endif +! )) == 0) + { + match_ok = FALSE; + break; +*************** +*** 799,805 **** + if (ptr[matchcol] == NUL + || (nmatched = vim_regexec_multi(®match, + win, buf, lnum + matchpos.lnum, +! matchcol)) == 0) + break; + + /* Need to get the line pointer again, a +--- 811,823 ---- + if (ptr[matchcol] == NUL + || (nmatched = vim_regexec_multi(®match, + win, buf, lnum + matchpos.lnum, +! matchcol, +! #ifdef FEAT_RELTIME +! tm +! #else +! NULL +! #endif +! )) == 0) + break; + + /* Need to get the line pointer again, a +*************** +*** 977,988 **** + * return 0 for failure, 1 for found, 2 for found and line offset added + */ + int +! do_search(oap, dirc, pat, count, options) + oparg_T *oap; /* can be NULL */ + int dirc; /* '/' or '?' */ + char_u *pat; + long count; + int options; + { + pos_T pos; /* position of the last match */ + char_u *searchstr; +--- 995,1007 ---- + * return 0 for failure, 1 for found, 2 for found and line offset added + */ + int +! do_search(oap, dirc, pat, count, options, tm) + oparg_T *oap; /* can be NULL */ + int dirc; /* '/' or '?' */ + char_u *pat; + long count; + int options; ++ proftime_T *tm; /* timeout limit or NULL */ + { + pos_T pos; /* position of the last match */ + char_u *searchstr; +*************** +*** 1256,1262 **** + (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS + + SEARCH_MSG + SEARCH_START + + ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))), +! RE_LAST, (linenr_T)0, NULL); + + if (dircp != NULL) + *dircp = dirc; /* restore second '/' or '?' for normal_cmd() */ +--- 1275,1281 ---- + (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS + + SEARCH_MSG + SEARCH_START + + ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))), +! RE_LAST, (linenr_T)0, tm); + + if (dircp != NULL) + *dircp = dirc; /* restore second '/' or '?' for normal_cmd() */ +*** ../vim-7.1.235/src/screen.c Sat Jan 12 16:45:25 2008 +--- src/screen.c Sat Jan 19 13:52:29 2008 +*************** +*** 848,858 **** +--- 848,863 ---- + cur->hl.buf = buf; + cur->hl.lnum = 0; + cur->hl.first_lnum = 0; ++ # ifdef FEAT_RELTIME ++ /* Set the time limit to 'redrawtime'. */ ++ profile_setlimit(p_rdt, &(cur->hl.tm)); ++ # endif + cur = cur->next; + } + search_hl.buf = buf; + search_hl.lnum = 0; + search_hl.first_lnum = 0; ++ /* time limit is set at the toplevel, for all windows */ + #endif + + #ifdef FEAT_LINEBREAK +*************** +*** 6462,6467 **** +--- 6467,6476 ---- + { + last_pat_prog(&search_hl.rm); + search_hl.attr = hl_attr(HLF_L); ++ # ifdef FEAT_RELTIME ++ /* Set the time limit to 'redrawtime'. */ ++ profile_setlimit(p_rdt, &search_hl.tm); ++ # endif + } + } + +*************** +*** 6587,6592 **** +--- 6596,6609 ---- + called_emsg = FALSE; + for (;;) + { ++ #ifdef FEAT_RELTIME ++ /* Stop searching after passing the time limit. */ ++ if (profile_passed_limit(&(shl->tm))) ++ { ++ shl->lnum = 0; /* no match found in time */ ++ break; ++ } ++ #endif + /* Three situations: + * 1. No useful previous match: search from start of line. + * 2. Not Vi compatible or empty match: continue at next character. +*************** +*** 6620,6626 **** + matchcol = shl->rm.endpos[0].col; + + shl->lnum = lnum; +! nmatched = vim_regexec_multi(&shl->rm, win, shl->buf, lnum, matchcol); + if (called_emsg) + { + /* Error while handling regexp: stop using this regexp. */ +--- 6637,6649 ---- + matchcol = shl->rm.endpos[0].col; + + shl->lnum = lnum; +! nmatched = vim_regexec_multi(&shl->rm, win, shl->buf, lnum, matchcol, +! #ifdef FEAT_RELTIME +! &(shl->tm) +! #else +! NULL +! #endif +! ); + if (called_emsg) + { + /* Error while handling regexp: stop using this regexp. */ +*** ../vim-7.1.235/src/option.h Thu May 10 20:34:47 2007 +--- src/option.h Sat Jan 19 13:45:51 2008 +*************** +*** 633,638 **** +--- 633,641 ---- + #ifdef FEAT_SEARCHPATH + EXTERN char_u *p_cdpath; /* 'cdpath' */ + #endif ++ #ifdef FEAT_RELTIME ++ EXTERN long p_rdt; /* 'redrawtime' */ ++ #endif + EXTERN int p_remap; /* 'remap' */ + EXTERN long p_report; /* 'report' */ + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) +*** ../vim-7.1.235/src/spell.c Sat Jan 12 16:45:25 2008 +--- src/spell.c Fri Jan 18 21:02:47 2008 +*************** +*** 10343,10349 **** + curwin->w_cursor.lnum = 0; + while (!got_int) + { +! if (do_search(NULL, '/', frompat, 1L, SEARCH_KEEP) == 0 + || u_save_cursor() == FAIL) + break; + +--- 10343,10349 ---- + curwin->w_cursor.lnum = 0; + while (!got_int) + { +! if (do_search(NULL, '/', frompat, 1L, SEARCH_KEEP, NULL) == 0 + || u_save_cursor() == FAIL) + break; + +*** ../vim-7.1.235/src/structs.h Mon Oct 1 22:53:27 2007 +--- src/structs.h Fri Jan 18 21:18:53 2008 +*************** +*** 1717,1722 **** +--- 1717,1725 ---- + linenr_T first_lnum; /* first lnum to search for multi-line pat */ + colnr_T startcol; /* in win_line() points to char where HL starts */ + colnr_T endcol; /* in win_line() points to char where HL ends */ ++ #ifdef FEAT_RELTIME ++ proftime_T tm; /* for a time limit */ ++ #endif + } match_T; + + /* +*** ../vim-7.1.235/src/syntax.c Sun Jan 13 17:39:29 2008 +--- src/syntax.c Sat Jan 19 13:13:49 2008 +*************** +*** 3097,3103 **** + colnr_T col; + { + rmp->rmm_maxcol = syn_buf->b_p_smc; +! if (vim_regexec_multi(rmp, syn_win, syn_buf, lnum, col) > 0) + { + rmp->startpos[0].lnum += lnum; + rmp->endpos[0].lnum += lnum; +--- 3097,3103 ---- + colnr_T col; + { + rmp->rmm_maxcol = syn_buf->b_p_smc; +! if (vim_regexec_multi(rmp, syn_win, syn_buf, lnum, col, NULL) > 0) + { + rmp->startpos[0].lnum += lnum; + rmp->endpos[0].lnum += lnum; +*** ../vim-7.1.235/src/tag.c Thu May 10 19:44:07 2007 +--- src/tag.c Fri Jan 18 21:03:41 2008 +*************** +*** 3191,3197 **** + #endif + save_lnum = curwin->w_cursor.lnum; + curwin->w_cursor.lnum = 0; /* start search before first line */ +! if (do_search(NULL, pbuf[0], pbuf + 1, (long)1, search_options)) + retval = OK; + else + { +--- 3191,3198 ---- + #endif + save_lnum = curwin->w_cursor.lnum; + curwin->w_cursor.lnum = 0; /* start search before first line */ +! if (do_search(NULL, pbuf[0], pbuf + 1, (long)1, +! search_options, NULL)) + retval = OK; + else + { +*************** +*** 3203,3209 **** + */ + p_ic = TRUE; + if (!do_search(NULL, pbuf[0], pbuf + 1, (long)1, +! search_options)) + { + /* + * Failed to find pattern, take a guess: "^func (" +--- 3204,3210 ---- + */ + p_ic = TRUE; + if (!do_search(NULL, pbuf[0], pbuf + 1, (long)1, +! search_options, NULL)) + { + /* + * Failed to find pattern, take a guess: "^func (" +*************** +*** 3213,3225 **** + cc = *tagp.tagname_end; + *tagp.tagname_end = NUL; + sprintf((char *)pbuf, "^%s\\s\\*(", tagp.tagname); +! if (!do_search(NULL, '/', pbuf, (long)1, search_options)) + { + /* Guess again: "^char * \ /* for access() */ + + # define stat(a,b) (access(a,0) ? -1 : stat(a,b)) +- #endif +- +- #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO) +- # ifdef WIN3264 +- typedef LARGE_INTEGER proftime_T; +- # else +- typedef struct timeval proftime_T; +- # endif +- #else +- typedef int proftime_T; /* dummy for function prototypes */ + #endif + + #include "ex_cmds.h" /* Ex command defines */ +--- 1770,1775 ---- +*** ../vim-7.1.235/src/version.c Fri Jan 18 20:36:40 2008 +--- src/version.c Sat Jan 19 15:19:48 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 236, + /**/ + +-- +Every time I lose weight, it finds me again! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.237 b/7.1.237 new file mode 100644 index 00000000..c631d95a --- /dev/null +++ b/7.1.237 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.237 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.237 +Problem: Compiler warning on an Alpha processor in Motif code. +Solution: Change a typecast. (Adri Verhoef) +Files: src/gui_motif.c + + +*** ../vim-7.1.236/src/gui_motif.c Thu May 10 19:51:05 2007 +--- src/gui_motif.c Mon Jan 21 21:03:55 2008 +*************** +*** 3813,3819 **** + + XtAddCallback(frdp->find, XmNactivateCallback, + find_replace_callback, +! (XtPointer) (do_replace ? FRD_R_FINDNEXT : FRD_FINDNEXT)); + + if (do_replace) + { +--- 3813,3819 ---- + + XtAddCallback(frdp->find, XmNactivateCallback, + find_replace_callback, +! (do_replace ? (XtPointer)FRD_R_FINDNEXT : (XtPointer)FRD_FINDNEXT)); + + if (do_replace) + { +*** ../vim-7.1.236/src/version.c Sat Jan 19 15:55:51 2008 +--- src/version.c Tue Jan 22 11:05:12 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 237, + /**/ + +-- +I am always surprised in the Linux world how quickly solutions can be +obtained. (Imagine sending an email to Bill Gates, asking why Windows +crashed, and how to fix it... and then getting an answer that fixed the +problem... <0>_<0> !) -- Mark Langdon + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.238 b/7.1.238 new file mode 100644 index 00000000..e7b6a6fe --- /dev/null +++ b/7.1.238 @@ -0,0 +1,61 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.238 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.238 +Problem: Using the 'c' flag with searchpair() may cause it to fail. Using + the 'r' flag doesn't work when 'wrapscan' is set. (A.Politz) +Solution: Only use the 'c' flag for the first search, not for repeating. + When using 'r' imply 'W'. (Antony Scriven) +Files: src/eval.c + + +*** ../vim-7.1.237/src/eval.c Sat Jan 12 16:45:25 2008 +--- src/eval.c Tue Jan 22 11:42:28 2008 +*************** +*** 14189,14194 **** +--- 14189,14198 ---- + goto theend; + } + ++ /* Using 'r' implies 'W', otherwise it doesn't work. */ ++ if (flags & SP_REPEAT) ++ p_ws = FALSE; ++ + /* Optional fifth argument: skip expression */ + if (argvars[3].v_type == VAR_UNKNOWN + || argvars[4].v_type == VAR_UNKNOWN) +*************** +*** 14344,14349 **** +--- 14348,14356 ---- + incl(&pos); + } + foundpos = pos; ++ ++ /* clear the start flag to avoid getting stuck here */ ++ options &= ~SEARCH_START; + + /* If the skip pattern matches, ignore this match. */ + if (*skip != NUL) +*** ../vim-7.1.237/src/version.c Tue Jan 22 11:06:06 2008 +--- src/version.c Tue Jan 22 11:57:28 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 238, + /**/ + +-- +To keep milk from turning sour: Keep it in the cow. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.239 b/7.1.239 new file mode 100644 index 00000000..dca05345 --- /dev/null +++ b/7.1.239 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.239 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.239 (after 7.1.233) +Problem: Compiler warning for sprintf() argument. +Solution: Add a typecast. (Nico Weber) +Files: src/ex_getln.c + + +*** ../vim-7.1.238/src/ex_getln.c Sat Jan 19 15:55:51 2008 +--- src/ex_getln.c Tue Jan 22 12:40:54 2008 +*************** +*** 4694,4700 **** + { + /* Completion from Insert mode, pass fake arguments. */ + keep = 0; +! sprintf((char *)num, "%d", STRLEN(xp->xp_pattern)); + args[1] = xp->xp_pattern; + } + else +--- 4694,4700 ---- + { + /* Completion from Insert mode, pass fake arguments. */ + keep = 0; +! sprintf((char *)num, "%d", (int)STRLEN(xp->xp_pattern)); + args[1] = xp->xp_pattern; + } + else +*** ../vim-7.1.238/src/version.c Tue Jan 22 11:58:41 2008 +--- src/version.c Tue Jan 22 12:42:36 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 239, + /**/ + +-- +We apologise again for the fault in the subtitles. Those responsible for +sacking the people who have just been sacked have been sacked. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.240 b/7.1.240 new file mode 100644 index 00000000..7f690850 --- /dev/null +++ b/7.1.240 @@ -0,0 +1,186 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.240 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.240 +Problem: When "gUe" turns a German sharp s into SS the operation stops + before the end of the word. Latin2 has the same sharp s but it's + not changed to SS there. +Solution: Make sure all the characters are operated upon. Detect the sharp + s in latin2. Also fixes that changing case of a multi-byte + character that changes the byte cound doesn't always work. +Files: src/ops.c + + +*** ../vim-7.1.239/src/ops.c Wed Jan 16 20:01:14 2008 +--- src/ops.c Tue Jan 22 16:00:07 2008 +*************** +*** 2184,2189 **** +--- 2184,2191 ---- + } + #endif + ++ static int swapchars __ARGS((int op_type, pos_T *pos, int length)); ++ + /* + * Handle the (non-standard vi) tilde operator. Also for "gu", "gU" and "g?". + */ +*************** +*** 2194,2202 **** + pos_T pos; + #ifdef FEAT_VISUAL + struct block_def bd; +- int todo; + #endif +! int did_change = 0; + + if (u_save((linenr_T)(oap->start.lnum - 1), + (linenr_T)(oap->end.lnum + 1)) == FAIL) +--- 2196,2203 ---- + pos_T pos; + #ifdef FEAT_VISUAL + struct block_def bd; + #endif +! int did_change; + + if (u_save((linenr_T)(oap->start.lnum - 1), + (linenr_T)(oap->end.lnum + 1)) == FAIL) +*************** +*** 2210,2225 **** + { + block_prep(oap, &bd, pos.lnum, FALSE); + pos.col = bd.textcol; +! for (todo = bd.textlen; todo > 0; --todo) +! { +! # ifdef FEAT_MBYTE +! if (has_mbyte) +! todo -= (*mb_ptr2len)(ml_get_pos(&pos)) - 1; +! # endif +! did_change |= swapchar(oap->op_type, &pos); +! if (inc(&pos) == -1) /* at end of file */ +! break; +! } + # ifdef FEAT_NETBEANS_INTG + if (usingNetbeans && did_change) + { +--- 2211,2218 ---- + { + block_prep(oap, &bd, pos.lnum, FALSE); + pos.col = bd.textcol; +! did_change = swapchars(oap->op_type, &pos, bd.textlen); +! + # ifdef FEAT_NETBEANS_INTG + if (usingNetbeans && did_change) + { +*************** +*** 2249,2261 **** + else if (!oap->inclusive) + dec(&(oap->end)); + +! while (ltoreq(pos, oap->end)) +! { +! did_change |= swapchar(oap->op_type, &pos); +! if (inc(&pos) == -1) /* at end of file */ +! break; +! } +! + if (did_change) + { + changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1, +--- 2242,2248 ---- + else if (!oap->inclusive) + dec(&(oap->end)); + +! did_change = swapchars(oap->op_type, &pos, oap->end.col - pos.col + 1); + if (did_change) + { + changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1, +*************** +*** 2309,2314 **** +--- 2296,2337 ---- + } + + /* ++ * Invoke swapchar() on "length" bytes at position "pos". ++ * "pos" is advanced to just after the changed characters. ++ * "length" is rounded up to include the whole last multi-byte character. ++ * Also works correctly when the number of bytes changes. ++ * Returns TRUE if some character was changed. ++ */ ++ static int ++ swapchars(op_type, pos, length) ++ int op_type; ++ pos_T *pos; ++ int length; ++ { ++ int todo; ++ int did_change = 0; ++ ++ for (todo = length; todo > 0; --todo) ++ { ++ # ifdef FEAT_MBYTE ++ int pos_col = pos->col; ++ ++ if (has_mbyte) ++ /* we're counting bytes, not characters */ ++ todo -= (*mb_ptr2len)(ml_get_pos(pos)) - 1; ++ # endif ++ did_change |= swapchar(op_type, pos); ++ # ifdef FEAT_MBYTE ++ /* Changing German sharp s to SS increases the column. */ ++ todo += pos->col - pos_col; ++ # endif ++ if (inc(pos) == -1) /* at end of file */ ++ break; ++ } ++ return did_change; ++ } ++ ++ /* + * If op_type == OP_UPPER: make uppercase, + * if op_type == OP_LOWER: make lowercase, + * if op_type == OP_ROT13: do rot13 encoding, +*************** +*** 2330,2336 **** + return FALSE; + + #ifdef FEAT_MBYTE +! if (op_type == OP_UPPER && enc_latin1like && c == 0xdf) + { + pos_T sp = curwin->w_cursor; + +--- 2353,2360 ---- + return FALSE; + + #ifdef FEAT_MBYTE +! if (op_type == OP_UPPER && c == 0xdf +! && (enc_latin1like || STRCMP(p_enc, "iso-8859-2") == 0)) + { + pos_T sp = curwin->w_cursor; + +*** ../vim-7.1.239/src/version.c Tue Jan 22 12:44:03 2008 +--- src/version.c Tue Jan 22 15:36:36 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 240, + /**/ + +-- +ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot. + King of all Britons, defeator of the Saxons, sovereign of all England! + [Pause] +SOLDIER: Get away! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.241 b/7.1.241 new file mode 100644 index 00000000..4a04c690 --- /dev/null +++ b/7.1.241 @@ -0,0 +1,112 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.241 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.241 +Problem: Focus change events not always ignored. (Erik Falor) +Solution: Ignore K_IGNORE in Insert mode in a few more places. +Files: src/edit.c + + +*** ../vim-7.1.240/src/edit.c Wed Jan 16 20:01:14 2008 +--- src/edit.c Tue Jan 22 17:45:32 2008 +*************** +*** 703,712 **** + #endif + + /* +! * Get a character for Insert mode. + */ + lastc = c; /* remember previous char for CTRL-D */ +! c = safe_vgetc(); + + #ifdef FEAT_AUTOCMD + /* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */ +--- 703,715 ---- + #endif + + /* +! * Get a character for Insert mode. Ignore K_IGNORE. + */ + lastc = c; /* remember previous char for CTRL-D */ +! do +! { +! c = safe_vgetc(); +! } while (c == K_IGNORE); + + #ifdef FEAT_AUTOCMD + /* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */ +*************** +*** 777,783 **** + /* Prepare for or stop CTRL-X mode. This doesn't do completion, but + * it does fix up the text when finishing completion. */ + compl_get_longest = FALSE; +! if (c != K_IGNORE && ins_compl_prep(c)) + continue; + #endif + +--- 780,786 ---- + /* Prepare for or stop CTRL-X mode. This doesn't do completion, but + * it does fix up the text when finishing completion. */ + compl_get_longest = FALSE; +! if (ins_compl_prep(c)) + continue; + #endif + +*************** +*** 4516,4530 **** + else + { + /* Need to get the character to have KeyTyped set. We'll put it +! * back with vungetc() below. */ + c = safe_vgetc(); + +! /* Don't interrupt completion when the character wasn't typed, +! * e.g., when doing @q to replay keys. */ +! if (c != Ctrl_R && KeyTyped) +! compl_interrupted = TRUE; +! +! vungetc(c); + } + } + if (compl_pending != 0 && !got_int) +--- 4519,4535 ---- + else + { + /* Need to get the character to have KeyTyped set. We'll put it +! * back with vungetc() below. But skip K_IGNORE. */ + c = safe_vgetc(); ++ if (c != K_IGNORE) ++ { ++ /* Don't interrupt completion when the character wasn't typed, ++ * e.g., when doing @q to replay keys. */ ++ if (c != Ctrl_R && KeyTyped) ++ compl_interrupted = TRUE; + +! vungetc(c); +! } + } + } + if (compl_pending != 0 && !got_int) +*** ../vim-7.1.240/src/version.c Tue Jan 22 16:01:25 2008 +--- src/version.c Tue Jan 22 17:48:46 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 241, + /**/ + +-- +The problem with political jokes is that they get elected. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.242 b/7.1.242 new file mode 100644 index 00000000..6aab9c87 --- /dev/null +++ b/7.1.242 @@ -0,0 +1,68 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.242 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.242 (after 7.1.005) +Problem: "cib" doesn't work properly on "(x)". (Tim Pope) +Solution: Use ltoreq() instead of lt(). Also fix "ciT" on "x". +Files: src/search.c + + +*** ../vim-7.1.241/src/search.c Sat Jan 19 15:55:51 2008 +--- src/search.c Sat Jan 26 13:56:06 2008 +*************** +*** 3637,3643 **** + oap->inclusive = FALSE; + if (sol) + incl(&curwin->w_cursor); +! else if (lt(start_pos, curwin->w_cursor)) + /* Include the character under the cursor. */ + oap->inclusive = TRUE; + else +--- 3637,3643 ---- + oap->inclusive = FALSE; + if (sol) + incl(&curwin->w_cursor); +! else if (ltoreq(start_pos, curwin->w_cursor)) + /* Include the character under the cursor. */ + oap->inclusive = TRUE; + else +*************** +*** 3754,3759 **** +--- 3754,3763 ---- + old_pos = curwin->w_cursor; + old_end = curwin->w_cursor; /* remember where we started */ + old_start = old_end; ++ #ifdef FEAT_VISUAL ++ if (!VIsual_active || *p_sel == 'e') ++ #endif ++ decl(&old_end); /* old_end is inclusive */ + + /* + * If we start on "" select that block. +*** ../vim-7.1.241/src/version.c Tue Jan 22 17:49:17 2008 +--- src/version.c Sat Jan 26 21:14:05 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 242, + /**/ + +-- +DENNIS: Oh, very nice. King, eh! I expect you've got a palace and fine + clothes and courtiers and plenty of food. And how d'you get that? By + exploiting the workers! By hanging on to outdated imperialist dogma + which perpetuates the social and economic differences in our society! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.243 b/7.1.243 new file mode 100644 index 00000000..102546c1 --- /dev/null +++ b/7.1.243 @@ -0,0 +1,165 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.243 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.243 (after 7.1.240) +Problem: "U" doesn't work on all text in Visual mode. (Adri Verhoef) +Solution: Loop over all the lines to be changed. Add tests for this. +Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok + + +*** ../vim-7.1.242/src/ops.c Tue Jan 22 16:01:25 2008 +--- src/ops.c Mon Feb 4 22:23:22 2008 +*************** +*** 2197,2203 **** + #ifdef FEAT_VISUAL + struct block_def bd; + #endif +! int did_change; + + if (u_save((linenr_T)(oap->start.lnum - 1), + (linenr_T)(oap->end.lnum + 1)) == FAIL) +--- 2197,2203 ---- + #ifdef FEAT_VISUAL + struct block_def bd; + #endif +! int did_change = FALSE; + + if (u_save((linenr_T)(oap->start.lnum - 1), + (linenr_T)(oap->end.lnum + 1)) == FAIL) +*************** +*** 2242,2248 **** + else if (!oap->inclusive) + dec(&(oap->end)); + +! did_change = swapchars(oap->op_type, &pos, oap->end.col - pos.col + 1); + if (did_change) + { + changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1, +--- 2242,2259 ---- + else if (!oap->inclusive) + dec(&(oap->end)); + +! if (pos.lnum == oap->end.lnum) +! did_change = swapchars(oap->op_type, &pos, +! oap->end.col - pos.col + 1); +! else +! for (;;) +! { +! did_change |= swapchars(oap->op_type, &pos, +! pos.lnum == oap->end.lnum ? oap->end.col + 1: +! (int)STRLEN(ml_get_pos(&pos))); +! if (ltoreq(oap->end, pos) || inc(&pos) == -1) +! break; +! } + if (did_change) + { + changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1, +*************** +*** 2314,2330 **** + for (todo = length; todo > 0; --todo) + { + # ifdef FEAT_MBYTE +- int pos_col = pos->col; +- + if (has_mbyte) + /* we're counting bytes, not characters */ + todo -= (*mb_ptr2len)(ml_get_pos(pos)) - 1; + # endif + did_change |= swapchar(op_type, pos); +- # ifdef FEAT_MBYTE +- /* Changing German sharp s to SS increases the column. */ +- todo += pos->col - pos_col; +- # endif + if (inc(pos) == -1) /* at end of file */ + break; + } +--- 2325,2335 ---- +*** ../vim-7.1.242/src/testdir/test39.in Sun Jun 13 18:21:09 2004 +--- src/testdir/test39.in Wed Feb 6 13:57:37 2008 +*************** +*** 1,8 **** +--- 1,10 ---- + + Test Visual block mode commands ++ And test "U" in Visual mode, also on German sharp S. + + STARTTEST + :so small.vim ++ :so mbyte.vim + /^abcde + :" Test shift-right of a block + jlllljj>wlljlll> +*************** +*** 14,20 **** + Gllllkkklllrq + :" Test block-change + G$khhhhhkkcmno +! :$-4,$wq! test.out + ENDTEST + + abcdefghijklm +--- 16,37 ---- + Gllllkkklllrq + :" Test block-change + G$khhhhhkkcmno +! :$-4,$w! test.out +! :" gUe must uppercase a whole word, also when ß changes to SS +! Gothe youtußeuu endYpk0wgUe +! :" gUfx must uppercase until x, inclusive. +! O- youßtußexu -0fogUfx +! :" VU must uppercase a whole line +! YpkVU +! :" same, when it's the last line in the buffer +! YPGi111VUddP +! :" Uppercase two lines +! Oblah di +! doh dutVkUj +! :" Uppercase part of two lines +! ddppi333k0i222fyllvjfuUk +! :/^the/,$w >> test.out +! :qa! + ENDTEST + + abcdefghijklm +*** ../vim-7.1.242/src/testdir/test39.ok Sun Jun 13 18:59:28 2004 +--- src/testdir/test39.ok Tue Feb 5 22:25:38 2008 +*************** +*** 3,5 **** +--- 3,13 ---- + axyzqqqqef mno ghijklm + axyzqqqqefgmnoklm + abcdqqqqijklm ++ the YOUTUSSEUU end ++ - yOUSSTUSSEXu - ++ THE YOUTUSSEUU END ++ 111THE YOUTUSSEUU END ++ BLAH DI ++ DOH DUT ++ 222the yoUTUSSEUU END ++ 333THE YOUTUßeuu end +*** ../vim-7.1.242/src/version.c Sat Jan 26 21:15:00 2008 +--- src/version.c Wed Feb 6 14:41:00 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 243, + /**/ + +-- +It's totally unfair to suggest - as many have - that engineers are socially +inept. Engineers simply have different objectives when it comes to social +interaction. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.244 b/7.1.244 new file mode 100644 index 00000000..6c4c43f2 --- /dev/null +++ b/7.1.244 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.244 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.244 +Problem: GUI may have part of the command line cut off. +Solution: Don't round the number of lines up, always round down. + (Tony Houghton, Scott Dillard) +Files: src/gui.c + + +*** ../vim-7.1.243/src/gui.c Sat Jan 19 15:55:51 2008 +--- src/gui.c Wed Feb 6 16:43:44 2008 +*************** +*** 1294,1304 **** + out_flush(); + + gui.num_cols = (pixel_width - gui_get_base_width()) / gui.char_width; +! gui.num_rows = (pixel_height - gui_get_base_height() +! #if !defined(FEAT_GUI_PHOTON) && !defined(FEAT_GUI_MSWIN) +! + (gui.char_height / 2) +! #endif +! ) / gui.char_height; + + gui_position_components(pixel_width); + +--- 1294,1300 ---- + out_flush(); + + gui.num_cols = (pixel_width - gui_get_base_width()) / gui.char_width; +! gui.num_rows = (pixel_height - gui_get_base_height()) / gui.char_height; + + gui_position_components(pixel_width); + +*** ../vim-7.1.243/src/version.c Wed Feb 6 14:43:50 2008 +--- src/version.c Wed Feb 6 17:32:35 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 244, + /**/ + +-- +A consultant is a person who takes your money and annoys your employees while +tirelessly searching for the best way to extend the consulting contract. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.245 b/7.1.245 new file mode 100644 index 00000000..ce7a7b51 --- /dev/null +++ b/7.1.245 @@ -0,0 +1,92 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.245 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.245 +Problem: Pressing CTRL-\ three times causes Vim to quit. (Ranganath Rao). + Also for f CTRL-\ CTRL-\. +Solution: When going to cooked mode in mch_delay() set a flag to ignore + SIGQUIT. +Files: src/os_unix.c + + +*** ../vim-7.1.244/src/os_unix.c Sun Jan 13 16:30:23 2008 +--- src/os_unix.c Sun Feb 10 22:07:27 2008 +*************** +*** 195,200 **** +--- 195,201 ---- + static int show_shell_mess = TRUE; + #endif + static int deadly_signal = 0; /* The signal we caught */ ++ static int in_mch_delay = FALSE; /* sleeping in mch_delay() */ + + static int curr_tmode = TMODE_COOK; /* contains current terminal mode */ + +*************** +*** 538,544 **** + if (ignoreinput) + { + /* Go to cooked mode without echo, to allow SIGINT interrupting us +! * here */ + old_tmode = curr_tmode; + if (curr_tmode == TMODE_RAW) + settmode(TMODE_SLEEP); +--- 539,547 ---- + if (ignoreinput) + { + /* Go to cooked mode without echo, to allow SIGINT interrupting us +! * here. But we don't want QUIT to kill us (CTRL-\ used in a +! * shell may produce SIGQUIT). */ +! in_mch_delay = TRUE; + old_tmode = curr_tmode; + if (curr_tmode == TMODE_RAW) + settmode(TMODE_SLEEP); +*************** +*** 602,607 **** +--- 605,611 ---- + #endif + + settmode(old_tmode); ++ in_mch_delay = FALSE; + } + else + WaitForChar(msec); +*************** +*** 922,927 **** +--- 926,939 ---- + #endif + + #ifdef SIGHASARG ++ # ifdef SIGQUIT ++ /* While in mch_delay() we go to cooked mode to allow a CTRL-C to ++ * interrupt us. But in cooked mode we may also get SIGQUIT, e.g., when ++ * pressing CTRL-\, but we don't want Vim to exit then. */ ++ if (in_mch_delay && sigarg == SIGQUIT) ++ SIGRETURN; ++ # endif ++ + /* When SIGHUP, SIGQUIT, etc. are blocked: postpone the effect and return + * here. This avoids that a non-reentrant function is interrupted, e.g., + * free(). Calling free() again may then cause a crash. */ +*** ../vim-7.1.244/src/version.c Wed Feb 6 17:33:19 2008 +--- src/version.c Sun Feb 10 22:04:09 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 245, + /**/ + +-- +Me? A skeptic? I trust you have proof. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/Changelog.rpm b/Changelog.rpm index 3c137d61..516862fc 100644 --- a/Changelog.rpm +++ b/Changelog.rpm @@ -49,802 +49,3 @@ * Mon Oct 17 2005 Karsten Hopp 6.4.000-1 - vim-6.4 patchlevel 0 -* Tue Oct 11 2005 Karsten Hopp 6.3.090-2 -- don't try to run cscope if cscope binary doesn't exist (#170371) -- another attempt to fix perl requirements (#145475) - -* Mon Oct 10 2005 Karsten Hopp 6.3.090-1 -- patchlevel 90 -- next attempt to fix perl requirements, add perl-epoch (#145475) - -* Thu Sep 08 2005 Karsten Hopp 6.3.086-5 -- fix path to csupport templates -- point user at README.csupport so that defaults can be set -- make vim buildable without csupport with a variable - -* Thu Sep 01 2005 Karsten Hopp 6.3.086-3 -- move X11 stuff to /usr/bin per request of xorg.x11 maintainer - Matthias Saou (#167176) - -* Tue Aug 16 2005 Karsten Hopp 6.3.086-2 -- rebuild - -* Tue Aug 09 2005 Karsten Hopp 6.3.086-1 -- update to patchlevel 86 - -* Mon Jun 12 2005 Karsten Hopp 6.3.080-1 -- update to patchlevel 80 - -* Wed Apr 27 2005 Jeremy Katz - 1:6.3.071-3 -- silence %%post - -* Mon Apr 18 2005 Karsten Hopp 6.3.071-2 -- fix wrong Russian code page for vimtutor (#155181) - -* Mon Apr 11 2005 Karsten Hopp 6.3.071-1 -- patchlevel 71, fixes crashes when converting text with illegal characters - and when moving the vertical separator to the far left (vertically splitted - window) - -* Mon Apr 11 2005 Karsten Hopp 6.3.068-2 -- quote special characters in here documents (vim.sh/vim.csh) (#154321) - -* Thu Mar 31 2005 Karsten Hopp 6.3-068 -- pathlevel 68 (can't write when editing symbolic link to compressed file) -- remove -s parameter from install, this should fix debuginfo packages - -* Mon Mar 28 2005 Christopher Aillon -- rebuilt - -* Fri Mar 25 2005 Christopher Aillon 6.3.067-2 -- Update the GTK+ theme icon cache on (un)install - -* Wed Mar 23 2005 Karsten Hopp 6.3.067-1 -- Newly created files got execute permission (caused by patch 66) - #151667 - -* Fri Mar 18 2005 Karsten Hopp 6.3.066-1 -- patchlevel 66 - -* Mon Mar 14 2005 Karsten Hopp 6.3.064-1 -- patchlevel 64 -- fix selinux warning (#150126) - -* Wed Mar 02 2005 Karsten Hopp 6.3.062-1 -- patchlevel 62, build with gcc-4 - -* Thu Feb 10 2005 Karsten Hopp 6.3.061-3 -- spec.vim fix from Andrew Overholt - -* Mon Feb 07 2005 Karsten Hopp 6.3.061-2 -- fix tmpfile patch (#147192) - -* Mon Jan 31 2005 Karsten Hopp 6.3.061-1 -- patchlevel 61 - -* Tue Jan 18 2005 Chip Turner 1:058-2 -- rebuild for new perl - -* Tue Jan 18 2005 Karsten Hopp 6.3.058-1 -- Patchlevel 58 -- rebuild with new perl -- remove all rpm backup files - -* Wed Jan 12 2005 Karsten Hopp 6.3.054-2 -- remove backup files - -* Wed Jan 12 2005 Karsten Hopp 6.3.054-1 -- patchlevel 54 -- fix unsecure tempfile usage (#144698) - -* Mon Dec 06 2004 Karsten Hopp 6.3.042-1 -- patchlevel 42 - -* Thu Dec 02 2004 Karsten Hopp 6.3.035-2 -- fix compressed docs handling (#141565) - -* Wed Dec 01 2004 Karsten Hopp 6.3.035-1 -- patchlevel 35 -- allow remapping of 'g' (#140747) - -* Fri Nov 19 2004 Karsten Hopp 6.3.033-1 -- patchlevel 33 - -* Tue Nov 02 2004 Karsten Hopp 6.3.030-3 -- fix selinux patch, so that HAVE_SELINUX will not be defined on - non-selinux systems (#137860) - -* Tue Oct 19 2004 Karsten Hopp 6.3.030-3 -- fix dependencies on vim-common (#132371) - -* Mon Oct 11 2004 Karsten Hopp 6.3.030-2 -- add cscope to vimrc so that cscope DB will be used - automatically when available - -* Fri Oct 08 2004 Karsten Hopp 6.3.030-2 -- patchlevel 30 - -* Wed Oct 06 2004 Karsten Hopp 6.3.029-2 -- fix perl requirement -- patchlevel 29 to fix crash when inserting a line break - -* Wed Sep 29 2004 Karsten Hopp 6.3.028-2 -- add patch from Ulrich Drepper to fix syntax highlighting of - DNS config files (#133746) - -* Tue Sep 21 2004 Than Ngo 6.3.028-1 -- add patchlevel 27,28 - -* Tue Sep 14 2004 Karsten Hopp 6.3.026-1 -- patchlevel 26 (fixes an endless loop in syntax highlighting) - -* Wed Sep 08 2004 Karsten Hopp 6.3.025-2 -- clean up spec file -- disable fontset -- enable cscope - -* Mon Sep 06 2004 Karsten Hopp 6.3.025-1 -- patchlevel 25 - -* Wed Sep 01 2004 Karsten Hopp 6.3.020-1 -- patchlevel 20 - -* Sun Aug 29 2004 Karsten Hopp 6.3.017-1 -- patchlevel 17 - -* Fri Aug 06 2004 Karsten Hopp 6.3.015-1 -- update to patchlevel 15 -- move older rpm changelog entries to Changelog.rpm - -* Mon Jul 26 2004 Warren Togami 6.3.014-2 -- future proof vim-enhanced perl dep - -* Thu Jul 22 2004 Karsten Hopp 6.3.014-1 -- patchlevel 14, fixes 'helplang' default settings -- fix escape sequence in /etc/vimrc (#128344) - -* Fri Jul 16 2004 Karsten Hopp 6.3.013-2 -- use different encoding for tutor.pl (#125376) - -* Tue Jul 13 2004 Karsten Hopp 6.3.013-1 -- patchlevel 13 to fix some crashes with multi-line patterns - and when using CTRL-R in command mode - -* Thu Jul 8 2004 Dan Walsh 6.3.011-4 -- Fix selinux patch to handle symlinks - -* Wed Jul 07 2004 Karsten Hopp 6.3.011-3 -- rebuild with new gcc - -* Mon Jul 05 2004 Karsten Hopp 6.3.011-2 -- convert tutorial files to UTF8 (#125376) - -* Sat Jul 03 2004 Karsten Hopp 6.3.011-1 -- patchlevel 11 - -* Thu Jun 17 2004 Karsten Hopp 6.3.006-1 -- update to new major release - -* Tue Jun 15 2004 Elliot Lee -- rebuilt - -* Fri Jun 04 2004 Karsten Hopp 6.2.532-4 -- enable build on ppc* - -* Wed Jun 02 2004 Karsten Hopp 6.2.532-3 -- rebuild - -* Wed Jun 02 2004 Karsten Hopp 6.2.532-2 -- rebuild - -* Thu Jun 01 2004 Karsten Hopp 6.2.532-1 -- patchlevel 532 -- include vimrc in vim-minimal (#123205) -- add gvim icons (#110033) - -* Wed Apr 07 2004 Karsten Hopp 6.2.457-1 -- patchlevel 457 - -* Fri Mar 26 2004 Karsten Hopp 6.2.403-1 -- patchlevel 403 - -* Thu Mar 18 2004 Karsten Hopp 6.2.380-1 -- patchlevel 380 - -* Mon Mar 08 2004 Karsten Hopp 6.2.327-1 -- patchlevel 327 - -* Wed Mar 03 2004 Karsten Hopp 6.2.311-1 -- patchlevel 311 - -* Mon Mar 01 2004 Karsten Hopp 6.2.294-1 -- patchlevel 294 - -* Fri Feb 13 2004 Elliot Lee -- rebuilt - -* Wed Feb 11 2004 Karsten Hopp 6.2.253-1 -- patchlevel 253 -- disable netbeans - -* Thu Jan 29 2004 Karsten Hopp 6.2.214-1 -- Patchlevel 214 - -* Mon Jan 26 2004 Dan Walsh 1:6.2.195-5 -- Fix call to is_selinux_enabled() - -* Sat Jan 24 2004 Karsten Hopp 6.2.195-4 -- fix perl requirement - -* Fri Jan 23 2004 Dan Walsh 1:6.2.195-3 -- Only attempt to change context if it is different - -* Thu Jan 22 2004 Karsten Hopp 6.2.195-1 -- update to patchlevel 195 -- enable ppc64 build - -* Mon Jan 12 2004 Karsten Hopp 6.2.180-2 -- vim-enhanced requires perl >= 5.8.2 (#111592) - -* Mon Jan 12 2004 Karsten Hopp 6.2.180-1 -- Patchlevel 180 -- update spec.vim, use g:packager instead of {Packager} macro - -* Tue Jan 6 2004 Dan Walsh 1:6.2.154-7 -- Enable selinux support for vim-minimal - -* Wed Dec 17 2003 Dan Walsh 1:6.2.154-6 -- Enable selinux support - -* Thu Dec 04 2003 Karsten Hopp 1:6.2.154-5 -- rebuild with new perl - -* Wed Dec 03 2003 Karsten Hopp 1:6.2.154-4 -- fix sh.vim syntax file (#104312) - -* Tue Dec 02 2003 Karsten Hopp 1:6.2.154-3 -- perl interface was disabled when perl had thread support. - -* Thu Nov 27 2003 Karsten Hopp 1:6.2.154-2 -- fix date in specfile changelog entries - -* Thu Nov 13 2003 Karsten Hopp 1:6.2.154-1 -- Patchlevel 154 -- vim-minimal doesn't really require vim-common to run, removed dependency - (#109819) - -* Mon Nov 10 2003 Karsten Hopp 1:6.2.149-1 -- Patchlevel 149 -- fix fstab syntax file (Robert G. (Doc) Savage) -- lots of updates for syntax files, macros, documentation -- disable vimnotvi patch so that vim's behaviour matches documentation -- clean up vimrc - -* Thu Nov 06 2003 Karsten Hopp 1:6.2.145-1 -- rebuild with new Python -- Patchlevel 145 - -* Tue Oct 14 2003 Karsten Hopp 1:6.2.121-1 -- patchlevel 121 -- fix buildrequires (#106824, #105832) - -* Tue Sep 16 2003 Karsten Hopp 1:6.2.98-1.1 -- rebuilt - -* Tue Sep 16 2003 Karsten Hopp 1:6.2.98-1 -- upstream fix for undeclared stop_insert_mode variable - -* Tue Sep 16 2003 Karsten Hopp 1:6.2.97-1 -- patchlevel 97, see README for descriptions - -* Mon Sep 01 2003 Karsten Hopp 1:6.2.71-1 -- several upstream fixes (PL 71) - -* Tue Aug 05 2003 Karsten Hopp 1:6.2.60-1.1 -- rebuilt - -* Mon Aug 04 2003 Karsten Hopp 1:6.2.60-1 -- update to fix cut&paste segfaults and UTF8 problems -- move vimrc to /etc (#2188) -- fix filelist - -* Mon Aug 04 2003 Karsten Hopp 1:6.2.57-2 -- rebuilt - -* Tue Jul 29 2003 Karsten Hopp 1:6.2.57-1 -- update to patchlevel 57, this should take care of #100670 - -* Thu Jul 24 2003 Karsten Hopp 6.2.21-1 -- some minor upstream fixes (PL 21) - -* Mon Jul 14 2003 Chip Turner -- rebuild for new perl 5.8.1 - -* Fri Jul 04 2003 Karsten Hopp 6.2.18-1 -- update - -* Wed Jun 10 2003 Karsten Hopp 6.2.14-1 -- update to 6.2 - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Tue Jun 03 2003 Karsten Hopp 6.1.474-3 -- rebuild - -* Mon Jun 02 2003 Karsten Hopp 6.1.474-2 -- initialize variable before using it - -* Tue May 06 2003 Karsten Hopp 6.1.474-1 -- patchlevel 474 - -* Wed Apr 23 2003 Karsten Hopp 6.1.469-4 -- add gvimdiff link (#89462) - -* Sun Apr 20 2003 Karsten Hopp 6.1.469-3 -- rebuild with vim-X11 and gtk2 -- don't hardcode ruby path (thanks to Ian Macdonald) - -* Fri Apr 18 2003 Karsten Hopp 6.1.469-2 -- rebuild - -* Thu Apr 17 2003 Karsten Hopp 6.1.469-1 -- enable ruby interpreter (#89045) and update to patchlevel 469 - -* Tue Apr 01 2003 Karsten Hopp 6.1.434-1 -- update to patchlevel 434 -- update gtk2 patch and disable it for now - -* Sun Mar 16 2003 Karsten Hopp 1:6.1.406-1 -- new versioning to match the official patchlevel -- new tarballs from the stable CVS tree to get rid of >300 patches -- add gtk2 patch fom gvim and build gtk2 gvim - -* Wed Feb 12 2003 Karsten Hopp 1:6.1-29 -- clean up vimrc (fix #84088) -- clean up specfile so that it works with vim's specfile mode -- remove unused rescue stuff from specfile - -* Mon Feb 10 2003 Karsten Hopp 1.6.1-28 -- patchlevel 320, to fix 'file changed' warning after :wq -- don't overwrite systemwide config file (#82037) - -* Wed Jan 29 2003 Karsten Hopp 6.1-27 -- patchlevel 311 -- fix #78837, only install message catalog for selected language - -* Tue Jan 28 2003 Karsten Hopp 6.1.26 -- patchlevel 302 -- added epoch to automated changelog entry (specs.vim) -- don't warn (vim-minimal) about not implemented functions - -* Thu Jan 23 2003 Karsten Hopp 6.1.25 -- patchlevel 300 - -* Wed Jan 22 2003 Tim Powers -- rebuilt - -* Fri Jan 10 2003 Karsten Hopp 6.1.23 -- patchlevel 287 - -* Wed Jan 08 2003 Karsten Hopp 6.1.22 -- use Red Hat style for spec files - -* Tue Jan 07 2003 Karsten Hopp 6.1.21 -- patchlevel 284 - -* Mon Dec 23 2002 Karsten Hopp 6.1.20 -- upstream patch for the modeline issue - -* Sat Dec 21 2002 Karsten Hopp 6.1-19 -- disable libcall() and system() in modelines -- Patchlevel 264 - -* Tue Dec 17 2002 Karsten Hopp 6.1-17 -- Patchlevel 263 -- gvim works again (#79355) -- don't backup all those patched files - -* Tue Nov 12 2002 Karsten Hopp -- added a lot of upstream patches + the README describing them -- fix alias for zsh (#77007) -- FIXME: gvim is currently broken - -* Wed Oct 02 2002 Karsten Hopp -- include the other httpd config files for syntax highlight - -* Wed Oct 02 2002 Karsten Hopp -- PL 206 -- fix #74135 - -* Wed Aug 28 2002 Karsten Hopp -- PL 165: - - when conversion to xxd fails 'filetype' was set anyway - - undo information is corrupted when splitting a saved line -- add latin1 to fileencodings to fix 'conversion errors' - -* Mon Aug 19 2002 Karsten Hopp -- PL 159: expanding a multi-byte abbreviation deletes too much -- build /bin/vi with --enably-multibyte (#71282) - -* Thu Aug 15 2002 Karsten Hopp -- Patchlevel 153: - translated menus are not used when lang contains "iso8859" - searching in included files could loop recursively -- don't mark runtime files as %%doc or the files will be added to the package - twice. (saves 2M) -- fix 'Installed (but unpackaged) file(s) found: .../gvim.desktop' -- work around rpm limitations, can't replace directories with - symlinks - -* Sun Aug 11 2002 Florian La Roche -- fix profile.d/vim.sh - -* Thu Aug 08 2002 Karsten Hopp -- Patchlevel 151 - -* Fri Jul 26 2002 Karsten Hopp -- Patchlevel 141 -- use desktop-file-utils (#69443) -- fix /etc/profile.d/vim.sh (#67264) - -* Tue Jul 09 2002 Karsten Hopp 6.1-8 -- Update to patchlevel 125 -- fix #59176, #65766, #59958, #55065, #62374, #62654, #63248 -- reenable alpha - -* Mon Jul 1 2002 Bernhard Rosenkraenzer 6.1-7 -- Update to patchlevel 118 -- Fix bug 64589 - -* Tue Jun 25 2002 Karsten Hopp 6.1-6 -- Update to patchlevel 112 -- added a modified patch 49 for INVALCOLOR - -* Fri Jun 21 2002 Tim Powers -- automated rebuild - -* Thu May 23 2002 Tim Powers -- automated rebuild - -* Thu May 9 2002 Bernhard Rosenkraenzer 6.1-3 -- Update to patchlevel 57 -- Rebuild with current toolchain -- Temporarily exclude alpha, the build environment is broken - (no db, no python 2.x) - -* Wed Mar 27 2002 Bernhard Rosenkraenzer 6.1-2 -- Rebuild with new perl - -* Sun Mar 24 2002 Bernhard Rosenkraenzer 6.1-1 -- Update to 6.1 (pure bugfix release) - -* Mon Mar 11 2002 Bernhard Rosenkraenzer 6.0-14 -- Patchlevel 270 -- Move vimtutor to /usr/bin and vim-enhanced (#60772) - -* Mon Jan 28 2002 Bernhard Rosenkraenzer 6.0-13 -- Patchlevel 152 -- Add symlinks for evim, rvim and vimdiff as described in vim docs - -* Tue Jan 22 2002 Bernhard Rosenkraenzer 6.0-12 -- Patchlevel 149 - -* Tue Jan 22 2002 Bernhard Rosenkraenzer 6.0-11 -- Patchlevel 147 - -* Thu Dec 27 2001 Bernhard Rosenkraenzer 6.0-9 -- Patchlevel 101 - -* Mon Nov 26 2001 Bernhard Rosenkraenzer 6.0-8 -- Patchlevel 93 - -* Mon Nov 5 2001 Bernhard Rosenkraenzer 6.0-7 -- 6.0pl78 -- Move desktop file (Utilities -> Applications), #53503 - -* Thu Nov 1 2001 Bernhard Rosenkraenzer 6.0-6 -- 6.0pl61 - -* Wed Oct 31 2001 Bernhard Rosenkraenzer -- 6.0pl44 - -* Mon Oct 29 2001 Bernhard Rosenkraenzer 6.0-5 -- 6.0pl36 -- Fix build with gcc 3.1 - -* Tue Oct 23 2001 Bernhard Rosenkraenzer 6.0-4 -- 6.0pl21 -- Don't show an error message when trying to "return" to a line - that no longer exists (#54551) - -* Mon Oct 22 2001 Bernhard Rosenkraenzer 6.0-3 -- 6.0pl19 - -* Sun Sep 30 2001 Bernhard Rosenkraenzer 6.0-2 -- 6.0pl11 - -* Wed Sep 26 2001 Bernhard Rosenkraenzer 6.0-1 -- 6.0 - -* Thu Sep 13 2001 Bernhard Rosenkraenzer 6.0-0.av.1 -- 6.0av -- Use -Os in rescue mode - -* Tue Sep 4 2001 Bernhard Rosenkraenzer 6.0-0.au.1 -- Update to 6.0au -- Allow rescue build - -* Tue Aug 28 2001 Bernhard Rosenkraenzer 6.0-0.at.1 -- vim 6.0at -- Increase epoch so we can update 7.2 systems - -* Fri Jun 1 2001 Bernhard Rosenkraenzer 6.0-0.33 -- 6.0ah -- Add a bash alias for vi=vim to the vim-enhanced package, too many people - have complained about "missing features in vi even though I installed - vim-enhanced". - -* Mon May 21 2001 Bernhard Rosenkraenzer 6.0-0.32 -- 6.0ag -- Make xxd locale aware (#37073) - -* Mon May 14 2001 Bernhard Rosenkraenzer 6.0-0.31 -- 6.0af - -* Mon May 7 2001 Bernhard Rosenkraenzer 6.0-0.30 -- 6.0ae - -* Mon Apr 30 2001 Bernhard Rosenkraenzer -- 6.0ad -- XML .xsd files are still xml files - use the right syntax - highlighting (RFE#38224) - -* Sun Apr 15 2001 Bernhard Rosenkraenzer -- 6.0aa - -* Fri Mar 30 2001 Bernhard Rosenkraenzer -- Fix large file handling (#34061) - -* Mon Feb 26 2001 Trond Eivind Glomsrød -- use %%{_tmppath} - -* Thu Feb 15 2001 Yukihiro Nakai -- vimrc update for 6.0v - -* Mon Feb 12 2001 Bernhard Rosenkraenzer -- Fix "lba32" keyword in lilo.conf syntax highlighting -- Fix build with current glibc - -* Fri Feb 2 2001 Bernhard Rosenkraenzer -- Fix crontab -e in vim-minimal (#25376) - -* Tue Jan 30 2001 Bernhard Rosenkraenzer -- Fix segfault on q, up, up, q (Bug #25261) - -* Mon Jan 22 2001 Bernhard Rosenkraenzer -- Set minlines=500 as default in PHP syntax highlighting (RFE #24374) -- Don't symlink gvimrc to vimrc (Bug #22518) -- Add symlinks gview -> gvim and gex -> gvim in -X11 (RFE #24394) -- 6.0t - -* Mon Jan 15 2001 Bernhard Rosenkraenzer -- More fixes to rpm specfile syntax highlighting: - - recognize %%ifnarch - - recognize "j" as a tar option - - recognize %{_libdir} - -* Sun Jan 14 2001 Bernhard Rosenkraenzer -- 6.0s - -* Wed Jan 3 2001 Bernhard Rosenkraenzer -- 6.0r -- Restore crv patch (this should fix #23135 for whoever is seeing it; - I'm not). - -* Tue Dec 19 2000 Yukihiro Nakai -- Symbolic link to menu_ja_jp.ujis.vim to menu_ja_jp.eucjp.vim - -* Mon Dec 18 2000 Yukihiro Nakai -- Delete i18n patch (already implmented by author) -- Add menu i18n patch -- Update vimrc to support CJK -- Add menu translations. - -* Sun Dec 17 2000 Bernhard Rosenkraenzer -- 6.0q - -* Sun Dec 17 2000 Yukihiro Nakai -- Add --enable-fontset to configure options. -- Add i18nrc patch and resources. - -* Tue Dec 12 2000 Bernhard Rosenkraenzer -- 6.0p, new ncurses - -* Mon Dec 11 2000 Karsten Hopp -- rebuilt to fix permissions of /usr/share/doc/ and - /usr/share/vim - -* Mon Nov 13 2000 Bernhard Rosenkraenzer -- 6.0m - -* Thu Nov 9 2000 Bernhard Rosenkraenzer -- 6.0l - -* Mon Oct 30 2000 Bernhard Rosenkraenzer -- 6.0k - -* Tue Oct 17 2000 Bernhard Rosenkraenzer -- 6.0i -- add new desktop file w/ translations - -* Thu Aug 31 2000 Bernhard Rosenkraenzer -- 6.0h - -* Wed Aug 30 2000 Bernhard Rosenkraenzer -- 6.0g - -* Mon Aug 14 2000 Bernhard Rosenkraenzer -- 6.0f - -* Wed Aug 9 2000 Bernhard Rosenkraenzer -- 6.0e - -* Sun Jul 23 2000 Bernhard Rosenkraenzer -- 6.0c -- get rid of the DESTDIR patch, no longer needed - -* Sun Jul 16 2000 Bernhard Rosenkraenzer -- 6.0b - -* Mon Jul 10 2000 Bernhard Rosenkraenzer -- 6.0a - -* Sun Jun 25 2000 Bernhard Rosenkraenzer -- 5.7 release -- some more fixes to .spec file syntax highlighting rules... About time it - recognizes %%{_mandir}... - -* Sun Jun 18 2000 Bernhard Rosenkraenzer -- 5.7a - -* Sat Jun 3 2000 Bernhard Rosenkränzer -- patchlevel 74 -- add %%makeinstall macro recognition to .spec file syntax highlighting rules -- fix up Makefiles - -* Fri Apr 14 2000 Bernhard Rosenkränzer -- patchlevel 66 -- fix compilation with perl 5.6.0 - -* Mon Mar 20 2000 Bernhard Rosenkränzer -- patchlevel 12 - -* Tue Mar 07 2000 Preston Brown -- fix home/end in vimrc (we did a term = rxvt, totally wrong) - -* Tue Feb 29 2000 Preston Brown -- change F1-F4 keybindings for xterm builtin terminfo to match real terminfo - -* Thu Feb 17 2000 Bill Nottingham -- kill autoindent - -* Mon Feb 07 2000 Preston Brown -- wmconfig -> desktop - -* Sat Feb 5 2000 Bernhard Rosenkränzer -- Patchlevel 11 -- handle compressed man pages -- fix man page symlinks - -* Wed Feb 2 2000 Bill Nottingham -- eliminate dependencies on X in vim-enhanced, and ncurses/gpm - in vim-minimal - -* Fri Jan 28 2000 Bill Nottingham -- eliminate dependencies on csh and perl in vim-common - -* Wed Jan 19 2000 Bernhard Rosenrkänzer -- Use awk, not nawk - -* Tue Jan 18 2000 Bernhard Rosenrkänzer -- 5.6 -- patch 5.6.001 -- remove /usr/bin/vi - if you want vim, type vim - -* Tue Jan 11 2000 Bernhard Rosenkränzer -- 5.6a -- Remove dependency on nawk (introduced by base update) -- some tweaks to make updating easier - -* Tue Nov 9 1999 Bernhard Rosenkränzer -- 5.5 -- fix path to vimrc - -* Tue Jul 27 1999 Michael K. Johnson -- moved from athena to gtk widgets for X version -- removed vim.1 from X11 filelist because X11 depends on vim-common anyway -- fixed rogue dependencies from sample files - -* Tue Jul 27 1999 Jeff Johnson -- update to 5.4. - -* Thu Jul 22 1999 Jeff Johnson -- man page had buildroot pollution (#3629). - -* Thu Mar 25 1999 Preston Brown -- with recent termcap/terminfo fixes, regular vim works in xterm/console -- in color, so vim-color package removed. - -* Tue Mar 23 1999 Erik Troan -- removed "set backupdir=/tmp/vim_backup" from default vimrc - -* Sun Mar 21 1999 Cristian Gafton -- auto rebuild in the new build environment (release 5) - -* Thu Dec 17 1998 Michael Maher -- built pacakge for 6.0 - -* Tue Sep 15 1998 Michael Maher -- removed '--with-tlib=termcap' so that color-vim works - -* Wed Sep 2 1998 Jeff Johnson -- update to 5.3. - -* Mon Aug 10 1998 Jeff Johnson -- merge in Toshio's changes -- color-vim: changed "--disable-p" to "--disable-perlinterp --with-tlib=termcap" -- added minimal rvi/rview and man pages. -- move Obsoletes to same package as executable. - -* Thu Aug 06 1998 Toshio Kuratomi -- Break the package apart similar to the way the netscape package was - broken down to handle navigator or communicator: The vim package is - Obsolete, now there is vim-common with all the common files, and a - package for each binary: vim-minimal (has /bin/vi compiled with no - frills), vim-enhanced (has /usr/bin/vim with extra perl and python - interpreters), and vim-X11 (has /usr/X11R6/bin/gvim compiled with - GUI support.) -- Enable the perl and python interpreters in the gui version (gvim). - -* Tue Jun 30 1998 Michael Maher -- Fixed tutor help. -- cvim package added. Thanks to Stevie Wills for finding this one :-) - -* Thu May 07 1998 Prospector System -- translations modified for de, fr, tr - -* Fri May 01 1998 Donnie Barnes -- added patch to turn off the "vi compatibility" by default. You can - still get it via the -C command line option - -* Thu Apr 23 1998 Donnie Barnes -- removed perl and python interpreters (sorry, but those don't belong - in a /bin/vi and having two vi's seemed like overkill...complain - to suggest@redhat.com if you care) - -* Fri Apr 17 1998 Donnie Barnes -- fixed buildroot bug - -* Sat Apr 11 1998 Donnie Barnes -- updated from 4.6 to 5.1 -- moved to buildroot - -* Sun Nov 09 1997 Donnie Barnes -- fixed missing man page - -* Wed Oct 22 1997 Donnie Barnes -- added wmconfig entry to vim-X11 - -* Mon Oct 20 1997 Donnie Barnes -- upgraded from 4.5 to 4.6 - -* Fri Jun 13 1997 Erik Troan -- built against glibc - -* Tue Mar 25 1997 Michael K. Johnson -- Upgraded to 4.5 -- Added ex symlinks - -* Tue Mar 11 1997 Michael K. Johnson -- Added view symlink. diff --git a/Makefile b/Makefile deleted file mode 100644 index 7554df34..00000000 --- a/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# Makefile for source rpm: vim -# $Id$ -NAME := vim -SPECFILE = $(firstword $(wildcard *.spec)) - -include ../common/Makefile.common diff --git a/README.patches b/README.patches index 033c990c..159f3bba 100644 --- a/README.patches +++ b/README.patches @@ -1,4 +1,4 @@ -Patches for Vim - Vi IMproved 7.0 +Patches for Vim - Vi IMproved 7.1 The files in this directory contain source code changes to fix problems in released versions of Vim. Each file also contains an @@ -8,261 +8,272 @@ was sent to the vim-dev maillist. The best is to apply the patches in sequence. This avoids problems when a patch depends on a previous patch. If you did not unpack the extra archive, you may want to skip patches marked with "extra:". -Similarly for the "lang" archive. +Similarly for the "lang" archive. Or ignore errors for missing files. Before patching, change to the top Vim directory, where the "src" and "runtime" directories are located. Depending on the version of "patch" that you use, you may have add an argument to make it patch the right file: - patch -p < 7.0.001 - patch -p0 < 7.0.001 + patch -p < 7.1.001 + patch -p0 < 7.1.001 After applying a patch, you need to compile Vim. There are no patches for binaries. Checksums for the patch files can be found in the file MD5. -Collection of patches for Vim 7.0: +Collection of patches for Vim 7.1: SIZE NAME INCLUDES - 98331 7.0.001-100.gz patches 7.0.001 to 7.0.100, gzip'ed - 79463 7.0.101-200.gz patches 7.0.101 to 7.0.200, gzip'ed + 91424 7.1.001-100.gz patches 7.1.001 to 7.1.100, gzip'ed + 75402 7.1.101-200.gz patches 7.1.101 to 7.1.200, gzip'ed -Individual patches for Vim 7.0: +Individual patches for Vim 7.1: SIZE NAME FIXES - 1627 7.0.001 'spellsuggest' could not be added to - 2007 7.0.002 C omni complete has problem with % and # in tags file path - 1876 7.0.003 GUI: click in tab pages label may warp mouse pointer - 1596 7.0.004 Compiler warning for debug_saved used before set - 1579 7.0.005 (extra) Win32: uninstall didn't delete spell and autoload dirs - 1347 7.0.006 Mac: "make shadow" didn't link infplist.xml - 1919 7.0.007 AIX: compiling failed for message.c - 2081 7.0.008 Can't call a function that uses both and {expr} - 1625 7.0.009 ml_get errors when 'spell' is set - 3705 7.0.010 spellfile plugin required typing login name and password - 1989 7.0.011 can't compile with eval feature without folding feature - 2532 7.0.012 matchparen plugin changed cursor column in Insert mode - 4614 7.0.013 Insert mode completion: CTRL-L jumped back to original text - 5712 7.0.014 Motif: doesn't compile with Motif 1.2 and earlier - 4485 7.0.015 Athena: type casts for lvalues - 1810 7.0.016 recognize encodings "mac-roman", "dec-mcs" and "hp-roman8" - 2302 7.0.017 (after 7.0.014) Motif: doesn't link with Motif 1.2 and earlier - 1649 7.0.018 VMS: plugins are not loaded on startup - 1425 7.0.019 crash for "VjA789" and repeating - 1470 7.0.020 GUI: crash when using 'mousefocus' - 4240 7.0.021 crash when using "\\[" and "\\]" in 'errorformat - 5471 7.0.022 Ruby: buffer.append() could append to the wrong buffer - 5351 7.0.023 crash after Insert mode completion without matches - 1619 7.0.024 it is possible to set arbitrary v: variables - 2606 7.0.025 crash when deleting an item from a:000 - 1800 7.0.026 Unix: when using libcall() and old error may be shown - 1344 7.0.027 (extra) Win32: hang on exit when compiled with SNiFF+ - 3014 7.0.028 (extra) OS/2: compilation problem - 1494 7.0.029 cursor position may be wrong when using getchar() - 1664 7.0.030 the ":compiler" command can't be used in a FileChangedRO event - 1808 7.0.031 after deleting a buffer its Select mode mappings remain - 1424 7.0.032 (extra, after 7.0.027) missing semicolon - 2431 7.0.033 pasting after autoindent removes the indent - 2042 7.0.034 repeating completion was wrong after typing text or using BS - 5905 7.0.035 repeating Insert mode completion doesn't work properly - 3990 7.0.036 can't compile with small features and syntax HL - 1880 7.0.037 crash when resizing Vim window when a line doesn't fit - 3236 7.0.038 complete() can be used from expr. mapping after inserting text - 3240 7.0.039 third argument for inputdialog() doesn't work in the console - 1946 7.0.040 mouse selection with "z=" and inputlist() gets wrong entry - 2229 7.0.041 cursor([1, 2]) failed, required third item in the list - 1603 7.0.042 crash or hang when pasting a block in Insert mode - 1534 7.0.043 "%!" at start of 'statusline' didn't work - 5277 7.0.044 Perl: changing a line in a non-current buffer may not work - 1741 7.0.045 (extra) Win32: MSVC 2005 compiler warnings for OLE version - 2318 7.0.046 the matchparen plugin didn't handle parens in single quotes - 2219 7.0.047 the exit status of the configure script can be wrong - 2173 7.0.048 the gzip plugin can't handle file names that have a paren - 2221 7.0.049 some Tcl scripts are not recognized - 1437 7.0.050 can't properly close a buffer through the NetBeans interface - 6097 7.0.051 (after 7.0.44) compile and/or run problem with Perl interface - 2237 7.0.052 the Vim server may expose more functionality than expected - 1379 7.0.053 shortening multi-byte directory name may fail - 2464 7.0.054 using an empty menu name may cause a crash - 2204 7.0.055 ":startins" in CmdwinEnter autocmd doesn't work immediately - 1484 7.0.056 can't use "#!" in Vim scripts to make them executable - 1779 7.0.057 (extra, after 7.0.45) compilation trouble with Borland C 5.5 - 1423 7.0.058 gbk and gb18030 encodings are not recognized - 2110 7.0.059 Perl interface doesn't compile with ActiveState Perl 5.8.8 - 18082 7.0.060 code for switching buffers is repeated in several places - 2249 7.0.061 crash in Vim command completion when nothing to complete - 4075 7.0.062 Mac: crash when using popup menu with spell error - 1295 7.0.063 tiny chance for a memory leak - 1818 7.0.064 compiler warnings for unused variables - 1750 7.0.065 (extra) Mac: horizontal scroll wheel caused vertical scroll - 1407 7.0.066 tab pages line not redrawn after removing the popup menu - 3038 7.0.067 undo problems when using input method - 6123 7.0.068 'ignorecase' is not used properly for Insert mode completion - 1457 7.0.069 crash when setting 'guitablabel' to "%!expand(\%)" - 71560 7.0.070 compiler warnings for shadowed and uninitialized variables - 1550 7.0.071 using empty search pattern may cause a crash - 2791 7.0.072 can't specify anything to do when starting the GUI fails - 1597 7.0.073 CR in Insert mode completion may select original text - 6819 7.0.074 (extra) Win32: tooltips can be in the wrong encoding - 1495 7.0.075 winsaveview() could store wrong desired cursor column - 2635 7.0.076 (after 7.0.010) could not get spell files from non-ftp server - 2799 7.0.077 crash when unletting a v: variable - 1968 7.0.078 there are two error messages called E46 - 51669 7.0.079 vimtutor doesn't work for Russian when 'encoding' is utf-8 - 1759 7.0.080 compile error when CFLAGS contains a backslash - 2043 7.0.081 command line completion doesn't work for ":!/path" - 2850 7.0.082 crash when using List or Dict argument and waiting for input - 3001 7.0.083 mouse doesn't work for all entries with inputlist() - 5968 7.0.084 garbage collection may free Lists and Dicts still in use - 1512 7.0.085 running tests changes the viminfo file - 2379 7.0.086 getqflist() uses number zero for empty pattern and text - 7382 7.0.087 'acd' doesn't work for ":file fname" and ":saveas fname" - 3066 7.0.088 generated prototypes have "extern" when build with Perl - 2445 7.0.089 "ga" gave wrong results for non-Unicode multi-byte encoding - 2486 7.0.090 need to type Esc twice in console confirm() dialog - 1698 7.0.091 winrestview() may leave cursor in the wrong position - 2952 7.0.092 (after 7.0.082) list of internal function args is obsolete - 2320 7.0.093 matchparen plugin can't handle some values of 'matchpairs' - 2394 7.0.094 fileinfo message is given too often after ":buf N" - 52575 7.0.095 Greek tutor is not available in utf-8 - 2561 7.0.096 taglist() does not use path of tags file - 2617 7.0.097 tab pages line was not updated for ":tabclose N" - 2196 7.0.098 redirection didn't work inside cmdline completion - 2189 7.0.099 GUI: scrolling causes problems for the popup menu - 2086 7.0.100 "zug" may report the wrong filename - 2732 7.0.101 "zw" mostly doesn't work; "zg" may create wrong directory - 1634 7.0.102 redraw problem in cmdline when using SCIM - 1617 7.0.103 (after 7.0.101) compiler warning for uninitialized variable - 2522 7.0.104 CursorHold[I] may trigger when it is not wanted - 1513 7.0.105 during incremental search the ruler is not updated - 5102 7.0.106 spell popup menu may have side effects - 1805 7.0.107 tab pages line was not redrawn when using 'incsearch' - 2583 7.0.108 (extra) Amiga: compilation error for mch_mkdir() - 1923 7.0.109 Lisp indenting gets confused by an escaped quote in a string - 2557 7.0.110 Amiga: Compilation problems when not using libnix - 10411 7.0.111 gzip plugin can't handle file names with special characters - 2687 7.0.112 Python interface doesn't compile with Python 2.5 - 1878 7.0.113 crash when using CTRL-L in Insert mode completion - 1964 7.0.114 get extra undo point when using CTRL-C to abort Insert mode - 2339 7.0.115 missing some matches when Insert mode completion ignores case - 1508 7.0.116 MS-Windows: :version reported 32 bits for 64 bits systems - 5028 7.0.117 problem when mixing keepend and extend in syntax highlighting - 1529 7.0.118 printf() doesn't allow zero padding for strings - 1412 7.0.119 CursorHold event is not triggered when leaving Insert mode - 1780 7.0.120 crash when using getreg('=') in the = register - 1549 7.0.121 GUI: dragging last status line doesn't work with text tabline - 2865 7.0.122 only half of double-wide bold character may be drawn - 4200 7.0.123 SCO Openserver: configure selects the wrong terminal library - 2376 7.0.124 window-local variables from getwinvar() are for current window - 2335 7.0.125 '< and '> marks were set before Visual mode finishes - 2112 7.0.126 undo could be wrong when 'formatexpr' uses setline() - 2605 7.0.127 crash when swap file has invalid timestamp - 2246 7.0.128 GUI: display not updated when cancelling exit dialog - 2884 7.0.129 GTK GUI: avoid GTK bug concerning directory for file dialog - 5509 7.0.130 (extra) MS-DOS, MS-Windows: may get stuck using a device name - 2632 7.0.131 Win32: "vim -r" does not find swap files starting with a dot - 2163 7.0.132 (after 7.0.130) crash when reading from stdin - 3189 7.0.133 too many messages in history when searching included files - 2290 7.0.134 crash when trying to compare recusively looped List or Dict - 10022 7.0.135 crash in garbage collector with recusively looped List/Dict - 1703 7.0.136 CursorMoved not triggered when inserting a line - 2746 7.0.137 configure check for big features is wrong - 12174 7.0.138 (extra) Mac: modifiers keys don't work with function keys - 2044 7.0.139 undo info missing when using CTRL-PageUp in Insert mode - 2235 7.0.140 (after 7.0.134) comparing list/dict with itself is inefficient - 6513 7.0.141 extra CR when pasting with the mouse on the command line - 2075 7.0.142 middle mouse button didn't work right in Select mode - 1531 7.0.143 setting 'scroll' to its default value didn't work correctly - 5584 7.0.144 pattern matching may do wrong pointer computations - 1463 7.0.145 (after 7.0.142) compiler warning - 4308 7.0.146 opening file for quickfix may ignore windows already open - 8181 7.0.147 session file can be wrong when there are multiple tab pages - 1710 7.0.148 no error message for ":call d.foo()" when "foo" doesn't exist - 5277 7.0.149 when resizing windows scrolling is not done in the best way - 2416 7.0.150 when resizing the Vim window scrollbinding doesn't work - 1932 7.0.151 button order in GTK file dialog is different from Gnome rules - 2279 7.0.152 crash when using lesstif 2 - 4356 7.0.153 crash with cscope when temp file can't be opened - 1727 7.0.154 when 'foldnextmax' is negative Vim could hang - 5872 7.0.155 when getchar() returns a mouse button the position is unknown - 21499 7.0.156 (extra) Vim doesn't compile on Amiga OS4 - 3594 7.0.157 profiling info was bogus for a recursively called function - 1485 7.0.158 cursor in closed fold after adding new line - 2455 7.0.159 not enough information for an I/O error in the swap file - 9446 7.0.160 ":@a" echoes the command - 6639 7.0.161 (extra) Win32: window and tabline menu may use wrong encoding - 5819 7.0.162 doesn't exit with "vim -o a b" and abort at ATTENTION prompt - 4306 7.0.163 can't get the position of a sign over the netbeans interface - 1518 7.0.164 ":redir @+" doesn't work - 2284 7.0.165 using CTRL-L to add to a search pattern fails for some chars - 1865 7.0.166 crash with cscope when a file descriptor is NULL - 1942 7.0.167 can't redefine a function in a dictionary - 2224 7.0.168 reading uninitialized memory and a memory leak in recovery - 1812 7.0.169 Visual block highlighting not removed for "I" and "A" - 2545 7.0.170 (extra) Win32: un-maximizing and tab pages line problem - 14457 7.0.171 (extra) VMS: problem with file names with multiple paths - 2389 7.0.172 crash when recovering a file and quitting hit-enter prompt - 1703 7.0.173 ":call f().TT()" doesn't work - 2838 7.0.174 ":mksession" doesn't restore tab page window layout properly - 1498 7.0.175 tr() didn't add a final NUL - 1781 7.0.176 ":emenu" isn't executed directly, breaks the crypt key prompt - 4292 7.0.177 key from mapping at press-enter prompt would be remapped - 1565 7.0.178 comparing utf-8 strings with 'ic' may look past NUL bytes - 1744 7.0.179 crash when recovering without a swap file name - 3061 7.0.180 (extra) VMS: build problem and problem with swap files - 1790 7.0.181 when reloading a buffer an extra empty line may appear - 2768 7.0.182 cannot reach every point in the undo tree after using "g-" - 4142 7.0.183 accessing memory already freed after ":redir => var" ":let" - 2400 7.0.184 cscope interface doesn't work with mlcscope - 2927 7.0.185 multi-byte chars in message get attributes from previous char - 1731 7.0.186 ml_get error when doing "/\_s*/e" with utf-8 'encoding' - 7601 7.0.187 can't properly source a remote script - 1602 7.0.188 (after 7.0.186) warning for wrong pointer type - 2290 7.0.189 translated message about finding matches is truncated - 1778 7.0.190 "syntax spell default" results in an error message - 10918 7.0.191 the items used by getqflist() and setqflist() don't match - 5114 7.0.192 ml_get errors when resetting 'swapfile' in empty file - 1599 7.0.193 crash when using --remote with arg matching 'wildignore' - 2701 7.0.194 ml_get errors may be given in a recursive loop - 2677 7.0.195 endless loop for conversion error when auto-writing - 2751 7.0.196 mouse pointer position wrong after ":vert ball" - 1717 7.0.197 (extra) Win32: can't compile with EXITFREE - 7454 7.0.198 (extra) Win32: compiler warnings, don't generate gvim.exe.mnf - 1969 7.0.199 cursor in wrong col when completing+formatting multi-byte - 2792 7.0.200 memory leaks when out of memory - 2511 7.0.201 error message from ":diffput" may be wrong - 9403 7.0.202 compiler and runtime problems on Tandem systems - 5579 7.0.203 0x80 and CSI need to be escaped when executing a register - 1892 7.0.204 cscope: parsing of lines for listing doesn't work properly - 1573 7.0.205 (after 7.0.203) can't compile tiny version - 2099 7.0.206 (after 7.0.058) can't edit all gb18030 files properly - 3000 7.0.207 (after 7.0.203) 0x80 and CSI escaped too often when recording - 9414 7.0.208 (after 7.0.171 and 7.0.180) VMS: path changes cause trouble - 1706 7.0.209 Python: cursor may end up beyond end of changed line - 3863 7.0.210 ":cbuffer" and ":lbuffer" don't take a ! - 1674 7.0.211 CTRL-U in Insert mode deletes autoindent when 'bs' is zero - 2636 7.0.212 GUI doesn't terminate on SIGTERM - 1463 7.0.213 "z=" crashes when regions in 'spellfile' share soundfolding - 4870 7.0.214 can't get "\ " argument for in a user command - 2807 7.0.215 (extra) Mac: Context menu has disabled useless Help entry - 3460 7.0.216 ":tab wincmd ]" does not open a new tab page - 2007 7.0.217 hang when pressing "n" for ":%s/\n/,\r/gc" - 1479 7.0.218 "%B" in 'statusline' doesn't work in Insert mode - 4108 7.0.219 editexisting.vim doesn't see buffer in other tab page - 1448 7.0.220 crash when using winnr('#') in a new tab page - 3029 7.0.221 finddir() did not work properly for "." in path - 4147 7.0.222 'cindent' works for Perl, except for recognizing comments - 2604 7.0.223 popup menu could not handle unprintable characters - 6467 7.0.224 when expanding "##" spaces are escaped twice - 2203 7.0.225 after setline() cursor may be on wrong byte of mulit-byte char - 1578 7.0.226 display flicker when setting sign through netbeans interface - 1720 7.0.227 crash when closing a window in the GUI - 1779 7.0.228 Cygwin: problem with symlink to DOS style path - 1806 7.0.229 if 'pt' starts with Esc then Insert mode Esc doesn't time out - 4586 7.0.230 a script doesn't know if the current dir is a local dir - 2628 7.0.231 recovery from a swap file may crash - 18671 7.0.232 (extra) Mac: GUI tab labels are not supported - 9738 7.0.233 (extra) Mac: code badly formatted - 1723 7.0.234 feedkeys() may be invoked from a modeline - 2299 7.0.235 writefile() may be invoked from a modeline + 2404 7.1.001 can't build with Gnome GUI + 2011 7.1.002 Oracle Pro*C/C++ files are not detected + 1529 7.1.003 (extra) Win32: menu entries end up in message history + 2481 7.1.004 crash when editing a directory + 3841 7.1.005 "cit" used on deletes + 2941 7.1.006 when reading from stdin 'modified' can't be reset in autocmd + 6458 7.1.007 (extra) Mac: context menu does not work, scrollbars not dimmed + 2631 7.1.008 getfsize() returns an invalid number for very big files + 1881 7.1.009 diff mode: tab to spaces change not highlighted correctly + 2796 7.1.010 Gnome: tab pages are not included in the saved session + 1934 7.1.011 buffer overflow when $VIMRUNTIME is very long + 1904 7.1.012 ":let &tw = 'asdf'" does not give an error message + 2139 7.1.013 ":syn include" only loads the first file + 1479 7.1.014 crash in C-indenting + 3743 7.1.015 MzScheme interface doesn't build on Mac; init problem + 2368 7.1.016 (after 7.1.012) error message when using ":cwindow" + 6729 7.1.017 ":confirm w" does not give a prompt when file is read-only + 1771 7.1.018 "p" at end of line doesn't work right when 've' is set + 1650 7.1.019 ":python" doesn't mention the command is not implemented + 3229 7.1.020 reading uninitialized memory when using a dialog + 2875 7.1.021 (after 7.1.015) MzScheme interface doesn't build on Win32 + 1842 7.1.022 when setting 'keymap' twice b:keymap_name variable isn't set + 1718 7.1.023 "dw" in a line with one character deletes the line + 1335 7.1.024 using a pointer that may have become invalid + 2292 7.1.025 search('pat', 'bc) doesn't find word under cursor at BOL + 1710 7.1.026 "[p" doesn't work in Visual mode + 3345 7.1.027 on Sun OS reading from a process substitutions doesn't work + 2239 7.1.028 ":sort" does nothing special with empty search pattern + 2692 7.1.029 (after 7.1.019) can't compile when all interfaces are used + 2364 7.1.030 vimtutor shell script checks for "vim6" but not for "vim7" + 6533 7.1.031 virtcol([123, '$']) doesn't work + 3006 7.1.032 possible crash when doing completion on the command line + 1530 7.1.033 buffer marked modified after ":bdel" and ":next" + 2956 7.1.034 Win64: compiler warnings for typecast, optimizer problem + 1797 7.1.035 after ":s/./&/#" all listed lines have a line number + 12171 7.1.036 add "none" to completion of ":echohl" and ":match" + 1817 7.1.037 using strcpy() for an overlapping string + 5704 7.1.038 'preseveindent' doesn't always work when 'et' is set + 1750 7.1.039 weird help-tags tag in docs file may make cause a crash + 53412 7.1.040 ":match" only supports three matches + 4614 7.1.041 (extra, after 7.1.040) update test makefiles for new test + 2366 7.1.042 (after 7.1.040) internal error when using matchadd() + 2820 7.1.043 in Ex mode using CTRL-D twice may cause a crash + 1632 7.1.044 in Insert mode 0 CTRL-T deletes all indent + 3101 7.1.045 double screen redraw in some situations + 1637 7.1.046 ":s/.*/&/" deletes composing characters + 1552 7.1.047 wrong argument for vim_regcomp() + 5010 7.1.048 paren highlighting is not updated after scrolling + 1722 7.1.049 can't compile with GTK2 when using hangul input feature + 4800 7.1.050 possible crash in C++ indenting + 2295 7.1.051 accessing uninitialized memory when finding spell suggestions + 2435 7.1.052 when creating a new match not all fields are initialized + 1473 7.1.053 reading uninitialized memory when updating command line + 4451 7.1.054 accessing uninitialized memory when displaying the fold column + 5414 7.1.055 using strcpy() with arguments that overlap + 3151 7.1.056 scrolling back at more prompt doesn't work properly + 2514 7.1.057 CursorHold causes problems for Normal and Visual mode commands + 10612 7.1.058 completion menu doesn't work properly when 'righleft' is set + 3350 7.1.059 in Ex mode "g/^/vi" and pressing CTRL-C: Vim hangs and beeps + 5066 7.1.060 splitting quickfix window messes up window layout + 6320 7.1.061 with latin1 'ignorecase' doesn't work for umlauts + 1550 7.1.062 (after 7.0.038) C comment indent can be wrong + 1391 7.1.063 compiler warning for uninitialized variable + 1405 7.1.064 on interix some files appear not to exist + 2983 7.1.065 Win32: MingW Compilation problem for newer version of w32api + 4553 7.1.066 when 'bomb' is changed the file should be considered modified + 7701 7.1.067 'infercase' doesn't work for thesaurus completion + 6709 7.1.068 'equalalways' equalizes windows too often + 2757 7.1.069 GTK GUI: confirm() dialog has a default button when not wanted + 1560 7.1.070 (extra) Win32 GUI: same confirm() default button problem + 5534 7.1.071 (after 7.1.040) add a basic test for regexp patterns + 5705 7.1.072 (extra, after 7.1.041 and 7.1.071) extra part of 7.1.071 + 3595 7.1.073 (after 7.1.062) crash when 'preserveindent' is set + 5259 7.1.074 crash when using string() on a recursively nested List + 1686 7.1.075 ":let v:statusmsg" reads memory already freed + 2376 7.1.076 a couple more strcpy() with overlapping arguments + 1551 7.1.077 "can_spell" is used without initializing it + 2678 7.1.078 dropping file name on gvim containing CSI byte doesn't work + 2922 7.1.079 "@" character in 'isfname' doesn't pick up umlauts for latin1 + 2960 7.1.080 (extra) Compiler warnings for gvimex.cpp + 3253 7.1.081 completion doesn't work after ":!cat ") may return < 0 for a Linewise selection + 1515 7.1.133 shorten_fname1() linked when it's not needed + 10379 7.1.134 (extra) Win32: Can't build with VC8 + 3337 7.1.135 Win32: ":e c:/tmp/foo" and ":e c:/tmp//foo" create two buffers + 1522 7.1.136 memory leak when using Ruby syntax highlighting + 1553 7.1.137 build failure when using EXITFREE + 1836 7.1.138 Perl: Msg() doesn't stop when "q" is typed at the more prompt + 1557 7.1.139 fold truncated when ending Insert mode with CTRL-C + 1664 7.1.140 v:count can't be used in an expression mapping + 2806 7.1.141 GTK: can't use negative offset with -geom argument + 2161 7.1.142 ":redir @A>" doesn't work + 1723 7.1.143 uninitialized memory read when diffing three files + 1250 7.1.144 after ":diffup" cursor can be in the wrong position + 6160 7.1.145 stay in Insert completion mode depending on the char typed + 2838 7.1.146 VMS: writing fails for rare record organisation + 2079 7.1.147 (after 7.1.127) freeing memory twice completing user name + 2557 7.1.148 QNX and some other systems require testing for sys/types.h + 4823 7.1.149 completion menu messed up when using the scroll bar + 1759 7.1.150 Visual mode "p" doesn't work when 'clipboard' has "unnamed" + 2108 7.1.151 lalloc(0) error for line completion with 'ic' and 'inf' set + 3183 7.1.152 display problem when 'hls' and 'cursorcolumn' are set + 4610 7.1.153 compiler warnings on SGI + 1547 7.1.154 (after 7.1.152) compiler warning for signed/unsigned compare + 1594 7.1.155 crash when 'undolevels' is 0 and repeating "udd" + 4174 7.1.156 overlapping arguments for strcpy() during cmdline completion + 1541 7.1.157 :" in Ex mode at end of file results in an error message + 4629 7.1.158 (extra) Win32: with utf-8 and cp1250 Alt-y is the wrong char + 1646 7.1.159 overlapping arguments for a strcpy() + 1661 7.1.160 getting/losing focus may cause hit-enter prompt to be redrawn + 4347 7.1.161 compilation errors with tiny features and EXITFREE + 4691 7.1.162 crash when using a modifier before "while" or "for" + 2367 7.1.163 warning for the unknown option 'bufsecret' + 1576 7.1.164 reading past end of regexp pattern + 5538 7.1.165 crash related to getting X window ID + 2134 7.1.166 memory leak when using "gp" in Visual mode + 2528 7.1.167 xxd crashes when using "xxd -b -c 110" + 2989 7.1.168 (extra) Win32 GUI: when no focus click doesn't position cursor + 1926 7.1.169 using uninitialized memory when system() fails + 1722 7.1.170 overlapping arguments to strcpy() + 2324 7.1.171 reading one byte before allocated memory. + 1536 7.1.172 if 'buftype' is "acwrite" Vim still does overwrite check + 1928 7.1.173 accessing freed memory when using "\%^" pattern + 2197 7.1.174 writing NUL past end of a buffer + 4722 7.1.175 doesn't work with some combination of option settings + 2943 7.1.176 compiling with Aap fails if "compiledby" contains '<' or '>' + 5450 7.1.177 freeing memory twice when in debug mode while reading a script + 1567 7.1.178 "%" doesn't work on "/* comment *//* comment */" + 6581 7.1.179 configure doesn't find TCL 8.5 + 7099 7.1.180 regexp patterns are not sufficiently tested + 1878 7.1.181 accessing uninitialized memory in Farsi mode with ":s" + 5457 7.1.182 with tab pages and an argument list session file may be wrong + 2489 7.1.183 Internal error for ":echo matchstr('a', 'a\%[\&]')" + 2132 7.1.184 crash when deleting backwards over a line break in Insert mode + 3744 7.1.185 "gR" and then BS doesn't work properly with multi-byte chars + 3294 7.1.186 "expand('')" returns a bogus value after ":cd dir" + 2341 7.1.187 Win32 GUI: custom completion using system() doesn't work + 1688 7.1.188 "W10" message could be displayed in the second column + 1950 7.1.189 (after 7.1.104) need to call plain_vgetc() in ask_yesno() + 1685 7.1.190 cursor after end-of-line: "iA sentence.)" + 2007 7.1.191 Win32 GUI: when not in focus click in scrollbar doesn't work + 2605 7.1.192 CTRL-C doesn't stop duplicating text for "s" in Visual block + 2962 7.1.193 some of the Vim 5.x digraphs could be supported + 1650 7.1.194 Unix: ":echo glob('~/{}')" results in "/home/user//" + 2273 7.1.195 '0 mark doesn't work for "~/foo ~ foo" + 2642 7.1.196 (extra) Win32 GUI: "\n" in a tooltip doesn't cause line break + 2308 7.1.197 Mac: "make install" doesn't work when $prefix is set + 1460 7.1.198 hang when using ":s/\n//gn" + 3572 7.1.199 can't do command line completion for a file name extension + 2310 7.1.200 (after 7.1.177 and 7.1.182) compiler warnings + 2705 7.1.201 when reading stdin 'fenc' and 'ff' are not set + 2383 7.1.202 incomplete utf-8 byte sequence is not checked for validity + 2261 7.1.203 if 'virtualedit' is "onemore" then ":normal 99|" is not right + 2891 7.1.204 (extra) Win32: 'balloonexpr' tooltip disappears after 4 sec + 5481 7.1.205 can't get the operator in an ":omap" + 1690 7.1.206 compiler warnings when using MODIFIED_BY + 7708 7.1.207 netbeans: "remove" cannot delete one line + 2051 7.1.208 on Alpha get an unaligned access error + 2249 7.1.209 GTK GUI: when using the netrw plugin ":gui" causes a hang + 1923 7.1.210 listing mapping for 0xdb fails when 'encoding' is utf-8 + 25525 7.1.211 matchparen plugin may take so long it looks like Vim hangs + 1491 7.1.212 accessing a byte before a line + 1750 7.1.213 aborting ":tabedit" from the ATTENTION dialog leaves tab open + 8399 7.1.214 ":1s/g\n\zs1//" deletes characters from the first line + 6476 7.1.215 it's difficult to figure out the nesting of syntax items + 2360 7.1.216 variants of --remote-tab are not mentioned for "vim --help" + 7103 7.1.217 the "help-tags" tag may be missing from runtime/doc/tags + 1864 7.1.218 syntax region without "keepend" could be truncated + 12134 7.1.219 (after 7.1.215) synstack() doesn't work for one char region + 3928 7.1.220 cursor may end up on trail byte after ")" + 1978 7.1.221 when inserting a "(" the following highlighting may be wrong + 3531 7.1.222 (after 7.1.217) wildcards of ":helptags" are not expanded + 8138 7.1.223 glob() doesn't handle "'" when 'shell' is "sh" or "bash" + 2131 7.1.224 "vim -F -o one two" sets 'rightleft' in one window only + 1767 7.1.225 using unitialized value when XGetWMNormalHints() fails + 1957 7.1.226 command line completion fails for a file name with a '&' char + 5595 7.1.227 hang in syntax HL when moving over a ")" + 1678 7.1.228 with 'foldmethod' "indent" fold can't be closed after "3>>" + 1758 7.1.229 a fold is closed when backspacing in Insert mode + 2052 7.1.230 memory leak when executing SourceCmd autocommands + 8648 7.1.231 when shifting lines the change is acted upon multiple times + 2002 7.1.232 (after 7.1.207 and 7.1.211) compiler warnings with MSVC + 3249 7.1.233 crash with Insert mode completion for a user defined command + 6865 7.1.234 display problems when diff'ing three files + 5925 7.1.235 pattern matching is slow when using a lot of simple patterns + 28992 7.1.236 hang when using complicated pattern and 'hlsearch' or ":match" + 1704 7.1.237 compiler warning on an Alpha processor in Motif code + 1801 7.1.238 searchpair() may fail when using 'c' or 'r' flag + 1639 7.1.239 (after 7.1.233) compiler warning for sprintf() argument + 5157 7.1.240 "gUe" may stop before the end of the word + 3093 7.1.241 focus change events not always ignored + 2262 7.1.242 "cib" doesn't work properly on "(x)" + 4475 7.1.243 (after 7.1.240) "U" doesn't work on all text in Visual mode + 1847 7.1.244 GUI may have part of the command line cut off + 2767 7.1.245 pressing CTRL-\ three times causes Vim to quit diff --git a/gvim.desktop b/gvim.desktop index 794f4829..72bfdd81 100644 --- a/gvim.desktop +++ b/gvim.desktop @@ -59,5 +59,5 @@ Exec=gvim -f %f Icon=gvim Type=Application Terminal=0 -XClassHintResName=VIM +X-XClassHintResName=VIM MapNotify=false diff --git a/sources b/sources index ada3f552..786a587f 100644 --- a/sources +++ b/sources @@ -1,6 +1,3 @@ -1f17af2008ae94359a48be7e865b084f cvim.zip -200f741ecc2a896fca25486764fa18a2 vim-7.0-extra.tar.gz -6d43efaff570b5c86e76b833ea0c6a04 vim-7.0-lang.tar.gz -4ca69757678272f718b1041c810d82d8 vim-7.0.tar.bz2 -1ce27567cdc9cf555d49354758d5273e runtime-update-20060911.tar.bz2 -2ddbdf36e1c1b74a3dafdf9271fefa85 vim-spell-files.tar.bz2 +605cc7ae31bcc9d7864bb0bb6025f55d vim-7.1-extra.tar.gz +144aa049ba70621acf4247f0459f3ee7 vim-7.1-lang.tar.gz +44c6b4914f38d6f9aa959640b89da329 vim-7.1.tar.bz2 diff --git a/spec.vim b/spec.vim deleted file mode 100644 index 7a21583c..00000000 --- a/spec.vim +++ /dev/null @@ -1,176 +0,0 @@ -" Vim filetype plugin -" Language: spec file -" Maintainer: Guillaume Rousse -" URL: http://lis.snv.jussieu.fr/~rousse/linux/spec.vim -" Version: $Id: spec.vim,v 1.2 2005/02/10 16:45:35 karsten Exp $ - -if exists("b:did_ftplugin") - finish -endif -let b:did_ftplugin = 1 - -" Add mappings, unless user doesn't want -if !exists("no_plugin_maps") && !exists("no_spec_maps") - if !hasmapto("AddChangelogBlock") - map ch AddChangelogBlock - endif - if !hasmapto("AddChangelogEntry") - map CH AddChangelogEntry - endif - noremap