summaryrefslogtreecommitdiffstats
path: root/vi/vim-7.2/7.2.041
diff options
context:
space:
mode:
Diffstat (limited to 'vi/vim-7.2/7.2.041')
-rw-r--r--vi/vim-7.2/7.2.041729
1 files changed, 0 insertions, 729 deletions
diff --git a/vi/vim-7.2/7.2.041 b/vi/vim-7.2/7.2.041
deleted file mode 100644
index b562206..0000000
--- a/vi/vim-7.2/7.2.041
+++ /dev/null
@@ -1,729 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.2.041
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.2.041
-Problem: In diff mode, when using two tabs, each with two diffed buffers,
- editing a buffer of the other tab messes up the diff. (Matt
- Mzyzik)
-Solution: Only copy options from a window where the buffer was edited that
- doesn't have 'diff' set or is for the current tab page.
- Also fix that window options for a buffer are stored with the
- wrong window.
-Files: src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
- src/ex_getln.c, src/if_sniff.c, src/main.c, src/netbeans.c,
- src/normal.c, src/popupmnu.c, src/proto/buffer.pro,
- src/proto/ex_cmds.pro src/quickfix.c, src/window.c
-
-
-*** ../vim-7.2.040/src/buffer.c Wed Nov 12 12:51:38 2008
---- src/buffer.c Wed Nov 12 17:45:01 2008
-***************
-*** 33,39 ****
- static char_u *fname_match __ARGS((regprog_T *prog, char_u *name));
- #endif
- static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options));
-! static wininfo_T *find_wininfo __ARGS((buf_T *buf));
- #ifdef UNIX
- static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st));
- static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp));
---- 33,39 ----
- static char_u *fname_match __ARGS((regprog_T *prog, char_u *name));
- #endif
- static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options));
-! static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer));
- #ifdef UNIX
- static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st));
- static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp));
-***************
-*** 1093,1099 ****
- #endif
- setpcmark();
- retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
-! forceit ? ECMD_FORCEIT : 0);
-
- /*
- * do_ecmd() may create a new buffer, then we have to delete
---- 1093,1099 ----
- #endif
- setpcmark();
- retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
-! forceit ? ECMD_FORCEIT : 0, curwin);
-
- /*
- * do_ecmd() may create a new buffer, then we have to delete
-***************
-*** 1316,1322 ****
- setpcmark();
- if (!cmdmod.keepalt)
- curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */
-! buflist_altfpos(); /* remember curpos */
-
- #ifdef FEAT_VISUAL
- /* Don't restart Select mode after switching to another buffer. */
---- 1316,1322 ----
- setpcmark();
- if (!cmdmod.keepalt)
- curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */
-! buflist_altfpos(curwin); /* remember curpos */
-
- #ifdef FEAT_VISUAL
- /* Don't restart Select mode after switching to another buffer. */
-***************
-*** 2404,2425 ****
- return;
- }
-
- /*
- * Find info for the current window in buffer "buf".
- * If not found, return the info for the most recently used window.
- * Returns NULL when there isn't any info.
- */
- static wininfo_T *
-! find_wininfo(buf)
- buf_T *buf;
- {
- wininfo_T *wip;
-
- for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next)
-! if (wip->wi_win == curwin)
- break;
-! if (wip == NULL) /* if no fpos for curwin, use the first in the list */
-! wip = buf->b_wininfo;
- return wip;
- }
-
---- 2404,2473 ----
- return;
- }
-
-+ #ifdef FEAT_DIFF
-+ static int wininfo_other_tab_diff __ARGS((wininfo_T *wip));
-+
-+ /*
-+ * Return TRUE when "wip" has 'diff' set and the diff is only for another tab
-+ * page. That's because a diff is local to a tab page.
-+ */
-+ static int
-+ wininfo_other_tab_diff(wip)
-+ wininfo_T *wip;
-+ {
-+ win_T *wp;
-+
-+ if (wip->wi_opt.wo_diff)
-+ {
-+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
-+ /* return FALSE when it's a window in the current tab page, thus
-+ * the buffer was in diff mode here */
-+ if (wip->wi_win == wp)
-+ return FALSE;
-+ return TRUE;
-+ }
-+ return FALSE;
-+ }
-+ #endif
-+
- /*
- * Find info for the current window in buffer "buf".
- * If not found, return the info for the most recently used window.
-+ * When "skip_diff_buffer" is TRUE avoid windows with 'diff' set that is in
-+ * another tab page.
- * Returns NULL when there isn't any info.
- */
-+ /*ARGSUSED*/
- static wininfo_T *
-! find_wininfo(buf, skip_diff_buffer)
- buf_T *buf;
-+ int skip_diff_buffer;
- {
- wininfo_T *wip;
-
- for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next)
-! if (wip->wi_win == curwin
-! #ifdef FEAT_DIFF
-! && (!skip_diff_buffer || !wininfo_other_tab_diff(wip))
-! #endif
-! )
- break;
-!
-! /* If no wininfo for curwin, use the first in the list (that doesn't have
-! * 'diff' set and is in another tab page). */
-! if (wip == NULL)
-! {
-! #ifdef FEAT_DIFF
-! if (skip_diff_buffer)
-! {
-! for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next)
-! if (!wininfo_other_tab_diff(wip))
-! break;
-! }
-! else
-! #endif
-! wip = buf->b_wininfo;
-! }
- return wip;
- }
-
-***************
-*** 2440,2446 ****
- clearFolding(curwin);
- #endif
-
-! wip = find_wininfo(buf);
- if (wip != NULL && wip->wi_optset)
- {
- copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt);
---- 2488,2494 ----
- clearFolding(curwin);
- #endif
-
-! wip = find_wininfo(buf, TRUE);
- if (wip != NULL && wip->wi_optset)
- {
- copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt);
-***************
-*** 2472,2478 ****
- wininfo_T *wip;
- static pos_T no_position = {1, 0};
-
-! wip = find_wininfo(buf);
- if (wip != NULL)
- return &(wip->wi_fpos);
- else
---- 2520,2526 ----
- wininfo_T *wip;
- static pos_T no_position = {1, 0};
-
-! wip = find_wininfo(buf, FALSE);
- if (wip != NULL)
- return &(wip->wi_fpos);
- else
-***************
-*** 2793,2806 ****
- #endif
-
- /*
-! * Set alternate cursor position for current window.
- * Also save the local window option values.
- */
- void
-! buflist_altfpos()
- {
-! buflist_setfpos(curbuf, curwin, curwin->w_cursor.lnum,
-! curwin->w_cursor.col, TRUE);
- }
-
- /*
---- 2841,2854 ----
- #endif
-
- /*
-! * Set alternate cursor position for the current buffer and window "win".
- * Also save the local window option values.
- */
- void
-! buflist_altfpos(win)
-! win_T *win;
- {
-! buflist_setfpos(curbuf, win, win->w_cursor.lnum, win->w_cursor.col, TRUE);
- }
-
- /*
-***************
-*** 4492,4498 ****
- ECMD_ONE,
- ((P_HID(curwin->w_buffer)
- || bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0)
-! + ECMD_OLDBUF);
- #ifdef FEAT_AUTOCMD
- if (use_firstwin)
- ++autocmd_no_leave;
---- 4540,4546 ----
- ECMD_ONE,
- ((P_HID(curwin->w_buffer)
- || bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0)
-! + ECMD_OLDBUF, curwin);
- #ifdef FEAT_AUTOCMD
- if (use_firstwin)
- ++autocmd_no_leave;
-*** ../vim-7.2.040/src/ex_cmds.c Sun Nov 9 13:43:25 2008
---- src/ex_cmds.c Wed Nov 12 22:41:41 2008
-***************
-*** 3052,3058 ****
- retval = 0; /* it's in the same file */
- }
- else if (do_ecmd(fnum, ffname, sfname, NULL, lnum,
-! (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0)) == OK)
- retval = -1; /* opened another file */
- else
- retval = 1; /* error encountered */
---- 3052,3059 ----
- retval = 0; /* it's in the same file */
- }
- else if (do_ecmd(fnum, ffname, sfname, NULL, lnum,
-! (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0),
-! curwin) == OK)
- retval = -1; /* opened another file */
- else
- retval = 1; /* error encountered */
-***************
-*** 3085,3101 ****
- * ECMD_OLDBUF: use existing buffer if it exists
- * ECMD_FORCEIT: ! used for Ex command
- * ECMD_ADDBUF: don't edit, just add to buffer list
- *
- * return FAIL for failure, OK otherwise
- */
- int
-! do_ecmd(fnum, ffname, sfname, eap, newlnum, flags)
- int fnum;
- char_u *ffname;
- char_u *sfname;
- exarg_T *eap; /* can be NULL! */
- linenr_T newlnum;
- int flags;
- {
- int other_file; /* TRUE if editing another file */
- int oldbuf; /* TRUE if using existing buffer */
---- 3086,3106 ----
- * ECMD_OLDBUF: use existing buffer if it exists
- * ECMD_FORCEIT: ! used for Ex command
- * ECMD_ADDBUF: don't edit, just add to buffer list
-+ * oldwin: Should be "curwin" when editing a new buffer in the current
-+ * window, NULL when splitting the window first. When not NULL info
-+ * of the previous buffer for "oldwin" is stored.
- *
- * return FAIL for failure, OK otherwise
- */
- int
-! do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin)
- int fnum;
- char_u *ffname;
- char_u *sfname;
- exarg_T *eap; /* can be NULL! */
- linenr_T newlnum;
- int flags;
-+ win_T *oldwin;
- {
- int other_file; /* TRUE if editing another file */
- int oldbuf; /* TRUE if using existing buffer */
-***************
-*** 3267,3273 ****
- {
- if (!cmdmod.keepalt)
- curwin->w_alt_fnum = curbuf->b_fnum;
-! buflist_altfpos();
- }
-
- if (fnum)
---- 3272,3279 ----
- {
- if (!cmdmod.keepalt)
- curwin->w_alt_fnum = curbuf->b_fnum;
-! if (oldwin != NULL)
-! buflist_altfpos(oldwin);
- }
-
- if (fnum)
-***************
-*** 3371,3377 ****
-
- /* close the link to the current buffer */
- u_sync(FALSE);
-! close_buffer(curwin, curbuf,
- (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
-
- #ifdef FEAT_AUTOCMD
---- 3377,3383 ----
-
- /* close the link to the current buffer */
- u_sync(FALSE);
-! close_buffer(oldwin, curbuf,
- (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
-
- #ifdef FEAT_AUTOCMD
-***************
-*** 5609,5615 ****
- */
- alt_fnum = curbuf->b_fnum;
- (void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL,
-! ECMD_HIDE + ECMD_SET_HELP);
- if (!cmdmod.keepalt)
- curwin->w_alt_fnum = alt_fnum;
- empty_fnum = curbuf->b_fnum;
---- 5615,5627 ----
- */
- alt_fnum = curbuf->b_fnum;
- (void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL,
-! ECMD_HIDE + ECMD_SET_HELP,
-! #ifdef FEAT_WINDOWS
-! NULL /* buffer is still open, don't store info */
-! #else
-! curwin
-! #endif
-! );
- if (!cmdmod.keepalt)
- curwin->w_alt_fnum = alt_fnum;
- empty_fnum = curbuf->b_fnum;
-*** ../vim-7.2.040/src/ex_cmds2.c Sun Sep 7 15:49:45 2008
---- src/ex_cmds2.c Wed Nov 12 17:46:41 2008
-***************
-*** 2132,2139 ****
- * argument index. */
- if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL,
- eap, ECMD_LAST,
-! (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) +
-! (eap->forceit ? ECMD_FORCEIT : 0)) == FAIL)
- curwin->w_arg_idx = old_arg_idx;
- /* like Vi: set the mark where the cursor is in the file. */
- else if (eap->cmdidx != CMD_argdo)
---- 2132,2139 ----
- * argument index. */
- if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL,
- eap, ECMD_LAST,
-! (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0)
-! + (eap->forceit ? ECMD_FORCEIT : 0), curwin) == FAIL)
- curwin->w_arg_idx = old_arg_idx;
- /* like Vi: set the mark where the cursor is in the file. */
- else if (eap->cmdidx != CMD_argdo)
-*** ../vim-7.2.040/src/ex_docmd.c Sun Nov 9 13:43:25 2008
---- src/ex_docmd.c Wed Nov 12 18:04:22 2008
-***************
-*** 7488,7494 ****
- /* ":new" or ":tabnew" without argument: edit an new empty buffer */
- setpcmark();
- (void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE,
-! ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0));
- }
- else if ((eap->cmdidx != CMD_split
- #ifdef FEAT_VERTSPLIT
---- 7488,7495 ----
- /* ":new" or ":tabnew" without argument: edit an new empty buffer */
- setpcmark();
- (void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE,
-! ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0),
-! old_curwin == NULL ? curwin : NULL);
- }
- else if ((eap->cmdidx != CMD_split
- #ifdef FEAT_VERTSPLIT
-***************
-*** 7525,7531 ****
- #ifdef FEAT_LISTCMDS
- + (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 )
- #endif
-! ) == FAIL)
- {
- /* Editing the file failed. If the window was split, close it. */
- #ifdef FEAT_WINDOWS
---- 7526,7532 ----
- #ifdef FEAT_LISTCMDS
- + (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 )
- #endif
-! , old_curwin == NULL ? curwin : NULL) == FAIL)
- {
- /* Editing the file failed. If the window was split, close it. */
- #ifdef FEAT_WINDOWS
-*** ../vim-7.2.040/src/ex_getln.c Sun Sep 14 14:41:44 2008
---- src/ex_getln.c Wed Nov 12 18:06:25 2008
-***************
-*** 6051,6057 ****
- cmdwin_type = '-';
-
- /* Create the command-line buffer empty. */
-! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE);
- (void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE);
- set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL);
- set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
---- 6051,6057 ----
- cmdwin_type = '-';
-
- /* Create the command-line buffer empty. */
-! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL);
- (void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE);
- set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL);
- set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
-*** ../vim-7.2.040/src/if_sniff.c Sat Aug 9 19:41:16 2008
---- src/if_sniff.c Wed Nov 12 17:48:46 2008
-***************
-*** 1114,1120 ****
- char *fname;
- {
- ++no_wait_return;
-! do_ecmd(0, (char_u *)fname, NULL, NULL, ECMD_ONE, ECMD_HIDE+ECMD_OLDBUF);
- curbuf->b_sniff = TRUE;
- --no_wait_return; /* [ex_docmd.c] */
- }
---- 1114,1121 ----
- char *fname;
- {
- ++no_wait_return;
-! do_ecmd(0, (char_u *)fname, NULL, NULL, ECMD_ONE, ECMD_HIDE+ECMD_OLDBUF,
-! curwin);
- curbuf->b_sniff = TRUE;
- --no_wait_return; /* [ex_docmd.c] */
- }
-*** ../vim-7.2.040/src/main.c Sun Nov 9 13:43:25 2008
---- src/main.c Wed Nov 12 17:49:06 2008
-***************
-*** 2588,2594 ****
- # endif
- (void)do_ecmd(0, arg_idx < GARGCOUNT
- ? alist_name(&GARGLIST[arg_idx]) : NULL,
-! NULL, NULL, ECMD_LASTL, ECMD_HIDE);
- # ifdef HAS_SWAP_EXISTS_ACTION
- if (swap_exists_did_quit)
- {
---- 2588,2594 ----
- # endif
- (void)do_ecmd(0, arg_idx < GARGCOUNT
- ? alist_name(&GARGLIST[arg_idx]) : NULL,
-! NULL, NULL, ECMD_LASTL, ECMD_HIDE, curwin);
- # ifdef HAS_SWAP_EXISTS_ACTION
- if (swap_exists_did_quit)
- {
-*** ../vim-7.2.040/src/netbeans.c Sun Jul 13 19:18:03 2008
---- src/netbeans.c Wed Nov 12 17:49:40 2008
-***************
-*** 1795,1801 ****
- buf->displayname = NULL;
-
- netbeansReadFile = 0; /* don't try to open disk file */
-! do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF);
- netbeansReadFile = 1;
- buf->bufp = curbuf;
- maketitle();
---- 1795,1801 ----
- buf->displayname = NULL;
-
- netbeansReadFile = 0; /* don't try to open disk file */
-! do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin);
- netbeansReadFile = 1;
- buf->bufp = curbuf;
- maketitle();
-***************
-*** 1960,1966 ****
-
- netbeansReadFile = 0; /* don't try to open disk file */
- do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE,
-! ECMD_HIDE + ECMD_OLDBUF);
- netbeansReadFile = 1;
- buf->bufp = curbuf;
- maketitle();
---- 1960,1966 ----
-
- netbeansReadFile = 0; /* don't try to open disk file */
- do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE,
-! ECMD_HIDE + ECMD_OLDBUF, curwin);
- netbeansReadFile = 1;
- buf->bufp = curbuf;
- maketitle();
-***************
-*** 1979,1985 ****
- vim_free(buf->displayname);
- buf->displayname = nb_unquote(args, NULL);
- do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE,
-! ECMD_HIDE + ECMD_OLDBUF);
- buf->bufp = curbuf;
- buf->initDone = TRUE;
- doupdate = 1;
---- 1979,1985 ----
- vim_free(buf->displayname);
- buf->displayname = nb_unquote(args, NULL);
- do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE,
-! ECMD_HIDE + ECMD_OLDBUF, curwin);
- buf->bufp = curbuf;
- buf->initDone = TRUE;
- doupdate = 1;
-*** ../vim-7.2.040/src/normal.c Sat Nov 1 13:51:57 2008
---- src/normal.c Wed Nov 12 17:49:50 2008
-***************
-*** 6050,6056 ****
- autowrite(curbuf, FALSE);
- setpcmark();
- (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST,
-! P_HID(curbuf) ? ECMD_HIDE : 0);
- if (cap->nchar == 'F' && lnum >= 0)
- {
- curwin->w_cursor.lnum = lnum;
---- 6050,6056 ----
- autowrite(curbuf, FALSE);
- setpcmark();
- (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST,
-! P_HID(curbuf) ? ECMD_HIDE : 0, curwin);
- if (cap->nchar == 'F' && lnum >= 0)
- {
- curwin->w_cursor.lnum = lnum;
-*** ../vim-7.2.040/src/popupmnu.c Sun Jul 13 19:33:51 2008
---- src/popupmnu.c Wed Nov 12 18:08:07 2008
-***************
-*** 573,579 ****
- {
- /* Don't want to sync undo in the current buffer. */
- ++no_u_sync;
-! res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0);
- --no_u_sync;
- if (res == OK)
- {
---- 573,579 ----
- {
- /* Don't want to sync undo in the current buffer. */
- ++no_u_sync;
-! res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0, NULL);
- --no_u_sync;
- if (res == OK)
- {
-*** ../vim-7.2.040/src/proto/buffer.pro Sun May 6 13:57:53 2007
---- src/proto/buffer.pro Wed Nov 12 17:43:39 2008
-***************
-*** 33,39 ****
- char_u *getaltfname __ARGS((int errmsg));
- int buflist_add __ARGS((char_u *fname, int flags));
- void buflist_slash_adjust __ARGS((void));
-! void buflist_altfpos __ARGS((void));
- int otherfile __ARGS((char_u *ffname));
- void buf_setino __ARGS((buf_T *buf));
- void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate));
---- 33,39 ----
- char_u *getaltfname __ARGS((int errmsg));
- int buflist_add __ARGS((char_u *fname, int flags));
- void buflist_slash_adjust __ARGS((void));
-! void buflist_altfpos __ARGS((win_T *win));
- int otherfile __ARGS((char_u *ffname));
- void buf_setino __ARGS((buf_T *buf));
- void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate));
-*** ../vim-7.2.040/src/proto/ex_cmds.pro Sun Nov 9 13:43:25 2008
---- src/proto/ex_cmds.pro Wed Nov 12 17:44:27 2008
-***************
-*** 27,33 ****
- void do_wqall __ARGS((exarg_T *eap));
- int not_writing __ARGS((void));
- int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit));
-! int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags));
- void ex_append __ARGS((exarg_T *eap));
- void ex_change __ARGS((exarg_T *eap));
- void ex_z __ARGS((exarg_T *eap));
---- 27,33 ----
- void do_wqall __ARGS((exarg_T *eap));
- int not_writing __ARGS((void));
- int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit));
-! int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags, win_T *oldwin));
- void ex_append __ARGS((exarg_T *eap));
- void ex_change __ARGS((exarg_T *eap));
- void ex_z __ARGS((exarg_T *eap));
-*** ../vim-7.2.040/src/quickfix.c Thu Jul 24 18:44:59 2008
---- src/quickfix.c Wed Nov 12 18:12:00 2008
-***************
-*** 1420,1425 ****
---- 1420,1426 ----
- win_T *win;
- win_T *altwin;
- #endif
-+ win_T *oldwin = curwin;
- int print_message = TRUE;
- int len;
- #ifdef FEAT_FOLDING
-***************
-*** 1744,1750 ****
- }
- else
- ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1,
-! ECMD_HIDE + ECMD_SET_HELP);
- }
- else
- ok = buflist_getfile(qf_ptr->qf_fnum,
---- 1745,1752 ----
- }
- else
- ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1,
-! ECMD_HIDE + ECMD_SET_HELP,
-! oldwin == curwin ? curwin : NULL);
- }
- else
- ok = buflist_getfile(qf_ptr->qf_fnum,
-***************
-*** 2267,2272 ****
---- 2269,2275 ----
- win_T *win;
- tabpage_T *prevtab = curtab;
- buf_T *qf_buf;
-+ win_T *oldwin = curwin;
-
- if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
- {
-***************
-*** 2326,2339 ****
- win->w_llist->qf_refcount++;
- }
-
- if (qf_buf != NULL)
- /* Use the existing quickfix buffer */
- (void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE,
-! ECMD_HIDE + ECMD_OLDBUF);
- else
- {
- /* Create a new quickfix buffer */
-! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE);
- /* switch off 'swapfile' */
- set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
- set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
---- 2329,2344 ----
- win->w_llist->qf_refcount++;
- }
-
-+ if (oldwin != curwin)
-+ oldwin = NULL; /* don't store info when in another window */
- if (qf_buf != NULL)
- /* Use the existing quickfix buffer */
- (void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE,
-! ECMD_HIDE + ECMD_OLDBUF, oldwin);
- else
- {
- /* Create a new quickfix buffer */
-! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, oldwin);
- /* switch off 'swapfile' */
- set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
- set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
-*** ../vim-7.2.040/src/window.c Wed Aug 6 18:32:11 2008
---- src/window.c Wed Nov 12 18:12:37 2008
-***************
-*** 531,537 ****
- # ifdef FEAT_SCROLLBIND
- curwin->w_p_scb = FALSE;
- # endif
-! (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, ECMD_HIDE);
- if (nchar == 'F' && lnum >= 0)
- {
- curwin->w_cursor.lnum = lnum;
---- 531,538 ----
- # ifdef FEAT_SCROLLBIND
- curwin->w_p_scb = FALSE;
- # endif
-! (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
-! ECMD_HIDE, NULL);
- if (nchar == 'F' && lnum >= 0)
- {
- curwin->w_cursor.lnum = lnum;
-*** ../vim-7.2.040/src/version.c Wed Nov 12 16:04:43 2008
---- src/version.c Wed Nov 12 16:54:35 2008
-***************
-*** 678,679 ****
---- 678,681 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 41,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-260. Co-workers have to E-mail you about the fire alarm to get
- you out of the building.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///