diff options
Diffstat (limited to 'gvim/vim-7.2/7.2.041')
-rw-r--r-- | gvim/vim-7.2/7.2.041 | 729 |
1 files changed, 0 insertions, 729 deletions
diff --git a/gvim/vim-7.2/7.2.041 b/gvim/vim-7.2/7.2.041 deleted file mode 100644 index b562206..0000000 --- a/gvim/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 /// |