+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.001
-Problem: Still can't build with Gnome libraries.
-Solution: Fix typo in bind_textdomain_codeset. (Mike Kelly)
-Files: src/gui_gtk.c, src/gui_gtk_x11.c
-
-
-*** ../vim-7.1.000/src/gui_gtk.c Thu May 10 20:27:29 2007
---- src/gui_gtk.c Mon May 14 14:40:54 2007
-***************
-*** 53,60 ****
- # ifdef bindtextdomain
- # undef bindtextdomain
- # endif
-! # ifdef bindtextdomain_codeset
-! # undef bindtextdomain_codeset
- # endif
- # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS)
- # define ENABLE_NLS /* so the texts in the dialog boxes are translated */
---- 53,60 ----
- # ifdef bindtextdomain
- # undef bindtextdomain
- # endif
-! # ifdef bind_textdomain_codeset
-! # undef bind_textdomain_codeset
- # endif
- # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS)
- # define ENABLE_NLS /* so the texts in the dialog boxes are translated */
-*** ../vim-7.1.000/src/gui_gtk_x11.c Thu May 10 21:17:51 2007
---- src/gui_gtk_x11.c Mon May 14 14:41:06 2007
-***************
-*** 36,43 ****
- # ifdef bindtextdomain
- # undef bindtextdomain
- # endif
-! # ifdef bindtextdomain_codeset
-! # undef bindtextdomain_codeset
- # endif
- # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS)
- # define ENABLE_NLS /* so the texts in the dialog boxes are translated */
---- 36,43 ----
- # ifdef bindtextdomain
- # undef bindtextdomain
- # endif
-! # ifdef bind_textdomain_codeset
-! # undef bind_textdomain_codeset
- # endif
- # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS)
- # define ENABLE_NLS /* so the texts in the dialog boxes are translated */
-*** ../vim-7.1.000/src/version.c Sat May 12 16:34:15 2007
---- src/version.c Mon May 14 14:42:19 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 1,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-127. You bring your laptop and cellular phone to church.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.002
-Problem: Oracle Pro*C/C++ files are not detected.
-Solution: Add the missing star. (Micah J. Cowan)
-Files: runtime/filetype.vim
-
-
-*** ../vim-7.1.001/runtime/filetype.vim Thu May 10 20:42:30 2007
---- runtime/filetype.vim Tue May 15 09:12:06 2007
-***************
-*** 1,7 ****
- " Vim support file to detect file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 May 10
-
- " Listen very carefully, I will say this only once
- if exists("did_load_filetypes")
---- 1,7 ----
- " Vim support file to detect file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 May 15
-
- " Listen very carefully, I will say this only once
- if exists("did_load_filetypes")
-***************
-*** 1286,1292 ****
- au BufNewFile,BufRead *.it,*.ih setf ppwiz
-
- " Oracle Pro*C/C++
-! au BufNewFile,BufRead .pc setf proc
-
- " Privoxy actions file
- au BufNewFile,BufRead *.action setf privoxy
---- 1286,1292 ----
- au BufNewFile,BufRead *.it,*.ih setf ppwiz
-
- " Oracle Pro*C/C++
-! au BufNewFile,BufRead *.pc setf proc
-
- " Privoxy actions file
- au BufNewFile,BufRead *.action setf privoxy
-*** ../vim-7.1.001/src/version.c Mon May 14 19:35:51 2007
---- src/version.c Tue May 15 09:13:11 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 2,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-132. You come back and check this list every half-hour.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.003 (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.1.003 (extra)
-Problem: The "Tear off this menu" message appears in the message history
- when using a menu. (Yongwei Wu)
-Solution: Disable message history when displaying the menu tip.
-Files: src/gui_w32.c
-
-
-*** ../vim-7.1.002/src/gui_w32.c Thu May 10 22:17:22 2007
---- src/gui_w32.c Sat Jun 9 13:43:07 2007
-***************
-*** 1051,1057 ****
---- 1051,1059 ----
- if (pMenu != NULL && pMenu->strings[MENU_INDEX_TIP] != 0
- && GetMenuState(s_menuBar, pMenu->id, MF_BYCOMMAND) != -1)
- {
-+ ++msg_hist_off;
- msg(pMenu->strings[MENU_INDEX_TIP]);
-+ --msg_hist_off;
- setcursor();
- out_flush();
- did_menu_tip = TRUE;
-*** ../vim-7.1.002/src/version.c Tue May 15 09:14:33 2007
---- src/version.c Tue Jun 19 10:08:17 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 3,
- /**/
-
---
-In his lifetime van Gogh painted 486 oil paintings. Oddly enough, 8975
-of them are to be found in the United States.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.004
-Problem: Crash when doing ":next directory". (Raphael Finkel)
-Solution: Do not use "buf", it may be invalid after autocommands.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.003/src/ex_cmds.c Thu May 10 21:24:24 2007
---- src/ex_cmds.c Mon Jun 18 22:03:56 2007
-***************
-*** 3367,3373 ****
- * was in this window (or another window). If not used
- * before, reset the local window options to the global
- * values. Also restores old folding stuff. */
-! get_winopts(buf);
- #ifdef FEAT_SPELL
- did_get_winopts = TRUE;
- #endif
---- 3367,3373 ----
- * was in this window (or another window). If not used
- * before, reset the local window options to the global
- * values. Also restores old folding stuff. */
-! get_winopts(curbuf);
- #ifdef FEAT_SPELL
- did_get_winopts = TRUE;
- #endif
-***************
-*** 3649,3656 ****
- #ifdef FEAT_SPELL
- /* If the window options were changed may need to set the spell language.
- * Can only do this after the buffer has been properly setup. */
-! if (did_get_winopts && curwin->w_p_spell && *buf->b_p_spl != NUL)
-! did_set_spelllang(buf);
- #endif
-
- if (command == NULL)
---- 3649,3656 ----
- #ifdef FEAT_SPELL
- /* If the window options were changed may need to set the spell language.
- * Can only do this after the buffer has been properly setup. */
-! if (did_get_winopts && curwin->w_p_spell && *curbuf->b_p_spl != NUL)
-! did_set_spelllang(curbuf);
- #endif
-
- if (command == NULL)
-*** ../vim-7.1.003/src/version.c Tue Jun 19 10:09:15 2007
---- src/version.c Tue Jun 19 11:53:34 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 4,
- /**/
-
---
-FIRST HEAD: Oh! quick! get the sword out I want to cut his head off.
-THIRD HEAD: Oh, cut your own head off.
-SECOND HEAD: Yes - do us all a favour.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.005
-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.1.005
-Problem: "cit" used on <foo></foo> deletes <foo>. Should not delete
- anything and start insertion, like "ci'" does on "". (Michal
- Bozon)
-Solution: Handle an empty object specifically. Made it work consistent for
- various text objects.
-Files: src/search.c
-
-
-*** ../vim-7.1.004/src/search.c Thu May 10 20:54:46 2007
---- src/search.c Mon Jun 4 12:31:04 2007
-***************
-*** 3600,3612 ****
- {
- oap->start = start_pos;
- oap->motion_type = MCHAR;
- if (sol)
-- {
- incl(&curwin->w_cursor);
-! oap->inclusive = FALSE;
-! }
-! else
- oap->inclusive = TRUE;
- }
-
- return OK;
---- 3600,3615 ----
- {
- oap->start = start_pos;
- oap->motion_type = MCHAR;
-+ oap->inclusive = FALSE;
- if (sol)
- incl(&curwin->w_cursor);
-! else if (lt(start_pos, curwin->w_cursor))
-! /* Include the character under the cursor. */
- oap->inclusive = TRUE;
-+ else
-+ /* End is before the start (no text in between <>, [], etc.): don't
-+ * operate on any text. */
-+ curwin->w_cursor = start_pos;
- }
-
- return OK;
-***************
-*** 3734,3740 ****
-
- if (in_html_tag(FALSE))
- {
-! /* cursor on start tag, move to just after it */
- while (*ml_get_cursor() != '>')
- if (inc_cursor() < 0)
- break;
---- 3737,3743 ----
-
- if (in_html_tag(FALSE))
- {
-! /* cursor on start tag, move to its '>' */
- while (*ml_get_cursor() != '>')
- if (inc_cursor() < 0)
- break;
-***************
-*** 3838,3844 ****
- /* Exclude the start tag. */
- curwin->w_cursor = start_pos;
- while (inc_cursor() >= 0)
-! if (*ml_get_cursor() == '>' && lt(curwin->w_cursor, end_pos))
- {
- inc_cursor();
- start_pos = curwin->w_cursor;
---- 3841,3847 ----
- /* Exclude the start tag. */
- curwin->w_cursor = start_pos;
- while (inc_cursor() >= 0)
-! if (*ml_get_cursor() == '>')
- {
- inc_cursor();
- start_pos = curwin->w_cursor;
-***************
-*** 3860,3866 ****
- #ifdef FEAT_VISUAL
- if (VIsual_active)
- {
-! if (*p_sel == 'e')
- ++curwin->w_cursor.col;
- VIsual = start_pos;
- VIsual_mode = 'v';
---- 3863,3873 ----
- #ifdef FEAT_VISUAL
- if (VIsual_active)
- {
-! /* If the end is before the start there is no text between tags, select
-! * the char under the cursor. */
-! if (lt(end_pos, start_pos))
-! curwin->w_cursor = start_pos;
-! else if (*p_sel == 'e')
- ++curwin->w_cursor.col;
- VIsual = start_pos;
- VIsual_mode = 'v';
-***************
-*** 3872,3878 ****
- {
- oap->start = start_pos;
- oap->motion_type = MCHAR;
-! oap->inclusive = TRUE;
- }
- retval = OK;
-
---- 3879,3893 ----
- {
- oap->start = start_pos;
- oap->motion_type = MCHAR;
-! if (lt(end_pos, start_pos))
-! {
-! /* End is before the start: there is no text between tags; operate
-! * on an empty area. */
-! curwin->w_cursor = start_pos;
-! oap->inclusive = FALSE;
-! }
-! else
-! oap->inclusive = TRUE;
- }
- retval = OK;
-
-*** ../vim-7.1.004/src/version.c Tue Jun 19 11:54:23 2007
---- src/version.c Tue Jun 19 12:57:03 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 5,
- /**/
-
---
-Life would be so much easier if we could just look at the source code.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.006
-Problem: Resetting 'modified' in a StdinReadPost autocommand doesn't work.
-Solution: Set 'modified' before the autocommands instead of after it.
-Files: src/buffer.c
-
-
-*** ../vim-7.1.005/src/buffer.c Thu May 10 18:43:46 2007
---- src/buffer.c Fri Jun 8 20:59:04 2007
-***************
-*** 171,176 ****
---- 171,183 ----
- /* Put the cursor on the first line. */
- curwin->w_cursor.lnum = 1;
- curwin->w_cursor.col = 0;
-+
-+ /* Set or reset 'modified' before executing autocommands, so that
-+ * it can be changed there. */
-+ if (!readonlymode && !bufempty())
-+ changed();
-+ else if (retval != FAIL)
-+ unchanged(curbuf, FALSE);
- #ifdef FEAT_AUTOCMD
- # ifdef FEAT_EVAL
- apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE,
-***************
-*** 194,209 ****
- /* When reading stdin, the buffer contents always needs writing, so set
- * the changed flag. Unless in readonly mode: "ls | gview -".
- * When interrupted and 'cpoptions' contains 'i' set changed flag. */
-! if ((read_stdin && !readonlymode && !bufempty())
- #ifdef FEAT_AUTOCMD
- || modified_was_set /* ":set modified" used in autocmd */
- # ifdef FEAT_EVAL
- || (aborting() && vim_strchr(p_cpo, CPO_INTMOD) != NULL)
- # endif
- #endif
-! || (got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL))
- changed();
-! else if (retval != FAIL)
- unchanged(curbuf, FALSE);
- save_file_ff(curbuf); /* keep this fileformat */
-
---- 201,216 ----
- /* When reading stdin, the buffer contents always needs writing, so set
- * the changed flag. Unless in readonly mode: "ls | gview -".
- * When interrupted and 'cpoptions' contains 'i' set changed flag. */
-! if ((got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL)
- #ifdef FEAT_AUTOCMD
- || modified_was_set /* ":set modified" used in autocmd */
- # ifdef FEAT_EVAL
- || (aborting() && vim_strchr(p_cpo, CPO_INTMOD) != NULL)
- # endif
- #endif
-! )
- changed();
-! else if (retval != FAIL && !read_stdin)
- unchanged(curbuf, FALSE);
- save_file_ff(curbuf); /* keep this fileformat */
-
-*** ../vim-7.1.005/src/version.c Tue Jun 19 12:58:55 2007
---- src/version.c Tue Jun 19 15:37:53 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 6,
- /**/
-
---
-If I tell you "you have a beautiful body", would you hold it against me?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.007 (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.1.007 (extra)
-Problem: Mac: Context menu doesn't work on Intel Macs.
- Scrollbars are not dimmed when Vim is not the active application.
-Solution: Remove the test whether context menus are supported. They are
- always there in OS/X. Handle the dimming. (Nicolas Weber)
-Files: src/gui_mac.c, src/gui.h
-
-
-*** ../vim-7.1.006/src/gui_mac.c Thu May 10 20:07:25 2007
---- src/gui_mac.c Sat Jun 9 14:19:25 2007
-***************
-*** 1676,1688 ****
- /* TODO: NEEDED? */
- clickIsPopup = FALSE;
-
-! if ((gui.MacOSHaveCntxMenu) && (mouse_model_popup()))
-! if (IsShowContextualMenuClick(theEvent))
-! {
-! vimMouseButton = MOUSE_RIGHT;
-! vimModifiers &= ~MOUSE_CTRL;
-! clickIsPopup = TRUE;
-! }
-
- /* Is it a double click ? */
- dblClick = ((theEvent->when - lastMouseTick) < GetDblTime());
---- 1676,1687 ----
- /* TODO: NEEDED? */
- clickIsPopup = FALSE;
-
-! if (mouse_model_popup() && IsShowContextualMenuClick(theEvent))
-! {
-! vimMouseButton = MOUSE_RIGHT;
-! vimModifiers &= ~MOUSE_CTRL;
-! clickIsPopup = TRUE;
-! }
-
- /* Is it a double click ? */
- dblClick = ((theEvent->when - lastMouseTick) < GetDblTime());
-***************
-*** 1920,1943 ****
- WindowPtr whichWindow;
-
- whichWindow = (WindowPtr) event->message;
-! if ((event->modifiers) & activeFlag)
-! /* Activate */
-! gui_focus_change(TRUE);
-! else
- {
-! /* Deactivate */
-! gui_focus_change(FALSE);
-! /* DON'T KNOW what the code below was doing
-! found in the deactivate clause, but the
-! clause writing TRUE into in_focus (BUG)
-! */
-!
-! #if 0 /* Removed by Dany as per above June 2001 */
-! a_bool = false;
-! SetPreserveGlyph(a_bool);
-! SetOutlinePreferred(a_bool);
-! #endif
- }
- }
-
-
---- 1919,1937 ----
- WindowPtr whichWindow;
-
- whichWindow = (WindowPtr) event->message;
-! /* Dim scrollbars */
-! if (whichWindow == gui.VimWindow)
- {
-! ControlRef rootControl;
-! GetRootControl(gui.VimWindow, &rootControl);
-! if ((event->modifiers) & activeFlag)
-! ActivateControl(rootControl);
-! else
-! DeactivateControl(rootControl);
- }
-+
-+ /* Activate */
-+ gui_focus_change((event->modifiers) & activeFlag);
- }
-
-
-***************
-*** 2559,2574 ****
- OSErr error;
-
- /* Handle contextual menu right now (if needed) */
-! if (gui.MacOSHaveCntxMenu)
-! if (IsShowContextualMenuClick(event))
-! {
- # if 0
-! gui_mac_handle_contextual_menu(event);
- # else
-! gui_mac_doMouseDownEvent(event);
- # endif
-! return;
-! }
-
- /* Handle normal event */
- switch (event->what)
---- 2553,2567 ----
- OSErr error;
-
- /* Handle contextual menu right now (if needed) */
-! if (IsShowContextualMenuClick(event))
-! {
- # if 0
-! gui_mac_handle_contextual_menu(event);
- # else
-! gui_mac_doMouseDownEvent(event);
- # endif
-! return;
-! }
-
- /* Handle normal event */
- switch (event->what)
-***************
-*** 2782,2795 ****
- (void) InstallAEHandlers();
- #endif
-
-- if (Gestalt(gestaltContextualMenuAttr, &gestalt_rc) == noErr)
-- gui.MacOSHaveCntxMenu = BitTst(&gestalt_rc, 31-gestaltContextualMenuTrapAvailable);
-- else
-- gui.MacOSHaveCntxMenu = false;
--
-- if (gui.MacOSHaveCntxMenu)
-- gui.MacOSHaveCntxMenu = (InitContextualMenus()==noErr);
--
- pomme = NewMenu(256, "\p\024"); /* 0x14= = Apple Menu */
-
- AppendMenu(pomme, "\pAbout VIM");
---- 2775,2780 ----
-***************
-*** 2941,2946 ****
---- 2926,2932 ----
- #ifdef USE_CARBONKEYHANDLER
- EventHandlerRef keyEventHandlerRef;
- #endif
-+ ControlRef rootControl;
-
- if (Gestalt(gestaltSystemVersion, &gMacSystemVersion) != noErr)
- gMacSystemVersion = 0x1000; /* TODO: Default to minimum sensible value */
-***************
-*** 2954,2968 ****
- (void) InstallAEHandlers();
- #endif
-
-- /* Ctrl click */
-- if (Gestalt(gestaltContextualMenuAttr, &gestalt_rc) == noErr)
-- gui.MacOSHaveCntxMenu = BitTst(&gestalt_rc, 31-gestaltContextualMenuTrapAvailable);
-- else
-- gui.MacOSHaveCntxMenu = false;
--
-- if (gui.MacOSHaveCntxMenu)
-- gui.MacOSHaveCntxMenu = (InitContextualMenus()==noErr);
--
- pomme = NewMenu(256, "\p\024"); /* 0x14= = Apple Menu */
-
- AppendMenu(pomme, "\pAbout VIM");
---- 2940,2945 ----
-***************
-*** 2981,2986 ****
---- 2958,2964 ----
- gui.VimWindow = NewCWindow(nil, &windRect, "\pgVim on Macintosh", true,
- zoomDocProc,
- (WindowPtr)-1L, true, 0);
-+ CreateRootControl(gui.VimWindow, &rootControl);
- InstallReceiveHandler((DragReceiveHandlerUPP)receiveHandler,
- gui.VimWindow, NULL);
- SetPortWindowPort(gui.VimWindow);
-*** ../vim-7.1.006/src/gui.h Thu May 10 19:18:46 2007
---- src/gui.h Sat Jun 9 14:10:34 2007
-***************
-*** 460,466 ****
- WindowPtr VimWindow;
- MenuHandle MacOSHelpMenu; /* Help menu provided by the MacOS */
- int MacOSHelpItems; /* Nr of help-items supplied by MacOS */
-- int MacOSHaveCntxMenu; /* Contextual menu available */
- WindowPtr wid; /* Window id of text area */
- int visibility; /* Is window partially/fully obscured? */
- #endif
---- 460,465 ----
-*** ../vim-7.1.006/src/version.c Tue Jun 19 15:40:51 2007
---- src/version.c Tue Jun 19 15:44:15 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 7,
- /**/
-
---
- When danger reared its ugly head,
- He bravely turned his tail and fled
- Yes, Brave Sir Robin turned about
- And gallantly he chickened out
- Bravely taking to his feet
- He beat a very brave retreat
- Bravest of the brave Sir Robin
- Petrified of being dead
- Soiled his pants then brave Sir Robin
- Turned away and fled.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.008 (correction
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Oops, forgot the src/version.c change.
-
-Patch 7.1.008
-Problem: getfsize() returns a negative number for very big files.
-Solution: Check for overflow and return -2.
-Files: runtime/doc/eval.txt, src/eval.c
-
-
-*** ../vim-7.1.007/runtime/doc/eval.txt Sat May 12 16:38:23 2007
---- runtime/doc/eval.txt Sat Jun 9 15:48:40 2007
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2007 May 11
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2007 Jun 09
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 2824,2829 ****
---- 2824,2831 ----
- given file {fname}.
- If {fname} is a directory, 0 is returned.
- If the file {fname} can't be found, -1 is returned.
-+ If the size of {fname} is too big to fit in a Number then -2
-+ is returned.
-
- getfontname([{name}]) *getfontname()*
- Without an argument returns the name of the normal font being
-*** ../vim-7.1.007/src/eval.c Thu May 10 21:30:00 2007
---- src/eval.c Sat Jun 9 15:46:46 2007
-***************
-*** 10136,10142 ****
---- 10136,10148 ----
- if (mch_isdir(fname))
- rettv->vval.v_number = 0;
- else
-+ {
- rettv->vval.v_number = (varnumber_T)st.st_size;
-+
-+ /* non-perfect check for overflow */
-+ if ((off_t)rettv->vval.v_number != (off_t)st.st_size)
-+ rettv->vval.v_number = -2;
-+ }
- }
- else
- rettv->vval.v_number = -1;
-*** ../vim-7.1.007/src/version.c Tue Jun 19 16:33:53 2007
---- src/version.c Tue Jun 19 17:30:50 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 8,
- /**/
-
-
---
-ZOOT: I'm afraid our life must seem very dull and quiet compared to yours.
- We are but eightscore young blondes, all between sixteen and
- nineteen-and-a-half, cut off in this castle, with no one to protect us.
- Oooh. It is a lonely life ... bathing ... dressing ... undressing ...
- making exciting underwear....
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.009
-Problem: In diff mode, displaying the difference between a tab and spaces
- is not highlighted correctly.
-Solution: Only change highlighting at the end of displaying a tab.
-Files: src/screen.c
-
-
-*** ../vim-7.1.008/src/screen.c Thu May 10 20:15:31 2007
---- src/screen.c Mon Jun 11 21:49:44 2007
-***************
-*** 3459,3467 ****
- #ifdef FEAT_DIFF
- if (diff_hlf != (hlf_T)0)
- {
-! if (diff_hlf == HLF_CHD && ptr - line >= change_start)
- diff_hlf = HLF_TXD; /* changed text */
-! if (diff_hlf == HLF_TXD && ptr - line > change_end)
- diff_hlf = HLF_CHD; /* changed line */
- line_attr = hl_attr(diff_hlf);
- }
---- 3459,3469 ----
- #ifdef FEAT_DIFF
- if (diff_hlf != (hlf_T)0)
- {
-! if (diff_hlf == HLF_CHD && ptr - line >= change_start
-! && n_extra == 0)
- diff_hlf = HLF_TXD; /* changed text */
-! if (diff_hlf == HLF_TXD && ptr - line > change_end
-! && n_extra == 0)
- diff_hlf = HLF_CHD; /* changed line */
- line_attr = hl_attr(diff_hlf);
- }
-*** ../vim-7.1.008/src/version.c Tue Jun 19 17:33:52 2007
---- src/version.c Tue Jun 19 17:36:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 9,
- /**/
-
---
-Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.010
-Problem: The Gnome session file doesn't restore tab pages.
-Solution: Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio)
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.1.009/src/gui_gtk_x11.c Mon May 14 19:35:51 2007
---- src/gui_gtk_x11.c Sat Jun 9 16:54:13 2007
-***************
-*** 2188,2195 ****
- escaped_filename = vim_strsave_escaped(filename, escape_chars);
- if (escaped_filename == NULL)
- return FALSE;
-! mksession_cmdline = g_strconcat("mksession ", (char *)escaped_filename, NULL);
- vim_free(escaped_filename);
- /*
- * Use a reasonable hardcoded set of 'sessionoptions' flags to avoid
- * unpredictable effects when the session is saved automatically. Also,
---- 2188,2197 ----
- escaped_filename = vim_strsave_escaped(filename, escape_chars);
- if (escaped_filename == NULL)
- return FALSE;
-! mksession_cmdline = g_strconcat("mksession ", (char *)escaped_filename,
-! NULL);
- vim_free(escaped_filename);
-+
- /*
- * Use a reasonable hardcoded set of 'sessionoptions' flags to avoid
- * unpredictable effects when the session is saved automatically. Also,
-***************
-*** 2199,2205 ****
- */
- save_ssop_flags = ssop_flags;
- ssop_flags = (SSOP_BLANK|SSOP_CURDIR|SSOP_FOLDS|SSOP_GLOBALS
-! |SSOP_HELP|SSOP_OPTIONS|SSOP_WINSIZE);
-
- do_cmdline_cmd((char_u *)"let Save_VV_this_session = v:this_session");
- failed = (do_cmdline_cmd((char_u *)mksession_cmdline) == FAIL);
---- 2201,2207 ----
- */
- save_ssop_flags = ssop_flags;
- ssop_flags = (SSOP_BLANK|SSOP_CURDIR|SSOP_FOLDS|SSOP_GLOBALS
-! |SSOP_HELP|SSOP_OPTIONS|SSOP_WINSIZE|SSOP_TABPAGES);
-
- do_cmdline_cmd((char_u *)"let Save_VV_this_session = v:this_session");
- failed = (do_cmdline_cmd((char_u *)mksession_cmdline) == FAIL);
-*** ../vim-7.1.009/src/version.c Tue Jun 19 17:49:12 2007
---- src/version.c Tue Jun 19 18:07:09 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 10,
- /**/
-
---
-GALAHAD: No look, really, this isn't nescess ...
-PIGLET: We must examine you.
-GALAHAD: There's nothing wrong with ... that.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.011
-Problem: Possible buffer overflow when $VIMRUNTIME is very long. (Victor
- Stinner)
-Solution: Use vim_snprintf().
-Files: src/main.c
-
-
-*** ../vim-7.1.010/src/main.c Thu May 10 21:12:25 2007
---- src/main.c Sat Jun 9 22:37:46 2007
-***************
-*** 1360,1367 ****
- p = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
- if (p != NULL && *p != NUL)
- {
-! STRCPY(NameBuff, p);
-! STRCAT(NameBuff, "/lang");
- bindtextdomain(VIMPACKAGE, (char *)NameBuff);
- }
- if (mustfree)
---- 1360,1366 ----
- p = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
- if (p != NULL && *p != NUL)
- {
-! vim_snprintf((char *)NameBuff, MAXPATHL, "%s/lang", p);
- bindtextdomain(VIMPACKAGE, (char *)NameBuff);
- }
- if (mustfree)
-*** ../vim-7.1.010/src/version.c Tue Jun 19 18:07:52 2007
---- src/version.c Tue Jun 19 20:29:44 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 11,
- /**/
-
---
- GALAHAD hurries to the door and pushes through it. As he leaves the room
- we CUT TO the reverse to show that he is now in a room full of bathing
- and romping GIRLIES, all innocent, wide-eyed and beautiful. They smile
- enchantingly at him as he tries to keep walking without being diverted by
- the lovely sights assaulting his eyeballs.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.012
-Problem: ":let &shiftwidth = 'asdf'" doesn't produce an error message.
-Solution: Check for a string argument. (Chris Lubinski)
-Files: src/option.c
-
-
-*** ../vim-7.1.011/src/option.c Sun May 6 15:37:32 2007
---- src/option.c Tue Jun 19 20:56:36 2007
-***************
-*** 8219,8224 ****
---- 8219,8243 ----
- varp = get_varp(&options[opt_idx]);
- if (varp != NULL) /* hidden option is not changed */
- {
-+ if (number == 0 && string != NULL)
-+ {
-+ int index;
-+
-+ /* Either we are given a string or we are setting option
-+ * to zero. */
-+ for (index = 0; string[index] == '0'; ++index)
-+ ;
-+ if (string[index] != NUL || index == 0)
-+ {
-+ /* There's another character after zeros or the string
-+ * is empty. In both cases, we are trying to set a
-+ * num option using a string. */
-+ EMSG3(_("E521: Number required: &%s = '%s'"),
-+ name, string);
-+ return; /* do nothing as we hit an error */
-+
-+ }
-+ }
- if (flags & P_NUM)
- (void)set_num_option(opt_idx, varp, number,
- NULL, 0, opt_flags);
-*** ../vim-7.1.011/src/version.c Tue Jun 19 20:30:46 2007
---- src/version.c Tue Jun 19 20:53:15 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 12,
- /**/
-
---
-Ten million Linux users can't be wrong!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.013
-Problem: ":syn include" only loads the first file, while it is documented
- as doing the equivalent of ":runtime!".
-Solution: Change the argument to source_runtime(). (James Vega)
-Files: src/syntax.c
-
-
-*** ../vim-7.1.012/src/syntax.c Thu May 10 20:54:33 2007
---- src/syntax.c Sun Jun 17 22:03:30 2007
-***************
-*** 4460,4467 ****
- current_syn_inc_tag = ++running_syn_inc_tag;
- prev_toplvl_grp = curbuf->b_syn_topgrp;
- curbuf->b_syn_topgrp = sgl_id;
-! if (source ? do_source(eap->arg, FALSE, FALSE) == FAIL
-! : source_runtime(eap->arg, DOSO_NONE) == FAIL)
- EMSG2(_(e_notopen), eap->arg);
- curbuf->b_syn_topgrp = prev_toplvl_grp;
- current_syn_inc_tag = prev_syn_inc_tag;
---- 4460,4467 ----
- current_syn_inc_tag = ++running_syn_inc_tag;
- prev_toplvl_grp = curbuf->b_syn_topgrp;
- curbuf->b_syn_topgrp = sgl_id;
-! if (source ? do_source(eap->arg, FALSE, DOSO_NONE) == FAIL
-! : source_runtime(eap->arg, TRUE) == FAIL)
- EMSG2(_(e_notopen), eap->arg);
- curbuf->b_syn_topgrp = prev_toplvl_grp;
- current_syn_inc_tag = prev_syn_inc_tag;
-*** ../vim-7.1.012/src/version.c Tue Jun 19 20:56:52 2007
---- src/version.c Thu Jun 28 11:58:25 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 13,
- /**/
-
---
-MORTICIAN: What?
-CUSTOMER: Nothing -- here's your nine pence.
-DEAD PERSON: I'm not dead!
-MORTICIAN: Here -- he says he's not dead!
-CUSTOMER: Yes, he is.
-DEAD PERSON: I'm not!
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.014
-Problem: Crash when doing C indenting. (Chris Monson)
-Solution: Obtain the current line again after invoking cin_islabel().
-Files: src/edit.c
-
-
-*** ../vim-7.1.013/src/edit.c Thu May 10 20:44:18 2007
---- src/edit.c Wed Jun 20 18:25:54 2007
-***************
-*** 7215,7220 ****
---- 7215,7222 ----
- p = ml_get_curline();
- if (cin_iscase(p) || cin_isscopedecl(p) || cin_islabel(30))
- return TRUE;
-+ /* Need to get the line again after cin_islabel(). */
-+ p = ml_get_curline();
- if (curwin->w_cursor.col > 2
- && p[curwin->w_cursor.col - 1] == ':'
- && p[curwin->w_cursor.col - 2] == ':')
-*** ../vim-7.1.013/src/version.c Thu Jun 28 11:59:13 2007
---- src/version.c Thu Jun 28 12:26:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 14,
- /**/
-
---
-Have you heard about the new Barbie doll? It's called Divorce
-Barbie. It comes with all of Ken's stuff.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.015
-Problem: MzScheme interface: current-library-collection-paths produces no
- list. Interface doesn't build on a Mac.
-Solution: Use a list instead of a pair. (Bernhard Fisseni) Use "-framework"
- argument for MZSCHEME_LIBS in configure.
-Files: src/configure.in, src/if_mzsch.c, src/auto/configure
-
-
-*** ../vim-7.1.014/src/configure.in Sat May 12 16:30:49 2007
---- src/configure.in Sun Jun 10 16:47:43 2007
-***************
-*** 423,429 ****
- fi
-
- if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
-! if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
- else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
---- 423,431 ----
- fi
-
- if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
-! if test "x$MACOSX" = "xyes"; then
-! MZSCHEME_LIBS="-framework PLT_MzScheme"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
- else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
-*** ../vim-7.1.014/src/if_mzsch.c Sat May 12 17:29:20 2007
---- src/if_mzsch.c Sun Jun 10 16:39:51 2007
-***************
-*** 773,780 ****
- #ifdef MZSCHEME_COLLECTS
- /* setup 'current-library-collection-paths' parameter */
- scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS,
-! scheme_make_pair(scheme_make_string(MZSCHEME_COLLECTS),
-! scheme_null));
- #endif
- #ifdef HAVE_SANDBOX
- /* setup sandbox guards */
---- 773,779 ----
- #ifdef MZSCHEME_COLLECTS
- /* setup 'current-library-collection-paths' parameter */
- scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS,
-! scheme_build_list(0, scheme_make_string(MZSCHEME_COLLECTS)));
- #endif
- #ifdef HAVE_SANDBOX
- /* setup sandbox guards */
-*** ../vim-7.1.014/src/auto/configure Sat May 12 16:23:27 2007
---- src/auto/configure Sun Jun 10 16:49:58 2007
-***************
-*** 3843,3849 ****
- fi
-
- if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
-! if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
- else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
---- 3843,3851 ----
- fi
-
- if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
-! if test "x$MACOSX" = "xyes"; then
-! MZSCHEME_LIBS="-framework PLT_MzScheme"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
- else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
-*** ../vim-7.1.014/src/version.c Thu Jun 28 12:44:56 2007
---- src/version.c Thu Jun 28 13:00:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 15,
- /**/
-
---
-You know you use Vim too much when you have this alias in your
-~/.bashrc file: alias :e=/bin/vim (Eljay Love-Jensen)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.016 (after patch 7.1.012)
-Problem: Error message about setting 'diff' to a string.
-Solution: Don't pass an empty string to set_option_value() when setting
- 'diff'.
-Files: src/quickfix.c, src/popupmnu.c
-
-
-*** ../vim-7.1.015/src/quickfix.c Sun Feb 4 02:58:00 2007
---- src/quickfix.c Thu Jun 28 18:56:16 2007
-***************
-*** 2331,2337 ****
- set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
- OPT_LOCAL);
- set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL);
-! set_option_value((char_u *)"diff", 0L, (char_u *)"", OPT_LOCAL);
- }
-
- /* Only set the height when still in the same tab page and there is no
---- 2331,2337 ----
- set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
- OPT_LOCAL);
- set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL);
-! set_option_value((char_u *)"diff", 0L, NULL, OPT_LOCAL);
- }
-
- /* Only set the height when still in the same tab page and there is no
-*** ../vim-7.1.015/src/popupmnu.c Tue Mar 27 12:42:05 2007
---- src/popupmnu.c Thu Jun 28 19:00:51 2007
-***************
-*** 466,472 ****
- set_option_value((char_u *)"bh", 0L,
- (char_u *)"wipe", OPT_LOCAL);
- set_option_value((char_u *)"diff", 0L,
-! (char_u *)"", OPT_LOCAL);
- }
- }
- if (res == OK)
---- 466,472 ----
- set_option_value((char_u *)"bh", 0L,
- (char_u *)"wipe", OPT_LOCAL);
- set_option_value((char_u *)"diff", 0L,
-! NULL, OPT_LOCAL);
- }
- }
- if (res == OK)
-*** ../vim-7.1.015/src/version.c Thu Jun 28 13:02:22 2007
---- src/version.c Thu Jun 28 21:20:20 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 16,
- /**/
-
---
-We do not stumble over mountains, but over molehills.
- Confucius
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.017
-Problem: ":confirm w" does give a prompt when 'readonly' is set, but not
- when the file permissions are read-only. (Michael Schaap)
-Solution: Provide a dialog in both situations. (Chris Lubinski)
-Files: src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro
-
-
-*** ../vim-7.1.016/src/ex_cmds.c Tue Jun 19 11:54:23 2007
---- src/ex_cmds.c Tue Jun 19 22:37:25 2007
-***************
-*** 2912,2933 ****
- }
-
- /*
-! * Check if a buffer is read-only. Ask for overruling in a dialog.
-! * Return TRUE and give an error message when the buffer is readonly.
- */
- static int
- check_readonly(forceit, buf)
- int *forceit;
- buf_T *buf;
- {
-! if (!*forceit && buf->b_p_ro)
- {
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
- {
- char_u buff[IOSIZE];
-
-! dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
- buf->b_fname);
-
- if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) == VIM_YES)
---- 2912,2946 ----
- }
-
- /*
-! * Check if a buffer is read-only (either 'readonly' option is set or file is
-! * read-only). Ask for overruling in a dialog. Return TRUE and give an error
-! * message when the buffer is readonly.
- */
- static int
- check_readonly(forceit, buf)
- int *forceit;
- buf_T *buf;
- {
-! struct stat st;
-!
-! /* Handle a file being readonly when the 'readonly' option is set or when
-! * the file exists and permissions are read-only.
-! * We will send 0777 to check_file_readonly(), as the "perm" variable is
-! * important for device checks but not here. */
-! if (!*forceit && (buf->b_p_ro
-! || (mch_stat((char *)buf->b_ffname, &st) >= 0
-! && check_file_readonly(buf->b_ffname, 0777))))
- {
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
- {
- char_u buff[IOSIZE];
-
-! if (buf->b_p_ro)
-! dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
-! buf->b_fname);
-! else
-! dialog_msg(buff, _("File permissions of \"%s\" are read-only.\nIt may still be possible to write it.\nDo you wish to try?"),
- buf->b_fname);
-
- if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) == VIM_YES)
-***************
-*** 2941,2949 ****
---- 2954,2967 ----
- }
- else
- #endif
-+ if (buf->b_p_ro)
- EMSG(_(e_readonly));
-+ else
-+ EMSG2(_("E505: \"%s\" is read-only (add ! to override)"),
-+ buf->b_fname);
- return TRUE;
- }
-+
- return FALSE;
- }
-
-*** ../vim-7.1.016/src/fileio.c Thu May 10 19:32:17 2007
---- src/fileio.c Thu Jun 28 21:54:18 2007
-***************
-*** 424,430 ****
- */
- if (!p_odev && mch_nodetype(fname) == NODE_WRITABLE)
- {
-! filemess(curbuf, fname, (char_u *)_("is a device (disabled with 'opendevice' option"), 0);
- msg_end();
- msg_scroll = msg_save;
- return FAIL;
---- 424,430 ----
- */
- if (!p_odev && mch_nodetype(fname) == NODE_WRITABLE)
- {
-! filemess(curbuf, fname, (char_u *)_("is a device (disabled with 'opendevice' option)"), 0);
- msg_end();
- msg_scroll = msg_save;
- return FAIL;
-***************
-*** 2734,2739 ****
---- 2734,2765 ----
- #endif
-
- /*
-+ * Return TRUE if a file appears to be read-only from the file permissions.
-+ */
-+ int
-+ check_file_readonly(fname, perm)
-+ char_u *fname; /* full path to file */
-+ int perm; /* known permissions on file */
-+ {
-+ #ifndef USE_MCH_ACCESS
-+ int fd = 0;
-+ #endif
-+
-+ return (
-+ #ifdef USE_MCH_ACCESS
-+ # ifdef UNIX
-+ (perm & 0222) == 0 ||
-+ # endif
-+ mch_access((char *)fname, W_OK)
-+ #else
-+ (fd = mch_open((char *)fname, O_RDWR | O_EXTRA, 0)) < 0
-+ ? TRUE : (close(fd), FALSE)
-+ #endif
-+ );
-+ }
-+
-+
-+ /*
- * buf_write() - write to file "fname" lines "start" through "end"
- *
- * We do our own buffering here because fwrite() is so slow.
-***************
-*** 3219,3235 ****
- * Check if the file is really writable (when renaming the file to
- * make a backup we won't discover it later).
- */
-! file_readonly = (
-! # ifdef USE_MCH_ACCESS
-! # ifdef UNIX
-! (perm & 0222) == 0 ||
-! # endif
-! mch_access((char *)fname, W_OK)
-! # else
-! (fd = mch_open((char *)fname, O_RDWR | O_EXTRA, 0)) < 0
-! ? TRUE : (close(fd), FALSE)
-! # endif
-! );
- if (!forceit && file_readonly)
- {
- if (vim_strchr(p_cpo, CPO_FWRITE) != NULL)
---- 3245,3252 ----
- * Check if the file is really writable (when renaming the file to
- * make a backup we won't discover it later).
- */
-! file_readonly = check_file_readonly(fname, (int)perm);
-!
- if (!forceit && file_readonly)
- {
- if (vim_strchr(p_cpo, CPO_FWRITE) != NULL)
-*** ../vim-7.1.016/src/proto/fileio.pro Sat May 5 19:59:00 2007
---- src/proto/fileio.pro Thu Jun 28 21:09:59 2007
-***************
-*** 2,7 ****
---- 2,8 ----
- void filemess __ARGS((buf_T *buf, char_u *name, char_u *s, int attr));
- int readfile __ARGS((char_u *fname, char_u *sfname, linenr_T from, linenr_T lines_to_skip, linenr_T lines_to_read, exarg_T *eap, int flags));
- int prep_exarg __ARGS((exarg_T *eap, buf_T *buf));
-+ int check_file_readonly __ARGS((char_u *fname, int perm));
- int buf_write __ARGS((buf_T *buf, char_u *fname, char_u *sfname, linenr_T start, linenr_T end, exarg_T *eap, int append, int forceit, int reset_changed, int filtering));
- void msg_add_fname __ARGS((buf_T *buf, char_u *fname));
- void msg_add_lines __ARGS((int insert_space, long lnum, long nchars));
-*** ../vim-7.1.016/src/version.c Thu Jun 28 21:23:52 2007
---- src/version.c Thu Jun 28 21:49:29 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 17,
- /**/
-
---
-CUSTOMER: Well, can you hang around a couple of minutes? He won't be
- long.
-MORTICIAN: Naaah, I got to go on to Robinson's -- they've lost nine today.
-CUSTOMER: Well, when is your next round?
-MORTICIAN: Thursday.
-DEAD PERSON: I think I'll go for a walk.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.018
-Problem: When 'virtualedit' is set a "p" of a block just past the end of
- the line inserts before the cursor. (Engelke)
-Solution: Check for the cursor being just after the line (Chris Lubinski)
-Files: src/ops.c
-
-
-*** ../vim-7.1.017/src/ops.c Thu May 10 20:34:55 2007
---- src/ops.c Tue Jun 19 22:40:45 2007
-***************
-*** 3404,3410 ****
-
- #ifdef FEAT_VIRTUALEDIT
- col += curwin->w_cursor.coladd;
-! if (ve_flags == VE_ALL && curwin->w_cursor.coladd > 0)
- {
- if (dir == FORWARD && c == NUL)
- ++col;
---- 3404,3412 ----
-
- #ifdef FEAT_VIRTUALEDIT
- col += curwin->w_cursor.coladd;
-! if (ve_flags == VE_ALL
-! && (curwin->w_cursor.coladd > 0
-! || endcol2 == curwin->w_cursor.col))
- {
- if (dir == FORWARD && c == NUL)
- ++col;
-*** ../vim-7.1.017/src/version.c Thu Jun 28 21:57:08 2007
---- src/version.c Thu Jun 28 22:12:49 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 18,
- /**/
-
---
- [clop clop]
-MORTICIAN: Who's that then?
-CUSTOMER: I don't know.
-MORTICIAN: Must be a king.
-CUSTOMER: Why?
-MORTICIAN: He hasn't got shit all over him.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.019
-Problem: ":py" asks for an argument, ":py asd" then gives the error that
- ":py" isn't implemented. Should already happen for ":py".
-Solution: Compare with ex_script_ni. (Chris Lubinski)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.018/src/ex_docmd.c Thu May 10 18:53:03 2007
---- src/ex_docmd.c Sat Jun 23 13:36:37 2007
-***************
-*** 2118,2124 ****
- #ifdef FEAT_USR_CMDS
- !USER_CMDIDX(ea.cmdidx) &&
- #endif
-! cmdnames[ea.cmdidx].cmd_func == ex_ni);
-
- #ifndef FEAT_EVAL
- /*
---- 2118,2125 ----
- #ifdef FEAT_USR_CMDS
- !USER_CMDIDX(ea.cmdidx) &&
- #endif
-! (cmdnames[ea.cmdidx].cmd_func == ex_ni
-! || cmdnames[ea.cmdidx].cmd_func == ex_script_ni));
-
- #ifndef FEAT_EVAL
- /*
-*** ../vim-7.1.018/src/version.c Thu Jun 28 22:14:28 2007
---- src/version.c Thu Jul 5 09:48:11 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 19,
- /**/
-
---
-MARTHA'S WAY: Don't throw out all that leftover wine. Freeze into ice cubes
- for future use in casseroles and sauces.
-MY WAY: What leftover wine?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.020
-Problem: Reading from uninitialized memory when using a dialog. (Dominique
- Pelle)
-Solution: In msg_show_console_dialog() append a NUL after every appended
- character.
-Files: src/message.c
-
-
-*** ../vim-7.1.019/src/message.c Thu May 10 18:49:39 2007
---- src/message.c Sun Jul 1 12:06:52 2007
-***************
-*** 3456,3466 ****
- /* advance to next hotkey and set default hotkey */
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! hotkp += (*mb_ptr2len)(hotkp);
- else
- #endif
- ++hotkp;
-! (void)copy_char(r + 1, hotkp, TRUE);
- if (dfltbutton)
- --dfltbutton;
-
---- 3456,3466 ----
- /* advance to next hotkey and set default hotkey */
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! hotkp += STRLEN(hotkp);
- else
- #endif
- ++hotkp;
-! hotkp[copy_char(r + 1, hotkp, TRUE)] = NUL;
- if (dfltbutton)
- --dfltbutton;
-
-***************
-*** 3493,3499 ****
- *msgp++ = (dfltbutton == 1) ? ']' : ')';
-
- /* redefine hotkey */
-! (void)copy_char(r, hotkp, TRUE);
- }
- }
- else
---- 3493,3499 ----
- *msgp++ = (dfltbutton == 1) ? ']' : ')';
-
- /* redefine hotkey */
-! hotkp[copy_char(r, hotkp, TRUE)] = NUL;
- }
- }
- else
-***************
-*** 3519,3526 ****
- *msgp++ = ':';
- *msgp++ = ' ';
- *msgp = NUL;
-- mb_ptr_adv(hotkp);
-- *hotkp = NUL;
- }
- else
- {
---- 3519,3524 ----
-***************
-*** 3555,3562 ****
- msgp = confirm_msg + 1 + STRLEN(message);
- hotkp = hotk;
-
-! /* define first default hotkey */
-! (void)copy_char(buttons, hotkp, TRUE);
-
- /* Remember where the choices start, displaying starts here when
- * "hotkp" typed at the more prompt. */
---- 3553,3561 ----
- msgp = confirm_msg + 1 + STRLEN(message);
- hotkp = hotk;
-
-! /* Define first default hotkey. Keep the hotkey string NUL
-! * terminated to avoid reading past the end. */
-! hotkp[copy_char(buttons, hotkp, TRUE)] = NUL;
-
- /* Remember where the choices start, displaying starts here when
- * "hotkp" typed at the more prompt. */
-*** ../vim-7.1.019/src/version.c Thu Jul 5 09:53:20 2007
---- src/version.c Thu Jul 5 10:09:34 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 20,
- /**/
-
---
-BLACK KNIGHT: Come on you pansy!
- [hah] [parry thrust]
- [ARTHUR chops the BLACK KNIGHT's right arm off]
-ARTHUR: Victory is mine! [kneeling]
- We thank thee Lord, that in thy merc-
- [Black Knight kicks Arthur in the head while he is praying]
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.021 (after 7.1.015)
-Problem: Mzscheme interface doesn't compile on Win32.
-Solution: Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev)
-Files: src/if_mzsch.c
-
-
-*** ../vim-7.1.020/src/if_mzsch.c Thu Jun 28 13:02:22 2007
---- src/if_mzsch.c Sun Jul 1 18:44:49 2007
-***************
-*** 308,313 ****
---- 308,315 ----
- static Scheme_Config *(*dll_scheme_current_config)(void);
- static Scheme_Object *(*dll_scheme_char_string_to_byte_string)
- (Scheme_Object *s);
-+ static Scheme_Object *(*dll_scheme_char_string_to_path)
-+ (Scheme_Object *s);
- # endif
-
- /* arrays are imported directly */
-***************
-*** 398,403 ****
---- 400,407 ----
- # define scheme_current_config dll_scheme_current_config
- # define scheme_char_string_to_byte_string \
- dll_scheme_char_string_to_byte_string
-+ # define scheme_char_string_to_path \
-+ dll_scheme_char_string_to_path
- # endif
-
- typedef struct
-***************
-*** 498,503 ****
---- 502,509 ----
- {"scheme_current_config", (void **)&dll_scheme_current_config},
- {"scheme_char_string_to_byte_string",
- (void **)&dll_scheme_char_string_to_byte_string},
-+ {"scheme_char_string_to_path",
-+ (void **)&dll_scheme_char_string_to_path},
- # endif
- {NULL, NULL}};
-
-***************
-*** 773,779 ****
- #ifdef MZSCHEME_COLLECTS
- /* setup 'current-library-collection-paths' parameter */
- scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS,
-! scheme_build_list(0, scheme_make_string(MZSCHEME_COLLECTS)));
- #endif
- #ifdef HAVE_SANDBOX
- /* setup sandbox guards */
---- 779,793 ----
- #ifdef MZSCHEME_COLLECTS
- /* setup 'current-library-collection-paths' parameter */
- scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS,
-! scheme_make_pair(
-! # if MZSCHEME_VERSION_MAJOR >= 299
-! scheme_char_string_to_path(
-! scheme_byte_string_to_char_string(
-! scheme_make_byte_string(MZSCHEME_COLLECTS))),
-! # else
-! scheme_make_string(MZSCHEME_COLLECTS),
-! # endif
-! scheme_null));
- #endif
- #ifdef HAVE_SANDBOX
- /* setup sandbox guards */
-*** ../vim-7.1.020/src/version.c Thu Jul 5 10:10:29 2007
---- src/version.c Fri Jul 6 19:41:04 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 21,
- /**/
-
---
-Advice to worms: Sleep late.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.022
-Problem: When setting 'keymap' twice the b:keymap_name variable isn't set.
- (Milan Berta)
-Solution: Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft)
-Files: src/digraph.c
-
-
-*** ../vim-7.1.021/src/digraph.c Wed May 3 00:07:11 2006
---- src/digraph.c Mon Jul 2 21:24:30 2007
-***************
-*** 2349,2356 ****
-
- if (*curbuf->b_p_keymap == NUL)
- {
-! /* Stop any active keymap and clear the table. */
- keymap_unload();
- }
- else
- {
---- 2349,2358 ----
-
- if (*curbuf->b_p_keymap == NUL)
- {
-! /* Stop any active keymap and clear the table. Also remove
-! * b:keymap_unload, as no keymap is active now. */
- keymap_unload();
-+ do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
- }
- else
- {
-***************
-*** 2500,2506 ****
-
- ga_clear(&curbuf->b_kmap_ga);
- curbuf->b_kmap_state &= ~KEYMAP_LOADED;
-- do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
- #ifdef FEAT_WINDOWS
- status_redraw_curbuf();
- #endif
---- 2502,2507 ----
-*** ../vim-7.1.021/src/version.c Fri Jul 6 19:42:09 2007
---- src/version.c Sat Jul 7 13:56:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 22,
- /**/
-
---
-If your life is a hard drive,
-Christ can be your backup.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.023
-Problem: "dw" in a line with one character deletes the line. Vi and nvi
- don't do this. (Kjell Arne Rekaa)
-Solution: Check for one-character words especially.
-Files: src/search.c
-
-
-*** ../vim-7.1.022/src/search.c Tue Jun 19 12:58:55 2007
---- src/search.c Thu Jul 5 21:18:55 2007
-***************
-*** 2795,2801 ****
- i = inc_cursor();
- if (i == -1 || (i >= 1 && last_line)) /* started at last char in file */
- return FAIL;
-! if (i == 1 && eol && count == 0) /* started at last char in line */
- return OK;
-
- /*
---- 2802,2808 ----
- i = inc_cursor();
- if (i == -1 || (i >= 1 && last_line)) /* started at last char in file */
- return FAIL;
-! if (i >= 1 && eol && count == 0) /* started at last char in line */
- return OK;
-
- /*
-*** ../vim-7.1.022/src/version.c Sat Jul 7 13:57:39 2007
---- src/version.c Tue Jul 10 12:35:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 23,
- /**/
-
---
-BRIDGEKEEPER: What is your favorite editor?
-GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm!
- "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.024
-Problem: Using a pointer that has become invalid. (Chris Monson)
-Solution: Obtain the line pointer again after we looked at another line.
-Files: src/search.c
-
-
-*** ../vim-7.1.023/src/search.c Tue Jul 10 12:36:51 2007
---- src/search.c Thu Jul 5 21:18:55 2007
-***************
-*** 2124,2129 ****
---- 2128,2136 ----
- else if (!backwards)
- inquote = TRUE;
- }
-+
-+ /* ml_get() only keeps one line, need to get linep again */
-+ linep = ml_get(pos.lnum);
- }
- }
- }
-*** ../vim-7.1.023/src/version.c Tue Jul 10 12:36:51 2007
---- src/version.c Tue Jul 10 13:06:02 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 24,
- /**/
-
---
-Q: Why does /dev/null accept only integers?
-A: You can't sink a float.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.025
-Problem: search() and searchpos() don't use match under cursor at start of
- line when using 'bc' flags. (Viktor Kojouharov)
-Solution: Don't go to the previous line when the 'c' flag is present.
- Also fix that "j" doesn't move the cursor to the right column.
-Files: src/eval.c, src/search.c
-
-
-*** ../vim-7.1.024/src/eval.c Tue Jun 19 17:23:46 2007
---- src/eval.c Thu Jul 5 21:16:31 2007
-***************
-*** 13925,13930 ****
---- 13925,13932 ----
- /* If 'n' flag is used: restore cursor position. */
- if (flags & SP_NOMOVE)
- curwin->w_cursor = save_cursor;
-+ else
-+ curwin->w_set_curswant = TRUE;
- theend:
- p_ws = save_p_ws;
-
-*** ../vim-7.1.024/src/search.c Tue Jul 10 13:07:08 2007
---- src/search.c Thu Jul 5 21:18:55 2007
-***************
-*** 573,580 ****
- /*
- * Start searching in current line, unless searching backwards and
- * we're in column 0.
- */
-! if (dir == BACKWARD && start_pos.col == 0)
- {
- lnum = pos->lnum - 1;
- at_first_line = FALSE;
---- 573,584 ----
- /*
- * Start searching in current line, unless searching backwards and
- * we're in column 0.
-+ * If we are searching backwards, in column 0, and not including the
-+ * current position, gain some efficiency by skipping back a line.
-+ * Otherwise begin the search in the current line.
- */
-! if (dir == BACKWARD && start_pos.col == 0
-! && (options & SEARCH_START) == 0)
- {
- lnum = pos->lnum - 1;
- at_first_line = FALSE;
-*** ../vim-7.1.024/src/version.c Tue Jul 10 13:07:08 2007
---- src/version.c Tue Jul 10 13:26:13 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 25,
- /**/
-
---
-SIGFUN -- signature too funny (core dumped)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.026
-Problem: "[p" doesn't work in Visual mode. (David Brown)
-Solution: Use checkclearop() instead of checkclearopq().
-Files: src/normal.c
-
-
-*** ../vim-7.1.025/src/normal.c Thu May 10 18:45:26 2007
---- src/normal.c Wed Jul 4 21:16:36 2007
-***************
-*** 6379,6385 ****
- */
- else if (cap->nchar == 'p' || cap->nchar == 'P')
- {
-! if (!checkclearopq(cap->oap))
- {
- prep_redo_cmd(cap);
- do_put(cap->oap->regname,
---- 6379,6385 ----
- */
- else if (cap->nchar == 'p' || cap->nchar == 'P')
- {
-! if (!checkclearop(cap->oap))
- {
- prep_redo_cmd(cap);
- do_put(cap->oap->regname,
-*** ../vim-7.1.025/src/version.c Tue Jul 10 13:27:46 2007
---- src/version.c Tue Jul 10 14:01:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 26,
- /**/
-
---
-BRIDGEKEEPER: What is the air-speed velocity of an unladen swallow?
-ARTHUR: What do you mean? An African or European swallow?
-BRIDGEKEEPER: Er ... I don't know that ... Aaaaarrrrrrggghhh!
- BRIDGEKEEPER is cast into the gorge.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.027
-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.1.027
-Problem: On Sun systems opening /dev/fd/N doesn't work, and they are used
- by process substitutions.
-Solution: Allow opening specific character special files for Sun systems.
- (Gary Johnson)
-Files: src/fileio.c, src/os_unix.h
-
-
-*** ../vim-7.1.026/src/fileio.c Thu Jun 28 21:57:08 2007
---- src/fileio.c Mon Jul 9 11:19:50 2007
-***************
-*** 44,49 ****
---- 44,53 ----
- /* Is there any system that doesn't have access()? */
- #define USE_MCH_ACCESS
-
-+ #if defined(sun) && defined(S_ISCHR)
-+ # define OPEN_CHR_FILES
-+ static int is_dev_fd_file(char_u *fname);
-+ #endif
- #ifdef FEAT_MBYTE
- static char_u *next_fenc __ARGS((char_u **pp));
- # ifdef FEAT_EVAL
-***************
-*** 406,411 ****
---- 410,419 ----
- # ifdef S_ISSOCK
- && !S_ISSOCK(perm) /* ... or socket */
- # endif
-+ # ifdef OPEN_CHR_FILES
-+ && !(S_ISCHR(perm) && is_dev_fd_file(fname))
-+ /* ... or a character special file named /dev/fd/<n> */
-+ # endif
- )
- {
- if (S_ISDIR(perm))
-***************
-*** 2265,2270 ****
---- 2273,2285 ----
- }
- # endif
- # endif
-+ # ifdef OPEN_CHR_FILES
-+ if (S_ISCHR(perm)) /* or character special */
-+ {
-+ STRCAT(IObuff, _("[character special]"));
-+ c = TRUE;
-+ }
-+ # endif
- #endif
- if (curbuf->b_p_ro)
- {
-***************
-*** 2463,2468 ****
---- 2478,2502 ----
- return FAIL;
- return OK;
- }
-+
-+ #ifdef OPEN_CHR_FILES
-+ /*
-+ * Returns TRUE if the file name argument is of the form "/dev/fd/\d\+",
-+ * which is the name of files used for process substitution output by
-+ * some shells on some operating systems, e.g., bash on SunOS.
-+ * Do not accept "/dev/fd/[012]", opening these may hang Vim.
-+ */
-+ static int
-+ is_dev_fd_file(fname)
-+ char_u *fname;
-+ {
-+ return (STRNCMP(fname, "/dev/fd/", 8) == 0
-+ && VIM_ISDIGIT(fname[8])
-+ && *skipdigits(fname + 9) == NUL
-+ && (fname[9] != NUL
-+ || (fname[8] != '0' && fname[8] != '1' && fname[8] != '2')));
-+ }
-+ #endif
-
- #ifdef FEAT_MBYTE
-
-*** ../vim-7.1.026/src/os_unix.h Thu May 10 19:43:10 2007
---- src/os_unix.h Sat Jul 7 13:08:56 2007
-***************
-*** 508,513 ****
---- 508,516 ----
- #if !defined(S_ISFIFO) && defined(S_IFIFO)
- # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
- #endif
-+ #if !defined(S_ISCHR) && defined(S_IFCHR)
-+ # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
-+ #endif
-
- /* Note: Some systems need both string.h and strings.h (Savage). However,
- * some systems can't handle both, only use string.h in that case. */
-*** ../vim-7.1.026/src/version.c Tue Jul 10 14:02:51 2007
---- src/version.c Tue Jul 10 17:00:43 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 27,
- /**/
-
---
-Every exit is an entrance into something else.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.028
-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.1.028
-Problem: Can't use last search pattern for ":sort". (Brian McKee)
-Solution: When the pattern is emtpy use the last search pattern. (Martin
- Toft)
-Files: runtime/doc/change.txt, src/ex_cmds.c
-
-
-*** ../vim-7.1.027/runtime/doc/change.txt Sat May 12 16:10:12 2007
---- runtime/doc/change.txt Tue Jul 10 11:30:56 2007
-***************
-*** 1571,1576 ****
---- 1571,1580 ----
- in their original order, right before the sorted
- lines.
-
-+ If {pattern} is empty (e.g. // is specified), the
-+ last search pattern is used. This allows trying out
-+ a pattern first.
-+
- Note that using ":sort" with ":global" doesn't sort the matching lines, it's
- quite useless.
-
-*** ../vim-7.1.027/src/ex_cmds.c Thu Jun 28 21:57:08 2007
---- src/ex_cmds.c Tue Jul 10 17:25:10 2007
-***************
-*** 408,414 ****
- goto sortend;
- }
- *s = NUL;
-! regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC);
- if (regmatch.regprog == NULL)
- goto sortend;
- p = s; /* continue after the regexp */
---- 408,418 ----
- goto sortend;
- }
- *s = NUL;
-! /* Use last search pattern if sort pattern is empty. */
-! if (s == p + 1 && last_search_pat() != NULL)
-! regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
-! else
-! regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC);
- if (regmatch.regprog == NULL)
- goto sortend;
- p = s; /* continue after the regexp */
-*** ../vim-7.1.027/src/version.c Tue Jul 10 17:09:51 2007
---- src/version.c Tue Jul 10 17:20:01 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 28,
- /**/
-
---
-Every person is responsible for the choices he makes.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.029 (after 7.1.019)
-Problem: Can't compile when all interfaces are used. (Taylor Venable)
-Solution: Only check for ex_script_ni when it's defined.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.028/src/ex_docmd.c Thu Jul 5 09:53:20 2007
---- src/ex_docmd.c Sun Jul 15 17:20:09 2007
-***************
-*** 133,138 ****
---- 133,139 ----
- static void get_flags __ARGS((exarg_T *eap));
- #if !defined(FEAT_PERL) || !defined(FEAT_PYTHON) || !defined(FEAT_TCL) \
- || !defined(FEAT_RUBY) || !defined(FEAT_MZSCHEME)
-+ # define HAVE_EX_SCRIPT_NI
- static void ex_script_ni __ARGS((exarg_T *eap));
- #endif
- static char_u *invalid_range __ARGS((exarg_T *eap));
-***************
-*** 2119,2125 ****
- !USER_CMDIDX(ea.cmdidx) &&
- #endif
- (cmdnames[ea.cmdidx].cmd_func == ex_ni
-! || cmdnames[ea.cmdidx].cmd_func == ex_script_ni));
-
- #ifndef FEAT_EVAL
- /*
---- 2120,2129 ----
- !USER_CMDIDX(ea.cmdidx) &&
- #endif
- (cmdnames[ea.cmdidx].cmd_func == ex_ni
-! #ifdef HAVE_EX_SCRIPT_NI
-! || cmdnames[ea.cmdidx].cmd_func == ex_script_ni
-! #endif
-! ));
-
- #ifndef FEAT_EVAL
- /*
-***************
-*** 3998,4005 ****
- eap->errmsg = (char_u *)N_("E319: Sorry, the command is not available in this version");
- }
-
-! #if !defined(FEAT_PERL) || !defined(FEAT_PYTHON) || !defined(FEAT_TCL) \
-! || !defined(FEAT_RUBY) || !defined(FEAT_MZSCHEME)
- /*
- * Function called for script command which is Not Implemented. NI!
- * Skips over ":perl <<EOF" constructs.
---- 3999,4005 ----
- eap->errmsg = (char_u *)N_("E319: Sorry, the command is not available in this version");
- }
-
-! #ifdef HAVE_EX_SCRIPT_NI
- /*
- * Function called for script command which is Not Implemented. NI!
- * Skips over ":perl <<EOF" constructs.
-*** ../vim-7.1.028/src/version.c Tue Jul 10 17:25:20 2007
---- src/version.c Mon Jul 16 20:37:48 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 29,
- /**/
-
---
-I used to wonder about the meaning of life. But I looked it
-up in the dictionary under "L" and there it was - the meaning
-of life. It was less than I expected. - Dogbert
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.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.1.030
-Problem: The "vimtutor" shell script checks for "vim6" but not for "vim7".
- (Christian Robinson)
-Solution: Check for more versions, but prefer using "vim".
-Files: src/vimtutor
-
-
-*** ../vim-7.1.029/src/vimtutor Sun Jun 13 20:37:33 2004
---- src/vimtutor Sun Jul 8 17:16:29 2007
-***************
-*** 39,56 ****
- # remove the copy of the tutor on exit
- trap "rm -rf $TODELETE" 0 1 2 3 9 11 13 15
-
-! # Vim could be called "vim" or "vi". Also check for "vim6", for people who
-! # have Vim 5.x installed as "vim" and Vim 6.0 as "vim6".
-! testvim=`which vim6 2>/dev/null`
-! if test -f "$testvim"; then
-! VIM=vim6
-! else
-! testvim=`which vim`
- if test -f "$testvim"; then
-! VIM=vim
-! else
-! VIM=vi
- fi
- fi
-
- # Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
---- 39,60 ----
- # remove the copy of the tutor on exit
- trap "rm -rf $TODELETE" 0 1 2 3 9 11 13 15
-
-! # Vim could be called "vim" or "vi". Also check for "vimN", for people who
-! # have Vim installed with its version number.
-! # We anticipate up to a future Vim 8 version :-).
-! seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
-! for i in $seq; do
-! testvim=`which $i 2>/dev/null`
- if test -f "$testvim"; then
-! VIM=$i
-! break
- fi
-+ done
-+
-+ # When no Vim version was found fall back to "vim", you'll get an error message
-+ # below.
-+ if test -z "$VIM"; then
-+ VIM=vim
- fi
-
- # Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
-*** ../vim-7.1.029/src/version.c Mon Jul 16 20:38:56 2007
---- src/version.c Tue Jul 17 14:30:51 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 30,
- /**/
-
---
-BLACK KNIGHT: I'm invincible!
-ARTHUR: You're a looney.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.031
-Problem: virtcol([123, '$']) doesn't work. (Michael Schaap)
-Solution: When '$' is used for the column number get the last column.
-Files: runtime/doc/eval.txt, src/eval.c
-
-
-*** ../vim-7.1.030/runtime/doc/eval.txt Tue Jun 19 17:23:46 2007
---- runtime/doc/eval.txt Wed Jul 11 21:21:28 2007
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2007 Jun 09
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2007 Jul 11
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 2020,2025 ****
---- 2020,2029 ----
- number of characters in the cursor line plus one)
- 'x position of mark x (if the mark is not set, 0 is
- returned)
-+ Additionally {expr} can be [lnum, col]: a |List| with the line
-+ and column number. Most useful when the column is "$", to get
-+ the las column of a specific line. When "lnum" or "col" is
-+ out of range then col() returns zero.
- To get the line number use |line()|. To get both use
- |getpos()|.
- For the screen column position use |virtcol()|.
-***************
-*** 5024,5037 ****
- position, the returned Number will be the column at the end of
- the <Tab>. For example, for a <Tab> in column 1, with 'ts'
- set to 8, it returns 8.
-! For the use of {expr} see |col()|. Additionally you can use
-! [lnum, col]: a |List| with the line and column number. When
-! "lnum" or "col" is out of range then virtcol() returns zero.
-! When 'virtualedit' is used it can be [lnum, col, off], where
- "off" is the offset in screen columns from the start of the
- character. E.g., a position within a <Tab> or after the last
- character.
-- For the byte position use |col()|.
- When Virtual editing is active in the current mode, a position
- beyond the end of the line can be returned. |'virtualedit'|
- The accepted positions are:
---- 5029,5040 ----
- position, the returned Number will be the column at the end of
- the <Tab>. For example, for a <Tab> in column 1, with 'ts'
- set to 8, it returns 8.
-! For the byte position use |col()|.
-! For the use of {expr} see |col()|.
-! When 'virtualedit' is used {expr} can be [lnum, col, off], where
- "off" is the offset in screen columns from the start of the
- character. E.g., a position within a <Tab> or after the last
- character.
- When Virtual editing is active in the current mode, a position
- beyond the end of the line can be returned. |'virtualedit'|
- The accepted positions are:
-*** ../vim-7.1.030/src/eval.c Tue Jul 10 13:27:46 2007
---- src/eval.c Wed Jul 11 19:50:27 2007
-***************
-*** 672,678 ****
- static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv));
-
- static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump));
-! static pos_T *var2fpos __ARGS((typval_T *varp, int lnum, int *fnum));
- static int get_env_len __ARGS((char_u **arg));
- static int get_id_len __ARGS((char_u **arg));
- static int get_name_len __ARGS((char_u **arg, char_u **alias, int evaluate, int verbose));
---- 672,678 ----
- static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv));
-
- static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump));
-! static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum));
- static int get_env_len __ARGS((char_u **arg));
- static int get_id_len __ARGS((char_u **arg));
- static int get_name_len __ARGS((char_u **arg, char_u **alias, int evaluate, int verbose));
-***************
-*** 16505,16513 ****
- * Returns NULL when there is an error.
- */
- static pos_T *
-! var2fpos(varp, lnum, fnum)
- typval_T *varp;
-! int lnum; /* TRUE when $ is last line */
- int *fnum; /* set to fnum for '0, 'A, etc. */
- {
- char_u *name;
---- 16508,16516 ----
- * Returns NULL when there is an error.
- */
- static pos_T *
-! var2fpos(varp, dollar_lnum, fnum)
- typval_T *varp;
-! int dollar_lnum; /* TRUE when $ is last line */
- int *fnum; /* set to fnum for '0, 'A, etc. */
- {
- char_u *name;
-***************
-*** 16520,16525 ****
---- 16523,16529 ----
- list_T *l;
- int len;
- int error = FALSE;
-+ listitem_T *li;
-
- l = varp->vval.v_list;
- if (l == NULL)
-***************
-*** 16535,16540 ****
---- 16539,16552 ----
- if (error)
- return NULL;
- len = (long)STRLEN(ml_get(pos.lnum));
-+
-+ /* We accept "$" for the column number: last column. */
-+ li = list_find(l, 1L);
-+ if (li != NULL && li->li_tv.v_type == VAR_STRING
-+ && li->li_tv.vval.v_string != NULL
-+ && STRCMP(li->li_tv.vval.v_string, "$") == 0)
-+ pos.col = len + 1;
-+
- /* Accept a position up to the NUL after the line. */
- if (pos.col == 0 || (int)pos.col > len + 1)
- return NULL; /* invalid column number */
-***************
-*** 16567,16573 ****
- pos.coladd = 0;
- #endif
-
-! if (name[0] == 'w' && lnum)
- {
- pos.col = 0;
- if (name[1] == '0') /* "w0": first visible line */
---- 16579,16585 ----
- pos.coladd = 0;
- #endif
-
-! if (name[0] == 'w' && dollar_lnum)
- {
- pos.col = 0;
- if (name[1] == '0') /* "w0": first visible line */
-***************
-*** 16585,16591 ****
- }
- else if (name[0] == '$') /* last column or line */
- {
-! if (lnum)
- {
- pos.lnum = curbuf->b_ml.ml_line_count;
- pos.col = 0;
---- 16597,16603 ----
- }
- else if (name[0] == '$') /* last column or line */
- {
-! if (dollar_lnum)
- {
- pos.lnum = curbuf->b_ml.ml_line_count;
- pos.col = 0;
-*** ../vim-7.1.030/src/version.c Tue Jul 17 14:32:07 2007
---- src/version.c Tue Jul 17 16:24:54 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 31,
- /**/
-
---
-CRONE: Who sent you?
-ARTHUR: The Knights Who Say GNU!
-CRONE: Aaaagh! (she looks around in rear) No! We have no licenses here.
- "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.032
-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.1.032
-Problem: Potential crash when editing a command line. (Chris Monson)
-Solution: Check the position to avoid access before the start of an array.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.031/src/ex_getln.c Thu May 10 20:22:29 2007
---- src/ex_getln.c Tue Jul 17 18:05:49 2007
-***************
-*** 484,490 ****
- if (xpc.xp_context == EXPAND_MENUNAMES && p_wmnu)
- {
- /* Hitting <Down> after "emenu Name.": complete submenu */
-! if (ccline.cmdbuff[ccline.cmdpos - 1] == '.' && c == K_DOWN)
- c = p_wc;
- else if (c == K_UP)
- {
---- 486,493 ----
- if (xpc.xp_context == EXPAND_MENUNAMES && p_wmnu)
- {
- /* Hitting <Down> after "emenu Name.": complete submenu */
-! if (c == K_DOWN && ccline.cmdpos > 0
-! && ccline.cmdbuff[ccline.cmdpos - 1] == '.')
- c = p_wc;
- else if (c == K_UP)
- {
-***************
-*** 533,541 ****
- upseg[3] = PATHSEP;
- upseg[4] = NUL;
-
-! if (ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP
-! && c == K_DOWN
-! && (ccline.cmdbuff[ccline.cmdpos - 2] != '.'
- || ccline.cmdbuff[ccline.cmdpos - 3] != '.'))
- {
- /* go down a directory */
---- 536,546 ----
- upseg[3] = PATHSEP;
- upseg[4] = NUL;
-
-! if (c == K_DOWN
-! && ccline.cmdpos > 0
-! && ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP
-! && (ccline.cmdpos < 3
-! || ccline.cmdbuff[ccline.cmdpos - 2] != '.'
- || ccline.cmdbuff[ccline.cmdpos - 3] != '.'))
- {
- /* go down a directory */
-***************
-*** 730,737 ****
- /* In Ex mode a backslash escapes a newline. */
- if (exmode_active
- && c != ESC
-- && ccline.cmdpos > 0
- && ccline.cmdpos == ccline.cmdlen
- && ccline.cmdbuff[ccline.cmdpos - 1] == '\\')
- {
- if (c == K_KENTER)
---- 735,742 ----
- /* In Ex mode a backslash escapes a newline. */
- if (exmode_active
- && c != ESC
- && ccline.cmdpos == ccline.cmdlen
-+ && ccline.cmdpos > 0
- && ccline.cmdbuff[ccline.cmdpos - 1] == '\\')
- {
- if (c == K_KENTER)
-*** ../vim-7.1.031/src/version.c Tue Jul 17 16:31:15 2007
---- src/version.c Tue Jul 17 18:10:37 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 32,
- /**/
-
---
-ALL: A witch! A witch!
-WITCH: It's a fair cop.
-ALL: Burn her! Burn her! Let's make her into a ladder.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.033
-Problem: A buffer is marked modified when it was first deleted and then
- added again using a ":next" command. (John Mullin)
-Solution: When checking if a buffer is modified use the BF_NEVERLOADED flag.
-Files: src/option.c
-
-
-*** ../vim-7.1.032/src/option.c Tue Jun 19 20:56:52 2007
---- src/option.c Sun Jul 22 16:42:47 2007
-***************
-*** 10624,10629 ****
---- 10624,10632 ----
- file_ff_differs(buf)
- buf_T *buf;
- {
-+ /* In a buffer that was never loaded the options are not valid. */
-+ if (buf->b_flags & BF_NEVERLOADED)
-+ return FALSE;
- if ((buf->b_flags & BF_NEW)
- && buf->b_ml.ml_line_count == 1
- && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
-*** ../vim-7.1.032/src/version.c Tue Jul 17 18:14:14 2007
---- src/version.c Mon Jul 23 09:45:44 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 33,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-8. Don't use any punctuation marks.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.034
-Problem: Win64: A few compiler warnings. Problems with optimizer.
-Solution: Use int instead of size_t. Disable the optimizer in one function.
- (George V. Reilly)
-Files: src/eval.c, src/spell.c
-
-
-*** ../vim-7.1.033/src/eval.c Tue Jul 17 16:31:15 2007
---- src/eval.c Wed Jul 11 19:50:27 2007
-***************
-*** 992,1011 ****
- char_u *value;
- int value_len;
- {
-! size_t len;
-
- if (redir_lval == NULL)
- return;
-
- if (value_len == -1)
-! len = STRLEN(value); /* Append the entire string */
- else
-! len = value_len; /* Append only "value_len" characters */
-
-! if (ga_grow(&redir_ga, (int)len) == OK)
- {
- mch_memmove((char *)redir_ga.ga_data + redir_ga.ga_len, value, len);
-! redir_ga.ga_len += (int)len;
- }
- else
- var_redir_stop();
---- 992,1011 ----
- char_u *value;
- int value_len;
- {
-! int len;
-
- if (redir_lval == NULL)
- return;
-
- if (value_len == -1)
-! len = (int)STRLEN(value); /* Append the entire string */
- else
-! len = value_len; /* Append only "value_len" characters */
-
-! if (ga_grow(&redir_ga, len) == OK)
- {
- mch_memmove((char *)redir_ga.ga_data + redir_ga.ga_len, value, len);
-! redir_ga.ga_len += len;
- }
- else
- var_redir_stop();
-*** ../vim-7.1.033/src/spell.c Thu May 10 18:45:53 2007
---- src/spell.c Sat Jul 14 17:17:52 2007
-***************
-*** 7829,7835 ****
- # if (_MSC_VER <= 1200)
- /* This line is required for VC6 without the service pack. Also see the
- * matching #pragma below. */
-! /* # pragma optimize("", off) */
- # endif
- #endif
-
---- 7829,7835 ----
- # if (_MSC_VER <= 1200)
- /* This line is required for VC6 without the service pack. Also see the
- * matching #pragma below. */
-! # pragma optimize("", off)
- # endif
- #endif
-
-***************
-*** 7859,7865 ****
-
- #ifdef _MSC_VER
- # if (_MSC_VER <= 1200)
-! /* # pragma optimize("", on) */
- # endif
- #endif
-
---- 7859,7865 ----
-
- #ifdef _MSC_VER
- # if (_MSC_VER <= 1200)
-! # pragma optimize("", on)
- # endif
- #endif
-
-*** ../vim-7.1.033/src/version.c Tue Jul 24 09:50:22 2007
---- src/version.c Tue Jul 24 09:47:17 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 34,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-17. When the money comes out the ATM, scream "I won!, I won! 3rd
- time this week!!!!!"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.035
-Problem: After ":s/./&/#" all listed lines have a line number. (Yakov
- Lerner)
-Solution: Reset the line number flag when not using the "&" flag.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.034/src/ex_cmds.c Tue Jul 10 17:25:20 2007
---- src/ex_cmds.c Sat Jul 14 14:39:38 2007
-***************
-*** 4316,4321 ****
---- 4316,4322 ----
- do_error = TRUE;
- do_print = FALSE;
- do_count = FALSE;
-+ do_number = FALSE;
- do_ic = 0;
- }
- while (*cmd)
-*** ../vim-7.1.034/src/version.c Tue Jul 24 10:44:10 2007
---- src/version.c Tue Jul 24 11:15:09 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 35,
- /**/
-
---
-The startling truth finally became apparent, and it was this: Numbers
-written on restaurant checks within the confines of restaurants do not follow
-the same mathematical laws as numbers written on any other pieces of paper in
-any other parts of the Universe. This single statement took the scientific
-world by storm. So many mathematical conferences got held in such good
-restaurants that many of the finest minds of a generation died of obesity and
-heart failure, and the science of mathematics was put back by years.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.036
-Problem: Completing ":echohl" argument should include "None". (Ori
- Avtalion) ":match" should have "none" too.
-Solution: Add flags to use expand_highlight(). Also fix that when disabling
- FEAT_CMDL_COMPL compilation fails. (Chris Lubinski)
-Files: src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro
- src/syntax.c
-
-
-*** ../vim-7.1.035/src/eval.c Tue Jul 24 10:44:10 2007
---- src/eval.c Wed Jul 11 19:50:27 2007
-***************
-*** 1411,1417 ****
- }
-
-
-! #if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO)
- /*
- * Call some vimL function and return the result in "*rettv".
- * Uses argv[argc] for the function arguments.
---- 1411,1418 ----
- }
-
-
-! #if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) \
-! || defined(FEAT_COMPL_FUNC) || defined(PROTO)
- /*
- * Call some vimL function and return the result in "*rettv".
- * Uses argv[argc] for the function arguments.
-***************
-*** 1484,1489 ****
---- 1485,1491 ----
- return ret;
- }
-
-+ # if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO)
- /*
- * Call vimL function "func" and return the result as a string.
- * Returns NULL when calling the function fails.
-***************
-*** 1506,1513 ****
- clear_tv(&rettv);
- return retval;
- }
-
-! #if defined(FEAT_COMPL_FUNC) || defined(PROTO)
- /*
- * Call vimL function "func" and return the result as a number.
- * Returns -1 when calling the function fails.
---- 1508,1516 ----
- clear_tv(&rettv);
- return retval;
- }
-+ # endif
-
-! # if defined(FEAT_COMPL_FUNC) || defined(PROTO)
- /*
- * Call vimL function "func" and return the result as a number.
- * Returns -1 when calling the function fails.
-***************
-*** 1530,1536 ****
- clear_tv(&rettv);
- return retval;
- }
-! #endif
-
- /*
- * Call vimL function "func" and return the result as a list
---- 1533,1539 ----
- clear_tv(&rettv);
- return retval;
- }
-! # endif
-
- /*
- * Call vimL function "func" and return the result as a list
-***************
-*** 1556,1563 ****
-
- return rettv.vval.v_list;
- }
--
- #endif
-
- /*
- * Save the current function call pointer, and set it to NULL.
---- 1559,1566 ----
-
- return rettv.vval.v_list;
- }
- #endif
-+
-
- /*
- * Save the current function call pointer, and set it to NULL.
-*** ../vim-7.1.035/src/ex_docmd.c Mon Jul 16 20:38:56 2007
---- src/ex_docmd.c Sun Jul 15 17:20:09 2007
-***************
-*** 3406,3419 ****
- case CMD_windo:
- return arg;
-
-! #ifdef FEAT_SEARCH_EXTRA
- case CMD_match:
- if (*arg == NUL || !ends_excmd(*arg))
- {
-! /* Dummy call to clear variables. */
-! set_context_in_highlight_cmd(xp, (char_u *)"link n");
-! xp->xp_context = EXPAND_HIGHLIGHT;
-! xp->xp_pattern = arg;
- arg = skipwhite(skiptowhite(arg));
- if (*arg != NUL)
- {
---- 3406,3418 ----
- case CMD_windo:
- return arg;
-
-! #ifdef FEAT_CMDL_COMPL
-! # ifdef FEAT_SEARCH_EXTRA
- case CMD_match:
- if (*arg == NUL || !ends_excmd(*arg))
- {
-! /* also complete "None" */
-! set_context_in_echohl_cmd(xp, arg);
- arg = skipwhite(skiptowhite(arg));
- if (*arg != NUL)
- {
-***************
-*** 3422,3430 ****
- }
- }
- return find_nextcmd(arg);
-! #endif
-
-- #ifdef FEAT_CMDL_COMPL
- /*
- * All completion for the +cmdline_compl feature goes here.
- */
---- 3421,3428 ----
- }
- }
- return find_nextcmd(arg);
-! # endif
-
- /*
- * All completion for the +cmdline_compl feature goes here.
- */
-***************
-*** 3622,3629 ****
- break;
-
- case CMD_echohl:
-! xp->xp_context = EXPAND_HIGHLIGHT;
-! xp->xp_pattern = arg;
- break;
- #endif
- case CMD_highlight:
---- 3620,3626 ----
- break;
-
- case CMD_echohl:
-! set_context_in_echohl_cmd(xp, arg);
- break;
- #endif
- case CMD_highlight:
-*** ../vim-7.1.035/src/ex_getln.c Tue Jul 17 18:14:14 2007
---- src/ex_getln.c Tue Jul 17 18:05:49 2007
-***************
-*** 268,274 ****
---- 268,276 ----
- {
- xpc.xp_context = ccline.xp_context;
- xpc.xp_pattern = ccline.cmdbuff;
-+ # if defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)
- xpc.xp_arg = ccline.xp_arg;
-+ # endif
- }
- #endif
-
-***************
-*** 4151,4163 ****
---- 4153,4171 ----
-
- #ifdef FEAT_EVAL
- if (ccline.cmdfirstc == '=')
-+ {
-+ # ifdef FEAT_CMDL_COMPL
- /* pass CMD_SIZE because there is no real command */
- set_context_for_expression(xp, str, CMD_SIZE);
-+ # endif
-+ }
- else if (ccline.input_fn)
- {
- xp->xp_context = ccline.xp_context;
- xp->xp_pattern = ccline.cmdbuff;
-+ # if defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)
- xp->xp_arg = ccline.xp_arg;
-+ # endif
- }
- else
- #endif
-***************
-*** 4504,4509 ****
---- 4512,4523 ----
- /* Sort the results. Keep menu's in the specified order. */
- if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
- sort_strings(*file, *num_file);
-+
-+ #ifdef FEAT_CMDL_COMPL
-+ /* Reset the variables used for special highlight names expansion, so that
-+ * they don't show up when getting normal highlight names by ID. */
-+ reset_expand_highlight();
-+ #endif
-
- return OK;
- }
-*** ../vim-7.1.035/src/proto/syntax.pro Sat May 5 19:23:52 2007
---- src/proto/syntax.pro Fri Jul 13 19:51:43 2007
-***************
-*** 8,13 ****
---- 8,15 ----
- void syntax_clear __ARGS((buf_T *buf));
- void ex_syntax __ARGS((exarg_T *eap));
- int syntax_present __ARGS((buf_T *buf));
-+ void reset_expand_highlight __ARGS((void));
-+ void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg));
- void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
- char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
- int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
-*** ../vim-7.1.035/src/syntax.c Thu Jun 28 11:59:13 2007
---- src/syntax.c Fri Jul 13 19:51:39 2007
-***************
-*** 66,73 ****
- #define HL_TABLE() ((struct hl_group *)((highlight_ga.ga_data)))
-
- #ifdef FEAT_CMDL_COMPL
-! static int include_default = FALSE; /* include "default" for expansion */
-! static int include_link = FALSE; /* include "link" for expansion */
- #endif
-
- /*
---- 66,75 ----
- #define HL_TABLE() ((struct hl_group *)((highlight_ga.ga_data)))
-
- #ifdef FEAT_CMDL_COMPL
-! /* Flags to indicate an additional string for highlight name completion. */
-! static int include_none = 0; /* when 1 include "None" */
-! static int include_default = 0; /* when 1 include "default" */
-! static int include_link = 0; /* when 2 include "link" and "clear" */
- #endif
-
- /*
-***************
-*** 5968,5973 ****
---- 5970,5998 ----
- EXP_CASE /* expand ":syn case" arguments */
- } expand_what;
-
-+ /*
-+ * Reset include_link, include_default, include_none to 0.
-+ * Called when we are done expanding.
-+ */
-+ void
-+ reset_expand_highlight()
-+ {
-+ include_link = include_default = include_none = 0;
-+ }
-+
-+ /*
-+ * Handle command line completion for :match and :echohl command: Add "None"
-+ * as highlight group.
-+ */
-+ void
-+ set_context_in_echohl_cmd(xp, arg)
-+ expand_T *xp;
-+ char_u *arg;
-+ {
-+ xp->xp_context = EXPAND_HIGHLIGHT;
-+ xp->xp_pattern = arg;
-+ include_none = 1;
-+ }
-
- /*
- * Handle command line completion for :syntax command.
-***************
-*** 5983,5990 ****
- xp->xp_context = EXPAND_SYNTAX;
- expand_what = EXP_SUBCMD;
- xp->xp_pattern = arg;
-! include_link = FALSE;
-! include_default = FALSE;
-
- /* (part of) subcommand already typed */
- if (*arg != NUL)
---- 6008,6015 ----
- xp->xp_context = EXPAND_SYNTAX;
- expand_what = EXP_SUBCMD;
- xp->xp_pattern = arg;
-! include_link = 0;
-! include_default = 0;
-
- /* (part of) subcommand already typed */
- if (*arg != NUL)
-***************
-*** 8949,8955 ****
- return OK;
- }
-
-! #ifdef FEAT_CMDL_COMPL
-
- static void highlight_list __ARGS((void));
- static void highlight_list_two __ARGS((int cnt, int attr));
---- 8974,8980 ----
- return OK;
- }
-
-! #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-
- static void highlight_list __ARGS((void));
- static void highlight_list_two __ARGS((int cnt, int attr));
-***************
-*** 8967,8974 ****
- /* Default: expand group names */
- xp->xp_context = EXPAND_HIGHLIGHT;
- xp->xp_pattern = arg;
-! include_link = TRUE;
-! include_default = TRUE;
-
- /* (part of) subcommand already typed */
- if (*arg != NUL)
---- 8992,8999 ----
- /* Default: expand group names */
- xp->xp_context = EXPAND_HIGHLIGHT;
- xp->xp_pattern = arg;
-! include_link = 2;
-! include_default = 1;
-
- /* (part of) subcommand already typed */
- if (*arg != NUL)
-***************
-*** 8976,8982 ****
- p = skiptowhite(arg);
- if (*p != NUL) /* past "default" or group name */
- {
-! include_default = FALSE;
- if (STRNCMP("default", arg, p - arg) == 0)
- {
- arg = skipwhite(p);
---- 9001,9007 ----
- p = skiptowhite(arg);
- if (*p != NUL) /* past "default" or group name */
- {
-! include_default = 0;
- if (STRNCMP("default", arg, p - arg) == 0)
- {
- arg = skipwhite(p);
-***************
-*** 8985,8991 ****
- }
- if (*p != NUL) /* past group name */
- {
-! include_link = FALSE;
- if (arg[1] == 'i' && arg[0] == 'N')
- highlight_list();
- if (STRNCMP("link", arg, p - arg) == 0
---- 9010,9016 ----
- }
- if (*p != NUL) /* past group name */
- {
-! include_link = 0;
- if (arg[1] == 'i' && arg[0] == 'N')
- highlight_list();
- if (STRNCMP("link", arg, p - arg) == 0
-***************
-*** 9045,9075 ****
- expand_T *xp;
- int idx;
- {
-- if (idx == highlight_ga.ga_len
- #ifdef FEAT_CMDL_COMPL
-! && include_link
-! #endif
-! )
- return (char_u *)"link";
-! if (idx == highlight_ga.ga_len + 1
-! #ifdef FEAT_CMDL_COMPL
-! && include_link
-! #endif
-! )
- return (char_u *)"clear";
-- if (idx == highlight_ga.ga_len + 2
-- #ifdef FEAT_CMDL_COMPL
-- && include_default
- #endif
-- )
-- return (char_u *)"default";
- if (idx < 0 || idx >= highlight_ga.ga_len)
- return NULL;
- return HL_TABLE()[idx].sg_name;
- }
- #endif
-
-! #ifdef FEAT_GUI
- /*
- * Free all the highlight group fonts.
- * Used when quitting for systems which need it.
---- 9070,9094 ----
- expand_T *xp;
- int idx;
- {
- #ifdef FEAT_CMDL_COMPL
-! if (idx == highlight_ga.ga_len && include_none != 0)
-! return (char_u *)"none";
-! if (idx == highlight_ga.ga_len + include_none && include_default != 0)
-! return (char_u *)"default";
-! if (idx == highlight_ga.ga_len + include_none + include_default
-! && include_link != 0)
- return (char_u *)"link";
-! if (idx == highlight_ga.ga_len + include_none + include_default + 1
-! && include_link != 0)
- return (char_u *)"clear";
- #endif
- if (idx < 0 || idx >= highlight_ga.ga_len)
- return NULL;
- return HL_TABLE()[idx].sg_name;
- }
- #endif
-
-! #if defined(FEAT_GUI) || defined(PROTO)
- /*
- * Free all the highlight group fonts.
- * Used when quitting for systems which need it.
-*** ../vim-7.1.035/src/version.c Tue Jul 24 11:15:46 2007
---- src/version.c Tue Jul 24 14:30:18 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 36,
- /**/
-
---
-Apparently, 1 in 5 people in the world are Chinese. And there are 5
-people in my family, so it must be one of them. It's either my mum
-or my dad. Or my older brother Colin. Or my younger brother
-Ho-Cha-Chu. But I think it's Colin.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.037
-Problem: strcpy() used for overlapping strings. (Chris Monson)
-Solution: Use mch_memmove() instead.
-Files: src/option.c
-
-
-*** ../vim-7.1.036/src/option.c Tue Jul 24 09:50:22 2007
---- src/option.c Sun Jul 22 16:42:47 2007
-***************
-*** 4628,4634 ****
- if ((!(flags & P_COMMA) || *s != ',')
- && vim_strchr(s + 1, *s) != NULL)
- {
-! STRCPY(s, s + 1);
- --s;
- }
- }
---- 4628,4634 ----
- if ((!(flags & P_COMMA) || *s != ',')
- && vim_strchr(s + 1, *s) != NULL)
- {
-! mch_memmove(s, s + 1, STRLEN(s));
- --s;
- }
- }
-*** ../vim-7.1.036/src/version.c Tue Jul 24 14:32:44 2007
---- src/version.c Tue Jul 24 14:56:03 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 37,
- /**/
-
---
-This planet has -- or rather had -- a problem, which was this: most
-of the people living on it were unhappy for pretty much of the time.
-Many solutions were suggested for this problem, but most of these
-were largely concerned with the movements of small green pieces of
-paper, which is odd because on the whole it wasn't the small green
-pieces of paper that were unhappy.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.038
-Problem: When 'expandtab' is set then a Tab copied for 'copyindent' is
- expanded to spaces, even when 'preserveindent' is set. (Alexei
- Alexandrov)
-Solution: Remove the check for 'expandtab'. Also fix that ">>" doesn't obey
- 'preserveindent'. (Chris Lubinski)
-Files: src/misc1.c
-
-
-*** ../vim-7.1.037/src/misc1.c Thu May 10 21:03:33 2007
---- src/misc1.c Tue Jul 24 15:24:50 2007
-***************
-*** 90,96 ****
- */
- int
- set_indent(size, flags)
-! int size;
- int flags;
- {
- char_u *p;
---- 90,96 ----
- */
- int
- set_indent(size, flags)
-! int size; /* measured in spaces */
- int flags;
- {
- char_u *p;
-***************
-*** 98,109 ****
- char_u *oldline;
- char_u *s;
- int todo;
-! int ind_len;
- int line_len;
- int doit = FALSE;
-! int ind_done;
- int tab_pad;
- int retval = FALSE;
-
- /*
- * First check if there is anything to do and compute the number of
---- 98,111 ----
- char_u *oldline;
- char_u *s;
- int todo;
-! int ind_len; /* measured in characters */
- int line_len;
- int doit = FALSE;
-! int ind_done = 0; /* measured in spaces */
- int tab_pad;
- int retval = FALSE;
-+ int orig_char_len = 0; /* number of initial whitespace chars when
-+ 'et' and 'pi' are both set */
-
- /*
- * First check if there is anything to do and compute the number of
-***************
-*** 116,123 ****
- /* Calculate the buffer size for the new indent, and check to see if it
- * isn't already set */
-
-! /* if 'expandtab' isn't set: use TABs */
-! if (!curbuf->b_p_et)
- {
- /* If 'preserveindent' is set then reuse as much as possible of
- * the existing indent structure for the new indent */
---- 118,127 ----
- /* Calculate the buffer size for the new indent, and check to see if it
- * isn't already set */
-
-! /* if 'expandtab' isn't set: use TABs; if both 'expandtab' and
-! * 'preserveindent' are set count the number of characters at the
-! * beginning of the line to be copied */
-! if (!curbuf->b_p_et || (!(flags & SIN_INSERT) && curbuf->b_p_pi))
- {
- /* If 'preserveindent' is set then reuse as much as possible of
- * the existing indent structure for the new indent */
-***************
-*** 148,156 ****
- ++p;
- }
-
- /* Fill to next tabstop with a tab, if possible */
- tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
-! if (todo >= tab_pad)
- {
- doit = TRUE;
- todo -= tab_pad;
---- 152,165 ----
- ++p;
- }
-
-+ /* Set initial number of whitespace chars to copy if we are
-+ * preserving indent but expandtab is set */
-+ if (curbuf->b_p_et)
-+ orig_char_len = ind_len;
-+
- /* Fill to next tabstop with a tab, if possible */
- tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
-! if (todo >= tab_pad && orig_char_len == 0)
- {
- doit = TRUE;
- todo -= tab_pad;
-***************
-*** 193,205 ****
- else
- p = skipwhite(p);
- line_len = (int)STRLEN(p) + 1;
-! newline = alloc(ind_len + line_len);
-! if (newline == NULL)
-! return FALSE;
-
- /* Put the characters in the new line. */
-- s = newline;
-- todo = size;
- /* if 'expandtab' isn't set: use TABs */
- if (!curbuf->b_p_et)
- {
---- 202,239 ----
- else
- p = skipwhite(p);
- line_len = (int)STRLEN(p) + 1;
-!
-! /* If 'preserveindent' and 'expandtab' are both set keep the original
-! * characters and allocate accordingly. We will fill the rest with spaces
-! * after the if (!curbuf->b_p_et) below. */
-! if (orig_char_len != 0)
-! {
-! newline = alloc(orig_char_len + size - ind_done + line_len);
-! if (newline == NULL)
-! return FALSE;
-! p = oldline;
-! s = newline;
-! while (orig_char_len > 0)
-! {
-! *s++ = *p++;
-! orig_char_len--;
-! }
-! /* Skip over any additional white space (useful when newindent is less
-! * than old) */
-! while (vim_iswhite(*p))
-! (void)*p++;
-! todo = size-ind_done;
-! }
-! else
-! {
-! todo = size;
-! newline = alloc(ind_len + line_len);
-! if (newline == NULL)
-! return FALSE;
-! s = newline;
-! }
-
- /* Put the characters in the new line. */
- /* if 'expandtab' isn't set: use TABs */
- if (!curbuf->b_p_et)
- {
-***************
-*** 1320,1327 ****
- newindent += (int)curbuf->b_p_sw;
- }
- #endif
-! /* Copy the indent only if expand tab is disabled */
-! if (curbuf->b_p_ci && !curbuf->b_p_et)
- {
- (void)copy_indent(newindent, saved_line);
-
---- 1354,1361 ----
- newindent += (int)curbuf->b_p_sw;
- }
- #endif
-! /* Copy the indent */
-! if (curbuf->b_p_ci)
- {
- (void)copy_indent(newindent, saved_line);
-
-*** ../vim-7.1.037/src/version.c Tue Jul 24 14:57:16 2007
---- src/version.c Tue Jul 24 15:22:44 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 38,
- /**/
-
---
-Time is an illusion. Lunchtime doubly so.
- -- Ford Prefect, in Douglas Adams'
- "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.039
-Problem: A tag in a help file that starts with "help-tags" and contains a
- percent sign may make Vim crash. (Ulf Harnhammar)
-Solution: Use puts() instead of fprintf().
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.038/src/ex_cmds.c Tue Jul 24 11:15:46 2007
---- src/ex_cmds.c Wed Jul 25 20:06:20 2007
-***************
-*** 6374,6382 ****
- for (i = 0; i < ga.ga_len; ++i)
- {
- s = ((char_u **)ga.ga_data)[i];
-! if (STRNCMP(s, "help-tags", 9) == 0)
- /* help-tags entry was added in formatted form */
-! fprintf(fd_tags, (char *)s);
- else
- {
- fprintf(fd_tags, "%s\t/*", s);
---- 6374,6382 ----
- for (i = 0; i < ga.ga_len; ++i)
- {
- s = ((char_u **)ga.ga_data)[i];
-! if (STRNCMP(s, "help-tags\t", 10) == 0)
- /* help-tags entry was added in formatted form */
-! fputs((char *)s, fd_tags);
- else
- {
- fprintf(fd_tags, "%s\t/*", s);
-*** ../vim-7.1.038/src/version.c Tue Jul 24 15:25:27 2007
---- src/version.c Wed Jul 25 22:41:18 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 39,
- /**/
-
---
-On the other hand, you have different fingers.
- -- Steven Wright
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.040
-Problem: ":match" only supports three matches.
-Solution: Add functions clearmatches(), getmatches(), matchadd(),
- matchdelete() and setmatches(). Changed the data structures for
- this. A small bug in syntax.c is fixed, so newly created
- highlight groups can have their name resolved correctly from their
- ID. (Martin Toft)
-Files: runtime/doc/eval.txt, runtime/doc/pattern.txt,
- runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c,
- src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c,
- src/testdir/Makefile, src/testdir/test63.in,
- src/testdir/test63.ok, src/window.c
-
-
-*** ../vim-7.1.039/runtime/doc/eval.txt Tue Jul 17 16:31:15 2007
---- runtime/doc/eval.txt Wed Jul 25 21:05:56 2007
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2007 Jul 11
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2007 Jul 25
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1557,1562 ****
---- 1557,1563 ----
- changenr() Number current change number
- char2nr( {expr}) Number ASCII value of first char in {expr}
- cindent( {lnum}) Number C indent for line {lnum}
-+ clearmatches() None clear all matches
- col( {expr}) Number column nr of cursor or mark
- complete({startcol}, {matches}) String set Insert mode completion
- complete_add( {expr}) Number add completion match
-***************
-*** 1622,1627 ****
---- 1623,1629 ----
- getline( {lnum}) String line {lnum} of current buffer
- getline( {lnum}, {end}) List lines {lnum} to {end} of current buffer
- getloclist({nr}) List list of location list items
-+ getmatches() List list of current matches
- getpos( {expr}) List position of cursor, mark, etc.
- getqflist() List list of quickfix items
- getreg( [{regname} [, 1]]) String contents of register
-***************
-*** 1676,1682 ****
---- 1678,1687 ----
- String check for mappings matching {name}
- match( {expr}, {pat}[, {start}[, {count}]])
- Number position where {pat} matches in {expr}
-+ matchadd( {group}, {pattern}[, {priority}[, {id}]])
-+ Number highlight {pattern} with {group}
- matcharg( {nr}) List arguments of |:match|
-+ matchdelete( {id}) Number delete match identified by {id}
- matchend( {expr}, {pat}[, {start}[, {count}]])
- Number position where {pat} ends in {expr}
- matchlist( {expr}, {pat}[, {start}[, {count}]])
-***************
-*** 1731,1736 ****
---- 1736,1742 ----
- setline( {lnum}, {line}) Number set line {lnum} to {line}
- setloclist( {nr}, {list}[, {action}])
- Number modify location list using {list}
-+ setmatches( {list}) Number restore a list of matches
- setpos( {expr}, {list}) none set the {expr} position to {list}
- setqflist( {list}[, {action}]) Number modify quickfix list using {list}
- setreg( {n}, {v}[, {opt}]) Number set register to value and type
-***************
-*** 2012,2017 ****
---- 2018,2027 ----
- feature, -1 is returned.
- See |C-indenting|.
-
-+ clearmatches() *clearmatches()*
-+ Clears all matches previously defined by |matchadd()| and the
-+ |:match| commands.
-+
- *col()*
- col({expr}) The result is a Number, which is the byte index of the column
- position given with {expr}. The accepted positions are:
-***************
-*** 2918,2923 ****
---- 2928,2955 ----
- returned. For an invalid window number {nr}, an empty list is
- returned. Otherwise, same as getqflist().
-
-+ getmatches() *getmatches()*
-+ Returns a |List| with all matches previously defined by
-+ |matchadd()| and the |:match| commands. |getmatches()| is
-+ useful in combination with |setmatches()|, as |setmatches()|
-+ can restore a list of matches saved by |getmatches()|.
-+ Example: >
-+ :echo getmatches()
-+ < [{'group': 'MyGroup1', 'pattern': 'TODO',
-+ 'priority': 10, 'id': 1}, {'group': 'MyGroup2',
-+ 'pattern': 'FIXME', 'priority': 10, 'id': 2}] >
-+ :let m = getmatches()
-+ :call clearmatches()
-+ :echo getmatches()
-+ < [] >
-+ :call setmatches(m)
-+ :echo getmatches()
-+ < [{'group': 'MyGroup1', 'pattern': 'TODO',
-+ 'priority': 10, 'id': 1}, {'group': 'MyGroup2',
-+ 'pattern': 'FIXME', 'priority': 10, 'id': 2}] >
-+ :unlet m
-+ <
-+
- getqflist() *getqflist()*
- Returns a list with all the current quickfix errors. Each
- list item is a dictionary with these entries:
-***************
-*** 3622,3627 ****
---- 3654,3697 ----
- the pattern. 'smartcase' is NOT used. The matching is always
- done like 'magic' is set and 'cpoptions' is empty.
-
-+ *matchadd()* *E798* *E799* *E801*
-+ matchadd({group}, {pattern}[, {priority}[, {id}]])
-+ Defines a pattern to be highlighted in the current window (a
-+ "match"). It will be highlighted with {group}. Returns an
-+ identification number (ID), which can be used to delete the
-+ match using |matchdelete()|.
-+
-+ The optional {priority} argument assigns a priority to the
-+ match. A match with a high priority will have its
-+ highlighting overrule that of a match with a lower priority.
-+ A priority is specified as an integer (negative numbers are no
-+ exception). If the {priority} argument is not specified, the
-+ default priority is 10. The priority of 'hlsearch' is zero,
-+ hence all matches with a priority greater than zero will
-+ overrule it. Syntax highlighting (see 'syntax') is a separate
-+ mechanism, and regardless of the chosen priority a match will
-+ always overrule syntax highlighting.
-+
-+ The optional {id} argument allows the request for a specific
-+ match ID. If a specified ID is already taken, an error
-+ message will appear and the match will not be added. An ID
-+ is specified as a positive integer (zero excluded). IDs 1, 2
-+ and 3 are reserved for |:match|, |:2match| and |:3match|,
-+ respectively. If the {id} argument is not specified,
-+ |matchadd()| automatically chooses a free ID.
-+
-+ The number of matches is not limited, as it is the case with
-+ the |:match| commands.
-+
-+ Example: >
-+ :highlight MyGroup ctermbg=green guibg=green
-+ :let m = matchadd("MyGroup", "TODO")
-+ < Deletion of the pattern: >
-+ :call matchdelete(m)
-+
-+ < A list of matches defined by |matchadd()| and |:match| are
-+ available from |getmatches()|. All matches can be deleted in
-+ one operation by |clearmatches()|.
-
- matcharg({nr}) *matcharg()*
- Selects the {nr} match item, as set with a |:match|,
-***************
-*** 3631,3638 ****
- The pattern used.
- When {nr} is not 1, 2 or 3 returns an empty |List|.
- When there is no match item set returns ['', ''].
-! This is usef to save and restore a |:match|.
-!
-
- matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
- Same as match(), but return the index of first character after
---- 3701,3715 ----
- The pattern used.
- When {nr} is not 1, 2 or 3 returns an empty |List|.
- When there is no match item set returns ['', ''].
-! This is useful to save and restore a |:match|.
-! Highlighting matches using the |:match| commands are limited
-! to three matches. |matchadd()| does not have this limitation.
-!
-! matchdelete({id}) *matchdelete()* *E802* *E803*
-! Deletes a match with ID {id} previously defined by |matchadd()|
-! or one of the |:match| commands. Returns 0 if succesfull,
-! otherwise -1. See example for |matchadd()|. All matches can
-! be deleted in one operation by |clearmatches()|.
-
- matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
- Same as match(), but return the index of first character after
-***************
-*** 4385,4391 ****
- When {nr} is zero the current window is used. For a location
- list window, the displayed location list is modified. For an
- invalid window number {nr}, -1 is returned.
-! Otherwise, same as setqflist().
-
- *setpos()*
- setpos({expr}, {list})
---- 4462,4474 ----
- When {nr} is zero the current window is used. For a location
- list window, the displayed location list is modified. For an
- invalid window number {nr}, -1 is returned.
-! Otherwise, same as |setqflist()|.
-! Also see |location-list|.
-!
-! setmatches({list}) *setmatches()*
-! Restores a list of matches saved by |getmatches()|. Returns 0
-! if succesfull, otherwise -1. All current matches are cleared
-! before the list is restored. See example for |getmatches()|.
-
- *setpos()*
- setpos({expr}, {list})
-*** ../vim-7.1.039/runtime/doc/pattern.txt Sat May 12 16:57:31 2007
---- runtime/doc/pattern.txt Tue Jul 24 15:47:01 2007
-***************
-*** 1212,1218 ****
- {group} must exist at the moment this command is executed.
-
- The {group} highlighting still applies when a character is
-! to be highlighted for 'hlsearch'.
-
- Note that highlighting the last used search pattern with
- 'hlsearch' is used in all windows, while the pattern defined
---- 1212,1221 ----
- {group} must exist at the moment this command is executed.
-
- The {group} highlighting still applies when a character is
-! to be highlighted for 'hlsearch', as the highlighting for
-! matches is given higher priority than that of 'hlsearch'.
-! Syntax highlighting (see 'syntax') is also overruled by
-! matches.
-
- Note that highlighting the last used search pattern with
- 'hlsearch' is used in all windows, while the pattern defined
-***************
-*** 1226,1233 ****
- display you may get unexpected results. That is because Vim
- looks for a match in the line where redrawing starts.
-
-! Also see |matcharg()|, it returns the highlight group and
-! pattern of a previous :match command.
-
- Another example, which highlights all characters in virtual
- column 72 and more: >
---- 1229,1243 ----
- display you may get unexpected results. That is because Vim
- looks for a match in the line where redrawing starts.
-
-! Also see |matcharg()|and |getmatches()|. The former returns
-! the highlight group and pattern of a previous |:match|
-! command. The latter returns a list with highlight groups and
-! patterns defined by both |matchadd()| and |:match|.
-!
-! Highlighting matches using |:match| are limited to three
-! matches (aside from |:match|, |:2match| and |:3match|are
-! available). |matchadd()| does not have this limitation and in
-! addition makes it possible to prioritize matches.
-
- Another example, which highlights all characters in virtual
- column 72 and more: >
-*** ../vim-7.1.039/runtime/doc/usr_41.txt Sat May 12 15:54:55 2007
---- runtime/doc/usr_41.txt Tue Jul 24 15:47:01 2007
-***************
-*** 763,775 ****
---- 763,784 ----
- foldtextresult() get the text displayed for a closed fold
-
- Syntax and highlighting:
-+ clearmatches() clear all matches defined by |matchadd()| and
-+ the |:match| commands
-+ getmatches() get all matches defined by |matchadd()| and
-+ the |:match| commands
- hlexists() check if a highlight group exists
- hlID() get ID of a highlight group
- synID() get syntax ID at a specific position
- synIDattr() get a specific attribute of a syntax ID
- synIDtrans() get translated syntax ID
- diff_hlID() get highlight ID for diff mode at a position
-+ matchadd() define a pattern to highlight (a "match")
- matcharg() get info about |:match| arguments
-+ matchdelete() delete a match defined by |matchadd()| or a
-+ |:match| command
-+ setmatches() restore a list of matches saved by
-+ |getmatches()|
-
- Spelling:
- spellbadword() locate badly spelled word at or after cursor
-*** ../vim-7.1.039/src/eval.c Tue Jul 24 14:32:44 2007
---- src/eval.c Tue Jul 24 20:40:52 2007
-***************
-*** 475,480 ****
---- 475,481 ----
- static void f_changenr __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_char2nr __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_cindent __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_clearmatches __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_col __ARGS((typval_T *argvars, typval_T *rettv));
- #if defined(FEAT_INS_EXPAND)
- static void f_complete __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 529,534 ****
---- 530,536 ----
- static void f_getftime __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getftype __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getline __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_getmatches __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getpos __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getqflist __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getreg __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 577,583 ****
---- 579,587 ----
- static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_match __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_matchadd __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_matcharg __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_matchdelete __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_matchend __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_matchlist __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_matchstr __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 618,623 ****
---- 622,628 ----
- static void f_setcmdpos __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_setline __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_setloclist __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_setmatches __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_setpos __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_setqflist __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 7046,7051 ****
---- 7051,7057 ----
- {"changenr", 0, 0, f_changenr},
- {"char2nr", 1, 1, f_char2nr},
- {"cindent", 1, 1, f_cindent},
-+ {"clearmatches", 0, 0, f_clearmatches},
- {"col", 1, 1, f_col},
- #if defined(FEAT_INS_EXPAND)
- {"complete", 2, 2, f_complete},
-***************
-*** 7102,7107 ****
---- 7108,7114 ----
- {"getftype", 1, 1, f_getftype},
- {"getline", 1, 2, f_getline},
- {"getloclist", 1, 1, f_getqflist},
-+ {"getmatches", 0, 0, f_getmatches},
- {"getpos", 1, 1, f_getpos},
- {"getqflist", 0, 0, f_getqflist},
- {"getreg", 0, 2, f_getreg},
-***************
-*** 7152,7158 ****
---- 7159,7167 ----
- {"maparg", 1, 3, f_maparg},
- {"mapcheck", 1, 3, f_mapcheck},
- {"match", 2, 4, f_match},
-+ {"matchadd", 2, 4, f_matchadd},
- {"matcharg", 1, 1, f_matcharg},
-+ {"matchdelete", 1, 1, f_matchdelete},
- {"matchend", 2, 4, f_matchend},
- {"matchlist", 2, 4, f_matchlist},
- {"matchstr", 2, 4, f_matchstr},
-***************
-*** 7193,7198 ****
---- 7202,7208 ----
- {"setcmdpos", 1, 1, f_setcmdpos},
- {"setline", 2, 2, f_setline},
- {"setloclist", 2, 3, f_setloclist},
-+ {"setmatches", 1, 1, f_setmatches},
- {"setpos", 2, 2, f_setpos},
- {"setqflist", 1, 2, f_setqflist},
- {"setreg", 2, 3, f_setreg},
-***************
-*** 8243,8248 ****
---- 8253,8272 ----
- }
-
- /*
-+ * "clearmatches()" function
-+ */
-+ /*ARGSUSED*/
-+ static void
-+ f_clearmatches(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ #ifdef FEAT_SEARCH_EXTRA
-+ clear_matches(curwin);
-+ #endif
-+ }
-+
-+ /*
- * "col(string)" function
- */
- static void
-***************
-*** 10278,10283 ****
---- 10302,10341 ----
- }
-
- /*
-+ * "getmatches()" function
-+ */
-+ /*ARGSUSED*/
-+ static void
-+ f_getmatches(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ #ifdef FEAT_SEARCH_EXTRA
-+ dict_T *dict;
-+ matchitem_T *cur = curwin->w_match_head;
-+
-+ rettv->vval.v_number = 0;
-+
-+ if (rettv_list_alloc(rettv) == OK)
-+ {
-+ while (cur != NULL)
-+ {
-+ dict = dict_alloc();
-+ if (dict == NULL)
-+ return;
-+ ++dict->dv_refcount;
-+ dict_add_nr_str(dict, "group", 0L, syn_id2name(cur->hlg_id));
-+ dict_add_nr_str(dict, "pattern", 0L, cur->pattern);
-+ dict_add_nr_str(dict, "priority", (long)cur->priority, NULL);
-+ dict_add_nr_str(dict, "id", (long)cur->id, NULL);
-+ list_append_dict(rettv->vval.v_list, dict);
-+ cur = cur->next;
-+ }
-+ }
-+ #endif
-+ }
-+
-+ /*
- * "getpos(string)" function
- */
- static void
-***************
-*** 12448,12453 ****
---- 12506,12547 ----
- }
-
- /*
-+ * "matchadd()" function
-+ */
-+ static void
-+ f_matchadd(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ #ifdef FEAT_SEARCH_EXTRA
-+ char_u buf[NUMBUFLEN];
-+ char_u *grp = get_tv_string_buf_chk(&argvars[0], buf); /* group */
-+ char_u *pat = get_tv_string_buf_chk(&argvars[1], buf); /* pattern */
-+ int prio = 10; /* default priority */
-+ int id = -1;
-+ int error = FALSE;
-+
-+ rettv->vval.v_number = -1;
-+
-+ if (grp == NULL || pat == NULL)
-+ return;
-+ if (argvars[2].v_type != VAR_UNKNOWN)
-+ prio = get_tv_number_chk(&argvars[2], &error);
-+ if (argvars[3].v_type != VAR_UNKNOWN)
-+ id = get_tv_number_chk(&argvars[3], &error);
-+ if (error == TRUE)
-+ return;
-+ if (id >= 1 && id <= 3)
-+ {
-+ EMSGN("E798: ID is reserved for \":match\": %ld", id);
-+ return;
-+ }
-+
-+ rettv->vval.v_number = match_add(curwin, grp, pat, prio, id);
-+ #endif
-+ }
-+
-+ /*
- * "matcharg()" function
- */
- static void
-***************
-*** 12458,12477 ****
- if (rettv_list_alloc(rettv) == OK)
- {
- #ifdef FEAT_SEARCH_EXTRA
-! int mi = get_tv_number(&argvars[0]);
-
-! if (mi >= 1 && mi <= 3)
- {
-! list_append_string(rettv->vval.v_list,
-! syn_id2name(curwin->w_match_id[mi - 1]), -1);
-! list_append_string(rettv->vval.v_list,
-! curwin->w_match_pat[mi - 1], -1);
- }
- #endif
- }
- }
-
- /*
- * "matchend()" function
- */
- static void
---- 12552,12593 ----
- if (rettv_list_alloc(rettv) == OK)
- {
- #ifdef FEAT_SEARCH_EXTRA
-! int id = get_tv_number(&argvars[0]);
-! matchitem_T *m;
-
-! if (id >= 1 && id <= 3)
- {
-! if ((m = (matchitem_T *)get_match(curwin, id)) != NULL)
-! {
-! list_append_string(rettv->vval.v_list,
-! syn_id2name(m->hlg_id), -1);
-! list_append_string(rettv->vval.v_list, m->pattern, -1);
-! }
-! else
-! {
-! list_append_string(rettv->vval.v_list, NUL, -1);
-! list_append_string(rettv->vval.v_list, NUL, -1);
-! }
- }
- #endif
- }
- }
-
- /*
-+ * "matchdelete()" function
-+ */
-+ static void
-+ f_matchdelete(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ #ifdef FEAT_SEARCH_EXTRA
-+ rettv->vval.v_number = match_delete(curwin,
-+ (int)get_tv_number(&argvars[0]), TRUE);
-+ #endif
-+ }
-+
-+ /*
- * "matchend()" function
- */
- static void
-***************
-*** 14506,14511 ****
---- 14622,14687 ----
- win = find_win_by_nr(&argvars[0], NULL);
- if (win != NULL)
- set_qf_ll_list(win, &argvars[1], &argvars[2], rettv);
-+ }
-+
-+ /*
-+ * "setmatches()" function
-+ */
-+ static void
-+ f_setmatches(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ #ifdef FEAT_SEARCH_EXTRA
-+ list_T *l;
-+ listitem_T *li;
-+ dict_T *d;
-+
-+ rettv->vval.v_number = -1;
-+ if (argvars[0].v_type != VAR_LIST)
-+ {
-+ EMSG(_(e_listreq));
-+ return;
-+ }
-+ if ((l = argvars[0].vval.v_list) != NULL)
-+ {
-+
-+ /* To some extent make sure that we are dealing with a list from
-+ * "getmatches()". */
-+ li = l->lv_first;
-+ while (li != NULL)
-+ {
-+ if (li->li_tv.v_type != VAR_DICT
-+ || (d = li->li_tv.vval.v_dict) == NULL)
-+ {
-+ EMSG(_(e_invarg));
-+ return;
-+ }
-+ if (!(dict_find(d, (char_u *)"group", -1) != NULL
-+ && dict_find(d, (char_u *)"pattern", -1) != NULL
-+ && dict_find(d, (char_u *)"priority", -1) != NULL
-+ && dict_find(d, (char_u *)"id", -1) != NULL))
-+ {
-+ EMSG(_(e_invarg));
-+ return;
-+ }
-+ li = li->li_next;
-+ }
-+
-+ clear_matches(curwin);
-+ li = l->lv_first;
-+ while (li != NULL)
-+ {
-+ d = li->li_tv.vval.v_dict;
-+ match_add(curwin, get_dict_string(d, (char_u *)"group", FALSE),
-+ get_dict_string(d, (char_u *)"pattern", FALSE),
-+ (int)get_dict_number(d, (char_u *)"priority"),
-+ (int)get_dict_number(d, (char_u *)"id"));
-+ li = li->li_next;
-+ }
-+ rettv->vval.v_number = 0;
-+ }
-+ #endif
- }
-
- /*
-*** ../vim-7.1.039/src/ex_docmd.c Tue Jul 24 14:32:44 2007
---- src/ex_docmd.c Tue Jul 24 15:47:01 2007
-***************
-*** 10817,10828 ****
- exarg_T *eap;
- {
- char_u *p;
- char_u *end;
- int c;
-! int mi;
-
- if (eap->line2 <= 3)
-! mi = eap->line2 - 1;
- else
- {
- EMSG(e_invcmd);
---- 10817,10829 ----
- exarg_T *eap;
- {
- char_u *p;
-+ char_u *g;
- char_u *end;
- int c;
-! int id;
-
- if (eap->line2 <= 3)
-! id = eap->line2;
- else
- {
- EMSG(e_invcmd);
-***************
-*** 10831,10843 ****
-
- /* First clear any old pattern. */
- if (!eap->skip)
-! {
-! vim_free(curwin->w_match[mi].regprog);
-! curwin->w_match[mi].regprog = NULL;
-! vim_free(curwin->w_match_pat[mi]);
-! curwin->w_match_pat[mi] = NULL;
-! redraw_later(SOME_VALID); /* always need a redraw */
-! }
-
- if (ends_excmd(*eap->arg))
- end = eap->arg;
---- 10832,10838 ----
-
- /* First clear any old pattern. */
- if (!eap->skip)
-! match_delete(curwin, id, FALSE);
-
- if (ends_excmd(*eap->arg))
- end = eap->arg;
-***************
-*** 10848,10862 ****
- {
- p = skiptowhite(eap->arg);
- if (!eap->skip)
-! {
-! curwin->w_match_id[mi] = syn_namen2id(eap->arg,
-! (int)(p - eap->arg));
-! if (curwin->w_match_id[mi] == 0)
-! {
-! EMSG2(_(e_nogroup), eap->arg);
-! return;
-! }
-! }
- p = skipwhite(p);
- if (*p == NUL)
- {
---- 10843,10849 ----
- {
- p = skiptowhite(eap->arg);
- if (!eap->skip)
-! g = vim_strnsave(eap->arg, (int)(p - eap->arg));
- p = skipwhite(p);
- if (*p == NUL)
- {
-***************
-*** 10880,10893 ****
-
- c = *end;
- *end = NUL;
-! curwin->w_match[mi].regprog = vim_regcomp(p + 1, RE_MAGIC);
-! if (curwin->w_match[mi].regprog == NULL)
-! {
-! EMSG2(_(e_invarg2), p);
-! *end = c;
-! return;
-! }
-! curwin->w_match_pat[mi] = vim_strsave(p + 1);
- *end = c;
- }
- }
---- 10867,10874 ----
-
- c = *end;
- *end = NUL;
-! match_add(curwin, g, p + 1, 10, id);
-! vim_free(g);
- *end = c;
- }
- }
-*** ../vim-7.1.039/src/proto/window.pro Sat May 5 19:52:36 2007
---- src/proto/window.pro Tue Jul 24 16:38:19 2007
-***************
-*** 59,62 ****
---- 59,66 ----
- int only_one_window __ARGS((void));
- void check_lnums __ARGS((int do_curwin));
- int win_hasvertsplit __ARGS((void));
-+ int match_add __ARGS((win_T *wp, char_u *grp, char_u *pat, int prio, int id));
-+ int match_delete __ARGS((win_T *wp, int id, int perr));
-+ void clear_matches __ARGS((win_T *wp));
-+ matchitem_T *get_match __ARGS((win_T *wp, int id));
- /* vim: set ft=c : */
-*** ../vim-7.1.039/src/screen.c Tue Jun 19 17:49:12 2007
---- src/screen.c Thu Jul 26 21:55:40 2007
-***************
-*** 100,126 ****
- static int screen_cur_row, screen_cur_col; /* last known cursor position */
-
- #ifdef FEAT_SEARCH_EXTRA
-- /*
-- * Struct used for highlighting 'hlsearch' matches for the last use search
-- * pattern or a ":match" item.
-- * For 'hlsearch' there is one pattern for all windows. For ":match" there is
-- * a different pattern for each window.
-- */
-- typedef struct
-- {
-- regmmatch_T rm; /* points to the regexp program; contains last found
-- match (may continue in next line) */
-- buf_T *buf; /* the buffer to search for a match */
-- linenr_T lnum; /* the line to search for a match */
-- int attr; /* attributes to be used for a match */
-- int attr_cur; /* attributes currently active in win_line() */
-- linenr_T first_lnum; /* first lnum to search for multi-line pat */
-- colnr_T startcol; /* in win_line() points to char where HL starts */
-- colnr_T endcol; /* in win_line() points to char where HL ends */
-- } match_T;
--
- static match_T search_hl; /* used for 'hlsearch' highlight matching */
-- static match_T match_hl[3]; /* used for ":match" highlight matching */
- #endif
-
- #ifdef FEAT_FOLDING
---- 100,106 ----
-***************
-*** 155,160 ****
---- 135,141 ----
- static void redraw_custum_statusline __ARGS((win_T *wp));
- #endif
- #ifdef FEAT_SEARCH_EXTRA
-+ #define SEARCH_HL_PRIORITY 0
- static void start_search_hl __ARGS((void));
- static void end_search_hl __ARGS((void));
- static void prepare_search_hl __ARGS((win_T *wp, linenr_T lnum));
-***************
-*** 787,792 ****
---- 768,774 ----
- w_topline got smaller a bit */
- #endif
- #ifdef FEAT_SEARCH_EXTRA
-+ matchitem_T *cur; /* points to the match list */
- int top_to_mod = FALSE; /* redraw above mod_top */
- #endif
-
-***************
-*** 848,865 ****
- #endif
-
- #ifdef FEAT_SEARCH_EXTRA
-! /* Setup for ":match" and 'hlsearch' highlighting. Disable any previous
- * match */
-! for (i = 0; i < 3; ++i)
- {
-! match_hl[i].rm = wp->w_match[i];
-! if (wp->w_match_id[i] == 0)
-! match_hl[i].attr = 0;
- else
-! match_hl[i].attr = syn_id2attr(wp->w_match_id[i]);
-! match_hl[i].buf = buf;
-! match_hl[i].lnum = 0;
-! match_hl[i].first_lnum = 0;
- }
- search_hl.buf = buf;
- search_hl.lnum = 0;
---- 830,849 ----
- #endif
-
- #ifdef FEAT_SEARCH_EXTRA
-! /* Setup for match and 'hlsearch' highlighting. Disable any previous
- * match */
-! cur = wp->w_match_head;
-! while (cur != NULL)
- {
-! cur->hl.rm = cur->match;
-! if (cur->hlg_id == 0)
-! cur->hl.attr = 0;
- else
-! cur->hl.attr = syn_id2attr(cur->hlg_id);
-! cur->hl.buf = buf;
-! cur->hl.lnum = 0;
-! cur->hl.first_lnum = 0;
-! cur = cur->next;
- }
- search_hl.buf = buf;
- search_hl.lnum = 0;
-***************
-*** 923,941 ****
- * change in one line may make the Search highlighting in a
- * previous line invalid. Simple solution: redraw all visible
- * lines above the change.
-! * Same for a ":match" pattern.
- */
- if (search_hl.rm.regprog != NULL
- && re_multiline(search_hl.rm.regprog))
- top_to_mod = TRUE;
- else
-! for (i = 0; i < 3; ++i)
-! if (match_hl[i].rm.regprog != NULL
-! && re_multiline(match_hl[i].rm.regprog))
- {
- top_to_mod = TRUE;
- break;
- }
- #endif
- }
- #ifdef FEAT_FOLDING
---- 907,931 ----
- * change in one line may make the Search highlighting in a
- * previous line invalid. Simple solution: redraw all visible
- * lines above the change.
-! * Same for a match pattern.
- */
- if (search_hl.rm.regprog != NULL
- && re_multiline(search_hl.rm.regprog))
- top_to_mod = TRUE;
- else
-! {
-! cur = wp->w_match_head;
-! while (cur != NULL)
-! {
-! if (cur->match.regprog != NULL
-! && re_multiline(cur->match.regprog))
- {
- top_to_mod = TRUE;
- break;
- }
-+ cur = cur->next;
-+ }
-+ }
- #endif
- }
- #ifdef FEAT_FOLDING
-***************
-*** 2626,2635 ****
- int line_attr = 0; /* atrribute for the whole line */
- #endif
- #ifdef FEAT_SEARCH_EXTRA
-! match_T *shl; /* points to search_hl or match_hl */
-! #endif
-! #if defined(FEAT_SEARCH_EXTRA) || defined(FEAT_MBYTE)
-! int i;
- #endif
- #ifdef FEAT_ARABIC
- int prev_c = 0; /* previous Arabic character */
---- 2634,2646 ----
- int line_attr = 0; /* atrribute for the whole line */
- #endif
- #ifdef FEAT_SEARCH_EXTRA
-! matchitem_T *cur; /* points to the match list */
-! match_T *shl; /* points to search_hl or a match */
-! int shl_flag; /* flag to indicate whether search_hl
-! has been processed or not */
-! int prevcol_hl_flag; /* flag to indicate whether prevcol
-! equals startcol of search_hl or one
-! of the matches */
- #endif
- #ifdef FEAT_ARABIC
- int prev_c = 0; /* previous Arabic character */
-***************
-*** 3074,3085 ****
-
- #ifdef FEAT_SEARCH_EXTRA
- /*
-! * Handle highlighting the last used search pattern and ":match".
-! * Do this for both search_hl and match_hl[3].
- */
-! for (i = 3; i >= 0; --i)
- {
-! shl = (i == 3) ? &search_hl : &match_hl[i];
- shl->startcol = MAXCOL;
- shl->endcol = MAXCOL;
- shl->attr_cur = 0;
---- 3085,3104 ----
-
- #ifdef FEAT_SEARCH_EXTRA
- /*
-! * Handle highlighting the last used search pattern and matches.
-! * Do this for both search_hl and the match list.
- */
-! cur = wp->w_match_head;
-! shl_flag = FALSE;
-! while (cur != NULL || shl_flag == FALSE)
- {
-! if (shl_flag == FALSE)
-! {
-! shl = &search_hl;
-! shl_flag = TRUE;
-! }
-! else
-! shl = &cur->hl;
- shl->startcol = MAXCOL;
- shl->endcol = MAXCOL;
- shl->attr_cur = 0;
-***************
-*** 3122,3127 ****
---- 3141,3148 ----
- area_highlighting = TRUE;
- }
- }
-+ if (shl != &search_hl && cur != NULL)
-+ cur = cur->next;
- }
- #endif
-
-***************
-*** 3388,3400 ****
- * After end, check for start/end of next match.
- * When another match, have to check for start again.
- * Watch out for matching an empty string!
-! * Do this first for search_hl, then for match_hl, so that
-! * ":match" overrules 'hlsearch'.
- */
- v = (long)(ptr - line);
-! for (i = 3; i >= 0; --i)
-! {
-! shl = (i == 3) ? &search_hl : &match_hl[i];
- while (shl->rm.regprog != NULL)
- {
- if (shl->startcol != MAXCOL
---- 3409,3432 ----
- * After end, check for start/end of next match.
- * When another match, have to check for start again.
- * Watch out for matching an empty string!
-! * Do this for 'search_hl' and the match list (ordered by
-! * priority).
- */
- v = (long)(ptr - line);
-! cur = wp->w_match_head;
-! shl_flag = FALSE;
-! while (cur != NULL || shl_flag == FALSE)
-! {
-! if (shl_flag == FALSE
-! && ((cur != NULL
-! && cur->priority > SEARCH_HL_PRIORITY)
-! || cur == NULL))
-! {
-! shl = &search_hl;
-! shl_flag = TRUE;
-! }
-! else
-! shl = &cur->hl;
- while (shl->rm.regprog != NULL)
- {
- if (shl->startcol != MAXCOL
-***************
-*** 3442,3458 ****
- }
- break;
- }
- }
-
-! /* ":match" highlighting overrules 'hlsearch' */
-! for (i = 0; i <= 3; ++i)
-! if (i == 3)
-! search_attr = search_hl.attr_cur;
-! else if (match_hl[i].attr_cur != 0)
- {
-! search_attr = match_hl[i].attr_cur;
-! break;
- }
- }
- #endif
-
---- 3474,3505 ----
- }
- break;
- }
-+ if (shl != &search_hl && cur != NULL)
-+ cur = cur->next;
- }
-
-! /* Use attributes from match with highest priority among
-! * 'search_hl' and the match list. */
-! search_attr = search_hl.attr_cur;
-! cur = wp->w_match_head;
-! shl_flag = FALSE;
-! while (cur != NULL || shl_flag == FALSE)
-! {
-! if (shl_flag == FALSE
-! && ((cur != NULL
-! && cur->priority > SEARCH_HL_PRIORITY)
-! || cur == NULL))
- {
-! shl = &search_hl;
-! shl_flag = TRUE;
- }
-+ else
-+ shl = &cur->hl;
-+ if (shl->attr_cur != 0)
-+ search_attr = shl->attr_cur;
-+ if (shl != &search_hl && cur != NULL)
-+ cur = cur->next;
-+ }
- }
- #endif
-
-***************
-*** 3613,3618 ****
---- 3660,3667 ----
- * Draw it as a space with a composing char. */
- if (utf_iscomposing(mb_c))
- {
-+ int i;
-+
- for (i = Screen_mco - 1; i > 0; --i)
- u8cc[i] = u8cc[i - 1];
- u8cc[0] = mb_c;
-***************
-*** 4256,4269 ****
- * highlight match at end of line. If it's beyond the last
- * char on the screen, just overwrite that one (tricky!) Not
- * needed when a '$' was displayed for 'list'. */
- if (lcs_eol == lcs_eol_one
- && ((area_attr != 0 && vcol == fromcol && c == NUL)
- #ifdef FEAT_SEARCH_EXTRA
- /* highlight 'hlsearch' match at end of line */
-! || ((prevcol == (long)search_hl.startcol
-! || prevcol == (long)match_hl[0].startcol
-! || prevcol == (long)match_hl[1].startcol
-! || prevcol == (long)match_hl[2].startcol)
- # if defined(LINE_ATTR)
- && did_line_attr <= 1
- # endif
---- 4305,4333 ----
- * highlight match at end of line. If it's beyond the last
- * char on the screen, just overwrite that one (tricky!) Not
- * needed when a '$' was displayed for 'list'. */
-+ #ifdef FEAT_SEARCH_EXTRA
-+ prevcol_hl_flag = FALSE;
-+ if (prevcol == (long)search_hl.startcol)
-+ prevcol_hl_flag = TRUE;
-+ else
-+ {
-+ cur = wp->w_match_head;
-+ while (cur != NULL)
-+ {
-+ if (prevcol == (long)cur->hl.startcol)
-+ {
-+ prevcol_hl_flag = TRUE;
-+ break;
-+ }
-+ cur = cur->next;
-+ }
-+ }
-+ #endif
- if (lcs_eol == lcs_eol_one
- && ((area_attr != 0 && vcol == fromcol && c == NUL)
- #ifdef FEAT_SEARCH_EXTRA
- /* highlight 'hlsearch' match at end of line */
-! || (prevcol_hl_flag == TRUE
- # if defined(LINE_ATTR)
- && did_line_attr <= 1
- # endif
-***************
-*** 4304,4318 ****
- #ifdef FEAT_SEARCH_EXTRA
- if (area_attr == 0)
- {
-! for (i = 0; i <= 3; ++i)
-! {
-! if (i == 3)
-! char_attr = search_hl.attr;
-! else if ((ptr - line) - 1 == (long)match_hl[i].startcol)
- {
-! char_attr = match_hl[i].attr;
-! break;
- }
- }
- }
- #endif
---- 4368,4394 ----
- #ifdef FEAT_SEARCH_EXTRA
- if (area_attr == 0)
- {
-! /* Use attributes from match with highest priority among
-! * 'search_hl' and the match list. */
-! char_attr = search_hl.attr;
-! cur = wp->w_match_head;
-! shl_flag = FALSE;
-! while (cur != NULL || shl_flag == FALSE)
-! {
-! if (shl_flag == FALSE
-! && ((cur != NULL
-! && cur->priority > SEARCH_HL_PRIORITY)
-! || cur == NULL))
- {
-! shl = &search_hl;
-! shl_flag = TRUE;
- }
-+ else
-+ shl = &cur->hl;
-+ if ((ptr - line) - 1 == (long)shl->startcol)
-+ char_attr = shl->attr;
-+ if (shl != &search_hl && cur != NULL)
-+ cur = cur->next;
- }
- }
- #endif
-***************
-*** 4462,4467 ****
---- 4538,4545 ----
- {
- if (mb_utf8)
- {
-+ int i;
-+
- ScreenLinesUC[off] = mb_c;
- if ((c & 0xff) == 0)
- ScreenLines[off] = 0x80; /* avoid storing zero */
-***************
-*** 6320,6326 ****
-
- #ifdef FEAT_SEARCH_EXTRA
- /*
-! * Prepare for 'searchhl' highlighting.
- */
- static void
- start_search_hl()
---- 6398,6404 ----
-
- #ifdef FEAT_SEARCH_EXTRA
- /*
-! * Prepare for 'hlsearch' highlighting.
- */
- static void
- start_search_hl()
-***************
-*** 6333,6339 ****
- }
-
- /*
-! * Clean up for 'searchhl' highlighting.
- */
- static void
- end_search_hl()
---- 6411,6417 ----
- }
-
- /*
-! * Clean up for 'hlsearch' highlighting.
- */
- static void
- end_search_hl()
-***************
-*** 6353,6370 ****
- win_T *wp;
- linenr_T lnum;
- {
-! match_T *shl; /* points to search_hl or match_hl */
- int n;
-- int i;
-
- /*
- * When using a multi-line pattern, start searching at the top
- * of the window or just after a closed fold.
-! * Do this both for search_hl and match_hl[3].
- */
-! for (i = 3; i >= 0; --i)
- {
-! shl = (i == 3) ? &search_hl : &match_hl[i];
- if (shl->rm.regprog != NULL
- && shl->lnum == 0
- && re_multiline(shl->rm.regprog))
---- 6431,6458 ----
- win_T *wp;
- linenr_T lnum;
- {
-! matchitem_T *cur; /* points to the match list */
-! match_T *shl; /* points to search_hl or a match */
-! int shl_flag; /* flag to indicate whether search_hl
-! has been processed or not */
- int n;
-
- /*
- * When using a multi-line pattern, start searching at the top
- * of the window or just after a closed fold.
-! * Do this both for search_hl and the match list.
- */
-! cur = wp->w_match_head;
-! shl_flag = FALSE;
-! while (cur != NULL || shl_flag == FALSE)
- {
-! if (shl_flag == FALSE)
-! {
-! shl = &search_hl;
-! shl_flag = TRUE;
-! }
-! else
-! shl = &cur->hl;
- if (shl->rm.regprog != NULL
- && shl->lnum == 0
- && re_multiline(shl->rm.regprog))
-***************
-*** 6399,6409 ****
- }
- }
- }
- }
- }
-
- /*
-! * Search for a next 'searchl' or ":match" match.
- * Uses shl->buf.
- * Sets shl->lnum and shl->rm contents.
- * Note: Assumes a previous match is always before "lnum", unless
---- 6487,6499 ----
- }
- }
- }
-+ if (shl != &search_hl && cur != NULL)
-+ cur = cur->next;
- }
- }
-
- /*
-! * Search for a next 'hlsearch' or match.
- * Uses shl->buf.
- * Sets shl->lnum and shl->rm contents.
- * Note: Assumes a previous match is always before "lnum", unless
-***************
-*** 6413,6419 ****
- static void
- next_search_hl(win, shl, lnum, mincol)
- win_T *win;
-! match_T *shl; /* points to search_hl or match_hl */
- linenr_T lnum;
- colnr_T mincol; /* minimal column for a match */
- {
---- 6503,6509 ----
- static void
- next_search_hl(win, shl, lnum, mincol)
- win_T *win;
-! match_T *shl; /* points to search_hl or a match */
- linenr_T lnum;
- colnr_T mincol; /* minimal column for a match */
- {
-***************
-*** 6481,6487 ****
- /* Error while handling regexp: stop using this regexp. */
- if (shl == &search_hl)
- {
-! /* don't free the regprog in match_hl[], it's a copy */
- vim_free(shl->rm.regprog);
- no_hlsearch = TRUE;
- }
---- 6571,6577 ----
- /* Error while handling regexp: stop using this regexp. */
- if (shl == &search_hl)
- {
-! /* don't free regprog in the match list, it's a copy */
- vim_free(shl->rm.regprog);
- no_hlsearch = TRUE;
- }
-*** ../vim-7.1.039/src/structs.h Thu May 10 20:32:30 2007
---- src/structs.h Wed Jul 25 21:08:46 2007
-***************
-*** 1694,1699 ****
---- 1694,1734 ----
- #define FR_COL 2 /* frame with a column of windows */
-
- /*
-+ * Struct used for highlighting 'hlsearch' matches, matches defined by
-+ * ":match" and matches defined by match functions.
-+ * For 'hlsearch' there is one pattern for all windows. For ":match" and the
-+ * match functions there is a different pattern for each window.
-+ */
-+ typedef struct
-+ {
-+ regmmatch_T rm; /* points to the regexp program; contains last found
-+ match (may continue in next line) */
-+ buf_T *buf; /* the buffer to search for a match */
-+ linenr_T lnum; /* the line to search for a match */
-+ int attr; /* attributes to be used for a match */
-+ int attr_cur; /* attributes currently active in win_line() */
-+ linenr_T first_lnum; /* first lnum to search for multi-line pat */
-+ colnr_T startcol; /* in win_line() points to char where HL starts */
-+ colnr_T endcol; /* in win_line() points to char where HL ends */
-+ } match_T;
-+
-+ /*
-+ * matchitem_T provides a linked list for storing match items for ":match" and
-+ * the match functions.
-+ */
-+ typedef struct matchitem matchitem_T;
-+ struct matchitem
-+ {
-+ matchitem_T *next;
-+ int id; /* match ID */
-+ int priority; /* match priority */
-+ char_u *pattern; /* pattern to highlight */
-+ int hlg_id; /* highlight group ID */
-+ regmmatch_T match; /* regexp program for pattern */
-+ match_T hl; /* struct for doing the actual highlighting */
-+ };
-+
-+ /*
- * Structure which contains all information that belongs to a window
- *
- * All row numbers are relative to the start of the window, except w_winrow.
-***************
-*** 1934,1942 ****
- #endif
-
- #ifdef FEAT_SEARCH_EXTRA
-! regmmatch_T w_match[3]; /* regexp programs for ":match" */
-! char_u *(w_match_pat[3]); /* patterns for ":match" */
-! int w_match_id[3]; /* highlight IDs for ":match" */
- #endif
-
- /*
---- 1969,1976 ----
- #endif
-
- #ifdef FEAT_SEARCH_EXTRA
-! matchitem_T *w_match_head; /* head of match list */
-! int w_next_match_id; /* next match ID */
- #endif
-
- /*
-*** ../vim-7.1.039/src/syntax.c Tue Jul 24 14:32:44 2007
---- src/syntax.c Tue Jul 24 15:47:01 2007
-***************
-*** 8504,8510 ****
- syn_id2name(id)
- int id;
- {
-! if (id <= 0 || id >= highlight_ga.ga_len)
- return (char_u *)"";
- return HL_TABLE()[id - 1].sg_name;
- }
---- 8504,8510 ----
- syn_id2name(id)
- int id;
- {
-! if (id <= 0 || id > highlight_ga.ga_len)
- return (char_u *)"";
- return HL_TABLE()[id - 1].sg_name;
- }
-*** ../vim-7.1.039/src/testdir/Makefile Sun Apr 30 20:48:47 2006
---- src/testdir/Makefile Tue Jul 24 15:34:33 2007
-***************
-*** 1,5 ****
- #
-! # Makefile to run al tests for Vim
- #
-
- VIMPROG = ../vim
---- 1,5 ----
- #
-! # Makefile to run all tests for Vim
- #
-
- VIMPROG = ../vim
-***************
-*** 15,21 ****
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test49.out test51.out test52.out test53.out \
- test54.out test55.out test56.out test57.out test58.out \
-! test59.out test60.out test61.out test62.out
-
- SCRIPTS_GUI = test16.out
-
---- 15,21 ----
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test49.out test51.out test52.out test53.out \
- test54.out test55.out test56.out test57.out test58.out \
-! test59.out test60.out test61.out test62.out test63.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.1.039/src/testdir/test63.in Tue Jul 24 16:45:02 2007
---- src/testdir/test63.in Tue Jul 24 15:32:30 2007
-***************
-*** 0 ****
---- 1,157 ----
-+ Test for ":match", ":2match", ":3match", "clearmatches()", "getmatches()",
-+ "matchadd()", "matcharg()", "matchdelete()", and "setmatches()".
-+
-+ STARTTEST
-+ :so small.vim
-+ :" --- Check that "matcharg()" returns the correct group and pattern if a match
-+ :" --- is defined.
-+ :let @r = "*** Test 1: "
-+ :highlight MyGroup1 ctermbg=red
-+ :highlight MyGroup2 ctermbg=green
-+ :highlight MyGroup3 ctermbg=blue
-+ :match MyGroup1 /TODO/
-+ :2match MyGroup2 /FIXME/
-+ :3match MyGroup3 /XXX/
-+ :if matcharg(1) == ['MyGroup1', 'TODO'] && matcharg(2) == ['MyGroup2', 'FIXME'] && matcharg(3) == ['MyGroup3', 'XXX']
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :" --- Check that "matcharg()" returns an empty list if the argument is not 1,
-+ :" --- 2 or 3 (only 0 and 4 are tested).
-+ :let @r .= "*** Test 2: "
-+ :if matcharg(0) == [] && matcharg(4) == []
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :" --- Check that "matcharg()" returns ['', ''] if a match is not defined.
-+ :let @r .= "*** Test 3: "
-+ :match
-+ :2match
-+ :3match
-+ :if matcharg(1) == ['', ''] && matcharg(2) == ['', ''] && matcharg(3) == ['', '']
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :" --- Check that "matchadd()" and "getmatches()" agree on added matches and
-+ :" --- that default values apply.
-+ :let @r .= "*** Test 4: "
-+ :let m1 = matchadd("MyGroup1", "TODO")
-+ :let m2 = matchadd("MyGroup2", "FIXME", 42)
-+ :let m3 = matchadd("MyGroup3", "XXX", 60, 17)
-+ :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 4}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 42, 'id': 5}, {'group': 'MyGroup3', 'pattern': 'XXX', 'priority': 60, 'id': 17}]
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :" --- Check that "matchdelete()" deletes the matches defined in the previous
-+ :" --- test correctly.
-+ :let @r .= "*** Test 5: "
-+ :call matchdelete(m1)
-+ :call matchdelete(m2)
-+ :call matchdelete(m3)
-+ :unlet m1
-+ :unlet m2
-+ :unlet m3
-+ :if getmatches() == []
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :" --- Check that "matchdelete()" returns 0 if succesfull and otherwise -1.
-+ :let @r .= "*** Test 6: "
-+ :let m = matchadd("MyGroup1", "TODO")
-+ :let r1 = matchdelete(m)
-+ :let r2 = matchdelete(42)
-+ :if r1 == 0 && r2 == -1
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :unlet m
-+ :unlet r1
-+ :unlet r2
-+ :" --- Check that "clearmatches()" clears all matches defined by ":match" and
-+ :" --- "matchadd()".
-+ :let @r .= "*** Test 7: "
-+ :let m1 = matchadd("MyGroup1", "TODO")
-+ :let m2 = matchadd("MyGroup2", "FIXME", 42)
-+ :let m3 = matchadd("MyGroup3", "XXX", 60, 17)
-+ :match MyGroup1 /COFFEE/
-+ :2match MyGroup2 /HUMPPA/
-+ :3match MyGroup3 /VIM/
-+ :call clearmatches()
-+ :if getmatches() == []
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :unlet m1
-+ :unlet m2
-+ :unlet m3
-+ :" --- Check that "setmatches()" restores a list of matches saved by
-+ :" --- "getmatches()" without changes. (Matches with equal priority must also
-+ :" --- remain in the same order.)
-+ :let @r .= "*** Test 8: "
-+ :let m1 = matchadd("MyGroup1", "TODO")
-+ :let m2 = matchadd("MyGroup2", "FIXME", 42)
-+ :let m3 = matchadd("MyGroup3", "XXX", 60, 17)
-+ :match MyGroup1 /COFFEE/
-+ :2match MyGroup2 /HUMPPA/
-+ :3match MyGroup3 /VIM/
-+ :let ml = getmatches()
-+ :call clearmatches()
-+ :call setmatches(ml)
-+ :if getmatches() == ml
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :call clearmatches()
-+ :unlet m1
-+ :unlet m2
-+ :unlet m3
-+ :unlet ml
-+ :" --- Check that "setmatches()" will not add two matches with the same ID. The
-+ :" --- expected behaviour (for now) is to add the first match but not the
-+ :" --- second and to return 0 (even though it is a matter of debate whether
-+ :" --- this can be considered succesfull behaviour).
-+ :let @r .= "*** Test 9: "
-+ :let r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}])
-+ :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}] && r1 == 0
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :call clearmatches()
-+ :unlet r1
-+ :" --- Check that "setmatches()" returns 0 if succesfull and otherwise -1.
-+ :" --- (A range of valid and invalid input values are tried out to generate the
-+ :" --- return values.)
-+ :let @r .= "*** Test 10: "
-+ :let rs1 = setmatches([])
-+ :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}])
-+ :call clearmatches()
-+ :let rf1 = setmatches(0)
-+ :let rf2 = setmatches([0])
-+ :let rf3 = setmatches([{'wrong key': 'wrong value'}])
-+ :if rs1 == 0 && rs2 == 0 && rf1 == -1 && rf2 == -1 && rf3 == -1
-+ : let @r .= "OK\n"
-+ :else
-+ : let @r .= "FAILED\n"
-+ :endif
-+ :unlet rs1
-+ :unlet rs2
-+ :unlet rf1
-+ :unlet rf2
-+ :unlet rf3
-+ :highlight clear MyGroup1
-+ :highlight clear MyGroup2
-+ :highlight clear MyGroup3
-+ G"rp
-+ :/^Results/,$wq! test.out
-+ ENDTEST
-+
-+ Results of test63:
-*** ../vim-7.1.039/src/testdir/test63.ok Tue Jul 24 16:45:02 2007
---- src/testdir/test63.ok Tue Jul 24 15:32:30 2007
-***************
-*** 0 ****
---- 1,11 ----
-+ Results of test63:
-+ *** Test 1: OK
-+ *** Test 2: OK
-+ *** Test 3: OK
-+ *** Test 4: OK
-+ *** Test 5: OK
-+ *** Test 6: OK
-+ *** Test 7: OK
-+ *** Test 8: OK
-+ *** Test 9: OK
-+ *** Test 10: OK
-*** ../vim-7.1.039/src/window.c Thu May 10 18:42:26 2007
---- src/window.c Tue Jul 24 20:38:58 2007
-***************
-*** 75,80 ****
---- 75,81 ----
- static win_T *restore_snapshot_rec __ARGS((frame_T *sn, frame_T *fr));
-
- #endif /* FEAT_WINDOWS */
-+
- static win_T *win_alloc __ARGS((win_T *after));
- static void win_new_height __ARGS((win_T *, int));
-
-***************
-*** 4128,4133 ****
---- 4129,4138 ----
- #ifdef FEAT_AUTOCMD
- --autocmd_block;
- #endif
-+ #ifdef FEAT_SEARCH_EXTRA
-+ newwin->w_match_head = NULL;
-+ newwin->w_next_match_id = 4;
-+ #endif
- }
- return newwin;
- }
-***************
-*** 4185,4195 ****
- vim_free(wp->w_tagstack[i].tagname);
-
- vim_free(wp->w_localdir);
- #ifdef FEAT_SEARCH_EXTRA
-! vim_free(wp->w_match[0].regprog);
-! vim_free(wp->w_match[1].regprog);
-! vim_free(wp->w_match[2].regprog);
- #endif
- #ifdef FEAT_JUMPLIST
- free_jumplist(wp);
- #endif
---- 4190,4200 ----
- vim_free(wp->w_tagstack[i].tagname);
-
- vim_free(wp->w_localdir);
-+
- #ifdef FEAT_SEARCH_EXTRA
-! clear_matches(wp);
- #endif
-+
- #ifdef FEAT_JUMPLIST
- free_jumplist(wp);
- #endif
-***************
-*** 6172,6176 ****
---- 6177,6351 ----
- return TRUE;
-
- return FALSE;
-+ }
-+ #endif
-+
-+ #if defined(FEAT_SEARCH_EXTRA) || defined(PROTO)
-+ /*
-+ * Add match to the match list of window 'wp'. The pattern 'pat' will be
-+ * highligted with the group 'grp' with priority 'prio'.
-+ * Optionally, a desired ID 'id' can be specified (greater than or equal to 1).
-+ * If no particular ID is desired, -1 must be specified for 'id'.
-+ * Return ID of added match, -1 on failure.
-+ */
-+ int
-+ match_add(wp, grp, pat, prio, id)
-+ win_T *wp;
-+ char_u *grp;
-+ char_u *pat;
-+ int prio;
-+ int id;
-+ {
-+ matchitem_T *cur;
-+ matchitem_T *prev;
-+ matchitem_T *m;
-+ int hlg_id;
-+ regmmatch_T match;
-+
-+ if (*grp == NUL || *pat == NUL)
-+ return -1;
-+ if (id < -1 || id == 0)
-+ {
-+ EMSGN("E799: Invalid ID: %ld (must be greater than or equal to 1)", id);
-+ return -1;
-+ }
-+ if (id != -1)
-+ {
-+ cur = wp->w_match_head;
-+ while (cur != NULL)
-+ {
-+ if (cur->id == id)
-+ {
-+ EMSGN("E801: ID already taken: %ld", id);
-+ return -1;
-+ }
-+ cur = cur->next;
-+ }
-+ }
-+ if ((hlg_id = syn_namen2id(grp, STRLEN(grp))) == 0)
-+ {
-+ EMSG2(_(e_nogroup), grp);
-+ return -1;
-+ }
-+ if ((match.regprog = vim_regcomp(pat, RE_MAGIC)) == NULL)
-+ {
-+ EMSG2(_(e_invarg2), pat);
-+ return -1;
-+ }
-+
-+ /* Find available match ID. */
-+ while (id == -1)
-+ {
-+ cur = wp->w_match_head;
-+ while (cur != NULL && cur->id != wp->w_next_match_id)
-+ cur = cur->next;
-+ if (cur == NULL)
-+ id = wp->w_next_match_id;
-+ wp->w_next_match_id++;
-+ }
-+
-+ /* Build new match. */
-+ m = (matchitem_T *)alloc(sizeof(matchitem_T));
-+ m->id = id;
-+ m->priority = prio;
-+ m->pattern = vim_strsave(pat);
-+ m->hlg_id = hlg_id;
-+ m->match.regprog = match.regprog;
-+
-+ /* Insert new match. The match list is in ascending order with regard to
-+ * the match priorities. */
-+ cur = wp->w_match_head;
-+ prev = cur;
-+ while (cur != NULL && prio >= cur->priority)
-+ {
-+ prev = cur;
-+ cur = cur->next;
-+ }
-+ if (cur == prev)
-+ wp->w_match_head = m;
-+ else
-+ prev->next = m;
-+ m->next = cur;
-+
-+ redraw_later(SOME_VALID);
-+ return id;
-+ }
-+
-+ /*
-+ * Delete match with ID 'id' in the match list of window 'wp'.
-+ * Print error messages if 'perr' is TRUE.
-+ */
-+ int
-+ match_delete(wp, id, perr)
-+ win_T *wp;
-+ int id;
-+ int perr;
-+ {
-+ matchitem_T *cur = wp->w_match_head;
-+ matchitem_T *prev = cur;
-+
-+ if (id < 1)
-+ {
-+ if (perr == TRUE)
-+ EMSGN("E802: Invalid ID: %ld (must be greater than or equal to 1)",
-+ id);
-+ return -1;
-+ }
-+ while (cur != NULL && cur->id != id)
-+ {
-+ prev = cur;
-+ cur = cur->next;
-+ }
-+ if (cur == NULL)
-+ {
-+ if (perr == TRUE)
-+ EMSGN("E803: ID not found: %ld", id);
-+ return -1;
-+ }
-+ if (cur == prev)
-+ wp->w_match_head = cur->next;
-+ else
-+ prev->next = cur->next;
-+ vim_free(cur->match.regprog);
-+ vim_free(cur->pattern);
-+ vim_free(cur);
-+ redraw_later(SOME_VALID);
-+ return 0;
-+ }
-+
-+ /*
-+ * Delete all matches in the match list of window 'wp'.
-+ */
-+ void
-+ clear_matches(wp)
-+ win_T *wp;
-+ {
-+ matchitem_T *m;
-+
-+ while (wp->w_match_head != NULL)
-+ {
-+ m = wp->w_match_head->next;
-+ vim_free(wp->w_match_head->match.regprog);
-+ vim_free(wp->w_match_head->pattern);
-+ vim_free(wp->w_match_head);
-+ wp->w_match_head = m;
-+ }
-+ redraw_later(SOME_VALID);
-+ }
-+
-+ /*
-+ * Get match from ID 'id' in window 'wp'.
-+ * Return NULL if match not found.
-+ */
-+ matchitem_T *
-+ get_match(wp, id)
-+ win_T *wp;
-+ int id;
-+ {
-+ matchitem_T *cur = wp->w_match_head;
-+
-+ while (cur != NULL && cur->id != id)
-+ cur = cur->next;
-+ return cur;
- }
- #endif
-*** ../vim-7.1.039/src/version.c Wed Jul 25 22:55:22 2007
---- src/version.c Thu Jul 26 22:50:54 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 40,
- /**/
-
---
-It is hard to understand how a cemetery raised its burial
-cost and blamed it on the cost of living.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.041 (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.1.041 (extra, after 7.1.040)
-Problem: Some changes for patch 7.1.0 are in extra files.
-Solution: Update the extra files.
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-
-*** ../vim-7.1.040/src/testdir/Make_amiga.mak Sun Apr 30 20:42:49 2006
---- src/testdir/Make_amiga.mak Tue Jul 24 15:36:00 2007
-***************
-*** 25,31 ****
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out
-
- .SUFFIXES: .in .out
-
---- 25,31 ----
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 107,109 ****
---- 107,110 ----
- test60.out: test60.in
- test61.out: test61.in
- test62.out: test62.in
-+ test63.out: test63.in
-*** ../vim-7.1.040/src/testdir/Make_dos.mak Sun Apr 30 20:41:13 2006
---- src/testdir/Make_dos.mak Tue Jul 24 15:37:47 2007
-***************
-*** 19,25 ****
- test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out \
- test55.out test56.out test57.out test58.out test59.out \
-! test60.out test61.out test62.out
-
- SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
- test8.out test9.out test11.out test13.out test14.out \
---- 19,25 ----
- test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out \
- test55.out test56.out test57.out test58.out test59.out \
-! test60.out test61.out test62.out test63.out
-
- SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
- test8.out test9.out test11.out test13.out test14.out \
-*** ../vim-7.1.040/src/testdir/Make_os2.mak Sun Apr 30 20:29:29 2006
---- src/testdir/Make_os2.mak Tue Jul 24 15:39:15 2007
-***************
-*** 25,31 ****
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out
-
- .SUFFIXES: .in .out
-
---- 25,31 ----
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.1.040/src/testdir/Make_vms.mms Sun Apr 30 20:51:12 2006
---- src/testdir/Make_vms.mms Tue Jul 24 15:39:23 2007
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2006 Apr 30
- #
- # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX.
- # Edit the lines in the Configuration section below to select.
---- 4,10 ----
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2007 Jul 24
- #
- # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX.
- # Edit the lines in the Configuration section below to select.
-***************
-*** 59,65 ****
- test43.out test44.out test45.out test46.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out
-
- .IFDEF WANT_GUI
- SCRIPT_GUI = test16.out
---- 59,65 ----
- test43.out test44.out test45.out test46.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out
-
- .IFDEF WANT_GUI
- SCRIPT_GUI = test16.out
-*** ../vim-7.1.040/src/version.c Thu Jul 26 22:55:11 2007
---- src/version.c Thu Jul 26 22:58:57 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 41,
- /**/
-
---
-Just remember...if the world didn't suck, we'd all fall off.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.042 (after 7.1.040)
-Problem: Internal error when using matchadd(). (David Larson)
-Solution: Check the third argument to be present before using the fourth
- argument. (Martin Toft)
-Files: src/eval.c
-
-
-*** ../vim-7.1.041/src/eval.c Thu Jul 26 22:55:11 2007
---- src/eval.c Fri Jul 27 21:29:39 2007
-***************
-*** 7108,7114 ****
- {"getftype", 1, 1, f_getftype},
- {"getline", 1, 2, f_getline},
- {"getloclist", 1, 1, f_getqflist},
-! {"getmatches", 0, 0, f_getmatches},
- {"getpos", 1, 1, f_getpos},
- {"getqflist", 0, 0, f_getqflist},
- {"getreg", 0, 2, f_getreg},
---- 7108,7114 ----
- {"getftype", 1, 1, f_getftype},
- {"getline", 1, 2, f_getline},
- {"getloclist", 1, 1, f_getqflist},
-! {"getmatches", 0, 0, f_getmatches},
- {"getpos", 1, 1, f_getpos},
- {"getqflist", 0, 0, f_getqflist},
- {"getreg", 0, 2, f_getreg},
-***************
-*** 12526,12534 ****
- if (grp == NULL || pat == NULL)
- return;
- if (argvars[2].v_type != VAR_UNKNOWN)
- prio = get_tv_number_chk(&argvars[2], &error);
-! if (argvars[3].v_type != VAR_UNKNOWN)
-! id = get_tv_number_chk(&argvars[3], &error);
- if (error == TRUE)
- return;
- if (id >= 1 && id <= 3)
---- 12526,12536 ----
- if (grp == NULL || pat == NULL)
- return;
- if (argvars[2].v_type != VAR_UNKNOWN)
-+ {
- prio = get_tv_number_chk(&argvars[2], &error);
-! if (argvars[3].v_type != VAR_UNKNOWN)
-! id = get_tv_number_chk(&argvars[3], &error);
-! }
- if (error == TRUE)
- return;
- if (id >= 1 && id <= 3)
-*** ../vim-7.1.041/src/version.c Thu Jul 26 23:10:50 2007
---- src/version.c Fri Jul 27 21:31:13 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 42,
- /**/
-
---
-The future isn't what it used to be.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.043
-Problem: In Ex mode using CTRL-D twice may cause a crash. Cursor isn't
- positioned properly after CTRL-D.
-Solution: Set prev_char properly. Position the cursor correctly. (Antony
- Scriven)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.042/src/ex_getln.c Tue Jul 24 14:32:44 2007
---- src/ex_getln.c Wed Jul 25 20:57:05 2007
-***************
-*** 2095,2105 ****
- garray_T line_ga;
- char_u *pend;
- int startcol = 0;
-! int c1;
- int escaped = FALSE; /* CTRL-V typed */
- int vcol = 0;
- char_u *p;
-! int prev_char = 0;
-
- /* Switch cursor on now. This avoids that it happens after the "\n", which
- * confuses the system function that computes tabstops. */
---- 2095,2105 ----
- garray_T line_ga;
- char_u *pend;
- int startcol = 0;
-! int c1 = 0;
- int escaped = FALSE; /* CTRL-V typed */
- int vcol = 0;
- char_u *p;
-! int prev_char;
-
- /* Switch cursor on now. This avoids that it happens after the "\n", which
- * confuses the system function that computes tabstops. */
-***************
-*** 2152,2157 ****
---- 2152,2158 ----
-
- /* Get one character at a time. Don't use inchar(), it can't handle
- * special characters. */
-+ prev_char = c1;
- c1 = vgetc();
-
- /*
-***************
-*** 2209,2215 ****
- redraw:
- /* redraw the line */
- msg_col = startcol;
-- windgoto(msg_row, msg_col);
- vcol = 0;
- for (p = (char_u *)line_ga.ga_data;
- p < (char_u *)line_ga.ga_data + line_ga.ga_len; ++p)
---- 2210,2215 ----
-***************
-*** 2228,2233 ****
---- 2228,2234 ----
- }
- }
- msg_clr_eos();
-+ windgoto(msg_row, msg_col);
- continue;
- }
-
-***************
-*** 2273,2279 ****
- if (IS_SPECIAL(c1))
- c1 = '?';
- ((char_u *)line_ga.ga_data)[line_ga.ga_len] = c1;
-- prev_char = c1;
- if (c1 == '\n')
- msg_putchar('\n');
- else if (c1 == TAB)
---- 2274,2279 ----
-*** ../vim-7.1.042/src/version.c Fri Jul 27 21:32:13 2007
---- src/version.c Sat Jul 28 14:19:37 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 43,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-48. You get a tatoo that says "This body best viewed with Netscape 3.1 or
- higher."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.044
-Problem: In Insert mode 0 CTRL-T deletes all indent, it should add indent.
- (Gautam Iyer)
-Solution: Check for CTRL-D typed.
-Files: src/edit.c
-
-
-*** ../vim-7.1.043/src/edit.c Thu Jun 28 12:44:56 2007
---- src/edit.c Wed Jul 25 22:50:28 2007
-***************
-*** 8000,8006 ****
- /*
- * 0^D and ^^D: remove all indent.
- */
-! if ((lastc == '0' || lastc == '^') && curwin->w_cursor.col)
- {
- --curwin->w_cursor.col;
- (void)del_char(FALSE); /* delete the '^' or '0' */
---- 8000,8007 ----
- /*
- * 0^D and ^^D: remove all indent.
- */
-! if (c == Ctrl_D && (lastc == '0' || lastc == '^')
-! && curwin->w_cursor.col > 0)
- {
- --curwin->w_cursor.col;
- (void)del_char(FALSE); /* delete the '^' or '0' */
-*** ../vim-7.1.043/src/version.c Sat Jul 28 14:21:04 2007
---- src/version.c Sun Jul 29 14:14:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 44,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-54. You start tilting your head sideways to smile. :-)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.045
-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.1.045
-Problem: Unnecessary screen redrawing. (Jjgod Jiang)
-Solution: Reset "must_redraw" after clearing the screen.
-Files: src/screen.c
-
-
-*** ../vim-7.1.044/src/screen.c Thu Jul 26 22:55:11 2007
---- src/screen.c Mon Jul 30 21:39:32 2007
-***************
-*** 331,336 ****
---- 331,341 ----
- {
- if (type < must_redraw) /* use maximal type */
- type = must_redraw;
-+
-+ /* must_redraw is reset here, so that when we run into some weird
-+ * reason to redraw while busy redrawing (e.g., asynchronous
-+ * scrolling), or update_topline() in win_update() will cause a
-+ * scroll, the screen will be redrawn later or in win_update(). */
- must_redraw = 0;
- }
-
-***************
-*** 1019,1024 ****
---- 1024,1036 ----
- type = VALID;
- }
-
-+ /* Trick: we want to avoid clearning the screen twice. screenclear() will
-+ * set "screen_cleared" to TRUE. The special value MAYBE (which is still
-+ * non-zero and thus not FALSE) will indicate that screenclear() was not
-+ * called. */
-+ if (screen_cleared)
-+ screen_cleared = MAYBE;
-+
- /*
- * If there are no changes on the screen that require a complete redraw,
- * handle three cases:
-***************
-*** 1220,1226 ****
- mid_end = wp->w_height;
- if (lastwin == firstwin)
- {
-! screenclear();
- #ifdef FEAT_WINDOWS
- /* The screen was cleared, redraw the tab pages line. */
- if (redraw_tabline)
---- 1232,1242 ----
- mid_end = wp->w_height;
- if (lastwin == firstwin)
- {
-! /* Clear the screen when it was not done by win_del_lines() or
-! * win_ins_lines() above, "screen_cleared" is FALSE or MAYBE
-! * then. */
-! if (screen_cleared != TRUE)
-! screenclear();
- #ifdef FEAT_WINDOWS
- /* The screen was cleared, redraw the tab pages line. */
- if (redraw_tabline)
-***************
-*** 1228,1233 ****
---- 1244,1256 ----
- #endif
- }
- }
-+
-+ /* When win_del_lines() or win_ins_lines() caused the screen to be
-+ * cleared (only happens for the first window) or when screenclear()
-+ * was called directly above, "must_redraw" will have been set to
-+ * NOT_VALID, need to reset it here to avoid redrawing twice. */
-+ if (screen_cleared == TRUE)
-+ must_redraw = 0;
- }
- else
- {
-*** ../vim-7.1.044/src/version.c Sun Jul 29 15:02:34 2007
---- src/version.c Mon Jul 30 21:58:06 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 45,
- /**/
-
---
-Be thankful to be in a traffic jam, because it means you own a car.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.046
-Problem: ":s" command removes combining characters. (Ron Aaron)
-Solution: Copy composing characters individually. (Chris Lubinski)
-Files: src/regexp.c
-
-
-*** ../vim-7.1.045/src/regexp.c Thu May 10 19:58:01 2007
---- src/regexp.c Fri Jul 27 21:17:47 2007
-***************
-*** 7014,7020 ****
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- {
-! int l = mb_ptr2len(s) - 1;
-
- s += l;
- len -= l;
---- 7014,7027 ----
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- {
-! int l;
-!
-! /* Copy composing characters separately, one
-! * at a time. */
-! if (enc_utf8)
-! l = utf_ptr2len(s) - 1;
-! else
-! l = mb_ptr2len(s) - 1;
-
- s += l;
- len -= l;
-*** ../vim-7.1.045/src/version.c Mon Jul 30 21:59:50 2007
---- src/version.c Mon Jul 30 22:30:02 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 46,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-57. You begin to wonder how on earth your service provider is allowed to call
- 200 hours per month "unlimited."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.047
-Problem: vim_regcomp() called with invalid argument. (Xiaozhou Liu)
-Solution: Change TRUE to RE_MAGIC + RE_STRING.
-Files: src/ex_eval.c
-
-
-*** ../vim-7.1.046/src/ex_eval.c Thu May 10 20:23:50 2007
---- src/ex_eval.c Sat Jul 28 13:09:00 2007
-***************
-*** 1551,1557 ****
- }
- save_cpo = p_cpo;
- p_cpo = (char_u *)"";
-! regmatch.regprog = vim_regcomp(pat, TRUE);
- regmatch.rm_ic = FALSE;
- if (end != NULL)
- *end = save_char;
---- 1551,1557 ----
- }
- save_cpo = p_cpo;
- p_cpo = (char_u *)"";
-! regmatch.regprog = vim_regcomp(pat, RE_MAGIC + RE_STRING);
- regmatch.rm_ic = FALSE;
- if (end != NULL)
- *end = save_char;
-*** ../vim-7.1.046/src/version.c Mon Jul 30 22:32:11 2007
---- src/version.c Wed Aug 1 15:46:28 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 47,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-80. At parties, you introduce your spouse as your "service provider."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.048
-Problem: The matchparen plugin doesn't update the match when scrolling with
- the mouse wheel. (Ilya Bobir)
-Solution: Set the match highlighting for text that can be scrolled into the
- viewable area without moving the cursor. (Chris Lubinski)
-Files: runtime/plugin/matchparen.vim
-
-
-*** ../vim-7.1.047/runtime/plugin/matchparen.vim Sun May 6 14:26:16 2007
---- runtime/plugin/matchparen.vim Mon Jul 30 21:14:06 2007
-***************
-*** 1,6 ****
- " Vim plugin for showing matching parens
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2006 Oct 12
-
- " Exit quickly when:
- " - this plugin was already loaded (or disabled)
---- 1,6 ----
- " Vim plugin for showing matching parens
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 Jul 30
-
- " Exit quickly when:
- " - this plugin was already loaded (or disabled)
-***************
-*** 62,86 ****
- " Figure out the arguments for searchpairpos().
- " Restrict the search to visible lines with "stopline".
- " And avoid searching very far (e.g., for closed folds and long lines)
- if i % 2 == 0
- let s_flags = 'nW'
- let c2 = plist[i + 1]
- if has("byte_offset") && has("syntax_items") && &smc > 0
- let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
-! let stopline = min([line('w$'), byte2line(stopbyte)])
- else
-! let stopline = min([line('w$'), c_lnum + 100])
- endif
- else
- let s_flags = 'nbW'
- let c2 = c
- let c = plist[i - 1]
- if has("byte_offset") && has("syntax_items") && &smc > 0
- let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
-! let stopline = max([line('w0'), byte2line(stopbyte)])
- else
-! let stopline = max([line('w0'), c_lnum - 100])
- endif
- endif
- if c == '['
- let c = '\['
---- 62,98 ----
- " Figure out the arguments for searchpairpos().
- " Restrict the search to visible lines with "stopline".
- " And avoid searching very far (e.g., for closed folds and long lines)
-+ " The "viewable" variables give a range in which we can scroll while keeping
-+ " the cursor at the same position
-+ " adjustedScrolloff accounts for very large numbers of scrolloff
-+ let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
-+ let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
-+ let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
-+ " one of these stoplines will be adjusted below, but the current values are
-+ " minimal boundaries within the current window
-+ let stoplinebottom = line('w$')
-+ let stoplinetop = line('w0')
- if i % 2 == 0
- let s_flags = 'nW'
- let c2 = plist[i + 1]
- if has("byte_offset") && has("syntax_items") && &smc > 0
- let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
-! let stopline = min([bottom_viewable, byte2line(stopbyte)])
- else
-! let stopline = min([bottom_viewable, c_lnum + 100])
- endif
-+ let stoplinebottom = stopline
- else
- let s_flags = 'nbW'
- let c2 = c
- let c = plist[i - 1]
- if has("byte_offset") && has("syntax_items") && &smc > 0
- let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
-! let stopline = max([top_viewable, byte2line(stopbyte)])
- else
-! let stopline = max([top_viewable, c_lnum - 100])
- endif
-+ let stoplinetop = stopline
- endif
- if c == '['
- let c = '\['
-***************
-*** 106,112 ****
- endif
-
- " If a match is found setup match highlighting.
-! if m_lnum > 0 && m_lnum >= line('w0') && m_lnum <= line('w$')
- exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
- \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
- let w:paren_hl_on = 1
---- 118,124 ----
- endif
-
- " If a match is found setup match highlighting.
-! if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
- exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
- \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
- let w:paren_hl_on = 1
-*** ../vim-7.1.047/src/version.c Wed Aug 1 15:47:06 2007
---- src/version.c Thu Aug 2 22:59:07 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 48,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-91. It's Saturday afternoon in the middle of May and you
- are on computer.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.049
-Problem: Cannot compile GTK2 version with Hangul input feature.
-Solution: Don't define FEAT_XFONTSET when using GTK2.
-Files: src/feature.h
-
-
-*** ../vim-7.1.048/src/feature.h Thu May 10 19:43:24 2007
---- src/feature.h Fri Aug 3 19:32:56 2007
-***************
-*** 673,679 ****
- # define ESC_CHG_TO_ENG_MODE /* if defined, when ESC pressed,
- * turn to english mode
- */
-! # if !defined(FEAT_XFONTSET) && defined(HAVE_X11)
- # define FEAT_XFONTSET /* Hangul input requires xfontset */
- # endif
- # if defined(FEAT_XIM) && !defined(LINT)
---- 673,679 ----
- # define ESC_CHG_TO_ENG_MODE /* if defined, when ESC pressed,
- * turn to english mode
- */
-! # if !defined(FEAT_XFONTSET) && defined(HAVE_X11) && !defined(HAVE_GTK2)
- # define FEAT_XFONTSET /* Hangul input requires xfontset */
- # endif
- # if defined(FEAT_XIM) && !defined(LINT)
-*** ../vim-7.1.048/src/version.c Thu Aug 2 23:00:06 2007
---- src/version.c Fri Aug 3 21:58:23 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 49,
- /**/
-
---
-From "know your smileys":
- :-O>-o Smiley American tourist (note big mouth and camera)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.050
-Problem: Possible crash when using C++ indenting. (Chris Monson)
-Solution: Keep the line pointer to the line to compare with. Avoid going
- past the end of line.
-Files: src/misc1.c
-
-
-*** ../vim-7.1.049/src/misc1.c Tue Jul 24 15:25:27 2007
---- src/misc1.c Fri Aug 3 21:07:17 2007
-***************
-*** 4820,4826 ****
- static int cin_iswhileofdo __ARGS((char_u *, linenr_T, int));
- static int cin_iswhileofdo_end __ARGS((int terminated, int ind_maxparen, int ind_maxcomment));
- static int cin_isbreak __ARGS((char_u *));
-! static int cin_is_cpp_baseclass __ARGS((char_u *line, colnr_T *col));
- static int get_baseclass_amount __ARGS((int col, int ind_maxparen, int ind_maxcomment, int ind_cpp_baseclass));
- static int cin_ends_in __ARGS((char_u *, char_u *, char_u *));
- static int cin_skip2pos __ARGS((pos_T *trypos));
---- 4820,4826 ----
- static int cin_iswhileofdo __ARGS((char_u *, linenr_T, int));
- static int cin_iswhileofdo_end __ARGS((int terminated, int ind_maxparen, int ind_maxcomment));
- static int cin_isbreak __ARGS((char_u *));
-! static int cin_is_cpp_baseclass __ARGS((colnr_T *col));
- static int get_baseclass_amount __ARGS((int col, int ind_maxparen, int ind_maxcomment, int ind_cpp_baseclass));
- static int cin_ends_in __ARGS((char_u *, char_u *, char_u *));
- static int cin_skip2pos __ARGS((pos_T *trypos));
-***************
-*** 5585,5597 ****
- * This is a lot of guessing. Watch out for "cond ? func() : foo".
- */
- static int
-! cin_is_cpp_baseclass(line, col)
-! char_u *line;
- colnr_T *col; /* return: column to align with */
- {
- char_u *s;
- int class_or_struct, lookfor_ctor_init, cpp_base_class;
- linenr_T lnum = curwin->w_cursor.lnum;
-
- *col = 0;
-
---- 5585,5597 ----
- * This is a lot of guessing. Watch out for "cond ? func() : foo".
- */
- static int
-! cin_is_cpp_baseclass(col)
- colnr_T *col; /* return: column to align with */
- {
- char_u *s;
- int class_or_struct, lookfor_ctor_init, cpp_base_class;
- linenr_T lnum = curwin->w_cursor.lnum;
-+ char_u *line = ml_get_curline();
-
- *col = 0;
-
-***************
-*** 5619,5625 ****
- */
- while (lnum > 1)
- {
-! s = skipwhite(ml_get(lnum - 1));
- if (*s == '#' || *s == NUL)
- break;
- while (*s != NUL)
---- 5619,5626 ----
- */
- while (lnum > 1)
- {
-! line = ml_get(lnum - 1);
-! s = skipwhite(line);
- if (*s == '#' || *s == NUL)
- break;
- while (*s != NUL)
-***************
-*** 5636,5642 ****
- --lnum;
- }
-
-! s = cin_skipcomment(ml_get(lnum));
- for (;;)
- {
- if (*s == NUL)
---- 5637,5644 ----
- --lnum;
- }
-
-! line = ml_get(lnum);
-! s = cin_skipcomment(line);
- for (;;)
- {
- if (*s == NUL)
-***************
-*** 5644,5650 ****
- if (lnum == curwin->w_cursor.lnum)
- break;
- /* Continue in the cursor line. */
-! s = cin_skipcomment(ml_get(++lnum));
- }
-
- if (s[0] == ':')
---- 5646,5655 ----
- if (lnum == curwin->w_cursor.lnum)
- break;
- /* Continue in the cursor line. */
-! line = ml_get(++lnum);
-! s = cin_skipcomment(line);
-! if (*s == NUL)
-! continue;
- }
-
- if (s[0] == ':')
-***************
-*** 7113,7119 ****
- n = FALSE;
- if (lookfor != LOOKFOR_TERM && ind_cpp_baseclass > 0)
- {
-! n = cin_is_cpp_baseclass(l, &col);
- l = ml_get_curline();
- }
- if (n)
---- 7118,7124 ----
- n = FALSE;
- if (lookfor != LOOKFOR_TERM && ind_cpp_baseclass > 0)
- {
-! n = cin_is_cpp_baseclass(&col);
- l = ml_get_curline();
- }
- if (n)
-***************
-*** 7704,7710 ****
- n = FALSE;
- if (ind_cpp_baseclass != 0 && theline[0] != '{')
- {
-! n = cin_is_cpp_baseclass(l, &col);
- l = ml_get_curline();
- }
- if (n)
---- 7709,7715 ----
- n = FALSE;
- if (ind_cpp_baseclass != 0 && theline[0] != '{')
- {
-! n = cin_is_cpp_baseclass(&col);
- l = ml_get_curline();
- }
- if (n)
-*** ../vim-7.1.049/src/version.c Fri Aug 3 22:01:35 2007
---- src/version.c Sat Aug 4 12:11:51 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 50,
- /**/
-
---
-From "know your smileys":
- |-P Reaction to unusually ugly C code
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.051
-Problem: Accessing uninitialized memory when finding spell suggestions.
-Solution: Don't try swapping characters at the end of a word.
-Files: src/spell.c
-
-
-*** ../vim-7.1.050/src/spell.c Tue Jul 24 10:44:10 2007
---- src/spell.c Sun Aug 5 16:59:48 2007
-***************
-*** 12182,12188 ****
- {
- n = mb_cptr2len(p);
- c = mb_ptr2char(p);
-! if (!soundfold && !spell_iswordp(p + n, curbuf))
- c2 = c; /* don't swap non-word char */
- else
- c2 = mb_ptr2char(p + n);
---- 12182,12190 ----
- {
- n = mb_cptr2len(p);
- c = mb_ptr2char(p);
-! if (p[n] == NUL)
-! c2 = NUL;
-! else if (!soundfold && !spell_iswordp(p + n, curbuf))
- c2 = c; /* don't swap non-word char */
- else
- c2 = mb_ptr2char(p + n);
-***************
-*** 12190,12199 ****
- else
- #endif
- {
-! if (!soundfold && !spell_iswordp(p + 1, curbuf))
- c2 = c; /* don't swap non-word char */
- else
- c2 = p[1];
- }
-
- /* When characters are identical, swap won't do anything.
---- 12192,12210 ----
- else
- #endif
- {
-! if (p[1] == NUL)
-! c2 = NUL;
-! else if (!soundfold && !spell_iswordp(p + 1, curbuf))
- c2 = c; /* don't swap non-word char */
- else
- c2 = p[1];
-+ }
-+
-+ /* When the second character is NUL we can't swap. */
-+ if (c2 == NUL)
-+ {
-+ sp->ts_state = STATE_REP_INI;
-+ break;
- }
-
- /* When characters are identical, swap won't do anything.
-*** ../vim-7.1.050/src/version.c Sat Aug 4 12:14:04 2007
---- src/version.c Sun Aug 5 18:31:09 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 51,
- /**/
-
---
-From "know your smileys":
- 8<}} Glasses, big nose, beard
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.052
-Problem: When creating a new match not all fields are initialized, which
- may lead to unpredictable results.
-Solution: Initialise rmm_ic and rmm_maxcol.
-Files: src/window.c
-
-
-*** ../vim-7.1.051/src/window.c Thu Jul 26 22:55:11 2007
---- src/window.c Sun Aug 5 17:17:51 2007
-***************
-*** 6200,6206 ****
- matchitem_T *prev;
- matchitem_T *m;
- int hlg_id;
-! regmmatch_T match;
-
- if (*grp == NUL || *pat == NUL)
- return -1;
---- 6243,6249 ----
- matchitem_T *prev;
- matchitem_T *m;
- int hlg_id;
-! regprog_T *regprog;
-
- if (*grp == NUL || *pat == NUL)
- return -1;
-***************
-*** 6227,6233 ****
- EMSG2(_(e_nogroup), grp);
- return -1;
- }
-! if ((match.regprog = vim_regcomp(pat, RE_MAGIC)) == NULL)
- {
- EMSG2(_(e_invarg2), pat);
- return -1;
---- 6270,6276 ----
- EMSG2(_(e_nogroup), grp);
- return -1;
- }
-! if ((regprog = vim_regcomp(pat, RE_MAGIC)) == NULL)
- {
- EMSG2(_(e_invarg2), pat);
- return -1;
-***************
-*** 6250,6256 ****
- m->priority = prio;
- m->pattern = vim_strsave(pat);
- m->hlg_id = hlg_id;
-! m->match.regprog = match.regprog;
-
- /* Insert new match. The match list is in ascending order with regard to
- * the match priorities. */
---- 6293,6301 ----
- m->priority = prio;
- m->pattern = vim_strsave(pat);
- m->hlg_id = hlg_id;
-! m->match.regprog = regprog;
-! m->match.rmm_ic = FALSE;
-! m->match.rmm_maxcol = 0;
-
- /* Insert new match. The match list is in ascending order with regard to
- * the match priorities. */
-*** ../vim-7.1.051/src/version.c Sun Aug 5 18:32:21 2007
---- src/version.c Sun Aug 5 18:47:55 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 52,
- /**/
-
---
-From "know your smileys":
- 8-O "Omigod!!" (done "rm -rf *" ?)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.053
-Problem: Accessing uninitialized memory when giving a message.
-Solution: Check going the length before checking for a NUL byte.
-Files: src/message.c
-
-
-*** ../vim-7.1.052/src/message.c Thu Jul 5 10:10:29 2007
---- src/message.c Sat Aug 4 23:13:58 2007
-***************
-*** 1842,1848 ****
- int wrap;
-
- did_wait_return = FALSE;
-! while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
- {
- /*
- * We are at the end of the screen line when:
---- 1842,1848 ----
- int wrap;
-
- did_wait_return = FALSE;
-! while ((maxlen < 0 || (int)(s - str) < maxlen) && *s != NUL)
- {
- /*
- * We are at the end of the screen line when:
-*** ../vim-7.1.052/src/version.c Sun Aug 5 18:49:07 2007
---- src/version.c Sun Aug 5 19:18:46 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 53,
- /**/
-
---
-From "know your smileys":
- <>:-) Bishop
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.054
-Problem: Accessing uninitialized memory when displaying the fold column.
-Solution: Add a NUL to the extra array. (Dominique Pelle). Also do this in
- a couple of other situations.
-Files: src/screen.c
-
-
-*** ../vim-7.1.053/src/screen.c Mon Jul 30 21:59:50 2007
---- src/screen.c Sun Aug 5 16:10:53 2007
-***************
-*** 2555,2561 ****
-
- char_u extra[18]; /* "%ld" and 'fdc' must fit in here */
- int n_extra = 0; /* number of extra chars */
-! char_u *p_extra = NULL; /* string of extra chars */
- int c_extra = NUL; /* extra chars, all the same */
- int extra_attr = 0; /* attributes when n_extra != 0 */
- static char_u *at_end_str = (char_u *)""; /* used for p_extra when
---- 2555,2561 ----
-
- char_u extra[18]; /* "%ld" and 'fdc' must fit in here */
- int n_extra = 0; /* number of extra chars */
-! char_u *p_extra = NULL; /* string of extra chars, plus NUL */
- int c_extra = NUL; /* extra chars, all the same */
- int extra_attr = 0; /* attributes when n_extra != 0 */
- static char_u *at_end_str = (char_u *)""; /* used for p_extra when
-***************
-*** 3189,3198 ****
- if (cmdwin_type != 0 && wp == curwin)
- {
- /* Draw the cmdline character. */
-- *extra = cmdwin_type;
- n_extra = 1;
-! p_extra = extra;
-! c_extra = NUL;
- char_attr = hl_attr(HLF_AT);
- }
- }
---- 3189,3196 ----
- if (cmdwin_type != 0 && wp == curwin)
- {
- /* Draw the cmdline character. */
- n_extra = 1;
-! c_extra = cmdwin_type;
- char_attr = hl_attr(HLF_AT);
- }
- }
-***************
-*** 3208,3213 ****
---- 3206,3212 ----
- fill_foldcolumn(extra, wp, FALSE, lnum);
- n_extra = wp->w_p_fdc;
- p_extra = extra;
-+ p_extra[n_extra] = NUL;
- c_extra = NUL;
- char_attr = hl_attr(HLF_FC);
- }
-***************
-*** 3550,3558 ****
- * Get the next character to put on the screen.
- */
- /*
-! * The 'extra' array contains the extra stuff that is inserted to
-! * represent special characters (non-printable stuff). When all
-! * characters are the same, c_extra is used.
- * For the '$' of the 'list' option, n_extra == 1, p_extra == "".
- */
- if (n_extra > 0)
---- 3549,3559 ----
- * Get the next character to put on the screen.
- */
- /*
-! * The "p_extra" points to the extra stuff that is inserted to
-! * represent special characters (non-printable stuff) and other
-! * things. When all characters are the same, c_extra is used.
-! * "p_extra" must end in a NUL to avoid mb_ptr2len() reads past
-! * "p_extra[n_extra]".
- * For the '$' of the 'list' option, n_extra == 1, p_extra == "".
- */
- if (n_extra > 0)
-***************
-*** 3808,3817 ****
- * a '<' in the first column. */
- if (n_skip > 0 && mb_l > 1)
- {
-- extra[0] = '<';
-- p_extra = extra;
- n_extra = 1;
-! c_extra = NUL;
- c = ' ';
- if (area_attr == 0 && search_attr == 0)
- {
---- 3809,3816 ----
- * a '<' in the first column. */
- if (n_skip > 0 && mb_l > 1)
- {
- n_extra = 1;
-! c_extra = '<';
- c = ' ';
- if (area_attr == 0 && search_attr == 0)
- {
-***************
-*** 6204,6211 ****
- return;
-
- off = LineOffset[row] + col;
-! while (*ptr != NUL && col < screen_Columns
-! && (len < 0 || (int)(ptr - text) < len))
- {
- c = *ptr;
- #ifdef FEAT_MBYTE
---- 6203,6211 ----
- return;
-
- off = LineOffset[row] + col;
-! while (col < screen_Columns
-! && (len < 0 || (int)(ptr - text) < len)
-! && *ptr != NUL)
- {
- c = *ptr;
- #ifdef FEAT_MBYTE
-*** ../vim-7.1.053/src/version.c Sun Aug 5 19:20:04 2007
---- src/version.c Sun Aug 5 20:07:47 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 54,
- /**/
-
---
-From "know your smileys":
- +<(:-) The Pope
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.055
-Problem: Using strcpy() with arguments that overlap.
-Solution: Use mch_memmove() instead.
-Files: src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c,
- src/misc1.c, src/regexp.c, src/termlib.c
-
-
-*** ../vim-7.1.054/src/buffer.c Tue Jun 19 15:40:51 2007
---- src/buffer.c Sun Aug 5 16:14:03 2007
-***************
-*** 4860,4866 ****
- */
- for (e = s; *e != ':' && *e != NUL; ++e)
- if (e[0] == '\\' && e[1] == ':')
-! STRCPY(e, e + 1);
- if (*e == NUL)
- end = TRUE;
-
---- 4860,4866 ----
- */
- for (e = s; *e != ':' && *e != NUL; ++e)
- if (e[0] == '\\' && e[1] == ':')
-! mch_memmove(e, e + 1, STRLEN(e));
- if (*e == NUL)
- end = TRUE;
-
-*** ../vim-7.1.054/src/charset.c Tue Mar 27 12:41:45 2007
---- src/charset.c Sun Aug 5 21:53:44 2007
-***************
-*** 1898,1904 ****
- {
- for ( ; *p; ++p)
- if (rem_backslash(p))
-! STRCPY(p, p + 1);
- }
-
- /*
---- 1898,1904 ----
- {
- for ( ; *p; ++p)
- if (rem_backslash(p))
-! mch_memmove(p, p + 1, STRLEN(p));
- }
-
- /*
-*** ../vim-7.1.054/src/eval.c Fri Jul 27 21:32:13 2007
---- src/eval.c Sun Aug 5 16:25:03 2007
-***************
-*** 13807,13813 ****
- }
- /* Shorten "remain". */
- if (*q != NUL)
-! STRCPY(remain, q - 1);
- else
- {
- vim_free(remain);
---- 13807,13813 ----
- }
- /* Shorten "remain". */
- if (*q != NUL)
-! mch_memmove(remain, q - 1, STRLEN(q - 1) + 1);
- else
- {
- vim_free(remain);
-*** ../vim-7.1.054/src/ex_getln.c Sat Jul 28 14:21:04 2007
---- src/ex_getln.c Sun Aug 5 21:55:56 2007
-***************
-*** 4306,4315 ****
- && pat[i + 1] == '\\'
- && pat[i + 2] == '\\'
- && pat[i + 3] == ' ')
-! STRCPY(pat + i, pat + i + 3);
- if (xp->xp_backslash == XP_BS_ONE
- && pat[i + 1] == ' ')
-! STRCPY(pat + i, pat + i + 1);
- }
- }
-
---- 4306,4316 ----
- && pat[i + 1] == '\\'
- && pat[i + 2] == '\\'
- && pat[i + 3] == ' ')
-! mch_memmove(pat + i, pat + i + 3,
-! STRLEN(pat + i + 3) + 1);
- if (xp->xp_backslash == XP_BS_ONE
- && pat[i + 1] == ' ')
-! mch_memmove(pat + i, pat + i + 1, STRLEN(pat + i));
- }
- }
-
-***************
-*** 4552,4558 ****
- pat = vim_strsave(filepat);
- for (i = 0; pat[i]; ++i)
- if (pat[i] == '\\' && pat[i + 1] == ' ')
-! STRCPY(pat + i, pat + i + 1);
-
- flags |= EW_FILE | EW_EXEC;
-
---- 4553,4559 ----
- pat = vim_strsave(filepat);
- for (i = 0; pat[i]; ++i)
- if (pat[i] == '\\' && pat[i + 1] == ' ')
-! mch_memmove(pat + i, pat + i + 1, STRLEN(pat + i));
-
- flags |= EW_FILE | EW_EXEC;
-
-*** ../vim-7.1.054/src/misc1.c Sat Aug 4 12:14:04 2007
---- src/misc1.c Sun Aug 5 21:57:15 2007
-***************
-*** 8635,8641 ****
- for (p = buf + wildoff; p < s; ++p)
- if (rem_backslash(p))
- {
-! STRCPY(p, p + 1);
- --e;
- --s;
- }
---- 8635,8641 ----
- for (p = buf + wildoff; p < s; ++p)
- if (rem_backslash(p))
- {
-! mch_memmove(p, p + 1, STRLEN(p));
- --e;
- --s;
- }
-***************
-*** 8936,8942 ****
- for (p = buf + wildoff; p < s; ++p)
- if (rem_backslash(p))
- {
-! STRCPY(p, p + 1);
- --e;
- --s;
- }
---- 8936,8942 ----
- for (p = buf + wildoff; p < s; ++p)
- if (rem_backslash(p))
- {
-! mch_memmove(p, p + 1, STRLEN(p));
- --e;
- --s;
- }
-*** ../vim-7.1.054/src/regexp.c Mon Jul 30 22:32:11 2007
---- src/regexp.c Sun Aug 5 15:43:27 2007
-***************
-*** 6637,6645 ****
- }
- }
- else if (magic)
-! STRCPY(p, p + 1); /* remove '~' */
- else
-! STRCPY(p, p + 2); /* remove '\~' */
- --p;
- }
- else
---- 6638,6646 ----
- }
- }
- else if (magic)
-! mch_memmove(p, p + 1, STRLEN(p)); /* remove '~' */
- else
-! mch_memmove(p, p + 2, STRLEN(p) - 1); /* remove '\~' */
- --p;
- }
- else
-*** ../vim-7.1.054/src/termlib.c Thu May 10 20:20:59 2007
---- src/termlib.c Sun Aug 5 21:52:41 2007
-***************
-*** 191,197 ****
- lbuf[0] == '\t' &&
- lbuf[1] == ':')
- {
-! strcpy(lbuf, lbuf+2);
- llen -= 2;
- }
- if (lbuf[llen-2] == '\\') /* and continuations */
---- 191,197 ----
- lbuf[0] == '\t' &&
- lbuf[1] == ':')
- {
-! mch_memmove(lbuf, lbuf + 2, strlen(lbuf + 2) + 1);
- llen -= 2;
- }
- if (lbuf[llen-2] == '\\') /* and continuations */
-*** ../vim-7.1.054/src/version.c Sun Aug 5 20:10:16 2007
---- src/version.c Mon Aug 6 21:34:54 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 55,
- /**/
-
---
-From "know your smileys":
- % Bike accident. A bit far-fetched, I suppose; although...
- o _ _ _
- _o /\_ _ \\o (_)\__/o (_)
- _< \_ _>(_) (_)/<_ \_| \ _|/' \/
- (_)>(_) (_) (_) (_) (_)' _\o_
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.056
-Problem: More prompt does not behave correctly after scrolling back.
- (Randall W. Morris)
-Solution: Avoid lines_left becomes negative. (Chris Lubinski) Don't check
- mp_last when deciding to show the more prompt. (Martin Toft)
-Files: src/message.c
-
-
-*** ../vim-7.1.055/src/message.c Sun Aug 5 19:20:04 2007
---- src/message.c Tue Aug 7 21:52:10 2007
-***************
-*** 1878,1884 ****
- /* output postponed text */
- t_puts(&t_col, t_s, s, attr);
-
-! /* When no more prompt an no more room, truncate here */
- if (msg_no_more && lines_left == 0)
- break;
-
---- 1878,1884 ----
- /* output postponed text */
- t_puts(&t_col, t_s, s, attr);
-
-! /* When no more prompt and no more room, truncate here */
- if (msg_no_more && lines_left == 0)
- break;
-
-***************
-*** 1927,1933 ****
- * If screen is completely filled and 'more' is set then wait
- * for a character.
- */
-! --lines_left;
- if (p_more && lines_left == 0 && State != HITRETURN
- && !msg_no_more && !exmode_active)
- {
---- 1927,1934 ----
- * If screen is completely filled and 'more' is set then wait
- * for a character.
- */
-! if (lines_left > 0)
-! --lines_left;
- if (p_more && lines_left == 0 && State != HITRETURN
- && !msg_no_more && !exmode_active)
- {
-***************
-*** 2234,2240 ****
- {
- msgchunk_T *mp;
-
-! /* Only show somethign if there is more than one line, otherwise it looks
- * weird, typing a command without output results in one line. */
- mp = msg_sb_start(last_msgchunk);
- if (mp == NULL || mp->sb_prev == NULL)
---- 2235,2241 ----
- {
- msgchunk_T *mp;
-
-! /* Only show something if there is more than one line, otherwise it looks
- * weird, typing a command without output results in one line. */
- mp = msg_sb_start(last_msgchunk);
- if (mp == NULL || mp->sb_prev == NULL)
-***************
-*** 2622,2628 ****
- }
- }
-
-! if (scroll < 0 || (scroll == 0 && mp_last != NULL))
- {
- /* displayed the requested text, more prompt again */
- screen_fill((int)Rows - 1, (int)Rows, 0,
---- 2623,2629 ----
- }
- }
-
-! if (scroll <= 0)
- {
- /* displayed the requested text, more prompt again */
- screen_fill((int)Rows - 1, (int)Rows, 0,
-*** ../vim-7.1.055/src/version.c Mon Aug 6 22:27:13 2007
---- src/version.c Tue Aug 7 21:57:02 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 56,
- /**/
-
---
-From "know your smileys":
- :-| :-| Deja' vu!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.057
-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.1.057
-Problem: Problem with CursorHoldI when using "r" in Visual mode (Max
- Dyckhoff)
-Solution: Ignore CursorHold(I) when getting a second character for a Normal
- mode command. Also abort the "r" command in Visual when a special
- key is typed.
-Files: src/normal.c
-
-
-*** ../vim-7.1.056/src/normal.c Tue Jul 10 14:02:51 2007
---- src/normal.c Sun Aug 5 21:57:43 2007
-***************
-*** 889,894 ****
---- 889,899 ----
-
- ++no_mapping;
- ++allow_keys; /* no mapping for nchar, but allow key codes */
-+ #ifdef FEAT_AUTOCMD
-+ /* Don't generate a CursorHold event here, most commands can't handle
-+ * it, e.g., nv_replace(), nv_csearch(). */
-+ did_cursorhold = TRUE;
-+ #endif
- if (ca.cmdchar == 'g')
- {
- /*
-***************
-*** 6662,6667 ****
---- 6668,6680 ----
- else
- had_ctrl_v = NUL;
-
-+ /* Abort if the character is a special key. */
-+ if (IS_SPECIAL(cap->nchar))
-+ {
-+ clearopbeep(cap->oap);
-+ return;
-+ }
-+
- #ifdef FEAT_VISUAL
- /* Visual mode "r" */
- if (VIsual_active)
-***************
-*** 6688,6698 ****
- }
- #endif
-
-! /*
-! * Check for a special key or not enough characters to replace.
-! */
- ptr = ml_get_cursor();
-! if (IS_SPECIAL(cap->nchar) || STRLEN(ptr) < (unsigned)cap->count1
- #ifdef FEAT_MBYTE
- || (has_mbyte && mb_charlen(ptr) < cap->count1)
- #endif
---- 6701,6709 ----
- }
- #endif
-
-! /* Abort if not enough characters to replace. */
- ptr = ml_get_cursor();
-! if (STRLEN(ptr) < (unsigned)cap->count1
- #ifdef FEAT_MBYTE
- || (has_mbyte && mb_charlen(ptr) < cap->count1)
- #endif
-*** ../vim-7.1.056/src/version.c Tue Aug 7 21:59:26 2007
---- src/version.c Wed Aug 8 21:39:43 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 57,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-95. Only communication in your household is through email.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.058
-Problem: When 'rightleft' is set the completion menu is positioned wrong.
- (Baha-Eddine MOKADEM)
-Solution: Fix the completion menu. (Martin Toft)
-Files: src/popupmnu.c, src/proto/search.pro, src/search.c
-
-
-*** ../vim-7.1.057/src/popupmnu.c Thu Jun 28 21:23:52 2007
---- src/popupmnu.c Wed Aug 1 15:43:06 2007
-***************
-*** 75,81 ****
-
- row = curwin->w_cline_row + W_WINROW(curwin);
- height = curwin->w_cline_height;
-- col = curwin->w_wcol + W_WINCOL(curwin) - curwin->w_leftcol;
-
- if (firstwin->w_p_pvw)
- top_clear = firstwin->w_height;
---- 75,80 ----
-***************
-*** 167,172 ****
---- 166,180 ----
- pum_base_width = max_width;
- pum_kind_width = kind_width;
-
-+ /* Calculate column */
-+ #ifdef FEAT_RIGHTLEFT
-+ if (curwin->w_p_rl)
-+ col = W_WINCOL(curwin) + W_WIDTH(curwin) - curwin->w_wcol -
-+ curwin->w_leftcol - 1;
-+ else
-+ #endif
-+ col = W_WINCOL(curwin) + curwin->w_wcol - curwin->w_leftcol;
-+
- /* if there are more items than room we need a scrollbar */
- if (pum_height < size)
- {
-***************
-*** 179,189 ****
- if (def_width < max_width)
- def_width = max_width;
-
-! if (col < Columns - PUM_DEF_WIDTH || col < Columns - max_width)
- {
- /* align pum column with "col" */
- pum_col = col;
-! pum_width = Columns - pum_col - pum_scrollbar;
- if (pum_width > max_width + kind_width + extra_width + 1
- && pum_width > PUM_DEF_WIDTH)
- {
---- 187,209 ----
- if (def_width < max_width)
- def_width = max_width;
-
-! if (((col < Columns - PUM_DEF_WIDTH || col < Columns - max_width)
-! #ifdef FEAT_RIGHTLEFT
-! && !curwin->w_p_rl)
-! || (curwin->w_p_rl && (col > PUM_DEF_WIDTH || col > max_width)
-! #endif
-! ))
- {
- /* align pum column with "col" */
- pum_col = col;
-!
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
-! pum_width = pum_col - pum_scrollbar + 1;
-! else
-! #endif
-! pum_width = Columns - pum_col - pum_scrollbar;
-!
- if (pum_width > max_width + kind_width + extra_width + 1
- && pum_width > PUM_DEF_WIDTH)
- {
-***************
-*** 195,208 ****
- else if (Columns < def_width)
- {
- /* not enough room, will use what we have */
-! pum_col = 0;
- pum_width = Columns - 1;
- }
- else
- {
- if (max_width > PUM_DEF_WIDTH)
- max_width = PUM_DEF_WIDTH; /* truncate */
-! pum_col = Columns - max_width;
- pum_width = max_width - pum_scrollbar;
- }
-
---- 215,238 ----
- else if (Columns < def_width)
- {
- /* not enough room, will use what we have */
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
-! pum_col = Columns - 1;
-! else
-! #endif
-! pum_col = 0;
- pum_width = Columns - 1;
- }
- else
- {
- if (max_width > PUM_DEF_WIDTH)
- max_width = PUM_DEF_WIDTH; /* truncate */
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
-! pum_col = max_width - 1;
-! else
-! #endif
-! pum_col = Columns - max_width;
- pum_width = max_width - pum_scrollbar;
- }
-
-***************
-*** 255,262 ****
- attr = (idx == pum_selected) ? attr_select : attr_norm;
-
- /* prepend a space if there is room */
-! if (pum_col > 0)
-! screen_putchar(' ', row, pum_col - 1, attr);
-
- /* Display each entry, use two spaces for a Tab.
- * Do this 3 times: For the main text, kind and extra info */
---- 285,300 ----
- attr = (idx == pum_selected) ? attr_select : attr_norm;
-
- /* prepend a space if there is room */
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
-! {
-! if (pum_col < W_WINCOL(curwin) + W_WIDTH(curwin) - 1)
-! screen_putchar(' ', row, pum_col + 1, attr);
-! }
-! else
-! #endif
-! if (pum_col > 0)
-! screen_putchar(' ', row, pum_col - 1, attr);
-
- /* Display each entry, use two spaces for a Tab.
- * Do this 3 times: For the main text, kind and extra info */
-***************
-*** 282,307 ****
- {
- /* Display the text that fits or comes before a Tab.
- * First convert it to printable characters. */
-! char_u *st;
-! int saved = *p;
-
- *p = NUL;
- st = transstr(s);
- *p = saved;
-! if (st != NULL)
- {
-! screen_puts_len(st, (int)STRLEN(st), row, col,
- attr);
-! vim_free(st);
- }
-- col += width;
-
- if (*p != TAB)
- break;
-
- /* Display two spaces for a Tab. */
-! screen_puts_len((char_u *)" ", 2, row, col, attr);
-! col += 2;
- totwidth += 2;
- s = NULL; /* start text at next char */
- width = 0;
---- 320,386 ----
- {
- /* Display the text that fits or comes before a Tab.
- * First convert it to printable characters. */
-! char_u *st;
-! int saved = *p;
-
- *p = NUL;
- st = transstr(s);
- *p = saved;
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
- {
-! if (st != NULL)
-! {
-! char_u *rt = reverse_text(st);
-! char_u *rt_saved = rt;
-! int len, j;
-!
-! if (rt != NULL)
-! {
-! len = STRLEN(rt);
-! if (len > pum_width)
-! {
-! for (j = pum_width; j < len; ++j)
-! mb_ptr_adv(rt);
-! len = pum_width;
-! }
-! screen_puts_len(rt, len, row,
-! col - len + 1, attr);
-! vim_free(rt_saved);
-! }
-! vim_free(st);
-! }
-! col -= width;
-! }
-! else
-! #endif
-! {
-! if (st != NULL)
-! {
-! screen_puts_len(st, (int)STRLEN(st), row, col,
- attr);
-! vim_free(st);
-! }
-! col += width;
- }
-
- if (*p != TAB)
- break;
-
- /* Display two spaces for a Tab. */
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
-! {
-! screen_puts_len((char_u *)" ", 2, row, col - 1,
-! attr);
-! col -= 2;
-! }
-! else
-! #endif
-! {
-! screen_puts_len((char_u *)" ", 2, row, col, attr);
-! col += 2;
-! }
- totwidth += 2;
- s = NULL; /* start text at next char */
- width = 0;
-***************
-*** 322,338 ****
- && pum_array[idx].pum_extra == NULL)
- || pum_base_width + n >= pum_width)
- break;
-! screen_fill(row, row + 1, col, pum_col + pum_base_width + n,
- ' ', ' ', attr);
-! col = pum_col + pum_base_width + n;
- totwidth = pum_base_width + n;
- }
-
-! screen_fill(row, row + 1, col, pum_col + pum_width, ' ', ' ', attr);
- if (pum_scrollbar > 0)
-! screen_putchar(' ', row, pum_col + pum_width,
-! i >= thumb_pos && i < thumb_pos + thumb_heigth
- ? attr_thumb : attr_scroll);
-
- ++row;
- }
---- 401,444 ----
- && pum_array[idx].pum_extra == NULL)
- || pum_base_width + n >= pum_width)
- break;
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
-! {
-! screen_fill(row, row + 1, pum_col - pum_base_width - n + 1,
-! col + 1, ' ', ' ', attr);
-! col = pum_col - pum_base_width - n + 1;
-! }
-! else
-! #endif
-! {
-! screen_fill(row, row + 1, col, pum_col + pum_base_width + n,
- ' ', ' ', attr);
-! col = pum_col + pum_base_width + n;
-! }
- totwidth = pum_base_width + n;
- }
-
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
-! screen_fill(row, row + 1, pum_col - pum_width + 1, col + 1, ' ',
-! ' ', attr);
-! else
-! #endif
-! screen_fill(row, row + 1, col, pum_col + pum_width, ' ', ' ',
-! attr);
- if (pum_scrollbar > 0)
-! {
-! #ifdef FEAT_RIGHTLEFT
-! if (curwin->w_p_rl)
-! screen_putchar(' ', row, pum_col - pum_width,
-! i >= thumb_pos && i < thumb_pos + thumb_heigth
- ? attr_thumb : attr_scroll);
-+ else
-+ #endif
-+ screen_putchar(' ', row, pum_col + pum_width,
-+ i >= thumb_pos && i < thumb_pos + thumb_heigth
-+ ? attr_thumb : attr_scroll);
-+ }
-
- ++row;
- }
-*** ../vim-7.1.057/src/proto/search.pro Sat May 5 20:20:36 2007
---- src/proto/search.pro Wed Aug 1 12:41:25 2007
-***************
-*** 1,6 ****
---- 1,7 ----
- /* search.c */
- int search_regcomp __ARGS((char_u *pat, int pat_save, int pat_use, int options, regmmatch_T *regmatch));
- char_u *get_search_pat __ARGS((void));
-+ char_u *reverse_text __ARGS((char_u *s));
- void save_search_patterns __ARGS((void));
- void restore_search_patterns __ARGS((void));
- void free_search_patterns __ARGS((void));
-*** ../vim-7.1.057/src/search.c Tue Jul 10 13:27:46 2007
---- src/search.c Wed Aug 1 12:39:22 2007
-***************
-*** 101,107 ****
- static char_u *mr_pattern = NULL; /* pattern used by search_regcomp() */
- #ifdef FEAT_RIGHTLEFT
- static int mr_pattern_alloced = FALSE; /* mr_pattern was allocated */
-- static char_u *reverse_text __ARGS((char_u *s));
- #endif
-
- #ifdef FEAT_FIND_ID
---- 101,106 ----
-***************
-*** 228,239 ****
- return mr_pattern;
- }
-
-! #ifdef FEAT_RIGHTLEFT
- /*
- * Reverse text into allocated memory.
- * Returns the allocated string, NULL when out of memory.
- */
-! static char_u *
- reverse_text(s)
- char_u *s;
- {
---- 227,238 ----
- return mr_pattern;
- }
-
-! #if defined(FEAT_RIGHTLEFT) || defined(PROTO)
- /*
- * Reverse text into allocated memory.
- * Returns the allocated string, NULL when out of memory.
- */
-! char_u *
- reverse_text(s)
- char_u *s;
- {
-***************
-*** 1898,1904 ****
- }
-
- #ifdef FEAT_RIGHTLEFT
-! /* This is just guessing: when 'rightleft' is set, search for a maching
- * paren/brace in the other direction. */
- if (curwin->w_p_rl && vim_strchr((char_u *)"()[]{}<>", initc) != NULL)
- backwards = !backwards;
---- 1897,1903 ----
- }
-
- #ifdef FEAT_RIGHTLEFT
-! /* This is just guessing: when 'rightleft' is set, search for a matching
- * paren/brace in the other direction. */
- if (curwin->w_p_rl && vim_strchr((char_u *)"()[]{}<>", initc) != NULL)
- backwards = !backwards;
-*** ../vim-7.1.057/src/version.c Wed Aug 8 21:41:19 2007
---- src/version.c Wed Aug 8 22:44:49 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 58,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-99. The hum of a cooling fan and the click of keys is comforting to you.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.059
-Problem: When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim
- hangs and beeps. (Antony Scriven)
-Solution: Clear "got_int" in the main loop to avoid the hang. When typing
- CTRL-C twice in a row abort the ":g" command. This is Vi
- compatible.
-Files: src/main.c
-
-
-*** ../vim-7.1.058/src/main.c Tue Jun 19 20:30:46 2007
---- src/main.c Tue Aug 7 22:40:35 2007
-***************
-*** 954,960 ****
- int cmdwin; /* TRUE when working in the command-line window */
- int noexmode; /* TRUE when return on entering Ex mode */
- {
-! oparg_T oa; /* operator arguments */
-
- #if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)
- /* Setup to catch a terminating error from the X server. Just ignore
---- 954,961 ----
- int cmdwin; /* TRUE when working in the command-line window */
- int noexmode; /* TRUE when return on entering Ex mode */
- {
-! oparg_T oa; /* operator arguments */
-! int previous_got_int = FALSE; /* "got_int" was TRUE */
-
- #if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)
- /* Setup to catch a terminating error from the X server. Just ignore
-***************
-*** 1015,1026 ****
- need_fileinfo = FALSE;
- }
- }
-! if (got_int && !global_busy)
- {
-! if (!quit_more)
-! (void)vgetc(); /* flush all buffers */
-! got_int = FALSE;
- }
- if (!exmode_active)
- msg_scroll = FALSE;
- quit_more = FALSE;
---- 1016,1047 ----
- need_fileinfo = FALSE;
- }
- }
-!
-! /* Reset "got_int" now that we got back to the main loop. Except when
-! * inside a ":g/pat/cmd" command, then the "got_int" needs to abort
-! * the ":g" command.
-! * For ":g/pat/vi" we reset "got_int" when used once. When used
-! * a second time we go back to Ex mode and abort the ":g" command. */
-! if (got_int)
- {
-! if (noexmode && global_busy && !exmode_active && previous_got_int)
-! {
-! /* Typed two CTRL-C in a row: go back to ex mode as if "Q" was
-! * used and keep "got_int" set, so that it aborts ":g". */
-! exmode_active = EXMODE_NORMAL;
-! State = NORMAL;
-! }
-! else if (!global_busy || !exmode_active)
-! {
-! if (!quit_more)
-! (void)vgetc(); /* flush all buffers */
-! got_int = FALSE;
-! }
-! previous_got_int = TRUE;
- }
-+ else
-+ previous_got_int = FALSE;
-+
- if (!exmode_active)
- msg_scroll = FALSE;
- quit_more = FALSE;
-*** ../vim-7.1.058/src/version.c Wed Aug 8 22:48:16 2007
---- src/version.c Fri Aug 10 21:30:39 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 59,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-116. You are living with your boyfriend who networks your respective
- computers so you can sit in separate rooms and email each other
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.060
-Problem: Splitting quickfix window messes up window layout. (Marius
- Gedminas)
-Solution: Compute the window size in a smarter way. (Martin Toft)
-Files: src/window.c
-
-
-*** ../vim-7.1.059/src/window.c Sun Aug 5 18:49:07 2007
---- src/window.c Sun Aug 5 17:17:51 2007
-***************
-*** 2121,2127 ****
- if (wp->w_p_pvw || bt_quickfix(wp->w_buffer))
- {
- /*
-! * The cursor goes to the preview or the quickfix window, try
- * finding another window to go to.
- */
- for (;;)
---- 2121,2127 ----
- if (wp->w_p_pvw || bt_quickfix(wp->w_buffer))
- {
- /*
-! * If the cursor goes to the preview or the quickfix window, try
- * finding another window to go to.
- */
- for (;;)
-***************
-*** 2308,2314 ****
- frame_T *frp, *frp2, *frp3;
- frame_T *frp_close = win->w_frame;
- win_T *wp;
-- int old_size = 0;
-
- /*
- * If there is only one window there is nothing to remove.
---- 2308,2313 ----
-***************
-*** 2329,2361 ****
- if (frp_close->fr_parent->fr_layout == FR_COL)
- {
- #endif
-! /* When 'winfixheight' is set, remember its old size and restore
-! * it later (it's a simplistic solution...). Don't do this if the
-! * window will occupy the full height of the screen. */
-! if (frp2->fr_win != NULL
-! && (frp2->fr_next != NULL || frp2->fr_prev != NULL)
-! && frp2->fr_win->w_p_wfh)
-! old_size = frp2->fr_win->w_height;
- frame_new_height(frp2, frp2->fr_height + frp_close->fr_height,
- frp2 == frp_close->fr_next ? TRUE : FALSE, FALSE);
-- if (old_size != 0)
-- win_setheight_win(old_size, frp2->fr_win);
- #ifdef FEAT_VERTSPLIT
- *dirp = 'v';
- }
- else
- {
-! /* When 'winfixwidth' is set, remember its old size and restore
-! * it later (it's a simplistic solution...). Don't do this if the
-! * window will occupy the full width of the screen. */
-! if (frp2->fr_win != NULL
-! && (frp2->fr_next != NULL || frp2->fr_prev != NULL)
-! && frp2->fr_win->w_p_wfw)
-! old_size = frp2->fr_win->w_width;
- frame_new_width(frp2, frp2->fr_width + frp_close->fr_width,
- frp2 == frp_close->fr_next ? TRUE : FALSE, FALSE);
-- if (old_size != 0)
-- win_setwidth_win(old_size, frp2->fr_win);
- *dirp = 'h';
- }
- #endif
---- 2328,2404 ----
- if (frp_close->fr_parent->fr_layout == FR_COL)
- {
- #endif
-! /* When 'winfixheight' is set, try to find another frame in the column
-! * (as close to the closed frame as possible) to distribute the height
-! * to. */
-! if (frp2->fr_win != NULL && frp2->fr_win->w_p_wfh)
-! {
-! frp = frp_close->fr_prev;
-! frp3 = frp_close->fr_next;
-! while (frp != NULL || frp3 != NULL)
-! {
-! if (frp != NULL)
-! {
-! if (frp->fr_win != NULL && !frp->fr_win->w_p_wfh)
-! {
-! frp2 = frp;
-! wp = frp->fr_win;
-! break;
-! }
-! frp = frp->fr_prev;
-! }
-! if (frp3 != NULL)
-! {
-! if (frp3->fr_win != NULL && !frp3->fr_win->w_p_wfh)
-! {
-! frp2 = frp3;
-! wp = frp3->fr_win;
-! break;
-! }
-! frp3 = frp3->fr_next;
-! }
-! }
-! }
- frame_new_height(frp2, frp2->fr_height + frp_close->fr_height,
- frp2 == frp_close->fr_next ? TRUE : FALSE, FALSE);
- #ifdef FEAT_VERTSPLIT
- *dirp = 'v';
- }
- else
- {
-! /* When 'winfixwidth' is set, try to find another frame in the column
-! * (as close to the closed frame as possible) to distribute the width
-! * to. */
-! if (frp2->fr_win != NULL && frp2->fr_win->w_p_wfw)
-! {
-! frp = frp_close->fr_prev;
-! frp3 = frp_close->fr_next;
-! while (frp != NULL || frp3 != NULL)
-! {
-! if (frp != NULL)
-! {
-! if (frp->fr_win != NULL && !frp->fr_win->w_p_wfw)
-! {
-! frp2 = frp;
-! wp = frp->fr_win;
-! break;
-! }
-! frp = frp->fr_prev;
-! }
-! if (frp3 != NULL)
-! {
-! if (frp3->fr_win != NULL && !frp3->fr_win->w_p_wfw)
-! {
-! frp2 = frp3;
-! wp = frp3->fr_win;
-! break;
-! }
-! frp3 = frp3->fr_next;
-! }
-! }
-! }
- frame_new_width(frp2, frp2->fr_width + frp_close->fr_width,
- frp2 == frp_close->fr_next ? TRUE : FALSE, FALSE);
- *dirp = 'h';
- }
- #endif
-*** ../vim-7.1.059/src/version.c Fri Aug 10 21:32:41 2007
---- src/version.c Sat Aug 11 13:34:42 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 60,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-117. You are more comfortable typing in html.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.061
-Problem: Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for
- characters with umlaut. (Joachim Hofmann)
-Solution: Do not use islower()/isupper()/tolower()/toupper() but our own
- functions. (Chris Lubinski)
-Files: src/mbyte.c, src/regexp.c, src/vim.h
-
-
-*** ../vim-7.1.060/src/mbyte.c Thu May 10 19:45:20 2007
---- src/mbyte.c Sat Aug 4 13:44:36 2007
-***************
-*** 2320,2326 ****
- /* Single byte: first check normally, then with ignore case. */
- if (s1[i] != s2[i])
- {
-! cdiff = TOLOWER_LOC(s1[i]) - TOLOWER_LOC(s2[i]);
- if (cdiff != 0)
- return cdiff;
- }
---- 2320,2326 ----
- /* Single byte: first check normally, then with ignore case. */
- if (s1[i] != s2[i])
- {
-! cdiff = MB_TOLOWER(s1[i]) - MB_TOLOWER(s2[i]);
- if (cdiff != 0)
- return cdiff;
- }
-*** ../vim-7.1.060/src/regexp.c Mon Aug 6 22:27:13 2007
---- src/regexp.c Sun Aug 5 15:43:27 2007
-***************
-*** 2220,2226 ****
- break;
- case CLASS_LOWER:
- for (cu = 1; cu <= 255; cu++)
-! if (islower(cu))
- regc(cu);
- break;
- case CLASS_PRINT:
---- 2220,2226 ----
- break;
- case CLASS_LOWER:
- for (cu = 1; cu <= 255; cu++)
-! if (MB_ISLOWER(cu))
- regc(cu);
- break;
- case CLASS_PRINT:
-***************
-*** 2240,2246 ****
- break;
- case CLASS_UPPER:
- for (cu = 1; cu <= 255; cu++)
-! if (isupper(cu))
- regc(cu);
- break;
- case CLASS_XDIGIT:
---- 2240,2246 ----
- break;
- case CLASS_UPPER:
- for (cu = 1; cu <= 255; cu++)
-! if (MB_ISUPPER(cu))
- regc(cu);
- break;
- case CLASS_XDIGIT:
-***************
-*** 3465,3471 ****
- (enc_utf8 && utf_fold(prog->regstart) == utf_fold(c)))
- || (c < 255 && prog->regstart < 255 &&
- #endif
-! TOLOWER_LOC(prog->regstart) == TOLOWER_LOC(c)))))
- retval = regtry(prog, col);
- else
- retval = 0;
---- 3465,3471 ----
- (enc_utf8 && utf_fold(prog->regstart) == utf_fold(c)))
- || (c < 255 && prog->regstart < 255 &&
- #endif
-! MB_TOLOWER(prog->regstart) == MB_TOLOWER(c)))))
- retval = regtry(prog, col);
- else
- retval = 0;
-***************
-*** 4200,4206 ****
- #ifdef FEAT_MBYTE
- !enc_utf8 &&
- #endif
-! TOLOWER_LOC(*opnd) != TOLOWER_LOC(*reginput))))
- status = RA_NOMATCH;
- else if (*opnd == NUL)
- {
---- 4200,4206 ----
- #ifdef FEAT_MBYTE
- !enc_utf8 &&
- #endif
-! MB_TOLOWER(*opnd) != MB_TOLOWER(*reginput))))
- status = RA_NOMATCH;
- else if (*opnd == NUL)
- {
-***************
-*** 4733,4742 ****
- rst.nextb = *OPERAND(next);
- if (ireg_ic)
- {
-! if (isupper(rst.nextb))
-! rst.nextb_ic = TOLOWER_LOC(rst.nextb);
- else
-! rst.nextb_ic = TOUPPER_LOC(rst.nextb);
- }
- else
- rst.nextb_ic = rst.nextb;
---- 4733,4742 ----
- rst.nextb = *OPERAND(next);
- if (ireg_ic)
- {
-! if (MB_ISUPPER(rst.nextb))
-! rst.nextb_ic = MB_TOLOWER(rst.nextb);
- else
-! rst.nextb_ic = MB_TOUPPER(rst.nextb);
- }
- else
- rst.nextb_ic = rst.nextb;
-***************
-*** 5558,5568 ****
- int cu, cl;
-
- /* This doesn't do a multi-byte character, because a MULTIBYTECODE
-! * would have been used for it. */
- if (ireg_ic)
- {
-! cu = TOUPPER_LOC(*opnd);
-! cl = TOLOWER_LOC(*opnd);
- while (count < maxcount && (*scan == cu || *scan == cl))
- {
- count++;
---- 5558,5569 ----
- int cu, cl;
-
- /* This doesn't do a multi-byte character, because a MULTIBYTECODE
-! * would have been used for it. It does handle single-byte
-! * characters, such as latin1. */
- if (ireg_ic)
- {
-! cu = MB_TOUPPER(*opnd);
-! cl = MB_TOLOWER(*opnd);
- while (count < maxcount && (*scan == cu || *scan == cl))
- {
- count++;
-***************
-*** 6490,6499 ****
- cc = utf_fold(c);
- else
- #endif
-! if (isupper(c))
-! cc = TOLOWER_LOC(c);
-! else if (islower(c))
-! cc = TOUPPER_LOC(c);
- else
- return vim_strchr(s, c);
-
---- 6491,6500 ----
- cc = utf_fold(c);
- else
- #endif
-! if (MB_ISUPPER(c))
-! cc = MB_TOLOWER(c);
-! else if (MB_ISLOWER(c))
-! cc = MB_TOUPPER(c);
- else
- return vim_strchr(s, c);
-
-*** ../vim-7.1.060/src/vim.h Sat May 12 15:08:22 2007
---- src/vim.h Sat Aug 4 13:57:36 2007
-***************
-*** 1380,1387 ****
- #endif
-
- #ifdef FEAT_MBYTE
-! # define MB_STRICMP(d, s) (has_mbyte ? mb_strnicmp((char_u *)(d), (char_u *)(s), (int)MAXCOL) : STRICMP((d), (s)))
-! # define MB_STRNICMP(d, s, n) (has_mbyte ? mb_strnicmp((char_u *)(d), (char_u *)(s), (int)(n)) : STRNICMP((d), (s), (n)))
- #else
- # define MB_STRICMP(d, s) STRICMP((d), (s))
- # define MB_STRNICMP(d, s, n) STRNICMP((d), (s), (n))
---- 1380,1393 ----
- #endif
-
- #ifdef FEAT_MBYTE
-! /* We need to call mb_stricmp() even when we aren't dealing with a multi-byte
-! * encoding because mb_stricmp() takes care of all ascii and non-ascii
-! * encodings, including characters with umluats in latin1, etc., while
-! * STRICMP() only handles the system locale version, which often does not
-! * handle non-ascii properly. */
-!
-! # define MB_STRICMP(d, s) mb_strnicmp((char_u *)(d), (char_u *)(s), (int)MAXCOL)
-! # define MB_STRNICMP(d, s, n) mb_strnicmp((char_u *)(d), (char_u *)(s), (int)(n))
- #else
- # define MB_STRICMP(d, s) STRICMP((d), (s))
- # define MB_STRNICMP(d, s, n) STRNICMP((d), (s), (n))
-*** ../vim-7.1.060/src/version.c Sat Aug 11 13:37:36 2007
---- src/version.c Sat Aug 11 13:55:24 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 61,
- /**/
-
---
-Support your right to bare arms! Wear short sleeves!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.062 (after 7.1.038)
-Problem: Indents of C comments can be wrong. (John Mullin)
-Solution: Adjust ind_len. (Chris Lubinski)
-Files: src/misc1.c
-
-
-*** ../vim-7.1.061/src/misc1.c Mon Aug 6 22:27:13 2007
---- src/misc1.c Fri Aug 10 19:41:42 2007
-***************
-*** 222,228 ****
- * than old) */
- while (vim_iswhite(*p))
- (void)*p++;
-! todo = size-ind_done;
- }
- else
- {
---- 222,231 ----
- * than old) */
- while (vim_iswhite(*p))
- (void)*p++;
-! todo = size - ind_done;
-! ind_len += todo; /* Set total length of indent in characters,
-! * which may have been undercounted until now */
-!
- }
- else
- {
-*** ../vim-7.1.061/src/version.c Sat Aug 11 13:57:31 2007
---- src/version.c Sat Aug 11 14:30:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 62,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-120. You ask a friend, "What's that big shiny thing?" He says, "It's the sun."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.063 (after 7.1.040)
-Problem: Warning for unitialized variable.
-Solution: Initialise it to NULL.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.062/src/ex_docmd.c Thu Jul 26 22:55:11 2007
---- src/ex_docmd.c Wed Aug 8 22:28:33 2007
-***************
-*** 10817,10823 ****
- exarg_T *eap;
- {
- char_u *p;
-! char_u *g;
- char_u *end;
- int c;
- int id;
---- 10818,10824 ----
- exarg_T *eap;
- {
- char_u *p;
-! char_u *g = NULL;
- char_u *end;
- int c;
- int id;
-*** ../vim-7.1.062/src/version.c Sat Aug 11 14:32:10 2007
---- src/version.c Sat Aug 11 15:58:55 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 63,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-124. You begin conversations with, "Who is your internet service provider?"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.064
-Problem: On Interix some files appear not to exist.
-Solution: Remove the top bit from st_mode. (Ligesh)
-Files: src/os_unix.c
-
-
-*** ../vim-7.1.063/src/os_unix.c Thu May 10 19:42:47 2007
---- src/os_unix.c Fri Aug 10 19:32:20 2007
-***************
-*** 2499,2505 ****
---- 2499,2511 ----
- if (stat((char *)name, &statb))
- #endif
- return -1;
-+ #ifdef __INTERIX
-+ /* The top bit makes the value negative, which means the file doesn't
-+ * exist. Remove the bit, we don't use it. */
-+ return statb.st_mode & ~S_ADDACE;
-+ #else
- return statb.st_mode;
-+ #endif
- }
-
- /*
-*** ../vim-7.1.063/src/version.c Sat Aug 11 15:59:44 2007
---- src/version.c Sat Aug 11 22:21:35 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 64,
- /**/
-
---
-I have a watch cat! Just break in and she'll watch.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.065 (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.1.065 (extra)
-Problem: Win32: Compilation problem for newer version of w32api.
-Solution: Only define __IID_DEFINED__ when needed. (Chris Sutcliffe)
-Files: src/Make_ming.mak, src/iid_ole.c
-
-
-*** ../vim-7.1.064/src/Make_ming.mak Thu May 10 19:35:54 2007
---- src/Make_ming.mak Sat Aug 11 14:52:11 2007
-***************
-*** 572,579 ****
- $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
- $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
-
- $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
-! $(CC) $(CFLAGS) -D__IID_DEFINED__ -c -o $(OUTDIR)/if_ole.o if_ole.cpp
-
- $(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
- ifeq (16, $(RUBY))
---- 572,580 ----
- $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
- $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
-
-+ # Remove -D__IID_DEFINED__ for newer versions of the w32api
- $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
-! $(CC) $(CFLAGS) -c -o $(OUTDIR)/if_ole.o if_ole.cpp
-
- $(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
- ifeq (16, $(RUBY))
-*** ../vim-7.1.064/src/iid_ole.c Sun Jun 13 18:45:30 2004
---- src/iid_ole.c Sat Aug 11 14:57:58 2007
-***************
-*** 16,24 ****
- extern "C"{
- #endif
-
-
- #ifndef __IID_DEFINED__
-! #define __IID_DEFINED__
-
- typedef struct _IID
- {
---- 16,33 ----
- extern "C"{
- #endif
-
-+ #ifdef __MINGW32__
-+ # include <w32api.h>
-+
-+ # if __W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION < 10
-+ /* This define is missing from older MingW versions of w32api, even though
-+ * IID is defined. */
-+ # define __IID_DEFINED__
-+ # endif
-+ #endif
-
- #ifndef __IID_DEFINED__
-! # define __IID_DEFINED__
-
- typedef struct _IID
- {
-***************
-*** 28,39 ****
- unsigned char c[8];
- } IID;
-
-! #endif // __IID_DEFINED__
-
- #ifndef CLSID_DEFINED
-! #define CLSID_DEFINED
- typedef IID CLSID;
-! #endif // CLSID_DEFINED
-
- const IID IID_IVim = {0x0F0BFAE2,0x4C90,0x11d1,{0x82,0xD7,0x00,0x04,0xAC,0x36,0x85,0x19}};
-
---- 37,48 ----
- unsigned char c[8];
- } IID;
-
-! #endif
-
- #ifndef CLSID_DEFINED
-! # define CLSID_DEFINED
- typedef IID CLSID;
-! #endif
-
- const IID IID_IVim = {0x0F0BFAE2,0x4C90,0x11d1,{0x82,0xD7,0x00,0x04,0xAC,0x36,0x85,0x19}};
-
-*** ../vim-7.1.064/src/version.c Sat Aug 11 22:22:56 2007
---- src/version.c Sun Aug 12 15:21:34 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 65,
- /**/
-
---
-I'm writing a book. I've got the page numbers done.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.066
-Problem: When 'bomb' is set or reset the file should be considered
- modified. (Tony Mechelynck)
-Solution: Handle like 'endofline'. (Martin Toft)
-Files: src/buffer.c, src/fileio.c, src/option.c, src/structs.h
-
-
-*** ../vim-7.1.065/src/buffer.c Mon Aug 6 22:27:12 2007
---- src/buffer.c Sat Aug 11 16:56:57 2007
-***************
-*** 502,507 ****
---- 502,508 ----
- buf->b_start_eol = TRUE;
- #ifdef FEAT_MBYTE
- buf->b_p_bomb = FALSE;
-+ buf->b_start_bomb = FALSE;
- #endif
- buf->b_ml.ml_mfp = NULL;
- buf->b_ml.ml_flags = ML_EMPTY; /* empty buffer */
-*** ../vim-7.1.065/src/fileio.c Tue Jul 10 17:09:51 2007
---- src/fileio.c Sat Aug 11 16:56:57 2007
-***************
-*** 654,659 ****
---- 654,660 ----
- curbuf->b_start_eol = TRUE;
- #ifdef FEAT_MBYTE
- curbuf->b_p_bomb = FALSE;
-+ curbuf->b_start_bomb = FALSE;
- #endif
- }
-
-***************
-*** 912,918 ****
---- 913,922 ----
- file_rewind = FALSE;
- #ifdef FEAT_MBYTE
- if (set_options)
-+ {
- curbuf->b_p_bomb = FALSE;
-+ curbuf->b_start_bomb = FALSE;
-+ }
- conv_error = 0;
- #endif
- }
-***************
-*** 1361,1367 ****
---- 1365,1374 ----
- size -= blen;
- mch_memmove(ptr, ptr + blen, (size_t)size);
- if (set_options)
-+ {
- curbuf->b_p_bomb = TRUE;
-+ curbuf->b_start_bomb = TRUE;
-+ }
- }
-
- if (fio_flags == FIO_UCSBOM)
-*** ../vim-7.1.065/src/option.c Tue Jul 24 14:57:16 2007
---- src/option.c Sat Aug 11 16:56:57 2007
-***************
-*** 7118,7123 ****
---- 7118,7128 ----
- /* when 'endofline' is changed, redraw the window title */
- else if ((int *)varp == &curbuf->b_p_eol)
- need_maketitle = TRUE;
-+ #ifdef FEAT_MBYTE
-+ /* when 'bomb' is changed, redraw the window title */
-+ else if ((int *)varp == &curbuf->b_p_bomb)
-+ need_maketitle = TRUE;
-+ #endif
- #endif
-
- /* when 'bin' is set also set some other options */
-***************
-*** 10604,10609 ****
---- 10609,10616 ----
- buf->b_start_ffc = *buf->b_p_ff;
- buf->b_start_eol = buf->b_p_eol;
- #ifdef FEAT_MBYTE
-+ buf->b_start_bomb = buf->b_p_bomb;
-+
- /* Only use free/alloc when necessary, they take time. */
- if (buf->b_start_fenc == NULL
- || STRCMP(buf->b_start_fenc, buf->b_p_fenc) != 0)
-***************
-*** 10617,10623 ****
- /*
- * Return TRUE if 'fileformat' and/or 'fileencoding' has a different value
- * from when editing started (save_file_ff() called).
-! * Also when 'endofline' was changed and 'binary' is set.
- * Don't consider a new, empty buffer to be changed.
- */
- int
---- 10624,10631 ----
- /*
- * Return TRUE if 'fileformat' and/or 'fileencoding' has a different value
- * from when editing started (save_file_ff() called).
-! * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was
-! * changed and 'binary' is not set.
- * Don't consider a new, empty buffer to be changed.
- */
- int
-***************
-*** 10636,10641 ****
---- 10644,10651 ----
- if (buf->b_p_bin && buf->b_start_eol != buf->b_p_eol)
- return TRUE;
- #ifdef FEAT_MBYTE
-+ if (!buf->b_p_bin && buf->b_start_bomb != buf->b_p_bomb)
-+ return TRUE;
- if (buf->b_start_fenc == NULL)
- return (*buf->b_p_fenc != NUL);
- return (STRCMP(buf->b_start_fenc, buf->b_p_fenc) != 0);
-*** ../vim-7.1.065/src/structs.h Thu Jul 26 22:55:11 2007
---- src/structs.h Sat Aug 11 16:56:57 2007
-***************
-*** 1453,1458 ****
---- 1453,1459 ----
- #ifdef FEAT_MBYTE
- char_u *b_start_fenc; /* 'fileencoding' when edit started or NULL */
- int b_bad_char; /* "++bad=" argument when edit started or 0 */
-+ int b_start_bomb; /* 'bomb' when it was read */
- #endif
-
- #ifdef FEAT_EVAL
-*** ../vim-7.1.065/src/version.c Sun Aug 12 15:24:05 2007
---- src/version.c Sun Aug 12 15:48:34 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 66,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-127. You bring your laptop and cellular phone to church.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.067
-Problem: 'thesaurus' doesn't work when 'infercase' is set. (Mohsin)
-Solution: Don't copy the characters being completed but check the case and
- apply it to the suggested word. Also fix that the first word in
- the thesaurus line is not used. (Martin Toft)
-Files: src/edit.c
-
-
-*** ../vim-7.1.066/src/edit.c Sun Jul 29 15:02:34 2007
---- src/edit.c Sat Aug 11 17:16:51 2007
-***************
-*** 2057,2063 ****
- * case of the originally typed text is used, and the case of the completed
- * text is inferred, ie this tries to work out what case you probably wanted
- * the rest of the word to be in -- webb
-- * TODO: make this work for multi-byte characters.
- */
- int
- ins_compl_add_infercase(str, len, icase, fname, dir, flags)
---- 2057,2062 ----
-***************
-*** 2068,2121 ****
- int dir;
- int flags;
- {
- int has_lower = FALSE;
- int was_letter = FALSE;
-- int idx;
-
-! if (p_ic && curbuf->b_p_inf && len < IOSIZE)
- {
-! /* Infer case of completed part -- webb */
-! /* Use IObuff, str would change text in buffer! */
-! vim_strncpy(IObuff, str, len);
-
-! /* Rule 1: Were any chars converted to lower? */
-! for (idx = 0; idx < compl_length; ++idx)
- {
-! if (islower(compl_orig_text[idx]))
- {
-! has_lower = TRUE;
-! if (isupper(IObuff[idx]))
-! {
-! /* Rule 1 is satisfied */
-! for (idx = compl_length; idx < len; ++idx)
-! IObuff[idx] = TOLOWER_LOC(IObuff[idx]);
-! break;
-! }
- }
- }
-
-! /*
-! * Rule 2: No lower case, 2nd consecutive letter converted to
-! * upper case.
-! */
-! if (!has_lower)
- {
-! for (idx = 0; idx < compl_length; ++idx)
- {
-! if (was_letter && isupper(compl_orig_text[idx])
-! && islower(IObuff[idx]))
- {
-! /* Rule 2 is satisfied */
-! for (idx = compl_length; idx < len; ++idx)
-! IObuff[idx] = TOUPPER_LOC(IObuff[idx]);
-! break;
- }
-- was_letter = isalpha(compl_orig_text[idx]);
- }
-- }
-
-! /* Copy the original case of the part we typed */
-! STRNCPY(IObuff, compl_orig_text, compl_length);
-
- return ins_compl_add(IObuff, len, icase, fname, NULL, dir,
- flags, FALSE);
---- 2067,2213 ----
- int dir;
- int flags;
- {
-+ char_u *p;
-+ int i, c;
-+ int actual_len; /* Take multi-byte characters */
-+ int actual_compl_length; /* into account. */
-+ int *wca; /* Wide character array. */
- int has_lower = FALSE;
- int was_letter = FALSE;
-
-! if (p_ic && curbuf->b_p_inf)
- {
-! /* Infer case of completed part. */
-
-! /* Find actual length of completion. */
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
- {
-! p = str;
-! actual_len = 0;
-! while (*p != NUL)
- {
-! mb_ptr_adv(p);
-! ++actual_len;
- }
- }
-+ else
-+ #endif
-+ actual_len = len;
-
-! /* Find actual length of original text. */
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
- {
-! p = compl_orig_text;
-! actual_compl_length = 0;
-! while (*p != NUL)
- {
-! mb_ptr_adv(p);
-! ++actual_compl_length;
-! }
-! }
-! else
-! #endif
-! actual_compl_length = compl_length;
-!
-! /* Allocate wide character array for the completion and fill it. */
-! wca = (int *)alloc(actual_len * sizeof(int));
-! if (wca != NULL)
-! {
-! p = str;
-! for (i = 0; i < actual_len; ++i)
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! wca[i] = mb_ptr2char_adv(&p);
-! else
-! #endif
-! wca[i] = *(p++);
-!
-! /* Rule 1: Were any chars converted to lower? */
-! p = compl_orig_text;
-! for (i = 0; i < actual_compl_length; ++i)
-! {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! c = mb_ptr2char_adv(&p);
-! else
-! #endif
-! c = *(p++);
-! if (MB_ISLOWER(c))
- {
-! has_lower = TRUE;
-! if (MB_ISUPPER(wca[i]))
-! {
-! /* Rule 1 is satisfied. */
-! for (i = actual_compl_length; i < actual_len; ++i)
-! wca[i] = MB_TOLOWER(wca[i]);
-! break;
-! }
- }
- }
-
-! /*
-! * Rule 2: No lower case, 2nd consecutive letter converted to
-! * upper case.
-! */
-! if (!has_lower)
-! {
-! p = compl_orig_text;
-! for (i = 0; i < actual_compl_length; ++i)
-! {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! c = mb_ptr2char_adv(&p);
-! else
-! #endif
-! c = *(p++);
-! if (was_letter && MB_ISUPPER(c) && MB_ISLOWER(wca[i]))
-! {
-! /* Rule 2 is satisfied. */
-! for (i = actual_compl_length; i < actual_len; ++i)
-! wca[i] = MB_TOUPPER(wca[i]);
-! break;
-! }
-! was_letter = MB_ISLOWER(c) || MB_ISUPPER(c);
-! }
-! }
-!
-! /* Copy the original case of the part we typed. */
-! p = compl_orig_text;
-! for (i = 0; i < actual_compl_length; ++i)
-! {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! c = mb_ptr2char_adv(&p);
-! else
-! #endif
-! c = *(p++);
-! if (MB_ISLOWER(c))
-! wca[i] = MB_TOLOWER(wca[i]);
-! else if (MB_ISUPPER(c))
-! wca[i] = MB_TOUPPER(wca[i]);
-! }
-!
-! /*
-! * Generate encoding specific output from wide character array.
-! * Multi-byte characters can occupy up to five bytes more than
-! * ASCII characters, and we also need one byte for NUL, so stay
-! * six bytes away from the edge of IObuff.
-! */
-! p = IObuff;
-! i = 0;
-! while (i < actual_len && (p - IObuff + 6) < IOSIZE)
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! p += mb_char2bytes(wca[i++], p);
-! else
-! #endif
-! *(p++) = wca[i++];
-! *p = NUL;
-!
-! vim_free(wca);
-! }
-
- return ins_compl_add(IObuff, len, icase, fname, NULL, dir,
- flags, FALSE);
-***************
-*** 2842,2847 ****
---- 2934,2940 ----
- /*
- * Add the other matches on the line
- */
-+ ptr = buf;
- while (!got_int)
- {
- /* Find start of the next word. Skip white
-***************
-*** 2851,2857 ****
- break;
- wstart = ptr;
-
-! /* Find end of the word and add it. */
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- /* Japanese words may have characters in
---- 2944,2950 ----
- break;
- wstart = ptr;
-
-! /* Find end of the word. */
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- /* Japanese words may have characters in
-***************
-*** 2868,2876 ****
- else
- #endif
- ptr = find_word_end(ptr);
-! add_r = ins_compl_add_infercase(wstart,
-! (int)(ptr - wstart),
-! p_ic, files[i], *dir, 0);
- }
- }
- if (add_r == OK)
---- 2961,2972 ----
- else
- #endif
- ptr = find_word_end(ptr);
-!
-! /* Add the word. Skip the regexp match. */
-! if (wstart != regmatch->startp[0])
-! add_r = ins_compl_add_infercase(wstart,
-! (int)(ptr - wstart),
-! p_ic, files[i], *dir, 0);
- }
- }
- if (add_r == OK)
-*** ../vim-7.1.066/src/version.c Sun Aug 12 15:50:26 2007
---- src/version.c Sun Aug 12 16:36:34 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 67,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-128. You can access the Net -- via your portable and cellular phone.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.068
-Problem: When 'equalalways' is set and splitting a window, it's possible
- that another small window gets bigger.
-Solution: Only equalize window sizes when after a split the windows are
- smaller than another window. (Martin Toft)
-Files: runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c
-
-
-*** ../vim-7.1.067/runtime/doc/options.txt Sat May 12 16:27:04 2007
---- runtime/doc/options.txt Sat Aug 11 17:25:38 2007
-***************
-*** 1,4 ****
-! *options.txt* For Vim version 7.1. Last change: 2007 May 11
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *options.txt* For Vim version 7.1. Last change: 2007 Aug 10
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 2415,2422 ****
- When mixing vertically and horizontally split windows, a minimal size
- is computed and some windows may be larger if there is room. The
- 'eadirection' option tells in which direction the size is affected.
-! Changing the height of a window can be avoided by setting
-! 'winfixheight'.
-
- *'equalprg'* *'ep'*
- 'equalprg' 'ep' string (default "")
---- 2418,2425 ----
- When mixing vertically and horizontally split windows, a minimal size
- is computed and some windows may be larger if there is room. The
- 'eadirection' option tells in which direction the size is affected.
-! Changing the height and width of a window can be avoided by setting
-! 'winfixheight' and 'winfixwidth', respectively.
-
- *'equalprg'* *'ep'*
- 'equalprg' 'ep' string (default "")
-*** ../vim-7.1.067/runtime/doc/windows.txt Sat May 12 16:42:48 2007
---- runtime/doc/windows.txt Sat Aug 11 17:25:38 2007
-***************
-*** 132,138 ****
- the same file. Make new window N high (default is to use half
- the height of the current window). Reduces the current window
- height to create room (and others, if the 'equalalways' option
-! is set and 'eadirection' isn't "hor").
- Note: CTRL-S does not work on all terminals and might block
- further input, use CTRL-Q to get going again.
- Also see |++opt| and |+cmd|.
---- 132,139 ----
- the same file. Make new window N high (default is to use half
- the height of the current window). Reduces the current window
- height to create room (and others, if the 'equalalways' option
-! is set, 'eadirection' isn't "hor", and one of them is higher
-! than the current or the new window).
- Note: CTRL-S does not work on all terminals and might block
- further input, use CTRL-Q to get going again.
- Also see |++opt| and |+cmd|.
-***************
-*** 140,148 ****
- CTRL-W CTRL-V *CTRL-W_CTRL-V*
- CTRL-W v *CTRL-W_v*
- :[N]vs[plit] [++opt] [+cmd] [file] *:vs* *:vsplit*
-! Like |:split|, but split vertically. If 'equalalways' is set
-! and 'eadirection' isn't "ver" the windows will be spread out
-! horizontally, unless a width was specified.
- Note: In other places CTRL-Q does the same as CTRL-V, but here
- it doesn't!
-
---- 141,153 ----
- CTRL-W CTRL-V *CTRL-W_CTRL-V*
- CTRL-W v *CTRL-W_v*
- :[N]vs[plit] [++opt] [+cmd] [file] *:vs* *:vsplit*
-! Like |:split|, but split vertically. The windows will be
-! spread out horizontally if
-! 1. a width was not specified,
-! 2. 'equalalways' is set,
-! 3. 'eadirection' isn't "ver", and
-! 4. one of the other windows are wider than the current or new
-! window.
- Note: In other places CTRL-Q does the same as CTRL-V, but here
- it doesn't!
-
-*** ../vim-7.1.067/src/window.c Sat Aug 11 13:37:36 2007
---- src/window.c Sat Aug 11 17:25:38 2007
-***************
-*** 733,739 ****
- if (flags & WSP_VERT)
- {
- layout = FR_ROW;
-- do_equal = (p_ea && new_size == 0 && *p_ead != 'v');
-
- /*
- * Check if we are able to split the current window and compute its
---- 733,738 ----
-***************
-*** 770,785 ****
- * instead, if possible. */
- if (oldwin->w_p_wfw)
- win_setwidth_win(oldwin->w_width + new_size, oldwin);
- }
- else
- #endif
- {
- layout = FR_COL;
-- do_equal = (p_ea && new_size == 0
-- #ifdef FEAT_VERTSPLIT
-- && *p_ead != 'h'
-- #endif
-- );
-
- /*
- * Check if we are able to split the current window and compute its
---- 769,799 ----
- * instead, if possible. */
- if (oldwin->w_p_wfw)
- win_setwidth_win(oldwin->w_width + new_size, oldwin);
-+
-+ /* Only make all windows the same width if one of them (except oldwin)
-+ * is wider than one of the split windows. */
-+ if (!do_equal && p_ea && size == 0 && *p_ead != 'v'
-+ && oldwin->w_frame->fr_parent != NULL)
-+ {
-+ frp = oldwin->w_frame->fr_parent->fr_child;
-+ while (frp != NULL)
-+ {
-+ if (frp->fr_win != oldwin && frp->fr_win != NULL
-+ && (frp->fr_win->w_width > new_size
-+ || frp->fr_win->w_width > oldwin->w_width
-+ - new_size - STATUS_HEIGHT))
-+ {
-+ do_equal = TRUE;
-+ break;
-+ }
-+ frp = frp->fr_next;
-+ }
-+ }
- }
- else
- #endif
- {
- layout = FR_COL;
-
- /*
- * Check if we are able to split the current window and compute its
-***************
-*** 831,836 ****
---- 845,873 ----
- oldwin_height = oldwin->w_height;
- if (need_status)
- oldwin_height -= STATUS_HEIGHT;
-+ }
-+
-+ /* Only make all windows the same height if one of them (except oldwin)
-+ * is higher than one of the split windows. */
-+ if (!do_equal && p_ea && size == 0
-+ #ifdef FEAT_VERTSPLIT
-+ && *p_ead != 'h'
-+ #endif
-+ && oldwin->w_frame->fr_parent != NULL)
-+ {
-+ frp = oldwin->w_frame->fr_parent->fr_child;
-+ while (frp != NULL)
-+ {
-+ if (frp->fr_win != oldwin && frp->fr_win != NULL
-+ && (frp->fr_win->w_height > new_size
-+ || frp->fr_win->w_height > oldwin_height - new_size
-+ - STATUS_HEIGHT))
-+ {
-+ do_equal = TRUE;
-+ break;
-+ }
-+ frp = frp->fr_next;
-+ }
- }
- }
-
-*** ../vim-7.1.067/src/version.c Sun Aug 12 16:38:03 2007
---- src/version.c Sun Aug 12 16:51:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 68,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-129. You cancel your newspaper subscription.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.069
-Problem: GTK GUI: When using confirm() without a default button there still
- is a default choice.
-Solution: Ignore Enter and Space when there is no default button. (Chris
- Lubinski)
-Files: src/gui_gtk.c
-
-
-*** ../vim-7.1.068/src/gui_gtk.c Mon May 14 19:35:51 2007
---- src/gui_gtk.c Sat Aug 11 17:38:03 2007
-***************
-*** 1630,1640 ****
- */
- /*ARGSUSED*/
- static int
-! dlg_key_press_event(GtkWidget * widget, GdkEventKey * event, CancelData *data)
- {
-! /* Ignore hitting Enter when there is no default button. */
-! if (data->ignore_enter && event->keyval == GDK_Return)
- return TRUE;
-
- if (event->keyval != GDK_Escape && event->keyval != GDK_Return)
- return FALSE;
---- 1630,1643 ----
- */
- /*ARGSUSED*/
- static int
-! dlg_key_press_event(GtkWidget *widget, GdkEventKey *event, CancelData *data)
- {
-! /* Ignore hitting Enter (or Space) when there is no default button. */
-! if (data->ignore_enter && (event->keyval == GDK_Return
-! || event->keyval == ' '))
- return TRUE;
-+ else /* A different key was pressed, return to normal behavior */
-+ data->ignore_enter = FALSE;
-
- if (event->keyval != GDK_Escape && event->keyval != GDK_Return)
- return FALSE;
-***************
-*** 2223,2228 ****
---- 2226,2238 ----
- dialog_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
- {
- DialogInfo *di = (DialogInfo *)data;
-+
-+ /* Ignore hitting Enter (or Space) when there is no default button. */
-+ if (di->ignore_enter && (event->keyval == GDK_Return
-+ || event->keyval == ' '))
-+ return TRUE;
-+ else /* A different key was pressed, return to normal behavior */
-+ di->ignore_enter = FALSE;
-
- /* Close the dialog when hitting "Esc". */
- if (event->keyval == GDK_Escape)
-*** ../vim-7.1.068/src/version.c Sun Aug 12 16:55:01 2007
---- src/version.c Tue Aug 14 14:58:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 69,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-148. You find it easier to dial-up the National Weather Service
- Weather/your_town/now.html than to simply look out the window.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.070 (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.1.070 (extra)
-Problem: Win32 GUI: When using confirm() without a default button there
- still is a default choice.
-Solution: Set focus on something else than a button. (Chris Lubinski)
-Files: src/gui_w32.c
-
-
-*** ../vim-7.1.069/src/gui_w32.c Tue Jun 19 10:09:15 2007
---- src/gui_w32.c Sat Aug 11 17:39:50 2007
-***************
-*** 2894,2899 ****
---- 2894,2903 ----
- (void)SetFocus(hwnd);
- if (dialog_default_button > IDCANCEL)
- (void)SetFocus(GetDlgItem(hwnd, dialog_default_button));
-+ else
-+ /* We don't have a default, set focus on another element of the
-+ * dialog window, probably the icon */
-+ (void)SetFocus(GetDlgItem(hwnd, DLG_NONBUTTON_CONTROL));
- return FALSE;
- }
-
-*** ../vim-7.1.069/src/version.c Tue Aug 14 14:59:41 2007
---- src/version.c Tue Aug 14 16:55:41 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 70,
- /**/
-
---
-You are not really successful until someone claims he sat
-beside you in school.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.071 (after 7.1.040)
-Problem: Regexp patterns are not tested.
-Solution: Add a basic test, to be expanded later.
- Also add (commented-out) support for valgrind.
-Files: src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.1.070/src/testdir/Makefile Thu Jul 26 22:55:11 2007
---- src/testdir/Makefile Tue Aug 14 15:16:08 2007
-***************
-*** 4,9 ****
---- 4,13 ----
-
- VIMPROG = ../vim
-
-+ # Uncomment this line for using valgrind.
-+ # The output goes into a file "valgrind.$PID" (sorry, no test number).
-+ # VALGRIND = valgrind --tool=memcheck --num-callers=15 --logfile=valgrind
-+
- SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out test10.out test11.out \
- test12.out test13.out test14.out test15.out test17.out \
-***************
-*** 15,21 ****
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test49.out test51.out test52.out test53.out \
- test54.out test55.out test56.out test57.out test58.out \
-! test59.out test60.out test61.out test62.out test63.out
-
- SCRIPTS_GUI = test16.out
-
---- 19,26 ----
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test49.out test51.out test52.out test53.out \
- test54.out test55.out test56.out test57.out test58.out \
-! test59.out test60.out test61.out test62.out test63.out \
-! test64.out
-
- SCRIPTS_GUI = test16.out
-
-***************
-*** 38,44 ****
-
- test1.out: test1.in
- -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo
-! $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
- @/bin/sh -c "if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
- else echo; \
---- 43,49 ----
-
- test1.out: test1.in
- -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo
-! $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
- @/bin/sh -c "if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
- else echo; \
-***************
-*** 51,57 ****
- cp $*.ok test.ok
- # Sleep a moment to avoid that the xterm title is messed up
- @-sleep .2
-! -$(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
- @/bin/sh -c "if test -f test.out; then\
- if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
---- 56,62 ----
- cp $*.ok test.ok
- # Sleep a moment to avoid that the xterm title is messed up
- @-sleep .2
-! -$(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
- @/bin/sh -c "if test -f test.out; then\
- if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
-*** ../vim-7.1.070/src/testdir/test64.in Tue Aug 14 17:26:28 2007
---- src/testdir/test64.in Tue Aug 14 16:03:44 2007
-***************
-*** 0 ****
---- 1,52 ----
-+ Test for regexp patterns.
-+
-+ A pattern that gives the expected result produces OK, so that we know it was
-+ actually tried.
-+
-+ STARTTEST
-+ :so small.vim
-+ :" tl is a List of Lists with:
-+ :" regexp pattern
-+ :" text to test the pattern on
-+ :" expected match (optional)
-+ :" expected submatch 1 (optional)
-+ :" expected submatch 2 (optional)
-+ :" etc.
-+ :" When there is no match use only the first two items.
-+ :let tl = []
-+ :call add(tl, ['b', 'abcdef', 'b'])
-+ :call add(tl, ['bc*', 'abccccdef', 'bcccc'])
-+ :call add(tl, ['bc\{-}', 'abccccdef', 'b'])
-+ :call add(tl, ['bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
-+ :call add(tl, ['x', 'abcdef'])
-+ :"
-+ :for t in tl
-+ : let l = matchlist(t[1], t[0])
-+ :" check the match itself
-+ : if len(l) == 0 && len(t) > 2
-+ : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", did not match, expected: \"' . t[2] . '\"'
-+ : elseif len(l) > 0 && len(t) == 2
-+ : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", match: \"' . l[0] . '\", expected no match'
-+ : elseif len(t) > 2 && l[0] != t[2]
-+ : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", match: \"' . l[0] . '\", expected: \"' . t[2] . '\"'
-+ : else
-+ : $put ='OK'
-+ : endif
-+ : if len(l) > 0
-+ :" check all the nine submatches
-+ : for i in range(1, 9)
-+ : if len(t) <= i + 2
-+ : let e = ''
-+ : else
-+ : let e = t[i + 2]
-+ : endif
-+ : if l[i] != e
-+ : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'
-+ : endif
-+ : endfor
-+ : endif
-+ :endfor
-+ :/^Results/,$wq! test.out
-+ ENDTEST
-+
-+ Results of test64:
-*** ../vim-7.1.070/src/testdir/test64.ok Tue Aug 14 17:26:28 2007
---- src/testdir/test64.ok Tue Aug 14 16:01:47 2007
-***************
-*** 0 ****
---- 1,6 ----
-+ Results of test64:
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-*** ../vim-7.1.070/src/version.c Tue Aug 14 16:57:04 2007
---- src/version.c Tue Aug 14 17:25:20 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 71,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-150. You find yourself counting emoticons to get to sleep.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.072 (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.1.072 (extra, after 7.1.041 and 7.1.071)
-Problem: Some changes for patch 7.1.071 are in extra files.
-Solution: Update the extra files. Also fix a few warnings from the DOS test
- makefile.
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-
-*** ../vim-7.1.071/src/testdir/Make_amiga.mak Thu Jul 26 23:10:50 2007
---- src/testdir/Make_amiga.mak Tue Aug 14 15:14:03 2007
-***************
-*** 25,31 ****
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out
-
- .SUFFIXES: .in .out
-
---- 25,31 ----
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out test64.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 108,110 ****
---- 108,111 ----
- test61.out: test61.in
- test62.out: test62.in
- test63.out: test63.in
-+ test64.out: test64.in
-*** ../vim-7.1.071/src/testdir/Make_dos.mak Thu Jul 26 23:10:50 2007
---- src/testdir/Make_dos.mak Tue Aug 14 15:14:25 2007
-***************
-*** 19,25 ****
- test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out \
- test55.out test56.out test57.out test58.out test59.out \
-! test60.out test61.out test62.out test63.out
-
- SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
- test8.out test9.out test11.out test13.out test14.out \
---- 19,25 ----
- test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out \
- test55.out test56.out test57.out test58.out test59.out \
-! test60.out test61.out test62.out test63.out test64.out
-
- SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
- test8.out test9.out test11.out test13.out test14.out \
-***************
-*** 51,69 ****
-
- clean:
- -del *.out
-! -del test.ok
-! -del small.vim
-! -del tiny.vim
-! -del mbyte.vim
- -del X*
-! -del viminfo
-
- .in.out:
- copy $*.ok test.ok
- $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
- diff test.out $*.ok
-! -del $*.out
- rename test.out $*.out
- -del X*
- -del test.ok
-! -del viminfo
---- 51,69 ----
-
- clean:
- -del *.out
-! -if exist test.ok del test.ok
-! -if exist small.vim del small.vim
-! -if exist tiny.vim del tiny.vim
-! -if exist mbyte.vim del mbyte.vim
- -del X*
-! -if exist viminfo del viminfo
-
- .in.out:
- copy $*.ok test.ok
- $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
- diff test.out $*.ok
-! -if exist $*.out del $*.out
- rename test.out $*.out
- -del X*
- -del test.ok
-! -if exist viminfo del viminfo
-*** ../vim-7.1.071/src/testdir/Make_os2.mak Thu Jul 26 23:10:50 2007
---- src/testdir/Make_os2.mak Tue Aug 14 15:14:44 2007
-***************
-*** 25,31 ****
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out
-
- .SUFFIXES: .in .out
-
---- 25,31 ----
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out test64.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.1.071/src/testdir/Make_vms.mms Thu Jul 26 23:10:50 2007
---- src/testdir/Make_vms.mms Tue Aug 14 15:15:56 2007
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2007 Jul 24
- #
- # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX.
- # Edit the lines in the Configuration section below to select.
---- 4,10 ----
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2007 Aug 14
- #
- # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX.
- # Edit the lines in the Configuration section below to select.
-***************
-*** 59,65 ****
- test43.out test44.out test45.out test46.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out
-
- .IFDEF WANT_GUI
- SCRIPT_GUI = test16.out
---- 59,65 ----
- test43.out test44.out test45.out test46.out \
- test48.out test51.out test53.out test54.out test55.out \
- test56.out test57.out test58.out test59.out test60.out \
-! test61.out test62.out test63.out test64.out
-
- .IFDEF WANT_GUI
- SCRIPT_GUI = test16.out
-*** ../vim-7.1.071/src/version.c Tue Aug 14 17:28:14 2007
---- src/version.c Tue Aug 14 17:51:21 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 72,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-152. You find yourself falling for someone you've never seen or hardly
- know, but, boy can he/she TYPE!!!!!!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.073 (after 7.1.062)
-Problem: Wrong cursor position and crash when 'preserveindent' is set.
- (Charles Campbell)
-Solution: Handle the situation that we start without indent. (Chris
- Lubinski)
-Files: src/misc1.c
-
-
-*** ../vim-7.1.072/src/misc1.c Sat Aug 11 14:32:10 2007
---- src/misc1.c Tue Aug 14 21:21:49 2007
-***************
-*** 104,110 ****
- int ind_done = 0; /* measured in spaces */
- int tab_pad;
- int retval = FALSE;
-! int orig_char_len = 0; /* number of initial whitespace chars when
- 'et' and 'pi' are both set */
-
- /*
---- 104,110 ----
- int ind_done = 0; /* measured in spaces */
- int tab_pad;
- int retval = FALSE;
-! int orig_char_len = -1; /* number of initial whitespace chars when
- 'et' and 'pi' are both set */
-
- /*
-***************
-*** 159,165 ****
-
- /* Fill to next tabstop with a tab, if possible */
- tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
-! if (todo >= tab_pad && orig_char_len == 0)
- {
- doit = TRUE;
- todo -= tab_pad;
---- 159,165 ----
-
- /* Fill to next tabstop with a tab, if possible */
- tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
-! if (todo >= tab_pad && orig_char_len == -1)
- {
- doit = TRUE;
- todo -= tab_pad;
-***************
-*** 206,216 ****
- /* If 'preserveindent' and 'expandtab' are both set keep the original
- * characters and allocate accordingly. We will fill the rest with spaces
- * after the if (!curbuf->b_p_et) below. */
-! if (orig_char_len != 0)
- {
- newline = alloc(orig_char_len + size - ind_done + line_len);
- if (newline == NULL)
- return FALSE;
- p = oldline;
- s = newline;
- while (orig_char_len > 0)
---- 206,220 ----
- /* If 'preserveindent' and 'expandtab' are both set keep the original
- * characters and allocate accordingly. We will fill the rest with spaces
- * after the if (!curbuf->b_p_et) below. */
-! if (orig_char_len != -1)
- {
- newline = alloc(orig_char_len + size - ind_done + line_len);
- if (newline == NULL)
- return FALSE;
-+ todo = size - ind_done;
-+ ind_len = orig_char_len + todo; /* Set total length of indent in
-+ * characters, which may have been
-+ * undercounted until now */
- p = oldline;
- s = newline;
- while (orig_char_len > 0)
-***************
-*** 222,230 ****
- * than old) */
- while (vim_iswhite(*p))
- (void)*p++;
-- todo = size - ind_done;
-- ind_len += todo; /* Set total length of indent in characters,
-- * which may have been undercounted until now */
-
- }
- else
---- 226,231 ----
-*** ../vim-7.1.072/src/version.c Tue Aug 14 17:54:37 2007
---- src/version.c Tue Aug 14 22:14:54 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 73,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-157. You fum through a magazine, you first check to see if it has a web
- address.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.074
-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.1.074
-Problem: Crash when calling string() on a recurively nested List.
-Solution: Check result value for being NULL. (Yukihiro Nakadaira)
-Files: src/eval.c
-
-
-*** ../vim-7.1.073/src/eval.c Mon Aug 6 22:27:12 2007
---- src/eval.c Tue Aug 14 22:01:12 2007
-***************
-*** 6802,6808 ****
- * "numbuf" is used for a number.
- * Does not put quotes around strings, as ":echo" displays values.
- * When "copyID" is not NULL replace recursive lists and dicts with "...".
-! * May return NULL;
- */
- static char_u *
- echo_string(tv, tofree, numbuf, copyID)
---- 6802,6808 ----
- * "numbuf" is used for a number.
- * Does not put quotes around strings, as ":echo" displays values.
- * When "copyID" is not NULL replace recursive lists and dicts with "...".
-! * May return NULL.
- */
- static char_u *
- echo_string(tv, tofree, numbuf, copyID)
-***************
-*** 6887,6893 ****
- * If the memory is allocated "tofree" is set to it, otherwise NULL.
- * "numbuf" is used for a number.
- * Puts quotes around strings, so that they can be parsed back by eval().
-! * May return NULL;
- */
- static char_u *
- tv2string(tv, tofree, numbuf, copyID)
---- 6887,6893 ----
- * If the memory is allocated "tofree" is set to it, otherwise NULL.
- * "numbuf" is used for a number.
- * Puts quotes around strings, so that they can be parsed back by eval().
-! * May return NULL.
- */
- static char_u *
- tv2string(tv, tofree, numbuf, copyID)
-***************
-*** 14974,14979 ****
---- 14974,14983 ----
-
- p1 = tv2string(&(*(listitem_T **)s1)->li_tv, &tofree1, numbuf1, 0);
- p2 = tv2string(&(*(listitem_T **)s2)->li_tv, &tofree2, numbuf2, 0);
-+ if (p1 == NULL)
-+ p1 = (char_u *)"";
-+ if (p2 == NULL)
-+ p2 = (char_u *)"";
- if (item_compare_ic)
- res = STRICMP(p1, p2);
- else
-***************
-*** 15463,15469 ****
-
- rettv->v_type = VAR_STRING;
- rettv->vval.v_string = tv2string(&argvars[0], &tofree, numbuf, 0);
-! if (tofree == NULL)
- rettv->vval.v_string = vim_strsave(rettv->vval.v_string);
- }
-
---- 15467,15474 ----
-
- rettv->v_type = VAR_STRING;
- rettv->vval.v_string = tv2string(&argvars[0], &tofree, numbuf, 0);
-! /* Make a copy if we have a value but it's not in allocate memory. */
-! if (rettv->vval.v_string != NULL && tofree == NULL)
- rettv->vval.v_string = vim_strsave(rettv->vval.v_string);
- }
-
-***************
-*** 20167,20172 ****
---- 20174,20180 ----
- char_u buf[MSG_BUF_LEN];
- char_u numbuf2[NUMBUFLEN];
- char_u *tofree;
-+ char_u *s;
-
- msg_puts((char_u *)"(");
- for (i = 0; i < argcount; ++i)
-***************
-*** 20177,20186 ****
- msg_outnum((long)argvars[i].vval.v_number);
- else
- {
-! trunc_string(tv2string(&argvars[i], &tofree,
-! numbuf2, 0), buf, MSG_BUF_CLEN);
-! msg_puts(buf);
-! vim_free(tofree);
- }
- }
- msg_puts((char_u *)")");
---- 20185,20197 ----
- msg_outnum((long)argvars[i].vval.v_number);
- else
- {
-! s = tv2string(&argvars[i], &tofree, numbuf2, 0);
-! if (s != NULL)
-! {
-! trunc_string(s, buf, MSG_BUF_CLEN);
-! msg_puts(buf);
-! vim_free(tofree);
-! }
- }
- }
- msg_puts((char_u *)")");
-***************
-*** 20258,20271 ****
- char_u buf[MSG_BUF_LEN];
- char_u numbuf2[NUMBUFLEN];
- char_u *tofree;
-
- /* The value may be very long. Skip the middle part, so that we
- * have some idea how it starts and ends. smsg() would always
- * truncate it at the end. */
-! trunc_string(tv2string(fc.rettv, &tofree, numbuf2, 0),
-! buf, MSG_BUF_CLEN);
-! smsg((char_u *)_("%s returning %s"), sourcing_name, buf);
-! vim_free(tofree);
- }
- msg_puts((char_u *)"\n"); /* don't overwrite this either */
-
---- 20269,20286 ----
- char_u buf[MSG_BUF_LEN];
- char_u numbuf2[NUMBUFLEN];
- char_u *tofree;
-+ char_u *s;
-
- /* The value may be very long. Skip the middle part, so that we
- * have some idea how it starts and ends. smsg() would always
- * truncate it at the end. */
-! s = tv2string(fc.rettv, &tofree, numbuf2, 0);
-! if (s != NULL)
-! {
-! trunc_string(s, buf, MSG_BUF_CLEN);
-! smsg((char_u *)_("%s returning %s"), sourcing_name, buf);
-! vim_free(tofree);
-! }
- }
- msg_puts((char_u *)"\n"); /* don't overwrite this either */
-
-*** ../vim-7.1.073/src/version.c Tue Aug 14 22:15:53 2007
---- src/version.c Tue Aug 14 22:27:24 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 74,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-159. You get excited whenever discussing your hard drive.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.075
-Problem: ":let v:statusmsg" reads memory already freed.
-Solution: Don't set v:statusmsg when listing it.
-Files: src/eval.c
-
-
-*** ../vim-7.1.074/src/eval.c Tue Aug 14 22:28:35 2007
---- src/eval.c Tue Aug 14 22:01:12 2007
-***************
-*** 18022,18028 ****
- int type;
- char_u *string;
- {
-! msg_attr(prefix, 0); /* don't use msg(), it overwrites "v:statusmsg" */
- if (name != NULL) /* "a:" vars don't have a name stored */
- msg_puts(name);
- msg_putchar(' ');
---- 18022,18030 ----
- int type;
- char_u *string;
- {
-! /* don't use msg() or msg_attr() to avoid overwriting "v:statusmsg" */
-! msg_start();
-! msg_puts(prefix);
- if (name != NULL) /* "a:" vars don't have a name stored */
- msg_puts(name);
- msg_putchar(' ');
-*** ../vim-7.1.074/src/version.c Tue Aug 14 22:28:35 2007
---- src/version.c Tue Aug 14 22:39:49 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 75,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-160. You get in the elevator and double-click the button for the floor
- you want.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.076
-Problem: Another strcpy() with overlapping arguments.
-Solution: Use mch_memmove(). (Dominique Pelle) And another one.
-Files: src/ex_docmd.c, src/normal.c
-
-
-*** ../vim-7.1.075/src/ex_docmd.c Sat Aug 11 15:59:44 2007
---- src/ex_docmd.c Wed Aug 8 22:28:33 2007
-***************
-*** 4493,4499 ****
- if (eap->argt & (USECTRLV | XFILE))
- ++p; /* skip CTRL-V and next char */
- else
-! STRCPY(p, p + 1); /* remove CTRL-V and skip next char */
- if (*p == NUL) /* stop at NUL after CTRL-V */
- break;
- }
---- 4493,4500 ----
- if (eap->argt & (USECTRLV | XFILE))
- ++p; /* skip CTRL-V and next char */
- else
-! /* remove CTRL-V and skip next char */
-! mch_memmove(p, p + 1, STRLEN(p));
- if (*p == NUL) /* stop at NUL after CTRL-V */
- break;
- }
-*** ../vim-7.1.075/src/normal.c Wed Aug 8 21:41:19 2007
---- src/normal.c Sun Aug 12 17:35:20 2007
-***************
-*** 3760,3766 ****
- extra_len = (int)STRLEN(p);
- overflow = old_len + extra_len - SHOWCMD_COLS;
- if (overflow > 0)
-! STRCPY(showcmd_buf, showcmd_buf + overflow);
- STRCAT(showcmd_buf, p);
-
- if (char_avail())
---- 3760,3767 ----
- extra_len = (int)STRLEN(p);
- overflow = old_len + extra_len - SHOWCMD_COLS;
- if (overflow > 0)
-! mch_memmove(showcmd_buf, showcmd_buf + overflow,
-! old_len - overflow + 1);
- STRCAT(showcmd_buf, p);
-
- if (char_avail())
-*** ../vim-7.1.075/src/version.c Tue Aug 14 22:40:13 2007
---- src/version.c Tue Aug 14 22:53:13 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 76,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-161. You get up before the sun rises to check your e-mail, and you
- find yourself in the very same chair long after the sun has set.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.077
-Problem: Using "can_spell" without initializing it. (Dominique Pelle)
-Solution: Set a default for get_syntax_attr().
-Files: src/syntax.c
-
-
-*** ../vim-7.1.076/src/syntax.c Thu Jul 26 22:55:11 2007
---- src/syntax.c Sun Aug 12 19:49:07 2007
-***************
-*** 1727,1732 ****
---- 1727,1739 ----
- {
- int attr = 0;
-
-+ if (can_spell != NULL)
-+ /* Default: Only do spelling when there is no @Spell cluster or when
-+ * ":syn spell toplevel" was used. */
-+ *can_spell = syn_buf->b_syn_spell == SYNSPL_DEFAULT
-+ ? (syn_buf->b_spell_cluster_id == 0)
-+ : (syn_buf->b_syn_spell == SYNSPL_TOP);
-+
- /* check for out of memory situation */
- if (syn_buf->b_sst_array == NULL)
- return 0;
-*** ../vim-7.1.076/src/version.c Tue Aug 14 22:54:00 2007
---- src/version.c Tue Aug 14 23:06:26 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 77,
- /**/
-
---
-Send $25.00 for handy leaflet on how to make money by selling leaflets
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.078
-Problem: Dropping a file name on gvim that contains a CSI byte doesn't work
- when editing the command line.
-Solution: Escape the CSI byte when inserting in the input buffer. (Yukihiro
- Nakadaira)
-Files: src/gui.c, src/ui.c
-
-
-*** ../vim-7.1.077/src/gui.c Thu May 10 19:19:15 2007
---- src/gui.c Tue Aug 14 12:41:43 2007
-***************
-*** 5117,5123 ****
- p = vim_strsave_escaped(fnames[i], (char_u *)"\\ \t\"|");
- # endif
- if (p != NULL)
-! add_to_input_buf(p, (int)STRLEN(p));
- vim_free(p);
- vim_free(fnames[i]);
- }
---- 5117,5123 ----
- p = vim_strsave_escaped(fnames[i], (char_u *)"\\ \t\"|");
- # endif
- if (p != NULL)
-! add_to_input_buf_csi(p, (int)STRLEN(p));
- vim_free(p);
- vim_free(fnames[i]);
- }
-*** ../vim-7.1.077/src/ui.c Thu May 10 21:14:11 2007
---- src/ui.c Tue Aug 14 12:41:42 2007
-***************
-*** 1603,1610 ****
- #if defined(FEAT_GUI) || defined(FEAT_MOUSE_GPM) \
- || defined(FEAT_XCLIPBOARD) || defined(VMS) \
- || defined(FEAT_SNIFF) || defined(FEAT_CLIENTSERVER) \
-- || (defined(FEAT_GUI) && (!defined(USE_ON_FLY_SCROLL) \
-- || defined(FEAT_MENU))) \
- || defined(PROTO)
- /*
- * Add the given bytes to the input buffer
---- 1603,1608 ----
-***************
-*** 1630,1636 ****
- }
- #endif
-
-! #if (defined(FEAT_XIM) && defined(FEAT_GUI_GTK)) \
- || (defined(FEAT_MBYTE) && defined(FEAT_MBYTE_IME)) \
- || (defined(FEAT_GUI) && (!defined(USE_ON_FLY_SCROLL) \
- || defined(FEAT_MENU))) \
---- 1628,1636 ----
- }
- #endif
-
-! #if ((defined(FEAT_XIM) || defined(FEAT_DND)) && defined(FEAT_GUI_GTK)) \
-! || defined(FEAT_GUI_MSWIN) \
-! || defined(FEAT_GUI_MAC) \
- || (defined(FEAT_MBYTE) && defined(FEAT_MBYTE_IME)) \
- || (defined(FEAT_GUI) && (!defined(USE_ON_FLY_SCROLL) \
- || defined(FEAT_MENU))) \
-*** ../vim-7.1.077/src/version.c Tue Aug 14 23:06:51 2007
---- src/version.c Wed Aug 15 20:07:06 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 78,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-164. You got out to buy software, instead of going out for a beer.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.079
-Problem: When the locale is "C" and 'encoding' is "latin1" then the "@"
- character in 'isfname', 'isprint', etc. doesn't pick up accented
- characters.
-Solution: Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER().
-Files: src/charset.c, src/macros.h
-
-
-*** ../vim-7.1.078/src/charset.c Mon Aug 6 22:27:12 2007
---- src/charset.c Tue Aug 14 13:43:30 2007
-***************
-*** 207,213 ****
- }
- while (c <= c2)
- {
-! if (!do_isalpha || isalpha(c)
- #ifdef FEAT_FKMAP
- || (p_altkeymap && (F_isalpha(c) || F_isdigit(c)))
- #endif
---- 207,216 ----
- }
- while (c <= c2)
- {
-! /* Use the MB_ functions here, because isalpha() doesn't
-! * work properly when 'encoding' is "latin1" and the locale is
-! * "C". */
-! if (!do_isalpha || MB_ISLOWER(c) || MB_ISUPPER(c)
- #ifdef FEAT_FKMAP
- || (p_altkeymap && (F_isalpha(c) || F_isdigit(c)))
- #endif
-*** ../vim-7.1.078/src/macros.h Thu May 10 19:21:00 2007
---- src/macros.h Sat Aug 4 13:44:18 2007
-***************
-*** 54,63 ****
-
- /*
- * toupper() and tolower() that use the current locale.
-! * On some systems toupper()/tolower() only work on lower/uppercase characters
- * Careful: Only call TOUPPER_LOC() and TOLOWER_LOC() with a character in the
- * range 0 - 255. toupper()/tolower() on some systems can't handle others.
-! * Note: for UTF-8 use utf_toupper() and utf_tolower().
- */
- #ifdef MSWIN
- # define TOUPPER_LOC(c) toupper_tab[(c) & 255]
---- 54,65 ----
-
- /*
- * toupper() and tolower() that use the current locale.
-! * On some systems toupper()/tolower() only work on lower/uppercase
-! * characters, first use islower() or isupper() then.
- * Careful: Only call TOUPPER_LOC() and TOLOWER_LOC() with a character in the
- * range 0 - 255. toupper()/tolower() on some systems can't handle others.
-! * Note: It is often better to use MB_TOLOWER() and MB_TOUPPER(), because many
-! * toupper() and tolower() implementations only work for ASCII.
- */
- #ifdef MSWIN
- # define TOUPPER_LOC(c) toupper_tab[(c) & 255]
-*** ../vim-7.1.078/src/version.c Wed Aug 15 20:07:53 2007
---- src/version.c Wed Aug 15 20:39:18 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 79,
- /**/
-
---
-You're as much use as a condom machine at the Vatican.
- -- Rimmer to Holly in Red Dwarf 'Queeg'
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.080 (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.1.080 (extra)
-Problem: Compiler warnings for using "const char *" for "char *".
-Solution: Add type casts. (Chris Sutcliffe)
-Files: src/GvimExt/gvimext.cpp
-
-
-*** ../vim-7.1.079/src/GvimExt/gvimext.cpp Thu May 10 21:09:38 2007
---- src/GvimExt/gvimext.cpp Thu Aug 16 21:25:56 2007
-***************
-*** 69,82 ****
-
- // Registry didn't work, use the search path.
- if (name[0] == 0)
-! strcpy(name, searchpath("gvim.exe"));
-
- if (!runtime)
- {
- // Only when looking for the executable, not the runtime dir, we can
- // search for the batch file or a name without a path.
- if (name[0] == 0)
-! strcpy(name, searchpath("gvim.bat"));
- if (name[0] == 0)
- strcpy(name, "gvim"); // finds gvim.bat or gvim.exe
-
---- 69,82 ----
-
- // Registry didn't work, use the search path.
- if (name[0] == 0)
-! strcpy(name, searchpath((char *)"gvim.exe"));
-
- if (!runtime)
- {
- // Only when looking for the executable, not the runtime dir, we can
- // search for the batch file or a name without a path.
- if (name[0] == 0)
-! strcpy(name, searchpath((char *)"gvim.bat"));
- if (name[0] == 0)
- strcpy(name, "gvim"); // finds gvim.bat or gvim.exe
-
-***************
-*** 152,160 ****
- FARPROC *ptr;
- } libintl_entry[] =
- {
-! {"gettext", (FARPROC*)&dyn_libintl_gettext},
-! {"textdomain", (FARPROC*)&dyn_libintl_textdomain},
-! {"bindtextdomain", (FARPROC*)&dyn_libintl_bindtextdomain},
- {NULL, NULL}
- };
-
---- 152,160 ----
- FARPROC *ptr;
- } libintl_entry[] =
- {
-! {(char *)"gettext", (FARPROC*)&dyn_libintl_gettext},
-! {(char *)"textdomain", (FARPROC*)&dyn_libintl_textdomain},
-! {(char *)"bindtextdomain", (FARPROC*)&dyn_libintl_bindtextdomain},
- {NULL, NULL}
- };
-
-***************
-*** 835,841 ****
- (LPTSTR)location) > (HINSTANCE)32)
- return location;
- }
-! return "";
- }
- # endif
- #endif
---- 835,841 ----
- (LPTSTR)location) > (HINSTANCE)32)
- return location;
- }
-! return (char *)"";
- }
- # endif
- #endif
-*** ../vim-7.1.079/src/version.c Wed Aug 15 20:40:45 2007
---- src/version.c Sat Aug 18 16:58:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 80,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-192. Your boss asks you to "go fer" coffee and you come up with 235 FTP sites.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.081
-Problem: Command line completion for a shell command: "cat </tmp/file<Tab>"
- doesn't work.
-Solution: Start the file name at any character that can't be in a file name.
- (Martin Toft)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.080/src/ex_docmd.c Tue Aug 14 22:54:00 2007
---- src/ex_docmd.c Sat Aug 18 14:58:53 2007
-***************
-*** 3281,3319 ****
-
- if (ea.argt & XFILE)
- {
-! int in_quote = FALSE;
-! char_u *bow = NULL; /* Beginning of word */
-
- /*
- * Allow spaces within back-quotes to count as part of the argument
- * being expanded.
- */
- xp->xp_pattern = skipwhite(arg);
-! for (p = xp->xp_pattern; *p; )
- {
-! if (*p == '\\' && p[1] != NUL)
- ++p;
- #ifdef SPACE_IN_FILENAME
-! else if (vim_iswhite(*p) && (!(ea.argt & NOSPC) || usefilter))
- #else
-! else if (vim_iswhite(*p))
- #endif
- {
-! p = skipwhite(p);
- if (in_quote)
- bow = p;
- else
- xp->xp_pattern = p;
-! --p;
-! }
-! else if (*p == '`')
-! {
-! if (!in_quote)
-! {
-! xp->xp_pattern = p;
-! bow = p + 1;
-! }
-! in_quote = !in_quote;
- }
- mb_ptr_adv(p);
- }
---- 3281,3344 ----
-
- if (ea.argt & XFILE)
- {
-! int c;
-! int in_quote = FALSE;
-! char_u *bow = NULL; /* Beginning of word */
-
- /*
- * Allow spaces within back-quotes to count as part of the argument
- * being expanded.
- */
- xp->xp_pattern = skipwhite(arg);
-! p = xp->xp_pattern;
-! while (*p != NUL)
- {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! c = mb_ptr2char(p);
-! else
-! #endif
-! c = *p;
-! if (c == '\\' && p[1] != NUL)
- ++p;
-+ else if (c == '`')
-+ {
-+ if (!in_quote)
-+ {
-+ xp->xp_pattern = p;
-+ bow = p + 1;
-+ }
-+ in_quote = !in_quote;
-+ }
- #ifdef SPACE_IN_FILENAME
-! else if (!vim_isfilec(c) && (!(ea.argt & NOSPC) || usefilter))
- #else
-! else if (!vim_isfilec(c))
- #endif
- {
-! while (*p != NUL)
-! {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! c = mb_ptr2char(p);
-! else
-! #endif
-! c = *p;
-! if (c == '`' || vim_isfilec(c))
-! break;
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! len = (*mb_ptr2len)(p);
-! else
-! #endif
-! len = 1;
-! mb_ptr_adv(p);
-! }
- if (in_quote)
- bow = p;
- else
- xp->xp_pattern = p;
-! p -= len;
- }
- mb_ptr_adv(p);
- }
-*** ../vim-7.1.080/src/version.c Sat Aug 18 16:59:43 2007
---- src/version.c Sat Aug 18 17:45:54 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 81,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-194. Your business cards contain your e-mail and home page address.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.082
-Problem: After a ":split" the matchparen highlighting isn't there.
-Solution: Install a WinEnter autocommand. Also fixes that after
- ":NoMatchParen" only the current window is updated. (Martin Toft)
-Files: runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim
-
-
-*** ../vim-7.1.081/runtime/doc/pi_paren.txt Sat May 12 16:23:41 2007
---- runtime/doc/pi_paren.txt Sat Aug 18 15:08:32 2007
-***************
-*** 12,19 ****
- You can avoid loading this plugin by setting the "loaded_matchparen" variable: >
- :let loaded_matchparen = 1
-
-! The plugin installs CursorMoved autocommands to redefine the match
-! highlighting.
-
- To disable the plugin after it was loaded use this command: >
-
---- 12,19 ----
- You can avoid loading this plugin by setting the "loaded_matchparen" variable: >
- :let loaded_matchparen = 1
-
-! The plugin installs CursorMoved, CursorMovedI and WinEnter autocommands to
-! redefine the match highlighting.
-
- To disable the plugin after it was loaded use this command: >
-
-*** ../vim-7.1.081/runtime/plugin/matchparen.vim Thu Aug 2 23:00:06 2007
---- runtime/plugin/matchparen.vim Sat Aug 18 15:08:32 2007
-***************
-*** 1,6 ****
- " Vim plugin for showing matching parens
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 Jul 30
-
- " Exit quickly when:
- " - this plugin was already loaded (or disabled)
---- 1,6 ----
- " Vim plugin for showing matching parens
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 Aug 8
-
- " Exit quickly when:
- " - this plugin was already loaded (or disabled)
-***************
-*** 13,19 ****
-
- augroup matchparen
- " Replace all matchparen autocommands
-! autocmd! CursorMoved,CursorMovedI * call s:Highlight_Matching_Pair()
- augroup END
-
- " Skip the rest if it was already done.
---- 13,19 ----
-
- augroup matchparen
- " Replace all matchparen autocommands
-! autocmd! CursorMoved,CursorMovedI,WinEnter * call s:Highlight_Matching_Pair()
- augroup END
-
- " Skip the rest if it was already done.
-***************
-*** 126,132 ****
- endfunction
-
- " Define commands that will disable and enable the plugin.
-! command! NoMatchParen 3match none | unlet! g:loaded_matchparen | au! matchparen
-! command! DoMatchParen runtime plugin/matchparen.vim | doau CursorMoved
-
- let &cpo = cpo_save
---- 126,133 ----
- endfunction
-
- " Define commands that will disable and enable the plugin.
-! command! NoMatchParen windo 3match none | unlet! g:loaded_matchparen |
-! \ au! matchparen
-! command! DoMatchParen runtime plugin/matchparen.vim | windo doau CursorMoved
-
- let &cpo = cpo_save
-*** ../vim-7.1.081/src/version.c Sat Aug 18 17:46:50 2007
---- src/version.c Sat Aug 18 18:19:20 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 82,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-195. Your cat has its own home page.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.083 (after 7.1.081)
-Problem: Command line completion doesn't work with wildcards.
-Solution: Add vim_isfilec_or_wc() and use it. (Martin Toft)
-Files: src/charset.c, src/proto/charset.pro, src/ex_docmd.c
-
-
-*** ../vim-7.1.082/src/charset.c Wed Aug 15 20:40:45 2007
---- src/charset.c Sun Aug 19 22:30:25 2007
-***************
-*** 932,937 ****
---- 932,954 ----
- }
-
- /*
-+ * return TRUE if 'c' is a valid file-name character or a wildcard character
-+ * Assume characters above 0x100 are valid (multi-byte).
-+ * Explicitly interpret ']' as a wildcard character as mch_has_wildcard("]")
-+ * returns false.
-+ */
-+ int
-+ vim_isfilec_or_wc(c)
-+ int c;
-+ {
-+ char_u buf[2];
-+
-+ buf[0] = (char_u)c;
-+ buf[1] = NUL;
-+ return vim_isfilec(c) || c == ']' || mch_has_wildcard(buf);
-+ }
-+
-+ /*
- * return TRUE if 'c' is a printable character
- * Assume characters above 0x100 are printable (multi-byte), except for
- * Unicode.
-*** ../vim-7.1.082/src/proto/charset.pro Sat May 5 19:21:32 2007
---- src/proto/charset.pro Sun Aug 19 22:30:28 2007
-***************
-*** 21,26 ****
---- 21,27 ----
- int vim_iswordp __ARGS((char_u *p));
- int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf));
- int vim_isfilec __ARGS((int c));
-+ int vim_isfilec_or_wc __ARGS((int c));
- int vim_isprintc __ARGS((int c));
- int vim_isprintc_strict __ARGS((int c));
- int lbr_chartabsize __ARGS((unsigned char *s, colnr_T col));
-*** ../vim-7.1.082/src/ex_docmd.c Sat Aug 18 17:46:50 2007
---- src/ex_docmd.c Sun Aug 19 22:29:17 2007
-***************
-*** 3311,3319 ****
- in_quote = !in_quote;
- }
- #ifdef SPACE_IN_FILENAME
-! else if (!vim_isfilec(c) && (!(ea.argt & NOSPC) || usefilter))
- #else
-! else if (!vim_isfilec(c))
- #endif
- {
- while (*p != NUL)
---- 3311,3320 ----
- in_quote = !in_quote;
- }
- #ifdef SPACE_IN_FILENAME
-! else if (!vim_isfilec_or_wc(c)
-! && (!(ea.argt & NOSPC) || usefilter))
- #else
-! else if (!vim_isfilec_or_wc(c))
- #endif
- {
- while (*p != NUL)
-***************
-*** 3324,3330 ****
- else
- #endif
- c = *p;
-! if (c == '`' || vim_isfilec(c))
- break;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
---- 3325,3331 ----
- else
- #endif
- c = *p;
-! if (c == '`' || vim_isfilec_or_wc(c))
- break;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-*** ../vim-7.1.082/src/version.c Sat Aug 18 18:20:57 2007
---- src/version.c Sun Aug 19 22:31:43 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 83,
- /**/
-
---
- "You mean there really is an answer?"
- "Yes! But you're not going to like it!"
- "Oh do please tell us!"
- "You're really not going to like it!"
- "but we MUST know - tell us"
- "Alright, the answer is...."
- "yes..."
- "... is ..."
- "yes... come on!"
- "is 42!"
- (Douglas Adams - The Hitchhiker's Guide to the Galaxy)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.084
-Problem: Using the "-nb" argument twice causes netbeans not to get
- fileOpened events.
-Solution: Change "&" to "&&". (Xavier de Gaye)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.083/src/ex_cmds.c Wed Jul 25 22:55:22 2007
---- src/ex_cmds.c Tue Aug 21 15:02:43 2007
-***************
-*** 3776,3782 ****
- workshop_file_opened((char *)curbuf->b_ffname, curbuf->b_p_ro);
- # endif
- # ifdef FEAT_NETBEANS_INTG
-! if (usingNetbeans & ((flags & ECMD_SET_HELP) != ECMD_SET_HELP))
- netbeans_file_opened(curbuf);
- # endif
- }
---- 3787,3793 ----
- workshop_file_opened((char *)curbuf->b_ffname, curbuf->b_p_ro);
- # endif
- # ifdef FEAT_NETBEANS_INTG
-! if (usingNetbeans && ((flags & ECMD_SET_HELP) != ECMD_SET_HELP))
- netbeans_file_opened(curbuf);
- # endif
- }
-*** ../vim-7.1.083/src/version.c Sun Aug 19 22:42:27 2007
---- src/version.c Tue Aug 21 15:04:03 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 84,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-220. Your wife asks for sex and you tell her where to find you on IRC.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.085
-Problem: ":e fold.c" then ":sp fold.c" results in folds of original window
- to disappear. (Akita Noek)
-Solution: Invoke foldUpdateAll() for all windows of the changed buffer.
- (Martin Toft)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.084/src/ex_cmds.c Tue Aug 21 15:05:54 2007
---- src/ex_cmds.c Tue Aug 21 15:02:43 2007
-***************
-*** 2974,2980 ****
- * 'fnum' is the number of the file, if zero use ffname/sfname.
- *
- * Return 1 for "normal" error, 2 for "not written" error, 0 for success
-! * -1 for succesfully opening another file.
- * 'lnum' is the line number for the cursor in the new file (if non-zero).
- */
- int
---- 2974,2980 ----
- * 'fnum' is the number of the file, if zero use ffname/sfname.
- *
- * Return 1 for "normal" error, 2 for "not written" error, 0 for success
-! * -1 for successfully opening another file.
- * 'lnum' is the line number for the cursor in the new file (if non-zero).
- */
- int
-***************
-*** 3584,3592 ****
- curwin_init();
-
- #ifdef FEAT_FOLDING
-! /* It's like all lines in the buffer changed. Need to update
-! * automatic folding. */
- foldUpdateAll(curwin);
- #endif
-
- /* Change directories when the 'acd' option is set. */
---- 3584,3603 ----
- curwin_init();
-
- #ifdef FEAT_FOLDING
-! /* It's possible that all lines in the buffer changed. Need to update
-! * automatic folding for all windows where it's used. */
-! # ifdef FEAT_WINDOWS
-! {
-! win_T *win;
-! tabpage_T *tp;
-!
-! FOR_ALL_TAB_WINDOWS(tp, win)
-! if (win->w_buffer == curbuf)
-! foldUpdateAll(win);
-! }
-! # else
- foldUpdateAll(curwin);
-+ # endif
- #endif
-
- /* Change directories when the 'acd' option is set. */
-*** ../vim-7.1.084/src/version.c Tue Aug 21 15:05:54 2007
---- src/version.c Tue Aug 21 15:26:43 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 85,
- /**/
-
---
-Your fault: core dumped
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.086
-Problem: Crash when using specific Python syntax highlighting. (Quirk)
-Solution: Check for a negative index, coming from a keyword match at the
- start of a line from a saved state.
-Files: src/syntax.c
-
-
-*** ../vim-7.1.085/src/syntax.c Tue Aug 14 23:06:51 2007
---- src/syntax.c Tue Aug 21 17:13:51 2007
-***************
-*** 279,285 ****
- */
- typedef struct state_item
- {
-! int si_idx; /* index of syntax pattern */
- int si_id; /* highlight group ID for keywords */
- int si_trans_id; /* idem, transparancy removed */
- int si_m_lnum; /* lnum of the match */
---- 279,286 ----
- */
- typedef struct state_item
- {
-! int si_idx; /* index of syntax pattern or
-! KEYWORD_IDX */
- int si_id; /* highlight group ID for keywords */
- int si_trans_id; /* idem, transparancy removed */
- int si_m_lnum; /* lnum of the match */
-***************
-*** 837,845 ****
- current_lnum = end_lnum;
- break;
- }
-! spp = &(SYN_ITEMS(syn_buf)[cur_si->si_idx]);
-! found_flags = spp->sp_flags;
-! found_match_idx = spp->sp_sync_idx;
- found_current_lnum = current_lnum;
- found_current_col = current_col;
- found_m_endpos = cur_si->si_m_endpos;
---- 838,855 ----
- current_lnum = end_lnum;
- break;
- }
-! if (cur_si->si_idx < 0)
-! {
-! /* Cannot happen? */
-! found_flags = 0;
-! found_match_idx = KEYWORD_IDX;
-! }
-! else
-! {
-! spp = &(SYN_ITEMS(syn_buf)[cur_si->si_idx]);
-! found_flags = spp->sp_flags;
-! found_match_idx = spp->sp_sync_idx;
-! }
- found_current_lnum = current_lnum;
- found_current_col = current_col;
- found_m_endpos = cur_si->si_m_endpos;
-***************
-*** 2533,2538 ****
---- 2543,2552 ----
- stateitem_T *sip = &CUR_STATE(idx);
- synpat_T *spp;
-
-+ /* This should not happen... */
-+ if (sip->si_idx < 0)
-+ return;
-+
- spp = &(SYN_ITEMS(syn_buf)[sip->si_idx]);
- if (sip->si_flags & HL_MATCH)
- sip->si_id = spp->sp_syn_match_id;
-***************
-*** 2648,2653 ****
---- 2662,2671 ----
- lpos_T end_endpos;
- int end_idx;
-
-+ /* return quickly for a keyword */
-+ if (sip->si_idx < 0)
-+ return;
-+
- /* Don't update when it's already done. Can be a match of an end pattern
- * that started in a previous line. Watch out: can also be a "keepend"
- * from a containing item. */
-***************
-*** 2759,2764 ****
---- 2777,2786 ----
- lpos_T pos;
- char_u *line;
- int had_match = FALSE;
-+
-+ /* just in case we are invoked for a keyword */
-+ if (idx < 0)
-+ return;
-
- /*
- * Check for being called with a START pattern.
-*** ../vim-7.1.085/src/version.c Tue Aug 21 15:28:32 2007
---- src/version.c Tue Aug 21 17:21:06 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 86,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-222. You send more than 20 personal e-mails a day.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.087
-Problem: Reading past ":cscope find" command. Writing past end of a buffer.
-Solution: Check length of the argument before using the pattern. Use
- vim_strncpy(). (Dominique Pelle)
-Files: if_cscope.c
-
-
-*** ../vim-7.1.086/src/if_cscope.c Sun Mar 11 15:48:29 2007
---- src/if_cscope.c Sun Aug 19 22:17:09 2007
-***************
-*** 73,78 ****
---- 73,80 ----
-
-
- static csinfo_T csinfo[CSCOPE_MAX_CONNECTIONS];
-+ static int eap_arg_len; /* length of eap->arg, set in
-+ cs_lookup_cmd() */
- static cscmd_T cs_cmds[] =
- {
- { "add", cs_add,
-***************
-*** 260,273 ****
-
- if ((p = cs_manage_matches(NULL, NULL, -1, Get)) == NULL)
- return TRUE;
-!
-! if ((int)strlen(p) > size)
-! {
-! strncpy((char *)buf, p, size - 1);
-! buf[size] = '\0';
-! }
-! else
-! (void)strcpy((char *)buf, p);
-
- return FALSE;
- } /* cs_fgets */
---- 262,268 ----
-
- if ((p = cs_manage_matches(NULL, NULL, -1, Get)) == NULL)
- return TRUE;
-! vim_strncpy(buf, (char_u *)p, size - 1);
-
- return FALSE;
- } /* cs_fgets */
-***************
-*** 386,392 ****
- * PRIVATE: cs_add
- *
- * add cscope database or a directory name (to look for cscope.out)
-! * the the cscope connection list
- *
- * MAXPATHL 256
- */
---- 381,387 ----
- * PRIVATE: cs_add
- *
- * add cscope database or a directory name (to look for cscope.out)
-! * to the cscope connection list
- *
- * MAXPATHL 256
- */
-***************
-*** 966,972 ****
- }
-
- pat = opt + strlen(opt) + 1;
-! if (pat == NULL || (pat != NULL && pat[0] == '\0'))
- {
- cs_usage_msg(Find);
- return FALSE;
---- 961,967 ----
- }
-
- pat = opt + strlen(opt) + 1;
-! if (pat >= (char *)eap->arg + eap_arg_len)
- {
- cs_usage_msg(Find);
- return FALSE;
-***************
-*** 1317,1323 ****
- #else
- /* compare pathnames first */
- && ((fullpathcmp(csinfo[j].fname, fname, FALSE) & FPC_SAME)
-! /* if not Windows 9x, test index file atributes too */
- || (!mch_windows95()
- && csinfo[j].nVolume == bhfi.dwVolumeSerialNumber
- && csinfo[j].nIndexHigh == bhfi.nFileIndexHigh
---- 1312,1318 ----
- #else
- /* compare pathnames first */
- && ((fullpathcmp(csinfo[j].fname, fname, FALSE) & FPC_SAME)
-! /* if not Windows 9x, test index file attributes too */
- || (!mch_windows95()
- && csinfo[j].nVolume == bhfi.dwVolumeSerialNumber
- && csinfo[j].nIndexHigh == bhfi.nFileIndexHigh
-***************
-*** 1401,1406 ****
---- 1396,1404 ----
- if (eap->arg == NULL)
- return NULL;
-
-+ /* Store length of eap->arg before it gets modified by strtok(). */
-+ eap_arg_len = STRLEN(eap->arg);
-+
- if ((stok = strtok((char *)(eap->arg), (const char *)" ")) == NULL)
- return NULL;
-
-***************
-*** 2195,2201 ****
- cs_add_common(dblist[i], pplist[i], fllist[i]);
- if (p_csverbose)
- {
-! /* dont' use smsg_attr because want to display
- * connection number in the same line as
- * "Added cscope database..."
- */
---- 2193,2199 ----
- cs_add_common(dblist[i], pplist[i], fllist[i]);
- if (p_csverbose)
- {
-! /* don't use smsg_attr() because we want to display the
- * connection number in the same line as
- * "Added cscope database..."
- */
-*** ../vim-7.1.086/src/version.c Tue Aug 21 17:29:04 2007
---- src/version.c Tue Aug 21 17:59:42 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 87,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-223. You set up a web-cam as your home's security system.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.088 (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.1.088 (extra)
-Problem: The coordinates used by ":winpos" differ from what getwinposx()
- and getwinposy() return.
-Solution: Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry)
-Files: src/gui_mac.c
-
-
-*** ../vim-7.1.087/src/gui_mac.c Tue Jun 19 16:33:53 2007
---- src/gui_mac.c Wed Aug 29 20:33:34 2007
-***************
-*** 3149,3155 ****
- /* TODO: Should make sure the window is move within range
- * e.g.: y > ~16 [Menu bar], x > 0, x < screen width
- */
-! MoveWindow(gui.VimWindow, x, y, TRUE);
- }
-
- void
---- 3149,3155 ----
- /* TODO: Should make sure the window is move within range
- * e.g.: y > ~16 [Menu bar], x > 0, x < screen width
- */
-! MoveWindowStructure(gui.VimWindow, x, y, TRUE);
- }
-
- void
-***************
-*** 5556,5562 ****
- * SetDialogTracksCursor() : Get the I-beam cursor over input box
- * MoveDialogItem(): Probably better than SetDialogItem
- * SizeDialogItem(): (but is it Carbon Only?)
-! * AutoSizeDialog(): Magic resize of dialog based on text lenght
- */
- }
- #endif /* FEAT_DIALOG_GUI */
---- 5556,5562 ----
- * SetDialogTracksCursor() : Get the I-beam cursor over input box
- * MoveDialogItem(): Probably better than SetDialogItem
- * SizeDialogItem(): (but is it Carbon Only?)
-! * AutoSizeDialog(): Magic resize of dialog based on text length
- */
- }
- #endif /* FEAT_DIALOG_GUI */
-*** ../vim-7.1.087/src/version.c Tue Aug 21 18:02:58 2007
---- src/version.c Thu Aug 30 10:32:28 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 88,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-10E. You start counting in hex.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.089
-Problem: ":let loaded_getscriptPlugin" doesn't clear to eol, result is
- "#1in".
-Solution: Clear to the end of the screen after displaying the first variable
- value.
-Files: src/eval.c
-
-
-*** ../vim-7.1.088/src/eval.c Tue Aug 14 22:40:13 2007
---- src/eval.c Wed Aug 29 22:40:15 2007
-***************
-*** 369,385 ****
- static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars));
- static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon));
- static char_u *skip_var_one __ARGS((char_u *arg));
-! static void list_hashtable_vars __ARGS((hashtab_T *ht, char_u *prefix, int empty));
-! static void list_glob_vars __ARGS((void));
-! static void list_buf_vars __ARGS((void));
-! static void list_win_vars __ARGS((void));
- #ifdef FEAT_WINDOWS
-! static void list_tab_vars __ARGS((void));
- #endif
-! static void list_vim_vars __ARGS((void));
-! static void list_script_vars __ARGS((void));
-! static void list_func_vars __ARGS((void));
-! static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg));
- static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op));
- static int check_changedtick __ARGS((char_u *arg));
- static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int quiet, int fne_flags));
---- 369,385 ----
- static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars));
- static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon));
- static char_u *skip_var_one __ARGS((char_u *arg));
-! static void list_hashtable_vars __ARGS((hashtab_T *ht, char_u *prefix, int empty, int *first));
-! static void list_glob_vars __ARGS((int *first));
-! static void list_buf_vars __ARGS((int *first));
-! static void list_win_vars __ARGS((int *first));
- #ifdef FEAT_WINDOWS
-! static void list_tab_vars __ARGS((int *first));
- #endif
-! static void list_vim_vars __ARGS((int *first));
-! static void list_script_vars __ARGS((int *first));
-! static void list_func_vars __ARGS((int *first));
-! static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg, int *first));
- static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op));
- static int check_changedtick __ARGS((char_u *arg));
- static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int quiet, int fne_flags));
-***************
-*** 704,711 ****
- static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname));
- static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val));
- static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi));
-! static void list_one_var __ARGS((dictitem_T *v, char_u *prefix));
-! static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string));
- static void set_var __ARGS((char_u *name, typval_T *varp, int copy));
- static int var_check_ro __ARGS((int flags, char_u *name));
- static int var_check_fixed __ARGS((int flags, char_u *name));
---- 704,711 ----
- static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname));
- static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val));
- static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi));
-! static void list_one_var __ARGS((dictitem_T *v, char_u *prefix, int *first));
-! static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string, int *first));
- static void set_var __ARGS((char_u *name, typval_T *varp, int copy));
- static int var_check_ro __ARGS((int flags, char_u *name));
- static int var_check_fixed __ARGS((int flags, char_u *name));
-***************
-*** 1699,1704 ****
---- 1699,1705 ----
- int semicolon = 0;
- char_u op[2];
- char_u *argend;
-+ int first = TRUE;
-
- argend = skip_var_list(arg, &var_count, &semicolon);
- if (argend == NULL)
-***************
-*** 1715,1733 ****
- EMSG(_(e_invarg));
- else if (!ends_excmd(*arg))
- /* ":let var1 var2" */
-! arg = list_arg_vars(eap, arg);
- else if (!eap->skip)
- {
- /* ":let" */
-! list_glob_vars();
-! list_buf_vars();
-! list_win_vars();
- #ifdef FEAT_WINDOWS
-! list_tab_vars();
- #endif
-! list_script_vars();
-! list_func_vars();
-! list_vim_vars();
- }
- eap->nextcmd = check_nextcmd(arg);
- }
---- 1716,1734 ----
- EMSG(_(e_invarg));
- else if (!ends_excmd(*arg))
- /* ":let var1 var2" */
-! arg = list_arg_vars(eap, arg, &first);
- else if (!eap->skip)
- {
- /* ":let" */
-! list_glob_vars(&first);
-! list_buf_vars(&first);
-! list_win_vars(&first);
- #ifdef FEAT_WINDOWS
-! list_tab_vars(&first);
- #endif
-! list_script_vars(&first);
-! list_func_vars(&first);
-! list_vim_vars(&first);
- }
- eap->nextcmd = check_nextcmd(arg);
- }
-***************
-*** 1932,1941 ****
- * If "empty" is TRUE also list NULL strings as empty strings.
- */
- static void
-! list_hashtable_vars(ht, prefix, empty)
- hashtab_T *ht;
- char_u *prefix;
- int empty;
- {
- hashitem_T *hi;
- dictitem_T *di;
---- 1933,1943 ----
- * If "empty" is TRUE also list NULL strings as empty strings.
- */
- static void
-! list_hashtable_vars(ht, prefix, empty, first)
- hashtab_T *ht;
- char_u *prefix;
- int empty;
-+ int *first;
- {
- hashitem_T *hi;
- dictitem_T *di;
-***************
-*** 1950,1956 ****
- di = HI2DI(hi);
- if (empty || di->di_tv.v_type != VAR_STRING
- || di->di_tv.vval.v_string != NULL)
-! list_one_var(di, prefix);
- }
- }
- }
---- 1952,1958 ----
- di = HI2DI(hi);
- if (empty || di->di_tv.v_type != VAR_STRING
- || di->di_tv.vval.v_string != NULL)
-! list_one_var(di, prefix, first);
- }
- }
- }
-***************
-*** 1959,1990 ****
- * List global variables.
- */
- static void
-! list_glob_vars()
- {
-! list_hashtable_vars(&globvarht, (char_u *)"", TRUE);
- }
-
- /*
- * List buffer variables.
- */
- static void
-! list_buf_vars()
- {
- char_u numbuf[NUMBUFLEN];
-
-! list_hashtable_vars(&curbuf->b_vars.dv_hashtab, (char_u *)"b:", TRUE);
-
- sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick);
-! list_one_var_a((char_u *)"b:", (char_u *)"changedtick", VAR_NUMBER, numbuf);
- }
-
- /*
- * List window variables.
- */
- static void
-! list_win_vars()
- {
-! list_hashtable_vars(&curwin->w_vars.dv_hashtab, (char_u *)"w:", TRUE);
- }
-
- #ifdef FEAT_WINDOWS
---- 1961,1998 ----
- * List global variables.
- */
- static void
-! list_glob_vars(first)
-! int *first;
- {
-! list_hashtable_vars(&globvarht, (char_u *)"", TRUE, first);
- }
-
- /*
- * List buffer variables.
- */
- static void
-! list_buf_vars(first)
-! int *first;
- {
- char_u numbuf[NUMBUFLEN];
-
-! list_hashtable_vars(&curbuf->b_vars.dv_hashtab, (char_u *)"b:",
-! TRUE, first);
-
- sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick);
-! list_one_var_a((char_u *)"b:", (char_u *)"changedtick", VAR_NUMBER,
-! numbuf, first);
- }
-
- /*
- * List window variables.
- */
- static void
-! list_win_vars(first)
-! int *first;
- {
-! list_hashtable_vars(&curwin->w_vars.dv_hashtab,
-! (char_u *)"w:", TRUE, first);
- }
-
- #ifdef FEAT_WINDOWS
-***************
-*** 1992,2000 ****
- * List tab page variables.
- */
- static void
-! list_tab_vars()
- {
-! list_hashtable_vars(&curtab->tp_vars.dv_hashtab, (char_u *)"t:", TRUE);
- }
- #endif
-
---- 2000,2010 ----
- * List tab page variables.
- */
- static void
-! list_tab_vars(first)
-! int *first;
- {
-! list_hashtable_vars(&curtab->tp_vars.dv_hashtab,
-! (char_u *)"t:", TRUE, first);
- }
- #endif
-
-***************
-*** 2002,2040 ****
- * List Vim variables.
- */
- static void
-! list_vim_vars()
- {
-! list_hashtable_vars(&vimvarht, (char_u *)"v:", FALSE);
- }
-
- /*
- * List script-local variables, if there is a script.
- */
- static void
-! list_script_vars()
- {
- if (current_SID > 0 && current_SID <= ga_scripts.ga_len)
-! list_hashtable_vars(&SCRIPT_VARS(current_SID), (char_u *)"s:", FALSE);
- }
-
- /*
- * List function variables, if there is a function.
- */
- static void
-! list_func_vars()
- {
- if (current_funccal != NULL)
- list_hashtable_vars(¤t_funccal->l_vars.dv_hashtab,
-! (char_u *)"l:", FALSE);
- }
-
- /*
- * List variables in "arg".
- */
- static char_u *
-! list_arg_vars(eap, arg)
- exarg_T *eap;
- char_u *arg;
- {
- int error = FALSE;
- int len;
---- 2012,2055 ----
- * List Vim variables.
- */
- static void
-! list_vim_vars(first)
-! int *first;
- {
-! list_hashtable_vars(&vimvarht, (char_u *)"v:", FALSE, first);
- }
-
- /*
- * List script-local variables, if there is a script.
- */
- static void
-! list_script_vars(first)
-! int *first;
- {
- if (current_SID > 0 && current_SID <= ga_scripts.ga_len)
-! list_hashtable_vars(&SCRIPT_VARS(current_SID),
-! (char_u *)"s:", FALSE, first);
- }
-
- /*
- * List function variables, if there is a function.
- */
- static void
-! list_func_vars(first)
-! int *first;
- {
- if (current_funccal != NULL)
- list_hashtable_vars(¤t_funccal->l_vars.dv_hashtab,
-! (char_u *)"l:", FALSE, first);
- }
-
- /*
- * List variables in "arg".
- */
- static char_u *
-! list_arg_vars(eap, arg, first)
- exarg_T *eap;
- char_u *arg;
-+ int *first;
- {
- int error = FALSE;
- int len;
-***************
-*** 2091,2105 ****
- {
- switch (*name)
- {
-! case 'g': list_glob_vars(); break;
-! case 'b': list_buf_vars(); break;
-! case 'w': list_win_vars(); break;
- #ifdef FEAT_WINDOWS
-! case 't': list_tab_vars(); break;
- #endif
-! case 'v': list_vim_vars(); break;
-! case 's': list_script_vars(); break;
-! case 'l': list_func_vars(); break;
- default:
- EMSG2(_("E738: Can't list variables for %s"), name);
- }
---- 2106,2120 ----
- {
- switch (*name)
- {
-! case 'g': list_glob_vars(first); break;
-! case 'b': list_buf_vars(first); break;
-! case 'w': list_win_vars(first); break;
- #ifdef FEAT_WINDOWS
-! case 't': list_tab_vars(first); break;
- #endif
-! case 'v': list_vim_vars(first); break;
-! case 's': list_script_vars(first); break;
-! case 'l': list_func_vars(first); break;
- default:
- EMSG2(_("E738: Can't list variables for %s"), name);
- }
-***************
-*** 2116,2122 ****
- *arg = NUL;
- list_one_var_a((char_u *)"",
- arg == arg_subsc ? name : name_start,
-! tv.v_type, s == NULL ? (char_u *)"" : s);
- *arg = c;
- vim_free(tf);
- }
---- 2131,2139 ----
- *arg = NUL;
- list_one_var_a((char_u *)"",
- arg == arg_subsc ? name : name_start,
-! tv.v_type,
-! s == NULL ? (char_u *)"" : s,
-! first);
- *arg = c;
- vim_free(tf);
- }
-***************
-*** 18001,18009 ****
- * List the value of one internal variable.
- */
- static void
-! list_one_var(v, prefix)
- dictitem_T *v;
- char_u *prefix;
- {
- char_u *tofree;
- char_u *s;
---- 18024,18033 ----
- * List the value of one internal variable.
- */
- static void
-! list_one_var(v, prefix, first)
- dictitem_T *v;
- char_u *prefix;
-+ int *first;
- {
- char_u *tofree;
- char_u *s;
-***************
-*** 18011,18026 ****
-
- s = echo_string(&v->di_tv, &tofree, numbuf, ++current_copyID);
- list_one_var_a(prefix, v->di_key, v->di_tv.v_type,
-! s == NULL ? (char_u *)"" : s);
- vim_free(tofree);
- }
-
- static void
-! list_one_var_a(prefix, name, type, string)
- char_u *prefix;
- char_u *name;
- int type;
- char_u *string;
- {
- /* don't use msg() or msg_attr() to avoid overwriting "v:statusmsg" */
- msg_start();
---- 18035,18051 ----
-
- s = echo_string(&v->di_tv, &tofree, numbuf, ++current_copyID);
- list_one_var_a(prefix, v->di_key, v->di_tv.v_type,
-! s == NULL ? (char_u *)"" : s, first);
- vim_free(tofree);
- }
-
- static void
-! list_one_var_a(prefix, name, type, string, first)
- char_u *prefix;
- char_u *name;
- int type;
- char_u *string;
-+ int *first; /* when TRUE clear rest of screen and set to FALSE */
- {
- /* don't use msg() or msg_attr() to avoid overwriting "v:statusmsg" */
- msg_start();
-***************
-*** 18052,18057 ****
---- 18077,18087 ----
-
- if (type == VAR_FUNC)
- msg_puts((char_u *)"()");
-+ if (*first)
-+ {
-+ msg_clr_eos();
-+ *first = FALSE;
-+ }
- }
-
- /*
-*** ../vim-7.1.088/src/version.c Thu Aug 30 10:34:19 2007
---- src/version.c Thu Aug 30 11:06:32 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 89,
- /**/
-
---
-Edison's greatest achievement came in 1879, when he invented the
-electric company. Edison's design was a brilliant adaptation of the
-simple electrical circuit: the electric company sends electricity
-through a wire to a customer, then immediately gets the electricity
-back through another wire
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.090
-Problem: Compiler warning on Mac OS X 10.5.
-Solution: Don't redeclare sigaltstack(). (Hisashi T Fujinaka)
-Files: src/os_unix.c
-
-
-*** ../vim-7.1.089/src/os_unix.c Sat Aug 11 22:22:56 2007
---- src/os_unix.c Wed Aug 22 22:28:48 2007
-***************
-*** 753,759 ****
- if (signal_stack != NULL)
- {
- # ifdef HAVE_SIGALTSTACK
-! # ifdef __APPLE__
- /* missing prototype. Adding it to osdef?.h.in doesn't work, because
- * "struct sigaltstack" needs to be declared. */
- extern int sigaltstack __ARGS((const struct sigaltstack *ss, struct sigaltstack *oss));
---- 753,760 ----
- if (signal_stack != NULL)
- {
- # ifdef HAVE_SIGALTSTACK
-! # if defined(__APPLE__) && (!defined(MAC_OS_X_VERSION_MAX_ALLOWED) \
-! || MAC_OS_X_VERSION_MAX_ALLOWED <= 1040)
- /* missing prototype. Adding it to osdef?.h.in doesn't work, because
- * "struct sigaltstack" needs to be declared. */
- extern int sigaltstack __ARGS((const struct sigaltstack *ss, struct sigaltstack *oss));
-***************
-*** 5688,5694 ****
-
- /*
- * Closes connection to gpm
-! * returns non-zero if connection succesfully closed
- */
- static void
- gpm_close()
---- 5689,5695 ----
-
- /*
- * Closes connection to gpm
-! * returns non-zero if connection successfully closed
- */
- static void
- gpm_close()
-*** ../vim-7.1.089/src/version.c Thu Aug 30 11:10:38 2007
---- src/version.c Thu Aug 30 11:46:07 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 90,
- /**/
-
---
- We're knights of the round table
- We dance whene'er we're able
- We do routines and chorus scenes
- With footwork impeccable.
- We dine well here in Camelot
- We eat ham and jam and spam a lot.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.091 (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.1.091 (extra)
-Problem: Win32: Can't embed Vim inside another application.
-Solution: Add the --windowid argument. (Nageshwar)
-Files: runtime/doc/gui_w32.txt, runtime/doc/starting.txt,
- runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c
-
-
-*** ../vim-7.1.090/runtime/doc/gui_w32.txt Sat May 12 15:35:53 2007
---- runtime/doc/gui_w32.txt Tue Aug 14 17:32:27 2007
-***************
-*** 1,4 ****
-! *gui_w32.txt* For Vim version 7.1. Last change: 2007 May 03
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *gui_w32.txt* For Vim version 7.1. Last change: 2007 Aug 14
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 52,57 ****
---- 52,67 ----
- *gui-w32s*
- There is a specific version of gvim.exe that runs under the Win32s subsystem
- of Windows 3.1 or 3.11. See |win32s|.
-+
-+
-+ Using Vim as a plugin *gui-w32-windowid*
-+
-+ When gvim starts up normally, it creates its own top level window. If you
-+ pass Vim the command-line option |--windowid| with a decimal or hexadecimal
-+ value, Vim will create a window that is a child of the window with the given
-+ ID. This enables Vim to act as a plugin in another application. This really
-+ is a programmer's interface, and is of no use without a supporting application
-+ to spawn Vim correctly.
-
- ==============================================================================
- 2. Vim as default editor *vim-default-editor*
-*** ../vim-7.1.090/runtime/doc/starting.txt Sat May 12 16:56:17 2007
---- runtime/doc/starting.txt Tue Aug 14 17:34:22 2007
-***************
-*** 1,4 ****
-! *starting.txt* For Vim version 7.1. Last change: 2007 May 12
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *starting.txt* For Vim version 7.1. Last change: 2007 Aug 14
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 547,552 ****
---- 547,557 ----
- GTK+ GUI Vim only. Make gvim try to use GtkPlug mechanism, so
- that it runs inside another window. See |gui-gtk-socketid|
- for details. {not in Vi}
-+
-+ --windowid {id} *--windowid*
-+ Win32 GUI Vim only. Make gvim try to use the window {id} as a
-+ parent, so that it runs inside that window. See
-+ |gui-w32-windowid| for details. {not in Vi}
-
- --echo-wid *--echo-wid*
- GTK+ GUI Vim only. Make gvim echo the Window ID on stdout,
-*** ../vim-7.1.090/runtime/doc/vi_diff.txt Sat May 12 14:54:28 2007
---- runtime/doc/vi_diff.txt Tue Aug 14 17:35:10 2007
-***************
-*** 1,4 ****
-! *vi_diff.txt* For Vim version 7.1. Last change: 2007 May 07
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *vi_diff.txt* For Vim version 7.1. Last change: 2007 Aug 14
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 826,831 ****
---- 826,833 ----
- --servername {name} Vim: Specify Vim server name
-
- --socketid {id} Vim: GTK window socket to run Vim in
-+
-+ --windowid {id} Vim: Win32 window ID to run Vim in
-
- --version Vim: show version message and exit.
-
-*** ../vim-7.1.090/src/globals.h Thu May 10 19:26:02 2007
---- src/globals.h Wed Aug 29 22:27:45 2007
-***************
-*** 876,882 ****
- EXTERN int no_mapping INIT(= FALSE); /* currently no mapping allowed */
- EXTERN int no_zero_mapping INIT(= 0); /* mapping zero not allowed */
- EXTERN int allow_keys INIT(= FALSE); /* allow key codes when no_mapping
-! * is set */
- EXTERN int no_u_sync INIT(= 0); /* Don't call u_sync() */
-
- EXTERN int restart_edit INIT(= 0); /* call edit when next cmd finished */
---- 876,882 ----
- EXTERN int no_mapping INIT(= FALSE); /* currently no mapping allowed */
- EXTERN int no_zero_mapping INIT(= 0); /* mapping zero not allowed */
- EXTERN int allow_keys INIT(= FALSE); /* allow key codes when no_mapping
-! * is set */
- EXTERN int no_u_sync INIT(= 0); /* Don't call u_sync() */
-
- EXTERN int restart_edit INIT(= 0); /* call edit when next cmd finished */
-***************
-*** 1250,1255 ****
---- 1250,1263 ----
- #ifdef FEAT_GUI_GTK
- EXTERN guint32 gtk_socket_id INIT(= 0);
- EXTERN int echo_wid_arg INIT(= FALSE); /* --echo-wid argument */
-+ #endif
-+
-+ #ifdef FEAT_GUI_W32
-+ /*
-+ * The value of the --windowid argument.
-+ * For embedding gvim inside another application.
-+ */
-+ EXTERN int win_socket_id INIT(= 0);
- #endif
-
- #if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL)
-*** ../vim-7.1.090/src/gui_w32.c Tue Aug 14 16:57:04 2007
---- src/gui_w32.c Tue Aug 14 17:13:41 2007
-***************
-*** 23,28 ****
---- 23,30 ----
- * e.g., replace LONG with LONG_PTR, etc.
- */
-
-+ #include "vim.h"
-+
- /*
- * These are new in Windows ME/XP, only defined in recent compilers.
- */
-***************
-*** 1432,1447 ****
- }
- }
- else
-! /* Open toplevel window. */
- s_hwnd = CreateWindow(
-! szVimWndClass, "Vim MSWindows GUI",
-! WS_OVERLAPPEDWINDOW,
-! gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
-! gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
-! 100, /* Any value will do */
-! 100, /* Any value will do */
-! NULL, NULL,
-! s_hinst, NULL);
-
- if (s_hwnd == NULL)
- return FAIL;
---- 1434,1462 ----
- }
- }
- else
-! {
-! /* If the provided windowid is not valid reset it to zero, so that it
-! * is ignored and we open our own window. */
-! if (IsWindow((HWND)win_socket_id) <= 0)
-! win_socket_id = 0;
-!
-! /* Create a window. If win_socket_id is not zero without border and
-! * titlebar, it will be reparented below. */
- s_hwnd = CreateWindow(
-! szVimWndClass, "Vim MSWindows GUI",
-! win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP,
-! gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
-! gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
-! 100, /* Any value will do */
-! 100, /* Any value will do */
-! NULL, NULL,
-! s_hinst, NULL);
-! if (s_hwnd != NULL && win_socket_id != 0)
-! {
-! SetParent(s_hwnd, (HWND)win_socket_id);
-! ShowWindow(s_hwnd, SW_SHOWMAXIMIZED);
-! }
-! }
-
- if (s_hwnd == NULL)
- return FAIL;
-*** ../vim-7.1.090/src/main.c Fri Aug 10 21:32:41 2007
---- src/main.c Tue Aug 14 17:22:52 2007
-***************
-*** 275,280 ****
---- 275,281 ----
- * -display or --display
- * --server...
- * --socketid
-+ * --windowid
- */
- early_arg_scan(¶ms);
-
-***************
-*** 1489,1495 ****
- * Get the name of the display, before gui_prepare() removes it from
- * argv[]. Used for the xterm-clipboard display.
- *
-! * Also find the --server... arguments and --socketid
- */
- /*ARGSUSED*/
- static void
---- 1490,1496 ----
- * Get the name of the display, before gui_prepare() removes it from
- * argv[]. Used for the xterm-clipboard display.
- *
-! * Also find the --server... arguments and --socketid and --windowid
- */
- /*ARGSUSED*/
- static void
-***************
-*** 1536,1559 ****
- # endif
- }
- # endif
-! # ifdef FEAT_GUI_GTK
- else if (STRICMP(argv[i], "--socketid") == 0)
- {
-! unsigned int socket_id;
- int count;
-
- if (i == argc - 1)
- mainerr_arg_missing((char_u *)argv[i]);
- if (STRNICMP(argv[i+1], "0x", 2) == 0)
-! count = sscanf(&(argv[i + 1][2]), "%x", &socket_id);
- else
-! count = sscanf(argv[i+1], "%u", &socket_id);
- if (count != 1)
- mainerr(ME_INVALID_ARG, (char_u *)argv[i]);
- else
-! gtk_socket_id = socket_id;
- i++;
- }
- else if (STRICMP(argv[i], "--echo-wid") == 0)
- echo_wid_arg = TRUE;
- # endif
---- 1537,1571 ----
- # endif
- }
- # endif
-!
-! # if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32)
-! # ifdef FEAT_GUI_W32
-! else if (STRICMP(argv[i], "--windowid") == 0)
-! # else
- else if (STRICMP(argv[i], "--socketid") == 0)
-+ # endif
- {
-! unsigned int id;
- int count;
-
- if (i == argc - 1)
- mainerr_arg_missing((char_u *)argv[i]);
- if (STRNICMP(argv[i+1], "0x", 2) == 0)
-! count = sscanf(&(argv[i + 1][2]), "%x", &id);
- else
-! count = sscanf(argv[i+1], "%u", &id);
- if (count != 1)
- mainerr(ME_INVALID_ARG, (char_u *)argv[i]);
- else
-! # ifdef FEAT_GUI_W32
-! win_socket_id = id;
-! # else
-! gtk_socket_id = id;
-! # endif
- i++;
- }
-+ # endif
-+ # ifdef FEAT_GUI_GTK
- else if (STRICMP(argv[i], "--echo-wid") == 0)
- echo_wid_arg = TRUE;
- # endif
-***************
-*** 1683,1690 ****
- }
- }
- #endif
-! #ifdef FEAT_GUI_GTK
- else if (STRNICMP(argv[0] + argv_idx, "socketid", 8) == 0)
- {
- /* already processed -- snatch the following arg */
- if (argc > 1)
---- 1695,1706 ----
- }
- }
- #endif
-! #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32)
-! # ifdef FEAT_GUI_GTK
- else if (STRNICMP(argv[0] + argv_idx, "socketid", 8) == 0)
-+ # else
-+ else if (STRNICMP(argv[0] + argv_idx, "windowid", 8) == 0)
-+ # endif
- {
- /* already processed -- snatch the following arg */
- if (argc > 1)
-***************
-*** 1693,1698 ****
---- 1709,1716 ----
- ++argv;
- }
- }
-+ #endif
-+ #ifdef FEAT_GUI_GTK
- else if (STRNICMP(argv[0] + argv_idx, "echo-wid", 8) == 0)
- {
- /* already processed, skip */
-***************
-*** 3120,3125 ****
---- 3138,3144 ----
- #endif
- #ifdef FEAT_GUI_W32
- main_msg(_("-P <parent title>\tOpen Vim inside parent application"));
-+ main_msg(_("--windowid <HWND>\tOpen Vim inside another win32 widget"));
- #endif
-
- #ifdef FEAT_GUI_GNOME
-*** ../vim-7.1.090/src/version.c Thu Aug 30 11:46:46 2007
---- src/version.c Thu Aug 30 12:21:02 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 91,
- /**/
-
---
- We're knights of the Round Table
- Our shows are formidable
- But many times
- We're given rhymes
- That are quite unsingable
- We're opera mad in Camelot
- We sing from the diaphragm a lot.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.092 (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.1.092 (extra, after 7.1.088)
-Problem: Wrong arguments for MoveWindowStructure().
-Solution: Remove "TRUE". (Michael Henry)
-Files: src/gui_mac.c
-
-
-*** ../vim-7.1.091/src/gui_mac.c Thu Aug 30 10:34:19 2007
---- src/gui_mac.c Thu Aug 30 12:48:41 2007
-***************
-*** 3149,3155 ****
- /* TODO: Should make sure the window is move within range
- * e.g.: y > ~16 [Menu bar], x > 0, x < screen width
- */
-! MoveWindowStructure(gui.VimWindow, x, y, TRUE);
- }
-
- void
---- 3149,3155 ----
- /* TODO: Should make sure the window is move within range
- * e.g.: y > ~16 [Menu bar], x > 0, x < screen width
- */
-! MoveWindowStructure(gui.VimWindow, x, y);
- }
-
- void
-***************
-*** 5293,5299 ****
- short itemType;
- short useIcon;
- short width;
-! short totalButtonWidth = 0; /* the width of all button together
- including spacing */
- short widestButton = 0;
- short dfltButtonEdge = 20; /* gut feeling */
---- 5293,5299 ----
- short itemType;
- short useIcon;
- short width;
-! short totalButtonWidth = 0; /* the width of all buttons together
- including spacing */
- short widestButton = 0;
- short dfltButtonEdge = 20; /* gut feeling */
-***************
-*** 5483,5489 ****
- {
-
- macMoveDialogItem(theDialog, button, buttonItm.box.left, buttonItm.box.top, &box);
-! /* With vertical, it's better to have all button the same lenght */
- if (vertical)
- {
- macSizeDialogItem(theDialog, button, widestButton, 0);
---- 5483,5489 ----
- {
-
- macMoveDialogItem(theDialog, button, buttonItm.box.left, buttonItm.box.top, &box);
-! /* With vertical, it's better to have all buttons the same length */
- if (vertical)
- {
- macSizeDialogItem(theDialog, button, widestButton, 0);
-*** ../vim-7.1.091/src/version.c Thu Aug 30 12:24:21 2007
---- src/version.c Thu Aug 30 12:47:24 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 92,
- /**/
-
---
- In war we're tough and able.
- Quite indefatigable
- Between our quests
- We sequin vests
- And impersonate Clark Gable
- It's a busy life in Camelot.
- I have to push the pram a lot.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.093
-Problem: Reading past end of a screen line when determining cell width.
- (Dominique Pelle)
-Solution: Add an argument to mb_off2cells() for the maximum offset.
-Files: src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro,
- src/screen.c
-
-
-*** ../vim-7.1.092/src/globals.h Thu Aug 30 12:24:21 2007
---- src/globals.h Wed Aug 29 22:27:45 2007
-***************
-*** 801,807 ****
- EXTERN int (*mb_char2bytes) __ARGS((int c, char_u *buf)) INIT(= latin_char2bytes);
- EXTERN int (*mb_ptr2cells) __ARGS((char_u *p)) INIT(= latin_ptr2cells);
- EXTERN int (*mb_char2cells) __ARGS((int c)) INIT(= latin_char2cells);
-! EXTERN int (*mb_off2cells) __ARGS((unsigned off)) INIT(= latin_off2cells);
- EXTERN int (*mb_ptr2char) __ARGS((char_u *p)) INIT(= latin_ptr2char);
- EXTERN int (*mb_head_off) __ARGS((char_u *base, char_u *p)) INIT(= latin_head_off);
-
---- 801,807 ----
- EXTERN int (*mb_char2bytes) __ARGS((int c, char_u *buf)) INIT(= latin_char2bytes);
- EXTERN int (*mb_ptr2cells) __ARGS((char_u *p)) INIT(= latin_ptr2cells);
- EXTERN int (*mb_char2cells) __ARGS((int c)) INIT(= latin_char2cells);
-! EXTERN int (*mb_off2cells) __ARGS((unsigned off, unsigned max_off)) INIT(= latin_off2cells);
- EXTERN int (*mb_ptr2char) __ARGS((char_u *p)) INIT(= latin_ptr2char);
- EXTERN int (*mb_head_off) __ARGS((char_u *base, char_u *p)) INIT(= latin_head_off);
-
-*** ../vim-7.1.092/src/gui.c Wed Aug 15 20:07:53 2007
---- src/gui.c Wed Aug 29 22:16:51 2007
-***************
-*** 1080,1086 ****
- cur_width = gui.char_width;
- }
- #ifdef FEAT_MBYTE
-! if (has_mbyte && (*mb_off2cells)(LineOffset[gui.row] + gui.col) > 1)
- {
- /* Double wide character. */
- if (shape_table[idx].shape != SHAPE_VER)
---- 1080,1087 ----
- cur_width = gui.char_width;
- }
- #ifdef FEAT_MBYTE
-! if (has_mbyte && (*mb_off2cells)(LineOffset[gui.row] + gui.col,
-! LineOffset[gui.row] + screen_Columns) > 1)
- {
- /* Double wide character. */
- if (shape_table[idx].shape != SHAPE_VER)
-***************
-*** 1159,1165 ****
- #endif
-
- # if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \
-! || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_MAC))
- if (gui_has_tabline())
- text_area_y += gui.tabline_height;
- #endif
---- 1160,1166 ----
- #endif
-
- # if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \
-! || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_MAC))
- if (gui_has_tabline())
- text_area_y += gui.tabline_height;
- #endif
-*** ../vim-7.1.092/src/mbyte.c Sat Aug 11 13:57:31 2007
---- src/mbyte.c Thu Aug 30 13:48:30 2007
-***************
-*** 1310,1329 ****
- /*
- * mb_off2cells() function pointer.
- * Return number of display cells for char at ScreenLines[off].
-! * Caller must make sure "off" and "off + 1" are valid!
- */
- /*ARGSUSED*/
- int
-! latin_off2cells(off)
- unsigned off;
- {
- return 1;
- }
-
- int
-! dbcs_off2cells(off)
- unsigned off;
- {
- /* Number of cells is equal to number of bytes, except for euc-jp when
- * the first byte is 0x8e. */
- if (enc_dbcs == DBCS_JPNU && ScreenLines[off] == 0x8e)
---- 1310,1335 ----
- /*
- * mb_off2cells() function pointer.
- * Return number of display cells for char at ScreenLines[off].
-! * We make sure that the offset used is less than "max_off".
- */
- /*ARGSUSED*/
- int
-! latin_off2cells(off, max_off)
- unsigned off;
-+ unsigned max_off;
- {
- return 1;
- }
-
- int
-! dbcs_off2cells(off, max_off)
- unsigned off;
-+ unsigned max_off;
- {
-+ /* never check beyond end of the line */
-+ if (off >= max_off)
-+ return 1;
-+
- /* Number of cells is equal to number of bytes, except for euc-jp when
- * the first byte is 0x8e. */
- if (enc_dbcs == DBCS_JPNU && ScreenLines[off] == 0x8e)
-***************
-*** 1332,1341 ****
- }
-
- int
-! utf_off2cells(off)
- unsigned off;
- {
-! return ScreenLines[off + 1] == 0 ? 2 : 1;
- }
-
- /*
---- 1338,1348 ----
- }
-
- int
-! utf_off2cells(off, max_off)
- unsigned off;
-+ unsigned max_off;
- {
-! return (off + 1 < max_off && ScreenLines[off + 1] == 0) ? 2 : 1;
- }
-
- /*
-***************
-*** 2899,2910 ****
- if (composing_hangul)
- return TRUE;
- #endif
-! if (enc_dbcs != 0)
-! return dbcs_off2cells(LineOffset[row] + col) > 1;
-! if (enc_utf8)
-! return (col + 1 < Columns
-! && ScreenLines[LineOffset[row] + col + 1] == 0);
-! return FALSE;
- }
-
- # if defined(FEAT_CLIPBOARD) || defined(FEAT_GUI) || defined(FEAT_RIGHTLEFT) \
---- 2906,2913 ----
- if (composing_hangul)
- return TRUE;
- #endif
-! return (*mb_off2cells)(LineOffset[row] + col,
-! LineOffset[row] + screen_Columns) > 1;
- }
-
- # if defined(FEAT_CLIPBOARD) || defined(FEAT_GUI) || defined(FEAT_RIGHTLEFT) \
-*** ../vim-7.1.092/src/proto/mbyte.pro Sat May 5 20:02:52 2007
---- src/proto/mbyte.pro Wed Aug 29 20:49:02 2007
-***************
-*** 12,20 ****
- int utf_ptr2cells __ARGS((char_u *p));
- int dbcs_ptr2cells __ARGS((char_u *p));
- int latin_char2cells __ARGS((int c));
-! int latin_off2cells __ARGS((unsigned off));
-! int dbcs_off2cells __ARGS((unsigned off));
-! int utf_off2cells __ARGS((unsigned off));
- int latin_ptr2char __ARGS((char_u *p));
- int utf_ptr2char __ARGS((char_u *p));
- int mb_ptr2char_adv __ARGS((char_u **pp));
---- 12,20 ----
- int utf_ptr2cells __ARGS((char_u *p));
- int dbcs_ptr2cells __ARGS((char_u *p));
- int latin_char2cells __ARGS((int c));
-! int latin_off2cells __ARGS((unsigned off, unsigned max_off));
-! int dbcs_off2cells __ARGS((unsigned off, unsigned max_off));
-! int utf_off2cells __ARGS((unsigned off, unsigned max_off));
- int latin_ptr2char __ARGS((char_u *p));
- int utf_ptr2char __ARGS((char_u *p));
- int mb_ptr2char_adv __ARGS((char_u **pp));
-*** ../vim-7.1.092/src/screen.c Sun Aug 5 20:10:16 2007
---- src/screen.c Thu Aug 30 10:31:26 2007
-***************
-*** 1024,1030 ****
- type = VALID;
- }
-
-! /* Trick: we want to avoid clearning the screen twice. screenclear() will
- * set "screen_cleared" to TRUE. The special value MAYBE (which is still
- * non-zero and thus not FALSE) will indicate that screenclear() was not
- * called. */
---- 1024,1030 ----
- type = VALID;
- }
-
-! /* Trick: we want to avoid clearing the screen twice. screenclear() will
- * set "screen_cleared" to TRUE. The special value MAYBE (which is still
- * non-zero and thus not FALSE) will indicate that screenclear() was not
- * called. */
-***************
-*** 4632,4638 ****
-
- /*
- * At end of screen line and there is more to come: Display the line
-! * so far. If there is no more to display it is catched above.
- */
- if ((
- #ifdef FEAT_RIGHTLEFT
---- 4632,4638 ----
-
- /*
- * At end of screen line and there is more to come: Display the line
-! * so far. If there is no more to display it is caught above.
- */
- if ((
- #ifdef FEAT_RIGHTLEFT
-***************
-*** 4709,4717 ****
- #endif
- #ifdef FEAT_MBYTE
- && !(has_mbyte
-! && ((*mb_off2cells)(LineOffset[screen_row]) == 2
- || (*mb_off2cells)(LineOffset[screen_row - 1]
-! + (int)Columns - 2) == 2))
- #endif
- )
- {
---- 4709,4721 ----
- #endif
- #ifdef FEAT_MBYTE
- && !(has_mbyte
-! && ((*mb_off2cells)(LineOffset[screen_row],
-! LineOffset[screen_row] + screen_Columns)
-! == 2
- || (*mb_off2cells)(LineOffset[screen_row - 1]
-! + (int)Columns - 2,
-! LineOffset[screen_row] + screen_Columns)
-! == 2))
- #endif
- )
- {
-***************
-*** 4871,4876 ****
---- 4875,4884 ----
- {
- unsigned off_from;
- unsigned off_to;
-+ #ifdef FEAT_MBYTE
-+ unsigned max_off_from;
-+ unsigned max_off_to;
-+ #endif
- int col = 0;
- #if defined(FEAT_GUI) || defined(UNIX) || defined(FEAT_VERTSPLIT)
- int hl;
-***************
-*** 4897,4902 ****
---- 4905,4914 ----
-
- off_from = (unsigned)(current_ScreenLine - ScreenLines);
- off_to = LineOffset[row] + coloff;
-+ #ifdef FEAT_MBYTE
-+ max_off_from = off_from + screen_Columns;
-+ max_off_to = LineOffset[row] + screen_Columns;
-+ #endif
-
- #ifdef FEAT_RIGHTLEFT
- if (rlflag)
-***************
-*** 4931,4937 ****
- {
- #ifdef FEAT_MBYTE
- if (has_mbyte && (col + 1 < endcol))
-! char_cells = (*mb_off2cells)(off_from);
- else
- char_cells = 1;
- #endif
---- 4943,4949 ----
- {
- #ifdef FEAT_MBYTE
- if (has_mbyte && (col + 1 < endcol))
-! char_cells = (*mb_off2cells)(off_from, max_off_from);
- else
- char_cells = 1;
- #endif
-***************
-*** 5008,5014 ****
- * ScreenLinesUC[] is sufficient. */
- if (char_cells == 1
- && col + 1 < endcol
-! && (*mb_off2cells)(off_to) > 1)
- {
- /* Writing a single-cell character over a double-cell
- * character: need to redraw the next cell. */
---- 5020,5026 ----
- * ScreenLinesUC[] is sufficient. */
- if (char_cells == 1
- && col + 1 < endcol
-! && (*mb_off2cells)(off_to, max_off_to) > 1)
- {
- /* Writing a single-cell character over a double-cell
- * character: need to redraw the next cell. */
-***************
-*** 5017,5024 ****
- }
- else if (char_cells == 2
- && col + 2 < endcol
-! && (*mb_off2cells)(off_to) == 1
-! && (*mb_off2cells)(off_to + 1) > 1)
- {
- /* Writing the second half of a double-cell character over
- * a double-cell character: need to redraw the second
---- 5029,5036 ----
- }
- else if (char_cells == 2
- && col + 2 < endcol
-! && (*mb_off2cells)(off_to, max_off_to) == 1
-! && (*mb_off2cells)(off_to + 1, max_off_to) > 1)
- {
- /* Writing the second half of a double-cell character over
- * a double-cell character: need to redraw the second
-***************
-*** 5037,5046 ****
- * char over the left halve of an existing one. */
- if (has_mbyte && col + char_cells == endcol
- && ((char_cells == 1
-! && (*mb_off2cells)(off_to) > 1)
- || (char_cells == 2
-! && (*mb_off2cells)(off_to) == 1
-! && (*mb_off2cells)(off_to + 1) > 1)))
- clear_next = TRUE;
- #endif
-
---- 5049,5058 ----
- * char over the left halve of an existing one. */
- if (has_mbyte && col + char_cells == endcol
- && ((char_cells == 1
-! && (*mb_off2cells)(off_to, max_off_to) > 1)
- || (char_cells == 2
-! && (*mb_off2cells)(off_to, max_off_to) == 1
-! && (*mb_off2cells)(off_to + 1, max_off_to) > 1)))
- clear_next = TRUE;
- #endif
-
-***************
-*** 5180,5189 ****
- /* find previous character by counting from first
- * column and get its width. */
- unsigned off = LineOffset[row];
-
- while (off < off_to)
- {
-! prev_cells = (*mb_off2cells)(off);
- off += prev_cells;
- }
- }
---- 5192,5202 ----
- /* find previous character by counting from first
- * column and get its width. */
- unsigned off = LineOffset[row];
-+ unsigned max_off = LineOffset[row] + screen_Columns;
-
- while (off < off_to)
- {
-! prev_cells = (*mb_off2cells)(off, max_off);
- off += prev_cells;
- }
- }
-***************
-*** 5369,5375 ****
- static int skip_status_match_char __ARGS((expand_T *xp, char_u *s));
-
- /*
-! * Get the lenght of an item as it will be shown in the status line.
- */
- static int
- status_match_len(xp, s)
---- 5382,5388 ----
- static int skip_status_match_char __ARGS((expand_T *xp, char_u *s));
-
- /*
-! * Get the length of an item as it will be shown in the status line.
- */
- static int
- status_match_len(xp, s)
-***************
-*** 5435,5441 ****
- int row;
- char_u *buf;
- int len;
-! int clen; /* lenght in screen cells */
- int fillchar;
- int attr;
- int i;
---- 5448,5454 ----
- int row;
- char_u *buf;
- int len;
-! int clen; /* length in screen cells */
- int fillchar;
- int attr;
- int i;
-***************
-*** 6187,6192 ****
---- 6200,6206 ----
- char_u *ptr = text;
- int c;
- #ifdef FEAT_MBYTE
-+ unsigned max_off;
- int mbyte_blen = 1;
- int mbyte_cells = 1;
- int u8c = 0;
-***************
-*** 6203,6208 ****
---- 6217,6225 ----
- return;
-
- off = LineOffset[row] + col;
-+ #ifdef FEAT_MBYTE
-+ max_off = LineOffset[row] + screen_Columns;
-+ #endif
- while (col < screen_Columns
- && (len < 0 || (int)(ptr - text) < len)
- && *ptr != NUL)
-***************
-*** 6326,6344 ****
- else if (has_mbyte
- && (len < 0 ? ptr[mbyte_blen] == NUL
- : ptr + mbyte_blen >= text + len)
-! && ((mbyte_cells == 1 && (*mb_off2cells)(off) > 1)
- || (mbyte_cells == 2
-! && (*mb_off2cells)(off) == 1
-! && (*mb_off2cells)(off + 1) > 1)))
- clear_next_cell = TRUE;
-
- /* Make sure we never leave a second byte of a double-byte behind,
- * it confuses mb_off2cells(). */
- if (enc_dbcs
-! && ((mbyte_cells == 1 && (*mb_off2cells)(off) > 1)
- || (mbyte_cells == 2
-! && (*mb_off2cells)(off) == 1
-! && (*mb_off2cells)(off + 1) > 1)))
- ScreenLines[off + mbyte_blen] = 0;
- #endif
- ScreenLines[off] = c;
---- 6343,6361 ----
- else if (has_mbyte
- && (len < 0 ? ptr[mbyte_blen] == NUL
- : ptr + mbyte_blen >= text + len)
-! && ((mbyte_cells == 1 && (*mb_off2cells)(off, max_off) > 1)
- || (mbyte_cells == 2
-! && (*mb_off2cells)(off, max_off) == 1
-! && (*mb_off2cells)(off + 1, max_off) > 1)))
- clear_next_cell = TRUE;
-
- /* Make sure we never leave a second byte of a double-byte behind,
- * it confuses mb_off2cells(). */
- if (enc_dbcs
-! && ((mbyte_cells == 1 && (*mb_off2cells)(off, max_off) > 1)
- || (mbyte_cells == 2
-! && (*mb_off2cells)(off, max_off) == 1
-! && (*mb_off2cells)(off + 1, max_off) > 1)))
- ScreenLines[off + mbyte_blen] = 0;
- #endif
- ScreenLines[off] = c;
-***************
-*** 6924,6929 ****
---- 6941,6949 ----
- {
- int r, c;
- int off;
-+ #ifdef FEAT_MBYTE
-+ int max_off;
-+ #endif
-
- /* Can't use ScreenLines unless initialized */
- if (ScreenLines == NULL)
-***************
-*** 6934,6943 ****
- for (r = row; r < row + height; ++r)
- {
- off = LineOffset[r];
- for (c = col; c < col + width; ++c)
- {
- #ifdef FEAT_MBYTE
-! if (enc_dbcs != 0 && dbcs_off2cells(off + c) > 1)
- {
- screen_char_2(off + c, r, c);
- ++c;
---- 6954,6966 ----
- for (r = row; r < row + height; ++r)
- {
- off = LineOffset[r];
-+ #ifdef FEAT_MBYTE
-+ max_off = off + screen_Columns;
-+ #endif
- for (c = col; c < col + width; ++c)
- {
- #ifdef FEAT_MBYTE
-! if (enc_dbcs != 0 && dbcs_off2cells(off + c, max_off) > 1)
- {
- screen_char_2(off + c, r, c);
- ++c;
-***************
-*** 6947,6953 ****
- {
- screen_char(off + c, r, c);
- #ifdef FEAT_MBYTE
-! if (utf_off2cells(off + c) > 1)
- ++c;
- #endif
- }
---- 6970,6976 ----
- {
- screen_char(off + c, r, c);
- #ifdef FEAT_MBYTE
-! if (utf_off2cells(off + c, max_off) > 1)
- ++c;
- #endif
- }
-*** ../vim-7.1.092/src/version.c Thu Aug 30 12:50:00 2007
---- src/version.c Thu Aug 30 13:45:25 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 93,
- /**/
-
---
-There is a fine line between courage and foolishness.
-Unfortunately, it's not a fence.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.094
-Problem: When checking if syntax highlighting is present, looking in the
- current buffer instead of the specified one.
-Solution: Use "buf" instead of "curbuf".
-Files: src/syntax.c
-
-
-*** ../vim-7.1.093/src/syntax.c Tue Aug 21 17:29:04 2007
---- src/syntax.c Wed Aug 29 23:27:52 2007
-***************
-*** 5987,5994 ****
- {
- return (buf->b_syn_patterns.ga_len != 0
- || buf->b_syn_clusters.ga_len != 0
-! || curbuf->b_keywtab.ht_used > 0
-! || curbuf->b_keywtab_ic.ht_used > 0);
- }
-
- #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
---- 5987,5994 ----
- {
- return (buf->b_syn_patterns.ga_len != 0
- || buf->b_syn_clusters.ga_len != 0
-! || buf->b_keywtab.ht_used > 0
-! || buf->b_keywtab_ic.ht_used > 0);
- }
-
- #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-*** ../vim-7.1.093/src/version.c Thu Aug 30 13:51:52 2007
---- src/version.c Thu Aug 30 19:35:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 94,
- /**/
-
---
-MAN: You don't frighten us, English pig-dog! Go and boil your bottoms,
- son of a silly person. I blow my nose on you, so-called Arthur-king,
- you and your silly English K...kaniggets.
- He puts hands to his ears and blows a raspberry.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.095
-Problem: The FocusLost and FocusGained autocommands are triggered
- asynchronously in the GUI. This may cause arbitrary problems.
-Solution: Put the focus event in the input buffer and handle it when ready
- for it.
-Files: src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c,
- src/keymap.h
-
-
-*** ../vim-7.1.094/src/eval.c Thu Aug 30 11:10:38 2007
---- src/eval.c Mon Sep 3 22:48:09 2007
-***************
-*** 9912,9929 ****
-
- ++no_mapping;
- ++allow_keys;
-! if (argvars[0].v_type == VAR_UNKNOWN)
-! /* getchar(): blocking wait. */
-! n = safe_vgetc();
-! else if (get_tv_number_chk(&argvars[0], &error) == 1)
-! /* getchar(1): only check if char avail */
-! n = vpeekc();
-! else if (error || vpeekc() == NUL)
-! /* illegal argument or getchar(0) and no char avail: return zero */
-! n = 0;
-! else
-! /* getchar(0) and char avail: return char */
-! n = safe_vgetc();
- --no_mapping;
- --allow_keys;
-
---- 9912,9935 ----
-
- ++no_mapping;
- ++allow_keys;
-! for (;;)
-! {
-! if (argvars[0].v_type == VAR_UNKNOWN)
-! /* getchar(): blocking wait. */
-! n = safe_vgetc();
-! else if (get_tv_number_chk(&argvars[0], &error) == 1)
-! /* getchar(1): only check if char avail */
-! n = vpeekc();
-! else if (error || vpeekc() == NUL)
-! /* illegal argument or getchar(0) and no char avail: return zero */
-! n = 0;
-! else
-! /* getchar(0) and char avail: return char */
-! n = safe_vgetc();
-! if (n == K_IGNORE)
-! continue;
-! break;
-! }
- --no_mapping;
- --allow_keys;
-
-*** ../vim-7.1.094/src/getchar.c Thu May 10 18:43:02 2007
---- src/getchar.c Wed Aug 29 22:38:49 2007
-***************
-*** 1596,1603 ****
- continue;
- }
- #endif
--
- #ifdef FEAT_GUI
- /* Translate K_CSI to CSI. The special key is only used to avoid
- * it being recognized as the start of a special key. */
- if (c == K_CSI)
---- 1596,1610 ----
- continue;
- }
- #endif
- #ifdef FEAT_GUI
-+ /* The caller doesn't need to know that the focus event is delayed
-+ * until getting a character. */
-+ if (c == K_FOCUSGAINED || c == K_FOCUSLOST)
-+ {
-+ ui_focus_change(c == K_FOCUSGAINED);
-+ continue;
-+ }
-+
- /* Translate K_CSI to CSI. The special key is only used to avoid
- * it being recognized as the start of a special key. */
- if (c == K_CSI)
-*** ../vim-7.1.094/src/gui.c Thu Aug 30 13:51:52 2007
---- src/gui.c Thu Aug 30 14:10:48 2007
-***************
-*** 4519,4525 ****
- xim_set_focus(in_focus);
- # endif
-
-! ui_focus_change(in_focus);
- #endif
- }
-
---- 4519,4536 ----
- xim_set_focus(in_focus);
- # endif
-
-! /* Put events in the input queue only when allowed.
-! * ui_focus_change() isn't called directly, because it invokes
-! * autocommands and that must not happen asynchronously. */
-! if (!hold_gui_events)
-! {
-! char_u bytes[3];
-!
-! bytes[0] = CSI;
-! bytes[1] = KS_EXTRA;
-! bytes[2] = in_focus ? (int)KE_FOCUSGAINED : (int)KE_FOCUSLOST;
-! add_to_input_buf(bytes, 3);
-! }
- #endif
- }
-
-*** ../vim-7.1.094/src/gui_gtk_x11.c Tue Jun 19 18:07:52 2007
---- src/gui_gtk_x11.c Wed Aug 29 22:43:34 2007
-***************
-*** 813,822 ****
- if (blink_state == BLINK_NONE)
- gui_mch_start_blink();
-
-! /* make sure keyboard input goes to the draw area (if this is focus for a window) */
- if (widget != gui.drawarea)
- gtk_widget_grab_focus(gui.drawarea);
-
- return TRUE;
- }
-
---- 813,827 ----
- if (blink_state == BLINK_NONE)
- gui_mch_start_blink();
-
-! /* make sure keyboard input goes to the draw area (if this is focus for a
-! * window) */
- if (widget != gui.drawarea)
- gtk_widget_grab_focus(gui.drawarea);
-
-+ /* make sure the input buffer is read */
-+ if (gtk_main_level() > 0)
-+ gtk_main_quit();
-+
- return TRUE;
- }
-
-***************
-*** 828,833 ****
---- 833,842 ----
-
- if (blink_state != BLINK_NONE)
- gui_mch_stop_blink();
-+
-+ /* make sure the input buffer is read */
-+ if (gtk_main_level() > 0)
-+ gtk_main_quit();
-
- return TRUE;
- }
-*** ../vim-7.1.094/src/keymap.h Sat May 5 19:34:22 2007
---- src/keymap.h Wed Aug 29 22:17:51 2007
-***************
-*** 254,259 ****
---- 254,261 ----
- , KE_DROP /* DnD data is available */
- , KE_CURSORHOLD /* CursorHold event */
- , KE_NOP /* doesn't do something */
-+ , KE_FOCUSGAINED /* focus gained */
-+ , KE_FOCUSLOST /* focus lost */
- };
-
- /*
-***************
-*** 445,450 ****
---- 447,454 ----
- #define K_CMDWIN TERMCAP2KEY(KS_EXTRA, KE_CMDWIN)
-
- #define K_DROP TERMCAP2KEY(KS_EXTRA, KE_DROP)
-+ #define K_FOCUSGAINED TERMCAP2KEY(KS_EXTRA, KE_FOCUSGAINED)
-+ #define K_FOCUSLOST TERMCAP2KEY(KS_EXTRA, KE_FOCUSLOST)
-
- #define K_CURSORHOLD TERMCAP2KEY(KS_EXTRA, KE_CURSORHOLD)
-
-*** ../vim-7.1.094/src/version.c Thu Aug 30 19:36:52 2007
---- src/version.c Wed Sep 5 21:42:41 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 95,
- /**/
-
---
-ARTHUR: Who are you?
-TALL KNIGHT: We are the Knights Who Say "Ni"!
-BEDEVERE: No! Not the Knights Who Say "Ni"!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.096
-Problem: Reading past end of a string when resizing Vim. (Dominique Pelle)
-Solution: Check the string pointer before getting the char it points to.
-Files: src/message.c
-
-
-*** ../vim-7.1.095/src/message.c Tue Aug 7 21:59:26 2007
---- src/message.c Thu Aug 30 22:53:03 2007
-***************
-*** 944,949 ****
---- 944,950 ----
- c = K_IGNORE;
- }
- #endif
-+
- /*
- * Allow scrolling back in the messages.
- * Also accept scroll-down commands when messages fill the screen,
-***************
-*** 1840,1845 ****
---- 1841,1847 ----
- char_u *sb_str = str;
- int sb_col = msg_col;
- int wrap;
-+ int did_last_char;
-
- did_wait_return = FALSE;
- while ((maxlen < 0 || (int)(s - str) < maxlen) && *s != NUL)
-***************
-*** 1909,1915 ****
---- 1911,1920 ----
- else
- #endif
- msg_screen_putchar(*s++, attr);
-+ did_last_char = TRUE;
- }
-+ else
-+ did_last_char = FALSE;
-
- if (p_more)
- /* store text for scrolling back */
-***************
-*** 1944,1954 ****
-
- /* When we displayed a char in last column need to check if there
- * is still more. */
-! if (*s >= ' '
-! #ifdef FEAT_RIGHTLEFT
-! && !cmdmsg_rl
-! #endif
-! )
- continue;
- }
-
---- 1949,1955 ----
-
- /* When we displayed a char in last column need to check if there
- * is still more. */
-! if (did_last_char)
- continue;
- }
-
-*** ../vim-7.1.095/src/version.c Wed Sep 5 21:45:54 2007
---- src/version.c Thu Sep 6 12:31:28 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 96,
- /**/
-
---
-Yah, well, we had to carve our electrons out of driftwood we'd
-find. In the winter. Uphill. Both ways.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.097
-Problem: ":setlocal stl=%!1+1" does not work.
-Solution: Adjust check for pointer. (Politz)
-Files: src/option.c
-
-
-*** ../vim-7.1.096/src/option.c Sun Aug 12 15:50:26 2007
---- src/option.c Wed Sep 5 22:34:27 2007
-***************
-*** 6348,6354 ****
- 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();
---- 6352,6358 ----
- errmsg = check_stl_option(p_ruf);
- }
- /* check 'statusline' only if it doesn't start with "%!" */
-! else if (varp == &p_ruf || s[0] != '%' || s[1] != '!')
- errmsg = check_stl_option(s);
- if (varp == &p_ruf && errmsg == NULL)
- comp_col();
-*** ../vim-7.1.096/src/version.c Thu Sep 6 12:53:59 2007
---- src/version.c Thu Sep 6 13:31:37 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 97,
- /**/
-
---
-Not too long ago, cut and paste was done with scissors and glue...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.098
-Problem: ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula)
-Solution: Before converting "s:" into a script ID, check if it is a Funcref.
-Files: src/eval.c
-
-
-*** ../vim-7.1.097/src/eval.c Wed Sep 5 21:45:54 2007
---- src/eval.c Thu Sep 6 12:11:19 2007
-***************
-*** 19367,19372 ****
---- 19367,19394 ----
- if (lv.ll_name == NULL)
- {
- /* Error found, but continue after the function name. */
-+ *pp = end;
-+ goto theend;
-+ }
-+
-+ /* Check if the name is a Funcref. If so, use the value. */
-+ if (lv.ll_exp_name != NULL)
-+ {
-+ len = (int)STRLEN(lv.ll_exp_name);
-+ name = deref_func_name(lv.ll_exp_name, &len);
-+ if (name == lv.ll_exp_name)
-+ name = NULL;
-+ }
-+ else
-+ {
-+ len = (int)(end - *pp);
-+ name = deref_func_name(*pp, &len);
-+ if (name == *pp)
-+ name = NULL;
-+ }
-+ if (name != NULL)
-+ {
-+ name = vim_strsave(name);
- *pp = end;
- goto theend;
- }
-*** ../vim-7.1.097/src/version.c Thu Sep 6 13:32:53 2007
---- src/version.c Thu Sep 6 14:24:10 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 98,
- /**/
-
---
-Not too long ago, a program was something you watched on TV...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.099
-Problem: When the 'keymap' and 'paste' options have a non-default value,
- ":mkexrc" and ":mksession" do not correctly set the options.
-Solution: Set the options with side effects before other options.
-Files: src/option.c
-
-
-*** ../vim-7.1.098/src/option.c Thu Sep 6 13:32:53 2007
---- src/option.c Wed Sep 5 22:34:27 2007
-***************
-*** 427,432 ****
---- 427,434 ----
- #define P_NOGLOB 0x100000L/* do not use local value for global vimrc */
- #define P_NFNAME 0x200000L/* only normal file name chars allowed */
- #define P_INSECURE 0x400000L/* option was set from a modeline */
-+ #define P_PRI_MKRC 0x800000L/* priority for :mkvimrc (setting option has
-+ side effects) */
-
- #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255"
-
-***************
-*** 773,778 ****
---- 775,782 ----
- {(char_u *)0L, (char_u *)0L}
- #endif
- },
-+ /* P_PRI_MKRC isn't needed here, optval_default()
-+ * always returns TRUE for 'compatible' */
- {"compatible", "cp", P_BOOL|P_RALL,
- (char_u *)&p_cp, PV_NONE,
- {(char_u *)TRUE, (char_u *)FALSE}},
-***************
-*** 1515,1521 ****
- {(char_u *)0L, (char_u *)0L}
- #endif
- },
-! {"keymap", "kmp", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_RSTAT|P_NFNAME,
- #ifdef FEAT_KEYMAP
- (char_u *)&p_keymap, PV_KMAP,
- {(char_u *)"", (char_u *)0L}
---- 1519,1525 ----
- {(char_u *)0L, (char_u *)0L}
- #endif
- },
-! {"keymap", "kmp", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_RSTAT|P_NFNAME|P_PRI_MKRC,
- #ifdef FEAT_KEYMAP
- (char_u *)&p_keymap, PV_KMAP,
- {(char_u *)"", (char_u *)0L}
-***************
-*** 1836,1842 ****
- {"paragraphs", "para", P_STRING|P_VI_DEF,
- (char_u *)&p_para, PV_NONE,
- {(char_u *)"IPLPPPQPP LIpplpipbp", (char_u *)0L}},
-! {"paste", NULL, P_BOOL|P_VI_DEF,
- (char_u *)&p_paste, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L}},
- {"pastetoggle", "pt", P_STRING|P_VI_DEF,
---- 1840,1846 ----
- {"paragraphs", "para", P_STRING|P_VI_DEF,
- (char_u *)&p_para, PV_NONE,
- {(char_u *)"IPLPPPQPP LIpplpipbp", (char_u *)0L}},
-! {"paste", NULL, P_BOOL|P_VI_DEF|P_PRI_MKRC,
- (char_u *)&p_paste, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L}},
- {"pastetoggle", "pt", P_STRING|P_VI_DEF,
-***************
-*** 8535,8547 ****
- char_u *varp_local = NULL; /* fresh value */
- char *cmd;
- int round;
-
- /*
- * The options that don't have a default (terminal name, columns, lines)
- * are never written. Terminal options are also not written.
- */
-! for (p = &options[0]; !istermoption(p); p++)
-! if (!(p->flags & P_NO_MKRC) && !istermoption(p))
- {
- /* skip global option when only doing locals */
- if (p->indir == PV_NONE && !(opt_flags & OPT_GLOBAL))
---- 8539,8558 ----
- char_u *varp_local = NULL; /* fresh value */
- char *cmd;
- int round;
-+ int pri;
-
- /*
- * The options that don't have a default (terminal name, columns, lines)
- * are never written. Terminal options are also not written.
-+ * Do the loop over "options[]" twice: once for options with the
-+ * P_PRI_MKRC flag and once without.
- */
-! for (pri = 1; pri >= 0; --pri)
-! {
-! for (p = &options[0]; !istermoption(p); p++)
-! if (!(p->flags & P_NO_MKRC)
-! && !istermoption(p)
-! && ((pri == 1) == ((p->flags & P_PRI_MKRC) != 0)))
- {
- /* skip global option when only doing locals */
- if (p->indir == PV_NONE && !(opt_flags & OPT_GLOBAL))
-***************
-*** 8637,8642 ****
---- 8648,8654 ----
- }
- }
- }
-+ }
- return OK;
- }
-
-*** ../vim-7.1.098/src/version.c Thu Sep 6 14:25:50 2007
---- src/version.c Thu Sep 6 16:32:31 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 99,
- /**/
-
---
-Not too long ago, a keyboard was something to make music with...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.100
-Problem: Win32: Executing cscope doesn't always work properly.
-Solution: Use another way to invoke cscope. (Mike Williams)
-Files: src/if_cscope.c, src/if_cscope.h, src/main.c,
- src/proto/if_cscope.pro
-
-
-*** ../vim-7.1.099/src/if_cscope.c Tue Aug 21 18:02:58 2007
---- src/if_cscope.c Sun Sep 2 16:50:50 2007
-***************
-*** 24,34 ****
- /* not UNIX, must be WIN32 */
- # include "vimio.h"
- # include <fcntl.h>
-- # include <process.h>
-- # define STDIN_FILENO 0
-- # define STDOUT_FILENO 1
-- # define STDERR_FILENO 2
-- # define pipe(fds) _pipe(fds, 256, O_TEXT|O_NOINHERIT)
- #endif
- #include "if_cscope.h"
-
---- 24,29 ----
-***************
-*** 65,71 ****
- static char * cs_parse_results __ARGS((int cnumber, char *buf, int bufsize, char **context, char **linenumber, char **search));
- static char * cs_pathcomponents __ARGS((char *path));
- static void cs_print_tags_priv __ARGS((char **, char **, int));
-! static int cs_read_prompt __ARGS((int ));
- static void cs_release_csp __ARGS((int, int freefnpp));
- static int cs_reset __ARGS((exarg_T *eap));
- static char * cs_resolve_file __ARGS((int, char *));
---- 60,66 ----
- static char * cs_parse_results __ARGS((int cnumber, char *buf, int bufsize, char **context, char **linenumber, char **search));
- static char * cs_pathcomponents __ARGS((char *path));
- static void cs_print_tags_priv __ARGS((char **, char **, int));
-! static int cs_read_prompt __ARGS((int));
- static void cs_release_csp __ARGS((int, int freefnpp));
- static int cs_reset __ARGS((exarg_T *eap));
- static char * cs_resolve_file __ARGS((int, char *));
-***************
-*** 504,510 ****
- #if defined(UNIX)
- else if (S_ISREG(statbuf.st_mode) || S_ISLNK(statbuf.st_mode))
- #else
-! /* substitute define S_ISREG from os_unix.h */
- else if (((statbuf.st_mode) & S_IFMT) == S_IFREG)
- #endif
- {
---- 499,505 ----
- #if defined(UNIX)
- else if (S_ISREG(statbuf.st_mode) || S_ISLNK(statbuf.st_mode))
- #else
-! /* WIN32 - substitute define S_ISREG from os_unix.h */
- else if (((statbuf.st_mode) & S_IFMT) == S_IFREG)
- #endif
- {
-***************
-*** 717,733 ****
- cs_create_connection(i)
- int i;
- {
-! int to_cs[2], from_cs[2], len;
-! char *prog, *cmd, *ppath = NULL;
-! #ifndef UNIX
-! int in_save, out_save, err_save;
-! long_i ph;
-! # ifdef FEAT_GUI
-! HWND activewnd = NULL;
-! HWND consolewnd = NULL;
-! # endif
- #endif
-
- /*
- * Cscope reads from to_cs[0] and writes to from_cs[1]; vi reads from
- * from_cs[0] and writes to to_cs[1].
---- 712,734 ----
- cs_create_connection(i)
- int i;
- {
-! #ifdef UNIX
-! int to_cs[2], from_cs[2];
-! #endif
-! int len;
-! char *prog, *cmd, *ppath = NULL;
-! #ifdef WIN32
-! int fd;
-! SECURITY_ATTRIBUTES sa;
-! PROCESS_INFORMATION pi;
-! STARTUPINFO si;
-! BOOL pipe_stdin = FALSE, pipe_stdout = FALSE;
-! HANDLE stdin_rd, stdout_rd;
-! HANDLE stdout_wr, stdin_wr;
-! BOOL created;
- #endif
-
-+ #if defined(UNIX)
- /*
- * Cscope reads from to_cs[0] and writes to from_cs[1]; vi reads from
- * from_cs[0] and writes to to_cs[1].
-***************
-*** 748,765 ****
- return CSCOPE_FAILURE;
- }
-
-- #if defined(UNIX)
- switch (csinfo[i].pid = fork())
- {
- case -1:
- (void)EMSG(_("E622: Could not fork for cscope"));
- goto err_closing;
- case 0: /* child: run cscope. */
-- #else
-- in_save = dup(STDIN_FILENO);
-- out_save = dup(STDOUT_FILENO);
-- err_save = dup(STDERR_FILENO);
-- #endif
- if (dup2(to_cs[0], STDIN_FILENO) == -1)
- PERROR("cs_create_connection 1");
- if (dup2(from_cs[1], STDOUT_FILENO) == -1)
---- 749,760 ----
-***************
-*** 768,782 ****
- PERROR("cs_create_connection 3");
-
- /* close unused */
-- #if defined(UNIX)
- (void)close(to_cs[1]);
- (void)close(from_cs[0]);
- #else
-! /* On win32 we must close opposite ends because we are the parent */
-! (void)close(to_cs[0]);
-! to_cs[0] = -1;
-! (void)close(from_cs[1]);
-! from_cs[1] = -1;
- #endif
- /* expand the cscope exec for env var's */
- if ((prog = (char *)alloc(MAXPATHL + 1)) == NULL)
---- 763,794 ----
- PERROR("cs_create_connection 3");
-
- /* close unused */
- (void)close(to_cs[1]);
- (void)close(from_cs[0]);
- #else
-! /* WIN32 */
-! /* Create pipes to communicate with cscope */
-! sa.nLength = sizeof(SECURITY_ATTRIBUTES);
-! sa.bInheritHandle = TRUE;
-! sa.lpSecurityDescriptor = NULL;
-!
-! if (!(pipe_stdin = CreatePipe(&stdin_rd, &stdin_wr, &sa, 0))
-! || !(pipe_stdout = CreatePipe(&stdout_rd, &stdout_wr, &sa, 0)))
-! {
-! (void)EMSG(_("E566: Could not create cscope pipes"));
-! err_closing:
-! if (pipe_stdin)
-! {
-! CloseHandle(stdin_rd);
-! CloseHandle(stdin_wr);
-! }
-! if (pipe_stdout)
-! {
-! CloseHandle(stdout_rd);
-! CloseHandle(stdout_wr);
-! }
-! return CSCOPE_FAILURE;
-! }
- #endif
- /* expand the cscope exec for env var's */
- if ((prog = (char *)alloc(MAXPATHL + 1)) == NULL)
-***************
-*** 784,789 ****
---- 796,802 ----
- #ifdef UNIX
- return CSCOPE_FAILURE;
- #else
-+ /* WIN32 */
- goto err_closing;
- #endif
- }
-***************
-*** 800,805 ****
---- 813,819 ----
- #ifdef UNIX
- return CSCOPE_FAILURE;
- #else
-+ /* WIN32 */
- goto err_closing;
- #endif
- }
-***************
-*** 818,823 ****
---- 832,838 ----
- #ifdef UNIX
- return CSCOPE_FAILURE;
- #else
-+ /* WIN32 */
- goto err_closing;
- #endif
- }
-***************
-*** 826,831 ****
---- 841,847 ----
- #if defined(UNIX)
- (void)sprintf(cmd, "exec %s -dl -f %s", prog, csinfo[i].fname);
- #else
-+ /* WIN32 */
- (void)sprintf(cmd, "%s -dl -f %s", prog, csinfo[i].fname);
- #endif
- if (csinfo[i].ppath != NULL)
-***************
-*** 851,910 ****
- exit(127);
- /* NOTREACHED */
- default: /* parent. */
-- #else
-- # ifdef FEAT_GUI
-- activewnd = GetForegroundWindow(); /* on win9x cscope steals focus */
-- /* Dirty hack to hide annoying console window */
-- if (AllocConsole())
-- {
-- char *title;
-- title = (char *)alloc(1024);
-- if (title == NULL)
-- FreeConsole();
-- else
-- {
-- GetConsoleTitle(title, 1024); /* save for future restore */
-- SetConsoleTitle(
-- "GVIMCS{5499421B-CBEF-45b0-85EF-38167FDEA5C5}GVIMCS");
-- Sleep(40); /* as stated in MS KB we must wait 40 ms */
-- consolewnd = FindWindow(NULL,
-- "GVIMCS{5499421B-CBEF-45b0-85EF-38167FDEA5C5}GVIMCS");
-- if (consolewnd != NULL)
-- ShowWindow(consolewnd, SW_HIDE);
-- SetConsoleTitle(title);
-- vim_free(title);
-- }
-- }
-- # endif
-- /* May be use &shell, &shellquote etc */
-- # ifdef __BORLANDC__
-- /* BCC 5.5 uses a different function name for spawnlp */
-- ph = (long_i)spawnlp(P_NOWAIT, prog, cmd, NULL);
-- # else
-- ph = (long_i)_spawnlp(_P_NOWAIT, prog, cmd, NULL);
-- # endif
-- vim_free(prog);
-- vim_free(cmd);
-- # ifdef FEAT_GUI
-- /* Dirty hack part two */
-- if (activewnd != NULL)
-- /* restoring focus */
-- SetForegroundWindow(activewnd);
-- if (consolewnd != NULL)
-- FreeConsole();
--
-- # endif
-- if (ph == -1)
-- {
-- PERROR(_("cs_create_connection exec failed"));
-- (void)EMSG(_("E623: Could not spawn cscope process"));
-- goto err_closing;
-- }
-- /* else */
-- csinfo[i].pid = 0;
-- csinfo[i].hProc = (HANDLE)ph;
--
-- #endif /* !UNIX */
- /*
- * Save the file descriptors for later duplication, and
- * reopen as streams.
---- 867,872 ----
-***************
-*** 914,935 ****
- if ((csinfo[i].fr_fp = fdopen(from_cs[0], "r")) == NULL)
- PERROR(_("cs_create_connection: fdopen for fr_fp failed"));
-
-- #if defined(UNIX)
- /* close unused */
- (void)close(to_cs[0]);
- (void)close(from_cs[1]);
-
- break;
- }
- #else
-! /* restore stdhandles */
-! dup2(in_save, STDIN_FILENO);
-! dup2(out_save, STDOUT_FILENO);
-! dup2(err_save, STDERR_FILENO);
-! close(in_save);
-! close(out_save);
-! close(err_save);
-! #endif
- return CSCOPE_SUCCESS;
- } /* cs_create_connection */
-
---- 876,927 ----
- if ((csinfo[i].fr_fp = fdopen(from_cs[0], "r")) == NULL)
- PERROR(_("cs_create_connection: fdopen for fr_fp failed"));
-
- /* close unused */
- (void)close(to_cs[0]);
- (void)close(from_cs[1]);
-
- break;
- }
-+
- #else
-! /* WIN32 */
-! /* Create a new process to run cscope and use pipes to talk with it */
-! GetStartupInfo(&si);
-! si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
-! si.wShowWindow = SW_HIDE; /* Hide child application window */
-! si.hStdOutput = stdout_wr;
-! si.hStdError = stdout_wr;
-! si.hStdInput = stdin_rd;
-! created = CreateProcess(NULL, cmd, NULL, NULL, TRUE, CREATE_NEW_CONSOLE,
-! NULL, NULL, &si, &pi);
-! vim_free(prog);
-! vim_free(cmd);
-!
-! if (!created)
-! {
-! PERROR(_("cs_create_connection exec failed"));
-! (void)EMSG(_("E623: Could not spawn cscope process"));
-! goto err_closing;
-! }
-! /* else */
-! csinfo[i].pid = pi.dwProcessId;
-! csinfo[i].hProc = pi.hProcess;
-! CloseHandle(pi.hThread);
-!
-! /* TODO - tidy up after failure to create files on pipe handles. */
-! if (((fd = _open_osfhandle((intptr_t)stdin_wr, _O_TEXT|_O_APPEND)) < 0)
-! || ((csinfo[i].to_fp = _fdopen(fd, "w")) == NULL))
-! PERROR(_("cs_create_connection: fdopen for to_fp failed"));
-! if (((fd = _open_osfhandle((intptr_t)stdout_rd, _O_TEXT|_O_RDONLY)) < 0)
-! || ((csinfo[i].fr_fp = _fdopen(fd, "r")) == NULL))
-! PERROR(_("cs_create_connection: fdopen for fr_fp failed"));
-!
-! /* Close handles for file descriptors inherited by the cscope process */
-! CloseHandle(stdin_rd);
-! CloseHandle(stdout_wr);
-!
-! #endif /* !UNIX */
-!
- return CSCOPE_SUCCESS;
- } /* cs_create_connection */
-
-***************
-*** 2097,2104 ****
- /*
- * PRIVATE: cs_release_csp
- *
-! * does the actual free'ing for the cs ptr with an optional flag of whether
-! * or not to free the filename. called by cs_kill and cs_reset.
- */
- static void
- cs_release_csp(i, freefnpp)
---- 2089,2096 ----
- /*
- * PRIVATE: cs_release_csp
- *
-! * Does the actual free'ing for the cs ptr with an optional flag of whether
-! * or not to free the filename. Called by cs_kill and cs_reset.
- */
- static void
- cs_release_csp(i, freefnpp)
-***************
-*** 2116,2125 ****
- (void)fputs("q\n", csinfo[i].to_fp);
- (void)fflush(csinfo[i].to_fp);
- }
-! /* give cscope chance to exit normally */
-! if (csinfo[i].hProc != NULL
-! && WaitForSingleObject(csinfo[i].hProc, 1000) == WAIT_TIMEOUT)
-! TerminateProcess(csinfo[i].hProc, 0);
- #endif
-
- if (csinfo[i].fr_fp != NULL)
---- 2108,2120 ----
- (void)fputs("q\n", csinfo[i].to_fp);
- (void)fflush(csinfo[i].to_fp);
- }
-! if (csinfo[i].hProc != NULL)
-! {
-! /* Give cscope a chance to exit normally */
-! if (WaitForSingleObject(csinfo[i].hProc, 1000) == WAIT_TIMEOUT)
-! TerminateProcess(csinfo[i].hProc, 0);
-! CloseHandle(csinfo[i].hProc);
-! }
- #endif
-
- if (csinfo[i].fr_fp != NULL)
-***************
-*** 2301,2306 ****
---- 2296,2316 ----
- wait_return(TRUE);
- return CSCOPE_SUCCESS;
- } /* cs_show */
-+
-+
-+ /*
-+ * PUBLIC: cs_end
-+ *
-+ * Only called when VIM exits to quit any cscope sessions.
-+ */
-+ void
-+ cs_end()
-+ {
-+ int i;
-+
-+ for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++)
-+ cs_release_csp(i, TRUE);
-+ }
-
- #endif /* FEAT_CSCOPE */
-
-*** ../vim-7.1.099/src/if_cscope.h Thu Jun 30 23:59:58 2005
---- src/if_cscope.h Sun Sep 2 16:51:08 2007
-***************
-*** 72,78 ****
- ino_t st_ino; /* inode number of cscope db */
- #else
- # if defined(WIN32)
-! int pid; /* Can't get pid so set it to 0 ;) */
- HANDLE hProc; /* cscope process handle */
- DWORD nVolume; /* Volume serial number, instead of st_dev */
- DWORD nIndexHigh; /* st_ino has no meaning in the Windows */
---- 72,78 ----
- ino_t st_ino; /* inode number of cscope db */
- #else
- # if defined(WIN32)
-! DWORD pid; /* PID of the connected cscope process. */
- HANDLE hProc; /* cscope process handle */
- DWORD nVolume; /* Volume serial number, instead of st_dev */
- DWORD nIndexHigh; /* st_ino has no meaning in the Windows */
-*** ../vim-7.1.099/src/main.c Thu Aug 30 12:24:21 2007
---- src/main.c Sun Sep 2 16:44:36 2007
-***************
-*** 1331,1336 ****
---- 1331,1339 ----
- #ifdef FEAT_NETBEANS_INTG
- netbeans_end();
- #endif
-+ #ifdef FEAT_CSCOPE
-+ cs_end();
-+ #endif
-
- mch_exit(exitval);
- }
-***************
-*** 3671,3677 ****
- mainerr_arg_missing((char_u *)filev[-1]);
- if (mch_dirname(cwd, MAXPATHL) != OK)
- return NULL;
-! if ((p = vim_strsave_escaped_ext(cwd, PATH_ESC_CHARS, '\\', TRUE)) == NULL)
- return NULL;
- ga_init2(&ga, 1, 100);
- ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
---- 3674,3686 ----
- mainerr_arg_missing((char_u *)filev[-1]);
- if (mch_dirname(cwd, MAXPATHL) != OK)
- return NULL;
-! if ((p = vim_strsave_escaped_ext(cwd,
-! #ifdef BACKSLASH_IN_FILENAME
-! "", /* rem_backslash() will tell what chars to escape */
-! #else
-! PATH_ESC_CHARS,
-! #endif
-! '\\', TRUE)) == NULL)
- return NULL;
- ga_init2(&ga, 1, 100);
- ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
-*** ../vim-7.1.099/src/proto/if_cscope.pro Sat May 5 19:15:39 2007
---- src/proto/if_cscope.pro Sun Sep 2 16:51:34 2007
-***************
-*** 6,9 ****
---- 6,10 ----
- void cs_free_tags __ARGS((void));
- void cs_print_tags __ARGS((void));
- int cs_connection __ARGS((int num, char_u *dbpath, char_u *ppath));
-+ void cs_end __ARGS((void));
- /* vim: set ft=c : */
-*** ../vim-7.1.099/src/version.c Thu Sep 6 16:33:47 2007
---- src/version.c Thu Sep 6 17:27:51 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 100,
- /**/
-
---
-I have to exercise early in the morning before my brain
-figures out what I'm doing.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.101
-Problem: Ruby: The Buffer.line= method does not work.
-Solution: Add the "self" argument to set_current_line(). (Jonathan Hankins)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.1.100/src/if_ruby.c Sat May 12 15:01:49 2007
---- src/if_ruby.c Mon Sep 10 10:40:38 2007
-***************
-*** 789,795 ****
- return get_buffer_line(curbuf, curwin->w_cursor.lnum);
- }
-
-! static VALUE set_current_line(VALUE str)
- {
- return set_buffer_line(curbuf, curwin->w_cursor.lnum, str);
- }
---- 789,795 ----
- return get_buffer_line(curbuf, curwin->w_cursor.lnum);
- }
-
-! static VALUE set_current_line(VALUE self, VALUE str)
- {
- return set_buffer_line(curbuf, curwin->w_cursor.lnum, str);
- }
-*** ../vim-7.1.100/src/version.c Thu Sep 6 17:38:06 2007
---- src/version.c Thu Sep 13 14:59:47 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 101,
- /**/
-
---
-The question is: What do you do with your life?
-The wrong answer is: Become the richest guy in the graveyard.
- (billionaire and Oracle founder Larry Ellison)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.102
-Problem: Perl interface doesn't compile with new version of Perl.
-Solution: Add two variables to the dynamic library loading. (Suresh
- Govindachar)
-Files: src/if_perl.xs
-
-
-*** ../vim-7.1.101/src/if_perl.xs Wed Aug 16 19:33:57 2006
---- src/if_perl.xs Wed Sep 5 22:00:36 2007
-***************
-*** 40,45 ****
---- 40,65 ----
- # define PERL_SUBVERSION SUBVERSION
- #endif
-
-+ /*
-+ * Quoting Jan Dubois of Active State:
-+ * ActivePerl build 822 still identifies itself as 5.8.8 but already
-+ * contains many of the changes from the upcoming Perl 5.8.9 release.
-+ *
-+ * The changes include addition of two symbols (Perl_sv_2iv_flags,
-+ * Perl_newXS_flags) not present in earlier releases.
-+ *
-+ * Jan Dubois suggested the following guarding scheme:
-+ */
-+ #if (ACTIVEPERL_VERSION >= 822)
-+ # define PERL589_OR_LATER
-+ #endif
-+ #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 9)
-+ # define PERL589_OR_LATER
-+ #endif
-+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 9)
-+ # define PERL589_OR_LATER
-+ #endif
-+
- #ifndef pTHX
- # define pTHX void
- # define pTHX_
-***************
-*** 109,114 ****
---- 129,138 ----
- # else
- # define Perl_sv_catpvn dll_Perl_sv_catpvn
- # endif
-+ #ifdef PERL589_OR_LATER
-+ # define Perl_sv_2iv_flags dll_Perl_sv_2iv_flags
-+ # define Perl_newXS_flags dll_Perl_newXS_flags
-+ #endif
- # define Perl_sv_free dll_Perl_sv_free
- # define Perl_sv_isa dll_Perl_sv_isa
- # define Perl_sv_magic dll_Perl_sv_magic
-***************
-*** 192,197 ****
---- 216,225 ----
- #else
- static void (*Perl_sv_catpvn)(pTHX_ SV*, const char*, STRLEN);
- #endif
-+ #ifdef PERL589_OR_LATER
-+ static IV (*Perl_sv_2iv_flags)(pTHX_ SV* sv, I32 flags);
-+ static CV * (*Perl_newXS_flags)(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags);
-+ #endif
- static void (*Perl_sv_free)(pTHX_ SV*);
- static int (*Perl_sv_isa)(pTHX_ SV*, const char*);
- static void (*Perl_sv_magic)(pTHX_ SV*, SV*, int, const char*, I32);
-***************
-*** 266,271 ****
---- 294,303 ----
- {"Perl_sv_2pv_nolen", (PERL_PROC*)&Perl_sv_2pv_nolen},
- #else
- {"Perl_sv_2pv", (PERL_PROC*)&Perl_sv_2pv},
-+ #endif
-+ #ifdef PERL589_OR_LATER
-+ {"Perl_sv_2iv_flags", (PERL_PROC*)&Perl_sv_2iv_flags},
-+ {"Perl_newXS_flags", (PERL_PROC*)&Perl_newXS_flags},
- #endif
- {"Perl_sv_bless", (PERL_PROC*)&Perl_sv_bless},
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
-*** ../vim-7.1.101/src/version.c Thu Sep 13 15:00:28 2007
---- src/version.c Thu Sep 13 15:18:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 102,
- /**/
-
---
-Witches prefer brooms: vacuum-cleaners need extension cords!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.103
-Problem: Using "dw" with the cursor past the end of the last line (using
- CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase)
-Solution: Don't move the cursor back when the movement failed.
-Files: src/normal.c
-
-
-*** ../vim-7.1.102/src/normal.c Tue Aug 14 22:54:00 2007
---- src/normal.c Tue Sep 11 19:32:42 2007
-***************
-*** 8364,8370 ****
- n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
-
- /* Don't leave the cursor on the NUL past a line */
-! if (curwin->w_cursor.col && gchar_cursor() == NUL)
- {
- --curwin->w_cursor.col;
- cap->oap->inclusive = TRUE;
---- 8364,8370 ----
- n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
-
- /* Don't leave the cursor on the NUL past a line */
-! if (n != FAIL && curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
- {
- --curwin->w_cursor.col;
- cap->oap->inclusive = TRUE;
-*** ../vim-7.1.102/src/version.c Thu Sep 13 15:19:32 2007
---- src/version.c Thu Sep 13 15:32:05 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 103,
- /**/
-
---
-ARTHUR: Then who is your lord?
-WOMAN: We don't have a lord.
-ARTHUR: What?
-DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in
- turns to act as a sort of executive officer for the week.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.104 (after 7.1.095)
-Problem: When 'lazyredraw' is set a focus event causes redraw to be
- postponed until a key is pressed.
-Solution: Instead of not returning from vgetc() when a focus event is
- encountered return K_IGNORE. Add plain_vgetc() for when the
- caller doesn't want to get K_IGNORE.
-Files: src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c,
- src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c
-
-
-*** ../vim-7.1.103/src/digraph.c Sat Jul 7 13:57:39 2007
---- src/digraph.c Thu Sep 13 16:11:54 2007
-***************
-*** 2028,2034 ****
-
- ++no_mapping;
- ++allow_keys;
-! c = safe_vgetc();
- --no_mapping;
- --allow_keys;
- if (c != ESC) /* ESC cancels CTRL-K */
---- 2028,2034 ----
-
- ++no_mapping;
- ++allow_keys;
-! c = plain_vgetc();
- --no_mapping;
- --allow_keys;
- if (c != ESC) /* ESC cancels CTRL-K */
-***************
-*** 2050,2056 ****
- #endif
- ++no_mapping;
- ++allow_keys;
-! cc = safe_vgetc();
- --no_mapping;
- --allow_keys;
- if (cc != ESC) /* ESC cancels CTRL-K */
---- 2050,2056 ----
- #endif
- ++no_mapping;
- ++allow_keys;
-! cc = plain_vgetc();
- --no_mapping;
- --allow_keys;
- if (cc != ESC) /* ESC cancels CTRL-K */
-***************
-*** 2350,2356 ****
- if (*curbuf->b_p_keymap == NUL)
- {
- /* Stop any active keymap and clear the table. Also remove
-! * b:keymap_unload, as no keymap is active now. */
- keymap_unload();
- do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
- }
---- 2350,2356 ----
- if (*curbuf->b_p_keymap == NUL)
- {
- /* Stop any active keymap and clear the table. Also remove
-! * b:keymap_name, as no keymap is active now. */
- keymap_unload();
- do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
- }
-*** ../vim-7.1.103/src/edit.c Sun Aug 12 16:38:03 2007
---- src/edit.c Thu Sep 13 16:17:54 2007
-***************
-*** 788,794 ****
- ins_redraw(FALSE);
- ++no_mapping;
- ++allow_keys;
-! c = safe_vgetc();
- --no_mapping;
- --allow_keys;
- if (c != Ctrl_N && c != Ctrl_G && c != Ctrl_O)
---- 788,794 ----
- ins_redraw(FALSE);
- ++no_mapping;
- ++allow_keys;
-! c = plain_vgetc();
- --no_mapping;
- --allow_keys;
- if (c != Ctrl_N && c != Ctrl_G && c != Ctrl_O)
-***************
-*** 981,987 ****
- #ifdef FEAT_NETBEANS_INTG
- case K_F21: /* NetBeans command */
- ++no_mapping; /* don't map the next key hits */
-! i = safe_vgetc();
- --no_mapping;
- netbeans_keycommand(i);
- break;
---- 981,987 ----
- #ifdef FEAT_NETBEANS_INTG
- case K_F21: /* NetBeans command */
- ++no_mapping; /* don't map the next key hits */
-! i = plain_vgetc();
- --no_mapping;
- netbeans_keycommand(i);
- break;
-***************
-*** 5224,5233 ****
- i = 0;
- for (;;)
- {
-! do
-! nc = safe_vgetc();
-! while (nc == K_IGNORE || nc == K_VER_SCROLLBAR
-! || nc == K_HOR_SCROLLBAR);
- #ifdef FEAT_CMDL_INFO
- if (!(State & CMDLINE)
- # ifdef FEAT_MBYTE
---- 5224,5230 ----
- i = 0;
- for (;;)
- {
-! nc = plain_vgetc();
- #ifdef FEAT_CMDL_INFO
- if (!(State & CMDLINE)
- # ifdef FEAT_MBYTE
-***************
-*** 7575,7581 ****
- * deleted when ESC is hit.
- */
- ++no_mapping;
-! regname = safe_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(regname, TRUE);
- #endif
---- 7572,7578 ----
- * deleted when ESC is hit.
- */
- ++no_mapping;
-! regname = plain_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(regname, TRUE);
- #endif
-***************
-*** 7586,7592 ****
- #ifdef FEAT_CMDL_INFO
- add_to_showcmd_c(literally);
- #endif
-! regname = safe_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(regname, TRUE);
- #endif
---- 7583,7589 ----
- #ifdef FEAT_CMDL_INFO
- add_to_showcmd_c(literally);
- #endif
-! regname = plain_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(regname, TRUE);
- #endif
-***************
-*** 7677,7683 ****
- * deleted when ESC is hit.
- */
- ++no_mapping;
-! c = safe_vgetc();
- --no_mapping;
- switch (c)
- {
---- 7674,7680 ----
- * deleted when ESC is hit.
- */
- ++no_mapping;
-! c = plain_vgetc();
- --no_mapping;
- switch (c)
- {
-***************
-*** 9356,9362 ****
- * mode message to be deleted when ESC is hit */
- ++no_mapping;
- ++allow_keys;
-! c = safe_vgetc();
- --no_mapping;
- --allow_keys;
- if (IS_SPECIAL(c) || mod_mask) /* special key */
---- 9353,9359 ----
- * mode message to be deleted when ESC is hit */
- ++no_mapping;
- ++allow_keys;
-! c = plain_vgetc();
- --no_mapping;
- --allow_keys;
- if (IS_SPECIAL(c) || mod_mask) /* special key */
-***************
-*** 9388,9394 ****
- }
- ++no_mapping;
- ++allow_keys;
-! cc = safe_vgetc();
- --no_mapping;
- --allow_keys;
- if (cc != ESC)
---- 9385,9391 ----
- }
- ++no_mapping;
- ++allow_keys;
-! cc = plain_vgetc();
- --no_mapping;
- --allow_keys;
- if (cc != ESC)
-*** ../vim-7.1.103/src/ex_cmds.c Tue Aug 21 15:28:32 2007
---- src/ex_cmds.c Thu Sep 13 16:19:40 2007
-***************
-*** 4498,4504 ****
- *
- * The new text is built up in new_start[]. It has some extra
- * room to avoid using alloc()/free() too often. new_start_len is
-! * the lenght of the allocated memory at new_start.
- *
- * Make a copy of the old line, so it won't be taken away when
- * updating the screen or handling a multi-line match. The "old_"
---- 4499,4505 ----
- *
- * The new text is built up in new_start[]. It has some extra
- * room to avoid using alloc()/free() too often. new_start_len is
-! * the length of the allocated memory at new_start.
- *
- * Make a copy of the old line, so it won't be taken away when
- * updating the screen or handling a multi-line match. The "old_"
-***************
-*** 4669,4675 ****
- #endif
- ++no_mapping; /* don't map this key */
- ++allow_keys; /* allow special keys */
-! i = safe_vgetc();
- --allow_keys;
- --no_mapping;
-
---- 4670,4676 ----
- #endif
- ++no_mapping; /* don't map this key */
- ++allow_keys; /* allow special keys */
-! i = plain_vgetc();
- --allow_keys;
- --no_mapping;
-
-*** ../vim-7.1.103/src/ex_getln.c Mon Aug 6 22:27:12 2007
---- src/ex_getln.c Thu Sep 13 16:20:49 2007
-***************
-*** 641,647 ****
- {
- ++no_mapping;
- ++allow_keys;
-! c = safe_vgetc();
- --no_mapping;
- --allow_keys;
- /* CTRL-\ e doesn't work when obtaining an expression. */
---- 641,647 ----
- {
- ++no_mapping;
- ++allow_keys;
-! c = plain_vgetc();
- --no_mapping;
- --allow_keys;
- /* CTRL-\ e doesn't work when obtaining an expression. */
-***************
-*** 1091,1101 ****
- #endif
- putcmdline('"', TRUE);
- ++no_mapping;
-! i = c = safe_vgetc(); /* CTRL-R <char> */
- if (i == Ctrl_O)
- i = Ctrl_R; /* CTRL-R CTRL-O == CTRL-R CTRL-R */
- if (i == Ctrl_R)
-! c = safe_vgetc(); /* CTRL-R CTRL-R <char> */
- --no_mapping;
- #ifdef FEAT_EVAL
- /*
---- 1091,1101 ----
- #endif
- putcmdline('"', TRUE);
- ++no_mapping;
-! i = c = plain_vgetc(); /* CTRL-R <char> */
- if (i == Ctrl_O)
- i = Ctrl_R; /* CTRL-R CTRL-O == CTRL-R CTRL-R */
- if (i == Ctrl_R)
-! c = plain_vgetc(); /* CTRL-R CTRL-R <char> */
- --no_mapping;
- #ifdef FEAT_EVAL
- /*
-*** ../vim-7.1.103/src/getchar.c Wed Sep 5 21:45:54 2007
---- src/getchar.c Thu Sep 13 16:16:53 2007
-***************
-*** 1597,1608 ****
- }
- #endif
- #ifdef FEAT_GUI
-! /* The caller doesn't need to know that the focus event is delayed
-! * until getting a character. */
- if (c == K_FOCUSGAINED || c == K_FOCUSLOST)
- {
- ui_focus_change(c == K_FOCUSGAINED);
-! continue;
- }
-
- /* Translate K_CSI to CSI. The special key is only used to avoid
---- 1597,1609 ----
- }
- #endif
- #ifdef FEAT_GUI
-! /* Handle focus event here, so that the caller doesn't need to
-! * know about it. Return K_IGNORE so that we loop once (needed if
-! * 'lazyredraw' is set). */
- if (c == K_FOCUSGAINED || c == K_FOCUSLOST)
- {
- ui_focus_change(c == K_FOCUSGAINED);
-! c = K_IGNORE;
- }
-
- /* Translate K_CSI to CSI. The special key is only used to avoid
-***************
-*** 1744,1749 ****
---- 1745,1766 ----
- c = vgetc();
- if (c == NUL)
- c = get_keystroke();
-+ return c;
-+ }
-+
-+ /*
-+ * Like safe_vgetc(), but loop to handle K_IGNORE.
-+ * Also ignore scrollbar events.
-+ */
-+ int
-+ plain_vgetc()
-+ {
-+ int c;
-+
-+ do
-+ {
-+ c = safe_vgetc();
-+ } while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
- return c;
- }
-
-*** ../vim-7.1.103/src/normal.c Thu Sep 13 15:33:18 2007
---- src/normal.c Thu Sep 13 16:24:51 2007
-***************
-*** 696,702 ****
- ++allow_keys; /* no mapping for nchar, but keys */
- }
- ++no_zero_mapping; /* don't map zero here */
-! c = safe_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(c, TRUE);
- #endif
---- 696,702 ----
- ++allow_keys; /* no mapping for nchar, but keys */
- }
- ++no_zero_mapping; /* don't map zero here */
-! c = plain_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(c, TRUE);
- #endif
-***************
-*** 721,727 ****
- ca.count0 = 0;
- ++no_mapping;
- ++allow_keys; /* no mapping for nchar, but keys */
-! c = safe_vgetc(); /* get next character */
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(c, TRUE);
- #endif
---- 721,727 ----
- ca.count0 = 0;
- ++no_mapping;
- ++allow_keys; /* no mapping for nchar, but keys */
-! c = plain_vgetc(); /* get next character */
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(c, TRUE);
- #endif
-***************
-*** 900,906 ****
- * For 'g' get the next character now, so that we can check for
- * "gr", "g'" and "g`".
- */
-! ca.nchar = safe_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(ca.nchar, TRUE);
- #endif
---- 900,906 ----
- * For 'g' get the next character now, so that we can check for
- * "gr", "g'" and "g`".
- */
-! ca.nchar = plain_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(ca.nchar, TRUE);
- #endif
-***************
-*** 957,963 ****
- im_set_active(TRUE);
- #endif
-
-! *cp = safe_vgetc();
-
- if (langmap_active)
- {
---- 957,963 ----
- im_set_active(TRUE);
- #endif
-
-! *cp = plain_vgetc();
-
- if (langmap_active)
- {
-***************
-*** 1045,1051 ****
- }
- if (c > 0)
- {
-! c = safe_vgetc();
- if (c != Ctrl_N && c != Ctrl_G)
- vungetc(c);
- else
---- 1045,1051 ----
- }
- if (c > 0)
- {
-! c = plain_vgetc();
- if (c != Ctrl_N && c != Ctrl_G)
- vungetc(c);
- else
-***************
-*** 1064,1070 ****
- while (enc_utf8 && lang && (c = vpeekc()) > 0
- && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
- {
-! c = safe_vgetc();
- if (!utf_iscomposing(c))
- {
- vungetc(c); /* it wasn't, put it back */
---- 1064,1070 ----
- while (enc_utf8 && lang && (c = vpeekc()) > 0
- && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
- {
-! c = plain_vgetc();
- if (!utf_iscomposing(c))
- {
- vungetc(c); /* it wasn't, put it back */
-***************
-*** 4564,4570 ****
- #endif
- ++no_mapping;
- ++allow_keys; /* no mapping for nchar, but allow key codes */
-! nchar = safe_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(nchar, TRUE);
- #endif
---- 4564,4570 ----
- #endif
- ++no_mapping;
- ++allow_keys; /* no mapping for nchar, but allow key codes */
-! nchar = plain_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(nchar, TRUE);
- #endif
-***************
-*** 4922,4928 ****
- case 'u': /* "zug" and "zuw": undo "zg" and "zw" */
- ++no_mapping;
- ++allow_keys; /* no mapping for nchar, but allow key codes */
-! nchar = safe_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(nchar, TRUE);
- #endif
---- 4922,4928 ----
- case 'u': /* "zug" and "zuw": undo "zg" and "zw" */
- ++no_mapping;
- ++allow_keys; /* no mapping for nchar, but allow key codes */
-! nchar = plain_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(nchar, TRUE);
- #endif
-*** ../vim-7.1.103/src/proto/getchar.pro Sun May 6 15:04:24 2007
---- src/proto/getchar.pro Thu Sep 13 16:13:19 2007
-***************
-*** 38,43 ****
---- 38,44 ----
- void updatescript __ARGS((int c));
- int vgetc __ARGS((void));
- int safe_vgetc __ARGS((void));
-+ int plain_vgetc __ARGS((void));
- int vpeekc __ARGS((void));
- int vpeekc_nomap __ARGS((void));
- int vpeekc_any __ARGS((void));
-*** ../vim-7.1.103/src/window.c Sun Aug 12 16:55:01 2007
---- src/window.c Thu Sep 13 16:25:01 2007
-***************
-*** 584,590 ****
- ++no_mapping;
- ++allow_keys; /* no mapping for xchar, but allow key codes */
- if (xchar == NUL)
-! xchar = safe_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(xchar, TRUE);
- #endif
---- 584,590 ----
- ++no_mapping;
- ++allow_keys; /* no mapping for xchar, but allow key codes */
- if (xchar == NUL)
-! xchar = plain_vgetc();
- #ifdef FEAT_LANGMAP
- LANGMAP_ADJUST(xchar, TRUE);
- #endif
-*** ../vim-7.1.103/src/version.c Thu Sep 13 15:33:18 2007
---- src/version.c Thu Sep 13 18:22:59 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 104,
- /**/
-
---
-ARTHUR: I am your king!
-WOMAN: Well, I didn't vote for you.
-ARTHUR: You don't vote for kings.
-WOMAN: Well, 'ow did you become king then?
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.105
-Problem: Internal error when using "0 ? {'a': 1} : {}". (A.Politz)
-Solution: When parsing a dictionary value without using the value, don't try
- obtaining the key name.
-Files: src/eval.c
-
-
-*** ../vim-7.1.104/src/eval.c Thu Sep 6 14:25:50 2007
---- src/eval.c Thu Sep 13 20:29:31 2007
-***************
-*** 6746,6765 ****
- clear_tv(&tvkey);
- goto failret;
- }
-! key = get_tv_string_buf_chk(&tvkey, buf);
-! if (key == NULL || *key == NUL)
- {
-! /* "key" is NULL when get_tv_string_buf_chk() gave an errmsg */
-! if (key != NULL)
-! EMSG(_(e_emptykey));
-! clear_tv(&tvkey);
-! goto failret;
- }
-
- *arg = skipwhite(*arg + 1);
- if (eval1(arg, &tv, evaluate) == FAIL) /* recursive! */
- {
-! clear_tv(&tvkey);
- goto failret;
- }
- if (evaluate)
---- 6746,6769 ----
- clear_tv(&tvkey);
- goto failret;
- }
-! if (evaluate)
- {
-! key = get_tv_string_buf_chk(&tvkey, buf);
-! if (key == NULL || *key == NUL)
-! {
-! /* "key" is NULL when get_tv_string_buf_chk() gave an errmsg */
-! if (key != NULL)
-! EMSG(_(e_emptykey));
-! clear_tv(&tvkey);
-! goto failret;
-! }
- }
-
- *arg = skipwhite(*arg + 1);
- if (eval1(arg, &tv, evaluate) == FAIL) /* recursive! */
- {
-! if (evaluate)
-! clear_tv(&tvkey);
- goto failret;
- }
- if (evaluate)
-*** ../vim-7.1.104/src/version.c Thu Sep 13 18:25:08 2007
---- src/version.c Thu Sep 13 20:36:38 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 105,
- /**/
-
---
-DENNIS: Listen -- strange women lying in ponds distributing swords is no
- basis for a system of government. Supreme executive power derives
- from a mandate from the masses, not from some farcical aquatic
- ceremony.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.106
-Problem: ":messages" doesn't quit listing on ":".
-Solution: Break the loop when "got_int" is set.
-Files: src/message.c
-
-
-*** ../vim-7.1.105/src/message.c Thu Sep 6 12:53:59 2007
---- src/message.c Thu Sep 13 21:45:57 2007
-***************
-*** 828,834 ****
- _("Messages maintainer: Bram Moolenaar <Bram@vim.org>"),
- hl_attr(HLF_T));
-
-! for (p = first_msg_hist; p != NULL; p = p->next)
- if (p->msg != NULL)
- msg_attr(p->msg, p->attr);
-
---- 828,834 ----
- _("Messages maintainer: Bram Moolenaar <Bram@vim.org>"),
- hl_attr(HLF_T));
-
-! for (p = first_msg_hist; p != NULL && !got_int; p = p->next)
- if (p->msg != NULL)
- msg_attr(p->msg, p->attr);
-
-*** ../vim-7.1.105/src/version.c Thu Sep 13 20:39:58 2007
---- src/version.c Thu Sep 13 21:57:40 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 106,
- /**/
-
---
-I'm sure that I asked CBuilder to do a "full" install. Looks like I got
-a "fool" install, instead. Charles E Campbell, Jr, PhD
-
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.107
-Problem: When doing a block selection and using "s" to change the text,
- while triggering auto-indenting, causes the wrong text to be
- repeated in other lines. (Adri Verhoef)
-Solution: Compute the change of indent and compensate for that.
-Files: src/ops.c
-
-
-*** ../vim-7.1.106/src/ops.c Thu Jun 28 22:14:28 2007
---- src/ops.c Thu Aug 30 11:41:10 2007
-***************
-*** 2477,2483 ****
-
- /*
- * Spaces and tabs in the indent may have changed to other spaces and
-! * tabs. Get the starting column again and correct the lenght.
- * Don't do this when "$" used, end-of-line will have changed.
- */
- block_prep(oap, &bd2, oap->start.lnum, TRUE);
---- 2477,2483 ----
-
- /*
- * Spaces and tabs in the indent may have changed to other spaces and
-! * tabs. Get the starting column again and correct the length.
- * Don't do this when "$" used, end-of-line will have changed.
- */
- block_prep(oap, &bd2, oap->start.lnum, TRUE);
-***************
-*** 2534,2540 ****
- #ifdef FEAT_VISUALEXTRA
- long offset;
- linenr_T linenr;
-! long ins_len, pre_textlen = 0;
- char_u *firstline;
- char_u *ins_text, *newp, *oldp;
- struct block_def bd;
---- 2534,2542 ----
- #ifdef FEAT_VISUALEXTRA
- long offset;
- linenr_T linenr;
-! long ins_len;
-! long pre_textlen = 0;
-! long pre_indent = 0;
- char_u *firstline;
- char_u *ins_text, *newp, *oldp;
- struct block_def bd;
-***************
-*** 2579,2585 ****
- || gchar_cursor() == NUL))
- coladvance_force(getviscol());
- # endif
-! pre_textlen = (long)STRLEN(ml_get(oap->start.lnum));
- bd.textcol = curwin->w_cursor.col;
- }
- #endif
---- 2581,2589 ----
- || gchar_cursor() == NUL))
- coladvance_force(getviscol());
- # endif
-! firstline = ml_get(oap->start.lnum);
-! pre_textlen = (long)STRLEN(firstline);
-! pre_indent = (long)(skipwhite(firstline) - firstline);
- bd.textcol = curwin->w_cursor.col;
- }
- #endif
-***************
-*** 2598,2610 ****
- */
- if (oap->block_mode && oap->start.lnum != oap->end.lnum)
- {
- firstline = ml_get(oap->start.lnum);
-! /*
-! * Subsequent calls to ml_get() flush the firstline data - take a
-! * copy of the required bit.
-! */
-! if ((ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
- {
- if ((ins_text = alloc_check((unsigned)(ins_len + 1))) != NULL)
- {
- vim_strncpy(ins_text, firstline + bd.textcol, (size_t)ins_len);
---- 2602,2623 ----
- */
- if (oap->block_mode && oap->start.lnum != oap->end.lnum)
- {
-+ /* Auto-indenting may have changed the indent. If the cursor was past
-+ * the indent, exclude that indent change from the inserted text. */
- firstline = ml_get(oap->start.lnum);
-! if (bd.textcol > pre_indent)
-! {
-! long new_indent = (long)(skipwhite(firstline) - firstline);
-!
-! pre_textlen += new_indent - pre_indent;
-! bd.textcol += new_indent - pre_indent;
-! }
-!
-! ins_len = (long)STRLEN(firstline) - pre_textlen;
-! if (ins_len > 0)
- {
-+ /* Subsequent calls to ml_get() flush the firstline data - take a
-+ * copy of the inserted text. */
- if ((ins_text = alloc_check((unsigned)(ins_len + 1))) != NULL)
- {
- vim_strncpy(ins_text, firstline + bd.textcol, (size_t)ins_len);
-*** ../vim-7.1.106/src/version.c Thu Sep 13 22:04:30 2007
---- src/version.c Thu Sep 13 22:38:28 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 107,
- /**/
-
---
-Windows
-M!uqoms
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.108
-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.1.108 (after 7.1.100)
-Problem: Win32: Compilation problems in Cscope code. (Jeff Lanzarotta)
-Solution: Use (long) instead of (intptr_t) when it's not defined.
-Files: src/if_cscope.c
-
-
-*** ../vim-7.1.107/src/if_cscope.c Thu Sep 6 17:38:06 2007
---- src/if_cscope.c Wed Sep 12 20:32:17 2007
-***************
-*** 726,731 ****
---- 726,740 ----
- HANDLE stdin_rd, stdout_rd;
- HANDLE stdout_wr, stdin_wr;
- BOOL created;
-+ # ifdef __BORLANDC__
-+ # define OPEN_OH_ARGTYPE long
-+ # else
-+ # if (_MSC_VER >= 1300)
-+ # define OPEN_OH_ARGTYPE intptr_t
-+ # else
-+ # define OPEN_OH_ARGTYPE long
-+ # endif
-+ # endif
- #endif
-
- #if defined(UNIX)
-***************
-*** 909,918 ****
- CloseHandle(pi.hThread);
-
- /* TODO - tidy up after failure to create files on pipe handles. */
-! if (((fd = _open_osfhandle((intptr_t)stdin_wr, _O_TEXT|_O_APPEND)) < 0)
- || ((csinfo[i].to_fp = _fdopen(fd, "w")) == NULL))
- PERROR(_("cs_create_connection: fdopen for to_fp failed"));
-! if (((fd = _open_osfhandle((intptr_t)stdout_rd, _O_TEXT|_O_RDONLY)) < 0)
- || ((csinfo[i].fr_fp = _fdopen(fd, "r")) == NULL))
- PERROR(_("cs_create_connection: fdopen for fr_fp failed"));
-
---- 918,929 ----
- CloseHandle(pi.hThread);
-
- /* TODO - tidy up after failure to create files on pipe handles. */
-! if (((fd = _open_osfhandle((OPEN_OH_ARGTYPE)stdin_wr,
-! _O_TEXT|_O_APPEND)) < 0)
- || ((csinfo[i].to_fp = _fdopen(fd, "w")) == NULL))
- PERROR(_("cs_create_connection: fdopen for to_fp failed"));
-! if (((fd = _open_osfhandle((OPEN_OH_ARGTYPE)stdout_rd,
-! _O_TEXT|_O_RDONLY)) < 0)
- || ((csinfo[i].fr_fp = _fdopen(fd, "r")) == NULL))
- PERROR(_("cs_create_connection: fdopen for fr_fp failed"));
-
-*** ../vim-7.1.107/src/version.c Thu Sep 13 22:40:47 2007
---- src/version.c Fri Sep 14 19:55:12 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 108,
- /**/
-
---
-Q: How many hardware engineers does it take to change a lightbulb?
-A: None. We'll fix it in software.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.109
-Problem: GTK: when there are many tab pages, clicking on the arrow left of
- the labels moves to the next tab page on the right. (Simeon Bird)
-Solution: Check the X coordinate of the click and pass -1 as value for the
- left arrow.
-Files: src/gui_gtk_x11.c, src/term.c
-
-
-*** ../vim-7.1.108/src/gui_gtk_x11.c Wed Sep 5 21:45:54 2007
---- src/gui_gtk_x11.c Fri Sep 14 20:59:55 2007
-***************
-*** 3223,3230 ****
- {
- if (clicked_page == 0)
- {
-! /* Click after all tabs moves to next tab page. */
-! if (send_tabline_event(0) && gtk_main_level() > 0)
- gtk_main_quit();
- }
- #ifndef HAVE_GTK2
---- 3223,3231 ----
- {
- if (clicked_page == 0)
- {
-! /* Click after all tabs moves to next tab page. When "x" is
-! * small guess it's the left button. */
-! if (send_tabline_event(x < 50 ? -1 : 0) && gtk_main_level() > 0)
- gtk_main_quit();
- }
- #ifndef HAVE_GTK2
-*** ../vim-7.1.108/src/term.c Thu May 10 20:48:32 2007
---- src/term.c Fri Sep 14 20:56:40 2007
-***************
-*** 4809,4814 ****
---- 4809,4816 ----
- if (num_bytes == -1)
- return -1;
- current_tab = (int)bytes[0];
-+ if (current_tab == 255) /* -1 in a byte gives 255 */
-+ current_tab = -1;
- slen += num_bytes;
- }
- else if (key_name[0] == (int)KS_TABMENU)
-*** ../vim-7.1.108/src/version.c Fri Sep 14 19:56:18 2007
---- src/version.c Sat Sep 15 14:05:25 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 109,
- /**/
-
---
-No letters of the alphabet were harmed in the creation of this message.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.110 (after 7.1.102)
-Problem: Win32: Still compilation problems with Perl.
-Solution: Change the #ifdefs. (Suresh Govindachar)
-Files: src/if_perl.xs
-
-
-*** ../vim-7.1.109/src/if_perl.xs Thu Sep 13 15:19:32 2007
---- src/if_perl.xs Fri Sep 14 21:23:38 2007
-***************
-*** 48,60 ****
- * The changes include addition of two symbols (Perl_sv_2iv_flags,
- * Perl_newXS_flags) not present in earlier releases.
- *
-! * Jan Dubois suggested the following guarding scheme:
- */
-! #if (ACTIVEPERL_VERSION >= 822)
-! # define PERL589_OR_LATER
-! #endif
-! #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 9)
-! # define PERL589_OR_LATER
- #endif
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 9)
- # define PERL589_OR_LATER
---- 48,62 ----
- * The changes include addition of two symbols (Perl_sv_2iv_flags,
- * Perl_newXS_flags) not present in earlier releases.
- *
-! * Jan Dubois suggested the following guarding scheme.
-! *
-! * Active State defined ACTIVEPERL_VERSION as a string in versions before
-! * 5.8.8; and so the comparison to 822 below needs to be guarded.
- */
-! #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 8)
-! # if (ACTIVEPERL_VERSION >= 822) || (PERL_SUBVERSION >= 9)
-! # define PERL589_OR_LATER
-! # endif
- #endif
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 9)
- # define PERL589_OR_LATER
-*** ../vim-7.1.109/src/version.c Sat Sep 15 14:06:41 2007
---- src/version.c Sat Sep 15 14:48:05 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 110,
- /**/
-
---
-"It's so simple to be wise. Just think of something stupid to say
-and then don't say it." -- Sam Levenson
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.111
-Problem: When using ":vimgrep" with the "j" flag folds from another buffer
- may be displayed. (A.Politz)
-Solution: When not jumping to another buffer update the folds.
-Files: src/quickfix.c
-
-
-*** ../vim-7.1.110/src/quickfix.c Thu Jun 28 21:23:52 2007
---- src/quickfix.c Fri Sep 14 22:16:23 2007
-***************
-*** 1612,1619 ****
- }
-
- /*
-! * If there is only one window and is the quickfix window, create a new
-! * one above the quickfix window.
- */
- if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win)
- {
---- 1612,1619 ----
- }
-
- /*
-! * If there is only one window and it is the quickfix window, create a
-! * new one above the quickfix window.
- */
- if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win)
- {
-***************
-*** 2981,2986 ****
---- 2981,2987 ----
- buf_T *buf;
- int duplicate_name = FALSE;
- int using_dummy;
-+ int redraw_for_dummy = FALSE;
- int found_match;
- buf_T *first_match_buf = NULL;
- time_t seconds = 0;
-***************
-*** 3097,3102 ****
---- 3098,3104 ----
- /* Remember that a buffer with this name already exists. */
- duplicate_name = (buf != NULL);
- using_dummy = TRUE;
-+ redraw_for_dummy = TRUE;
-
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
- /* Don't do Filetype autocommands to avoid loading syntax and
-***************
-*** 3243,3252 ****
---- 3245,3272 ----
- if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- {
- if ((flags & VGR_NOJUMP) == 0)
-+ {
-+ buf = curbuf;
- qf_jump(qi, 0, 0, eap->forceit);
-+ if (buf != curbuf)
-+ /* If we jumped to another buffer redrawing will already be
-+ * taken care of. */
-+ redraw_for_dummy = FALSE;
-+ }
- }
- else
- EMSG2(_(e_nomatch2), s);
-+
-+ /* If we loaded a dummy buffer into the current window, the autocommands
-+ * may have messed up things, need to redraw and recompute folds. */
-+ if (redraw_for_dummy)
-+ {
-+ #ifdef FEAT_FOLDING
-+ foldUpdateAll(curwin);
-+ #else
-+ redraw_later(NOT_VALID);
-+ #endif
-+ }
-
- theend:
- vim_free(regmatch.regprog);
-*** ../vim-7.1.110/src/version.c Sat Sep 15 14:48:57 2007
---- src/version.c Sun Sep 16 13:23:48 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 111,
- /**/
-
---
-Trees moving back and forth is what makes the wind blow.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.112
-Problem: Using input() with a wrong argument may crash Vim. (A.Politz)
-Solution: Init the input() return value to NULL.
-Files: src/eval.c
-
-
-*** ../vim-7.1.111/src/eval.c Thu Sep 13 20:39:58 2007
---- src/eval.c Sat Sep 15 19:04:51 2007
-***************
-*** 11565,11578 ****
- char_u *xp_arg = NULL;
-
- rettv->v_type = VAR_STRING;
-
- #ifdef NO_CONSOLE_INPUT
- /* While starting up, there is no place to enter text. */
- if (no_console_input())
-- {
-- rettv->vval.v_string = NULL;
- return;
-- }
- #endif
-
- cmd_silent = FALSE; /* Want to see the prompt. */
---- 11566,11577 ----
- char_u *xp_arg = NULL;
-
- rettv->v_type = VAR_STRING;
-+ rettv->vval.v_string = NULL;
-
- #ifdef NO_CONSOLE_INPUT
- /* While starting up, there is no place to enter text. */
- if (no_console_input())
- return;
- #endif
-
- cmd_silent = FALSE; /* Want to see the prompt. */
-*** ../vim-7.1.111/src/version.c Sun Sep 16 13:26:56 2007
---- src/version.c Sun Sep 16 14:19:04 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 112,
- /**/
-
---
-The early bird gets the worm. If you want something else for
-breakfast, get up later.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.113
-Problem: Using map() to go over an empty list causes memory to be freed
- twice. (A.Politz)
-Solution: Don't clear the typeval in restore_vimvar().
-Files: src/eval.c
-
-
-*** ../vim-7.1.112/src/eval.c Sun Sep 16 14:20:18 2007
---- src/eval.c Sun Sep 16 19:24:49 2007
-***************
-*** 1318,1324 ****
- {
- hashitem_T *hi;
-
-- clear_tv(&vimvars[idx].vv_tv);
- vimvars[idx].vv_tv = *save_tv;
- if (vimvars[idx].vv_type == VAR_UNKNOWN)
- {
---- 1318,1323 ----
-***************
-*** 1362,1368 ****
-
- if (p_verbose == 0)
- --emsg_off;
-- vimvars[VV_VAL].vv_str = NULL;
- restore_vimvar(VV_VAL, &save_val);
-
- return list;
---- 1361,1366 ----
-***************
-*** 9387,9401 ****
- {
- typval_T rettv;
- char_u *s;
-
- copy_tv(tv, &vimvars[VV_VAL].vv_tv);
- s = expr;
- if (eval1(&s, &rettv, TRUE) == FAIL)
-! return FAIL;
- if (*s != NUL) /* check for trailing chars after expr */
- {
- EMSG2(_(e_invexpr2), s);
-! return FAIL;
- }
- if (map)
- {
---- 9386,9401 ----
- {
- typval_T rettv;
- char_u *s;
-+ int retval = FAIL;
-
- copy_tv(tv, &vimvars[VV_VAL].vv_tv);
- s = expr;
- if (eval1(&s, &rettv, TRUE) == FAIL)
-! goto theend;
- if (*s != NUL) /* check for trailing chars after expr */
- {
- EMSG2(_(e_invexpr2), s);
-! goto theend;
- }
- if (map)
- {
-***************
-*** 9414,9423 ****
- /* On type error, nothing has been removed; return FAIL to stop the
- * loop. The error message was given by get_tv_number_chk(). */
- if (error)
-! return FAIL;
- }
- clear_tv(&vimvars[VV_VAL].vv_tv);
-! return OK;
- }
-
- /*
---- 9414,9425 ----
- /* On type error, nothing has been removed; return FAIL to stop the
- * loop. The error message was given by get_tv_number_chk(). */
- if (error)
-! goto theend;
- }
-+ retval = OK;
-+ theend:
- clear_tv(&vimvars[VV_VAL].vv_tv);
-! return retval;
- }
-
- /*
-*** ../vim-7.1.112/src/version.c Sun Sep 16 14:20:18 2007
---- src/version.c Mon Sep 17 21:33:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 113,
- /**/
-
---
-Mental Floss prevents moral decay!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.114
-Problem: Memory leak in getmatches().
-Solution: Don't increment the refcount twice.
-Files: src/eval.c
-
-
-*** ../vim-7.1.113/src/eval.c Mon Sep 17 21:37:09 2007
---- src/eval.c Sun Sep 16 19:24:49 2007
-***************
-*** 10351,10357 ****
- dict = dict_alloc();
- if (dict == NULL)
- return;
-- ++dict->dv_refcount;
- dict_add_nr_str(dict, "group", 0L, syn_id2name(cur->hlg_id));
- dict_add_nr_str(dict, "pattern", 0L, cur->pattern);
- dict_add_nr_str(dict, "priority", (long)cur->priority, NULL);
---- 10355,10360 ----
-*** ../vim-7.1.113/src/version.c Mon Sep 17 21:37:09 2007
---- src/version.c Mon Sep 17 21:54:08 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 114,
- /**/
-
---
-Be nice to your kids... they'll be the ones choosing your nursing home.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.115 (after 7.1.105)
-Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
-Solution: Init variable to NULL.
-Files: src/eval.c
-
-
-*** ../vim-7.1.114/src/eval.c Mon Sep 17 21:55:02 2007
---- src/eval.c Sun Sep 16 19:24:49 2007
-***************
-*** 6704,6710 ****
- dict_T *d = NULL;
- typval_T tvkey;
- typval_T tv;
-! char_u *key;
- dictitem_T *item;
- char_u *start = skipwhite(*arg + 1);
- char_u buf[NUMBUFLEN];
---- 6705,6711 ----
- dict_T *d = NULL;
- typval_T tvkey;
- typval_T tv;
-! char_u *key = NULL;
- dictitem_T *item;
- char_u *start = skipwhite(*arg + 1);
- char_u buf[NUMBUFLEN];
-*** ../vim-7.1.114/src/version.c Mon Sep 17 21:55:02 2007
---- src/version.c Mon Sep 17 22:18:42 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 115,
- /**/
-
---
-Proofread carefully to see if you any words out.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.116
-Problem: Cannot display Unicode characters above 0x10000.
-Solution: Remove the replacement with a question mark when UNICODE16 is not
- defined. (partly by Nicolas Weber)
-Files: src/screen.c
-
-
-*** ../vim-7.1.115/src/screen.c Thu Aug 30 13:51:52 2007
---- src/screen.c Mon Sep 10 22:29:42 2007
-***************
-*** 2305,2313 ****
---- 2305,2315 ----
- prev_c = u8c;
- #endif
- /* Non-BMP character: display as ? or fullwidth ?. */
-+ #ifdef UNICODE16
- if (u8c >= 0x10000)
- ScreenLinesUC[idx] = (cells == 2) ? 0xff1f : (int)'?';
- else
-+ #endif
- ScreenLinesUC[idx] = u8c;
- for (i = 0; i < Screen_mco; ++i)
- {
-***************
-*** 3678,3690 ****
- if ((mb_l == 1 && c >= 0x80)
- || (mb_l >= 1 && mb_c == 0)
- || (mb_l > 1 && (!vim_isprintc(mb_c)
-! || mb_c >= 0x10000)))
- {
- /*
- * Illegal UTF-8 byte: display as <xx>.
- * Non-BMP character : display as ? or fullwidth ?.
- */
- if (mb_c < 0x10000)
- {
- transchar_hex(extra, mb_c);
- # ifdef FEAT_RIGHTLEFT
---- 3680,3697 ----
- if ((mb_l == 1 && c >= 0x80)
- || (mb_l >= 1 && mb_c == 0)
- || (mb_l > 1 && (!vim_isprintc(mb_c)
-! # ifdef UNICODE16
-! || mb_c >= 0x10000
-! # endif
-! )))
- {
- /*
- * Illegal UTF-8 byte: display as <xx>.
- * Non-BMP character : display as ? or fullwidth ?.
- */
-+ # ifdef UNICODE16
- if (mb_c < 0x10000)
-+ # endif
- {
- transchar_hex(extra, mb_c);
- # ifdef FEAT_RIGHTLEFT
-***************
-*** 3692,3702 ****
---- 3699,3711 ----
- rl_mirror(extra);
- # endif
- }
-+ # ifdef UNICODE16
- else if (utf_char2cells(mb_c) != 2)
- STRCPY(extra, "?");
- else
- /* 0xff1f in UTF-8: full-width '?' */
- STRCPY(extra, "\357\274\237");
-+ # endif
-
- p_extra = extra;
- c = *p_extra;
-***************
-*** 6245,6250 ****
---- 6254,6260 ----
- else
- u8c = utfc_ptr2char(ptr, u8cc);
- mbyte_cells = utf_char2cells(u8c);
-+ # ifdef UNICODE16
- /* Non-BMP character: display as ? or fullwidth ?. */
- if (u8c >= 0x10000)
- {
-***************
-*** 6252,6257 ****
---- 6262,6268 ----
- if (attr == 0)
- attr = hl_attr(HLF_8);
- }
-+ # endif
- # ifdef FEAT_ARABIC
- if (p_arshape && !p_tbidi && ARABIC_CHAR(u8c))
- {
-*** ../vim-7.1.116/src/version.c Mon Sep 17 22:19:43 2007
---- src/version.c Mon Sep 17 22:37:31 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 116,
- /**/
-
---
-There can't be a crisis today, my schedule is already full.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.117
-Problem: Can't check wether Vim was compiled with Gnome. (Tony Mechelynck)
-Solution: Add gui_gnome to the has() list.
-Files: src/eval.c
-
-
-*** ../vim-7.1.116/src/eval.c Mon Sep 17 22:19:43 2007
---- src/eval.c Sun Sep 16 19:24:49 2007
-***************
-*** 10879,10884 ****
---- 10883,10891 ----
- "gui_gtk2",
- # endif
- #endif
-+ #ifdef FEAT_GUI_GNOME
-+ "gui_gnome",
-+ #endif
- #ifdef FEAT_GUI_MAC
- "gui_mac",
- #endif
-*** ../vim-7.1.116/src/version.c Mon Sep 17 22:38:49 2007
---- src/version.c Tue Sep 25 12:48:59 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 117,
- /**/
-
---
-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.1.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.1.118 (after 7.1.107)
-Problem: Compiler warning for Visual C compiler.
-Solution: Add typecast. (Mike Williams)
-Files: src/ops.c
-
-
-*** ../vim-7.1.117/src/ops.c Thu Sep 13 22:40:47 2007
---- src/ops.c Mon Sep 24 18:30:09 2007
-***************
-*** 2605,2611 ****
- /* Auto-indenting may have changed the indent. If the cursor was past
- * the indent, exclude that indent change from the inserted text. */
- firstline = ml_get(oap->start.lnum);
-! if (bd.textcol > pre_indent)
- {
- long new_indent = (long)(skipwhite(firstline) - firstline);
-
---- 2605,2611 ----
- /* Auto-indenting may have changed the indent. If the cursor was past
- * the indent, exclude that indent change from the inserted text. */
- firstline = ml_get(oap->start.lnum);
-! if (bd.textcol > (colnr_T)pre_indent)
- {
- long new_indent = (long)(skipwhite(firstline) - firstline);
-
-*** ../vim-7.1.117/src/version.c Tue Sep 25 12:50:00 2007
---- src/version.c Tue Sep 25 14:18:37 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 118,
- /**/
-
---
-BRIDGEKEEPER: What is your favorite editor?
-GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm!
- "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.119
-Problem: Crash when 'cmdheight' set to very large value. (A.Politz)
-Solution: Limit 'cmdheight' to 'lines' minus one. Store right value of
- 'cmdheight' when running out of room.
-Files: src/option.c, src/window.c
-
-
-*** ../vim-7.1.118/src/option.c Thu Sep 6 16:33:47 2007
---- src/option.c Tue Sep 25 12:17:35 2007
-***************
-*** 7824,7829 ****
---- 7824,7831 ----
- errmsg = e_positive;
- p_ch = 1;
- }
-+ if (p_ch > Rows - min_rows() + 1)
-+ p_ch = Rows - min_rows() + 1;
-
- /* Only compute the new window layout when startup has been
- * completed. Otherwise the frame sizes may be wrong. */
-*** ../vim-7.1.118/src/window.c Thu Sep 13 18:25:08 2007
---- src/window.c Tue Sep 25 12:13:56 2007
-***************
-*** 5523,5528 ****
---- 5523,5529 ----
- {
- EMSG(_(e_noroom));
- p_ch = old_p_ch;
-+ curtab->tp_ch_used = p_ch;
- cmdline_row = Rows - p_ch;
- break;
- }
-*** ../vim-7.1.118/src/version.c Tue Sep 25 14:19:35 2007
---- src/version.c Tue Sep 25 14:48:14 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 119,
- /**/
-
---
-Q: Why does /dev/null accept only integers?
-A: You can't sink a float.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.120
-Problem: Can't properly check memory leaks while running tests.
-Solution: Add an argument to garbagecollect(). Delete functions and
- variables in the test scripts.
-Files: runtime/doc/eval.txt, src/eval.c, src/globals.h, src/main.c,
- src/testdir/Makefile, src/testdir/test14.in,
- src/testdir/test26.in, src/testdir/test34.in,
- src/testdir/test45.in, src/testdir/test47.in,
- src/testdir/test49.in, src/testdir/test55.in,
- src/testdir/test56.in, src/testdir/test58.in,
- src/testdir/test59.in, src/testdir/test60.in,
- src/testdir/test60.vim, src/testdir/test62.in,
- src/testdir/test63.in, src/testdir/test64.in
-
-
-*** ../vim-7.1.119/runtime/doc/eval.txt Thu Jul 26 22:55:11 2007
---- runtime/doc/eval.txt Tue Sep 25 17:40:30 2007
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2007 Jul 25
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2007 Sep 25
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1603,1609 ****
- foldtextresult( {lnum}) String text for closed fold at {lnum}
- foreground( ) Number bring the Vim window to the foreground
- function( {name}) Funcref reference to function {name}
-! garbagecollect() none free memory, breaking cyclic references
- get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
- get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
- getbufline( {expr}, {lnum} [, {end}])
---- 1603,1609 ----
- foldtextresult( {lnum}) String text for closed fold at {lnum}
- foreground( ) Number bring the Vim window to the foreground
- function( {name}) Funcref reference to function {name}
-! garbagecollect( [at_exit]) none free memory, breaking cyclic references
- get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
- get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
- getbufline( {expr}, {lnum} [, {end}])
-***************
-*** 2673,2679 ****
- {name} can be a user defined function or an internal function.
-
-
-! garbagecollect() *garbagecollect()*
- Cleanup unused |Lists| and |Dictionaries| that have circular
- references. There is hardly ever a need to invoke this
- function, as it is automatically done when Vim runs out of
---- 2673,2679 ----
- {name} can be a user defined function or an internal function.
-
-
-! garbagecollect([at_exit]) *garbagecollect()*
- Cleanup unused |Lists| and |Dictionaries| that have circular
- references. There is hardly ever a need to invoke this
- function, as it is automatically done when Vim runs out of
-***************
-*** 2683,2688 ****
---- 2683,2691 ----
- This is useful if you have deleted a very big |List| and/or
- |Dictionary| with circular references in a script that runs
- for a long time.
-+ When the optional "at_exit" argument is one, garbage
-+ collection will also be done when exiting Vim, if it wasn't
-+ done before. This is useful when checking for memory leaks.
-
- get({list}, {idx} [, {default}]) *get()*
- Get item {idx} from |List| {list}. When this item is not
-*** ../vim-7.1.119/src/eval.c Tue Sep 25 12:50:00 2007
---- src/eval.c Sun Sep 16 19:24:49 2007
-***************
-*** 6128,6133 ****
---- 6128,6134 ----
- /* Only do this once. */
- want_garbage_collect = FALSE;
- may_garbage_collect = FALSE;
-+ garbage_collect_at_exit = FALSE;
-
- /*
- * 1. Go through all accessible variables and mark all lists and dicts
-***************
-*** 7110,7116 ****
- {"foldtextresult", 1, 1, f_foldtextresult},
- {"foreground", 0, 0, f_foreground},
- {"function", 1, 1, f_function},
-! {"garbagecollect", 0, 0, f_garbagecollect},
- {"get", 2, 3, f_get},
- {"getbufline", 2, 3, f_getbufline},
- {"getbufvar", 2, 2, f_getbufvar},
---- 7111,7117 ----
- {"foldtextresult", 1, 1, f_foldtextresult},
- {"foreground", 0, 0, f_foreground},
- {"function", 1, 1, f_function},
-! {"garbagecollect", 0, 1, f_garbagecollect},
- {"get", 2, 3, f_get},
- {"getbufline", 2, 3, f_getbufline},
- {"getbufvar", 2, 2, f_getbufvar},
-***************
-*** 9719,9724 ****
---- 9720,9728 ----
- /* This is postponed until we are back at the toplevel, because we may be
- * using Lists and Dicts internally. E.g.: ":echo [garbagecollect()]". */
- want_garbage_collect = TRUE;
-+
-+ if (argvars[0].v_type != VAR_UNKNOWN && get_tv_number(&argvars[0]) == 1)
-+ garbage_collect_at_exit = TRUE;
- }
-
- /*
-*** ../vim-7.1.119/src/globals.h Thu Aug 30 13:51:52 2007
---- src/globals.h Sun Sep 16 18:42:41 2007
-***************
-*** 301,313 ****
- #endif
-
- #ifdef FEAT_EVAL
-! /* Garbage collection can only take place when we are sure there are no Lists
- * or Dictionaries being used internally. This is flagged with
- * "may_garbage_collect" when we are at the toplevel.
- * "want_garbage_collect" is set by the garbagecollect() function, which means
-! * we do garbage collection before waiting for a char at the toplevel. */
- EXTERN int may_garbage_collect INIT(= FALSE);
- EXTERN int want_garbage_collect INIT(= FALSE);
-
- /* ID of script being sourced or was sourced to define the current function. */
- EXTERN scid_T current_SID INIT(= 0);
---- 301,317 ----
- #endif
-
- #ifdef FEAT_EVAL
-! /*
-! * Garbage collection can only take place when we are sure there are no Lists
- * or Dictionaries being used internally. This is flagged with
- * "may_garbage_collect" when we are at the toplevel.
- * "want_garbage_collect" is set by the garbagecollect() function, which means
-! * we do garbage collection before waiting for a char at the toplevel.
-! * "garbage_collect_at_exit" indicates garbagecollect(1) was called.
-! */
- EXTERN int may_garbage_collect INIT(= FALSE);
- EXTERN int want_garbage_collect INIT(= FALSE);
-+ EXTERN int garbage_collect_at_exit INIT(= FALSE);
-
- /* ID of script being sourced or was sourced to define the current function. */
- EXTERN scid_T current_SID INIT(= 0);
-*** ../vim-7.1.119/src/main.c Thu Sep 6 17:38:06 2007
---- src/main.c Sun Sep 16 18:44:54 2007
-***************
-*** 1334,1339 ****
---- 1334,1343 ----
- #ifdef FEAT_CSCOPE
- cs_end();
- #endif
-+ #ifdef FEAT_EVAL
-+ if (garbage_collect_at_exit)
-+ garbage_collect();
-+ #endif
-
- mch_exit(exitval);
- }
-*** ../vim-7.1.119/src/testdir/Makefile Tue Aug 14 17:28:14 2007
---- src/testdir/Makefile Mon Sep 17 20:04:13 2007
-***************
-*** 6,12 ****
-
- # Uncomment this line for using valgrind.
- # The output goes into a file "valgrind.$PID" (sorry, no test number).
-! # VALGRIND = valgrind --tool=memcheck --num-callers=15 --logfile=valgrind
-
- SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out test10.out test11.out \
---- 6,12 ----
-
- # Uncomment this line for using valgrind.
- # The output goes into a file "valgrind.$PID" (sorry, no test number).
-! # VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --logfile=valgrind
-
- SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out test10.out test11.out \
-***************
-*** 39,45 ****
- $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
-
- clean:
-! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim test.ok X* viminfo
-
- test1.out: test1.in
- -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo
---- 39,45 ----
- $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
-
- clean:
-! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim test.ok X* valgrind.pid* viminfo
-
- test1.out: test1.in
- -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo
-***************
-*** 65,70 ****
---- 65,74 ----
- else echo $* NO OUTPUT >>test.log; \
- fi"
- -rm -rf X* test.ok viminfo
-+
-+ test49.out: test49.vim
-+
-+ test60.out: test60.vim
-
- nolog:
- -echo Test results: >test.log
-*** ../vim-7.1.119/src/testdir/test14.in Sun Jun 13 20:24:08 2004
---- src/testdir/test14.in Sun Sep 16 15:57:54 2007
-***************
-*** 18,23 ****
---- 18,24 ----
- : let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
- :endif
- :exe "normal " . tt
-+ :unlet tt
- :.w >>test.out
- :set vb
- /^Piece
-*** ../vim-7.1.119/src/testdir/test26.in Sun Jun 13 17:05:48 2004
---- src/testdir/test26.in Sun Sep 16 16:54:19 2007
-***************
-*** 37,42 ****
---- 37,43 ----
- : endif
- : endif
- :endwhile
-+ :unlet i j
- :'t,$w! test.out
- :qa!
- ENDTEST
-*** ../vim-7.1.119/src/testdir/test34.in Sun Apr 30 20:46:14 2006
---- src/testdir/test34.in Sun Sep 16 21:25:47 2007
-***************
-*** 52,58 ****
- ---*---
- (one
- (two
-! [(one again\e:$-5,$wq! test.out
- ENDTEST
-
- here
---- 52,66 ----
- ---*---
- (one
- (two
-! [(one again\e:$-5,$w! test.out
-! :delfunc Table
-! :delfunc Compute
-! :delfunc Expr1
-! :delfunc Expr2
-! :delfunc ListItem
-! :delfunc ListReset
-! :unlet retval counter
-! :q!
- ENDTEST
-
- here
-*** ../vim-7.1.119/src/testdir/test45.in Sun Jun 13 19:57:02 2004
---- src/testdir/test45.in Sun Sep 16 18:27:20 2007
-***************
-*** 55,60 ****
---- 55,61 ----
- /kk$
- :call append("$", foldlevel("."))
- :/^last/+1,$w! test.out
-+ :delfun Flvl
- :qa!
- ENDTEST
-
-*** ../vim-7.1.119/src/testdir/test47.in Sun Jun 13 18:40:29 2004
---- src/testdir/test47.in Sun Sep 16 18:32:03 2007
-***************
-*** 34,39 ****
---- 34,40 ----
- :call append("$", two)
- :call append("$", three)
- :$-2,$w! test.out
-+ :unlet one two three
- :qa!
- ENDTEST
-
-*** ../vim-7.1.119/src/testdir/test49.in Sun Jun 13 18:10:00 2004
---- src/testdir/test49.in Sun Sep 16 23:30:35 2007
-***************
-*** 1,13 ****
- This is a test of the script language.
-
- If after adding a new test, the test output doesn't appear properly in
-! test49.failed, try to add one ore more "G"s at the line before ENDTEST.
-
- STARTTEST
- :so small.vim
- :se nocp nomore viminfo+=nviminfo
- :so test49.vim
-! GGGGGGGGGG"rp:.-,$wq! test.out
- ENDTEST
-
- Results of test49.vim:
---- 1,29 ----
- This is a test of the script language.
-
- If after adding a new test, the test output doesn't appear properly in
-! test49.failed, try to add one ore more "G"s at the line ending in "test.out"
-
- STARTTEST
- :so small.vim
- :se nocp nomore viminfo+=nviminfo
- :so test49.vim
-! GGGGGGGGGGGGGG"rp:.-,$w! test.out
-! :"
-! :" make valgrind happy
-! :redir => funclist
-! :silent func
-! :redir END
-! :for line in split(funclist, "\n")
-! : let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')
-! : if name != ''
-! : exe "delfunc " . name
-! : endif
-! :endfor
-! :for v in keys(g:)
-! : silent! exe "unlet " . v
-! :endfor
-! :unlet v
-! :qa!
- ENDTEST
-
- Results of test49.vim:
-*** ../vim-7.1.119/src/testdir/test55.in Sat May 5 20:03:56 2007
---- src/testdir/test55.in Mon Sep 17 19:53:48 2007
-***************
-*** 345,350 ****
---- 345,354 ----
- :endfun
- :call Test(1, 2, [3, 4], {5: 6}) " This may take a while
- :"
-+ :delfunc Test
-+ :unlet dict
-+ :call garbagecollect(1)
-+ :"
- :/^start:/,$wq! test.out
- ENDTEST
-
-*** ../vim-7.1.119/src/testdir/test56.in Tue Sep 5 13:36:02 2006
---- src/testdir/test56.in Sun Sep 16 17:54:20 2007
-***************
-*** 17,21 ****
- fun s:DoNothing()
- call append(line('$'), "nothing line")
- endfun
-! nnoremap <buffer> _x :call <SID>DoNothing()<bar>call <SID>DoLast()<cr>
- end:
---- 17,21 ----
- fun s:DoNothing()
- call append(line('$'), "nothing line")
- endfun
-! nnoremap <buffer> _x :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
- end:
-*** ../vim-7.1.119/src/testdir/test58.in Wed Apr 5 22:38:56 2006
---- src/testdir/test58.in Sun Sep 16 18:17:03 2007
-***************
-*** 86,91 ****
---- 86,92 ----
- :$put =str
- `m]s:let [str, a] = spellbadword()
- :$put =str
-+ :unlet str a
- :"
- :" Postponed prefixes
- :call TestOne('2', '1')
-***************
-*** 99,104 ****
---- 100,109 ----
- :"
- :" NOSLITSUGS
- :call TestOne('8', '8')
-+ :"
-+ :" clean up for valgrind
-+ :delfunc TestOne
-+ :set spl= enc=latin1
- :"
- gg:/^test output:/,$wq! test.out
- ENDTEST
-*** ../vim-7.1.119/src/testdir/test59.in Wed Apr 5 22:27:11 2006
---- src/testdir/test59.in Sun Sep 16 18:17:23 2007
-***************
-*** 90,95 ****
---- 90,96 ----
- :$put =str
- `m]s:let [str, a] = spellbadword()
- :$put =str
-+ :unlet str a
- :"
- :" Postponed prefixes
- :call TestOne('2', '1')
-***************
-*** 100,105 ****
---- 101,110 ----
- :call TestOne('5', '5')
- :call TestOne('6', '6')
- :call TestOne('7', '7')
-+ :"
-+ :" clean up for valgrind
-+ :delfunc TestOne
-+ :set spl= enc=latin1
- :"
- gg:/^test output:/,$wq! test.out
- ENDTEST
-*** ../vim-7.1.119/src/testdir/test60.in Fri May 5 23:11:11 2006
---- src/testdir/test60.in Mon Sep 17 19:58:43 2007
-***************
-*** 569,574 ****
---- 569,577 ----
- redir END
- endfunction
- :call TestExists()
-+ :delfunc TestExists
-+ :delfunc RunTest
-+ :delfunc TestFuncArg
- :edit! test.out
- :set ff=unix
- :w
-*** ../vim-7.1.119/src/testdir/test60.vim Fri Jan 13 00:14:55 2006
---- src/testdir/test60.vim Mon Sep 17 19:56:02 2007
-***************
-*** 94,97 ****
---- 94,98 ----
- else
- echo "FAILED"
- endif
-+ unlet str
-
-*** ../vim-7.1.119/src/testdir/test62.in Sun Apr 30 20:28:14 2006
---- src/testdir/test62.in Sun Sep 16 17:24:04 2007
-***************
-*** 7,12 ****
---- 7,13 ----
- :let nr = tabpagenr()
- :q
- :call append(line('$'), 'tab page ' . nr)
-+ :unlet nr
- :"
- :" Open three tab pages and use ":tabdo"
- :0tabnew
-***************
-*** 23,28 ****
---- 24,30 ----
- :q!
- :call append(line('$'), line1)
- :call append(line('$'), line2)
-+ :unlet line1 line2
- :"
- :"
- :/^Results/,$w! test.out
-*** ../vim-7.1.119/src/testdir/test63.in Thu Jul 26 22:55:11 2007
---- src/testdir/test63.in Sun Sep 16 17:11:07 2007
-***************
-*** 60,66 ****
- :else
- : let @r .= "FAILED\n"
- :endif
-! :" --- Check that "matchdelete()" returns 0 if succesfull and otherwise -1.
- :let @r .= "*** Test 6: "
- :let m = matchadd("MyGroup1", "TODO")
- :let r1 = matchdelete(m)
---- 60,66 ----
- :else
- : let @r .= "FAILED\n"
- :endif
-! :" --- Check that "matchdelete()" returns 0 if successful and otherwise -1.
- :let @r .= "*** Test 6: "
- :let m = matchadd("MyGroup1", "TODO")
- :let r1 = matchdelete(m)
-***************
-*** 117,123 ****
- :" --- Check that "setmatches()" will not add two matches with the same ID. The
- :" --- expected behaviour (for now) is to add the first match but not the
- :" --- second and to return 0 (even though it is a matter of debate whether
-! :" --- this can be considered succesfull behaviour).
- :let @r .= "*** Test 9: "
- :let r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}])
- :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}] && r1 == 0
---- 117,123 ----
- :" --- Check that "setmatches()" will not add two matches with the same ID. The
- :" --- expected behaviour (for now) is to add the first match but not the
- :" --- second and to return 0 (even though it is a matter of debate whether
-! :" --- this can be considered successful behaviour).
- :let @r .= "*** Test 9: "
- :let r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}])
- :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}] && r1 == 0
-***************
-*** 127,133 ****
- :endif
- :call clearmatches()
- :unlet r1
-! :" --- Check that "setmatches()" returns 0 if succesfull and otherwise -1.
- :" --- (A range of valid and invalid input values are tried out to generate the
- :" --- return values.)
- :let @r .= "*** Test 10: "
---- 127,133 ----
- :endif
- :call clearmatches()
- :unlet r1
-! :" --- Check that "setmatches()" returns 0 if successful and otherwise -1.
- :" --- (A range of valid and invalid input values are tried out to generate the
- :" --- return values.)
- :let @r .= "*** Test 10: "
-*** ../vim-7.1.119/src/testdir/test64.in Tue Aug 14 17:28:14 2007
---- src/testdir/test64.in Sun Sep 16 17:43:03 2007
-***************
-*** 44,51 ****
---- 44,53 ----
- : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'
- : endif
- : endfor
-+ : unlet i
- : endif
- :endfor
-+ :unlet t tl e l
- :/^Results/,$wq! test.out
- ENDTEST
-
-*** ../vim-7.1.119/src/version.c Tue Sep 25 14:50:19 2007
---- src/version.c Tue Sep 25 17:36:22 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 120,
- /**/
-
---
-BEDEVERE: How do you know so much about swallows?
-ARTHUR: Well you have to know these things when you're a king, you know.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.121
-Problem: Using ":cd %:h" when editing a file in the current directory
- results in an error message for using an empty string.
-Solution: When "%:h" results in an empty string use ".".
-Files: src/eval.c
-
-
-*** ../vim-7.1.120/src/eval.c Tue Sep 25 17:54:41 2007
---- src/eval.c Sun Sep 16 19:24:49 2007
-***************
-*** 21308,21321 ****
- *usedlen += 2;
- s = get_past_head(*fnamep);
- while (tail > s && after_pathsep(s, tail))
-! --tail;
- *fnamelen = (int)(tail - *fnamep);
- #ifdef VMS
- if (*fnamelen > 0)
- *fnamelen += 1; /* the path separator is part of the path */
- #endif
-! while (tail > s && !after_pathsep(s, tail))
-! mb_ptr_back(*fnamep, tail);
- }
-
- /* ":8" - shortname */
---- 21308,21334 ----
- *usedlen += 2;
- s = get_past_head(*fnamep);
- while (tail > s && after_pathsep(s, tail))
-! mb_ptr_back(*fnamep, tail);
- *fnamelen = (int)(tail - *fnamep);
- #ifdef VMS
- if (*fnamelen > 0)
- *fnamelen += 1; /* the path separator is part of the path */
- #endif
-! if (*fnamelen == 0)
-! {
-! /* Result is empty. Turn it into "." to make ":cd %:h" work. */
-! p = vim_strsave((char_u *)".");
-! if (p == NULL)
-! return -1;
-! vim_free(*bufp);
-! *bufp = *fnamep = tail = p;
-! *fnamelen = 1;
-! }
-! else
-! {
-! while (tail > s && !after_pathsep(s, tail))
-! mb_ptr_back(*fnamep, tail);
-! }
- }
-
- /* ":8" - shortname */
-*** ../vim-7.1.120/src/version.c Tue Sep 25 17:54:41 2007
---- src/version.c Tue Sep 25 20:38:08 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 121,
- /**/
-
---
-It is illegal for anyone to try and stop a child from playfully jumping over
-puddles of water.
- [real standing law in California, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.122
-Problem: Mac: building Vim.app fails. Using wrong architecture.
-Solution: Use line continuation for the gui_bundle dependency. Detect the
- system architecture with "uname -a".
-Files: src/main.aap
-
-
-*** ../vim-7.1.121/src/main.aap Thu May 10 18:48:19 2007
---- src/main.aap Tue Sep 25 21:26:03 2007
-***************
-*** 56,64 ****
- config {virtual} auto/config.h auto/config.aap :
- auto/configure.aap configure.aap
- config.arg config.h.in config.aap.in
- :sys CONFIG_STATUS=auto/config.status
- ./configure.aap `file2string("config.arg")`
-! --with-mac-arch=ppc
- --cache-file=auto/config.cache
-
- # Configure arguments: create an empty "config.arg" file when its missing
---- 56,71 ----
- config {virtual} auto/config.h auto/config.aap :
- auto/configure.aap configure.aap
- config.arg config.h.in config.aap.in
-+ # Use "uname -a" to detect the architecture of the system.
-+ @ok, uname = redir_system('uname -a', 0)
-+ @if string.find(uname, "i386") >= 0:
-+ @ arch = "i386"
-+ @else:
-+ @ arch = "ppc"
-+ :print Building for $arch system
- :sys CONFIG_STATUS=auto/config.status
- ./configure.aap `file2string("config.arg")`
-! --with-mac-arch=$arch
- --cache-file=auto/config.cache
-
- # Configure arguments: create an empty "config.arg" file when its missing
-***************
-*** 1167,1173 ****
- :symlink `os.getcwd()`/../runtime $RESDIR/vim/runtime
- # TODO: Create the vimtutor application.
-
-! gui_bundle {virtual}: $(RESDIR) bundle-dir bundle-executable bundle-info
- bundle-resource bundle-language
-
- bundle-dir {virtual}: $(APPDIR)/Contents $(VIMTARGET)
---- 1174,1180 ----
- :symlink `os.getcwd()`/../runtime $RESDIR/vim/runtime
- # TODO: Create the vimtutor application.
-
-! gui_bundle {virtual}: $(RESDIR) bundle-dir bundle-executable bundle-info \
- bundle-resource bundle-language
-
- bundle-dir {virtual}: $(APPDIR)/Contents $(VIMTARGET)
-***************
-*** 1187,1193 ****
- :sys m4 $(M4FLAGSX) infplist.xml > $(APPDIR)/Contents/Info.plist
-
- bundle-resource {virtual}: bundle-dir bundle-rsrc
-! :copy {force} $(RSRC_DIR)/*.icns $(RESDIR)
-
- ### Classic resources
- # Resource fork (in the form of a .rsrc file) for Classic Vim (Mac OS 9)
---- 1194,1200 ----
- :sys m4 $(M4FLAGSX) infplist.xml > $(APPDIR)/Contents/Info.plist
-
- bundle-resource {virtual}: bundle-dir bundle-rsrc
-! :copy {force} $(RSRC_DIR)/*.icns $(RESDIR)
-
- ### Classic resources
- # Resource fork (in the form of a .rsrc file) for Classic Vim (Mac OS 9)
-*** ../vim-7.1.121/src/version.c Tue Sep 25 20:39:14 2007
---- src/version.c Tue Sep 25 22:12:16 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 122,
- /**/
-
---
-Men may not be seen publicly in any kind of strapless gown.
- [real standing law in Florida, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.123
-Problem: Win32: ":edit foo ~ foo" expands "~".
-Solution: Change the call to expand_env().
-Files: src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c
-
-
-*** ../vim-7.1.122/src/ex_docmd.c Sun Aug 19 22:42:27 2007
---- src/ex_docmd.c Wed Sep 26 20:29:36 2007
-***************
-*** 4403,4409 ****
- || vim_strchr(eap->arg, '~') != NULL)
- {
- expand_env_esc(eap->arg, NameBuff, MAXPATHL,
-! TRUE, NULL);
- has_wildcards = mch_has_wildcard(NameBuff);
- p = NameBuff;
- }
---- 4402,4408 ----
- || vim_strchr(eap->arg, '~') != NULL)
- {
- expand_env_esc(eap->arg, NameBuff, MAXPATHL,
-! TRUE, TRUE, NULL);
- has_wildcards = mch_has_wildcard(NameBuff);
- p = NameBuff;
- }
-*** ../vim-7.1.122/src/misc1.c Tue Aug 14 22:15:53 2007
---- src/misc1.c Tue Sep 25 17:30:01 2007
-***************
-*** 3506,3514 ****
- #endif
-
- /*
- * Expand environment variable with path name.
- * "~/" is also expanded, using $HOME. For Unix "~user/" is expanded.
-! * Skips over "\ ", "\~" and "\$".
- * If anything fails no expansion is done and dst equals src.
- */
- void
---- 3506,3543 ----
- #endif
-
- /*
-+ * Call expand_env() and store the result in an allocated string.
-+ * This is not very memory efficient, this expects the result to be freed
-+ * again soon.
-+ */
-+ char_u *
-+ expand_env_save(src)
-+ char_u *src;
-+ {
-+ return expand_env_save_opt(src, FALSE);
-+ }
-+
-+ /*
-+ * Idem, but when "one" is TRUE handle the string as one file name, only
-+ * expand "~" at the start.
-+ */
-+ char_u *
-+ expand_env_save_opt(src, one)
-+ char_u *src;
-+ int one;
-+ {
-+ char_u *p;
-+
-+ p = alloc(MAXPATHL);
-+ if (p != NULL)
-+ expand_env_esc(src, p, MAXPATHL, FALSE, one, NULL);
-+ return p;
-+ }
-+
-+ /*
- * Expand environment variable with path name.
- * "~/" is also expanded, using $HOME. For Unix "~user/" is expanded.
-! * Skips over "\ ", "\~" and "\$" (not for Win32 though).
- * If anything fails no expansion is done and dst equals src.
- */
- void
-***************
-*** 3517,3531 ****
- char_u *dst; /* where to put the result */
- int dstlen; /* maximum length of the result */
- {
-! expand_env_esc(src, dst, dstlen, FALSE, NULL);
- }
-
- void
-! expand_env_esc(srcp, dst, dstlen, esc, startstr)
- char_u *srcp; /* input string e.g. "$HOME/vim.hlp" */
- char_u *dst; /* where to put the result */
- int dstlen; /* maximum length of the result */
- int esc; /* escape spaces in expanded variables */
- char_u *startstr; /* start again after this (can be NULL) */
- {
- char_u *src;
---- 3546,3561 ----
- char_u *dst; /* where to put the result */
- int dstlen; /* maximum length of the result */
- {
-! expand_env_esc(src, dst, dstlen, FALSE, FALSE, NULL);
- }
-
- void
-! expand_env_esc(srcp, dst, dstlen, esc, one, startstr)
- char_u *srcp; /* input string e.g. "$HOME/vim.hlp" */
- char_u *dst; /* where to put the result */
- int dstlen; /* maximum length of the result */
- int esc; /* escape spaces in expanded variables */
-+ int one; /* "srcp" is one file name */
- char_u *startstr; /* start again after this (can be NULL) */
- {
- char_u *src;
-***************
-*** 3766,3771 ****
---- 3796,3803 ----
- {
- /*
- * Recognize the start of a new name, for '~'.
-+ * Don't do this when "one" is TRUE, to avoid expanding "~" in
-+ * ":edit foo ~ foo".
- */
- at_start = FALSE;
- if (src[0] == '\\' && src[1] != NUL)
-***************
-*** 3773,3779 ****
- *dst++ = *src++;
- --dstlen;
- }
-! else if (src[0] == ' ' || src[0] == ',')
- at_start = TRUE;
- *dst++ = *src++;
- --dstlen;
---- 3805,3811 ----
- *dst++ = *src++;
- --dstlen;
- }
-! else if ((src[0] == ' ' || src[0] == ',') && !one)
- at_start = TRUE;
- *dst++ = *src++;
- --dstlen;
-***************
-*** 4070,4092 ****
- }
-
- /*
-- * Call expand_env() and store the result in an allocated string.
-- * This is not very memory efficient, this expects the result to be freed
-- * again soon.
-- */
-- char_u *
-- expand_env_save(src)
-- char_u *src;
-- {
-- char_u *p;
--
-- p = alloc(MAXPATHL);
-- if (p != NULL)
-- expand_env(src, p, MAXPATHL);
-- return p;
-- }
--
-- /*
- * Our portable version of setenv.
- */
- void
---- 4102,4107 ----
-***************
-*** 9139,9145 ****
- */
- if (vim_strpbrk(p, (char_u *)"$~") != NULL)
- {
-! p = expand_env_save(p);
- if (p == NULL)
- p = pat[i];
- #ifdef UNIX
---- 9154,9160 ----
- */
- if (vim_strpbrk(p, (char_u *)"$~") != NULL)
- {
-! p = expand_env_save_opt(p, TRUE);
- if (p == NULL)
- p = pat[i];
- #ifdef UNIX
-*** ../vim-7.1.122/src/proto/misc1.pro Sat May 5 20:15:33 2007
---- src/proto/misc1.pro Tue Sep 25 17:22:36 2007
-***************
-*** 48,57 ****
- void vim_beep __ARGS((void));
- void init_homedir __ARGS((void));
- void free_homedir __ARGS((void));
- void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
-! void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, char_u *startstr));
- char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
-- char_u *expand_env_save __ARGS((char_u *src));
- void vim_setenv __ARGS((char_u *name, char_u *val));
- char_u *get_env_name __ARGS((expand_T *xp, int idx));
- void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
---- 48,58 ----
- void vim_beep __ARGS((void));
- void init_homedir __ARGS((void));
- void free_homedir __ARGS((void));
-+ char_u *expand_env_save __ARGS((char_u *src));
-+ char_u *expand_env_save_opt __ARGS((char_u *src, int one));
- void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
-! void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, int one, char_u *startstr));
- char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
- void vim_setenv __ARGS((char_u *name, char_u *val));
- char_u *get_env_name __ARGS((expand_T *xp, int idx));
- void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
-*** ../vim-7.1.122/src/option.c Tue Sep 25 14:50:19 2007
---- src/option.c Tue Sep 25 17:20:05 2007
-***************
-*** 4996,5002 ****
- * For 'spellsuggest' expand after "file:".
- */
- expand_env_esc(val, NameBuff, MAXPATHL,
-! (char_u **)options[opt_idx].var == &p_tags,
- #ifdef FEAT_SPELL
- (char_u **)options[opt_idx].var == &p_sps ? (char_u *)"file:" :
- #endif
---- 4996,5002 ----
- * For 'spellsuggest' expand after "file:".
- */
- expand_env_esc(val, NameBuff, MAXPATHL,
-! (char_u **)options[opt_idx].var == &p_tags, FALSE,
- #ifdef FEAT_SPELL
- (char_u **)options[opt_idx].var == &p_sps ? (char_u *)"file:" :
- #endif
-*** ../vim-7.1.122/src/version.c Tue Sep 25 22:13:14 2007
---- src/version.c Wed Sep 26 22:30:59 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 123,
- /**/
-
---
-So when I saw the post to comp.editors, I rushed over to the FTP site to
-grab it. So I yank apart the tarball, light x candles, where x= the
-vim version multiplied by the md5sum of the source divided by the MAC of
-my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights,
-wave a dead chicken over the hard drive, and summon the power of GNU GCC
-with the magic words "make config ; make!".
- [Jason Spence, compiling Vim 5.0]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.124 (extra)
-Problem: Mac: When dropping a file on Vim.app that is already in the buffer
- list (from .viminfo) results in editing an empty, unnamed buffer.
- (Axel Kielhorn) Also: warning for unused variable.
-Solution: Move to the buffer of the first agument. Delete unused variable.
-Files: src/gui_mac.c
-
-
-*** ../vim-7.1.123/src/gui_mac.c Thu Aug 30 12:50:00 2007
---- src/gui_mac.c Sat Sep 29 13:12:26 2007
-***************
-*** 1046,1051 ****
---- 1046,1052 ----
- {
- int i;
- char_u *p;
-+ int fnum = -1;
-
- /* these are the initial files dropped on the Vim icon */
- for (i = 0 ; i < numFiles; i++)
-***************
-*** 1055,1060 ****
---- 1056,1073 ----
- mch_exit(2);
- else
- alist_add(&global_alist, p, 2);
-+ if (fnum == -1)
-+ fnum = GARGLIST[GARGCOUNT - 1].ae_fnum;
-+ }
-+
-+ /* If the file name was already in the buffer list we need to switch
-+ * to it. */
-+ if (curbuf->b_fnum != fnum)
-+ {
-+ char_u cmd[30];
-+
-+ vim_snprintf((char *)cmd, 30, "silent %dbuffer", fnum);
-+ do_cmdline_cmd(cmd);
- }
-
- /* Change directory to the location of the first file. */
-***************
-*** 2920,2926 ****
- /* TODO: Move most of this stuff toward gui_mch_init */
- Rect windRect;
- MenuHandle pomme;
-- long gestalt_rc;
- EventTypeSpec eventTypeSpec;
- EventHandlerRef mouseWheelHandlerRef;
- #ifdef USE_CARBONKEYHANDLER
---- 2933,2938 ----
-*** ../vim-7.1.123/src/version.c Wed Sep 26 22:35:06 2007
---- src/version.c Sat Sep 29 13:13:16 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 124,
- /**/
-
---
-ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY
- KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T
- HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR
- LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER),
- BROTHER MAYNARD
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.125
-Problem: The TermResponse autocommand event is not always triggered. (Aron
- Griffis)
-Solution: When unblocking autocommands check if v:termresponse changed and
- trigger the event then.
-Files: src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c,
- src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c
-
-
-*** ../vim-7.1.124/src/buffer.c Sun Aug 12 15:50:26 2007
---- src/buffer.c Wed Sep 26 20:05:38 2007
-***************
-*** 5515,5525 ****
-
- #ifdef FEAT_AUTOCMD
- if (!aucmd) /* Don't trigger BufDelete autocommands here. */
-! ++autocmd_block;
- #endif
- close_buffer(NULL, buf, DOBUF_WIPE);
- #ifdef FEAT_AUTOCMD
- if (!aucmd)
-! --autocmd_block;
- #endif
- }
---- 5512,5522 ----
-
- #ifdef FEAT_AUTOCMD
- if (!aucmd) /* Don't trigger BufDelete autocommands here. */
-! block_autocmds();
- #endif
- close_buffer(NULL, buf, DOBUF_WIPE);
- #ifdef FEAT_AUTOCMD
- if (!aucmd)
-! unblock_autocmds();
- #endif
- }
-*** ../vim-7.1.124/src/diff.c Tue Feb 20 04:43:13 2007
---- src/diff.c Tue Sep 25 22:01:40 2007
-***************
-*** 840,850 ****
- tmp_orig, tmp_new);
- append_redir(cmd, p_srr, tmp_diff);
- #ifdef FEAT_AUTOCMD
-! ++autocmd_block; /* Avoid ShellCmdPost stuff */
- #endif
- (void)call_shell(cmd, SHELL_FILTER|SHELL_SILENT|SHELL_DOOUT);
- #ifdef FEAT_AUTOCMD
-! --autocmd_block;
- #endif
- vim_free(cmd);
- }
---- 840,850 ----
- tmp_orig, tmp_new);
- append_redir(cmd, p_srr, tmp_diff);
- #ifdef FEAT_AUTOCMD
-! block_autocmds(); /* Avoid ShellCmdPost stuff */
- #endif
- (void)call_shell(cmd, SHELL_FILTER|SHELL_SILENT|SHELL_DOOUT);
- #ifdef FEAT_AUTOCMD
-! unblock_autocmds();
- #endif
- vim_free(cmd);
- }
-***************
-*** 949,959 ****
- # endif
- eap->arg);
- #ifdef FEAT_AUTOCMD
-! ++autocmd_block; /* Avoid ShellCmdPost stuff */
- #endif
- (void)call_shell(buf, SHELL_FILTER | SHELL_COOKED);
- #ifdef FEAT_AUTOCMD
-! --autocmd_block;
- #endif
- }
-
---- 949,959 ----
- # endif
- eap->arg);
- #ifdef FEAT_AUTOCMD
-! block_autocmds(); /* Avoid ShellCmdPost stuff */
- #endif
- (void)call_shell(buf, SHELL_FILTER | SHELL_COOKED);
- #ifdef FEAT_AUTOCMD
-! unblock_autocmds();
- #endif
- }
-
-*** ../vim-7.1.124/src/ex_getln.c Thu Sep 13 18:25:08 2007
---- src/ex_getln.c Tue Sep 25 22:03:05 2007
-***************
-*** 5925,5931 ****
-
- # ifdef FEAT_AUTOCMD
- /* Don't execute autocommands while creating the window. */
-! ++autocmd_block;
- # endif
- /* don't use a new tab page */
- cmdmod.tab = 0;
---- 5925,5931 ----
-
- # ifdef FEAT_AUTOCMD
- /* Don't execute autocommands while creating the window. */
-! block_autocmds();
- # endif
- /* don't use a new tab page */
- cmdmod.tab = 0;
-***************
-*** 5934,5939 ****
---- 5934,5942 ----
- if (win_split((int)p_cwh, WSP_BOT) == FAIL)
- {
- beep_flush();
-+ # ifdef FEAT_AUTOCMD
-+ unblock_autocmds();
-+ # endif
- return K_IGNORE;
- }
- cmdwin_type = ccline.cmdfirstc;
-***************
-*** 5956,5962 ****
-
- # ifdef FEAT_AUTOCMD
- /* Do execute autocommands for setting the filetype (load syntax). */
-! --autocmd_block;
- # endif
-
- /* Showing the prompt may have set need_wait_return, reset it. */
---- 5959,5965 ----
-
- # ifdef FEAT_AUTOCMD
- /* Do execute autocommands for setting the filetype (load syntax). */
-! unblock_autocmds();
- # endif
-
- /* Showing the prompt may have set need_wait_return, reset it. */
-***************
-*** 6110,6116 ****
-
- # ifdef FEAT_AUTOCMD
- /* Don't execute autocommands while deleting the window. */
-! ++autocmd_block;
- # endif
- wp = curwin;
- bp = curbuf;
---- 6113,6119 ----
-
- # ifdef FEAT_AUTOCMD
- /* Don't execute autocommands while deleting the window. */
-! block_autocmds();
- # endif
- wp = curwin;
- bp = curbuf;
-***************
-*** 6122,6128 ****
- win_size_restore(&winsizes);
-
- # ifdef FEAT_AUTOCMD
-! --autocmd_block;
- # endif
- }
-
---- 6125,6131 ----
- win_size_restore(&winsizes);
-
- # ifdef FEAT_AUTOCMD
-! unblock_autocmds();
- # endif
- }
-
-*** ../vim-7.1.124/src/fileio.c Sun Aug 12 15:50:26 2007
---- src/fileio.c Wed Sep 26 20:02:54 2007
-***************
-*** 7165,7170 ****
---- 7187,7193 ----
-
- static event_T last_event;
- static int last_group;
-+ static int autocmd_blocked = 0; /* block all autocmds */
-
- /*
- * Show the autocommands for one AutoPat.
-***************
-*** 8454,8460 ****
- * Quickly return if there are no autocommands for this event or
- * autocommands are blocked.
- */
-! if (first_autopat[(int)event] == NULL || autocmd_block > 0)
- goto BYPASS_AU;
-
- /*
---- 8477,8483 ----
- * Quickly return if there are no autocommands for this event or
- * autocommands are blocked.
- */
-! if (first_autopat[(int)event] == NULL || autocmd_blocked > 0)
- goto BYPASS_AU;
-
- /*
-***************
-*** 8766,8771 ****
---- 8789,8828 ----
- aubuflocal_remove(buf);
-
- return retval;
-+ }
-+
-+ # ifdef FEAT_EVAL
-+ static char_u *old_termresponse = NULL;
-+ # endif
-+
-+ /*
-+ * Block triggering autocommands until unblock_autocmd() is called.
-+ * Can be used recursively, so long as it's symmetric.
-+ */
-+ void
-+ block_autocmds()
-+ {
-+ # ifdef FEAT_EVAL
-+ /* Remember the value of v:termresponse. */
-+ if (autocmd_blocked == 0)
-+ old_termresponse = get_vim_var_str(VV_TERMRESPONSE);
-+ # endif
-+ ++autocmd_blocked;
-+ }
-+
-+ void
-+ unblock_autocmds()
-+ {
-+ --autocmd_blocked;
-+
-+ # ifdef FEAT_EVAL
-+ /* When v:termresponse was set while autocommands were blocked, trigger
-+ * the autocommands now. Esp. useful when executing a shell command
-+ * during startup (vimdiff). */
-+ if (autocmd_blocked == 0
-+ && get_vim_var_str(VV_TERMRESPONSE) != old_termresponse)
-+ apply_autocmds(EVENT_TERMRESPONSE, NULL, NULL, FALSE, curbuf);
-+ # endif
- }
-
- /*
-*** ../vim-7.1.124/src/globals.h Tue Sep 25 17:54:41 2007
---- src/globals.h Tue Sep 25 22:03:39 2007
-***************
-*** 366,372 ****
- EXTERN int autocmd_busy INIT(= FALSE); /* Is apply_autocmds() busy? */
- EXTERN int autocmd_no_enter INIT(= FALSE); /* *Enter autocmds disabled */
- EXTERN int autocmd_no_leave INIT(= FALSE); /* *Leave autocmds disabled */
-- EXTERN int autocmd_block INIT(= 0); /* block all autocmds */
- EXTERN int modified_was_set; /* did ":set modified" */
- EXTERN int did_filetype INIT(= FALSE); /* FileType event found */
- EXTERN int keep_filetype INIT(= FALSE); /* value for did_filetype when
---- 366,371 ----
-*** ../vim-7.1.124/src/misc2.c Thu May 10 19:58:47 2007
---- src/misc2.c Tue Sep 25 22:04:39 2007
-***************
-*** 972,978 ****
- return;
- entered = TRUE;
-
-! ++autocmd_block; /* don't want to trigger autocommands here */
-
- #ifdef FEAT_WINDOWS
- /* close all tabs and windows */
---- 973,979 ----
- return;
- entered = TRUE;
-
-! block_autocmds(); /* don't want to trigger autocommands here */
-
- #ifdef FEAT_WINDOWS
- /* close all tabs and windows */
-*** ../vim-7.1.124/src/proto/fileio.pro Thu Jun 28 21:57:08 2007
---- src/proto/fileio.pro Wed Sep 26 20:05:02 2007
-***************
-*** 40,45 ****
---- 41,48 ----
- int trigger_cursorhold __ARGS((void));
- int has_cursormoved __ARGS((void));
- int has_cursormovedI __ARGS((void));
-+ void block_autocmds __ARGS((void));
-+ void unblock_autocmds __ARGS((void));
- int has_autocmd __ARGS((event_T event, char_u *sfname, buf_T *buf));
- char_u *get_augroup_name __ARGS((expand_T *xp, int idx));
- char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd));
-*** ../vim-7.1.124/src/window.c Tue Sep 25 14:50:19 2007
---- src/window.c Tue Sep 25 22:05:45 2007
-***************
-*** 1291,1297 ****
- * Don't execute autocommands while creating the windows. Must do that
- * when putting the buffers in the windows.
- */
-! ++autocmd_block;
- #endif
-
- /* todo is number of windows left to create */
---- 1291,1297 ----
- * Don't execute autocommands while creating the windows. Must do that
- * when putting the buffers in the windows.
- */
-! block_autocmds();
- #endif
-
- /* todo is number of windows left to create */
-***************
-*** 1313,1319 ****
- }
-
- #ifdef FEAT_AUTOCMD
-! --autocmd_block;
- #endif
-
- /* return actual number of windows */
---- 1313,1319 ----
- }
-
- #ifdef FEAT_AUTOCMD
-! unblock_autocmds();
- #endif
-
- /* return actual number of windows */
-***************
-*** 3415,3421 ****
- * Don't execute autocommands while creating the tab pages. Must do that
- * when putting the buffers in the windows.
- */
-! ++autocmd_block;
- #endif
-
- for (todo = count - 1; todo > 0; --todo)
---- 3415,3421 ----
- * Don't execute autocommands while creating the tab pages. Must do that
- * when putting the buffers in the windows.
- */
-! block_autocmds();
- #endif
-
- for (todo = count - 1; todo > 0; --todo)
-***************
-*** 3423,3429 ****
- break;
-
- #ifdef FEAT_AUTOCMD
-! --autocmd_block;
- #endif
-
- /* return actual number of tab pages */
---- 3423,3429 ----
- break;
-
- #ifdef FEAT_AUTOCMD
-! unblock_autocmds();
- #endif
-
- /* return actual number of tab pages */
-***************
-*** 4162,4168 ****
- /* Don't execute autocommands while the window is not properly
- * initialized yet. gui_create_scrollbar() may trigger a FocusGained
- * event. */
-! ++autocmd_block;
- #endif
- /*
- * link the window in the window list
---- 4162,4168 ----
- /* Don't execute autocommands while the window is not properly
- * initialized yet. gui_create_scrollbar() may trigger a FocusGained
- * event. */
-! block_autocmds();
- #endif
- /*
- * link the window in the window list
-***************
-*** 4207,4213 ****
- foldInitWin(newwin);
- #endif
- #ifdef FEAT_AUTOCMD
-! --autocmd_block;
- #endif
- #ifdef FEAT_SEARCH_EXTRA
- newwin->w_match_head = NULL;
---- 4207,4213 ----
- foldInitWin(newwin);
- #endif
- #ifdef FEAT_AUTOCMD
-! unblock_autocmds();
- #endif
- #ifdef FEAT_SEARCH_EXTRA
- newwin->w_match_head = NULL;
-***************
-*** 4232,4238 ****
- #ifdef FEAT_AUTOCMD
- /* Don't execute autocommands while the window is halfway being deleted.
- * gui_mch_destroy_scrollbar() may trigger a FocusGained event. */
-! ++autocmd_block;
- #endif
-
- #ifdef FEAT_MZSCHEME
---- 4232,4238 ----
- #ifdef FEAT_AUTOCMD
- /* Don't execute autocommands while the window is halfway being deleted.
- * gui_mch_destroy_scrollbar() may trigger a FocusGained event. */
-! block_autocmds();
- #endif
-
- #ifdef FEAT_MZSCHEME
-***************
-*** 4295,4301 ****
- vim_free(wp);
-
- #ifdef FEAT_AUTOCMD
-! --autocmd_block;
- #endif
- }
-
---- 4295,4301 ----
- vim_free(wp);
-
- #ifdef FEAT_AUTOCMD
-! unblock_autocmds();
- #endif
- }
-
-*** ../vim-7.1.124/src/version.c Sat Sep 29 13:15:29 2007
---- src/version.c Sat Sep 29 14:08:31 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 125,
- /**/
-
---
-MICHAEL PALIN PLAYED: 1ST SOLDIER WITH A KEEN INTEREST IN BIRDS, DENNIS, MR
- DUCK (A VILLAGE CARPENTER WHO IS ALMOST KEENER THAN
- ANYONE ELSE TO BURN WITCHES), THREE-HEADED KNIGHT, SIR
- GALAHAD, KING OF SWAMP CASTLE, BROTHER MAYNARD'S ROOMATE
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.126
-Problem: ":vimgrep */*" fails when a BufRead autocommand changes directory.
- (Bernhard Kuhn)
-Solution: Change back to the original directory after loading a file.
- Also: use shorten_fname1() to avoid duplicating code.
-Files: src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c,
- src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro,
- src/quickfix.c
-
-
-*** ../vim-7.1.125/src/buffer.c Sat Sep 29 14:15:00 2007
---- src/buffer.c Wed Sep 26 20:05:38 2007
-***************
-*** 4261,4272 ****
- do_arg_all(count, forceit, keep_tabs)
- int count;
- int forceit; /* hide buffers in current windows */
-! int keep_tabs; /* keep curren tabs, for ":tab drop file" */
- {
- int i;
- win_T *wp, *wpnext;
- char_u *opened; /* array of flags for which args are open */
-! int opened_len; /* lenght of opened[] */
- int use_firstwin = FALSE; /* use first window for arglist */
- int split_ret = OK;
- int p_ea_save;
---- 4261,4272 ----
- do_arg_all(count, forceit, keep_tabs)
- int count;
- int forceit; /* hide buffers in current windows */
-! int keep_tabs; /* keep current tabs, for ":tab drop file" */
- {
- int i;
- win_T *wp, *wpnext;
- char_u *opened; /* array of flags for which args are open */
-! int opened_len; /* length of opened[] */
- int use_firstwin = FALSE; /* use first window for arglist */
- int split_ret = OK;
- int p_ea_save;
-***************
-*** 4946,4955 ****
- /* Expand "~/" in the file name at "line + 1" to a full path.
- * Then try shortening it by comparing with the current directory */
- expand_env(xline, NameBuff, MAXPATHL);
-! mch_dirname(IObuff, IOSIZE);
-! sfname = shorten_fname(NameBuff, IObuff);
-! if (sfname == NULL)
-! sfname = NameBuff;
-
- buf = buflist_new(NameBuff, sfname, (linenr_T)0, BLN_LISTED);
- if (buf != NULL) /* just in case... */
---- 4946,4952 ----
- /* Expand "~/" in the file name at "line + 1" to a full path.
- * Then try shortening it by comparing with the current directory */
- expand_env(xline, NameBuff, MAXPATHL);
-! sfname = shorten_fname1(NameBuff);
-
- buf = buflist_new(NameBuff, sfname, (linenr_T)0, BLN_LISTED);
- if (buf != NULL) /* just in case... */
-*** ../vim-7.1.125/src/ex_docmd.c Wed Sep 26 22:35:06 2007
---- src/ex_docmd.c Wed Sep 26 20:29:36 2007
-***************
-*** 276,282 ****
- static void ex_swapname __ARGS((exarg_T *eap));
- static void ex_syncbind __ARGS((exarg_T *eap));
- static void ex_read __ARGS((exarg_T *eap));
-- static void ex_cd __ARGS((exarg_T *eap));
- static void ex_pwd __ARGS((exarg_T *eap));
- static void ex_equal __ARGS((exarg_T *eap));
- static void ex_sleep __ARGS((exarg_T *eap));
---- 276,281 ----
-***************
-*** 7778,7784 ****
- /*
- * ":cd", ":lcd", ":chdir" and ":lchdir".
- */
-! static void
- ex_cd(eap)
- exarg_T *eap;
- {
---- 7777,7783 ----
- /*
- * ":cd", ":lcd", ":chdir" and ":lchdir".
- */
-! void
- ex_cd(eap)
- exarg_T *eap;
- {
-*** ../vim-7.1.125/src/fileio.c Sat Sep 29 14:15:00 2007
---- src/fileio.c Wed Sep 26 20:02:54 2007
-***************
-*** 114,120 ****
- {
- int bw_fd; /* file descriptor */
- char_u *bw_buf; /* buffer with data to be written */
-! int bw_len; /* lenght of data */
- #ifdef HAS_BW_FLAGS
- int bw_flags; /* FIO_ flags */
- #endif
---- 114,120 ----
- {
- int bw_fd; /* file descriptor */
- char_u *bw_buf; /* buffer with data to be written */
-! int bw_len; /* length of data */
- #ifdef HAS_BW_FLAGS
- int bw_flags; /* FIO_ flags */
- #endif
-***************
-*** 5552,5557 ****
---- 5553,5579 ----
- return (int)(p - buf);
- }
- #endif
-+
-+ /*
-+ * Try to find a shortname by comparing the fullname with the current
-+ * directory.
-+ * Returns "full_path" or pointer into "full_path" if shortened.
-+ */
-+ char_u *
-+ shorten_fname1(full_path)
-+ char_u *full_path;
-+ {
-+ char_u dirname[MAXPATHL];
-+ char_u *p = full_path;
-+
-+ if (mch_dirname(dirname, MAXPATHL) == OK)
-+ {
-+ p = shorten_fname(full_path, dirname);
-+ if (p == NULL || *p == NUL)
-+ p = full_path;
-+ }
-+ return p;
-+ }
-
- /*
- * Try to find a shortname by comparing the fullname with the current
-*** ../vim-7.1.125/src/gui_gtk.c Tue Aug 14 14:59:41 2007
---- src/gui_gtk.c Wed Sep 26 20:07:58 2007
-***************
-*** 1272,1278 ****
- GtkWidget *fc;
- #endif
- char_u dirbuf[MAXPATHL];
-- char_u *p;
-
- # ifdef HAVE_GTK2
- title = CONVERT_TO_UTF8(title);
---- 1272,1277 ----
-***************
-*** 1363,1373 ****
- return NULL;
-
- /* shorten the file name if possible */
-! mch_dirname(dirbuf, MAXPATHL);
-! p = shorten_fname(gui.browse_fname, dirbuf);
-! if (p == NULL)
-! p = gui.browse_fname;
-! return vim_strsave(p);
- }
-
- #if defined(HAVE_GTK2) || defined(PROTO)
---- 1362,1368 ----
- return NULL;
-
- /* shorten the file name if possible */
-! return vim_strsave(shorten_fname1(gui.browse_fname));
- }
-
- #if defined(HAVE_GTK2) || defined(PROTO)
-***************
-*** 1427,1437 ****
- return NULL;
-
- /* shorten the file name if possible */
-! mch_dirname(dirbuf, MAXPATHL);
-! p = shorten_fname(dirname, dirbuf);
-! if (p == NULL || *p == NUL)
-! p = dirname;
-! p = vim_strsave(p);
- g_free(dirname);
- return p;
-
---- 1422,1428 ----
- return NULL;
-
- /* shorten the file name if possible */
-! p = vim_strsave(shorten_fname1(dirname));
- g_free(dirname);
- return p;
-
-*** ../vim-7.1.125/src/gui_w48.c Thu May 10 19:17:07 2007
---- src/gui_w48.c Wed Sep 26 20:09:33 2007
-***************
-*** 3301,3311 ****
- SetFocus(s_hwnd);
-
- /* Shorten the file name if possible */
-! mch_dirname(IObuff, IOSIZE);
-! p = shorten_fname((char_u *)fileBuf, IObuff);
-! if (p == NULL)
-! p = (char_u *)fileBuf;
-! return vim_strsave(p);
- }
- # endif /* FEAT_MBYTE */
-
---- 3301,3307 ----
- SetFocus(s_hwnd);
-
- /* Shorten the file name if possible */
-! return vim_strsave(shorten_fname1((char_u *)fileBuf));
- }
- # endif /* FEAT_MBYTE */
-
-***************
-*** 3450,3460 ****
- SetFocus(s_hwnd);
-
- /* Shorten the file name if possible */
-! mch_dirname(IObuff, IOSIZE);
-! p = shorten_fname((char_u *)fileBuf, IObuff);
-! if (p == NULL)
-! p = (char_u *)fileBuf;
-! return vim_strsave(p);
- }
- #endif /* FEAT_BROWSE */
-
---- 3446,3452 ----
- SetFocus(s_hwnd);
-
- /* Shorten the file name if possible */
-! return vim_strsave(shorten_fname1((char_u *)fileBuf));
- }
- #endif /* FEAT_BROWSE */
-
-*** ../vim-7.1.125/src/proto/ex_docmd.pro Sun May 6 14:46:22 2007
---- src/proto/ex_docmd.pro Wed Sep 26 20:30:10 2007
-***************
-*** 39,44 ****
---- 39,45 ----
- void tabpage_new __ARGS((void));
- void do_exedit __ARGS((exarg_T *eap, win_T *old_curwin));
- void free_cd_dir __ARGS((void));
-+ void ex_cd __ARGS((exarg_T *eap));
- void do_sleep __ARGS((long msec));
- int vim_mkdir_emsg __ARGS((char_u *name, int prot));
- FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode));
-*** ../vim-7.1.125/src/proto/fileio.pro Sat Sep 29 14:15:00 2007
---- src/proto/fileio.pro Wed Sep 26 20:05:02 2007
-***************
-*** 6,11 ****
---- 6,12 ----
- int buf_write __ARGS((buf_T *buf, char_u *fname, char_u *sfname, linenr_T start, linenr_T end, exarg_T *eap, int append, int forceit, int reset_changed, int filtering));
- void msg_add_fname __ARGS((buf_T *buf, char_u *fname));
- void msg_add_lines __ARGS((int insert_space, long lnum, long nchars));
-+ char_u *shorten_fname1 __ARGS((char_u *full_path));
- char_u *shorten_fname __ARGS((char_u *full_path, char_u *dir_name));
- void shorten_fnames __ARGS((int force));
- void shorten_filenames __ARGS((char_u **fnames, int count));
-*** ../vim-7.1.125/src/quickfix.c Sun Sep 16 13:26:56 2007
---- src/quickfix.c Sun Sep 30 13:58:38 2007
-***************
-*** 2972,2977 ****
---- 2972,2978 ----
- regmmatch_T regmatch;
- int fcount;
- char_u **fnames;
-+ char_u *fname;
- char_u *s;
- char_u *p;
- int fi;
-***************
-*** 2995,3000 ****
---- 2996,3004 ----
- int flags = 0;
- colnr_T col;
- long tomatch;
-+ char_u dirname_start[MAXPATHL];
-+ char_u dirname_now[MAXPATHL];
-+ char_u *target_dir = NULL;
-
- switch (eap->cmdidx)
- {
-***************
-*** 3069,3085 ****
- goto theend;
- }
-
- seconds = (time_t)0;
- for (fi = 0; fi < fcount && !got_int && tomatch > 0; ++fi)
- {
- if (time(NULL) > seconds)
- {
-! /* Display the file name every second or so. */
- seconds = time(NULL);
- msg_start();
-! p = msg_strtrunc(fnames[fi], TRUE);
- if (p == NULL)
-! msg_outtrans(fnames[fi]);
- else
- {
- msg_outtrans(p);
---- 3073,3095 ----
- goto theend;
- }
-
-+ /* Remember the current directory, because a BufRead autocommand that does
-+ * ":lcd %:p:h" changes the meaning of short path names. */
-+ mch_dirname(dirname_start, MAXPATHL);
-+
- seconds = (time_t)0;
- for (fi = 0; fi < fcount && !got_int && tomatch > 0; ++fi)
- {
-+ fname = shorten_fname1(fnames[fi]);
- if (time(NULL) > seconds)
- {
-! /* Display the file name every second or so, show the user we are
-! * working on it. */
- seconds = time(NULL);
- msg_start();
-! p = msg_strtrunc(fname, TRUE);
- if (p == NULL)
-! msg_outtrans(fname);
- else
- {
- msg_outtrans(p);
-***************
-*** 3111,3117 ****
-
- /* Load file into a buffer, so that 'fileencoding' is detected,
- * autocommands applied, etc. */
-! buf = load_dummy_buffer(fnames[fi]);
-
- p_mls = save_mls;
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
---- 3121,3139 ----
-
- /* Load file into a buffer, so that 'fileencoding' is detected,
- * autocommands applied, etc. */
-! buf = load_dummy_buffer(fname);
-!
-! /* When autocommands changed directory: go back. We assume it was
-! * ":lcd %:p:h". */
-! mch_dirname(dirname_now, MAXPATHL);
-! if (STRCMP(dirname_start, dirname_now) != 0)
-! {
-! exarg_T ea;
-!
-! ea.arg = dirname_start;
-! ea.cmdidx = CMD_lcd;
-! ex_cd(&ea);
-! }
-
- p_mls = save_mls;
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-***************
-*** 3125,3131 ****
- if (buf == NULL)
- {
- if (!got_int)
-! smsg((char_u *)_("Cannot open file \"%s\""), fnames[fi]);
- }
- else
- {
---- 3147,3153 ----
- if (buf == NULL)
- {
- if (!got_int)
-! smsg((char_u *)_("Cannot open file \"%s\""), fname);
- }
- else
- {
-***************
-*** 3139,3147 ****
- while (vim_regexec_multi(®match, curwin, buf, lnum,
- col) > 0)
- {
- if (qf_add_entry(qi, &prevp,
- NULL, /* dir */
-! fnames[fi],
- 0,
- ml_get_buf(buf,
- regmatch.startpos[0].lnum + lnum, FALSE),
---- 3161,3170 ----
- while (vim_regexec_multi(®match, curwin, buf, lnum,
- col) > 0)
- {
-+ ;
- if (qf_add_entry(qi, &prevp,
- NULL, /* dir */
-! fname,
- 0,
- ml_get_buf(buf,
- regmatch.startpos[0].lnum + lnum, FALSE),
-***************
-*** 3209,3214 ****
---- 3232,3244 ----
-
- if (buf != NULL)
- {
-+ /* If the buffer is still loaded we need to use the
-+ * directory we jumped to below. */
-+ if (buf == first_match_buf
-+ && target_dir == NULL
-+ && STRCMP(dirname_start, dirname_now) != 0)
-+ target_dir = vim_strsave(dirname_now);
-+
- /* The buffer is still loaded, the Filetype autocommands
- * need to be done now, in that buffer. And the modelines
- * need to be done (again). But not the window-local
-***************
-*** 3252,3257 ****
---- 3282,3297 ----
- /* If we jumped to another buffer redrawing will already be
- * taken care of. */
- redraw_for_dummy = FALSE;
-+
-+ /* Jump to the directory used after loading the buffer. */
-+ if (curbuf == first_match_buf && target_dir != NULL)
-+ {
-+ exarg_T ea;
-+
-+ ea.arg = target_dir;
-+ ea.cmdidx = CMD_lcd;
-+ ex_cd(&ea);
-+ }
- }
- }
- else
-***************
-*** 3269,3274 ****
---- 3309,3315 ----
- }
-
- theend:
-+ vim_free(target_dir);
- vim_free(regmatch.regprog);
- }
-
-*** ../vim-7.1.125/src/version.c Sat Sep 29 14:15:00 2007
---- src/version.c Sun Sep 30 13:41:30 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 126,
- /**/
-
---
-The MS-Windows registry is no more hostile than any other bunch of state
-information... that is held in a binary format... a format that nobody
-understands... and is replicated and cached in a complex and largely
-undocumented way... and contains large amounts of duplicate and obfuscated
-information... (Ben Peterson)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: About patch 7.1.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.1.127
-Problem: Memory leak when doing cmdline completion. (Dominique Pelle)
-Solution: Free "orig" argument of ExpandOne() when it's not used.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.126/src/ex_getln.c Sat Sep 29 14:15:00 2007
---- src/ex_getln.c Sun Sep 30 17:55:47 2007
-***************
-*** 3316,3321 ****
---- 3316,3325 ----
- * Return a pointer to alloced memory containing the new string.
- * Return NULL for failure.
- *
-+ * "orig" is the originally expanded string, copied to allocated memory. It
-+ * should either be kept in orig_save or freed. When "mode" is WILD_NEXT or
-+ * WILD_PREV "orig" should be NULL.
-+ *
- * Results are cached in xp->xp_files and xp->xp_numfiles, except when "mode"
- * is WILD_EXPAND_FREE or WILD_ALL.
- *
-***************
-*** 3400,3406 ****
- return NULL;
- }
-
-! /* free old names */
- if (xp->xp_numfiles != -1 && mode != WILD_ALL && mode != WILD_LONGEST)
- {
- FreeWild(xp->xp_numfiles, xp->xp_files);
---- 3404,3410 ----
- return NULL;
- }
-
-! /* free old names */
- if (xp->xp_numfiles != -1 && mode != WILD_ALL && mode != WILD_LONGEST)
- {
- FreeWild(xp->xp_numfiles, xp->xp_files);
-***************
-*** 3540,3545 ****
---- 3544,3553 ----
-
- if (mode == WILD_EXPAND_FREE || mode == WILD_ALL)
- ExpandCleanup(xp);
-+
-+ /* Free "orig" if it wasn't stored in "orig_save". */
-+ if (orig != orig_save)
-+ vim_free(orig);
-
- return ss;
- }
-*** ../vim-7.1.126/src/version.c Sun Sep 30 14:00:41 2007
---- src/version.c Sun Sep 30 14:20:14 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 127,
- /**/
-
---
-A M00se once bit my sister ...
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: About patch 7.1.128 (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.1.128 (extra)
-Problem: Build problems with new version of Cygwin.
-Solution: Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen)
-Files: src/Make_cyg.mak
-
-
-*** ../vim-7.1.127/src/Make_cyg.mak Sun Apr 30 20:46:49 2006
---- src/Make_cyg.mak Sat Sep 29 13:09:34 2007
-***************
-*** 1,6 ****
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2006 Apr 30
- #
- # Also read INSTALLpc.txt!
- #
---- 1,6 ----
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2007 Sep 29
- #
- # Also read INSTALLpc.txt!
- #
-***************
-*** 503,509 ****
- $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
-
- $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
-! $(CC) -c $(CFLAGS) -D__IID_DEFINED__ if_ole.cpp -o $(OUTDIR)/if_ole.o
-
- if_perl.c: if_perl.xs typemap
- $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \
---- 503,509 ----
- $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
-
- $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
-! $(CC) -c $(CFLAGS) if_ole.cpp -o $(OUTDIR)/if_ole.o
-
- if_perl.c: if_perl.xs typemap
- $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \
-*** ../vim-7.1.127/src/version.c Sun Sep 30 22:10:45 2007
---- src/version.c Sun Sep 30 22:27:51 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 128,
- /**/
-
---
-Mynd you, m00se bites Kan be pretty nasti ...
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: About patch 7.1.129 (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.1.129 (extra)
-Problem: Win32: Can't get the user name when it is longer than 15
- characters.
-Solution: Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov)
-Files: src/os_win32.c
-
-
-*** ../vim-7.1.128/src/os_win32.c Thu May 10 19:22:59 2007
---- src/os_win32.c Mon Oct 1 20:07:24 2007
-***************
-*** 2378,2384 ****
- char_u *s,
- int len)
- {
-! char szUserName[MAX_COMPUTERNAME_LENGTH + 1];
- DWORD cch = sizeof szUserName;
-
- if (GetUserName(szUserName, &cch))
---- 2378,2384 ----
- char_u *s,
- int len)
- {
-! char szUserName[256 + 1]; /* UNLEN is 256 */
- DWORD cch = sizeof szUserName;
-
- if (GetUserName(szUserName, &cch))
-*** ../vim-7.1.128/src/version.c Sun Sep 30 22:28:08 2007
---- src/version.c Mon Oct 1 20:32:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 129,
- /**/
-
---
-ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot.
- King of all Britons, defeator of the Saxons, sovereign of all England!
- [Pause]
-SOLDIER: Get away!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: About patch 7.1.130
-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.1.130
-Problem: Crash with specific order of undo and redo. (A.Politz)
-Solution: Clear and adjust pointers properly. Add u_check() for debugging.
-Files: src/undo.c, src/structs.h
-
-
-*** ../vim-7.1.129/src/undo.c Thu May 10 20:01:43 2007
---- src/undo.c Mon Oct 1 22:49:16 2007
-***************
-*** 76,81 ****
---- 76,87 ----
- * buffer is unloaded.
- */
-
-+ /* Uncomment the next line for including the u_check() function. This warns
-+ * for errors in the debug information. */
-+ /* #define U_DEBUG 1 */
-+ #define UH_MAGIC 0x18dade /* value for uh_magic when in use */
-+ #define UE_MAGIC 0xabc123 /* value for ue_magic when in use */
-+
- #include "vim.h"
-
- /* See below: use malloc()/free() for memory management. */
-***************
-*** 113,118 ****
---- 119,213 ----
- */
- static int undo_undoes = FALSE;
-
-+ #ifdef U_DEBUG
-+ /*
-+ * Check the undo structures for being valid. Print a warning when something
-+ * looks wrong.
-+ */
-+ static int seen_b_u_curhead;
-+ static int seen_b_u_newhead;
-+ static int header_count;
-+
-+ static void
-+ u_check_tree(u_header_T *uhp,
-+ u_header_T *exp_uh_next,
-+ u_header_T *exp_uh_alt_prev)
-+ {
-+ u_entry_T *uep;
-+
-+ if (uhp == NULL)
-+ return;
-+ ++header_count;
-+ if (uhp == curbuf->b_u_curhead && ++seen_b_u_curhead > 1)
-+ {
-+ EMSG("b_u_curhead found twice (looping?)");
-+ return;
-+ }
-+ if (uhp == curbuf->b_u_newhead && ++seen_b_u_newhead > 1)
-+ {
-+ EMSG("b_u_newhead found twice (looping?)");
-+ return;
-+ }
-+
-+ if (uhp->uh_magic != UH_MAGIC)
-+ EMSG("uh_magic wrong (may be using freed memory)");
-+ else
-+ {
-+ /* Check pointers back are correct. */
-+ if (uhp->uh_next != exp_uh_next)
-+ {
-+ EMSG("uh_next wrong");
-+ smsg((char_u *)"expected: 0x%x, actual: 0x%x",
-+ exp_uh_next, uhp->uh_next);
-+ }
-+ if (uhp->uh_alt_prev != exp_uh_alt_prev)
-+ {
-+ EMSG("uh_alt_prev wrong");
-+ smsg((char_u *)"expected: 0x%x, actual: 0x%x",
-+ exp_uh_alt_prev, uhp->uh_alt_prev);
-+ }
-+
-+ /* Check the undo tree at this header. */
-+ for (uep = uhp->uh_entry; uep != NULL; uep = uep->ue_next)
-+ {
-+ if (uep->ue_magic != UE_MAGIC)
-+ {
-+ EMSG("ue_magic wrong (may be using freed memory)");
-+ break;
-+ }
-+ }
-+
-+ /* Check the next alt tree. */
-+ u_check_tree(uhp->uh_alt_next, uhp->uh_next, uhp);
-+
-+ /* Check the next header in this branch. */
-+ u_check_tree(uhp->uh_prev, uhp, NULL);
-+ }
-+ }
-+
-+ void
-+ u_check(int newhead_may_be_NULL)
-+ {
-+ seen_b_u_newhead = 0;
-+ seen_b_u_curhead = 0;
-+ header_count = 0;
-+
-+ u_check_tree(curbuf->b_u_oldhead, NULL, NULL);
-+
-+ if (seen_b_u_newhead == 0 && curbuf->b_u_oldhead != NULL
-+ && !(newhead_may_be_NULL && curbuf->b_u_newhead == NULL))
-+ EMSGN("b_u_newhead invalid: 0x%x", curbuf->b_u_newhead);
-+ if (curbuf->b_u_curhead != NULL && seen_b_u_curhead == 0)
-+ EMSGN("b_u_curhead invalid: 0x%x", curbuf->b_u_curhead);
-+ if (header_count != curbuf->b_u_numhead)
-+ {
-+ EMSG("b_u_numhead invalid");
-+ smsg((char_u *)"expected: %ld, actual: %ld",
-+ (long)header_count, (long)curbuf->b_u_numhead);
-+ }
-+ }
-+ #endif
-+
- /*
- * Save the current line for both the "u" and "U" command.
- * Returns OK or FAIL.
-***************
-*** 243,248 ****
---- 338,346 ----
- if (!undo_allowed())
- return FAIL;
-
-+ #ifdef U_DEBUG
-+ u_check(FALSE);
-+ #endif
- #ifdef FEAT_NETBEANS_INTG
- /*
- * Netbeans defines areas that cannot be modified. Bail out here when
-***************
-*** 294,299 ****
---- 392,400 ----
- uhp = (u_header_T *)U_ALLOC_LINE((unsigned)sizeof(u_header_T));
- if (uhp == NULL)
- goto nomem;
-+ #ifdef U_DEBUG
-+ uhp->uh_magic = UH_MAGIC;
-+ #endif
- }
- else
- uhp = NULL;
-***************
-*** 316,323 ****
- {
- u_header_T *uhfree = curbuf->b_u_oldhead;
-
-! /* If there is no branch only free one header. */
-! if (uhfree->uh_alt_next == NULL)
- u_freeheader(curbuf, uhfree, &old_curhead);
- else
- {
---- 417,427 ----
- {
- u_header_T *uhfree = curbuf->b_u_oldhead;
-
-! if (uhfree == old_curhead)
-! /* Can't reconnect the branch, delete all of it. */
-! u_freebranch(curbuf, uhfree, &old_curhead);
-! else if (uhfree->uh_alt_next == NULL)
-! /* There is no branch, only free one header. */
- u_freeheader(curbuf, uhfree, &old_curhead);
- else
- {
-***************
-*** 326,331 ****
---- 430,438 ----
- uhfree = uhfree->uh_alt_next;
- u_freebranch(curbuf, uhfree, &old_curhead);
- }
-+ #ifdef U_DEBUG
-+ u_check(TRUE);
-+ #endif
- }
-
- if (uhp == NULL) /* no undo at all */
-***************
-*** 478,483 ****
---- 585,593 ----
- uep = (u_entry_T *)U_ALLOC_LINE((unsigned)sizeof(u_entry_T));
- if (uep == NULL)
- goto nomem;
-+ #ifdef U_DEBUG
-+ uep->ue_magic = UE_MAGIC;
-+ #endif
-
- uep->ue_size = size;
- uep->ue_top = top;
-***************
-*** 525,530 ****
---- 635,643 ----
- curbuf->b_u_synced = FALSE;
- undo_undoes = FALSE;
-
-+ #ifdef U_DEBUG
-+ u_check(FALSE);
-+ #endif
- return OK;
-
- nomem:
-***************
-*** 955,960 ****
---- 1068,1076 ----
- int empty_buffer; /* buffer became empty */
- u_header_T *curhead = curbuf->b_u_curhead;
-
-+ #ifdef U_DEBUG
-+ u_check(FALSE);
-+ #endif
- old_flags = curhead->uh_flags;
- new_flags = (curbuf->b_changed ? UH_CHANGED : 0) +
- ((curbuf->b_ml.ml_flags & ML_EMPTY) ? UH_EMPTYBUF : 0);
-***************
-*** 1186,1191 ****
---- 1302,1310 ----
- /* The timestamp can be the same for multiple changes, just use the one of
- * the undone/redone change. */
- curbuf->b_u_seq_time = curhead->uh_time;
-+ #ifdef U_DEBUG
-+ u_check(FALSE);
-+ #endif
- }
-
- /*
-***************
-*** 1515,1521 ****
- }
-
- /*
-! * Free one header and its entry list and adjust the pointers.
- */
- static void
- u_freeheader(buf, uhp, uhpp)
---- 1634,1640 ----
- }
-
- /*
-! * Free one header "uhp" and its entry list and adjust the pointers.
- */
- static void
- u_freeheader(buf, uhp, uhpp)
-***************
-*** 1523,1528 ****
---- 1642,1649 ----
- u_header_T *uhp;
- u_header_T **uhpp; /* if not NULL reset when freeing this header */
- {
-+ u_header_T *uhap;
-+
- /* When there is an alternate redo list free that branch completely,
- * because we can never go there. */
- if (uhp->uh_alt_next != NULL)
-***************
-*** 1540,1546 ****
- if (uhp->uh_prev == NULL)
- buf->b_u_newhead = uhp->uh_next;
- else
-! uhp->uh_prev->uh_next = uhp->uh_next;
-
- u_freeentries(buf, uhp, uhpp);
- }
---- 1661,1668 ----
- if (uhp->uh_prev == NULL)
- buf->b_u_newhead = uhp->uh_next;
- else
-! for (uhap = uhp->uh_prev; uhap != NULL; uhap = uhap->uh_alt_next)
-! uhap->uh_next = uhp->uh_next;
-
- u_freeentries(buf, uhp, uhpp);
- }
-***************
-*** 1585,1590 ****
---- 1707,1714 ----
- /* Check for pointers to the header that become invalid now. */
- if (buf->b_u_curhead == uhp)
- buf->b_u_curhead = NULL;
-+ if (buf->b_u_newhead == uhp)
-+ buf->b_u_newhead = NULL; /* freeing the newest entry */
- if (uhpp != NULL && uhp == *uhpp)
- *uhpp = NULL;
-
-***************
-*** 1594,1599 ****
---- 1718,1726 ----
- u_freeentry(uep, uep->ue_size);
- }
-
-+ #ifdef U_DEBUG
-+ uhp->uh_magic = 0;
-+ #endif
- U_FREE_LINE((char_u *)uhp);
- --buf->b_u_numhead;
- }
-***************
-*** 1609,1614 ****
---- 1736,1744 ----
- while (n > 0)
- U_FREE_LINE(uep->ue_array[--n]);
- U_FREE_LINE((char_u *)uep->ue_array);
-+ #ifdef U_DEBUG
-+ uep->ue_magic = 0;
-+ #endif
- U_FREE_LINE((char_u *)uep);
- }
-
-*** ../vim-7.1.129/src/structs.h Sun Aug 12 15:50:26 2007
---- src/structs.h Sat Sep 29 15:03:38 2007
-***************
-*** 278,283 ****
---- 278,286 ----
- linenr_T ue_lcount; /* linecount when u_save called */
- char_u **ue_array; /* array of lines in undo block */
- long ue_size; /* number of lines in ue_array */
-+ #ifdef U_DEBUG
-+ int ue_magic; /* magic number to check allocation */
-+ #endif
- };
-
- struct u_header
-***************
-*** 300,305 ****
---- 303,311 ----
- visualinfo_T uh_visual; /* Visual areas before undo/after redo */
- #endif
- time_t uh_time; /* timestamp when the change was made */
-+ #ifdef U_DEBUG
-+ int uh_magic; /* magic number to check allocation */
-+ #endif
- };
-
- /* values for uh_flags */
-*** ../vim-7.1.129/src/version.c Mon Oct 1 20:33:45 2007
---- src/version.c Mon Oct 1 22:50:23 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 130,
- /**/
-
---
-FIRST SOLDIER: So they wouldn't be able to bring a coconut back anyway.
-SECOND SOLDIER: Wait a minute! Suppose two swallows carried it together?
-FIRST SOLDIER: No, they'd have to have it on a line.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.131
-Problem: ":mksession" always adds ":setlocal autoread". (Christian J.
- Robinson)
-Solution: Skip boolean global/local option using global value.
-Files: src/option.c
-
-
-*** ../vim-7.1.130/src/option.c Wed Sep 26 22:35:06 2007
---- src/option.c Sun Sep 30 16:21:08 2007
-***************
-*** 8753,8758 ****
---- 8753,8760 ----
- char *name;
- int value;
- {
-+ if (value < 0) /* global/local option using global value */
-+ return OK;
- if (fprintf(fd, "%s %s%s", cmd, value ? "" : "no", name) < 0
- || put_eol(fd) < 0)
- return FAIL;
-*** ../vim-7.1.130/src/version.c Mon Oct 1 22:53:27 2007
---- src/version.c Tue Oct 2 20:39:02 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 131,
- /**/
-
---
-ARTHUR: Old woman!
-DENNIS: Man!
-ARTHUR: Man. I'm sorry. Old man, What knight live in that castle over there?
-DENNIS: I'm thirty-seven.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.132
-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.1.132
-Problem: getpos("'>") may return a negative column number for a Linewise
- selection. (A.Politz)
-Solution: Don't add one to MAXCOL.
-Files: src/eval.c
-
-
-*** ../vim-7.1.131/src/eval.c Tue Sep 25 20:39:14 2007
---- src/eval.c Mon Oct 1 20:56:09 2007
-***************
-*** 10388,10394 ****
- list_append_number(l, (varnumber_T)0);
- list_append_number(l, (fp != NULL) ? (varnumber_T)fp->lnum
- : (varnumber_T)0);
-! list_append_number(l, (fp != NULL) ? (varnumber_T)fp->col + 1
- : (varnumber_T)0);
- list_append_number(l,
- #ifdef FEAT_VIRTUALEDIT
---- 10388,10395 ----
- list_append_number(l, (varnumber_T)0);
- list_append_number(l, (fp != NULL) ? (varnumber_T)fp->lnum
- : (varnumber_T)0);
-! list_append_number(l, (fp != NULL)
-! ? (varnumber_T)(fp->col == MAXCOL ? MAXCOL : fp->col + 1)
- : (varnumber_T)0);
- list_append_number(l,
- #ifdef FEAT_VIRTUALEDIT
-*** ../vim-7.1.131/src/version.c Tue Oct 2 20:40:01 2007
---- src/version.c Tue Oct 2 22:07:17 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 132,
- /**/
-
---
-"The future's already arrived - it's just not evenly distributed yet."
- -- William Gibson
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.133 (after 7.1.126)
-Problem: shorten_fname1() linked when it's not needed.
-Solution: Add #ifdef.
-Files: src/fileio.c
-
-
-*** ../vim-7.1.132/src/fileio.c Sun Sep 30 14:00:41 2007
---- src/fileio.c Sun Sep 30 16:32:43 2007
-***************
-*** 5553,5558 ****
---- 5554,5561 ----
- }
- #endif
-
-+ #if defined(FEAT_VIMINFO) || defined(FEAT_BROWSE) || \
-+ defined(FEAT_QUICKFIX) || defined(PROTO)
- /*
- * Try to find a shortname by comparing the fullname with the current
- * directory.
-***************
-*** 5573,5578 ****
---- 5576,5582 ----
- }
- return p;
- }
-+ #endif
-
- /*
- * Try to find a shortname by comparing the fullname with the current
-*** ../vim-7.1.132/src/version.c Tue Oct 2 22:07:58 2007
---- src/version.c Wed Oct 3 12:46:59 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 133,
- /**/
-
---
-"Beware of bugs in the above code; I have only proved
-it correct, not tried it." -- Donald Knuth
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.134 (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.1.134 (extra)
-Problem: Win32: Can't build with VC8
-Solution: Detect the MSVC version instead of using NMAKE_VER.
- (Mike Williams)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.1.133/src/Make_mvc.mak Tue Feb 20 03:15:08 2007
---- src/Make_mvc.mak Mon Oct 1 21:37:20 2007
-***************
-*** 92,97 ****
---- 92,99 ----
- # Netbeans Debugging Support: NBDEBUG=[yes or no] (should be no, yes
- # doesn't work)
- #
-+ # Visual C Version: MSVCVER=m.n (default derived from nmake if undefined)
-+ #
- # You can combine any of these interfaces
- #
- # Example: To build the non-debug, GUI version with Perl interface:
-***************
-*** 101,107 ****
- # This makefile gives a fineness of control which is not supported in
- # Visual C++ configuration files. Therefore, debugging requires a bit of
- # extra work.
-! # Make_dvc.mak is a Visual C++ project to access that support.
- # To use Make_dvc.mak:
- # 1) Build Vim with Make_mvc.mak.
- # Use a "DEBUG=yes" argument to build Vim with debug support.
---- 103,110 ----
- # This makefile gives a fineness of control which is not supported in
- # Visual C++ configuration files. Therefore, debugging requires a bit of
- # extra work.
-! # Make_dvc.mak is a Visual C++ project to access that support. It may be
-! # badly out of date for the Visual C++ you are using...
- # To use Make_dvc.mak:
- # 1) Build Vim with Make_mvc.mak.
- # Use a "DEBUG=yes" argument to build Vim with debug support.
-***************
-*** 198,211 ****
- !if "$(DEBUG)" != "yes"
- NODEBUG = 1
- !else
- MAKEFLAGS_GVIMEXT = DEBUG=yes
- !endif
-
-
-! # Get all sorts of useful, standard macros from the SDK. (Note that
-! # MSVC 2.2 does not install <ntwin32.mak> in the \msvc20\include
-! # directory, but you can find it in \msvc20\include on the CD-ROM.
-! # You may also need <win32.mak> from the same place.)
-
- !include <Win32.mak>
-
---- 201,212 ----
- !if "$(DEBUG)" != "yes"
- NODEBUG = 1
- !else
-+ !undef NODEBUG
- MAKEFLAGS_GVIMEXT = DEBUG=yes
- !endif
-
-
-! # Get all sorts of useful, standard macros from the Platform SDK.
-
- !include <Win32.mak>
-
-***************
-*** 272,283 ****
-
- # Set which version of the CRT to use
- !if defined(USE_MSVCRT)
-! CVARS = $(cvarsdll)
- # !elseif defined(MULTITHREADED)
- # CVARS = $(cvarsmt)
- !else
- # CVARS = $(cvars)
-! CVARS = $(cvarsmt)
- !endif
-
- # need advapi32.lib for GetUserName()
---- 273,284 ----
-
- # Set which version of the CRT to use
- !if defined(USE_MSVCRT)
-! # CVARS = $(cvarsdll)
- # !elseif defined(MULTITHREADED)
- # CVARS = $(cvarsmt)
- !else
- # CVARS = $(cvars)
-! # CVARS = $(cvarsmt)
- !endif
-
- # need advapi32.lib for GetUserName()
-***************
-*** 320,326 ****
---- 321,364 ----
- INTDIR=$(OBJDIR)
- OUTDIR=$(OBJDIR)
-
-+ # Derive version of VC being used from nmake if not specified
-+ !if "$(MSVCVER)" == ""
-+ !if "$(_NMAKE_VER)" == ""
-+ MSVCVER = 4.0
-+ !endif
-+ !if "$(_NMAKE_VER)" == "162"
-+ MSVCVER = 5.0
-+ !endif
-+ !if "$(_NMAKE_VER)" == "6.00.8168.0"
-+ MSVCVER = 6.0
-+ !endif
-+ !if "$(_NMAKE_VER)" == "7.00.9466"
-+ MSVCVER = 7.0
-+ !endif
-+ !if "$(_NMAKE_VER)" == "7.10.3077"
-+ MSVCVER = 7.1
-+ !endif
-+ !if "$(_NMAKE_VER)" == "8.00.50727.42"
-+ MSVCVER = 8.0
-+ !endif
-+ !if "$(_NMAKE_VER)" == "8.00.50727.762"
-+ MSVCVER = 8.0
-+ !endif
-+ !endif
-+
-+ # Abort bulding VIM if version of VC is unrecognised.
-+ !ifndef MSVCVER
-+ !message *** ERROR
-+ !message Cannot determine Visual C version being used. If you are using the
-+ !message Windows SDK then you must have the environment variable MSVCVER set to
-+ !message your version of the VC compiler. If you are not using the Express
-+ !message version of Visual C you van either set MSVCVER or update this makefile
-+ !message to handle the new value for _NMAKE_VER.
-+ !error Make aborted.
-+ !endif
-+
- # Convert processor ID to MVC-compatible number
-+ !if "$(MSVCVER)" != "8.0"
- !if "$(CPUNR)" == "i386"
- CPUARG = /G3
- !elseif "$(CPUNR)" == "i486"
-***************
-*** 334,339 ****
---- 372,386 ----
- !else
- CPUARG =
- !endif
-+ !else
-+ # VC8 only allows specifying SSE architecture
-+ !if "$(CPUNR)" == "pentium4"
-+ CPUARG = /arch:SSE2
-+ !endif
-+ !endif
-+
-+ LIBC =
-+ DEBUGINFO = /Zi
-
- !ifdef NODEBUG
- VIM = vim
-***************
-*** 344,384 ****
- !else # MAXSPEED
- OPTFLAG = /Ox
- !endif
- CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
- RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
- ! ifdef USE_MSVCRT
-! CFLAGS = $(CFLAGS) -MD
- LIBC = msvcrt.lib
-- # CFLAGS = $(CFLAGS) $(cvarsdll)
-- # ! elseif defined(MULTITHREADED)
-- # LIBC = libcmt.lib
-- # CFLAGS = $(CFLAGS) $(cvarsmt)
- ! else
-- # LIBC = libc.lib
- LIBC = libcmt.lib
-! # CFLAGS = $(CFLAGS) $(cvars)
- ! endif
- !else # DEBUG
- VIM = vimd
- CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
- RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG
- # The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0.
-! ! if "$(_NMAKE_VER)" == ""
- LIBC =
- ! else
- LIBC = /fixed:no
- ! endif
- ! ifdef USE_MSVCRT
-! CFLAGS = $(CFLAGS) -MDd
- LIBC = $(LIBC) msvcrtd.lib
-- # CFLAGS = $(CFLAGS) $(cvarsdll)
-- # ! elseif defined(MULTITHREADED)
-- # LIBC = $(LIBC) libcmtd.lib
-- # CFLAGS = $(CFLAGS) $(cvarsmt)
- ! else
-- # LIBC = $(LIBC) libcd.lib
- LIBC = $(LIBC) libcmtd.lib
-! # CFLAGS = $(CFLAGS) $(cvars)
- ! endif
- !endif # DEBUG
-
---- 391,430 ----
- !else # MAXSPEED
- OPTFLAG = /Ox
- !endif
-+ !if "$(MSVCVER)" == "8.0"
-+ # Use link time code generation if not worried about size
-+ !if "$(OPTIMIZE)" != "SPACE"
-+ OPTFLAG = $(OPTFLAG) /GL
-+ !endif
-+ !endif
- CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
- RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
- ! ifdef USE_MSVCRT
-! CFLAGS = $(CFLAGS) /MD
- LIBC = msvcrt.lib
- ! else
- LIBC = libcmt.lib
-! CFLAGS = $(CFLAGS) /MT
- ! endif
- !else # DEBUG
- VIM = vimd
-+ ! if "$(CPU)" == "i386"
-+ DEBUGINFO = /ZI
-+ ! endif
- CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
- RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG
- # The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0.
-! ! if "$(MSVCVER)" == "4.0"
- LIBC =
- ! else
- LIBC = /fixed:no
- ! endif
- ! ifdef USE_MSVCRT
-! CFLAGS = $(CFLAGS) /MDd
- LIBC = $(LIBC) msvcrtd.lib
- ! else
- LIBC = $(LIBC) libcmtd.lib
-! CFLAGS = $(CFLAGS) /MTd
- ! endif
- !endif # DEBUG
-
-***************
-*** 681,696 ****
- #
- # Always generate the .pdb file, so that we get debug symbols that can be used
- # on a crash (doesn't add overhead to the executable).
- #
-! CFLAGS = $(CFLAGS) /Zi /Fd$(OUTDIR)/
-! LINK_PDB = /PDB:$(VIM).pdb -debug # -debug:full -debugtype:cv,fixup
-
- #
- # End extra feature include
- #
- !message
-
-! conflags = /nologo /subsystem:$(SUBSYSTEM) /incremental:no
-
- PATHDEF_SRC = $(OUTDIR)\pathdef.c
-
---- 727,744 ----
- #
- # Always generate the .pdb file, so that we get debug symbols that can be used
- # on a crash (doesn't add overhead to the executable).
-+ # Generate edit-and-continue debug info when no optimization - allows to
-+ # debug more conveniently (able to look at variables which are in registers)
- #
-! CFLAGS = $(CFLAGS) /Fd$(OUTDIR)/ $(DEBUGINFO)
-! LINK_PDB = /PDB:$(VIM).pdb -debug
-
- #
- # End extra feature include
- #
- !message
-
-! conflags = /nologo /subsystem:$(SUBSYSTEM)
-
- PATHDEF_SRC = $(OUTDIR)\pathdef.c
-
-***************
-*** 702,712 ****
- conflags = $(conflags) /map /mapinfo:lines
- !ENDIF
-
-! LINKARGS1 = $(linkdebug) $(conflags) /nodefaultlib:libc
- LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \
- $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) \
- $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
-
- all: $(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe \
- GvimExt/gvimext.dll
-
---- 750,769 ----
- conflags = $(conflags) /map /mapinfo:lines
- !ENDIF
-
-! LINKARGS1 = $(linkdebug) $(conflags)
- LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \
- $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) \
- $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
-
-+ # Report link time code generation progress if used.
-+ !ifdef NODEBUG
-+ !if "$(MSVCVER)" == "8.0"
-+ !if "$(OPTIMIZE)" != "SPACE"
-+ LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
-+ !endif
-+ !endif
-+ !endif
-+
- all: $(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe \
- GvimExt/gvimext.dll
-
-***************
-*** 794,800 ****
-
- # Create a default rule for transforming .c files to .obj files in $(OUTDIR)
- # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
-! !IF "$(_NMAKE_VER)" == ""
- .c{$(OUTDIR)/}.obj:
- !ELSE
- .c{$(OUTDIR)/}.obj::
---- 851,857 ----
-
- # Create a default rule for transforming .c files to .obj files in $(OUTDIR)
- # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
-! !IF "$(MSVCVER)" == "4.0"
- .c{$(OUTDIR)/}.obj:
- !ELSE
- .c{$(OUTDIR)/}.obj::
-***************
-*** 803,809 ****
-
- # Create a default rule for transforming .cpp files to .obj files in $(OUTDIR)
- # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
-! !IF "$(_NMAKE_VER)" == ""
- .cpp{$(OUTDIR)/}.obj:
- !ELSE
- .cpp{$(OUTDIR)/}.obj::
---- 860,866 ----
-
- # Create a default rule for transforming .cpp files to .obj files in $(OUTDIR)
- # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
-! !IF "$(MSVCVER)" == "4.0"
- .cpp{$(OUTDIR)/}.obj:
- !ELSE
- .cpp{$(OUTDIR)/}.obj::
-*** ../vim-7.1.133/src/version.c Wed Oct 3 12:49:24 2007
---- src/version.c Wed Oct 3 13:23:51 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 134,
- /**/
-
---
-BLACK KNIGHT: The Black Knight always triumphs. Have at you!
- ARTHUR takes his last leg off. The BLACK KNIGHT's body lands upright.
-BLACK KNIGHT: All right, we'll call it a draw.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 7.1.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.1.135
-Problem: Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two
- buffers for the same file. (Suresh Govindachar)
-Solution: Invoke FullName_save() when a path contains "//" or "\\".
-Files: src/buffer.c
-
-
-*** ../vim-7.1.134/src/buffer.c Sun Sep 30 14:00:41 2007
---- src/buffer.c Wed Oct 3 14:24:52 2007
-***************
-*** 4175,4203 ****
- * mess up the full path name, even though it starts with a '/'.
- * Also expand when there is ".." in the file name, try to remove it,
- * because "c:/src/../README" is equal to "c:/README".
- * For MS-Windows also expand names like "longna~1" to "longname".
- */
- #ifdef UNIX
- return FullName_save(fname, TRUE);
- #else
-! if (!vim_isAbsName(fname) || strstr((char *)fname, "..") != NULL
-! #if defined(MSWIN) || defined(DJGPP)
- || vim_strchr(fname, '~') != NULL
-! #endif
- )
- return FullName_save(fname, FALSE);
-
- fname = vim_strsave(fname);
-
-! #ifdef USE_FNAME_CASE
-! # ifdef USE_LONG_FNAME
- if (USE_LONG_FNAME)
-! # endif
- {
- if (fname != NULL)
- fname_case(fname, 0); /* set correct case for file name */
- }
-! #endif
-
- return fname;
- #endif
---- 4175,4209 ----
- * mess up the full path name, even though it starts with a '/'.
- * Also expand when there is ".." in the file name, try to remove it,
- * because "c:/src/../README" is equal to "c:/README".
-+ * Similarly "c:/src//file" is equal to "c:/src/file".
- * For MS-Windows also expand names like "longna~1" to "longname".
- */
- #ifdef UNIX
- return FullName_save(fname, TRUE);
- #else
-! if (!vim_isAbsName(fname)
-! || strstr((char *)fname, "..") != NULL
-! || strstr((char *)fname, "//") != NULL
-! # ifdef BACKSLASH_IN_FILENAME
-! || strstr((char *)fname, "\\\\") != NULL
-! # endif
-! # if defined(MSWIN) || defined(DJGPP)
- || vim_strchr(fname, '~') != NULL
-! # endif
- )
- return FullName_save(fname, FALSE);
-
- fname = vim_strsave(fname);
-
-! # ifdef USE_FNAME_CASE
-! # ifdef USE_LONG_FNAME
- if (USE_LONG_FNAME)
-! # endif
- {
- if (fname != NULL)
- fname_case(fname, 0); /* set correct case for file name */
- }
-! # endif
-
- return fname;
- #endif
-*** ../vim-7.1.134/src/version.c Wed Oct 3 13:28:40 2007
---- src/version.c Wed Oct 3 14:26:54 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 135,
- /**/
-
---
- A village. Sound of chanting of Latin canon, punctuated by short, sharp
- cracks. It comes nearer. We see it is a line of MONKS ala SEVENTH SEAL
- flagellation scene, chanting and banging themselves on the foreheads with
- wooden boards.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.136
-Problem: Memory leak when using Ruby syntax highlighting. (Dominique Pelle)
-Solution: Free the contained-in list.
-Files: src/syntax.c
-
-
-*** ../vim-7.1.135/src/syntax.c Thu Aug 30 19:36:52 2007
---- src/syntax.c Sun Oct 7 15:10:54 2007
-***************
-*** 3354,3359 ****
---- 3354,3360 ----
- {
- vim_free(SYN_ITEMS(buf)[i].sp_cont_list);
- vim_free(SYN_ITEMS(buf)[i].sp_next_list);
-+ vim_free(SYN_ITEMS(buf)[i].sp_syn.cont_in_list);
- }
- }
-
-*** ../vim-7.1.135/src/version.c Wed Oct 3 14:30:54 2007
---- src/version.c Sun Oct 7 15:20:22 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 136,
- /**/
-
---
-Every engineer dreams about saving the universe and having sex with aliens.
-This is much more glamorous than the real life of an engineer, which consists
-of hiding from the universe and having sex without the participation of other
-life forms. (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.137
-Problem: Build failure when using EXITFREE. (Dominique Pelle)
-Solution: Add an #ifdef around using clip_exclude_prog.
-Files: src/misc2.c
-
-
-*** ../vim-7.1.136/src/misc2.c Sat Sep 29 14:15:00 2007
---- src/misc2.c Sun Sep 30 18:00:09 2007
-***************
-*** 1037,1043 ****
---- 1038,1046 ----
-
- /* Free some global vars. */
- vim_free(username);
-+ # ifdef FEAT_CLIPBOARD
- vim_free(clip_exclude_prog);
-+ # endif
- vim_free(last_cmdline);
- vim_free(new_last_cmdline);
- set_keep_msg(NULL, 0);
-*** ../vim-7.1.136/src/version.c Sun Oct 7 15:21:31 2007
---- src/version.c Sun Oct 7 15:42:26 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 137,
- /**/
-
---
-For society, it's probably a good thing that engineers value function over
-appearance. For example, you wouldn't want engineers to build nuclear power
-plants that only _look_ like they would keep all the radiation inside.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.138
-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.1.138
-Problem: The Perl Msg() function doesn't stop when "q" is typed at the more
- prompt. (Hari Krishna Dara)
-Solution: Check got_int.
-Files: src/if_perl.xs
-
-
-*** ../vim-7.1.137/src/if_perl.xs Sat Sep 15 14:48:57 2007
---- src/if_perl.xs Wed Oct 3 17:00:16 2007
-***************
-*** 445,457 ****
- char *next;
- char *token = (char *)s;
-
-! while ((next = strchr(token, '\n')))
- {
- *next++ = '\0'; /* replace \n with \0 */
- msg_attr((char_u *)token, attr);
- token = next;
- }
-! if (*token)
- msg_attr((char_u *)token, attr);
- }
-
---- 445,457 ----
- char *next;
- char *token = (char *)s;
-
-! while ((next = strchr(token, '\n')) && !got_int)
- {
- *next++ = '\0'; /* replace \n with \0 */
- msg_attr((char_u *)token, attr);
- token = next;
- }
-! if (*token && !got_int)
- msg_attr((char_u *)token, attr);
- }
-
-*** ../vim-7.1.137/src/version.c Sun Oct 7 15:44:28 2007
---- src/version.c Tue Oct 9 10:45:08 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 138,
- /**/
-
---
-A consultant is a person who takes your money and annoys your employees while
-tirelessly searching for the best way to extend the consulting contract.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.139
-Problem: When using marker folding and ending Insert mode with CTRL-C the
- current fold is truncated. (Fred Kater)
-Solution: Ignore got_int while updating folds.
-Files: src/fold.c
-
-
-*** ../vim-7.1.138/src/fold.c Thu May 10 21:02:13 2007
---- src/fold.c Sun Oct 14 15:27:13 2007
-***************
-*** 858,864 ****
---- 858,871 ----
- || foldmethodIsDiff(wp)
- #endif
- || foldmethodIsSyntax(wp))
-+ {
-+ int save_got_int = got_int;
-+
-+ /* reset got_int here, otherwise it won't work */
-+ got_int = FALSE;
- foldUpdateIEMS(wp, top, bot);
-+ got_int |= save_got_int;
-+ }
- }
-
- /* foldUpdateAll() {{{2 */
-*** ../vim-7.1.138/src/version.c Tue Oct 9 10:46:39 2007
---- src/version.c Sun Oct 14 15:31:18 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 139,
- /**/
-
---
-If Pacman had affected us as kids we'd be running around in dark rooms,
-munching pills and listening to repetitive music.
- -- Marcus Brigstocke
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.140
-Problem: v:count is set only after typing a non-digit, that makes it
- difficult to make a nice mapping.
-Solution: Set v:count while still typing the count.
-Files: src/normal.c
-
-
-*** ../vim-7.1.139/src/normal.c Thu Sep 13 18:25:08 2007
---- src/normal.c Sun Oct 14 17:15:36 2007
-***************
-*** 690,695 ****
---- 690,702 ----
- ca.count0 = ca.count0 * 10 + (c - '0');
- if (ca.count0 < 0) /* got too large! */
- ca.count0 = 999999999L;
-+ #ifdef FEAT_EVAL
-+ /* Set v:count here, when called from main() and not a stuffed
-+ * command, so that v:count can be used in an expression mapping
-+ * right after the count. */
-+ if (toplevel && stuff_empty())
-+ set_vcount(ca.count0, ca.count0 == 0 ? 1 : ca.count0);
-+ #endif
- if (ctrl_w)
- {
- ++no_mapping;
-*** ../vim-7.1.139/src/version.c Sun Oct 14 15:32:10 2007
---- src/version.c Sun Oct 14 17:13:15 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 140,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-11. Specify that your drive-through order is "to go".
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.141
-Problem: GTK: -geom argument doesn't support a negative offset.
-Solution: Compute position from the right/lower corner.
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.1.140/src/gui_gtk_x11.c Sat Sep 15 14:06:41 2007
---- src/gui_gtk_x11.c Mon Oct 8 21:26:50 2007
-***************
-*** 4044,4049 ****
---- 4044,4051 ----
- unsigned int w, h;
- int x = 0;
- int y = 0;
-+ guint pixel_width;
-+ guint pixel_height;
-
- mask = XParseGeometry((char *)gui.geom, &x, &y, &w, &h);
-
-***************
-*** 4055,4066 ****
---- 4057,4087 ----
- p_window = h - 1;
- Rows = h;
- }
-+
-+ pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width);
-+ pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height);
-+
-+ #ifdef HAVE_GTK2
-+ pixel_width += get_menu_tool_width();
-+ pixel_height += get_menu_tool_height();
-+ #endif
-+
- if (mask & (XValue | YValue))
-+ {
-+ int w, h;
-+ gui_mch_get_screen_dimensions(&w, &h);
-+ h += p_ghr + get_menu_tool_height();
-+ w += get_menu_tool_width();
-+ if (mask & XNegative)
-+ x += w - pixel_width;
-+ if (mask & YNegative)
-+ y += h - pixel_height;
- #ifdef HAVE_GTK2
- gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
- #else
- gtk_widget_set_uposition(gui.mainwin, x, y);
- #endif
-+ }
- vim_free(gui.geom);
- gui.geom = NULL;
-
-***************
-*** 4071,4084 ****
- */
- if (gtk_socket_id != 0 && (mask & WidthValue || mask & HeightValue))
- {
-- guint pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width);
-- guint pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height);
--
-- #ifdef HAVE_GTK2
-- pixel_width += get_menu_tool_width();
-- pixel_height += get_menu_tool_height();
-- #endif
--
- update_window_manager_hints(pixel_width, pixel_height);
- init_window_hints_state = 1;
- g_timeout_add(1000, check_startup_plug_hints, NULL);
---- 4092,4097 ----
-*** ../vim-7.1.140/src/version.c Sun Oct 14 17:15:45 2007
---- src/version.c Fri Oct 19 14:28:52 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 141,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-35. Your husband tells you he's had the beard for 2 months.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.142
-Problem: ":redir @A>" doesn't work.
-Solution: Ignore the extra ">" also when appending. (James Vega)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.141/src/ex_docmd.c Sun Sep 30 14:00:41 2007
---- src/ex_docmd.c Tue Oct 9 11:09:09 2007
-***************
-*** 8426,8446 ****
- || *arg == '"')
- {
- redir_reg = *arg++;
-! if (*arg == '>' && arg[1] == '>')
- arg += 2;
-! else if ((*arg == NUL || (*arg == '>' && arg[1] == NUL)) &&
-! (islower(redir_reg)
-! # ifdef FEAT_CLIPBOARD
-! || redir_reg == '*'
-! || redir_reg == '+'
-! # endif
-! || redir_reg == '"'))
- {
- if (*arg == '>')
- arg++;
-!
-! /* make register empty */
-! write_reg_contents(redir_reg, (char_u *)"", -1, FALSE);
- }
- }
- if (*arg != NUL)
---- 8426,8442 ----
- || *arg == '"')
- {
- redir_reg = *arg++;
-! if (*arg == '>' && arg[1] == '>') /* append */
- arg += 2;
-! else
- {
-+ /* Can use both "@a" and "@a>". */
- if (*arg == '>')
- arg++;
-! /* Make register empty when not using @A-@Z and the
-! * command is valid. */
-! if (*arg == NUL && !isupper(redir_reg))
-! write_reg_contents(redir_reg, (char_u *)"", -1, FALSE);
- }
- }
- if (*arg != NUL)
-*** ../vim-7.1.141/src/version.c Fri Oct 19 14:32:50 2007
---- src/version.c Fri Oct 19 16:18:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 142,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-36. You miss more than five meals a week downloading the latest games from
- Apogee.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.143
-Problem: Uninitialized memory read when diffing three files. (Dominique
- Pelle)
-Solution: Remove "+ !notset" so that we don't use fields that were not
- computed.
-Files: src/diff.c
-
-
-*** ../vim-7.1.142/src/diff.c Sat Sep 29 14:15:00 2007
---- src/diff.c Sun Oct 14 21:52:56 2007
-***************
-*** 1310,1316 ****
- dp->df_count[idx_new] += -off;
- off = 0;
- }
-! for (i = idx_orig; i < idx_new + !notset; ++i)
- if (curtab->tp_diffbuf[i] != NULL)
- dp->df_count[i] = dpl->df_lnum[i] + dpl->df_count[i]
- - dp->df_lnum[i] + off;
---- 1310,1316 ----
- dp->df_count[idx_new] += -off;
- off = 0;
- }
-! for (i = idx_orig; i < idx_new; ++i)
- if (curtab->tp_diffbuf[i] != NULL)
- dp->df_count[i] = dpl->df_lnum[i] + dpl->df_count[i]
- - dp->df_lnum[i] + off;
-*** ../vim-7.1.142/src/version.c Fri Oct 19 16:20:09 2007
---- src/version.c Fri Oct 19 17:32:18 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 143,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-37. You start looking for hot HTML addresses in public restrooms.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.144
-Problem: After ":diffup" cursor can be in the wrong position.
-Solution: Force recomputing the cursor position.
-Files: src/diff.c
-
-
-*** ../vim-7.1.143/src/diff.c Fri Oct 19 17:32:58 2007
---- src/diff.c Fri Oct 19 18:54:13 2007
-***************
-*** 791,796 ****
---- 791,799 ----
- }
- mch_remove(tmp_orig);
-
-+ /* force updating cursor position on screen */
-+ curwin->w_valid_cursor.lnum = 0;
-+
- diff_redraw(TRUE);
-
- theend:
-*** ../vim-7.1.143/src/version.c Fri Oct 19 17:32:58 2007
---- src/version.c Fri Oct 19 18:56:49 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 144,
- /**/
-
---
-He who laughs last, thinks slowest.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.145
-Problem: Insert mode completion: When using the popup menu, after
- completing a word and typing a non-word character Vim is still
- completing the same word, following CTRL-N doesn't work.
- Insert mode Completion: When using CTRL-X O and there is only
- "struct." before the cursor, typing one char to reduce the
- matches, then BS completion stops.
-Solution: When typing a character that is not part of the item being
- completed, stop complete mode. For whole line completion also
- accept a space. For file name completion stop at a path
- separator.
- For omni completion stay in completion mode even if completing
- with empty string.
-Files: src/edit.c
-
-
-*** ../vim-7.1.144/src/edit.c Thu Sep 13 18:25:08 2007
---- src/edit.c Fri Oct 19 16:04:38 2007
-***************
-*** 129,134 ****
---- 129,135 ----
-
- static void ins_ctrl_x __ARGS((void));
- static int has_compl_option __ARGS((int dict_opt));
-+ static int ins_compl_accept_char __ARGS((int c));
- static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int adup));
- static int ins_compl_equal __ARGS((compl_T *match, char_u *str, int len));
- static void ins_compl_longest_match __ARGS((compl_T *match));
-***************
-*** 754,761 ****
- continue;
- }
-
-! /* A printable, non-white character: Add to "compl_leader". */
-! if (vim_isprintc(c) && !vim_iswhite(c))
- {
- ins_compl_addleader(c);
- continue;
---- 755,763 ----
- continue;
- }
-
-! /* A non-white character that fits in with the current
-! * completion: Add to "compl_leader". */
-! if (ins_compl_accept_char(c))
- {
- ins_compl_addleader(c);
- continue;
-***************
-*** 2053,2058 ****
---- 2055,2094 ----
- }
-
- /*
-+ * Return TRUE when character "c" is part of the item currently being
-+ * completed. Used to decide whether to abandon complete mode when the menu
-+ * is visible.
-+ */
-+ static int
-+ ins_compl_accept_char(c)
-+ int c;
-+ {
-+ if (ctrl_x_mode & CTRL_X_WANT_IDENT)
-+ /* When expanding an identifier only accept identifier chars. */
-+ return vim_isIDc(c);
-+
-+ switch (ctrl_x_mode)
-+ {
-+ case CTRL_X_FILES:
-+ /* When expanding file name only accept file name chars. But not
-+ * path separators, so that "proto/<Tab>" expands files in
-+ * "proto", not "proto/" as a whole */
-+ return vim_isfilec(c) && !vim_ispathsep(c);
-+
-+ case CTRL_X_CMDLINE:
-+ case CTRL_X_OMNI:
-+ /* Command line and Omni completion can work with just about any
-+ * printable character, but do stop at white space. */
-+ return vim_isprintc(c) && !vim_iswhite(c);
-+
-+ case CTRL_X_WHOLE_LINE:
-+ /* For while line completion a space can be part of the line. */
-+ return vim_isprintc(c);
-+ }
-+ return vim_iswordc(c);
-+ }
-+
-+ /*
- * This is like ins_compl_add(), but if 'ic' and 'inf' are set, then the
- * case of the originally typed text is used, and the case of the completed
- * text is inferred, ie this tries to work out what case you probably wanted
-***************
-*** 3128,3135 ****
- p = line + curwin->w_cursor.col;
- mb_ptr_back(line, p);
-
-! /* Stop completion when the whole word was deleted. */
-! if ((int)(p - line) - (int)compl_col <= 0)
- return K_BS;
-
- /* Deleted more than what was used to find matches or didn't finish
---- 3164,3174 ----
- p = line + curwin->w_cursor.col;
- mb_ptr_back(line, p);
-
-! /* Stop completion when the whole word was deleted. For Omni completion
-! * allow the word to be deleted, we won't match everything. */
-! if ((int)(p - line) - (int)compl_col < 0
-! || ((int)(p - line) - (int)compl_col == 0
-! && (ctrl_x_mode & CTRL_X_OMNI) == 0))
- return K_BS;
-
- /* Deleted more than what was used to find matches or didn't finish
-***************
-*** 4591,4604 ****
- curs_col = curwin->w_cursor.col;
- compl_pending = 0;
-
-! /* if this same ctrl_x_mode has been interrupted use the text from
- * "compl_startpos" to the cursor as a pattern to add a new word
- * instead of expand the one before the cursor, in word-wise if
-! * "compl_startpos"
-! * is not in the same line as the cursor then fix it (the line has
-! * been split because it was longer than 'tw'). if SOL is set then
-! * skip the previous pattern, a word at the beginning of the line has
-! * been inserted, we'll look for that -- Acevedo. */
- if ((compl_cont_status & CONT_INTRPT) == CONT_INTRPT
- && compl_cont_mode == ctrl_x_mode)
- {
---- 4630,4642 ----
- curs_col = curwin->w_cursor.col;
- compl_pending = 0;
-
-! /* If this same ctrl_x_mode has been interrupted use the text from
- * "compl_startpos" to the cursor as a pattern to add a new word
- * instead of expand the one before the cursor, in word-wise if
-! * "compl_startpos" is not in the same line as the cursor then fix it
-! * (the line has been split because it was longer than 'tw'). if SOL
-! * is set then skip the previous pattern, a word at the beginning of
-! * the line has been inserted, we'll look for that -- Acevedo. */
- if ((compl_cont_status & CONT_INTRPT) == CONT_INTRPT
- && compl_cont_mode == ctrl_x_mode)
- {
-*** ../vim-7.1.144/src/version.c Fri Oct 19 18:57:33 2007
---- src/version.c Fri Oct 19 20:38:21 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 145,
- /**/
-
---
-Micro$oft: where do you want to go today?
- Linux: where do you want to go tomorrow?
- FreeBSD: are you guys coming, or what?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.146 (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.1.146 (extra)
-Problem: VMS: Files with a very rare record organization (VFC) cannot be
- properly written by Vim.
- On older VAX systems mms runs into a syntax error.
-Solution: Check for this special situation. Do not wrap a comment, make it
- one long line. (Zoltan Arpadffy)
-Files: src/fileio.c, src/Make_vms.mms
-
-
-*** ../vim-7.1.145/src/fileio.c Wed Oct 3 12:49:24 2007
---- src/fileio.c Mon Oct 22 21:10:00 2007
-***************
-*** 4251,4257 ****
- * they don't it adds one.
- * With other RMS structures it works perfect without this fix.
- */
-! if ((buf->b_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0)
- {
- int b2write;
-
---- 4252,4259 ----
- * they don't it adds one.
- * With other RMS structures it works perfect without this fix.
- */
-! if (buf->b_fab_rfm == FAB$C_VFC
-! || ((buf->b_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0))
- {
- int b2write;
-
-*** ../vim-7.1.145/src/Make_vms.mms Thu May 10 20:47:35 2007
---- src/Make_vms.mms Mon Oct 22 21:13:08 2007
-***************
-*** 2,8 ****
- # Makefile for Vim on OpenVMS
- #
- # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
-! # Last change: 2007 May 07
- #
- # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
- # with MMS and MMK
---- 2,8 ----
- # Makefile for Vim on OpenVMS
- #
- # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
-! # Last change: 2007 Oct 22
- #
- # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
- # with MMS and MMK
-***************
-*** 96,103 ****
-
- .IFDEF MMSVAX
- .IFDEF DECC # VAX with DECC
-! CC_DEF = cc # /decc # some system requires this switch
-! # but when it is not required /ver might fail
- PREFIX = /prefix=all
- .ELSE # VAX with VAXC
- CC_DEF = cc
---- 96,102 ----
-
- .IFDEF MMSVAX
- .IFDEF DECC # VAX with DECC
-! CC_DEF = cc # /decc # some system requires this switch but when it is not required /ver might fail
- PREFIX = /prefix=all
- .ELSE # VAX with VAXC
- CC_DEF = cc
-*** ../vim-7.1.145/src/version.c Fri Oct 19 20:39:56 2007
---- src/version.c Mon Oct 29 22:36:20 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 146,
- /**/
-
---
-Be thankful to be in a traffic jam, because it means you own a car.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.147 (after 7.1.127)
-Problem: Freeing memory already freed when completing user name. (Meino
- Cramer)
-Solution: Use a flag to remember if "orig" needs to be freed.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.146/src/ex_getln.c Sun Sep 30 22:10:45 2007
---- src/ex_getln.c Tue Oct 30 17:13:33 2007
-***************
-*** 3353,3358 ****
---- 3353,3359 ----
- char_u *ss = NULL;
- static int findex;
- static char_u *orig_save = NULL; /* kept value of orig */
-+ int orig_saved = FALSE;
- int i;
- long_u len;
- int non_suf_match; /* number without matching suffix */
-***************
-*** 3421,3426 ****
---- 3422,3428 ----
- {
- vim_free(orig_save);
- orig_save = orig;
-+ orig_saved = TRUE;
-
- /*
- * Do the expansion.
-***************
-*** 3546,3552 ****
- ExpandCleanup(xp);
-
- /* Free "orig" if it wasn't stored in "orig_save". */
-! if (orig != orig_save)
- vim_free(orig);
-
- return ss;
---- 3548,3554 ----
- ExpandCleanup(xp);
-
- /* Free "orig" if it wasn't stored in "orig_save". */
-! if (!orig_saved)
- vim_free(orig);
-
- return ss;
-*** ../vim-7.1.146/src/version.c Mon Oct 29 22:37:57 2007
---- src/version.c Tue Oct 30 17:30:35 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 147,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-59. Your wife says communication is important in a marriage...so you buy
- another computer and install a second phone line so the two of you can
- chat.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.148
-Problem: Some types are not found by configure.
-Solution: Test for the sys/types.h header file. (Sean Boudreau)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.1.147/src/configure.in Thu Jun 28 13:02:22 2007
---- src/configure.in Sat Oct 27 15:52:16 2007
-***************
-*** 2026,2032 ****
- fi
-
- AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
-! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h termio.h \
- iconv.h langinfo.h unistd.h stropts.h errno.h \
- sys/resource.h sys/systeminfo.h locale.h \
- sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
---- 2026,2032 ----
- fi
-
- AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
-! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
- iconv.h langinfo.h unistd.h stropts.h errno.h \
- sys/resource.h sys/systeminfo.h locale.h \
- sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
-*** ../vim-7.1.147/src/auto/configure Thu Jun 28 13:02:22 2007
---- src/auto/configure Sun Nov 4 15:34:14 2007
-***************
-*** 10265,10272 ****
-
-
-
- for ac_header in stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
-! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h termio.h \
- iconv.h langinfo.h unistd.h stropts.h errno.h \
- sys/resource.h sys/systeminfo.h locale.h \
- sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
---- 10265,10273 ----
-
-
-
-+
- for ac_header in stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
-! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
- iconv.h langinfo.h unistd.h stropts.h errno.h \
- sys/resource.h sys/systeminfo.h locale.h \
- sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
-*** ../vim-7.1.147/src/version.c Tue Oct 30 17:36:31 2007
---- src/version.c Sun Nov 4 15:34:26 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 148,
- /**/
-
---
-If your nose runs, and your feet smell, you might be upside down.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.149
-Problem: GTK GUI: When the completion popup menu is used scrolling another
- window by the scrollbar is OK, but using the scroll wheel it
- behaves line <Enter>.
-Solution: Ignore K_MOUSEDOWN and K_MOUSEUP. Fix redrawing the popup menu.
-Files: src/edit.c, src/gui.c
-
-
-*** ../vim-7.1.148/src/edit.c Fri Oct 19 20:39:56 2007
---- src/edit.c Sun Nov 4 16:17:42 2007
-***************
-*** 3385,3392 ****
- if (c != Ctrl_R && vim_is_ctrl_x_key(c))
- edit_submode_extra = NULL;
-
-! /* Ignore end of Select mode mapping */
-! if (c == K_SELECT)
- return retval;
-
- /* Set "compl_get_longest" when finding the first matches. */
---- 3385,3392 ----
- if (c != Ctrl_R && vim_is_ctrl_x_key(c))
- edit_submode_extra = NULL;
-
-! /* Ignore end of Select mode mapping and mouse scroll buttons. */
-! if (c == K_SELECT || c == K_MOUSEDOWN || c == K_MOUSEUP)
- return retval;
-
- /* Set "compl_get_longest" when finding the first matches. */
-***************
-*** 8652,8666 ****
- int up;
- {
- pos_T tpos;
-! # if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
-! win_T *old_curwin;
- # endif
-
- tpos = curwin->w_cursor;
-
- # if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
-- old_curwin = curwin;
--
- /* Currently the mouse coordinates are only known in the GUI. */
- if (gui.in_use && mouse_row >= 0 && mouse_col >= 0)
- {
---- 8652,8667 ----
- int up;
- {
- pos_T tpos;
-! # if defined(FEAT_WINDOWS)
-! win_T *old_curwin = curwin;
-! # endif
-! # ifdef FEAT_INS_EXPAND
-! int did_scroll = FALSE;
- # endif
-
- tpos = curwin->w_cursor;
-
- # if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
- /* Currently the mouse coordinates are only known in the GUI. */
- if (gui.in_use && mouse_row >= 0 && mouse_col >= 0)
- {
-***************
-*** 8677,8692 ****
- # endif
- undisplay_dollar();
-
-! if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
-! scroll_redraw(up, (long)(curwin->w_botline - curwin->w_topline));
-! else
-! scroll_redraw(up, 3L);
-
- # if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
- curwin->w_redr_status = TRUE;
-
- curwin = old_curwin;
- curbuf = curwin->w_buffer;
- # endif
-
- if (!equalpos(curwin->w_cursor, tpos))
---- 8678,8717 ----
- # endif
- undisplay_dollar();
-
-! # ifdef FEAT_INS_EXPAND
-! /* Don't scroll the window in which completion is being done. */
-! if (!pum_visible()
-! # if defined(FEAT_WINDOWS)
-! || curwin != old_curwin
-! # endif
-! )
-! # endif
-! {
-! if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
-! scroll_redraw(up, (long)(curwin->w_botline - curwin->w_topline));
-! else
-! scroll_redraw(up, 3L);
-! # ifdef FEAT_INS_EXPAND
-! did_scroll = TRUE;
-! # endif
-! }
-
- # if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
- curwin->w_redr_status = TRUE;
-
- curwin = old_curwin;
- curbuf = curwin->w_buffer;
-+ # endif
-+
-+ # ifdef FEAT_INS_EXPAND
-+ /* The popup menu may overlay the window, need to redraw it.
-+ * TODO: Would be more efficient to only redraw the windows that are
-+ * overlapped by the popup menu. */
-+ if (pum_visible() && did_scroll)
-+ {
-+ redraw_all_later(NOT_VALID);
-+ ins_compl_show_pum();
-+ }
- # endif
-
- if (!equalpos(curwin->w_cursor, tpos))
-*** ../vim-7.1.148/src/gui.c Wed Sep 5 21:45:54 2007
---- src/gui.c Fri Oct 19 16:14:57 2007
-***************
-*** 4214,4220 ****
- #endif
- )
- {
-! redraw_win_later(wp, VALID);
- updateWindow(wp); /* update window, status line, and cmdline */
- }
-
---- 4214,4232 ----
- #endif
- )
- {
-! int type = VALID;
-!
-! #ifdef FEAT_INS_EXPAND
-! if (pum_visible())
-! {
-! type = NOT_VALID;
-! wp->w_lines_valid = 0;
-! }
-! #endif
-! /* Don't set must_redraw here, it may cause the popup menu to
-! * disappear when losing focus after a scrollbar drag. */
-! if (wp->w_redr_type < type)
-! wp->w_redr_type = type;
- updateWindow(wp); /* update window, status line, and cmdline */
- }
-
-*** ../vim-7.1.148/src/version.c Sun Nov 4 15:35:23 2007
---- src/version.c Tue Nov 6 22:21:03 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 149,
- /**/
-
---
-From "know your smileys":
- ...---... SOS
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.150
-Problem: When 'clipboard' has "unnamed" using "p" in Visual mode doesn't
- work correctly. (Jianrong Yu)
-Solution: When 'clipboard' has "unnamed" also obtain the selection when
- getting the default register.
-Files: src/ops.c
-
-
-*** ../vim-7.1.149/src/ops.c Tue Sep 25 14:19:35 2007
---- src/ops.c Sun Oct 28 13:58:35 2007
-***************
-*** 933,941 ****
- #ifdef FEAT_CLIPBOARD
- /* When Visual area changed, may have to update selection. Obtain the
- * selection too. */
-! if (name == '*' && clip_star.available && clip_isautosel())
- {
-! clip_update_selection();
- may_get_selection(name);
- }
- #endif
---- 933,942 ----
- #ifdef FEAT_CLIPBOARD
- /* When Visual area changed, may have to update selection. Obtain the
- * selection too. */
-! if (name == '*' && clip_star.available)
- {
-! if (clip_isautosel())
-! clip_update_selection();
- may_get_selection(name);
- }
- #endif
-*** ../vim-7.1.149/src/version.c Tue Nov 6 22:26:39 2007
---- src/version.c Thu Nov 8 10:34:18 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 150,
- /**/
-
---
-From "know your smileys":
- 8<}} Glasses, big nose, beard
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.151
-Problem: Using whole line completion with 'ignorecase' and 'infercase' set
- and the line is empty get an lalloc(0) error.
-Solution: Don't try changing case for an empty match. (Matthew Wozniski)
-Files: src/edit.c
-
-
-*** ../vim-7.1.150/src/edit.c Tue Nov 6 22:26:39 2007
---- src/edit.c Sun Nov 4 16:17:42 2007
-***************
-*** 2111,2117 ****
- int has_lower = FALSE;
- int was_letter = FALSE;
-
-! if (p_ic && curbuf->b_p_inf)
- {
- /* Infer case of completed part. */
-
---- 2111,2117 ----
- int has_lower = FALSE;
- int was_letter = FALSE;
-
-! if (p_ic && curbuf->b_p_inf && len > 0)
- {
- /* Infer case of completed part. */
-
-***************
-*** 2225,2231 ****
- wca[i] = MB_TOUPPER(wca[i]);
- }
-
-! /*
- * Generate encoding specific output from wide character array.
- * Multi-byte characters can occupy up to five bytes more than
- * ASCII characters, and we also need one byte for NUL, so stay
---- 2225,2231 ----
- wca[i] = MB_TOUPPER(wca[i]);
- }
-
-! /*
- * Generate encoding specific output from wide character array.
- * Multi-byte characters can occupy up to five bytes more than
- * ASCII characters, and we also need one byte for NUL, so stay
-*** ../vim-7.1.150/src/version.c Thu Nov 8 10:35:02 2007
---- src/version.c Thu Nov 8 13:01:34 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 151,
- /**/
-
---
-From "know your smileys":
- %-) After staring at screen for 15 hours
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.152
-Problem: Display problem when 'hls' and 'cursorcolumn' are set and
- searching for "$". (John Mullin) Also when scrolling
- horizontally when 'wrap' is off.
-Solution: Keep track of the column where highlighting was set. Check the
- column offset when skipping characters.
-Files: src/screen.c
-
-
-*** ../vim-7.1.151/src/screen.c Mon Sep 17 22:37:05 2007
---- src/screen.c Fri Oct 19 15:18:49 2007
-***************
-*** 2599,2604 ****
---- 2599,2605 ----
- int syntax_attr = 0; /* attributes desired by syntax */
- int has_syntax = FALSE; /* this buffer has syntax highl. */
- int save_did_emsg;
-+ int eol_hl_off = 0; /* 1 if highlighted char after EOL */
- #endif
- #ifdef FEAT_SPELL
- int has_spell = FALSE; /* this buffer has spell checking */
-***************
-*** 4312,4317 ****
---- 4313,4322 ----
- {
- #ifdef FEAT_SEARCH_EXTRA
- long prevcol = (long)(ptr - line) - (c == NUL);
-+
-+ /* we're not really at that column when skipping some text */
-+ if ((wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol)
-+ ++prevcol;
- #endif
-
- /* invert at least one char, used for Visual and empty line or
-***************
-*** 4408,4418 ****
---- 4413,4432 ----
- ScreenAttrs[off] = char_attr;
- #ifdef FEAT_RIGHTLEFT
- if (wp->w_p_rl)
-+ {
- --col;
-+ --off;
-+ }
- else
- #endif
-+ {
- ++col;
-+ ++off;
-+ }
- ++vcol;
-+ #ifdef FEAT_SYN_HL
-+ eol_hl_off = 1;
-+ #endif
- }
- }
-
-***************
-*** 4422,4427 ****
---- 4436,4449 ----
- if (c == NUL)
- {
- #ifdef FEAT_SYN_HL
-+ if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol)
-+ {
-+ /* highlight last char after line */
-+ --col;
-+ --off;
-+ --vcol;
-+ }
-+
- /* Highlight 'cursorcolumn' past end of the line. */
- if (wp->w_p_wrap)
- v = wp->w_skipcol;
-***************
-*** 4432,4438 ****
-
- vcol = v + col - win_col_off(wp);
- if (wp->w_p_cuc
-! && (int)wp->w_virtcol >= vcol
- && (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1)
- + v
- && lnum != wp->w_cursor.lnum
---- 4454,4460 ----
-
- vcol = v + col - win_col_off(wp);
- if (wp->w_p_cuc
-! && (int)wp->w_virtcol >= vcol - eol_hl_off
- && (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1)
- + v
- && lnum != wp->w_cursor.lnum
-*** ../vim-7.1.151/src/version.c Thu Nov 8 13:03:33 2007
---- src/version.c Thu Nov 8 14:48:59 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 152,
- /**/
-
---
-From "know your smileys":
- 2B|^2B Message from Shakespeare
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.153
-Problem: Compiler warnings on SGI. Undefined XpmAllocColor (Charles
- Campbell)
-Solution: Add type casts. Init st_dev and st_ino separately. Don't use
- type casts for vim_snprintf() when HAVE_STDARG_H is defined.
- Define XpmAllocColor when needed.
-Files: src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c,
- src/gui_xmebw.c
-
-
-*** ../vim-7.1.152/src/eval.c Tue Oct 2 22:07:58 2007
---- src/eval.c Mon Oct 1 20:56:09 2007
-***************
-*** 8729,8735 ****
- static int fnum = 0;
- static int change_start = 0;
- static int change_end = 0;
-! static hlf_T hlID = 0;
- int filler_lines;
- int col;
-
---- 8729,8735 ----
- static int fnum = 0;
- static int change_start = 0;
- static int change_end = 0;
-! static hlf_T hlID = (hlf_T)0;
- int filler_lines;
- int col;
-
-*** ../vim-7.1.152/src/ex_cmds.c Thu Sep 13 18:25:08 2007
---- src/ex_cmds.c Thu Sep 13 16:19:40 2007
-***************
-*** 1774,1780 ****
- * overwrite a user's viminfo file after a "su root", with a
- * viminfo file that the user can't read.
- */
-! st_old.st_dev = st_old.st_ino = 0;
- st_old.st_mode = 0600;
- if (mch_stat((char *)fname, &st_old) == 0
- && getuid() != ROOT_UID
---- 1774,1781 ----
- * overwrite a user's viminfo file after a "su root", with a
- * viminfo file that the user can't read.
- */
-! st_old.st_dev = 0;
-! st_old.st_ino = 0;
- st_old.st_mode = 0600;
- if (mch_stat((char *)fname, &st_old) == 0
- && getuid() != ROOT_UID
-*** ../vim-7.1.152/src/fileio.c Mon Oct 29 22:37:57 2007
---- src/fileio.c Mon Oct 22 21:10:00 2007
-***************
-*** 3209,3215 ****
- * Get information about original file (if there is one).
- */
- #if defined(UNIX) && !defined(ARCHIE)
-! st_old.st_dev = st_old.st_ino = 0;
- perm = -1;
- if (mch_stat((char *)fname, &st_old) < 0)
- newfile = TRUE;
---- 3209,3216 ----
- * Get information about original file (if there is one).
- */
- #if defined(UNIX) && !defined(ARCHIE)
-! st_old.st_dev = 0;
-! st_old.st_ino = 0;
- perm = -1;
- if (mch_stat((char *)fname, &st_old) < 0)
- newfile = TRUE;
-*** ../vim-7.1.152/src/misc2.c Sun Oct 7 15:44:28 2007
---- src/misc2.c Sun Sep 30 18:00:09 2007
-***************
-*** 5924,5930 ****
---- 5925,5935 ----
- {
- if (emsg_not_now())
- return TRUE; /* no error messages at the moment */
-+ #ifdef HAVE_STDARG_H
-+ vim_snprintf((char *)IObuff, IOSIZE, (char *)s, a1, a2);
-+ #else
- vim_snprintf((char *)IObuff, IOSIZE, (char *)s, (long_u)a1, (long_u)a2);
-+ #endif
- return emsg(IObuff);
- }
-
-*** ../vim-7.1.152/src/gui_xmebw.c Thu May 10 19:46:55 2007
---- src/gui_xmebw.c Thu Sep 6 12:57:51 2007
-***************
-*** 395,405 ****
-
- /* Create the "highlight" pixmap. */
- color[4].pixel = eb->primitive.bottom_shadow_color;
- attr.valuemask = XpmColorSymbols | XpmCloseness | XpmAllocColor;
- attr.closeness = 65535; /* accuracy isn't crucial */
- attr.colorsymbols = color;
- attr.numsymbols = XtNumber(color);
-- attr.alloc_color = alloc_color;
-
- status = XpmCreatePixmapFromData(dpy, root, data, &pix, NULL, &attr);
- XpmFreeAttributes(&attr);
---- 395,409 ----
-
- /* Create the "highlight" pixmap. */
- color[4].pixel = eb->primitive.bottom_shadow_color;
-+ #ifdef XpmAllocColor /* SGI doesn't have it */
- attr.valuemask = XpmColorSymbols | XpmCloseness | XpmAllocColor;
-+ attr.alloc_color = alloc_color;
-+ #else
-+ attr.valuemask = XpmColorSymbols | XpmCloseness;
-+ #endif
- attr.closeness = 65535; /* accuracy isn't crucial */
- attr.colorsymbols = color;
- attr.numsymbols = XtNumber(color);
-
- status = XpmCreatePixmapFromData(dpy, root, data, &pix, NULL, &attr);
- XpmFreeAttributes(&attr);
-*** ../vim-7.1.152/src/version.c Thu Nov 8 14:50:58 2007
---- src/version.c Thu Nov 8 20:45:56 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 153,
- /**/
-
---
-From "know your smileys":
- @:-() Elvis Presley
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.154
-Problem: Compiler warning for signed/unsigned compare.
-Solution: Add type cast.
-Files: src/screen.c
-
-
-*** ../vim-7.1.153/src/screen.c Thu Nov 8 14:50:58 2007
---- src/screen.c Thu Nov 8 21:18:46 2007
-***************
-*** 4315,4321 ****
- long prevcol = (long)(ptr - line) - (c == NUL);
-
- /* we're not really at that column when skipping some text */
-! if ((wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol)
- ++prevcol;
- #endif
-
---- 4315,4321 ----
- long prevcol = (long)(ptr - line) - (c == NUL);
-
- /* we're not really at that column when skipping some text */
-! if ((long)(wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol)
- ++prevcol;
- #endif
-
-*** ../vim-7.1.153/src/version.c Thu Nov 8 20:47:34 2007
---- src/version.c Thu Nov 8 21:19:59 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 154,
- /**/
-
---
-From "know your smileys":
- :-F Bucktoothed vampire with one tooth missing
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.155
-Problem: Crash when 'undolevels' is 0 and repeating "udd". (James Vega)
-Solution: When there is only one branch use u_freeheader() to delete it.
-Files: src/undo.c
-
-
-*** ../vim-7.1.154/src/undo.c Mon Oct 1 22:53:27 2007
---- src/undo.c Sat Nov 10 13:45:28 2007
-***************
-*** 1677,1682 ****
---- 1677,1690 ----
- u_header_T **uhpp; /* if not NULL reset when freeing this header */
- {
- u_header_T *tofree, *next;
-+
-+ /* If this is the top branch we may need to use u_freeheader() to update
-+ * all the pointers. */
-+ if (uhp == buf->b_u_oldhead)
-+ {
-+ u_freeheader(buf, uhp, uhpp);
-+ return;
-+ }
-
- if (uhp->uh_alt_prev != NULL)
- uhp->uh_alt_prev->uh_alt_next = NULL;
-*** ../vim-7.1.154/src/version.c Thu Nov 8 21:23:34 2007
---- src/version.c Sat Nov 10 22:49:40 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 155,
- /**/
-
---
-I AM THANKFUL...
-...for the piles of laundry and ironing because it means I
-have plenty of clothes to wear.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.156
-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.1.156
-Problem: Overlapping arguments for strcpy() when expanding command line
- variables.
-Solution: Use mch_memmove() instead of STRCPY(). Also fix a few typos.
- (Dominique Pelle)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.155/src/ex_docmd.c Fri Oct 19 16:20:09 2007
---- src/ex_docmd.c Sat Nov 10 12:39:51 2007
-***************
-*** 666,672 ****
- if (ex_pressedreturn)
- {
- /* go up one line, to overwrite the ":<CR>" line, so the
-! * output doensn't contain empty lines. */
- msg_row = prev_msg_row;
- if (prev_msg_row == Rows - 1)
- msg_row--;
---- 666,672 ----
- if (ex_pressedreturn)
- {
- /* go up one line, to overwrite the ":<CR>" line, so the
-! * output doesn't contain empty lines. */
- msg_row = prev_msg_row;
- if (prev_msg_row == Rows - 1)
- msg_row--;
-***************
-*** 2760,2766 ****
-
- /*
- * Isolate the command and search for it in the command table.
-! * Exeptions:
- * - the 'k' command can directly be followed by any character.
- * - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r'
- * but :sre[wind] is another command, as are :scrip[tnames],
---- 2760,2766 ----
-
- /*
- * Isolate the command and search for it in the command table.
-! * Exceptions:
- * - the 'k' command can directly be followed by any character.
- * - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r'
- * but :sre[wind] is another command, as are :scrip[tnames],
-***************
-*** 6677,6683 ****
- * The list should be allocated using alloc(), as should each item in the
- * list. This function takes over responsibility for freeing the list.
- *
-! * XXX The list is made into the arggument list. This is freed using
- * FreeWild(), which does a series of vim_free() calls, unless the two defines
- * __EMX__ and __ALWAYS_HAS_TRAILING_NUL_POINTER are set. In this case, a
- * routine _fnexplodefree() is used. This may cause problems, but as the drop
---- 6677,6683 ----
- * The list should be allocated using alloc(), as should each item in the
- * list. This function takes over responsibility for freeing the list.
- *
-! * XXX The list is made into the argument list. This is freed using
- * FreeWild(), which does a series of vim_free() calls, unless the two defines
- * __EMX__ and __ALWAYS_HAS_TRAILING_NUL_POINTER are set. In this case, a
- * routine _fnexplodefree() is used. This may cause problems, but as the drop
-***************
-*** 7795,7801 ****
- if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
- && !eap->forceit)
- {
-! EMSG(_("E747: Cannot change directory, buffer is modifed (add ! to override)"));
- return;
- }
-
---- 7795,7801 ----
- if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
- && !eap->forceit)
- {
-! EMSG(_("E747: Cannot change directory, buffer is modified (add ! to override)"));
- return;
- }
-
-***************
-*** 9391,9397 ****
- if (src > srcstart && src[-1] == '\\')
- {
- *usedlen = 0;
-! STRCPY(src - 1, src); /* remove backslash */
- return NULL;
- }
-
---- 9391,9397 ----
- if (src > srcstart && src[-1] == '\\')
- {
- *usedlen = 0;
-! mch_memmove(src - 1, src, STRLEN(src) + 1); /* remove backslash */
- return NULL;
- }
-
-*** ../vim-7.1.155/src/version.c Sat Nov 10 22:50:20 2007
---- src/version.c Sun Nov 11 19:15:51 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 156,
- /**/
-
---
-Common sense is what tells you that the world is flat.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.157
-Problem: In Ex mode, :" gives an error at end-of-file. (Michael Hordijk)
-Solution: Only give an error for an empty line, not for a comment.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.156/src/ex_docmd.c Sun Nov 11 19:16:44 2007
---- src/ex_docmd.c Sat Nov 17 20:23:38 2007
-***************
-*** 1741,1747 ****
- }
-
- /* ignore comment and empty lines */
-! if (*ea.cmd == '"' || *ea.cmd == NUL)
- {
- ex_pressedreturn = TRUE;
- goto doend;
---- 1741,1749 ----
- }
-
- /* ignore comment and empty lines */
-! if (*ea.cmd == '"')
-! goto doend;
-! if (*ea.cmd == NUL)
- {
- ex_pressedreturn = TRUE;
- goto doend;
-*** ../vim-7.1.156/src/version.c Sun Nov 11 19:16:44 2007
---- src/version.c Tue Nov 20 12:28:22 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 157,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-119. You are reading a book and look for the scroll bar to get to
- the next page.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.158 (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.1.158 (extra)
-Problem: Win32 console: When 'encoding' is "utf-8" and typing Alt-y the
- result is wrong. Win32 GUI: Alt-y results in "u" when 'encoding'
- is "cp1250" (Lukas Cerman)
-Solution: For utf-8 don't set the 7th bit in a byte, convert to the correct
- byte sequence. For cp1250, when conversion to 'encoding' results
- in the 7th bit not set, set the 7th bit after conversion.
-Files: src/os_win32.c, src/gui_w48.c
-
-
-*** ../vim-7.1.157/src/os_win32.c Mon Oct 1 20:33:45 2007
---- src/os_win32.c Sat Oct 27 17:35:04 2007
-***************
-*** 1521,1527 ****
---- 1521,1532 ----
- #endif
- )
- {
-+ #ifdef FEAT_MBYTE
-+ n = (*mb_char2bytes)(typeahead[typeaheadlen] | 0x80,
-+ typeahead + typeaheadlen);
-+ #else
- typeahead[typeaheadlen] |= 0x80;
-+ #endif
- modifiers &= ~MOD_MASK_ALT;
- }
-
-*** ../vim-7.1.157/src/gui_w48.c Sun Sep 30 14:00:41 2007
---- src/gui_w48.c Mon Oct 29 20:00:25 2007
-***************
-*** 486,495 ****
-
- /*
- * Convert Unicode character "ch" to bytes in "string[slen]".
- * Return the length.
- */
- static int
-! char_to_string(int ch, char_u *string, int slen)
- {
- int len;
- int i;
---- 486,496 ----
-
- /*
- * Convert Unicode character "ch" to bytes in "string[slen]".
-+ * When "had_alt" is TRUE the ALT key was included in "ch".
- * Return the length.
- */
- static int
-! char_to_string(int ch, char_u *string, int slen, int had_alt)
- {
- int len;
- int i;
-***************
-*** 522,529 ****
---- 523,544 ----
- * "enc_codepage" is non-zero use the standard Win32 function,
- * otherwise use our own conversion function (e.g., for UTF-8). */
- if (enc_codepage > 0)
-+ {
- len = WideCharToMultiByte(enc_codepage, 0, wstring, len,
- string, slen, 0, NULL);
-+ /* If we had included the ALT key into the character but now the
-+ * upper bit is no longer set, that probably means the conversion
-+ * failed. Convert the original character and set the upper bit
-+ * afterwards. */
-+ if (had_alt && len == 1 && ch >= 0x80 && string[0] < 0x80)
-+ {
-+ wstring[0] = ch & 0x7f;
-+ len = WideCharToMultiByte(enc_codepage, 0, wstring, len,
-+ string, slen, 0, NULL);
-+ if (len == 1) /* safety check */
-+ string[0] |= 0x80;
-+ }
-+ }
- else
- {
- len = 1;
-***************
-*** 573,579 ****
- char_u string[40];
- int len = 0;
-
-! len = char_to_string(ch, string, 40);
- if (len == 1 && string[0] == Ctrl_C && ctrl_c_interrupts)
- {
- trash_input_buf();
---- 588,594 ----
- char_u string[40];
- int len = 0;
-
-! len = char_to_string(ch, string, 40, FALSE);
- if (len == 1 && string[0] == Ctrl_C && ctrl_c_interrupts)
- {
- trash_input_buf();
-***************
-*** 640,646 ****
- {
- /* Although the documentation isn't clear about it, we assume "ch" is
- * a Unicode character. */
-! len += char_to_string(ch, string + len, 40 - len);
- }
-
- add_to_input_buf(string, len);
---- 655,661 ----
- {
- /* Although the documentation isn't clear about it, we assume "ch" is
- * a Unicode character. */
-! len += char_to_string(ch, string + len, 40 - len, TRUE);
- }
-
- add_to_input_buf(string, len);
-***************
-*** 1775,1781 ****
- int len;
-
- /* Handle "key" as a Unicode character. */
-! len = char_to_string(key, string, 40);
- add_to_input_buf(string, len);
- }
- break;
---- 1790,1796 ----
- int len;
-
- /* Handle "key" as a Unicode character. */
-! len = char_to_string(key, string, 40, FALSE);
- add_to_input_buf(string, len);
- }
- break;
-*** ../vim-7.1.157/src/version.c Tue Nov 20 12:30:31 2007
---- src/version.c Tue Nov 20 17:19:18 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 158,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-123. You ask the car dealer to install an extra cigarette lighter
- on your new car to power your notebook.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.159
-Problem: strcpy() has overlapping arguments.
-Solution: Use mch_memmove() instead. (Dominique Pelle)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.158/src/ex_cmds.c Thu Nov 8 20:47:34 2007
---- src/ex_cmds.c Sun Nov 18 14:11:58 2007
-***************
-*** 4885,4891 ****
- ++line2;
- /* move the cursor to the new line, like Vi */
- ++curwin->w_cursor.lnum;
-! STRCPY(new_start, p1 + 1); /* copy the rest */
- p1 = new_start - 1;
- }
- }
---- 4885,4892 ----
- ++line2;
- /* move the cursor to the new line, like Vi */
- ++curwin->w_cursor.lnum;
-! /* copy the rest */
-! mch_memmove(new_start, p1 + 1, STRLEN(p1 + 1) + 1);
- p1 = new_start - 1;
- }
- }
-*** ../vim-7.1.158/src/version.c Tue Nov 20 17:21:28 2007
---- src/version.c Tue Nov 20 18:01:45 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 159,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-125. You begin to wonder how often it REALLY is necessary to get up
- and shower or bathe.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.160
-Problem: When a focus autocommand is defined, getting or losing focus
- causes the hit-enter prompt to be redrawn. (Bjorn Winckler)
-Solution: Overwrite the last line.
-Files: src/message.c
-
-
-*** ../vim-7.1.159/src/message.c Thu Sep 13 22:04:30 2007
---- src/message.c Sun Nov 4 17:33:15 2007
-***************
-*** 2850,2855 ****
---- 2850,2864 ----
- }
- else if (State == HITRETURN || State == SETWSIZE)
- {
-+ if (msg_row == Rows - 1)
-+ {
-+ /* Avoid drawing the "hit-enter" prompt below the previous one,
-+ * overwrite it. Esp. useful when regaining focus and a
-+ * FocusGained autocmd exists but didn't draw anything. */
-+ msg_didout = FALSE;
-+ msg_col = 0;
-+ msg_clr_eos();
-+ }
- hit_return_msg();
- msg_row = Rows - 1;
- }
-*** ../vim-7.1.159/src/version.c Tue Nov 20 18:03:34 2007
---- src/version.c Sat Nov 24 15:41:43 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 160,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-142. You dream about creating the world's greatest web site.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.161
-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.1.161
-Problem: Compilation errors with tiny features and EXITFREE.
-Solution: Add #ifdefs. (Dominique Pelle)
-Files: src/edit.c, src/misc2.c
-
-
-*** ../vim-7.1.160/src/edit.c Thu Nov 8 13:03:33 2007
---- src/edit.c Sat Nov 24 14:57:46 2007
-***************
-*** 2236,2242 ****
- while (i < actual_len && (p - IObuff + 6) < IOSIZE)
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! p += mb_char2bytes(wca[i++], p);
- else
- #endif
- *(p++) = wca[i++];
---- 2236,2242 ----
- while (i < actual_len && (p - IObuff + 6) < IOSIZE)
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! p += (*mb_char2bytes)(wca[i++], p);
- else
- #endif
- *(p++) = wca[i++];
-***************
-*** 6444,6451 ****
---- 6444,6453 ----
- {
- vim_free(last_insert);
- last_insert = NULL;
-+ # ifdef FEAT_INS_EXPAND
- vim_free(compl_orig_text);
- compl_orig_text = NULL;
-+ # endif
- }
- #endif
-
-*** ../vim-7.1.160/src/misc2.c Thu Nov 8 20:47:34 2007
---- src/misc2.c Sat Nov 24 15:01:46 2007
-***************
-*** 964,970 ****
- {
- buf_T *buf, *nextbuf;
- static int entered = FALSE;
-- win_T *win;
-
- /* When we cause a crash here it is caught and Vim tries to exit cleanly.
- * Don't try freeing everything again. */
---- 965,970 ----
-***************
-*** 972,986 ****
- return;
- entered = TRUE;
-
- block_autocmds(); /* don't want to trigger autocommands here */
-
-! #ifdef FEAT_WINDOWS
- /* close all tabs and windows */
- if (first_tabpage->tp_next != NULL)
- do_cmdline_cmd((char_u *)"tabonly!");
- if (firstwin != lastwin)
- do_cmdline_cmd((char_u *)"only!");
-! #endif
-
- # if defined(FEAT_SPELL)
- /* Free all spell info. */
---- 972,988 ----
- return;
- entered = TRUE;
-
-+ # ifdef FEAT_AUTOCMD
- block_autocmds(); /* don't want to trigger autocommands here */
-+ # endif
-
-! # ifdef FEAT_WINDOWS
- /* close all tabs and windows */
- if (first_tabpage->tp_next != NULL)
- do_cmdline_cmd((char_u *)"tabonly!");
- if (firstwin != lastwin)
- do_cmdline_cmd((char_u *)"only!");
-! # endif
-
- # if defined(FEAT_SPELL)
- /* Free all spell info. */
-***************
-*** 1031,1038 ****
---- 1033,1044 ----
- free_regexp_stuff();
- free_tag_stuff();
- free_cd_dir();
-+ # ifdef FEAT_EVAL
- set_expr_line(NULL);
-+ # endif
-+ # ifdef FEAT_DIFF
- diff_clear(curtab);
-+ # endif
- clear_sb_text(); /* free any scrollback text */
-
- /* Free some global vars. */
-***************
-*** 1041,1059 ****
- vim_free(clip_exclude_prog);
- # endif
- vim_free(last_cmdline);
- vim_free(new_last_cmdline);
- set_keep_msg(NULL, 0);
- vim_free(ff_expand_buffer);
-
- /* Clear cmdline history. */
- p_hi = 0;
- init_history();
-
- #ifdef FEAT_QUICKFIX
-! qf_free_all(NULL);
-! /* Free all location lists */
-! FOR_ALL_WINDOWS(win)
-! qf_free_all(win);
- #endif
-
- /* Close all script inputs. */
---- 1047,1073 ----
- vim_free(clip_exclude_prog);
- # endif
- vim_free(last_cmdline);
-+ # ifdef FEAT_CMDHIST
- vim_free(new_last_cmdline);
-+ # endif
- set_keep_msg(NULL, 0);
- vim_free(ff_expand_buffer);
-
- /* Clear cmdline history. */
- p_hi = 0;
-+ # ifdef FEAT_CMDHIST
- init_history();
-+ # endif
-
- #ifdef FEAT_QUICKFIX
-! {
-! win_T *win;
-!
-! qf_free_all(NULL);
-! /* Free all location lists */
-! FOR_ALL_WINDOWS(win)
-! qf_free_all(win);
-! }
- #endif
-
- /* Close all script inputs. */
-*** ../vim-7.1.160/src/version.c Sat Nov 24 15:44:17 2007
---- src/version.c Sat Nov 24 20:55:38 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 161,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-143. You dream in pallettes of 216 websafe colors.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.162
-Problem: Crash when using a modifier before "while" or "for". (A.Politz)
-Solution: Skip modifiers when checking for a loop command.
-Files: src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c
-
-
-*** ../vim-7.1.161/src/proto/ex_docmd.pro Sun Sep 30 14:00:41 2007
---- src/proto/ex_docmd.pro Sat Nov 24 16:34:06 2007
-***************
-*** 5,10 ****
---- 5,11 ----
- int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
- void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
- int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
-+ int modifier_len __ARGS((char_u *cmd));
- int cmd_exists __ARGS((char_u *name));
- char_u *set_one_cmd_context __ARGS((expand_T *xp, char_u *buff));
- char_u *skip_range __ARGS((char_u *cmd, int *ctx));
-*** ../vim-7.1.161/src/ex_docmd.c Tue Nov 20 12:30:31 2007
---- src/ex_docmd.c Sat Nov 24 16:41:20 2007
-***************
-*** 2963,2968 ****
---- 2963,3019 ----
- #endif
-
- #if defined(FEAT_EVAL) || defined(PROTO)
-+ static struct cmdmod
-+ {
-+ char *name;
-+ int minlen;
-+ int has_count; /* :123verbose :3tab */
-+ } cmdmods[] = {
-+ {"aboveleft", 3, FALSE},
-+ {"belowright", 3, FALSE},
-+ {"botright", 2, FALSE},
-+ {"browse", 3, FALSE},
-+ {"confirm", 4, FALSE},
-+ {"hide", 3, FALSE},
-+ {"keepalt", 5, FALSE},
-+ {"keepjumps", 5, FALSE},
-+ {"keepmarks", 3, FALSE},
-+ {"leftabove", 5, FALSE},
-+ {"lockmarks", 3, FALSE},
-+ {"rightbelow", 6, FALSE},
-+ {"sandbox", 3, FALSE},
-+ {"silent", 3, FALSE},
-+ {"tab", 3, TRUE},
-+ {"topleft", 2, FALSE},
-+ {"verbose", 4, TRUE},
-+ {"vertical", 4, FALSE},
-+ };
-+
-+ /*
-+ * Return length of a command modifier (including optional count).
-+ * Return zero when it's not a modifier.
-+ */
-+ int
-+ modifier_len(cmd)
-+ char_u *cmd;
-+ {
-+ int i, j;
-+ char_u *p = cmd;
-+
-+ if (VIM_ISDIGIT(*cmd))
-+ p = skipwhite(skipdigits(cmd));
-+ for (i = 0; i < sizeof(cmdmods) / sizeof(struct cmdmod); ++i)
-+ {
-+ for (j = 0; p[j] != NUL; ++j)
-+ if (p[j] != cmdmods[i].name[j])
-+ break;
-+ if (!isalpha(p[j]) && j >= cmdmods[i].minlen
-+ && (p == cmd || cmdmods[i].has_count))
-+ return j + (p - cmd);
-+ }
-+ return 0;
-+ }
-+
- /*
- * Return > 0 if an Ex command "name" exists.
- * Return 2 if there is an exact match.
-***************
-*** 2977,3006 ****
- int i;
- int j;
- char_u *p;
-- static struct cmdmod
-- {
-- char *name;
-- int minlen;
-- } cmdmods[] = {
-- {"aboveleft", 3},
-- {"belowright", 3},
-- {"botright", 2},
-- {"browse", 3},
-- {"confirm", 4},
-- {"hide", 3},
-- {"keepalt", 5},
-- {"keepjumps", 5},
-- {"keepmarks", 3},
-- {"leftabove", 5},
-- {"lockmarks", 3},
-- {"rightbelow", 6},
-- {"sandbox", 3},
-- {"silent", 3},
-- {"tab", 3},
-- {"topleft", 2},
-- {"verbose", 4},
-- {"vertical", 4},
-- };
-
- /* Check command modifiers. */
- for (i = 0; i < sizeof(cmdmods) / sizeof(struct cmdmod); ++i)
---- 3028,3033 ----
-*** ../vim-7.1.161/src/ex_eval.c Wed Aug 1 15:47:06 2007
---- src/ex_eval.c Sat Nov 24 16:34:09 2007
-***************
-*** 2269,2277 ****
- has_loop_cmd(p)
- char_u *p;
- {
-! p = skipwhite(p);
-! while (*p == ':')
-! p = skipwhite(p + 1);
- if ((p[0] == 'w' && p[1] == 'h')
- || (p[0] == 'f' && p[1] == 'o' && p[2] == 'r'))
- return TRUE;
---- 2269,2286 ----
- has_loop_cmd(p)
- char_u *p;
- {
-! int len;
-!
-! /* skip modifiers, white space and ':' */
-! for (;;)
-! {
-! while (*p == ' ' || *p == '\t' || *p == ':')
-! ++p;
-! len = modifier_len(p);
-! if (len == 0)
-! break;
-! p += len;
-! }
- if ((p[0] == 'w' && p[1] == 'h')
- || (p[0] == 'f' && p[1] == 'o' && p[2] == 'r'))
- return TRUE;
-*** ../vim-7.1.161/src/version.c Sat Nov 24 21:27:33 2007
---- src/version.c Sat Nov 24 21:48:38 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 162,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-144. You eagerly await the update of the "Cool Site of the Day."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.163
-Problem: Warning for the unknown option 'bufsecret'.
-Solution: Remove the lines .vim that use this option. (Andy Wokula)
-Files: runtime/menu.vim
-
-
-*** ../vim-7.1.162/runtime/menu.vim Sun May 6 15:21:23 2007
---- runtime/menu.vim Mon Nov 19 23:17:11 2007
-***************
-*** 2,8 ****
- " You can also use this as a start for your own set of menus.
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 Jan 09
-
- " Note that ":an" (short for ":anoremenu") is often used to make a menu work
- " in all modes and avoid side effects from mappings defined by the user.
---- 2,8 ----
- " You can also use this as a start for your own set of menus.
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 Nov 19
-
- " Note that ":an" (short for ":anoremenu") is often used to make a menu work
- " in all modes and avoid side effects from mappings defined by the user.
-***************
-*** 658,664 ****
- let buf = 1
- while buf <= bufnr('$')
- if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
-- \ && !getbufvar(buf, "&bufsecret")
- let s:bmenu_count = s:bmenu_count + 1
- endif
- let buf = buf + 1
---- 658,663 ----
-***************
-*** 671,677 ****
- let buf = 1
- while buf <= bufnr('$')
- if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
-- \ && !getbufvar(buf, "&bufsecret")
- call <SID>BMFilename(bufname(buf), buf)
- endif
- let buf = buf + 1
---- 670,675 ----
-*** ../vim-7.1.162/src/version.c Sat Nov 24 21:49:19 2007
---- src/version.c Thu Nov 29 17:44:08 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 163,
- /**/
-
---
-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.1.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.1.164
-Problem: Reading past end of regexp pattern. (Dominique Pelle)
-Solution: Use utf_ptr2len().
-Files: src/regexp.c
-
-
-*** ../vim-7.1.163/src/regexp.c Sat Aug 11 13:57:31 2007
---- src/regexp.c Sat Nov 24 13:23:53 2007
-***************
-*** 2770,2776 ****
- {
- #ifdef FEAT_MBYTE
- if (enc_utf8)
-! prevchr_len += utf_char2len(mb_ptr2char(regparse + prevchr_len));
- else if (has_mbyte)
- prevchr_len += (*mb_ptr2len)(regparse + prevchr_len);
- else
---- 2770,2777 ----
- {
- #ifdef FEAT_MBYTE
- if (enc_utf8)
-! /* exclude composing chars that mb_ptr2len does include */
-! prevchr_len += utf_ptr2len(regparse + prevchr_len);
- else if (has_mbyte)
- prevchr_len += (*mb_ptr2len)(regparse + prevchr_len);
- else
-*** ../vim-7.1.163/src/version.c Thu Nov 29 17:46:01 2007
---- src/version.c Thu Nov 29 21:25:45 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 164,
- /**/
-
---
-Send $25.00 for handy leaflet on how to make money by selling leaflets
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.165
-Problem: Crash related to getting X window ID. (Dominique Pelle)
-Solution: Don't trust the window ID that we got in the past, check it every
- time.
-Files: src/os_unix.c
-
-
-*** ../vim-7.1.164/src/os_unix.c Thu Aug 30 11:46:46 2007
---- src/os_unix.c Thu Nov 29 18:19:56 2007
-***************
-*** 310,316 ****
- }
-
- /*
-! * mch_inchar(): low level input funcion.
- * Get a characters from the keyboard.
- * Return the number of characters that are available.
- * If wtime == 0 do not wait for characters.
---- 310,316 ----
- }
-
- /*
-! * mch_inchar(): low level input function.
- * Get a characters from the keyboard.
- * Return the number of characters that are available.
- * If wtime == 0 do not wait for characters.
-***************
-*** 1567,1584 ****
- #ifdef FEAT_XCLIPBOARD
- if (xterm_dpy != NULL && x11_window != 0)
- {
-! /* Checked it already. */
-! if (x11_display_from == XD_XTERM)
-! return OK;
-!
-! /*
-! * If the X11 display was opened here before, for the window where Vim
-! * was started, close that one now to avoid a memory leak.
-! */
-! if (x11_display_from == XD_HERE && x11_display != NULL)
-! XCloseDisplay(x11_display);
-! x11_display = xterm_dpy;
-! x11_display_from = XD_XTERM;
- if (test_x11_window(x11_display) == FAIL)
- {
- /* probably bad $WINDOWID */
---- 1567,1585 ----
- #ifdef FEAT_XCLIPBOARD
- if (xterm_dpy != NULL && x11_window != 0)
- {
-! /* We may have checked it already, but Gnome terminal can move us to
-! * another window, so we need to check every time. */
-! if (x11_display_from != XD_XTERM)
-! {
-! /*
-! * If the X11 display was opened here before, for the window where
-! * Vim was started, close that one now to avoid a memory leak.
-! */
-! if (x11_display_from == XD_HERE && x11_display != NULL)
-! XCloseDisplay(x11_display);
-! x11_display = xterm_dpy;
-! x11_display_from = XD_XTERM;
-! }
- if (test_x11_window(x11_display) == FAIL)
- {
- /* probably bad $WINDOWID */
-***************
-*** 2421,2427 ****
- /*
- * Set the case of the file name, if it already exists. This will cause the
- * file name to remain exactly the same.
-! * Only required for file systems where case is ingored and preserved.
- */
- /*ARGSUSED*/
- void
---- 2422,2428 ----
- /*
- * Set the case of the file name, if it already exists. This will cause the
- * file name to remain exactly the same.
-! * Only required for file systems where case is ignored and preserved.
- */
- /*ARGSUSED*/
- void
-***************
-*** 4653,4659 ****
- ret = poll(fds, nfd, towait);
- # ifdef FEAT_MZSCHEME
- if (ret == 0 && mzquantum_used)
-! /* MzThreads scheduling is required and timeout occured */
- finished = FALSE;
- # endif
-
---- 4654,4660 ----
- ret = poll(fds, nfd, towait);
- # ifdef FEAT_MZSCHEME
- if (ret == 0 && mzquantum_used)
-! /* MzThreads scheduling is required and timeout occurred */
- finished = FALSE;
- # endif
-
-***************
-*** 4801,4807 ****
- #endif
- # ifdef FEAT_MZSCHEME
- if (ret == 0 && mzquantum_used)
-! /* loop if MzThreads must be scheduled and timeout occured */
- finished = FALSE;
- # endif
-
---- 4802,4808 ----
- #endif
- # ifdef FEAT_MZSCHEME
- if (ret == 0 && mzquantum_used)
-! /* loop if MzThreads must be scheduled and timeout occurred */
- finished = FALSE;
- # endif
-
-***************
-*** 5191,5197 ****
- {
- /* When using system() always add extra quotes, because the shell
- * is started twice. Otherwise put a backslash before special
-! * characters, except insice ``. */
- #ifdef USE_SYSTEM
- STRCAT(command, " \"");
- STRCAT(command, pat[i]);
---- 5192,5198 ----
- {
- /* When using system() always add extra quotes, because the shell
- * is started twice. Otherwise put a backslash before special
-! * characters, except inside ``. */
- #ifdef USE_SYSTEM
- STRCAT(command, " \"");
- STRCAT(command, pat[i]);
-***************
-*** 5675,5681 ****
- /* gpm library tries to handling TSTP causes
- * problems. Anyways, we close connection to Gpm whenever
- * we are going to suspend or starting an external process
-! * so we should'nt have problem with this
- */
- signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
- return 1; /* succeed */
---- 5676,5682 ----
- /* gpm library tries to handling TSTP causes
- * problems. Anyways, we close connection to Gpm whenever
- * we are going to suspend or starting an external process
-! * so we shouldn't have problem with this
- */
- signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
- return 1; /* succeed */
-*** ../vim-7.1.164/src/version.c Thu Nov 29 21:26:38 2007
---- src/version.c Sat Dec 1 17:17:20 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 165,
- /**/
-
---
-"Hit any key to continue" is very confusing when you have two keyboards.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.166
-Problem: Memory leak for using "gp" in Visual mode.
-Solution: Free memory in put_register(). (Dominique Pelle)
-Files: src/ops.c
-
-
-*** ../vim-7.1.165/src/ops.c Thu Nov 8 10:35:02 2007
---- src/ops.c Sun Nov 25 15:17:43 2007
-***************
-*** 927,934 ****
- int name;
- int copy; /* make a copy, if FALSE make register empty. */
- {
-! static struct yankreg *reg;
-! int i;
-
- #ifdef FEAT_CLIPBOARD
- /* When Visual area changed, may have to update selection. Obtain the
---- 927,934 ----
- int name;
- int copy; /* make a copy, if FALSE make register empty. */
- {
-! struct yankreg *reg;
-! int i;
-
- #ifdef FEAT_CLIPBOARD
- /* When Visual area changed, may have to update selection. Obtain the
-***************
-*** 967,973 ****
- }
-
- /*
-! * Put "reg" into register "name". Free any previous contents.
- */
- void
- put_register(name, reg)
---- 967,973 ----
- }
-
- /*
-! * Put "reg" into register "name". Free any previous contents and "reg".
- */
- void
- put_register(name, reg)
-***************
-*** 977,982 ****
---- 977,983 ----
- get_yank_register(name, 0);
- free_yank_all();
- *y_current = *(struct yankreg *)reg;
-+ vim_free(reg);
-
- # ifdef FEAT_CLIPBOARD
- /* Send text written to clipboard register to the clipboard. */
-*** ../vim-7.1.165/src/version.c Sat Dec 1 17:18:45 2007
---- src/version.c Sat Dec 1 21:11:25 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 166,
- /**/
-
---
-An error has occurred. Hit any user to continue.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.167
-Problem: Xxd crashes when using "xxd -b -c 110". (Debian bug 452789)
-Solution: Allocate more memory. Fix check for maximum number of columns.
-Files: src/xxd/xxd.c
-
-
-*** ../vim-7.1.166/src/xxd/xxd.c Thu May 10 19:07:42 2007
---- src/xxd/xxd.c Thu Nov 29 21:05:16 2007
-***************
-*** 212,218 ****
-
- #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */
- #define COLS 256 /* change here, if you ever need more columns */
-! #define LLEN (9 + (5*COLS-1)/2 + 2 + COLS)
-
- char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa;
-
---- 212,218 ----
-
- #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */
- #define COLS 256 /* change here, if you ever need more columns */
-! #define LLEN (11 + (9*COLS-1)/1 + COLS + 2)
-
- char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa;
-
-***************
-*** 590,596 ****
- default: octspergrp = 0; break;
- }
-
-! if (cols < 1 || (!hextype && (cols > COLS)))
- {
- fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS);
- exit(1);
---- 590,597 ----
- default: octspergrp = 0; break;
- }
-
-! if (cols < 1 || ((hextype == HEX_NORMAL || hextype == HEX_BITS)
-! && (cols > COLS)))
- {
- fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS);
- exit(1);
-***************
-*** 750,755 ****
---- 751,757 ----
- }
- if (ebcdic)
- e = (e < 64) ? '.' : etoa64[e-64];
-+ /* When changing this update definition of LLEN above. */
- l[11 + (grplen * cols - 1)/octspergrp + p] =
- #ifdef __MVS__
- (e >= 64)
-*** ../vim-7.1.166/src/version.c Sat Dec 1 21:12:23 2007
---- src/version.c Mon Dec 3 21:30:31 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 167,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-178. You look for an icon to double-click to open your bedroom window.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.168 (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.1.168 (extra)
-Problem: Win32 GUI: Since patch 7.1.095, when the Vim window does not have
- focus, clicking in it doesn't position the cursor. (Juergen
- Kraemer)
-Solution: Don't reset s_button_pending just after receiving focus.
-Files: src/gui_w48.c
-
-
-*** ../vim-7.1.167/src/gui_w48.c Tue Nov 20 17:21:28 2007
---- src/gui_w48.c Mon Dec 3 22:13:16 2007
-***************
-*** 290,295 ****
---- 290,300 ----
-
- /* Local variables */
- static int s_button_pending = -1;
-+
-+ /* s_getting_focus is set when we got focus but didn't see mouse-up event yet,
-+ * so don't reset s_button_pending. */
-+ static int s_getting_focus = FALSE;
-+
- static int s_x_pending;
- static int s_y_pending;
- static UINT s_kFlags_pending;
-***************
-*** 671,676 ****
---- 676,683 ----
- {
- int vim_modifiers = 0x0;
-
-+ s_getting_focus = FALSE;
-+
- if (keyFlags & MK_SHIFT)
- vim_modifiers |= MOUSE_SHIFT;
- if (keyFlags & MK_CONTROL)
-***************
-*** 792,797 ****
---- 799,805 ----
- {
- int button;
-
-+ s_getting_focus = FALSE;
- if (s_button_pending > -1)
- {
- /* Delayed action for mouse down event */
-***************
-*** 1951,1958 ****
- allow_scrollbar = FALSE;
-
- /* Clear pending mouse button, the release event may have been
-! * taken by the dialog window. */
-! s_button_pending = -1;
-
- return OK;
- }
---- 1959,1968 ----
- allow_scrollbar = FALSE;
-
- /* Clear pending mouse button, the release event may have been
-! * taken by the dialog window. But don't do this when getting
-! * focus, we need the mouse-up event then. */
-! if (!s_getting_focus)
-! s_button_pending = -1;
-
- return OK;
- }
-***************
-*** 2702,2707 ****
---- 2712,2718 ----
- HWND hwndOldFocus)
- {
- gui_focus_change(TRUE);
-+ s_getting_focus = TRUE;
- (void)MyWindowProc(hwnd, WM_SETFOCUS, (WPARAM)hwndOldFocus, 0);
- }
-
-***************
-*** 2711,2716 ****
---- 2722,2728 ----
- HWND hwndNewFocus)
- {
- gui_focus_change(FALSE);
-+ s_getting_focus = FALSE;
- (void)MyWindowProc(hwnd, WM_KILLFOCUS, (WPARAM)hwndNewFocus, 0);
- }
-
-*** ../vim-7.1.167/src/version.c Mon Dec 3 21:31:56 2007
---- src/version.c Mon Dec 3 22:16:32 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 168,
- /**/
-
---
-Rule #1: Don't give somebody a tool that he's going to hurt himself with.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.169
-Problem: Using uninitialized variable when system() fails. (Dominique
- Pelle)
-Solution: Let system() return an empty string when it fails.
-Files: src/eval.c
-
-
-*** ../vim-7.1.168/src/eval.c Thu Nov 8 20:47:34 2007
---- src/eval.c Fri Nov 30 21:01:26 2007
-***************
-*** 15826,15832 ****
- FILE *fd;
-
- if (check_restricted() || check_secure())
-! return;
-
- if (argvars[1].v_type != VAR_UNKNOWN)
- {
---- 15826,15832 ----
- FILE *fd;
-
- if (check_restricted() || check_secure())
-! goto done;
-
- if (argvars[1].v_type != VAR_UNKNOWN)
- {
-***************
-*** 15837,15843 ****
- if ((infile = vim_tempname('i')) == NULL)
- {
- EMSG(_(e_notmp));
-! return;
- }
-
- fd = mch_fopen((char *)infile, WRITEBIN);
---- 15837,15843 ----
- if ((infile = vim_tempname('i')) == NULL)
- {
- EMSG(_(e_notmp));
-! goto done;
- }
-
- fd = mch_fopen((char *)infile, WRITEBIN);
-*** ../vim-7.1.168/src/version.c Mon Dec 3 22:20:17 2007
---- src/version.c Fri Dec 7 17:07:32 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 169,
- /**/
-
---
-% cat /usr/include/sys/errno.h
-#define EPERM 1 /* Operation not permitted */
-#define ENOENT 2 /* No such file or directory */
-#define ESRCH 3 /* No such process */
-[...]
-#define EMACS 666 /* Too many macros */
-%
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.170
-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.1.170
-Problem: Valgrind warning for overlapping arguments for strcpy().
-Solution: Use mch_memmove() instead. (Dominique Pelle)
-Files: src/getchar.c
-
-
-*** ../vim-7.1.169/src/getchar.c Thu Sep 13 18:25:08 2007
---- src/getchar.c Mon Dec 3 20:42:29 2007
-***************
-*** 253,260 ****
- return;
- }
- else if (buf->bh_index != 0)
-! STRCPY(buf->bh_first.b_next->b_str,
-! buf->bh_first.b_next->b_str + buf->bh_index);
- buf->bh_index = 0;
-
- if (buf->bh_space >= (int)slen)
---- 253,261 ----
- return;
- }
- else if (buf->bh_index != 0)
-! mch_memmove(buf->bh_first.b_next->b_str,
-! buf->bh_first.b_next->b_str + buf->bh_index,
-! STRLEN(buf->bh_first.b_next->b_str + buf->bh_index) + 1);
- buf->bh_index = 0;
-
- if (buf->bh_space >= (int)slen)
-*** ../vim-7.1.169/src/version.c Fri Dec 7 17:08:35 2007
---- src/version.c Fri Dec 7 17:27:13 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 170,
- /**/
-
---
-Some of the well know MS-Windows errors:
- ESLEEP Operator fell asleep
- ENOERR No error yet
- EDOLLAR OS too expensive
- EWINDOWS MS-Windows loaded, system in danger
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.171
-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.1.171
-Problem: Reading one byte before allocated memory.
-Solution: Check index not to become negative. (Dominique Pelle)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.170/src/ex_getln.c Tue Oct 30 17:36:31 2007
---- src/ex_getln.c Tue Dec 4 21:49:24 2007
-***************
-*** 1186,1195 ****
- case K_LEFT:
- case K_S_LEFT:
- case K_C_LEFT:
- do
- {
-- if (ccline.cmdpos == 0)
-- break;
- --ccline.cmdpos;
- #ifdef FEAT_MBYTE
- if (has_mbyte) /* move to first byte of char */
---- 1186,1195 ----
- case K_LEFT:
- case K_S_LEFT:
- case K_C_LEFT:
-+ if (ccline.cmdpos == 0)
-+ goto cmdline_not_changed;
- do
- {
- --ccline.cmdpos;
- #ifdef FEAT_MBYTE
- if (has_mbyte) /* move to first byte of char */
-***************
-*** 1198,1204 ****
- #endif
- ccline.cmdspos -= cmdline_charsize(ccline.cmdpos);
- }
-! while ((c == K_S_LEFT || c == K_C_LEFT
- || (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)))
- && ccline.cmdbuff[ccline.cmdpos - 1] != ' ');
- #ifdef FEAT_MBYTE
---- 1198,1205 ----
- #endif
- ccline.cmdspos -= cmdline_charsize(ccline.cmdpos);
- }
-! while (ccline.cmdpos > 0
-! && (c == K_S_LEFT || c == K_C_LEFT
- || (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)))
- && ccline.cmdbuff[ccline.cmdpos - 1] != ' ');
- #ifdef FEAT_MBYTE
-*** ../vim-7.1.170/src/version.c Fri Dec 7 17:30:04 2007
---- src/version.c Fri Dec 7 20:00:06 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 171,
- /**/
-
---
-Some of the well know MS-Windows errors:
- EMULTI Multitasking attempted, system confused
- EKEYBOARD Keyboard locked, try getting out of this one!
- EXPLAIN Unexplained error, please tell us what happened
- EFUTURE Reserved for our future mistakes
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.172
-Problem: When 'buftype' is "acwrite" Vim still checks if the file or
- directory exists before overwriting.
-Solution: Don't check for overwriting when the buffer name is not a file
- name.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.171/src/ex_cmds.c Tue Nov 20 18:03:34 2007
---- src/ex_cmds.c Fri Dec 7 22:13:32 2007
-***************
-*** 2732,2737 ****
---- 2732,2740 ----
- && vim_strchr(p_cpo, CPO_OVERNEW) == NULL)
- || (buf->b_flags & BF_READERR))
- && !p_wa
-+ #ifdef FEAT_QUICKFIX
-+ && !bt_nofile(buf)
-+ #endif
- && vim_fexists(ffname))
- {
- if (!eap->forceit && !eap->append)
-*** ../vim-7.1.171/src/version.c Fri Dec 7 20:28:13 2007
---- src/version.c Sat Dec 8 22:18:54 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 172,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-206. You religiously respond immediately to e-mail, while ignoring
- your growing pile of snail mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.173
-Problem: Accessing freed memory. (Dominique Pelle)
-Solution: Don't call reg_getline() to check if a line is the first in the
- file.
-Files: src/regexp.c
-
-
-*** ../vim-7.1.172/src/regexp.c Thu Nov 29 21:26:38 2007
---- src/regexp.c Sat Dec 8 15:54:05 2007
-***************
-*** 3810,3820 ****
- break;
-
- case RE_BOF:
-! /* Passing -1 to the getline() function provided for the search
-! * should always return NULL if the current line is the first
-! * line of the file. */
- if (reglnum != 0 || reginput != regline
-! || (REG_MULTI && reg_getline((linenr_T)-1) != NULL))
- status = RA_NOMATCH;
- break;
-
---- 3810,3820 ----
- break;
-
- case RE_BOF:
-! /* We're not at the beginning of the file when below the first
-! * line where we started, not at the start of the line or we
-! * didn't start at the first line of the buffer. */
- if (reglnum != 0 || reginput != regline
-! || (REG_MULTI && reg_firstlnum > 1))
- status = RA_NOMATCH;
- break;
-
-*** ../vim-7.1.172/src/version.c Sat Dec 8 22:20:24 2007
---- src/version.c Sun Dec 9 19:24:36 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 173,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-213. Your kids start referring to you as "that guy in front of the monitor."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.174
-Problem: Writing NUL past end of a buffer.
-Solution: Copy one byte less when using strncat(). (Dominuque Pelle)
-Files: src/ex_cmds.c, src/ex_docmd.c
-
-
-*** ../vim-7.1.173/src/ex_cmds.c Sat Dec 8 22:20:24 2007
---- src/ex_cmds.c Fri Dec 7 22:13:32 2007
-***************
-*** 1650,1656 ****
- {
- vim_snprintf((char *)IObuff, IOSIZE, _("%sviminfo: %s in line: "),
- errnum, message);
-! STRNCAT(IObuff, line, IOSIZE - STRLEN(IObuff));
- if (IObuff[STRLEN(IObuff) - 1] == '\n')
- IObuff[STRLEN(IObuff) - 1] = NUL;
- emsg(IObuff);
---- 1650,1656 ----
- {
- vim_snprintf((char *)IObuff, IOSIZE, _("%sviminfo: %s in line: "),
- errnum, message);
-! STRNCAT(IObuff, line, IOSIZE - STRLEN(IObuff) - 1);
- if (IObuff[STRLEN(IObuff) - 1] == '\n')
- IObuff[STRLEN(IObuff) - 1] = NUL;
- emsg(IObuff);
-*** ../vim-7.1.173/src/ex_docmd.c Sat Nov 24 21:49:19 2007
---- src/ex_docmd.c Fri Dec 7 21:01:03 2007
-***************
-*** 2660,2666 ****
- errormsg = IObuff;
- }
- STRCAT(errormsg, ": ");
-! STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff));
- }
- emsg(errormsg);
- }
---- 2660,2666 ----
- errormsg = IObuff;
- }
- STRCAT(errormsg, ": ");
-! STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff) - 1);
- }
- emsg(errormsg);
- }
-*** ../vim-7.1.173/src/version.c Sun Dec 9 19:25:35 2007
---- src/version.c Sun Dec 9 19:36:50 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 174,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-214. Your MCI "Circle of Friends" are all Hayes-compatible.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.175
-Problem: <BS> doesn't work with some combination of 'sts', 'linebreak' and
- 'backspace'. (Francois Ingelrest)
-Solution: When adding white space results in not moving back delete one
- character.
-Files: src/edit.c
-
-
-*** ../vim-7.1.174/src/edit.c Sat Nov 24 21:27:33 2007
---- src/edit.c Fri Dec 7 21:32:48 2007
-***************
-*** 8189,8194 ****
---- 8189,8217 ----
- AppendCharToRedobuff(K_DEL);
- }
-
-+ static void ins_bs_one __ARGS((colnr_T *vcolp));
-+
-+ /*
-+ * Delete one character for ins_bs().
-+ */
-+ static void
-+ ins_bs_one(vcolp)
-+ colnr_T *vcolp;
-+ {
-+ dec_cursor();
-+ getvcol(curwin, &curwin->w_cursor, vcolp, NULL, NULL);
-+ if (State & REPLACE_FLAG)
-+ {
-+ /* Don't delete characters before the insert point when in
-+ * Replace mode */
-+ if (curwin->w_cursor.lnum != Insstart.lnum
-+ || curwin->w_cursor.col >= Insstart.col)
-+ replace_do_bs();
-+ }
-+ else
-+ (void)del_char(FALSE);
-+ }
-+
- /*
- * Handle Backspace, delete-word and delete-line in Insert mode.
- * Return TRUE when backspace was actually used.
-***************
-*** 8418,8426 ****
- int ts;
- colnr_T vcol;
- colnr_T want_vcol;
-! #if 0
-! int extra = 0;
-! #endif
-
- *inserted_space_p = FALSE;
- if (p_sta && in_indent)
---- 8441,8447 ----
- int ts;
- colnr_T vcol;
- colnr_T want_vcol;
-! colnr_T start_vcol;
-
- *inserted_space_p = FALSE;
- if (p_sta && in_indent)
-***************
-*** 8431,8436 ****
---- 8452,8458 ----
- * 'showbreak' may get in the way, need to get the last column of
- * the previous character. */
- getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
-+ start_vcol = vcol;
- dec_cursor();
- getvcol(curwin, &curwin->w_cursor, NULL, NULL, &want_vcol);
- inc_cursor();
-***************
-*** 8439,8468 ****
- /* delete characters until we are at or before want_vcol */
- while (vcol > want_vcol
- && (cc = *(ml_get_cursor() - 1), vim_iswhite(cc)))
-! {
-! dec_cursor();
-! getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
-! if (State & REPLACE_FLAG)
-! {
-! /* Don't delete characters before the insert point when in
-! * Replace mode */
-! if (curwin->w_cursor.lnum != Insstart.lnum
-! || curwin->w_cursor.col >= Insstart.col)
-! {
-! #if 0 /* what was this for? It causes problems when sw != ts. */
-! if (State == REPLACE && (int)vcol < want_vcol)
-! {
-! (void)del_char(FALSE);
-! extra = 2; /* don't pop too much */
-! }
-! else
-! #endif
-! replace_do_bs();
-! }
-! }
-! else
-! (void)del_char(FALSE);
-! }
-
- /* insert extra spaces until we are at want_vcol */
- while (vcol < want_vcol)
---- 8461,8467 ----
- /* delete characters until we are at or before want_vcol */
- while (vcol > want_vcol
- && (cc = *(ml_get_cursor() - 1), vim_iswhite(cc)))
-! ins_bs_one(&vcol);
-
- /* insert extra spaces until we are at want_vcol */
- while (vcol < want_vcol)
-***************
-*** 8479,8500 ****
- #endif
- {
- ins_str((char_u *)" ");
-! if ((State & REPLACE_FLAG) /* && extra <= 1 */)
-! {
-! #if 0
-! if (extra)
-! replace_push_off(NUL);
-! else
-! #endif
-! replace_push(NUL);
-! }
-! #if 0
-! if (extra == 2)
-! extra = 1;
-! #endif
- }
- getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
- }
- }
-
- /*
---- 8478,8493 ----
- #endif
- {
- ins_str((char_u *)" ");
-! if ((State & REPLACE_FLAG))
-! replace_push(NUL);
- }
- getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
- }
-+
-+ /* If we are now back where we started delete one character. Can
-+ * happen when using 'sts' and 'linebreak'. */
-+ if (vcol >= start_vcol)
-+ ins_bs_one(&vcol);
- }
-
- /*
-*** ../vim-7.1.174/src/version.c Sun Dec 9 19:37:37 2007
---- src/version.c Sun Dec 9 20:24:11 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 175,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-215. Your mouse-clicking forearm rivals Popeye's.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.176
-Problem: Building with Aap fails when the "compiledby" argument contains
- '<' or '>' characters. (Alex Yeh)
-Solution: Change how quoting is done in the Aap recipe.
-Files: src/main.aap
-
-
-*** ../vim-7.1.175/src/main.aap Tue Sep 25 22:13:14 2007
---- src/main.aap Fri Dec 7 17:03:31 2007
-***************
-*** 63,70 ****
- @else:
- @ arch = "ppc"
- :print Building for $arch system
- :sys CONFIG_STATUS=auto/config.status
-! ./configure.aap `file2string("config.arg")`
- --with-mac-arch=$arch
- --cache-file=auto/config.cache
-
---- 63,71 ----
- @else:
- @ arch = "ppc"
- :print Building for $arch system
-+ config_args = `file2string("config.arg")`
- :sys CONFIG_STATUS=auto/config.status
-! ./configure.aap $config_args
- --with-mac-arch=$arch
- --cache-file=auto/config.cache
-
-***************
-*** 440,450 ****
- :print >> $target char_u *all_lflags = (char_u *)"$linkcmd";
- @if _no.get("COMPILEDBY"):
- who = $COMPILEDBY
-! where = ''
- @else:
- :syseval whoami | :eval re.sub("\n", "", stdin) | :assign who
-
- :syseval hostname | :eval re.sub("\n", "", stdin) | :assign where
- :print >> $target char_u *compiled_user = (char_u *)"$who";
- :print >> $target char_u *compiled_sys = (char_u *)"$where";
-
---- 441,453 ----
- :print >> $target char_u *all_lflags = (char_u *)"$linkcmd";
- @if _no.get("COMPILEDBY"):
- who = $COMPILEDBY
-! where =
- @else:
- :syseval whoami | :eval re.sub("\n", "", stdin) | :assign who
-
- :syseval hostname | :eval re.sub("\n", "", stdin) | :assign where
-+ @who = string.replace(who, '"', '\\"')
-+ @where = string.replace(where, '"', '\\"')
- :print >> $target char_u *compiled_user = (char_u *)"$who";
- :print >> $target char_u *compiled_sys = (char_u *)"$where";
-
-*** ../vim-7.1.175/src/version.c Sun Dec 9 20:25:59 2007
---- src/version.c Mon Dec 31 16:40:01 2007
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 176,
- /**/
-
---
-E M A C S
-s e l o h
-c t t n i
-a a t f
-p r t
-e o
- l
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.177
-Problem: Freeing memory twice when in debug mode while reading a script.
-Solution: Ignore script input while in debug mode.
-Files: src/ex_cmds2.c, src/getchar.c, src/globals.h
-
-
-*** ../vim-7.1.176/src/ex_cmds2.c Thu May 10 20:55:46 2007
---- src/ex_cmds2.c Tue Jan 1 14:13:41 2008
-***************
-*** 93,98 ****
---- 93,100 ----
- int save_emsg_silent = emsg_silent;
- int save_redir_off = redir_off;
- tasave_T typeaheadbuf;
-+ int typeahead_saved = FALSE;
-+ int save_ignore_script;
- # ifdef FEAT_EX_EXTRA
- int save_ex_normal_busy;
- # endif
-***************
-*** 159,176 ****
- * This makes sure we get input from the user here and don't interfere
- * with the commands being executed. Reset "ex_normal_busy" to avoid
- * the side effects of using ":normal". Save the stuff buffer and make
-! * it empty. */
- # ifdef FEAT_EX_EXTRA
- save_ex_normal_busy = ex_normal_busy;
- ex_normal_busy = 0;
- # endif
- if (!debug_greedy)
- save_typeahead(&typeaheadbuf);
-
- cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
-
-! if (!debug_greedy)
- restore_typeahead(&typeaheadbuf);
- # ifdef FEAT_EX_EXTRA
- ex_normal_busy = save_ex_normal_busy;
- # endif
---- 161,186 ----
- * This makes sure we get input from the user here and don't interfere
- * with the commands being executed. Reset "ex_normal_busy" to avoid
- * the side effects of using ":normal". Save the stuff buffer and make
-! * it empty. Set ignore_script to avoid reading from script input. */
- # ifdef FEAT_EX_EXTRA
- save_ex_normal_busy = ex_normal_busy;
- ex_normal_busy = 0;
- # endif
- if (!debug_greedy)
-+ {
- save_typeahead(&typeaheadbuf);
-+ typeahead_saved = TRUE;
-+ save_ignore_script = ignore_script;
-+ ignore_script = TRUE;
-+ }
-
- cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
-
-! if (typeahead_saved)
-! {
- restore_typeahead(&typeaheadbuf);
-+ ignore_script = save_ignore_script;
-+ }
- # ifdef FEAT_EX_EXTRA
- ex_normal_busy = save_ex_normal_busy;
- # endif
-*** ../vim-7.1.176/src/getchar.c Fri Dec 7 17:30:04 2007
---- src/getchar.c Tue Jan 1 14:11:42 2008
-***************
-*** 1279,1286 ****
- void
- free_typebuf()
- {
-! vim_free(typebuf.tb_buf);
-! vim_free(typebuf.tb_noremap);
- }
-
- /*
---- 1279,1292 ----
- void
- free_typebuf()
- {
-! if (typebuf.tb_buf == typebuf_init)
-! EMSG2(_(e_intern2), "Free typebuf 1");
-! else
-! vim_free(typebuf.tb_buf);
-! if (typebuf.tb_buf == noremapbuf_init)
-! EMSG2(_(e_intern2), "Free typebuf 2");
-! else
-! vim_free(typebuf.tb_noremap);
- }
-
- /*
-***************
-*** 1359,1364 ****
---- 1365,1375 ----
- EMSG(_(e_nesting));
- return;
- }
-+ #ifdef FEAT_EVAL
-+ if (ignore_script)
-+ /* Not reading from script, also don't open one. Warning message? */
-+ return;
-+ #endif
-
- if (scriptin[curscript] != NULL) /* already reading script */
- ++curscript;
-***************
-*** 2346,2352 ****
- current_menu->silent[idx]);
- }
- }
-! #endif /* FEAT_GUI */
- continue; /* try mapping again */
- }
-
---- 2357,2363 ----
- current_menu->silent[idx]);
- }
- }
-! #endif /* FEAT_GUI && FEAT_MENU */
- continue; /* try mapping again */
- }
-
-***************
-*** 2862,2872 ****
- undo_off = FALSE; /* restart undo now */
-
- /*
-! * first try script file
-! * If interrupted: Stop reading script files.
- */
- script_char = -1;
-! while (scriptin[curscript] != NULL && script_char < 0)
- {
- if (got_int || (script_char = getc(scriptin[curscript])) < 0)
- {
---- 2873,2887 ----
- undo_off = FALSE; /* restart undo now */
-
- /*
-! * Get a character from a script file if there is one.
-! * If interrupted: Stop reading script files, close them all.
- */
- script_char = -1;
-! while (scriptin[curscript] != NULL && script_char < 0
-! #ifdef FEAT_EVAL
-! && !ignore_script
-! #endif
-! )
- {
- if (got_int || (script_char = getc(scriptin[curscript])) < 0)
- {
-*** ../vim-7.1.176/src/globals.h Sat Sep 29 14:15:00 2007
---- src/globals.h Mon Dec 31 17:00:21 2007
-***************
-*** 954,959 ****
---- 954,962 ----
- EXTERN int ex_normal_busy INIT(= 0); /* recursiveness of ex_normal() */
- EXTERN int ex_normal_lock INIT(= 0); /* forbid use of ex_normal() */
- #endif
-+ #ifdef FEAT_EVAL
-+ EXTERN int ignore_script INIT(= FALSE); /* ignore script input */
-+ #endif
- EXTERN int stop_insert_mode; /* for ":stopinsert" and 'insertmode' */
-
- EXTERN int KeyTyped; /* TRUE if user typed current char */
-*** ../vim-7.1.176/src/version.c Mon Dec 31 16:41:31 2007
---- src/version.c Tue Jan 1 14:00:09 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 177,
- /**/
-
---
-Back up my hard drive? I can't find the reverse switch!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.178
-Problem: "%" doesn't work on "/* comment *//* comment */".
-Solution: Don't handle the "//" in "*//*" as a C++ comment. (Markus
- Heidelberg)
-Files: src/search.c
-
-
-*** ../vim-7.1.177/src/search.c Wed Aug 8 22:48:16 2007
---- src/search.c Mon Dec 10 21:21:17 2007
-***************
-*** 2319,2325 ****
- #endif
- while ((p = vim_strchr(p, '/')) != NULL)
- {
-! if (p[1] == '/')
- break;
- ++p;
- }
---- 2319,2327 ----
- #endif
- while ((p = vim_strchr(p, '/')) != NULL)
- {
-! /* accept a double /, unless it's preceded with * and followed by *,
-! * because * / / * is an end and start of a C comment */
-! if (p[1] == '/' && (p == line || p[-1] != '*' || p[2] != '*'))
- break;
- ++p;
- }
-*** ../vim-7.1.177/src/version.c Tue Jan 1 14:16:42 2008
---- src/version.c Tue Jan 1 15:41:33 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 178,
- /**/
-
---
-I'd like to meet the man who invented sex and see what he's working on now.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.179
-Problem: Need to check for TCL 8.5.
-Solution: Adjust configure script. (Alexey Froloff)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.1.178/src/configure.in Sun Nov 4 15:35:23 2007
---- src/configure.in Sun Dec 30 13:55:28 2007
-***************
-*** 759,773 ****
-
- if test "$enable_tclinterp" = "yes"; then
-
-! dnl on FreeBSD tclsh is a silly script, look for tclsh8.[420]
- AC_MSG_CHECKING(--with-tclsh argument)
- AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
- tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
-! tclsh_name="tclsh8.4"; AC_MSG_RESULT(no))
- AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
- AC_SUBST(vi_cv_path_tcl)
-
-! dnl when no specific version specified, also try 8.2 and 8.0
- if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
- tclsh_name="tclsh8.2"
- AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
---- 759,777 ----
-
- if test "$enable_tclinterp" = "yes"; then
-
-! dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
- AC_MSG_CHECKING(--with-tclsh argument)
- AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
- tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
-! tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
- AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
- AC_SUBST(vi_cv_path_tcl)
-
-! dnl when no specific version specified, also try 8.4, 8.2 and 8.0
-! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
-! tclsh_name="tclsh8.4"
-! AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
-! fi
- if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
- tclsh_name="tclsh8.2"
- AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
-***************
-*** 810,815 ****
---- 814,820 ----
- AC_MSG_CHECKING(for location of tclConfig.sh script)
- if test "x$MACOSX" != "xyes"; then
- tclcnf=`echo $tclinc | sed s/include/lib/g`
-+ tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
- else
- dnl For Mac OS X 10.3, use the OS-provided framework location
- tclcnf="/System/Library/Frameworks/Tcl.framework"
-***************
-*** 830,835 ****
---- 835,841 ----
- AC_MSG_RESULT(<not found>)
- AC_MSG_CHECKING(for Tcl library by myself)
- tcllib=`echo $tclinc | sed s/include/lib/g`
-+ tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
- for ext in .so .a ; do
- for ver in "" $tclver ; do
- for try in $tcllib ; do
-*** ../vim-7.1.178/src/auto/configure Sun Nov 4 15:35:23 2007
---- src/auto/configure Sun Dec 30 13:55:35 2007
-***************
-*** 4445,4451 ****
- tclsh_name="$withval"; echo "$as_me:$LINENO: result: $tclsh_name" >&5
- echo "${ECHO_T}$tclsh_name" >&6
- else
-! tclsh_name="tclsh8.4"; echo "$as_me:$LINENO: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi;
- # Extract the first word of "$tclsh_name", so it can be a program name with args.
---- 4445,4451 ----
- tclsh_name="$withval"; echo "$as_me:$LINENO: result: $tclsh_name" >&5
- echo "${ECHO_T}$tclsh_name" >&6
- else
-! tclsh_name="tclsh8.5"; echo "$as_me:$LINENO: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi;
- # Extract the first word of "$tclsh_name", so it can be a program name with args.
-***************
-*** 4489,4495 ****
-
-
-
-! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
- tclsh_name="tclsh8.2"
- # Extract the first word of "$tclsh_name", so it can be a program name with args.
- set dummy $tclsh_name; ac_word=$2
---- 4489,4537 ----
-
-
-
-! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
-! tclsh_name="tclsh8.4"
-! # Extract the first word of "$tclsh_name", so it can be a program name with args.
-! set dummy $tclsh_name; ac_word=$2
-! echo "$as_me:$LINENO: checking for $ac_word" >&5
-! echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-! if test "${ac_cv_path_vi_cv_path_tcl+set}" = set; then
-! echo $ECHO_N "(cached) $ECHO_C" >&6
-! else
-! case $vi_cv_path_tcl in
-! [\\/]* | ?:[\\/]*)
-! ac_cv_path_vi_cv_path_tcl="$vi_cv_path_tcl" # Let the user override the test with a path.
-! ;;
-! *)
-! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-! for as_dir in $PATH
-! do
-! IFS=$as_save_IFS
-! test -z "$as_dir" && as_dir=.
-! for ac_exec_ext in '' $ac_executable_extensions; do
-! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-! ac_cv_path_vi_cv_path_tcl="$as_dir/$ac_word$ac_exec_ext"
-! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-! break 2
-! fi
-! done
-! done
-!
-! ;;
-! esac
-! fi
-! vi_cv_path_tcl=$ac_cv_path_vi_cv_path_tcl
-!
-! if test -n "$vi_cv_path_tcl"; then
-! echo "$as_me:$LINENO: result: $vi_cv_path_tcl" >&5
-! echo "${ECHO_T}$vi_cv_path_tcl" >&6
-! else
-! echo "$as_me:$LINENO: result: no" >&5
-! echo "${ECHO_T}no" >&6
-! fi
-!
-! fi
-! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
- tclsh_name="tclsh8.2"
- # Extract the first word of "$tclsh_name", so it can be a program name with args.
- set dummy $tclsh_name; ac_word=$2
-***************
-*** 4649,4654 ****
---- 4691,4697 ----
- echo $ECHO_N "checking for location of tclConfig.sh script... $ECHO_C" >&6
- if test "x$MACOSX" != "xyes"; then
- tclcnf=`echo $tclinc | sed s/include/lib/g`
-+ tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
- else
- tclcnf="/System/Library/Frameworks/Tcl.framework"
- fi
-***************
-*** 4668,4673 ****
---- 4711,4717 ----
- echo "$as_me:$LINENO: checking for Tcl library by myself" >&5
- echo $ECHO_N "checking for Tcl library by myself... $ECHO_C" >&6
- tcllib=`echo $tclinc | sed s/include/lib/g`
-+ tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
- for ext in .so .a ; do
- for ver in "" $tclver ; do
- for try in $tcllib ; do
-*** ../vim-7.1.178/src/version.c Tue Jan 1 15:42:45 2008
---- src/version.c Tue Jan 1 16:24:07 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 179,
- /**/
-
---
-Just think of all the things we haven't thought of yet.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.180
-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.1.180
-Problem: Regexp patterns not tested sufficiently.
-Solution: Add more checks to the regexp test.
-Files: src/testdir/test64.in, src/testdir/test64.ok
-
-
-*** ../vim-7.1.179/src/testdir/test64.in Tue Sep 25 17:54:41 2007
---- src/testdir/test64.in Mon Dec 31 14:20:23 2007
-***************
-*** 14,23 ****
---- 14,136 ----
- :" etc.
- :" When there is no match use only the first two items.
- :let tl = []
-+ :call add(tl, ['ab', 'aab', 'ab'])
- :call add(tl, ['b', 'abcdef', 'b'])
- :call add(tl, ['bc*', 'abccccdef', 'bcccc'])
- :call add(tl, ['bc\{-}', 'abccccdef', 'b'])
- :call add(tl, ['bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
-+ :call add(tl, ['bc*', 'abbdef', 'b'])
-+ :call add(tl, ['c*', 'ccc', 'ccc'])
-+ :call add(tl, ['bc*', 'abdef', 'b'])
-+ :call add(tl, ['c*', 'abdef', ''])
-+ :call add(tl, ['bc\+', 'abccccdef', 'bcccc'])
-+ :call add(tl, ['bc\+', 'abdef']) "no match
-+ :"
-+ :"operator \|
-+ :call add(tl, ['a\|ab', 'cabd', 'a']) "alternation is ordered
-+ :"
-+ :call add(tl, ['c\?', 'ccb', 'c'])
-+ :call add(tl, ['bc\?', 'abd', 'b'])
-+ :call add(tl, ['bc\?', 'abccd', 'bc'])
-+ :"
-+ :call add(tl, ['\va{1}', 'ab', 'a'])
-+ :"
-+ :call add(tl, ['\va{2}', 'aa', 'aa'])
-+ :call add(tl, ['\va{2}', 'caad', 'aa'])
-+ :call add(tl, ['\va{2}', 'aba'])
-+ :call add(tl, ['\va{2}', 'ab'])
-+ :call add(tl, ['\va{2}', 'abaa', 'aa'])
-+ :call add(tl, ['\va{2}', 'aaa', 'aa'])
-+ :"
-+ :call add(tl, ['\vb{1}', 'abca', 'b'])
-+ :call add(tl, ['\vba{2}', 'abaa', 'baa'])
-+ :call add(tl, ['\vba{3}', 'aabaac'])
-+ :"
-+ :call add(tl, ['\v(ab){1}', 'ab', 'ab', 'ab'])
-+ :call add(tl, ['\v(ab){1}', 'dabc', 'ab', 'ab'])
-+ :call add(tl, ['\v(ab){1}', 'acb'])
-+ :"
-+ :call add(tl, ['\v(ab){0,2}', 'acb', "", ""])
-+ :call add(tl, ['\v(ab){0,2}', 'ab', 'ab', 'ab'])
-+ :call add(tl, ['\v(ab){1,2}', 'ab', 'ab', 'ab'])
-+ :call add(tl, ['\v(ab){1,2}', 'ababc', 'abab', 'ab'])
-+ :call add(tl, ['\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
-+ :call add(tl, ['\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
-+ :"
-+ :call add(tl, ['\v(ab){2}', 'abab', 'abab', 'ab'])
-+ :call add(tl, ['\v(ab){2}', 'cdababe', 'abab', 'ab'])
-+ :call add(tl, ['\v(ab){2}', 'abac'])
-+ :call add(tl, ['\v(ab){2}', 'abacabab', 'abab', 'ab'])
-+ :call add(tl, ['\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
-+ :call add(tl, ['\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
-+ :"
-+ :call add(tl, ['\v(a{1}){1}', 'a', 'a', 'a'])
-+ :call add(tl, ['\v(a{2}){1}', 'aa', 'aa', 'aa'])
-+ :call add(tl, ['\v(a{2}){1}', 'aaac', 'aa', 'aa'])
-+ :call add(tl, ['\v(a{2}){1}', 'daaac', 'aa', 'aa'])
-+ :call add(tl, ['\v(a{1}){2}', 'daaac', 'aa', 'a'])
-+ :call add(tl, ['\v(a{1}){2}', 'aaa', 'aa', 'a'])
-+ :call add(tl, ['\v(a{2})+', 'adaac', 'aa', 'aa'])
-+ :call add(tl, ['\v(a{2})+', 'aa', 'aa', 'aa'])
-+ :call add(tl, ['\v(a{2}){1}', 'aa', 'aa', 'aa'])
-+ :call add(tl, ['\v(a{1}){2}', 'aa', 'aa', 'a'])
-+ :call add(tl, ['\v(a{1}){1}', 'a', 'a', 'a'])
-+ :call add(tl, ['\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
-+ :call add(tl, ['\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
-+ :"
-+ :call add(tl, ['\v(a+){2}', 'dadaac', 'aa', 'a'])
-+ :call add(tl, ['\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
-+ :"
-+ :call add(tl, ['\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
-+ :call add(tl, ['\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
-+ :call add(tl, ['\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
-+ :call add(tl, ['\v(a{1,3}){3}', 'daac'])
-+ :call add(tl, ['\v(a{1,2}){2}', 'dac'])
-+ :call add(tl, ['\v(a+)+', 'daac', 'aa', 'aa'])
-+ :call add(tl, ['\v(a+)+', 'aaa', 'aaa', 'aaa'])
-+ :call add(tl, ['\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
-+ :call add(tl, ['\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
-+ :call add(tl, ['\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
-+ :call add(tl, ['\v(a|b|c)+', 'aacb', 'aacb', 'b'])
-+ :call add(tl, ['\v(a|b|c){2}', 'abcb', 'ab', 'b'])
-+ :call add(tl, ['\v(abc){2}', 'abcabd', ])
-+ :call add(tl, ['\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
-+ :"
-+ :call add(tl, ['a*', 'cc', ''])
-+ :call add(tl, ['\v(a*)+', 'cc', ''])
-+ :call add(tl, ['\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
-+ :call add(tl, ['\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
-+ :call add(tl, ['\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
-+ :call add(tl, ['\v(a{0,2})+', 'cc', ''])
-+ :call add(tl, ['\v(a*)+', '', ''])
-+ :call add(tl, ['\v((a*)+)+', '', ''])
-+ :call add(tl, ['\v((ab)*)+', '', ''])
-+ :call add(tl, ['\va{1,3}', 'aab', 'aa'])
-+ :call add(tl, ['\va{2,3}', 'abaa', 'aa'])
-+ :"
-+ :call add(tl, ['\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
-+ :call add(tl, ['\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
-+ :call add(tl, ['\va{2}|b{2}', 'abab'])
-+ :call add(tl, ['\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
-+ :call add(tl, ['\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
-+ :call add(tl, ['\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
-+ :call add(tl, ['\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
-+ :call add(tl, ['\va(bc){2}d', 'aabcbfbc' ])
-+ :call add(tl, ['\va*a{2}', 'a', ])
-+ :call add(tl, ['\va*a{2}', 'aa', 'aa' ])
-+ :call add(tl, ['\va*a{2}', 'aaa', 'aaa' ])
-+ :call add(tl, ['\va*a{2}', 'bbbabcc', ])
-+ :call add(tl, ['\va*b*|a*c*', 'a', 'a'])
-+ :call add(tl, ['\va{1}b{1}|a{1}b{1}', ''])
-+ :"
-+ :"submatches
-+ :call add(tl, ['\v(a)', 'ab', 'a', 'a'])
-+ :call add(tl, ['\v(a)(b)', 'ab', 'ab', 'a', 'b'])
-+ :call add(tl, ['\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
-+ :call add(tl, ['\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
-+ :call add(tl, ['\v(a)|(b)', 'ab', 'a', 'a'])
-+ :"
-+ :call add(tl, ['\v(a*)+', 'aaaa', 'aaaa', ''])
- :call add(tl, ['x', 'abcdef'])
- :"
- :for t in tl
-*** ../vim-7.1.179/src/testdir/test64.ok Tue Aug 14 17:28:14 2007
---- src/testdir/test64.ok Mon Dec 31 14:20:26 2007
-***************
-*** 4,6 ****
---- 4,102 ----
- OK
- OK
- OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-+ OK
-*** ../vim-7.1.179/src/version.c Tue Jan 1 16:25:33 2008
---- src/version.c Tue Jan 1 17:34:32 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 180,
- /**/
-
---
-CONCORDE: Message for you, sir.
- He falls forward revealing the arrow with the note.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.181
-Problem: Accessing uninitialized memory in Farsi mode. (Dominuque Pelle)
-Solution: Only invoke lrF_sub() when there is something to do.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.180/src/ex_cmds.c Sun Dec 9 19:37:37 2007
---- src/ex_cmds.c Mon Dec 31 17:29:25 2007
-***************
-*** 4212,4222 ****
- sub_nlines = 0;
- }
-
-- #ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */
-- if (p_altkeymap && curwin->w_p_rl)
-- lrF_sub(cmd);
-- #endif
--
- if (eap->cmdidx == CMD_tilde)
- which_pat = RE_LAST; /* use last used regexp */
- else
---- 4212,4217 ----
-***************
-*** 4252,4257 ****
---- 4247,4256 ----
- }
- else /* find the end of the regexp */
- {
-+ #ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */
-+ if (p_altkeymap && curwin->w_p_rl)
-+ lrF_sub(cmd);
-+ #endif
- which_pat = RE_LAST; /* use last used regexp */
- delimiter = *cmd++; /* remember delimiter character */
- pat = cmd; /* remember start of search pat */
-*** ../vim-7.1.180/src/version.c Tue Jan 1 17:37:01 2008
---- src/version.c Wed Jan 2 13:57:31 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 181,
- /**/
-
---
-Yah, well, we had to carve our electrons out of driftwood we'd
-find. In the winter. Uphill. Both ways.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.182
-Problem: When using tab pages and an argument list the session file may
- contain wrong "next" commands. (Alexander Bluem)
-Solution: Use "argu" commands and only when needed.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.181/src/ex_docmd.c Sun Dec 9 19:37:37 2007
---- src/ex_docmd.c Mon Dec 31 18:24:16 2007
-***************
-*** 372,378 ****
- static char_u *arg_all __ARGS((void));
- #ifdef FEAT_SESSION
- static int makeopens __ARGS((FILE *fd, char_u *dirnow));
-! static int put_view __ARGS((FILE *fd, win_T *wp, int add_edit, unsigned *flagp));
- static void ex_loadview __ARGS((exarg_T *eap));
- static char_u *get_view_file __ARGS((int c));
- static int did_lcd; /* whether ":lcd" was produced for a session */
---- 372,378 ----
- static char_u *arg_all __ARGS((void));
- #ifdef FEAT_SESSION
- static int makeopens __ARGS((FILE *fd, char_u *dirnow));
-! static int put_view __ARGS((FILE *fd, win_T *wp, int add_edit, unsigned *flagp, int current_arg_idx));
- static void ex_loadview __ARGS((exarg_T *eap));
- static char_u *get_view_file __ARGS((int c));
- static int did_lcd; /* whether ":lcd" was produced for a session */
-***************
-*** 8762,8768 ****
- }
- else
- {
-! failed |= (put_view(fd, curwin, !using_vdir, flagp) == FAIL);
- }
- if (put_line(fd, "let &so = s:so_save | let &siso = s:siso_save")
- == FAIL)
---- 8762,8769 ----
- }
- else
- {
-! failed |= (put_view(fd, curwin, !using_vdir, flagp,
-! -1) == FAIL);
- }
- if (put_line(fd, "let &so = s:so_save | let &siso = s:siso_save")
- == FAIL)
-***************
-*** 9761,9766 ****
---- 9762,9769 ----
- int tabnr;
- win_T *tab_firstwin;
- frame_T *tab_topframe;
-+ int cur_arg_idx = 0;
-+ int next_arg_idx;
-
- if (ssop_flags & SSOP_BUFFERS)
- only_save_windows = FALSE; /* Save ALL buffers */
-***************
-*** 9976,9987 ****
- {
- if (!ses_do_win(wp))
- continue;
-! if (put_view(fd, wp, wp != edited_win, &ssop_flags) == FAIL)
- return FAIL;
- if (nr > 1 && put_line(fd, "wincmd w") == FAIL)
- return FAIL;
- }
-
- /*
- * Restore cursor to the current window if it's not the first one.
- */
---- 9979,9997 ----
- {
- if (!ses_do_win(wp))
- continue;
-! if (put_view(fd, wp, wp != edited_win, &ssop_flags,
-! cur_arg_idx) == FAIL)
- return FAIL;
- if (nr > 1 && put_line(fd, "wincmd w") == FAIL)
- return FAIL;
-+ next_arg_idx = wp->w_arg_idx;
- }
-
-+ /* The argument index in the first tab page is zero, need to set it in
-+ * each window. For further tab pages it's the window where we do
-+ * "tabedit". */
-+ cur_arg_idx = next_arg_idx;
-+
- /*
- * Restore cursor to the current window if it's not the first one.
- */
-***************
-*** 10190,10200 ****
- * Caller must make sure 'scrolloff' is zero.
- */
- static int
-! put_view(fd, wp, add_edit, flagp)
- FILE *fd;
- win_T *wp;
- int add_edit; /* add ":edit" command to view */
- unsigned *flagp; /* vop_flags or ssop_flags */
- {
- win_T *save_curwin;
- int f;
---- 10200,10212 ----
- * Caller must make sure 'scrolloff' is zero.
- */
- static int
-! put_view(fd, wp, add_edit, flagp, current_arg_idx)
- FILE *fd;
- win_T *wp;
- int add_edit; /* add ":edit" command to view */
- unsigned *flagp; /* vop_flags or ssop_flags */
-+ int current_arg_idx; /* current argument index of the window, use
-+ * -1 if unknown */
- {
- win_T *save_curwin;
- int f;
-***************
-*** 10224,10233 ****
-
- /* Only when part of a session: restore the argument index. Some
- * arguments may have been deleted, check if the index is valid. */
-! if (wp->w_arg_idx != 0 && wp->w_arg_idx <= WARGCOUNT(wp)
- && flagp == &ssop_flags)
- {
-! if (fprintf(fd, "%ldnext", (long)wp->w_arg_idx) < 0
- || put_eol(fd) == FAIL)
- return FAIL;
- did_next = TRUE;
---- 10236,10245 ----
-
- /* Only when part of a session: restore the argument index. Some
- * arguments may have been deleted, check if the index is valid. */
-! if (wp->w_arg_idx != current_arg_idx && wp->w_arg_idx <= WARGCOUNT(wp)
- && flagp == &ssop_flags)
- {
-! if (fprintf(fd, "%ldargu", (long)wp->w_arg_idx + 1) < 0
- || put_eol(fd) == FAIL)
- return FAIL;
- did_next = TRUE;
-*** ../vim-7.1.181/src/version.c Wed Jan 2 13:58:17 2008
---- src/version.c Wed Jan 2 15:10:01 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 182,
- /**/
-
---
-You were lucky. We lived for three months in a brown paper bag in a
-septic tank. We used to have to get up at six o'clock in the morning,
-clean the bag, eat a crust of stale bread, go to work down mill for
-fourteen hours a day week in-week out. When we got home, our Dad
-would thrash us to sleep with his belt!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.183
-Problem: "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu
- Paul)
-Solution: Inside "\%[]" detect \&, \| and \) as an error.
-Files: src/regexp.c
-
-
-*** ../vim-7.1.182/src/regexp.c Sun Dec 9 19:25:35 2007
---- src/regexp.c Wed Jan 2 15:02:37 2008
-***************
-*** 1288,1295 ****
- }
-
- /*
-! * regbranch - one alternative of an | operator
-! *
- * Implements the & operator.
- */
- static char_u *
---- 1288,1294 ----
- }
-
- /*
-! * Handle one alternative of an | operator.
- * Implements the & operator.
- */
- static char_u *
-***************
-*** 1330,1337 ****
- }
-
- /*
-! * regbranch - one alternative of an | or & operator
-! *
- * Implements the concatenation operator.
- */
- static char_u *
---- 1329,1335 ----
- }
-
- /*
-! * Handle one alternative of an | or & operator.
- * Implements the concatenation operator.
- */
- static char_u *
-***************
-*** 1708,1713 ****
---- 1706,1713 ----
- case Magic('|'):
- case Magic('&'):
- case Magic(')'):
-+ if (one_exactly)
-+ EMSG_ONE_RET_NULL;
- EMSG_RET_NULL(_(e_internal)); /* Supposed to be caught earlier. */
- /* NOTREACHED */
-
-***************
-*** 3106,3112 ****
- * slow, we keep one allocated piece of memory and only re-allocate it when
- * it's too small. It's freed in vim_regexec_both() when finished.
- */
-! static char_u *reg_tofree;
- static unsigned reg_tofreelen;
-
- /*
---- 3106,3112 ----
- * slow, we keep one allocated piece of memory and only re-allocate it when
- * it's too small. It's freed in vim_regexec_both() when finished.
- */
-! static char_u *reg_tofree = NULL;
- static unsigned reg_tofreelen;
-
- /*
-*** ../vim-7.1.182/src/version.c Wed Jan 2 15:12:29 2008
---- src/version.c Wed Jan 2 15:33:52 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 183,
- /**/
-
---
-Not too long ago, unzipping in public was illegal...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.184
-Problem: Crash when deleting backwards over a line break in Insert mode.
-Solution: Don't advance the cursor when it's already on the NUL after a
- line. (Matthew Wozniski)
-Files: src/normal.c
-
-
-*** ../vim-7.1.183/src/normal.c Sun Oct 14 17:15:45 2007
---- src/normal.c Tue Jan 1 16:40:24 2008
-***************
-*** 5849,5860 ****
- /* When the NL before the first char has to be deleted we
- * put the cursor on the NUL after the previous line.
- * This is a very special case, be careful!
-! * don't adjust op_end now, otherwise it won't work */
- if ( (cap->oap->op_type == OP_DELETE
- || cap->oap->op_type == OP_CHANGE)
- && !lineempty(curwin->w_cursor.lnum))
- {
-! ++curwin->w_cursor.col;
- cap->retval |= CA_NO_ADJ_OP_END;
- }
- continue;
---- 5849,5861 ----
- /* When the NL before the first char has to be deleted we
- * put the cursor on the NUL after the previous line.
- * This is a very special case, be careful!
-! * Don't adjust op_end now, otherwise it won't work. */
- if ( (cap->oap->op_type == OP_DELETE
- || cap->oap->op_type == OP_CHANGE)
- && !lineempty(curwin->w_cursor.lnum))
- {
-! if (*ml_get_cursor() != NUL)
-! ++curwin->w_cursor.col;
- cap->retval |= CA_NO_ADJ_OP_END;
- }
- continue;
-*** ../vim-7.1.183/src/version.c Wed Jan 2 15:34:48 2008
---- src/version.c Wed Jan 2 16:24:19 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 184,
- /**/
-
---
-Not too long ago, cut and paste was done with scissors and glue...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.185
-Problem: Using "gR" with a multi-byte encoding and typing a CR pushes
- characters onto the replace stack incorrectly, resulting in BS
- putting back the wrong characters. (Paul B. Mahol)
-Solution: Push multi-byte characters onto the replace stack in reverse byte
- order. Add replace_push_mb().
-Files: src/edit.c, src/misc1.c, src/proto/edit.pro
-
-
-*** ../vim-7.1.184/src/edit.c Sun Dec 9 20:25:59 2007
---- src/edit.c Tue Jan 1 17:28:07 2008
-***************
-*** 6939,6944 ****
---- 6939,6963 ----
- ++replace_stack_nr;
- }
-
-+ #if defined(FEAT_MBYTE) || defined(PROTO)
-+ /*
-+ * Push a character onto the replace stack. Handles a multi-byte character in
-+ * reverse byte order, so that the first byte is popped off first.
-+ * Return the number of bytes done (includes composing characters).
-+ */
-+ int
-+ replace_push_mb(p)
-+ char_u *p;
-+ {
-+ int l = (*mb_ptr2len)(p);
-+ int j;
-+
-+ for (j = l - 1; j >= 0; --j)
-+ replace_push(p[j]);
-+ return l;
-+ }
-+ #endif
-+
- #if 0
- /*
- * call replace_push(c) with replace_offset set to the first NUL.
-*** ../vim-7.1.184/src/misc1.c Wed Sep 26 22:35:06 2007
---- src/misc1.c Wed Jan 2 17:48:00 2008
-***************
-*** 591,597 ****
- replace_push(NUL);
- p = saved_line + curwin->w_cursor.col;
- while (*p != NUL)
-! replace_push(*p++);
- saved_line[curwin->w_cursor.col] = NUL;
- }
- #endif
---- 592,605 ----
- replace_push(NUL);
- p = saved_line + curwin->w_cursor.col;
- while (*p != NUL)
-! {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! p += replace_push_mb(p);
-! else
-! #endif
-! replace_push(*p++);
-! }
- saved_line[curwin->w_cursor.col] = NUL;
- }
- #endif
-***************
-*** 1914,1920 ****
- int charlen;
- {
- int c = buf[0];
-- int l, j;
- #endif
- int newlen; /* nr of bytes inserted */
- int oldlen; /* nr of bytes deleted (0 when not replacing) */
---- 1922,1927 ----
-***************
-*** 2016,2028 ****
- for (i = 0; i < oldlen; ++i)
- {
- #ifdef FEAT_MBYTE
-! l = (*mb_ptr2len)(oldp + col + i) - 1;
-! for (j = l; j >= 0; --j)
-! replace_push(oldp[col + i + j]);
-! i += l;
-! #else
-! replace_push(oldp[col + i]);
- #endif
- }
- }
-
---- 2023,2033 ----
- for (i = 0; i < oldlen; ++i)
- {
- #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! i += replace_push_mb(oldp + col + i) - 1;
-! else
- #endif
-+ replace_push(oldp[col + i]);
- }
- }
-
-*** ../vim-7.1.184/src/proto/edit.pro Sat May 5 20:21:34 2007
---- src/proto/edit.pro Tue Jan 1 17:21:24 2008
-***************
-*** 32,37 ****
---- 32,38 ----
- char_u *get_last_insert __ARGS((void));
- char_u *get_last_insert_save __ARGS((void));
- void replace_push __ARGS((int c));
-+ int replace_push_mb __ARGS((char_u *p));
- void fixthisline __ARGS((int (*get_the_indent)(void)));
- void fix_indent __ARGS((void));
- int in_cinkeys __ARGS((int keytyped, int when, int line_is_empty));
-*** ../vim-7.1.184/src/version.c Wed Jan 2 16:25:20 2008
---- src/version.c Wed Jan 2 17:45:10 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 185,
- /**/
-
---
-Not too long ago, a keyboard was something to make music with...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.186
-Problem: "expand('<afile>')" returns a bogus value after changing
- directory. (Dave Fishburn)
-Solution: Copy "autocmd_fname" to allocated memory and expand to full
- filename. Shorten the path when expanding <afile>.
-Files: src/ex_docmd.c, src/fileio.c
-
-
-*** ../vim-7.1.185/src/ex_docmd.c Wed Jan 2 15:12:29 2008
---- src/ex_docmd.c Wed Jan 2 20:12:33 2008
-***************
-*** 7799,7804 ****
---- 7799,7805 ----
- free_cd_dir()
- {
- vim_free(prev_dir);
-+ prev_dir = NULL;
- }
- #endif
-
-***************
-*** 9521,9526 ****
---- 9522,9528 ----
- *errormsg = (char_u *)_("E495: no autocommand file name to substitute for \"<afile>\"");
- return NULL;
- }
-+ result = shorten_fname1(result);
- break;
-
- case SPEC_ABUF: /* buffer number for autocommand */
-*** ../vim-7.1.185/src/fileio.c Thu Nov 8 20:47:34 2007
---- src/fileio.c Wed Jan 2 20:21:43 2008
-***************
-*** 5556,5562 ****
- #endif
-
- #if defined(FEAT_VIMINFO) || defined(FEAT_BROWSE) || \
-! defined(FEAT_QUICKFIX) || defined(PROTO)
- /*
- * Try to find a shortname by comparing the fullname with the current
- * directory.
---- 5556,5562 ----
- #endif
-
- #if defined(FEAT_VIMINFO) || defined(FEAT_BROWSE) || \
-! defined(FEAT_QUICKFIX) || defined(FEAT_AUTOCMD) || defined(PROTO)
- /*
- * Try to find a shortname by comparing the fullname with the current
- * directory.
-***************
-*** 8546,8551 ****
---- 8546,8553 ----
-
- /*
- * Set the file name to be used for <afile>.
-+ * Make a copy to avoid that changing a buffer name or directory makes it
-+ * invalid.
- */
- if (fname_io == NULL)
- {
-***************
-*** 8558,8563 ****
---- 8560,8567 ----
- }
- else
- autocmd_fname = fname_io;
-+ if (autocmd_fname != NULL)
-+ autocmd_fname = FullName_save(autocmd_fname, FALSE);
-
- /*
- * Set the buffer number to be used for <abuf>.
-***************
-*** 8740,8745 ****
---- 8744,8750 ----
- vim_free(sourcing_name);
- sourcing_name = save_sourcing_name;
- sourcing_lnum = save_sourcing_lnum;
-+ vim_free(autocmd_fname);
- autocmd_fname = save_autocmd_fname;
- autocmd_bufnr = save_autocmd_bufnr;
- autocmd_match = save_autocmd_match;
-*** ../vim-7.1.185/src/version.c Wed Jan 2 17:48:24 2008
---- src/version.c Wed Jan 2 21:06:35 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 186,
- /**/
-
---
- LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and
- hacks him to the floor. Blood. Swashbuckling music (perhaps).
- LAUNCELOT races through into the castle screaming.
-SECOND SENTRY: Hey!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.187
-Problem: Win32 GUI: Custom completion using system() no longer works
- after patch 7.1.104. (Erik Falor)
-Solution: Loop when safe_vgetc() returns K_IGNORE.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.186/src/ex_getln.c Fri Dec 7 20:28:13 2007
---- src/ex_getln.c Wed Jan 2 21:42:51 2008
-***************
-*** 335,341 ****
- quit_more = FALSE; /* reset after CTRL-D which had a more-prompt */
-
- cursorcmd(); /* set the cursor on the right spot */
-! c = safe_vgetc();
- if (KeyTyped)
- {
- some_key_typed = TRUE;
---- 335,348 ----
- quit_more = FALSE; /* reset after CTRL-D which had a more-prompt */
-
- cursorcmd(); /* set the cursor on the right spot */
-!
-! /* Get a character. Ignore K_IGNORE, it should not do anything, such
-! * as stop completion. */
-! do
-! {
-! c = safe_vgetc();
-! } while (c == K_IGNORE);
-!
- if (KeyTyped)
- {
- some_key_typed = TRUE;
-***************
-*** 1209,1215 ****
- goto cmdline_not_changed;
-
- case K_IGNORE:
-! goto cmdline_not_changed; /* Ignore mouse */
-
- #ifdef FEAT_GUI_W32
- /* On Win32 ignore <M-F4>, we get it when closing the window was
---- 1216,1223 ----
- goto cmdline_not_changed;
-
- case K_IGNORE:
-! /* Ignore mouse event or ex_window() result. */
-! goto cmdline_not_changed;
-
- #ifdef FEAT_GUI_W32
- /* On Win32 ignore <M-F4>, we get it when closing the window was
-*** ../vim-7.1.186/src/version.c Wed Jan 2 21:07:32 2008
---- src/version.c Wed Jan 2 21:53:24 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 187,
- /**/
-
---
-FATHER: Who are you?
-PRINCE: I'm ... your son ...
-FATHER: Not you.
-LAUNCELOT: I'm ... er ... Sir Launcelot, sir.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.188
-Problem: When 'showmode' is off the message for changing a readonly file is
- given in the second column instead of the first. (Payl B. Mahol)
-Solution: Put the W10 message in the first column.
-Files: src/edit.c
-
-
-*** ../vim-7.1.187/src/edit.c Wed Jan 2 17:48:24 2008
---- src/edit.c Wed Jan 2 20:56:46 2008
-***************
-*** 550,556 ****
- i = showmode();
-
- if (!p_im && did_restart_edit == 0)
-! change_warning(i + 1);
-
- #ifdef CURSOR_SHAPE
- ui_cursor_shape(); /* may show different cursor shape */
---- 550,556 ----
- i = showmode();
-
- if (!p_im && did_restart_edit == 0)
-! change_warning(i == 0 ? 0 : i + 1);
-
- #ifdef CURSOR_SHAPE
- ui_cursor_shape(); /* may show different cursor shape */
-*** ../vim-7.1.187/src/version.c Wed Jan 2 21:54:33 2008
---- src/version.c Wed Jan 2 22:06:19 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 188,
- /**/
-
---
-PRINCE: He's come to rescue me, father.
-LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ...
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.189 (after 7.1.104)
-Problem: Patch 7.1.104 was incomplete.
-Solution: Also call plain_vgetc() in ask_yesno().
-Files: src/misc1.c
-
-
-*** ../vim-7.1.188/src/misc1.c Wed Jan 2 17:48:24 2008
---- src/misc1.c Wed Jan 2 17:48:00 2008
-***************
-*** 222,231 ****
- *s++ = *p++;
- orig_char_len--;
- }
- /* Skip over any additional white space (useful when newindent is less
- * than old) */
- while (vim_iswhite(*p))
-! (void)*p++;
-
- }
- else
---- 222,232 ----
- *s++ = *p++;
- orig_char_len--;
- }
-+
- /* Skip over any additional white space (useful when newindent is less
- * than old) */
- while (vim_iswhite(*p))
-! ++p;
-
- }
- else
-***************
-*** 3024,3030 ****
- if (direct)
- r = get_keystroke();
- else
-! r = safe_vgetc();
- if (r == Ctrl_C || r == ESC)
- r = 'n';
- msg_putchar(r); /* show what you typed */
---- 3025,3031 ----
- if (direct)
- r = get_keystroke();
- else
-! r = plain_vgetc();
- if (r == Ctrl_C || r == ESC)
- r = 'n';
- msg_putchar(r); /* show what you typed */
-*** ../vim-7.1.188/src/version.c Wed Jan 2 22:08:43 2008
---- src/version.c Thu Jan 3 12:40:31 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 189,
- /**/
-
---
-Q: How does a UNIX Guru do Sex ?
-A: unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.190
-Problem: Cursor after end-of-line: "iA sentence.<Esc>)"
-Solution: Move cursor back and make motion inclusive.
-Files: src/normal.c
-
-
-*** ../vim-7.1.189/src/normal.c Wed Jan 2 16:25:20 2008
---- src/normal.c Wed Jan 2 22:04:38 2008
-***************
-*** 6564,6569 ****
---- 6564,6575 ----
- clearopbeep(cap->oap);
- else
- {
-+ /* Don't leave the cursor on the NUL past a line */
-+ if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
-+ {
-+ --curwin->w_cursor.col;
-+ cap->oap->inclusive = TRUE;
-+ }
- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
- #endif
-*** ../vim-7.1.189/src/version.c Thu Jan 3 12:42:39 2008
---- src/version.c Thu Jan 3 13:19:03 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 190,
- /**/
-
---
- [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.1.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.1.191
-Problem: Win32 GUI: after patch 7.1.168 there is still a problem when
- clicking in a scrollbar. (Juergen Jottkaerr)
-Solution: Don't check the input buffer when dragging the scrollbar.
-Files: src/gui.c
-
-
-*** ../vim-7.1.190/src/gui.c Tue Nov 6 22:26:39 2007
---- src/gui.c Thu Jan 3 13:16:29 2008
-***************
-*** 3734,3741 ****
- sb->value = value;
-
- #ifdef USE_ON_FLY_SCROLL
-! /* When not allowed to do the scrolling right now, return. */
-! if (dont_scroll || input_available())
- return;
- #endif
- #ifdef FEAT_INS_EXPAND
---- 3734,3743 ----
- sb->value = value;
-
- #ifdef USE_ON_FLY_SCROLL
-! /* When not allowed to do the scrolling right now, return.
-! * This also checked input_available(), but that causes the first click in
-! * a scrollbar to be ignored when Vim doesn't have focus. */
-! if (dont_scroll)
- return;
- #endif
- #ifdef FEAT_INS_EXPAND
-*** ../vim-7.1.190/src/version.c Thu Jan 3 13:19:50 2008
---- src/version.c Thu Jan 3 16:13:23 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 191,
- /**/
-
---
-GUARD #1: What -- a swallow carrying a coconut?
-ARTHUR: It could grip it by the husk!
-GUARD #1: It's not a question of where he grips it! It's a simple question
- of weight ratios! A five ounce bird could not carry a 1 pound
- coconut.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.192
-Problem: With Visual block selection, "s" and typing something, CTRL-C
- doesn't stop Vim from repeating the replacement in other lines,
- like happens for "I".
-Solution: Check for "got_int" to be set.
-Files: src/ops.c
-
-
-*** ../vim-7.1.191/src/ops.c Sat Dec 1 21:12:23 2007
---- src/ops.c Thu Jan 3 16:26:37 2008
-***************
-*** 2468,2476 ****
-
- edit(NUL, FALSE, (linenr_T)count1);
-
-! /* if user has moved off this line, we don't know what to do, so do
-! * nothing */
-! if (curwin->w_cursor.lnum != oap->start.lnum)
- return;
-
- if (oap->block_mode)
---- 2468,2477 ----
-
- edit(NUL, FALSE, (linenr_T)count1);
-
-! /* If user has moved off this line, we don't know what to do, so do
-! * nothing.
-! * Also don't repeat the insert when Insert mode ended with CTRL-C. */
-! if (curwin->w_cursor.lnum != oap->start.lnum || got_int)
- return;
-
- if (oap->block_mode)
-***************
-*** 2601,2608 ****
- /*
- * In Visual block mode, handle copying the new text to all lines of the
- * block.
- */
-! if (oap->block_mode && oap->start.lnum != oap->end.lnum)
- {
- /* Auto-indenting may have changed the indent. If the cursor was past
- * the indent, exclude that indent change from the inserted text. */
---- 2602,2610 ----
- /*
- * In Visual block mode, handle copying the new text to all lines of the
- * block.
-+ * Don't repeat the insert when Insert mode ended with CTRL-C.
- */
-! if (oap->block_mode && oap->start.lnum != oap->end.lnum && !got_int)
- {
- /* Auto-indenting may have changed the indent. If the cursor was past
- * the indent, exclude that indent change from the inserted text. */
-*** ../vim-7.1.191/src/version.c Thu Jan 3 16:14:25 2008
---- src/version.c Thu Jan 3 16:30:07 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 192,
- /**/
-
---
-"A mouse can be just as dangerous as a bullet or a bomb."
- (US Representative Lamar Smith, R-Texas)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.193
-Problem: Some Vim 5.x digraphs are missing in Vim 7, even though the
- character pairs are not used. (Philippe de Muyter)
-Solution: Add those Vim 5.x digraphs that don't conflict with others.
-Files: src/digraph.c
-
-
-*** ../vim-7.1.192/src/digraph.c Thu Sep 13 18:25:08 2007
---- src/digraph.c Thu Jan 3 17:48:47 2008
-***************
-*** 1978,1983 ****
---- 1978,2038 ----
- {'f', 't', 0xfb05},
- {'s', 't', 0xfb06},
- # endif /* FEAT_MBYTE */
-+
-+ /* Vim 5.x compatible digraphs that don't conflict with the above */
-+ {'~', '!', 161}, /* ¡ */
-+ {'c', '|', 162}, /* ¢ */
-+ {'$', '$', 163}, /* £ */
-+ {'o', 'x', 164}, /* ¤ - currency symbol in ISO 8859-1 */
-+ {'Y', '-', 165}, /* ¥ */
-+ {'|', '|', 166}, /* ¦ */
-+ {'c', 'O', 169}, /* © */
-+ {'-', ',', 172}, /* ¬ */
-+ {'-', '=', 175}, /* ¯ */
-+ {'~', 'o', 176}, /* ° */
-+ {'2', '2', 178}, /* ² */
-+ {'3', '3', 179}, /* ³ */
-+ {'p', 'p', 182}, /* ¶ */
-+ {'~', '.', 183}, /* · */
-+ {'1', '1', 185}, /* ¹ */
-+ {'~', '?', 191}, /* ¿ */
-+ {'A', '`', 192}, /* À */
-+ {'A', '^', 194}, /* Â */
-+ {'A', '~', 195}, /* Ã */
-+ {'A', '"', 196}, /* Ä */
-+ {'A', '@', 197}, /* Å */
-+ {'E', '`', 200}, /* È */
-+ {'E', '^', 202}, /* Ê */
-+ {'E', '"', 203}, /* Ë */
-+ {'I', '`', 204}, /* Ì */
-+ {'I', '^', 206}, /* Î */
-+ {'I', '"', 207}, /* Ï */
-+ {'N', '~', 209}, /* Ñ */
-+ {'O', '`', 210}, /* Ò */
-+ {'O', '^', 212}, /* Ô */
-+ {'O', '~', 213}, /* Õ */
-+ {'/', '\\', 215}, /* × - multiplication symbol in ISO 8859-1 */
-+ {'U', '`', 217}, /* Ù */
-+ {'U', '^', 219}, /* Û */
-+ {'I', 'p', 222}, /* Þ */
-+ {'a', '`', 224}, /* à */
-+ {'a', '^', 226}, /* â */
-+ {'a', '~', 227}, /* ã */
-+ {'a', '"', 228}, /* ä */
-+ {'a', '@', 229}, /* å */
-+ {'e', '`', 232}, /* è */
-+ {'e', '^', 234}, /* ê */
-+ {'e', '"', 235}, /* ë */
-+ {'i', '`', 236}, /* ì */
-+ {'i', '^', 238}, /* î */
-+ {'n', '~', 241}, /* ñ */
-+ {'o', '`', 242}, /* ò */
-+ {'o', '^', 244}, /* ô */
-+ {'o', '~', 245}, /* õ */
-+ {'u', '`', 249}, /* ù */
-+ {'u', '^', 251}, /* û */
-+ {'y', '"', 255}, /* x XX */
-+
- {NUL, NUL, NUL}
- };
-
-*** ../vim-7.1.192/src/version.c Thu Jan 3 16:31:17 2008
---- src/version.c Thu Jan 3 17:52:51 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 193,
- /**/
-
---
-Futility Factor: No experiment is ever a complete failure - it can always
-serve as a negative example.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.194
-Problem: ":echo glob('~/{}')" results in /home/user//.
-Solution: Don't add a slash if there already is one.
-Files: src/os_unix.c
-
-
-*** ../vim-7.1.193/src/os_unix.c Sat Dec 1 17:18:45 2007
---- src/os_unix.c Thu Jan 3 18:52:22 2008
-***************
-*** 5482,5488 ****
- {
- STRCPY(p, (*file)[i]);
- if (dir)
-! STRCAT(p, "/"); /* add '/' to a directory name */
- (*file)[j++] = p;
- }
- }
---- 5482,5488 ----
- {
- STRCPY(p, (*file)[i]);
- if (dir)
-! add_pathsep(p); /* add '/' to a directory name */
- (*file)[j++] = p;
- }
- }
-*** ../vim-7.1.193/src/version.c Thu Jan 3 17:53:41 2008
---- src/version.c Thu Jan 3 18:54:41 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 194,
- /**/
-
---
-ARTHUR: Will you ask your master if he wants to join my court at Camelot?!
-GUARD #1: But then of course African swallows are not migratory.
-GUARD #2: Oh, yeah...
-GUARD #1: So they couldn't bring a coconut back anyway...
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.195
-Problem: '0 mark doesn't work for "~/foo ~ foo".
-Solution: Don't expand the whole file name, only "~/".
-Files: src/mark.c
-
-
-*** ../vim-7.1.194/src/mark.c Thu May 10 18:48:03 2007
---- src/mark.c Thu Jan 3 20:17:29 2008
-***************
-*** 505,513 ****
- {
- /*
- * First expand "~/" in the file name to the home directory.
-! * Try to shorten the file name.
- */
-! expand_env(fm->fname, NameBuff, MAXPATHL);
- mch_dirname(IObuff, IOSIZE);
- p = shorten_fname(NameBuff, IObuff);
-
---- 505,528 ----
- {
- /*
- * First expand "~/" in the file name to the home directory.
-! * Don't expand the whole name, it may contain other '~' chars.
- */
-! if (fm->fname[0] == '~' && (fm->fname[1] == '/'
-! #ifdef BACKSLASH_IN_FILENAME
-! || fm->fname[1] == '\\'
-! #endif
-! ))
-! {
-! int len;
-!
-! expand_env((char_u *)"~/", NameBuff, MAXPATHL);
-! len = STRLEN(NameBuff);
-! vim_strncpy(NameBuff + len, fm->fname + 2, MAXPATHL - len - 1);
-! }
-! else
-! vim_strncpy(NameBuff, fm->fname, MAXPATHL - 1);
-!
-! /* Try to shorten the file name. */
- mch_dirname(IObuff, IOSIZE);
- p = shorten_fname(NameBuff, IObuff);
-
-*** ../vim-7.1.194/src/version.c Thu Jan 3 18:55:21 2008
---- src/version.c Thu Jan 3 20:10:16 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 195,
- /**/
-
---
-GUARD #2: Wait a minute -- supposing two swallows carried it together?
-GUARD #1: No, they'd have to have it on a line.
-GUARD #2: Well, simple! They'd just use a standard creeper!
-GUARD #1: What, held under the dorsal guiding feathers?
-GUARD #2: Well, why not?
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.196 (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.1.196 (extra)
-Problem: Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik
- Falor)
-Solution: Use the TTM_SETMAXTIPWIDTH message.
-Files: src/gui_w32.c
-
-
-*** ../vim-7.1.195/src/gui_w32.c Thu Aug 30 12:24:21 2007
---- src/gui_w32.c Thu Jan 3 13:56:26 2008
-***************
-*** 987,992 ****
---- 987,997 ----
- {
- LPNMTTDISPINFOW lpdi = (LPNMTTDISPINFOW)lParam;
-
-+ /* Set the maximum width, this also enables using
-+ * \n for line break. */
-+ SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH,
-+ 0, 500);
-+
- tt_text = enc_to_ucs2(str, NULL);
- lpdi->lpszText = tt_text;
- /* can't show tooltip if failed */
-***************
-*** 996,1001 ****
---- 1001,1011 ----
- {
- LPNMTTDISPINFO lpdi = (LPNMTTDISPINFO)lParam;
-
-+ /* Set the maximum width, this also enables using
-+ * \n for line break. */
-+ SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH,
-+ 0, 500);
-+
- if (STRLEN(str) < sizeof(lpdi->szText)
- || ((tt_text = vim_strsave(str)) == NULL))
- vim_strncpy(lpdi->szText, str,
-***************
-*** 4734,4745 ****
- cur_beval->showState = ShS_NEUTRAL;
- break;
- case TTN_GETDISPINFO:
-! {
-! /* if you get there then we have new common controls */
-! NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh;
-! info->lpszText = (LPSTR)info->lParam;
-! info->uFlags |= TTF_DI_SETITEM;
-! }
- break;
- }
- }
---- 4744,4755 ----
- cur_beval->showState = ShS_NEUTRAL;
- break;
- case TTN_GETDISPINFO:
-! {
-! /* if you get there then we have new common controls */
-! NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh;
-! info->lpszText = (LPSTR)info->lParam;
-! info->uFlags |= TTF_DI_SETITEM;
-! }
- break;
- }
- }
-*** ../vim-7.1.195/src/version.c Thu Jan 3 20:21:34 2008
---- src/version.c Thu Jan 3 20:43:22 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 196,
- /**/
-
---
-Shit makes the flowers grow and that's beautiful
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.197
-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.1.197
-Problem: Mac: "make install" doesn't work when prefix defined.
-Solution: Pass different arguments to "make installruntime". (Jjgod Jiang)
-Files: src/Makefile
-
-
-*** ../vim-7.1.196/src/Makefile Thu Jan 3 20:44:40 2008
---- src/Makefile Thu Jan 3 18:30:02 2008
-***************
-*** 2559,2566 ****
- # -mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin
- srcdir=`pwd`; $(MAKE) -f Makefile installruntime \
- VIMEXE=$$srcdir/$(VIMTARGET) \
-! prefix=$(DESTDIR)$(prefix)/$(RESDIR)/vim \
-! VIMRTLOC=$(DESTDIR)$(prefix)/$(RESDIR)/vim/runtime
- # Put the link back.
- ln -s `pwd`/../runtime $(RESDIR)/vim
- # Copy rgb.txt, Mac doesn't always have X11
---- 2564,2574 ----
- # -mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin
- srcdir=`pwd`; $(MAKE) -f Makefile installruntime \
- VIMEXE=$$srcdir/$(VIMTARGET) \
-! prefix=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR) \
-! exec_prefix=$(DESTDIR)$(prefix)/$(APPDIR)/Contents \
-! BINDIR=$(DESTDIR)$(prefix)/$(APPDIR)/Contents/MacOS \
-! VIMLOC=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR) \
-! VIMRTLOC=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR)/runtime
- # Put the link back.
- ln -s `pwd`/../runtime $(RESDIR)/vim
- # Copy rgb.txt, Mac doesn't always have X11
-*** ../vim-7.1.196/src/version.c Thu Jan 3 20:44:35 2008
---- src/version.c Fri Jan 4 11:52:46 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 197,
- /**/
-
---
-CUSTOMER: Well, can you hang around a couple of minutes? He won't be
- long.
-MORTICIAN: Naaah, I got to go on to Robinson's -- they've lost nine today.
-CUSTOMER: Well, when is your next round?
-MORTICIAN: Thursday.
-DEAD PERSON: I think I'll go for a walk.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.198
-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.1.198
-Problem: Hang when using ":s/\n//gn". (Burak Gorkemli)
-Solution: Set "skip_match".
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.197/src/ex_cmds.c Wed Jan 2 13:58:17 2008
---- src/ex_cmds.c Fri Jan 4 14:46:34 2008
-***************
-*** 4575,4580 ****
---- 4575,4581 ----
- {
- matchcol = (colnr_T)STRLEN(sub_firstline);
- nmatch = 1;
-+ skip_match = TRUE;
- }
- sub_nsubs++;
- did_sub = TRUE;
-*** ../vim-7.1.197/src/version.c Fri Jan 4 11:54:11 2008
---- src/version.c Fri Jan 4 14:52:09 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 198,
- /**/
-
---
- [clop clop]
-ARTHUR: Old woman!
-DENNIS: Man!
-ARTHUR: Man, sorry. What knight lives in that castle over there?
-DENNIS: I'm thirty seven.
-ARTHUR: What?
-DENNIS: I'm thirty seven -- I'm not old!
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.199
-Problem: Can't do command line completion for a specific file name
- extension.
-Solution: When the pattern ends in "$" don't add a star for completion and
- remove the "$" before matching with file names.
-Files: runtime/doc/cmdline.txt, src/ex_getln.c
-
-
-*** ../vim-7.1.198/runtime/doc/cmdline.txt Sat May 12 15:38:39 2007
---- runtime/doc/cmdline.txt Fri Jan 4 15:13:06 2008
-***************
-*** 1,4 ****
-! *cmdline.txt* For Vim version 7.1. Last change: 2006 Jul 18
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *cmdline.txt* For Vim version 7.1. Last change: 2008 Jan 04
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 316,322 ****
- command-line is shown. (Note: the shifted arrow keys do not work on all
- terminals)
-
-! *his* *:history*
- :his[tory] Print the history of last entered commands.
- {not in Vi}
- {not available when compiled without the |+cmdline_hist|
---- 316,322 ----
- command-line is shown. (Note: the shifted arrow keys do not work on all
- terminals)
-
-! *:his* *:history*
- :his[tory] Print the history of last entered commands.
- {not in Vi}
- {not available when compiled without the |+cmdline_hist|
-***************
-*** 447,452 ****
---- 447,457 ----
-
- To completely ignore files with some extension use 'wildignore'.
-
-+ To match only files that end at the end of the typed text append a "$". For
-+ example, to match only files that end in ".c": >
-+ :e *.c$
-+ This will not match a file ending in ".cpp". Without the "$" it does match.
-+
- The old value of an option can be obtained by hitting 'wildchar' just after
- the '='. For example, typing 'wildchar' after ":set dir=" will insert the
- current value of 'dir'. This overrules file name completion for the options
-*** ../vim-7.1.198/src/ex_getln.c Wed Jan 2 21:54:33 2008
---- src/ex_getln.c Fri Jan 4 15:05:31 2008
-***************
-*** 4078,4083 ****
---- 4078,4084 ----
- * ~ would be at the start of the file name, but not the tail.
- * $ could be anywhere in the tail.
- * ` could be anywhere in the file name.
-+ * When the name ends in '$' don't add a star, remove the '$'.
- */
- tail = gettail(retval);
- if ((*retval != '~' || tail != retval)
-***************
-*** 4085,4090 ****
---- 4086,4093 ----
- && vim_strchr(tail, '$') == NULL
- && vim_strchr(retval, '`') == NULL)
- retval[len++] = '*';
-+ else if (len > 0 && retval[len - 1] == '$')
-+ --len;
- retval[len] = NUL;
- }
- }
-*** ../vim-7.1.198/src/version.c Fri Jan 4 14:52:14 2008
---- src/version.c Fri Jan 4 15:14:29 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 199,
- /**/
-
---
-ARTHUR: Well, I can't just call you `Man'.
-DENNIS: Well, you could say `Dennis'.
-ARTHUR: Well, I didn't know you were called `Dennis.'
-DENNIS: Well, you didn't bother to find out, did you?
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.200 (after 7.1.177 and 7.1.182)
-Problem: Compiler warnings for uninitialized variables.
-Solution: Init variables.
-Files: src/ex_cmds2.c, src/ex_docmd.c
-
-
-*** ../vim-7.1.199/src/ex_cmds2.c Tue Jan 1 14:16:42 2008
---- src/ex_cmds2.c Fri Jan 4 15:55:54 2008
-***************
-*** 94,100 ****
- int save_redir_off = redir_off;
- tasave_T typeaheadbuf;
- int typeahead_saved = FALSE;
-! int save_ignore_script;
- # ifdef FEAT_EX_EXTRA
- int save_ex_normal_busy;
- # endif
---- 94,100 ----
- int save_redir_off = redir_off;
- tasave_T typeaheadbuf;
- int typeahead_saved = FALSE;
-! int save_ignore_script = 0;
- # ifdef FEAT_EX_EXTRA
- int save_ex_normal_busy;
- # endif
-*** ../vim-7.1.199/src/ex_docmd.c Wed Jan 2 21:07:32 2008
---- src/ex_docmd.c Fri Jan 4 15:57:28 2008
-***************
-*** 9765,9771 ****
- win_T *tab_firstwin;
- frame_T *tab_topframe;
- int cur_arg_idx = 0;
-! int next_arg_idx;
-
- if (ssop_flags & SSOP_BUFFERS)
- only_save_windows = FALSE; /* Save ALL buffers */
---- 9766,9772 ----
- win_T *tab_firstwin;
- frame_T *tab_topframe;
- int cur_arg_idx = 0;
-! int next_arg_idx = 0;
-
- if (ssop_flags & SSOP_BUFFERS)
- only_save_windows = FALSE; /* Save ALL buffers */
-*** ../vim-7.1.199/src/version.c Fri Jan 4 15:16:57 2008
---- src/version.c Fri Jan 4 15:59:46 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 200,
- /**/
-
---
-ARTHUR: I did say sorry about the `old woman,' but from the behind you
- looked--
-DENNIS: What I object to is you automatically treat me like an inferior!
-ARTHUR: Well, I AM king...
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.201
-Problem: When reading stdin 'fenc' and 'ff are not set.
-Solution: Set the options after reading stdin. (Ben Schmidt)
-Files: src/fileio.c
-
-
-*** ../vim-7.1.200/src/fileio.c Wed Jan 2 21:07:32 2008
---- src/fileio.c Fri Jan 4 16:18:27 2008
-***************
-*** 221,231 ****
- {
- int fd = 0;
- int newfile = (flags & READ_NEW);
-- int set_options = newfile || (eap != NULL && eap->read_edit);
- int check_readonly;
- int filtering = (flags & READ_FILTER);
- int read_stdin = (flags & READ_STDIN);
- int read_buffer = (flags & READ_BUFFER);
- linenr_T read_buf_lnum = 1; /* next line to read from curbuf */
- colnr_T read_buf_col = 0; /* next char to read from this line */
- char_u c;
---- 221,232 ----
- {
- int fd = 0;
- int newfile = (flags & READ_NEW);
- int check_readonly;
- int filtering = (flags & READ_FILTER);
- int read_stdin = (flags & READ_STDIN);
- int read_buffer = (flags & READ_BUFFER);
-+ int set_options = newfile || read_buffer
-+ || (eap != NULL && eap->read_edit);
- linenr_T read_buf_lnum = 1; /* next line to read from curbuf */
- colnr_T read_buf_col = 0; /* next char to read from this line */
- char_u c;
-***************
-*** 650,657 ****
-
- if (set_options)
- {
-! curbuf->b_p_eol = TRUE;
-! curbuf->b_start_eol = TRUE;
- #ifdef FEAT_MBYTE
- curbuf->b_p_bomb = FALSE;
- curbuf->b_start_bomb = FALSE;
---- 651,663 ----
-
- if (set_options)
- {
-! /* Don't change 'eol' if reading from buffer as it will already be
-! * correctly set when reading stdin. */
-! if (!read_buffer)
-! {
-! curbuf->b_p_eol = TRUE;
-! curbuf->b_start_eol = TRUE;
-! }
- #ifdef FEAT_MBYTE
- curbuf->b_p_bomb = FALSE;
- curbuf->b_start_bomb = FALSE;
-*** ../vim-7.1.200/src/version.c Fri Jan 4 16:00:10 2008
---- src/version.c Fri Jan 4 16:27:01 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 201,
- /**/
-
---
-A mathematician is a device for turning coffee into theorems.
- Paul Erdos
-A computer programmer is a device for turning coffee into bugs.
- Bram Moolenaar
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.202
-Problem: Incomplete utf-8 byte sequence is not checked for validity.
-Solution: Check the bytes that are present for being valid. (Ben Schmidt)
-Files: src/mbyte.c
-
-
-*** ../vim-7.1.201/src/mbyte.c Thu Aug 30 13:51:52 2007
---- src/mbyte.c Fri Jan 4 17:30:16 2008
-***************
-*** 1642,1648 ****
- * Get the length of UTF-8 byte sequence "p[size]". Does not include any
- * following composing characters.
- * Returns 1 for "".
-! * Returns 1 for an illegal byte sequence.
- * Returns number > "size" for an incomplete byte sequence.
- */
- int
---- 1642,1648 ----
- * Get the length of UTF-8 byte sequence "p[size]". Does not include any
- * following composing characters.
- * Returns 1 for "".
-! * Returns 1 for an illegal byte sequence (also in incomplete byte seq.).
- * Returns number > "size" for an incomplete byte sequence.
- */
- int
-***************
-*** 1652,1664 ****
- {
- int len;
- int i;
-
- if (*p == NUL)
- return 1;
-! len = utf8len_tab[*p];
- if (len > size)
-! return len; /* incomplete byte sequence. */
-! for (i = 1; i < len; ++i)
- if ((p[i] & 0xc0) != 0x80)
- return 1;
- return len;
---- 1652,1665 ----
- {
- int len;
- int i;
-+ int m;
-
- if (*p == NUL)
- return 1;
-! m = len = utf8len_tab[*p];
- if (len > size)
-! m = size; /* incomplete byte sequence. */
-! for (i = 1; i < m; ++i)
- if ((p[i] & 0xc0) != 0x80)
- return 1;
- return len;
-*** ../vim-7.1.201/src/version.c Fri Jan 4 16:30:40 2008
---- src/version.c Fri Jan 4 17:45:33 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 202,
- /**/
-
---
-A computer programmer is a device for turning requirements into
-undocumented features. It runs on cola, pizza and Dilbert cartoons.
- Bram Moolenaar
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.203
-Problem: When 'virtualedit' is "onemore" then "99|" works but ":normal 99|"
- doesn't. (Andy Wokula)
-Solution: Check for "onemore" flag in check_cursor_col().
-Files: src/misc2.c
-
-
-*** ../vim-7.1.202/src/misc2.c Sat Nov 24 21:27:33 2007
---- src/misc2.c Fri Jan 4 21:24:46 2008
-***************
-*** 507,517 ****
- curwin->w_cursor.col = 0;
- else if (curwin->w_cursor.col >= len)
- {
-! /* Allow cursor past end-of-line in Insert mode, restarting Insert
-! * mode or when in Visual mode and 'selection' isn't "old" */
- if ((State & INSERT) || restart_edit
- #ifdef FEAT_VISUAL
- || (VIsual_active && *p_sel != 'o')
- #endif
- || virtual_active())
- curwin->w_cursor.col = len;
---- 508,523 ----
- curwin->w_cursor.col = 0;
- else if (curwin->w_cursor.col >= len)
- {
-! /* Allow cursor past end-of-line when:
-! * - in Insert mode or restarting Insert mode
-! * - in Visual mode and 'selection' isn't "old"
-! * - 'virtualedit' is set */
- if ((State & INSERT) || restart_edit
- #ifdef FEAT_VISUAL
- || (VIsual_active && *p_sel != 'o')
-+ #endif
-+ #ifdef FEAT_VIRTUALEDIT
-+ || (ve_flags & VE_ONEMORE)
- #endif
- || virtual_active())
- curwin->w_cursor.col = len;
-*** ../vim-7.1.202/src/version.c Fri Jan 4 17:46:46 2008
---- src/version.c Fri Jan 4 21:22:29 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 203,
- /**/
-
---
-`When any government, or any church for that matter, undertakes to say to
- its subjects, "This you may not read, this you must not see, this you are
- forbidden to know," the end result is tyranny and oppression no matter how
- holy the motives' -- Robert A Heinlein, "If this goes on --"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.204 (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.1.204 (extra)
-Problem: Win32: Using the example at 'balloonexpr' the balloon disappears
- after four seconds and then comes back again. Also moves the
- mouse pointer a little bit. (Yongwei Wu)
-Solution: Set the autopop time to 30 seconds (the max value). (Sergey
- Khorev) Move the mouse two pixels forward and one back to end up
- in the same position (really!).
-Files: src/gui_w32.c
-
-
-
-*** ../vim-7.1.203/src/gui_w32.c Thu Jan 3 20:44:35 2008
---- src/gui_w32.c Sat Jan 5 13:09:56 2008
-***************
-*** 4575,4585 ****
- SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)pti);
- /* Make tooltip appear sooner */
- SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_INITIAL, 10);
- /*
- * HACK: force tooltip to appear, because it'll not appear until
- * first mouse move. D*mn M$
- */
-! mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, 0);
- mouse_event(MOUSEEVENTF_MOVE, (DWORD)-1, (DWORD)-1, 0, 0);
- vim_free(pti);
- }
---- 4575,4589 ----
- SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)pti);
- /* Make tooltip appear sooner */
- SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_INITIAL, 10);
-+ /* I've performed some tests and it seems the longest possible life time
-+ * of tooltip is 30 seconds */
-+ SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_AUTOPOP, 30000);
- /*
- * HACK: force tooltip to appear, because it'll not appear until
- * first mouse move. D*mn M$
-+ * Amazingly moving (2, 2) and then (-1, -1) the mouse doesn't move.
- */
-! mouse_event(MOUSEEVENTF_MOVE, 2, 2, 0, 0);
- mouse_event(MOUSEEVENTF_MOVE, (DWORD)-1, (DWORD)-1, 0, 0);
- vim_free(pti);
- }
-*** ../vim-7.1.203/src/version.c Fri Jan 4 21:25:01 2008
---- src/version.c Sat Jan 5 13:12:22 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 204,
- /**/
-
---
-WOMAN: I didn't know we had a king. I thought we were an autonomous
- collective.
-DENNIS: You're fooling yourself. We're living in a dictatorship. A
- self-perpetuating autocracy in which the working classes--
-WOMAN: Oh there you go, bringing class into it again.
-DENNIS: That's what it's all about if only people would--
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.205
-Problem: Can't get the operator in an ":omap".
-Solution: Add the "v:operator" variable. (Ben Schmidt)
-Files: runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h
-
-
-*** ../vim-7.1.204/runtime/doc/eval.txt Tue Sep 25 17:54:41 2007
---- runtime/doc/eval.txt Fri Jan 4 20:38:55 2008
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2007 Sep 25
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 04
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1401,1410 ****
- This is the screen column number, like with |virtcol()|. The
- value is zero when there was no mouse button click.
-
- *v:prevcount* *prevcount-variable*
- v:prevcount The count given for the last but one Normal mode command.
- This is the v:count value of the previous command. Useful if
-! you want to cancel Visual mode and then use the count. >
- :vmap % <Esc>:call MyFilter(v:prevcount)<CR>
- < Read-only.
-
---- 1401,1424 ----
- This is the screen column number, like with |virtcol()|. The
- value is zero when there was no mouse button click.
-
-+ *v:operator* *operator-variable*
-+ v:operator The last operator given in Normal mode. This is a single
-+ character except for commands starting with <g> or <z>,
-+ in which case it is two characters. Best used alongside
-+ |v:prevcount| and |v:register|. Useful if you want to cancel
-+ Operator-pending mode and then use the operator, e.g.: >
-+ :omap O <Esc>:call MyMotion(v:operator)<CR>
-+ < The value remains set until another operator is entered, thus
-+ don't expect it to be empty.
-+ v:operator is not set for |:delete|, |:yank| or other Ex
-+ commands.
-+ Read-only.
-+
- *v:prevcount* *prevcount-variable*
- v:prevcount The count given for the last but one Normal mode command.
- This is the v:count value of the previous command. Useful if
-! you want to cancel Visual or Operator-pending mode and then
-! use the count, e.g.: >
- :vmap % <Esc>:call MyFilter(v:prevcount)<CR>
- < Read-only.
-
-*** ../vim-7.1.204/src/eval.c Fri Dec 7 17:08:35 2007
---- src/eval.c Sat Jan 5 13:22:52 2008
-***************
-*** 345,350 ****
---- 345,351 ----
- {VV_NAME("mouse_win", VAR_NUMBER), 0},
- {VV_NAME("mouse_lnum", VAR_NUMBER), 0},
- {VV_NAME("mouse_col", VAR_NUMBER), 0},
-+ {VV_NAME("operator", VAR_STRING), VV_RO},
- };
-
- /* shorthand */
-*** ../vim-7.1.204/src/normal.c Thu Jan 3 13:19:50 2008
---- src/normal.c Fri Jan 4 20:53:43 2008
-***************
-*** 141,146 ****
---- 141,149 ----
- static void nv_Undo __ARGS((cmdarg_T *cap));
- static void nv_tilde __ARGS((cmdarg_T *cap));
- static void nv_operator __ARGS((cmdarg_T *cap));
-+ #ifdef FEAT_EVAL
-+ static void set_op_var __ARGS((int optype));
-+ #endif
- static void nv_lineop __ARGS((cmdarg_T *cap));
- static void nv_home __ARGS((cmdarg_T *cap));
- static void nv_pipe __ARGS((cmdarg_T *cap));
-***************
-*** 7180,7185 ****
---- 7183,7191 ----
- {
- cap->oap->start = curwin->w_cursor;
- cap->oap->op_type = OP_DELETE;
-+ #ifdef FEAT_EVAL
-+ set_op_var(OP_DELETE);
-+ #endif
- cap->count1 = 1;
- nv_dollar(cap);
- finish_op = TRUE;
-***************
-*** 8219,8226 ****
---- 8225,8257 ----
- {
- cap->oap->start = curwin->w_cursor;
- cap->oap->op_type = op_type;
-+ #ifdef FEAT_EVAL
-+ set_op_var(op_type);
-+ #endif
-+ }
-+ }
-+
-+ #ifdef FEAT_EVAL
-+ /*
-+ * Set v:operator to the characters for "optype".
-+ */
-+ static void
-+ set_op_var(optype)
-+ int optype;
-+ {
-+ char_u opchars[3];
-+
-+ if (optype == OP_NOP)
-+ set_vim_var_string(VV_OP, NULL, 0);
-+ else
-+ {
-+ opchars[0] = get_op_char(optype);
-+ opchars[1] = get_extra_op_char(optype);
-+ opchars[2] = NUL;
-+ set_vim_var_string(VV_OP, opchars, -1);
- }
- }
-+ #endif
-
- /*
- * Handle linewise operator "dd", "yy", etc.
-*** ../vim-7.1.204/src/vim.h Sat Aug 11 13:57:31 2007
---- src/vim.h Fri Jan 4 19:11:31 2008
-***************
-*** 1688,1694 ****
- #define VV_MOUSE_WIN 49
- #define VV_MOUSE_LNUM 50
- #define VV_MOUSE_COL 51
-! #define VV_LEN 52 /* number of v: vars */
-
- #ifdef FEAT_CLIPBOARD
-
---- 1688,1695 ----
- #define VV_MOUSE_WIN 49
- #define VV_MOUSE_LNUM 50
- #define VV_MOUSE_COL 51
-! #define VV_OP 52
-! #define VV_LEN 53 /* number of v: vars */
-
- #ifdef FEAT_CLIPBOARD
-
-*** ../vim-7.1.204/src/version.c Sat Jan 5 13:15:08 2008
---- src/version.c Sat Jan 5 13:31:49 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 205,
- /**/
-
---
-ARTHUR: Then who is your lord?
-WOMAN: We don't have a lord.
-ARTHUR: What?
-DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in
- turns to act as a sort of executive officer for the week.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.206
-Problem: Compiler warnings when using MODIFIED_BY.
-Solution: Add type casts. (Ben Schmidt)
-Files: src/version.c
-
-
-*** ../vim-7.1.205/src/version.c Sat Jan 5 13:34:01 2008
---- src/version.c Sat Jan 5 13:56:55 2008
-***************
-*** 1587,1595 ****
-
- if (*mesg == ' ')
- {
-! vim_strncpy(modby, _("Modified by "), MODBY_LEN - 1);
- l = STRLEN(modby);
-! vim_strncpy(modby + l, MODIFIED_BY, MODBY_LEN - l - 1);
- mesg = modby;
- }
- #endif
---- 1589,1597 ----
-
- if (*mesg == ' ')
- {
-! vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1);
- l = STRLEN(modby);
-! vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1);
- mesg = modby;
- }
- #endif
-*** ../vim-7.1.205/src/version.c Sat Jan 5 13:34:01 2008
---- src/version.c Sat Jan 5 13:56:55 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 206,
- /**/
-
---
-ARTHUR: I am your king!
-WOMAN: Well, I didn't vote for you.
-ARTHUR: You don't vote for kings.
-WOMAN: Well, 'ow did you become king then?
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.207
-Problem: Netbeans: "remove" cannot delete one line.
-Solution: Remove partial lines and whole lines properly. Avoid a memory
- leak. (Xavier de Gaye)
-Files: src/netbeans.c
-
-
-*** ../vim-7.1.206/src/netbeans.c Thu May 10 18:40:48 2007
---- src/netbeans.c Sat Jan 5 18:03:24 2008
-***************
-*** 1204,1209 ****
---- 1204,1257 ----
- return result;
- }
-
-+ /*
-+ * Remove from "first" byte to "last" byte (inclusive), at line "lnum" of the
-+ * current buffer. Remove to end of line when "last" is MAXCOL.
-+ */
-+ static void
-+ nb_partialremove(linenr_T lnum, colnr_T first, colnr_T last)
-+ {
-+ char_u *oldtext, *newtext;
-+ int oldlen;
-+ int lastbyte = last;
-+
-+ oldtext = ml_get(lnum);
-+ oldlen = STRLEN(oldtext);
-+ if (first >= oldlen || oldlen == 0) /* just in case */
-+ return;
-+ if (lastbyte >= oldlen)
-+ lastbyte = oldlen - 1;
-+ newtext = alloc(oldlen - (int)(lastbyte - first));
-+ if (newtext != NULL)
-+ {
-+ mch_memmove(newtext, oldtext, first);
-+ mch_memmove(newtext + first, oldtext + lastbyte + 1, STRLEN(oldtext + lastbyte + 1) + 1);
-+ nbdebug((" NEW LINE %d: %s\n", lnum, newtext));
-+ ml_replace(lnum, newtext, FALSE);
-+ }
-+ }
-+
-+ /*
-+ * Replace the "first" line with the concatenation of the "first" and
-+ * the "other" line. The "other" line is not removed.
-+ */
-+ static void
-+ nb_joinlines(linenr_T first, linenr_T other)
-+ {
-+ int len_first, len_other;
-+ char_u *p;
-+
-+ len_first = STRLEN(ml_get(first));
-+ len_other = STRLEN(ml_get(other));
-+ p = alloc((unsigned)(len_first + len_other + 1));
-+ if (p != NULL)
-+ {
-+ mch_memmove(p, ml_get(first), len_first);
-+ mch_memmove(p + len_first, ml_get(other), len_other + 1);
-+ ml_replace(first, p, FALSE);
-+ }
-+ }
-+
- #define SKIP_STOP 2
- #define streq(a,b) (strcmp(a,b) == 0)
- static int needupdate = 0;
-***************
-*** 1371,1376 ****
---- 1419,1426 ----
- long count;
- pos_T first, last;
- pos_T *pos;
-+ pos_T *next;
-+ linenr_T del_from_lnum, del_to_lnum; /* lines to be deleted as a whole */
- int oldFire = netbeansFireChanges;
- int oldSuppress = netbeansSuppressNoLines;
- int wasChanged;
-***************
-*** 1420,1444 ****
- }
- last = *pos;
- nbdebug((" LAST POS: line %d, col %d\n", last.lnum, last.col));
-! curwin->w_cursor = first;
- doupdate = 1;
-
-! /* keep part of first line */
-! if (first.lnum == last.lnum && first.col != last.col)
- {
-! /* deletion is within one line */
-! char_u *p = ml_get(first.lnum);
-! mch_memmove(p + first.col, p + last.col + 1, STRLEN(p + last.col) + 1);
-! nbdebug((" NEW LINE %d: %s\n", first.lnum, p));
-! ml_replace(first.lnum, p, TRUE);
- }
-
-! if (first.lnum < last.lnum)
- {
- int i;
-
- /* delete signs from the lines being deleted */
-! for (i = first.lnum; i <= last.lnum; i++)
- {
- int id = buf_findsign_id(buf->bufp, (linenr_T)i);
- if (id > 0)
---- 1470,1544 ----
- }
- last = *pos;
- nbdebug((" LAST POS: line %d, col %d\n", last.lnum, last.col));
-! del_from_lnum = first.lnum;
-! del_to_lnum = last.lnum;
- doupdate = 1;
-
-! /* Get the position of the first byte after the deleted
-! * section. "next" is NULL when deleting to the end of the
-! * file. */
-! next = off2pos(buf->bufp, off + count);
-!
-! /* Remove part of the first line. */
-! if (first.col != 0 || (next != NULL && first.lnum == next->lnum))
- {
-! if (first.lnum != last.lnum
-! || (next != NULL && first.lnum != next->lnum))
-! {
-! /* remove to the end of the first line */
-! nb_partialremove(first.lnum, first.col,
-! (colnr_T)MAXCOL);
-! if (first.lnum == last.lnum)
-! {
-! /* Partial line to remove includes the end of
-! * line. Join the line with the next one, have
-! * the next line deleted below. */
-! nb_joinlines(first.lnum, next->lnum);
-! del_to_lnum = next->lnum;
-! }
-! }
-! else
-! {
-! /* remove within one line */
-! nb_partialremove(first.lnum, first.col, last.col);
-! }
-! ++del_from_lnum; /* don't delete the first line */
-! }
-!
-! /* Remove part of the last line. */
-! if (first.lnum != last.lnum && next != NULL
-! && next->col != 0 && last.lnum == next->lnum)
-! {
-! nb_partialremove(last.lnum, 0, last.col);
-! if (del_from_lnum > first.lnum)
-! {
-! /* Join end of last line to start of first line; last
-! * line is deleted below. */
-! nb_joinlines(first.lnum, last.lnum);
-! }
-! else
-! /* First line is deleted as a whole, keep the last
-! * line. */
-! --del_to_lnum;
- }
-
-! /* First is partial line; last line to remove includes
-! * the end of line; join first line to line following last
-! * line; line following last line is deleted below. */
-! if (first.lnum != last.lnum && del_from_lnum > first.lnum
-! && next != NULL && last.lnum != next->lnum)
-! {
-! nb_joinlines(first.lnum, next->lnum);
-! del_to_lnum = next->lnum;
-! }
-!
-! /* Delete whole lines if there are any. */
-! if (del_to_lnum >= del_from_lnum)
- {
- int i;
-
- /* delete signs from the lines being deleted */
-! for (i = del_from_lnum; i <= del_to_lnum; i++)
- {
- int id = buf_findsign_id(buf->bufp, (linenr_T)i);
- if (id > 0)
-***************
-*** 1450,1459 ****
- nbdebug((" No sign on line %d\n", i));
- }
-
-! /* delete whole lines */
-! nbdebug((" Deleting lines %d through %d\n", first.lnum, last.lnum));
-! del_lines(last.lnum - first.lnum + 1, FALSE);
- }
- buf->bufp->b_changed = wasChanged; /* logically unchanged */
- netbeansFireChanges = oldFire;
- netbeansSuppressNoLines = oldSuppress;
---- 1550,1564 ----
- nbdebug((" No sign on line %d\n", i));
- }
-
-! nbdebug((" Deleting lines %d through %d\n", del_from_lnum, del_to_lnum));
-! curwin->w_cursor.lnum = del_from_lnum;
-! curwin->w_cursor.col = 0;
-! del_lines(del_to_lnum - del_from_lnum + 1, FALSE);
- }
-+
-+ /* Leave cursor at first deleted byte. */
-+ curwin->w_cursor = first;
-+ check_cursor_lnum();
- buf->bufp->b_changed = wasChanged; /* logically unchanged */
- netbeansFireChanges = oldFire;
- netbeansSuppressNoLines = oldSuppress;
-***************
-*** 2374,2381 ****
- * the current buffer as "buf".
- */
- static void
-! nb_set_curbuf(buf)
-! buf_T *buf;
- {
- if (curbuf != buf && buf_jump_open_win(buf) == NULL)
- set_curbuf(buf, DOBUF_GOTO);
---- 2479,2485 ----
- * the current buffer as "buf".
- */
- static void
-! nb_set_curbuf(buf_T *buf)
- {
- if (curbuf != buf && buf_jump_open_win(buf) == NULL)
- set_curbuf(buf, DOBUF_GOTO);
-*** ../vim-7.1.206/src/version.c Sat Jan 5 13:58:48 2008
---- src/version.c Sat Jan 5 18:06:04 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 207,
- /**/
-
---
-Q: How many hardware engineers does it take to change a lightbulb?
-A: None. We'll fix it in software.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.208
-Problem: On Alpha get an unaligned access error.
-Solution: Store the dictitem pointer before using it. (Matthew Luckie)
-Files: src/eval.c
-
-
-*** ../vim-7.1.207/src/eval.c Sat Jan 5 13:34:01 2008
---- src/eval.c Sat Jan 5 13:22:52 2008
-***************
-*** 3407,3412 ****
---- 3407,3413 ----
- hashtab_T *ht;
- hashitem_T *hi;
- char_u *varname;
-+ dictitem_T *di;
-
- ht = find_var_ht(name, &varname);
- if (ht != NULL && *varname != NUL)
-***************
-*** 3414,3422 ****
- hi = hash_find(ht, varname);
- if (!HASHITEM_EMPTY(hi))
- {
-! if (var_check_fixed(HI2DI(hi)->di_flags, name))
-! return FAIL;
-! if (var_check_ro(HI2DI(hi)->di_flags, name))
- return FAIL;
- delete_var(ht, hi);
- return OK;
---- 3415,3423 ----
- hi = hash_find(ht, varname);
- if (!HASHITEM_EMPTY(hi))
- {
-! di = HI2DI(hi);
-! if (var_check_fixed(di->di_flags, name)
-! || var_check_ro(di->di_flags, name))
- return FAIL;
- delete_var(ht, hi);
- return OK;
-*** ../vim-7.1.207/src/version.c Sat Jan 5 18:06:33 2008
---- src/version.c Sat Jan 5 22:14:17 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 208,
- /**/
-
---
-ARTHUR: Bloody peasant!
-DENNIS: Oh, what a give away. Did you here that, did you here that, eh?
- That's what I'm on about -- did you see him repressing me, you saw it
- didn't you?
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.209
-Problem: GTK: When using the netrw plugin and doing ":gui" Vim hangs.
-Solution: Stop getting a selection after three seconds. This is a hack.
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.1.208/src/gui_gtk_x11.c Fri Oct 19 14:32:50 2007
---- src/gui_gtk_x11.c Sun Jan 6 15:15:52 2008
-***************
-*** 6660,6665 ****
---- 6660,6666 ----
- unsigned i;
- int nbytes;
- char_u *buffer;
-+ time_t start;
-
- for (i = 0; i < N_SELECTION_TARGETS; ++i)
- {
-***************
-*** 6670,6676 ****
- cbd->gtk_sel_atom, target,
- (guint32)GDK_CURRENT_TIME);
-
-! while (received_selection == RS_NONE)
- gtk_main(); /* wait for selection_received_cb */
-
- if (received_selection != RS_FAIL)
---- 6671,6681 ----
- cbd->gtk_sel_atom, target,
- (guint32)GDK_CURRENT_TIME);
-
-! /* Hack: Wait up to three seconds for the selection. A hang was
-! * noticed here when using the netrw plugin combined with ":gui"
-! * during the FocusGained event. */
-! start = time(NULL);
-! while (received_selection == RS_NONE && time(NULL) < start + 3)
- gtk_main(); /* wait for selection_received_cb */
-
- if (received_selection != RS_FAIL)
-*** ../vim-7.1.208/src/version.c Sat Jan 5 22:15:21 2008
---- src/version.c Sun Jan 6 15:14:48 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 209,
- /**/
-
---
-BLACK KNIGHT: I move for no man.
-ARTHUR: So be it!
- [hah] [parry thrust]
- [ARTHUR chops the BLACK KNIGHT's left arm off]
-ARTHUR: Now stand aside, worthy adversary.
-BLACK KNIGHT: 'Tis but a scratch.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.210
-Problem: Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony
- Mechelynck)
-Solution: Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte.
-Files: src/mbyte.c
-
-
-*** ../vim-7.1.209/src/mbyte.c Fri Jan 4 17:46:46 2008
---- src/mbyte.c Sun Jan 6 17:13:51 2008
-***************
-*** 2863,2877 ****
- buf[m++] = K_SPECIAL;
- n += 2;
- }
- # ifdef FEAT_GUI
-! else if (str[n] == CSI
- && str[n + 1] == KS_EXTRA
- && str[n + 2] == (int)KE_CSI)
- {
- buf[m++] = CSI;
- n += 2;
- }
-- # endif
- else if (str[n] == K_SPECIAL
- # ifdef FEAT_GUI
- || str[n] == CSI
---- 2882,2898 ----
- buf[m++] = K_SPECIAL;
- n += 2;
- }
-+ else if ((str[n] == K_SPECIAL
- # ifdef FEAT_GUI
-! || str[n] == CSI
-! # endif
-! )
- && str[n + 1] == KS_EXTRA
- && str[n + 2] == (int)KE_CSI)
- {
- buf[m++] = CSI;
- n += 2;
- }
- else if (str[n] == K_SPECIAL
- # ifdef FEAT_GUI
- || str[n] == CSI
-*** ../vim-7.1.209/src/version.c Sun Jan 6 15:16:12 2008
---- src/version.c Sun Jan 6 17:17:25 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 210,
- /**/
-
---
-ARTHUR: A scratch? Your arm's off!
-BLACK KNIGHT: No, it isn't.
-ARTHUR: Well, what's that then?
-BLACK KNIGHT: I've had worse.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.211
-Problem: The matchparen plugin may take an unexpected amount of time, so
- that it looks like Vim hangs.
-Solution: Add a timeout to searchpair(), searchpairpos(), search() and
- searchpos(). Use half a second timeout in the plugin.
-Files: runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c,
- src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c,
- src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro,
- src/search.c
-
-
-*** ../vim-7.1.210/runtime/doc/eval.txt Sat Jan 5 13:34:01 2008
---- runtime/doc/eval.txt Sun Jan 6 16:27:33 2008
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 04
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 06
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1733,1746 ****
- repeat( {expr}, {count}) String repeat {expr} {count} times
- resolve( {filename}) String get filename a shortcut points to
- reverse( {list}) List reverse {list} in-place
-! search( {pattern} [, {flags}]) Number search for {pattern}
- searchdecl({name} [, {global} [, {thisblock}]])
- Number search for variable declaration
-! searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]])
- Number search for other end of start/end pair
-! searchpairpos( {start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]])
- List search for other end of start/end pair
-! searchpos( {pattern} [, {flags} [, {stopline}]])
- List search for {pattern}
- server2client( {clientid}, {string})
- Number send reply string
---- 1733,1747 ----
- repeat( {expr}, {count}) String repeat {expr} {count} times
- resolve( {filename}) String get filename a shortcut points to
- reverse( {list}) List reverse {list} in-place
-! search( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
-! Number search for {pattern}
- searchdecl({name} [, {global} [, {thisblock}]])
- Number search for variable declaration
-! searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [...]]])
- Number search for other end of start/end pair
-! searchpairpos( {start}, {middle}, {end} [, {flags} [, {skip} [...]]])
- List search for other end of start/end pair
-! searchpos( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
- List search for {pattern}
- server2client( {clientid}, {string})
- Number send reply string
-***************
-*** 4212,4218 ****
- If you want a list to remain unmodified make a copy first: >
- :let revlist = reverse(copy(mylist))
-
-! search({pattern} [, {flags} [, {stopline}]]) *search()*
- Search for regexp pattern {pattern}. The search starts at the
- cursor position (you can use |cursor()| to set it).
-
---- 4216,4222 ----
- If you want a list to remain unmodified make a copy first: >
- :let revlist = reverse(copy(mylist))
-
-! search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
- Search for regexp pattern {pattern}. The search starts at the
- cursor position (you can use |cursor()| to set it).
-
-***************
-*** 4240,4245 ****
---- 4244,4257 ----
- let end = search('END', '', line("w$"))
- < When {stopline} is used and it is not zero this also implies
- that the search does not wrap around the end of the file.
-+ A zero value is equal to not giving the argument.
-+
-+ When the {timeout} argument is given the search stops when
-+ more than this many milli seconds have passed. Thus when
-+ {timeout} is 500 the search stops after half a second.
-+ The value must not be negative. A zero value is like not
-+ giving the argument.
-+ {only available when compiled with the +reltime feature}
-
- If there is no match a 0 is returned and the cursor doesn't
- move. No error message is given.
-***************
-*** 4302,4308 ****
- endif
- <
- *searchpair()*
-! searchpair({start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]])
- Search for the match of a nested start-end pair. This can be
- used to find the "endif" that matches an "if", while other
- if/endif pairs in between are ignored.
---- 4314,4321 ----
- endif
- <
- *searchpair()*
-! searchpair({start}, {middle}, {end} [, {flags} [, {skip}
-! [, {stopline} [, {timeout}]]]])
- Search for the match of a nested start-end pair. This can be
- used to find the "endif" that matches an "if", while other
- if/endif pairs in between are ignored.
-***************
-*** 4337,4343 ****
- When evaluating {skip} causes an error the search is aborted
- and -1 returned.
-
-! For {stopline} see |search()|.
-
- The value of 'ignorecase' is used. 'magic' is ignored, the
- patterns are used like it's on.
---- 4350,4356 ----
- When evaluating {skip} causes an error the search is aborted
- and -1 returned.
-
-! For {stopline} and {timeout} see |search()|.
-
- The value of 'ignorecase' is used. 'magic' is ignored, the
- patterns are used like it's on.
-***************
-*** 4383,4389 ****
- \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')
- <
- *searchpairpos()*
-! searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]])
- Same as searchpair(), but returns a |List| with the line and
- column position of the match. The first element of the |List|
- is the line number and the second element is the byte index of
---- 4396,4403 ----
- \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')
- <
- *searchpairpos()*
-! searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
-! [, {stopline} [, {timeout}]]]])
- Same as searchpair(), but returns a |List| with the line and
- column position of the match. The first element of the |List|
- is the line number and the second element is the byte index of
-***************
-*** 4394,4400 ****
- <
- See |match-parens| for a bigger and more useful example.
-
-! searchpos({pattern} [, {flags} [, {stopline}]]) *searchpos()*
- Same as |search()|, but returns a |List| with the line and
- column position of the match. The first element of the |List|
- is the line number and the second element is the byte index of
---- 4408,4414 ----
- <
- See |match-parens| for a bigger and more useful example.
-
-! searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *searchpos()*
- Same as |search()|, but returns a |List| with the line and
- column position of the match. The first element of the |List|
- is the line number and the second element is the byte index of
-*** ../vim-7.1.210/runtime/plugin/matchparen.vim Sat Aug 18 18:20:57 2007
---- runtime/plugin/matchparen.vim Sun Jan 6 16:22:39 2008
-***************
-*** 1,6 ****
- " Vim plugin for showing matching parens
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 Aug 8
-
- " Exit quickly when:
- " - this plugin was already loaded (or disabled)
---- 1,6 ----
- " Vim plugin for showing matching parens
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2008 Jan 06
-
- " Exit quickly when:
- " - this plugin was already loaded (or disabled)
-***************
-*** 111,117 ****
- \ '=~? "string\\|character\\|singlequote\\|comment"'
- execute 'if' s_skip '| let s_skip = 0 | endif'
-
-! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
-
- if before > 0
- call winrestview(save_cursor)
---- 111,122 ----
- \ '=~? "string\\|character\\|singlequote\\|comment"'
- execute 'if' s_skip '| let s_skip = 0 | endif'
-
-! try
-! " Limit the search time to 500 msec to avoid a hang on very long lines.
-! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, 500)
-! catch /E118/
-! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
-! endtry
-
- if before > 0
- call winrestview(save_cursor)
-*** ../vim-7.1.210/src/edit.c Wed Jan 2 22:08:43 2008
---- src/edit.c Sun Jan 6 16:08:00 2008
-***************
-*** 4062,4068 ****
- found_new_match = searchit(NULL, ins_buf, pos,
- compl_direction,
- compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG,
-! RE_LAST, (linenr_T)0);
- --msg_silent;
- if (!compl_started)
- {
---- 4062,4068 ----
- found_new_match = searchit(NULL, ins_buf, pos,
- compl_direction,
- compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG,
-! RE_LAST, (linenr_T)0, NULL);
- --msg_silent;
- if (!compl_started)
- {
-*** ../vim-7.1.210/src/eval.c Sat Jan 5 22:15:21 2008
---- src/eval.c Sun Jan 6 16:37:42 2008
-***************
-*** 7213,7223 ****
- {"repeat", 2, 2, f_repeat},
- {"resolve", 1, 1, f_resolve},
- {"reverse", 1, 1, f_reverse},
-! {"search", 1, 3, f_search},
- {"searchdecl", 1, 3, f_searchdecl},
-! {"searchpair", 3, 6, f_searchpair},
-! {"searchpairpos", 3, 6, f_searchpairpos},
-! {"searchpos", 1, 3, f_searchpos},
- {"server2client", 2, 2, f_server2client},
- {"serverlist", 0, 0, f_serverlist},
- {"setbufvar", 3, 3, f_setbufvar},
---- 7213,7223 ----
- {"repeat", 2, 2, f_repeat},
- {"resolve", 1, 1, f_resolve},
- {"reverse", 1, 1, f_reverse},
-! {"search", 1, 4, f_search},
- {"searchdecl", 1, 3, f_searchdecl},
-! {"searchpair", 3, 7, f_searchpair},
-! {"searchpairpos", 3, 7, f_searchpairpos},
-! {"searchpos", 1, 4, f_searchpos},
- {"server2client", 2, 2, f_server2client},
- {"serverlist", 0, 0, f_serverlist},
- {"setbufvar", 3, 3, f_setbufvar},
-***************
-*** 14020,14025 ****
---- 14020,14029 ----
- int dir;
- int retval = 0; /* default: FAIL */
- long lnum_stop = 0;
-+ proftime_T tm;
-+ #ifdef FEAT_RELTIME
-+ long time_limit = 0;
-+ #endif
- int options = SEARCH_KEEP;
- int subpatnum;
-
-***************
-*** 14033,14047 ****
- if (flags & SP_END)
- options |= SEARCH_END;
-
-! /* Optional extra argument: line number to stop searching. */
-! if (argvars[1].v_type != VAR_UNKNOWN
-! && argvars[2].v_type != VAR_UNKNOWN)
- {
- lnum_stop = get_tv_number_chk(&argvars[2], NULL);
- if (lnum_stop < 0)
- goto theend;
- }
-
- /*
- * This function does not accept SP_REPEAT and SP_RETCOUNT flags.
- * Check to make sure only those flags are set.
---- 14037,14063 ----
- if (flags & SP_END)
- options |= SEARCH_END;
-
-! /* Optional arguments: line number to stop searching and timeout. */
-! if (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN)
- {
- lnum_stop = get_tv_number_chk(&argvars[2], NULL);
- if (lnum_stop < 0)
- goto theend;
-+ #ifdef FEAT_RELTIME
-+ if (argvars[3].v_type != VAR_UNKNOWN)
-+ {
-+ time_limit = get_tv_number_chk(&argvars[3], NULL);
-+ if (time_limit < 0)
-+ goto theend;
-+ }
-+ #endif
- }
-
-+ #ifdef FEAT_RELTIME
-+ /* Set the time limit, if there is one. */
-+ profile_setlimit(time_limit, &tm);
-+ #endif
-+
- /*
- * This function does not accept SP_REPEAT and SP_RETCOUNT flags.
- * Check to make sure only those flags are set.
-***************
-*** 14057,14063 ****
-
- pos = save_cursor = curwin->w_cursor;
- subpatnum = searchit(curwin, curbuf, &pos, dir, pat, 1L,
-! options, RE_SEARCH, (linenr_T)lnum_stop);
- if (subpatnum != FAIL)
- {
- if (flags & SP_SUBPAT)
---- 14073,14079 ----
-
- pos = save_cursor = curwin->w_cursor;
- subpatnum = searchit(curwin, curbuf, &pos, dir, pat, 1L,
-! options, RE_SEARCH, (linenr_T)lnum_stop, &tm);
- if (subpatnum != FAIL)
- {
- if (flags & SP_SUBPAT)
-***************
-*** 14147,14152 ****
---- 14163,14169 ----
- char_u nbuf3[NUMBUFLEN];
- int retval = 0; /* default: FAIL */
- long lnum_stop = 0;
-+ long time_limit = 0;
-
- /* Get the three pattern arguments: start, middle, end. */
- spat = get_tv_string_chk(&argvars[0]);
-***************
-*** 14182,14194 ****
- lnum_stop = get_tv_number_chk(&argvars[5], NULL);
- if (lnum_stop < 0)
- goto theend;
- }
- }
- if (skip == NULL)
- goto theend; /* type error */
-
- retval = do_searchpair(spat, mpat, epat, dir, skip, flags,
-! match_pos, lnum_stop);
-
- theend:
- p_ws = save_p_ws;
---- 14199,14219 ----
- lnum_stop = get_tv_number_chk(&argvars[5], NULL);
- if (lnum_stop < 0)
- goto theend;
-+ #ifdef FEAT_RELTIME
-+ if (argvars[6].v_type != VAR_UNKNOWN)
-+ {
-+ time_limit = get_tv_number_chk(&argvars[6], NULL);
-+ if (time_limit < 0)
-+ goto theend;
-+ }
-+ #endif
- }
- }
- if (skip == NULL)
- goto theend; /* type error */
-
- retval = do_searchpair(spat, mpat, epat, dir, skip, flags,
-! match_pos, lnum_stop, time_limit);
-
- theend:
- p_ws = save_p_ws;
-***************
-*** 14240,14246 ****
- * Returns 0 or -1 for no match,
- */
- long
-! do_searchpair(spat, mpat, epat, dir, skip, flags, match_pos, lnum_stop)
- char_u *spat; /* start pattern */
- char_u *mpat; /* middle pattern */
- char_u *epat; /* end pattern */
---- 14265,14272 ----
- * Returns 0 or -1 for no match,
- */
- long
-! do_searchpair(spat, mpat, epat, dir, skip, flags, match_pos,
-! lnum_stop, time_limit)
- char_u *spat; /* start pattern */
- char_u *mpat; /* middle pattern */
- char_u *epat; /* end pattern */
-***************
-*** 14249,14254 ****
---- 14275,14281 ----
- int flags; /* SP_SETPCMARK and other SP_ values */
- pos_T *match_pos;
- linenr_T lnum_stop; /* stop at this line if not zero */
-+ long time_limit; /* stop after this many msec */
- {
- char_u *save_cpo;
- char_u *pat, *pat2 = NULL, *pat3 = NULL;
-***************
-*** 14263,14273 ****
---- 14290,14306 ----
- int nest = 1;
- int err;
- int options = SEARCH_KEEP;
-+ proftime_T tm;
-
- /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
- save_cpo = p_cpo;
- p_cpo = (char_u *)"";
-
-+ #ifdef FEAT_RELTIME
-+ /* Set the time limit, if there is one. */
-+ profile_setlimit(time_limit, &tm);
-+ #endif
-+
- /* Make two search patterns: start/end (pat2, for in nested pairs) and
- * start/middle/end (pat3, for the top pair). */
- pat2 = alloc((unsigned)(STRLEN(spat) + STRLEN(epat) + 15));
-***************
-*** 14291,14297 ****
- for (;;)
- {
- n = searchit(curwin, curbuf, &pos, dir, pat, 1L,
-! options, RE_SEARCH, lnum_stop);
- if (n == FAIL || (firstpos.lnum != 0 && equalpos(pos, firstpos)))
- /* didn't find it or found the first match again: FAIL */
- break;
---- 14324,14330 ----
- for (;;)
- {
- n = searchit(curwin, curbuf, &pos, dir, pat, 1L,
-! options, RE_SEARCH, lnum_stop, &tm);
- if (n == FAIL || (firstpos.lnum != 0 && equalpos(pos, firstpos)))
- /* didn't find it or found the first match again: FAIL */
- break;
-*** ../vim-7.1.210/src/ex_cmds2.c Fri Jan 4 16:00:10 2008
---- src/ex_cmds2.c Sun Jan 6 18:22:28 2008
-***************
-*** 895,913 ****
- sprintf(buf, "%10.6lf", (double)tm->QuadPart / (double)fr.QuadPart);
- # else
- sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec);
-! #endif
- return buf;
- }
-
-! # endif /* FEAT_PROFILE || FEAT_RELTIME */
-
-- # if defined(FEAT_PROFILE) || defined(PROTO)
- /*
-! * Functions for profiling.
- */
-! static void script_do_profile __ARGS((scriptitem_T *si));
-! static void script_dump_profile __ARGS((FILE *fd));
-! static proftime_T prof_wait_time;
-
- /*
- * Set the time in "tm" to zero.
---- 895,955 ----
- sprintf(buf, "%10.6lf", (double)tm->QuadPart / (double)fr.QuadPart);
- # else
- sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec);
-! # endif
- return buf;
- }
-
-! /*
-! * Put the time "msec" past now in "tm".
-! */
-! void
-! profile_setlimit(msec, tm)
-! long msec;
-! proftime_T *tm;
-! {
-! if (msec <= 0) /* no limit */
-! profile_zero(tm);
-! else
-! {
-! # ifdef WIN3264
-! LARGE_INTEGER fr;
-!
-! QueryPerformanceCounter(tm);
-! QueryPerformanceFrequency(&fr);
-! tm->QuadPart += (double)msec / 1000.0 * (double)fr.QuadPart;
-! # else
-! long usec;
-!
-! gettimeofday(tm, NULL);
-! usec = (long)tm->tv_usec + (long)msec * 1000;
-! tm->tv_usec = usec % 1000000L;
-! tm->tv_sec += usec / 1000000L;
-! # endif
-! }
-! }
-
- /*
-! * Return TRUE if the current time is past "tm".
- */
-! int
-! profile_passed_limit(tm)
-! proftime_T *tm;
-! {
-! proftime_T now;
-!
-! # ifdef WIN3264
-! if (tm->QuadPart == 0) /* timer was not set */
-! return FALSE;
-! QueryPerformanceCounter(&now);
-! return (now.QuadPart > tm->QuadPart);
-! # else
-! if (tm->tv_sec == 0) /* timer was not set */
-! return FALSE;
-! gettimeofday(&now, NULL);
-! return (now.tv_sec > tm->tv_sec
-! || (now.tv_sec == tm->tv_sec && now.tv_usec > tm->tv_usec));
-! # endif
-! }
-
- /*
- * Set the time in "tm" to zero.
-***************
-*** 923,928 ****
---- 965,980 ----
- tm->tv_sec = 0;
- # endif
- }
-+
-+ # endif /* FEAT_PROFILE || FEAT_RELTIME */
-+
-+ # if defined(FEAT_PROFILE) || defined(PROTO)
-+ /*
-+ * Functions for profiling.
-+ */
-+ static void script_do_profile __ARGS((scriptitem_T *si));
-+ static void script_dump_profile __ARGS((FILE *fd));
-+ static proftime_T prof_wait_time;
-
- /*
- * Add the time "tm2" to "tm".
-*** ../vim-7.1.210/src/ex_docmd.c Fri Jan 4 16:00:10 2008
---- src/ex_docmd.c Sun Jan 6 16:08:29 2008
-***************
-*** 3979,3985 ****
- *cmd == '?' ? BACKWARD : FORWARD,
- (char_u *)"", 1L,
- SEARCH_MSG + SEARCH_START,
-! i, (linenr_T)0) != FAIL)
- lnum = pos.lnum;
- else
- {
---- 3980,3986 ----
- *cmd == '?' ? BACKWARD : FORWARD,
- (char_u *)"", 1L,
- SEARCH_MSG + SEARCH_START,
-! i, (linenr_T)0, NULL) != FAIL)
- lnum = pos.lnum;
- else
- {
-*** ../vim-7.1.210/src/normal.c Sat Jan 5 13:34:01 2008
---- src/normal.c Sun Jan 6 16:08:54 2008
-***************
-*** 4194,4200 ****
- for (;;)
- {
- t = searchit(curwin, curbuf, &curwin->w_cursor, FORWARD,
-! pat, 1L, searchflags, RE_LAST, (linenr_T)0);
- if (curwin->w_cursor.lnum >= old_pos.lnum)
- t = FAIL; /* match after start is failure too */
-
---- 4194,4200 ----
- for (;;)
- {
- t = searchit(curwin, curbuf, &curwin->w_cursor, FORWARD,
-! pat, 1L, searchflags, RE_LAST, (linenr_T)0, NULL);
- if (curwin->w_cursor.lnum >= old_pos.lnum)
- t = FAIL; /* match after start is failure too */
-
-*** ../vim-7.1.210/src/proto/eval.pro Sun May 6 15:18:09 2007
---- src/proto/eval.pro Sun Jan 6 15:55:47 2008
-***************
-*** 54,60 ****
- long get_dict_number __ARGS((dict_T *d, char_u *key));
- char_u *get_function_name __ARGS((expand_T *xp, int idx));
- char_u *get_expr_name __ARGS((expand_T *xp, int idx));
-! long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop));
- void set_vim_var_nr __ARGS((int idx, long val));
- long get_vim_var_nr __ARGS((int idx));
- char_u *get_vim_var_str __ARGS((int idx));
---- 54,60 ----
- long get_dict_number __ARGS((dict_T *d, char_u *key));
- char_u *get_function_name __ARGS((expand_T *xp, int idx));
- char_u *get_expr_name __ARGS((expand_T *xp, int idx));
-! long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit));
- void set_vim_var_nr __ARGS((int idx, long val));
- long get_vim_var_nr __ARGS((int idx));
- char_u *get_vim_var_str __ARGS((int idx));
-*** ../vim-7.1.210/src/proto/ex_cmds2.pro Sat May 5 20:21:13 2007
---- src/proto/ex_cmds2.pro Sun Jan 6 16:42:24 2008
-***************
-*** 14,19 ****
---- 14,21 ----
- void profile_end __ARGS((proftime_T *tm));
- void profile_sub __ARGS((proftime_T *tm, proftime_T *tm2));
- char *profile_msg __ARGS((proftime_T *tm));
-+ void profile_setlimit __ARGS((long msec, proftime_T *tm));
-+ int profile_passed_limit __ARGS((proftime_T *tm));
- void profile_zero __ARGS((proftime_T *tm));
- void profile_add __ARGS((proftime_T *tm, proftime_T *tm2));
- void profile_self __ARGS((proftime_T *self, proftime_T *total, proftime_T *children));
-*** ../vim-7.1.210/src/proto/search.pro Wed Aug 8 22:48:16 2007
---- src/proto/search.pro Sun Jan 6 16:11:53 2008
-***************
-*** 10,16 ****
- void reset_search_dir __ARGS((void));
- void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast));
- void last_pat_prog __ARGS((regmmatch_T *regmatch));
-! int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum));
- int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options));
- int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat));
- int searchc __ARGS((cmdarg_T *cap, int t_cmd));
---- 10,16 ----
- void reset_search_dir __ARGS((void));
- void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast));
- void last_pat_prog __ARGS((regmmatch_T *regmatch));
-! int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm));
- int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options));
- int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat));
- int searchc __ARGS((cmdarg_T *cap, int t_cmd));
-*** ../vim-7.1.210/src/search.c Tue Jan 1 15:42:45 2008
---- src/search.c Sun Jan 6 18:23:37 2008
-***************
-*** 494,501 ****
- * When FEAT_EVAL is defined, returns the index of the first matching
- * subpattern plus one; one if there was none.
- */
- int
-! searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum)
- win_T *win; /* window to search in; can be NULL for a
- buffer without a window! */
- buf_T *buf;
---- 494,502 ----
- * When FEAT_EVAL is defined, returns the index of the first matching
- * subpattern plus one; one if there was none.
- */
-+ /*ARGSUSED*/
- int
-! searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm)
- win_T *win; /* window to search in; can be NULL for a
- buffer without a window! */
- buf_T *buf;
-***************
-*** 506,511 ****
---- 507,513 ----
- int options;
- int pat_use; /* which pattern to use when "pat" is empty */
- linenr_T stop_lnum; /* stop after this line number when != 0 */
-+ proftime_T *tm; /* timeout limit or NULL */
- {
- int found;
- linenr_T lnum; /* no init to shut up Apollo cc */
-***************
-*** 594,599 ****
---- 596,606 ----
- if (stop_lnum != 0 && (dir == FORWARD
- ? lnum > stop_lnum : lnum < stop_lnum))
- break;
-+ #ifdef FEAT_RELTIME
-+ /* Stop after passing the "tm" time limit. */
-+ if (tm != NULL && profile_passed_limit(tm))
-+ break;
-+ #endif
-
- /*
- * Look for a match somewhere in line "lnum".
-***************
-*** 1249,1255 ****
- (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
- + SEARCH_MSG + SEARCH_START
- + ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))),
-! RE_LAST, (linenr_T)0);
-
- if (dircp != NULL)
- *dircp = dirc; /* restore second '/' or '?' for normal_cmd() */
---- 1256,1262 ----
- (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
- + SEARCH_MSG + SEARCH_START
- + ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))),
-! RE_LAST, (linenr_T)0, NULL);
-
- if (dircp != NULL)
- *dircp = dirc; /* restore second '/' or '?' for normal_cmd() */
-***************
-*** 3780,3786 ****
- if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|\\_s\\=>\\)",
- (char_u *)"",
- (char_u *)"</[^>]*>", BACKWARD, (char_u *)"", 0,
-! NULL, (linenr_T)0) <= 0)
- {
- curwin->w_cursor = old_pos;
- goto theend;
---- 3787,3793 ----
- if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|\\_s\\=>\\)",
- (char_u *)"",
- (char_u *)"</[^>]*>", BACKWARD, (char_u *)"", 0,
-! NULL, (linenr_T)0, 0L) <= 0)
- {
- curwin->w_cursor = old_pos;
- goto theend;
-***************
-*** 3814,3820 ****
- sprintf((char *)epat, "</%.*s>\\c", len, p);
-
- r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
-! 0, NULL, (linenr_T)0);
-
- vim_free(spat);
- vim_free(epat);
---- 3821,3827 ----
- sprintf((char *)epat, "</%.*s>\\c", len, p);
-
- r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
-! 0, NULL, (linenr_T)0, 0L);
-
- vim_free(spat);
- vim_free(epat);
-*** ../vim-7.1.210/src/version.c Sun Jan 6 17:18:16 2008
---- src/version.c Sun Jan 6 20:00:03 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 211,
- /**/
-
---
-No letters of the alphabet were harmed in the creation of this message.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.212
-Problem: Accessing a byte before a line.
-Solution: Check that the column is 1 or more. (Dominuque Pelle)
-Files: src/edit.c
-
-
-*** ../vim-7.1.211/src/edit.c Sun Jan 6 20:05:36 2008
---- src/edit.c Mon Jan 7 22:31:36 2008
-***************
-*** 8452,8457 ****
---- 8452,8458 ----
- if ( mode == BACKSPACE_CHAR
- && ((p_sta && in_indent)
- || (curbuf->b_p_sts != 0
-+ && curwin->w_cursor.col > 0
- && (*(ml_get_cursor() - 1) == TAB
- || (*(ml_get_cursor() - 1) == ' '
- && (!*inserted_space_p
-*** ../vim-7.1.211/src/version.c Sun Jan 6 20:05:36 2008
---- src/version.c Wed Jan 9 10:11:49 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 212,
- /**/
-
---
-CRONE: Who sent you?
-ARTHUR: The Knights Who Say Ni!
-CRONE: Aaaagh! (she looks around in rear) No! We have no shrubberies here.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.213
-Problem: A ":tabedit" command that results in the "swap file exists" dialog
- and selecting "abort" doesn't close the new tab. (Al Budden)
-Solution: Pass "old_curwin" to do_exedit().
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.212/src/ex_docmd.c Sun Jan 6 20:05:36 2008
---- src/ex_docmd.c Wed Jan 9 20:11:13 2008
-***************
-*** 7126,7132 ****
- : eap->addr_count == 0 ? 0
- : (int)eap->line2 + 1) != FAIL)
- {
-! do_exedit(eap, NULL);
-
- /* set the alternate buffer for the window we came from */
- if (curwin != old_curwin
---- 7127,7133 ----
- : eap->addr_count == 0 ? 0
- : (int)eap->line2 + 1) != FAIL)
- {
-! do_exedit(eap, old_curwin);
-
- /* set the alternate buffer for the window we came from */
- if (curwin != old_curwin
-*** ../vim-7.1.212/src/version.c Wed Jan 9 10:13:24 2008
---- src/version.c Wed Jan 9 20:29:09 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 213,
- /**/
-
---
-Q: What do you call a fish without an eye?
-A: fsh!
-Q: What do you call a deer with no eyes?
-A: no eye deer.
-Q: What do you call a deer with no eyes and no legs?
-A: still no eye deer.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.214
-Problem: ":1s/g\n\zs1//" deletes characters from the first line. (A Politz)
-Solution: Start replacing in the line where the match starts.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.213/src/ex_cmds.c Fri Jan 4 14:52:14 2008
---- src/ex_cmds.c Wed Jan 9 22:32:26 2008
-***************
-*** 4200,4206 ****
- linenr_T old_line_count = curbuf->b_ml.ml_line_count;
- linenr_T line2;
- long nmatch; /* number of lines in match */
-- linenr_T sub_firstlnum; /* nr of first sub line */
- char_u *sub_firstline; /* allocated copy of first sub line */
- int endcolumn = FALSE; /* cursor in last column when done */
- pos_T old_cursor = curwin->w_cursor;
---- 4200,4205 ----
-***************
-*** 4447,4453 ****
- #endif
- ); ++lnum)
- {
-- sub_firstlnum = lnum;
- nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0);
- if (nmatch)
- {
---- 4446,4451 ----
-***************
-*** 4463,4468 ****
---- 4461,4467 ----
- long nmatch_tl = 0; /* nr of lines matched below lnum */
- int do_again; /* do it again after joining lines */
- int skip_match = FALSE;
-+ linenr_T sub_firstlnum; /* nr of first sub line */
-
- /*
- * The new text is build up step by step, to avoid too much
-***************
-*** 4482,4489 ****
- * far.
- * new_end The new text, where to append new text.
- *
-! * lnum The line number where we were looking for the
-! * first match in the old line.
- * sub_firstlnum The line number in the buffer where to look
- * for a match. Can be different from "lnum"
- * when the pattern or substitute string contains
---- 4481,4490 ----
- * far.
- * new_end The new text, where to append new text.
- *
-! * lnum The line number where we found the start of
-! * the match. Can be below the line we searched
-! * when there is a \n before a \zs in the
-! * pattern.
- * sub_firstlnum The line number in the buffer where to look
- * for a match. Can be different from "lnum"
- * when the pattern or substitute string contains
-***************
-*** 4507,4518 ****
- * updating the screen or handling a multi-line match. The "old_"
- * pointers point into this copy.
- */
-! sub_firstline = vim_strsave(ml_get(sub_firstlnum));
-! if (sub_firstline == NULL)
-! {
-! vim_free(new_start);
-! goto outofmem;
-! }
- copycol = 0;
- matchcol = 0;
-
---- 4508,4514 ----
- * updating the screen or handling a multi-line match. The "old_"
- * pointers point into this copy.
- */
-! sub_firstlnum = lnum;
- copycol = 0;
- matchcol = 0;
-
-***************
-*** 4533,4538 ****
---- 4529,4556 ----
- */
- for (;;)
- {
-+ /* Advance "lnum" to the line where the match starts. The
-+ * match does not start in the first line when there is a line
-+ * break before \zs. */
-+ if (regmatch.startpos[0].lnum > 0)
-+ {
-+ lnum += regmatch.startpos[0].lnum;
-+ sub_firstlnum += regmatch.startpos[0].lnum;
-+ nmatch -= regmatch.startpos[0].lnum;
-+ vim_free(sub_firstline);
-+ sub_firstline = NULL;
-+ }
-+
-+ if (sub_firstline == NULL)
-+ {
-+ sub_firstline = vim_strsave(ml_get(sub_firstlnum));
-+ if (sub_firstline == NULL)
-+ {
-+ vim_free(new_start);
-+ goto outofmem;
-+ }
-+ }
-+
- /* Save the line number of the last change for the final
- * cursor position (just like Vi). */
- curwin->w_cursor.lnum = lnum;
-***************
-*** 4638,4644 ****
- temp = RedrawingDisabled;
- RedrawingDisabled = 0;
-
-! search_match_lines = regmatch.endpos[0].lnum;
- search_match_endcol = regmatch.endpos[0].col;
- highlight_match = TRUE;
-
---- 4656,4663 ----
- temp = RedrawingDisabled;
- RedrawingDisabled = 0;
-
-! search_match_lines = regmatch.endpos[0].lnum
-! - regmatch.startpos[0].lnum;
- search_match_endcol = regmatch.endpos[0].col;
- highlight_match = TRUE;
-
-***************
-*** 4749,4755 ****
- * 3. substitute the string.
- */
- /* get length of substitution part */
-! sublen = vim_regsub_multi(®match, sub_firstlnum,
- sub, sub_firstline, FALSE, p_magic, TRUE);
-
- /* When the match included the "$" of the last line it may
---- 4768,4775 ----
- * 3. substitute the string.
- */
- /* get length of substitution part */
-! sublen = vim_regsub_multi(®match,
-! sub_firstlnum - regmatch.startpos[0].lnum,
- sub, sub_firstline, FALSE, p_magic, TRUE);
-
- /* When the match included the "$" of the last line it may
-***************
-*** 4819,4825 ****
- mch_memmove(new_end, sub_firstline + copycol, (size_t)i);
- new_end += i;
-
-! (void)vim_regsub_multi(®match, sub_firstlnum,
- sub, new_end, TRUE, p_magic, TRUE);
- sub_nsubs++;
- did_sub = TRUE;
---- 4839,4846 ----
- mch_memmove(new_end, sub_firstline + copycol, (size_t)i);
- new_end += i;
-
-! (void)vim_regsub_multi(®match,
-! sub_firstlnum - regmatch.startpos[0].lnum,
- sub, new_end, TRUE, p_magic, TRUE);
- sub_nsubs++;
- did_sub = TRUE;
-***************
-*** 4908,4917 ****
- skip:
- /* We already know that we did the last subst when we are at
- * the end of the line, except that a pattern like
-! * "bar\|\nfoo" may match at the NUL. */
- lastone = (skip_match
- || got_int
- || got_quit
- || !(do_all || do_again)
- || (sub_firstline[matchcol] == NUL && nmatch <= 1
- && !re_multiline(regmatch.regprog)));
---- 4929,4941 ----
- skip:
- /* We already know that we did the last subst when we are at
- * the end of the line, except that a pattern like
-! * "bar\|\nfoo" may match at the NUL. "lnum" can be below
-! * "line2" when there is a \zs in the pattern after a line
-! * break. */
- lastone = (skip_match
- || got_int
- || got_quit
-+ || lnum > line2
- || !(do_all || do_again)
- || (sub_firstline[matchcol] == NUL && nmatch <= 1
- && !re_multiline(regmatch.regprog)));
-***************
-*** 4926,4937 ****
- * When asking the user we like to show the already replaced
- * text, but don't do it when "\<@=" or "\<@!" is used, it
- * changes what matches.
- */
- if (lastone
- || (do_ask && !re_lookbehind(regmatch.regprog))
- || nmatch_tl > 0
- || (nmatch = vim_regexec_multi(®match, curwin,
-! curbuf, sub_firstlnum, matchcol)) == 0)
- {
- if (new_start != NULL)
- {
---- 4950,4964 ----
- * When asking the user we like to show the already replaced
- * text, but don't do it when "\<@=" or "\<@!" is used, it
- * changes what matches.
-+ * When the match starts below where we start searching also
-+ * need to replace the line first (using \zs after \n).
- */
- if (lastone
- || (do_ask && !re_lookbehind(regmatch.regprog))
- || nmatch_tl > 0
- || (nmatch = vim_regexec_multi(®match, curwin,
-! curbuf, sub_firstlnum, matchcol)) == 0
-! || regmatch.startpos[0].lnum > 0)
- {
- if (new_start != NULL)
- {
-***************
-*** 5001,5007 ****
---- 5028,5041 ----
- * 5. break if there isn't another match in this line
- */
- if (nmatch <= 0)
-+ {
-+ /* If the match found didn't start where we were
-+ * searching, do the next search in the line where we
-+ * found the match. */
-+ if (nmatch == -1)
-+ lnum -= regmatch.startpos[0].lnum;
- break;
-+ }
- }
-
- line_breakcheck();
-*** ../vim-7.1.213/src/version.c Wed Jan 9 20:29:51 2008
---- src/version.c Wed Jan 9 22:37:47 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 214,
- /**/
-
---
-Q: What's orange and sounds like a parrot?
-A: A carrot
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.215
-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.1.215
-Problem: It is difficult to figure out what syntax items are nested at a
- certain position.
-Solution: Add the synstack() function.
-Files: runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro,
- src/syntax.c
-
-
-*** ../vim-7.1.214/runtime/doc/eval.txt Sun Jan 6 20:05:36 2008
---- runtime/doc/eval.txt Thu Jan 10 22:20:31 2008
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 06
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 10
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1786,1791 ****
---- 1786,1792 ----
- synIDattr( {synID}, {what} [, {mode}])
- String attribute {what} of syntax ID {synID}
- synIDtrans( {synID}) Number translated syntax ID of {synID}
-+ synstack({lnum}, {col}) List stack of syntax IDs at {lnum} and {col}
- system( {expr} [, {input}]) String output of shell command/filter {expr}
- tabpagebuflist( [{arg}]) List list of buffer numbers in tab page
- tabpagenr( [{arg}]) Number number of current or last tab page
-***************
-*** 4962,4967 ****
---- 4966,4989 ----
- highlight the character. Highlight links given with
- ":highlight link" are followed.
-
-+ synstack({lnum}, {col}) *synstack()*
-+ Return a |List|, which is the stack of syntax items at the
-+ position {lnum} and {col} in the current window. Each item in
-+ the List is an ID like what |synID()| returns.
-+ The stack is the situation in between the character at "col"
-+ and the next character. Note that a region of only one
-+ character will not show up, it only exists inside that
-+ character, not in between characters.
-+ The first item in the List is the outer region, following are
-+ items contained in that one. The last one is what |synID()|
-+ returns, unless not the whole item is highlighted or it is a
-+ transparent item.
-+ This function is useful for debugging a syntax file.
-+ Example that shows the syntax stack under the cursor: >
-+ for id in synstack(line("."), col("."))
-+ echo synIDattr(id, "name")
-+ endfor
-+
- system({expr} [, {input}]) *system()* *E677*
- Get the output of the shell command {expr}.
- When {input} is given, this string is written to a file and
-*** ../vim-7.1.214/src/eval.c Sun Jan 6 20:05:36 2008
---- src/eval.c Wed Jan 9 13:42:56 2008
-***************
-*** 651,656 ****
---- 651,657 ----
- static void f_synID __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_synIDattr __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_synIDtrans __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_synstack __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_system __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_tabpagebuflist __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_tabpagenr __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 7252,7257 ****
---- 7253,7259 ----
- {"synID", 3, 3, f_synID},
- {"synIDattr", 2, 3, f_synIDattr},
- {"synIDtrans", 1, 1, f_synIDtrans},
-+ {"synstack", 2, 2, f_synstack},
- {"system", 1, 2, f_system},
- {"tabpagebuflist", 0, 1, f_tabpagebuflist},
- {"tabpagenr", 0, 1, f_tabpagenr},
-***************
-*** 15843,15848 ****
---- 15845,15890 ----
- id = 0;
-
- rettv->vval.v_number = id;
-+ }
-+
-+ /*
-+ * "synstack(lnum, col)" function
-+ */
-+ /*ARGSUSED*/
-+ static void
-+ f_synstack(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ #ifdef FEAT_SYN_HL
-+ long lnum;
-+ long col;
-+ int i;
-+ int id;
-+ #endif
-+
-+ rettv->v_type = VAR_LIST;
-+ rettv->vval.v_list = NULL;
-+
-+ #ifdef FEAT_SYN_HL
-+ lnum = get_tv_lnum(argvars); /* -1 on type error */
-+ col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
-+
-+ if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
-+ && col >= 0 && col < (long)STRLEN(ml_get(lnum))
-+ && rettv_list_alloc(rettv) != FAIL)
-+ {
-+ (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL);
-+ for (i = 0; ; ++i)
-+ {
-+ id = syn_get_stack_item(i);
-+ if (id < 0)
-+ break;
-+ if (list_append_number(rettv->vval.v_list, id) == FAIL)
-+ break;
-+ }
-+ }
-+ #endif
- }
-
- /*
-*** ../vim-7.1.214/src/proto/syntax.pro Tue Jul 24 14:32:44 2007
---- src/proto/syntax.pro Wed Jan 9 13:38:20 2008
-***************
-*** 13,18 ****
---- 13,19 ----
- void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
- char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
- int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
-+ int syn_get_stack_item __ARGS((int i));
- int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
- void init_highlight __ARGS((int both, int reset));
- int load_colors __ARGS((char_u *name));
-*** ../vim-7.1.214/src/syntax.c Sun Oct 7 15:21:31 2007
---- src/syntax.c Wed Jan 9 15:17:47 2008
-***************
-*** 6104,6109 ****
---- 6102,6123 ----
-
- return (trans ? current_trans_id : current_id);
- }
-+
-+ #if defined(FEAT_EVAL) || defined(PROTO)
-+ /*
-+ * Return the syntax ID at position "i" in the current stack.
-+ * The caller must have called syn_get_id() before to fill the stack.
-+ * Returns -1 when "i" is out of range.
-+ */
-+ int
-+ syn_get_stack_item(i)
-+ int i;
-+ {
-+ if (i >= current_state.ga_len )
-+ return -1;
-+ return CUR_STATE(i).si_id;
-+ }
-+ #endif
-
- #if defined(FEAT_FOLDING) || defined(PROTO)
- /*
-*** ../vim-7.1.214/src/version.c Wed Jan 9 22:39:55 2008
---- src/version.c Thu Jan 10 22:17:38 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 215,
- /**/
-
---
-TALL KNIGHT: We are now no longer the Knights Who Say Ni!
-ONE KNIGHT: Ni!
-OTHERS: Sh!
-ONE KNIGHT: (whispers) Sorry.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.216
-Problem: Variants of --remote-tab are not mentioned for "vim --help".
-Solution: Display optional -wait and -silent.
-Files: src/main.c
-
-
-*** ../vim-7.1.215/src/main.c Tue Sep 25 17:54:41 2007
---- src/main.c Sun Dec 30 15:09:11 2007
-***************
-*** 3081,3087 ****
- main_msg(_("--remote-wait <files> As --remote but wait for files to have been edited"));
- main_msg(_("--remote-wait-silent <files> Same, don't complain if there is no server"));
- # ifdef FEAT_WINDOWS
-! main_msg(_("--remote-tab <files> As --remote but open tab page for each file"));
- # endif
- main_msg(_("--remote-send <keys>\tSend <keys> to a Vim server and exit"));
- main_msg(_("--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"));
---- 3081,3087 ----
- main_msg(_("--remote-wait <files> As --remote but wait for files to have been edited"));
- main_msg(_("--remote-wait-silent <files> Same, don't complain if there is no server"));
- # ifdef FEAT_WINDOWS
-! main_msg(_("--remote-tab[-wait][-silent] <files> As --remote but use tab page per file"));
- # endif
- main_msg(_("--remote-send <keys>\tSend <keys> to a Vim server and exit"));
- main_msg(_("--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"));
-*** ../vim-7.1.215/src/version.c Thu Jan 10 22:23:22 2008
---- src/version.c Fri Jan 11 20:25:14 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 216,
- /**/
-
---
-TIM: But follow only if you are men of valour. For the entrance to this cave
- is guarded by a monster, a creature so foul and cruel that no man yet has
- fought with it and lived. Bones of full fifty men lie strewn about its
- lair ...
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.217
-Problem: The "help-tags" tag may be missing from runtime/doc/tags when it
- was generated during "make install".
-Solution: Add the "++t" argument to ":helptags" to force adding the tag.
-Files: runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c,
- src/ex_cmds.h
-
-
-*** ../vim-7.1.216/runtime/doc/Makefile Sat May 5 19:14:15 2007
---- runtime/doc/Makefile Fri Jan 11 20:55:34 2008
-***************
-*** 301,307 ****
- # Use Vim to generate the tags file. Can only be used when Vim has been
- # compiled and installed. Supports multiple languages.
- vimtags: $(DOCS)
-! $(VIMEXE) -u NONE -esX -c "helptags ." -c quit
-
- # Use "doctags" to generate the tags file. Only works for English!
- tags: doctags $(DOCS)
---- 301,307 ----
- # Use Vim to generate the tags file. Can only be used when Vim has been
- # compiled and installed. Supports multiple languages.
- vimtags: $(DOCS)
-! $(VIMEXE) -u NONE -esX -c "helptags ++t ." -c quit
-
- # Use "doctags" to generate the tags file. Only works for English!
- tags: doctags $(DOCS)
-*** ../vim-7.1.216/runtime/doc/various.txt Sat May 12 17:05:26 2007
---- runtime/doc/various.txt Fri Jan 11 20:45:45 2008
-***************
-*** 1,4 ****
-! *various.txt* For Vim version 7.1. Last change: 2007 Jan 14
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *various.txt* For Vim version 7.1. Last change: 2008 Jan 11
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 748,754 ****
-
- *:helpt* *:helptags*
- *E154* *E150* *E151* *E152* *E153* *E670*
-! :helpt[ags] {dir} Generate the help tags file(s) for directory {dir}.
- All "*.txt" and "*.??x" files in the directory are
- scanned for a help tag definition in between stars.
- The "*.??x" files are for translated docs, they
---- 754,761 ----
-
- *:helpt* *:helptags*
- *E154* *E150* *E151* *E152* *E153* *E670*
-! :helpt[ags] [++t] {dir}
-! Generate the help tags file(s) for directory {dir}.
- All "*.txt" and "*.??x" files in the directory are
- scanned for a help tag definition in between stars.
- The "*.??x" files are for translated docs, they
-***************
-*** 756,761 ****
---- 763,771 ----
- The generated tags files are sorted.
- When there are duplicates an error message is given.
- An existing tags file is silently overwritten.
-+ The optional "++t" argument forces adding the
-+ "help-tags" tag. This is also done when the {dir} is
-+ equal to $VIMRUNTIME/doc.
- To rebuild the help tags in the runtime directory
- (requires write permission there): >
- :helptags $VIMRUNTIME/doc
-*** ../vim-7.1.216/src/ex_cmds.c Wed Jan 9 22:39:55 2008
---- src/ex_cmds.c Fri Jan 11 20:47:13 2008
-***************
-*** 6091,6097 ****
- }
-
- #if defined(FEAT_EX_EXTRA) || defined(PROTO)
-! static void helptags_one __ARGS((char_u *dir, char_u *ext, char_u *lang));
-
- /*
- * ":helptags"
---- 6091,6097 ----
- }
-
- #if defined(FEAT_EX_EXTRA) || defined(PROTO)
-! static void helptags_one __ARGS((char_u *dir, char_u *ext, char_u *lang, int add_help_tags));
-
- /*
- * ":helptags"
-***************
-*** 6110,6115 ****
---- 6110,6123 ----
- char_u fname[8];
- int filecount;
- char_u **files;
-+ int add_help_tags = FALSE;
-+
-+ /* Check for ":helptags ++t {dir}". */
-+ if (STRNCMP(eap->arg, "++t", 3) == 0 && vim_iswhite(eap->arg[3]))
-+ {
-+ add_help_tags = TRUE;
-+ eap->arg = skipwhite(eap->arg + 3);
-+ }
-
- if (!mch_isdir(eap->arg))
- {
-***************
-*** 6192,6198 ****
- ext[1] = fname[5];
- ext[2] = fname[6];
- }
-! helptags_one(eap->arg, ext, fname);
- }
-
- ga_clear(&ga);
---- 6200,6206 ----
- ext[1] = fname[5];
- ext[2] = fname[6];
- }
-! helptags_one(eap->arg, ext, fname, add_help_tags);
- }
-
- ga_clear(&ga);
-***************
-*** 6200,6214 ****
-
- #else
- /* No language support, just use "*.txt" and "tags". */
-! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags");
- #endif
- }
-
- static void
-! helptags_one(dir, ext, tagfname)
-! char_u *dir; /* doc directory */
-! char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */
-! char_u *tagfname; /* "tags" for English, "tags-it" for Italian. */
- {
- FILE *fd_tags;
- FILE *fd;
---- 6208,6223 ----
-
- #else
- /* No language support, just use "*.txt" and "tags". */
-! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags", add_help_tags);
- #endif
- }
-
- static void
-! helptags_one(dir, ext, tagfname, add_help_tags)
-! char_u *dir; /* doc directory */
-! char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */
-! char_u *tagfname; /* "tags" for English, "tags-fr" for French. */
-! int add_help_tags; /* add "help-tags" tag */
- {
- FILE *fd_tags;
- FILE *fd;
-***************
-*** 6259,6268 ****
- }
-
- /*
-! * If generating tags for "$VIMRUNTIME/doc" add the "help-tags" tag.
- */
- ga_init2(&ga, (int)sizeof(char_u *), 100);
-! if (fullpathcmp((char_u *)"$VIMRUNTIME/doc", dir, FALSE) == FPC_SAME)
- {
- if (ga_grow(&ga, 1) == FAIL)
- got_int = TRUE;
---- 6268,6279 ----
- }
-
- /*
-! * If using the "++t" argument or generating tags for "$VIMRUNTIME/doc"
-! * add the "help-tags" tag.
- */
- ga_init2(&ga, (int)sizeof(char_u *), 100);
-! if (add_help_tags || fullpathcmp((char_u *)"$VIMRUNTIME/doc",
-! dir, FALSE) == FPC_SAME)
- {
- if (ga_grow(&ga, 1) == FAIL)
- got_int = TRUE;
-*** ../vim-7.1.216/src/ex_cmds.h Thu Mar 8 11:00:55 2007
---- src/ex_cmds.h Fri Jan 11 20:49:18 2008
-***************
-*** 422,428 ****
- EX(CMD_helpgrep, "helpgrep", ex_helpgrep,
- EXTRA|NOTRLCOM|NEEDARG),
- EX(CMD_helptags, "helptags", ex_helptags,
-! NEEDARG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_hardcopy, "hardcopy", ex_hardcopy,
- RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG),
- EX(CMD_highlight, "highlight", ex_highlight,
---- 422,428 ----
- EX(CMD_helpgrep, "helpgrep", ex_helpgrep,
- EXTRA|NOTRLCOM|NEEDARG),
- EX(CMD_helptags, "helptags", ex_helptags,
-! NEEDARG|FILES|TRLBAR|CMDWIN),
- EX(CMD_hardcopy, "hardcopy", ex_hardcopy,
- RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG),
- EX(CMD_highlight, "highlight", ex_highlight,
-*** ../vim-7.1.216/src/version.c Fri Jan 11 20:25:42 2008
---- src/version.c Fri Jan 11 20:58:44 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 217,
- /**/
-
---
-My girlfriend told me I should be more affectionate.
-So I got TWO girlfriends.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.218
-Problem: A syntax region without a "keepend", containing a region with
- "extend" could be truncated at the end of the containing region.
-Solution: Do not call syn_update_ends() when there are no keepend items.
-Files: src/syntax.c
-
-
-*** ../vim-7.1.217/src/syntax.c Thu Jan 10 22:23:22 2008
---- src/syntax.c Wed Jan 9 15:17:47 2008
-***************
-*** 2495,2501 ****
- if (current_state.ga_len == 0)
- break;
-
-! if (had_extend)
- {
- syn_update_ends(FALSE);
- if (current_state.ga_len == 0)
---- 2493,2499 ----
- if (current_state.ga_len == 0)
- break;
-
-! if (had_extend && keepend_level >= 0)
- {
- syn_update_ends(FALSE);
- if (current_state.ga_len == 0)
-*** ../vim-7.1.217/src/version.c Fri Jan 11 21:00:49 2008
---- src/version.c Fri Jan 11 21:25:46 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 218,
- /**/
-
---
-The Law of VIM:
-For each member b of the possible behaviour space B of program P, there exists
-a finite time t before which at least one user u in the total user space U of
-program P will request b becomes a member of the allowed behaviour space B'
-(B' <= B).
-In other words: Sooner or later everyone wants everything as an option.
- -- Vince Negri
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.219 (after 7.1.215)
-Problem: synstack() returns situation after the current character, can't
- see the state for a one-character region.
-Solution: Don't update ending states in the requested column.
-Files: runtime/doc/eval.txt, src/eval.c, src/hardcopy.c,
- src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c
-
-
-*** ../vim-7.1.218/runtime/doc/eval.txt Thu Jan 10 22:23:22 2008
---- runtime/doc/eval.txt Fri Jan 11 22:04:59 2008
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 10
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 11
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 4967,4976 ****
- Return a |List|, which is the stack of syntax items at the
- position {lnum} and {col} in the current window. Each item in
- the List is an ID like what |synID()| returns.
-- The stack is the situation in between the character at "col"
-- and the next character. Note that a region of only one
-- character will not show up, it only exists inside that
-- character, not in between characters.
- The first item in the List is the outer region, following are
- items contained in that one. The last one is what |synID()|
- returns, unless not the whole item is highlighted or it is a
---- 4970,4975 ----
-*** ../vim-7.1.218/src/eval.c Thu Jan 10 22:23:22 2008
---- src/eval.c Fri Jan 11 21:46:12 2008
-***************
-*** 15725,15731 ****
-
- if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
- && col >= 0 && col < (long)STRLEN(ml_get(lnum)))
-! id = syn_get_id(curwin, lnum, (colnr_T)col, trans, NULL);
- #endif
-
- rettv->vval.v_number = id;
---- 15725,15731 ----
-
- if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
- && col >= 0 && col < (long)STRLEN(ml_get(lnum)))
-! id = syn_get_id(curwin, lnum, (colnr_T)col, trans, NULL, FALSE);
- #endif
-
- rettv->vval.v_number = id;
-***************
-*** 15874,15880 ****
- && col >= 0 && col < (long)STRLEN(ml_get(lnum))
- && rettv_list_alloc(rettv) != FAIL)
- {
-! (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL);
- for (i = 0; ; ++i)
- {
- id = syn_get_stack_item(i);
---- 15874,15880 ----
- && col >= 0 && col < (long)STRLEN(ml_get(lnum))
- && rettv_list_alloc(rettv) != FAIL)
- {
-! (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE);
- for (i = 0; ; ++i)
- {
- id = syn_get_stack_item(i);
-*** ../vim-7.1.218/src/hardcopy.c Thu May 10 20:40:02 2007
---- src/hardcopy.c Fri Jan 11 21:46:20 2008
-***************
-*** 876,882 ****
- */
- if (psettings->do_syntax)
- {
-! id = syn_get_id(curwin, ppos->file_line, col, 1, NULL);
- if (id > 0)
- id = syn_get_final_id(id);
- else
---- 876,882 ----
- */
- if (psettings->do_syntax)
- {
-! id = syn_get_id(curwin, ppos->file_line, col, 1, NULL, FALSE);
- if (id > 0)
- id = syn_get_final_id(id);
- else
-*** ../vim-7.1.218/src/proto/syntax.pro Thu Jan 10 22:23:22 2008
---- src/proto/syntax.pro Fri Jan 11 21:54:19 2008
-***************
-*** 4,10 ****
- void syn_stack_apply_changes __ARGS((buf_T *buf));
- void syntax_end_parsing __ARGS((linenr_T lnum));
- int syntax_check_changed __ARGS((linenr_T lnum));
-! int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
- void syntax_clear __ARGS((buf_T *buf));
- void ex_syntax __ARGS((exarg_T *eap));
- int syntax_present __ARGS((buf_T *buf));
---- 4,10 ----
- void syn_stack_apply_changes __ARGS((buf_T *buf));
- void syntax_end_parsing __ARGS((linenr_T lnum));
- int syntax_check_changed __ARGS((linenr_T lnum));
-! int get_syntax_attr __ARGS((colnr_T col, int *can_spell, int keep_state));
- void syntax_clear __ARGS((buf_T *buf));
- void ex_syntax __ARGS((exarg_T *eap));
- int syntax_present __ARGS((buf_T *buf));
-***************
-*** 12,18 ****
- void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg));
- void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
- char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
-! int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
- int syn_get_stack_item __ARGS((int i));
- int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
- void init_highlight __ARGS((int both, int reset));
---- 12,18 ----
- void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg));
- void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
- char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
-! int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp, int keep_state));
- int syn_get_stack_item __ARGS((int i));
- int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
- void init_highlight __ARGS((int both, int reset));
-*** ../vim-7.1.218/src/screen.c Thu Nov 8 21:23:34 2007
---- src/screen.c Fri Jan 11 21:48:10 2008
-***************
-*** 3885,3891 ****
- # ifdef FEAT_SPELL
- has_spell ? &can_spell :
- # endif
-! NULL);
-
- if (did_emsg)
- {
---- 3885,3891 ----
- # ifdef FEAT_SPELL
- has_spell ? &can_spell :
- # endif
-! NULL, FALSE);
-
- if (did_emsg)
- {
-*** ../vim-7.1.218/src/spell.c Sun Aug 5 18:32:21 2007
---- src/spell.c Fri Jan 11 21:46:50 2008
-***************
-*** 2146,2152 ****
- {
- col = (int)(p - buf);
- (void)syn_get_id(wp, lnum, (colnr_T)col,
-! FALSE, &can_spell);
- if (!can_spell)
- attr = HLF_COUNT;
- }
---- 2146,2152 ----
- {
- col = (int)(p - buf);
- (void)syn_get_id(wp, lnum, (colnr_T)col,
-! FALSE, &can_spell, FALSE);
- if (!can_spell)
- attr = HLF_COUNT;
- }
-*** ../vim-7.1.218/src/syntax.c Fri Jan 11 21:26:49 2008
---- src/syntax.c Sat Jan 12 16:42:25 2008
-***************
-*** 378,384 ****
- static int syn_stack_equal __ARGS((synstate_T *sp));
- static void validate_current_state __ARGS((void));
- static int syn_finish_line __ARGS((int syncing));
-! static int syn_current_attr __ARGS((int syncing, int displaying, int *can_spell));
- static int did_match_already __ARGS((int idx, garray_T *gap));
- static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si));
- static void check_state_ends __ARGS((void));
---- 378,384 ----
- static int syn_stack_equal __ARGS((synstate_T *sp));
- static void validate_current_state __ARGS((void));
- static int syn_finish_line __ARGS((int syncing));
-! static int syn_current_attr __ARGS((int syncing, int displaying, int *can_spell, int keep_state));
- static int did_match_already __ARGS((int idx, garray_T *gap));
- static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si));
- static void check_state_ends __ARGS((void));
-***************
-*** 1691,1697 ****
- {
- while (!current_finished)
- {
-! (void)syn_current_attr(syncing, FALSE, NULL);
- /*
- * When syncing, and found some item, need to check the item.
- */
---- 1690,1696 ----
- {
- while (!current_finished)
- {
-! (void)syn_current_attr(syncing, FALSE, NULL, FALSE);
- /*
- * When syncing, and found some item, need to check the item.
- */
-***************
-*** 1731,1739 ****
- * done.
- */
- int
-! get_syntax_attr(col, can_spell)
- colnr_T col;
- int *can_spell;
- {
- int attr = 0;
-
---- 1730,1739 ----
- * done.
- */
- int
-! get_syntax_attr(col, can_spell, keep_state)
- colnr_T col;
- int *can_spell;
-+ int keep_state; /* keep state of char at "col" */
- {
- int attr = 0;
-
-***************
-*** 1768,1774 ****
- */
- while (current_col <= col)
- {
-! attr = syn_current_attr(FALSE, TRUE, can_spell);
- ++current_col;
- }
-
---- 1768,1775 ----
- */
- while (current_col <= col)
- {
-! attr = syn_current_attr(FALSE, TRUE, can_spell,
-! current_col == col ? keep_state : FALSE);
- ++current_col;
- }
-
-***************
-*** 1779,1788 ****
- * Get syntax attributes for current_lnum, current_col.
- */
- static int
-! syn_current_attr(syncing, displaying, can_spell)
- int syncing; /* When 1: called for syncing */
- int displaying; /* result will be displayed */
- int *can_spell; /* return: do spell checking */
- {
- int syn_id;
- lpos_T endpos; /* was: char_u *endp; */
---- 1780,1790 ----
- * Get syntax attributes for current_lnum, current_col.
- */
- static int
-! syn_current_attr(syncing, displaying, can_spell, keep_state)
- int syncing; /* When 1: called for syncing */
- int displaying; /* result will be displayed */
- int *can_spell; /* return: do spell checking */
-+ int keep_state; /* keep syntax stack afterwards */
- {
- int syn_id;
- lpos_T endpos; /* was: char_u *endp; */
-***************
-*** 2298,2304 ****
- * may be for an empty match and a containing item might end in the
- * current column.
- */
-! if (!syncing)
- {
- check_state_ends();
- if (current_state.ga_len > 0
---- 2300,2306 ----
- * may be for an empty match and a containing item might end in the
- * current column.
- */
-! if (!syncing && !keep_state)
- {
- check_state_ends();
- if (current_state.ga_len > 0
-***************
-*** 6086,6097 ****
- * Function called for expression evaluation: get syntax ID at file position.
- */
- int
-! syn_get_id(wp, lnum, col, trans, spellp)
- win_T *wp;
- long lnum;
- colnr_T col;
-! int trans; /* remove transparancy */
-! int *spellp; /* return: can do spell checking */
- {
- /* When the position is not after the current position and in the same
- * line of the same buffer, need to restart parsing. */
---- 6088,6100 ----
- * Function called for expression evaluation: get syntax ID at file position.
- */
- int
-! syn_get_id(wp, lnum, col, trans, spellp, keep_state)
- win_T *wp;
- long lnum;
- colnr_T col;
-! int trans; /* remove transparancy */
-! int *spellp; /* return: can do spell checking */
-! int keep_state; /* keep state of char at "col" */
- {
- /* When the position is not after the current position and in the same
- * line of the same buffer, need to restart parsing. */
-***************
-*** 6100,6106 ****
- || col < current_col)
- syntax_start(wp, lnum);
-
-! (void)get_syntax_attr(col, spellp);
-
- return (trans ? current_trans_id : current_id);
- }
---- 6103,6109 ----
- || col < current_col)
- syntax_start(wp, lnum);
-
-! (void)get_syntax_attr(col, spellp, keep_state);
-
- return (trans ? current_trans_id : current_id);
- }
-***************
-*** 6115,6122 ****
- syn_get_stack_item(i)
- int i;
- {
-! if (i >= current_state.ga_len )
- return -1;
- return CUR_STATE(i).si_id;
- }
- #endif
---- 6118,6131 ----
- syn_get_stack_item(i)
- int i;
- {
-! if (i >= current_state.ga_len)
-! {
-! /* Need to invalidate the state, because we didn't properly finish it
-! * for the last character, "keep_state" was TRUE. */
-! invalidate_current_state();
-! current_col = MAXCOL;
- return -1;
-+ }
- return CUR_STATE(i).si_id;
- }
- #endif
-*** ../vim-7.1.218/src/version.c Fri Jan 11 21:26:49 2008
---- src/version.c Sat Jan 12 16:40:47 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 219,
- /**/
-
---
-ARTHUR: Go on, Bors, chop its head off.
-BORS: Right. Silly little bleeder. One rabbit stew coming up.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.220
-Problem: When a ")" or word movement command moves the cursor back from the
- end of the line it may end up on the trail byte of a multi-byte
- character. It's also moved back when it isn't needed.
-Solution: Add the adjust_cursor() function.
-Files: src/normal.c
-
-
-*** ../vim-7.1.219/src/normal.c Sun Jan 6 20:05:36 2008
---- src/normal.c Sat Jan 12 17:10:14 2008
-***************
-*** 150,155 ****
---- 150,156 ----
- static void nv_bck_word __ARGS((cmdarg_T *cap));
- static void nv_wordcmd __ARGS((cmdarg_T *cap));
- static void nv_beginline __ARGS((cmdarg_T *cap));
-+ static void adjust_cursor __ARGS((oparg_T *oap));
- #ifdef FEAT_VISUAL
- static void adjust_for_sel __ARGS((cmdarg_T *cap));
- static int unadjust_for_sel __ARGS((void));
-***************
-*** 6567,6578 ****
- clearopbeep(cap->oap);
- else
- {
-! /* Don't leave the cursor on the NUL past a line */
-! if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
-! {
-! --curwin->w_cursor.col;
-! cap->oap->inclusive = TRUE;
-! }
- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
- #endif
---- 6568,6575 ----
- clearopbeep(cap->oap);
- else
- {
-! /* Don't leave the cursor on the NUL past end of line. */
-! adjust_cursor(cap->oap);
- #ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = 0;
- #endif
-***************
-*** 8408,8419 ****
- else
- n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
-
-! /* Don't leave the cursor on the NUL past a line */
-! if (n != FAIL && curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
-! {
-! --curwin->w_cursor.col;
-! cap->oap->inclusive = TRUE;
-! }
-
- if (n == FAIL && cap->oap->op_type == OP_NOP)
- clearopbeep(cap->oap);
---- 8405,8413 ----
- else
- n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
-
-! /* Don't leave the cursor on the NUL past the end of line. */
-! if (n != FAIL)
-! adjust_cursor(cap->oap);
-
- if (n == FAIL && cap->oap->op_type == OP_NOP)
- clearopbeep(cap->oap);
-***************
-*** 8426,8431 ****
---- 8420,8458 ----
- if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP)
- foldOpenCursor();
- #endif
-+ }
-+ }
-+
-+ /*
-+ * Used after a movement command: If the cursor ends up on the NUL after the
-+ * end of the line, may move it back to the last character and make the motion
-+ * inclusive.
-+ */
-+ static void
-+ adjust_cursor(oap)
-+ oparg_T *oap;
-+ {
-+ /* The cursor cannot remain on the NUL when:
-+ * - the column is > 0
-+ * - not in Visual mode or 'selection' is "o"
-+ * - 'virtualedit' is not "all" and not "onemore".
-+ */
-+ if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL
-+ #ifdef FEAT_VISUAL
-+ && (!VIsual_active || *p_sel == 'o')
-+ #endif
-+ #ifdef FEAT_VIRTUALEDIT
-+ && !virtual_active() && (ve_flags & VE_ONEMORE) == 0
-+ #endif
-+ )
-+ {
-+ --curwin->w_cursor.col;
-+ #ifdef FEAT_MBYTE
-+ /* prevent cursor from moving on the trail byte */
-+ if (has_mbyte)
-+ mb_adjust_cursor();
-+ #endif
-+ oap->inclusive = TRUE;
- }
- }
-
-*** ../vim-7.1.219/src/version.c Sat Jan 12 16:45:25 2008
---- src/version.c Sat Jan 12 17:07:28 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 220,
- /**/
-
---
-A hamburger walks into a bar, and the bartender says: "I'm sorry,
-but we don't serve food here."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.221
-Problem: When inserting a "(", triggering the matchparen plugin, the
- following highlighting may be messed up.
-Solution: Before triggering the CursorMovedI autocommands update the display
- to update the stored syntax stacks for the change.
-Files: src/edit.c
-
-
-*** ../vim-7.1.220/src/edit.c Wed Jan 9 10:13:24 2008
---- src/edit.c Sat Jan 12 16:07:41 2008
-***************
-*** 1455,1460 ****
---- 1455,1468 ----
- # endif
- )
- {
-+ # ifdef FEAT_SYN_HL
-+ /* Need to update the screen first, to make sure syntax
-+ * highlighting is correct after making a change (e.g., inserting
-+ * a "(". The autocommand may also require a redraw, so it's done
-+ * again below, unfortunately. */
-+ if (syntax_present(curbuf) && must_redraw)
-+ update_screen(0);
-+ # endif
- apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
- last_cursormoved = curwin->w_cursor;
- }
-*** ../vim-7.1.220/src/version.c Sat Jan 12 17:11:25 2008
---- src/version.c Sat Jan 12 18:11:22 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 221,
- /**/
-
---
-ROBIN: The what?
-ARTHUR: The Holy Hand Grenade of Antioch. 'Tis one of the sacred relics
- Brother Maynard always carries with him.
-ALL: Yes. Of course.
-ARTHUR: (shouting) Bring up the Holy Hand Grenade!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.222 (after 7.1.217)
-Problem: Wildcards in argument of ":helptags" are not expanded. (Marcel
- Svitalsky)
-Solution: Expand wildcards in the directory name.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.221/src/ex_cmds.c Fri Jan 11 21:00:49 2008
---- src/ex_cmds.c Sat Jan 12 21:40:51 2008
-***************
-*** 6106,6111 ****
---- 6106,6113 ----
- #ifdef FEAT_MULTI_LANG
- char_u lang[2];
- #endif
-+ expand_T xpc;
-+ char_u *dirname;
- char_u ext[5];
- char_u fname[8];
- int filecount;
-***************
-*** 6119,6125 ****
- eap->arg = skipwhite(eap->arg + 3);
- }
-
-! if (!mch_isdir(eap->arg))
- {
- EMSG2(_("E150: Not a directory: %s"), eap->arg);
- return;
---- 6121,6131 ----
- eap->arg = skipwhite(eap->arg + 3);
- }
-
-! ExpandInit(&xpc);
-! xpc.xp_context = EXPAND_DIRECTORIES;
-! dirname = ExpandOne(&xpc, eap->arg, NULL,
-! WILD_LIST_NOTFOUND|WILD_SILENT, WILD_EXPAND_FREE);
-! if (dirname == NULL || !mch_isdir(dirname))
- {
- EMSG2(_("E150: Not a directory: %s"), eap->arg);
- return;
-***************
-*** 6127,6133 ****
-
- #ifdef FEAT_MULTI_LANG
- /* Get a list of all files in the directory. */
-! STRCPY(NameBuff, eap->arg);
- add_pathsep(NameBuff);
- STRCAT(NameBuff, "*");
- if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
---- 6133,6139 ----
-
- #ifdef FEAT_MULTI_LANG
- /* Get a list of all files in the directory. */
-! STRCPY(NameBuff, dirname);
- add_pathsep(NameBuff);
- STRCAT(NameBuff, "*");
- if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
-***************
-*** 6135,6140 ****
---- 6141,6147 ----
- || filecount == 0)
- {
- EMSG2("E151: No match: %s", NameBuff);
-+ vim_free(dirname);
- return;
- }
-
-***************
-*** 6200,6206 ****
- ext[1] = fname[5];
- ext[2] = fname[6];
- }
-! helptags_one(eap->arg, ext, fname, add_help_tags);
- }
-
- ga_clear(&ga);
---- 6207,6213 ----
- ext[1] = fname[5];
- ext[2] = fname[6];
- }
-! helptags_one(dirname, ext, fname, add_help_tags);
- }
-
- ga_clear(&ga);
-***************
-*** 6208,6215 ****
-
- #else
- /* No language support, just use "*.txt" and "tags". */
-! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags", add_help_tags);
- #endif
- }
-
- static void
---- 6215,6223 ----
-
- #else
- /* No language support, just use "*.txt" and "tags". */
-! helptags_one(dirname, (char_u *)".txt", (char_u *)"tags", add_help_tags);
- #endif
-+ vim_free(dirname);
- }
-
- static void
-*** ../vim-7.1.221/src/version.c Sat Jan 12 18:13:05 2008
---- src/version.c Sun Jan 13 13:27:04 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 222,
- /**/
-
---
- Arthur pulls Pin out. The MONK blesses the grenade as ...
-ARTHUR: (quietly) One, two, five ...
-GALAHAD: Three, sir!
-ARTHUR: Three.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.223
-Problem: glob() doesn't work properly when 'shell' is "sh" or "bash" and
- the expanded name contains spaces, '~', single quotes and other
- special characters. (Adri Verhoef, Charles Campbell)
-Solution: For Posix shells define a vimglob() function to list the matches
- instead of using "echo" directly.
-Files: src/os_unix.c
-
-
-*** ../vim-7.1.222/src/os_unix.c Thu Jan 3 18:55:21 2008
---- src/os_unix.c Sun Jan 13 13:52:53 2008
-***************
-*** 4946,4951 ****
---- 4946,4954 ----
- char_u *p;
- int dir;
- #ifdef __EMX__
-+ /*
-+ * This is the OS/2 implementation.
-+ */
- # define EXPL_ALLOC_INC 16
- char_u **expl_files;
- size_t files_alloced, files_free;
-***************
-*** 5056,5075 ****
- return OK;
-
- #else /* __EMX__ */
-!
- int j;
- char_u *tempname;
- char_u *command;
- FILE *fd;
- char_u *buffer;
-! #define STYLE_ECHO 0 /* use "echo" to expand */
-! #define STYLE_GLOB 1 /* use "glob" to expand, for csh */
-! #define STYLE_PRINT 2 /* use "print -N" to expand, for zsh */
-! #define STYLE_BT 3 /* `cmd` expansion, execute the pattern directly */
- int shell_style = STYLE_ECHO;
- int check_spaces;
- static int did_find_nul = FALSE;
- int ampersent = FALSE;
-
- *num_file = 0; /* default: no files found */
- *file = NULL;
---- 5059,5084 ----
- return OK;
-
- #else /* __EMX__ */
-! /*
-! * This is the non-OS/2 implementation (really Unix).
-! */
- int j;
- char_u *tempname;
- char_u *command;
- FILE *fd;
- char_u *buffer;
-! #define STYLE_ECHO 0 /* use "echo", the default */
-! #define STYLE_GLOB 1 /* use "glob", for csh */
-! #define STYLE_VIMGLOB 2 /* use "vimglob", for Posix sh */
-! #define STYLE_PRINT 3 /* use "print -N", for zsh */
-! #define STYLE_BT 4 /* `cmd` expansion, execute the pattern
-! * directly */
- int shell_style = STYLE_ECHO;
- int check_spaces;
- static int did_find_nul = FALSE;
- int ampersent = FALSE;
-+ /* vimglob() function to define for Posix shell */
-+ static char *sh_vimglob_func = "vimglob() { while [ $# -ge 1 ]; do echo -n \"$1\"; echo; shift; done }; vimglob >";
-
- *num_file = 0; /* default: no files found */
- *file = NULL;
-***************
-*** 5107,5115 ****
-
- /*
- * Let the shell expand the patterns and write the result into the temp
-! * file. if expanding `cmd` execute it directly.
-! * If we use csh, glob will work better than echo.
-! * If we use zsh, print -N will work better than glob.
- */
- if (num_pat == 1 && *pat[0] == '`'
- && (len = STRLEN(pat[0])) > 2
---- 5116,5132 ----
-
- /*
- * Let the shell expand the patterns and write the result into the temp
-! * file.
-! * STYLE_BT: NL separated
-! * If expanding `cmd` execute it directly.
-! * STYLE_GLOB: NUL separated
-! * If we use *csh, "glob" will work better than "echo".
-! * STYLE_PRINT: NL or NUL separated
-! * If we use *zsh, "print -N" will work better than "glob".
-! * STYLE_VIMGLOB: NL separated
-! * If we use *sh*, we define "vimglob()".
-! * STYLE_ECHO: space separated.
-! * A shell we don't know, stay safe and use "echo".
- */
- if (num_pat == 1 && *pat[0] == '`'
- && (len = STRLEN(pat[0])) > 2
-***************
-*** 5122,5130 ****
- else if (STRCMP(p_sh + len - 3, "zsh") == 0)
- shell_style = STYLE_PRINT;
- }
-!
-! /* "unset nonomatch; print -N >" plus two is 29 */
- len = STRLEN(tempname) + 29;
- for (i = 0; i < num_pat; ++i)
- {
- /* Count the length of the patterns in the same way as they are put in
---- 5139,5155 ----
- else if (STRCMP(p_sh + len - 3, "zsh") == 0)
- shell_style = STYLE_PRINT;
- }
-! if (shell_style == STYLE_ECHO && strstr((char *)gettail(p_sh),
-! "sh") != NULL)
-! shell_style = STYLE_VIMGLOB;
-!
-! /* Compute the length of the command. We need 2 extra bytes: for the
-! * optional '&' and for the NUL.
-! * Worst case: "unset nonomatch; print -N >" plus two is 29 */
- len = STRLEN(tempname) + 29;
-+ if (shell_style == STYLE_VIMGLOB)
-+ len += STRLEN(sh_vimglob_func);
-+
- for (i = 0; i < num_pat; ++i)
- {
- /* Count the length of the patterns in the same way as they are put in
-***************
-*** 5183,5192 ****
---- 5208,5221 ----
- STRCAT(command, "glob >");
- else if (shell_style == STYLE_PRINT)
- STRCAT(command, "print -N >");
-+ else if (shell_style == STYLE_VIMGLOB)
-+ STRCAT(command, sh_vimglob_func);
- else
- STRCAT(command, "echo >");
- }
-+
- STRCAT(command, tempname);
-+
- if (shell_style != STYLE_BT)
- for (i = 0; i < num_pat; ++i)
- {
-***************
-*** 5232,5239 ****
- if (flags & EW_SILENT)
- show_shell_mess = FALSE;
- if (ampersent)
-! STRCAT(command, "&"); /* put the '&' back after the
-! redirection */
-
- /*
- * Using zsh -G: If a pattern has no matches, it is just deleted from
---- 5261,5267 ----
- if (flags & EW_SILENT)
- show_shell_mess = FALSE;
- if (ampersent)
-! STRCAT(command, "&"); /* put the '&' after the redirection */
-
- /*
- * Using zsh -G: If a pattern has no matches, it is just deleted from
-***************
-*** 5265,5271 ****
- show_shell_mess = TRUE;
- vim_free(command);
-
-! if (i) /* mch_call_shell() failed */
- {
- mch_remove(tempname);
- vim_free(tempname);
---- 5293,5299 ----
- show_shell_mess = TRUE;
- vim_free(command);
-
-! if (i != 0) /* mch_call_shell() failed */
- {
- mch_remove(tempname);
- vim_free(tempname);
-***************
-*** 5336,5342 ****
- }
- vim_free(tempname);
-
-! #if defined(__CYGWIN__) || defined(__CYGWIN32__)
- /* Translate <CR><NL> into <NL>. Caution, buffer may contain NUL. */
- p = buffer;
- for (i = 0; i < len; ++i)
---- 5364,5370 ----
- }
- vim_free(tempname);
-
-! # if defined(__CYGWIN__) || defined(__CYGWIN32__)
- /* Translate <CR><NL> into <NL>. Caution, buffer may contain NUL. */
- p = buffer;
- for (i = 0; i < len; ++i)
-***************
-*** 5359,5365 ****
- }
- }
- /* file names are separated with NL */
-! else if (shell_style == STYLE_BT)
- {
- buffer[len] = NUL; /* make sure the buffer ends in NUL */
- p = buffer;
---- 5387,5393 ----
- }
- }
- /* file names are separated with NL */
-! else if (shell_style == STYLE_BT || shell_style == STYLE_VIMGLOB)
- {
- buffer[len] = NUL; /* make sure the buffer ends in NUL */
- p = buffer;
-***************
-*** 5438,5444 ****
- {
- (*file)[i] = p;
- /* Space or NL separates */
-! if (shell_style == STYLE_ECHO || shell_style == STYLE_BT)
- {
- while (!(shell_style == STYLE_ECHO && *p == ' ')
- && *p != '\n' && *p != NUL)
---- 5466,5473 ----
- {
- (*file)[i] = p;
- /* Space or NL separates */
-! if (shell_style == STYLE_ECHO || shell_style == STYLE_BT
-! || shell_style == STYLE_VIMGLOB)
- {
- while (!(shell_style == STYLE_ECHO && *p == ' ')
- && *p != '\n' && *p != NUL)
-*** ../vim-7.1.222/src/version.c Sun Jan 13 13:30:34 2008
---- src/version.c Sun Jan 13 13:45:04 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 223,
- /**/
-
---
-User: I'm having problems with my text editor.
-Help desk: Which editor are you using?
-User: I don't know, but it's version VI (pronounced: 6).
-Help desk: Oh, then you should upgrade to version VIM (pronounced: 994).
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.224
-Problem: When using "vim -F -o file1 file2" only one window is
- right-to-left. Same for "-H". (Ben Schmidt)
-Solution: use set_option_value() to set 'rightleft'.
-Files: src/main.c
-
-
-*** ../vim-7.1.223/src/main.c Fri Jan 11 20:25:42 2008
---- src/main.c Sun Jan 13 16:12:09 2008
-***************
-*** 1775,1781 ****
-
- case 'F': /* "-F" start in Farsi mode: rl + fkmap set */
- #ifdef FEAT_FKMAP
-! curwin->w_p_rl = p_fkmap = TRUE;
- #else
- mch_errmsg(_(e_nofarsi));
- mch_exit(2);
---- 1775,1782 ----
-
- case 'F': /* "-F" start in Farsi mode: rl + fkmap set */
- #ifdef FEAT_FKMAP
-! p_fkmap = TRUE;
-! set_option_value((char_u *)"rl", 1L, NULL, 0);
- #else
- mch_errmsg(_(e_nofarsi));
- mch_exit(2);
-***************
-*** 1792,1798 ****
-
- case 'H': /* "-H" start in Hebrew mode: rl + hkmap set */
- #ifdef FEAT_RIGHTLEFT
-! curwin->w_p_rl = p_hkmap = TRUE;
- #else
- mch_errmsg(_(e_nohebrew));
- mch_exit(2);
---- 1793,1800 ----
-
- case 'H': /* "-H" start in Hebrew mode: rl + hkmap set */
- #ifdef FEAT_RIGHTLEFT
-! p_hkmap = TRUE;
-! set_option_value((char_u *)"rl", 1L, NULL, 0);
- #else
- mch_errmsg(_(e_nohebrew));
- mch_exit(2);
-*** ../vim-7.1.223/src/version.c Sun Jan 13 13:53:30 2008
---- src/version.c Sun Jan 13 16:15:49 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 224,
- /**/
-
---
-LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall?
-ARTHUR: No, that's Saint Ives.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.225
-Problem: Using unitialized value when XGetWMNormalHints() fails.
-Solution: Check the return value. (Dominique Pelle)
-Files: src/os_unix.c
-
-
-*** ../vim-7.1.224/src/os_unix.c Sun Jan 13 13:53:30 2008
---- src/os_unix.c Sun Jan 13 13:52:53 2008
-***************
-*** 6145,6153 ****
- if (xterm_trace == 1)
- {
- /* Get the hints just before tracking starts. The font size might
-! * have changed recently */
-! XGetWMNormalHints(xterm_dpy, x11_window, &xterm_hints, &got_hints);
-! if (!(got_hints & PResizeInc)
- || xterm_hints.width_inc <= 1
- || xterm_hints.height_inc <= 1)
- {
---- 6145,6153 ----
- if (xterm_trace == 1)
- {
- /* Get the hints just before tracking starts. The font size might
-! * have changed recently. */
-! if (!XGetWMNormalHints(xterm_dpy, x11_window, &xterm_hints, &got_hints)
-! || !(got_hints & PResizeInc)
- || xterm_hints.width_inc <= 1
- || xterm_hints.height_inc <= 1)
- {
-*** ../vim-7.1.224/src/version.c Sun Jan 13 16:17:02 2008
---- src/version.c Sun Jan 13 16:29:51 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 225,
- /**/
-
---
-"When I die, I want a tombstone that says "GAME OVER" - Ton Richters
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.226
-Problem: Command line completion doesn't work when a file name contains a
- '&' character.
-Solution: Accept all characters in a file name, except ones that end a
- command or white space.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.225/src/ex_docmd.c Wed Jan 9 20:29:51 2008
---- src/ex_docmd.c Wed Jan 9 20:11:13 2008
-***************
-*** 3338,3349 ****
- }
- in_quote = !in_quote;
- }
- #ifdef SPACE_IN_FILENAME
-! else if (!vim_isfilec_or_wc(c)
-! && (!(ea.argt & NOSPC) || usefilter))
-! #else
-! else if (!vim_isfilec_or_wc(c))
- #endif
- {
- while (*p != NUL)
- {
---- 3338,3350 ----
- }
- in_quote = !in_quote;
- }
-+ /* An argument can contain just about everything, except
-+ * characters that end the command and white space. */
-+ else if (c == '|' || c == '\n' || c == '"' || (vim_iswhite(c)
- #ifdef SPACE_IN_FILENAME
-! && (!(ea.argt & NOSPC) || usefilter)
- #endif
-+ ))
- {
- while (*p != NUL)
- {
-*** ../vim-7.1.225/src/version.c Sun Jan 13 16:30:23 2008
---- src/version.c Sun Jan 13 17:10:15 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 226,
- /**/
-
---
- [Another hideous roar.]
-BEDEVERE: That's it!
-ARTHUR: What?
-BEDEVERE: It's The Legendary Black Beast of Aaaaarrrrrrggghhh!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.227
-Problem: Hang in syntax HL when moving over a ")". (Dominique Pelle)
-Solution: Avoid storing a syntax state in the wrong position in the list of
- remembered states.
-Files: src/syntax.c
-
-
-*** ../vim-7.1.226/src/syntax.c Sat Jan 12 16:45:25 2008
---- src/syntax.c Sat Jan 12 16:45:44 2008
-***************
-*** 372,378 ****
- static int syn_stack_cleanup __ARGS((void));
- static void syn_stack_free_entry __ARGS((buf_T *buf, synstate_T *p));
- static synstate_T *syn_stack_find_entry __ARGS((linenr_T lnum));
-! static synstate_T *store_current_state __ARGS((synstate_T *sp));
- static void load_current_state __ARGS((synstate_T *from));
- static void invalidate_current_state __ARGS((void));
- static int syn_stack_equal __ARGS((synstate_T *sp));
---- 372,378 ----
- static int syn_stack_cleanup __ARGS((void));
- static void syn_stack_free_entry __ARGS((buf_T *buf, synstate_T *p));
- static synstate_T *syn_stack_find_entry __ARGS((linenr_T lnum));
-! static synstate_T *store_current_state __ARGS((void));
- static void load_current_state __ARGS((synstate_T *from));
- static void invalidate_current_state __ARGS((void));
- static int syn_stack_equal __ARGS((synstate_T *sp));
-***************
-*** 464,470 ****
- synstate_T *p;
- synstate_T *last_valid = NULL;
- synstate_T *last_min_valid = NULL;
-! synstate_T *sp, *prev;
- linenr_T parsed_lnum;
- linenr_T first_stored;
- int dist;
---- 464,470 ----
- synstate_T *p;
- synstate_T *last_valid = NULL;
- synstate_T *last_min_valid = NULL;
-! synstate_T *sp, *prev = NULL;
- linenr_T parsed_lnum;
- linenr_T first_stored;
- int dist;
-***************
-*** 502,508 ****
- if (!current_state_stored)
- {
- ++current_lnum;
-! (void)store_current_state(NULL);
- }
-
- /*
---- 502,508 ----
- if (!current_state_stored)
- {
- ++current_lnum;
-! (void)store_current_state();
- }
-
- /*
-***************
-*** 558,564 ****
- dist = 999999;
- else
- dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
-- prev = syn_stack_find_entry(current_lnum);
- while (current_lnum < lnum)
- {
- syn_start_line();
---- 558,563 ----
-***************
-*** 573,581 ****
- * equal to the current state. If so, then validate all saved
- * states that depended on a change before the parsed line. */
- if (prev == NULL)
- sp = syn_buf->b_sst_first;
- else
-! sp = prev->sst_next;
- if (sp != NULL
- && sp->sst_lnum == current_lnum
- && syn_stack_equal(sp))
---- 572,584 ----
- * equal to the current state. If so, then validate all saved
- * states that depended on a change before the parsed line. */
- if (prev == NULL)
-+ prev = syn_stack_find_entry(current_lnum - 1);
-+ if (prev == NULL)
- sp = syn_buf->b_sst_first;
- else
-! sp = prev;
-! while (sp != NULL && sp->sst_lnum < current_lnum)
-! sp = sp->sst_next;
- if (sp != NULL
- && sp->sst_lnum == current_lnum
- && syn_stack_equal(sp))
-***************
-*** 601,607 ****
- else if (prev == NULL
- || current_lnum == lnum
- || current_lnum >= prev->sst_lnum + dist)
-! prev = store_current_state(prev);
- }
-
- /* This can take a long time: break when CTRL-C pressed. The current
---- 604,610 ----
- else if (prev == NULL
- || current_lnum == lnum
- || current_lnum >= prev->sst_lnum + dist)
-! prev = store_current_state();
- }
-
- /* This can take a long time: break when CTRL-C pressed. The current
-***************
-*** 1353,1369 ****
- * The current state must be valid for the start of the current_lnum line!
- */
- static synstate_T *
-! store_current_state(sp)
-! synstate_T *sp; /* at or before where state is to be saved or
-! NULL */
- {
- int i;
- synstate_T *p;
- bufstate_T *bp;
- stateitem_T *cur_si;
-!
-! if (sp == NULL)
-! sp = syn_stack_find_entry(current_lnum);
-
- /*
- * If the current state contains a start or end pattern that continues
---- 1356,1368 ----
- * The current state must be valid for the start of the current_lnum line!
- */
- static synstate_T *
-! store_current_state()
- {
- int i;
- synstate_T *p;
- bufstate_T *bp;
- stateitem_T *cur_si;
-! synstate_T *sp = syn_stack_find_entry(current_lnum);
-
- /*
- * If the current state contains a start or end pattern that continues
-***************
-*** 1667,1673 ****
- * Store the current state in b_sst_array[] for later use.
- */
- ++current_lnum;
-! (void)store_current_state(NULL);
- }
- }
-
---- 1666,1672 ----
- * Store the current state in b_sst_array[] for later use.
- */
- ++current_lnum;
-! (void)store_current_state();
- }
- }
-
-*** ../vim-7.1.226/src/version.c Sun Jan 13 17:11:25 2008
---- src/version.c Sun Jan 13 17:37:10 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 227,
- /**/
-
---
-Dreams are free, but there's a small charge for alterations.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.228
-Problem: When 'foldmethod' is "indent" and a fold is created with ">>" it
- can't be closed with "zc". (Daniel Shahaf)
-Solution: Reset the "small" flag of a fold when adding a line to it.
-Files: src/fold.c
-
-
-*** ../vim-7.1.227/src/fold.c Sun Oct 14 15:32:10 2007
---- src/fold.c Sun Jan 13 21:26:48 2008
-***************
-*** 2676,2681 ****
---- 2676,2682 ----
- if (fp->fd_len < flp->lnum - fp->fd_top)
- {
- fp->fd_len = flp->lnum - fp->fd_top;
-+ fp->fd_small = MAYBE;
- fold_changed = TRUE;
- }
-
-*** ../vim-7.1.227/src/version.c Sun Jan 13 17:39:29 2008
---- src/version.c Sun Jan 13 21:56:53 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 228,
- /**/
-
---
-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.1.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.1.229
-Problem: A fold is closed when it shouldn't when 'foldmethod' is "indent"
- and backspacing a non-white character so that the indent increases.
-Solution: Keep the fold open after backspacing a character.
-Files: src/edit.c
-
-
-*** ../vim-7.1.228/src/edit.c Sat Jan 12 18:13:05 2008
---- src/edit.c Mon Jan 14 20:06:43 2008
-***************
-*** 8618,8623 ****
---- 8619,8632 ----
- if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == 0)
- dollar_vcol = curwin->w_virtcol;
-
-+ #ifdef FEAT_FOLDING
-+ /* When deleting a char the cursor line must never be in a closed fold.
-+ * E.g., when 'foldmethod' is indent and deleting the first non-white
-+ * char before a Tab. */
-+ if (did_backspace)
-+ foldOpenCursor();
-+ #endif
-+
- return did_backspace;
- }
-
-*** ../vim-7.1.228/src/version.c Sun Jan 13 21:57:25 2008
---- src/version.c Mon Jan 14 20:08:35 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 229,
- /**/
-
---
-ROBIN: (warily) And if you get a question wrong?
-ARTHUR: You are cast into the Gorge of Eternal Peril.
-ROBIN: Oh ... wacho!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.230
-Problem: Memory leak when executing SourceCmd autocommands.
-Solution: Free the memory. (Dominique Pelle)
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.1.229/src/ex_cmds2.c Sun Jan 6 20:05:36 2008
---- src/ex_cmds2.c Tue Jan 15 20:41:28 2008
-***************
-*** 2889,2899 ****
- if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL)
- && apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp,
- FALSE, curbuf))
- # ifdef FEAT_EVAL
-! return aborting() ? FAIL : OK;
- # else
-! return OK;
- # endif
-
- /* Apply SourcePre autocommands, they may get the file. */
- apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
---- 2889,2902 ----
- if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL)
- && apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp,
- FALSE, curbuf))
-+ {
- # ifdef FEAT_EVAL
-! retval = aborting() ? FAIL : OK;
- # else
-! retval = OK;
- # endif
-+ goto theend;
-+ }
-
- /* Apply SourcePre autocommands, they may get the file. */
- apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
-*** ../vim-7.1.229/src/version.c Mon Jan 14 20:11:37 2008
---- src/version.c Tue Jan 15 22:15:03 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 230,
- /**/
-
---
-Citizens are not allowed to attend a movie house or theater nor ride in a
-public streetcar within at least four hours after eating garlic.
- [real standing law in Indiana, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.231
-Problem: When shifting lines the change is acted upon multiple times.
-Solution: Don't have shift_line() call changed_bytes.
-Files: src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro
-
-
-*** ../vim-7.1.230/src/edit.c Mon Jan 14 20:11:37 2008
---- src/edit.c Mon Jan 14 20:06:43 2008
-***************
-*** 1662,1672 ****
- * if round is TRUE, round the indent to 'shiftwidth' (only with _INC and _Dec).
- */
- void
-! change_indent(type, amount, round, replaced)
- int type;
- int amount;
- int round;
- int replaced; /* replaced character, put on replace stack */
- {
- int vcol;
- int last_vcol;
---- 1662,1673 ----
- * if round is TRUE, round the indent to 'shiftwidth' (only with _INC and _Dec).
- */
- void
-! change_indent(type, amount, round, replaced, call_changed_bytes)
- int type;
- int amount;
- int round;
- int replaced; /* replaced character, put on replace stack */
-+ int call_changed_bytes; /* call changed_bytes() */
- {
- int vcol;
- int last_vcol;
-***************
-*** 1723,1729 ****
- * Set the new indent. The cursor will be put on the first non-blank.
- */
- if (type == INDENT_SET)
-! (void)set_indent(amount, SIN_CHANGED);
- else
- {
- #ifdef FEAT_VREPLACE
---- 1724,1730 ----
- * Set the new indent. The cursor will be put on the first non-blank.
- */
- if (type == INDENT_SET)
-! (void)set_indent(amount, call_changed_bytes ? SIN_CHANGED : 0);
- else
- {
- #ifdef FEAT_VREPLACE
-***************
-*** 1733,1739 ****
- if (State & VREPLACE_FLAG)
- State = INSERT;
- #endif
-! shift_line(type == INDENT_DEC, round, 1);
- #ifdef FEAT_VREPLACE
- State = save_State;
- #endif
---- 1734,1740 ----
- if (State & VREPLACE_FLAG)
- State = INSERT;
- #endif
-! shift_line(type == INDENT_DEC, round, 1, call_changed_bytes);
- #ifdef FEAT_VREPLACE
- State = save_State;
- #endif
-***************
-*** 5921,5927 ****
- {
- #ifdef FEAT_VREPLACE
- if (State & VREPLACE_FLAG)
-! change_indent(INDENT_SET, second_indent, FALSE, NUL);
- else
- #endif
- (void)set_indent(second_indent, SIN_CHANGED);
---- 5922,5928 ----
- {
- #ifdef FEAT_VREPLACE
- if (State & VREPLACE_FLAG)
-! change_indent(INDENT_SET, second_indent, FALSE, NUL, TRUE);
- else
- #endif
- (void)set_indent(second_indent, SIN_CHANGED);
-***************
-*** 7227,7233 ****
- fixthisline(get_the_indent)
- int (*get_the_indent) __ARGS((void));
- {
-! change_indent(INDENT_SET, get_the_indent(), FALSE, 0);
- if (linewhite(curwin->w_cursor.lnum))
- did_ai = TRUE; /* delete the indent if the line stays empty */
- }
---- 7228,7234 ----
- fixthisline(get_the_indent)
- int (*get_the_indent) __ARGS((void));
- {
-! change_indent(INDENT_SET, get_the_indent(), FALSE, 0, TRUE);
- if (linewhite(curwin->w_cursor.lnum))
- did_ai = TRUE; /* delete the indent if the line stays empty */
- }
-***************
-*** 8170,8179 ****
- replace_pop_ins();
- if (lastc == '^')
- old_indent = get_indent(); /* remember curr. indent */
-! change_indent(INDENT_SET, 0, TRUE, 0);
- }
- else
-! change_indent(c == Ctrl_D ? INDENT_DEC : INDENT_INC, 0, TRUE, 0);
-
- if (did_ai && *skipwhite(ml_get_curline()) != NUL)
- did_ai = FALSE;
---- 8171,8180 ----
- replace_pop_ins();
- if (lastc == '^')
- old_indent = get_indent(); /* remember curr. indent */
-! change_indent(INDENT_SET, 0, TRUE, 0, TRUE);
- }
- else
-! change_indent(c == Ctrl_D ? INDENT_DEC : INDENT_INC, 0, TRUE, 0, TRUE);
-
- if (did_ai && *skipwhite(ml_get_curline()) != NUL)
- did_ai = FALSE;
-***************
-*** 9633,9639 ****
- curwin->w_cursor = old_pos;
- #ifdef FEAT_VREPLACE
- if (State & VREPLACE_FLAG)
-! change_indent(INDENT_SET, i, FALSE, NUL);
- else
- #endif
- (void)set_indent(i, SIN_CHANGED);
---- 9634,9640 ----
- curwin->w_cursor = old_pos;
- #ifdef FEAT_VREPLACE
- if (State & VREPLACE_FLAG)
-! change_indent(INDENT_SET, i, FALSE, NUL, TRUE);
- else
- #endif
- (void)set_indent(i, SIN_CHANGED);
-***************
-*** 9662,9668 ****
- curwin->w_cursor = old_pos;
- }
- if (temp)
-! shift_line(TRUE, FALSE, 1);
- }
- }
-
---- 9663,9669 ----
- curwin->w_cursor = old_pos;
- }
- if (temp)
-! shift_line(TRUE, FALSE, 1, TRUE);
- }
- }
-
-*** ../vim-7.1.230/src/ops.c Thu Jan 3 16:31:17 2008
---- src/ops.c Sun Jan 13 21:52:18 2008
-***************
-*** 258,264 ****
- if (first_char != '#' || !preprocs_left())
- #endif
- {
-! shift_line(oap->op_type == OP_LSHIFT, p_sr, amount);
- }
- ++curwin->w_cursor.lnum;
- }
---- 258,264 ----
- if (first_char != '#' || !preprocs_left())
- #endif
- {
-! shift_line(oap->op_type == OP_LSHIFT, p_sr, amount, FALSE);
- }
- ++curwin->w_cursor.lnum;
- }
-***************
-*** 321,330 ****
- * leaves cursor on first blank in the line
- */
- void
-! shift_line(left, round, amount)
- int left;
- int round;
- int amount;
- {
- int count;
- int i, j;
---- 321,331 ----
- * leaves cursor on first blank in the line
- */
- void
-! shift_line(left, round, amount, call_changed_bytes)
- int left;
- int round;
- int amount;
-+ int call_changed_bytes; /* call changed_bytes() */
- {
- int count;
- int i, j;
-***************
-*** 363,372 ****
- /* Set new indent */
- #ifdef FEAT_VREPLACE
- if (State & VREPLACE_FLAG)
-! change_indent(INDENT_SET, count, FALSE, NUL);
- else
- #endif
-! (void)set_indent(count, SIN_CHANGED);
- }
-
- #if defined(FEAT_VISUALEXTRA) || defined(PROTO)
---- 364,373 ----
- /* Set new indent */
- #ifdef FEAT_VREPLACE
- if (State & VREPLACE_FLAG)
-! change_indent(INDENT_SET, count, FALSE, NUL, call_changed_bytes);
- else
- #endif
-! (void)set_indent(count, call_changed_bytes ? SIN_CHANGED : 0);
- }
-
- #if defined(FEAT_VISUALEXTRA) || defined(PROTO)
-*** ../vim-7.1.230/src/proto/edit.pro Wed Jan 2 17:48:24 2008
---- src/proto/edit.pro Sun Jan 13 21:52:27 2008
-***************
-*** 3,9 ****
- void edit_putchar __ARGS((int c, int highlight));
- void edit_unputchar __ARGS((void));
- void display_dollar __ARGS((colnr_T col));
-! void change_indent __ARGS((int type, int amount, int round, int replaced));
- void truncate_spaces __ARGS((char_u *line));
- void backspace_until_column __ARGS((int col));
- int vim_is_ctrl_x_key __ARGS((int c));
---- 3,9 ----
- void edit_putchar __ARGS((int c, int highlight));
- void edit_unputchar __ARGS((void));
- void display_dollar __ARGS((colnr_T col));
-! void change_indent __ARGS((int type, int amount, int round, int replaced, int call_changed_bytes));
- void truncate_spaces __ARGS((char_u *line));
- void backspace_until_column __ARGS((int col));
- int vim_is_ctrl_x_key __ARGS((int c));
-*** ../vim-7.1.230/src/proto/ops.pro Sun May 6 13:56:32 2007
---- src/proto/ops.pro Sun Jan 13 21:52:30 2008
-***************
-*** 4,10 ****
- int get_op_char __ARGS((int optype));
- int get_extra_op_char __ARGS((int optype));
- void op_shift __ARGS((oparg_T *oap, int curs_top, int amount));
-! void shift_line __ARGS((int left, int round, int amount));
- void op_reindent __ARGS((oparg_T *oap, int (*how)(void)));
- int get_expr_register __ARGS((void));
- void set_expr_line __ARGS((char_u *new_line));
---- 4,10 ----
- int get_op_char __ARGS((int optype));
- int get_extra_op_char __ARGS((int optype));
- void op_shift __ARGS((oparg_T *oap, int curs_top, int amount));
-! void shift_line __ARGS((int left, int round, int amount, int call_changed_bytes));
- void op_reindent __ARGS((oparg_T *oap, int (*how)(void)));
- int get_expr_register __ARGS((void));
- void set_expr_line __ARGS((char_u *new_line));
-*** ../vim-7.1.230/src/version.c Tue Jan 15 22:16:36 2008
---- src/version.c Wed Jan 16 19:58:25 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 231,
- /**/
-
---
-Snoring is prohibited unless all bedroom windows are closed and securely
-locked.
- [real standing law in Massachusetts, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.232
-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.1.232 (after 7.1.207 and 7.1.211)
-Problem: Compiler warnings with MSVC.
-Solution: Add type casts. (Mike Williams)
-Files: src/ex_cmds2.c, src/netbeans.c
-
-
-*** ../vim-7.1.231/src/ex_cmds2.c Tue Jan 15 22:16:36 2008
---- src/ex_cmds2.c Tue Jan 15 20:41:28 2008
-***************
-*** 916,922 ****
-
- QueryPerformanceCounter(tm);
- QueryPerformanceFrequency(&fr);
-! tm->QuadPart += (double)msec / 1000.0 * (double)fr.QuadPart;
- # else
- long usec;
-
---- 916,922 ----
-
- QueryPerformanceCounter(tm);
- QueryPerformanceFrequency(&fr);
-! tm->QuadPart += (LONGLONG)((double)msec / 1000.0 * (double)fr.QuadPart);
- # else
- long usec;
-
-*** ../vim-7.1.231/src/netbeans.c Sat Jan 5 18:06:33 2008
---- src/netbeans.c Mon Jan 14 21:11:02 2008
-***************
-*** 1217,1223 ****
-
- oldtext = ml_get(lnum);
- oldlen = STRLEN(oldtext);
-! if (first >= oldlen || oldlen == 0) /* just in case */
- return;
- if (lastbyte >= oldlen)
- lastbyte = oldlen - 1;
---- 1217,1223 ----
-
- oldtext = ml_get(lnum);
- oldlen = STRLEN(oldtext);
-! if (first >= (colnr_T)oldlen || oldlen == 0) /* just in case */
- return;
- if (lastbyte >= oldlen)
- lastbyte = oldlen - 1;
-*** ../vim-7.1.231/src/version.c Wed Jan 16 20:01:14 2008
---- src/version.c Fri Jan 18 11:38:39 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 232,
- /**/
-
---
-Why is "abbreviation" such a long word?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.233
-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.1.233
-Problem: Crash when doing Insert mode completion for a user defined
- command. (Yegappan Lakshmanan)
-Solution: Don't use the non-existing command line.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.232/src/ex_getln.c Fri Jan 4 15:16:57 2008
---- src/ex_getln.c Fri Jan 18 13:07:11 2008
-***************
-*** 4655,4661 ****
- static void * call_user_expand_func __ARGS((void *(*user_expand_func) __ARGS((char_u *, int, char_u **, int)), expand_T *xp, int *num_file, char_u ***file));
-
- /*
-! * call "user_expand_func()" to invoke a user defined VimL function and return
- * the result (either a string or a List).
- */
- static void *
---- 4655,4661 ----
- static void * call_user_expand_func __ARGS((void *(*user_expand_func) __ARGS((char_u *, int, char_u **, int)), expand_T *xp, int *num_file, char_u ***file));
-
- /*
-! * Call "user_expand_func()" to invoke a user defined VimL function and return
- * the result (either a string or a List).
- */
- static void *
-***************
-*** 4677,4687 ****
- *num_file = 0;
- *file = NULL;
-
-! keep = ccline.cmdbuff[ccline.cmdlen];
-! ccline.cmdbuff[ccline.cmdlen] = 0;
-! sprintf((char *)num, "%d", ccline.cmdpos);
- args[0] = xp->xp_pattern;
-- args[1] = ccline.cmdbuff;
- args[2] = num;
-
- /* Save the cmdline, we don't know what the function may do. */
---- 4677,4698 ----
- *num_file = 0;
- *file = NULL;
-
-! if (ccline.cmdbuff == NULL)
-! {
-! /* Completion from Insert mode, pass fake arguments. */
-! keep = 0;
-! sprintf((char *)num, "%d", STRLEN(xp->xp_pattern));
-! args[1] = xp->xp_pattern;
-! }
-! else
-! {
-! /* Completion on the command line, pass real arguments. */
-! keep = ccline.cmdbuff[ccline.cmdlen];
-! ccline.cmdbuff[ccline.cmdlen] = 0;
-! sprintf((char *)num, "%d", ccline.cmdpos);
-! args[1] = ccline.cmdbuff;
-! }
- args[0] = xp->xp_pattern;
- args[2] = num;
-
- /* Save the cmdline, we don't know what the function may do. */
-***************
-*** 4694,4701 ****
-
- ccline = save_ccline;
- current_SID = save_current_SID;
-!
-! ccline.cmdbuff[ccline.cmdlen] = keep;
-
- return ret;
- }
---- 4705,4712 ----
-
- ccline = save_ccline;
- current_SID = save_current_SID;
-! if (ccline.cmdbuff != NULL)
-! ccline.cmdbuff[ccline.cmdlen] = keep;
-
- return ret;
- }
-*** ../vim-7.1.232/src/version.c Fri Jan 18 11:40:02 2008
---- src/version.c Fri Jan 18 13:01:05 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 233,
- /**/
-
---
-"I love deadlines. I especially like the whooshing sound they
-make as they go flying by."
- -- Douglas Adams
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.234
-Problem: When diff'ing three files the third one isn't displayed correctly.
- (Gary Johnson)
-Solution: Compute the size of diff blocks correctly when merging blocks.
- Compute filler lines correctly when scrolling.
-Files: src/diff.c
-
-
-*** ../vim-7.1.233/src/diff.c Fri Oct 19 18:57:33 2007
---- src/diff.c Fri Jan 18 17:32:31 2008
-***************
-*** 1299,1305 ****
- }
- else
- /* second overlap of new block with existing block */
-! dp->df_count[idx_new] += count_new - count_orig;
-
- /* Adjust the size of the block to include all the lines to the
- * end of the existing block or the new diff, whatever ends last. */
---- 1299,1307 ----
- }
- else
- /* second overlap of new block with existing block */
-! dp->df_count[idx_new] += count_new - count_orig
-! + dpl->df_lnum[idx_orig] + dpl->df_count[idx_orig]
-! - (dp->df_lnum[idx_orig] + dp->df_count[idx_orig]);
-
- /* Adjust the size of the block to include all the lines to the
- * end of the existing block or the new diff, whatever ends last. */
-***************
-*** 1628,1641 ****
- win_T *fromwin;
- win_T *towin;
- {
-! buf_T *buf = fromwin->w_buffer;
- linenr_T lnum = fromwin->w_topline;
-! int idx;
- diff_T *dp;
- int i;
-
-! idx = diff_buf_idx(buf);
-! if (idx == DB_COUNT)
- return; /* safety check */
-
- if (curtab->tp_diff_invalid)
---- 1630,1645 ----
- win_T *fromwin;
- win_T *towin;
- {
-! buf_T *frombuf = fromwin->w_buffer;
- linenr_T lnum = fromwin->w_topline;
-! int fromidx;
-! int toidx;
- diff_T *dp;
-+ int max_count;
- int i;
-
-! fromidx = diff_buf_idx(frombuf);
-! if (fromidx == DB_COUNT)
- return; /* safety check */
-
- if (curtab->tp_diff_invalid)
-***************
-*** 1645,1686 ****
-
- /* search for a change that includes "lnum" in the list of diffblocks. */
- for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next)
-! if (lnum <= dp->df_lnum[idx] + dp->df_count[idx])
- break;
- if (dp == NULL)
- {
- /* After last change, compute topline relative to end of file; no
- * filler lines. */
- towin->w_topline = towin->w_buffer->b_ml.ml_line_count
-! - (buf->b_ml.ml_line_count - lnum);
- }
- else
- {
- /* Find index for "towin". */
-! i = diff_buf_idx(towin->w_buffer);
-! if (i == DB_COUNT)
- return; /* safety check */
-
-! towin->w_topline = lnum + (dp->df_lnum[i] - dp->df_lnum[idx]);
-! if (lnum >= dp->df_lnum[idx])
- {
-! /* Inside a change: compute filler lines. */
-! if (dp->df_count[i] == dp->df_count[idx])
- towin->w_topfill = fromwin->w_topfill;
-! else if (dp->df_count[i] > dp->df_count[idx])
- {
-! if (lnum == dp->df_lnum[idx] + dp->df_count[idx])
-! towin->w_topline = dp->df_lnum[i] + dp->df_count[i]
-! - fromwin->w_topfill;
- }
-! else
- {
-! if (towin->w_topline >= dp->df_lnum[i] + dp->df_count[i])
- {
-! if (diff_flags & DIFF_FILLER)
-! towin->w_topfill = dp->df_lnum[idx]
-! + dp->df_count[idx] - lnum;
-! towin->w_topline = dp->df_lnum[i] + dp->df_count[i];
- }
- }
- }
---- 1649,1720 ----
-
- /* search for a change that includes "lnum" in the list of diffblocks. */
- for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next)
-! if (lnum <= dp->df_lnum[fromidx] + dp->df_count[fromidx])
- break;
- if (dp == NULL)
- {
- /* After last change, compute topline relative to end of file; no
- * filler lines. */
- towin->w_topline = towin->w_buffer->b_ml.ml_line_count
-! - (frombuf->b_ml.ml_line_count - lnum);
- }
- else
- {
- /* Find index for "towin". */
-! toidx = diff_buf_idx(towin->w_buffer);
-! if (toidx == DB_COUNT)
- return; /* safety check */
-
-! towin->w_topline = lnum + (dp->df_lnum[toidx] - dp->df_lnum[fromidx]);
-! if (lnum >= dp->df_lnum[fromidx])
- {
-! /* Inside a change: compute filler lines. With three or more
-! * buffers we need to know the largest count. */
-! max_count = 0;
-! for (i = 0; i < DB_COUNT; ++i)
-! if (curtab->tp_diffbuf[i] != NULL
-! && max_count < dp->df_count[i])
-! max_count = dp->df_count[i];
-!
-! if (dp->df_count[toidx] == dp->df_count[fromidx])
-! {
-! /* same number of lines: use same filler count */
- towin->w_topfill = fromwin->w_topfill;
-! }
-! else if (dp->df_count[toidx] > dp->df_count[fromidx])
- {
-! if (lnum == dp->df_lnum[fromidx] + dp->df_count[fromidx])
-! {
-! /* more lines in towin and fromwin doesn't show diff
-! * lines, only filler lines */
-! if (max_count - fromwin->w_topfill >= dp->df_count[toidx])
-! {
-! /* towin also only shows filler lines */
-! towin->w_topline = dp->df_lnum[toidx]
-! + dp->df_count[toidx];
-! towin->w_topfill = fromwin->w_topfill;
-! }
-! else
-! /* towin still has some diff lines to show */
-! towin->w_topline = dp->df_lnum[toidx]
-! + max_count - fromwin->w_topfill;
-! }
- }
-! else if (towin->w_topline >= dp->df_lnum[toidx]
-! + dp->df_count[toidx])
- {
-! /* less lines in towin and no diff lines to show: compute
-! * filler lines */
-! towin->w_topline = dp->df_lnum[toidx] + dp->df_count[toidx];
-! if (diff_flags & DIFF_FILLER)
- {
-! if (lnum == dp->df_lnum[fromidx] + dp->df_count[fromidx])
-! /* fromwin is also out of diff lines */
-! towin->w_topfill = fromwin->w_topfill;
-! else
-! /* fromwin has some diff lines */
-! towin->w_topfill = dp->df_lnum[fromidx]
-! + max_count - lnum;
- }
- }
- }
-*** ../vim-7.1.233/src/version.c Fri Jan 18 13:15:32 2008
---- src/version.c Fri Jan 18 17:37:32 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 234,
- /**/
-
---
-ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY
- KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T
- HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR
- LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER),
- BROTHER MAYNARD
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.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.1.235
-Problem: Pattern matching is slow when using a lot of simple patterns.
-Solution: Avoid allocating memory by not freeing it when it's not so much.
- (Alexei Alexandrov)
-Files: src/regexp.c
-
-
-*** ../vim-7.1.234/src/regexp.c Wed Jan 2 15:34:48 2008
---- src/regexp.c Fri Jan 18 20:35:21 2008
-***************
-*** 378,391 ****
-
- static char_u *reg_prev_sub = NULL;
-
-- #if defined(EXITFREE) || defined(PROTO)
-- void
-- free_regexp_stuff()
-- {
-- vim_free(reg_prev_sub);
-- }
-- #endif
--
- /*
- * REGEXP_INRANGE contains all characters which are always special in a []
- * range after '\'.
---- 378,383 ----
-***************
-*** 3206,3217 ****
- } backpos_T;
-
- /*
-! * regstack and backpos are used by regmatch(). They are kept over calls to
-! * avoid invoking malloc() and free() often.
- */
-! static garray_T regstack; /* stack with regitem_T items, sometimes
-! preceded by regstar_T or regbehind_T. */
-! static garray_T backpos; /* table with backpos_T for BACK */
-
- /*
- * Get pointer to the line "lnum", which is relative to "reg_firstlnum".
---- 3198,3236 ----
- } backpos_T;
-
- /*
-! * "regstack" and "backpos" are used by regmatch(). They are kept over calls
-! * to avoid invoking malloc() and free() often.
-! * "regstack" is a stack with regitem_T items, sometimes preceded by regstar_T
-! * or regbehind_T.
-! * "backpos_T" is a table with backpos_T for BACK
-! */
-! static garray_T regstack = {0, 0, 0, 0, NULL};
-! static garray_T backpos = {0, 0, 0, 0, NULL};
-!
-! /*
-! * Both for regstack and backpos tables we use the following strategy of
-! * allocation (to reduce malloc/free calls):
-! * - Initial size is fairly small.
-! * - When needed, the tables are grown bigger (8 times at first, double after
-! * that).
-! * - After executing the match we free the memory only if the array has grown.
-! * Thus the memory is kept allocated when it's at the initial size.
-! * This makes it fast while not keeping a lot of memory allocated.
-! * A three times speed increase was observed when using many simple patterns.
- */
-! #define REGSTACK_INITIAL 2048
-! #define BACKPOS_INITIAL 64
-!
-! #if defined(EXITFREE) || defined(PROTO)
-! void
-! free_regexp_stuff()
-! {
-! ga_clear(®stack);
-! ga_clear(&backpos);
-! vim_free(reg_tofree);
-! vim_free(reg_prev_sub);
-! }
-! #endif
-
- /*
- * Get pointer to the line "lnum", which is relative to "reg_firstlnum".
-***************
-*** 3346,3360 ****
- char_u *s;
- long retval = 0L;
-
-! reg_tofree = NULL;
-!
-! /* Init the regstack empty. Use an item size of 1 byte, since we push
-! * different things onto it. Use a large grow size to avoid reallocating
-! * it too often. */
-! ga_init2(®stack, 1, 10000);
-!
-! /* Init the backpos table empty. */
-! ga_init2(&backpos, sizeof(backpos_T), 10);
-
- if (REG_MULTI)
- {
---- 3365,3389 ----
- char_u *s;
- long retval = 0L;
-
-! /* Create "regstack" and "backpos" if they are not allocated yet.
-! * We allocate *_INITIAL amount of bytes first and then set the grow size
-! * to much bigger value to avoid many malloc calls in case of deep regular
-! * expressions. */
-! if (regstack.ga_data == NULL)
-! {
-! /* Use an item size of 1 byte, since we push different things
-! * onto the regstack. */
-! ga_init2(®stack, 1, REGSTACK_INITIAL);
-! ga_grow(®stack, REGSTACK_INITIAL);
-! regstack.ga_growsize = REGSTACK_INITIAL * 8;
-! }
-!
-! if (backpos.ga_data == NULL)
-! {
-! ga_init2(&backpos, sizeof(backpos_T), BACKPOS_INITIAL);
-! ga_grow(&backpos, BACKPOS_INITIAL);
-! backpos.ga_growsize = BACKPOS_INITIAL * 8;
-! }
-
- if (REG_MULTI)
- {
-***************
-*** 3525,3533 ****
- }
-
- theend:
-! vim_free(reg_tofree);
-! ga_clear(®stack);
-! ga_clear(&backpos);
-
- return retval;
- }
---- 3554,3570 ----
- }
-
- theend:
-! /* Free "reg_tofree" when it's a bit big.
-! * Free regstack and backpos if they are bigger than their initial size. */
-! if (reg_tofreelen > 400)
-! {
-! vim_free(reg_tofree);
-! reg_tofree = NULL;
-! }
-! if (regstack.ga_maxlen > REGSTACK_INITIAL)
-! ga_clear(®stack);
-! if (backpos.ga_maxlen > BACKPOS_INITIAL)
-! ga_clear(&backpos);
-
- return retval;
- }
-***************
-*** 3717,3724 ****
- #define RA_MATCH 4 /* successful match */
- #define RA_NOMATCH 5 /* didn't match */
-
-! /* Init the regstack and backpos table empty. They are initialized and
-! * freed in vim_regexec_both() to reduce malloc()/free() calls. */
- regstack.ga_len = 0;
- backpos.ga_len = 0;
-
---- 3754,3761 ----
- #define RA_MATCH 4 /* successful match */
- #define RA_NOMATCH 5 /* didn't match */
-
-! /* Make "regstack" and "backpos" empty. They are allocated and freed in
-! * vim_regexec_both() to reduce malloc()/free() calls. */
- regstack.ga_len = 0;
- backpos.ga_len = 0;
-
-*** ../vim-7.1.234/src/version.c Fri Jan 18 17:39:10 2008
---- src/version.c Fri Jan 18 20:33:26 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 235,
- /**/
-
---
-NEIL INNES PLAYED: THE FIRST SELF-DESTRUCTIVE MONK, ROBIN'S LEAST FAVORITE
- MINSTREL, THE PAGE CRUSHED BY A RABBIT, THE OWNER OF A DUCK
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.236
-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.1.236
-Problem: When using 'incsearch' and 'hlsearch' a complicated pattern may
- make Vim hang until CTRL-C is pressed.
-Solution: Add the 'redrawtime' option.
-Files: runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c,
- src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c,
- src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro,
- src/proto/search.pro, src/search.c, src/screen.c,
- src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c,
- src/vim.h
-
-
-*** ../vim-7.1.235/runtime/doc/options.txt Sun Aug 12 16:55:01 2007
---- runtime/doc/options.txt Sat Jan 19 14:01:22 2008
-***************
-*** 3618,3623 ****
---- 3636,3642 ----
- When you get bored looking at the highlighted matches, you can turn it
- off with |:nohlsearch|. As soon as you use a search command, the
- highlighting comes back.
-+ 'redrawtime' specifies the maximum time spend on finding matches.
- When the search pattern can match an end-of-line, Vim will try to
- highlight all of the matched text. However, this depends on where the
- search starts. This will be the first line in the window or the first
-***************
-*** 3851,3856 ****
---- 3870,3879 ----
- original position when no match is found and when pressing <Esc>. You
- still need to finish the search command with <Enter> to move the
- cursor to the match.
-+ When compiled with the |+reltime| feature Vim only searches for about
-+ half a second. With a complicated pattern and/or a lot of text the
-+ match may not be found. This is to avoid that Vim hangs while you
-+ are typing the pattern.
- The highlighting can be set with the 'i' flag in 'highlight'.
- See also: 'hlsearch'.
- CTRL-L can be used to add one character from after the current match
-***************
-*** 5185,5190 ****
---- 5210,5227 ----
- {not in Vi:} When using the ":view" command the 'readonly' option is
- set for the newly edited buffer.
-
-+ *'redrawtime'* *'rdt'*
-+ 'redrawtime' 'rdt' number (default 2000)
-+ global
-+ {not in Vi}
-+ {only available when compiled with the |+reltime|
-+ feature}
-+ The time in milliseconds for redrawing the display. This applies to
-+ searching for patterns for 'hlsearch' and |:match| highlighting.
-+ When redrawing takes more than this many milliseconds no further
-+ matches will be highlighted. This is used to avoid that Vim hangs
-+ when using a very complicated pattern.
-+
- *'remap'* *'noremap'*
- 'remap' boolean (default on)
- global
-*** ../vim-7.1.235/src/ex_cmds.c Sun Jan 13 13:30:34 2008
---- src/ex_cmds.c Sat Jan 19 13:04:28 2008
-***************
-*** 4446,4452 ****
- #endif
- ); ++lnum)
- {
-! nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0);
- if (nmatch)
- {
- colnr_T copycol;
---- 4446,4453 ----
- #endif
- ); ++lnum)
- {
-! nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum,
-! (colnr_T)0, NULL);
- if (nmatch)
- {
- colnr_T copycol;
-***************
-*** 4957,4963 ****
- || (do_ask && !re_lookbehind(regmatch.regprog))
- || nmatch_tl > 0
- || (nmatch = vim_regexec_multi(®match, curwin,
-! curbuf, sub_firstlnum, matchcol)) == 0
- || regmatch.startpos[0].lnum > 0)
- {
- if (new_start != NULL)
---- 4958,4965 ----
- || (do_ask && !re_lookbehind(regmatch.regprog))
- || nmatch_tl > 0
- || (nmatch = vim_regexec_multi(®match, curwin,
-! curbuf, sub_firstlnum,
-! matchcol, NULL)) == 0
- || regmatch.startpos[0].lnum > 0)
- {
- if (new_start != NULL)
-***************
-*** 5022,5028 ****
- }
- if (nmatch == -1 && !lastone)
- nmatch = vim_regexec_multi(®match, curwin, curbuf,
-! sub_firstlnum, matchcol);
-
- /*
- * 5. break if there isn't another match in this line
---- 5024,5030 ----
- }
- if (nmatch == -1 && !lastone)
- nmatch = vim_regexec_multi(®match, curwin, curbuf,
-! sub_firstlnum, matchcol, NULL);
-
- /*
- * 5. break if there isn't another match in this line
-***************
-*** 5252,5258 ****
- for (lnum = eap->line1; lnum <= eap->line2 && !got_int; ++lnum)
- {
- /* a match on this line? */
-! match = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0);
- if ((type == 'g' && match) || (type == 'v' && !match))
- {
- ml_setmarked(lnum);
---- 5254,5261 ----
- for (lnum = eap->line1; lnum <= eap->line2 && !got_int; ++lnum)
- {
- /* a match on this line? */
-! match = vim_regexec_multi(®match, curwin, curbuf, lnum,
-! (colnr_T)0, NULL);
- if ((type == 'g' && match) || (type == 'v' && !match))
- {
- ml_setmarked(lnum);
-*** ../vim-7.1.235/src/ex_docmd.c Sun Jan 13 17:11:25 2008
---- src/ex_docmd.c Fri Jan 18 21:01:16 2008
-***************
-*** 3931,3937 ****
- curwin->w_cursor.col = 0;
- searchcmdlen = 0;
- if (!do_search(NULL, c, cmd, 1L,
-! SEARCH_HIS + SEARCH_MSG + SEARCH_START))
- {
- curwin->w_cursor = pos;
- cmd = NULL;
---- 3931,3938 ----
- curwin->w_cursor.col = 0;
- searchcmdlen = 0;
- if (!do_search(NULL, c, cmd, 1L,
-! SEARCH_HIS + SEARCH_MSG + SEARCH_START,
-! NULL))
- {
- curwin->w_cursor = pos;
- cmd = NULL;
-*** ../vim-7.1.235/src/ex_getln.c Fri Jan 18 13:15:32 2008
---- src/ex_getln.c Fri Jan 18 21:34:42 2008
-***************
-*** 1709,1714 ****
---- 1709,1717 ----
- if (p_is && !cmd_silent && (firstc == '/' || firstc == '?'))
- {
- pos_T end_pos;
-+ #ifdef FEAT_RELTIME
-+ proftime_T tm;
-+ #endif
-
- /* if there is a character waiting, search and redraw later */
- if (char_avail())
-***************
-*** 1727,1734 ****
- cursor_off(); /* so the user knows we're busy */
- out_flush();
- ++emsg_off; /* So it doesn't beep if bad expr */
- i = do_search(NULL, firstc, ccline.cmdbuff, count,
-! SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK);
- --emsg_off;
- /* if interrupted while searching, behave like it failed */
- if (got_int)
---- 1730,1747 ----
- cursor_off(); /* so the user knows we're busy */
- out_flush();
- ++emsg_off; /* So it doesn't beep if bad expr */
-+ #ifdef FEAT_RELTIME
-+ /* Set the time limit to half a second. */
-+ profile_setlimit(500L, &tm);
-+ #endif
- i = do_search(NULL, firstc, ccline.cmdbuff, count,
-! SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK,
-! #ifdef FEAT_RELTIME
-! &tm
-! #else
-! NULL
-! #endif
-! );
- --emsg_off;
- /* if interrupted while searching, behave like it failed */
- if (got_int)
-*** ../vim-7.1.235/src/gui.c Thu Jan 3 16:14:25 2008
---- src/gui.c Fri Jan 18 21:01:36 2008
-***************
-*** 5052,5058 ****
- /* Search for the next match. */
- i = msg_scroll;
- do_search(NULL, down ? '/' : '?', ga.ga_data, 1L,
-! SEARCH_MSG + SEARCH_MARK);
- msg_scroll = i; /* don't let an error message set msg_scroll */
- }
-
---- 5052,5058 ----
- /* Search for the next match. */
- i = msg_scroll;
- do_search(NULL, down ? '/' : '?', ga.ga_data, 1L,
-! SEARCH_MSG + SEARCH_MARK, NULL);
- msg_scroll = i; /* don't let an error message set msg_scroll */
- }
-
-*** ../vim-7.1.235/src/misc1.c Thu Jan 3 12:42:38 2008
---- src/misc1.c Sat Jan 19 13:04:39 2008
-***************
-*** 437,443 ****
- {
- regmatch.rmm_ic = FALSE;
- regmatch.rmm_maxcol = 0;
-! if (vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0))
- {
- pos.lnum = regmatch.endpos[0].lnum + lnum;
- pos.col = regmatch.endpos[0].col;
---- 437,444 ----
- {
- regmatch.rmm_ic = FALSE;
- regmatch.rmm_maxcol = 0;
-! if (vim_regexec_multi(®match, curwin, curbuf, lnum,
-! (colnr_T)0, NULL))
- {
- pos.lnum = regmatch.endpos[0].lnum + lnum;
- pos.col = regmatch.endpos[0].col;
-*** ../vim-7.1.235/src/normal.c Sat Jan 12 17:11:25 2008
---- src/normal.c Fri Jan 18 21:01:47 2008
-***************
-*** 6093,6099 ****
- curwin->w_set_curswant = TRUE;
-
- i = do_search(cap->oap, dir, pat, cap->count1,
-! opt | SEARCH_OPT | SEARCH_ECHO | SEARCH_MSG);
- if (i == 0)
- clearop(cap->oap);
- else
---- 6093,6099 ----
- curwin->w_set_curswant = TRUE;
-
- i = do_search(cap->oap, dir, pat, cap->count1,
-! opt | SEARCH_OPT | SEARCH_ECHO | SEARCH_MSG, NULL);
- if (i == 0)
- clearop(cap->oap);
- else
-*** ../vim-7.1.235/src/option.c Tue Oct 2 20:40:01 2007
---- src/option.c Sat Jan 19 13:44:33 2008
-***************
-*** 1991,1996 ****
---- 1991,2003 ----
- {"redraw", NULL, P_BOOL|P_VI_DEF,
- (char_u *)NULL, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L}},
-+ {"redrawtime", "rdt", P_NUM|P_VI_DEF,
-+ #ifdef FEAT_RELTIME
-+ (char_u *)&p_rdt, PV_NONE,
-+ #else
-+ (char_u *)NULL, PV_NONE,
-+ #endif
-+ {(char_u *)2000L, (char_u *)0L}},
- {"remap", NULL, P_BOOL|P_VI_DEF,
- (char_u *)&p_remap, PV_NONE,
- {(char_u *)TRUE, (char_u *)0L}},
-*** ../vim-7.1.235/src/quickfix.c Sun Sep 30 14:00:41 2007
---- src/quickfix.c Sat Jan 19 13:04:53 2008
-***************
-*** 1803,1809 ****
- /* Move the cursor to the first line in the buffer */
- save_cursor = curwin->w_cursor;
- curwin->w_cursor.lnum = 0;
-! if (!do_search(NULL, '/', qf_ptr->qf_pattern, (long)1, SEARCH_KEEP))
- curwin->w_cursor = save_cursor;
- }
-
---- 1803,1810 ----
- /* Move the cursor to the first line in the buffer */
- save_cursor = curwin->w_cursor;
- curwin->w_cursor.lnum = 0;
-! if (!do_search(NULL, '/', qf_ptr->qf_pattern, (long)1,
-! SEARCH_KEEP, NULL))
- curwin->w_cursor = save_cursor;
- }
-
-***************
-*** 3159,3165 ****
- {
- col = 0;
- while (vim_regexec_multi(®match, curwin, buf, lnum,
-! col) > 0)
- {
- ;
- if (qf_add_entry(qi, &prevp,
---- 3160,3166 ----
- {
- col = 0;
- while (vim_regexec_multi(®match, curwin, buf, lnum,
-! col, NULL) > 0)
- {
- ;
- if (qf_add_entry(qi, &prevp,
-*** ../vim-7.1.235/src/regexp.c Fri Jan 18 20:36:40 2008
---- src/regexp.c Sat Jan 19 15:18:12 2008
-***************
-*** 3040,3046 ****
- } save_se_T;
-
- static char_u *reg_getline __ARGS((linenr_T lnum));
-! static long vim_regexec_both __ARGS((char_u *line, colnr_T col));
- static long regtry __ARGS((regprog_T *prog, colnr_T col));
- static void cleanup_subexpr __ARGS((void));
- #ifdef FEAT_SYN_HL
---- 3040,3046 ----
- } save_se_T;
-
- static char_u *reg_getline __ARGS((linenr_T lnum));
-! static long vim_regexec_both __ARGS((char_u *line, colnr_T col, proftime_T *tm));
- static long regtry __ARGS((regprog_T *prog, colnr_T col));
- static void cleanup_subexpr __ARGS((void));
- #ifdef FEAT_SYN_HL
-***************
-*** 3284,3290 ****
- ireg_icombine = FALSE;
- #endif
- ireg_maxcol = 0;
-! return (vim_regexec_both(line, col) != 0);
- }
-
- #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \
---- 3284,3290 ----
- ireg_icombine = FALSE;
- #endif
- ireg_maxcol = 0;
-! return (vim_regexec_both(line, col, NULL) != 0);
- }
-
- #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \
-***************
-*** 3308,3314 ****
- ireg_icombine = FALSE;
- #endif
- ireg_maxcol = 0;
-! return (vim_regexec_both(line, col) != 0);
- }
- #endif
-
---- 3308,3314 ----
- ireg_icombine = FALSE;
- #endif
- ireg_maxcol = 0;
-! return (vim_regexec_both(line, col, NULL) != 0);
- }
- #endif
-
-***************
-*** 3321,3332 ****
- * match otherwise.
- */
- long
-! vim_regexec_multi(rmp, win, buf, lnum, col)
- regmmatch_T *rmp;
- win_T *win; /* window in which to search or NULL */
- buf_T *buf; /* buffer in which to search */
- linenr_T lnum; /* nr of line to start looking for match */
- colnr_T col; /* column to start looking for match */
- {
- long r;
- buf_T *save_curbuf = curbuf;
---- 3321,3333 ----
- * match otherwise.
- */
- long
-! vim_regexec_multi(rmp, win, buf, lnum, col, tm)
- regmmatch_T *rmp;
- win_T *win; /* window in which to search or NULL */
- buf_T *buf; /* buffer in which to search */
- linenr_T lnum; /* nr of line to start looking for match */
- colnr_T col; /* column to start looking for match */
-+ proftime_T *tm; /* timeout limit or NULL */
- {
- long r;
- buf_T *save_curbuf = curbuf;
-***************
-*** 3346,3352 ****
-
- /* Need to switch to buffer "buf" to make vim_iswordc() work. */
- curbuf = buf;
-! r = vim_regexec_both(NULL, col);
- curbuf = save_curbuf;
-
- return r;
---- 3347,3353 ----
-
- /* Need to switch to buffer "buf" to make vim_iswordc() work. */
- curbuf = buf;
-! r = vim_regexec_both(NULL, col, tm);
- curbuf = save_curbuf;
-
- return r;
-***************
-*** 3356,3365 ****
- * Match a regexp against a string ("line" points to the string) or multiple
- * lines ("line" is NULL, use reg_getline()).
- */
- static long
-! vim_regexec_both(line, col)
- char_u *line;
- colnr_T col; /* column to start looking for match */
- {
- regprog_T *prog;
- char_u *s;
---- 3357,3368 ----
- * Match a regexp against a string ("line" points to the string) or multiple
- * lines ("line" is NULL, use reg_getline()).
- */
-+ /*ARGSUSED*/
- static long
-! vim_regexec_both(line, col, tm)
- char_u *line;
- colnr_T col; /* column to start looking for match */
-+ proftime_T *tm; /* timeout limit or NULL */
- {
- regprog_T *prog;
- char_u *s;
-***************
-*** 3502,3507 ****
---- 3505,3513 ----
- }
- else
- {
-+ #ifdef FEAT_RELTIME
-+ int tm_count = 0;
-+ #endif
- /* Messy cases: unanchored match. */
- while (!got_int)
- {
-***************
-*** 3550,3555 ****
---- 3556,3570 ----
- else
- #endif
- ++col;
-+ #ifdef FEAT_RELTIME
-+ /* Check for timeout once in a twenty times to avoid overhead. */
-+ if (tm != NULL && ++tm_count == 20)
-+ {
-+ tm_count = 0;
-+ if (profile_passed_limit(tm))
-+ break;
-+ }
-+ #endif
- }
- }
-
-*** ../vim-7.1.235/src/proto/regexp.pro Sat May 5 19:42:08 2007
---- src/proto/regexp.pro Sat Jan 19 13:14:09 2008
-***************
-*** 1,13 ****
- /* regexp.c */
-- void free_regexp_stuff __ARGS((void));
- int re_multiline __ARGS((regprog_T *prog));
- int re_lookbehind __ARGS((regprog_T *prog));
- char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp));
- regprog_T *vim_regcomp __ARGS((char_u *expr, int re_flags));
- int vim_regcomp_had_eol __ARGS((void));
- int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
- int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
-! long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col));
- reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em));
- void unref_extmatch __ARGS((reg_extmatch_T *em));
- char_u *regtilde __ARGS((char_u *source, int magic));
---- 1,13 ----
- /* regexp.c */
- int re_multiline __ARGS((regprog_T *prog));
- int re_lookbehind __ARGS((regprog_T *prog));
- char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp));
- regprog_T *vim_regcomp __ARGS((char_u *expr, int re_flags));
- int vim_regcomp_had_eol __ARGS((void));
-+ void free_regexp_stuff __ARGS((void));
- int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
- int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
-! long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, proftime_T *tm));
- reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em));
- void unref_extmatch __ARGS((reg_extmatch_T *em));
- char_u *regtilde __ARGS((char_u *source, int magic));
-*** ../vim-7.1.235/src/proto/search.pro Sun Jan 6 20:05:36 2008
---- src/proto/search.pro Fri Jan 18 21:03:49 2008
-***************
-*** 11,17 ****
- void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast));
- void last_pat_prog __ARGS((regmmatch_T *regmatch));
- int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm));
-! int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options));
- int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat));
- int searchc __ARGS((cmdarg_T *cap, int t_cmd));
- pos_T *findmatch __ARGS((oparg_T *oap, int initc));
---- 11,17 ----
- void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast));
- void last_pat_prog __ARGS((regmmatch_T *regmatch));
- int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm));
-! int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options, proftime_T *tm));
- int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat));
- int searchc __ARGS((cmdarg_T *cap, int t_cmd));
- pos_T *findmatch __ARGS((oparg_T *oap, int initc));
-*** ../vim-7.1.235/src/search.c Sun Jan 6 20:05:36 2008
---- src/search.c Sat Jan 19 13:13:25 2008
-***************
-*** 606,612 ****
- * Look for a match somewhere in line "lnum".
- */
- nmatched = vim_regexec_multi(®match, win, buf,
-! lnum, (colnr_T)0);
- /* Abort searching on an error (e.g., out of stack). */
- if (called_emsg)
- break;
---- 606,618 ----
- * Look for a match somewhere in line "lnum".
- */
- nmatched = vim_regexec_multi(®match, win, buf,
-! lnum, (colnr_T)0,
-! #ifdef FEAT_RELTIME
-! tm
-! #else
-! NULL
-! #endif
-! );
- /* Abort searching on an error (e.g., out of stack). */
- if (called_emsg)
- break;
-***************
-*** 615,623 ****
- /* match may actually be in another line when using \zs */
- matchpos = regmatch.startpos[0];
- endpos = regmatch.endpos[0];
-! # ifdef FEAT_EVAL
- submatch = first_submatch(®match);
-! # endif
- /* Line me be past end of buffer for "\n\zs". */
- if (lnum + matchpos.lnum > buf->b_ml.ml_line_count)
- ptr = (char_u *)"";
---- 621,629 ----
- /* match may actually be in another line when using \zs */
- matchpos = regmatch.startpos[0];
- endpos = regmatch.endpos[0];
-! #ifdef FEAT_EVAL
- submatch = first_submatch(®match);
-! #endif
- /* Line me be past end of buffer for "\n\zs". */
- if (lnum + matchpos.lnum > buf->b_ml.ml_line_count)
- ptr = (char_u *)"";
-***************
-*** 693,699 ****
- if (ptr[matchcol] == NUL
- || (nmatched = vim_regexec_multi(®match,
- win, buf, lnum + matchpos.lnum,
-! matchcol)) == 0)
- {
- match_ok = FALSE;
- break;
---- 699,711 ----
- if (ptr[matchcol] == NUL
- || (nmatched = vim_regexec_multi(®match,
- win, buf, lnum + matchpos.lnum,
-! matchcol,
-! #ifdef FEAT_RELTIME
-! tm
-! #else
-! NULL
-! #endif
-! )) == 0)
- {
- match_ok = FALSE;
- break;
-***************
-*** 799,805 ****
- if (ptr[matchcol] == NUL
- || (nmatched = vim_regexec_multi(®match,
- win, buf, lnum + matchpos.lnum,
-! matchcol)) == 0)
- break;
-
- /* Need to get the line pointer again, a
---- 811,823 ----
- if (ptr[matchcol] == NUL
- || (nmatched = vim_regexec_multi(®match,
- win, buf, lnum + matchpos.lnum,
-! matchcol,
-! #ifdef FEAT_RELTIME
-! tm
-! #else
-! NULL
-! #endif
-! )) == 0)
- break;
-
- /* Need to get the line pointer again, a
-***************
-*** 977,988 ****
- * return 0 for failure, 1 for found, 2 for found and line offset added
- */
- int
-! do_search(oap, dirc, pat, count, options)
- oparg_T *oap; /* can be NULL */
- int dirc; /* '/' or '?' */
- char_u *pat;
- long count;
- int options;
- {
- pos_T pos; /* position of the last match */
- char_u *searchstr;
---- 995,1007 ----
- * return 0 for failure, 1 for found, 2 for found and line offset added
- */
- int
-! do_search(oap, dirc, pat, count, options, tm)
- oparg_T *oap; /* can be NULL */
- int dirc; /* '/' or '?' */
- char_u *pat;
- long count;
- int options;
-+ proftime_T *tm; /* timeout limit or NULL */
- {
- pos_T pos; /* position of the last match */
- char_u *searchstr;
-***************
-*** 1256,1262 ****
- (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
- + SEARCH_MSG + SEARCH_START
- + ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))),
-! RE_LAST, (linenr_T)0, NULL);
-
- if (dircp != NULL)
- *dircp = dirc; /* restore second '/' or '?' for normal_cmd() */
---- 1275,1281 ----
- (SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
- + SEARCH_MSG + SEARCH_START
- + ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))),
-! RE_LAST, (linenr_T)0, tm);
-
- if (dircp != NULL)
- *dircp = dirc; /* restore second '/' or '?' for normal_cmd() */
-*** ../vim-7.1.235/src/screen.c Sat Jan 12 16:45:25 2008
---- src/screen.c Sat Jan 19 13:52:29 2008
-***************
-*** 848,858 ****
---- 848,863 ----
- cur->hl.buf = buf;
- cur->hl.lnum = 0;
- cur->hl.first_lnum = 0;
-+ # ifdef FEAT_RELTIME
-+ /* Set the time limit to 'redrawtime'. */
-+ profile_setlimit(p_rdt, &(cur->hl.tm));
-+ # endif
- cur = cur->next;
- }
- search_hl.buf = buf;
- search_hl.lnum = 0;
- search_hl.first_lnum = 0;
-+ /* time limit is set at the toplevel, for all windows */
- #endif
-
- #ifdef FEAT_LINEBREAK
-***************
-*** 6462,6467 ****
---- 6467,6476 ----
- {
- last_pat_prog(&search_hl.rm);
- search_hl.attr = hl_attr(HLF_L);
-+ # ifdef FEAT_RELTIME
-+ /* Set the time limit to 'redrawtime'. */
-+ profile_setlimit(p_rdt, &search_hl.tm);
-+ # endif
- }
- }
-
-***************
-*** 6587,6592 ****
---- 6596,6609 ----
- called_emsg = FALSE;
- for (;;)
- {
-+ #ifdef FEAT_RELTIME
-+ /* Stop searching after passing the time limit. */
-+ if (profile_passed_limit(&(shl->tm)))
-+ {
-+ shl->lnum = 0; /* no match found in time */
-+ break;
-+ }
-+ #endif
- /* Three situations:
- * 1. No useful previous match: search from start of line.
- * 2. Not Vi compatible or empty match: continue at next character.
-***************
-*** 6620,6626 ****
- matchcol = shl->rm.endpos[0].col;
-
- shl->lnum = lnum;
-! nmatched = vim_regexec_multi(&shl->rm, win, shl->buf, lnum, matchcol);
- if (called_emsg)
- {
- /* Error while handling regexp: stop using this regexp. */
---- 6637,6649 ----
- matchcol = shl->rm.endpos[0].col;
-
- shl->lnum = lnum;
-! nmatched = vim_regexec_multi(&shl->rm, win, shl->buf, lnum, matchcol,
-! #ifdef FEAT_RELTIME
-! &(shl->tm)
-! #else
-! NULL
-! #endif
-! );
- if (called_emsg)
- {
- /* Error while handling regexp: stop using this regexp. */
-*** ../vim-7.1.235/src/option.h Thu May 10 20:34:47 2007
---- src/option.h Sat Jan 19 13:45:51 2008
-***************
-*** 633,638 ****
---- 633,641 ----
- #ifdef FEAT_SEARCHPATH
- EXTERN char_u *p_cdpath; /* 'cdpath' */
- #endif
-+ #ifdef FEAT_RELTIME
-+ EXTERN long p_rdt; /* 'redrawtime' */
-+ #endif
- EXTERN int p_remap; /* 'remap' */
- EXTERN long p_report; /* 'report' */
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-*** ../vim-7.1.235/src/spell.c Sat Jan 12 16:45:25 2008
---- src/spell.c Fri Jan 18 21:02:47 2008
-***************
-*** 10343,10349 ****
- curwin->w_cursor.lnum = 0;
- while (!got_int)
- {
-! if (do_search(NULL, '/', frompat, 1L, SEARCH_KEEP) == 0
- || u_save_cursor() == FAIL)
- break;
-
---- 10343,10349 ----
- curwin->w_cursor.lnum = 0;
- while (!got_int)
- {
-! if (do_search(NULL, '/', frompat, 1L, SEARCH_KEEP, NULL) == 0
- || u_save_cursor() == FAIL)
- break;
-
-*** ../vim-7.1.235/src/structs.h Mon Oct 1 22:53:27 2007
---- src/structs.h Fri Jan 18 21:18:53 2008
-***************
-*** 1717,1722 ****
---- 1717,1725 ----
- linenr_T first_lnum; /* first lnum to search for multi-line pat */
- colnr_T startcol; /* in win_line() points to char where HL starts */
- colnr_T endcol; /* in win_line() points to char where HL ends */
-+ #ifdef FEAT_RELTIME
-+ proftime_T tm; /* for a time limit */
-+ #endif
- } match_T;
-
- /*
-*** ../vim-7.1.235/src/syntax.c Sun Jan 13 17:39:29 2008
---- src/syntax.c Sat Jan 19 13:13:49 2008
-***************
-*** 3097,3103 ****
- colnr_T col;
- {
- rmp->rmm_maxcol = syn_buf->b_p_smc;
-! if (vim_regexec_multi(rmp, syn_win, syn_buf, lnum, col) > 0)
- {
- rmp->startpos[0].lnum += lnum;
- rmp->endpos[0].lnum += lnum;
---- 3097,3103 ----
- colnr_T col;
- {
- rmp->rmm_maxcol = syn_buf->b_p_smc;
-! if (vim_regexec_multi(rmp, syn_win, syn_buf, lnum, col, NULL) > 0)
- {
- rmp->startpos[0].lnum += lnum;
- rmp->endpos[0].lnum += lnum;
-*** ../vim-7.1.235/src/tag.c Thu May 10 19:44:07 2007
---- src/tag.c Fri Jan 18 21:03:41 2008
-***************
-*** 3191,3197 ****
- #endif
- save_lnum = curwin->w_cursor.lnum;
- curwin->w_cursor.lnum = 0; /* start search before first line */
-! if (do_search(NULL, pbuf[0], pbuf + 1, (long)1, search_options))
- retval = OK;
- else
- {
---- 3191,3198 ----
- #endif
- save_lnum = curwin->w_cursor.lnum;
- curwin->w_cursor.lnum = 0; /* start search before first line */
-! if (do_search(NULL, pbuf[0], pbuf + 1, (long)1,
-! search_options, NULL))
- retval = OK;
- else
- {
-***************
-*** 3203,3209 ****
- */
- p_ic = TRUE;
- if (!do_search(NULL, pbuf[0], pbuf + 1, (long)1,
-! search_options))
- {
- /*
- * Failed to find pattern, take a guess: "^func ("
---- 3204,3210 ----
- */
- p_ic = TRUE;
- if (!do_search(NULL, pbuf[0], pbuf + 1, (long)1,
-! search_options, NULL))
- {
- /*
- * Failed to find pattern, take a guess: "^func ("
-***************
-*** 3213,3225 ****
- cc = *tagp.tagname_end;
- *tagp.tagname_end = NUL;
- sprintf((char *)pbuf, "^%s\\s\\*(", tagp.tagname);
-! if (!do_search(NULL, '/', pbuf, (long)1, search_options))
- {
- /* Guess again: "^char * \<func (" */
- sprintf((char *)pbuf, "^\\[#a-zA-Z_]\\.\\*\\<%s\\s\\*(",
- tagp.tagname);
- if (!do_search(NULL, '/', pbuf, (long)1,
-! search_options))
- found = 0;
- }
- *tagp.tagname_end = cc;
---- 3214,3227 ----
- cc = *tagp.tagname_end;
- *tagp.tagname_end = NUL;
- sprintf((char *)pbuf, "^%s\\s\\*(", tagp.tagname);
-! if (!do_search(NULL, '/', pbuf, (long)1,
-! search_options, NULL))
- {
- /* Guess again: "^char * \<func (" */
- sprintf((char *)pbuf, "^\\[#a-zA-Z_]\\.\\*\\<%s\\s\\*(",
- tagp.tagname);
- if (!do_search(NULL, '/', pbuf, (long)1,
-! search_options, NULL))
- found = 0;
- }
- *tagp.tagname_end = cc;
-*** ../vim-7.1.235/src/vim.h Sat Jan 5 13:34:01 2008
---- src/vim.h Fri Jan 18 21:29:22 2008
-***************
-*** 1550,1555 ****
---- 1550,1565 ----
- # define MB_MAXBYTES 21
- #endif
-
-+ #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
-+ # ifdef WIN3264
-+ typedef LARGE_INTEGER proftime_T;
-+ # else
-+ typedef struct timeval proftime_T;
-+ # endif
-+ #else
-+ typedef int proftime_T; /* dummy for function prototypes */
-+ #endif
-+
- /* Include option.h before structs.h, because the number of window-local and
- * buffer-local options is used there. */
- #include "option.h" /* options and default values */
-***************
-*** 1760,1775 ****
- # include <io.h> /* for access() */
-
- # define stat(a,b) (access(a,0) ? -1 : stat(a,b))
-- #endif
--
-- #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
-- # ifdef WIN3264
-- typedef LARGE_INTEGER proftime_T;
-- # else
-- typedef struct timeval proftime_T;
-- # endif
-- #else
-- typedef int proftime_T; /* dummy for function prototypes */
- #endif
-
- #include "ex_cmds.h" /* Ex command defines */
---- 1770,1775 ----
-*** ../vim-7.1.235/src/version.c Fri Jan 18 20:36:40 2008
---- src/version.c Sat Jan 19 15:19:48 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 236,
- /**/
-
---
-Every time I lose weight, it finds me again!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.237
-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.1.237
-Problem: Compiler warning on an Alpha processor in Motif code.
-Solution: Change a typecast. (Adri Verhoef)
-Files: src/gui_motif.c
-
-
-*** ../vim-7.1.236/src/gui_motif.c Thu May 10 19:51:05 2007
---- src/gui_motif.c Mon Jan 21 21:03:55 2008
-***************
-*** 3813,3819 ****
-
- XtAddCallback(frdp->find, XmNactivateCallback,
- find_replace_callback,
-! (XtPointer) (do_replace ? FRD_R_FINDNEXT : FRD_FINDNEXT));
-
- if (do_replace)
- {
---- 3813,3819 ----
-
- XtAddCallback(frdp->find, XmNactivateCallback,
- find_replace_callback,
-! (do_replace ? (XtPointer)FRD_R_FINDNEXT : (XtPointer)FRD_FINDNEXT));
-
- if (do_replace)
- {
-*** ../vim-7.1.236/src/version.c Sat Jan 19 15:55:51 2008
---- src/version.c Tue Jan 22 11:05:12 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 237,
- /**/
-
---
-I am always surprised in the Linux world how quickly solutions can be
-obtained. (Imagine sending an email to Bill Gates, asking why Windows
-crashed, and how to fix it... and then getting an answer that fixed the
-problem... <0>_<0> !) -- Mark Langdon
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.238
-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.1.238
-Problem: Using the 'c' flag with searchpair() may cause it to fail. Using
- the 'r' flag doesn't work when 'wrapscan' is set. (A.Politz)
-Solution: Only use the 'c' flag for the first search, not for repeating.
- When using 'r' imply 'W'. (Antony Scriven)
-Files: src/eval.c
-
-
-*** ../vim-7.1.237/src/eval.c Sat Jan 12 16:45:25 2008
---- src/eval.c Tue Jan 22 11:42:28 2008
-***************
-*** 14189,14194 ****
---- 14189,14198 ----
- goto theend;
- }
-
-+ /* Using 'r' implies 'W', otherwise it doesn't work. */
-+ if (flags & SP_REPEAT)
-+ p_ws = FALSE;
-+
- /* Optional fifth argument: skip expression */
- if (argvars[3].v_type == VAR_UNKNOWN
- || argvars[4].v_type == VAR_UNKNOWN)
-***************
-*** 14344,14349 ****
---- 14348,14356 ----
- incl(&pos);
- }
- foundpos = pos;
-+
-+ /* clear the start flag to avoid getting stuck here */
-+ options &= ~SEARCH_START;
-
- /* If the skip pattern matches, ignore this match. */
- if (*skip != NUL)
-*** ../vim-7.1.237/src/version.c Tue Jan 22 11:06:06 2008
---- src/version.c Tue Jan 22 11:57:28 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 238,
- /**/
-
---
-To keep milk from turning sour: Keep it in the cow.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.239
-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.1.239 (after 7.1.233)
-Problem: Compiler warning for sprintf() argument.
-Solution: Add a typecast. (Nico Weber)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.238/src/ex_getln.c Sat Jan 19 15:55:51 2008
---- src/ex_getln.c Tue Jan 22 12:40:54 2008
-***************
-*** 4694,4700 ****
- {
- /* Completion from Insert mode, pass fake arguments. */
- keep = 0;
-! sprintf((char *)num, "%d", STRLEN(xp->xp_pattern));
- args[1] = xp->xp_pattern;
- }
- else
---- 4694,4700 ----
- {
- /* Completion from Insert mode, pass fake arguments. */
- keep = 0;
-! sprintf((char *)num, "%d", (int)STRLEN(xp->xp_pattern));
- args[1] = xp->xp_pattern;
- }
- else
-*** ../vim-7.1.238/src/version.c Tue Jan 22 11:58:41 2008
---- src/version.c Tue Jan 22 12:42:36 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 239,
- /**/
-
---
-We apologise again for the fault in the subtitles. Those responsible for
-sacking the people who have just been sacked have been sacked.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.240
-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.1.240
-Problem: When "gUe" turns a German sharp s into SS the operation stops
- before the end of the word. Latin2 has the same sharp s but it's
- not changed to SS there.
-Solution: Make sure all the characters are operated upon. Detect the sharp
- s in latin2. Also fixes that changing case of a multi-byte
- character that changes the byte cound doesn't always work.
-Files: src/ops.c
-
-
-*** ../vim-7.1.239/src/ops.c Wed Jan 16 20:01:14 2008
---- src/ops.c Tue Jan 22 16:00:07 2008
-***************
-*** 2184,2189 ****
---- 2184,2191 ----
- }
- #endif
-
-+ static int swapchars __ARGS((int op_type, pos_T *pos, int length));
-+
- /*
- * Handle the (non-standard vi) tilde operator. Also for "gu", "gU" and "g?".
- */
-***************
-*** 2194,2202 ****
- pos_T pos;
- #ifdef FEAT_VISUAL
- struct block_def bd;
-- int todo;
- #endif
-! int did_change = 0;
-
- if (u_save((linenr_T)(oap->start.lnum - 1),
- (linenr_T)(oap->end.lnum + 1)) == FAIL)
---- 2196,2203 ----
- pos_T pos;
- #ifdef FEAT_VISUAL
- struct block_def bd;
- #endif
-! int did_change;
-
- if (u_save((linenr_T)(oap->start.lnum - 1),
- (linenr_T)(oap->end.lnum + 1)) == FAIL)
-***************
-*** 2210,2225 ****
- {
- block_prep(oap, &bd, pos.lnum, FALSE);
- pos.col = bd.textcol;
-! for (todo = bd.textlen; todo > 0; --todo)
-! {
-! # ifdef FEAT_MBYTE
-! if (has_mbyte)
-! todo -= (*mb_ptr2len)(ml_get_pos(&pos)) - 1;
-! # endif
-! did_change |= swapchar(oap->op_type, &pos);
-! if (inc(&pos) == -1) /* at end of file */
-! break;
-! }
- # ifdef FEAT_NETBEANS_INTG
- if (usingNetbeans && did_change)
- {
---- 2211,2218 ----
- {
- block_prep(oap, &bd, pos.lnum, FALSE);
- pos.col = bd.textcol;
-! did_change = swapchars(oap->op_type, &pos, bd.textlen);
-!
- # ifdef FEAT_NETBEANS_INTG
- if (usingNetbeans && did_change)
- {
-***************
-*** 2249,2261 ****
- else if (!oap->inclusive)
- dec(&(oap->end));
-
-! while (ltoreq(pos, oap->end))
-! {
-! did_change |= swapchar(oap->op_type, &pos);
-! if (inc(&pos) == -1) /* at end of file */
-! break;
-! }
-!
- if (did_change)
- {
- changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1,
---- 2242,2248 ----
- else if (!oap->inclusive)
- dec(&(oap->end));
-
-! did_change = swapchars(oap->op_type, &pos, oap->end.col - pos.col + 1);
- if (did_change)
- {
- changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1,
-***************
-*** 2309,2314 ****
---- 2296,2337 ----
- }
-
- /*
-+ * Invoke swapchar() on "length" bytes at position "pos".
-+ * "pos" is advanced to just after the changed characters.
-+ * "length" is rounded up to include the whole last multi-byte character.
-+ * Also works correctly when the number of bytes changes.
-+ * Returns TRUE if some character was changed.
-+ */
-+ static int
-+ swapchars(op_type, pos, length)
-+ int op_type;
-+ pos_T *pos;
-+ int length;
-+ {
-+ int todo;
-+ int did_change = 0;
-+
-+ for (todo = length; todo > 0; --todo)
-+ {
-+ # ifdef FEAT_MBYTE
-+ int pos_col = pos->col;
-+
-+ if (has_mbyte)
-+ /* we're counting bytes, not characters */
-+ todo -= (*mb_ptr2len)(ml_get_pos(pos)) - 1;
-+ # endif
-+ did_change |= swapchar(op_type, pos);
-+ # ifdef FEAT_MBYTE
-+ /* Changing German sharp s to SS increases the column. */
-+ todo += pos->col - pos_col;
-+ # endif
-+ if (inc(pos) == -1) /* at end of file */
-+ break;
-+ }
-+ return did_change;
-+ }
-+
-+ /*
- * If op_type == OP_UPPER: make uppercase,
- * if op_type == OP_LOWER: make lowercase,
- * if op_type == OP_ROT13: do rot13 encoding,
-***************
-*** 2330,2336 ****
- return FALSE;
-
- #ifdef FEAT_MBYTE
-! if (op_type == OP_UPPER && enc_latin1like && c == 0xdf)
- {
- pos_T sp = curwin->w_cursor;
-
---- 2353,2360 ----
- return FALSE;
-
- #ifdef FEAT_MBYTE
-! if (op_type == OP_UPPER && c == 0xdf
-! && (enc_latin1like || STRCMP(p_enc, "iso-8859-2") == 0))
- {
- pos_T sp = curwin->w_cursor;
-
-*** ../vim-7.1.239/src/version.c Tue Jan 22 12:44:03 2008
---- src/version.c Tue Jan 22 15:36:36 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 240,
- /**/
-
---
-ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot.
- King of all Britons, defeator of the Saxons, sovereign of all England!
- [Pause]
-SOLDIER: Get away!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.241
-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.1.241
-Problem: Focus change events not always ignored. (Erik Falor)
-Solution: Ignore K_IGNORE in Insert mode in a few more places.
-Files: src/edit.c
-
-
-*** ../vim-7.1.240/src/edit.c Wed Jan 16 20:01:14 2008
---- src/edit.c Tue Jan 22 17:45:32 2008
-***************
-*** 703,712 ****
- #endif
-
- /*
-! * Get a character for Insert mode.
- */
- lastc = c; /* remember previous char for CTRL-D */
-! c = safe_vgetc();
-
- #ifdef FEAT_AUTOCMD
- /* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
---- 703,715 ----
- #endif
-
- /*
-! * Get a character for Insert mode. Ignore K_IGNORE.
- */
- lastc = c; /* remember previous char for CTRL-D */
-! do
-! {
-! c = safe_vgetc();
-! } while (c == K_IGNORE);
-
- #ifdef FEAT_AUTOCMD
- /* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
-***************
-*** 777,783 ****
- /* Prepare for or stop CTRL-X mode. This doesn't do completion, but
- * it does fix up the text when finishing completion. */
- compl_get_longest = FALSE;
-! if (c != K_IGNORE && ins_compl_prep(c))
- continue;
- #endif
-
---- 780,786 ----
- /* Prepare for or stop CTRL-X mode. This doesn't do completion, but
- * it does fix up the text when finishing completion. */
- compl_get_longest = FALSE;
-! if (ins_compl_prep(c))
- continue;
- #endif
-
-***************
-*** 4516,4530 ****
- else
- {
- /* Need to get the character to have KeyTyped set. We'll put it
-! * back with vungetc() below. */
- c = safe_vgetc();
-
-! /* Don't interrupt completion when the character wasn't typed,
-! * e.g., when doing @q to replay keys. */
-! if (c != Ctrl_R && KeyTyped)
-! compl_interrupted = TRUE;
-!
-! vungetc(c);
- }
- }
- if (compl_pending != 0 && !got_int)
---- 4519,4535 ----
- else
- {
- /* Need to get the character to have KeyTyped set. We'll put it
-! * back with vungetc() below. But skip K_IGNORE. */
- c = safe_vgetc();
-+ if (c != K_IGNORE)
-+ {
-+ /* Don't interrupt completion when the character wasn't typed,
-+ * e.g., when doing @q to replay keys. */
-+ if (c != Ctrl_R && KeyTyped)
-+ compl_interrupted = TRUE;
-
-! vungetc(c);
-! }
- }
- }
- if (compl_pending != 0 && !got_int)
-*** ../vim-7.1.240/src/version.c Tue Jan 22 16:01:25 2008
---- src/version.c Tue Jan 22 17:48:46 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 241,
- /**/
-
---
-The problem with political jokes is that they get elected.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.242
-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.1.242 (after 7.1.005)
-Problem: "cib" doesn't work properly on "(x)". (Tim Pope)
-Solution: Use ltoreq() instead of lt(). Also fix "ciT" on "<a>x</a>".
-Files: src/search.c
-
-
-*** ../vim-7.1.241/src/search.c Sat Jan 19 15:55:51 2008
---- src/search.c Sat Jan 26 13:56:06 2008
-***************
-*** 3637,3643 ****
- oap->inclusive = FALSE;
- if (sol)
- incl(&curwin->w_cursor);
-! else if (lt(start_pos, curwin->w_cursor))
- /* Include the character under the cursor. */
- oap->inclusive = TRUE;
- else
---- 3637,3643 ----
- oap->inclusive = FALSE;
- if (sol)
- incl(&curwin->w_cursor);
-! else if (ltoreq(start_pos, curwin->w_cursor))
- /* Include the character under the cursor. */
- oap->inclusive = TRUE;
- else
-***************
-*** 3754,3759 ****
---- 3754,3763 ----
- old_pos = curwin->w_cursor;
- old_end = curwin->w_cursor; /* remember where we started */
- old_start = old_end;
-+ #ifdef FEAT_VISUAL
-+ if (!VIsual_active || *p_sel == 'e')
-+ #endif
-+ decl(&old_end); /* old_end is inclusive */
-
- /*
- * If we start on "<aaa>" select that block.
-*** ../vim-7.1.241/src/version.c Tue Jan 22 17:49:17 2008
---- src/version.c Sat Jan 26 21:14:05 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 242,
- /**/
-
---
-DENNIS: Oh, very nice. King, eh! I expect you've got a palace and fine
- clothes and courtiers and plenty of food. And how d'you get that? By
- exploiting the workers! By hanging on to outdated imperialist dogma
- which perpetuates the social and economic differences in our society!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.243
-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.1.243 (after 7.1.240)
-Problem: "U" doesn't work on all text in Visual mode. (Adri Verhoef)
-Solution: Loop over all the lines to be changed. Add tests for this.
-Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
-
-
-*** ../vim-7.1.242/src/ops.c Tue Jan 22 16:01:25 2008
---- src/ops.c Mon Feb 4 22:23:22 2008
-***************
-*** 2197,2203 ****
- #ifdef FEAT_VISUAL
- struct block_def bd;
- #endif
-! int did_change;
-
- if (u_save((linenr_T)(oap->start.lnum - 1),
- (linenr_T)(oap->end.lnum + 1)) == FAIL)
---- 2197,2203 ----
- #ifdef FEAT_VISUAL
- struct block_def bd;
- #endif
-! int did_change = FALSE;
-
- if (u_save((linenr_T)(oap->start.lnum - 1),
- (linenr_T)(oap->end.lnum + 1)) == FAIL)
-***************
-*** 2242,2248 ****
- else if (!oap->inclusive)
- dec(&(oap->end));
-
-! did_change = swapchars(oap->op_type, &pos, oap->end.col - pos.col + 1);
- if (did_change)
- {
- changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1,
---- 2242,2259 ----
- else if (!oap->inclusive)
- dec(&(oap->end));
-
-! if (pos.lnum == oap->end.lnum)
-! did_change = swapchars(oap->op_type, &pos,
-! oap->end.col - pos.col + 1);
-! else
-! for (;;)
-! {
-! did_change |= swapchars(oap->op_type, &pos,
-! pos.lnum == oap->end.lnum ? oap->end.col + 1:
-! (int)STRLEN(ml_get_pos(&pos)));
-! if (ltoreq(oap->end, pos) || inc(&pos) == -1)
-! break;
-! }
- if (did_change)
- {
- changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1,
-***************
-*** 2314,2330 ****
- for (todo = length; todo > 0; --todo)
- {
- # ifdef FEAT_MBYTE
-- int pos_col = pos->col;
--
- if (has_mbyte)
- /* we're counting bytes, not characters */
- todo -= (*mb_ptr2len)(ml_get_pos(pos)) - 1;
- # endif
- did_change |= swapchar(op_type, pos);
-- # ifdef FEAT_MBYTE
-- /* Changing German sharp s to SS increases the column. */
-- todo += pos->col - pos_col;
-- # endif
- if (inc(pos) == -1) /* at end of file */
- break;
- }
---- 2325,2335 ----
-*** ../vim-7.1.242/src/testdir/test39.in Sun Jun 13 18:21:09 2004
---- src/testdir/test39.in Wed Feb 6 13:57:37 2008
-***************
-*** 1,8 ****
---- 1,10 ----
-
- Test Visual block mode commands
-+ And test "U" in Visual mode, also on German sharp S.
-
- STARTTEST
- :so small.vim
-+ :so mbyte.vim
- /^abcde
- :" Test shift-right of a block
- jllll\16jj>wll\16jlll>
-***************
-*** 14,20 ****
- Gllll\16kkklllrq
- :" Test block-change
- G$khhh\16hhkkcmno\e
-! :$-4,$wq! test.out
- ENDTEST
-
- abcdefghijklm
---- 16,37 ----
- Gllll\16kkklllrq
- :" Test block-change
- G$khhh\16hhkkcmno\e
-! :$-4,$w! test.out
-! :" gUe must uppercase a whole word, also when ß changes to SS
-! Gothe youtußeuu end\eYpk0wgUe
-! :" gUfx must uppercase until x, inclusive.
-! O- youßtußexu -\e0fogUfx
-! :" VU must uppercase a whole line
-! YpkVU
-! :" same, when it's the last line in the buffer
-! YPGi111\eVUddP
-! :" Uppercase two lines
-! Oblah di
-! doh dut\eVkUj
-! :" Uppercase part of two lines
-! ddppi333\ek0i222\efyllvjfuUk
-! :/^the/,$w >> test.out
-! :qa!
- ENDTEST
-
- abcdefghijklm
-*** ../vim-7.1.242/src/testdir/test39.ok Sun Jun 13 18:59:28 2004
---- src/testdir/test39.ok Tue Feb 5 22:25:38 2008
-***************
-*** 3,5 ****
---- 3,13 ----
- axyzqqqqef mno ghijklm
- axyzqqqqefgmnoklm
- abcdqqqqijklm
-+ the YOUTUSSEUU end
-+ - yOUSSTUSSEXu -
-+ THE YOUTUSSEUU END
-+ 111THE YOUTUSSEUU END
-+ BLAH DI
-+ DOH DUT
-+ 222the yoUTUSSEUU END
-+ 333THE YOUTUßeuu end
-*** ../vim-7.1.242/src/version.c Sat Jan 26 21:15:00 2008
---- src/version.c Wed Feb 6 14:41:00 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 243,
- /**/
-
---
-It's totally unfair to suggest - as many have - that engineers are socially
-inept. Engineers simply have different objectives when it comes to social
-interaction.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.244
-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.1.244
-Problem: GUI may have part of the command line cut off.
-Solution: Don't round the number of lines up, always round down.
- (Tony Houghton, Scott Dillard)
-Files: src/gui.c
-
-
-*** ../vim-7.1.243/src/gui.c Sat Jan 19 15:55:51 2008
---- src/gui.c Wed Feb 6 16:43:44 2008
-***************
-*** 1294,1304 ****
- out_flush();
-
- gui.num_cols = (pixel_width - gui_get_base_width()) / gui.char_width;
-! gui.num_rows = (pixel_height - gui_get_base_height()
-! #if !defined(FEAT_GUI_PHOTON) && !defined(FEAT_GUI_MSWIN)
-! + (gui.char_height / 2)
-! #endif
-! ) / gui.char_height;
-
- gui_position_components(pixel_width);
-
---- 1294,1300 ----
- out_flush();
-
- gui.num_cols = (pixel_width - gui_get_base_width()) / gui.char_width;
-! gui.num_rows = (pixel_height - gui_get_base_height()) / gui.char_height;
-
- gui_position_components(pixel_width);
-
-*** ../vim-7.1.243/src/version.c Wed Feb 6 14:43:50 2008
---- src/version.c Wed Feb 6 17:32:35 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 244,
- /**/
-
---
-A consultant is a person who takes your money and annoys your employees while
-tirelessly searching for the best way to extend the consulting contract.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.245
-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.1.245
-Problem: Pressing CTRL-\ three times causes Vim to quit. (Ranganath Rao).
- Also for f CTRL-\ CTRL-\.
-Solution: When going to cooked mode in mch_delay() set a flag to ignore
- SIGQUIT.
-Files: src/os_unix.c
-
-
-*** ../vim-7.1.244/src/os_unix.c Sun Jan 13 16:30:23 2008
---- src/os_unix.c Sun Feb 10 22:07:27 2008
-***************
-*** 195,200 ****
---- 195,201 ----
- static int show_shell_mess = TRUE;
- #endif
- static int deadly_signal = 0; /* The signal we caught */
-+ static int in_mch_delay = FALSE; /* sleeping in mch_delay() */
-
- static int curr_tmode = TMODE_COOK; /* contains current terminal mode */
-
-***************
-*** 538,544 ****
- if (ignoreinput)
- {
- /* Go to cooked mode without echo, to allow SIGINT interrupting us
-! * here */
- old_tmode = curr_tmode;
- if (curr_tmode == TMODE_RAW)
- settmode(TMODE_SLEEP);
---- 539,547 ----
- if (ignoreinput)
- {
- /* Go to cooked mode without echo, to allow SIGINT interrupting us
-! * here. But we don't want QUIT to kill us (CTRL-\ used in a
-! * shell may produce SIGQUIT). */
-! in_mch_delay = TRUE;
- old_tmode = curr_tmode;
- if (curr_tmode == TMODE_RAW)
- settmode(TMODE_SLEEP);
-***************
-*** 602,607 ****
---- 605,611 ----
- #endif
-
- settmode(old_tmode);
-+ in_mch_delay = FALSE;
- }
- else
- WaitForChar(msec);
-***************
-*** 922,927 ****
---- 926,939 ----
- #endif
-
- #ifdef SIGHASARG
-+ # ifdef SIGQUIT
-+ /* While in mch_delay() we go to cooked mode to allow a CTRL-C to
-+ * interrupt us. But in cooked mode we may also get SIGQUIT, e.g., when
-+ * pressing CTRL-\, but we don't want Vim to exit then. */
-+ if (in_mch_delay && sigarg == SIGQUIT)
-+ SIGRETURN;
-+ # endif
-+
- /* When SIGHUP, SIGQUIT, etc. are blocked: postpone the effect and return
- * here. This avoids that a non-reentrant function is interrupted, e.g.,
- * free(). Calling free() again may then cause a crash. */
-*** ../vim-7.1.244/src/version.c Wed Feb 6 17:33:19 2008
---- src/version.c Sun Feb 10 22:04:09 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 245,
- /**/
-
---
-Me? A skeptic? I trust you have proof.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.246
-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.1.246
-Problem: Configure hangs when the man pager is something strange. (lorien)
-Solution: Set MANPAGER and PAGER to "cat". (Micah Cowan)
-Files: src/auto/configure, src/configure.in
-
-
-*** ../vim-7.1.245/src/auto/configure Tue Jan 1 16:25:33 2008
---- src/auto/configure Wed Feb 13 10:22:56 2008
-***************
-*** 14259,14265 ****
- echo "$as_me:$LINENO: checking how to run man with a section nr" >&5
- echo $ECHO_N "checking how to run man with a section nr... $ECHO_C" >&6
- MANDEF="man"
-! (eval man -s 2 read) < /dev/null > /dev/null 2>&5 && MANDEF="man -s"
- echo "$as_me:$LINENO: result: $MANDEF" >&5
- echo "${ECHO_T}$MANDEF" >&6
- if test "$MANDEF" = "man -s"; then
---- 14259,14265 ----
- echo "$as_me:$LINENO: checking how to run man with a section nr" >&5
- echo $ECHO_N "checking how to run man with a section nr... $ECHO_C" >&6
- MANDEF="man"
-! (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&5 && MANDEF="man -s"
- echo "$as_me:$LINENO: result: $MANDEF" >&5
- echo "${ECHO_T}$MANDEF" >&6
- if test "$MANDEF" = "man -s"; then
-*** ../vim-7.1.245/src/configure.in Tue Jan 1 16:25:33 2008
---- src/configure.in Fri Jan 25 20:51:51 2008
-***************
-*** 2726,2732 ****
- dnl Check how we can run man with a section number
- AC_MSG_CHECKING(how to run man with a section nr)
- MANDEF="man"
-! (eval man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
- AC_MSG_RESULT($MANDEF)
- if test "$MANDEF" = "man -s"; then
- AC_DEFINE(USEMAN_S)
---- 2726,2732 ----
- dnl Check how we can run man with a section number
- AC_MSG_CHECKING(how to run man with a section nr)
- MANDEF="man"
-! (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
- AC_MSG_RESULT($MANDEF)
- if test "$MANDEF" = "man -s"; then
- AC_DEFINE(USEMAN_S)
-*** ../vim-7.1.245/src/version.c Sun Feb 10 22:25:12 2008
---- src/version.c Wed Feb 13 10:26:47 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 246,
- /**/
-
---
-Anyone who is capable of getting themselves made President should on no
-account be allowed to do the job.
- -- 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.1.247
-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.1.247
-Problem: When using Netbeans backspacing in Insert mode skips a character
- now and then. (Ankit Jain)
-Solution: Avoid calling netbeans_removed(), it frees the line pointer.
- (partly by Dominique Pelle).
-Files: src/misc1.c
-
-
-*** ../vim-7.1.246/src/misc1.c Sat Jan 19 15:55:51 2008
---- src/misc1.c Wed Feb 13 10:56:16 2008
-***************
-*** 2270,2282 ****
- /*
- * If the old line has been allocated the deletion can be done in the
- * existing line. Otherwise a new line has to be allocated
- */
-- was_alloced = ml_line_alloced(); /* check if oldp was allocated */
- #ifdef FEAT_NETBEANS_INTG
-! if (was_alloced && usingNetbeans)
-! netbeans_removed(curbuf, lnum, col, count);
-! /* else is handled by ml_replace() */
- #endif
- if (was_alloced)
- newp = oldp; /* use same allocated memory */
- else
---- 2270,2285 ----
- /*
- * If the old line has been allocated the deletion can be done in the
- * existing line. Otherwise a new line has to be allocated
-+ * Can't do this when using Netbeans, because we would need to invoke
-+ * netbeans_removed(), which deallocates the line. Let ml_replace() take
-+ * care of notifiying Netbeans.
- */
- #ifdef FEAT_NETBEANS_INTG
-! if (usingNetbeans)
-! was_alloced = FALSE;
-! else
- #endif
-+ was_alloced = ml_line_alloced(); /* check if oldp was allocated */
- if (was_alloced)
- newp = oldp; /* use same allocated memory */
- else
-***************
-*** 3978,3984 ****
- /* remove trailing path separator */
- #ifndef MACOS_CLASSIC
- /* With MacOS path (with colons) the final colon is required */
-! /* to avoid confusion between absoulute and relative path */
- if (pend > p && after_pathsep(p, pend))
- --pend;
- #endif
---- 3981,3987 ----
- /* remove trailing path separator */
- #ifndef MACOS_CLASSIC
- /* With MacOS path (with colons) the final colon is required */
-! /* to avoid confusion between absolute and relative path */
- if (pend > p && after_pathsep(p, pend))
- --pend;
- #endif
-***************
-*** 5689,5695 ****
- else if (lookfor_ctor_init || class_or_struct)
- {
- /* we have something found, that looks like the start of
-! * cpp-base-class-declaration or contructor-initialization */
- cpp_base_class = TRUE;
- lookfor_ctor_init = class_or_struct = FALSE;
- *col = 0;
---- 5692,5698 ----
- else if (lookfor_ctor_init || class_or_struct)
- {
- /* we have something found, that looks like the start of
-! * cpp-base-class-declaration or constructor-initialization */
- cpp_base_class = TRUE;
- lookfor_ctor_init = class_or_struct = FALSE;
- *col = 0;
-***************
-*** 6146,6152 ****
- pos_T our_paren_pos;
- char_u *start;
- int start_brace;
-! #define BRACE_IN_COL0 1 /* '{' is in comumn 0 */
- #define BRACE_AT_START 2 /* '{' is at start of line */
- #define BRACE_AT_END 3 /* '{' is at end of line */
- linenr_T ourscope;
---- 6149,6155 ----
- pos_T our_paren_pos;
- char_u *start;
- int start_brace;
-! #define BRACE_IN_COL0 1 /* '{' is in column 0 */
- #define BRACE_AT_START 2 /* '{' is at start of line */
- #define BRACE_AT_END 3 /* '{' is at end of line */
- linenr_T ourscope;
-***************
-*** 6369,6375 ****
- if (curwin->w_cursor.lnum > 1)
- {
- /* If the start comment string matches in the previous
-! * line, use the indent of that line pluss offset. If
- * the middle comment string matches in the previous
- * line, use the indent of that line. XXX */
- look = skipwhite(ml_get(curwin->w_cursor.lnum - 1));
---- 6372,6378 ----
- if (curwin->w_cursor.lnum > 1)
- {
- /* If the start comment string matches in the previous
-! * line, use the indent of that line plus offset. If
- * the middle comment string matches in the previous
- * line, use the indent of that line. XXX */
- look = skipwhite(ml_get(curwin->w_cursor.lnum - 1));
-***************
-*** 8222,8228 ****
-
- if (*that && *that != ';') /* not a comment line */
- {
-! /* test *that != '(' to accomodate first let/do
- * argument if it is more than one line */
- if (!vi_lisp && *that != '(' && *that != '[')
- firsttry++;
---- 8225,8231 ----
-
- if (*that && *that != ';') /* not a comment line */
- {
-! /* test *that != '(' to accommodate first let/do
- * argument if it is more than one line */
- if (!vi_lisp && *that != '(' && *that != '[')
- firsttry++;
-*** ../vim-7.1.246/src/version.c Wed Feb 13 10:27:28 2008
---- src/version.c Wed Feb 13 10:56:42 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 247,
- /**/
-
---
-Far back in the mists of ancient time, in the great and glorious days of the
-former Galactic Empire, life was wild, rich and largely tax free.
-Mighty starships plied their way between exotic suns, seeking adventure and
-reward among the furthest reaches of Galactic space. In those days, spirits
-were brave, the stakes were high, men were real men, women were real women
-and small furry creatures from Alpha Centauri were real small furry creatures
-from Alpha Centauri. And all dared to brave unknown terrors, to do mighty
-deeds, to boldly split infinitives that no man had split before -- and thus
-was the Empire forged.
- -- 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.1.248
-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.1.248
-Problem: Can't set the '" mark. Can't know if setpos() was successful.
-Solution: Allow setting the '" mark with setpos(). Have setpos() return a
- value indicating success/failure.
-Files: runtime/doc/eval.txt, src/eval.c, src/mark.c
-
-
-*** ../vim-7.1.247/runtime/doc/eval.txt Sat Jan 12 16:45:25 2008
---- runtime/doc/eval.txt Wed Feb 13 11:49:16 2008
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 11
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2008 Feb 13
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 4523,4528 ****
---- 4528,4536 ----
- character. E.g., a position within a <Tab> or after the last
- character.
-
-+ Returns 0 when the position could be set, -1 otherwise.
-+ An error message is given if {expr} is invalid.
-+
- Also see |getpos()|
-
- This does not restore the preferred column for moving
-*** ../vim-7.1.247/src/eval.c Tue Jan 22 11:58:41 2008
---- src/eval.c Wed Feb 13 11:54:09 2008
-***************
-*** 14776,14799 ****
- int fnum;
- char_u *name;
-
- name = get_tv_string_chk(argvars);
- if (name != NULL)
- {
- if (list2fpos(&argvars[1], &pos, &fnum) == OK)
- {
- --pos.col;
-! if (name[0] == '.') /* cursor */
- {
- if (fnum == curbuf->b_fnum)
- {
- curwin->w_cursor = pos;
- check_cursor();
- }
- else
- EMSG(_(e_invarg));
- }
-! else if (name[0] == '\'') /* mark */
-! (void)setmark_pos(name[1], &pos, fnum);
- else
- EMSG(_(e_invarg));
- }
---- 14778,14808 ----
- int fnum;
- char_u *name;
-
-+ rettv->vval.v_number = -1;
- name = get_tv_string_chk(argvars);
- if (name != NULL)
- {
- if (list2fpos(&argvars[1], &pos, &fnum) == OK)
- {
- --pos.col;
-! if (name[0] == '.' && name[1] == NUL)
- {
-+ /* set cursor */
- if (fnum == curbuf->b_fnum)
- {
- curwin->w_cursor = pos;
- check_cursor();
-+ rettv->vval.v_number = 0;
- }
- else
- EMSG(_(e_invarg));
- }
-! else if (name[0] == '\'' && name[1] != NUL && name[2] == NUL)
-! {
-! /* set mark */
-! if (setmark_pos(name[1], &pos, fnum) == OK)
-! rettv->vval.v_number = 0;
-! }
- else
- EMSG(_(e_invarg));
- }
-*** ../vim-7.1.247/src/mark.c Thu Jan 3 20:21:34 2008
---- src/mark.c Wed Feb 13 11:42:30 2008
-***************
-*** 79,84 ****
---- 79,90 ----
- return OK;
- }
-
-+ if (c == '"')
-+ {
-+ curbuf->b_last_cursor = *pos;
-+ return OK;
-+ }
-+
- /* Allow setting '[ and '] for an autocommand that simulates reading a
- * file. */
- if (c == '[')
-*** ../vim-7.1.247/src/version.c Wed Feb 13 10:57:11 2008
---- src/version.c Wed Feb 13 12:39:23 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 248,
- /**/
-
---
-"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.1.249
-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.1.249
-Problem: After "U" the cursor can be past end of line. (Adri Verhoef)
-Solution: Adjust the cursor position in u_undoline().
-Files: src/undo.c
-
-
-*** ../vim-7.1.248/src/undo.c Sat Nov 10 22:50:20 2007
---- src/undo.c Wed Feb 13 15:17:54 2008
-***************
-*** 1814,1826 ****
- if (undo_off)
- return;
-
-! if (curbuf->b_u_line_ptr == NULL ||
-! curbuf->b_u_line_lnum > curbuf->b_ml.ml_line_count)
- {
- beep_flush();
- return;
- }
-! /* first save the line for the 'u' command */
- if (u_savecommon(curbuf->b_u_line_lnum - 1,
- curbuf->b_u_line_lnum + 1, (linenr_T)0) == FAIL)
- return;
---- 1814,1827 ----
- if (undo_off)
- return;
-
-! if (curbuf->b_u_line_ptr == NULL
-! || curbuf->b_u_line_lnum > curbuf->b_ml.ml_line_count)
- {
- beep_flush();
- return;
- }
-!
-! /* first save the line for the 'u' command */
- if (u_savecommon(curbuf->b_u_line_lnum - 1,
- curbuf->b_u_line_lnum + 1, (linenr_T)0) == FAIL)
- return;
-***************
-*** 1840,1845 ****
---- 1841,1847 ----
- curbuf->b_u_line_colnr = curwin->w_cursor.col;
- curwin->w_cursor.col = t;
- curwin->w_cursor.lnum = curbuf->b_u_line_lnum;
-+ check_cursor_col();
- }
-
- /*
-*** ../vim-7.1.248/src/version.c Wed Feb 13 12:41:30 2008
---- src/version.c Wed Feb 13 15:20:12 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 249,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-1. At lunch time, sit in your parked car with sunglasses on and point
- a hair dryer at passing cars. See if they slow down.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.250
-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.1.250
-Problem: ":setglobal fenc=anything" gives an error message in a buffer
- where 'modifiable' is off. (Ben Schmidt)
-Solution: Don't give an error if 'modifiable' doesn't matter.
-Files: src/option.c
-
-
-*** ../vim-7.1.249/src/option.c Sat Jan 19 15:55:51 2008
---- src/option.c Wed Feb 13 18:31:39 2008
-***************
-*** 5671,5677 ****
- {
- if (gvarp == &p_fenc)
- {
-! if (!curbuf->b_p_ma)
- errmsg = e_modifiable;
- else if (vim_strchr(*varp, ',') != NULL)
- /* No comma allowed in 'fileencoding'; catches confusing it
---- 5671,5677 ----
- {
- if (gvarp == &p_fenc)
- {
-! if (!curbuf->b_p_ma && opt_flags != OPT_GLOBAL)
- errmsg = e_modifiable;
- else if (vim_strchr(*varp, ',') != NULL)
- /* No comma allowed in 'fileencoding'; catches confusing it
-*** ../vim-7.1.249/src/version.c Wed Feb 13 15:20:59 2008
---- src/version.c Wed Feb 13 18:34:24 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 250,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-3. Every time someone asks you to do something, ask if they want fries
- with that.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.251
-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.1.251
-Problem: Using freed memory when spell checking enabled.
-Solution: Obtain the current line again after calling spell_move_to().
- (Dominique Pelle)
-Files: src/screen.c
-
-
-*** ../vim-7.1.250/src/screen.c Sat Jan 19 15:55:51 2008
---- src/screen.c Wed Feb 13 21:45:38 2008
-***************
-*** 2644,2650 ****
- #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
- #ifdef FEAT_SEARCH_EXTRA
- matchitem_T *cur; /* points to the match list */
---- 2644,2650 ----
- #if defined(FEAT_SIGNS) || (defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)) \
- || defined(FEAT_SYN_HL) || defined(FEAT_DIFF)
- # define LINE_ATTR
-! int line_attr = 0; /* attribute for the whole line */
- #endif
- #ifdef FEAT_SEARCH_EXTRA
- matchitem_T *cur; /* points to the match list */
-***************
-*** 3040,3057 ****
- if (has_spell)
- {
- int len;
- hlf_T spell_hlf = HLF_COUNT;
-
- pos = wp->w_cursor;
- wp->w_cursor.lnum = lnum;
-! wp->w_cursor.col = (colnr_T)(ptr - line);
- len = spell_move_to(wp, FORWARD, TRUE, TRUE, &spell_hlf);
- if (len == 0 || (int)wp->w_cursor.col > ptr - line)
- {
- /* no bad word found at line start, don't check until end of a
- * word */
- spell_hlf = HLF_COUNT;
-! word_end = (int)(spell_to_word_end(ptr, wp->w_buffer) - line + 1);
- }
- else
- {
---- 3040,3064 ----
- if (has_spell)
- {
- int len;
-+ colnr_T linecol = (colnr_T)(ptr - line);
- hlf_T spell_hlf = HLF_COUNT;
-
- pos = wp->w_cursor;
- wp->w_cursor.lnum = lnum;
-! wp->w_cursor.col = linecol;
- len = spell_move_to(wp, FORWARD, TRUE, TRUE, &spell_hlf);
-+
-+ /* spell_move_to() may call ml_get() and make "line" invalid */
-+ line = ml_get_buf(wp->w_buffer, lnum, FALSE);
-+ ptr = line + linecol;
-+
- if (len == 0 || (int)wp->w_cursor.col > ptr - line)
- {
- /* no bad word found at line start, don't check until end of a
- * word */
- spell_hlf = HLF_COUNT;
-! word_end = (int)(spell_to_word_end(ptr, wp->w_buffer)
-! - line + 1);
- }
- else
- {
-*** ../vim-7.1.250/src/version.c Wed Feb 13 18:35:23 2008
---- src/version.c Wed Feb 13 21:48:08 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 251,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-6. In the memo field of all your checks, write "for sexual favors".
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.252
-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.1.252 (after 7.1.243)
-Problem: Test 39 fails when the environment has a utf-8 locale. (Dominique
- Pelle)
-Solution: Force 'encoding' to be latin1.
-Files: src/testdir/test39.in
-
-
-*** ../vim-7.1.251/src/testdir/test39.in Wed Feb 6 14:43:50 2008
---- src/testdir/test39.in Thu Feb 14 22:16:57 2008
-***************
-*** 5,10 ****
---- 5,12 ----
- STARTTEST
- :so small.vim
- :so mbyte.vim
-+ :" This only works when 'encoding' is "latin1", don't depend on the environment
-+ :set enc=latin1
- /^abcde
- :" Test shift-right of a block
- jllll\16jj>wll\16jlll>
-*** ../vim-7.1.251/src/version.c Wed Feb 13 21:48:24 2008
---- src/version.c Thu Feb 14 22:18:11 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 252,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-9. As often as possible, skip rather than walk.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.253
-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.1.253
-Problem: ":sort" doesn't work in a one line file. (Patrick Texier)
-Solution: Don't sort if there is only one line. (Dominique Pelle)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.1.252/src/ex_cmds.c Sat Jan 19 15:55:51 2008
---- src/ex_cmds.c Mon Feb 18 19:38:02 2008
-***************
-*** 365,370 ****
---- 365,374 ----
- int sort_oct; /* sort on octal number */
- int sort_hex; /* sort on hex number */
-
-+ /* Sorting one line is really quick! */
-+ if (count <= 1)
-+ return;
-+
- if (u_save((linenr_T)(eap->line1 - 1), (linenr_T)(eap->line2 + 1)) == FAIL)
- return;
- sortbuf1 = NULL;
-*** ../vim-7.1.252/src/version.c Thu Feb 14 22:19:39 2008
---- src/version.c Mon Feb 18 19:39:24 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 253,
- /**/
-
---
-"You know, it's at times like this when I'm trapped in a Vogon airlock with
-a man from Betelgeuse and about to die of asphyxiation in deep space that I
-really wish I'd listened to what my mother told me when I was young!"
-"Why, what did she tell you?"
-"I don't know, I didn't listen!"
- -- Arthur Dent and 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.1.254
-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.1.254
-Problem: Tests 49 and 55 fail when the locale is French.
-Solution: Using C messages for test 49. Filter the error message in test 55
- such that it works when the number is halfway the message.
-Files: src/testdir/test49.in, src/testdir/test55.in
-
-
-*** ../vim-7.1.253/src/testdir/test49.in Tue Sep 25 17:54:41 2007
---- src/testdir/test49.in Tue Feb 19 21:03:20 2008
-***************
-*** 6,11 ****
---- 6,12 ----
- STARTTEST
- :so small.vim
- :se nocp nomore viminfo+=nviminfo
-+ :lang mess C
- :so test49.vim
- GGGGGGGGGGGGGG"rp:.-,$w! test.out
- :"
-*** ../vim-7.1.253/src/testdir/test55.in Tue Sep 25 17:54:41 2007
---- src/testdir/test55.in Tue Feb 19 21:06:21 2008
-***************
-*** 146,152 ****
- :try
- : let n = d[1500]
- :catch
-! : $put =v:exception[:14] . v:exception[-4:-1]
- :endtry
- :" lookup each items
- :for i in range(1500)
---- 146,152 ----
- :try
- : let n = d[1500]
- :catch
-! : $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')
- :endtry
- :" lookup each items
- :for i in range(1500)
-*** ../vim-7.1.253/src/version.c Mon Feb 18 19:41:40 2008
---- src/version.c Wed Feb 20 10:16:59 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 254,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-34. You laugh at people with 14400 baud modems.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.255
-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.1.255
-Problem: Vim doesn't support utf-32. (Yongwei Wu)
-Solution: Add aliases for utf-32, it's the same as ucs-4.
-Files: src/mbyte.c
-
-
-*** ../vim-7.1.254/src/mbyte.c Sun Jan 6 17:18:16 2008
---- src/mbyte.c Tue Feb 19 20:31:48 2008
-***************
-*** 360,365 ****
---- 360,371 ----
- {"ucs4be", IDX_UCS4},
- {"ucs-4be", IDX_UCS4},
- {"ucs4le", IDX_UCS4LE},
-+ {"utf32", IDX_UCS4},
-+ {"utf-32", IDX_UCS4},
-+ {"utf32be", IDX_UCS4},
-+ {"utf-32be", IDX_UCS4},
-+ {"utf32le", IDX_UCS4LE},
-+ {"utf-32le", IDX_UCS4LE},
- {"932", IDX_CP932},
- {"949", IDX_CP949},
- {"936", IDX_CP936},
-*** ../vim-7.1.254/src/version.c Wed Feb 20 10:57:11 2008
---- src/version.c Wed Feb 20 11:27:00 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 255,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-37. You start looking for hot HTML addresses in public restrooms.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.256
-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.1.256
-Problem: findfile() also returns directories.
-Solution: Cleanup the code for finding files and directories in a list of
- directories. Remove the ugly global ff_search_ctx.
-Files: src/eval.c, src/misc2.c, src/vim.h, src/tag.c
-
-
-*** ../vim-7.1.255/src/eval.c Wed Feb 13 12:41:30 2008
---- src/eval.c Wed Feb 20 11:08:21 2008
-***************
-*** 9203,9215 ****
- rettv->vval.v_number = filewritable(get_tv_string(&argvars[0]));
- }
-
-! static void findfilendir __ARGS((typval_T *argvars, typval_T *rettv, int dir));
-
- static void
-! findfilendir(argvars, rettv, dir)
- typval_T *argvars;
- typval_T *rettv;
-! int dir;
- {
- #ifdef FEAT_SEARCHPATH
- char_u *fname;
---- 9205,9217 ----
- rettv->vval.v_number = filewritable(get_tv_string(&argvars[0]));
- }
-
-! static void findfilendir __ARGS((typval_T *argvars, typval_T *rettv, int find_what));
-
- static void
-! findfilendir(argvars, rettv, find_what)
- typval_T *argvars;
- typval_T *rettv;
-! int find_what;
- {
- #ifdef FEAT_SEARCHPATH
- char_u *fname;
-***************
-*** 9254,9261 ****
- 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;
-
- if (fresult != NULL && rettv->v_type == VAR_LIST)
---- 9256,9266 ----
- vim_free(fresult);
- fresult = find_file_in_path_option(first ? fname : NULL,
- first ? (int)STRLEN(fname) : 0,
-! 0, first, path,
-! find_what,
-! curbuf->b_ffname,
-! find_what == FINDFILE_DIR
-! ? (char_u *)"" : curbuf->b_p_sua);
- first = FALSE;
-
- if (fresult != NULL && rettv->v_type == VAR_LIST)
-***************
-*** 9445,9451 ****
- typval_T *argvars;
- typval_T *rettv;
- {
-! findfilendir(argvars, rettv, TRUE);
- }
-
- /*
---- 9450,9456 ----
- typval_T *argvars;
- typval_T *rettv;
- {
-! findfilendir(argvars, rettv, FINDFILE_DIR);
- }
-
- /*
-***************
-*** 9456,9462 ****
- typval_T *argvars;
- typval_T *rettv;
- {
-! findfilendir(argvars, rettv, FALSE);
- }
-
- /*
---- 9461,9467 ----
- typval_T *argvars;
- typval_T *rettv;
- {
-! findfilendir(argvars, rettv, FINDFILE_FILE);
- }
-
- /*
-*** ../vim-7.1.255/src/misc2.c Fri Jan 4 21:25:01 2008
---- src/misc2.c Wed Feb 13 17:19:21 2008
-***************
-*** 3777,3785 ****
- char_u ffs_filearray_cur; /* needed for partly handled dirs */
-
- /* to store status of partly handled directories
-! * 0: we work the on this directory for the first time
- * 1: this directory was partly searched in an earlier step
-! */
- int ffs_stage;
-
- /* How deep are we in the directory tree?
---- 3778,3786 ----
- char_u ffs_filearray_cur; /* needed for partly handled dirs */
-
- /* to store status of partly handled directories
-! * 0: we work on this directory for the first time
- * 1: this directory was partly searched in an earlier step
-! */
- int ffs_stage;
-
- /* How deep are we in the directory tree?
-***************
-*** 3848,3853 ****
---- 3849,3855 ----
- * Set the default maximum depth.
- */
- #define FF_MAX_STAR_STAR_EXPAND ((char_u)30)
-+
- /*
- * The search context:
- * ffsc_stack_ptr: the stack for the dirs to search
-***************
-*** 3862,3868 ****
- * ffsc_wc_path: the part of the given path containing wildcards
- * ffsc_level: how many levels of dirs to search downwards
- * ffsc_stopdirs_v: array of stop directories for upward search
-! * ffsc_need_dir: TRUE if we search for a directory
- */
- typedef struct ff_search_ctx_T
- {
---- 3864,3870 ----
- * ffsc_wc_path: the part of the given path containing wildcards
- * ffsc_level: how many levels of dirs to search downwards
- * ffsc_stopdirs_v: array of stop directories for upward search
-! * ffsc_find_what: FINDFILE_BOTH, FINDFILE_DIR or FINDFILE_FILE
- */
- typedef struct ff_search_ctx_T
- {
-***************
-*** 3879,3889 ****
- int ffsc_level;
- char_u **ffsc_stopdirs_v;
- #endif
-! int ffsc_need_dir;
- } ff_search_ctx_T;
-
-- static ff_search_ctx_T *ff_search_ctx = NULL;
--
- /* locally needed functions */
- #ifdef FEAT_PATH_EXTRA
- static int ff_check_visited __ARGS((ff_visited_T **, char_u *, char_u *));
---- 3881,3889 ----
- int ffsc_level;
- char_u **ffsc_stopdirs_v;
- #endif
-! int ffsc_find_what;
- } ff_search_ctx_T;
-
- /* locally needed functions */
- #ifdef FEAT_PATH_EXTRA
- static int ff_check_visited __ARGS((ff_visited_T **, char_u *, char_u *));
-***************
-*** 3897,3906 ****
- static int ff_wc_equal __ARGS((char_u *s1, char_u *s2));
- #endif
-
-! static void ff_push __ARGS((ff_stack_T *));
-! static ff_stack_T * ff_pop __ARGS((void));
-! static void ff_clear __ARGS((void));
-! static void ff_free_stack_element __ARGS((ff_stack_T *));
- #ifdef FEAT_PATH_EXTRA
- static ff_stack_T *ff_create_stack_element __ARGS((char_u *, char_u *, int, int));
- #else
---- 3897,3906 ----
- static int ff_wc_equal __ARGS((char_u *s1, char_u *s2));
- #endif
-
-! static void ff_push __ARGS((ff_search_ctx_T *search_ctx, ff_stack_T *stack_ptr));
-! static ff_stack_T *ff_pop __ARGS((ff_search_ctx_T *search_ctx));
-! static void ff_clear __ARGS((ff_search_ctx_T *search_ctx));
-! static void ff_free_stack_element __ARGS((ff_stack_T *stack_ptr));
- #ifdef FEAT_PATH_EXTRA
- static ff_stack_T *ff_create_stack_element __ARGS((char_u *, char_u *, int, int));
- #else
-***************
-*** 3961,3966 ****
---- 3961,3969 ----
- * not related to restricts given to the '**' wildcard. If 'level' is 100
- * and you use '**200' vim_findfile() will stop after 100 levels.
- *
-+ * 'filename' cannot contain wildcards! It is used as-is, no backslashes to
-+ * escape special characters.
-+ *
- * If 'stopdirs' is not NULL and nothing is found downward, the search is
- * restarted on the next higher directory level. This is repeated until the
- * start-directory of a search is contained in 'stopdirs'. 'stopdirs' has the
-***************
-*** 3980,4053 ****
- * The list of visited files/dirs can also be cleared with the function
- * vim_findfile_free_visited().
- *
-! * Set the parameter 'need_dir' to TRUE if you want to search for a directory
-! * instead of a file.
- *
- * A search context returned by a previous call to vim_findfile_init() can be
-! * passed in the parameter 'search_ctx'. This context is than reused and
-! * reinitialized with the new parameters. The list of already viseted
- * directories from this context is only deleted if the parameter
-! * 'free_visited' is true. Be aware that the passed search_context is freed if
-! * the reinitialization fails.
- *
-! * If you don't have a search context from a previous call 'search_ctx' must be
-! * NULL.
- *
- * This function silently ignores a few errors, vim_findfile() will have
- * limited functionality then.
- */
- /*ARGSUSED*/
- void *
-! vim_findfile_init(path, filename, stopdirs, level, free_visited, need_dir,
-! search_ctx, tagfile, rel_fname)
- char_u *path;
- char_u *filename;
- char_u *stopdirs;
- int level;
- int free_visited;
-! int need_dir;
-! void *search_ctx;
- int tagfile;
- char_u *rel_fname; /* file name to use for "." */
- {
- #ifdef FEAT_PATH_EXTRA
-! char_u *wc_part;
- #endif
-! ff_stack_T *sptr;
-
- /* If a search context is given by the caller, reuse it, else allocate a
- * new one.
- */
-! if (search_ctx != NULL)
-! ff_search_ctx = search_ctx;
- else
- {
-! ff_search_ctx = (ff_search_ctx_T*)alloc(
-! (unsigned)sizeof(ff_search_ctx_T));
-! if (ff_search_ctx == NULL)
- goto error_return;
-! memset(ff_search_ctx, 0, sizeof(ff_search_ctx_T));
- }
-
- /* clear the search context, but NOT the visited lists */
-! ff_clear();
-
- /* clear visited list if wanted */
- if (free_visited == TRUE)
-! vim_findfile_free_visited(ff_search_ctx);
- else
- {
- /* Reuse old visited lists. Get the visited list for the given
- * filename. If no list for the current filename exists, creates a new
-! * one.
-! */
-! ff_search_ctx->ffsc_visited_list = ff_get_visited_list(filename,
-! &ff_search_ctx->ffsc_visited_lists_list);
-! if (ff_search_ctx->ffsc_visited_list == NULL)
- goto error_return;
-! ff_search_ctx->ffsc_dir_visited_list = ff_get_visited_list(filename,
-! &ff_search_ctx->ffsc_dir_visited_lists_list);
-! if (ff_search_ctx->ffsc_dir_visited_list == NULL)
- goto error_return;
- }
-
---- 3983,4056 ----
- * The list of visited files/dirs can also be cleared with the function
- * vim_findfile_free_visited().
- *
-! * Set the parameter 'find_what' to FINDFILE_DIR if you want to search for
-! * directories only, FINDFILE_FILE for files only, FINDFILE_BOTH for both.
- *
- * A search context returned by a previous call to vim_findfile_init() can be
-! * passed in the parameter "search_ctx_arg". This context is reused and
-! * reinitialized with the new parameters. The list of already visited
- * directories from this context is only deleted if the parameter
-! * "free_visited" is true. Be aware that the passed "search_ctx_arg" is freed
-! * if the reinitialization fails.
- *
-! * If you don't have a search context from a previous call "search_ctx_arg"
-! * must be NULL.
- *
- * This function silently ignores a few errors, vim_findfile() will have
- * limited functionality then.
- */
- /*ARGSUSED*/
- void *
-! vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what,
-! search_ctx_arg, tagfile, rel_fname)
- char_u *path;
- char_u *filename;
- char_u *stopdirs;
- int level;
- int free_visited;
-! int find_what;
-! void *search_ctx_arg;
- int tagfile;
- char_u *rel_fname; /* file name to use for "." */
- {
- #ifdef FEAT_PATH_EXTRA
-! char_u *wc_part;
- #endif
-! ff_stack_T *sptr;
-! ff_search_ctx_T *search_ctx;
-
- /* If a search context is given by the caller, reuse it, else allocate a
- * new one.
- */
-! if (search_ctx_arg != NULL)
-! search_ctx = search_ctx_arg;
- else
- {
-! search_ctx = (ff_search_ctx_T*)alloc((unsigned)sizeof(ff_search_ctx_T));
-! if (search_ctx == NULL)
- goto error_return;
-! memset(search_ctx, 0, sizeof(ff_search_ctx_T));
- }
-+ search_ctx->ffsc_find_what = find_what;
-
- /* clear the search context, but NOT the visited lists */
-! ff_clear(search_ctx);
-
- /* clear visited list if wanted */
- if (free_visited == TRUE)
-! vim_findfile_free_visited(search_ctx);
- else
- {
- /* Reuse old visited lists. Get the visited list for the given
- * filename. If no list for the current filename exists, creates a new
-! * one. */
-! search_ctx->ffsc_visited_list = ff_get_visited_list(filename,
-! &search_ctx->ffsc_visited_lists_list);
-! if (search_ctx->ffsc_visited_list == NULL)
- goto error_return;
-! search_ctx->ffsc_dir_visited_list = ff_get_visited_list(filename,
-! &search_ctx->ffsc_dir_visited_lists_list);
-! if (search_ctx->ffsc_dir_visited_list == NULL)
- goto error_return;
- }
-
-***************
-*** 4071,4082 ****
- {
- /* Make the start dir an absolute path name. */
- vim_strncpy(ff_expand_buffer, rel_fname, len);
-! ff_search_ctx->ffsc_start_dir = FullName_save(ff_expand_buffer,
-! FALSE);
- }
- else
-! ff_search_ctx->ffsc_start_dir = vim_strnsave(rel_fname, len);
-! if (ff_search_ctx->ffsc_start_dir == NULL)
- goto error_return;
- if (*++path != NUL)
- ++path;
---- 4074,4084 ----
- {
- /* Make the start dir an absolute path name. */
- vim_strncpy(ff_expand_buffer, rel_fname, len);
-! search_ctx->ffsc_start_dir = FullName_save(ff_expand_buffer, FALSE);
- }
- else
-! search_ctx->ffsc_start_dir = vim_strnsave(rel_fname, len);
-! if (search_ctx->ffsc_start_dir == NULL)
- goto error_return;
- if (*++path != NUL)
- ++path;
-***************
-*** 4101,4108 ****
- if (mch_dirname(ff_expand_buffer, MAXPATHL) == FAIL)
- goto error_return;
-
-! ff_search_ctx->ffsc_start_dir = vim_strsave(ff_expand_buffer);
-! if (ff_search_ctx->ffsc_start_dir == NULL)
- goto error_return;
-
- #ifdef BACKSLASH_IN_FILENAME
---- 4103,4110 ----
- if (mch_dirname(ff_expand_buffer, MAXPATHL) == FAIL)
- goto error_return;
-
-! search_ctx->ffsc_start_dir = vim_strsave(ff_expand_buffer);
-! if (search_ctx->ffsc_start_dir == NULL)
- goto error_return;
-
- #ifdef BACKSLASH_IN_FILENAME
-***************
-*** 4110,4117 ****
- * directory (but not for "//machine/dir"). Only use the drive name. */
- if ((*path == '/' || *path == '\\')
- && path[1] != path[0]
-! && ff_search_ctx->ffsc_start_dir[1] == ':')
-! ff_search_ctx->ffsc_start_dir[2] = NUL;
- #endif
- }
-
---- 4112,4119 ----
- * directory (but not for "//machine/dir"). Only use the drive name. */
- if ((*path == '/' || *path == '\\')
- && path[1] != path[0]
-! && search_ctx->ffsc_start_dir[1] == ':')
-! search_ctx->ffsc_start_dir[2] = NUL;
- #endif
- }
-
-***************
-*** 4121,4127 ****
- * If this fails (mem allocation), there is no upward search at all or a
- * stop directory is not recognized -> continue silently.
- * If stopdirs just contains a ";" or is empty,
-! * ff_search_ctx->ffsc_stopdirs_v will only contain a NULL pointer. This
- * is handled as unlimited upward search. See function
- * ff_path_in_stoplist() for details.
- */
---- 4123,4129 ----
- * If this fails (mem allocation), there is no upward search at all or a
- * stop directory is not recognized -> continue silently.
- * If stopdirs just contains a ";" or is empty,
-! * search_ctx->ffsc_stopdirs_v will only contain a NULL pointer. This
- * is handled as unlimited upward search. See function
- * ff_path_in_stoplist() for details.
- */
-***************
-*** 4134,4143 ****
- walker++;
-
- dircount = 1;
-! ff_search_ctx->ffsc_stopdirs_v =
-! (char_u **)alloc((unsigned)sizeof(char_u *));
-
-! if (ff_search_ctx->ffsc_stopdirs_v != NULL)
- {
- do
- {
---- 4136,4145 ----
- walker++;
-
- dircount = 1;
-! search_ctx->ffsc_stopdirs_v =
-! (char_u **)alloc((unsigned)sizeof(char_u *));
-
-! if (search_ctx->ffsc_stopdirs_v != NULL)
- {
- do
- {
-***************
-*** 4145,4181 ****
- void *ptr;
-
- helper = walker;
-! ptr = vim_realloc(ff_search_ctx->ffsc_stopdirs_v,
- (dircount + 1) * sizeof(char_u *));
- if (ptr)
-! ff_search_ctx->ffsc_stopdirs_v = ptr;
- else
- /* ignore, keep what we have and continue */
- break;
- walker = vim_strchr(walker, ';');
- if (walker)
- {
-! ff_search_ctx->ffsc_stopdirs_v[dircount-1] =
-! vim_strnsave(helper, (int)(walker - helper));
- walker++;
- }
- else
- /* this might be "", which means ascent till top
- * of directory tree.
- */
-! ff_search_ctx->ffsc_stopdirs_v[dircount-1] =
-! vim_strsave(helper);
-
- dircount++;
-
- } while (walker != NULL);
-! ff_search_ctx->ffsc_stopdirs_v[dircount-1] = NULL;
- }
- }
- #endif
-
- #ifdef FEAT_PATH_EXTRA
-! ff_search_ctx->ffsc_level = level;
-
- /* split into:
- * -fix path
---- 4147,4183 ----
- void *ptr;
-
- helper = walker;
-! ptr = vim_realloc(search_ctx->ffsc_stopdirs_v,
- (dircount + 1) * sizeof(char_u *));
- if (ptr)
-! search_ctx->ffsc_stopdirs_v = ptr;
- else
- /* ignore, keep what we have and continue */
- break;
- walker = vim_strchr(walker, ';');
- if (walker)
- {
-! search_ctx->ffsc_stopdirs_v[dircount-1] =
-! vim_strnsave(helper, (int)(walker - helper));
- walker++;
- }
- else
- /* this might be "", which means ascent till top
- * of directory tree.
- */
-! search_ctx->ffsc_stopdirs_v[dircount-1] =
-! vim_strsave(helper);
-
- dircount++;
-
- } while (walker != NULL);
-! search_ctx->ffsc_stopdirs_v[dircount-1] = NULL;
- }
- }
- #endif
-
- #ifdef FEAT_PATH_EXTRA
-! search_ctx->ffsc_level = level;
-
- /* split into:
- * -fix path
-***************
-*** 4189,4196 ****
- char *errpt;
-
- /* save the fix part of the path */
-! ff_search_ctx->ffsc_fix_path = vim_strnsave(path,
-! (int)(wc_part - path));
-
- /*
- * copy wc_path and add restricts to the '**' wildcard.
---- 4191,4197 ----
- char *errpt;
-
- /* save the fix part of the path */
-! search_ctx->ffsc_fix_path = vim_strnsave(path, (int)(wc_part - path));
-
- /*
- * copy wc_path and add restricts to the '**' wildcard.
-***************
-*** 4229,4275 ****
- ff_expand_buffer[len++] = *wc_part++;
- }
- ff_expand_buffer[len] = NUL;
-! ff_search_ctx->ffsc_wc_path = vim_strsave(ff_expand_buffer);
-
-! if (ff_search_ctx->ffsc_wc_path == NULL)
- goto error_return;
- }
- else
- #endif
-! ff_search_ctx->ffsc_fix_path = vim_strsave(path);
-
-! if (ff_search_ctx->ffsc_start_dir == NULL)
- {
- /* store the fix part as startdir.
- * This is needed if the parameter path is fully qualified.
- */
-! ff_search_ctx->ffsc_start_dir = vim_strsave(ff_search_ctx->ffsc_fix_path);
-! if (ff_search_ctx->ffsc_start_dir)
-! ff_search_ctx->ffsc_fix_path[0] = NUL;
- }
-
- /* create an absolute path */
-! STRCPY(ff_expand_buffer, ff_search_ctx->ffsc_start_dir);
- add_pathsep(ff_expand_buffer);
-! STRCAT(ff_expand_buffer, ff_search_ctx->ffsc_fix_path);
- add_pathsep(ff_expand_buffer);
-
- sptr = ff_create_stack_element(ff_expand_buffer,
- #ifdef FEAT_PATH_EXTRA
-! ff_search_ctx->ffsc_wc_path,
- #endif
- level, 0);
-
- if (sptr == NULL)
- goto error_return;
-
-! ff_push(sptr);
-
-! ff_search_ctx->ffsc_file_to_search = vim_strsave(filename);
-! if (ff_search_ctx->ffsc_file_to_search == NULL)
- goto error_return;
-
-! return ff_search_ctx;
-
- error_return:
- /*
---- 4230,4276 ----
- ff_expand_buffer[len++] = *wc_part++;
- }
- ff_expand_buffer[len] = NUL;
-! search_ctx->ffsc_wc_path = vim_strsave(ff_expand_buffer);
-
-! if (search_ctx->ffsc_wc_path == NULL)
- goto error_return;
- }
- else
- #endif
-! search_ctx->ffsc_fix_path = vim_strsave(path);
-
-! if (search_ctx->ffsc_start_dir == NULL)
- {
- /* store the fix part as startdir.
- * This is needed if the parameter path is fully qualified.
- */
-! search_ctx->ffsc_start_dir = vim_strsave(search_ctx->ffsc_fix_path);
-! if (search_ctx->ffsc_start_dir)
-! search_ctx->ffsc_fix_path[0] = NUL;
- }
-
- /* create an absolute path */
-! STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
- add_pathsep(ff_expand_buffer);
-! STRCAT(ff_expand_buffer, search_ctx->ffsc_fix_path);
- add_pathsep(ff_expand_buffer);
-
- sptr = ff_create_stack_element(ff_expand_buffer,
- #ifdef FEAT_PATH_EXTRA
-! search_ctx->ffsc_wc_path,
- #endif
- level, 0);
-
- if (sptr == NULL)
- goto error_return;
-
-! ff_push(search_ctx, sptr);
-
-! search_ctx->ffsc_file_to_search = vim_strsave(filename);
-! if (search_ctx->ffsc_file_to_search == NULL)
- goto error_return;
-
-! return search_ctx;
-
- error_return:
- /*
-***************
-*** 4277,4283 ****
- * Even when the caller gave us a (perhaps valid) context we free it here,
- * as we might have already destroyed it.
- */
-! vim_findfile_cleanup(ff_search_ctx);
- return NULL;
- }
-
---- 4278,4284 ----
- * Even when the caller gave us a (perhaps valid) context we free it here,
- * as we might have already destroyed it.
- */
-! vim_findfile_cleanup(search_ctx);
- return NULL;
- }
-
-***************
-*** 4314,4320 ****
- }
- #endif
-
-! /* Clean up the given search context. Can handle a NULL pointer */
- void
- vim_findfile_cleanup(ctx)
- void *ctx;
---- 4315,4323 ----
- }
- #endif
-
-! /*
-! * Clean up the given search context. Can handle a NULL pointer.
-! */
- void
- vim_findfile_cleanup(ctx)
- void *ctx;
-***************
-*** 4322,4333 ****
- if (ctx == NULL)
- return;
-
-- ff_search_ctx = ctx;
--
- vim_findfile_free_visited(ctx);
-! ff_clear();
- vim_free(ctx);
-- ff_search_ctx = NULL;
- }
-
- /*
---- 4325,4333 ----
- if (ctx == NULL)
- return;
-
- vim_findfile_free_visited(ctx);
-! ff_clear(ctx);
- vim_free(ctx);
- }
-
- /*
-***************
-*** 4343,4357 ****
- * top of the list).
- */
- char_u *
-! vim_findfile(search_ctx)
-! void *search_ctx;
- {
- char_u *file_path;
- #ifdef FEAT_PATH_EXTRA
- char_u *rest_of_wildcards;
- char_u *path_end = NULL;
- #endif
-! ff_stack_T *ctx;
- #if defined(FEAT_SEARCHPATH) || defined(FEAT_PATH_EXTRA)
- int len;
- #endif
---- 4343,4357 ----
- * top of the list).
- */
- char_u *
-! vim_findfile(search_ctx_arg)
-! void *search_ctx_arg;
- {
- char_u *file_path;
- #ifdef FEAT_PATH_EXTRA
- char_u *rest_of_wildcards;
- char_u *path_end = NULL;
- #endif
-! ff_stack_T *stackp;
- #if defined(FEAT_SEARCHPATH) || defined(FEAT_PATH_EXTRA)
- int len;
- #endif
-***************
-*** 4360,4370 ****
- #ifdef FEAT_SEARCHPATH
- char_u *suf;
- #endif
-
-! if (search_ctx == NULL)
- return NULL;
-
-! ff_search_ctx = (ff_search_ctx_T*)search_ctx;
-
- /*
- * filepath is used as buffer for various actions and as the storage to
---- 4360,4371 ----
- #ifdef FEAT_SEARCHPATH
- char_u *suf;
- #endif
-+ ff_search_ctx_T *search_ctx;
-
-! if (search_ctx_arg == NULL)
- return NULL;
-
-! search_ctx = (ff_search_ctx_T *)search_ctx_arg;
-
- /*
- * filepath is used as buffer for various actions and as the storage to
-***************
-*** 4375,4382 ****
-
- #ifdef FEAT_PATH_EXTRA
- /* store the end of the start dir -- needed for upward search */
-! if (ff_search_ctx->ffsc_start_dir != NULL)
-! path_end = &ff_search_ctx->ffsc_start_dir[STRLEN(ff_search_ctx->ffsc_start_dir)];
- #endif
-
- #ifdef FEAT_PATH_EXTRA
---- 4376,4384 ----
-
- #ifdef FEAT_PATH_EXTRA
- /* store the end of the start dir -- needed for upward search */
-! if (search_ctx->ffsc_start_dir != NULL)
-! path_end = &search_ctx->ffsc_start_dir[
-! STRLEN(search_ctx->ffsc_start_dir)];
- #endif
-
- #ifdef FEAT_PATH_EXTRA
-***************
-*** 4393,4400 ****
- break;
-
- /* get directory to work on from stack */
-! ctx = ff_pop();
-! if (ctx == NULL)
- break;
-
- /*
---- 4395,4402 ----
- break;
-
- /* get directory to work on from stack */
-! stackp = ff_pop(search_ctx);
-! if (stackp == NULL)
- break;
-
- /*
-***************
-*** 4414,4427 ****
- * /etc/rc.d/init.d is linked to /etc/rc.d -> endless loop)
- *
- * This check is only needed for directories we work on for the
-! * first time (hence ctx->ff_filearray == NULL)
- */
-! if (ctx->ffs_filearray == NULL
-! && ff_check_visited(&ff_search_ctx->ffsc_dir_visited_list
- ->ffvl_visited_list,
-! ctx->ffs_fix_path
- #ifdef FEAT_PATH_EXTRA
-! , ctx->ffs_wc_path
- #endif
- ) == FAIL)
- {
---- 4416,4429 ----
- * /etc/rc.d/init.d is linked to /etc/rc.d -> endless loop)
- *
- * This check is only needed for directories we work on for the
-! * first time (hence stackp->ff_filearray == NULL)
- */
-! if (stackp->ffs_filearray == NULL
-! && ff_check_visited(&search_ctx->ffsc_dir_visited_list
- ->ffvl_visited_list,
-! stackp->ffs_fix_path
- #ifdef FEAT_PATH_EXTRA
-! , stackp->ffs_wc_path
- #endif
- ) == FAIL)
- {
-***************
-*** 4430,4442 ****
- {
- verbose_enter_scroll();
- smsg((char_u *)"Already Searched: %s (%s)",
-! ctx->ffs_fix_path, ctx->ffs_wc_path);
- /* don't overwrite this either */
- msg_puts((char_u *)"\n");
- verbose_leave_scroll();
- }
- #endif
-! ff_free_stack_element(ctx);
- continue;
- }
- #ifdef FF_VERBOSE
---- 4432,4444 ----
- {
- verbose_enter_scroll();
- smsg((char_u *)"Already Searched: %s (%s)",
-! stackp->ffs_fix_path, stackp->ffs_wc_path);
- /* don't overwrite this either */
- msg_puts((char_u *)"\n");
- verbose_leave_scroll();
- }
- #endif
-! ff_free_stack_element(stackp);
- continue;
- }
- #ifdef FF_VERBOSE
-***************
-*** 4444,4450 ****
- {
- verbose_enter_scroll();
- smsg((char_u *)"Searching: %s (%s)",
-! ctx->ffs_fix_path, ctx->ffs_wc_path);
- /* don't overwrite this either */
- msg_puts((char_u *)"\n");
- verbose_leave_scroll();
---- 4446,4452 ----
- {
- verbose_enter_scroll();
- smsg((char_u *)"Searching: %s (%s)",
-! stackp->ffs_fix_path, stackp->ffs_wc_path);
- /* don't overwrite this either */
- msg_puts((char_u *)"\n");
- verbose_leave_scroll();
-***************
-*** 4452,4460 ****
- #endif
-
- /* check depth */
-! if (ctx->ffs_level <= 0)
- {
-! ff_free_stack_element(ctx);
- continue;
- }
-
---- 4454,4462 ----
- #endif
-
- /* check depth */
-! if (stackp->ffs_level <= 0)
- {
-! ff_free_stack_element(stackp);
- continue;
- }
-
-***************
-*** 4466,4472 ****
- * and all possible expands are returned in one array. We use this
- * to handle the expansion of '**' into an empty string.
- */
-! if (ctx->ffs_filearray == NULL)
- {
- char_u *dirptrs[2];
-
---- 4468,4474 ----
- * and all possible expands are returned in one array. We use this
- * to handle the expansion of '**' into an empty string.
- */
-! if (stackp->ffs_filearray == NULL)
- {
- char_u *dirptrs[2];
-
-***************
-*** 4477,4495 ****
- dirptrs[1] = NULL;
-
- /* if we have a start dir copy it in */
-! if (!vim_isAbsName(ctx->ffs_fix_path)
-! && ff_search_ctx->ffsc_start_dir)
- {
-! STRCPY(file_path, ff_search_ctx->ffsc_start_dir);
- add_pathsep(file_path);
- }
-
- /* append the fix part of the search path */
-! STRCAT(file_path, ctx->ffs_fix_path);
- add_pathsep(file_path);
-
- #ifdef FEAT_PATH_EXTRA
-! rest_of_wildcards = ctx->ffs_wc_path;
- if (*rest_of_wildcards != NUL)
- {
- len = (int)STRLEN(file_path);
---- 4479,4497 ----
- dirptrs[1] = NULL;
-
- /* if we have a start dir copy it in */
-! if (!vim_isAbsName(stackp->ffs_fix_path)
-! && search_ctx->ffsc_start_dir)
- {
-! STRCPY(file_path, search_ctx->ffsc_start_dir);
- add_pathsep(file_path);
- }
-
- /* append the fix part of the search path */
-! STRCAT(file_path, stackp->ffs_fix_path);
- add_pathsep(file_path);
-
- #ifdef FEAT_PATH_EXTRA
-! rest_of_wildcards = stackp->ffs_wc_path;
- if (*rest_of_wildcards != NUL)
- {
- len = (int)STRLEN(file_path);
-***************
-*** 4516,4526 ****
- else
- rest_of_wildcards += 3;
-
-! if (ctx->ffs_star_star_empty == 0)
- {
- /* if not done before, expand '**' to empty */
-! ctx->ffs_star_star_empty = 1;
-! dirptrs[1] = ctx->ffs_fix_path;
- }
- }
-
---- 4518,4528 ----
- else
- rest_of_wildcards += 3;
-
-! if (stackp->ffs_star_star_empty == 0)
- {
- /* if not done before, expand '**' to empty */
-! stackp->ffs_star_star_empty = 1;
-! dirptrs[1] = stackp->ffs_fix_path;
- }
- }
-
-***************
-*** 4547,4576 ****
- */
- if (path_with_url(dirptrs[0]))
- {
-! ctx->ffs_filearray = (char_u **)
- alloc((unsigned)sizeof(char *));
-! if (ctx->ffs_filearray != NULL
-! && (ctx->ffs_filearray[0]
- = vim_strsave(dirptrs[0])) != NULL)
-! ctx->ffs_filearray_size = 1;
- else
-! ctx->ffs_filearray_size = 0;
- }
- else
- expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
-! &ctx->ffs_filearray_size,
-! &ctx->ffs_filearray,
- EW_DIR|EW_ADDSLASH|EW_SILENT);
-
-! ctx->ffs_filearray_cur = 0;
-! ctx->ffs_stage = 0;
- }
- #ifdef FEAT_PATH_EXTRA
- else
-! rest_of_wildcards = &ctx->ffs_wc_path[STRLEN(ctx->ffs_wc_path)];
- #endif
-
-! if (ctx->ffs_stage == 0)
- {
- /* this is the first time we work on this directory */
- #ifdef FEAT_PATH_EXTRA
---- 4549,4579 ----
- */
- if (path_with_url(dirptrs[0]))
- {
-! stackp->ffs_filearray = (char_u **)
- alloc((unsigned)sizeof(char *));
-! if (stackp->ffs_filearray != NULL
-! && (stackp->ffs_filearray[0]
- = vim_strsave(dirptrs[0])) != NULL)
-! stackp->ffs_filearray_size = 1;
- else
-! stackp->ffs_filearray_size = 0;
- }
- else
- expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
-! &stackp->ffs_filearray_size,
-! &stackp->ffs_filearray,
- EW_DIR|EW_ADDSLASH|EW_SILENT);
-
-! stackp->ffs_filearray_cur = 0;
-! stackp->ffs_stage = 0;
- }
- #ifdef FEAT_PATH_EXTRA
- else
-! rest_of_wildcards = &stackp->ffs_wc_path[
-! STRLEN(stackp->ffs_wc_path)];
- #endif
-
-! if (stackp->ffs_stage == 0)
- {
- /* this is the first time we work on this directory */
- #ifdef FEAT_PATH_EXTRA
-***************
-*** 4581,4598 ****
- * we don't have further wildcards to expand, so we have to
- * check for the final file now
- */
-! for (i = ctx->ffs_filearray_cur;
-! i < ctx->ffs_filearray_size; ++i)
- {
-! if (!path_with_url(ctx->ffs_filearray[i])
-! && !mch_isdir(ctx->ffs_filearray[i]))
- continue; /* not a directory */
-
- /* prepare the filename to be checked for existance
- * below */
-! STRCPY(file_path, ctx->ffs_filearray[i]);
- add_pathsep(file_path);
-! STRCAT(file_path, ff_search_ctx->ffsc_file_to_search);
-
- /*
- * Try without extra suffix and then with suffixes
---- 4584,4601 ----
- * we don't have further wildcards to expand, so we have to
- * check for the final file now
- */
-! for (i = stackp->ffs_filearray_cur;
-! i < stackp->ffs_filearray_size; ++i)
- {
-! if (!path_with_url(stackp->ffs_filearray[i])
-! && !mch_isdir(stackp->ffs_filearray[i]))
- continue; /* not a directory */
-
- /* prepare the filename to be checked for existance
- * below */
-! STRCPY(file_path, stackp->ffs_filearray[i]);
- add_pathsep(file_path);
-! STRCAT(file_path, search_ctx->ffsc_file_to_search);
-
- /*
- * Try without extra suffix and then with suffixes
-***************
-*** 4606,4617 ****
- {
- /* if file exists and we didn't already find it */
- if ((path_with_url(file_path)
-! || (mch_getperm(file_path) >= 0
-! && (!ff_search_ctx->ffsc_need_dir
-! || mch_isdir(file_path))))
- #ifndef FF_VERBOSE
- && (ff_check_visited(
-! &ff_search_ctx->ffsc_visited_list->ffvl_visited_list,
- file_path
- #ifdef FEAT_PATH_EXTRA
- , (char_u *)""
---- 4609,4623 ----
- {
- /* if file exists and we didn't already find it */
- if ((path_with_url(file_path)
-! || (mch_getperm(file_path) >= 0
-! && (search_ctx->ffsc_find_what
-! == FINDFILE_BOTH
-! || ((search_ctx->ffsc_find_what
-! == FINDFILE_DIR)
-! == mch_isdir(file_path)))))
- #ifndef FF_VERBOSE
- && (ff_check_visited(
-! &search_ctx->ffsc_visited_list->ffvl_visited_list,
- file_path
- #ifdef FEAT_PATH_EXTRA
- , (char_u *)""
-***************
-*** 4622,4628 ****
- {
- #ifdef FF_VERBOSE
- if (ff_check_visited(
-! &ff_search_ctx->ffsc_visited_list->ffvl_visited_list,
- file_path
- #ifdef FEAT_PATH_EXTRA
- , (char_u *)""
---- 4628,4634 ----
- {
- #ifdef FF_VERBOSE
- if (ff_check_visited(
-! &search_ctx->ffsc_visited_list->ffvl_visited_list,
- file_path
- #ifdef FEAT_PATH_EXTRA
- , (char_u *)""
-***************
-*** 4643,4650 ****
- #endif
-
- /* push dir to examine rest of subdirs later */
-! ctx->ffs_filearray_cur = i + 1;
-! ff_push(ctx);
-
- simplify_filename(file_path);
- if (mch_dirname(ff_expand_buffer, MAXPATHL)
---- 4649,4656 ----
- #endif
-
- /* push dir to examine rest of subdirs later */
-! stackp->ffs_filearray_cur = i + 1;
-! ff_push(search_ctx, stackp);
-
- simplify_filename(file_path);
- if (mch_dirname(ff_expand_buffer, MAXPATHL)
-***************
-*** 4686,4704 ****
- * still wildcards left, push the directories for further
- * search
- */
-! for (i = ctx->ffs_filearray_cur;
-! i < ctx->ffs_filearray_size; ++i)
- {
-! if (!mch_isdir(ctx->ffs_filearray[i]))
- continue; /* not a directory */
-
-! ff_push(ff_create_stack_element(ctx->ffs_filearray[i],
-! rest_of_wildcards, ctx->ffs_level - 1, 0));
- }
- }
- #endif
-! ctx->ffs_filearray_cur = 0;
-! ctx->ffs_stage = 1;
- }
-
- #ifdef FEAT_PATH_EXTRA
---- 4692,4713 ----
- * still wildcards left, push the directories for further
- * search
- */
-! for (i = stackp->ffs_filearray_cur;
-! i < stackp->ffs_filearray_size; ++i)
- {
-! if (!mch_isdir(stackp->ffs_filearray[i]))
- continue; /* not a directory */
-
-! ff_push(search_ctx,
-! ff_create_stack_element(
-! stackp->ffs_filearray[i],
-! rest_of_wildcards,
-! stackp->ffs_level - 1, 0));
- }
- }
- #endif
-! stackp->ffs_filearray_cur = 0;
-! stackp->ffs_stage = 1;
- }
-
- #ifdef FEAT_PATH_EXTRA
-***************
-*** 4706,4728 ****
- * if wildcards contains '**' we have to descent till we reach the
- * leaves of the directory tree.
- */
-! if (STRNCMP(ctx->ffs_wc_path, "**", 2) == 0)
- {
-! for (i = ctx->ffs_filearray_cur;
-! i < ctx->ffs_filearray_size; ++i)
- {
-! if (fnamecmp(ctx->ffs_filearray[i], ctx->ffs_fix_path) == 0)
- continue; /* don't repush same directory */
-! if (!mch_isdir(ctx->ffs_filearray[i]))
- continue; /* not a directory */
-! ff_push(ff_create_stack_element(ctx->ffs_filearray[i],
-! ctx->ffs_wc_path, ctx->ffs_level - 1, 1));
- }
- }
- #endif
-
- /* we are done with the current directory */
-! ff_free_stack_element(ctx);
-
- }
-
---- 4715,4739 ----
- * if wildcards contains '**' we have to descent till we reach the
- * leaves of the directory tree.
- */
-! if (STRNCMP(stackp->ffs_wc_path, "**", 2) == 0)
- {
-! for (i = stackp->ffs_filearray_cur;
-! i < stackp->ffs_filearray_size; ++i)
- {
-! if (fnamecmp(stackp->ffs_filearray[i],
-! stackp->ffs_fix_path) == 0)
- continue; /* don't repush same directory */
-! if (!mch_isdir(stackp->ffs_filearray[i]))
- continue; /* not a directory */
-! ff_push(search_ctx,
-! ff_create_stack_element(stackp->ffs_filearray[i],
-! stackp->ffs_wc_path, stackp->ffs_level - 1, 1));
- }
- }
- #endif
-
- /* we are done with the current directory */
-! ff_free_stack_element(stackp);
-
- }
-
-***************
-*** 4730,4769 ****
- /* If we reached this, we didn't find anything downwards.
- * Let's check if we should do an upward search.
- */
-! if (ff_search_ctx->ffsc_start_dir
-! && ff_search_ctx->ffsc_stopdirs_v != NULL && !got_int)
- {
- ff_stack_T *sptr;
-
- /* is the last starting directory in the stop list? */
-! if (ff_path_in_stoplist(ff_search_ctx->ffsc_start_dir,
-! (int)(path_end - ff_search_ctx->ffsc_start_dir),
-! ff_search_ctx->ffsc_stopdirs_v) == TRUE)
- break;
-
- /* cut of last dir */
-! while (path_end > ff_search_ctx->ffsc_start_dir
-! && vim_ispathsep(*path_end))
- path_end--;
-! while (path_end > ff_search_ctx->ffsc_start_dir
-! && !vim_ispathsep(path_end[-1]))
- path_end--;
- *path_end = 0;
- path_end--;
-
-! if (*ff_search_ctx->ffsc_start_dir == 0)
- break;
-
-! STRCPY(file_path, ff_search_ctx->ffsc_start_dir);
- add_pathsep(file_path);
-! STRCAT(file_path, ff_search_ctx->ffsc_fix_path);
-
- /* create a new stack entry */
- sptr = ff_create_stack_element(file_path,
-! ff_search_ctx->ffsc_wc_path, ff_search_ctx->ffsc_level, 0);
- if (sptr == NULL)
- break;
-! ff_push(sptr);
- }
- else
- break;
---- 4741,4780 ----
- /* If we reached this, we didn't find anything downwards.
- * Let's check if we should do an upward search.
- */
-! if (search_ctx->ffsc_start_dir
-! && search_ctx->ffsc_stopdirs_v != NULL && !got_int)
- {
- ff_stack_T *sptr;
-
- /* is the last starting directory in the stop list? */
-! if (ff_path_in_stoplist(search_ctx->ffsc_start_dir,
-! (int)(path_end - search_ctx->ffsc_start_dir),
-! search_ctx->ffsc_stopdirs_v) == TRUE)
- break;
-
- /* cut of last dir */
-! while (path_end > search_ctx->ffsc_start_dir
-! && vim_ispathsep(*path_end))
- path_end--;
-! while (path_end > search_ctx->ffsc_start_dir
-! && !vim_ispathsep(path_end[-1]))
- path_end--;
- *path_end = 0;
- path_end--;
-
-! if (*search_ctx->ffsc_start_dir == 0)
- break;
-
-! STRCPY(file_path, search_ctx->ffsc_start_dir);
- add_pathsep(file_path);
-! STRCAT(file_path, search_ctx->ffsc_fix_path);
-
- /* create a new stack entry */
- sptr = ff_create_stack_element(file_path,
-! search_ctx->ffsc_wc_path, search_ctx->ffsc_level, 0);
- if (sptr == NULL)
- break;
-! ff_push(search_ctx, sptr);
- }
- else
- break;
-***************
-*** 4779,4794 ****
- * Can handle it if the passed search_context is NULL;
- */
- void
-! vim_findfile_free_visited(search_ctx)
-! void *search_ctx;
- {
-! if (search_ctx == NULL)
-! return;
-
-! ff_search_ctx = (ff_search_ctx_T *)search_ctx;
-
-! vim_findfile_free_visited_list(&ff_search_ctx->ffsc_visited_lists_list);
-! vim_findfile_free_visited_list(&ff_search_ctx->ffsc_dir_visited_lists_list);
- }
-
- static void
---- 4790,4806 ----
- * Can handle it if the passed search_context is NULL;
- */
- void
-! vim_findfile_free_visited(search_ctx_arg)
-! void *search_ctx_arg;
- {
-! ff_search_ctx_T *search_ctx;
-
-! if (search_ctx_arg == NULL)
-! return;
-
-! search_ctx = (ff_search_ctx_T *)search_ctx_arg;
-! vim_findfile_free_visited_list(&search_ctx->ffsc_visited_lists_list);
-! vim_findfile_free_visited_list(&search_ctx->ffsc_dir_visited_lists_list);
- }
-
- static void
-***************
-*** 5103,5135 ****
- }
-
- /*
-! * push a dir on the directory stack
- */
- static void
-! ff_push(ctx)
-! ff_stack_T *ctx;
- {
- /* check for NULL pointer, not to return an error to the user, but
- * to prevent a crash */
-! if (ctx != NULL)
- {
-! ctx->ffs_prev = ff_search_ctx->ffsc_stack_ptr;
-! ff_search_ctx->ffsc_stack_ptr = ctx;
- }
- }
-
- /*
-! * pop a dir from the directory stack
-! * returns NULL if stack is empty
- */
- static ff_stack_T *
-! ff_pop()
- {
- ff_stack_T *sptr;
-
-! sptr = ff_search_ctx->ffsc_stack_ptr;
-! if (ff_search_ctx->ffsc_stack_ptr != NULL)
-! ff_search_ctx->ffsc_stack_ptr = ff_search_ctx->ffsc_stack_ptr->ffs_prev;
-
- return sptr;
- }
---- 5115,5149 ----
- }
-
- /*
-! * Push a dir on the directory stack.
- */
- static void
-! ff_push(search_ctx, stack_ptr)
-! ff_search_ctx_T *search_ctx;
-! ff_stack_T *stack_ptr;
- {
- /* check for NULL pointer, not to return an error to the user, but
- * to prevent a crash */
-! if (stack_ptr != NULL)
- {
-! stack_ptr->ffs_prev = search_ctx->ffsc_stack_ptr;
-! search_ctx->ffsc_stack_ptr = stack_ptr;
- }
- }
-
- /*
-! * Pop a dir from the directory stack.
-! * Returns NULL if stack is empty.
- */
- static ff_stack_T *
-! ff_pop(search_ctx)
-! ff_search_ctx_T *search_ctx;
- {
- ff_stack_T *sptr;
-
-! sptr = search_ctx->ffsc_stack_ptr;
-! if (search_ctx->ffsc_stack_ptr != NULL)
-! search_ctx->ffsc_stack_ptr = search_ctx->ffsc_stack_ptr->ffs_prev;
-
- return sptr;
- }
-***************
-*** 5138,5199 ****
- * free the given stack element
- */
- static void
-! ff_free_stack_element(ctx)
-! ff_stack_T *ctx;
- {
- /* vim_free handles possible NULL pointers */
-! vim_free(ctx->ffs_fix_path);
- #ifdef FEAT_PATH_EXTRA
-! vim_free(ctx->ffs_wc_path);
- #endif
-
-! if (ctx->ffs_filearray != NULL)
-! FreeWild(ctx->ffs_filearray_size, ctx->ffs_filearray);
-
-! vim_free(ctx);
- }
-
- /*
-! * clear the search context
- */
- static void
-! ff_clear()
- {
- ff_stack_T *sptr;
-
- /* clear up stack */
-! while ((sptr = ff_pop()) != NULL)
- ff_free_stack_element(sptr);
-
-! vim_free(ff_search_ctx->ffsc_file_to_search);
-! vim_free(ff_search_ctx->ffsc_start_dir);
-! vim_free(ff_search_ctx->ffsc_fix_path);
- #ifdef FEAT_PATH_EXTRA
-! vim_free(ff_search_ctx->ffsc_wc_path);
- #endif
-
- #ifdef FEAT_PATH_EXTRA
-! if (ff_search_ctx->ffsc_stopdirs_v != NULL)
- {
- int i = 0;
-
-! while (ff_search_ctx->ffsc_stopdirs_v[i] != NULL)
- {
-! vim_free(ff_search_ctx->ffsc_stopdirs_v[i]);
- i++;
- }
-! vim_free(ff_search_ctx->ffsc_stopdirs_v);
- }
-! ff_search_ctx->ffsc_stopdirs_v = NULL;
- #endif
-
- /* reset everything */
-! ff_search_ctx->ffsc_file_to_search = NULL;
-! ff_search_ctx->ffsc_start_dir = NULL;
-! ff_search_ctx->ffsc_fix_path = NULL;
- #ifdef FEAT_PATH_EXTRA
-! ff_search_ctx->ffsc_wc_path = NULL;
-! ff_search_ctx->ffsc_level = 0;
- #endif
- }
-
---- 5152,5214 ----
- * free the given stack element
- */
- static void
-! ff_free_stack_element(stack_ptr)
-! ff_stack_T *stack_ptr;
- {
- /* vim_free handles possible NULL pointers */
-! vim_free(stack_ptr->ffs_fix_path);
- #ifdef FEAT_PATH_EXTRA
-! vim_free(stack_ptr->ffs_wc_path);
- #endif
-
-! if (stack_ptr->ffs_filearray != NULL)
-! FreeWild(stack_ptr->ffs_filearray_size, stack_ptr->ffs_filearray);
-
-! vim_free(stack_ptr);
- }
-
- /*
-! * Clear the search context, but NOT the visited list.
- */
- static void
-! ff_clear(search_ctx)
-! ff_search_ctx_T *search_ctx;
- {
- ff_stack_T *sptr;
-
- /* clear up stack */
-! while ((sptr = ff_pop(search_ctx)) != NULL)
- ff_free_stack_element(sptr);
-
-! vim_free(search_ctx->ffsc_file_to_search);
-! vim_free(search_ctx->ffsc_start_dir);
-! vim_free(search_ctx->ffsc_fix_path);
- #ifdef FEAT_PATH_EXTRA
-! vim_free(search_ctx->ffsc_wc_path);
- #endif
-
- #ifdef FEAT_PATH_EXTRA
-! if (search_ctx->ffsc_stopdirs_v != NULL)
- {
- int i = 0;
-
-! while (search_ctx->ffsc_stopdirs_v[i] != NULL)
- {
-! vim_free(search_ctx->ffsc_stopdirs_v[i]);
- i++;
- }
-! vim_free(search_ctx->ffsc_stopdirs_v);
- }
-! search_ctx->ffsc_stopdirs_v = NULL;
- #endif
-
- /* reset everything */
-! search_ctx->ffsc_file_to_search = NULL;
-! search_ctx->ffsc_start_dir = NULL;
-! search_ctx->ffsc_fix_path = NULL;
- #ifdef FEAT_PATH_EXTRA
-! search_ctx->ffsc_wc_path = NULL;
-! search_ctx->ffsc_level = 0;
- #endif
- }
-
-***************
-*** 5242,5248 ****
-
- #if defined(FEAT_SEARCHPATH) || defined(PROTO)
- /*
-! * Find the file name "ptr[len]" in the path.
- *
- * On the first call set the parameter 'first' to TRUE to initialize
- * the search. For repeating calls to FALSE.
---- 5257,5263 ----
-
- #if defined(FEAT_SEARCHPATH) || defined(PROTO)
- /*
-! * Find the file name "ptr[len]" in the path. Also finds directory names.
- *
- * On the first call set the parameter 'first' to TRUE to initialize
- * the search. For repeating calls to FALSE.
-***************
-*** 5276,5282 ****
- {
- return find_file_in_path_option(ptr, len, options, first,
- *curbuf->b_p_path == NUL ? p_path : curbuf->b_p_path,
-! FALSE, rel_fname, curbuf->b_p_sua);
- }
-
- static char_u *ff_file_to_find = NULL;
---- 5291,5297 ----
- {
- return find_file_in_path_option(ptr, len, options, first,
- *curbuf->b_p_path == NUL ? p_path : curbuf->b_p_path,
-! FINDFILE_BOTH, rel_fname, curbuf->b_p_sua);
- }
-
- static char_u *ff_file_to_find = NULL;
-***************
-*** 5309,5325 ****
- char_u *rel_fname; /* file name searching relative to */
- {
- return find_file_in_path_option(ptr, len, options, TRUE, p_cdpath,
-! TRUE, rel_fname, (char_u *)"");
- }
-
- char_u *
-! find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fname, suffixes)
- char_u *ptr; /* file name */
- int len; /* length of file name */
- int options;
- int first; /* use count'th matching file name */
- char_u *path_option; /* p_path or p_cdpath */
-! int need_dir; /* looking for directory name */
- char_u *rel_fname; /* file name we are looking relative to. */
- char_u *suffixes; /* list of suffixes, 'suffixesadd' option */
- {
---- 5324,5340 ----
- char_u *rel_fname; /* file name searching relative to */
- {
- return find_file_in_path_option(ptr, len, options, TRUE, p_cdpath,
-! FINDFILE_DIR, rel_fname, (char_u *)"");
- }
-
- char_u *
-! find_file_in_path_option(ptr, len, options, first, path_option, find_what, rel_fname, suffixes)
- char_u *ptr; /* file name */
- int len; /* length of file name */
- int options;
- int first; /* use count'th matching file name */
- char_u *path_option; /* p_path or p_cdpath */
-! int find_what; /* FINDFILE_FILE, _DIR or _BOTH */
- char_u *rel_fname; /* file name we are looking relative to. */
- char_u *suffixes; /* list of suffixes, 'suffixesadd' option */
- {
-***************
-*** 5421,5432 ****
- #ifdef DJGPP
- /* "C:" by itself will fail for mch_getperm(),
- * assume it's always valid. */
-! (need_dir && NameBuff[0] != NUL
- && NameBuff[1] == ':'
- && NameBuff[2] == NUL) ||
- #endif
- (mch_getperm(NameBuff) >= 0
-! && (!need_dir || mch_isdir(NameBuff))))
- {
- file_name = vim_strsave(NameBuff);
- goto theend;
---- 5436,5449 ----
- #ifdef DJGPP
- /* "C:" by itself will fail for mch_getperm(),
- * assume it's always valid. */
-! (find_what != FINDFILE_FILE && NameBuff[0] != NUL
- && NameBuff[1] == ':'
- && NameBuff[2] == NUL) ||
- #endif
- (mch_getperm(NameBuff) >= 0
-! && (find_what == FINDFILE_BOTH
-! || ((find_what == FINDFILE_DIR)
-! == mch_isdir(NameBuff)))))
- {
- file_name = vim_strsave(NameBuff);
- goto theend;
-***************
-*** 5457,5465 ****
- {
- if (did_findfile_init)
- {
-- ff_search_ctx->ffsc_need_dir = need_dir;
- file_name = vim_findfile(fdip_search_ctx);
-- ff_search_ctx->ffsc_need_dir = FALSE;
- if (file_name != NULL)
- break;
-
---- 5474,5480 ----
-***************
-*** 5492,5498 ****
- r_ptr = NULL;
- #endif
- fdip_search_ctx = vim_findfile_init(buf, ff_file_to_find,
-! r_ptr, 100, FALSE, TRUE,
- fdip_search_ctx, FALSE, rel_fname);
- if (fdip_search_ctx != NULL)
- did_findfile_init = TRUE;
---- 5507,5513 ----
- r_ptr = NULL;
- #endif
- fdip_search_ctx = vim_findfile_init(buf, ff_file_to_find,
-! r_ptr, 100, FALSE, find_what,
- fdip_search_ctx, FALSE, rel_fname);
- if (fdip_search_ctx != NULL)
- did_findfile_init = TRUE;
-***************
-*** 5504,5510 ****
- {
- if (first == TRUE)
- {
-! if (need_dir)
- EMSG2(_("E344: Can't find directory \"%s\" in cdpath"),
- ff_file_to_find);
- else
---- 5519,5525 ----
- {
- if (first == TRUE)
- {
-! if (find_what == FINDFILE_DIR)
- EMSG2(_("E344: Can't find directory \"%s\" in cdpath"),
- ff_file_to_find);
- else
-***************
-*** 5513,5519 ****
- }
- else
- {
-! if (need_dir)
- EMSG2(_("E346: No more directory \"%s\" found in cdpath"),
- ff_file_to_find);
- else
---- 5528,5534 ----
- }
- else
- {
-! if (find_what == FINDFILE_DIR)
- EMSG2(_("E346: No more directory \"%s\" found in cdpath"),
- ff_file_to_find);
- else
-*** ../vim-7.1.255/src/vim.h Sat Jan 19 15:55:51 2008
---- src/vim.h Tue Jan 22 22:35:16 2008
-***************
-*** 721,726 ****
---- 721,731 ----
- /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
- * is used when executing commands and EW_SILENT for interactive expanding. */
-
-+ /* Flags for find_file_*() functions. */
-+ #define FINDFILE_FILE 0 /* only files */
-+ #define FINDFILE_DIR 1 /* only directories */
-+ #define FINDFILE_BOTH 2 /* files and directories */
-+
- #ifdef FEAT_VERTSPLIT
- # define W_WINCOL(wp) (wp->w_wincol)
- # define W_WIDTH(wp) (wp->w_width)
-*** ../vim-7.1.255/src/tag.c Sat Jan 19 15:55:51 2008
---- src/tag.c Wed Feb 13 18:02:32 2008
-***************
-*** 2669,2676 ****
-
- tnp->tn_search_ctx = vim_findfile_init(buf, filename,
- r_ptr, 100,
-! FALSE, /* don't free visited list */
-! FALSE, /* we search for a file */
- tnp->tn_search_ctx, TRUE, curbuf->b_ffname);
- if (tnp->tn_search_ctx != NULL)
- tnp->tn_did_filefind_init = TRUE;
---- 2669,2676 ----
-
- tnp->tn_search_ctx = vim_findfile_init(buf, filename,
- r_ptr, 100,
-! FALSE, /* don't free visited list */
-! FINDFILE_FILE, /* we search for a file */
- tnp->tn_search_ctx, TRUE, curbuf->b_ffname);
- if (tnp->tn_search_ctx != NULL)
- tnp->tn_did_filefind_init = TRUE;
-***************
-*** 2691,2696 ****
---- 2691,2697 ----
- {
- vim_free(tnp->tn_tags);
- vim_findfile_cleanup(tnp->tn_search_ctx);
-+ tnp->tn_search_ctx = NULL;
- ga_clear_strings(&tag_fnames);
- }
-
-*** ../vim-7.1.255/src/version.c Wed Feb 20 11:27:59 2008
---- src/version.c Wed Feb 20 12:09:54 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 256,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail
- on the way back 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.1.257
-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.1.257
-Problem: Configure can't always find the Tcl header files.
-Solution: Also look in /usr/local/include/tcl$tclver and
- /usr/include/tcl$tclver (James Vega)
-Files: src/auto/configure, src/configure.in
-
-
-*** ../vim-7.1.256/src/auto/configure Wed Feb 13 10:27:28 2008
---- src/auto/configure Wed Feb 13 11:20:00 2008
-***************
-*** 4669,4678 ****
- echo "$as_me:$LINENO: checking for location of Tcl include" >&5
- echo $ECHO_N "checking for location of Tcl include... $ECHO_C" >&6
- if test "x$MACOSX" != "xyes"; then
-! tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/include"
- else
- tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
- fi
- for try in $tclinc; do
- if test -f "$try/tcl.h"; then
- echo "$as_me:$LINENO: result: $try/tcl.h" >&5
---- 4669,4679 ----
- echo "$as_me:$LINENO: checking for location of Tcl include" >&5
- echo $ECHO_N "checking for location of Tcl include... $ECHO_C" >&6
- if test "x$MACOSX" != "xyes"; then
-! tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/include /usr/include/tcl$tclver"
- else
- tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
- fi
-+ TCL_INC=
- for try in $tclinc; do
- if test -f "$try/tcl.h"; then
- echo "$as_me:$LINENO: result: $try/tcl.h" >&5
-*** ../vim-7.1.256/src/configure.in Wed Feb 13 10:27:28 2008
---- src/configure.in Wed Feb 13 11:23:55 2008
-***************
-*** 794,804 ****
-
- AC_MSG_CHECKING(for location of Tcl include)
- if test "x$MACOSX" != "xyes"; then
-! tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/include"
- else
- dnl For Mac OS X 10.3, use the OS-provided framework location
- tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
- fi
- for try in $tclinc; do
- if test -f "$try/tcl.h"; then
- AC_MSG_RESULT($try/tcl.h)
---- 794,805 ----
-
- AC_MSG_CHECKING(for location of Tcl include)
- if test "x$MACOSX" != "xyes"; then
-! tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
- else
- dnl For Mac OS X 10.3, use the OS-provided framework location
- tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
- fi
-+ TCL_INC=
- for try in $tclinc; do
- if test -f "$try/tcl.h"; then
- AC_MSG_RESULT($try/tcl.h)
-*** ../vim-7.1.256/src/version.c Wed Feb 20 12:22:59 2008
---- src/version.c Wed Feb 20 12:42:17 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 257,
- /**/
-
---
-He who laughs last, thinks slowest.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.258
-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.1.258
-Problem: Crash when doing "d/\n/e" and 'virtualedit' is "all". (Andy Wokula)
-Solution: Avoid that the column becomes negative. Also fixes other problems
- with the end of a pattern match is in column zero. (A.Politz)
-Files: src/search.c
-
-
-*** ../vim-7.1.257/src/search.c Sat Jan 26 21:15:00 2008
---- src/search.c Wed Feb 20 13:22:23 2008
-***************
-*** 624,630 ****
- #ifdef FEAT_EVAL
- submatch = first_submatch(®match);
- #endif
-! /* Line me be past end of buffer for "\n\zs". */
- if (lnum + matchpos.lnum > buf->b_ml.ml_line_count)
- ptr = (char_u *)"";
- else
---- 624,630 ----
- #ifdef FEAT_EVAL
- submatch = first_submatch(®match);
- #endif
-! /* "lnum" may be past end of buffer for "\n\zs". */
- if (lnum + matchpos.lnum > buf->b_ml.ml_line_count)
- ptr = (char_u *)"";
- else
-***************
-*** 833,853 ****
- continue;
- }
-
-! if (options & SEARCH_END && !(options & SEARCH_NOOF))
- {
- pos->lnum = lnum + endpos.lnum;
-! pos->col = endpos.col - 1;
-! #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 = (char_u *)"";
-! else
-! ptr = ml_get_buf(buf, pos->lnum, FALSE);
-! pos->col -= (*mb_head_off)(ptr, ptr + pos->col);
- }
- #endif
- }
- else
- {
---- 833,870 ----
- continue;
- }
-
-! /* With the SEARCH_END option move to the last character
-! * of the match. Don't do it for an empty match, end
-! * should be same as start then. */
-! if (options & SEARCH_END && !(options & SEARCH_NOOF)
-! && !(matchpos.lnum == endpos.lnum
-! && matchpos.col == endpos.col))
- {
-+ /* For a match in the first column, set the position
-+ * on the NUL in the previous line. */
- pos->lnum = lnum + endpos.lnum;
-! pos->col = endpos.col;
-! if (endpos.col == 0)
- {
-! if (pos->lnum > 1) /* just in case */
-! {
-! --pos->lnum;
-! pos->col = (colnr_T)STRLEN(ml_get_buf(buf,
-! pos->lnum, FALSE));
-! }
- }
-+ else
-+ {
-+ --pos->col;
-+ #ifdef FEAT_MBYTE
-+ if (has_mbyte
-+ && pos->lnum <= buf->b_ml.ml_line_count)
-+ {
-+ ptr = ml_get_buf(buf, pos->lnum, FALSE);
-+ pos->col -= (*mb_head_off)(ptr, ptr + pos->col);
-+ }
- #endif
-+ }
- }
- else
- {
-*** ../vim-7.1.257/src/version.c Wed Feb 20 12:43:05 2008
---- src/version.c Wed Feb 20 13:37:32 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 258,
- /**/
-
---
-Micro$oft: where do you want to go today?
- Linux: where do you want to go tomorrow?
- FreeBSD: are you guys coming, or what?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.259
-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.1.259
-Problem: Cursor is in the wrong position when 'rightleft' is set,
- 'encoding' is "utf-8" and on an illegal byte. (Dominique Pelle)
-Solution: Only put the cursor in the first column when actually on a
- double-wide character. (Yukihiro Nakadaira)
-Files: src/screen.c
-
-
-*** ../vim-7.1.258/src/screen.c Wed Feb 13 21:48:24 2008
---- src/screen.c Wed Feb 20 14:06:26 2008
-***************
-*** 8045,8053 ****
- windgoto(W_WINROW(curwin) + curwin->w_wrow,
- W_WINCOL(curwin) + (
- #ifdef FEAT_RIGHTLEFT
- curwin->w_p_rl ? ((int)W_WIDTH(curwin) - curwin->w_wcol - (
- # ifdef FEAT_MBYTE
-! has_mbyte ? (*mb_ptr2cells)(ml_get_cursor()) :
- # endif
- 1)) :
- #endif
---- 8045,8057 ----
- windgoto(W_WINROW(curwin) + curwin->w_wrow,
- W_WINCOL(curwin) + (
- #ifdef FEAT_RIGHTLEFT
-+ /* With 'rightleft' set and the cursor on a double-wide
-+ * character, position it on the leftmost column. */
- curwin->w_p_rl ? ((int)W_WIDTH(curwin) - curwin->w_wcol - (
- # ifdef FEAT_MBYTE
-! (has_mbyte
-! && (*mb_ptr2cells)(ml_get_cursor()) == 2
-! && vim_isprintc(gchar_cursor())) ? 2 :
- # endif
- 1)) :
- #endif
-*** ../vim-7.1.258/src/version.c Wed Feb 20 13:41:14 2008
---- src/version.c Wed Feb 20 14:10:23 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 259,
- /**/
-
---
-A day without sunshine is like, well, night.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.260
-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.1.260
-Problem: Cursor positioning problem after ^@ wrapping halfway when
- 'encoding' is utf-8.
-Solution: Only count a position for printable characters. (partly by
- Yukihiro Nakadaira)
-Files: src/charset.c
-
-
-*** ../vim-7.1.259/src/charset.c Sun Aug 19 22:42:27 2007
---- src/charset.c Wed Feb 20 14:39:04 2008
-***************
-*** 1290,1296 ****
- /* If a double-cell char doesn't fit at the end of a line
- * it wraps to the next line, it's like this char is three
- * cells wide. */
-! if (incr == 2 && wp->w_p_wrap && in_win_border(wp, vcol))
- {
- ++incr;
- head = 1;
---- 1290,1297 ----
- /* If a double-cell char doesn't fit at the end of a line
- * it wraps to the next line, it's like this char is three
- * cells wide. */
-! if (incr == 2 && wp->w_p_wrap && MB_BYTE2LEN(*ptr) > 1
-! && in_win_border(wp, vcol))
- {
- ++incr;
- head = 1;
-*** ../vim-7.1.259/src/version.c Wed Feb 20 14:15:45 2008
---- src/version.c Wed Feb 20 14:57:45 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 260,
- /**/
-
---
-The users that I support would double-click on a landmine to find out
-what happens. -- A system administrator
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.261
-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.1.261
-Problem: When a 2 byte BOM is detected Vim uses UCS-2, which doesn't work
- for UTF-16 text. (Tony Mechelynck)
-Solution: Default to UTF-16.
-Files: src/fileio.c, src/testdir/test42.ok
-
-
-*** ../vim-7.1.260/src/fileio.c Fri Jan 4 16:30:40 2008
---- src/fileio.c Wed Feb 20 11:22:10 2008
-***************
-*** 5514,5523 ****
- else if (p[0] == 0xfe && p[1] == 0xff
- && (flags == FIO_ALL || flags == FIO_UCS2 || flags == FIO_UTF16))
- {
-! if (flags == FIO_UTF16)
-! name = "utf-16"; /* FE FF */
-! else
- name = "ucs-2"; /* FE FF */
- }
- else if (size >= 4 && p[0] == 0 && p[1] == 0 && p[2] == 0xfe
- && p[3] == 0xff && (flags == FIO_ALL || flags == FIO_UCS4))
---- 5523,5533 ----
- else if (p[0] == 0xfe && p[1] == 0xff
- && (flags == FIO_ALL || flags == FIO_UCS2 || flags == FIO_UTF16))
- {
-! /* Default to utf-16, it works also for ucs-2 text. */
-! if (flags == FIO_UCS2)
- name = "ucs-2"; /* FE FF */
-+ else
-+ name = "utf-16"; /* FE FF */
- }
- else if (size >= 4 && p[0] == 0 && p[1] == 0 && p[2] == 0xfe
- && p[3] == 0xff && (flags == FIO_ALL || flags == FIO_UCS4))
-*** ../vim-7.1.260/src/testdir/test42.ok Sun Jun 13 21:02:32 2004
---- src/testdir/test42.ok Wed Feb 20 13:27:37 2008
-***************
-*** 15,21 ****
- utf-8\80err
-
-
-! fileencoding=ucs-2
- bomb
- ucs-2
-
---- 15,21 ----
- utf-8\80err
-
-
-! fileencoding=utf-16
- bomb
- ucs-2
-
-*** ../vim-7.1.260/src/version.c Wed Feb 20 14:58:46 2008
---- src/version.c Wed Feb 20 18:13:00 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 261,
- /**/
-
---
-Seen it all, done it all, can't remember most of 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.1.262
-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.1.262
-Problem: Can't get the process ID of Vim.
-Solution: Implement getpid().
-Files: src/eval.c, runtime/doc/eval.txt
-
-
-*** ../vim-7.1.261/src/eval.c Wed Feb 20 12:22:59 2008
---- src/eval.c Wed Feb 20 11:08:21 2008
-***************
-*** 532,537 ****
---- 532,538 ----
- static void f_getftype __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getline __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getmatches __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_getpid __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getpos __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getqflist __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_getreg __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 7132,7137 ****
---- 7133,7139 ----
- {"getline", 1, 2, f_getline},
- {"getloclist", 1, 1, f_getqflist},
- {"getmatches", 0, 0, f_getmatches},
-+ {"getpid", 0, 0, f_getpid},
- {"getpos", 1, 1, f_getpos},
- {"getqflist", 0, 0, f_getqflist},
- {"getreg", 0, 2, f_getreg},
-***************
-*** 10371,10376 ****
---- 10373,10390 ----
- }
- }
- #endif
-+ }
-+
-+ /*
-+ * "getpid()" function
-+ */
-+ /*ARGSUSED*/
-+ static void
-+ f_getpid(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_number = mch_get_pid();
- }
-
- /*
-*** ../vim-7.1.261/runtime/doc/eval.txt Wed Feb 13 12:41:30 2008
---- runtime/doc/eval.txt Wed Feb 20 11:10:17 2008
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2008 Feb 13
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2008 Feb 20
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1638,1643 ****
---- 1638,1644 ----
- getline( {lnum}, {end}) List lines {lnum} to {end} of current buffer
- getloclist({nr}) List list of location list items
- getmatches() List list of current matches
-+ getpid() Number process ID of Vim
- getpos( {expr}) List position of cursor, mark, etc.
- getqflist() List list of quickfix items
- getreg( [{regname} [, 1]]) String contents of register
-***************
-*** 3833,3838 ****
---- 3837,3846 ----
- characters. nr2char(0) is a real NUL and terminates the
- string, thus results in an empty string.
-
-+ *getpid()*
-+ getpid() Return a Number which is the process ID of the Vim process.
-+ On Unix this is a unique number. On MS-DOS it's always zero.
-+
- *getpos()*
- getpos({expr}) Get the position for {expr}. For possible values of {expr}
- see |line()|.
-*** ../vim-7.1.261/src/version.c Wed Feb 20 18:14:25 2008
---- src/version.c Wed Feb 20 20:04:14 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 262,
- /**/
-
---
-Those who live by the sword get shot by those who don'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.1.263
-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.1.263
-Problem: The filetype can consist of two dot separated names. This works
- for syntax and ftplugin, but not for indent. (Brett Stahlman)
-Solution: Use split() and loop over each dot separated name.
-Files: runtime/indent.vim
-
-
-*** ../vim-7.1.262/runtime/indent.vim Mon Mar 28 22:56:55 2005
---- runtime/indent.vim Fri Feb 22 21:05:39 2008
-***************
-*** 1,7 ****
- " Vim support file to switch on loading indent files for file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2005 Mar 28
-
- if exists("did_indent_on")
- finish
---- 1,7 ----
- " Vim support file to switch on loading indent files for file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2008 Feb 22
-
- if exists("did_indent_on")
- finish
-***************
-*** 15,25 ****
- exe b:undo_indent
- unlet! b:undo_indent b:did_indent
- endif
-! if expand("<amatch>") != ""
- if exists("b:did_indent")
- unlet b:did_indent
- endif
-! runtime! indent/<amatch>.vim
- endif
- endfunc
- augroup END
---- 15,31 ----
- exe b:undo_indent
- unlet! b:undo_indent b:did_indent
- endif
-! let s = expand("<amatch>")
-! if s != ""
- if exists("b:did_indent")
- unlet b:did_indent
- endif
-!
-! " When there is a dot it is used to separate filetype names. Thus for
-! " "aaa.bbb" load "indent/aaa.vim" and then "indent/bbb.vim".
-! for name in split(s, '\.')
-! exe 'runtime! indent/' . name . '.vim'
-! endfor
- endif
- endfunc
- augroup END
-*** ../vim-7.1.262/src/version.c Wed Feb 20 20:09:44 2008
---- src/version.c Mon Feb 25 20:44:04 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 263,
- /**/
-
---
-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.1.264
-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.1.264
-Problem: Crash when indenting lines. (Dominique Pelle)
-Solution: Set the cursor column when changing the cursor line.
-Files: src/ops.c, src/misc1.c
-
-
-*** ../vim-7.1.263/src/ops.c Wed Feb 6 14:43:50 2008
---- src/ops.c Sun Feb 24 14:56:38 2008
-***************
-*** 692,697 ****
---- 692,698 ----
- }
- }
- ++curwin->w_cursor.lnum;
-+ curwin->w_cursor.col = 0; /* make sure it's valid */
- }
-
- /* put cursor on first non-blank of indented line */
-*** ../vim-7.1.263/src/misc1.c Wed Feb 13 10:57:11 2008
---- src/misc1.c Sun Feb 24 15:04:27 2008
-***************
-*** 6894,6899 ****
---- 6894,6900 ----
- if (trypos != NULL)
- {
- curwin->w_cursor.lnum = trypos->lnum + 1;
-+ curwin->w_cursor.col = 0;
- continue;
- }
-
-***************
-*** 6954,6959 ****
---- 6955,6961 ----
- if (trypos != NULL)
- {
- curwin->w_cursor.lnum = trypos->lnum + 1;
-+ curwin->w_cursor.col = 0;
- continue;
- }
- }
-***************
-*** 6991,6996 ****
---- 6993,6999 ----
- if ((trypos = find_start_comment(ind_maxcomment)) != NULL)
- {
- curwin->w_cursor.lnum = trypos->lnum + 1;
-+ curwin->w_cursor.col = 0;
- continue;
- }
-
-***************
-*** 7114,7120 ****
---- 7117,7126 ----
- {
- if (find_last_paren(l, '{', '}') && (trypos =
- find_start_brace(ind_maxcomment)) != NULL)
-+ {
- curwin->w_cursor.lnum = trypos->lnum + 1;
-+ curwin->w_cursor.col = 0;
-+ }
- continue;
- }
-
-***************
-*** 7230,7240 ****
- * case xx: if ( asdf &&
- * asdf)
- */
-! curwin->w_cursor.lnum = trypos->lnum;
- l = ml_get_curline();
- if (cin_iscase(l) || cin_isscopedecl(l))
- {
- ++curwin->w_cursor.lnum;
- continue;
- }
- }
---- 7236,7247 ----
- * case xx: if ( asdf &&
- * asdf)
- */
-! curwin->w_cursor = *trypos;
- l = ml_get_curline();
- if (cin_iscase(l) || cin_isscopedecl(l))
- {
- ++curwin->w_cursor.lnum;
-+ curwin->w_cursor.col = 0;
- continue;
- }
- }
-***************
-*** 7254,7259 ****
---- 7261,7267 ----
- if (*l == NUL || l[STRLEN(l) - 1] != '\\')
- break;
- --curwin->w_cursor.lnum;
-+ curwin->w_cursor.col = 0;
- }
- }
-
-***************
-*** 7587,7597 ****
- * case xx: if ( asdf &&
- * asdf)
- */
-! curwin->w_cursor.lnum = trypos->lnum;
- l = ml_get_curline();
- if (cin_iscase(l) || cin_isscopedecl(l))
- {
- ++curwin->w_cursor.lnum;
- continue;
- }
- }
---- 7595,7606 ----
- * case xx: if ( asdf &&
- * asdf)
- */
-! curwin->w_cursor = *trypos;
- l = ml_get_curline();
- if (cin_iscase(l) || cin_isscopedecl(l))
- {
- ++curwin->w_cursor.lnum;
-+ curwin->w_cursor.col = 0;
- continue;
- }
- }
-***************
-*** 7652,7664 ****
- && (trypos = find_start_brace(ind_maxcomment))
- != NULL) /* XXX */
- {
-! curwin->w_cursor.lnum = trypos->lnum;
- /* if not "else {" check for terminated again */
- /* but skip block for "} else {" */
- l = cin_skipcomment(ml_get_curline());
- if (*l == '}' || !cin_iselse(l))
- goto term_again;
- ++curwin->w_cursor.lnum;
- }
- }
- }
---- 7661,7674 ----
- && (trypos = find_start_brace(ind_maxcomment))
- != NULL) /* XXX */
- {
-! curwin->w_cursor = *trypos;
- /* if not "else {" check for terminated again */
- /* but skip block for "} else {" */
- l = cin_skipcomment(ml_get_curline());
- if (*l == '}' || !cin_iselse(l))
- goto term_again;
- ++curwin->w_cursor.lnum;
-+ curwin->w_cursor.col = 0;
- }
- }
- }
-***************
-*** 7727,7732 ****
---- 7737,7743 ----
- if ((trypos = find_start_comment(ind_maxcomment)) != NULL)
- {
- curwin->w_cursor.lnum = trypos->lnum + 1;
-+ curwin->w_cursor.col = 0;
- continue;
- }
-
-***************
-*** 7777,7783 ****
- if (find_last_paren(l, '(', ')')
- && (trypos = find_match_paren(ind_maxparen,
- ind_maxcomment)) != NULL)
-! curwin->w_cursor.lnum = trypos->lnum;
-
- /* For a line ending in ',' that is a continuation line go
- * back to the first line with a backslash:
---- 7788,7794 ----
- if (find_last_paren(l, '(', ')')
- && (trypos = find_match_paren(ind_maxparen,
- ind_maxcomment)) != NULL)
-! curwin->w_cursor = *trypos;
-
- /* For a line ending in ',' that is a continuation line go
- * back to the first line with a backslash:
-***************
-*** 7791,7796 ****
---- 7802,7808 ----
- if (*l == NUL || l[STRLEN(l) - 1] != '\\')
- break;
- --curwin->w_cursor.lnum;
-+ curwin->w_cursor.col = 0;
- }
-
- amount = get_indent(); /* XXX */
-***************
-*** 7864,7870 ****
-
- if ((trypos = find_match_paren(ind_maxparen,
- ind_maxcomment)) != NULL)
-! curwin->w_cursor.lnum = trypos->lnum;
- amount = get_indent(); /* XXX */
- break;
- }
---- 7876,7882 ----
-
- if ((trypos = find_match_paren(ind_maxparen,
- ind_maxcomment)) != NULL)
-! curwin->w_cursor = *trypos;
- amount = get_indent(); /* XXX */
- break;
- }
-*** ../vim-7.1.263/src/version.c Mon Feb 25 20:45:46 2008
---- src/version.c Mon Feb 25 21:51:20 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 264,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-49. You never have to deal with busy signals when calling your ISP...because
- you never log off.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.265
-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.1.265
-Problem: When 'isfname' contains a space, cmdline completion can hang.
- (James Vega)
-Solution: Reset the "len" variable.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.264/src/ex_docmd.c Sat Jan 19 15:55:51 2008
---- src/ex_docmd.c Sun Feb 24 22:09:52 2008
-***************
-*** 3346,3351 ****
---- 3346,3352 ----
- #endif
- ))
- {
-+ len = 0; /* avoid getting stuck when space is in 'isfname' */
- while (*p != NUL)
- {
- #ifdef FEAT_MBYTE
-*** ../vim-7.1.264/src/version.c Mon Feb 25 21:54:23 2008
---- src/version.c Tue Feb 26 21:28:25 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 265,
- /**/
-
---
-Q: What is a patch 22?
-A: A patch you need to include to make it possible to include patches.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.266
-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.1.266
-Problem: When the version string returned by the terminal contains
- unexpected characters, it is used as typed input. (James Vega)
-Solution: Assume the escape sequence ends in a letter.
-Files: src/term.c
-
-
-*** ../vim-7.1.265/src/term.c Sat Sep 15 14:06:41 2007
---- src/term.c Mon Feb 25 20:21:53 2008
-***************
-*** 4050,4064 ****
- {
- /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
- * eat other possible responses to t_RV, rxvt returns
-! * "<Esc>[?1;2c". Also accept CSI instead of <Esc>[. */
- if (*T_CRV != NUL && ((tp[0] == ESC && tp[1] == '[' && len >= 3)
- || (tp[0] == CSI && len >= 2)))
- {
- j = 0;
- extra = 0;
-! for (i = 2 + (tp[0] != CSI);
-! i < len && (VIM_ISDIGIT(tp[i])
-! || tp[i] == ';' || tp[i] == '.'); ++i)
- if (tp[i] == ';' && ++j == 1)
- extra = atoi((char *)tp + i + 1);
- if (i == len)
---- 4050,4066 ----
- {
- /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
- * eat other possible responses to t_RV, rxvt returns
-! * "<Esc>[?1;2c". Also accept CSI instead of <Esc>[.
-! * mrxvt has been reported to have "+" in the version. Assume
-! * the escape sequence ends with a letter or one of "{|}~". */
- if (*T_CRV != NUL && ((tp[0] == ESC && tp[1] == '[' && len >= 3)
- || (tp[0] == CSI && len >= 2)))
- {
- j = 0;
- extra = 0;
-! for (i = 2 + (tp[0] != CSI); i < len
-! && !(tp[i] >= '{' && tp[i] <= '~')
-! && !ASCII_ISALPHA(tp[i]); ++i)
- if (tp[i] == ';' && ++j == 1)
- extra = atoi((char *)tp + i + 1);
- if (i == len)
-*** ../vim-7.1.265/src/version.c Tue Feb 26 21:29:06 2008
---- src/version.c Wed Feb 27 16:10:59 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 266,
- /**/
-
---
-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.1.267
-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.1.267
-Problem: When changing folds cursor may be positioned in the wrong place.
-Solution: Call changed_window_setting_win() instead of
- changed_window_setting().
-Files: src/fold.c
-
-
-*** ../vim-7.1.266/src/fold.c Sun Jan 13 21:57:25 2008
---- src/fold.c Wed Mar 5 12:48:43 2008
-***************
-*** 2307,2313 ****
-
- /* If some fold changed, need to redraw and position cursor. */
- if (fold_changed && wp->w_p_fen)
-! changed_window_setting();
-
- /* If we updated folds past "bot", need to redraw more lines. Don't do
- * this in other situations, the changed lines will be redrawn anyway and
---- 2307,2313 ----
-
- /* If some fold changed, need to redraw and position cursor. */
- if (fold_changed && wp->w_p_fen)
-! changed_window_setting_win(wp);
-
- /* If we updated folds past "bot", need to redraw more lines. Don't do
- * this in other situations, the changed lines will be redrawn anyway and
-*** ../vim-7.1.266/src/version.c Wed Feb 27 16:13:09 2008
---- src/version.c Thu Mar 6 22:43:05 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 267,
- /**/
-
---
-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.1.268
-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.1.268
-Problem: Always shows "+" at end of screen line with: ":set
- listchars=eol:$,extends:+ nowrap list cursorline" (Gary Johnson)
-Solution: Check for lcs_eol_one instead of lcs_eol.
-Files: src/screen.c
-
-
-*** ../vim-7.1.267/src/screen.c Wed Feb 20 14:15:45 2008
---- src/screen.c Sun Mar 9 14:26:14 2008
-***************
-*** 4527,4533 ****
- #endif
- col == W_WIDTH(wp) - 1)
- && (*ptr != NUL
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
- || (n_extra && (c_extra != NUL || *p_extra != NUL))))
- {
- c = lcs_ext;
---- 4527,4533 ----
- #endif
- col == W_WIDTH(wp) - 1)
- && (*ptr != NUL
-! || (wp->w_p_list && lcs_eol_one > 0)
- || (n_extra && (c_extra != NUL || *p_extra != NUL))))
- {
- c = lcs_ext;
-*** ../vim-7.1.267/src/version.c Thu Mar 6 22:44:45 2008
---- src/version.c Sun Mar 9 14:24:59 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 268,
- /**/
-
---
-From "know your smileys":
- :-* A big kiss!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.269
-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.1.269
-Problem: The matchparen plugin has an arbitrary limit for the number of
- lines to look for a match.
-Solution: Rely on the searchpair() timeout.
-Files: runtime/plugin/matchparen.vim
-
-
-*** ../vim-7.1.268/runtime/plugin/matchparen.vim Sun Jan 6 20:05:36 2008
---- runtime/plugin/matchparen.vim Wed Feb 27 22:39:32 2008
-***************
-*** 1,6 ****
- " Vim plugin for showing matching parens
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2008 Jan 06
-
- " 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: 2008 Feb 27
-
- " Exit quickly when:
- " - this plugin was already loaded (or disabled)
-***************
-*** 34,40 ****
- endif
-
- " Avoid that we remove the popup menu.
-! if pumvisible()
- return
- endif
-
---- 34,41 ----
- endif
-
- " Avoid that we remove the popup menu.
-! " Return when there are no colors (looks like the cursor jumps).
-! if pumvisible() || (&t_Co < 8 && !has("gui_running"))
- return
- endif
-
-***************
-*** 60,98 ****
- endif
-
- " Figure out the arguments for searchpairpos().
-- " Restrict the search to visible lines with "stopline".
-- " And avoid searching very far (e.g., for closed folds and long lines)
-- " The "viewable" variables give a range in which we can scroll while keeping
-- " the cursor at the same position
-- " adjustedScrolloff accounts for very large numbers of scrolloff
-- let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
-- let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
-- let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
-- " one of these stoplines will be adjusted below, but the current values are
-- " minimal boundaries within the current window
-- let stoplinebottom = line('w$')
-- let stoplinetop = line('w0')
- if i % 2 == 0
- let s_flags = 'nW'
- let c2 = plist[i + 1]
-- if has("byte_offset") && has("syntax_items") && &smc > 0
-- let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
-- let stopline = min([bottom_viewable, byte2line(stopbyte)])
-- else
-- let stopline = min([bottom_viewable, c_lnum + 100])
-- endif
-- let stoplinebottom = stopline
- else
- let s_flags = 'nbW'
- let c2 = c
- let c = plist[i - 1]
-- if has("byte_offset") && has("syntax_items") && &smc > 0
-- let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
-- let stopline = max([top_viewable, byte2line(stopbyte)])
-- else
-- let stopline = max([top_viewable, c_lnum - 100])
-- endif
-- let stoplinetop = stopline
- endif
- if c == '['
- let c = '\['
---- 61,73 ----
-***************
-*** 111,120 ****
- \ '=~? "string\\|character\\|singlequote\\|comment"'
- execute 'if' s_skip '| let s_skip = 0 | endif'
-
- try
-! " Limit the search time to 500 msec to avoid a hang on very long lines.
-! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, 500)
- catch /E118/
- let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
- endtry
-
---- 86,132 ----
- \ '=~? "string\\|character\\|singlequote\\|comment"'
- execute 'if' s_skip '| let s_skip = 0 | endif'
-
-+ " Limit the search to lines visible in the window.
-+ let stoplinebottom = line('w$')
-+ let stoplinetop = line('w0')
-+ if i % 2 == 0
-+ let stopline = stoplinebottom
-+ else
-+ let stopline = stoplinetop
-+ endif
-+
- try
-! " Limit the search time to 300 msec to avoid a hang on very long lines.
-! " This fails when a timeout is not supported.
-! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, 300)
- catch /E118/
-+ " Can't use the timeout, restrict the stopline a bit more to avoid taking
-+ " a long time on closed folds and long lines.
-+ " The "viewable" variables give a range in which we can scroll while
-+ " keeping the cursor at the same position.
-+ " adjustedScrolloff accounts for very large numbers of scrolloff.
-+ let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
-+ let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
-+ let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
-+ " one of these stoplines will be adjusted below, but the current values are
-+ " minimal boundaries within the current window
-+ if i % 2 == 0
-+ if has("byte_offset") && has("syntax_items") && &smc > 0
-+ let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
-+ let stopline = min([bottom_viewable, byte2line(stopbyte)])
-+ else
-+ let stopline = min([bottom_viewable, c_lnum + 100])
-+ endif
-+ let stoplinebottom = stopline
-+ else
-+ if has("byte_offset") && has("syntax_items") && &smc > 0
-+ let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
-+ let stopline = max([top_viewable, byte2line(stopbyte)])
-+ else
-+ let stopline = max([top_viewable, c_lnum - 100])
-+ endif
-+ let stoplinetop = stopline
-+ endif
- let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
- endtry
-
-*** ../vim-7.1.268/src/version.c Sun Mar 9 14:30:12 2008
---- src/version.c Sun Mar 9 16:21:00 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 269,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-93. New mail alarm on your palmtop annoys other churchgoers.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.270
-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.1.270
-Problem: ":?foo?" matches in current line since patch 7.1.025. (A.Politz)
-Solution: Remove the SEARCH_START flag.
-Files: src/ex_docmd.c, src/search.c
-
-
-*** ../vim-7.1.269/src/ex_docmd.c Tue Feb 26 21:29:06 2008
---- src/ex_docmd.c Sun Mar 2 20:50:43 2008
-***************
-*** 3932,3939 ****
- curwin->w_cursor.col = 0;
- searchcmdlen = 0;
- if (!do_search(NULL, c, cmd, 1L,
-! SEARCH_HIS + SEARCH_MSG + SEARCH_START,
-! NULL))
- {
- curwin->w_cursor = pos;
- cmd = NULL;
---- 3932,3938 ----
- curwin->w_cursor.col = 0;
- searchcmdlen = 0;
- if (!do_search(NULL, c, cmd, 1L,
-! SEARCH_HIS | SEARCH_MSG, NULL))
- {
- curwin->w_cursor = pos;
- cmd = NULL;
-***************
-*** 3980,3987 ****
- pos.col = 0;
- if (searchit(curwin, curbuf, &pos,
- *cmd == '?' ? BACKWARD : FORWARD,
-! (char_u *)"", 1L,
-! SEARCH_MSG + SEARCH_START,
- i, (linenr_T)0, NULL) != FAIL)
- lnum = pos.lnum;
- else
---- 3979,3985 ----
- pos.col = 0;
- if (searchit(curwin, curbuf, &pos,
- *cmd == '?' ? BACKWARD : FORWARD,
-! (char_u *)"", 1L, SEARCH_MSG,
- i, (linenr_T)0, NULL) != FAIL)
- lnum = pos.lnum;
- else
-*** ../vim-7.1.269/src/search.c Wed Feb 20 13:41:14 2008
---- src/search.c Sun Mar 2 22:00:50 2008
-***************
-*** 538,544 ****
- return FAIL;
- }
-
-! if (options & SEARCH_START)
- extra_col = 0;
- #ifdef FEAT_MBYTE
- /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */
---- 538,547 ----
- return FAIL;
- }
-
-! /* When not accepting a match at the start position set "extra_col" to a
-! * non-zero value. Don't do that when starting at MAXCOL, since MAXCOL +
-! * 1 is zero. */
-! if ((options & SEARCH_START) || pos->col == MAXCOL)
- extra_col = 0;
- #ifdef FEAT_MBYTE
- /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */
-*** ../vim-7.1.269/src/version.c Sun Mar 9 16:45:16 2008
---- src/version.c Mon Mar 10 21:32:07 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 270,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-102. When filling out your driver's license application, you give
- your IP 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.1.271
-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.1.271
-Problem: In a Vim build without autocommands, checking a file that was
- changed externally causes the current buffer to be changed
- unexpectedly. (Karsten Hopp)
-Solution: Store "curbuf" instead of "buf".
-Files: src/fileio.c
-
-
-*** ../vim-7.1.270/src/fileio.c Wed Feb 20 18:14:25 2008
---- src/fileio.c Tue Mar 11 21:35:05 2008
-***************
-*** 9239,9245 ****
- aco_save_T *aco; /* structure to save values in */
- buf_T *buf; /* new curbuf */
- {
-! aco->save_buf = buf;
- curbuf = buf;
- curwin->w_buffer = buf;
- }
---- 9248,9254 ----
- aco_save_T *aco; /* structure to save values in */
- buf_T *buf; /* new curbuf */
- {
-! aco->save_buf = curbuf;
- curbuf = buf;
- curwin->w_buffer = buf;
- }
-*** ../vim-7.1.270/src/version.c Mon Mar 10 21:33:52 2008
---- src/version.c Tue Mar 11 21:57:30 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 271,
- /**/
-
---
-In a world without walls and borders, who needs windows and gates?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.272
-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.1.272
-Problem: The special buffer name [Location List] is not used for a buffer
- displayed in another tab page.
-Solution: Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki
- Nishihara)
-Files: src/buffer.c
-
-
-*** ../vim-7.1.271/src/buffer.c Wed Oct 3 14:30:54 2007
---- src/buffer.c Wed Mar 5 21:55:44 2008
-***************
-*** 4912,4918 ****
- return retval;
- }
-
-! #ifdef FEAT_VIMINFO
- int
- read_viminfo_bufferlist(virp, writing)
- vir_T *virp;
---- 4912,4918 ----
- return retval;
- }
-
-! #if defined(FEAT_VIMINFO) || defined(PROTO)
- int
- read_viminfo_bufferlist(virp, writing)
- vir_T *virp;
-***************
-*** 5033,5045 ****
- #if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
- if (bt_quickfix(buf))
- {
-! win_T *win;
-
- /*
- * For location list window, w_llist_ref points to the location list.
- * For quickfix window, w_llist_ref is NULL.
- */
-! FOR_ALL_WINDOWS(win)
- if (win->w_buffer == buf)
- break;
- if (win != NULL && win->w_llist_ref != NULL)
---- 5033,5046 ----
- #if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
- if (bt_quickfix(buf))
- {
-! win_T *win;
-! tabpage_T *tp;
-
- /*
- * For location list window, w_llist_ref points to the location list.
- * For quickfix window, w_llist_ref is NULL.
- */
-! FOR_ALL_TAB_WINDOWS(tp, win)
- if (win->w_buffer == buf)
- break;
- if (win != NULL && win->w_llist_ref != NULL)
-*** ../vim-7.1.271/src/version.c Tue Mar 11 22:01:16 2008
---- src/version.c Wed Mar 12 12:21:13 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 272,
- /**/
-
---
-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.1.273
-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.1.273
-Problem: When profiling on Linux Vim exits early. (Liu Yubao)
-Solution: When profiling don't exit on SIGPROF.
-Files: src/Makefile, src/os_unix.c
-
-
-*** ../vim-7.1.272/src/Makefile Wed Mar 12 12:23:18 2008
---- src/Makefile Wed Mar 12 13:11:07 2008
-***************
-*** 545,551 ****
- # For unknown reasons adding "-lc" fixes a linking problem with GCC. That's
- # probably a bug in the "-pg" implementation.
- # Need to recompile everything after changing this: "make clean" "make".
-! #PROFILE_CFLAGS = -pg -g
- #PROFILE_LIBS = -pg
- #PROFILE_LIBS = -pg -lc
-
---- 545,551 ----
- # For unknown reasons adding "-lc" fixes a linking problem with GCC. That's
- # probably a bug in the "-pg" implementation.
- # Need to recompile everything after changing this: "make clean" "make".
-! #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
- #PROFILE_LIBS = -pg
- #PROFILE_LIBS = -pg -lc
-
-*** ../vim-7.1.272/src/os_unix.c Sun Feb 10 22:25:12 2008
---- src/os_unix.c Wed Mar 5 22:15:41 2008
-***************
-*** 269,276 ****
- #ifdef SIGVTALRM
- {SIGVTALRM, "VTALRM", TRUE},
- #endif
-! #if defined(SIGPROF) && !defined(FEAT_MZSCHEME)
-! /* MzScheme uses SIGPROF for its own needs */
- {SIGPROF, "PROF", TRUE},
- #endif
- #ifdef SIGXCPU
---- 269,277 ----
- #ifdef SIGVTALRM
- {SIGVTALRM, "VTALRM", TRUE},
- #endif
-! #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
-! /* MzScheme uses SIGPROF for its own needs; On Linux with profiling
-! * this makes Vim exit. WE_ARE_PROFILING is defined in Makefile. */
- {SIGPROF, "PROF", TRUE},
- #endif
- #ifdef SIGXCPU
-*** ../vim-7.1.272/src/version.c Wed Mar 12 12:22:56 2008
---- src/version.c Wed Mar 12 13:08:59 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 273,
- /**/
-
---
-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.1.274
-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.1.274 (after 7.1.272)
-Problem: Compiler warning for optimized build.
-Solution: Init win to NULL.
-Files: src/buffer.c
-
-
-*** ../vim-7.1.273/src/buffer.c Wed Mar 12 12:22:56 2008
---- src/buffer.c Wed Mar 12 13:15:21 2008
-***************
-*** 5033,5039 ****
- #if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
- if (bt_quickfix(buf))
- {
-! win_T *win;
- tabpage_T *tp;
-
- /*
---- 5033,5039 ----
- #if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
- if (bt_quickfix(buf))
- {
-! win_T *win = NULL;
- tabpage_T *tp;
-
- /*
-*** ../vim-7.1.273/src/version.c Wed Mar 12 13:16:37 2008
---- src/version.c Wed Mar 12 13:45:25 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 274,
- /**/
-
---
-FIXME and XXX are two common keywords used to mark broken or incomplete code
-not only since XXX as a sex reference would grab everbodys attention but
-simply due to the fact that Vim would highlight these words.
- -- Hendrik Scholz
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.275
-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.1.275 (extra)
-Problem: Mac: ATSUI and 'antialias' don't work properly together.
-Solution: Fix this and the input method. (Jjgod Jiang)
-Files: src/vim.h, src/gui_mac.c
-
-
-*** ../vim-7.1.274/src/vim.h Wed Feb 20 12:22:59 2008
---- src/vim.h Wed Mar 12 13:18:58 2008
-***************
-*** 461,468 ****
- /*
- * Check input method control.
- */
-! #if defined(FEAT_XIM) || \
-! (defined(FEAT_GUI) && (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME)))
- # define USE_IM_CONTROL
- #endif
-
---- 461,469 ----
- /*
- * Check input method control.
- */
-! #if defined(FEAT_XIM) \
-! || (defined(FEAT_GUI) && (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME))) \
-! || defined(FEAT_GUI_MAC)
- # define USE_IM_CONTROL
- #endif
-
-*** ../vim-7.1.274/src/gui_mac.c Sat Sep 29 13:15:29 2007
---- src/gui_mac.c Wed Mar 12 13:40:57 2008
-***************
-*** 59,65 ****
---- 59,91 ----
-
- #ifdef MACOS_CONVERT
- # define USE_CARBONKEYHANDLER
-+
-+ static int im_is_active = FALSE;
-+ #if 0
-+ static int im_start_row = 0;
-+ static int im_start_col = 0;
-+ #endif
-+
-+ #define NR_ELEMS(x) (sizeof(x) / sizeof(x[0]))
-+
-+ static TSMDocumentID gTSMDocument;
-+
-+ static void im_on_window_switch(int active);
- static EventHandlerUPP keyEventHandlerUPP = NULL;
-+ static EventHandlerUPP winEventHandlerUPP = NULL;
-+
-+ static pascal OSStatus gui_mac_handle_window_activate(
-+ EventHandlerCallRef nextHandler, EventRef theEvent, void *data);
-+
-+ static pascal OSStatus gui_mac_handle_text_input(
-+ EventHandlerCallRef nextHandler, EventRef theEvent, void *data);
-+
-+ static pascal OSStatus gui_mac_update_input_area(
-+ EventHandlerCallRef nextHandler, EventRef theEvent);
-+
-+ static pascal OSStatus gui_mac_unicode_key_event(
-+ EventHandlerCallRef nextHandler, EventRef theEvent);
-+
- #endif
-
-
-***************
-*** 137,143 ****
---- 166,176 ----
-
- #ifdef MACOS_CONVERT
- # define USE_ATSUI_DRAWING
-+ int p_macatsui_last;
- ATSUStyle gFontStyle;
-+ # ifdef FEAT_MBYTE
-+ ATSUStyle gWideFontStyle;
-+ # endif
- Boolean gIsFontFallbackSet;
- #endif
-
-***************
-*** 265,270 ****
---- 298,308 ----
- static WindowRef drawer = NULL; // TODO: put into gui.h
- #endif
-
-+ #ifdef USE_ATSUI_DRAWING
-+ static void gui_mac_set_font_attributes(GuiFont font);
-+ static void gui_mac_dispose_atsui_style(void);
-+ #endif
-+
- /*
- * ------------------------------------------------------------
- * Conversion Utility
-***************
-*** 1935,1946 ****
- /* Dim scrollbars */
- if (whichWindow == gui.VimWindow)
- {
-! ControlRef rootControl;
-! GetRootControl(gui.VimWindow, &rootControl);
-! if ((event->modifiers) & activeFlag)
-! ActivateControl(rootControl);
-! else
-! DeactivateControl(rootControl);
- }
-
- /* Activate */
---- 1973,1984 ----
- /* Dim scrollbars */
- if (whichWindow == gui.VimWindow)
- {
-! ControlRef rootControl;
-! GetRootControl(gui.VimWindow, &rootControl);
-! if ((event->modifiers) & activeFlag)
-! ActivateControl(rootControl);
-! else
-! DeactivateControl(rootControl);
- }
-
- /* Activate */
-***************
-*** 1976,1990 ****
- * Handle the key
- */
- #ifdef USE_CARBONKEYHANDLER
-
-! static int dialog_busy = FALSE; /* TRUE when gui_mch_dialog() wants the keys */
-
- # define INLINE_KEY_BUFFER_SIZE 80
- static pascal OSStatus
-! gui_mac_doKeyEventCarbon(
- EventHandlerCallRef nextHandler,
-! EventRef theEvent,
-! void *data)
- {
- /* Multibyte-friendly key event handler */
- OSStatus err = -1;
---- 2014,2100 ----
- * Handle the key
- */
- #ifdef USE_CARBONKEYHANDLER
-+ static pascal OSStatus
-+ gui_mac_handle_window_activate(
-+ EventHandlerCallRef nextHandler,
-+ EventRef theEvent,
-+ void *data)
-+ {
-+ UInt32 eventClass = GetEventClass(theEvent);
-+ UInt32 eventKind = GetEventKind(theEvent);
-+
-+ if (eventClass == kEventClassWindow)
-+ {
-+ switch (eventKind)
-+ {
-+ case kEventWindowActivated:
-+ #if defined(USE_IM_CONTROL)
-+ im_on_window_switch(TRUE);
-+ #endif
-+ return noErr;
-+
-+ case kEventWindowDeactivated:
-+ #if defined(USE_IM_CONTROL)
-+ im_on_window_switch(FALSE);
-+ #endif
-+ return noErr;
-+ }
-+ }
-+
-+ return eventNotHandledErr;
-+ }
-+
-+ static pascal OSStatus
-+ gui_mac_handle_text_input(
-+ EventHandlerCallRef nextHandler,
-+ EventRef theEvent,
-+ void *data)
-+ {
-+ UInt32 eventClass = GetEventClass(theEvent);
-+ UInt32 eventKind = GetEventKind(theEvent);
-+
-+ if (eventClass != kEventClassTextInput)
-+ return eventNotHandledErr;
-
-! if ((kEventTextInputUpdateActiveInputArea != eventKind) &&
-! (kEventTextInputUnicodeForKeyEvent != eventKind) &&
-! (kEventTextInputOffsetToPos != eventKind) &&
-! (kEventTextInputPosToOffset != eventKind) &&
-! (kEventTextInputGetSelectedText != eventKind))
-! return eventNotHandledErr;
-!
-! switch (eventKind)
-! {
-! case kEventTextInputUpdateActiveInputArea:
-! return gui_mac_update_input_area(nextHandler, theEvent);
-! case kEventTextInputUnicodeForKeyEvent:
-! return gui_mac_unicode_key_event(nextHandler, theEvent);
-!
-! case kEventTextInputOffsetToPos:
-! case kEventTextInputPosToOffset:
-! case kEventTextInputGetSelectedText:
-! break;
-! }
-!
-! return eventNotHandledErr;
-! }
-!
-! static pascal
-! OSStatus gui_mac_update_input_area(
-! EventHandlerCallRef nextHandler,
-! EventRef theEvent)
-! {
-! return eventNotHandledErr;
-! }
-!
-! static int dialog_busy = FALSE; /* TRUE when gui_mch_dialog() wants the
-! keys */
-
- # define INLINE_KEY_BUFFER_SIZE 80
- static pascal OSStatus
-! gui_mac_unicode_key_event(
- EventHandlerCallRef nextHandler,
-! EventRef theEvent)
- {
- /* Multibyte-friendly key event handler */
- OSStatus err = -1;
-***************
-*** 2000,2006 ****
- char_u *to = NULL;
- Boolean isSpecial = FALSE;
- int i;
-! EventRef keyEvent;
-
- /* Mask the mouse (as per user setting) */
- if (p_mh)
---- 2110,2116 ----
- char_u *to = NULL;
- Boolean isSpecial = FALSE;
- int i;
-! EventRef keyEvent;
-
- /* Mask the mouse (as per user setting) */
- if (p_mh)
-***************
-*** 2008,2046 ****
-
- /* Don't use the keys when the dialog wants them. */
- if (dialog_busy)
-! return eventNotHandledErr;
-
- if (noErr != GetEventParameter(theEvent, kEventParamTextInputSendText,
-! typeUnicodeText, NULL, 0, &actualSize, NULL))
-! return eventNotHandledErr;
-
- text = (UniChar *)alloc(actualSize);
- if (!text)
-! return eventNotHandledErr;
-
- err = GetEventParameter(theEvent, kEventParamTextInputSendText,
-! typeUnicodeText, NULL, actualSize, NULL, text);
- require_noerr(err, done);
-
- err = GetEventParameter(theEvent, kEventParamTextInputSendKeyboardEvent,
-! typeEventRef, NULL, sizeof(EventRef), NULL, &keyEvent);
- require_noerr(err, done);
-
- err = GetEventParameter(keyEvent, kEventParamKeyModifiers,
-! typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers);
- require_noerr(err, done);
-
- err = GetEventParameter(keyEvent, kEventParamKeyCode,
-! typeUInt32, NULL, sizeof(UInt32), NULL, &key_sym);
- require_noerr(err, done);
-
- err = GetEventParameter(keyEvent, kEventParamKeyMacCharCodes,
-! typeChar, NULL, sizeof(char), NULL, &charcode);
- require_noerr(err, done);
-
- #ifndef USE_CMD_KEY
- if (modifiers & cmdKey)
-! goto done; /* Let system handle Cmd+... */
- #endif
-
- key_char = charcode;
---- 2118,2156 ----
-
- /* Don't use the keys when the dialog wants them. */
- if (dialog_busy)
-! return eventNotHandledErr;
-
- if (noErr != GetEventParameter(theEvent, kEventParamTextInputSendText,
-! typeUnicodeText, NULL, 0, &actualSize, NULL))
-! return eventNotHandledErr;
-
- text = (UniChar *)alloc(actualSize);
- if (!text)
-! return eventNotHandledErr;
-
- err = GetEventParameter(theEvent, kEventParamTextInputSendText,
-! typeUnicodeText, NULL, actualSize, NULL, text);
- require_noerr(err, done);
-
- err = GetEventParameter(theEvent, kEventParamTextInputSendKeyboardEvent,
-! typeEventRef, NULL, sizeof(EventRef), NULL, &keyEvent);
- require_noerr(err, done);
-
- err = GetEventParameter(keyEvent, kEventParamKeyModifiers,
-! typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers);
- require_noerr(err, done);
-
- err = GetEventParameter(keyEvent, kEventParamKeyCode,
-! typeUInt32, NULL, sizeof(UInt32), NULL, &key_sym);
- require_noerr(err, done);
-
- err = GetEventParameter(keyEvent, kEventParamKeyMacCharCodes,
-! typeChar, NULL, sizeof(char), NULL, &charcode);
- require_noerr(err, done);
-
- #ifndef USE_CMD_KEY
- if (modifiers & cmdKey)
-! goto done; /* Let system handle Cmd+... */
- #endif
-
- key_char = charcode;
-***************
-*** 2048,2131 ****
-
- /* Find the special key (eg., for cursor keys) */
- if (actualSize <= sizeof(UniChar) &&
-! ((text[0] < 0x20) || (text[0] == 0x7f)))
- {
-! for (i = 0; special_keys[i].key_sym != (KeySym)0; ++i)
-! if (special_keys[i].key_sym == key_sym)
-! {
-! key_char = TO_SPECIAL(special_keys[i].vim_code0,
-! special_keys[i].vim_code1);
-! key_char = simplify_key(key_char,
-! (int *)&vimModifiers);
-! isSpecial = TRUE;
-! break;
-! }
- }
-
- /* Intercept CMD-. and CTRL-c */
- if (((modifiers & controlKey) && key_char == 'c') ||
-! ((modifiers & cmdKey) && key_char == '.'))
-! got_int = TRUE;
-
- if (!isSpecial)
- {
-! /* remove SHIFT for keys that are already shifted, e.g.,
-! * '(' and '*' */
-! if (key_char < 0x100 && !isalpha(key_char) && isprint(key_char))
-! vimModifiers &= ~MOD_MASK_SHIFT;
-!
-! /* remove CTRL from keys that already have it */
-! if (key_char < 0x20)
-! vimModifiers &= ~MOD_MASK_CTRL;
-!
-! /* don't process unicode characters here */
-! if (!IS_SPECIAL(key_char))
-! {
-! /* Following code to simplify and consolidate vimModifiers
-! * taken liberally from gui_w48.c */
-! key_char = simplify_key(key_char, (int *)&vimModifiers);
-!
-! /* Interpret META, include SHIFT, etc. */
-! key_char = extract_modifiers(key_char, (int *)&vimModifiers);
-! if (key_char == CSI)
-! key_char = K_CSI;
-!
-! if (IS_SPECIAL(key_char))
-! isSpecial = TRUE;
-! }
- }
-
- if (vimModifiers)
- {
-! result[len++] = CSI;
-! result[len++] = KS_MODIFIER;
-! result[len++] = vimModifiers;
- }
-
- if (isSpecial && IS_SPECIAL(key_char))
- {
-! result[len++] = CSI;
-! result[len++] = K_SECOND(key_char);
-! result[len++] = K_THIRD(key_char);
- }
- else
- {
-! encLen = actualSize;
-! to = mac_utf16_to_enc(text, actualSize, &encLen);
-! if (to)
-! {
-! /* This is basically add_to_input_buf_csi() */
-! for (i = 0; i < encLen && len < (INLINE_KEY_BUFFER_SIZE-1); ++i)
-! {
-! result[len++] = to[i];
-! if (to[i] == CSI)
-! {
-! result[len++] = KS_EXTRA;
-! result[len++] = (int)KE_CSI;
-! }
-! }
-! vim_free(to);
-! }
- }
-
- add_to_input_buf(result, len);
---- 2158,2241 ----
-
- /* Find the special key (eg., for cursor keys) */
- if (actualSize <= sizeof(UniChar) &&
-! ((text[0] < 0x20) || (text[0] == 0x7f)))
- {
-! for (i = 0; special_keys[i].key_sym != (KeySym)0; ++i)
-! if (special_keys[i].key_sym == key_sym)
-! {
-! key_char = TO_SPECIAL(special_keys[i].vim_code0,
-! special_keys[i].vim_code1);
-! key_char = simplify_key(key_char,
-! (int *)&vimModifiers);
-! isSpecial = TRUE;
-! break;
-! }
- }
-
- /* Intercept CMD-. and CTRL-c */
- if (((modifiers & controlKey) && key_char == 'c') ||
-! ((modifiers & cmdKey) && key_char == '.'))
-! got_int = TRUE;
-
- if (!isSpecial)
- {
-! /* remove SHIFT for keys that are already shifted, e.g.,
-! * '(' and '*' */
-! if (key_char < 0x100 && !isalpha(key_char) && isprint(key_char))
-! vimModifiers &= ~MOD_MASK_SHIFT;
-!
-! /* remove CTRL from keys that already have it */
-! if (key_char < 0x20)
-! vimModifiers &= ~MOD_MASK_CTRL;
-!
-! /* don't process unicode characters here */
-! if (!IS_SPECIAL(key_char))
-! {
-! /* Following code to simplify and consolidate vimModifiers
-! * taken liberally from gui_w48.c */
-! key_char = simplify_key(key_char, (int *)&vimModifiers);
-!
-! /* Interpret META, include SHIFT, etc. */
-! key_char = extract_modifiers(key_char, (int *)&vimModifiers);
-! if (key_char == CSI)
-! key_char = K_CSI;
-!
-! if (IS_SPECIAL(key_char))
-! isSpecial = TRUE;
-! }
- }
-
- if (vimModifiers)
- {
-! result[len++] = CSI;
-! result[len++] = KS_MODIFIER;
-! result[len++] = vimModifiers;
- }
-
- if (isSpecial && IS_SPECIAL(key_char))
- {
-! result[len++] = CSI;
-! result[len++] = K_SECOND(key_char);
-! result[len++] = K_THIRD(key_char);
- }
- else
- {
-! encLen = actualSize;
-! to = mac_utf16_to_enc(text, actualSize, &encLen);
-! if (to)
-! {
-! /* This is basically add_to_input_buf_csi() */
-! for (i = 0; i < encLen && len < (INLINE_KEY_BUFFER_SIZE-1); ++i)
-! {
-! result[len++] = to[i];
-! if (to[i] == CSI)
-! {
-! result[len++] = KS_EXTRA;
-! result[len++] = (int)KE_CSI;
-! }
-! }
-! vim_free(to);
-! }
- }
-
- add_to_input_buf(result, len);
-***************
-*** 2135,2144 ****
- vim_free(text);
- if (err == noErr)
- {
-! /* Fake event to wake up WNE (required to get
-! * key repeat working */
-! PostEvent(keyUp, 0);
-! return noErr;
- }
-
- return eventNotHandledErr;
---- 2245,2254 ----
- vim_free(text);
- if (err == noErr)
- {
-! /* Fake event to wake up WNE (required to get
-! * key repeat working */
-! PostEvent(keyUp, 0);
-! return noErr;
- }
-
- return eventNotHandledErr;
-***************
-*** 2334,2340 ****
- /* 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)
---- 2444,2450 ----
- /* 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)
-***************
-*** 2569,2579 ****
- if (IsShowContextualMenuClick(event))
- {
- # if 0
-! gui_mac_handle_contextual_menu(event);
- # else
-! gui_mac_doMouseDownEvent(event);
- # endif
-! return;
- }
-
- /* Handle normal event */
---- 2679,2689 ----
- if (IsShowContextualMenuClick(event))
- {
- # if 0
-! gui_mac_handle_contextual_menu(event);
- # else
-! gui_mac_doMouseDownEvent(event);
- # endif
-! return;
- }
-
- /* Handle normal event */
-***************
-*** 2832,2838 ****
- # else
- /* OSErr GetApplicationBundleFSSpec(FSSpecPtr theFSSpecPtr)
- * of TN2015
-- * This technic remove the ../Contents/MacOS/etc part
- */
- (void)GetCurrentProcess(&psn);
- /* if (err != noErr) return err; */
---- 2942,2947 ----
-***************
-*** 2933,2942 ****
- /* TODO: Move most of this stuff toward gui_mch_init */
- Rect windRect;
- MenuHandle pomme;
-- EventTypeSpec eventTypeSpec;
- EventHandlerRef mouseWheelHandlerRef;
- #ifdef USE_CARBONKEYHANDLER
-! EventHandlerRef keyEventHandlerRef;
- #endif
- ControlRef rootControl;
-
---- 3042,3050 ----
- /* TODO: Move most of this stuff toward gui_mch_init */
- Rect windRect;
- MenuHandle pomme;
- EventHandlerRef mouseWheelHandlerRef;
- #ifdef USE_CARBONKEYHANDLER
-! EventTypeSpec eventTypeSpec;
- #endif
- ControlRef rootControl;
-
-***************
-*** 3042,3057 ****
- }
-
- #ifdef USE_CARBONKEYHANDLER
-! eventTypeSpec.eventClass = kEventClassTextInput;
-! eventTypeSpec.eventKind = kEventUnicodeForKeyEvent;
-! keyEventHandlerUPP = NewEventHandlerUPP(gui_mac_doKeyEventCarbon);
-! if (noErr != InstallApplicationEventHandler(keyEventHandlerUPP, 1,
-! &eventTypeSpec, NULL, &keyEventHandlerRef))
- {
-- keyEventHandlerRef = NULL;
- DisposeEventHandlerUPP(keyEventHandlerUPP);
- keyEventHandlerUPP = NULL;
- }
- #endif
-
- /*
---- 3150,3196 ----
- }
-
- #ifdef USE_CARBONKEYHANDLER
-! InterfaceTypeList supportedServices = { kUnicodeDocument };
-! NewTSMDocument(1, supportedServices, &gTSMDocument, 0);
-!
-! /* We don't support inline input yet, use input window by default */
-! UseInputWindow(gTSMDocument, TRUE);
-!
-! /* Should we activate the document by default? */
-! // ActivateTSMDocument(gTSMDocument);
-!
-! EventTypeSpec textEventTypes[] = {
-! { kEventClassTextInput, kEventTextInputUpdateActiveInputArea },
-! { kEventClassTextInput, kEventTextInputUnicodeForKeyEvent },
-! { kEventClassTextInput, kEventTextInputPosToOffset },
-! { kEventClassTextInput, kEventTextInputOffsetToPos },
-! };
-!
-! keyEventHandlerUPP = NewEventHandlerUPP(gui_mac_handle_text_input);
-! if (noErr != InstallApplicationEventHandler(keyEventHandlerUPP,
-! NR_ELEMS(textEventTypes),
-! textEventTypes, NULL, NULL))
- {
- DisposeEventHandlerUPP(keyEventHandlerUPP);
- keyEventHandlerUPP = NULL;
- }
-+
-+ EventTypeSpec windowEventTypes[] = {
-+ { kEventClassWindow, kEventWindowActivated },
-+ { kEventClassWindow, kEventWindowDeactivated },
-+ };
-+
-+ /* Install window event handler to support TSMDocument activate and
-+ * deactivate */
-+ winEventHandlerUPP = NewEventHandlerUPP(gui_mac_handle_window_activate);
-+ if (noErr != InstallWindowEventHandler(gui.VimWindow,
-+ winEventHandlerUPP,
-+ NR_ELEMS(windowEventTypes),
-+ windowEventTypes, NULL, NULL))
-+ {
-+ DisposeEventHandlerUPP(winEventHandlerUPP);
-+ winEventHandlerUPP = NULL;
-+ }
- #endif
-
- /*
-***************
-*** 3107,3112 ****
---- 3246,3264 ----
- return OK;
- }
-
-+ #ifdef USE_ATSUI_DRAWING
-+ static void
-+ gui_mac_dispose_atsui_style(void)
-+ {
-+ if (p_macatsui && gFontStyle)
-+ ATSUDisposeStyle(gFontStyle);
-+ #ifdef FEAT_MBYTE
-+ if (p_macatsui && gWideFontStyle)
-+ ATSUDisposeStyle(gWideFontStyle);
-+ #endif
-+ }
-+ #endif
-+
- void
- gui_mch_exit(int rc)
- {
-***************
-*** 3122,3129 ****
- DisposeEventHandlerUPP(mouseWheelHandlerUPP);
-
- #ifdef USE_ATSUI_DRAWING
-! if (p_macatsui && gFontStyle)
-! ATSUDisposeStyle(gFontStyle);
- #endif
-
- /* Exit to shell? */
---- 3274,3286 ----
- DisposeEventHandlerUPP(mouseWheelHandlerUPP);
-
- #ifdef USE_ATSUI_DRAWING
-! gui_mac_dispose_atsui_style();
-! #endif
-!
-! #ifdef USE_CARBONKEYHANDLER
-! FixTSMDocument(gTSMDocument);
-! DeactivateTSMDocument(gTSMDocument);
-! DeleteTSMDocument(gTSMDocument);
- #endif
-
- /* Exit to shell? */
-***************
-*** 3263,3268 ****
---- 3420,3445 ----
- return selected_font;
- }
-
-+ #ifdef USE_ATSUI_DRAWING
-+ static void
-+ gui_mac_create_atsui_style(void)
-+ {
-+ if (p_macatsui && gFontStyle == NULL)
-+ {
-+ if (ATSUCreateStyle(&gFontStyle) != noErr)
-+ gFontStyle = NULL;
-+ }
-+ #ifdef FEAT_MBYTE
-+ if (p_macatsui && gWideFontStyle == NULL)
-+ {
-+ if (ATSUCreateStyle(&gWideFontStyle) != noErr)
-+ gWideFontStyle = NULL;
-+ }
-+ #endif
-+
-+ p_macatsui_last = p_macatsui;
-+ }
-+ #endif
-
- /*
- * Initialise vim to use the font with the given name. Return FAIL if the font
-***************
-*** 3280,3290 ****
- char_u used_font_name[512];
-
- #ifdef USE_ATSUI_DRAWING
-! if (p_macatsui && gFontStyle == NULL)
-! {
-! if (ATSUCreateStyle(&gFontStyle) != noErr)
-! gFontStyle = NULL;
-! }
- #endif
-
- if (font_name == NULL)
---- 3457,3463 ----
- char_u used_font_name[512];
-
- #ifdef USE_ATSUI_DRAWING
-! gui_mac_create_atsui_style();
- #endif
-
- if (font_name == NULL)
-***************
-*** 3348,3396 ****
- gui.char_height = font_info.ascent + font_info.descent + p_linespace;
-
- #ifdef USE_ATSUI_DRAWING
-- ATSUFontID fontID;
-- Fixed fontSize;
-- ATSStyleRenderingOptions fontOptions;
--
- if (p_macatsui && gFontStyle)
-! {
-! fontID = font & 0xFFFF;
-! fontSize = Long2Fix(font >> 16);
-!
-! /* No antialiasing by default (do not attempt to touch antialising
-! * options on pre-Jaguar) */
-! fontOptions =
-! (gMacSystemVersion >= 0x1020) ?
-! kATSStyleNoAntiAliasing :
-! kATSStyleNoOptions;
-!
-! ATSUAttributeTag attribTags[] =
-! {
-! kATSUFontTag, kATSUSizeTag, kATSUStyleRenderingOptionsTag,
-! kATSUMaxATSUITagValue+1
-! };
-! ByteCount attribSizes[] =
-! {
-! sizeof(ATSUFontID), sizeof(Fixed),
-! sizeof(ATSStyleRenderingOptions), sizeof font
-! };
-! ATSUAttributeValuePtr attribValues[] =
-! {
-! &fontID, &fontSize, &fontOptions, &font
-! };
-!
-! /* Convert font id to ATSUFontID */
-! if (FMGetFontFromFontFamilyInstance(fontID, 0, &fontID, NULL) == noErr)
-! {
-! if (ATSUSetAttributes(gFontStyle,
-! (sizeof attribTags)/sizeof(ATSUAttributeTag),
-! attribTags, attribSizes, attribValues) != noErr)
-! {
-! ATSUDisposeStyle(gFontStyle);
-! gFontStyle = NULL;
-! }
-! }
-! }
- #endif
-
- return OK;
---- 3521,3528 ----
- gui.char_height = font_info.ascent + font_info.descent + p_linespace;
-
- #ifdef USE_ATSUI_DRAWING
- if (p_macatsui && gFontStyle)
-! gui_mac_set_font_attributes(font);
- #endif
-
- return OK;
-***************
-*** 3447,3452 ****
---- 3579,3646 ----
- }
- #endif
-
-+ #ifdef USE_ATSUI_DRAWING
-+ static void
-+ gui_mac_set_font_attributes(GuiFont font)
-+ {
-+ ATSUFontID fontID;
-+ Fixed fontSize;
-+ Fixed fontWidth;
-+
-+ fontID = font & 0xFFFF;
-+ fontSize = Long2Fix(font >> 16);
-+ fontWidth = Long2Fix(gui.char_width);
-+
-+ ATSUAttributeTag attribTags[] =
-+ {
-+ kATSUFontTag, kATSUSizeTag, kATSUImposeWidthTag,
-+ kATSUMaxATSUITagValue + 1
-+ };
-+
-+ ByteCount attribSizes[] =
-+ {
-+ sizeof(ATSUFontID), sizeof(Fixed), sizeof(fontWidth),
-+ sizeof(font)
-+ };
-+
-+ ATSUAttributeValuePtr attribValues[] =
-+ {
-+ &fontID, &fontSize, &fontWidth, &font
-+ };
-+
-+ if (FMGetFontFromFontFamilyInstance(fontID, 0, &fontID, NULL) == noErr)
-+ {
-+ if (ATSUSetAttributes(gFontStyle,
-+ (sizeof attribTags) / sizeof(ATSUAttributeTag),
-+ attribTags, attribSizes, attribValues) != noErr)
-+ {
-+ # ifndef NDEBUG
-+ fprintf(stderr, "couldn't set font style\n");
-+ # endif
-+ ATSUDisposeStyle(gFontStyle);
-+ gFontStyle = NULL;
-+ }
-+
-+ #ifdef FEAT_MBYTE
-+ if (has_mbyte)
-+ {
-+ /* FIXME: we should use a more mbyte sensitive way to support
-+ * wide font drawing */
-+ fontWidth = Long2Fix(gui.char_width * 2);
-+
-+ if (ATSUSetAttributes(gWideFontStyle,
-+ (sizeof attribTags) / sizeof(ATSUAttributeTag),
-+ attribTags, attribSizes, attribValues) != noErr)
-+ {
-+ ATSUDisposeStyle(gWideFontStyle);
-+ gWideFontStyle = NULL;
-+ }
-+ }
-+ #endif
-+ }
-+ }
-+ #endif
-+
- /*
- * Set the current text font.
- */
-***************
-*** 3456,3518 ****
- #ifdef USE_ATSUI_DRAWING
- GuiFont currFont;
- ByteCount actualFontByteCount;
-- ATSUFontID fontID;
-- Fixed fontSize;
-- ATSStyleRenderingOptions fontOptions;
-
- if (p_macatsui && gFontStyle)
- {
- /* Avoid setting same font again */
-! if (ATSUGetAttribute(gFontStyle, kATSUMaxATSUITagValue+1, sizeof font,
-! &currFont, &actualFontByteCount) == noErr &&
-! actualFontByteCount == (sizeof font))
- {
- if (currFont == font)
- return;
- }
-
-! fontID = font & 0xFFFF;
-! fontSize = Long2Fix(font >> 16);
-! /* Respect p_antialias setting only for wide font.
-! * The reason for doing this at the moment is a bit complicated,
-! * but it's mainly because a) latin (non-wide) aliased fonts
-! * look bad in OS X 10.3.x and below (due to a bug in ATS), and
-! * b) wide multibyte input does not suffer from that problem. */
-! /*fontOptions =
-! (p_antialias && (font == gui.wide_font)) ?
-! kATSStyleNoOptions : kATSStyleNoAntiAliasing;
-! */
-! /*fontOptions = kATSStyleAntiAliasing;*/
-!
-! ATSUAttributeTag attribTags[] =
-! {
-! kATSUFontTag, kATSUSizeTag, kATSUStyleRenderingOptionsTag,
-! kATSUMaxATSUITagValue+1
-! };
-! ByteCount attribSizes[] =
-! {
-! sizeof(ATSUFontID), sizeof(Fixed),
-! sizeof(ATSStyleRenderingOptions), sizeof font
-! };
-! ATSUAttributeValuePtr attribValues[] =
-! {
-! &fontID, &fontSize, &fontOptions, &font
-! };
-!
-! if (FMGetFontFromFontFamilyInstance(fontID, 0, &fontID, NULL) == noErr)
-! {
-! if (ATSUSetAttributes(gFontStyle,
-! (sizeof attribTags)/sizeof(ATSUAttributeTag),
-! attribTags, attribSizes, attribValues) != noErr)
-! {
-! # ifndef NDEBUG
-! fprintf(stderr, "couldn't set font style\n");
-! # endif
-! ATSUDisposeStyle(gFontStyle);
-! gFontStyle = NULL;
-! }
-! }
-!
- }
-
- if (p_macatsui && !gIsFontFallbackSet)
---- 3650,3668 ----
- #ifdef USE_ATSUI_DRAWING
- GuiFont currFont;
- ByteCount actualFontByteCount;
-
- if (p_macatsui && gFontStyle)
- {
- /* Avoid setting same font again */
-! if (ATSUGetAttribute(gFontStyle, kATSUMaxATSUITagValue + 1,
-! sizeof(font), &currFont, &actualFontByteCount) == noErr
-! && actualFontByteCount == (sizeof font))
- {
- if (currFont == font)
- return;
- }
-
-! gui_mac_set_font_attributes(font);
- }
-
- if (p_macatsui && !gIsFontFallbackSet)
-***************
-*** 3536,3542 ****
- &fallbackFonts,
- NULL) == noErr)
- {
-! ATSUSetFontFallbacks((sizeof fallbackFonts)/sizeof(ATSUFontID), &fallbackFonts, kATSUSequentialFallbacksPreferred);
- }
- /*
- ATSUAttributeValuePtr fallbackValues[] = { };
---- 3686,3694 ----
- &fallbackFonts,
- NULL) == noErr)
- {
-! ATSUSetFontFallbacks((sizeof fallbackFonts)/sizeof(ATSUFontID),
-! &fallbackFonts,
-! kATSUSequentialFallbacksPreferred);
- }
- /*
- ATSUAttributeValuePtr fallbackValues[] = { };
-***************
-*** 3921,3927 ****
-
- /* - ATSUI automatically antialiases text (Someone)
- * - for some reason it does not work... (Jussi) */
-!
- /*
- * When antialiasing we're using srcOr mode, we have to clear the block
- * before drawing the text.
---- 4073,4082 ----
-
- /* - ATSUI automatically antialiases text (Someone)
- * - for some reason it does not work... (Jussi) */
-! #ifdef MAC_ATSUI_DEBUG
-! fprintf(stderr, "row = %d, col = %d, len = %d: '%c'\n",
-! row, col, len, len == 1 ? s[0] : ' ');
-! #endif
- /*
- * When antialiasing we're using srcOr mode, we have to clear the block
- * before drawing the text.
-***************
-*** 3956,3990 ****
- }
-
- {
-- /* Use old-style, non-antialiased QuickDraw text rendering. */
- TextMode(srcCopy);
- TextFace(normal);
-
-! /* SelectFont(hdc, gui.currFont); */
-!
- if (flags & DRAW_TRANSP)
- {
- TextMode(srcOr);
- }
-
- MoveTo(TEXT_X(col), TEXT_Y(row));
-- ATSUTextLayout textLayout;
-
-! if (ATSUCreateTextLayoutWithTextPtr(tofree,
-! kATSUFromTextBeginning, kATSUToTextEnd,
-! utf16_len,
-! (gFontStyle ? 1 : 0), &utf16_len,
-! (gFontStyle ? &gFontStyle : NULL),
-! &textLayout) == noErr)
- {
-! ATSUSetTransientFontMatching(textLayout, TRUE);
-
-! ATSUDrawText(textLayout,
-! kATSUFromTextBeginning, kATSUToTextEnd,
-! kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
-
- ATSUDisposeTextLayout(textLayout);
- }
- }
-
- if (flags & DRAW_UNDERC)
---- 4111,4232 ----
- }
-
- {
- TextMode(srcCopy);
- TextFace(normal);
-
-! /* SelectFont(hdc, gui.currFont); */
- if (flags & DRAW_TRANSP)
- {
- TextMode(srcOr);
- }
-
- MoveTo(TEXT_X(col), TEXT_Y(row));
-
-! if (gFontStyle && flags & DRAW_BOLD)
- {
-! Boolean attValue = true;
-! ATSUAttributeTag attribTags[] = { kATSUQDBoldfaceTag };
-! ByteCount attribSizes[] = { sizeof(Boolean) };
-! ATSUAttributeValuePtr attribValues[] = { &attValue };
-
-! ATSUSetAttributes(gFontStyle, 1, attribTags, attribSizes, attribValues);
-! }
-!
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! {
-! int n, width_in_cell, last_width_in_cell;
-! UniCharArrayOffset offset = 0;
-! UniCharCount yet_to_draw = 0;
-! ATSUTextLayout textLayout;
-! ATSUStyle textStyle;
-!
-! last_width_in_cell = 1;
-! ATSUCreateTextLayout(&textLayout);
-! ATSUSetTextPointerLocation(textLayout, tofree,
-! kATSUFromTextBeginning,
-! kATSUToTextEnd, utf16_len);
-! /*
-! ATSUSetRunStyle(textLayout, gFontStyle,
-! kATSUFromTextBeginning, kATSUToTextEnd); */
-!
-! /* Compute the length in display cells. */
-! for (n = 0; n < len; n += MB_BYTE2LEN(s[n]))
-! {
-! width_in_cell = (*mb_ptr2cells)(s + n);
-!
-! /* probably we are switching from single byte character
-! * to multibyte characters (which requires more than one
-! * cell to draw) */
-! if (width_in_cell != last_width_in_cell)
-! {
-! #ifdef MAC_ATSUI_DEBUG
-! fprintf(stderr, "\tn = %2d, (%d-%d), offset = %d, yet_to_draw = %d\n",
-! n, last_width_in_cell, width_in_cell, offset, yet_to_draw);
-! #endif
-! textStyle = last_width_in_cell > 1 ? gWideFontStyle
-! : gFontStyle;
-!
-! ATSUSetRunStyle(textLayout, textStyle, offset, yet_to_draw);
-! offset += yet_to_draw;
-! yet_to_draw = 0;
-! last_width_in_cell = width_in_cell;
-! }
-
-+ yet_to_draw++;
-+ }
-+
-+ if (yet_to_draw)
-+ {
-+ #ifdef MAC_ATSUI_DEBUG
-+ fprintf(stderr, "\tn = %2d, (%d-%d), offset = %d, yet_to_draw = %d\n",
-+ n, last_width_in_cell, width_in_cell, offset, yet_to_draw);
-+ #endif
-+ /* finish the rest style */
-+ textStyle = width_in_cell > 1 ? gWideFontStyle : gFontStyle;
-+ ATSUSetRunStyle(textLayout, textStyle, offset, kATSUToTextEnd);
-+ }
-+
-+ ATSUSetTransientFontMatching(textLayout, TRUE);
-+ ATSUDrawText(textLayout,
-+ kATSUFromTextBeginning, kATSUToTextEnd,
-+ kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
- ATSUDisposeTextLayout(textLayout);
- }
-+ else
-+ #endif
-+ {
-+ ATSUTextLayout textLayout;
-+
-+ if (ATSUCreateTextLayoutWithTextPtr(tofree,
-+ kATSUFromTextBeginning, kATSUToTextEnd,
-+ utf16_len,
-+ (gFontStyle ? 1 : 0), &utf16_len,
-+ (gFontStyle ? &gFontStyle : NULL),
-+ &textLayout) == noErr)
-+ {
-+ ATSUSetTransientFontMatching(textLayout, TRUE);
-+
-+ ATSUDrawText(textLayout,
-+ kATSUFromTextBeginning, kATSUToTextEnd,
-+ kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
-+
-+ ATSUDisposeTextLayout(textLayout);
-+ }
-+ }
-+
-+ /* drawing is done, now reset bold to normal */
-+ if (gFontStyle && flags & DRAW_BOLD)
-+ {
-+ Boolean attValue = false;
-+
-+ ATSUAttributeTag attribTags[] = { kATSUQDBoldfaceTag };
-+ ByteCount attribSizes[] = { sizeof(Boolean) };
-+ ATSUAttributeValuePtr attribValues[] = { &attValue };
-+
-+ ATSUSetAttributes(gFontStyle, 1, attribTags, attribSizes,
-+ attribValues);
-+ }
- }
-
- if (flags & DRAW_UNDERC)
-***************
-*** 3998,4003 ****
---- 4240,4252 ----
- gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
- {
- #if defined(USE_ATSUI_DRAWING)
-+ if (p_macatsui == 0 && p_macatsui_last != 0)
-+ /* switch from macatsui to nomacatsui */
-+ gui_mac_dispose_atsui_style();
-+ else if (p_macatsui != 0 && p_macatsui_last == 0)
-+ /* switch from nomacatsui to macatsui */
-+ gui_mac_create_atsui_style();
-+
- if (p_macatsui)
- draw_string_ATSUI(row, col, s, len, flags);
- else
-***************
-*** 4228,4239 ****
- */
- /* TODO: reduce wtime accordinly??? */
- if (wtime > -1)
-! sleeppyTick = 60*wtime/1000;
- else
- sleeppyTick = 32767;
- if (WaitNextEventWrp(mask, &event, sleeppyTick, dragRgn))
- {
-! gui_mac_handle_event(&event);
- if (input_available())
- {
- allow_scrollbar = FALSE;
---- 4477,4489 ----
- */
- /* TODO: reduce wtime accordinly??? */
- if (wtime > -1)
-! sleeppyTick = 60 * wtime / 1000;
- else
- sleeppyTick = 32767;
-+
- if (WaitNextEventWrp(mask, &event, sleeppyTick, dragRgn))
- {
-! gui_mac_handle_event(&event);
- if (input_available())
- {
- allow_scrollbar = FALSE;
-***************
-*** 6031,6037 ****
- #endif
- }
-
-! #if defined(USE_IM_CONTROL) || defined(PROTO)
- /*
- * Input Method Control functions.
- */
---- 6346,6352 ----
- #endif
- }
-
-! #if (defined(USE_IM_CONTROL) || defined(PROTO)) && defined(USE_CARBONKEYHANDLER)
- /*
- * Input Method Control functions.
- */
-***************
-*** 6042,6048 ****
---- 6357,6427 ----
- void
- im_set_position(int row, int col)
- {
-+ #if 0
- /* TODO: Implement me! */
-+ im_start_row = row;
-+ im_start_col = col;
-+ #endif
-+ }
-+
-+ static ScriptLanguageRecord gTSLWindow;
-+ static ScriptLanguageRecord gTSLInsert;
-+ static ScriptLanguageRecord gTSLDefault = { 0, 0 };
-+
-+ static Component gTSCWindow;
-+ static Component gTSCInsert;
-+ static Component gTSCDefault;
-+
-+ static int im_initialized = 0;
-+
-+ static void
-+ im_on_window_switch(int active)
-+ {
-+ ScriptLanguageRecord *slptr = NULL;
-+ OSStatus err;
-+
-+ if (! gui.in_use)
-+ return;
-+
-+ if (im_initialized == 0)
-+ {
-+ im_initialized = 1;
-+
-+ /* save default TSM component (should be U.S.) to default */
-+ GetDefaultInputMethodOfClass(&gTSCDefault, &gTSLDefault,
-+ kKeyboardInputMethodClass);
-+ }
-+
-+ if (active == TRUE)
-+ {
-+ im_is_active = TRUE;
-+ ActivateTSMDocument(gTSMDocument);
-+ slptr = &gTSLWindow;
-+
-+ if (slptr)
-+ {
-+ err = SetDefaultInputMethodOfClass(gTSCWindow, slptr,
-+ kKeyboardInputMethodClass);
-+ if (err == noErr)
-+ err = SetTextServiceLanguage(slptr);
-+
-+ if (err == noErr)
-+ KeyScript(slptr->fScript | smKeyForceKeyScriptMask);
-+ }
-+ }
-+ else
-+ {
-+ err = GetTextServiceLanguage(&gTSLWindow);
-+ if (err == noErr)
-+ slptr = &gTSLWindow;
-+
-+ if (slptr)
-+ GetDefaultInputMethodOfClass(&gTSCWindow, slptr,
-+ kKeyboardInputMethodClass);
-+
-+ im_is_active = FALSE;
-+ DeactivateTSMDocument(gTSMDocument);
-+ }
- }
-
- /*
-***************
-*** 6051,6057 ****
- void
- im_set_active(int active)
- {
-! KeyScript(active ? smKeySysScript : smKeyRoman);
- }
-
- /*
---- 6430,6486 ----
- void
- im_set_active(int active)
- {
-! ScriptLanguageRecord *slptr = NULL;
-! OSStatus err;
-!
-! if (! gui.in_use)
-! return;
-!
-! if (im_initialized == 0)
-! {
-! im_initialized = 1;
-!
-! /* save default TSM component (should be U.S.) to default */
-! GetDefaultInputMethodOfClass(&gTSCDefault, &gTSLDefault,
-! kKeyboardInputMethodClass);
-! }
-!
-! if (active == TRUE)
-! {
-! im_is_active = TRUE;
-! ActivateTSMDocument(gTSMDocument);
-! slptr = &gTSLInsert;
-!
-! if (slptr)
-! {
-! err = SetDefaultInputMethodOfClass(gTSCInsert, slptr,
-! kKeyboardInputMethodClass);
-! if (err == noErr)
-! err = SetTextServiceLanguage(slptr);
-!
-! if (err == noErr)
-! KeyScript(slptr->fScript | smKeyForceKeyScriptMask);
-! }
-! }
-! else
-! {
-! err = GetTextServiceLanguage(&gTSLInsert);
-! if (err == noErr)
-! slptr = &gTSLInsert;
-!
-! if (slptr)
-! GetDefaultInputMethodOfClass(&gTSCInsert, slptr,
-! kKeyboardInputMethodClass);
-!
-! /* restore to default when switch to normal mode, so than we could
-! * enter commands easier */
-! SetDefaultInputMethodOfClass(gTSCDefault, &gTSLDefault,
-! kKeyboardInputMethodClass);
-! SetTextServiceLanguage(&gTSLDefault);
-!
-! im_is_active = FALSE;
-! DeactivateTSMDocument(gTSMDocument);
-! }
- }
-
- /*
-***************
-*** 6060,6068 ****
- int
- im_get_status(void)
- {
-! SInt32 script = GetScriptManagerVariable(smKeyScript);
-! return (script != smRoman
-! && script == GetScriptManagerVariable(smSysScript)) ? 1 : 0;
- }
-
- #endif /* defined(USE_IM_CONTROL) || defined(PROTO) */
---- 6489,6498 ----
- int
- im_get_status(void)
- {
-! if (! gui.in_use)
-! return 0;
-!
-! return im_is_active;
- }
-
- #endif /* defined(USE_IM_CONTROL) || defined(PROTO) */
-***************
-*** 6118,6124 ****
- int numTabs = 0;
-
- for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
-! ++numTabs;
- return numTabs;
- }
-
---- 6548,6554 ----
- int numTabs = 0;
-
- for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
-! ++numTabs;
- return numTabs;
- }
-
-***************
-*** 6126,6133 ****
- static OSStatus
- dbItemDataCallback(ControlRef browser,
- DataBrowserItemID itemID,
-! DataBrowserPropertyID property /* column id */,
-! DataBrowserItemDataRef itemData,
- Boolean changeValue)
- {
- OSStatus status = noErr;
---- 6556,6563 ----
- static OSStatus
- dbItemDataCallback(ControlRef browser,
- DataBrowserItemID itemID,
-! DataBrowserPropertyID property /* column id */,
-! DataBrowserItemDataRef itemData,
- Boolean changeValue)
- {
- OSStatus status = noErr;
-***************
-*** 6170,6178 ****
- 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 ;-)
---- 6600,6608 ----
- 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 ;-)
-***************
-*** 6395,6403 ****
- gui_mch_show_tabline(int showit)
- {
- if (showit == 0)
-! CloseDrawer(drawer, true);
- else
-! OpenDrawer(drawer, kWindowEdgeRight, true);
- }
-
- /*
---- 6825,6833 ----
- gui_mch_show_tabline(int showit)
- {
- if (showit == 0)
-! CloseDrawer(drawer, true);
- else
-! OpenDrawer(drawer, kWindowEdgeRight, true);
- }
-
- /*
-***************
-*** 6425,6435 ****
- // 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;
---- 6855,6865 ----
- // 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;
-***************
-*** 6438,6444 ****
- {
- if (tp == curtab)
- curtabidx = nr;
-! tabLabels[nr-1] = getTabLabel(tp);
- }
-
- RemoveDataBrowserItems(dataBrowser, kDataBrowserNoItem, 0, NULL,
---- 6868,6874 ----
- {
- if (tp == curtab)
- curtabidx = nr;
-! tabLabels[nr-1] = getTabLabel(tp);
- }
-
- RemoveDataBrowserItems(dataBrowser, kDataBrowserNoItem, 0, NULL,
-*** ../vim-7.1.274/src/version.c Wed Mar 12 13:45:34 2008
---- src/version.c Wed Mar 12 14:31:37 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 275,
- /**/
-
---
-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.1.276
-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.1.276
-Problem: "gw" uses 'formatexpr', even though the docs say it doesn't.
-Solution: Don't use 'formatexpr' for "gw".
-Files: src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro
-
-
-*** ../vim-7.1.275/src/vim.h Wed Mar 12 14:38:51 2008
---- src/vim.h Wed Mar 12 16:31:44 2008
-***************
-*** 949,954 ****
---- 952,958 ----
- #define INSCHAR_FORMAT 1 /* force formatting */
- #define INSCHAR_DO_COM 2 /* format comments */
- #define INSCHAR_CTRLV 4 /* char typed just after CTRL-V */
-+ #define INSCHAR_NO_FEX 8 /* don't use 'formatexpr' */
-
- /* flags for open_line() */
- #define OPENLINE_DELSPACES 1 /* delete spaces after cursor */
-*** ../vim-7.1.275/src/edit.c Tue Jan 22 17:49:17 2008
---- src/edit.c Wed Mar 12 16:35:44 2008
-***************
-*** 5491,5497 ****
- #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()
---- 5491,5497 ----
- #if defined(FEAT_EVAL)
- int do_internal = TRUE;
-
-! if (*curbuf->b_p_fex != NUL && (flags & INSCHAR_NO_FEX) == 0)
- {
- do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0);
- /* It may be required to save for undo again, e.g. when setline()
-***************
-*** 6057,6063 ****
- * be adjusted for the text formatting.
- */
- saved_cursor = pos;
-! format_lines((linenr_T)-1);
- curwin->w_cursor = saved_cursor;
- saved_cursor.lnum = 0;
-
---- 6057,6063 ----
- * be adjusted for the text formatting.
- */
- saved_cursor = pos;
-! format_lines((linenr_T)-1, FALSE);
- curwin->w_cursor = saved_cursor;
- saved_cursor.lnum = 0;
-
-*** ../vim-7.1.275/src/ops.c Mon Feb 25 21:54:23 2008
---- src/ops.c Wed Mar 12 16:37:29 2008
-***************
-*** 4380,4386 ****
- if (keep_cursor)
- saved_cursor = oap->cursor_start;
-
-! format_lines(oap->line_count);
-
- /*
- * Leave the cursor at the first non-blank of the last formatted line.
---- 4380,4386 ----
- if (keep_cursor)
- saved_cursor = oap->cursor_start;
-
-! format_lines(oap->line_count, keep_cursor);
-
- /*
- * Leave the cursor at the first non-blank of the last formatted line.
-***************
-*** 4495,4502 ****
- * first line.
- */
- void
-! format_lines(line_count)
- linenr_T line_count;
- {
- int max_len;
- int is_not_par; /* current line not part of parag. */
---- 4495,4503 ----
- * first line.
- */
- void
-! format_lines(line_count, avoid_fex)
- linenr_T line_count;
-+ int avoid_fex; /* don't use 'formatexpr' */
- {
- int max_len;
- int is_not_par; /* current line not part of parag. */
-***************
-*** 4666,4672 ****
- #ifdef FEAT_COMMENTS
- + (do_comments ? INSCHAR_DO_COM : 0)
- #endif
-! , second_indent);
- State = old_State;
- p_smd = smd_save;
- second_indent = -1;
---- 4667,4673 ----
- #ifdef FEAT_COMMENTS
- + (do_comments ? INSCHAR_DO_COM : 0)
- #endif
-! + (avoid_fex ? INSCHAR_NO_FEX : 0), second_indent);
- State = old_State;
- p_smd = smd_save;
- second_indent = -1;
-*** ../vim-7.1.275/src/proto/ops.pro Wed Jan 16 20:01:14 2008
---- src/proto/ops.pro Wed Mar 12 16:38:39 2008
-***************
-*** 41,47 ****
- void op_format __ARGS((oparg_T *oap, int keep_cursor));
- void op_formatexpr __ARGS((oparg_T *oap));
- int fex_format __ARGS((linenr_T lnum, long count, int c));
-! void format_lines __ARGS((linenr_T line_count));
- int paragraph_start __ARGS((linenr_T lnum));
- int do_addsub __ARGS((int command, linenr_T Prenum1));
- int read_viminfo_register __ARGS((vir_T *virp, int force));
---- 41,47 ----
- void op_format __ARGS((oparg_T *oap, int keep_cursor));
- void op_formatexpr __ARGS((oparg_T *oap));
- int fex_format __ARGS((linenr_T lnum, long count, int c));
-! void format_lines __ARGS((linenr_T line_count, int avoid_fex));
- int paragraph_start __ARGS((linenr_T lnum));
- int do_addsub __ARGS((int command, linenr_T Prenum1));
- int read_viminfo_register __ARGS((vir_T *virp, int force));
-*** ../vim-7.1.275/src/version.c Wed Mar 12 14:38:51 2008
---- src/version.c Wed Mar 12 17:23:43 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 276,
- /**/
-
---
-An actual excerpt from a classified section of a city newspaper:
-"Illiterate? Write today for free help!"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.277
-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.1.277
-Problem: Default for 'paragraphs' misses some items (Colin Watson)
-Solution: Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega)
-Files: runtime/doc/options.txt, src/option.c
-
-
-*** ../vim-7.1.276/runtime/doc/options.txt Sat Jan 19 15:55:51 2008
---- runtime/doc/options.txt Wed Mar 12 17:34:32 2008
-***************
-*** 1,4 ****
-! *options.txt* For Vim version 7.1. Last change: 2007 Aug 10
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *options.txt* For Vim version 7.1. Last change: 2008 Feb 24
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 4878,4884 ****
- |autocmd-osfiletypes|
-
- *'paragraphs'* *'para'*
-! 'paragraphs' 'para' string (default "IPLPPPQPP LIpplpipbp")
- global
- Specifies the nroff macros that separate paragraphs. These are pairs
- of two letters (see |object-motions|).
---- 4901,4907 ----
- |autocmd-osfiletypes|
-
- *'paragraphs'* *'para'*
-! 'paragraphs' 'para' string (default "IPLPPPQPP TPHPLIPpLpItpplpipbp")
- global
- Specifies the nroff macros that separate paragraphs. These are pairs
- of two letters (see |object-motions|).
-*** ../vim-7.1.276/src/option.c Wed Feb 13 18:35:23 2008
---- src/option.c Wed Mar 12 17:34:32 2008
-***************
-*** 1839,1845 ****
- },
- {"paragraphs", "para", P_STRING|P_VI_DEF,
- (char_u *)&p_para, PV_NONE,
-! {(char_u *)"IPLPPPQPP LIpplpipbp", (char_u *)0L}},
- {"paste", NULL, P_BOOL|P_VI_DEF|P_PRI_MKRC,
- (char_u *)&p_paste, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L}},
---- 1839,1846 ----
- },
- {"paragraphs", "para", P_STRING|P_VI_DEF,
- (char_u *)&p_para, PV_NONE,
-! {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
-! (char_u *)0L}},
- {"paste", NULL, P_BOOL|P_VI_DEF|P_PRI_MKRC,
- (char_u *)&p_paste, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L}},
-*** ../vim-7.1.276/src/version.c Wed Mar 12 17:25:50 2008
---- src/version.c Wed Mar 12 17:35:14 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 277,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-119. You are reading a book and look for the scroll bar to get to
- the next page.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.278
-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.1.278 (extra, after 7.1.275)
-Problem: Build failure when USE_CARBONKEYHANDLER is not defined.
-Solution: Remove #ifdef.
-Files: src/gui_mac.c
-
-
-*** ../vim-7.1.277/src/gui_mac.c Wed Mar 12 14:38:51 2008
---- src/gui_mac.c Wed Mar 12 21:40:54 2008
-***************
-*** 3037,3049 ****
- gui_mch_init(void)
- {
- /* TODO: Move most of this stuff toward gui_mch_init */
-! Rect windRect;
-! MenuHandle pomme;
- EventHandlerRef mouseWheelHandlerRef;
-- #ifdef USE_CARBONKEYHANDLER
- EventTypeSpec eventTypeSpec;
-! #endif
-! ControlRef rootControl;
-
- if (Gestalt(gestaltSystemVersion, &gMacSystemVersion) != noErr)
- gMacSystemVersion = 0x1000; /* TODO: Default to minimum sensible value */
---- 3040,3050 ----
- gui_mch_init(void)
- {
- /* TODO: Move most of this stuff toward gui_mch_init */
-! Rect windRect;
-! MenuHandle pomme;
- EventHandlerRef mouseWheelHandlerRef;
- EventTypeSpec eventTypeSpec;
-! ControlRef rootControl;
-
- if (Gestalt(gestaltSystemVersion, &gMacSystemVersion) != noErr)
- gMacSystemVersion = 0x1000; /* TODO: Default to minimum sensible value */
-*** ../vim-7.1.277/src/version.c Wed Mar 12 17:37:53 2008
---- src/version.c Wed Mar 12 21:43:22 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 278,
- /**/
-
---
-Would you care for a drink? I mean, if it were, like,
-disabled and you had to look after 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.1.279
-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.1.279
-Problem: When using cscope temporary files are left behind.
-Solution: Send the quit command to cscope and give it two seconds to exit
- nicely before killing it. (partly by Dominique Pelle)
-Files: src/if_cscope.c
-
-
-*** ../vim-7.1.278/src/if_cscope.c Fri Sep 14 19:56:18 2007
---- src/if_cscope.c Sat Mar 15 12:38:12 2008
-***************
-*** 2096,2101 ****
---- 2096,2113 ----
- return CSCOPE_SUCCESS;
- }
-
-+ #if defined(UNIX) && defined(SIGALRM)
-+ /*
-+ * Used to catch and ignore SIGALRM below.
-+ */
-+ /* ARGSUSED */
-+ static RETSIGTYPE
-+ sig_handler SIGDEFARG(sigarg)
-+ {
-+ /* do nothing */
-+ SIGRETURN;
-+ }
-+ #endif
-
- /*
- * PRIVATE: cs_release_csp
-***************
-*** 2108,2116 ****
- int i;
- int freefnpp;
- {
-- #if defined(UNIX)
-- int pstat;
-- #else
- /*
- * Trying to exit normally (not sure whether it is fit to UNIX cscope
- */
---- 2120,2125 ----
-***************
-*** 2119,2124 ****
---- 2128,2179 ----
- (void)fputs("q\n", csinfo[i].to_fp);
- (void)fflush(csinfo[i].to_fp);
- }
-+ #if defined(UNIX)
-+ {
-+ int pstat;
-+ pid_t pid;
-+
-+ # if defined(HAVE_SIGACTION)
-+ struct sigaction sa, old;
-+
-+ /* Use sigaction() to limit the waiting time to two seconds. */
-+ sa.sa_handler = sig_handler;
-+ sa.sa_flags = SA_NODEFER;
-+ sigaction(SIGALRM, &sa, &old);
-+ alarm(2); /* 2 sec timeout */
-+
-+ /* Block until cscope exits or until timer expires */
-+ pid = waitpid(csinfo[i].pid, &pstat, 0);
-+
-+ /* cancel pending alarm if still there and restore signal */
-+ alarm(0);
-+ sigaction(SIGALRM, &old, NULL);
-+ # else
-+ int waited;
-+
-+ /* Can't use sigaction(), loop for two seconds. First yield the CPU
-+ * to give cscope a chance to exit quickly. */
-+ sleep(0);
-+ for (waited = 0; waited < 40; ++waited)
-+ {
-+ pid = waitpid(csinfo[i].pid, &pstat, WNOHANG);
-+ if (pid != 0)
-+ break; /* break unless the process is still running */
-+ mch_delay(50, FALSE); /* sleep 50 ms */
-+ }
-+ # endif
-+ /*
-+ * If the cscope process is still running: kill it.
-+ * Safety check: If the PID would be zero here, the entire X session
-+ * would be killed. -1 and 1 are dangerous as well.
-+ */
-+ if (pid < 0 && csinfo[i].pid > 1)
-+ {
-+ kill(csinfo[i].pid, SIGTERM);
-+ (void)waitpid(csinfo[i].pid, &pstat, 0);
-+ }
-+ }
-+ #else /* !UNIX */
- if (csinfo[i].hProc != NULL)
- {
- /* Give cscope a chance to exit normally */
-***************
-*** 2133,2150 ****
- if (csinfo[i].to_fp != NULL)
- (void)fclose(csinfo[i].to_fp);
-
-- /*
-- * Safety check: If the PID would be zero here, the entire X session would
-- * be killed. -1 and 1 are dangerous as well.
-- */
-- #if defined(UNIX)
-- if (csinfo[i].pid > 1)
-- {
-- kill(csinfo[i].pid, SIGTERM);
-- (void)waitpid(csinfo[i].pid, &pstat, 0);
-- }
-- #endif
--
- if (freefnpp)
- {
- vim_free(csinfo[i].fname);
---- 2188,2193 ----
-*** ../vim-7.1.278/src/version.c Wed Mar 12 21:47:31 2008
---- src/version.c Sat Mar 15 12:38:58 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 279,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-130. You can't get out of your desk even if it's time to eat or time
- to go to the bathroom.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.280
-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.1.280 (after 7.1.275)
-Problem: Mac: build problems when not using multibyte feature. (Nicholas
- Stallard)
-Solution: Don't define USE_IM_CONTROL when not using multibyte.
-Files: src/vim.h
-
-
-*** ../vim-7.1.279/src/vim.h Wed Mar 12 17:25:50 2008
---- src/vim.h Thu Mar 13 23:39:21 2008
-***************
-*** 463,469 ****
- */
- #if defined(FEAT_XIM) \
- || (defined(FEAT_GUI) && (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME))) \
-! || defined(FEAT_GUI_MAC)
- # define USE_IM_CONTROL
- #endif
-
---- 466,472 ----
- */
- #if defined(FEAT_XIM) \
- || (defined(FEAT_GUI) && (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME))) \
-! || (defined(FEAT_GUI_MAC) && defined(FEAT_MBYTE))
- # define USE_IM_CONTROL
- #endif
-
-*** ../vim-7.1.279/src/version.c Sat Mar 15 12:40:23 2008
---- src/version.c Sat Mar 15 13:08:40 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 280,
- /**/
-
---
-Why is it called "Windows"? "Gates" would be more appropriate...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.281
-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.1.281 (after 7.1.279)
-Problem: sa.sa_mask is not initialized. Cscope may not exit.
-Solution: Use sigemptyset(). Use SIGKILL instead of SIGTERM. (Dominique
- Pelle)
-Files: src/if_cscope.c
-
-
-*** ../vim-7.1.280/src/if_cscope.c Sat Mar 15 12:40:23 2008
---- src/if_cscope.c Sun Mar 16 13:05:51 2008
-***************
-*** 2136,2142 ****
- # if defined(HAVE_SIGACTION)
- struct sigaction sa, old;
-
-! /* Use sigaction() to limit the waiting time to two seconds. */
- sa.sa_handler = sig_handler;
- sa.sa_flags = SA_NODEFER;
- sigaction(SIGALRM, &sa, &old);
---- 2136,2143 ----
- # if defined(HAVE_SIGACTION)
- struct sigaction sa, old;
-
-! /* Use sigaction() to limit the waiting time to two seconds. */
-! sigemptyset(&sa.sa_mask);
- sa.sa_handler = sig_handler;
- sa.sa_flags = SA_NODEFER;
- sigaction(SIGALRM, &sa, &old);
-***************
-*** 2169,2175 ****
- */
- if (pid < 0 && csinfo[i].pid > 1)
- {
-! kill(csinfo[i].pid, SIGTERM);
- (void)waitpid(csinfo[i].pid, &pstat, 0);
- }
- }
---- 2170,2176 ----
- */
- if (pid < 0 && csinfo[i].pid > 1)
- {
-! kill(csinfo[i].pid, SIGKILL);
- (void)waitpid(csinfo[i].pid, &pstat, 0);
- }
- }
-*** ../vim-7.1.280/src/version.c Sat Mar 15 13:10:57 2008
---- src/version.c Sun Mar 16 13:08:08 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 281,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-136. You decide to stay in a low-paying job teaching just for the
- free Internet access.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.282 (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.1.282 (extra)
-Problem: Win64: Edit with Vim context menu isn't installed correctly.
- Compiler warnings and a few other things.
-Solution: Add [ and ] to entry of class name. Use UINT_PTR instead of UINT.
- And a fixes for the other things. (George V. Reilly)
-Files: src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h,
- src/if_ole.idl, src/INSTALLpc.txt, src/Make_mvc.mak,
- src/os_win32.c,
-
-
-*** ../vim-7.1.281/src/GvimExt/Makefile Sat May 5 12:51:46 2007
---- src/GvimExt/Makefile Tue Jul 10 16:18:18 2007
-***************
-*** 24,30 ****
- gvimext.obj: gvimext.h
-
- .cpp.obj:
-! $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsdll) $*.cpp
-
- gvimext.res: gvimext.rc
- $(rc) $(rcflags) $(rcvars) gvimext.rc
---- 24,30 ----
- gvimext.obj: gvimext.h
-
- .cpp.obj:
-! $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsmt) $*.cpp
-
- gvimext.res: gvimext.rc
- $(rc) $(rcflags) $(rcvars) gvimext.rc
-*** ../vim-7.1.281/src/dosinst.c Thu May 10 20:54:39 2007
---- src/dosinst.c Tue Jul 10 16:07:16 2007
-***************
-*** 1365,1371 ****
-
- printf("Creating \"Edit with Vim\" popup menu entry\n");
-
-! fprintf(fd, "HKEY_CLASSES_ROOT\\CLSID\\%s\n", vim_ext_clsid);
- fprintf(fd, "@=\"%s\"\n", vim_ext_name);
- fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s\\InProcServer32]\n",
- vim_ext_clsid);
---- 1365,1371 ----
-
- printf("Creating \"Edit with Vim\" popup menu entry\n");
-
-! fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s]\n", vim_ext_clsid);
- fprintf(fd, "@=\"%s\"\n", vim_ext_name);
- fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s\\InProcServer32]\n",
- vim_ext_clsid);
-*** ../vim-7.1.281/src/if_ole.cpp Wed Aug 16 17:34:09 2006
---- src/if_ole.cpp Tue Sep 25 16:44:44 2007
-***************
-*** 34,39 ****
---- 34,45 ----
- extern HWND vim_parent_hwnd;
- }
-
-+ #if _MSC_VER < 1300
-+ /* Work around old versions of basetsd.h which wrongly declares
-+ * UINT_PTR as unsigned long */
-+ # define UINT_PTR UINT
-+ #endif
-+
- #include "if_ole.h" // Interface definitions
- #include "iid_ole.c" // UUID definitions (compile here)
-
-***************
-*** 107,113 ****
- STDMETHOD(SendKeys)(BSTR keys);
- STDMETHOD(Eval)(BSTR expr, BSTR *result);
- STDMETHOD(SetForeground)(void);
-! STDMETHOD(GetHwnd)(UINT *result);
-
- private:
- // Constructor is private - create using CVim::Create()
---- 113,119 ----
- STDMETHOD(SendKeys)(BSTR keys);
- STDMETHOD(Eval)(BSTR expr, BSTR *result);
- STDMETHOD(SetForeground)(void);
-! STDMETHOD(GetHwnd)(UINT_PTR *result);
-
- private:
- // Constructor is private - create using CVim::Create()
-***************
-*** 288,296 ****
- }
-
- STDMETHODIMP
-! CVim::GetHwnd(UINT *result)
- {
-! *result = (UINT) s_hwnd;
- return S_OK;
- }
-
---- 294,302 ----
- }
-
- STDMETHODIMP
-! CVim::GetHwnd(UINT_PTR *result)
- {
-! *result = (UINT_PTR)s_hwnd;
- return S_OK;
- }
-
-*** ../vim-7.1.281/src/if_ole.h Sun Jun 13 17:46:29 2004
---- src/if_ole.h Tue Jul 10 16:21:18 2007
-***************
-*** 79,85 ****
- virtual HRESULT STDMETHODCALLTYPE SetForeground( void) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE GetHwnd(
-! /* [retval][out] */ UINT __RPC_FAR *result) = 0;
-
- };
-
---- 79,85 ----
- virtual HRESULT STDMETHODCALLTYPE SetForeground( void) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE GetHwnd(
-! /* [retval][out] */ UINT_PTR __RPC_FAR *result) = 0;
-
- };
-
-***************
-*** 143,149 ****
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHwnd )(
- IVim __RPC_FAR * This,
-! /* [retval][out] */ UINT __RPC_FAR *result);
-
- END_INTERFACE
- } IVimVtbl;
---- 143,149 ----
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHwnd )(
- IVim __RPC_FAR * This,
-! /* [retval][out] */ UINT_PTR __RPC_FAR *result);
-
- END_INTERFACE
- } IVimVtbl;
-***************
-*** 236,242 ****
-
- HRESULT STDMETHODCALLTYPE IVim_GetHwnd_Proxy(
- IVim __RPC_FAR * This,
-! /* [retval][out] */ UINT __RPC_FAR *result);
-
-
- void __RPC_STUB IVim_GetHwnd_Stub(
---- 236,242 ----
-
- HRESULT STDMETHODCALLTYPE IVim_GetHwnd_Proxy(
- IVim __RPC_FAR * This,
-! /* [retval][out] */ UINT_PTR __RPC_FAR *result);
-
-
- void __RPC_STUB IVim_GetHwnd_Stub(
-*** ../vim-7.1.281/src/if_ole.idl Sun Jun 13 17:22:03 2004
---- src/if_ole.idl Tue Jul 10 16:21:45 2007
-***************
-*** 20,26 ****
- HRESULT SendKeys([in]BSTR keys);
- HRESULT Eval([in]BSTR expr, [out, retval]BSTR* result);
- HRESULT SetForeground(void);
-! HRESULT GetHwnd([out, retval]UINT* result);
- };
-
- // Component and type library definitions
---- 20,26 ----
- HRESULT SendKeys([in]BSTR keys);
- HRESULT Eval([in]BSTR expr, [out, retval]BSTR* result);
- HRESULT SetForeground(void);
-! HRESULT GetHwnd([out, retval]UINT_PTR* result);
- };
-
- // Component and type library definitions
-*** ../vim-7.1.281/src/INSTALLpc.txt Sun Apr 30 20:29:26 2006
---- src/INSTALLpc.txt Wed Mar 12 15:01:37 2008
-***************
-*** 82,90 ****
- |ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
- and |windbg-download|.
-
-! It's easier to download Visual C++ 2005 Express Edition, |msvc-2005-express|.
-! The advantage of the VC 2003 Toolkit is that it will be freely available
-! long after VC 2005 Express Edition stops being free in November 2006.
-
- The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
- http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
---- 82,89 ----
- |ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
- and |windbg-download|.
-
-! It's easier to download Visual C++ 2008 Express Edition, |msvc-2008-express|,
-! which is freely available in perpetuity.
-
- The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
- http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
-***************
-*** 152,157 ****
---- 151,164 ----
- http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx
-
-
-+ Visual C++ 2008 Express Edition *msvc-2008-express*
-+ -------------------------------
-+
-+ Visual C++ 2008 Express Edition can be downloaded for free from:
-+ http://msdn2.microsoft.com/en-us/express/default.aspx
-+ This includes the IDE and the debugger. You can build Vim with Make_mvc.mak.
-+
-+
- 2. MinGW
- ========
-
-*** ../vim-7.1.281/src/Make_mvc.mak Wed Oct 3 13:28:40 2007
---- src/Make_mvc.mak Wed Mar 12 15:09:55 2008
-***************
-*** 1,6 ****
- # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me)
- # and Win64, using the Microsoft Visual C++ compilers. Known to work with
-! # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), and VC8 (VS2005).
- #
- # To build using other Windows compilers, see INSTALLpc.txt
- #
---- 1,7 ----
- # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me)
- # and Win64, using the Microsoft Visual C++ compilers. Known to work with
-! # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005),
-! # and VC9 (VS2008).
- #
- # To build using other Windows compilers, see INSTALLpc.txt
- #
-***************
-*** 285,291 ****
- # need shell32.lib for ExtractIcon()
- # gdi32.lib and comdlg32.lib for printing support
- # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
-! CON_LIB = advapi32.lib shell32.lib gdi32.lib comdlg32.lib ole32.lib uuid.lib
- !if "$(DELAYLOAD)" == "yes"
- CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
- !endif
---- 286,293 ----
- # need shell32.lib for ExtractIcon()
- # gdi32.lib and comdlg32.lib for printing support
- # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
-! CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \
-! comdlg32.lib ole32.lib uuid.lib /machine:$(CPU) /nodefaultlib
- !if "$(DELAYLOAD)" == "yes"
- CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
- !endif
-***************
-*** 331,336 ****
---- 333,339 ----
- !endif
- !if "$(_NMAKE_VER)" == "6.00.8168.0"
- MSVCVER = 6.0
-+ CPU = ix86
- !endif
- !if "$(_NMAKE_VER)" == "7.00.9466"
- MSVCVER = 7.0
-***************
-*** 344,349 ****
---- 347,355 ----
- !if "$(_NMAKE_VER)" == "8.00.50727.762"
- MSVCVER = 8.0
- !endif
-+ !if "$(_NMAKE_VER)" == "9.00.20706.01"
-+ MSVCVER = 9.0
-+ !endif
- !endif
-
- # Abort bulding VIM if version of VC is unrecognised.
-***************
-*** 352,364 ****
- !message Cannot determine Visual C version being used. If you are using the
- !message Windows SDK then you must have the environment variable MSVCVER set to
- !message your version of the VC compiler. If you are not using the Express
-! !message version of Visual C you van either set MSVCVER or update this makefile
-! !message to handle the new value for _NMAKE_VER.
- !error Make aborted.
- !endif
-
- # Convert processor ID to MVC-compatible number
-! !if "$(MSVCVER)" != "8.0"
- !if "$(CPUNR)" == "i386"
- CPUARG = /G3
- !elseif "$(CPUNR)" == "i486"
---- 358,370 ----
- !message Cannot determine Visual C version being used. If you are using the
- !message Windows SDK then you must have the environment variable MSVCVER set to
- !message your version of the VC compiler. If you are not using the Express
-! !message version of Visual C, you can either set MSVCVER or update this makefile
-! !message to handle the new value for _NMAKE_VER, "$(_NMAKE_VER)".
- !error Make aborted.
- !endif
-
- # Convert processor ID to MVC-compatible number
-! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0")
- !if "$(CPUNR)" == "i386"
- CPUARG = /G3
- !elseif "$(CPUNR)" == "i486"
-***************
-*** 373,379 ****
- CPUARG =
- !endif
- !else
-! # VC8 only allows specifying SSE architecture
- !if "$(CPUNR)" == "pentium4"
- CPUARG = /arch:SSE2
- !endif
---- 379,385 ----
- CPUARG =
- !endif
- !else
-! # VC8/9 only allows specifying SSE architecture
- !if "$(CPUNR)" == "pentium4"
- CPUARG = /arch:SSE2
- !endif
-***************
-*** 391,397 ****
- !else # MAXSPEED
- OPTFLAG = /Ox
- !endif
-! !if "$(MSVCVER)" == "8.0"
- # Use link time code generation if not worried about size
- !if "$(OPTIMIZE)" != "SPACE"
- OPTFLAG = $(OPTFLAG) /GL
---- 397,403 ----
- !else # MAXSPEED
- OPTFLAG = /Ox
- !endif
-! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0")
- # Use link time code generation if not worried about size
- !if "$(OPTIMIZE)" != "SPACE"
- OPTFLAG = $(OPTFLAG) /GL
-***************
-*** 404,414 ****
- LIBC = msvcrt.lib
- ! else
- LIBC = libcmt.lib
-! CFLAGS = $(CFLAGS) /MT
- ! endif
- !else # DEBUG
- VIM = vimd
-! ! if "$(CPU)" == "i386"
- DEBUGINFO = /ZI
- ! endif
- CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
---- 410,420 ----
- LIBC = msvcrt.lib
- ! else
- LIBC = libcmt.lib
-! CFLAGS = $(CFLAGS) /Zl /MT
- ! endif
- !else # DEBUG
- VIM = vimd
-! ! if ("$(CPU)" == "i386") || ("$(CPU)" == "ix86")
- DEBUGINFO = /ZI
- ! endif
- CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
-***************
-*** 424,430 ****
- LIBC = $(LIBC) msvcrtd.lib
- ! else
- LIBC = $(LIBC) libcmtd.lib
-! CFLAGS = $(CFLAGS) /MTd
- ! endif
- !endif # DEBUG
-
---- 430,436 ----
- LIBC = $(LIBC) msvcrtd.lib
- ! else
- LIBC = $(LIBC) libcmtd.lib
-! CFLAGS = $(CFLAGS) /Zl /MTd
- ! endif
- !endif # DEBUG
-
-***************
-*** 534,540 ****
- $(OUTDIR)\gui_w32.obj \
- $(OUTDIR)\os_w32exe.obj
- GUI_LIB = \
-! oldnames.lib kernel32.lib gdi32.lib version.lib $(IME_LIB) \
- winspool.lib comctl32.lib advapi32.lib shell32.lib \
- /machine:$(CPU) /nodefaultlib
- !else
---- 540,546 ----
- $(OUTDIR)\gui_w32.obj \
- $(OUTDIR)\os_w32exe.obj
- GUI_LIB = \
-! gdi32.lib version.lib $(IME_LIB) \
- winspool.lib comctl32.lib advapi32.lib shell32.lib \
- /machine:$(CPU) /nodefaultlib
- !else
-***************
-*** 757,763 ****
-
- # Report link time code generation progress if used.
- !ifdef NODEBUG
-! !if "$(MSVCVER)" == "8.0"
- !if "$(OPTIMIZE)" != "SPACE"
- LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
- !endif
---- 763,769 ----
-
- # Report link time code generation progress if used.
- !ifdef NODEBUG
-! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0")
- !if "$(OPTIMIZE)" != "SPACE"
- LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
- !endif
-*** ../vim-7.1.281/src/os_win32.c Tue Nov 20 17:21:28 2007
---- src/os_win32.c Wed Mar 12 15:24:33 2008
-***************
-*** 2856,2862 ****
- windgoto((int)Rows - 1, 0);
- g_fForceExit = TRUE;
-
-! sprintf((char *)IObuff, _("Vim: Caught %s event\n"),
- (dwCtrlType == CTRL_CLOSE_EVENT
- ? _("close")
- : dwCtrlType == CTRL_LOGOFF_EVENT
---- 2856,2862 ----
- windgoto((int)Rows - 1, 0);
- g_fForceExit = TRUE;
-
-! vim_snprintf((char *)IObuff, IOSIZE, _("Vim: Caught %s event\n"),
- (dwCtrlType == CTRL_CLOSE_EVENT
- ? _("close")
- : dwCtrlType == CTRL_LOGOFF_EVENT
-***************
-*** 3282,3293 ****
- {
- /* we use "command" or "cmd" to start the shell; slow but easy */
- char_u *newcmd;
-!
-! newcmd = lalloc((long_u) (
- #ifdef FEAT_GUI_W32
- STRLEN(vimrun_path) +
- #endif
-! STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10), TRUE);
- if (newcmd != NULL)
- {
- char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd);
---- 3282,3294 ----
- {
- /* we use "command" or "cmd" to start the shell; slow but easy */
- char_u *newcmd;
-! long_u cmdlen = (
- #ifdef FEAT_GUI_W32
- STRLEN(vimrun_path) +
- #endif
-! STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
-!
-! newcmd = lalloc(cmdlen, TRUE);
- if (newcmd != NULL)
- {
- char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd);
-***************
-*** 3373,3386 ****
- if (!s_dont_use_vimrun)
- /* Use vimrun to execute the command. It opens a console
- * window, which can be closed without killing Vim. */
-! sprintf((char *)newcmd, "%s%s%s %s %s",
- vimrun_path,
- (msg_silent != 0 || (options & SHELL_DOOUT))
- ? "-s " : "",
- p_sh, p_shcf, cmd);
- else
- #endif
-! sprintf((char *)newcmd, "%s %s %s", p_sh, p_shcf, cmd);
- x = mch_system((char *)newcmd, options);
- }
- vim_free(newcmd);
---- 3374,3388 ----
- if (!s_dont_use_vimrun)
- /* Use vimrun to execute the command. It opens a console
- * window, which can be closed without killing Vim. */
-! vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s",
- vimrun_path,
- (msg_silent != 0 || (options & SHELL_DOOUT))
- ? "-s " : "",
- p_sh, p_shcf, cmd);
- else
- #endif
-! vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
-! p_sh, p_shcf, cmd);
- x = mch_system((char *)newcmd, options);
- }
- vim_free(newcmd);
-***************
-*** 4664,4675 ****
---- 4666,4694 ----
- # endif
- )
- {
-+ # if defined(DEBUG) && _MSC_VER > 1200
-+ /* Work around an annoying assertion in the Microsoft debug CRT
-+ * when mode's text/binary setting doesn't match _get_fmode(). */
-+ char newMode = mode[strlen(mode) - 1];
-+ int oldMode = 0;
-+
-+ _get_fmode(&oldMode);
-+ if (newMode == 't')
-+ _set_fmode(_O_TEXT);
-+ else if (newMode == 'b')
-+ _set_fmode(_O_BINARY);
-+ # endif
- wn = enc_to_ucs2(name, NULL);
- wm = enc_to_ucs2(mode, NULL);
- if (wn != NULL && wm != NULL)
- f = _wfopen(wn, wm);
- vim_free(wn);
- vim_free(wm);
-+
-+ # if defined(DEBUG) && _MSC_VER > 1200
-+ _set_fmode(oldMode);
-+ # endif
-+
- if (f != NULL)
- return f;
- /* Retry with non-wide function (for Windows 98). Can't use
-*** ../vim-7.1.281/src/version.c Sun Mar 16 13:09:14 2008
---- src/version.c Sun Mar 16 14:49:21 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 282,
- /**/
-
---
-Amazing but true: If all the salmon caught in Canada in one year were laid
-end to end across the Sahara Desert, the smell would be absolutely awful.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.283
-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.1.283
-Problem: Non-extra part for 7.1.282.
-Solution: Various changes.
-Files: src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/main.c,
- src/mark.c, src/netbeans.c, src/popupmnu.c, src/vim.h,
- src/window.c
-
-
-*** ../vim-7.1.282/src/ex_docmd.c Mon Mar 10 21:33:52 2008
---- src/ex_docmd.c Wed Mar 12 14:53:18 2008
-***************
-*** 3009,3015 ****
- break;
- if (!isalpha(p[j]) && j >= cmdmods[i].minlen
- && (p == cmd || cmdmods[i].has_count))
-! return j + (p - cmd);
- }
- return 0;
- }
---- 3009,3015 ----
- break;
- if (!isalpha(p[j]) && j >= cmdmods[i].minlen
- && (p == cmd || cmdmods[i].has_count))
-! return j + (int)(p - cmd);
- }
- return 0;
- }
-*** ../vim-7.1.282/src/globals.h Tue Jan 1 14:16:42 2008
---- src/globals.h Wed Mar 12 14:54:00 2008
-***************
-*** 1263,1269 ****
- * The value of the --windowid argument.
- * For embedding gvim inside another application.
- */
-! EXTERN int win_socket_id INIT(= 0);
- #endif
-
- #if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL)
---- 1263,1269 ----
- * The value of the --windowid argument.
- * For embedding gvim inside another application.
- */
-! EXTERN long_u win_socket_id INIT(= 0);
- #endif
-
- #if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL)
-*** ../vim-7.1.282/src/if_cscope.c Sun Mar 16 13:09:14 2008
---- src/if_cscope.c Sun Mar 16 13:05:51 2008
-***************
-*** 1400,1406 ****
- return NULL;
-
- /* Store length of eap->arg before it gets modified by strtok(). */
-! eap_arg_len = STRLEN(eap->arg);
-
- if ((stok = strtok((char *)(eap->arg), (const char *)" ")) == NULL)
- return NULL;
---- 1400,1406 ----
- return NULL;
-
- /* Store length of eap->arg before it gets modified by strtok(). */
-! eap_arg_len = (int)STRLEN(eap->arg);
-
- if ((stok = strtok((char *)(eap->arg), (const char *)" ")) == NULL)
- return NULL;
-*** ../vim-7.1.282/src/main.c Sun Jan 13 16:17:02 2008
---- src/main.c Wed Mar 12 15:04:30 2008
-***************
-*** 1552,1566 ****
- else if (STRICMP(argv[i], "--socketid") == 0)
- # endif
- {
-! unsigned int id;
-! int count;
-
- if (i == argc - 1)
- mainerr_arg_missing((char_u *)argv[i]);
- if (STRNICMP(argv[i+1], "0x", 2) == 0)
-! count = sscanf(&(argv[i + 1][2]), "%x", &id);
- else
-! count = sscanf(argv[i+1], "%u", &id);
- if (count != 1)
- mainerr(ME_INVALID_ARG, (char_u *)argv[i]);
- else
---- 1552,1566 ----
- else if (STRICMP(argv[i], "--socketid") == 0)
- # endif
- {
-! long_u id;
-! int count;
-
- if (i == argc - 1)
- mainerr_arg_missing((char_u *)argv[i]);
- if (STRNICMP(argv[i+1], "0x", 2) == 0)
-! count = sscanf(&(argv[i + 1][2]), SCANF_HEX_LONG_U, &id);
- else
-! count = sscanf(argv[i + 1], SCANF_DECIMAL_LONG_U, &id);
- if (count != 1)
- mainerr(ME_INVALID_ARG, (char_u *)argv[i]);
- else
-*** ../vim-7.1.282/src/mark.c Wed Feb 13 12:41:30 2008
---- src/mark.c Wed Mar 12 15:10:14 2008
-***************
-*** 522,528 ****
- int len;
-
- expand_env((char_u *)"~/", NameBuff, MAXPATHL);
-! len = STRLEN(NameBuff);
- vim_strncpy(NameBuff + len, fm->fname + 2, MAXPATHL - len - 1);
- }
- else
---- 522,528 ----
- int len;
-
- expand_env((char_u *)"~/", NameBuff, MAXPATHL);
-! len = (int)STRLEN(NameBuff);
- vim_strncpy(NameBuff + len, fm->fname + 2, MAXPATHL - len - 1);
- }
- else
-*** ../vim-7.1.282/src/netbeans.c Fri Jan 18 11:40:02 2008
---- src/netbeans.c Wed Mar 12 15:11:42 2008
-***************
-*** 1216,1222 ****
- int lastbyte = last;
-
- oldtext = ml_get(lnum);
-! oldlen = STRLEN(oldtext);
- if (first >= (colnr_T)oldlen || oldlen == 0) /* just in case */
- return;
- if (lastbyte >= oldlen)
---- 1216,1222 ----
- int lastbyte = last;
-
- oldtext = ml_get(lnum);
-! oldlen = (int)STRLEN(oldtext);
- if (first >= (colnr_T)oldlen || oldlen == 0) /* just in case */
- return;
- if (lastbyte >= oldlen)
-***************
-*** 1241,1248 ****
- int len_first, len_other;
- char_u *p;
-
-! len_first = STRLEN(ml_get(first));
-! len_other = STRLEN(ml_get(other));
- p = alloc((unsigned)(len_first + len_other + 1));
- if (p != NULL)
- {
---- 1241,1248 ----
- int len_first, len_other;
- char_u *p;
-
-! len_first = (int)STRLEN(ml_get(first));
-! len_other = (int)STRLEN(ml_get(other));
- p = alloc((unsigned)(len_first + len_other + 1));
- if (p != NULL)
- {
-*** ../vim-7.1.282/src/popupmnu.c Wed Aug 8 22:48:16 2007
---- src/popupmnu.c Wed Mar 12 15:17:21 2008
-***************
-*** 337,343 ****
-
- if (rt != NULL)
- {
-! len = STRLEN(rt);
- if (len > pum_width)
- {
- for (j = pum_width; j < len; ++j)
---- 337,343 ----
-
- if (rt != NULL)
- {
-! len = (int)STRLEN(rt);
- if (len > pum_width)
- {
- for (j = pum_width; j < len; ++j)
-*** ../vim-7.1.282/src/vim.h Sat Mar 15 13:10:57 2008
---- src/vim.h Thu Mar 13 23:39:21 2008
-***************
-*** 355,370 ****
- * On Win64 longs are 32 bit and pointers 64 bit.
- * For printf() and scanf() we need to take care of long_u specifically. */
- #ifdef _WIN64
-! typedef unsigned __int64 long_u;
-! typedef __int64 long_i;
-! # define SCANF_HEX_LONG_U "%Ix"
-! # define PRINTF_HEX_LONG_U "0x%Ix"
-! #else
-! typedef unsigned long long_u;
-! typedef long long_i;
-! # define SCANF_HEX_LONG_U "%lx"
-! # define PRINTF_HEX_LONG_U "0x%lx"
- #endif
-
- /*
- * The characters and attributes cached for the screen.
---- 355,373 ----
- * On Win64 longs are 32 bit and pointers 64 bit.
- * For printf() and scanf() we need to take care of long_u specifically. */
- #ifdef _WIN64
-! typedef unsigned __int64 long_u;
-! typedef __int64 long_i;
-! # define SCANF_HEX_LONG_U "%Ix"
-! # define SCANF_DECIMAL_LONG_U "%Iu"
-! # define PRINTF_HEX_LONG_U "0x%Ix"
-! #else
-! typedef unsigned long long_u;
-! typedef long long_i;
-! # define SCANF_HEX_LONG_U "%lx"
-! # define SCANF_DECIMAL_LONG_U "%lu"
-! # define PRINTF_HEX_LONG_U "0x%lx"
- #endif
-+ #define PRINTF_DECIMAL_LONG_U SCANF_DECIMAL_LONG_U
-
- /*
- * The characters and attributes cached for the screen.
-*** ../vim-7.1.282/src/window.c Sat Sep 29 14:15:00 2007
---- src/window.c Wed Mar 12 15:22:10 2008
-***************
-*** 6303,6309 ****
- cur = cur->next;
- }
- }
-! if ((hlg_id = syn_namen2id(grp, STRLEN(grp))) == 0)
- {
- EMSG2(_(e_nogroup), grp);
- return -1;
---- 6303,6309 ----
- cur = cur->next;
- }
- }
-! if ((hlg_id = syn_namen2id(grp, (int)STRLEN(grp))) == 0)
- {
- EMSG2(_(e_nogroup), grp);
- return -1;
-*** ../vim-7.1.282/src/version.c Sun Mar 16 14:52:53 2008
---- src/version.c Sun Mar 16 16:00:17 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 283,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-139. You down your lunch in five minutes, at your desk, so you can
- spend the rest of the hour surfing the Net.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.284
-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.1.284
-Problem: Compiler warnings for functions without prototype.
-Solution: Add the function prototypes. (Patrick Texier)
-Files: src/eval.c, src/quickfix.c
-
-
-*** ../vim-7.1.283/src/eval.c Wed Feb 20 20:09:44 2008
---- src/eval.c Sat Mar 15 12:49:14 2008
-***************
-*** 14662,14667 ****
---- 14662,14669 ----
- appended_lines_mark(lcount, added);
- }
-
-+ static void set_qf_ll_list __ARGS((win_T *wp, typval_T *list_arg, typval_T *action_arg, typval_T *rettv));
-+
- /*
- * Used by "setqflist()" and "setloclist()" functions
- */
-*** ../vim-7.1.283/src/quickfix.c Sat Jan 19 15:55:51 2008
---- src/quickfix.c Sat Mar 15 12:51:05 2008
-***************
-*** 106,112 ****
---- 106,114 ----
-
- 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 void ll_free_all __ARGS((qf_info_T **pqi));
- 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 qf_info_T *ll_new_list __ARGS((void));
- 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));
-*** ../vim-7.1.283/src/version.c Sun Mar 16 16:02:47 2008
---- src/version.c Thu Mar 20 13:21:42 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 284,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-160. You get in the elevator and double-click the button for the floor
- you want.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.285 (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.1.285 (extra)
-Problem: Mac: dialog hotkeys don't work.
-Solution: Add hotkey support. (Dan Sandler)
-Files: src/gui_mac.c
-
-
-*** ../vim-7.1.284/src/gui_mac.c Wed Mar 12 21:47:31 2008
---- src/gui_mac.c Sun Mar 16 15:25:13 2008
-***************
-*** 153,158 ****
---- 153,161 ----
- /* Keeping track of which scrollbar is being dragged */
- static ControlHandle dragged_sb = NULL;
-
-+ /* Vector of char_u --> control index for hotkeys in dialogs */
-+ static short *gDialogHotKeys;
-+
- static struct
- {
- FMFontFamily family;
-***************
-*** 5519,5524 ****
---- 5522,5570 ----
- SetDialogItemText(itemHandle, itemName);
- }
-
-+
-+ /* ModalDialog() handler for message dialogs that have hotkey accelerators.
-+ * Expects a mapping of hotkey char to control index in gDialogHotKeys;
-+ * setting gDialogHotKeys to NULL disables any hotkey handling.
-+ */
-+ static pascal Boolean
-+ DialogHotkeyFilterProc (
-+ DialogRef theDialog,
-+ EventRecord *event,
-+ DialogItemIndex *itemHit)
-+ {
-+ char_u keyHit;
-+
-+ if (event->what == keyDown || event->what == autoKey)
-+ {
-+ keyHit = (event->message & charCodeMask);
-+
-+ if (gDialogHotKeys && gDialogHotKeys[keyHit])
-+ {
-+ #ifdef DEBUG_MAC_DIALOG_HOTKEYS
-+ printf("user pressed hotkey '%c' --> item %d\n", keyHit, gDialogHotKeys[keyHit]);
-+ #endif
-+ *itemHit = gDialogHotKeys[keyHit];
-+
-+ /* When handing off to StdFilterProc, pretend that the user
-+ * clicked the control manually. Note that this is also supposed
-+ * to cause the button to hilite briefly (to give some user
-+ * feedback), but this seems not to actually work (or it's too
-+ * fast to be seen).
-+ */
-+ event->what = kEventControlSimulateHit;
-+
-+ return true; /* we took care of it */
-+ }
-+
-+ /* Defer to the OS's standard behavior for this event.
-+ * This ensures that Enter will still activate the default button. */
-+ return StdFilterProc(theDialog, event, itemHit);
-+ }
-+ return false; /* Let ModalDialog deal with it */
-+ }
-+
-+
- /* TODO: There have been some crashes with dialogs, check your inbox
- * (Jussi)
- */
-***************
-*** 5544,5549 ****
---- 5590,5597 ----
- GrafPtr oldPort;
- short itemHit;
- char_u *buttonChar;
-+ short hotKeys[256]; /* map of hotkey -> control ID */
-+ char_u aHotKey;
- Rect box;
- short button;
- short lastButton;
-***************
-*** 5571,5576 ****
---- 5619,5626 ----
-
- WindowRef theWindow;
-
-+ ModalFilterUPP dialogUPP;
-+
- /* Check 'v' flag in 'guioptions': vertical button placement. */
- vertical = (vim_strchr(p_go, GO_VERTICAL) != NULL);
-
-***************
-*** 5610,5615 ****
---- 5660,5668 ----
- buttonChar = buttons;
- button = 0;
-
-+ /* initialize the hotkey mapping */
-+ memset(hotKeys, 0, sizeof(hotKeys));
-+
- for (;*buttonChar != 0;)
- {
- /* Get the name of the button */
-***************
-*** 5619,5625 ****
---- 5672,5689 ----
- {
- if (*buttonChar != DLG_HOTKEY_CHAR)
- name[++len] = *buttonChar;
-+ else
-+ {
-+ aHotKey = (char_u)*(buttonChar+1);
-+ if (aHotKey >= 'A' && aHotKey <= 'Z')
-+ aHotKey = (char_u)((int)aHotKey + (int)'a' - (int)'A');
-+ hotKeys[aHotKey] = button;
-+ #ifdef DEBUG_MAC_DIALOG_HOTKEYS
-+ printf("### hotKey for button %d is '%c'\n", button, aHotKey);
-+ #endif
-+ }
- }
-+
- if (*buttonChar != 0)
- buttonChar++;
- name[0] = len;
-***************
-*** 5688,5694 ****
---- 5752,5764 ----
- (void) C2PascalString(textfield, &name);
- SetDialogItemText(itemHandle, name);
- inputItm.width = StringWidth(name);
-+
-+ /* Hotkeys don't make sense if there's a text field */
-+ gDialogHotKeys = NULL;
- }
-+ else
-+ /* Install hotkey table */
-+ gDialogHotKeys = (short *)&hotKeys;
-
- /* Set the <ENTER> and <ESC> button. */
- SetDialogDefaultItem(theDialog, dfltbutton);
-***************
-*** 5777,5786 ****
- dialog_busy = TRUE;
- #endif
-
- /* Hang until one of the button is hit */
- do
- {
-! ModalDialog(nil, &itemHit);
- } while ((itemHit < 1) || (itemHit > lastButton));
-
- #ifdef USE_CARBONKEYHANDLER
---- 5847,5859 ----
- dialog_busy = TRUE;
- #endif
-
-+ /* Prepare the shortcut-handling filterProc for handing to the dialog */
-+ dialogUPP = NewModalFilterUPP(DialogHotkeyFilterProc);
-+
- /* Hang until one of the button is hit */
- do
- {
-! ModalDialog(dialogUPP, &itemHit);
- } while ((itemHit < 1) || (itemHit > lastButton));
-
- #ifdef USE_CARBONKEYHANDLER
-***************
-*** 5803,5808 ****
---- 5876,5884 ----
- /* Restore the original graphical port */
- SetPort(oldPort);
-
-+ /* Free the modal filterProc */
-+ DisposeRoutineDescriptor(dialogUPP);
-+
- /* Get ride of th edialog (free memory) */
- DisposeDialog(theDialog);
-
-*** ../vim-7.1.284/src/version.c Thu Mar 20 13:22:47 2008
---- src/version.c Thu Mar 20 14:38:06 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 285,
- /**/
-
---
-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.1.286
-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.1.286 (after 7.1.103)
-Problem: "w" at the end of the buffer moves the cursor past the end of the
- line. (Markus Heidelberg)
-Solution: Move the cursor back from the NUL when it was moved forward.
-Files: src/normal.c
-
-
-*** ../vim-7.1.285/src/normal.c Sat Jan 19 15:55:51 2008
---- src/normal.c Wed Mar 19 20:33:44 2008
-***************
-*** 8345,8350 ****
---- 8345,8351 ----
- int n;
- int word_end;
- int flag = FALSE;
-+ pos_T startpos = curwin->w_cursor;
-
- /*
- * Set inclusive for the "E" and "e" command.
-***************
-*** 8405,8412 ****
- else
- n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
-
-! /* Don't leave the cursor on the NUL past the end of line. */
-! if (n != FAIL)
- adjust_cursor(cap->oap);
-
- if (n == FAIL && cap->oap->op_type == OP_NOP)
---- 8406,8414 ----
- else
- n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
-
-! /* Don't leave the cursor on the NUL past the end of line. Unless we
-! * didn't move it forward. */
-! if (lt(startpos, curwin->w_cursor))
- adjust_cursor(cap->oap);
-
- if (n == FAIL && cap->oap->op_type == OP_NOP)
-*** ../vim-7.1.285/src/version.c Thu Mar 20 14:38:58 2008
---- src/version.c Tue Apr 1 12:04:54 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 286,
- /**/
-
---
-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.1.287
-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.1.287
-Problem: Crash when reversing a list after using it. (Andy Wokula)
-Solution: Update the pointer to the last used element. (Dominique Pelle)
-Files: src/eval.c
-
-
-*** ../vim-7.1.286/src/eval.c Thu Mar 20 13:22:47 2008
---- src/eval.c Tue Apr 1 12:36:41 2008
-***************
-*** 13954,13959 ****
---- 13954,13960 ----
- rettv->vval.v_list = l;
- rettv->v_type = VAR_LIST;
- ++l->lv_refcount;
-+ l->lv_idx = l->lv_len - l->lv_idx - 1;
- }
- }
-
-***************
-*** 15202,15208 ****
- if (!item_compare_func_err)
- {
- /* Clear the List and append the items in the sorted order. */
-! l->lv_first = l->lv_last = NULL;
- l->lv_len = 0;
- for (i = 0; i < len; ++i)
- list_append(l, ptrs[i]);
---- 15203,15209 ----
- if (!item_compare_func_err)
- {
- /* Clear the List and append the items in the sorted order. */
-! l->lv_first = l->lv_last = l->lv_idx_item = NULL;
- l->lv_len = 0;
- for (i = 0; i < len; ++i)
- list_append(l, ptrs[i]);
-*** ../vim-7.1.286/src/version.c Tue Apr 1 12:05:49 2008
---- src/version.c Tue Apr 1 13:09:10 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 287,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-203. You're an active member of more than 20 newsgroups.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.288
-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.1.288 (after 7.1.281)
-Problem: Cscope still leaves behind temp files when using gvim.
-Solution: When getting the ECHILD error loop for a while until cscope exits.
- (Dominique Pelle)
-Files: if_cscope.c
-
-
-*** ../vim-7.1.287/src/if_cscope.c Sun Mar 16 16:02:47 2008
---- src/if_cscope.c Tue Mar 25 21:34:23 2008
-***************
-*** 2130,2135 ****
---- 2130,2136 ----
- }
- #if defined(UNIX)
- {
-+ int waitpid_errno;
- int pstat;
- pid_t pid;
-
-***************
-*** 2145,2150 ****
---- 2146,2152 ----
-
- /* Block until cscope exits or until timer expires */
- pid = waitpid(csinfo[i].pid, &pstat, 0);
-+ waitpid_errno = errno;
-
- /* cancel pending alarm if still there and restore signal */
- alarm(0);
-***************
-*** 2158,2163 ****
---- 2160,2166 ----
- for (waited = 0; waited < 40; ++waited)
- {
- pid = waitpid(csinfo[i].pid, &pstat, WNOHANG);
-+ waitpid_errno = errno;
- if (pid != 0)
- break; /* break unless the process is still running */
- mch_delay(50, FALSE); /* sleep 50 ms */
-***************
-*** 2170,2177 ****
- */
- if (pid < 0 && csinfo[i].pid > 1)
- {
-! kill(csinfo[i].pid, SIGKILL);
-! (void)waitpid(csinfo[i].pid, &pstat, 0);
- }
- }
- #else /* !UNIX */
---- 2173,2212 ----
- */
- if (pid < 0 && csinfo[i].pid > 1)
- {
-! # ifdef ECHILD
-! int alive = TRUE;
-!
-! if (waitpid_errno == ECHILD)
-! {
-! /*
-! * When using 'vim -g', vim is forked and cscope process is
-! * no longer a child process but a sibling. So waitpid()
-! * fails with errno being ECHILD (No child processes).
-! * Don't send SIGKILL to cscope immediately but wait
-! * (polling) for it to exit normally as result of sending
-! * the "q" command, hence giving it a chance to clean up
-! * its temporary files.
-! */
-! int waited;
-!
-! sleep(0);
-! for (waited = 0; waited < 40; ++waited)
-! {
-! /* Check whether cscope process is still alive */
-! if (kill(csinfo[i].pid, 0) != 0)
-! {
-! alive = FALSE; /* cscope process no longer exists */
-! break;
-! }
-! mch_delay(50, FALSE); /* sleep 50ms */
-! }
-! }
-! if (alive)
-! # endif
-! {
-! kill(csinfo[i].pid, SIGKILL);
-! (void)waitpid(csinfo[i].pid, &pstat, 0);
-! }
- }
- }
- #else /* !UNIX */
-*** ../vim-7.1.287/src/version.c Tue Apr 1 13:10:45 2008
---- src/version.c Tue Apr 1 14:28:42 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 288,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-204. You're being audited because you mailed your tax return to the IRC.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.289
-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.1.289
-Problem: When EXITFREE is defined and 'acd' is set freed memory is used.
- (Dominique Pelle)
-Solution: Reset p_acd before freeing all buffers.
-Files: src/misc2.c
-
-
-*** ../vim-7.1.288/src/misc2.c Wed Feb 20 12:22:59 2008
---- src/misc2.c Wed Mar 26 21:02:57 2008
-***************
-*** 751,757 ****
- #endif
-
- /*
-! * Note: if unsinged is 16 bits we can only allocate up to 64K with alloc().
- * Use lalloc for larger blocks.
- */
- char_u *
---- 752,758 ----
- #endif
-
- /*
-! * Note: if unsigned is 16 bits we can only allocate up to 64K with alloc().
- * Use lalloc for larger blocks.
- */
- char_u *
-***************
-*** 1082,1088 ****
- win_free_all();
- #endif
-
-! /* Free all buffers. */
- for (buf = firstbuf; buf != NULL; )
- {
- nextbuf = buf->b_next;
---- 1083,1093 ----
- win_free_all();
- #endif
-
-! /* Free all buffers. Reset 'autochdir' to avoid accessing things that
-! * were freed already. */
-! #ifdef FEAT_AUTOCHDIR
-! p_acd = FALSE;
-! #endif
- for (buf = firstbuf; buf != NULL; )
- {
- nextbuf = buf->b_next;
-*** ../vim-7.1.288/src/version.c Tue Apr 1 14:30:18 2008
---- src/version.c Tue Apr 1 14:51:06 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 289,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-207. You're given one phone call in prison and you ask them for a laptop.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.290
-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.1.290
-Problem: Reading bytes that were not written when spell checking and a line
- has a very large indent.
-Solution: Don't copy the start of the next line when it only contains
- spaces. (Dominique Pelle)
-Files: src/spell.c
-
-
-*** ../vim-7.1.289/src/spell.c Sat Jan 19 15:55:51 2008
---- src/spell.c Sat Mar 29 13:00:28 2008
-***************
-*** 2268,2273 ****
---- 2269,2276 ----
- /*
- * For spell checking: concatenate the start of the following line "line" into
- * "buf", blanking-out special characters. Copy less then "maxlen" bytes.
-+ * Keep the blanks at the start of the next line, this is used in win_line()
-+ * to skip those bytes if the word was OK.
- */
- void
- spell_cat_line(buf, line, maxlen)
-***************
-*** 2284,2295 ****
-
- if (*p != NUL)
- {
-! *buf = ' ';
-! vim_strncpy(buf + 1, line, maxlen - 2);
-! n = (int)(p - line);
-! if (n >= maxlen)
-! n = maxlen - 1;
-! vim_memset(buf + 1, ' ', n);
- }
- }
-
---- 2287,2300 ----
-
- if (*p != NUL)
- {
-! /* Only worth concatenating if there is something else than spaces to
-! * concatenate. */
-! n = (int)(p - line) + 1;
-! if (n < maxlen - 1)
-! {
-! vim_memset(buf, ' ', n);
-! vim_strncpy(buf + n, p, maxlen - 1 - n);
-! }
- }
- }
-
-*** ../vim-7.1.289/src/version.c Tue Apr 1 14:53:02 2008
---- src/version.c Tue Apr 1 17:05:55 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 290,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-209. Your house stinks because you haven't cleaned it in a 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.1.291
-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.1.291 (after 7.1.288)
-Problem: Compiler warning.
-Solution: Change 50 to 50L.
-Files: src/if_cscope.c
-
-
-*** ../vim-7.1.290/src/if_cscope.c Tue Apr 1 14:30:18 2008
---- src/if_cscope.c Tue Apr 1 20:56:02 2008
-***************
-*** 2163,2169 ****
- waitpid_errno = errno;
- if (pid != 0)
- break; /* break unless the process is still running */
-! mch_delay(50, FALSE); /* sleep 50 ms */
- }
- # endif
- /*
---- 2163,2169 ----
- waitpid_errno = errno;
- if (pid != 0)
- break; /* break unless the process is still running */
-! mch_delay(50L, FALSE); /* sleep 50 ms */
- }
- # endif
- /*
-***************
-*** 2198,2204 ****
- alive = FALSE; /* cscope process no longer exists */
- break;
- }
-! mch_delay(50, FALSE); /* sleep 50ms */
- }
- }
- if (alive)
---- 2198,2204 ----
- alive = FALSE; /* cscope process no longer exists */
- break;
- }
-! mch_delay(50L, FALSE); /* sleep 50ms */
- }
- }
- if (alive)
-*** ../vim-7.1.290/src/version.c Tue Apr 1 17:13:54 2008
---- src/version.c Tue Apr 1 20:58:11 2008
-***************
-*** 668,669 ****
---- 668,671 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 291,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-210. When you get a divorce, you don't care about who gets the children,
- but discuss endlessly who can use the email 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.1.292
-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.1.292
-Problem: When using a pattern with "\@<=" the submatches can be wrong.
- (Brett Stahlman)
-Solution: Save the submatches when attempting a look-behind match.
-Files: src/regexp.c
-
-
-*** ../vim-7.1.291/src/regexp.c Sat Jan 19 15:55:51 2008
---- src/regexp.c Tue Apr 1 18:15:47 2008
-***************
-*** 3039,3044 ****
---- 3039,3053 ----
- } se_u;
- } save_se_T;
-
-+ /* used for BEHIND and NOBEHIND matching */
-+ typedef struct regbehind_S
-+ {
-+ regsave_T save_after;
-+ regsave_T save_behind;
-+ save_se_T save_start[NSUBEXP];
-+ save_se_T save_end[NSUBEXP];
-+ } regbehind_T;
-+
- static char_u *reg_getline __ARGS((linenr_T lnum));
- static long vim_regexec_both __ARGS((char_u *line, colnr_T col, proftime_T *tm));
- static long regtry __ARGS((regprog_T *prog, colnr_T col));
-***************
-*** 3046,3051 ****
---- 3055,3062 ----
- #ifdef FEAT_SYN_HL
- static void cleanup_zsubexpr __ARGS((void));
- #endif
-+ static void save_subexpr __ARGS((regbehind_T *bp));
-+ static void restore_subexpr __ARGS((regbehind_T *bp));
- static void reg_nextline __ARGS((void));
- static void reg_save __ARGS((regsave_T *save, garray_T *gap));
- static void reg_restore __ARGS((regsave_T *save, garray_T *gap));
-***************
-*** 3166,3184 ****
- save_se_T sesave;
- regsave_T regsave;
- } rs_un; /* room for saving reginput */
-! short rs_no; /* submatch nr */
- } regitem_T;
-
- static regitem_T *regstack_push __ARGS((regstate_T state, char_u *scan));
- static void regstack_pop __ARGS((char_u **scan));
-
-- /* used for BEHIND and NOBEHIND matching */
-- typedef struct regbehind_S
-- {
-- regsave_T save_after;
-- regsave_T save_behind;
-- } regbehind_T;
--
- /* used for STAR, PLUS and BRACE_SIMPLE matching */
- typedef struct regstar_S
- {
---- 3177,3188 ----
- save_se_T sesave;
- regsave_T regsave;
- } rs_un; /* room for saving reginput */
-! short rs_no; /* submatch nr or BEHIND/NOBEHIND */
- } regitem_T;
-
- static regitem_T *regstack_push __ARGS((regstate_T state, char_u *scan));
- static void regstack_pop __ARGS((char_u **scan));
-
- /* used for STAR, PLUS and BRACE_SIMPLE matching */
- typedef struct regstar_S
- {
-***************
-*** 4888,4893 ****
---- 4892,4901 ----
- status = RA_FAIL;
- else
- {
-+ /* Need to save the subexpr to be able to restore them
-+ * when there is a match but we don't use it. */
-+ save_subexpr(((regbehind_T *)rp) - 1);
-+
- rp->rs_no = op;
- reg_save(&rp->rs_un.regsave, &backpos);
- /* First try if what follows matches. If it does then we
-***************
-*** 5118,5132 ****
- reg_restore(&(((regbehind_T *)rp) - 1)->save_after,
- &backpos);
- else
-! /* But we didn't want a match. */
- status = RA_NOMATCH;
- regstack_pop(&scan);
- regstack.ga_len -= sizeof(regbehind_T);
- }
- else
- {
-! /* No match: Go back one character. May go to previous
-! * line once. */
- no = OK;
- if (REG_MULTI)
- {
---- 5126,5145 ----
- reg_restore(&(((regbehind_T *)rp) - 1)->save_after,
- &backpos);
- else
-! {
-! /* But we didn't want a match. Need to restore the
-! * subexpr, because what follows matched, so they have
-! * been set. */
- status = RA_NOMATCH;
-+ restore_subexpr(((regbehind_T *)rp) - 1);
-+ }
- regstack_pop(&scan);
- regstack.ga_len -= sizeof(regbehind_T);
- }
- else
- {
-! /* No match or a match that doesn't end where we want it: Go
-! * back one character. May go to previous line once. */
- no = OK;
- if (REG_MULTI)
- {
-***************
-*** 5160,5165 ****
---- 5173,5185 ----
- /* Advanced, prepare for finding match again. */
- reg_restore(&rp->rs_un.regsave, &backpos);
- scan = OPERAND(rp->rs_scan);
-+ if (status == RA_MATCH)
-+ {
-+ /* We did match, so subexpr may have been changed,
-+ * need to restore them for the next try. */
-+ status = RA_NOMATCH;
-+ restore_subexpr(((regbehind_T *)rp) - 1);
-+ }
- }
- else
- {
-***************
-*** 5172,5178 ****
- status = RA_MATCH;
- }
- else
-! status = RA_NOMATCH;
- regstack_pop(&scan);
- regstack.ga_len -= sizeof(regbehind_T);
- }
---- 5192,5207 ----
- status = RA_MATCH;
- }
- else
-! {
-! /* We do want a proper match. Need to restore the
-! * subexpr if we had a match, because they may have
-! * been set. */
-! if (status == RA_MATCH)
-! {
-! status = RA_NOMATCH;
-! restore_subexpr(((regbehind_T *)rp) - 1);
-! }
-! }
- regstack_pop(&scan);
- regstack.ga_len -= sizeof(regbehind_T);
- }
-***************
-*** 5820,5825 ****
---- 5849,5903 ----
- #endif
-
- /*
-+ * Save the current subexpr to "bp", so that they can be restored
-+ * later by restore_subexpr().
-+ */
-+ static void
-+ save_subexpr(bp)
-+ regbehind_T *bp;
-+ {
-+ int i;
-+
-+ for (i = 0; i < NSUBEXP; ++i)
-+ {
-+ if (REG_MULTI)
-+ {
-+ bp->save_start[i].se_u.pos = reg_startpos[i];
-+ bp->save_end[i].se_u.pos = reg_endpos[i];
-+ }
-+ else
-+ {
-+ bp->save_start[i].se_u.ptr = reg_startp[i];
-+ bp->save_end[i].se_u.ptr = reg_endp[i];
-+ }
-+ }
-+ }
-+
-+ /*
-+ * Restore the subexpr from "bp".
-+ */
-+ static void
-+ restore_subexpr(bp)
-+ regbehind_T *bp;
-+ {
-+ int i;
-+
-+ for (i = 0; i < NSUBEXP; ++i)
-+ {
-+ if (REG_MULTI)
-+ {
-+ reg_startpos[i] = bp->save_start[i].se_u.pos;
-+ reg_endpos[i] = bp->save_end[i].se_u.pos;
-+ }
-+ else
-+ {
-+ reg_startp[i] = bp->save_start[i].se_u.ptr;
-+ reg_endp[i] = bp->save_end[i].se_u.ptr;
-+ }
-+ }
-+ }
-+
-+ /*
- * Advance reglnum, regline and reginput to the next line.
- */
- static void
-*** ../vim-7.1.291/src/version.c Tue Apr 1 20:58:23 2008
---- src/version.c Wed Apr 9 12:12:33 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 292,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-259. When you enter your name in the AltaVista search engine, the top ten
- matches do indeed refer 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.1.293
-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.1.293
-Problem: Spell checking considers super- and subscript characters as word
- characters.
-Solution: Recognize the Unicode super and subscript characters.
-Files: src/spell.c
-
-
-*** ../vim-7.1.292/src/spell.c Tue Apr 1 17:13:54 2008
---- src/spell.c Wed Apr 9 15:47:06 2008
-***************
-*** 753,758 ****
---- 753,759 ----
- static int spell_iswordp __ARGS((char_u *p, buf_T *buf));
- static int spell_iswordp_nmw __ARGS((char_u *p));
- #ifdef FEAT_MBYTE
-+ static int spell_mb_isword_class __ARGS((int cl));
- static int spell_iswordp_w __ARGS((int *p, buf_T *buf));
- #endif
- static int write_spell_prefcond __ARGS((FILE *fd, garray_T *gap));
-***************
-*** 9789,9795 ****
-
- c = mb_ptr2char(s);
- if (c > 255)
-! return mb_get_class(s) >= 2;
- return spelltab.st_isw[c];
- }
- #endif
---- 9790,9796 ----
-
- c = mb_ptr2char(s);
- if (c > 255)
-! return spell_mb_isword_class(mb_get_class(s));
- return spelltab.st_isw[c];
- }
- #endif
-***************
-*** 9812,9818 ****
- {
- c = mb_ptr2char(p);
- if (c > 255)
-! return mb_get_class(p) >= 2;
- return spelltab.st_isw[c];
- }
- #endif
---- 9813,9819 ----
- {
- c = mb_ptr2char(p);
- if (c > 255)
-! return spell_mb_isword_class(mb_get_class(p));
- return spelltab.st_isw[c];
- }
- #endif
-***************
-*** 9821,9826 ****
---- 9822,9839 ----
-
- #ifdef FEAT_MBYTE
- /*
-+ * Return TRUE if word class indicates a word character.
-+ * Only for characters above 255.
-+ * Unicode subscript and superscript are not considered word characters.
-+ */
-+ static int
-+ spell_mb_isword_class(cl)
-+ int cl;
-+ {
-+ return cl >= 2 && cl != 0x2070 && cl != 0x2080;
-+ }
-+
-+ /*
- * Return TRUE if "p" points to a word character.
- * Wide version of spell_iswordp().
- */
-***************
-*** 9841,9847 ****
- if (*s > 255)
- {
- if (enc_utf8)
-! return utf_class(*s) >= 2;
- if (enc_dbcs)
- return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
- return 0;
---- 9854,9860 ----
- if (*s > 255)
- {
- if (enc_utf8)
-! return spell_mb_isword_class(utf_class(*s));
- if (enc_dbcs)
- return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
- return 0;
-*** ../vim-7.1.292/src/version.c Wed Apr 9 12:14:44 2008
---- src/version.c Wed Apr 9 15:45:10 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 293,
- /**/
-
---
-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.1.294
-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.1.294
-Problem: Leaking memory when executing a shell command.
-Solution: Free memory when not able to save for undo. (Dominique Pelle)
-Files: src/ex_cmds.c
-
-*** ../vim-7.1.293/src/ex_cmds.c Mon Feb 18 19:41:40 2008
---- src/ex_cmds.c Sun Apr 13 13:20:15 2008
-***************
-*** 1160,1165 ****
---- 1166,1172 ----
- if (!do_out)
- msg_putchar('\n');
-
-+ /* Create the shell command in allocated memory. */
- cmd_buf = make_filter_cmd(cmd, itmp, otmp);
- if (cmd_buf == NULL)
- goto filterend;
-***************
-*** 1180,1186 ****
---- 1187,1196 ----
- if (do_out)
- {
- if (u_save((linenr_T)(line2), (linenr_T)(line2 + 1)) == FAIL)
-+ {
-+ vim_free(cmd_buf);
- goto error;
-+ }
- redraw_curbuf_later(VALID);
- }
- read_linecount = curbuf->b_ml.ml_line_count;
-***************
-*** 4471,4477 ****
- /*
- * The new text is build up step by step, to avoid too much
- * copying. There are these pieces:
-! * sub_firstline The old text, unmodifed.
- * copycol Column in the old text where we started
- * looking for a match; from here old text still
- * needs to be copied to the new text.
---- 4481,4487 ----
- /*
- * The new text is build up step by step, to avoid too much
- * copying. There are these pieces:
-! * sub_firstline The old text, unmodified.
- * copycol Column in the old text where we started
- * looking for a match; from here old text still
- * needs to be copied to the new text.
-*** ../vim-7.1.293/src/version.c Wed Apr 9 15:48:08 2008
---- src/version.c Wed May 7 13:07:48 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 294,
- /**/
-
---
-It's not hard to meet expenses, they're everywhere.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.295
-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.1.295
-Problem: Vimtutor only works with vim, not gvim.
-Solution: Add the -g flag to vimtutor. (Dominique Pelle) Add gvimtutor.
-Files: src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1
-
-
-*** ../vim-7.1.294/src/Makefile Wed May 7 13:09:17 2008
---- src/Makefile Wed May 7 17:34:31 2008
-***************
-*** 1867,1872 ****
---- 1872,1879 ----
- installtutorbin: $(DEST_VIM)
- $(INSTALL_DATA) vimtutor $(DEST_BIN)/$(VIMNAME)tutor
- chmod $(SCRIPTMOD) $(DEST_BIN)/$(VIMNAME)tutor
-+ $(INSTALL_DATA) gvimtutor $(DEST_BIN)/$(GVIMNAME)tutor
-+ chmod $(SCRIPTMOD) $(DEST_BIN)/$(GVIMNAME)tutor
-
- installtutor: $(DEST_RT) $(DEST_TUTOR)
- -$(INSTALL_DATA) $(TUTORSOURCE)/README* $(TUTORSOURCE)/tutor* $(DEST_TUTOR)
-***************
-*** 2075,2080 ****
---- 2082,2088 ----
- uninstall: uninstall_runtime
- -rm -f $(DEST_BIN)/$(VIMTARGET)
- -rm -f $(DEST_BIN)/vimtutor
-+ -rm -f $(DEST_BIN)/gvimtutor
- -rm -f $(DEST_BIN)/$(EXTARGET) $(DEST_BIN)/$(VIEWTARGET)
- -rm -f $(DEST_BIN)/$(GVIMTARGET) $(DEST_BIN)/$(GVIEWTARGET)
- -rm -f $(DEST_BIN)/$(RVIMTARGET) $(DEST_BIN)/$(RVIEWTARGET)
-***************
-*** 2171,2177 ****
-
- shadow: runtime pixmaps
- mkdir $(SHADOWDIR)
-! cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../vimtutor ../mkinstalldirs .
- mkdir $(SHADOWDIR)/auto
- cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
- cd $(SHADOWDIR); rm -f auto/link.sed
---- 2179,2185 ----
-
- shadow: runtime pixmaps
- mkdir $(SHADOWDIR)
-! cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
- mkdir $(SHADOWDIR)/auto
- cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
- cd $(SHADOWDIR); rm -f auto/link.sed
-*** ../vim-7.1.294/src/gvimtutor Wed May 7 17:38:10 2008
---- src/gvimtutor Wed May 7 17:29:35 2008
-***************
-*** 0 ****
---- 1,8 ----
-+ #!/bin/sh
-+
-+ # Start GUI Vim on a copy of the tutor file.
-+
-+ # Usage: gvimtutor [xx]
-+ # See vimtutor for usage.
-+
-+ exec `dirname $0`/vimtutor -g "$@"
-*** ../vim-7.1.294/src/vimtutor Tue Jul 17 14:32:07 2007
---- src/vimtutor Sat Apr 5 12:21:11 2008
-***************
-*** 2,12 ****
-
- # Start Vim on a copy of the tutor file.
-
-! # Usage: vimtutor [xx], where xx is a language code like "es" or "nl".
- # When an argument is given, it tries loading that tutor.
- # When this fails or no argument was given, it tries using 'v:lang'
- # When that also fails, it uses the English version.
-
- xx=$1
- export xx
-
---- 2,25 ----
-
- # Start Vim on a copy of the tutor file.
-
-! # Usage: vimtutor [-g] [xx]
-! # Where optional argument -g starts vimtutor in gvim (GUI) instead of vim.
-! # and xx is a language code like "es" or "nl".
- # When an argument is given, it tries loading that tutor.
- # When this fails or no argument was given, it tries using 'v:lang'
- # When that also fails, it uses the English version.
-
-+ # Vim could be called "vim" or "vi". Also check for "vimN", for people who
-+ # have Vim installed with its version number.
-+ # We anticipate up to a future Vim 8 version :-).
-+ seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
-+ if test "$1" = "-g"; then
-+ # Try to use the GUI version of Vim if possible, it will fall back
-+ # on Vim if Gvim is not installed.
-+ seq="gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
-+ shift
-+ fi
-+
- xx=$1
- export xx
-
-***************
-*** 39,48 ****
- # remove the copy of the tutor on exit
- trap "rm -rf $TODELETE" 0 1 2 3 9 11 13 15
-
-- # Vim could be called "vim" or "vi". Also check for "vimN", for people who
-- # have Vim installed with its version number.
-- # We anticipate up to a future Vim 8 version :-).
-- seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
- for i in $seq; do
- testvim=`which $i 2>/dev/null`
- if test -f "$testvim"; then
---- 52,57 ----
-***************
-*** 59,65 ****
-
- # Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
- # The script tutor.vim tells Vim which file to copy
-! $VIM -u NONE -c 'so $VIMRUNTIME/tutor/tutor.vim'
-
- # Start vim without any .vimrc, set 'nocompatible'
-! $VIM -u NONE -c "set nocp" $TUTORCOPY
---- 68,74 ----
-
- # Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
- # The script tutor.vim tells Vim which file to copy
-! $VIM -f -u NONE -c 'so $VIMRUNTIME/tutor/tutor.vim'
-
- # Start vim without any .vimrc, set 'nocompatible'
-! $VIM -f -u NONE -c "set nocp" $TUTORCOPY
-*** ../vim-7.1.294/runtime/doc/vimtutor.1 Sun Jun 13 18:50:18 2004
---- runtime/doc/vimtutor.1 Sat Apr 5 12:21:11 2008
-***************
-*** 3,9 ****
- vimtutor \- the Vim tutor
- .SH SYNOPSIS
- .br
-! .B vimtutor [language]
- .SH DESCRIPTION
- .B Vimtutor
- starts the
---- 3,9 ----
- vimtutor \- the Vim tutor
- .SH SYNOPSIS
- .br
-! .B vimtutor [-g] [language]
- .SH DESCRIPTION
- .B Vimtutor
- starts the
-***************
-*** 18,23 ****
---- 18,26 ----
- .B Vim
- commands.
- .PP
-+ The optional argument -g starts vimtutor with gvim rather than vim, if the
-+ GUI version of vim is available, or falls back to Vim if gvim is not found.
-+ .PP
- The optional [language] argument is the two-letter name of a language, like
- "it" or "es".
- If the [language] argument is missing, the language of the current locale will
-*** ../vim-7.1.294/src/version.c Wed May 7 13:09:12 2008
---- src/version.c Wed May 7 17:12:43 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 295,
- /**/
-
---
-Time flies like an arrow.
-Fruit flies like a banana.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.296
-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.1.296
-Problem: SELinux is not supported.
-Solution: Detect the selinux library and use mch_copy_sec(). (James Vega)
-Files: src/auto/configure, src/config.h.in, src/configure.in,
- src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro
-
-
-*** ../vim-7.1.295/src/auto/configure Wed Feb 20 12:43:05 2008
---- src/auto/configure Wed May 7 18:16:09 2008
-***************
-*** 845,850 ****
---- 845,851 ----
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-darwin Disable Darwin (Mac OS X) support.
-+ --disable-selinux Don't check for SELinux support.
- --disable-xsmp Disable XSMP session management
- --disable-xsmp-interact Disable XSMP interaction
- --enable-mzschemeinterp Include MzScheme interpreter.
-***************
-*** 3611,3616 ****
---- 3612,3705 ----
- esac
- fi
-
-+ echo "$as_me:$LINENO: checking --disable-selinux argument" >&5
-+ echo $ECHO_N "checking --disable-selinux argument... $ECHO_C" >&6
-+ # Check whether --enable-selinux or --disable-selinux was given.
-+ if test "${enable_selinux+set}" = set; then
-+ enableval="$enable_selinux"
-+
-+ else
-+ enable_selinux="yes"
-+ fi;
-+ if test "$enable_selinux" = "yes"; then
-+ echo "$as_me:$LINENO: result: no" >&5
-+ echo "${ECHO_T}no" >&6
-+ echo "$as_me:$LINENO: checking for is_selinux_enabled in -lselinux" >&5
-+ echo $ECHO_N "checking for is_selinux_enabled in -lselinux... $ECHO_C" >&6
-+ if test "${ac_cv_lib_selinux_is_selinux_enabled+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+ else
-+ ac_check_lib_save_LIBS=$LIBS
-+ LIBS="-lselinux $LIBS"
-+ cat >conftest.$ac_ext <<_ACEOF
-+ /* confdefs.h. */
-+ _ACEOF
-+ cat confdefs.h >>conftest.$ac_ext
-+ cat >>conftest.$ac_ext <<_ACEOF
-+ /* end confdefs.h. */
-+
-+ /* Override any gcc2 internal prototype to avoid an error. */
-+ #ifdef __cplusplus
-+ extern "C"
-+ #endif
-+ /* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+ char is_selinux_enabled ();
-+ int
-+ main ()
-+ {
-+ is_selinux_enabled ();
-+ ;
-+ return 0;
-+ }
-+ _ACEOF
-+ rm -f conftest.$ac_objext conftest$ac_exeext
-+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_selinux_is_selinux_enabled=yes
-+ else
-+ echo "$as_me: failed program was:" >&5
-+ sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ ac_cv_lib_selinux_is_selinux_enabled=no
-+ fi
-+ rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+ LIBS=$ac_check_lib_save_LIBS
-+ fi
-+ echo "$as_me:$LINENO: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5
-+ echo "${ECHO_T}$ac_cv_lib_selinux_is_selinux_enabled" >&6
-+ if test $ac_cv_lib_selinux_is_selinux_enabled = yes; then
-+ LIBS="$LIBS -lselinux"
-+ cat >>confdefs.h <<\_ACEOF
-+ #define HAVE_SELINUX 1
-+ _ACEOF
-+
-+ fi
-+
-+ else
-+ echo "$as_me:$LINENO: result: yes" >&5
-+ echo "${ECHO_T}yes" >&6
-+ fi
-
-
- echo "$as_me:$LINENO: checking --with-features argument" >&5
-*** ../vim-7.1.295/src/config.h.in Tue May 1 13:37:23 2007
---- src/config.h.in Wed May 7 18:10:49 2008
-***************
-*** 156,161 ****
---- 156,162 ----
- #undef HAVE_READLINK
- #undef HAVE_RENAME
- #undef HAVE_SELECT
-+ #undef HAVE_SELINUX
- #undef HAVE_SETENV
- #undef HAVE_SETPGID
- #undef HAVE_SETSID
-*** ../vim-7.1.295/src/configure.in Wed Feb 20 12:43:05 2008
---- src/configure.in Wed May 7 18:15:40 2008
-***************
-*** 299,304 ****
---- 299,317 ----
- esac
- fi
-
-+ dnl Link with -lselinux for SELinux stuff; if not found
-+ AC_MSG_CHECKING(--disable-selinux argument)
-+ AC_ARG_ENABLE(selinux,
-+ [ --disable-selinux Don't check for SELinux support.],
-+ , enable_selinux="yes")
-+ if test "$enable_selinux" = "yes"; then
-+ AC_MSG_RESULT(no)
-+ AC_CHECK_LIB(selinux, is_selinux_enabled,
-+ [LIBS="$LIBS -lselinux"
-+ AC_DEFINE(HAVE_SELINUX)])
-+ else
-+ AC_MSG_RESULT(yes)
-+ fi
-
- dnl Check user requested features.
-
-*** ../vim-7.1.295/src/fileio.c Tue Mar 11 22:01:16 2008
---- src/fileio.c Wed May 7 18:17:45 2008
-***************
-*** 3651,3656 ****
---- 3660,3668 ----
- )
- mch_setperm(backup,
- (perm & 0707) | ((perm & 07) << 3));
-+ # ifdef HAVE_SELINUX
-+ mch_copy_sec(fname, backup);
-+ # endif
- #endif
-
- /*
-***************
-*** 3687,3692 ****
---- 3699,3707 ----
- #ifdef HAVE_ACL
- mch_set_acl(backup, acl);
- #endif
-+ #ifdef HAVE_SELINUX
-+ mch_copy_sec(fname, backup);
-+ #endif
- break;
- }
- }
-***************
-*** 4309,4314 ****
---- 4324,4335 ----
- }
- #endif
-
-+ #ifdef HAVE_SELINUX
-+ /* Probably need to set the security context. */
-+ if (!backup_copy)
-+ mch_copy_sec(backup, wfname);
-+ #endif
-+
- #ifdef UNIX
- /* When creating a new file, set its owner/group to that of the original
- * file. Get the new device and inode number. */
-*** ../vim-7.1.295/src/memfile.c Fri May 11 20:15:45 2007
---- src/memfile.c Wed May 7 18:10:49 2008
-***************
-*** 1346,1350 ****
---- 1346,1355 ----
- mfp->mf_ffname = NULL;
- }
- else
-+ {
-+ #ifdef HAVE_SELINUX
-+ mch_copy_sec(fname, mfp->mf_fname);
-+ #endif
- mch_hide(mfp->mf_fname); /* try setting the 'hidden' flag */
-+ }
- }
-*** ../vim-7.1.295/src/os_unix.c Wed Mar 12 13:16:37 2008
---- src/os_unix.c Wed May 7 18:24:46 2008
-***************
-*** 45,50 ****
---- 45,55 ----
- # include <X11/SM/SMlib.h>
- #endif
-
-+ #ifdef HAVE_SELINUX
-+ # include <selinux/selinux.h>
-+ static int selinux_enabled = -1;
-+ #endif
-+
- /*
- * Use this prototype for select, some include files have a wrong prototype
- */
-***************
-*** 2557,2562 ****
---- 2562,2623 ----
- } vim_acl_solaris_T;
- # endif
-
-+ #if defined(HAVE_SELINUX) || defined(PROTO)
-+ /*
-+ * Copy security info from "from_file" to "to_file".
-+ */
-+ void
-+ mch_copy_sec(from_file, to_file)
-+ char_u *from_file;
-+ char_u *to_file;
-+ {
-+ if (from_file == NULL)
-+ return;
-+
-+ if (selinux_enabled == -1)
-+ selinux_enabled = is_selinux_enabled();
-+
-+ if (selinux_enabled > 0)
-+ {
-+ security_context_t from_context = NULL;
-+ security_context_t to_context = NULL;
-+
-+ if (getfilecon((char *)from_file, &from_context) < 0)
-+ {
-+ /* If the filesystem doesn't support extended attributes,
-+ the original had no special security context and the
-+ target cannot have one either. */
-+ if (errno == EOPNOTSUPP)
-+ return;
-+
-+ MSG_PUTS(_("\nCould not get security context for "));
-+ msg_outtrans(from_file);
-+ msg_putchar('\n');
-+ return;
-+ }
-+ if (getfilecon((char *)to_file, &to_context) < 0)
-+ {
-+ MSG_PUTS(_("\nCould not get security context for "));
-+ msg_outtrans(to_file);
-+ msg_putchar('\n');
-+ freecon (from_context);
-+ return ;
-+ }
-+ if (strcmp(from_context, to_context) != 0)
-+ {
-+ if (setfilecon((char *)to_file, from_context) < 0)
-+ {
-+ MSG_PUTS(_("\nCould not set security context for "));
-+ msg_outtrans(to_file);
-+ msg_putchar('\n');
-+ }
-+ }
-+ freecon(to_context);
-+ freecon(from_context);
-+ }
-+ }
-+ #endif /* HAVE_SELINUX */
-+
- /*
- * Return a pointer to the ACL of file "fname" in allocated memory.
- * Return NULL if the ACL is not available for whatever reason.
-*** ../vim-7.1.295/src/proto/os_unix.pro Sat May 5 20:23:37 2007
---- src/proto/os_unix.pro Wed May 7 18:25:14 2008
-***************
-*** 34,39 ****
---- 34,40 ----
- void fname_case __ARGS((char_u *name, int len));
- long mch_getperm __ARGS((char_u *name));
- int mch_setperm __ARGS((char_u *name, long perm));
-+ void mch_copy_sec __ARGS((char_u *from_file, char_u *to_file));
- vim_acl_T mch_get_acl __ARGS((char_u *fname));
- void mch_set_acl __ARGS((char_u *fname, vim_acl_T aclent));
- void mch_free_acl __ARGS((vim_acl_T aclent));
-*** ../vim-7.1.295/src/version.c Wed May 7 17:39:17 2008
---- src/version.c Wed May 7 18:50:01 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 296,
- /**/
-
---
-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.1.297
-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.1.297
-Problem: When using the search/replace dialog the parenmatch highlighting
- can be wrong. (Tim Duncan)
-Solution: In the GUI redraw function invoke the CursorMoved autocmd.
-Files: src/gui.c
-
-
-*** ../vim-7.1.296/src/gui.c Wed Feb 6 17:33:19 2008
---- src/gui.c Wed May 7 21:36:58 2008
-***************
-*** 4855,4860 ****
---- 4855,4869 ----
- {
- update_topline();
- validate_cursor();
-+ #ifdef FEAT_AUTOCMD
-+ /* Trigger CursorMoved if the cursor moved. */
-+ if (!finish_op && has_cursormoved()
-+ && !equalpos(last_cursormoved, curwin->w_cursor))
-+ {
-+ apply_autocmds(EVENT_CURSORMOVED, NULL, NULL, FALSE, curbuf);
-+ last_cursormoved = curwin->w_cursor;
-+ }
-+ #endif
- update_screen(0); /* may need to update the screen */
- setcursor();
- out_flush(); /* make sure output has been written */
-*** ../vim-7.1.296/src/version.c Wed May 7 19:05:55 2008
---- src/version.c Wed May 7 21:44:28 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 297,
- /**/
-
---
-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.1.298
-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.1.298 (after 7.1.295)
-Problem: src/gvimtutor is not distributed.
-Solution: Add it to the list of distributed files.
-Files: Filelist
-
-
-*** ../vim-7.1.297/Filelist Thu May 10 20:35:01 2007
---- Filelist Sat May 10 21:35:50 2008
-***************
-*** 193,198 ****
---- 193,199 ----
- src/vim_icon.xbm \
- src/vim_mask.xbm \
- src/vimtutor \
-+ src/gvimtutor \
- src/which.sh \
- src/workshop.c \
- src/workshop.h \
-*** ../vim-7.1.297/src/version.c Wed May 7 21:45:35 2008
---- src/version.c Sat May 10 21:37:01 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 298,
- /**/
-
---
-ARTHUR: Charge!
- [They all charge with swords drawn towards the RABBIT. A tremendous twenty
- second fight with Peckinpahish shots and borrowing heavily also on the
- Kung Fu and karate-type films ensues, in which some four KNIGHTS are
- comprehensively killed.]
-ARTHUR: Run away! Run away!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.299
-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.1.299
-Problem: Filetype detection doesn't work properly for file names ending in
- a part that is ignored and contain a space or other special
- characters.
-Solution: Escape the special characters using the new fnameescape function.
-Files: runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c,
- src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h
-
-
-*** ../vim-7.1.298/runtime/doc/eval.txt Wed Feb 20 20:09:44 2008
---- runtime/doc/eval.txt Wed May 28 16:42:42 2008
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.1. Last change: 2008 Feb 20
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.1. Last change: 2008 May 28
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1609,1614 ****
---- 1652,1658 ----
- String find directory {name} in {path}
- findfile( {name}[, {path}[, {count}]])
- String find file {name} in {path}
-+ fnameescape( {fname}) String escape special characters in {fname}
- fnamemodify( {fname}, {mods}) String modify file name
- foldclosed( {lnum}) Number first line of fold at {lnum} if closed
- foldclosedend( {lnum}) Number last line of fold at {lnum} if closed
-***************
-*** 2620,2625 ****
---- 2669,2687 ----
- < Searches from the directory of the current file upwards until
- it finds the file "tags.vim".
-
-+ fnameescape({string}) *fnameescape()*
-+ Escape {string} for use as file name command argument. All
-+ characters that have a special meaning, such as '%' and '|'
-+ are escaped with a backslash.
-+ For most systems the characters escaped are "". For systems
-+ where a backslash appears in a filename, it depends on the
-+ value of 'isfname'.
-+ Example: >
-+ :let fname = 'some str%nge|name'
-+ :exe "edit " . fnameescape(fname)
-+ < results in executing: >
-+ edit some\ str\%nge\|name
-+
- fnamemodify({fname}, {mods}) *fnamemodify()*
- Modify file name {fname} according to {mods}. {mods} is a
- string of characters like it is used for file names on the
-*** ../vim-7.1.298/runtime/filetype.vim Tue May 15 09:14:33 2007
---- runtime/filetype.vim Wed May 28 16:39:09 2008
-***************
-*** 16,35 ****
- augroup filetypedetect
-
- " Ignored extensions
- au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.rpmsave,?\+.rpmnew
-! \ exe "doau filetypedetect BufRead " . expand("<afile>:r")
- au BufNewFile,BufRead *~
- \ let s:name = expand("<afile>") |
- \ let s:short = substitute(s:name, '\~$', '', '') |
- \ if s:name != s:short && s:short != "" |
-! \ exe "doau filetypedetect BufRead " . s:short |
- \ endif |
-! \ unlet s:name |
-! \ unlet s:short
- au BufNewFile,BufRead ?\+.in
- \ if expand("<afile>:t") != "configure.in" |
-! \ exe "doau filetypedetect BufRead " . expand("<afile>:r") |
- \ endif
-
- " Pattern used to match file names which should not be inspected.
- " Currently finds compressed files.
---- 16,38 ----
- augroup filetypedetect
-
- " Ignored extensions
-+ if exists("*fnameescape")
- au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.rpmsave,?\+.rpmnew
-! \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
- au BufNewFile,BufRead *~
- \ let s:name = expand("<afile>") |
- \ let s:short = substitute(s:name, '\~$', '', '') |
- \ if s:name != s:short && s:short != "" |
-! \ exe "doau filetypedetect BufRead " . fnameescape(s:short) |
- \ endif |
-! \ unlet s:name s:short
- au BufNewFile,BufRead ?\+.in
- \ if expand("<afile>:t") != "configure.in" |
-! \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) |
- \ endif
-+ elseif &verbose > 0
-+ echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()"
-+ endif
-
- " Pattern used to match file names which should not be inspected.
- " Currently finds compressed files.
-*** ../vim-7.1.298/src/eval.c Tue Apr 1 13:10:45 2008
---- src/eval.c Wed May 28 16:35:51 2008
-***************
-*** 507,512 ****
---- 516,522 ----
- static void f_filter __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_finddir __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_findfile __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_fnameescape __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_fnamemodify __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_foldclosed __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_foldclosedend __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 7107,7112 ****
---- 7437,7443 ----
- {"filter", 2, 2, f_filter},
- {"finddir", 1, 3, f_finddir},
- {"findfile", 1, 3, f_findfile},
-+ {"fnameescape", 1, 1, f_fnameescape},
- {"fnamemodify", 2, 2, f_fnamemodify},
- {"foldclosed", 1, 1, f_foldclosed},
- {"foldclosedend", 1, 1, f_foldclosedend},
-***************
-*** 9465,9470 ****
---- 9804,9822 ----
- }
-
- /*
-+ * "fnameescape({string})" function
-+ */
-+ static void
-+ f_fnameescape(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_string = vim_strsave_fnameescape(
-+ get_tv_string(&argvars[0]), FALSE);
-+ rettv->v_type = VAR_STRING;
-+ }
-+
-+ /*
- * "fnamemodify({fname}, {mods})" function
- */
- static void
-*** ../vim-7.1.298/src/ex_getln.c Tue Jan 22 12:44:03 2008
---- src/ex_getln.c Mon May 26 22:14:51 2008
-***************
-*** 3656,3677 ****
- #endif
- }
- }
-! #ifdef BACKSLASH_IN_FILENAME
-! {
-! char_u buf[20];
-! int j = 0;
-!
-! /* Don't escape '[' and '{' if they are in 'isfname'. */
-! for (p = PATH_ESC_CHARS; *p != NUL; ++p)
-! if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
-! buf[j++] = *p;
-! buf[j] = NUL;
-! p = vim_strsave_escaped(files[i], buf);
-! }
-! #else
-! p = vim_strsave_escaped(files[i],
-! xp->xp_shell ? SHELL_ESC_CHARS : PATH_ESC_CHARS);
-! #endif
- if (p != NULL)
- {
- vim_free(files[i]);
---- 3656,3662 ----
- #endif
- }
- }
-! p = vim_strsave_fnameescape(files[i], xp->xp_shell);
- if (p != NULL)
- {
- vim_free(files[i]);
-***************
-*** 3710,3715 ****
---- 3695,3725 ----
- }
-
- /*
-+ * Escape special characters in "fname" for when used as a file name argument
-+ * after a Vim command, or, when "shell" is non-zero, a shell command.
-+ * Returns the result in allocated memory.
-+ */
-+ char_u *
-+ vim_strsave_fnameescape(fname, shell)
-+ char_u *fname;
-+ int shell;
-+ {
-+ #ifdef BACKSLASH_IN_FILENAME
-+ char_u buf[20];
-+ int j = 0;
-+
-+ /* Don't escape '[' and '{' if they are in 'isfname'. */
-+ for (p = PATH_ESC_CHARS; *p != NUL; ++p)
-+ if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
-+ buf[j++] = *p;
-+ buf[j] = NUL;
-+ return vim_strsave_escaped(fname, buf);
-+ #else
-+ return vim_strsave_escaped(fname, shell ? SHELL_ESC_CHARS : PATH_ESC_CHARS);
-+ #endif
-+ }
-+
-+ /*
- * Put a backslash before the file name in "pp", which is in allocated memory.
- */
- static void
-*** ../vim-7.1.298/src/proto/ex_getln.pro Sat May 5 19:24:48 2007
---- src/proto/ex_getln.pro Mon May 26 22:14:41 2008
-***************
-*** 24,29 ****
---- 24,30 ----
- void ExpandInit __ARGS((expand_T *xp));
- void ExpandCleanup __ARGS((expand_T *xp));
- void ExpandEscape __ARGS((expand_T *xp, char_u *str, int numfiles, char_u **files, int options));
-+ char_u *vim_strsave_fnameescape __ARGS((char_u *fname, int shell));
- void tilde_replace __ARGS((char_u *orig_pat, int num_files, char_u **files));
- char_u *sm_gettail __ARGS((char_u *s));
- char_u *addstar __ARGS((char_u *fname, int len, int context));
-*** ../vim-7.1.298/src/vim.h Sun Mar 16 16:02:47 2008
---- src/vim.h Wed May 28 16:37:50 2008
-***************
-*** 336,345 ****
- # endif
- #endif
- #ifdef BACKSLASH_IN_FILENAME
-! # define PATH_ESC_CHARS ((char_u *)" \t*?[{`%#")
- #else
-! # define PATH_ESC_CHARS ((char_u *)" \t*?[{`$\\%#'\"|")
-! # define SHELL_ESC_CHARS ((char_u *)" \t*?[{`$\\%#'\"|<>();&!")
- #endif
-
- #define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */
---- 336,345 ----
- # endif
- #endif
- #ifdef BACKSLASH_IN_FILENAME
-! # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'\"|!<")
- #else
-! # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<")
-! # define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<>();&")
- #endif
-
- #define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */
-*** ../vim-7.1.298/src/version.c Sat May 10 21:37:56 2008
---- src/version.c Wed May 28 16:40:11 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 299,
- /**/
-
---
-FIRST SOLDIER: So they wouldn't be able to bring a coconut back anyway.
-SECOND SOLDIER: Wait a minute! Suppose two swallows carried it together?
-FIRST SOLDIER: No, they'd have to have it on a line.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.300
-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.1.300
-Problem: Value of asmsyntax argument isn't checked for valid characters.
-Solution: Only accepts letters and digits.
-Files: runtime/filetype.vim
-
-
-*** ../vim-7.1.299/runtime/filetype.vim Wed May 28 16:48:00 2008
---- runtime/filetype.vim Wed May 28 17:11:37 2008
-***************
-*** 190,196 ****
- let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
- \" ".getline(5)." "
- if head =~ '\sasmsyntax=\S\+\s'
-! let b:asmsyntax = substitute(head, '.*\sasmsyntax=\(\S\+\)\s.*','\1', "")
- elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
- let b:asmsyntax = "vmasm"
- endif
---- 190,196 ----
- let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
- \" ".getline(5)." "
- if head =~ '\sasmsyntax=\S\+\s'
-! let b:asmsyntax = substitute(head, '.*\sasmsyntax=\([a-zA-Z0-9]\+\)\s.*','\1', "")
- elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
- let b:asmsyntax = "vmasm"
- endif
-*** ../vim-7.1.299/src/version.c Wed May 28 16:48:01 2008
---- src/version.c Wed May 28 17:28:05 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 300,
- /**/
-
---
-If you don't get everything you want, think of
-everything you didn't get and don't want.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.301
-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.1.301
-Problem: When the "File/Save" menu is used in Insert mode, a tab page label
- is not updated to remove the "+".
-Solution: Call draw_tabline() from showruler(). (Bjorn Winckler)
-Files: src/screen.c
-
-
-*** ../vim-7.1.300/src/screen.c Sun Mar 9 14:30:12 2008
---- src/screen.c Sat Apr 5 19:26:24 2008
-***************
-*** 9357,9362 ****
---- 9357,9367 ----
- )
- maketitle();
- #endif
-+ #ifdef FEAT_WINDOWS
-+ /* Redraw the tab pages line if needed. */
-+ if (redraw_tabline)
-+ draw_tabline();
-+ #endif
- }
-
- #ifdef FEAT_CMDL_INFO
-*** ../vim-7.1.300/src/version.c Wed May 28 17:31:37 2008
---- src/version.c Wed May 28 19:01:16 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 301,
- /**/
-
---
-CART DRIVER: Bring out your dead!
- There are legs stick out of windows and doors. Two MEN are fighting in the
- mud - covered from head to foot in it. Another MAN is on his hands in
- knees shovelling mud into his mouth. We just catch sight of a MAN falling
- into a well.
- "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.1.302
-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.1.302 (after 7.1.299)
-Problem: Compilation error on MS-Windows.
-Solution: Don't use xp_shell when it's not defined.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.301/src/ex_getln.c Wed May 28 22:01:46 2008
---- src/ex_getln.c Wed May 28 22:01:48 2008
-***************
-*** 3656,3662 ****
---- 3656,3666 ----
- #endif
- }
- }
-+ #ifdef BACKSLASH_IN_FILENAME
-+ p = vim_strsave_fnameescape(files[i], FALSE);
-+ #else
- p = vim_strsave_fnameescape(files[i], xp->xp_shell);
-+ #endif
- if (p != NULL)
- {
- vim_free(files[i]);
-*** ../vim-7.1.301/src/version.c Wed May 28 19:01:53 2008
---- src/version.c Wed May 28 22:01:07 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 302,
- /**/
-
---
-BODY: I'm not dead!
-CART DRIVER: 'Ere. He says he's not dead.
-LARGE MAN: Yes he is.
-BODY: I'm not!
- "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.1.303
-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.1.303 (after 7.1.302)
-Problem: Compilation error on MS-Windows, again.
-Solution: Declare p.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.302/src/ex_getln.c Wed May 28 22:02:07 2008
---- src/ex_getln.c Thu May 29 15:31:45 2008
-***************
-*** 3711,3716 ****
---- 3711,3717 ----
- #ifdef BACKSLASH_IN_FILENAME
- char_u buf[20];
- int j = 0;
-+ char_u *p;
-
- /* Don't escape '[' and '{' if they are in 'isfname'. */
- for (p = PATH_ESC_CHARS; *p != NUL; ++p)
-*** ../vim-7.1.302/src/version.c Wed May 28 22:02:07 2008
---- src/version.c Thu May 29 15:31:51 2008
-***************
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 303,
- /**/
-
---
-If all you have is a hammer, everything looks like a nail.
-When your hammer is C++, everything begins to look like a thumb.
- -- Steve Hoflich, comp.lang.c++
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.304
-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.1.304
-Problem: Shortpath_for_invalid_fname() does not work correctly and is
- unnecessary complex.
-Solution: Clean up shortpath_for_invalid_fname(). (mostly by Yegappan
- Lakshmanan)
-Files: src/eval.c
-
-
-*** ../vim-7.1.303/src/eval.c Wed May 28 16:48:01 2008
---- src/eval.c Wed May 28 16:35:51 2008
-***************
-*** 21068,21075 ****
- static int shortpath_for_partial __ARGS((char_u **fnamep, char_u **bufp, int *fnamelen));
-
- /*
-! * Get the short pathname of a file.
-! * Returns 1 on success. *fnamelen is 0 for nonexistent path.
- */
- static int
- get_short_pathname(fnamep, bufp, fnamelen)
---- 21476,21487 ----
- static int shortpath_for_partial __ARGS((char_u **fnamep, char_u **bufp, int *fnamelen));
-
- /*
-! * Get the short path (8.3) for the filename in "fnamep".
-! * Only works for a valid file name.
-! * When the path gets longer "fnamep" is changed and the allocated buffer
-! * is put in "bufp".
-! * *fnamelen is the length of "fnamep" and set to 0 for a nonexistent path.
-! * Returns OK on success, FAIL on failure.
- */
- static int
- get_short_pathname(fnamep, bufp, fnamelen)
-***************
-*** 21077,21112 ****
- char_u **bufp;
- int *fnamelen;
- {
-! int l,len;
- char_u *newbuf;
-
- len = *fnamelen;
--
- l = GetShortPathName(*fnamep, *fnamep, len);
- if (l > len - 1)
- {
- /* If that doesn't work (not enough space), then save the string
-! * and try again with a new buffer big enough
-! */
- newbuf = vim_strnsave(*fnamep, l);
- if (newbuf == NULL)
-! return 0;
-
- vim_free(*bufp);
- *fnamep = *bufp = newbuf;
-
-! l = GetShortPathName(*fnamep,*fnamep,l+1);
-!
-! /* Really should always succeed, as the buffer is big enough */
- }
-
- *fnamelen = l;
-! return 1;
- }
-
- /*
-! * Create a short path name. Returns the length of the buffer it needs.
-! * Doesn't copy over the end of the buffer passed in.
- */
- static int
- shortpath_for_invalid_fname(fname, bufp, fnamelen)
---- 21489,21532 ----
- char_u **bufp;
- int *fnamelen;
- {
-! int l, len;
- char_u *newbuf;
-
- len = *fnamelen;
- l = GetShortPathName(*fnamep, *fnamep, len);
- if (l > len - 1)
- {
- /* If that doesn't work (not enough space), then save the string
-! * and try again with a new buffer big enough. */
- newbuf = vim_strnsave(*fnamep, l);
- if (newbuf == NULL)
-! return FAIL;
-
- vim_free(*bufp);
- *fnamep = *bufp = newbuf;
-
-! /* Really should always succeed, as the buffer is big enough. */
-! l = GetShortPathName(*fnamep, *fnamep, l+1);
- }
-
- *fnamelen = l;
-! return OK;
- }
-
- /*
-! * Get the short path (8.3) for the filename in "fname". The converted
-! * path is returned in "bufp".
-! *
-! * Some of the directories specified in "fname" may not exist. This function
-! * will shorten the existing directories at the beginning of the path and then
-! * append the remaining non-existing path.
-! *
-! * fname - Pointer to the filename to shorten. On return, contains the
-! * pointer to the shortened pathname
-! * bufp - Pointer to an allocated buffer for the filename.
-! * fnamelen - Length of the filename pointed to by fname
-! *
-! * Returns OK on success (or nothing done) and FAIL on failure (out of memory).
- */
- static int
- shortpath_for_invalid_fname(fname, bufp, fnamelen)
-***************
-*** 21114,21198 ****
- char_u **bufp;
- int *fnamelen;
- {
-! char_u *s, *p, *pbuf2, *pbuf3;
- char_u ch;
-! int len, len2, plen, slen;
-
- /* Make a copy */
-! len2 = *fnamelen;
-! pbuf2 = vim_strnsave(*fname, len2);
-! pbuf3 = NULL;
-!
-! s = pbuf2 + len2 - 1; /* Find the end */
-! slen = 1;
-! plen = len2;
-!
-! if (after_pathsep(pbuf2, s + 1))
-! {
-! --s;
-! ++slen;
-! --plen;
-! }
-
-! do
- {
-! /* Go back one path-separator */
-! while (s > pbuf2 && !after_pathsep(pbuf2, s + 1))
-! {
-! --s;
-! ++slen;
-! --plen;
-! }
-! if (s <= pbuf2)
-! break;
-
-! /* Remember the character that is about to be splatted */
-! ch = *s;
-! *s = 0; /* get_short_pathname requires a null-terminated string */
-!
-! /* Try it in situ */
-! p = pbuf2;
-! if (!get_short_pathname(&p, &pbuf3, &plen))
- {
-! vim_free(pbuf2);
-! return -1;
- }
-! *s = ch; /* Preserve the string */
-! } while (plen == 0);
-
-! if (plen > 0)
- {
-! /* Remember the length of the new string. */
-! *fnamelen = len = plen + slen;
- vim_free(*bufp);
-! if (len > len2)
- {
-! /* If there's not enough space in the currently allocated string,
-! * then copy it to a buffer big enough.
-! */
-! *fname= *bufp = vim_strnsave(p, len);
- if (*fname == NULL)
-! return -1;
- }
- else
- {
-! /* Transfer pbuf2 to being the main buffer (it's big enough) */
-! *fname = *bufp = pbuf2;
-! if (p != pbuf2)
-! strncpy(*fname, p, plen);
-! pbuf2 = NULL;
-! }
-! /* Concat the next bit */
-! strncpy(*fname + plen, s, slen);
-! (*fname)[len] = '\0';
- }
-! vim_free(pbuf3);
-! vim_free(pbuf2);
-! return 0;
- }
-
- /*
- * Get a pathname for a partial path.
- */
- static int
- shortpath_for_partial(fnamep, bufp, fnamelen)
---- 21534,21639 ----
- char_u **bufp;
- int *fnamelen;
- {
-! char_u *short_fname, *save_fname, *pbuf_unused;
-! char_u *endp, *save_endp;
- char_u ch;
-! int old_len, len;
-! int new_len, sfx_len;
-! int retval = OK;
-
- /* Make a copy */
-! old_len = *fnamelen;
-! save_fname = vim_strnsave(*fname, old_len);
-! pbuf_unused = NULL;
-! short_fname = NULL;
-
-! endp = save_fname + old_len - 1; /* Find the end of the copy */
-! save_endp = endp;
-!
-! /*
-! * Try shortening the supplied path till it succeeds by removing one
-! * directory at a time from the tail of the path.
-! */
-! len = 0;
-! for (;;)
- {
-! /* go back one path-separator */
-! while (endp > save_fname && !after_pathsep(save_fname, endp + 1))
-! --endp;
-! if (endp <= save_fname)
-! break; /* processed the complete path */
-
-! /*
-! * Replace the path separator with a NUL and try to shorten the
-! * resulting path.
-! */
-! ch = *endp;
-! *endp = 0;
-! short_fname = save_fname;
-! len = STRLEN(short_fname) + 1;
-! if (get_short_pathname(&short_fname, &pbuf_unused, &len) == FAIL)
- {
-! retval = FAIL;
-! goto theend;
- }
-! *endp = ch; /* preserve the string */
-!
-! if (len > 0)
-! break; /* successfully shortened the path */
-
-! /* failed to shorten the path. Skip the path separator */
-! --endp;
-! }
-!
-! if (len > 0)
- {
-! /*
-! * Succeeded in shortening the path. Now concatenate the shortened
-! * path with the remaining path at the tail.
-! */
-!
-! /* Compute the length of the new path. */
-! sfx_len = (int)(save_endp - endp) + 1;
-! new_len = len + sfx_len;
-!
-! *fnamelen = new_len;
- vim_free(*bufp);
-! if (new_len > old_len)
- {
-! /* There is not enough space in the currently allocated string,
-! * copy it to a buffer big enough. */
-! *fname = *bufp = vim_strnsave(short_fname, new_len);
- if (*fname == NULL)
-! {
-! retval = FAIL;
-! goto theend;
-! }
- }
- else
- {
-! /* Transfer short_fname to the main buffer (it's big enough),
-! * unless get_short_pathname() did its work in-place. */
-! *fname = *bufp = save_fname;
-! if (short_fname != save_fname)
-! vim_strncpy(save_fname, short_fname, len);
-! save_fname = NULL;
-! }
-!
-! /* concat the not-shortened part of the path */
-! vim_strncpy(*fname + len, endp, sfx_len);
-! (*fname)[new_len] = NUL;
- }
-!
-! theend:
-! vim_free(pbuf_unused);
-! vim_free(save_fname);
-!
-! return retval;
- }
-
- /*
- * Get a pathname for a partial path.
-+ * Returns OK for success, FAIL for failure.
- */
- static int
- shortpath_for_partial(fnamep, bufp, fnamelen)
-***************
-*** 21222,21229 ****
-
- len = tflen = (int)STRLEN(tfname);
-
-! if (!get_short_pathname(&tfname, &pbuf, &len))
-! return -1;
-
- if (len == 0)
- {
---- 21663,21670 ----
-
- len = tflen = (int)STRLEN(tfname);
-
-! if (get_short_pathname(&tfname, &pbuf, &len) == FAIL)
-! return FAIL;
-
- if (len == 0)
- {
-***************
-*** 21232,21239 ****
- * there's not a lot of point in guessing what it might be.
- */
- len = tflen;
-! if (shortpath_for_invalid_fname(&tfname, &pbuf, &len) == -1)
-! return -1;
- }
-
- /* Count the paths backward to find the beginning of the desired string. */
---- 21673,21680 ----
- * there's not a lot of point in guessing what it might be.
- */
- len = tflen;
-! if (shortpath_for_invalid_fname(&tfname, &pbuf, &len) == FAIL)
-! return FAIL;
- }
-
- /* Count the paths backward to find the beginning of the desired string. */
-***************
-*** 21257,21263 ****
- if (p >= tfname)
- *p = '~';
- else
-! return -1;
- }
- else
- ++p;
---- 21698,21704 ----
- if (p >= tfname)
- *p = '~';
- else
-! return FAIL;
- }
- else
- ++p;
-***************
-*** 21268,21274 ****
- *bufp = pbuf;
- *fnamep = p;
-
-! return 0;
- }
- #endif /* WIN3264 */
-
---- 21709,21715 ----
- *bufp = pbuf;
- *fnamep = p;
-
-! return OK;
- }
- #endif /* WIN3264 */
-
-***************
-*** 21276,21282 ****
- * Adjust a filename, according to a string of modifiers.
- * *fnamep must be NUL terminated when called. When returning, the length is
- * determined by *fnamelen.
-! * Returns valid flags.
- * When there is an error, *fnamep is set to NULL.
- */
- int
---- 21717,21723 ----
- * Adjust a filename, according to a string of modifiers.
- * *fnamep must be NUL terminated when called. When returning, the length is
- * determined by *fnamelen.
-! * Returns VALID_ flags or -1 for failure.
- * When there is an error, *fnamep is set to NULL.
- */
- int
-***************
-*** 21488,21494 ****
- */
- if (!has_fullname && !vim_isAbsName(*fnamep))
- {
-! if (shortpath_for_partial(fnamep, bufp, fnamelen) == -1)
- return -1;
- }
- else
---- 21929,21935 ----
- */
- if (!has_fullname && !vim_isAbsName(*fnamep))
- {
-! if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
- return -1;
- }
- else
-***************
-*** 21498,21504 ****
- /* Simple case, already have the full-name
- * Nearly always shorter, so try first time. */
- l = *fnamelen;
-! if (!get_short_pathname(fnamep, bufp, &l))
- return -1;
-
- if (l == 0)
---- 21939,21945 ----
- /* Simple case, already have the full-name
- * Nearly always shorter, so try first time. */
- l = *fnamelen;
-! if (get_short_pathname(fnamep, bufp, &l) == FAIL)
- return -1;
-
- if (l == 0)
-***************
-*** 21506,21512 ****
- /* Couldn't find the filename.. search the paths.
- */
- l = *fnamelen;
-! if (shortpath_for_invalid_fname(fnamep, bufp, &l ) == -1)
- return -1;
- }
- *fnamelen = l;
---- 21947,21953 ----
- /* Couldn't find the filename.. search the paths.
- */
- l = *fnamelen;
-! if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
- return -1;
- }
- *fnamelen = l;
-*** ../vim-7.1.303/src/version.c Thu May 29 15:33:13 2008
---- src/version.c Thu May 29 21:41:55 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 304,
- /**/
-
---
-"The future's already arrived - it's just not evenly distributed yet."
- -- William Gibson
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.305
-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.1.305
-Problem: Editing a compressed file with special characters in the name
- doesn't work properly.
-Solution: Escape special characters.
-Files: runtime/autoload/gzip.vim
-
-
-*** ../vim-7.1.304/runtime/autoload/gzip.vim Thu May 10 18:54:26 2007
---- runtime/autoload/gzip.vim Thu May 29 22:30:59 2008
-***************
-*** 1,6 ****
- " Vim autoload file for editing compressed files.
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2007 May 10
-
- " 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: 2008 May 29
-
- " These functions are used by the gzip plugin.
-
-***************
-*** 73,80 ****
- let empty = line("'[") == 1 && line("']") == line("$")
- 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)
---- 73,87 ----
- let empty = line("'[") == 1 && line("']") == line("$")
- let tmp = tempname()
- let tmpe = tmp . "." . expand("<afile>:e")
-+ if exists('*fnameescape')
-+ let tmp_esc = fnameescape(tmp)
-+ let tmpe_esc = fnameescape(tmpe)
-+ else
-+ let tmp_esc = escape(tmp, ' ')
-+ let tmpe_esc = escape(tmpe, ' ')
-+ endif
- " write the just read lines to a temp file "'[,']w tmp.gz"
-! execute "silent '[,']w " . tmpe_esc
- " uncompress the temp file: call system("gzip -dn tmp.gz")
- call system(a:cmd . " " . s:escape(tmpe))
- if !filereadable(tmp)
-***************
-*** 95,106 ****
- setlocal nobin
- if exists(":lockmarks")
- if empty
-! execute "silent lockmarks " . l . "r ++edit " . tmp
- else
-! execute "silent lockmarks " . l . "r " . tmp
- endif
- else
-! execute "silent " . l . "r " . tmp
- endif
-
- " if buffer became empty, delete trailing blank line
---- 102,113 ----
- setlocal nobin
- if exists(":lockmarks")
- if empty
-! execute "silent lockmarks " . l . "r ++edit " . tmp_esc
- else
-! execute "silent lockmarks " . l . "r " . tmp_esc
- endif
- else
-! execute "silent " . l . "r " . tmp_esc
- endif
-
- " if buffer became empty, delete trailing blank line
-***************
-*** 110,117 ****
- endif
- " delete the temp file and the used buffers
- call delete(tmp)
-! silent! exe "bwipe " . tmp
-! silent! exe "bwipe " . tmpe
- endif
-
- " Restore saved option values.
---- 117,124 ----
- endif
- " delete the temp file and the used buffers
- call delete(tmp)
-! silent! exe "bwipe " . tmp_esc
-! silent! exe "bwipe " . tmpe_esc
- endif
-
- " Restore saved option values.
-***************
-*** 124,133 ****
-
- " When uncompressed the whole buffer, do autocommands
- if ok && empty
- if &verbose >= 8
-! execute "doau BufReadPost " . expand("%:r")
- else
-! execute "silent! doau BufReadPost " . expand("%:r")
- endif
- endif
- endfun
---- 131,145 ----
-
- " When uncompressed the whole buffer, do autocommands
- if ok && empty
-+ if exists('*fnameescape')
-+ let fname = fnameescape(expand("%:r"))
-+ else
-+ let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<")
-+ endif
- if &verbose >= 8
-! execute "doau BufReadPost " . fname
- else
-! execute "silent! doau BufReadPost " . fname
- endif
- endif
- endfun
-*** ../vim-7.1.304/src/version.c Thu May 29 21:46:10 2008
---- src/version.c Thu May 29 22:33:11 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 305,
- /**/
-
---
-OLD WOMAN: Well, how did you become king, then?
-ARTHUR: The Lady of the Lake, her arm clad in the purest shimmering samite,
- held Excalibur aloft from the bosom of the water to signify by Divine
- Providence ... that I, Arthur, was to carry Excalibur ... That is
- why I am your king!
- "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.1.306
-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.1.306
-Problem: Some Unicode characters are handled like word characters while
- they are symbols.
-Solution: Adjust the table for Unicode classification.
-Files: src/mbyte.c
-
-
-*** ../vim-7.1.305/src/mbyte.c Wed Feb 20 11:27:59 2008
---- src/mbyte.c Wed May 21 20:49:34 2008
-***************
-*** 1973,1980 ****
- {0x205f, 0x205f, 0},
- {0x2060, 0x27ff, 1}, /* punctuation and symbols */
- {0x2070, 0x207f, 0x2070}, /* superscript */
-! {0x2080, 0x208f, 0x2080}, /* subscript */
-! {0x2983, 0x2998, 1},
- {0x29d8, 0x29db, 1},
- {0x29fc, 0x29fd, 1},
- {0x3000, 0x3000, 0}, /* ideographic space */
---- 1973,1982 ----
- {0x205f, 0x205f, 0},
- {0x2060, 0x27ff, 1}, /* punctuation and symbols */
- {0x2070, 0x207f, 0x2070}, /* superscript */
-! {0x2080, 0x2094, 0x2080}, /* subscript */
-! {0x20a0, 0x27ff, 1}, /* all kinds of symbols */
-! {0x2800, 0x28ff, 0x2800}, /* braille */
-! {0x2900, 0x2998, 1}, /* arrows, brackets, etc. */
- {0x29d8, 0x29db, 1},
- {0x29fc, 0x29fd, 1},
- {0x3000, 0x3000, 0}, /* ideographic space */
-*** ../vim-7.1.305/src/version.c Thu May 29 22:41:19 2008
---- src/version.c Wed Jun 4 10:54:36 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 306,
- /**/
-
---
-Engineers are always delighted to share wisdom, even in areas in which they
-have no experience whatsoever. Their logic provides them with inherent
-insight into any field of expertise. This can be a problem when dealing with
-the illogical people who believe that knowledge can only be derived through
-experience.
- (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.1.307
-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.1.307
-Problem: Many warnings when compiling with Python 2.5.
-Solution: Use ssize_t instead of int for some types. (James Vega)
-Files: src/if_python.c
-
-
-*** ../vim-7.1.306/src/if_python.c Thu Mar 8 10:20:28 2007
---- src/if_python.c Wed May 7 16:55:44 2008
-***************
-*** 38,43 ****
---- 38,45 ----
- # undef HAVE_STDARG_H /* Python's config.h defines it as well. */
- #endif
-
-+ #define PY_SSIZE_T_CLEAN
-+
- #include <Python.h>
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
- # include "macglue.h"
-***************
-*** 55,60 ****
---- 57,78 ----
- # define PySequenceMethods int
- #endif
-
-+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
-+ # define PyInt Py_ssize_t
-+ # define PyInquiry lenfunc
-+ # define PyIntArgFunc ssizeargfunc
-+ # define PyIntIntArgFunc ssizessizeargfunc
-+ # define PyIntObjArgProc ssizeobjargproc
-+ # define PyIntIntObjArgProc ssizessizeobjargproc
-+ #else
-+ # define PyInt int
-+ # define PyInquiry inquiry
-+ # define PyIntArgFunc intargfunc
-+ # define PyIntIntArgFunc intintargfunc
-+ # define PyIntObjArgProc intobjargproc
-+ # define PyIntIntObjArgProc intintobjargproc
-+ #endif
-+
- /* Parser flags */
- #define single_input 256
- #define file_input 257
-***************
-*** 150,160 ****
- static long(*dll_PyInt_AsLong)(PyObject *);
- static PyObject*(*dll_PyInt_FromLong)(long);
- static PyTypeObject* dll_PyInt_Type;
-! static PyObject*(*dll_PyList_GetItem)(PyObject *, int);
- static PyObject*(*dll_PyList_Append)(PyObject *, PyObject *);
-! static PyObject*(*dll_PyList_New)(int size);
-! static int(*dll_PyList_SetItem)(PyObject *, int, PyObject *);
-! static int(*dll_PyList_Size)(PyObject *);
- static PyTypeObject* dll_PyList_Type;
- static PyObject*(*dll_PyImport_ImportModule)(const char *);
- static PyObject*(*dll_PyDict_New)(void);
---- 168,178 ----
- static long(*dll_PyInt_AsLong)(PyObject *);
- static PyObject*(*dll_PyInt_FromLong)(long);
- static PyTypeObject* dll_PyInt_Type;
-! static PyObject*(*dll_PyList_GetItem)(PyObject *, PyInt);
- static PyObject*(*dll_PyList_Append)(PyObject *, PyObject *);
-! static PyObject*(*dll_PyList_New)(PyInt size);
-! static int(*dll_PyList_SetItem)(PyObject *, PyInt, PyObject *);
-! static PyInt(*dll_PyList_Size)(PyObject *);
- static PyTypeObject* dll_PyList_Type;
- static PyObject*(*dll_PyImport_ImportModule)(const char *);
- static PyObject*(*dll_PyDict_New)(void);
-***************
-*** 163,170 ****
- static int(*dll_PyRun_SimpleString)(char *);
- static char*(*dll_PyString_AsString)(PyObject *);
- static PyObject*(*dll_PyString_FromString)(const char *);
-! static PyObject*(*dll_PyString_FromStringAndSize)(const char *, int);
-! static int(*dll_PyString_Size)(PyObject *);
- static PyTypeObject* dll_PyString_Type;
- static int(*dll_PySys_SetObject)(char *, PyObject *);
- static int(*dll_PySys_SetArgv)(int, char **);
---- 181,188 ----
- static int(*dll_PyRun_SimpleString)(char *);
- static char*(*dll_PyString_AsString)(PyObject *);
- static PyObject*(*dll_PyString_FromString)(const char *);
-! static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt);
-! static PyInt(*dll_PyString_Size)(PyObject *);
- static PyTypeObject* dll_PyString_Type;
- static int(*dll_PySys_SetObject)(char *, PyObject *);
- static int(*dll_PySys_SetArgv)(int, char **);
-***************
-*** 367,376 ****
- * ----------------------------------------------
- */
- static PyObject *GetBufferLine(buf_T *, int);
-! static PyObject *GetBufferLineList(buf_T *, int, int);
-
- static int SetBufferLine(buf_T *, int, PyObject *, int *);
-! static int SetBufferLineList(buf_T *, int, int, PyObject *, int *);
- static int InsertBufferLines(buf_T *, int, PyObject *, int *);
-
- static PyObject *LineToString(const char *);
---- 385,394 ----
- * ----------------------------------------------
- */
- static PyObject *GetBufferLine(buf_T *, int);
-! static PyObject *GetBufferLineList(buf_T *, PyInt, PyInt);
-
- static int SetBufferLine(buf_T *, int, PyObject *, int *);
-! static int SetBufferLineList(buf_T *, PyInt, PyInt, PyObject *, int *);
- static int InsertBufferLines(buf_T *, int, PyObject *, int *);
-
- static PyObject *LineToString(const char *);
-***************
-*** 773,780 ****
- static PyObject *
- OutputWritelines(PyObject *self, PyObject *args)
- {
-! int n;
-! int i;
- PyObject *list;
- int error = ((OutputObject *)(self))->error;
-
---- 791,798 ----
- static PyObject *
- OutputWritelines(PyObject *self, PyObject *args)
- {
-! PyInt n;
-! PyInt i;
- PyObject *list;
- int error = ((OutputObject *)(self))->error;
-
-***************
-*** 986,996 ****
- static PyObject *BufferGetattr(PyObject *, char *);
- static PyObject *BufferRepr(PyObject *);
-
-! static int BufferLength(PyObject *);
-! static PyObject *BufferItem(PyObject *, int);
-! static PyObject *BufferSlice(PyObject *, int, int);
-! static int BufferAssItem(PyObject *, int, PyObject *);
-! static int BufferAssSlice(PyObject *, int, int, PyObject *);
-
- static PyObject *BufferAppend(PyObject *, PyObject *);
- static PyObject *BufferMark(PyObject *, PyObject *);
---- 1004,1014 ----
- static PyObject *BufferGetattr(PyObject *, char *);
- static PyObject *BufferRepr(PyObject *);
-
-! static PyInt BufferLength(PyObject *);
-! static PyObject *BufferItem(PyObject *, PyInt);
-! static PyObject *BufferSlice(PyObject *, PyInt, PyInt);
-! static PyInt BufferAssItem(PyObject *, PyInt, PyObject *);
-! static PyInt BufferAssSlice(PyObject *, PyInt, PyInt, PyObject *);
-
- static PyObject *BufferAppend(PyObject *, PyObject *);
- static PyObject *BufferMark(PyObject *, PyObject *);
-***************
-*** 1017,1027 ****
- static PyObject *RangeGetattr(PyObject *, char *);
- static PyObject *RangeRepr(PyObject *);
-
-! static int RangeLength(PyObject *);
-! static PyObject *RangeItem(PyObject *, int);
-! static PyObject *RangeSlice(PyObject *, int, int);
-! static int RangeAssItem(PyObject *, int, PyObject *);
-! static int RangeAssSlice(PyObject *, int, int, PyObject *);
-
- static PyObject *RangeAppend(PyObject *, PyObject *);
-
---- 1035,1045 ----
- static PyObject *RangeGetattr(PyObject *, char *);
- static PyObject *RangeRepr(PyObject *);
-
-! static PyInt RangeLength(PyObject *);
-! static PyObject *RangeItem(PyObject *, PyInt);
-! static PyObject *RangeSlice(PyObject *, PyInt, PyInt);
-! static PyInt RangeAssItem(PyObject *, PyInt, PyObject *);
-! static PyInt RangeAssSlice(PyObject *, PyInt, PyInt, PyObject *);
-
- static PyObject *RangeAppend(PyObject *, PyObject *);
-
-***************
-*** 1029,1043 ****
- * -------------------------------------------
- */
-
-! static int WinListLength(PyObject *);
-! static PyObject *WinListItem(PyObject *, int);
-
- /* Buffer list type - Implementation functions
- * -------------------------------------------
- */
-
-! static int BufListLength(PyObject *);
-! static PyObject *BufListItem(PyObject *, int);
-
- /* Current objects type - Implementation functions
- * -----------------------------------------------
---- 1047,1061 ----
- * -------------------------------------------
- */
-
-! static PyInt WinListLength(PyObject *);
-! static PyObject *WinListItem(PyObject *, PyInt);
-
- /* Buffer list type - Implementation functions
- * -------------------------------------------
- */
-
-! static PyInt BufListLength(PyObject *);
-! static PyObject *BufListItem(PyObject *, PyInt);
-
- /* Current objects type - Implementation functions
- * -----------------------------------------------
-***************
-*** 1130,1135 ****
---- 1148,1163 ----
- result = Py_BuildValue("s", buf);
- PyDict_SetItemString(lookupDict, ptrBuf, result);
- }
-+ #ifdef FEAT_FLOAT
-+ else if (our_tv->v_type == VAR_FLOAT)
-+ {
-+ char buf[NUMBUFLEN];
-+
-+ sprintf(buf, "%f", our_tv->vval.v_float);
-+ result = Py_BuildValue("s", buf);
-+ PyDict_SetItemString(lookupDict, ptrBuf, result);
-+ }
-+ #endif
- else if (our_tv->v_type == VAR_LIST)
- {
- list_T *list = our_tv->vval.v_list;
-***************
-*** 1245,1251 ****
- }
-
- static PyObject *
-! RBItem(BufferObject *self, int n, int start, int end)
- {
- if (CheckBuffer(self))
- return NULL;
---- 1273,1279 ----
- }
-
- static PyObject *
-! RBItem(BufferObject *self, PyInt n, int start, int end)
- {
- if (CheckBuffer(self))
- return NULL;
-***************
-*** 1260,1268 ****
- }
-
- static PyObject *
-! RBSlice(BufferObject *self, int lo, int hi, int start, int end)
- {
-! int size;
-
- if (CheckBuffer(self))
- return NULL;
---- 1288,1296 ----
- }
-
- static PyObject *
-! RBSlice(BufferObject *self, PyInt lo, PyInt hi, int start, int end)
- {
-! PyInt size;
-
- if (CheckBuffer(self))
- return NULL;
-***************
-*** 1283,1290 ****
- return GetBufferLineList(self->buf, lo+start, hi+start);
- }
-
-! static int
-! RBAssItem(BufferObject *self, int n, PyObject *val, int start, int end, int *new_end)
- {
- int len_change;
-
---- 1311,1318 ----
- return GetBufferLineList(self->buf, lo+start, hi+start);
- }
-
-! static PyInt
-! RBAssItem(BufferObject *self, PyInt n, PyObject *val, int start, int end, int *new_end)
- {
- int len_change;
-
-***************
-*** 1306,1313 ****
- return 0;
- }
-
-! static int
-! RBAssSlice(BufferObject *self, int lo, int hi, PyObject *val, int start, int end, int *new_end)
- {
- int size;
- int len_change;
---- 1334,1341 ----
- return 0;
- }
-
-! static PyInt
-! RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, int start, int end, int *new_end)
- {
- int size;
- int len_change;
-***************
-*** 1384,1396 ****
- };
-
- static PySequenceMethods BufferAsSeq = {
-! (inquiry) BufferLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* BufferConcat, */ /* sq_concat, x+y */
-! (intargfunc) 0, /* BufferRepeat, */ /* sq_repeat, x*n */
-! (intargfunc) BufferItem, /* sq_item, x[i] */
-! (intintargfunc) BufferSlice, /* sq_slice, x[i:j] */
-! (intobjargproc) BufferAssItem, /* sq_ass_item, x[i]=v */
-! (intintobjargproc) BufferAssSlice, /* sq_ass_slice, x[i:j]=v */
- };
-
- static PyTypeObject BufferType = {
---- 1412,1424 ----
- };
-
- static PySequenceMethods BufferAsSeq = {
-! (PyInquiry) BufferLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* BufferConcat, */ /* sq_concat, x+y */
-! (PyIntArgFunc) 0, /* BufferRepeat, */ /* sq_repeat, x*n */
-! (PyIntArgFunc) BufferItem, /* sq_item, x[i] */
-! (PyIntIntArgFunc) BufferSlice, /* sq_slice, x[i:j] */
-! (PyIntObjArgProc) BufferAssItem, /* sq_ass_item, x[i]=v */
-! (PyIntIntObjArgProc) BufferAssSlice, /* sq_ass_slice, x[i:j]=v */
- };
-
- static PyTypeObject BufferType = {
-***************
-*** 1516,1522 ****
-
- /******************/
-
-! static int
- BufferLength(PyObject *self)
- {
- /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */
---- 1544,1550 ----
-
- /******************/
-
-! static PyInt
- BufferLength(PyObject *self)
- {
- /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */
-***************
-*** 1527,1555 ****
- }
-
- static PyObject *
-! BufferItem(PyObject *self, int n)
- {
- return RBItem((BufferObject *)(self), n, 1,
- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count);
- }
-
- static PyObject *
-! BufferSlice(PyObject *self, int lo, int hi)
- {
- return RBSlice((BufferObject *)(self), lo, hi, 1,
- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count);
- }
-
-! static int
-! BufferAssItem(PyObject *self, int n, PyObject *val)
- {
- return RBAssItem((BufferObject *)(self), n, val, 1,
- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-
-! static int
-! BufferAssSlice(PyObject *self, int lo, int hi, PyObject *val)
- {
- return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
---- 1555,1583 ----
- }
-
- static PyObject *
-! BufferItem(PyObject *self, PyInt n)
- {
- return RBItem((BufferObject *)(self), n, 1,
- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count);
- }
-
- static PyObject *
-! BufferSlice(PyObject *self, PyInt lo, PyInt hi)
- {
- return RBSlice((BufferObject *)(self), lo, hi, 1,
- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count);
- }
-
-! static PyInt
-! BufferAssItem(PyObject *self, PyInt n, PyObject *val)
- {
- return RBAssItem((BufferObject *)(self), n, val, 1,
- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-
-! static PyInt
-! BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
- {
- return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
-***************
-*** 1627,1639 ****
- };
-
- static PySequenceMethods RangeAsSeq = {
-! (inquiry) RangeLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* RangeConcat, */ /* sq_concat, x+y */
-! (intargfunc) 0, /* RangeRepeat, */ /* sq_repeat, x*n */
-! (intargfunc) RangeItem, /* sq_item, x[i] */
-! (intintargfunc) RangeSlice, /* sq_slice, x[i:j] */
-! (intobjargproc) RangeAssItem, /* sq_ass_item, x[i]=v */
-! (intintobjargproc) RangeAssSlice, /* sq_ass_slice, x[i:j]=v */
- };
-
- static PyTypeObject RangeType = {
---- 1655,1667 ----
- };
-
- static PySequenceMethods RangeAsSeq = {
-! (PyInquiry) RangeLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* RangeConcat, */ /* sq_concat, x+y */
-! (PyIntArgFunc) 0, /* RangeRepeat, */ /* sq_repeat, x*n */
-! (PyIntArgFunc) RangeItem, /* sq_item, x[i] */
-! (PyIntIntArgFunc) RangeSlice, /* sq_slice, x[i:j] */
-! (PyIntObjArgProc) RangeAssItem, /* sq_ass_item, x[i]=v */
-! (PyIntIntObjArgProc) RangeAssSlice, /* sq_ass_slice, x[i:j]=v */
- };
-
- static PyTypeObject RangeType = {
-***************
-*** 1738,1744 ****
-
- /****************/
-
-! static int
- RangeLength(PyObject *self)
- {
- /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */
---- 1766,1772 ----
-
- /****************/
-
-! static PyInt
- RangeLength(PyObject *self)
- {
- /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */
-***************
-*** 1749,1755 ****
- }
-
- static PyObject *
-! RangeItem(PyObject *self, int n)
- {
- return RBItem(((RangeObject *)(self))->buf, n,
- ((RangeObject *)(self))->start,
---- 1777,1783 ----
- }
-
- static PyObject *
-! RangeItem(PyObject *self, PyInt n)
- {
- return RBItem(((RangeObject *)(self))->buf, n,
- ((RangeObject *)(self))->start,
-***************
-*** 1757,1771 ****
- }
-
- static PyObject *
-! RangeSlice(PyObject *self, int lo, int hi)
- {
- return RBSlice(((RangeObject *)(self))->buf, lo, hi,
- ((RangeObject *)(self))->start,
- ((RangeObject *)(self))->end);
- }
-
-! static int
-! RangeAssItem(PyObject *self, int n, PyObject *val)
- {
- return RBAssItem(((RangeObject *)(self))->buf, n, val,
- ((RangeObject *)(self))->start,
---- 1785,1799 ----
- }
-
- static PyObject *
-! RangeSlice(PyObject *self, PyInt lo, PyInt hi)
- {
- return RBSlice(((RangeObject *)(self))->buf, lo, hi,
- ((RangeObject *)(self))->start,
- ((RangeObject *)(self))->end);
- }
-
-! static PyInt
-! RangeAssItem(PyObject *self, PyInt n, PyObject *val)
- {
- return RBAssItem(((RangeObject *)(self))->buf, n, val,
- ((RangeObject *)(self))->start,
-***************
-*** 1773,1780 ****
- &((RangeObject *)(self))->end);
- }
-
-! static int
-! RangeAssSlice(PyObject *self, int lo, int hi, PyObject *val)
- {
- return RBAssSlice(((RangeObject *)(self))->buf, lo, hi, val,
- ((RangeObject *)(self))->start,
---- 1801,1808 ----
- &((RangeObject *)(self))->end);
- }
-
-! static PyInt
-! RangeAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
- {
- return RBAssSlice(((RangeObject *)(self))->buf, lo, hi, val,
- ((RangeObject *)(self))->start,
-***************
-*** 1801,1813 ****
- BufListObject;
-
- static PySequenceMethods BufListAsSeq = {
-! (inquiry) BufListLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* sq_concat, x+y */
-! (intargfunc) 0, /* sq_repeat, x*n */
-! (intargfunc) BufListItem, /* sq_item, x[i] */
-! (intintargfunc) 0, /* sq_slice, x[i:j] */
-! (intobjargproc) 0, /* sq_ass_item, x[i]=v */
-! (intintobjargproc) 0, /* sq_ass_slice, x[i:j]=v */
- };
-
- static PyTypeObject BufListType = {
---- 1829,1841 ----
- BufListObject;
-
- static PySequenceMethods BufListAsSeq = {
-! (PyInquiry) BufListLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* sq_concat, x+y */
-! (PyIntArgFunc) 0, /* sq_repeat, x*n */
-! (PyIntArgFunc) BufListItem, /* sq_item, x[i] */
-! (PyIntIntArgFunc) 0, /* sq_slice, x[i:j] */
-! (PyIntObjArgProc) 0, /* sq_ass_item, x[i]=v */
-! (PyIntIntObjArgProc) 0, /* sq_ass_slice, x[i:j]=v */
- };
-
- static PyTypeObject BufListType = {
-***************
-*** 1837,1843 ****
- */
-
- /*ARGSUSED*/
-! static int
- BufListLength(PyObject *self)
- {
- buf_T *b = firstbuf;
---- 1865,1871 ----
- */
-
- /*ARGSUSED*/
-! static PyInt
- BufListLength(PyObject *self)
- {
- buf_T *b = firstbuf;
-***************
-*** 1854,1860 ****
-
- /*ARGSUSED*/
- static PyObject *
-! BufListItem(PyObject *self, int n)
- {
- buf_T *b;
-
---- 1882,1888 ----
-
- /*ARGSUSED*/
- static PyObject *
-! BufListItem(PyObject *self, PyInt n)
- {
- buf_T *b;
-
-***************
-*** 2119,2131 ****
- WinListObject;
-
- static PySequenceMethods WinListAsSeq = {
-! (inquiry) WinListLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* sq_concat, x+y */
-! (intargfunc) 0, /* sq_repeat, x*n */
-! (intargfunc) WinListItem, /* sq_item, x[i] */
-! (intintargfunc) 0, /* sq_slice, x[i:j] */
-! (intobjargproc) 0, /* sq_ass_item, x[i]=v */
-! (intintobjargproc) 0, /* sq_ass_slice, x[i:j]=v */
- };
-
- static PyTypeObject WinListType = {
---- 2147,2159 ----
- WinListObject;
-
- static PySequenceMethods WinListAsSeq = {
-! (PyInquiry) WinListLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* sq_concat, x+y */
-! (PyIntArgFunc) 0, /* sq_repeat, x*n */
-! (PyIntArgFunc) WinListItem, /* sq_item, x[i] */
-! (PyIntIntArgFunc) 0, /* sq_slice, x[i:j] */
-! (PyIntObjArgProc) 0, /* sq_ass_item, x[i]=v */
-! (PyIntIntObjArgProc) 0, /* sq_ass_slice, x[i:j]=v */
- };
-
- static PyTypeObject WinListType = {
-***************
-*** 2154,2160 ****
- /* Window list object - Implementation
- */
- /*ARGSUSED*/
-! static int
- WinListLength(PyObject *self)
- {
- win_T *w = firstwin;
---- 2182,2188 ----
- /* Window list object - Implementation
- */
- /*ARGSUSED*/
-! static PyInt
- WinListLength(PyObject *self)
- {
- win_T *w = firstwin;
-***************
-*** 2171,2177 ****
-
- /*ARGSUSED*/
- static PyObject *
-! WinListItem(PyObject *self, int n)
- {
- win_T *w;
-
---- 2199,2205 ----
-
- /*ARGSUSED*/
- static PyObject *
-! WinListItem(PyObject *self, PyInt n)
- {
- win_T *w;
-
-***************
-*** 2351,2360 ****
- * including, hi. The list is returned as a Python list of string objects.
- */
- static PyObject *
-! GetBufferLineList(buf_T *buf, int lo, int hi)
- {
-! int i;
-! int n = hi - lo;
- PyObject *list = PyList_New(n);
-
- if (list == NULL)
---- 2379,2388 ----
- * including, hi. The list is returned as a Python list of string objects.
- */
- static PyObject *
-! GetBufferLineList(buf_T *buf, PyInt lo, PyInt hi)
- {
-! PyInt i;
-! PyInt n = hi - lo;
- PyObject *list = PyList_New(n);
-
- if (list == NULL)
-***************
-*** 2517,2523 ****
- * is set to the change in the buffer length.
- */
- static int
-! SetBufferLineList(buf_T *buf, int lo, int hi, PyObject *list, int *len_change)
- {
- /* First of all, we check the thpe of the supplied Python object.
- * There are three cases:
---- 2545,2551 ----
- * is set to the change in the buffer length.
- */
- static int
-! SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, int *len_change)
- {
- /* First of all, we check the thpe of the supplied Python object.
- * There are three cases:
-***************
-*** 2527,2534 ****
- */
- if (list == Py_None || list == NULL)
- {
-! int i;
-! int n = hi - lo;
- buf_T *savebuf = curbuf;
-
- PyErr_Clear();
---- 2555,2562 ----
- */
- if (list == Py_None || list == NULL)
- {
-! PyInt i;
-! PyInt n = hi - lo;
- buf_T *savebuf = curbuf;
-
- PyErr_Clear();
-***************
-*** 2564,2572 ****
- }
- else if (PyList_Check(list))
- {
-! int i;
-! int new_len = PyList_Size(list);
-! int old_len = hi - lo;
- int extra = 0; /* lines added to text, can be negative */
- char **array;
- buf_T *savebuf;
---- 2592,2600 ----
- }
- else if (PyList_Check(list))
- {
-! PyInt i;
-! PyInt new_len = PyList_Size(list);
-! PyInt old_len = hi - lo;
- int extra = 0; /* lines added to text, can be negative */
- char **array;
- buf_T *savebuf;
-***************
-*** 2745,2752 ****
- }
- else if (PyList_Check(lines))
- {
-! int i;
-! int size = PyList_Size(lines);
- char **array;
- buf_T *savebuf;
-
---- 2773,2780 ----
- }
- else if (PyList_Check(lines))
- {
-! PyInt i;
-! PyInt size = PyList_Size(lines);
- char **array;
- buf_T *savebuf;
-
-***************
-*** 2831,2837 ****
- LineToString(const char *str)
- {
- PyObject *result;
-! int len = strlen(str);
- char *p;
-
- /* Allocate an Python string object, with uninitialised contents. We
---- 2859,2865 ----
- LineToString(const char *str)
- {
- PyObject *result;
-! PyInt len = strlen(str);
- char *p;
-
- /* Allocate an Python string object, with uninitialised contents. We
-***************
-*** 2871,2878 ****
- {
- const char *str;
- char *save;
-! int len;
-! int i;
- char *p;
-
- if (obj == NULL || !PyString_Check(obj))
---- 2899,2906 ----
- {
- const char *str;
- char *save;
-! PyInt len;
-! PyInt i;
- char *p;
-
- if (obj == NULL || !PyString_Check(obj))
-*** ../vim-7.1.306/src/version.c Wed Jun 4 10:59:18 2008
---- src/version.c Wed Jun 4 13:31:40 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 307,
- /**/
-
---
-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.1.308
-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.1.308
-Problem: When in readonly mode ":options" produces an error.
-Solution: Reset 'readonly'. (Gary Johnson)
-Files: runtime/optwin.vim
-
-
-*** ../vim-7.1.307/runtime/optwin.vim Sat May 5 19:13:05 2007
---- runtime/optwin.vim Mon May 12 22:30:28 2008
-***************
-*** 1,7 ****
- " These commands create the option window.
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2006 Oct 10
-
- " If there already is an option window, jump to that one.
- if bufwinnr("option-window") > 0
---- 1,7 ----
- " These commands create the option window.
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2008 May 12
-
- " If there already is an option window, jump to that one.
- if bufwinnr("option-window") > 0
-***************
-*** 147,153 ****
-
- " Open the window
- new option-window
-! setlocal ts=15 tw=0
-
- " Insert help and a "set" command for each option.
- call append(0, '" Each "set" line shows the current value of an option (on the left).')
---- 147,153 ----
-
- " Open the window
- new option-window
-! setlocal ts=15 tw=0 noro
-
- " Insert help and a "set" command for each option.
- call append(0, '" Each "set" line shows the current value of an option (on the left).')
-***************
-*** 350,355 ****
---- 350,359 ----
- call append("$", " \tset lines=" . &lines)
- call append("$", "lazyredraw\tdon't redraw while executing macros")
- call <SID>BinOptionG("lz", &lz)
-+ if has("reltime")
-+ call append("$", "redrawtime\ttimeout for 'hlsearch' and :match highlighting in msec")
-+ call append("$", " \tset rdt=" . &rdt)
-+ endif
- call append("$", "writedelay\tdelay in msec for each char written to the display")
- call append("$", "\t(for debugging)")
- call append("$", " \tset wd=" . &wd)
-*** ../vim-7.1.307/src/version.c Wed Jun 4 13:33:15 2008
---- src/version.c Wed Jun 4 14:27:16 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 308,
- /**/
-
---
-Engineers are widely recognized as superior marriage material: intelligent,
-dependable, employed, honest, and handy around the house.
- (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.1.309
-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.1.309
-Problem: Installing and testing with a shadow directory doesn't work.
- (James Vega)
-Solution: Add "po" to the list of directories to link. Also link the Vim
- scripts in testdir. And a few more small fixes.
-Files: src/Makefile
-
-
-*** ../vim-7.1.308/src/Makefile Wed Jun 4 14:28:33 2008
---- src/Makefile Sat May 24 15:39:39 2008
-***************
-*** 780,785 ****
---- 780,787 ----
- # 1) make config
- # 2) edit auto/config.mk, add -n32 to LDFLAGS
- # 3) make
-+ #
-+ #Alternatively: use -o32 instead of -n32.
- ###
-
- ### (C) On SCO Unix v3.2.5 (and probably other versions) the termcap library,
-***************
-*** 1074,1080 ****
- # default vi editor, it will create a link from vi to Vim when doing
- # "make install". An existing file will be overwritten!
- # When not using it, some make programs can't handle an undefined $(LINKIT).
-! #LINKIT = -ln -f -s $(BINDIR)/$(VIMTARGET) /usr/bin/vi
- LINKIT = @echo >/dev/null
-
- ###
---- 1076,1082 ----
- # default vi editor, it will create a link from vi to Vim when doing
- # "make install". An existing file will be overwritten!
- # When not using it, some make programs can't handle an undefined $(LINKIT).
-! #LINKIT = ln -f -s $(DEST_BIN)/$(VIMTARGET) $(DESTDIR)/usr/bin/vi
- LINKIT = @echo >/dev/null
-
- ###
-***************
-*** 1290,1295 ****
---- 1292,1300 ----
-
- DEPEND_CFLAGS = -DPROTO -DDEPEND -DFEAT_GUI $(LINT_CFLAGS)
-
-+ # If you have problems with flags that cproto doesn't support, and you are
-+ # using GNU make, you can try using the other line to filter out arguments.
-+ #PFLAGS = $(PROTO_FLAGS) -DPROTO $(filter -D% -I%, $(LINT_CFLAGS))
- PFLAGS = $(PROTO_FLAGS) -DPROTO $(LINT_CFLAGS)
-
- ALL_LIB_DIRS = $(GUI_LIBS_DIR) $(X_LIBS_DIR)
-***************
-*** 2174,2180 ****
-
- shadow: runtime pixmaps
- mkdir $(SHADOWDIR)
-! cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
- mkdir $(SHADOWDIR)/auto
- cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
- cd $(SHADOWDIR); rm -f auto/link.sed
---- 2179,2185 ----
-
- shadow: runtime pixmaps
- mkdir $(SHADOWDIR)
-! cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../po ../vimtutor ../gvimtutor ../mkinstalldirs .
- mkdir $(SHADOWDIR)/auto
- cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
- cd $(SHADOWDIR); rm -f auto/link.sed
-***************
-*** 2193,2199 ****
- cd $(SHADOWDIR)/testdir; ln -s ../../testdir/Makefile \
- ../../testdir/vimrc.unix \
- ../../testdir/*.in \
-! ../../testdir/unix.vim \
- ../../testdir/*.ok .
-
- # Link needed for doing "make install" in a shadow directory.
---- 2198,2204 ----
- cd $(SHADOWDIR)/testdir; ln -s ../../testdir/Makefile \
- ../../testdir/vimrc.unix \
- ../../testdir/*.in \
-! ../../testdir/*.vim \
- ../../testdir/*.ok .
-
- # Link needed for doing "make install" in a shadow directory.
-*** ../vim-7.1.308/src/version.c Wed Jun 4 14:28:28 2008
---- src/version.c Wed Jun 4 15:25:00 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 309,
- /**/
-
---
-An alien life briefly visits earth. Just before departing it leaves a
-message in the dust on the back of a white van. The world is shocked
-and wants to know what it means. After months of studies the worlds
-best linguistic scientists are able to decipher the message: "Wash me!".
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.310
-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.1.310
-Problem: Incomplete utf-8 byte sequence at end of the file is not detected.
- Accessing memory that wasn't written.
-Solution: Check the last bytes in the buffer for being a valid utf-8
- character. (mostly by Ben Schmidt)
- Also fix that the reported line number of the error was wrong.
-Files: src/fileio.c
-
-
-*** ../vim-7.1.309/src/fileio.c Wed May 7 19:05:55 2008
---- src/fileio.c Wed Jun 4 18:28:48 2008
-***************
-*** 1288,1299 ****
- #ifdef FEAT_MBYTE
- else if (conv_restlen > 0)
- {
-! /* Reached end-of-file but some trailing bytes could
-! * not be converted. Truncated file? */
-! if (conv_error == 0)
-! conv_error = linecnt;
-! if (bad_char_behavior != BAD_DROP)
- {
- fio_flags = 0; /* don't convert this */
- # ifdef USE_ICONV
- if (iconv_fd != (iconv_t)-1)
---- 1288,1336 ----
- #ifdef FEAT_MBYTE
- else if (conv_restlen > 0)
- {
-! /*
-! * Reached end-of-file but some trailing bytes could
-! * not be converted. Truncated file?
-! */
-!
-! /* When we did a conversion report an error. */
-! if (fio_flags != 0
-! # ifdef USE_ICONV
-! || iconv_fd != (iconv_t)-1
-! # endif
-! )
- {
-+ if (conv_error == 0)
-+ conv_error = curbuf->b_ml.ml_line_count
-+ - linecnt + 1;
-+ }
-+ /* Remember the first linenr with an illegal byte */
-+ else if (illegal_byte == 0)
-+ illegal_byte = curbuf->b_ml.ml_line_count
-+ - linecnt + 1;
-+ if (bad_char_behavior == BAD_DROP)
-+ {
-+ *(ptr - conv_restlen) = NUL;
-+ conv_restlen = 0;
-+ }
-+ else
-+ {
-+ /* Replace the trailing bytes with the replacement
-+ * character if we were converting; if we weren't,
-+ * leave the UTF8 checking code to do it, as it
-+ * works slightly differently. */
-+ if (bad_char_behavior != BAD_KEEP && (fio_flags != 0
-+ # ifdef USE_ICONV
-+ || iconv_fd != (iconv_t)-1
-+ # endif
-+ ))
-+ {
-+ while (conv_restlen > 0)
-+ {
-+ *(--ptr) = bad_char_behavior;
-+ --conv_restlen;
-+ }
-+ }
- fio_flags = 0; /* don't convert this */
- # ifdef USE_ICONV
- if (iconv_fd != (iconv_t)-1)
-***************
-*** 1302,1321 ****
- iconv_fd = (iconv_t)-1;
- }
- # endif
-- if (bad_char_behavior == BAD_KEEP)
-- {
-- /* Keep the trailing bytes as-is. */
-- size = conv_restlen;
-- ptr -= conv_restlen;
-- }
-- else
-- {
-- /* Replace the trailing bytes with the
-- * replacement character. */
-- size = 1;
-- *--ptr = bad_char_behavior;
-- }
-- conv_restlen = 0;
- }
- }
- #endif
---- 1339,1344 ----
-***************
-*** 1397,1402 ****
---- 1420,1430 ----
- goto retry;
- }
- }
-+
-+ /* Include not converted bytes. */
-+ ptr -= conv_restlen;
-+ size += conv_restlen;
-+ conv_restlen = 0;
- #endif
- /*
- * Break here for a read error or end-of-file.
-***************
-*** 1406,1416 ****
-
- #ifdef FEAT_MBYTE
-
-- /* Include not converted bytes. */
-- ptr -= conv_restlen;
-- size += conv_restlen;
-- conv_restlen = 0;
--
- # ifdef USE_ICONV
- if (iconv_fd != (iconv_t)-1)
- {
---- 1434,1439 ----
-***************
-*** 1872,1883 ****
- size = (long)((ptr + real_size) - dest);
- ptr = dest;
- }
-! else if (enc_utf8 && conv_error == 0 && !curbuf->b_p_bin)
- {
-! /* Reading UTF-8: Check if the bytes are valid UTF-8.
-! * Need to start before "ptr" when part of the character was
-! * read in the previous read() call. */
-! for (p = ptr - utf_head_off(buffer, ptr); ; ++p)
- {
- int todo = (int)((ptr + size) - p);
- int l;
---- 1895,1906 ----
- size = (long)((ptr + real_size) - dest);
- ptr = dest;
- }
-! else if (enc_utf8 && !curbuf->b_p_bin)
- {
-! int incomplete_tail = FALSE;
-!
-! /* Reading UTF-8: Check if the bytes are valid UTF-8. */
-! for (p = ptr; ; ++p)
- {
- int todo = (int)((ptr + size) - p);
- int l;
-***************
-*** 1891,1933 ****
- * read() will get the next bytes, we'll check it
- * then. */
- l = utf_ptr2len_len(p, todo);
-! if (l > todo)
- {
-! /* Incomplete byte sequence, the next read()
-! * should get them and check the bytes. */
-! p += todo;
-! break;
- }
-! if (l == 1)
- {
- /* Illegal byte. If we can try another encoding
-! * do that. */
-! if (can_retry)
- break;
--
-- /* Remember the first linenr with an illegal byte */
-- if (illegal_byte == 0)
-- illegal_byte = readfile_linenr(linecnt, ptr, p);
- # ifdef USE_ICONV
- /* When we did a conversion report an error. */
- if (iconv_fd != (iconv_t)-1 && conv_error == 0)
- conv_error = readfile_linenr(linecnt, ptr, p);
- # endif
-
- /* Drop, keep or replace the bad byte. */
- if (bad_char_behavior == BAD_DROP)
- {
-! mch_memmove(p, p+1, todo - 1);
- --p;
- --size;
- }
- else if (bad_char_behavior != BAD_KEEP)
- *p = bad_char_behavior;
- }
-! p += l - 1;
- }
- }
-! if (p < ptr + size)
- {
- /* Detected a UTF-8 error. */
- rewind_retry:
---- 1914,1969 ----
- * read() will get the next bytes, we'll check it
- * then. */
- l = utf_ptr2len_len(p, todo);
-! if (l > todo && !incomplete_tail)
- {
-! /* Avoid retrying with a different encoding when
-! * a truncated file is more likely, or attempting
-! * to read the rest of an incomplete sequence when
-! * we have already done so. */
-! if (p > ptr || filesize > 0)
-! incomplete_tail = TRUE;
-! /* Incomplete byte sequence, move it to conv_rest[]
-! * and try to read the rest of it, unless we've
-! * already done so. */
-! if (p > ptr)
-! {
-! conv_restlen = todo;
-! mch_memmove(conv_rest, p, conv_restlen);
-! size -= conv_restlen;
-! break;
-! }
- }
-! if (l == 1 || l > todo)
- {
- /* Illegal byte. If we can try another encoding
-! * do that, unless at EOF where a truncated
-! * file is more likely than a conversion error. */
-! if (can_retry && !incomplete_tail)
- break;
- # ifdef USE_ICONV
- /* When we did a conversion report an error. */
- if (iconv_fd != (iconv_t)-1 && conv_error == 0)
- conv_error = readfile_linenr(linecnt, ptr, p);
- # endif
-+ /* Remember the first linenr with an illegal byte */
-+ if (conv_error == 0 && illegal_byte == 0)
-+ illegal_byte = readfile_linenr(linecnt, ptr, p);
-
- /* Drop, keep or replace the bad byte. */
- if (bad_char_behavior == BAD_DROP)
- {
-! mch_memmove(p, p + 1, todo - 1);
- --p;
- --size;
- }
- else if (bad_char_behavior != BAD_KEEP)
- *p = bad_char_behavior;
- }
-! else
-! p += l - 1;
- }
- }
-! if (p < ptr + size && !incomplete_tail)
- {
- /* Detected a UTF-8 error. */
- rewind_retry:
-*** ../vim-7.1.309/src/version.c Wed Jun 4 15:27:43 2008
---- src/version.c Wed Jun 4 19:35:16 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 310,
- /**/
-
---
-Normal people believe that if it ain't broke, don't fix it. Engineers believe
-that if it ain't broke, it doesn't have enough features yet.
- (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.1.311
-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.1.311
-Problem: Compiler warning for missing sentinel in X code.
-Solution: Change 0 to NULL. (Markus Heidelberg)
-Files: src/mbyte.c
-
-
-*** ../vim-7.1.310/src/mbyte.c Wed Jun 4 10:59:18 2008
---- src/mbyte.c Wed Jun 4 18:34:43 2008
-***************
-*** 5520,5532 ****
- preedit_caret_cb.callback = (XIMProc)preedit_caret_cbproc;
- preedit_done_cb.callback = (XIMProc)preedit_done_cbproc;
- preedit_attr
-! = XVaCreateNestedList (0,
- XNPreeditStartCallback, &preedit_start_cb,
- XNPreeditDrawCallback, &preedit_draw_cb,
- XNPreeditCaretCallback, &preedit_caret_cb,
- XNPreeditDoneCallback, &preedit_done_cb,
-! 0);
-! XSetICValues (xxic, XNPreeditAttributes, preedit_attr, 0);
- XFree(preedit_attr);
- }
-
---- 5520,5532 ----
- preedit_caret_cb.callback = (XIMProc)preedit_caret_cbproc;
- preedit_done_cb.callback = (XIMProc)preedit_done_cbproc;
- preedit_attr
-! = XVaCreateNestedList(0,
- XNPreeditStartCallback, &preedit_start_cb,
- XNPreeditDrawCallback, &preedit_draw_cb,
- XNPreeditCaretCallback, &preedit_caret_cb,
- XNPreeditDoneCallback, &preedit_done_cb,
-! NULL);
-! XSetICValues(xxic, XNPreeditAttributes, preedit_attr, NULL);
- XFree(preedit_attr);
- }
-
-***************
-*** 5536,5542 ****
- {
- #ifdef USE_X11R6_XIM
- /* don't change the input context when we call reset */
-! XSetICValues(((GdkICPrivate*)ic)->xic, XNResetState, XIMPreserveState, 0);
- #endif
- }
-
---- 5536,5543 ----
- {
- #ifdef USE_X11R6_XIM
- /* don't change the input context when we call reset */
-! XSetICValues(((GdkICPrivate *)ic)->xic, XNResetState, XIMPreserveState,
-! NULL);
- #endif
- }
-
-*** ../vim-7.1.310/src/version.c Wed Jun 4 19:36:56 2008
---- src/version.c Wed Jun 4 21:34:00 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 311,
- /**/
-
---
-A radioactive cat has eighteen half-lives.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.312
-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.1.312
-Problem: The .po files have mistakes in error numbers.
-Solution: Search for these mistakes in the check script. (Dominique Pelle)
-Files: src/po/check.vim
-
-
-*** ../vim-7.1.311/src/po/check.vim Wed Nov 23 22:10:37 2005
---- src/po/check.vim Sun May 25 13:47:59 2008
-***************
-*** 1,7 ****
- " Vim script for checking .po files.
- "
-! " Go through the file and verify that all %...s items in "msgid" are identical
-! " to the ones in "msgstr".
-
- if 1 " Only execute this if the eval feature is available.
-
---- 1,8 ----
- " Vim script for checking .po files.
- "
-! " Go through the file and verify that:
-! " - All %...s items in "msgid" are identical to the ones in "msgstr".
-! " - An error or warning code in "msgid" matches the one in "msgstr".
-
- if 1 " Only execute this if the eval feature is available.
-
-***************
-*** 56,61 ****
---- 57,76 ----
- endif
- endwhile
-
-+ " Check that error code in msgid matches the one in msgstr.
-+ "
-+ " Examples of mismatches found with msgid "E123: ..."
-+ " - msgstr "E321: ..." error code mismatch
-+ " - msgstr "W123: ..." warning instead of error
-+ " - msgstr "E123 ..." missing colon
-+ " - msgstr "..." missing error code
-+ "
-+ 1
-+ if search('msgid "\("\n"\)\?\([EW][0-9]\+:\).*\nmsgstr "\("\n"\)\?[^"]\@=\2\@!') > 0
-+ echo 'Mismatching error/warning code in line ' . line('.')
-+ let error = 1
-+ endif
-+
- if error == 0
- echo "OK"
- endif
-*** ../vim-7.1.311/src/version.c Wed Jun 4 21:34:51 2008
---- src/version.c Mon Jun 9 14:43:59 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 312,
- /**/
-
---
-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.1.313
-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.1.313
-Problem: When the netbeans interface setModified call is used the status
- lines and window title are not updated.
-Solution: Redraw the status lines and title. (Philippe Fremy)
-Files: src/netbeans.c
-
-
-*** ../vim-7.1.312/src/netbeans.c Sun Mar 16 16:02:47 2008
---- src/netbeans.c Wed May 28 15:12:13 2008
-***************
-*** 16,21 ****
---- 16,25 ----
- * See ":help netbeans-protocol" for explanation.
- */
-
-+ #if defined(MSDOS) || defined(MSWIN)
-+ # include "vimio.h" /* for mch_open(), must be before vim.h */
-+ #endif
-+
- #include "vim.h"
-
- #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
-***************
-*** 1974,1986 ****
- }
- else if (streq((char *)cmd, "setModified"))
- {
- if (buf == NULL || buf->bufp == NULL)
- {
- /* EMSG("E646: null bufp in setModified"); */
- return FAIL;
- }
- if (streq((char *)args, "T"))
-! buf->bufp->b_changed = 1;
- else
- {
- struct stat st;
---- 1978,1993 ----
- }
- else if (streq((char *)cmd, "setModified"))
- {
-+ int prev_b_changed;
-+
- if (buf == NULL || buf->bufp == NULL)
- {
- /* EMSG("E646: null bufp in setModified"); */
- return FAIL;
- }
-+ prev_b_changed = buf->bufp->b_changed;
- if (streq((char *)args, "T"))
-! buf->bufp->b_changed = TRUE;
- else
- {
- struct stat st;
-***************
-*** 1990,1998 ****
- if (buf->bufp->b_ffname != NULL
- && mch_stat((char *)buf->bufp->b_ffname, &st) >= 0)
- buf_store_time(buf->bufp, &st, buf->bufp->b_ffname);
-! buf->bufp->b_changed = 0;
- }
- buf->modified = buf->bufp->b_changed;
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "setModtime"))
---- 1997,2016 ----
- if (buf->bufp->b_ffname != NULL
- && mch_stat((char *)buf->bufp->b_ffname, &st) >= 0)
- buf_store_time(buf->bufp, &st, buf->bufp->b_ffname);
-! buf->bufp->b_changed = FALSE;
- }
- buf->modified = buf->bufp->b_changed;
-+ if (prev_b_changed != buf->bufp->b_changed)
-+ {
-+ #ifdef FEAT_WINDOWS
-+ check_status(buf->bufp);
-+ redraw_tabline = TRUE;
-+ #endif
-+ #ifdef FEAT_TITLE
-+ maketitle();
-+ #endif
-+ update_screen(0);
-+ }
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "setModtime"))
-*** ../vim-7.1.312/src/version.c Mon Jun 9 14:45:17 2008
---- src/version.c Mon Jun 9 15:08:40 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 313,
- /**/
-
---
-Q: What is the difference betwee open-source and commercial software?
-A: If you have a problem with commercial software you can call a phone
- number and they will tell you it might be solved in a future version.
- For open-source software there isn't a phone number to call, but you
- get the solution within a day.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.314
-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.1.314
-Problem: The value of 'pastetoggle' is written to the session file without
- any escaping. (Randall Hansen)
-Solution: Use put_escstr(). (Ben Schmidt)
-Files: src/option.c
-
-
-*** ../vim-7.1.313/src/option.c Wed Mar 12 17:37:53 2008
---- src/option.c Wed Jun 4 19:32:02 2008
-***************
-*** 243,249 ****
- /* WV_ and BV_ values get typecasted to this for the "indir" field */
- typedef enum
- {
-! PV_NONE = 0
- } idopt_T;
-
- /*
---- 243,250 ----
- /* WV_ and BV_ values get typecasted to this for the "indir" field */
- typedef enum
- {
-! PV_NONE = 0,
-! PV_MAXVAL = 0xffff /* to avoid warnings for value out of range */
- } idopt_T;
-
- /*
-***************
-*** 8713,8719 ****
- {
- s = *valuep;
- while (*s != NUL)
-! if (fputs((char *)str2special(&s, FALSE), fd) < 0)
- return FAIL;
- }
- else if (expand)
---- 8714,8720 ----
- {
- s = *valuep;
- while (*s != NUL)
-! if (put_escstr(fd, str2special(&s, FALSE), 2) == FAIL)
- return FAIL;
- }
- else if (expand)
-*** ../vim-7.1.313/src/version.c Mon Jun 9 15:10:07 2008
---- src/version.c Mon Jun 9 17:05:40 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 314,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-26. You check your mail. It says "no new messages." So you check it again.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.315
-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.1.315
-Problem: Crash with specific search pattern using look-behind match.
- (Andreas Politz)
-Solution: Also save the value of "need_clear_subexpr".
-Files: src/regexp.c
-
-
-*** ../vim-7.1.314/src/regexp.c Wed Apr 9 12:14:44 2008
---- src/regexp.c Sun Jun 15 14:16:40 2008
-***************
-*** 3044,3049 ****
---- 3044,3050 ----
- {
- regsave_T save_after;
- regsave_T save_behind;
-+ int save_need_clear_subexpr;
- save_se_T save_start[NSUBEXP];
- save_se_T save_end[NSUBEXP];
- } regbehind_T;
-***************
-*** 5858,5874 ****
- {
- int i;
-
-! for (i = 0; i < NSUBEXP; ++i)
- {
-! if (REG_MULTI)
-! {
-! bp->save_start[i].se_u.pos = reg_startpos[i];
-! bp->save_end[i].se_u.pos = reg_endpos[i];
-! }
-! else
- {
-! bp->save_start[i].se_u.ptr = reg_startp[i];
-! bp->save_end[i].se_u.ptr = reg_endp[i];
- }
- }
- }
---- 5859,5881 ----
- {
- int i;
-
-! /* When "need_clear_subexpr" is set we don't need to save the values, only
-! * remember that this flag needs to be set again when restoring. */
-! bp->save_need_clear_subexpr = need_clear_subexpr;
-! if (!need_clear_subexpr)
- {
-! for (i = 0; i < NSUBEXP; ++i)
- {
-! if (REG_MULTI)
-! {
-! bp->save_start[i].se_u.pos = reg_startpos[i];
-! bp->save_end[i].se_u.pos = reg_endpos[i];
-! }
-! else
-! {
-! bp->save_start[i].se_u.ptr = reg_startp[i];
-! bp->save_end[i].se_u.ptr = reg_endp[i];
-! }
- }
- }
- }
-***************
-*** 5882,5898 ****
- {
- int i;
-
-! for (i = 0; i < NSUBEXP; ++i)
- {
-! if (REG_MULTI)
-! {
-! reg_startpos[i] = bp->save_start[i].se_u.pos;
-! reg_endpos[i] = bp->save_end[i].se_u.pos;
-! }
-! else
- {
-! reg_startp[i] = bp->save_start[i].se_u.ptr;
-! reg_endp[i] = bp->save_end[i].se_u.ptr;
- }
- }
- }
---- 5889,5910 ----
- {
- int i;
-
-! /* Only need to restore saved values when they are not to be cleared. */
-! need_clear_subexpr = bp->save_need_clear_subexpr;
-! if (!need_clear_subexpr)
- {
-! for (i = 0; i < NSUBEXP; ++i)
- {
-! if (REG_MULTI)
-! {
-! reg_startpos[i] = bp->save_start[i].se_u.pos;
-! reg_endpos[i] = bp->save_end[i].se_u.pos;
-! }
-! else
-! {
-! reg_startp[i] = bp->save_start[i].se_u.ptr;
-! reg_endp[i] = bp->save_end[i].se_u.ptr;
-! }
- }
- }
- }
-*** ../vim-7.1.314/src/version.c Mon Jun 9 17:07:13 2008
---- src/version.c Sun Jun 15 14:12:54 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 315,
- /**/
-
---
-Tips for aliens in New York: Land anywhere. Central Park, anywhere.
-No one will care or indeed even notice.
- -- 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.1.316
-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.1.316
-Problem: When 'cscopetag' is set ":tag" gives an error message instead of
- going to the next tag in the tag stack.
-Solution: Don't call do_cstag() when there is no argument. (Mark Goldman)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.315/src/ex_docmd.c Sun Mar 16 16:02:47 2008
---- src/ex_docmd.c Fri Jun 20 10:42:30 2008
-***************
-*** 9300,9306 ****
- break;
- default: /* ":tag" */
- #ifdef FEAT_CSCOPE
-! if (p_cst)
- {
- do_cstag(eap);
- return;
---- 9302,9308 ----
- break;
- default: /* ":tag" */
- #ifdef FEAT_CSCOPE
-! if (p_cst && *eap->arg != NUL)
- {
- do_cstag(eap);
- return;
-*** ../vim-7.1.315/src/version.c Sun Jun 15 14:20:28 2008
---- src/version.c Fri Jun 20 11:09:35 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 316,
- /**/
-
---
-Microsoft is to software what McDonalds is to gourmet cooking
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.317
-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.1.317
-Problem: Compiler warnings in Motif calls.
-Solution: Change zero to NULL. (Dominique Pelle)
-Files: src/gui_motif.c
-
-
-*** ../vim-7.1.316/src/gui_motif.c Tue Jan 22 11:06:06 2008
---- src/gui_motif.c Sat Jun 7 15:06:33 2008
-***************
-*** 686,693 ****
-
- /* Temporarily set value of XmNmappedWhenManaged
- to stop the dialog from popping up right away */
-! XtVaGetValues(shell, XmNmappedWhenManaged, &mappedWhenManaged, 0);
-! XtVaSetValues(shell, XmNmappedWhenManaged, False, 0);
-
- XtManageChild(dialog_child);
-
---- 686,693 ----
-
- /* Temporarily set value of XmNmappedWhenManaged
- to stop the dialog from popping up right away */
-! XtVaGetValues(shell, XmNmappedWhenManaged, &mappedWhenManaged, NULL);
-! XtVaSetValues(shell, XmNmappedWhenManaged, False, NULL);
-
- XtManageChild(dialog_child);
-
-***************
-*** 723,729 ****
- XtMapWidget(shell);
-
- /* Restore the value of XmNmappedWhenManaged */
-! XtVaSetValues(shell, XmNmappedWhenManaged, mappedWhenManaged, 0);
- }
-
- #if defined(FEAT_MENU) || defined(FEAT_SUN_WORKSHOP) \
---- 723,729 ----
- XtMapWidget(shell);
-
- /* Restore the value of XmNmappedWhenManaged */
-! XtVaSetValues(shell, XmNmappedWhenManaged, mappedWhenManaged, NULL);
- }
-
- #if defined(FEAT_MENU) || defined(FEAT_SUN_WORKSHOP) \
-***************
-*** 1993,1999 ****
- {
- if (XtClass(w) == xmRowColumnWidgetClass)
- {
-! XtVaGetValues(w, XmNrowColumnType, &rowColType, 0);
- isMenu = (rowColType != (unsigned char)XmWORK_AREA);
- }
- else
---- 1993,1999 ----
- {
- if (XtClass(w) == xmRowColumnWidgetClass)
- {
-! XtVaGetValues(w, XmNrowColumnType, &rowColType, NULL);
- isMenu = (rowColType != (unsigned char)XmWORK_AREA);
- }
- else
-***************
-*** 2001,2014 ****
- if (!isMenu)
- {
- XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
-! &numChildren, 0);
- for (i = 0; i < numChildren; i++)
- do_mnemonic(children[i], keycode);
- }
- }
- else
- {
-! XtVaGetValues(w, XmNmnemonic, &mnemonic, 0);
- if (mnemonic != '\0')
- {
- mneString[0] = mnemonic;
---- 2001,2014 ----
- if (!isMenu)
- {
- XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
-! &numChildren, NULL);
- for (i = 0; i < numChildren; i++)
- do_mnemonic(children[i], keycode);
- }
- }
- else
- {
-! XtVaGetValues(w, XmNmnemonic, &mnemonic, NULL);
- if (mnemonic != '\0')
- {
- mneString[0] = mnemonic;
-***************
-*** 2019,2025 ****
- if (XtClass(w) == xmLabelWidgetClass
- || XtClass(w) == xmLabelGadgetClass)
- {
-! XtVaGetValues(w, XmNuserData, &userData, 0);
- if (userData != NULL && XtIsWidget(userData))
- XmProcessTraversal(userData, XmTRAVERSE_CURRENT);
- }
---- 2019,2025 ----
- if (XtClass(w) == xmLabelWidgetClass
- || XtClass(w) == xmLabelGadgetClass)
- {
-! XtVaGetValues(w, XmNuserData, &userData, NULL);
- if (userData != NULL && XtIsWidget(userData))
- XmProcessTraversal(userData, XmTRAVERSE_CURRENT);
- }
-***************
-*** 2073,2079 ****
- {
- if (XtClass(w) == xmRowColumnWidgetClass)
- {
-! XtVaGetValues(w, XmNrowColumnType, &rowColType, 0);
- isMenu = (rowColType != (unsigned char)XmWORK_AREA);
- }
- else
---- 2073,2079 ----
- {
- if (XtClass(w) == xmRowColumnWidgetClass)
- {
-! XtVaGetValues(w, XmNrowColumnType, &rowColType, NULL);
- isMenu = (rowColType != (unsigned char)XmWORK_AREA);
- }
- else
-***************
-*** 2081,2094 ****
- if (!isMenu)
- {
- XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
-! &numChildren, 0);
- for (i = 0; i < numChildren; i++)
- add_mnemonic_grabs(dialog, children[i]);
- }
- }
- else
- {
-! XtVaGetValues(w, XmNmnemonic, &mnemonic, 0);
- if (mnemonic != '\0')
- {
- mneString[0] = mnemonic;
---- 2081,2094 ----
- if (!isMenu)
- {
- XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
-! &numChildren, NULL);
- for (i = 0; i < numChildren; i++)
- add_mnemonic_grabs(dialog, children[i]);
- }
- }
- else
- {
-! XtVaGetValues(w, XmNmnemonic, &mnemonic, NULL);
- if (mnemonic != '\0')
- {
- mneString[0] = mnemonic;
-*** ../vim-7.1.316/src/version.c Fri Jun 20 11:10:53 2008
---- src/version.c Fri Jun 20 11:38:25 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 317,
- /**/
-
---
-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.1.318
-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.1.318
-Problem: Memory leak when closing xsmp connection. Crash on exit when
- using Lesstif.
-Solution: Don't close the X display to work around a Lesstif bug. Free
- clientid. Also fix a leak for Motif and Athena. (Dominique Pelle)
-Files: src/gui_x11.c, src/os_unix.c
-
-
-*** ../vim-7.1.317/src/gui_x11.c Thu May 10 21:11:45 2007
---- src/gui_x11.c Sun Jun 8 17:13:45 2008
-***************
-*** 1538,1545 ****
---- 1538,1548 ----
- attr.depth = DefaultDepthOfScreen(scr);
-
- if (!icon)
-+ {
- XpmCreatePixmapFromData(dsp, root_window, magick, &icon,
- &icon_mask, &attr);
-+ XpmFreeAttributes(&attr);
-+ }
-
- # ifdef FEAT_GUI_ATHENA
- XtVaSetValues(vimShell, XtNiconPixmap, icon, XtNiconMask, icon_mask, NULL);
-*** ../vim-7.1.317/src/os_unix.c Wed May 7 19:05:55 2008
---- src/os_unix.c Tue Jun 17 21:03:54 2008
-***************
-*** 209,214 ****
---- 209,215 ----
- {
- SmcConn smcconn; /* The SM connection ID */
- IceConn iceconn; /* The ICE connection ID */
-+ char *clientid; /* The client ID for the current smc session */
- Bool save_yourself; /* If we're in the middle of a save_yourself */
- Bool shutdown; /* If we're in shutdown mode */
- } xsmp_config_T;
-***************
-*** 2887,2902 ****
- if (clip_plus.owned)
- clip_lose_selection(&clip_plus);
- # endif
-! # if (defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)) || defined(PROTO)
- if (xterm_Shell != (Widget)0)
- XtDestroyWidget(xterm_Shell);
- if (xterm_dpy != NULL)
- XtCloseDisplay(xterm_dpy);
- if (app_context != (XtAppContext)NULL)
- XtDestroyApplicationContext(app_context);
- # endif
- # ifdef FEAT_X11
-! if (x11_display != NULL && x11_display != xterm_dpy)
- XCloseDisplay(x11_display);
- # endif
- # if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
---- 2893,2920 ----
- if (clip_plus.owned)
- clip_lose_selection(&clip_plus);
- # endif
-! # if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)
- if (xterm_Shell != (Widget)0)
- XtDestroyWidget(xterm_Shell);
-+ # ifndef LESSTIF_VERSION
-+ /* Lesstif crashes here, lose some memory */
- if (xterm_dpy != NULL)
- XtCloseDisplay(xterm_dpy);
- if (app_context != (XtAppContext)NULL)
-+ {
- XtDestroyApplicationContext(app_context);
-+ # ifdef FEAT_X11
-+ x11_display = NULL; /* freed by XtDestroyApplicationContext() */
-+ # endif
-+ }
-+ # endif
- # endif
- # ifdef FEAT_X11
-! if (x11_display != NULL
-! # ifdef FEAT_XCLIPBOARD
-! && x11_display != xterm_dpy
-! # endif
-! )
- XCloseDisplay(x11_display);
- # endif
- # if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
-***************
-*** 6290,6311 ****
- }
- if (xterm_dpy != NULL)
- {
-! #if 0
- /* Lesstif and Solaris crash here, lose some memory */
- XtCloseDisplay(xterm_dpy);
-! #endif
- if (x11_display == xterm_dpy)
- x11_display = NULL;
- xterm_dpy = NULL;
- }
-! #if 0
- if (app_context != (XtAppContext)NULL)
- {
- /* Lesstif and Solaris crash here, lose some memory */
- XtDestroyApplicationContext(app_context);
- app_context = (XtAppContext)NULL;
- }
-! #endif
- }
- # endif
-
---- 6308,6329 ----
- }
- if (xterm_dpy != NULL)
- {
-! # if 0
- /* Lesstif and Solaris crash here, lose some memory */
- XtCloseDisplay(xterm_dpy);
-! # endif
- if (x11_display == xterm_dpy)
- x11_display = NULL;
- xterm_dpy = NULL;
- }
-! # if 0
- if (app_context != (XtAppContext)NULL)
- {
- /* Lesstif and Solaris crash here, lose some memory */
- XtDestroyApplicationContext(app_context);
- app_context = (XtAppContext)NULL;
- }
-! # endif
- }
- # endif
-
-***************
-*** 6557,6563 ****
- xsmp_init(void)
- {
- char errorstring[80];
-- char *clientid;
- SmcCallbacks smcallbacks;
- #if 0
- SmPropValue smname;
---- 6575,6580 ----
-***************
-*** 6599,6605 ****
- | SmcSaveCompleteProcMask | SmcShutdownCancelledProcMask,
- &smcallbacks,
- NULL,
-! &clientid,
- sizeof(errorstring),
- errorstring);
- if (xsmp.smcconn == NULL)
---- 6616,6622 ----
- | SmcSaveCompleteProcMask | SmcShutdownCancelledProcMask,
- &smcallbacks,
- NULL,
-! &xsmp.clientid,
- sizeof(errorstring),
- errorstring);
- if (xsmp.smcconn == NULL)
-***************
-*** 6638,6643 ****
---- 6655,6662 ----
- if (xsmp_icefd != -1)
- {
- SmcCloseConnection(xsmp.smcconn, 0, NULL);
-+ vim_free(xsmp.clientid);
-+ xsmp.clientid = NULL;
- xsmp_icefd = -1;
- }
- }
-*** ../vim-7.1.317/src/version.c Fri Jun 20 11:39:04 2008
---- src/version.c Fri Jun 20 11:56:09 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 318,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-44. Your friends no longer send you e-mail...they just log on to your IRC
- channel.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.319
-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.1.319
-Problem: When a register has an illegal utf-8 sequence, pasting it on the
- command line causes an illegal memory access.
-Solution: Use mb_cptr2char_adv(). (Dominique Pelle)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.318/src/ex_getln.c Thu May 29 15:33:13 2008
---- src/ex_getln.c Mon Jun 9 20:10:51 2008
-***************
-*** 3032,3041 ****
- ++s;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! {
-! c = mb_ptr2char(s);
-! s += mb_char2len(c);
-! }
- else
- #endif
- c = *s++;
---- 3033,3039 ----
- ++s;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! c = mb_cptr2char_adv(&s);
- else
- #endif
- c = *s++;
-*** ../vim-7.1.318/src/version.c Fri Jun 20 11:58:27 2008
---- src/version.c Fri Jun 20 12:53:16 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 319,
- /**/
-
---
-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.1.320
-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.1.320 (extra)
-Problem: Win64: Warnings while compiling Python interface.
-Solution: Use PyInt in more places. Also update version message for the
- console. (George Reilly)
-Files: src/if_python.c, src/version.c
-
-
-*** ../vim-7.1.319/src/if_python.c Wed Jun 4 13:33:15 2008
---- src/if_python.c Fri Jun 20 14:45:59 2008
-***************
-*** 50,60 ****
-
- #if !defined(FEAT_PYTHON) && defined(PROTO)
- /* Use this to be able to generate prototypes without python being used. */
-! # define PyObject int
-! # define PyThreadState int
-! # define PyTypeObject int
-! struct PyMethodDef { int a; };
-! # define PySequenceMethods int
- #endif
-
- #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
---- 50,60 ----
-
- #if !defined(FEAT_PYTHON) && defined(PROTO)
- /* Use this to be able to generate prototypes without python being used. */
-! # define PyObject Py_ssize_t
-! # define PyThreadState Py_ssize_t
-! # define PyTypeObject Py_ssize_t
-! struct PyMethodDef { Py_ssize_t a; };
-! # define PySequenceMethods Py_ssize_t
- #endif
-
- #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
-***************
-*** 64,69 ****
---- 64,70 ----
- # define PyIntIntArgFunc ssizessizeargfunc
- # define PyIntObjArgProc ssizeobjargproc
- # define PyIntIntObjArgProc ssizessizeobjargproc
-+ # define Py_ssize_t_fmt "n"
- #else
- # define PyInt int
- # define PyInquiry inquiry
-***************
-*** 71,76 ****
---- 72,78 ----
- # define PyIntIntArgFunc intintargfunc
- # define PyIntObjArgProc intobjargproc
- # define PyIntIntObjArgProc intintobjargproc
-+ # define Py_ssize_t_fmt "i"
- #endif
-
- /* Parser flags */
-***************
-*** 85,93 ****
-
- #if defined(DYNAMIC_PYTHON) || defined(PROTO)
- # ifndef DYNAMIC_PYTHON
-! # define HINSTANCE int /* for generating prototypes */
- # endif
-
- /*
- * Wrapper defines
- */
---- 87,104 ----
-
- #if defined(DYNAMIC_PYTHON) || defined(PROTO)
- # ifndef DYNAMIC_PYTHON
-! # define HINSTANCE long_u /* for generating prototypes */
- # endif
-
-+ /* This makes if_python.c compile without warnings against Python 2.5
-+ * on Win32 and Win64. */
-+ #undef PyRun_SimpleString
-+ #undef PyArg_Parse
-+ #undef PyArg_ParseTuple
-+ #undef Py_BuildValue
-+ #undef Py_InitModule4
-+ #undef Py_InitModule4_64
-+
- /*
- * Wrapper defines
- */
-***************
-*** 269,275 ****
---- 280,290 ----
- {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
- {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
- {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
-+ # if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
-+ {"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
-+ # else
- {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
-+ # endif
- {"Py_Initialize", (PYTHON_PROC*)&dll_Py_Initialize},
- {"Py_Finalize", (PYTHON_PROC*)&dll_Py_Finalize},
- {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
-***************
-*** 339,346 ****
- * TRUE, else FALSE.
- */
- int
-! python_enabled(verbose)
-! int verbose;
- {
- return python_runtime_link_init(DYNAMIC_PYTHON_DLL, verbose) == OK;
- }
---- 354,360 ----
- * TRUE, else FALSE.
- */
- int
-! python_enabled(int verbose)
- {
- return python_runtime_link_init(DYNAMIC_PYTHON_DLL, verbose) == OK;
- }
-***************
-*** 374,381 ****
- */
-
- static void DoPythonCommand(exarg_T *, const char *);
-! static int RangeStart;
-! static int RangeEnd;
-
- static void PythonIO_Flush(void);
- static int PythonIO_Init(void);
---- 388,395 ----
- */
-
- static void DoPythonCommand(exarg_T *, const char *);
-! static PyInt RangeStart;
-! static PyInt RangeEnd;
-
- static void PythonIO_Flush(void);
- static int PythonIO_Init(void);
-***************
-*** 384,395 ****
- /* Utility functions for the vim/python interface
- * ----------------------------------------------
- */
-! static PyObject *GetBufferLine(buf_T *, int);
- static PyObject *GetBufferLineList(buf_T *, PyInt, PyInt);
-
-! static int SetBufferLine(buf_T *, int, PyObject *, int *);
-! static int SetBufferLineList(buf_T *, PyInt, PyInt, PyObject *, int *);
-! static int InsertBufferLines(buf_T *, int, PyObject *, int *);
-
- static PyObject *LineToString(const char *);
- static char *StringToLine(PyObject *);
---- 398,409 ----
- /* Utility functions for the vim/python interface
- * ----------------------------------------------
- */
-! static PyObject *GetBufferLine(buf_T *, PyInt);
- static PyObject *GetBufferLineList(buf_T *, PyInt, PyInt);
-
-! static int SetBufferLine(buf_T *, PyInt, PyObject *, PyInt *);
-! static int SetBufferLineList(buf_T *, PyInt, PyInt, PyObject *, PyInt *);
-! static int InsertBufferLines(buf_T *, PyInt, PyObject *, PyInt *);
-
- static PyObject *LineToString(const char *);
- static char *StringToLine(PyObject *);
-***************
-*** 690,696 ****
- static PyObject *OutputWritelines(PyObject *, PyObject *);
-
- typedef void (*writefn)(char_u *);
-! static void writer(writefn fn, char_u *str, int n);
-
- /* Output object definition
- */
---- 704,710 ----
- static PyObject *OutputWritelines(PyObject *, PyObject *);
-
- typedef void (*writefn)(char_u *);
-! static void writer(writefn fn, char_u *str, PyInt n);
-
- /* Output object definition
- */
-***************
-*** 812,818 ****
- {
- PyObject *line = PyList_GetItem(list, i);
- char *str;
-! int len;
-
- if (!PyArg_Parse(line, "s#", &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
---- 826,832 ----
- {
- PyObject *line = PyList_GetItem(list, i);
- char *str;
-! PyInt len;
-
- if (!PyArg_Parse(line, "s#", &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
-***************
-*** 836,850 ****
- */
-
- static char_u *buffer = NULL;
-! static int buffer_len = 0;
-! static int buffer_size = 0;
-
- static writefn old_fn = NULL;
-
- static void
-! buffer_ensure(int n)
- {
-! int new_size;
- char_u *new_buffer;
-
- if (n < buffer_size)
---- 850,864 ----
- */
-
- static char_u *buffer = NULL;
-! static PyInt buffer_len = 0;
-! static PyInt buffer_size = 0;
-
- static writefn old_fn = NULL;
-
- static void
-! buffer_ensure(PyInt n)
- {
-! PyInt new_size;
- char_u *new_buffer;
-
- if (n < buffer_size)
-***************
-*** 884,890 ****
- }
-
- static void
-! writer(writefn fn, char_u *str, int n)
- {
- char_u *ptr;
-
---- 898,904 ----
- }
-
- static void
-! writer(writefn fn, char_u *str, PyInt n)
- {
- char_u *ptr;
-
-***************
-*** 895,901 ****
-
- while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
- {
-! int len = ptr - str;
-
- buffer_ensure(buffer_len + len + 1);
-
---- 909,915 ----
-
- while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
- {
-! PyInt len = ptr - str;
-
- buffer_ensure(buffer_len + len + 1);
-
-***************
-*** 1022,1035 ****
- {
- PyObject_HEAD
- BufferObject *buf;
-! int start;
-! int end;
- }
- RangeObject;
-
- #define RangeType_Check(obj) ((obj)->ob_type == &RangeType)
-
-! static PyObject *RangeNew(buf_T *, int, int);
-
- static void RangeDestructor(PyObject *);
- static PyObject *RangeGetattr(PyObject *, char *);
---- 1036,1049 ----
- {
- PyObject_HEAD
- BufferObject *buf;
-! PyInt start;
-! PyInt end;
- }
- RangeObject;
-
- #define RangeType_Check(obj) ((obj)->ob_type == &RangeType)
-
-! static PyObject *RangeNew(buf_T *, PyInt, PyInt);
-
- static void RangeDestructor(PyObject *);
- static PyObject *RangeGetattr(PyObject *, char *);
-***************
-*** 1069,1076 ****
-
- static struct PyMethodDef VimMethods[] = {
- /* name, function, calling, documentation */
-! {"command", VimCommand, 1, "" },
-! {"eval", VimEval, 1, "" },
- { NULL, NULL, 0, NULL }
- };
-
---- 1083,1090 ----
-
- static struct PyMethodDef VimMethods[] = {
- /* name, function, calling, documentation */
-! {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
-! {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
- { NULL, NULL, 0, NULL }
- };
-
-***************
-*** 1110,1116 ****
- * Function to translate a typval_T into a PyObject; this will recursively
- * translate lists/dictionaries into their Python equivalents.
- *
-! * The depth parameter is too avoid infinite recursion, set it to 1 when
- * you call VimToPython.
- */
- static PyObject *
---- 1124,1130 ----
- * Function to translate a typval_T into a PyObject; this will recursively
- * translate lists/dictionaries into their Python equivalents.
- *
-! * The depth parameter is to avoid infinite recursion, set it to 1 when
- * you call VimToPython.
- */
- static PyObject *
-***************
-*** 1130,1136 ****
-
- /* Check if we run into a recursive loop. The item must be in lookupDict
- * then and we can use it again. */
-! sprintf(ptrBuf, "%ld", (long)our_tv);
- result = PyDict_GetItemString(lookupDict, ptrBuf);
- if (result != NULL)
- Py_INCREF(result);
---- 1144,1150 ----
-
- /* Check if we run into a recursive loop. The item must be in lookupDict
- * then and we can use it again. */
-! sprintf(ptrBuf, PRINTF_DECIMAL_LONG_U, (long_u)our_tv);
- result = PyDict_GetItemString(lookupDict, ptrBuf);
- if (result != NULL)
- Py_INCREF(result);
-***************
-*** 1184,1190 ****
- if (our_tv->vval.v_dict != NULL)
- {
- hashtab_T *ht = &our_tv->vval.v_dict->dv_hashtab;
-! int todo = ht->ht_used;
- hashitem_T *hi;
- dictitem_T *di;
-
---- 1198,1204 ----
- if (our_tv->vval.v_dict != NULL)
- {
- hashtab_T *ht = &our_tv->vval.v_dict->dv_hashtab;
-! long_u todo = ht->ht_used;
- hashitem_T *hi;
- dictitem_T *di;
-
-***************
-*** 1273,1279 ****
- }
-
- static PyObject *
-! RBItem(BufferObject *self, PyInt n, int start, int end)
- {
- if (CheckBuffer(self))
- return NULL;
---- 1287,1293 ----
- }
-
- static PyObject *
-! RBItem(BufferObject *self, PyInt n, PyInt start, PyInt end)
- {
- if (CheckBuffer(self))
- return NULL;
-***************
-*** 1288,1294 ****
- }
-
- static PyObject *
-! RBSlice(BufferObject *self, PyInt lo, PyInt hi, int start, int end)
- {
- PyInt size;
-
---- 1302,1308 ----
- }
-
- static PyObject *
-! RBSlice(BufferObject *self, PyInt lo, PyInt hi, PyInt start, PyInt end)
- {
- PyInt size;
-
-***************
-*** 1312,1320 ****
- }
-
- static PyInt
-! RBAssItem(BufferObject *self, PyInt n, PyObject *val, int start, int end, int *new_end)
- {
-! int len_change;
-
- if (CheckBuffer(self))
- return -1;
---- 1326,1334 ----
- }
-
- static PyInt
-! RBAssItem(BufferObject *self, PyInt n, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
- {
-! PyInt len_change;
-
- if (CheckBuffer(self))
- return -1;
-***************
-*** 1335,1344 ****
- }
-
- static PyInt
-! RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, int start, int end, int *new_end)
- {
-! int size;
-! int len_change;
-
- /* Self must be a valid buffer */
- if (CheckBuffer(self))
---- 1349,1358 ----
- }
-
- static PyInt
-! RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
- {
-! PyInt size;
-! PyInt len_change;
-
- /* Self must be a valid buffer */
- if (CheckBuffer(self))
-***************
-*** 1368,1386 ****
- }
-
- static PyObject *
-! RBAppend(BufferObject *self, PyObject *args, int start, int end, int *new_end)
- {
- PyObject *lines;
-! int len_change;
-! int max;
-! int n;
-
- if (CheckBuffer(self))
- return NULL;
-
- max = n = end - start + 1;
-
-! if (!PyArg_ParseTuple(args, "O|i", &lines, &n))
- return NULL;
-
- if (n < 0 || n > max)
---- 1382,1400 ----
- }
-
- static PyObject *
-! RBAppend(BufferObject *self, PyObject *args, PyInt start, PyInt end, PyInt *new_end)
- {
- PyObject *lines;
-! PyInt len_change;
-! PyInt max;
-! PyInt n;
-
- if (CheckBuffer(self))
- return NULL;
-
- max = n = end - start + 1;
-
-! if (!PyArg_ParseTuple(args, "O|" Py_ssize_t_fmt, &lines, &n))
- return NULL;
-
- if (n < 0 || n > max)
-***************
-*** 1405,1413 ****
-
- static struct PyMethodDef BufferMethods[] = {
- /* name, function, calling, documentation */
-! {"append", BufferAppend, 1, "" },
-! {"mark", BufferMark, 1, "" },
-! {"range", BufferRange, 1, "" },
- { NULL, NULL, 0, NULL }
- };
-
---- 1419,1427 ----
-
- static struct PyMethodDef BufferMethods[] = {
- /* name, function, calling, documentation */
-! {"append", BufferAppend, 1, "Append data to Vim buffer" },
-! {"mark", BufferMark, 1, "Return (row,col) representing position of named mark" },
-! {"range", BufferRange, 1, "Return a range object which represents the part of the given buffer between line numbers s and e" },
- { NULL, NULL, 0, NULL }
- };
-
-***************
-*** 1503,1511 ****
- return NULL;
-
- if (strcmp(name, "name") == 0)
-! return Py_BuildValue("s",this->buf->b_ffname);
- else if (strcmp(name, "number") == 0)
-! return Py_BuildValue("i",this->buf->b_fnum);
- else if (strcmp(name,"__members__") == 0)
- return Py_BuildValue("[ss]", "name", "number");
- else
---- 1517,1525 ----
- return NULL;
-
- if (strcmp(name, "name") == 0)
-! return Py_BuildValue("s", this->buf->b_ffname);
- else if (strcmp(name, "number") == 0)
-! return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum);
- else if (strcmp(name,"__members__") == 0)
- return Py_BuildValue("[ss]", "name", "number");
- else
-***************
-*** 1520,1533 ****
-
- if (this->buf == INVALID_BUFFER_VALUE)
- {
-! vim_snprintf(repr, 100, _("<buffer object (deleted) at %8lX>"),
-! (long)(self));
- return PyString_FromString(repr);
- }
- else
- {
- char *name = (char *)this->buf->b_fname;
-! int len;
-
- if (name == NULL)
- name = "";
---- 1534,1546 ----
-
- if (this->buf == INVALID_BUFFER_VALUE)
- {
-! vim_snprintf(repr, 100, _("<buffer object (deleted) at %p>"), (self));
- return PyString_FromString(repr);
- }
- else
- {
- char *name = (char *)this->buf->b_fname;
-! PyInt len;
-
- if (name == NULL)
- name = "";
-***************
-*** 1572,1578 ****
- BufferAssItem(PyObject *self, PyInt n, PyObject *val)
- {
- return RBAssItem((BufferObject *)(self), n, val, 1,
-! (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-
---- 1585,1591 ----
- BufferAssItem(PyObject *self, PyInt n, PyObject *val)
- {
- return RBAssItem((BufferObject *)(self), n, val, 1,
-! (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-
-***************
-*** 1580,1586 ****
- BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
- {
- return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
-! (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-
---- 1593,1599 ----
- BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
- {
- return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
-! (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-
-***************
-*** 1588,1594 ****
- BufferAppend(PyObject *self, PyObject *args)
- {
- return RBAppend((BufferObject *)(self), args, 1,
-! (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-
---- 1601,1607 ----
- BufferAppend(PyObject *self, PyObject *args)
- {
- return RBAppend((BufferObject *)(self), args, 1,
-! (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-
-***************
-*** 1633,1645 ****
- static PyObject *
- BufferRange(PyObject *self, PyObject *args)
- {
-! int start;
-! int end;
-
- if (CheckBuffer((BufferObject *)(self)))
- return NULL;
-
-! if (!PyArg_ParseTuple(args, "ii", &start, &end))
- return NULL;
-
- return RangeNew(((BufferObject *)(self))->buf, start, end);
---- 1646,1658 ----
- static PyObject *
- BufferRange(PyObject *self, PyObject *args)
- {
-! PyInt start;
-! PyInt end;
-
- if (CheckBuffer((BufferObject *)(self)))
- return NULL;
-
-! if (!PyArg_ParseTuple(args, Py_ssize_t_fmt Py_ssize_t_fmt, &start, &end))
- return NULL;
-
- return RangeNew(((BufferObject *)(self))->buf, start, end);
-***************
-*** 1650,1656 ****
-
- static struct PyMethodDef RangeMethods[] = {
- /* name, function, calling, documentation */
-! {"append", RangeAppend, 1, "" },
- { NULL, NULL, 0, NULL }
- };
-
---- 1663,1669 ----
-
- static struct PyMethodDef RangeMethods[] = {
- /* name, function, calling, documentation */
-! {"append", RangeAppend, 1, "Append data to the Vim range" },
- { NULL, NULL, 0, NULL }
- };
-
-***************
-*** 1691,1697 ****
- */
-
- static PyObject *
-! RangeNew(buf_T *buf, int start, int end)
- {
- BufferObject *bufr;
- RangeObject *self;
---- 1704,1710 ----
- */
-
- static PyObject *
-! RangeNew(buf_T *buf, PyInt start, PyInt end)
- {
- BufferObject *bufr;
- RangeObject *self;
-***************
-*** 1725,1733 ****
- RangeGetattr(PyObject *self, char *name)
- {
- if (strcmp(name, "start") == 0)
-! return Py_BuildValue("i",((RangeObject *)(self))->start - 1);
- else if (strcmp(name, "end") == 0)
-! return Py_BuildValue("i",((RangeObject *)(self))->end - 1);
- else
- return Py_FindMethod(RangeMethods, self, name);
- }
---- 1738,1746 ----
- RangeGetattr(PyObject *self, char *name)
- {
- if (strcmp(name, "start") == 0)
-! return Py_BuildValue(Py_ssize_t_fmt, ((RangeObject *)(self))->start - 1);
- else if (strcmp(name, "end") == 0)
-! return Py_BuildValue(Py_ssize_t_fmt, ((RangeObject *)(self))->end - 1);
- else
- return Py_FindMethod(RangeMethods, self, name);
- }
-***************
-*** 1740,1747 ****
-
- if (this->buf->buf == INVALID_BUFFER_VALUE)
- {
-! vim_snprintf(repr, 100, "<range object (for deleted buffer) at %8lX>",
-! (long)(self));
- return PyString_FromString(repr);
- }
- else
---- 1753,1760 ----
-
- if (this->buf->buf == INVALID_BUFFER_VALUE)
- {
-! vim_snprintf(repr, 100, "<range object (for deleted buffer) at %p>",
-! (self));
- return PyString_FromString(repr);
- }
- else
-***************
-*** 1869,1875 ****
- BufListLength(PyObject *self)
- {
- buf_T *b = firstbuf;
-! int n = 0;
-
- while (b)
- {
---- 1882,1888 ----
- BufListLength(PyObject *self)
- {
- buf_T *b = firstbuf;
-! PyInt n = 0;
-
- while (b)
- {
-***************
-*** 2115,2122 ****
-
- if (this->win == INVALID_WINDOW_VALUE)
- {
-! vim_snprintf(repr, 100, _("<window object (deleted) at %.8lX>"),
-! (long)(self));
- return PyString_FromString(repr);
- }
- else
---- 2128,2134 ----
-
- if (this->win == INVALID_WINDOW_VALUE)
- {
-! vim_snprintf(repr, 100, _("<window object (deleted) at %p>"), (self));
- return PyString_FromString(repr);
- }
- else
-***************
-*** 2128,2135 ****
- ++i;
-
- if (w == NULL)
-! vim_snprintf(repr, 100, _("<window object (unknown) at %.8lX>"),
-! (long)(self));
- else
- vim_snprintf(repr, 100, _("<window %d>"), i);
-
---- 2140,2147 ----
- ++i;
-
- if (w == NULL)
-! vim_snprintf(repr, 100, _("<window object (unknown) at %p>"),
-! (self));
- else
- vim_snprintf(repr, 100, _("<window %d>"), i);
-
-***************
-*** 2186,2192 ****
- WinListLength(PyObject *self)
- {
- win_T *w = firstwin;
-! int n = 0;
-
- while (w != NULL)
- {
---- 2198,2204 ----
- WinListLength(PyObject *self)
- {
- win_T *w = firstwin;
-! PyInt n = 0;
-
- while (w != NULL)
- {
-***************
-*** 2254,2260 ****
- else if (strcmp(name, "window") == 0)
- return (PyObject *)WindowNew(curwin);
- else if (strcmp(name, "line") == 0)
-! return GetBufferLine(curbuf, (int)curwin->w_cursor.lnum);
- else if (strcmp(name, "range") == 0)
- return RangeNew(curbuf, RangeStart, RangeEnd);
- else if (strcmp(name,"__members__") == 0)
---- 2266,2272 ----
- else if (strcmp(name, "window") == 0)
- return (PyObject *)WindowNew(curwin);
- else if (strcmp(name, "line") == 0)
-! return GetBufferLine(curbuf, (PyInt)curwin->w_cursor.lnum);
- else if (strcmp(name, "range") == 0)
- return RangeNew(curbuf, RangeStart, RangeEnd);
- else if (strcmp(name,"__members__") == 0)
-***************
-*** 2272,2278 ****
- {
- if (strcmp(name, "line") == 0)
- {
-! if (SetBufferLine(curbuf, (int)curwin->w_cursor.lnum, value, NULL) == FAIL)
- return -1;
-
- return 0;
---- 2284,2290 ----
- {
- if (strcmp(name, "line") == 0)
- {
-! if (SetBufferLine(curbuf, (PyInt)curwin->w_cursor.lnum, value, NULL) == FAIL)
- return -1;
-
- return 0;
-***************
-*** 2344,2350 ****
- /* Set sys.argv[] to avoid a crash in warn(). */
- PySys_SetArgv(1, argv);
-
-! mod = Py_InitModule("vim", VimMethods);
- dict = PyModule_GetDict(mod);
-
- VimError = Py_BuildValue("s", "vim.error");
---- 2356,2362 ----
- /* Set sys.argv[] to avoid a crash in warn(). */
- PySys_SetArgv(1, argv);
-
-! mod = Py_InitModule4("vim", VimMethods, (char *)NULL, (PyObject *)NULL, PYTHON_API_VERSION);
- dict = PyModule_GetDict(mod);
-
- VimError = Py_BuildValue("s", "vim.error");
-***************
-*** 2369,2375 ****
- * string object.
- */
- static PyObject *
-! GetBufferLine(buf_T *buf, int n)
- {
- return LineToString((char *)ml_get_buf(buf, (linenr_T)n, FALSE));
- }
---- 2381,2387 ----
- * string object.
- */
- static PyObject *
-! GetBufferLine(buf_T *buf, PyInt n)
- {
- return LineToString((char *)ml_get_buf(buf, (linenr_T)n, FALSE));
- }
-***************
-*** 2422,2428 ****
- * deleted).
- */
- static void
-! py_fix_cursor(int lo, int hi, int extra)
- {
- if (curwin->w_cursor.lnum >= lo)
- {
---- 2434,2440 ----
- * deleted).
- */
- static void
-! py_fix_cursor(linenr_T lo, linenr_T hi, linenr_T extra)
- {
- if (curwin->w_cursor.lnum >= lo)
- {
-***************
-*** 2454,2460 ****
- * is set to the change in the buffer length.
- */
- static int
-! SetBufferLine(buf_T *buf, int n, PyObject *line, int *len_change)
- {
- /* First of all, we check the thpe of the supplied Python object.
- * There are three cases:
---- 2466,2472 ----
- * is set to the change in the buffer length.
- */
- static int
-! SetBufferLine(buf_T *buf, PyInt n, PyObject *line, PyInt *len_change)
- {
- /* First of all, we check the thpe of the supplied Python object.
- * There are three cases:
-***************
-*** 2477,2483 ****
- {
- deleted_lines_mark((linenr_T)n, 1L);
- if (buf == curwin->w_buffer)
-! py_fix_cursor(n, n + 1, -1);
- }
-
- curbuf = savebuf;
---- 2489,2495 ----
- {
- deleted_lines_mark((linenr_T)n, 1L);
- if (buf == curwin->w_buffer)
-! py_fix_cursor((linenr_T)n, (linenr_T)n + 1, (linenr_T)-1);
- }
-
- curbuf = savebuf;
-***************
-*** 2545,2551 ****
- * is set to the change in the buffer length.
- */
- static int
-! SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, int *len_change)
- {
- /* First of all, we check the thpe of the supplied Python object.
- * There are three cases:
---- 2557,2563 ----
- * is set to the change in the buffer length.
- */
- static int
-! SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change)
- {
- /* First of all, we check the thpe of the supplied Python object.
- * There are three cases:
-***************
-*** 2556,2562 ****
- if (list == Py_None || list == NULL)
- {
- PyInt i;
-! PyInt n = hi - lo;
- buf_T *savebuf = curbuf;
-
- PyErr_Clear();
---- 2568,2574 ----
- if (list == Py_None || list == NULL)
- {
- PyInt i;
-! PyInt n = (int)(hi - lo);
- buf_T *savebuf = curbuf;
-
- PyErr_Clear();
-***************
-*** 2577,2583 ****
- deleted_lines_mark((linenr_T)lo, (long)i);
-
- if (buf == curwin->w_buffer)
-! py_fix_cursor(lo, hi, -n);
- }
-
- curbuf = savebuf;
---- 2589,2595 ----
- deleted_lines_mark((linenr_T)lo, (long)i);
-
- if (buf == curwin->w_buffer)
-! py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n);
- }
-
- curbuf = savebuf;
-***************
-*** 2595,2601 ****
- PyInt i;
- PyInt new_len = PyList_Size(list);
- PyInt old_len = hi - lo;
-! int extra = 0; /* lines added to text, can be negative */
- char **array;
- buf_T *savebuf;
-
---- 2607,2613 ----
- PyInt i;
- PyInt new_len = PyList_Size(list);
- PyInt old_len = hi - lo;
-! PyInt extra = 0; /* lines added to text, can be negative */
- char **array;
- buf_T *savebuf;
-
-***************
-*** 2706,2712 ****
- changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
-
- if (buf == curwin->w_buffer)
-! py_fix_cursor(lo, hi, extra);
-
- curbuf = savebuf;
-
---- 2718,2724 ----
- changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
-
- if (buf == curwin->w_buffer)
-! py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
-
- curbuf = savebuf;
-
-***************
-*** 2734,2740 ****
- * is set to the change in the buffer length.
- */
- static int
-! InsertBufferLines(buf_T *buf, int n, PyObject *lines, int *len_change)
- {
- /* First of all, we check the type of the supplied Python object.
- * It must be a string or a list, or the call is in error.
---- 2746,2752 ----
- * is set to the change in the buffer length.
- */
- static int
-! InsertBufferLines(buf_T *buf, PyInt n, PyObject *lines, PyInt *len_change)
- {
- /* First of all, we check the type of the supplied Python object.
- * It must be a string or a list, or the call is in error.
-*** ../vim-7.1.319/src/version.c Fri Jun 20 12:55:28 2008
---- src/version.c Fri Jun 20 16:25:28 2008
-***************
-*** 1367,1378 ****
- # ifdef FEAT_GUI_W32
- # if defined(_MSC_VER) && (_MSC_VER <= 1010)
- /* Only MS VC 4.1 and earlier can do Win32s */
-! 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())
---- 1374,1385 ----
- # ifdef FEAT_GUI_W32
- # if defined(_MSC_VER) && (_MSC_VER <= 1010)
- /* Only MS VC 4.1 and earlier can do Win32s */
-! 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())
-***************
-*** 1381,1397 ****
- MSG_PUTS(_(" with OLE support"));
- # endif
- # else
-! MSG_PUTS(_("\nMS-Windows 32 bit console version"));
- # endif
- #endif
- #ifdef WIN16
-! MSG_PUTS(_("\nMS-Windows 16 bit version"));
- #endif
- #ifdef MSDOS
- # ifdef DJGPP
-! MSG_PUTS(_("\n32 bit MS-DOS version"));
- # else
-! MSG_PUTS(_("\n16 bit MS-DOS version"));
- # endif
- #endif
- #ifdef MACOS
---- 1388,1408 ----
- MSG_PUTS(_(" with OLE support"));
- # endif
- # else
-! # ifdef _WIN64
-! MSG_PUTS(_("\nMS-Windows 64-bit console version"));
-! # else
-! MSG_PUTS(_("\nMS-Windows 32-bit console version"));
-! # endif
- # endif
- #endif
- #ifdef WIN16
-! MSG_PUTS(_("\nMS-Windows 16-bit version"));
- #endif
- #ifdef MSDOS
- # ifdef DJGPP
-! MSG_PUTS(_("\n32-bit MS-DOS version"));
- # else
-! MSG_PUTS(_("\n16-bit MS-DOS version"));
- # endif
- #endif
- #ifdef MACOS
-*** ../vim-7.1.319/src/version.c Fri Jun 20 12:55:28 2008
---- src/version.c Fri Jun 20 16:25:28 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 320,
- /**/
-
---
-The real
-trick is
-this: to
-keep the
-lines as
-short as
-possible
-and keep
-the size
-the same
-yet free
-from the
-need for
-hyphena-
-Dammit!! (Matthew Winn)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.321 (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.1.321 (extra)
-Problem: Win32 / Win64: Install file is outdated.
-Solution: Update the text for recent compiler. (George Reilly)
-Files: src/INSTALLpc.txt
-
-
-*** ../vim-7.1.320/src/INSTALLpc.txt Sun Mar 16 14:52:53 2008
---- src/INSTALLpc.txt Fri Jun 20 13:39:35 2008
-***************
-*** 36,42 ****
- Visual Studio
- -------------
-
-! Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, and VS .NET 2005)
- is straightforward. (These instructions should also work for VS 4 and VS 5.)
-
- To build Vim from the command line with MSVC, use Make_mvc.mak.
---- 36,42 ----
- Visual Studio
- -------------
-
-! Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, VS 2005, and VS 2008)
- is straightforward. (These instructions should also work for VS 4 and VS 5.)
-
- To build Vim from the command line with MSVC, use Make_mvc.mak.
-***************
-*** 139,145 ****
- is also available through the Platform SDK, |ms-platform-sdk|.
-
-
-! Visual C++ 2005 Express Edition
- -------------------------------
-
- Visual C++ 2005 Express Edition can be downloaded for free from:
---- 139,145 ----
- is also available through the Platform SDK, |ms-platform-sdk|.
-
-
-! Visual C++ 2005 Express Edition *msvc-2005-express*
- -------------------------------
-
- Visual C++ 2005 Express Edition can be downloaded for free from:
-***************
-*** 159,164 ****
---- 159,172 ----
- This includes the IDE and the debugger. You can build Vim with Make_mvc.mak.
-
-
-+ Visual C++ 2008 Express Edition *msvc-2008-express*
-+ -------------------------------
-+
-+ Visual C++ 2008 Express Edition can be downloaded for free from:
-+ http://msdn2.microsoft.com/en-us/express/default.aspx
-+ This includes the IDE and the debugger. You can build Vim with Make_mvc.mak.
-+
-+
- 2. MinGW
- ========
-
-*** ../vim-7.1.320/src/version.c Fri Jun 20 16:31:45 2008
---- src/version.c Fri Jun 20 16:50:50 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 321,
- /**/
-
---
-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.1.322
-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.1.322
-Problem: Can't get start of Visual area in an <expr> mapping.
-Solution: Add the 'v' argument to getpos().
-Files: runtime/doc/eval.txt, src/eval.c
-
-
-*** ../vim-7.1.321/runtime/doc/eval.txt Wed May 28 16:48:00 2008
---- runtime/doc/eval.txt Thu Jun 19 22:46:23 2008
-***************
-*** 3515,3520 ****
---- 3635,3644 ----
- returned)
- w0 first line visible in current window
- w$ last line visible in current window
-+ v In Visual mode: the start of the Visual area (the
-+ cursor is the end). When not in Visual mode
-+ returns the cursor position. Differs from |'<| in
-+ that it's updated right away.
- Note that a mark in another file can be used. The line number
- then applies to another buffer.
- To get the column number use |col()|. To get both use
-*** ../vim-7.1.321/src/eval.c Thu May 29 21:46:10 2008
---- src/eval.c Fri Jun 20 17:20:52 2008
-***************
-*** 16907,16915 ****
- name = get_tv_string_chk(varp);
- if (name == NULL)
- return NULL;
-! if (name[0] == '.') /* cursor */
- return &curwin->w_cursor;
-! if (name[0] == '\'') /* mark */
- {
- pp = getmark_fnum(name[1], FALSE, fnum);
- if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0)
---- 17478,17494 ----
- name = get_tv_string_chk(varp);
- if (name == NULL)
- return NULL;
-! if (name[0] == '.') /* cursor */
- return &curwin->w_cursor;
-! #ifdef FEAT_VISUAL
-! if (name[0] == 'v' && name[1] == NUL) /* Visual start */
-! {
-! if (VIsual_active)
-! return &VIsual;
-! return &curwin->w_cursor;
-! }
-! #endif
-! if (name[0] == '\'') /* mark */
- {
- pp = getmark_fnum(name[1], FALSE, fnum);
- if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0)
-*** ../vim-7.1.321/src/version.c Fri Jun 20 16:51:54 2008
---- src/version.c Fri Jun 20 17:27:30 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 322,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-52. You ask a plumber how much it would cost to replace the chair in front of
- your computer with a toilet.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 7.1.323
-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.1.323
-Problem: Test 19 fails with some termcaps. (Dominque Pelle)
-Solution: Set the t_kb and t_kD termcap values.
-Files: src/testdir/test19.in, src/testdir/test38.in
-
-
-*** ../vim-7.1.322/src/testdir/test19.in Sun Jun 13 20:24:47 2004
---- src/testdir/test19.in Mon Jun 16 19:45:10 2008
-***************
-*** 2,7 ****
---- 2,9 ----
-
- STARTTEST
- :set smarttab expandtab ts=8 sw=4
-+ :" make sure that backspace works, no matter what termcap is used
-+ :set t_kD=\16x7f t_kb=\16x08
- /some
- r :set noexpandtab
- /other
-*** ../vim-7.1.322/src/testdir/test38.in Sun Jun 13 20:28:25 2004
---- src/testdir/test38.in Mon Jun 16 19:46:35 2008
-***************
-*** 3,8 ****
---- 3,10 ----
-
- STARTTEST
- :so small.vim
-+ :" make sure that backspace works, no matter what termcap is used
-+ :set t_kD=\16x7f t_kb=\16x08
- ggdGa
- abcdefghi
- jk lmn
-*** ../vim-7.1.322/src/version.c Fri Jun 20 17:30:45 2008
---- src/version.c Fri Jun 20 17:48:17 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 323,
- /**/
-
---
-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.1.324
-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.1.324
-Problem: File name path length on Unix is limited to 1024.
-Solution: Use PATH_MAX when it's more than 1000.
-Files: src/os_unix.h
-
-
-*** ../vim-7.1.323/src/os_unix.h Tue Jul 10 17:09:51 2007
---- src/os_unix.h Tue Jun 17 20:01:17 2008
-***************
-*** 432,438 ****
- * Unix has plenty of memory, use large buffers
- */
- #define CMDBUFFSIZE 1024 /* size of the command processing buffer */
-! #define MAXPATHL 1024 /* Unix has long paths and plenty of memory */
-
- #define CHECK_INODE /* used when checking if a swap file already
- exists for a file */
---- 432,444 ----
- * Unix has plenty of memory, use large buffers
- */
- #define CMDBUFFSIZE 1024 /* size of the command processing buffer */
-!
-! /* Use the system path length if it makes sense. */
-! #if defined(PATH_MAX) && (PATH_MAX > 1000)
-! # define MAXPATHL PATH_MAX
-! #else
-! # define MAXPATHL 1024
-! #endif
-
- #define CHECK_INODE /* used when checking if a swap file already
- exists for a file */
-*** ../vim-7.1.323/src/version.c Fri Jun 20 17:52:47 2008
---- src/version.c Fri Jun 20 18:04:25 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 324,
- /**/
-
---
-Q: What is a patch 22?
-A: A patch you need to include to make it possible to include patches.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.325
-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.1.325
-Problem: When editing a command line that's longer than available space in
- the window, the characters at the end are in reverse order.
-Solution: Increment the insert position even when the command line doesn't
- fit. (Ingo Karkat)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.1.324/src/ex_getln.c Fri Jun 20 12:55:28 2008
---- src/ex_getln.c Fri Jun 20 16:45:55 2008
-***************
-*** 2053,2062 ****
- if (has_mbyte)
- correct_cmdspos(i, c);
- #endif
-! /* If the cmdline doesn't fit, put cursor on last visible char. */
- if ((ccline.cmdspos += c) >= m)
- {
-- ccline.cmdpos = i - 1;
- ccline.cmdspos -= c;
- break;
- }
---- 2053,2062 ----
- if (has_mbyte)
- correct_cmdspos(i, c);
- #endif
-! /* If the cmdline doesn't fit, show cursor on last visible char.
-! * Don't move the cursor itself, so we can still append. */
- if ((ccline.cmdspos += c) >= m)
- {
- ccline.cmdspos -= c;
- break;
- }
-***************
-*** 2829,2838 ****
- if (has_mbyte)
- correct_cmdspos(ccline.cmdpos, c);
- #endif
-! /* Stop cursor at the end of the screen */
-! if (ccline.cmdspos + c >= m)
-! break;
-! ccline.cmdspos += c;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- {
---- 2829,2839 ----
- if (has_mbyte)
- correct_cmdspos(ccline.cmdpos, c);
- #endif
-! /* Stop cursor at the end of the screen, but do increment the
-! * insert position, so that entering a very long command
-! * works, even though you can't see it. */
-! if (ccline.cmdspos + c < m)
-! ccline.cmdspos += c;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- {
-***************
-*** 3332,3338 ****
- /*
- * Do wildcard expansion on the string 'str'.
- * Chars that should not be expanded must be preceded with a backslash.
-! * Return a pointer to alloced memory containing the new string.
- * Return NULL for failure.
- *
- * "orig" is the originally expanded string, copied to allocated memory. It
---- 3333,3339 ----
- /*
- * Do wildcard expansion on the string 'str'.
- * Chars that should not be expanded must be preceded with a backslash.
-! * Return a pointer to allocated memory containing the new string.
- * Return NULL for failure.
- *
- * "orig" is the originally expanded string, copied to allocated memory. It
-***************
-*** 6111,6117 ****
-
- exmode_active = save_exmode;
-
-! /* Safety check: The old window or buffer was deleted: It's a a bug when
- * this happens! */
- if (!win_valid(old_curwin) || !buf_valid(old_curbuf))
- {
---- 6112,6118 ----
-
- exmode_active = save_exmode;
-
-! /* Safety check: The old window or buffer was deleted: It's a bug when
- * this happens! */
- if (!win_valid(old_curwin) || !buf_valid(old_curbuf))
- {
-*** ../vim-7.1.324/src/version.c Fri Jun 20 18:06:15 2008
---- src/version.c Fri Jun 20 18:27:54 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 325,
- /**/
-
---
-"I can't complain, but sometimes I still do." (Joe Walsh)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.326
-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.1.326
-Problem: ":s!from!to!" works, but ":smagic!from!to!" doesn't. It sees the
- "!" as a flag to to the command. Same for ":snomagic". (Johan
- Spetz)
-Solution: When checking for a forced command also ignore ":smagic" and
- ":snomagic". (Ian Kelling)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.1.325/src/ex_docmd.c Fri Jun 20 11:10:53 2008
---- src/ex_docmd.c Fri Jun 20 10:42:30 2008
-***************
-*** 2142,2148 ****
-
- #endif
-
-! if (*p == '!' && ea.cmdidx != CMD_substitute) /* forced commands */
- {
- ++p;
- ea.forceit = TRUE;
---- 2142,2150 ----
-
- #endif
-
-! /* forced commands */
-! if (*p == '!' && ea.cmdidx != CMD_substitute
-! && ea.cmdidx != CMD_smagic && ea.cmdidx != CMD_snomagic)
- {
- ++p;
- ea.forceit = TRUE;
-*** ../vim-7.1.325/src/version.c Fri Jun 20 18:30:27 2008
---- src/version.c Fri Jun 20 18:50:19 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 326,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-55. You ask your doctor to implant a gig in your brain.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.327
-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.1.327
-Problem: The GUI tutor is installed when there is no GUI version.
-Solution: Only install gvimtutor when building a GUI version.
-Files: src/Makefile
-
-
-*** ../vim-7.1.326/src/Makefile Fri Jun 20 18:51:06 2008
---- src/Makefile Fri Jun 20 21:26:46 2008
-***************
-*** 1113,1119 ****
- GTK_LIBS_DIR = $(GUI_LIB_LOC)
- GTK_LIBS1 =
- GTK_LIBS2 = $(GTK_LIBNAME)
-! GTK_INSTALL = install_normal
- GTK_TARGETS = installglinks
- GTK_MAN_TARGETS = yes
- GTK_TESTTARGET = gui
---- 1113,1119 ----
- GTK_LIBS_DIR = $(GUI_LIB_LOC)
- GTK_LIBS1 =
- GTK_LIBS2 = $(GTK_LIBNAME)
-! GTK_INSTALL = install_normal install_gui_extra
- GTK_TARGETS = installglinks
- GTK_MAN_TARGETS = yes
- GTK_TESTTARGET = gui
-***************
-*** 1130,1136 ****
- MOTIF_LIBS_DIR = $(GUI_LIB_LOC)
- MOTIF_LIBS1 =
- MOTIF_LIBS2 = $(MOTIF_LIBNAME) -lXt
-! MOTIF_INSTALL = install_normal
- MOTIF_TARGETS = installglinks
- MOTIF_MAN_TARGETS = yes
- MOTIF_TESTTARGET = gui
---- 1130,1136 ----
- MOTIF_LIBS_DIR = $(GUI_LIB_LOC)
- MOTIF_LIBS1 =
- MOTIF_LIBS2 = $(MOTIF_LIBNAME) -lXt
-! MOTIF_INSTALL = install_normal install_gui_extra
- MOTIF_TARGETS = installglinks
- MOTIF_MAN_TARGETS = yes
- MOTIF_TESTTARGET = gui
-***************
-*** 1160,1166 ****
- ATHENA_LIBS_DIR = $(GUI_LIB_LOC)
- ATHENA_LIBS1 = $(XAW_LIB)
- ATHENA_LIBS2 = -lXt
-! ATHENA_INSTALL = install_normal
- ATHENA_TARGETS = installglinks
- ATHENA_MAN_TARGETS = yes
- ATHENA_TESTTARGET = gui
---- 1160,1166 ----
- ATHENA_LIBS_DIR = $(GUI_LIB_LOC)
- ATHENA_LIBS1 = $(XAW_LIB)
- ATHENA_LIBS2 = -lXt
-! ATHENA_INSTALL = install_normal install_gui_extra
- ATHENA_TARGETS = installglinks
- ATHENA_MAN_TARGETS = yes
- ATHENA_TESTTARGET = gui
-***************
-*** 1178,1184 ****
- NEXTAW_LIBS_DIR = $(GUI_LIB_LOC)
- NEXTAW_LIBS1 = $(NEXTAW_LIB)
- NEXTAW_LIBS2 = -lXt
-! NEXTAW_INSTALL = install_normal
- NEXTAW_TARGETS = installglinks
- NEXTAW_MAN_TARGETS = yes
- NEXTAW_TESTTARGET = gui
---- 1178,1184 ----
- NEXTAW_LIBS_DIR = $(GUI_LIB_LOC)
- NEXTAW_LIBS1 = $(NEXTAW_LIB)
- NEXTAW_LIBS2 = -lXt
-! NEXTAW_INSTALL = install_normal install_gui_extra
- NEXTAW_TARGETS = installglinks
- NEXTAW_MAN_TARGETS = yes
- NEXTAW_TESTTARGET = gui
-***************
-*** 1203,1209 ****
- PHOTONGUI_LIBS_DIR =
- PHOTONGUI_LIBS1 = -lph -lphexlib
- PHOTONGUI_LIBS2 =
-! PHOTONGUI_INSTALL = install_normal
- PHOTONGUI_TARGETS = installglinks
- PHOTONGUI_MAN_TARGETS = yes
- PHOTONGUI_TESTTARGET = gui
---- 1203,1209 ----
- PHOTONGUI_LIBS_DIR =
- PHOTONGUI_LIBS1 = -lph -lphexlib
- PHOTONGUI_LIBS2 =
-! PHOTONGUI_INSTALL = install_normal install_gui_extra
- PHOTONGUI_TARGETS = installglinks
- PHOTONGUI_MAN_TARGETS = yes
- PHOTONGUI_TESTTARGET = gui
-***************
-*** 1219,1225 ****
- CARBONGUI_LIBS_DIR =
- CARBONGUI_LIBS1 = -framework Carbon
- CARBONGUI_LIBS2 =
-! CARBONGUI_INSTALL = install_macosx
- CARBONGUI_TARGETS =
- CARBONGUI_MAN_TARGETS =
- CARBONGUI_TESTTARGET = gui
---- 1219,1225 ----
- CARBONGUI_LIBS_DIR =
- CARBONGUI_LIBS1 = -framework Carbon
- CARBONGUI_LIBS2 =
-! CARBONGUI_INSTALL = install_macosx install_gui_extra
- CARBONGUI_TARGETS =
- CARBONGUI_MAN_TARGETS =
- CARBONGUI_TESTTARGET = gui
-***************
-*** 1741,1746 ****
---- 1741,1755 ----
- cd $(PODIR); $(MAKE) checkclean; \
- fi
-
-+ install: $(GUI_INSTALL)
-+
-+ install_normal: installvim installtools $(INSTALL_LANGS) install-icons
-+
-+ install_gui_extra: installgtutorbin
-+
-+ installvim: installvimbin installtutorbin \
-+ installruntime installlinks installmanlinks
-+
- #
- # Avoid overwriting an existing executable, somebody might be running it and
- # overwriting it could cause it to crash. Deleting it is OK, it won't be
-***************
-*** 1750,1762 ****
- # If you want to keep an older version, rename it before running "make
- # install".
- #
-- install: $(GUI_INSTALL)
--
-- install_normal: installvim installtools $(INSTALL_LANGS) install-icons
--
-- installvim: installvimbin installtutorbin \
-- installruntime installlinks installmanlinks
--
- installvimbin: $(VIMTARGET) $(DESTDIR)$(exec_prefix) $(DEST_BIN)
- -if test -f $(DEST_BIN)/$(VIMTARGET); then \
- mv -f $(DEST_BIN)/$(VIMTARGET) $(DEST_BIN)/$(VIMNAME).rm; \
---- 1759,1764 ----
-***************
-*** 1872,1877 ****
---- 1874,1881 ----
- installtutorbin: $(DEST_VIM)
- $(INSTALL_DATA) vimtutor $(DEST_BIN)/$(VIMNAME)tutor
- chmod $(SCRIPTMOD) $(DEST_BIN)/$(VIMNAME)tutor
-+
-+ installgtutorbin: $(DEST_VIM)
- $(INSTALL_DATA) gvimtutor $(DEST_BIN)/$(GVIMNAME)tutor
- chmod $(SCRIPTMOD) $(DEST_BIN)/$(GVIMNAME)tutor
-
-*** ../vim-7.1.326/src/version.c Fri Jun 20 18:51:01 2008
---- src/version.c Fri Jun 20 21:26:52 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 327,
- /**/
-
---
-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.1.328
-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.1.328
-Problem: Crash when using Cygwin and non-posix path name in tags file.
-Solution: Use separate buffer for posix path. (Ben Schmidt)
-Files: src/os_unix.c
-
-
-*** ../vim-7.1.327/src/os_unix.c Fri Jun 20 11:58:27 2008
---- src/os_unix.c Sat Jun 21 13:06:45 2008
-***************
-*** 2278,2283 ****
---- 2278,2287 ----
- char_u olddir[MAXPATHL];
- char_u *p;
- int retval = OK;
-+ #ifdef __CYGWIN__
-+ char_u posix_fname[MAX_PATH];
-+ #endif
-+
-
- #ifdef VMS
- fname = vms_fixfilename(fname);
-***************
-*** 2287,2293 ****
- /*
- * 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 */
---- 2291,2298 ----
- /*
- * This helps for when "/etc/hosts" is a symlink to "c:/something/hosts".
- */
-! cygwin_conv_to_posix_path(fname, posix_fname);
-! fname = posix_fname;
- #endif
-
- /* expand it if forced or not an absolute path */
-*** ../vim-7.1.327/src/version.c Fri Jun 20 21:29:01 2008
---- src/version.c Sat Jun 21 13:10:39 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 328,
- /**/
-
---
-Q: Should I clean my house or work on Vim?
-A: Whatever contains more bugs.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.329
-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.1.329
-Problem: When the popup menu is removed a column of cells, the right halve
- of double-wide characters, may not be redrawn.
-Solution: Check if the right halve of a character needs to be redrawn.
- (Yukihiro Nakadaira)
-Files: src/screen.c
-
-
-*** ../vim-7.1.328/src/screen.c Wed May 28 19:01:53 2008
---- src/screen.c Sat Jun 21 14:09:02 2008
-***************
-*** 4863,4868 ****
---- 4863,4869 ----
- * - the (first byte of the) character is different
- * - the attributes are different
- * - the character is multi-byte and the next byte is different
-+ * - the character is two cells wide and the second cell differs.
- */
- static int
- char_needs_redraw(off_from, off_to, cols)
-***************
-*** 4884,4890 ****
- || (enc_utf8
- && (ScreenLinesUC[off_from] != ScreenLinesUC[off_to]
- || (ScreenLinesUC[off_from] != 0
-! && comp_char_differs(off_from, off_to))))
- #endif
- ))
- return TRUE;
---- 4885,4893 ----
- || (enc_utf8
- && (ScreenLinesUC[off_from] != ScreenLinesUC[off_to]
- || (ScreenLinesUC[off_from] != 0
-! && comp_char_differs(off_from, off_to))
-! || (cols > 1 && ScreenLines[off_from + 1]
-! != ScreenLines[off_to + 1])))
- #endif
- ))
- return TRUE;
-*** ../vim-7.1.328/src/version.c Sat Jun 21 13:11:58 2008
---- src/version.c Sat Jun 21 14:12:30 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 329,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-61. Your best friends know your e-mail address, but neither your phone number
- nor the address where you live.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- 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.1.330
-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.1.330
-Problem: Reading uninitialized memory when using Del in replace mode.
-Solution: Use utfc_ptr2len_len() instead of mb_ptr2len(). (Dominique Pelle)
-Files: src/misc1.c
-
-
-*** ../vim-7.1.329/src/misc1.c Mon Feb 25 21:54:23 2008
---- src/misc1.c Sat Jun 21 16:02:34 2008
-***************
-*** 1880,1894 ****
- # ifdef FEAT_MBYTE
- int n;
-
-! for (i = 0; i < len; i += n)
-! {
-! n = (*mb_ptr2len)(p + i);
-! ins_char_bytes(p + i, n);
-! }
-! # else
-! for (i = 0; i < len; ++i)
-! ins_char(p[i]);
- # endif
- }
- #endif
-
---- 1880,1899 ----
- # ifdef FEAT_MBYTE
- int n;
-
-! if (has_mbyte)
-! for (i = 0; i < len; i += n)
-! {
-! if (enc_utf8)
-! /* avoid reading past p[len] */
-! n = utfc_ptr2len_len(p + i, len - i);
-! else
-! n = (*mb_ptr2len)(p + i);
-! ins_char_bytes(p + i, n);
-! }
-! else
- # endif
-+ for (i = 0; i < len; ++i)
-+ ins_char(p[i]);
- }
- #endif
-
-*** ../vim-7.1.329/src/version.c Sat Jun 21 14:13:51 2008
---- src/version.c Sat Jun 21 16:28:28 2008
-***************
-*** 668,669 ****
---- 673,676 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 330,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-65. The last time you looked at the clock it was 11:30pm, and in what
- seems like only a few seconds later, your sister runs past you to
- catch her 7am school bus.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///