+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.001
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.002
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " Last Change: 2006 May 03
-
-
- " This function is used for the 'omnifunc' option.
---- 1,7 ----
- " Vim completion script
- " Language: C
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.003
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.004
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.006
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.007
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.008
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <SID> and {expr}. (Thomas)
-Solution: Check both the expanded and unexpanded name for <SID>.
-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 "<SID>" */
- 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 "<SID>" */
- 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.009
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.010
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.011
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.012
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.013
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.014
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.015
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.016
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.017
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.018
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.019
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.020
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.021
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.022
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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,
- /**/
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.023
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.024
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-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.
-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
-***************
-*** 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
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 24,
- /**/
-
---
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.025
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.026
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.029
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.030
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.031
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.033
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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<BS>" 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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " 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()<CR>"}
- let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
-! let paste#paste_cmd['i'] = '<Esc>' . paste#paste_cmd['n'] . 'gi'
-
- func! paste#Paste()
- let ove = &ve
---- 12,18 ----
- if has("virtualedit")
- let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
- let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
-! let paste#paste_cmd['i'] = 'x<BS><Esc>' . 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.034
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.035
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.036
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.037
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.038
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.039
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.040
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.041
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.042
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.043
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-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.
-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
-***************
-*** 6325,6331 ****
- else
- 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 "%!" */
-! 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
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 43,
- /**/
-
---
-There's no place like $(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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.044
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.046
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.047
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.048
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " 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("<afile>: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("<afile>: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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.049
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.050
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.051
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.052
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.053
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.054
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.055
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.056
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.058
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.059
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.060
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.061
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.062
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.063
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.064
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.066
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.067
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Left> 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.068
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.069
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.070
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <SNR> 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 <SNR> things.
- */
- static void
-! emsg_funcname(ermsg, name)
-! char *ermsg;
- char_u *name;
- {
- char_u *p;
-***************
-*** 7605,7611 ****
- p = concat_str((char_u *)"<SNR>", name + 3);
- else
- p = name;
-! EMSG2(_(msg), p);
- if (p != name)
- vim_free(p);
- }
---- 7605,7611 ----
- p = concat_str((char_u *)"<SNR>", 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.071
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.072
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.073
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <CR> sometimes selects the original
- text instead of keeping what was typed. (Justin Constantino)
-Solution: Don't let <CR> 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.075
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.076
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.077
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.078
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.079
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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/runtime/tutor/tutor.vim Sat Mar 18 22:36:12 2006
---- runtime/tutor/tutor.vim Sat Sep 2 12:06:47 2006
-***************
-*** 1,6 ****
- " Vim tutor support file
- " Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
-! " Last Change: 2006 Mar 18
-
- " This small source file is used for detecting if a translation of the
- " tutor file exist, i.e., a tutor.xx file, where xx is the language.
---- 1,6 ----
- " Vim tutor support file
- " Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
-! " Last Change: 2006 Sep 02
-
- " This small source file is used for detecting if a translation of the
- " tutor file exist, i.e., a tutor.xx file, where xx is the language.
-***************
-*** 103,113 ****
- let s:ext = ".sk.cp1250"
- endif
-
-! " The Russian tutor is available in two encodings, guess which one to use.
-! " This segment is from the above lines and modified by
-! " Alexey I. Froloff <raorn@altlinux.org> for Russian vim tutorial
-! if s:ext =~? '\.ru' && &enc =~ 1251
-! let s:ext = ".ru.cp1251"
- endif
-
- " Somehow ".ge" (Germany) is sometimes used for ".de" (Deutsch).
---- 103,117 ----
- let s:ext = ".sk.cp1250"
- endif
-
-! " The Russian tutor is available in three encodings, guess which one to use.
-! if s:ext =~? '\.ru'
-! if &enc == 'utf-8'
-! let s:ext = '.ru.utf-8'
-! elseif &enc =~ '1251'
-! let s:ext = '.ru.cp1251'
-! elseif &enc =~ 'koi8'
-! let s:ext = '.ru'
-! endif
- endif
-
- " Somehow ".ge" (Germany) is sometimes used for ".de" (Deutsch).
-*** ../vim-7.0.079/runtime/tutor/tutor.ru.utf-8 Sat Sep 2 14:53:18 2006
---- runtime/tutor/tutor.ru.utf-8 Fri Sep 1 20:33:59 2006
-***************
-*** 0 ****
---- 1,834 ----
-+ ===============================================================================
-+ = Д о б р о п о ж а л о в а т ь в у ч е б н и к VIM - Версия 1.5 =
-+ ===============================================================================
-+ Vim --- это очень мощный редактор, имеющий множество команд, слишком
-+ много для того, чтобы их все можно было описать в таком учебнике, как
-+ этот. Этот учебник призван объяснить достаточное число команд для того,
-+ чтобы Вы могли с легкостью использовать Vim в качестве редактора общего
-+ назначения.
-+
-+ Вам потребуется приблизительно 25-30 минут на освоение данного учебника в
-+ зависимости от того, сколько времени Вы потратите на эксперименты.
-+
-+ Команды в уроках будут модифицировать текст. Создайте копию этого файла,
-+ чтобы попрактиковаться на ней (если Вы запустили "vimtutor", то это уже
-+ копия).
-+
-+ Важно помнить, что этот учебник предназначен для обучения в процессе
-+ использования. Это означает, что Вы должны запускать команды для того,
-+ чтобы как следует их изучить. Если Вы просто прочитаете текст, то
-+ забудете команды!
-+
-+ Теперь убедитесь в том, что клавиша CapsLock не включена и нажмите
-+ клавишу j несколько раз, так, чтобы Урок 1.1 полностью поместился на
-+ экране.
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 1.1: ПЕРЕМЕЩЕНИЕ КУРСОРА
-+
-+ ** Для перемещения курсора нажмите клавиши h,j,k,l так, как показано ниже. **
-+ ^
-+ k Советы: Клавиша h находится слева и перемещает влево.
-+ < h l > Клавиша l находится справа и перемещает вправо.
-+ j Клавиша j похожа на стрелку `вниз'.
-+ v
-+ 1. Подвигайте курсор по экрану, пока не почувствуете себя уверенно.
-+
-+ 2. Надавите клавишу `вниз' (j) пока она не начнет повторяться.
-+ ---> Теперь Вы знаете, как перейти к следующему уроку.
-+
-+ 3. Используя клавишу `вниз' перейдите к Уроку 1.2.
-+
-+ Замечание: Если вы пока не уверены в том, что набираете, нажмите <ESC> для
-+ перехода в обычный режим (Normal mode). После этого перенаберите
-+ требуемую команду.
-+
-+ Замечание: Обычные клавиши управления курсором (стрелки) также должны
-+ работать. Однако, клавиши hjkl позволят Вам перемещаться
-+ значительно быстрее, как только Вы научитесь ими пользоваться.
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 1.2: ЗАПУСК И ЗАВЕРШЕНИЕ РАБОТЫ С VIM
-+
-+ !! ВНИМАНИЕ! Прежде, чем выполнять любой из описанных ниже шагов, прочтите
-+ урок целиком !!
-+
-+ 1. Нажмите клавишу <ESC> (для того, чтобы удостовериться, что Вы в обычном
-+ режиме (Normal mode)).
-+
-+ 2. Наберите: :q! <ENTER>.
-+
-+ ---> Это позволит Вам выйти из редактора БЕЗ СОХРАНЕНИЯ любых сделанных
-+ изменений. Если Вы хотите сохранить изменения и выйти:
-+ :wq <ENTER>
-+
-+ 3. Когда Вы увидите приглашение командной оболочки, наберите команду,
-+ которая привела Вас в этот учебник. Это может быть
-+ vimtutor ru <ENTER>
-+ Обычно можно использовать: vim tutor.ru <ENTER>
-+
-+ ---> 'vim' позволяет запустить редактор vim, 'tutor.ru' --- это файл, который
-+ Вы будете редактировать.
-+
-+ 4. Если Вы уверены в том, что запомнили эти шаги, выполните шаги от 1 до 3
-+ чтобы выйти снова запустить редактор. Затем переместите курсор вниз к
-+ Уроку 1.3.
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 1.3: РЕДАКТИРОВАНИЕ ТЕКСТА - УДАЛЕНИЕ
-+
-+
-+ ** Находясь в обычном режиме нажмите x, чтобы удалить символ под курсором. **
-+
-+ 1. Переместите курсор к строке внизу, помеченной --->.
-+
-+ 2. Для исправления ошибок, переместите курсор, пока он не окажется над
-+ удаляемым символом.
-+
-+ 3. Нажмите клавишу x для удаления требуемого символа.
-+
-+ 4. Повторите шаги 2--4 пока строка не будет исправлена.
-+
-+ ---> От тттопота копытт пппыль ппо ппполю леттитт.
-+
-+ 5. Теперь, когда строка откорректирована, переходите к уроку 1.4.
-+
-+ ЗАМЕЧАНИЕ: В ходе освоения этого учебника не пытайтесь запоминать, учите
-+ в процессе использования.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 1.4: РЕДАКТИРОВАНИЕ ТЕКСТА - ВСТАВКА
-+
-+
-+ ** Находясь в обычном режиме (Normal mode), нажмите i для вставки текста. **
-+
-+ 1. Переместите курсор к первой строке внизу, помеченной --->.
-+
-+ 2. Для того, чтобы сделать первую строку идентичной второй, поместите
-+ курсор на символ ПЕРЕД которым следует вставить текст.
-+
-+ 3. Нажмите i и наберите требуемые добавления.
-+
-+ 4. После исправления всех ошибок нажмите <ESC> для возврата в обычный режим.
-+ Повторите шаги 2--4, пока фраза не будет исправлена полностью.
-+
-+ ---> Часть текста в строке беследно .
-+ ---> Часть текста в этой строке бесследно пропала.
-+
-+ 5. Когда освоите вставку текста, переходите дальше к Резюме.
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ РЕЗЮМЕ УРОКА 1
-+
-+ 1. Курсор перемещается либо клавишами со стрелками, либо клавишами hjkl.
-+ h (влево) j (вниз) k (вверх) l (вправо)
-+
-+ 2. Для запуска Vim (из приглашения % командной оболочки) наберите:
-+ vim ИМЯ_ФАЙЛА <ENTER>
-+
-+ 3. Для завершения работы с Vim наберите:
-+ <ESC> :q! <ENTER> чтобы отказаться от сохранения изменений.
-+ Или наберите:
-+ <ESC> :wq <ENTER> чтобы сохранить изменения.
-+
-+ 4. Для удаления символа под курсором в обычном режиме, наберите: x
-+
-+ 5. Чтобы вставить текст перед курсором в обычном режиме, наберите:
-+ i вводите текст <ESC>
-+
-+ ЗАМЕЧАНИЕ: Нажатие <ESC> переместит Вас в обычный режим (Normal mode) либо
-+ прервет нежелательную и частично завершенную команду.
-+
-+ Теперь переходим к Уроку 2.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 2.1: КОМАНДЫ УДАЛЕНИЯ
-+
-+
-+ ** Наберите dw для удаления участка текста до конца слова. **
-+
-+ 1. Нажмите <ESC>, чтобы перейти в обычный режим.
-+
-+ 2. Переместите курсор вниз, к строке, помеченной --->.
-+
-+ 3. Переместите курсор в начало слова, которое следует удалить.
-+
-+ 4. Наберите dw , чтобы удалить это слово.
-+
-+ ЗАМЕЧАНИЕ: Во время набора буквы dw появятся в последней строке экрана. Если
-+ Вы что-то наберете неправильно, нажмите <ESC> и начните сначала.
-+
-+ ---> Несколько слов рафинад в этом предложении автокран излишни.
-+
-+ 5. Повторите шаги 3 и 4, пока не исправите все ошибки и переходите к
-+ Уроку 2.2.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 2.2: ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ УДАЛЕНИЯ
-+
-+
-+ ** Наберите d$ для удаления текста до конца строки. **
-+
-+ 1. Нажмите <ESC>, чтобы перейти в обычный режим.
-+
-+ 2. Переместите курсор вниз, к строке, помеченной --->.
-+
-+ 3. Переместите курсор к концу правильной строки (ПОСЛЕ первой . ).
-+
-+ 4. Чтобы удалить остаток строки, наберите d$ .
-+
-+ ---> Кто-то набрал окончание этой строки дважды. окончание этой строки дважды.
-+
-+
-+ 5.Чтобы лучше разобраться в этом, переходите к Уроку 2.3.
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 2.3: КОМАНДЫ И ОБЪЕКТЫ
-+
-+
-+ Формат команды `удаление' d таков:
-+
-+ [число] d объект ИЛИ d [число] объект
-+ Здесь:
-+ число - сколько раз исполнить команду (необязательно, по умолчанию=1).
-+ d - команда удаления.
-+ объект - с чем команда должна быть выполнена (перечислено ниже).
-+
-+ Краткий список объектов:
-+ w - от курсора до конца слова, включая завершающий пробел.
-+ e - от курсора до конца слова, НЕ включая завершающий пробел.
-+ $ - от курсора до конца строки.
-+ ^ - от курсора до начала строки.
-+
-+ ЗАМЕЧАНИЕ: Простое нажатие на символ объекта в обычном режиме (Normal mode)
-+ без дополнительных команд передвинет курсор так, как указано в
-+ списке объектов.
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 2.4: ИСКЛЮЧЕНИЕ ИЗ ПРАВИЛА `КОМАНДА-ОБЪЕКТ'
-+
-+
-+ ** Наберите dd для удаления всей строки. **
-+
-+ Вследствие частого применения операции удаления всей строки, разработчики
-+ Vim решили, что для этого проще всего просто набрать d дважды.
-+
-+ 1. Переместите курсор вниз, ко второй строке фразы.
-+ 2. Наберите dd для удаления строки.
-+ 3. Теперь переместитесь к четвертой строке.
-+ 4. Наберите 2dd (вспомните правило `число-команда-объект'), чтобы удалить
-+ две строки.
-+
-+ 1) Летом я хожу на стадион,
-+ 2) О, как внезапно кончился диван!
-+ 3) Я болею за ``Зенит'', ``Зенит'' --- чемпион!
-+ 4) Печально я гляжу на наше поколение!
-+ 5) Его грядущее иль пусто иль темно...
-+ 6) Я сижу на скамейке в ложе `Б'
-+ 7) И играю на большой жестяной трубе.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 2.5: КОМАНДА `ОТКАТ'
-+
-+
-+ ** Нажмите u для отмены результата работы предыдущей команды, U для отмены
-+ исправлений во всей строке. **
-+
-+ 1. Переместите курсор вниз, к строке, помеченной ---> и установите его на
-+ первую ошибку.
-+ 2. Нажмите x для удаления первого неправильного символа.
-+ 3. Теперь нажмите u для отмены (отката) последней выполненной команды.
-+ 4. Исправьте все ошибки в строке, используя команду x .
-+ 5. Теперь нажмите заглавную U для того, чтобы вернуть всю строку в исходное
-+ состояние.
-+ 6. Нажмите u несколько раз для отмены команды U и предыдущих команд.
-+ 7. Нажмите теперь CTRL-R (удерживайте клавишу CTRL нажатой в момент нажатия
-+ R) несколько раз для возврата команд (откат отката).
-+
-+ ---> Испрравьте оошибки в этойй строке и вернитте их сс помощьью `отката'.
-+
-+ 8. Это были очень полезные команды. Далее переходите к Резюме Урока 2.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ РЕЗЮМЕ УРОКА 2
-+
-+
-+ 1. Для удаления текста от курсора до конца слова наберите: dw
-+
-+ 2. Для удаления текста от курсора до конца строки наберите: d$
-+
-+ 3. Для удаления всей строки наберите: dd
-+
-+ 4. Формат команды в обычном режиме имеет вид:
-+
-+ [число] команда объект ИЛИ команда [число] объект
-+ где:
-+ число - сколько раз повторить выполнение команды
-+ команда - что выполнить, например d для удаления
-+ объект - на что должна воздействовать команда, например w (слово),
-+ $ (до конца строки), и т.д.
-+
-+ 5. Для отмены (отката) предшествующих действий наберите: u (строчная u)
-+ Для отмены (отката) всех изменений в строке наберите: U (прописная U)
-+ Для отмены отката наберите: CTRL-R
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 3.1: КОМАНДА ВСТАВКИ
-+
-+
-+ ** Наберите p для вставки последнего удаленного текста после курсора. **
-+
-+ 1. Переместите курсор вниз к последней строке из набора.
-+
-+ 2. Наберите dd для удаления строки и ее сохранения в буфере Vim'а.
-+
-+ 3. Переместите курсор к строке НАД тем местом, куда следует вставить
-+ удаленную строку.
-+
-+ 4. Находясь в обычном режиме наберите p для замены строки.
-+
-+ 5. Повторите шаги 2--4, пока не расставите все строки в нужном порядке.
-+
-+ г) И лучше выдумать не мог.
-+ б) Когда не в шутку занемог,
-+ в) Он уважать себя заставил
-+ а) Мой дядя самых честных правил
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 3.2: КОМАНДА ЗАМЕНЫ
-+
-+
-+ ** Наберите r и символ, заменяющий символ под курсором. **
-+
-+ 1. Переместите курсор вниз, к строке, помеченной --->.
-+
-+ 2. Установите курсор так, чтобы он находился над первой ошибкой.
-+
-+ 3. Наберите r и затем символ, исправляющий ошибку.
-+
-+ 4. Повторите шаги 2 и 3, пока первая строка не будет исправлена.
-+
-+ ---> В момегт набтра этой чтроки кое0кто с трудом попвдал по клваишам!
-+ ---> В момент набора этой строки кое-кто с трудом попадал по клавишам!
-+
-+ 5. Теперь переходите к Уроку 3.2.
-+
-+ ЗАМЕЧАНИЕ: Помните, что вы должны учиться в процессе работы, а не просто
-+ запоминая.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 3.3: КОМАНДА ИЗМЕНЕНИЯ
-+
-+
-+ ** Для изменения части слова наберите cw . **
-+
-+ 1. Переместите курсор вниз, к строке, помеченной --->.
-+
-+ 2. Расположите курсор над буквой `o' в слове `сола'.
-+
-+ 3. Наберите cw и исправьте слово (в данном случае, наберите `лов'.)
-+
-+ 4. Нажмите <ESC> и переходите к следующей ошибке (к первому символу, который
-+ надо изменить.)
-+
-+ 5. Повторите шаги 3--4 пока первое предложение не станет идентичным второму.
-+
-+ ---> Несколько сола в эьгц строке тпгшцбь редалзкуюиесвх.
-+ ---> Несколько слов в этой строке требуют редактирования.
-+
-+ Обратите внимание, что cw не только заменяет слово, но и переводит вас в режим
-+ вставки.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 3.4: ПРОДОЛЖАЕМ ИЗМЕНЯТЬ С КОМАНДОЙ c
-+
-+
-+ ** Команда замены используется с теми же объектами, что и команда удаления. **
-+
-+ 1. Команда изменения применяется таким же образом, как и команда удаления.
-+ Ее формат таков:
-+
-+ [число] c объект ИЛИ c [число] объект
-+
-+ 2. Объекты также совпадают: w (слово), $ (конец строки) и т.п.
-+
-+ 3. Переместите курсор вниз, к строке, помеченной --->.
-+
-+ 4. Перейдите к первой ошибке.
-+
-+ 5. Наберите c$ и отредактируйте первую строку так, чтобы она совпадала со
-+ второй, после чего нажмите <ESC>.
-+
-+ ---> Конец этой строки нуждается в помощи, чтобы стать похожим на второй.
-+ ---> Конец этой строки нуждается в помощи команды c$ .
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ РЕЗЮМЕ УРОКА 3
-+
-+
-+ 1. Для вставки текста, который только что был удален, наберите p . Эта
-+ команда вставит удаленный текст ПОСЛЕ курсора (если была удалена строка,
-+ то она будет помещена в строке под курсором).
-+
-+ 2. Для замены символа под курсором наберите r и затем заменяющий символ.
-+
-+ 3. Команда изменения позволяет Вам изменить указанный объект от курсора до
-+ конца этого объекта. Например, наберите cw для замены от курсора до
-+ конца слова, c$ для изменения до конца строки.
-+
-+ 4. Формат команды изменения таков:
-+
-+ [число] c объект ИЛИ c [число] объект
-+
-+ Теперь отправляйтесь к следующему уроку.
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 4.1: ИНФОРМАЦИЯ О ФАЙЛЕ И РАСПОЛОЖЕНИЕ В НЕМ
-+
-+
-+ ** Наберите CTRL-g чтобы увидеть Ваше месторасположение в файле и информацию
-+ о нем.
-+ Наберите SHIFT-G для перемещения к заданной строке в файле. **
-+
-+ Замечание: Прочитайте весь урок прежде чем выполнять любые команды!!
-+
-+ 1. Удерживая клавишу Ctrl нажмите g . Внизу экрана появится строка статуса с
-+ именем файла и номером строки, в которой Вы находитесь. Запомните номер
-+ строки, он потребуется на Шаге 3.
-+
-+ 2. Нажмите shift-G для перемещения к концу файла.
-+
-+ 3. Наберите номер строки, в которой вы находились и затем shift-G. Это
-+ вернет Вас к строке, в которой Вы были, когда в первый раз нажали Ctrl-g.
-+ (Когда Вы будете набирать цифры, они НЕ отобразятся на экране.)
-+
-+ 4. Если Вы запомнили все вышесказанное, выполните шаги 1--3.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 4.2: КОМАНДА ПОИСКА
-+
-+ ** Наберите / и затем введите искомую фразу. **
-+
-+ 1. В обычном режиме (Normal mode) наберите символ / . Обратите внимание,
-+ что он вместе с курсором появится внизу экрана, как это происходит с
-+ командой : .
-+
-+ 2. Теперь наберите 'ошшшибка' <ENTER>. Это то слово, которое Вы будете
-+ искать.
-+
-+ 3. Для того, чтобы повторить поиск, просто нажмите n .
-+ Для поиска этой фразы в обратном направлении, нажмите Shift-N .
-+
-+ 4. Если Вы желаете сразу искать в обратном направлении, используйте
-+ команду ? вместо / .
-+
-+ ---> Когда Вы при поиске достигнете конца файла, поиск будет продолжен с
-+ начала.
-+
-+ "ошшшибка" это не способ произнесения слова `ошибка'; ошшшибка это ошибка.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 4.3: ПОИСК ПАРНЫХ СКОБОК
-+
-+
-+ ** Наберите % для поиска парных ),] или } . **
-+
-+ 1. Поместите курсор над любой из (, [ или { в строке внизу, помеченной --->.
-+
-+ 2. Теперь наберите символ % .
-+
-+ 3. Курсор должен перескочить на парную скобку.
-+
-+ 4. Наберите % для возврата курсора назад к первой скобке.
-+
-+ ---> Это ( строка, содержащая такие (, такие [ ] и такие { } скобки. ))
-+
-+ Замечание: Это очень удобно при отладке программ с пропущенными скобками!
-+
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 4.4: СПОСОБ ИСПРАВЛЕНИЯ ОШИБОК
-+
-+
-+ ** Наберите :s/было/стало/g для замены 'было' на 'стало'. **
-+
-+ 1. Переместите курсор вниз, к строке, помеченной --->.
-+
-+ 2. Наберите :s/уводю/увожу <ENTER> . Обратите внимание на то, что эта команда
-+ заменит только первое найденное вхождение в строке.
-+
-+ 3. Теперь наберите :s/уводю/увожу/g , означающее подстановку глобально во
-+ всей строке. Это заменит все найденные в строке вхождения.
-+
-+ ---> Я уводю к отверженным селеньям, я уводю сквозь вековечный стон, я уводю к
-+ забытым поколеньям.
-+
-+ 4. Для замены всех вхождений последовательности символов между двумя
-+ строками,
-+ наберите :#,#s/было/стало/g где #,# --- номера этих строк.
-+ Наберите :%s/было/стало/g для замены всех вхождений во всем файле.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ РЕЗЮМЕ УРОКА 4
-+ 1. Ctrl-g показывает ваше положение в файле и информацию о нем.
-+ Shift-G перемещает Вас в конец файла. Номер, за которым следует Shift-G
-+ позволяет перейти к строке с этим номером.
-+
-+ 2. Нажатие / и затем ввод строки позволяет произвести поиск этой строки
-+ ВПЕРЕД по тексту.
-+ Нажатие ? и затем ввод строки позволяет произвести поиск этой строки
-+ НАЗАД по тексту.
-+ После поиска наберите n для перехода к следующему вхождению искомой
-+ строки в том же направлении или Shift-N для перехода в противоположном
-+ направлении.
-+
-+ 3. Нажатие % , когда курсор находится на (,),[,],{, или } позволяет найти
-+ парную скобку.
-+
-+ 4. Для подстановки `стало' вместо первого `было' в строке, наберите
-+ :s/old/new
-+ Для подстановки `стало' вместо всех `было' в строке, наберите
-+ :s/old/new/g
-+ Для замены в интервале между двумя строками, наберите
-+ :#,#s/old/new/g
-+ Для замены всех вхождений `было' на `стало' в файле, наберите
-+ :%s/old/new/g
-+ Чтобы редактор каждый раз запрашивал подтверждение, добавьте 'c'
-+ :%s/old/new/gc
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 5.1: КАК ВЫПОЛНИТЬ ВНЕШНЮЮ КОМАНДУ
-+
-+
-+ ** Наберите :! и затем внешнюю команду, которую следует выполнить. **
-+
-+ 1. Наберите уже знакомую Вам команду : для установки курсора в командную
-+ строку редактора. Это позволит Вам ввести команду.
-+
-+ 2. Теперь наберите символ ! (восклицательный знак). Теперь можно исполнить
-+ внешнюю команду, используя командную оболочку.
-+
-+ 3. Для примера наберите ls после ! и нажмите <ENTER>. Эта команда выведет
-+ список файлов в текущем каталоге, точно также, как если бы Вы ввели эту
-+ команду в приглашении оболочки. Или попробуйте :!dir , если предыдущая
-+ команда не сработала.
-+
-+ ---> Замечание: Таким способом можно выполнить любую внешнюю команду.
-+
-+ ---> Замечание: Все команды, начинающиеся с : , должны завершаться нажатием
-+ <ENTER>.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 5.2: КАК ЗАПИСАТЬ ФАЙЛ
-+
-+
-+ ** Для сохранения изменений, произведенных в файле, наберите :w ИМЯ_ФАЙЛА. **
-+
-+ 1. Наберите :!dir или :!ls для получения списка файлов в текущем каталоге.
-+ Как Вам уже известно, Вы должны нажать <ENTER> после ввода этих команд.
-+
-+ 2. Придумайте название для файла, которое еще не существует, например TEST.
-+
-+ 3. Теперь наберите :w TEST (где TEST --- это имя файла, придуманное Вами.)
-+
-+ 4. Эта команда сохранит весь файл (Учебник по Vim) под именем TEST. Чтобы
-+ удостовериться в этом, снова наберите :!dir и просмотрите каталог.
-+
-+ ---> Заметьте, что если Вы выйдете из Vim и затем запустите его снова с
-+ файлом TEST, этот файл будет точной копией учебника в тот момент, когда
-+ Вы его сохранили.
-+
-+ 5. Теперь удалите этот файл, набрав :!del TEST
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 5.3: ВЫБОРОЧНОЕ СОХРАНЕНИЕ
-+
-+
-+ ** Для сохранения части файла, наберите :#,# w ИМЯ_ФАЙЛА **
-+
-+ 1. Еще раз наберите :!dir или :!ls для получения списка файлов в текущем
-+ каталоге и выберите подходящее имя, например TEST.
-+
-+ 2. Переместите курсор к началу этой страницы и нажмите Ctrl-g для нахождения
-+ номера строкиto. ЗАПОМНИТЕ ЭТОТ НОМЕР!
-+
-+ 3. Теперь переместитесь в конец страницы и вновь наберите Ctrl-g. ЗАПОМНИТЕ
-+ И ЭТОТ НОМЕР ТОЖЕ!
-+
-+ 4. Для сохранения ТОЛЬКО ЧАСТИ файла наберите :#,# w TEST , где #,# --- это
-+ номера, которые Вы запомнили (начало, конец), а TEST --- имя вашего файла.
-+
-+ 5. Как и прежде, убедитесь в наличии этого файла командой :!dir , но НЕ
-+ УДАЛЯЙТЕ его.
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 5.4: ЧТЕНИЕ И ОБЪЕДИНЕНИЕ ФАЙЛОВ
-+
-+ ** Для вставки содержимого файла, наберите :r FILENAME **
-+
-+ 1. Наберите :!dir для того, чтобы убедиться в том, что файл TEST все еще
-+ существует.
-+
-+ 2. Установите курсор в верхней части этой страницы.
-+
-+ Замечание: После выполнения шага 3 Вы увидите Урок 5.3. После этого
-+ перемещайтесь ВНИЗ, снова к этому уроку.
-+
-+ 3. Теперь прочитайте Ваш файл TEST, используя команду :r TEST , где
-+ TEST --- это имя файла.
-+
-+ Замечание: Прочитанный Вами файл будет вставлен в том месте, где находится
-+ курсор.
-+
-+ 4. Чтобы убедиться в том, что файл прочитан, переместитесь немного назад по
-+ тексту и \e[A\e[Bзаметьте, что теперь существуют две копии Урока 5.3, исходная
-+ и полученная из файла.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ РЕЗЮМЕ УРОКА 5
-+
-+
-+ 1. :!команда исполняет внешнюю команду.
-+
-+ Некоторые полезные примеры:
-+ :!dir --- выводит список файлов в каталоге.
-+ :!del FILENAME --- удаляет файл FILENAME.
-+
-+ 2. :w FILENAME записывает текущий редактируемый файл на диск
-+ под именем FILENAME.
-+
-+ 3. :#,#w FILENAME сохраняет строки от # до # в файл FILENAME.
-+
-+ 4. :r FILENAME считывает с диска файл FILENAME и помещает его в текущий
-+ файл следом за позицией курсора.
-+
-+
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 6.1: КОМАНДА СОЗДАНИЯ
-+
-+
-+ ** Наберите o чтобы создать пустую строку под курсором и перейти в режим
-+ вставки (Insert mode) **
-+
-+ 1. Переместите курсор вниз, к строке, помеченной --->.
-+
-+ 2. Наберите o (в нижнем регистре) для того, чтобы создать пустую строку
-+ НИЖЕ курсора и перейти в режим вставки (Insert mode).
-+
-+ 3. Теперь скопируйте помеченную ---> строку и нажмите <ESC> для выхода из
-+ режима вставки.
-+
-+ ---> После нажатия o курсор перейдет на новую пустую строку в режиме вставки.
-+
-+ 4. Для создания строки ВЫШЕ курсора, просто наберите заглавную O, вместо
-+ строчной o. Попробуйте проделать это с нижеследующей строкой.
-+ Создайте новую строку над этой, нажав Shift-O, поместив курсор на эту строку.
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 6.2: КОМАНДА ДОБАВЛЕНИЯ
-+
-+ ** Наберите a , чтобы вставить текст ПОСЛЕ курсора. **
-+
-+ 1. Переместите курсор вниз, в конец первой строки, помеченной ---> ,
-+ набрав $ в обычном режиме (Normal mode).
-+
-+ 2. Наберите a (в нижнем регистре) для добавления текста ПОСЛЕ символа,
-+ находящегося под курсором. (Заглавная A позволяет добавить в конец
-+ строки.)
-+
-+ Замечание: Это позволяет избежать нажатия i , последнего символа, текста для
-+ вставки, <ESC>, курсор-вправо, и, наконец, x , просто для того,
-+ чтобы добавить тест в конец строки!
-+
-+ 3. Теперь завершите первую строку. Заметьте также, что добавление это в
-+ точности то же самое, что и режим вставки, за исключением позиции, в
-+ которую будет вставлен текст.
-+
-+ ---> Эта строчка позволит Вам попрактиковаться
-+ ---> Эта строчка позволит Вам попрактиковаться в добавлении текста в конец
-+ строки.
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 6.3: ЕЩЕ ОДИН СПОСОБ ЗАМЕНЫ
-+
-+
-+ ** Наберите заглавную R для замены более, чем одного символа. **
-+
-+ 1. Переместите курсор вниз, к строке, помеченной --->.
-+
-+ 2. Расположите курсор в начале первого слова, отличающегося от
-+ соответствующего в следующей строке, помеченной ---> (слово 'последней').
-+
-+ 3. Теперь наберите R и замените остаток текста в первой строке, набрав
-+ поверх старого текста так, чтобы обе строки стали одинаковыми.
-+
-+ ---> Первую строку можно сравнять с последней, используя клавиши.
-+ ---> Первую строку можно сравнять с второй, используя R и набрав новый текст.
-+
-+ 4. Обратите внимание, что при нажатии <ESC> для завершения, любой
-+ не измененный текст сохранится.
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 6.4: УСТАНОВКА ПАРАМЕТРОВ
-+
-+
-+ ** Установим параметры так, чтобы игнорировать регистр при поиске или замене **
-+
-+
-+ 1. Поищите слово 'игнорировать', набрав:
-+ /игнорировать
-+ Повторите поиск несколько раз, нажимая клавишу n
-+
-+ 2. Включите параметр 'ic' (Игнорировать регистр), набрав:
-+ :set ic
-+
-+ 3. Теперь снова сделайте поиск слова 'игнорировать', нажав: n
-+ Повторите поиск несколько раз, нажимая клавишу n
-+
-+ 4. Включите параметры 'hlsearch' и 'incsearch':
-+ :set hls is
-+
-+ 5. Теперь опять введите команду поиска и посмотрите, что получится:
-+ /игнорировать
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ РЕЗЮМЕ УРОКА 6
-+
-+
-+ 1. Нажатие o создает строку НИЖЕ курсора и перемещает курсор в нее в режиме
-+ вставки.
-+ Нажатие заглавной O создает строку ВЫШЕ строки, в которой находится
-+ курсор.
-+
-+ 2. Наберите a для вставки текста ПОСЛЕ символа, на котором находится курсор.
-+ Нажатие заглавной A автоматически перемещает Вас для добавления текста
-+ в конец строки.
-+
-+ 3. Нажатие заглавной R переводит Вас в режим замены до тех пор, пока не
-+ будет нажата клавиша <ESC> для завершения.
-+
-+ 4. Набрав ":set xxx" вы сможете включить параметр "xxx"
-+
-+
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 7: КОМАНДЫ ПОЛУЧЕНИЯ ВСТРОЕННОЙ СПРАВКИ
-+
-+ ** Используйте встроенную справочную систему **
-+
-+ Vim обладает мощной встроенной справочной системой. Для начала попробуйте
-+ один из трех вариантов:
-+ - нажмите клавишу <HELP> (если таковая имеется на клавиатуре)
-+ - нажмите клавишу <F1> (если таковая имеется на клавиатуре)
-+ - наберите :help <ENTER>
-+
-+ Наберите :q <ENTER> чтобы закрыть окно справки.
-+
-+ Вы можете найти справку для любого понятия или команды, просто задав
-+ соответствующий аргумент команде ":help". Попробуйте следующее (не забудьте
-+ нажать <ENTER>):
-+
-+ :help w
-+ :help c_<T
-+ :help insert-index
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Урок 8: СОЗДАНИЕ СТАРТОВОГО СКРИПТА
-+
-+ ** Включим возможности Vim **
-+
-+ Vim имеет намного больше возможностей, чем Vi, однако большинствао из них
-+ выключены по умолчанию. Для того, чтобы начать использовать новые
-+ возможности Вам следует создать файл "vimrc".
-+
-+ 1. Отредактируйте файл "vimrc", его расположение зависит от используемой
-+ системы:
-+
-+ :edit ~/.vimrc для Unix
-+ :edit $VIM/_vimrc для MS-Windows
-+
-+ 2. Теперь прочитайте пример файла "vimrc":
-+
-+ :read $VIMRUNTIME/vimrc_example.vim
-+
-+ 3. Запишите файл:
-+
-+ :write
-+
-+ Теперь при следующем запуске Vim будет включена подсветка синтаксиса. Все
-+ настройки, предпочитаемые Вами, могут быть добавлены в файл "vimrc".
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ На этом завершается Учебник Vim. Он был предназначен для того, чтобы дать
-+ общее представление о редакторе Vim, достаточное для того, чтобы с легкостью
-+ использовать его. Учебник далек от полноты, поскольку Vim имеет очень много
-+ команд. Прочитайте теперь руководство пользователя: ":help user-manual".
-+
-+ Для дальнейшего чтения рекомендуется книга:
-+ Vim - Vi Improved - Автор: Steve Oualline
-+ Издатель: New Riders
-+ Эта книга полностью посвящена Vim. Особенно полезна новичкам. Содержит
-+ множество примеров и иллюстраций.
-+ Взгляните на See http://iccf-holland.org/click5.html
-+
-+ Следующая книга более почтенного возраста и посвящена больше Vi, чем Vim,
-+ однако также рекомендуется:
-+ Learning the Vi Editor - Автор: Linda Lamb
-+ Издатель: O'Reilly & Associates Inc.
-+ Это хорошая книга для того, чтобы узнать все, что только можно проделывать с
-+ Vi. Шестое издание также включает информацию о Vim.
-+
-+ Этот учебник был написан Michael C. Pierce и Robert K. Ware, Colorado School
-+ of Mines с использованием идей, предложенных Charles Smith, Colorado State
-+ University. E-mail: bware@mines.colorado.edu.
-+
-+ Доработано для Vim Bram Moolenaar.
-+
-+ Перевод: Андрей Киселев <a_kissel@eudoramail.com>, 2002.
-+ Translator: Andrey Kiselev <a_kissel@eudoramail.com>, 2002.
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*** ../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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.080
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.081
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.082
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.083
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 (<Enter> 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 (<Enter> 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.084
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.085
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.086
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.087
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.088
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.089
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.090
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.091
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.092
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.093
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.094
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.095
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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/runtime/tutor/tutor.gr.utf-8 Sun Sep 10 13:20:58 2006
---- runtime/tutor/tutor.gr.utf-8 Sun Sep 10 11:54:10 2006
-***************
-*** 0 ****
---- 1,815 ----
-+ ===============================================================================
-+ = Κ αλ ω σ ή ρ θ α τ ε σ τ ο V I M T u t o r - Έκδοση 1.5 =
-+ ===============================================================================
-+
-+ Ο Vim είναι ένας πανίσχυρος συντάκτης που έχει πολλές εντολές, πάρα
-+ πολλές για να εξηγήσουμε σε μία περιήγηση όπως αυτή. Αυτή η περιήγηση
-+ σχεδιάστηκε για να περιγράψει ικανοποιητικά τις εντολές που θα σας
-+ κάνουν να χρησιμοποιείτε εύκολα τον Vim σαν έναν γενικής χρήσης συντάκτη.
-+
-+ Ο κατά προσέγγιση χρόνος που απαιτείται για να ολοκληρώσετε την περιήγηση
-+ είναι 25-30 λεπτά, εξαρτώντας από το πόσο χρόνο θα ξοδέψετε για
-+ πειραματισμούς.
-+
-+ Οι εντολές στα μαθήματα θα τροποποιήσουν το κείμενο. Δημιουργήστε ένα
-+ αντίγραφο αυτού του αρχείου για να εξασκηθείτε (αν ξεκινήσατε το
-+ "Vimtutor" αυτό είναι ήδη ένα αντίγραφο).
-+
-+ Είναι σημαντικό να θυμάστε ότι αυτή η περιήγηση είναι οργανωμένη έτσι
-+ ώστε να διδάσκει μέσω της χρήσης. Αυτό σημαίνει ότι χρειάζεται να
-+ εκτελείτε τις εντολές για να τις μάθετε σωστά. Αν διαβάζετε μόνο το
-+ κείμενο, θα τις ξεχάσετε!
-+
-+ Τώρα, βεβαιωθείτε ότι το πλήκτρο Shift-Lock ΔΕΝ είναι πατημένο και
-+ πατήστε το πλήκτρο j αρκετές φορές για να μετακινήσετε τον δρομέα έτσι
-+ ώστε το Μάθημα 1.1 να γεμίσει πλήρως την οθόνη.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 1.1: ΜΕΤΑΚΙΝΟΝΤΑΣ ΤΟΝ ΔΡΟΜΕΑ
-+
-+ ** Για να κινήσετε τον δρομέα, πατήστε τα πλήκτρα h,j,k,l όπως δείχνεται. **
-+ ^
-+ k Hint: Το πλήκτρο h είναι αριστερά και κινεί στ' αριστερά.
-+ < h l > Το πλήκτρο l είναι δεξιά και κινεί στα δεξιά.
-+ j Το πλήκτρο j μοιάζει με βελάκι προς τα κάτω.
-+ v
-+
-+ 1. Μετακινείστε τον δρομέα τριγύρω στην οθόνη μέχρι να νοιώθετε άνετα.
-+
-+ 2. Κρατήστε πατημένο το κάτω πλήκτρο (j) μέχρι να επαναληφθεί.
-+ ---> Τώρα ξέρετε πώς να μετακινηθείτε στο επόμενο μάθημα.
-+
-+ 3. Χρησιμοποιώντας το κάτω πλήκτρο, μετακινηθείτε στο Μάθημα 1.2.
-+
-+ Σημείωση: Αν αμφιβάλλετε για κάτι που πατήσατε, πατήστε <ESC> για να βρεθείτε
-+ στην Κανονική Κατάσταση. Μετά πατήστε ξανά την εντολή που θέλατε.
-+
-+ Σημείωση: Τα πλήκτρα του δρομέα θα πρέπει επίσης να δουλεύουν. Αλλά με τα hjkl
-+ θα μπορείτε να κινηθείτε πολύ γρηγορότερα, μόλις τα συνηθίσετε.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 1.2: ΜΠΑΙΝΟΝΤΑΣ ΚΑΙ ΒΓΑΙΝΟΝΤΑΣ ΣΤΟΝ VIM
-+
-+ !! ΣΗΜΕΙΩΣΗ: Πριν εκτελέσετε κάποιο από τα βήματα, διαβάστε όλο το μάθημα!!
-+
-+ 1. Πατήστε το πλήκτρο <ESC> (για να είστε σίγουρα στην Κανονική Κατάσταση).
-+
-+ 2. Πληκτρολογήστε: :q! <ENTER>.
-+
-+ ---> Αυτό εξέρχεται από τον συντάκτη ΧΩΡΙΣ να σώσει όποιες αλλαγές έχετε κάνει.
-+ Αν θέλετε να σώσετε τις αλλαγές και να εξέρθετε πληκτρολογήστε:
-+ :wq <ENTER>
-+
-+ 3. Όταν δείτε την προτροπή του φλοιού, πληκτρολογήστε την εντολή με την οποία
-+ μπήκατε σε αυτήν την περιήγηση. Μπορεί να είναι: vimtutor <ENTER>
-+ Κανονικά θα χρησιμοποιούσατε: vim tutor <ENTER>
-+
-+ ---> 'vim' σημαίνει εισαγωγή στον συντάκτη vim, 'tutor' είναι το αρχείο που
-+ θέλουμε να διορθώσουμε.
-+
-+ 4. Αν έχετε απομνημονεύσει αυτά τα βήματα και έχετε αυτοπεποίθηση, εκτελέστε
-+ τα βήματα 1 έως 3 για να βγείτε και να μπείτε ξανά στον συντάκτη. Μετά
-+ μετακινήστε τον δρομέα κάτω στο Μάθημα 1.3.
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 1.3: ΔΙΟΡΘΩΣΗ ΚΕΙΜΕΝΟΥ - ΔΙΑΓΡΑΦΗ
-+
-+ ** Όσο είστε στην Κανονική Κατάσταση πατήστε x για να διαγράψετε τον
-+ χαρακτήρα κάτω από τον δρομέα. **
-+
-+ 1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
-+
-+ 2. Για να διορθώσετε τα λάθη, κινείστε τον δρομέα μέχρι να είναι πάνω από
-+ τον χαρακτήρα που θα διαγραφεί.
-+
-+ 3. Πατήστε το πλήκτρο x για να διαγράψετε τον ανεπιθύμητο χαρακτήρα.
-+
-+ 4. Επαναλάβετε τα βήματα 2 μέχρι 4 μέχρι η πρόταση να είναι σωστή.
-+
-+ ---> The ccow jumpedd ovverr thhe mooon.
-+
-+ 5. Τώρα που η γραμμή είναι σωστή, πηγαίντε στο Μάθημα 1.4.
-+
-+ ΣΗΜΕΙΩΣΗ: Καθώς διατρέχετε αυτήν την περιήγηση, προσπαθήστε να μην
-+ απομνημονεύετε, μαθαίνετε με τη χρήση.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 1.4: ΔΙΟΡΘΩΣΗ ΚΕΙΜΕΝΟΥ - ΠΑΡΕΜΒΟΛΗ
-+
-+ ** Όσο είστε σε Κανονική Κατάσταση πατήστε i για να παρεμβάλλετε κείμενο. **
-+
-+ 1. Μετακινείστε τον δρομέα μέχρι την πρώτη γραμμή παρακάτω σημειωμένη με --->.
-+
-+ 2. Για να κάνετε την πρώτη γραμμή ίδια με την δεύτερη, μετακινείστε τον
-+ δρομέα πάνω στον πρώτο χαρακτήρα ΜΕΤΑ από όπου θα παρεμβληθεί το κείμενο.
-+
-+ 3. Πατήστε το i και πληκτρολογήστε τις απαραίτητες προσθήκες.
-+
-+ 4. Καθώς διορθώνετε κάθε λάθος πατήστε <ESC> για να επιστρέψετε στην
-+ Κανονική Κατάσταση. Επαναλάβετε τα βήματα 2 μέχρι 4 για να διορθώσετε
-+ την πρόταση.
-+
-+ ---> There is text misng this .
-+ ---> There is some text missing from this line.
-+
-+ 5. Όταν είστε άνετοι με την παρεμβολή κειμένου μετακινηθείτε στην
-+ παρακάτω περίληψη.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ ΜΑΘΗΜΑ 1 ΠΕΡΙΛΗΨΗ
-+
-+
-+ 1. Ο δρομέας κινείται χρησιμοποιώντας είτε τα πλήκτρα δρομέα ή τα hjkl.
-+ h (αριστέρα) j (κάτω) k (πάνω) l (δεξιά)
-+
-+ 2. Για να μπείτε στον Vim (από την προτροπή %) γράψτε: vim ΑΡΧΕΙΟ <ENTER>
-+
-+ 3. Για να βγείτε γράψτε: <ESC> :q! <ENTER> για απόρριψη των αλλαγών.
-+ Ή γράψτε: <ESC> :wq <ENTER> για αποθήκευση των αλλαγών.
-+
-+ 4. Για να διαγράψετε έναν χαρακτήρα κάτω από τον δρομέα σε
-+ Κανονική Κατάσταση πατήστε: x
-+
-+ 5. Για να εισάγετε κείμενο στον δρομέα όσο είστε σε Κανονική Κατάσταση γράψτε:
-+ i πληκτρολογήστε το κείμενο <ESC>
-+
-+ ΣΗΜΕΙΩΣΗ: Πατώντας <ESC> θα τοποθετηθείτε στην Κανονική Κατάσταση ή θα
-+ ακυρώσετε μία ανεπιθύμητη και μερικώς ολοκληρωμένη εντολή.
-+
-+ Τώρα συνεχίστε με το Μάθημα 2.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 2.1: ΕΝΤΟΛΕΣ ΔΙΑΓΡΑΦΗΣ
-+
-+ ** Γράψτε dw για να διαγράψετε μέχρι το τέλος μίας λέξης. **
-+
-+ 1. Πατήστε <ESC> για να βεβαιωθείτε ότι είστε στην Κανονική Κατάσταση.
-+
-+ 2. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
-+
-+ 3. Πηγαίνετε τον δρομέα στην αρχή της λέξης που πρέπει να διαγραφεί.
-+
-+ 4. Γράψτε dw για να κάνετε την λέξη να εξαφανιστεί.
-+
-+ ΣΗΜΕΙΩΣΗ: Τα γράμματα dw θα εμφανιστούν στην τελευταία γραμμή της οθόνης όσο
-+ τα πληκτρολογείτε. Αν γράψατε κάτι λάθος, πατήστε <ESC> και
-+ ξεκινήστε από την αρχή.
-+
-+ ---> There are a some words fun that don't belong paper in this sentence.
-+
-+ 5. Επαναλάβετε τα βήματα 3 και 4 μέχρι η πρόταση να είναι σωστή και
-+ πηγαίνετε στο Μάθημα 2.2.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 2.2: ΠΕΡΙΣΣΟΤΕΡΕΣ ΕΝΤΟΛΕΣ ΔΙΑΓΡΑΦΗΣ
-+
-+ ** Πληκτρολογήστε d$ για να διαγράψετε μέχρι το τέλος της γραμμής. **
-+
-+ 1. Πατήστε <ESC> για να βεβαιωθείτε ότι είστε στην Κανονική Κατάσταση.
-+
-+ 2. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
-+
-+ 3. Μετακινείστε τον δρομέα στο τέλος της σωστής γραμμής (ΜΕΤΑ την πρώτη . ).
-+
-+ 4. Πατήστε d$ για να διαγράψετε μέχρι το τέλος της γραμμής.
-+
-+ ---> Somebody typed the end of this line twice. end of this line twice.
-+
-+ 5. Πηγαίνετε στο Μάθημα 2.3 για να καταλάβετε τι συμβαίνει.
-+
-+
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 2.3: ΠΕΡΙ ΕΝΤΟΛΩΝ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΩΝ
-+
-+
-+ Η μορφή της εντολής διαγραφής d είναι ως εξής:
-+
-+ [αριθμός] d αντικείμενο Ή d [αριθμός] αντικείμενο
-+ Όπου:
-+ αριθμός - πόσες φορές θα εκτελεστεί η εντολή (προαιρετικό, εξ' ορισμού=1).
-+ d - η εντολή της διαγραφής.
-+ αντικείμενο - πάνω σε τι θα λειτουργήσει η εντολή (παρακάτω λίστα).
-+
-+ Μία μικρή λίστα από αντικείμενα:
-+ w - από τον δρομέα μέχρι το τέλος της λέξης, περιλαμβάνοντας το διάστημα.
-+ e - από τον δρομέα μέχρι το τέλος της λέξης, ΧΩΡΙΣ το διάστημα.
-+ $ - από τον δρομέα μέχρι το τέλος της γραμμής.
-+
-+ ΣΗΜΕΙΩΣΗ: Για τους τύπους της περιπέτειας, πατώντας απλώς το αντικείμενο όσο
-+ είστε στην Κανονική Κατάσταση χωρίς κάποια εντολή θα μετακινήσετε
-+ τον δρομέα όπως καθορίζεται στην λίστα αντικειμένων.
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 2.4: ΜΙΑ ΕΞΑΙΡΕΣΗ ΣΤΗΝ 'ΕΝΤΟΛΗ-ΑΝΤΙΚΕΙΜΕΝΟ'
-+
-+ ** Πληκτρολογήστε dd για να διαγράψετε όλη τη γραμμή. **
-+
-+ Εξαιτίας της συχνότητας της διαγραφής ολόκληρης γραμμής, οι σχεδιαστές
-+ του Vim αποφάσισαν ότι θα ήταν ευκολότερο να γράφετε απλώς δύο d στη
-+ σειρά για να διαγράψετε μία γραμμή.
-+
-+ 1. Μετακινείστε τον δρομέα στη δεύτερη γραμμή της παρακάτω φράσης.
-+ 2. Γράψτε dd για να διαγράψετε τη γραμμή.
-+ 3. Τώρα μετακινηθείτε στην τέταρτη γραμμή.
-+ 4. Γράψτε 2dd (θυμηθείτε αριθμός-εντολή-αντικείμενο) για να
-+ διαγράψετε δύο γραμμές.
-+
-+ 1) Roses are red,
-+ 2) Mud is fun,
-+ 3) Violets are blue,
-+ 4) I have a car,
-+ 5) Clocks tell time,
-+ 6) Sugar is sweet
-+ 7) And so are you.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 2.5: Η ΕΝΤΟΛΗ ΑΝΑΙΡΕΣΗΣ
-+
-+ ** Πατήστε u για να αναιρέσετε τις τελευταίες εντολές,
-+ U για να διορθώσετε όλη τη γραμμή. **
-+
-+ 1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με ---> και
-+ τοποθετήστε τον πάνω στο πρώτο λάθος.
-+ 2. Πατήστε x για να διαγράψετε τον πρώτο ανεπιθύμητο χαρακτήρα.
-+ 3. Τώρα πατήστε u για να αναιρέσετε την τελευταία εκτελεσμένη εντολή.
-+ 4. Αυτή τη φορά διορθώστε όλα τα λάθη στη γραμμή χρησιμοποιώντας την εντολή x.
-+ 5. Τώρα πατήστε ένα κεφαλαίο U για να επιστρέψετε τη γραμμή στην αρχική
-+ της κατάσταση.
-+ 6. Τώρα πατήστε u μερικές φορές για να αναιρέσετε την U και
-+ προηγούμενες εντολές.
-+ 7. Τώρα πατήστε CTRL-R (κρατώντας πατημένο το πλήκτρο CTRL καθώς πατάτε το R)
-+ μερικές φορές για να επαναφέρετε τις εντολές (αναίρεση των αναιρέσεων).
-+
-+ ---> Fiix the errors oon thhis line and reeplace them witth undo.
-+
-+ 8. Αυτές είναι πολύ χρήσιμες εντολές. Τώρα πηγαίνετε στην
-+ Περίληψη του Μαθήματος 2.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ ΜΑΘΗΜΑ 2 ΠΕΡΙΛΗΨΗ
-+
-+
-+ 1. Για να διαγράψετε από τον δρομέα μέχρι το τέλος λέξης γράψτε: dw
-+
-+ 2. Για να διαγράψετε από τον δρομέα μέχρι το τέλος γραμμής γράψτε: d$
-+
-+ 3. Για να διαγράψετε ολόκληρη τη γραμμή γράψτε: dd
-+
-+ 4. Η μορφή για μία εντολή στην Κανονική Κατάσταση είναι:
-+
-+ [αριθμός] εντολή αντικείμενο Ή εντολή [αριθμός] αντικείμενο
-+ όπου:
-+ αριθμός - πόσες φορές να επαναληφθεί η εντολή
-+ εντολή - τι να γίνει, όπως η d για διαγραφή
-+ αντικείμενο - πάνω σε τι να ενεργήσει η εντολή, όπως w (λέξη),
-+ $ (τέλος της γραμμής), κτλ.
-+
-+ 5. Για να αναιρέσετε προηγούμενες ενέργειες, πατήστε: u (πεζό u)
-+ Για να αναιρέσετε όλες τις αλλαγές στη γραμμή, πατήστε: U (κεφαλαίο U)
-+ Για να αναιρέσετε τις αναιρέσεις, πατήστε: CTRL-R
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 3.1: Η ΕΝΤΟΛΗ ΤΟΠΟΘΕΤΗΣΗΣ
-+
-+
-+ ** Πατήστε p για να τοποθετήσετε την τελευταία διαγραφή μετά τον δρομέα. **
-+
-+ 1. Μετακινείστε τον δρομέα στην πρώτη γραμμή της παρακάτω ομάδας.
-+
-+ 2. Πατήστε dd για να διαγράψετε τη γραμμή και να την αποθηκεύσετε σε
-+ προσωρινή μνήμη του Vim.
-+
-+ 3. Μετακινείστε τον δρομέα στη γραμμή ΠΑΝΩ από εκεί που θα πρέπει να πάει
-+ η διαγραμμένη γραμμή.
-+
-+ 4. Όσο είστε σε Κανονική Κατάσταση, πατήστε p για να βάλετε τη γραμμή.
-+
-+ 5. Επαναλάβετε τα βήματα 2 έως 4 για να βάλετε όλες τις γραμμές στη
-+ σωστή σειρά.
-+
-+ d) Can you learn too?
-+ b) Violets are blue,
-+ c) Intelligence is learned,
-+ a) Roses are red,
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 3.2: Η ΕΝΤΟΛΗ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ
-+
-+
-+ ** Πατήστε r και χαρακτήρα για να αλλάξετε αυτόν που είναι
-+ κάτω από τον δρομέα. **
-+
-+ 1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.
-+
-+ 2. Μετακινείστε τον δρομέα έτσι ώστε να είναι πάνω στο πρώτο λάθος.
-+
-+ 3. Πατήστε r και μετά τον χαρακτήρα ο οποίος διορθώνει το λάθος.
-+
-+ 4. Επαναλάβετε τα βήματα 2 και 3 μέχρι να είναι σωστή η πρώτη γραμμή.
-+
-+ ---> Whan this lime was tuoed in, someone presswd some wrojg keys!
-+ ---> When this line was typed in, someone pressed some wrong keys!
-+
-+ 5. Τώρα πηγαίνετε στο Μάθημα 3.2.
-+
-+ ΣΗΜΕΙΩΣΗ: Να θυμάστε ότι πρέπει να μαθαίνετε με τη χρήση, και όχι με
-+ την απομνημόνευση.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 3.3: Η ΕΝΤΟΛΗ ΑΛΛΑΓΗΣ
-+
-+ ** Για να αλλάξετε τμήμα ή όλη τη λέξη, πατήστε cw . **
-+
-+ 1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.
-+
-+ 2. Τοποθετήστε τον δρομέα πάνω στο u της λέξης lubw.
-+
-+ 3. Πατήστε cw και τη σωστή λέξη (στην περίπτωση αυτή, γράψτε 'ine'.)
-+
-+ 4. Πατήστε <ESC> και πηγαίνετε στο επόμενο λάθος (στον πρώτο
-+ χαρακτήρα προς αλλαγή).
-+
-+ 5. Επαναλάβετε τα βήματα 3 και 4 μέχρις ότου η πρώτη πρόταση να είναι
-+ ίδια με τη δεύτερη.
-+
-+ ---> This lubw has a few wptfd that mrrf changing usf the change command.
-+ ---> This line has a few words that need changing using the change command.
-+
-+ Παρατηρείστε ότι η cw όχι μόνο αντικαθιστάει τη λέξη, αλλά σας εισάγει
-+ επίσης σε παρεμβολή.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 3.4: ΠΕΡΙΣΣΟΤΕΡΕΣ ΑΛΛΑΓΕΣ ΜΕ c
-+
-+
-+ ** Η εντολή αλλαγής χρησιμοποιείται με τα ίδια αντικείμενα της διαγραφής. **
-+
-+
-+ 1. Η εντολή αλλαγής δουλεύει με τον ίδιο τρόπο όπως η διαγραφή. Η μορφή είναι:
-+
-+ [αριθμός] c αντικείμενο Ή c [αριθμός] αντικείμενο
-+
-+ 2. Τα αντικείμενα είναι πάλι τα ίδια, όπως w (λέξη), $ (τέλος γραμμής), κτλ.
-+
-+ 3. Μετακινηθείτε στην πρώτη γραμμή παρακάτω σημειωμένη με --->.
-+
-+ 4. Μετακινείστε τον δρομέα στο πρώτο λάθος.
-+
-+ 5. Γράψτε c$ για να κάνετε το υπόλοιπο της γραμμής ίδιο με τη δεύτερη
-+ και πατήστε <ESC>.
-+
-+ ---> The end of this line needs some help to make it like the second.
-+ ---> The end of this line needs to be corrected using the c$ command.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ ΜΑΘΗΜΑ 3 ΠΕΡΙΛΗΨΗ
-+
-+
-+ 1. Για να τοποθετήσετε κείμενο που μόλις έχει διαγραφεί, πατήστε p .
-+ Αυτό τοποθετεί το διαγραμμένο κείμενο ΜΕΤΑ τον δρομέα (αν διαγράφτηκε
-+ γραμμή θα πάει μετά στη γραμμή κάτω από τον δρομέα.
-+
-+ 2. Για να αντικαταστήσετε τον χαρακτήρα κάτω από τον δρομέα, πατήστε r
-+ και μετά τον χαρακτήρα που θα αντικαταστήσει τον αρχικό.
-+
-+ 3. Η εντολή αλλαγής σας επιτρέπει να αλλάξετε το καθορισμένο αντικείμενο
-+ από τον δρομέα μέχρι το τέλος του αντικείμενο. Π.χ. γράψτε cw για να
-+ αλλάξετε από τον δρομέα μέχρι το τέλος της λέξης, c$ για να αλλάξετε
-+ μέχρι το τέλος γραμμής.
-+
-+ 4. Η μορφή για την αλλαγή είναι:
-+
-+ [αριθμός] c αντικείμενο Ή c [αριθμός] αντικείμενο
-+
-+ Τώρα συνεχίστε με το επόμενο μάθημα.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 4.1: ΘΕΣΗ ΚΑΙ ΚΑΤΑΣΤΑΣΗ ΑΡΧΕΙΟΥ
-+
-+
-+ ** Πατήστε CTRL-g για να εμφανιστεί η θέση σας στο αρχείο και η κατάστασή του.
-+ Πατήστε SHIFT-G για να πάτε σε μία γραμμή στο αρχείο. **
-+
-+ Σημείωση: Διαβάστε ολόκληρο το μάθημα πριν εκτελέσετε κάποιο από τα βήματα!!
-+
-+ 1. Κρατήστε πατημένο το πλήκτρο Ctrl και πατήστε g . Μία γραμμή κατάστασης
-+ θα εμφανιστεί στο κάτω μέρος της σελίδας με το όνομα αρχείου και τη
-+ γραμμή που είστε. Θυμηθείτε τον αριθμό γραμμής για το Βήμα 3.
-+
-+ 2. Πατήστε shift-G για να μετακινηθείτε στο τέλος του αρχείου.
-+
-+ 3. Πατήστε τον αριθμό της γραμμής που ήσασταν και μετά shift-G. Αυτό θα
-+ σας επιστρέψει στη γραμμή που ήσασταν πριν πατήσετε για πρώτη φορά Ctrl-g.
-+ (Όταν πληκτρολογείτε τους αριθμούς, ΔΕΝ θα εμφανίζονται στην οθόνη).
-+
-+ 4. Αν νοιώθετε σίγουρος για αυτό, εκτελέστε τα βήματα 1 έως 3.
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 4.2: Η ΕΝΤΟΛΗ ΑΝΑΖΗΤΗΣΗΣ
-+
-+
-+ ** Πατήστε / ακολουθούμενο από τη φράση που ψάχνετε. **
-+
-+ 1. Σε Κανονική Κατάσταση πατήστε τον χαρακτήρα / . Παρατηρήστε ότι αυτός και
-+ ο δρομέας εμφανίζονται στο κάτω μέρος της οθόνης όπως με την εντολή : .
-+
-+ 2. Τώρα γράψτε 'errroor' <ENTER>. Αυτή είναι η λέξη που θέλετε να ψάξετε.
-+
-+ 3. Για να ψάξετε ξανά για την ίδια φράση, πατήστε απλώς n .
-+ Για να ψάξετε την ίδια φράση στην αντίθετη κατεύθυνση, πατήστε Shift-N .
-+
-+ 4. Αν θέλετε να ψάξετε για μία φράση προς τα πίσω, χρησιμοποιήστε την εντολή ? αντί της / .
-+
-+ ---> Όταν η αναζήτηση φτάσει στο τέλος του αρχείου θα συνεχίσει από την αρχή.
-+
-+ "errroor" is not the way to spell error; errroor is an error.
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 4.3: ΕΥΡΕΣΗ ΤΑΙΡΙΑΣΤΩΝ ΠΑΡΕΝΘΕΣΕΩΝ
-+
-+
-+ ** Πατήστε % για να βρείτε την αντίστοιχη ), ], ή } . **
-+
-+ 1. Τοποθετήστε τον δρομέα σε κάποια (, [, ή { στην παρακάτω γραμμή
-+ σημειωμένη με --->.
-+
-+ 2. Τώρα πατήστε τον χαρακτήρα % .
-+
-+ 3. Ο δρομέας θα πρέπει να είναι στην αντίστοιχη παρένθεση ή αγκύλη.
-+
-+ 4. Πατήστε % για να μετακινήσετε τον δρομέα πίσω στην πρώτη αγκύλη
-+ (του ζευγαριού).
-+
-+ ---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
-+
-+ ΣΗΜΕΙΩΣΗ: Αυτό είναι πολύ χρήσιμο στην αποσφαλμάτωση ενός προγράμματος
-+ με μη ταιριαστές παρενθέσεις!
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 4.4: ΕΝΑΣ ΤΡΟΠΟΣ ΓΙΑ ΑΛΛΑΓΗ ΛΑΘΩΝ
-+
-+
-+ ** Γράψτε :s/old/new/g για να αλλάξετε το 'new' με το 'old'. **
-+
-+ 1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
-+
-+ 2. Γράψτε :s/thee/the <ENTER> . Σημειώστε ότι αυτή η εντολή αλλάζει μόνο
-+ την πρώτη εμφάνιση στη γραμμή.
-+
-+ 3. Τώρα γράψτε :s/thee/the/g εννοώντας γενική αντικατάσταση στη
-+ γραμμή. Αυτό αλλάζει όλες τις εμφανίσεις επί της γραμμής.
-+
-+ ---> thee best time to see thee flowers is in thee spring.
-+
-+ 4. Για να αλλάξετε κάθε εμφάνιση μίας συμβολοσειράς μεταξύ δύο γραμμών,
-+ γράψτε :#,#s/old/new/g όπου #,# οι αριθμοί των δύο γραμμών.
-+ Γράψτε :%s/old/new/g για να αλλάξετε κάθε εμφάνιση σε όλο το αρχείο.
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ ΜΑΘΗΜΑ 4 ΠΕΡΙΛΗΨΗ
-+
-+
-+ 1. Το Ctrl-g εμφανίζει τη θέση σας στο αρχείο και την κατάστασή του.
-+ Το Shift-G πηγαίνει στο τέλος του αρχείου. Ένας αριθμός γραμμής
-+ ακολουθούμενος από Shift-G πηγαίνει σε εκείνη τη γραμμή.
-+
-+ 2. Γράφοντας / ακολουθούμενο από μία φράση ψάχνει προς τα ΜΠΡΟΣΤΑ για
-+ τη φράση. Γράφοντας ? ακολουθούμενο από μία φράση ψάχνει προς τα ΠΙΣΩ
-+ για τη φράση. Μετά από μία αναζήτηση πατήστε n για να βρείτε την
-+ επόμενη εμφάνιση προς την ίδια κατεύθυνση ή Shift-N για να ψάξετε
-+ προς την αντίθετη κατεύθυνση.
-+
-+ 3. Πατώντας % όσο ο δρομέας είναι πάνω σε μία (,),[,],{, ή } εντοπίζει
-+ το αντίστοιχο ταίρι του ζευγαριού.
-+
-+ 4. Για αντικατάσταση με new του πρώτου old στη γραμμή γράψτε :s/old/new
-+ Για αντικατάσταση με new όλων των 'old' στη γραμμή γράψτε :s/old/new/g
-+ Για αντικατάσταση φράσεων μεταξύ δύο # γραμμών γράψτε :#,#s/old/new/g
-+ Για αντικατάσταση όλων των εμφανίσεων στο αρχείο γράψτε :%s/old/new/g
-+ Για ερώτηση επιβεβαίωσης κάθε φορά προσθέστε ένα 'c' "%s/old/new/gc
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 5.1: ΠΩΣ ΕΚΤΕΛΩ ΜΙΑ ΕΞΩΤΕΡΙΚΗ ΕΝΤΟΛΗ
-+
-+
-+ ** Γράψτε :! ακολουθούμενο από μία εξωτερική εντολή για να την εκτελέσετε. **
-+
-+ 1. Πατήστε την οικεία εντολή : για να θέσετε τον δρομέα στο κάτω μέρος
-+ της οθόνης. Αυτό σας επιτρέπει να δώσετε μία εντολή.
-+
-+ 2. Τώρα πατήστε το ! (θαυμαστικό). Αυτό σας επιτρέπει να εκτελέσετε
-+ οποιαδήποτε εξωτερική εντολή του φλοιού.
-+
-+ 3. Σαν παράδειγμα γράψτε ls μετά από το ! και πατήστε <ENTER>. Αυτό θα
-+ σας εμφανίσει μία λίστα του καταλόγου σας, ακριβώς σαν να ήσασταν στην
-+ προτροπή του φλοιού. Ή χρησιμοποιήστε :!dir αν το ls δεν δουλεύει.
-+
-+ ---> Σημείωση: Είναι δυνατόν να εκτελέσετε οποιαδήποτε εξωτερική εντολή
-+ με αυτόν τον τρόπο.
-+
-+ ---> Σημείωση: Όλες οι εντολές : πρέπει να τερματίζονται πατώντας το <ENTER>.
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 5.2: ΠΕΡΙΣΣΟΤΕΡΑ ΠΕΡΙ ΕΓΓΡΑΦΗΣ ΑΡΧΕΙΩΝ
-+
-+
-+ ** Για να σώσετε τις αλλάγες που κάνατε στο αρχείο, γράψτε :w ΑΡΧΕΙΟ. **
-+
-+ 1. Γράψτε :!dir ή :!ls για να πάρετε μία λίστα του καταλόγου σας.
-+ Ήδη ξέρετε ότι πρέπει να πατήσετε <ENTER> μετά από αυτό.
-+
-+ 2. Διαλέξτε ένα όνομα αρχείου που δεν υπάρχει ακόμα, όπως το TEST.
-+
-+ 3. Τώρα γράψτε: :w TEST (όπου TEST είναι το όνομα αρχείου που διαλέξατε).
-+
-+ 4. Αυτό σώζει όλο το αρχείο (vim Tutor) με το όνομα TEST. Για να το
-+ επαληθεύσετε, γράψτε ξανά :!dir για να δείτε τον κατάλογό σας.
-+
-+ ---> Σημειώστε ότι αν βγαίνατε από τον Vim και μπαίνατε ξανά με το όνομα
-+ αρχείου TEST, το αρχείο θα ήταν ακριβές αντίγραφο του tutor όταν το σώσατε.
-+
-+ 5. Τώρα διαγράψτε το αρχείο γράφοντας (MS-DOS): :!del TEST
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 5.3: ΕΠΙΛΕΚΤΙΚΗ ΕΝΤΟΛΗ ΕΓΓΡΑΦΗΣ
-+
-+
-+ ** Για να σώσετε τμήμα του αρχείου, γράψτε :#,# w ΑΡΧΕΙΟ **
-+
-+ 1. Άλλη μια φορά, γράψτε :!dir ή :!ls για να πάρετε μία λίστα από τον
-+ κατάλογό σας και διαλέξτε ένα κατάλληλο όνομα αρχείου όπως το TEST.
-+
-+ 2. Μετακινείστε τον δρομέα στο πάνω μέρος αυτής της σελίδας και πατήστε
-+ Ctrl-g για να βρείτε τον αριθμό αυτής της γραμμής.
-+ ΝΑ ΘΥΜΑΣΤΕ ΑΥΤΟΝ ΤΟΝ ΑΡΙΘΜΟ!
-+
-+ 3. Τώρα πηγαίνετε στο κάτω μέρος της σελίδας και πατήστε Ctrl-g ξανά.
-+ ΝΑ ΘΥΜΑΣΤΕ ΚΑΙ ΑΥΤΟΝ ΤΟΝ ΑΡΙΘΜΟ!
-+
-+ 4. Για να σώσετε ΜΟΝΟ ένα τμήμα σε αρχείο, γράψτε :#,# w TEST
-+ όπου #,# οι δύο αριθμοί που απομνημονεύσατε (πάνω,κάτω) και TEST το
-+ όνομα του αρχείου σας.
-+
-+ 5. Ξανά, δείτε ότι το αρχείο είναι εκεί με την :!dir αλλά ΜΗΝ το διαγράψετε.
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 5.4: ΑΝΑΚΤΩΝΤΑΣ ΚΑΙ ΕΝΩΝΟΝΤΑΣ ΑΡΧΕΙΑ
-+
-+
-+ ** Για να εισάγετε τα περιεχόμενα ενός αρχείου, γράψτε :r ΑΡΧΕΙΟ **
-+
-+ 1. Γράψτε :!dir για να βεβαιωθείτε ότι το TEST υπάρχει από πριν.
-+
-+ 2. Τοποθετήστε τον δρομέα στο πάνω μέρος της σελίδας.
-+
-+ ΣΗΜΕΙΩΣΗ: Αφότου εκτελέσετε το Βήμα 3 θα δείτε το Μάθημα 5.3.
-+ Μετά κινηθείτε ΚΑΤΩ ξανά προς το μάθημα αυτό.
-+
-+ 3. Τώρα ανακτήστε το αρχείο σας TEST χρησιμοποιώντας την εντολή :r TEST
-+ όπου TEST είναι το όνομα του αρχείου.
-+
-+ ΣΗΜΕΙΩΣΗ: Το αρχείο που ανακτάτε τοποθετείται ξεκινώντας εκεί που βρίσκεται
-+ ο δρομέας.
-+
-+ 4. Για να επαληθεύσετε ότι το αρχείο ανακτήθηκε, πίσω τον δρομέα και
-+ παρατηρήστε ότι υπάρχουν τώρα δύο αντίγραφα του Μαθήματος 5.3, το
-+ αρχικό και η έκδοση του αρχείου.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ ΜΑΘΗΜΑ 5 ΠΕΡΙΛΗΨΗ
-+
-+
-+ 1. :!εντολή εκτελεί μία εξωτερική εντολή.
-+
-+ Μερικά χρήσιμα παραδείγματα είναι (MS-DOS):
-+ :!dir - εμφάνιση λίστας ενός καταλόγου.
-+ :!del ΑΡΧΕΙΟ - διαγράφει το ΑΡΧΕΙΟ.
-+
-+ 2. :w ΑΡΧΕΙΟ γράφει το τρέχων αρχείο του Vim στο δίσκο με όνομα ΑΡΧΕΙΟ.
-+
-+ 3. :#,#w ΑΡΧΕΙΟ σώζει τις γραμμές από # μέχρι # στο ΑΡΧΕΙΟ.
-+
-+ 4. :r ΑΡΧΕΙΟ ανακτεί το αρχείο δίσκου ΑΡΧΕΙΟ και το παρεμβάλλει μέσα
-+ στο τρέχον αρχείο μετά από τη θέση του δρομέα.
-+
-+
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 6.1: Η ΕΝΤΟΛΗ ΑΝΟΙΓΜΑΤΟΣ
-+
-+
-+ ** Πατήστε o για να ανοίξετε μία γραμμή κάτω από τον δρομέα και να
-+ βρεθείτε σε Κατάσταση Κειμένου. **
-+
-+ 1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
-+
-+ 2. Πατήστε o (πεζό) για να ανοίξετε μία γραμμή ΚΑΤΩ από τον δρομέα και να
-+ βρεθείτε σε Κατάσταση Κειμένου.
-+
-+ 3. Τώρα αντιγράψτε τη σημειωμένη με ---> γραμμή και πατήστε <ESC> για να
-+ βγείτε από την Κατάσταση Κειμένου.
-+
-+ ---> After typing o the cursor is placed on the open line in Insert mode.
-+
-+ 4. Για να ανοίξετε μία γραμμή ΠΑΝΩ από τον δρομέα, πατήστε απλά ένα κεφαλαίο
-+ O, αντί για ένα πεζό o. Δοκιμάστε το στην παρακάτω γραμμή.
-+ Ανοίγετε γραμμή πάνω από αυτήν πατώντας Shift-O όσο ο δρομέας είναι στη γραμμή
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 6.2: Η ΕΝΤΟΛΗ ΠΡΟΣΘΗΚΗΣ
-+
-+ ** Πατήστε a για να εισάγετε κείμενο ΜΕΤΑ τον δρομέα. **
-+
-+ 1. Μετακινείστε τον δρομέα στο τέλος της πρώτης γραμμής παρακάτω
-+ σημειωμένη με ---> πατώντας $ στην Κανονική Κατάσταση.
-+
-+ 2. Πατήστε ένα a (πεζό) για να προσθέσετε κείμενο ΜΕΤΑ από τον χαρακτήρα
-+ που είναι κάτω από τον δρομέα. (Το κεφαλαίο A προσθέτει στο τέλος
-+ της γραμμής).
-+
-+ Σημείωση: Αυτό αποφεύγει το πάτημα του i , τον τελευταίο χαρακτήρα, το
-+ κείμενο της εισαγωγής, <ESC>, δρομέα-δεξιά, και τέλος, x, μόνο και
-+ μόνο για να προσθέσετε στο τέλος της γραμμής!
-+
-+ 3. Συμπληρώστε τώρα την πρώτη γραμμή. Σημειώστε επίσης ότι η προσθήκη είναι
-+ ακριβώς ίδια στην Κατάσταση Κειμένου με την Κατάσταση Εισαγωγής, εκτός
-+ από τη θέση που εισάγεται το κείμενο.
-+
-+ ---> This line will allow you to practice
-+ ---> This line will allow you to practice appending text to the end of a line.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 6.3: ΑΛΛΗ ΕΚΔΟΣΗ ΤΗΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ
-+
-+
-+ ** Πατήστε κεφαλαίο R για να αλλάξετε περισσότερους από έναν χαρακτήρες. **
-+
-+ 1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.
-+
-+ 2. Τοποθετήστε τον δρομέα στην αρχή της πρώτης λέξης που είναι διαφορετική
-+ από τη δεύτερη γραμμή σημειωμένη με ---> (η λέξη 'last').
-+
-+ 3. Πατήστε τώρα R και αλλάξτε το υπόλοιπο του κειμένου στην πρώτη γραμμή
-+ γράφοντας πάνω από το παλιό κείμενο ώστε να κάνετε την πρώτη γραμμή ίδια
-+ με τη δεύτερη.
-+
-+ ---> To make the first line the same as the last on this page use the keys.
-+ ---> To make the first line the same as the second, type R and the new text.
-+
-+ 4. Σημειώστε ότι όταν πατάτε <ESC> για να βγείτε, παραμένει οποιοδήποτε
-+ αναλλοίωτο κείμενο.
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ Μάθημα 6.4: ΡΥΘΜΙΣΗ ΕΠΙΛΟΓΗΣ
-+
-+
-+ ** Ρυθμίστε μία επιλογή έτσι ώστε η αναζήτηση ή η αντικατάσταση να αγνοεί
-+ τη διαφορά πεζών-κεφαλαίων **
-+
-+ 1. Ψάξτε για 'ignore' εισάγοντας:
-+ /ignore
-+ Συνεχίστε αρκετές φορές πατώντας το πλήκτρο n.
-+
-+ 2. Θέστε την επιλογή 'ic' (Ignore case) γράφοντας:
-+ :set ic
-+
-+ 3. Ψάξτε τώρα ξανά για 'ignore' πατώντας: n
-+ Συνεχίστε την αναζήτηση μερικές ακόμα φορές πατώντας το πλήκτρο n
-+
-+ 4. Θέστε τις επιλογές 'hlsearch' και 'incsearch':
-+ :set hls is
-+
-+ 5. Εισάγετε τώρα ξανά την εντολή αναζήτησης, και δείτε τι συμβαίνει
-+ /ignore
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ ΜΑΘΗΜΑ 6 ΠΕΡΙΛΗΨΗ
-+
-+
-+ 1. Πατώντας o ανοίγει μία γραμμή ΚΑΤΩ από τον δρομέα και τοποθετεί τον
-+ δρομέα στην ανοιχτή γραμμή σε Κατάσταση Κειμένου.
-+
-+ 2. Πατήστε a για να εισάγετε κείμενο ΜΕΤΑ τον χαρακτήρα στον οποίο είναι
-+ ο δρομέας. Πατώντας κεφαλαίο A αυτόματα προσθέτει κείμενο στο τέλος
-+ της γραμμής.
-+
-+ 3. Πατώντας κεφαλαίο R εισέρχεται στην Κατάσταη Αντικατάστασης μέχρι να
-+ πατηθεί το <ESC> και να εξέλθει.
-+
-+ 4. Γράφοντας ":set xxx" ρυθμίζει την επιλογή "xxx".
-+
-+
-+
-+
-+
-+
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ ΜΑΘΗΜΑ 7: ON-LINE ΕΝΤΟΛΕΣ ΒΟΗΘΕΙΑΣ
-+
-+
-+ ** Χρησιμοποιήστε το on-line σύστημα βοήθειας **
-+
-+ Ο Vim έχει ένα περιεκτικό on-line σύστημα βοήθειας. Για να ξεκινήσει,
-+ δοκιμάστε κάποιο από τα τρία:
-+ - πατήστε το πλήκτρο <HELP> (αν έχετε κάποιο)
-+ - πατήστε το πλήκτρο <F1> (αν έχετε κάποιο)
-+ - γράψτε :help <ENTER>
-+
-+ Γράψτε :q <ENTER> για να κλείσετε το παράθυρο της βοήθειας.
-+
-+ Μπορείτε να βρείτε βοήθεια πάνω σε κάθε αντικείμενο, δίνοντας μία παράμετρο
-+ στην εντολή ":help". Δοκιμάστε αυτά (μην ξεχνάτε να πατάτε <ENTER>):
-+
-+ :help w
-+ :help c_<T
-+ :help insert-index
-+ :help user-manual
-+
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+ ΜΑΘΗΜΑ 8: ΔΗΜΙΟΥΡΓΗΣΤΕ ΕΝΑ SCRIPT ΕΚΚΙΝΗΣΗΣ
-+
-+ ** Ενεργοποιήστε χαρακτηριστικά του Vim **
-+
-+ Ο Vim έχει πολλά περισσότερα χαρακτηριστικά απ' ό,τι ο Vi, αλλά τα
-+ περισσότερα είναι αρχικά απενεργοποιημένα. Για να αρχίσετε να χρησιμοποιείτε
-+ περισσότερα χαρακτηριστικά πρέπει να φτιάξετε ένα αρχείο "vimrc".
-+
-+ 1. Αρχίστε διορθώνοντας το αρχείο "vimrc", αυτό εξαρτάται από το σύστημά σας:
-+ :edit ~/.vimrc για Unix
-+ :edit $VIM/_vimrc για MS-Windows
-+
-+ 2. Τώρα εισάγετε το κείμενο παραδείγματος για αρχείο "vimrc":
-+ :read $VIMRUNTIME/vimrc_example.vim
-+
-+ 3. Γράψτε το αρχείο με την:
-+ :write
-+
-+ Την επόμενη φορά που θα ξεκινήσετε τον Vim θα χρησιμοποιήσει φωτισμό
-+ σύνταξης. Μπορείτε να προσθέσετε όλες τις προτιμώμενες επιλογές σ' αυτό
-+ το αρχείο "vimrc".
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+
-+ Εδώ ολοκληρώνεται το Vim Tutor. Σκοπός του ήταν να δώσει μία σύντομη
-+ περίληψη του συντάκτη Vim, τουλάχιστον τόση ώστε να σας επιτρέψει να
-+ χρησιμοποιήσετε τον συντάκτη αρκετά εύκολα. Απέχει πολύ από μία
-+ ολοκληρωμένη παρουσίαση καθώς ο Vim έχει πάρα πολλές εντολές. Διαβάστε
-+ κατόπιν το εγχειρίδιο χρήσης:
-+ ":help user-manual".
-+
-+ Για περαιτέρω διάβασμα και μελέτη, συστήνεται αυτό το βιβλίο:
-+ Vim - Vi Improved - by Steve Oualline
-+ Publisher: New Riders
-+ Το πρώτο βιβλίο πλήρως αφιερωμένο στον Vim.
-+ Ιδιαίτερα χρήσιμο για αρχάριους.
-+ Υπάρχουν πολλά παραδείγματα και εικόνες.
-+ Δείτε την http://iccf-holland.org/click5.html
-+
-+ Αυτό το βιβλίο είναι παλιότερο και περισσότερο για τον Vi παρά για τον Vim,
-+ αλλά επίσης συνιστώμενο:
-+ Learning the Vi Editor - by Linda Lamb
-+ Publisher: O'Reilly & Associates Inc.
-+ Είναι ένα καλό βιβλίο για να μάθετε σχεδόν τα πάντα που θέλετε
-+ να κάνετε με τον Vi.
-+ Η έκτη έκδοση περιέχει ακόμα πληροφορίες για τον Vim.
-+
-+ Αυτή η περιήγηση γράφτηκε από τους Michael C. Pierce και Robert K. Ware,
-+ Colorado School of Mines χρησιμοποιώντας ιδέες από τον Charles Smith,
-+ Colorado State University. E-mail: bware@mines.colorado.edu.
-+
-+ Προσαρμογή για τον Vim από τον Bram Moolenaar.
-+
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*** ../vim-7.0.094/runtime/tutor/tutor.vim Sat Sep 2 14:54:17 2006
---- runtime/tutor/tutor.vim Sat Sep 9 16:46:36 2006
-***************
-*** 1,6 ****
- " Vim tutor support file
- " Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
-! " Last Change: 2006 Sep 02
-
- " This small source file is used for detecting if a translation of the
- " tutor file exist, i.e., a tutor.xx file, where xx is the language.
---- 1,6 ----
- " Vim tutor support file
- " Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
-! " Last Change: 2006 Sep 09
-
- " This small source file is used for detecting if a translation of the
- " tutor file exist, i.e., a tutor.xx file, where xx is the language.
-***************
-*** 93,101 ****
- endif
- endif
-
-! " The Greek tutor is available in two encodings, guess which one to use
-! if s:ext =~? '\.gr' && &enc =~ 737
-! let s:ext = ".gr.cp737"
- endif
-
- " The Slovak tutor is available in two encodings, guess which one to use
---- 93,108 ----
- endif
- endif
-
-! " The Greek tutor is available in three encodings, guess what to use.
-! " We used ".gr" (Greece) instead of ".el" (Greek); accept both.
-! if s:ext =~? '\.gr\|\.el'
-! if &enc == "iso-8859-7"
-! let s:ext = ".gr"
-! elseif &enc == "utf-8"
-! let s:ext = ".gr.utf-8"
-! elseif &enc =~ 737
-! let s:ext = ".gr.cp737"
-! endif
- endif
-
- " The Slovak tutor is available in two encodings, guess which one to use
-*** ../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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.096
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.097
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.098
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.099
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.100
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.101
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.102
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.103
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.104
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.105
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.106
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-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.
-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
-***************
-*** 2,8 ****
- " You can also use this as a start for your own set of menus.
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2006 Apr 17
-
- " 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.
---- 2,8 ----
- " You can also use this as a start for your own set of menus.
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2006 Sep 14
-
- " 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.
-***************
-*** 885,890 ****
---- 885,892 ----
- if exists("s:changeitem") && s:changeitem != ''
- call <SID>SpellDel()
- endif
-+
-+ " Return quickly if spell checking is not enabled.
- if !&spell || &spelllang == ''
- return
- endif
-***************
-*** 908,925 ****
- let s:fromword = w
- let pri = 1
- for sug in s:suglist
-! exe 'amenu 1.5.' . pri . ' PopUp.' . s:changeitem . '.' . escape(sug, ' .')
- \ . ' :call <SID>SpellReplace(' . pri . ')<CR>'
- let pri += 1
- endfor
-
- let s:additem = 'add\ "' . escape(w, ' .') . '"\ to\ word\ list'
-! exe 'amenu 1.6 PopUp.' . s:additem . ' :spellgood ' . w . '<CR>'
-
- let s:ignoreitem = 'ignore\ "' . escape(w, ' .') . '"'
-! exe 'amenu 1.7 PopUp.' . s:ignoreitem . ' :spellgood! ' . w . '<CR>'
-
-! amenu 1.8 PopUp.-SpellSep- :
- endif
- endif
- endfunc
---- 910,927 ----
- let s:fromword = w
- let pri = 1
- for sug in s:suglist
-! exe 'anoremenu 1.5.' . pri . ' PopUp.' . s:changeitem . '.' . escape(sug, ' .')
- \ . ' :call <SID>SpellReplace(' . pri . ')<CR>'
- let pri += 1
- endfor
-
- let s:additem = 'add\ "' . escape(w, ' .') . '"\ to\ word\ list'
-! exe 'anoremenu 1.6 PopUp.' . s:additem . ' :spellgood ' . w . '<CR>'
-
- let s:ignoreitem = 'ignore\ "' . escape(w, ' .') . '"'
-! exe 'anoremenu 1.7 PopUp.' . s:ignoreitem . ' :spellgood! ' . w . '<CR>'
-
-! anoremenu 1.8 PopUp.-SpellSep- :
- endif
- endif
- endfunc
-***************
-*** 938,944 ****
- let s:changeitem = ''
- endfun
-
-! au! MenuPopup * call <SID>SpellPopup()
- endif
-
- " The GUI toolbar (for MS-Windows and GTK)
---- 940,948 ----
- let s:changeitem = ''
- endfun
-
-! augroup SpellPopupMenu
-! au! MenuPopup * call <SID>SpellPopup()
-! augroup END
- endif
-
- " The GUI toolbar (for MS-Windows and GTK)
-***************
-*** 1013,1021 ****
- tmenu ToolBar.FindPrev Find Previous
- tmenu ToolBar.Replace Find / Replace...
- endif
-! tmenu ToolBar.LoadSesn Chose a session to load
- tmenu ToolBar.SaveSesn Save current session
-! tmenu ToolBar.RunScript Chose a Vim Script to run
- tmenu ToolBar.Make Make current project (:make)
- tmenu ToolBar.RunCtags Build tags in current directory tree (!ctags -R .)
- tmenu ToolBar.TagJump Jump to tag under cursor
---- 1017,1025 ----
- tmenu ToolBar.FindPrev Find Previous
- tmenu ToolBar.Replace Find / Replace...
- endif
-! tmenu ToolBar.LoadSesn Choose a session to load
- tmenu ToolBar.SaveSesn Save current session
-! tmenu ToolBar.RunScript Choose a Vim Script to run
- tmenu ToolBar.Make Make current project (:make)
- tmenu ToolBar.RunCtags Build tags in current directory tree (!ctags -R .)
- tmenu ToolBar.TagJump Jump to tag under cursor
-*** ../vim-7.0.105/src/version.c Thu Sep 14 11:27:12 2006
---- src/version.c Thu Sep 14 13:24:44 2006
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 106,
- /**/
-
---
-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
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.107
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-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
-
-
-*** ../vim-7.0.106/src/screen.c Tue Aug 29 17:28:56 2006
---- src/screen.c Thu Sep 14 21:00:32 2006
-***************
-*** 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
-+ }
- }
- }
- 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
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 107,
- /**/
-
---
-VOICE OVER: As the horrendous Black Beast lunged forward, escape for Arthur
- and his knights seemed hopeless, when, suddenly ... the animator
- suffered a fatal heart attack.
-ANIMATOR: Aaaaagh!
-VOICE OVER: The cartoon peril was no more ... The Quest for Holy Grail could
- continue.
- "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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.109
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.110
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.111
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Bram@vim.org>
-! " 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 <Bram@vim.org>
-! " Last Change: 2006 Oct 03
-
- " These functions are used by the gzip plugin.
-
-***************
-*** 68,76 ****
- let tmp = tempname()
- let tmpe = tmp . "." . expand("<afile>: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("<afile>: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("<afile>: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("<afile>: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 May 06
-
-
- 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.112
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.113
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.114
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.115
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.116
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.117
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.118
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.119
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.120
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.121
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.122
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.123
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.124
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.125
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.126
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.127
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.128
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.129
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.131
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.133
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.134
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.135
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.136
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.137
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.139
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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)
- {
- /* <C-PageUp>: tab page back */
-! goto_tabpage(-1);
- return;
- }
- #endif
---- 8822,8832 ----
- if (mod_mask & MOD_MASK_CTRL)
- {
- /* <C-PageUp>: 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)
- {
- /* <C-PageDown>: tab page forward */
-! goto_tabpage(0);
- return;
- }
- #endif
---- 8885,8895 ----
- if (mod_mask & MOD_MASK_CTRL)
- {
- /* <C-PageDown>: 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.140
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.141
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.142
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.143
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.144
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.145
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.146
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.147
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.148
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.149
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.150
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.151
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.152
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.153
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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, "<global>")==0)
---- 1729,1735 ----
- continue;
-
- context = (char *)alloc((unsigned)strlen(cntx)+5);
-! if (context == NULL)
- continue;
-
- if (strcmp(cntx, "<global>")==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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.154
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.155
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 == "\<LeftMouse>" && 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.157
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.158
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 {<CR> 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.159
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.160
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.162
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.163
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.164
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.165
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.166
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.167
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.168
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.169
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-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
-
-
-*** ../vim-7.0.168/src/screen.c Mon Oct 9 22:11:52 2006
---- src/screen.c Tue Nov 28 16:11:24 2006
-***************
-*** 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
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 169,
- /**/
-
---
- [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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.172
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.173
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.0.174
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.175
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.176
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.177
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.178
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.179
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.181
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.182
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.183
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.184
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.185
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <hex> 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.186
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.187
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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
-
-
-*** ../vim-7.0.186/runtime/doc/autocmd.txt Sun May 7 17:07:33 2006
---- runtime/doc/autocmd.txt Tue Jan 16 21:29:14 2007
-***************
-*** 1,4 ****
-! *autocmd.txt* For Vim version 7.0. Last change: 2006 May 06
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *autocmd.txt* For Vim version 7.0. Last change: 2007 Jan 16
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 279,284 ****
---- 279,285 ----
- |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
-***************
-*** 690,699 ****
- Can be used to check for any changed files.
- *SourcePre*
- SourcePre Before sourcing a Vim script. |:source|
- *SpellFileMissing*
- SpellFileMissing When trying to load a spell checking file and
-! it can't be found. <amatch> is the language,
-! 'encoding' also matters. See
- |spell-SpellFileMissing|.
- *StdinReadPost*
- StdinReadPost After reading from the stdin into the buffer,
---- 701,717 ----
- Can be used to check for any changed files.
- *SourcePre*
- SourcePre Before sourcing a Vim script. |:source|
-+ <afile> is the name of the file being sourced.
-+ *SourceCmd*
-+ SourceCmd When sourcing a Vim script. |:source|
-+ <afile> 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. The pattern is matched
-! against the language. <amatch> is the
-! language, 'encoding' also matters. See
- |spell-SpellFileMissing|.
- *StdinReadPost*
- StdinReadPost After reading from the stdin into the buffer,
-***************
-*** 1219,1226 ****
-
- *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.
- 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,1245 ----
-
- *Cmd-event*
- When using one of the "*Cmd" events, the matching autocommands are expected to
-! 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
-***************
-*** 1233,1241 ****
- 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.
-
- See the $VIMRUNTIME/plugin/netrw.vim for examples.
-
---- 1252,1261 ----
- original file isn't needed for recovery. You might want to do this only when
- you expect the file to be modified.
-
-! 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.188
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.189
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.190
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.191
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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
-
-
-*** ../vim-7.0.190/runtime/doc/eval.txt Wed Nov 1 15:31:02 2006
---- runtime/doc/eval.txt Sun Feb 4 01:54:35 2007
-***************
-*** 2897,2908 ****
- vcol non-zero: "col" is visual column
- zero: "col" is byte index
- nr error number
- text description of the error
- type type of the error, 'E', '1', etc.
- valid non-zero: recognized error message
-
- When there is no error list or it's empty an empty list is
-! returned.
-
- Useful application: Find pattern matches in multiple files and
- do something with them: >
---- 2912,2925 ----
- vcol non-zero: "col" is visual column
- zero: "col" is byte index
- nr error number
-+ pattern search pattern used to locate the error
- text description of the error
- type type of the error, 'E', '1', etc.
- valid non-zero: recognized error message
-
- When there is no error list or it's empty an empty list is
-! 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: >
-***************
-*** 4371,4377 ****
- Non-dictionary items in {list} are ignored. Each dictionary
- item can contain the following entries:
-
-! filename name of a file
- lnum line number in the file
- pattern search pattern used to locate the error
- col column number
---- 4401,4410 ----
- Non-dictionary items in {list} are ignored. Each dictionary
- item can contain the following entries:
-
-! 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
-***************
-*** 4384,4394 ****
- 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 both "pattern" and "lnum" are present then "pattern" will
- be used.
-
- If {action} is set to 'a', then the items from {list} are
- added to the existing quickfix list. If there is no existing
---- 4417,4429 ----
- 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" 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
-*** ../vim-7.0.190/src/quickfix.c Fri Oct 20 20:15:05 2006
---- src/quickfix.c Sun Feb 4 01:50:17 2007
-***************
-*** 106,112 ****
-
- 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 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));
---- 106,112 ----
-
- 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, 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,796 ****
---- 791,797 ----
- (*namebuf || directory)
- ? namebuf
- : ((currfile && valid) ? currfile : (char_u *)NULL),
-+ 0,
- errmsg,
- lnum,
- col,
-***************
-*** 936,947 ****
- * Returns OK or FAIL.
- */
- static int
-! qf_add_entry(qi, prevp, dir, fname, 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 */
- char_u *mesg; /* message */
- long lnum; /* line number */
- int col; /* column */
---- 937,949 ----
- * Returns OK or FAIL.
- */
- static int
-! 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,961 ****
-
- if ((qfp = (qfline_T *)alloc((unsigned)sizeof(qfline_T))) == NULL)
- return FAIL;
-! qfp->qf_fnum = qf_get_fnum(dir, fname);
- if ((qfp->qf_text = vim_strsave(mesg)) == NULL)
- {
- vim_free(qfp);
---- 957,966 ----
-
- if ((qfp = (qfline_T *)alloc((unsigned)sizeof(qfline_T))) == NULL)
- return FAIL;
-! 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,1111 ****
---- 1111,1117 ----
- if (qf_add_entry(to->w_llist, &prevp,
- NULL,
- NULL,
-+ 0,
- from_qfp->qf_text,
- from_qfp->qf_lnum,
- from_qfp->qf_col,
-***************
-*** 3134,3139 ****
---- 3140,3146 ----
- 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,3424 ****
---- 3426,3432 ----
- char_u buf[2];
- qfline_T *qfp;
- int i;
-+ int bufnum;
-
- if (wp != NULL)
- {
-***************
-*** 3434,3439 ****
---- 3442,3452 ----
- 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,3447 ****
-
- buf[0] = qfp->qf_type;
- buf[1] = NUL;
-! if ( dict_add_nr_str(dict, "bufnr", (long)qfp->qf_fnum, 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
---- 3454,3460 ----
-
- buf[0] = qfp->qf_type;
- buf[1] = NUL;
-! 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,3477 ****
---- 3485,3491 ----
- listitem_T *li;
- dict_T *d;
- char_u *filename, *pattern, *text, *type;
-+ int bufnum;
- long lnum;
- int col, nr;
- int vcol;
-***************
-*** 3479,3484 ****
---- 3493,3499 ----
- int valid, status;
- int retval = OK;
- qf_info_T *qi = &ql_info;
-+ int did_bufnr_emsg = FALSE;
-
- if (wp != NULL)
- {
-***************
-*** 3508,3513 ****
---- 3523,3529 ----
- 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,3530 ****
- text = vim_strsave((char_u *)"");
-
- valid = TRUE;
-! if (filename == NULL || (lnum == 0 && pattern == NULL))
- valid = FALSE;
-
- status = qf_add_entry(qi, &prevp,
- NULL, /* dir */
- filename,
- text,
- lnum,
- col,
---- 3535,3560 ----
- text = vim_strsave((char_u *)"");
-
- valid = TRUE;
-! 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,3762 ****
---- 3787,3793 ----
- if (qf_add_entry(qi, &prevp,
- NULL, /* dir */
- fnames[fi],
-+ 0,
- IObuff,
- lnum,
- (int)(regmatch.startp[0] - IObuff)
-*** ../vim-7.0.190/src/version.c Sun Feb 4 02:49:03 2007
---- src/version.c Sun Feb 4 02:50:49 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 191,
- /**/
-
---
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.192
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.193
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.194
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.195
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.196
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.199
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.200
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.201
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.202
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <floss.h>
-+ # 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.203
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.204
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.205
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.206
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.207
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.208
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Wimp$Scrap>.
-! * 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 <Wimp$Scrap> */
- 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.209
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.210
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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
-
-
-*** ../vim-7.0.209/runtime/doc/quickfix.txt Sun May 7 17:15:46 2006
---- runtime/doc/quickfix.txt Thu Mar 8 10:14:54 2007
-***************
-*** 1,4 ****
-! *quickfix.txt* For Vim version 7.0. Last change: 2006 Apr 30
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *quickfix.txt* For Vim version 7.0. Last change: 2006 Jul 18
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 178,192 ****
- 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.
-
- *: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*
---- 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.211
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.212
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.213
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.214
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.0.214
-Problem: When using <f-args> 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
-
-
-*** ../vim-7.0.213/runtime/doc/map.txt Sun May 7 16:57:11 2006
---- runtime/doc/map.txt Thu Mar 8 18:00:26 2007
-***************
-*** 1,4 ****
-! *map.txt* For Vim version 7.0. Last change: 2006 May 03
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *map.txt* For Vim version 7.0. Last change: 2007 Mar 08
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1303,1314 ****
- <q-args>) then the value is quoted in such a way as to make it a valid value
- for use in an expression. This uses the argument as one single value.
- When there is no argument <q-args> is an empty string.
-!
- To allow commands to pass their arguments on to a user-defined function, there
- is a special form <f-args> ("function args"). This splits the command
- arguments at spaces and Tabs, quotes each argument individually, and the
- <f-args> sequence is replaced by the comma-separated list of quoted arguments.
- See the Mycmd example below. If no arguments are given <f-args> is removed.
-
- Examples >
-
---- 1319,1346 ----
- <q-args>) then the value is quoted in such a way as to make it a valid value
- for use in an expression. This uses the argument as one single value.
- When there is no argument <q-args> is an empty string.
-! *<f-args>*
- To allow commands to pass their arguments on to a user-defined function, there
- is a special form <f-args> ("function args"). This splits the command
- arguments at spaces and Tabs, quotes each argument individually, and the
- <f-args> sequence is replaced by the comma-separated list of quoted arguments.
- See the Mycmd example below. If no arguments are given <f-args> is removed.
-+ To embed whitespace into an argument of <f-args>, prepend a backslash.
-+ <f-args> 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 <f-args> ~
-+ 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 <f-args>
-+ */
- 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 (<f-args>) */
- /* 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.215 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.216
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.217
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.218
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.219
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.220
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.221
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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/runtime/doc/eval.txt Sun Feb 4 02:59:04 2007
---- runtime/doc/eval.txt Mon Mar 26 20:49:06 2007
-***************
-*** 2541,2550 ****
-
-
- finddir({name}[, {path}[, {count}]]) *finddir()*
-! Find directory {name} in {path}. Returns the path of the
-! first found match. When the found directory is below the
-! current directory a relative path is returned. Otherwise a
-! full path is returned.
- If {path} is omitted or empty then 'path' is used.
- If the optional {count} is given, find {count}'s occurrence of
- {name} in {path} instead of the first one.
---- 2565,2576 ----
-
-
- finddir({name}[, {path}[, {count}]]) *finddir()*
-! Find directory {name} in {path}. Supports both downwards and
-! upwards recursive directory searches. See |file-searching|
-! for the syntax of {path}.
-! Returns the path of the first found match. When the found
-! directory is below the current directory a relative path is
-! returned. Otherwise a full path is returned.
- If {path} is omitted or empty then 'path' is used.
- If the optional {count} is given, find {count}'s occurrence of
- {name} in {path} instead of the first one.
-*** ../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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.222
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.223
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.224
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 "<sfile>" 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 "<sfile>" 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.225
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.226
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.227
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.228
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <sys/cygwin.h> /* 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.229
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.230
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 Apr 30
-
- 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.231
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.232 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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\9fmmer
- * 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 <mach-o/dyld.h>
-+
-+ 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.233 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 <Devices.h> /* 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 <Devices.h> /* 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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.234
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.0.235
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-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 ///