90 lines
2.6 KiB
Plaintext
90 lines
2.6 KiB
Plaintext
To: vim-dev@vim.org
|
|
Subject: patch 7.0.195
|
|
Fcc: outbox
|
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
|
Mime-Version: 1.0
|
|
Content-Type: text/plain; charset=ISO-8859-1
|
|
Content-Transfer-Encoding: 8bit
|
|
------------
|
|
|
|
Patch 7.0.195
|
|
Problem: When a buffer is modified and 'autowriteall' is set, ":quit"
|
|
results in an endless loop when there is a conversion error while
|
|
writing. (Nikolai Weibull)
|
|
Solution: Make autowrite() return FAIL if the buffer is still changed after
|
|
writing it.
|
|
Files: src/ex_cmds2.c
|
|
|
|
|
|
*** ../vim-7.0.194/src/ex_cmds2.c Tue Jan 16 21:31:38 2007
|
|
--- src/ex_cmds2.c Tue Feb 13 06:11:28 2007
|
|
***************
|
|
*** 1242,1255 ****
|
|
buf_T *buf;
|
|
int forceit;
|
|
{
|
|
if (!(p_aw || p_awa) || !p_write
|
|
#ifdef FEAT_QUICKFIX
|
|
! /* never autowrite a "nofile" or "nowrite" buffer */
|
|
! || bt_dontwrite(buf)
|
|
#endif
|
|
! || (!forceit && buf->b_p_ro) || buf->b_ffname == NULL)
|
|
return FAIL;
|
|
! return buf_write_all(buf, forceit);
|
|
}
|
|
|
|
/*
|
|
--- 1242,1263 ----
|
|
buf_T *buf;
|
|
int forceit;
|
|
{
|
|
+ int r;
|
|
+
|
|
if (!(p_aw || p_awa) || !p_write
|
|
#ifdef FEAT_QUICKFIX
|
|
! /* never autowrite a "nofile" or "nowrite" buffer */
|
|
! || bt_dontwrite(buf)
|
|
#endif
|
|
! || (!forceit && buf->b_p_ro) || buf->b_ffname == NULL)
|
|
return FAIL;
|
|
! r = buf_write_all(buf, forceit);
|
|
!
|
|
! /* Writing may succeed but the buffer still changed, e.g., when there is a
|
|
! * conversion error. We do want to return FAIL then. */
|
|
! if (buf_valid(buf) && bufIsChanged(buf))
|
|
! r = FAIL;
|
|
! return r;
|
|
}
|
|
|
|
/*
|
|
***************
|
|
*** 1472,1477 ****
|
|
--- 1480,1487 ----
|
|
if (buf == NULL) /* No buffers changed */
|
|
return FALSE;
|
|
|
|
+ /* Try auto-writing the buffer. If this fails but the buffer no
|
|
+ * longer exists it's not changed, that's OK. */
|
|
if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
|
|
break; /* didn't save - still changes */
|
|
}
|
|
*** ../vim-7.0.194/src/version.c Tue Feb 13 04:03:05 2007
|
|
--- src/version.c Tue Feb 13 06:18:28 2007
|
|
***************
|
|
*** 668,669 ****
|
|
--- 668,671 ----
|
|
{ /* Add new patch number below this line */
|
|
+ /**/
|
|
+ 195,
|
|
/**/
|
|
|
|
--
|
|
hundred-and-one symptoms of being an internet addict:
|
|
115. You are late picking up your kid from school and try to explain
|
|
to the teacher you were stuck in Web traffic.
|
|
|
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
|
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|