1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
To: vim_dev@googlegroups.com
Subject: Patch 7.3.103
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.103
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.
Files: src/misc1.c, src/option.c, src/proto/option.pro, src/undo.c
*** ../vim-7.3.102/src/misc1.c 2010-12-30 12:30:26.000000000 +0100
--- src/misc1.c 2011-01-22 00:00:24.000000000 +0100
***************
*** 2919,2925 ****
buf_T *buf;
int ff; /* also reset 'fileformat' */
{
! if (buf->b_changed || (ff && file_ff_differs(buf)))
{
buf->b_changed = 0;
ml_setflags(buf);
--- 2919,2925 ----
buf_T *buf;
int ff; /* also reset 'fileformat' */
{
! if (buf->b_changed || (ff && file_ff_differs(buf, FALSE)))
{
buf->b_changed = 0;
ml_setflags(buf);
*** ../vim-7.3.102/src/option.c 2010-12-02 21:43:10.000000000 +0100
--- src/option.c 2011-01-22 00:03:40.000000000 +0100
***************
*** 11296,11311 ****
* 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.
*/
int
! file_ff_differs(buf)
buf_T *buf;
{
/* 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)
&& buf->b_ml.ml_line_count == 1
&& *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
return FALSE;
--- 11296,11314 ----
* 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.
! * When "ignore_empty" is true don't consider a new, empty buffer to be
! * changed.
*/
int
! 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 (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;
*** ../vim-7.3.102/src/proto/option.pro 2010-08-15 21:57:28.000000000 +0200
--- src/proto/option.pro 2011-01-22 00:04:35.000000000 +0100
***************
*** 54,59 ****
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 check_ff_value __ARGS((char_u *p));
/* vim: set ft=c : */
--- 54,59 ----
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 ignore_empty));
int check_ff_value __ARGS((char_u *p));
/* vim: set ft=c : */
*** ../vim-7.3.102/src/undo.c 2010-12-17 18:06:00.000000000 +0100
--- src/undo.c 2011-01-22 00:03:58.000000000 +0100
***************
*** 3304,3310 ****
#ifdef FEAT_QUICKFIX
!bt_dontwrite(buf) &&
#endif
! (buf->b_changed || file_ff_differs(buf));
}
int
--- 3304,3310 ----
#ifdef FEAT_QUICKFIX
!bt_dontwrite(buf) &&
#endif
! (buf->b_changed || file_ff_differs(buf, TRUE));
}
int
***************
*** 3314,3320 ****
#ifdef FEAT_QUICKFIX
!bt_dontwrite(curbuf) &&
#endif
! (curbuf->b_changed || file_ff_differs(curbuf));
}
#if defined(FEAT_EVAL) || defined(PROTO)
--- 3314,3320 ----
#ifdef FEAT_QUICKFIX
!bt_dontwrite(curbuf) &&
#endif
! (curbuf->b_changed || file_ff_differs(curbuf, TRUE));
}
#if defined(FEAT_EVAL) || defined(PROTO)
*** ../vim-7.3.102/src/version.c 2011-01-17 20:08:03.000000000 +0100
--- src/version.c 2011-01-22 00:07:56.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 103,
/**/
--
In a world without fences, who needs Gates and Windows?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|