]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.103 v7.3.103
authorBram Moolenaar <Bram@vim.org>
Fri, 21 Jan 2011 23:11:50 +0000 (00:11 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 21 Jan 2011 23:11:50 +0000 (00:11 +0100)
Problem:    Changing 'fileformat' and then using ":w" in an empty file sets
            the 'modified' option.
Solution:   In unchanged() don't ignore 'ff' for an empty file.

.gitignore
src/misc1.c
src/option.c
src/proto/option.pro
src/undo.c
src/version.c

index a0d4f33f18e51931970f0bcf59d01b1a1d664271..676cd4ec63c8af2db0eee2806bc28378825742a4 100644 (file)
@@ -40,3 +40,11 @@ gvimext.lib
 *.mo
 *.swp
 *~
+
+# Generated by "make test"
+src/po/*.ck 
+src/testdir/mbyte.vim 
+src/testdir/mzscheme.vim 
+src/testdir/small.vim 
+src/testdir/tiny.vim 
+src/testdir/test*.out
index 7235617fce6b64022b1479eafa21e81f0f6f9452..9f3eff157d430e00274b08c21f77b5a84f4aeebe 100644 (file)
@@ -2919,7 +2919,7 @@ unchanged(buf, ff)
     buf_T      *buf;
     int                ff;     /* also reset 'fileformat' */
 {
-    if (buf->b_changed || (ff && file_ff_differs(buf)))
+    if (buf->b_changed || (ff && file_ff_differs(buf, FALSE)))
     {
        buf->b_changed = 0;
        ml_setflags(buf);
index 87eadd04fd85f02f171ce4b9e7a3e585965c8a22..f1fcd69d0fda2af02fa884ccb768d7b95b99dc68 100644 (file)
@@ -11296,16 +11296,19 @@ save_file_ff(buf)
  * 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.
+ * When "ignore_empty" is true don't consider a new, empty buffer to be
+ * changed.
  */
     int
-file_ff_differs(buf)
+file_ff_differs(buf, ignore_empty)
     buf_T      *buf;
+    int                ignore_empty;
 {
     /* 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)
+    if (ignore_empty
+           && (buf->b_flags & BF_NEW)
            && buf->b_ml.ml_line_count == 1
            && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
        return FALSE;
index d14c89b2857e97c22afa2f914d59c6d2ecf6d2e7..15cf2b4f859105f67ee1dcbe8bcf685f8b90be79 100644 (file)
@@ -54,6 +54,6 @@ void change_compatible __ARGS((int on));
 int option_was_set __ARGS((char_u *name));
 int can_bs __ARGS((int what));
 void save_file_ff __ARGS((buf_T *buf));
-int file_ff_differs __ARGS((buf_T *buf));
+int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
 int check_ff_value __ARGS((char_u *p));
 /* vim: set ft=c : */
index ec7b1a4aec7e1f07622549a842dc3833727050cd..af91bd3cdb2ae7c21d128f46d5cb401789e5463b 100644 (file)
@@ -3304,7 +3304,7 @@ bufIsChanged(buf)
 #ifdef FEAT_QUICKFIX
            !bt_dontwrite(buf) &&
 #endif
-           (buf->b_changed || file_ff_differs(buf));
+           (buf->b_changed || file_ff_differs(buf, TRUE));
 }
 
     int
@@ -3314,7 +3314,7 @@ curbufIsChanged()
 #ifdef FEAT_QUICKFIX
        !bt_dontwrite(curbuf) &&
 #endif
-       (curbuf->b_changed || file_ff_differs(curbuf));
+       (curbuf->b_changed || file_ff_differs(curbuf, TRUE));
 }
 
 #if defined(FEAT_EVAL) || defined(PROTO)
index 3f6a8a1405adafcb33d202a3524de38f4d2d668a..107cdea693321198452dcb62995f9e3b492e5374 100644 (file)
@@ -714,6 +714,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    103,
 /**/
     102,
 /**/