summaryrefslogtreecommitdiffstats
path: root/vi/vim-7.2/7.2.132
diff options
context:
space:
mode:
Diffstat (limited to 'vi/vim-7.2/7.2.132')
-rw-r--r--vi/vim-7.2/7.2.132268
1 files changed, 0 insertions, 268 deletions
diff --git a/vi/vim-7.2/7.2.132 b/vi/vim-7.2/7.2.132
deleted file mode 100644
index 69e19ee..0000000
--- a/vi/vim-7.2/7.2.132
+++ /dev/null
@@ -1,268 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.2.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.2.132
-Problem: When changing directory during a SwapExists autocmd freed memory
- may be accessed. (Dominique Pelle)
-Solution: Add the allbuf_lock flag.
-Files: src/ex_getln.c, src/globals.h, src/fileio.c,
- src/proto/ex_getln.pro
-
-
-*** ../vim-7.2.131/src/ex_getln.c Mon Mar 2 02:11:09 2009
---- src/ex_getln.c Mon Mar 2 00:53:39 2009
-***************
-*** 2000,2007 ****
-
- #if defined(FEAT_AUTOCMD) || defined(PROTO)
- /*
-! * Check if "curbuf_lock" is set and return TRUE when it is and give an error
-! * message.
- */
- int
- curbuf_locked()
---- 2000,2007 ----
-
- #if defined(FEAT_AUTOCMD) || defined(PROTO)
- /*
-! * Check if "curbuf_lock" or "allbuf_lock" is set and return TRUE when it is
-! * and give an error message.
- */
- int
- curbuf_locked()
-***************
-*** 2011,2016 ****
---- 2011,2031 ----
- EMSG(_("E788: Not allowed to edit another buffer now"));
- return TRUE;
- }
-+ return allbuf_locked();
-+ }
-+
-+ /*
-+ * Check if "allbuf_lock" is set and return TRUE when it is and give an error
-+ * message.
-+ */
-+ int
-+ allbuf_locked()
-+ {
-+ if (allbuf_lock > 0)
-+ {
-+ EMSG(_("E811: Not allowed to change buffer information now"));
-+ return TRUE;
-+ }
- return FALSE;
- }
- #endif
-*** ../vim-7.2.131/src/globals.h Mon Mar 2 02:44:54 2009
---- src/globals.h Mon Mar 2 02:40:16 2009
-***************
-*** 619,624 ****
---- 619,629 ----
- EXTERN int curbuf_lock INIT(= 0);
- /* non-zero when the current buffer can't be
- * changed. Used for FileChangedRO. */
-+ EXTERN int allbuf_lock INIT(= 0);
-+ /* non-zero when no buffer name can be
-+ * changed, no buffer can be deleted and
-+ * current directory can't be changed.
-+ * Used for SwapExists et al. */
- #endif
- #ifdef FEAT_EVAL
- # define HAVE_SANDBOX
-*** ../vim-7.2.131/src/fileio.c Wed Dec 31 16:20:54 2008
---- src/fileio.c Sun Mar 1 23:37:10 2009
-***************
-*** 69,75 ****
- static int au_find_group __ARGS((char_u *name));
-
- # define AUGROUP_DEFAULT -1 /* default autocmd group */
-! # define AUGROUP_ERROR -2 /* errornouse autocmd group */
- # define AUGROUP_ALL -3 /* all autocmd groups */
- #endif
-
---- 69,75 ----
- static int au_find_group __ARGS((char_u *name));
-
- # define AUGROUP_DEFAULT -1 /* default autocmd group */
-! # define AUGROUP_ERROR -2 /* erroneous autocmd group */
- # define AUGROUP_ALL -3 /* all autocmd groups */
- #endif
-
-***************
-*** 144,150 ****
- # endif
- #endif
- static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
-!
-
- void
- filemess(buf, name, s, attr)
---- 144,152 ----
- # endif
- #endif
- static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
-! #ifdef FEAT_AUTOCMD
-! static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name");
-! #endif
-
- void
- filemess(buf, name, s, attr)
-***************
-*** 295,300 ****
---- 297,315 ----
- int conv_restlen = 0; /* nr of bytes in conv_rest[] */
- #endif
-
-+ #ifdef FEAT_AUTOCMD
-+ /* Remember the initial values of curbuf, curbuf->b_ffname and
-+ * curbuf->b_fname to detect whether they are altered as a result of
-+ * executing nasty autocommands. Also check if "fname" and "sfname"
-+ * point to one of these values. */
-+ buf_T *old_curbuf = curbuf;
-+ char_u *old_b_ffname = curbuf->b_ffname;
-+ char_u *old_b_fname = curbuf->b_fname;
-+ int using_b_ffname = (fname == curbuf->b_ffname)
-+ || (sfname == curbuf->b_ffname);
-+ int using_b_fname = (fname == curbuf->b_fname)
-+ || (sfname == curbuf->b_fname);
-+ #endif
- write_no_eol_lnum = 0; /* in case it was set by the previous read */
-
- /*
-***************
-*** 589,595 ****
---- 604,624 ----
- #ifdef FEAT_QUICKFIX
- if (!bt_dontwrite(curbuf))
- #endif
-+ {
- check_need_swap(newfile);
-+ #ifdef FEAT_AUTOCMD
-+ /* SwapExists autocommand may mess things up */
-+ if (curbuf != old_curbuf
-+ || (using_b_ffname
-+ && (old_b_ffname != curbuf->b_ffname))
-+ || (using_b_fname
-+ && (old_b_fname != curbuf->b_fname)))
-+ {
-+ EMSG(_(e_auchangedbuf));
-+ return FAIL;
-+ }
-+ #endif
-+ }
- if (dir_of_file_exists(fname))
- filemess(curbuf, sfname, (char_u *)_("[New File]"), 0);
- else
-***************
-*** 668,673 ****
---- 697,713 ----
- #endif
- {
- check_need_swap(newfile);
-+ #ifdef FEAT_AUTOCMD
-+ if (!read_stdin && (curbuf != old_curbuf
-+ || (using_b_ffname && (old_b_ffname != curbuf->b_ffname))
-+ || (using_b_fname && (old_b_fname != curbuf->b_fname))))
-+ {
-+ EMSG(_(e_auchangedbuf));
-+ if (!read_buffer)
-+ close(fd);
-+ return FAIL;
-+ }
-+ #endif
- #ifdef UNIX
- /* Set swap file protection bits after creating it. */
- if (swap_mode > 0 && curbuf->b_ml.ml_mfp->mf_fname != NULL)
-***************
-*** 698,704 ****
- {
- int m = msg_scroll;
- int n = msg_scrolled;
-- buf_T *old_curbuf = curbuf;
-
- /*
- * The file must be closed again, the autocommands may want to change
---- 738,743 ----
-***************
-*** 740,747 ****
---- 779,791 ----
- /*
- * Don't allow the autocommands to change the current buffer.
- * Try to re-open the file.
-+ *
-+ * Don't allow the autocommands to change the buffer name either
-+ * (cd for example) if it invalidates fname or sfname.
- */
- if (!read_stdin && (curbuf != old_curbuf
-+ || (using_b_ffname && (old_b_ffname != curbuf->b_ffname))
-+ || (using_b_fname && (old_b_fname != curbuf->b_fname))
- || (fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0)) < 0))
- {
- --no_wait_return;
-***************
-*** 6320,6326 ****
-
- if (!stuff_empty() || global_busy || !typebuf_typed()
- #ifdef FEAT_AUTOCMD
-! || autocmd_busy || curbuf_lock > 0
- #endif
- )
- need_check_timestamps = TRUE; /* check later */
---- 6364,6370 ----
-
- if (!stuff_empty() || global_busy || !typebuf_typed()
- #ifdef FEAT_AUTOCMD
-! || autocmd_busy || curbuf_lock > 0 || allbuf_lock > 0
- #endif
- )
- need_check_timestamps = TRUE; /* check later */
-***************
-*** 6522,6529 ****
---- 6566,6575 ----
- set_vim_var_string(VV_FCS_REASON, (char_u *)reason, -1);
- set_vim_var_string(VV_FCS_CHOICE, (char_u *)"", -1);
- # endif
-+ ++allbuf_lock;
- n = apply_autocmds(EVENT_FILECHANGEDSHELL,
- buf->b_fname, buf->b_fname, FALSE, buf);
-+ --allbuf_lock;
- busy = FALSE;
- if (n)
- {
-*** ../vim-7.2.131/src/proto/ex_getln.pro Fri Nov 28 10:59:57 2008
---- src/proto/ex_getln.pro Sun Mar 1 00:27:12 2009
-***************
-*** 4,9 ****
---- 4,10 ----
- int text_locked __ARGS((void));
- void text_locked_msg __ARGS((void));
- int curbuf_locked __ARGS((void));
-+ int allbuf_locked __ARGS((void));
- char_u *getexline __ARGS((int c, void *dummy, int indent));
- char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent));
- int cmdline_overstrike __ARGS((void));
-*** ../vim-7.2.131/src/version.c Wed Mar 4 04:11:56 2009
---- src/version.c Thu Mar 5 03:08:54 2009
-***************
-*** 678,679 ****
---- 678,681 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 132,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-168. You have your own domain name.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///