4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
11 Problem: Using b_dev while it was not set. (Dominique Pelle)
12 Solution: Add the b_dev_valid flag.
13 Files: src/buffer.c, src/fileio.c, src/structs.h
16 *** ../vim-7.2.169/src/buffer.c 2009-05-13 12:46:36.000000000 +0200
17 --- src/buffer.c 2009-05-13 20:23:51.000000000 +0200
20 buf->b_fname = buf->b_sfname;
22 if (st.st_dev == (dev_T)-1)
26 buf->b_dev = st.st_dev;
27 buf->b_ino = st.st_ino;
30 buf->b_fname = buf->b_sfname;
32 if (st.st_dev == (dev_T)-1)
33 ! buf->b_dev_valid = FALSE;
36 + buf->b_dev_valid = TRUE;
37 buf->b_dev = st.st_dev;
38 buf->b_ino = st.st_ino;
42 buf->b_fname = buf->b_sfname;
44 if (st.st_dev == (dev_T)-1)
48 buf->b_dev = st.st_dev;
49 buf->b_ino = st.st_ino;
52 buf->b_fname = buf->b_sfname;
54 if (st.st_dev == (dev_T)-1)
55 ! buf->b_dev_valid = FALSE;
58 + buf->b_dev_valid = TRUE;
59 buf->b_dev = st.st_dev;
60 buf->b_ino = st.st_ino;
64 /* If no struct stat given, get it now */
67 ! if (buf->b_dev < 0 || mch_stat((char *)ffname, &st) < 0)
68 st.st_dev = (dev_T)-1;
72 /* If no struct stat given, get it now */
75 ! if (!buf->b_dev_valid || mch_stat((char *)ffname, &st) < 0)
76 st.st_dev = (dev_T)-1;
82 if (buf->b_fname != NULL && mch_stat((char *)buf->b_fname, &st) >= 0)
84 buf->b_dev = st.st_dev;
85 buf->b_ino = st.st_ino;
94 if (buf->b_fname != NULL && mch_stat((char *)buf->b_fname, &st) >= 0)
96 + buf->b_dev_valid = TRUE;
97 buf->b_dev = st.st_dev;
98 buf->b_ino = st.st_ino;
101 ! buf->b_dev_valid = FALSE;
110 ! return (buf->b_dev >= 0
111 && stp->st_dev == buf->b_dev
112 && stp->st_ino == buf->b_ino);
118 ! return (buf->b_dev_valid
119 && stp->st_dev == buf->b_dev
120 && stp->st_ino == buf->b_ino);
122 *** ../vim-7.2.169/src/fileio.c 2009-04-29 18:01:23.000000000 +0200
123 --- src/fileio.c 2009-05-13 20:24:08.000000000 +0200
129 ! else if (buf->b_dev < 0)
130 /* Set the inode when creating a new file. */
137 ! else if (!buf->b_dev_valid)
138 /* Set the inode when creating a new file. */
141 *** ../vim-7.2.169/src/structs.h 2009-05-13 18:54:14.000000000 +0200
142 --- src/structs.h 2009-05-13 20:24:54.000000000 +0200
145 char_u *b_fname; /* current file name */
148 ! dev_t b_dev; /* device number (-1 if not set) */
149 ino_t b_ino; /* inode number */
151 #ifdef FEAT_CW_EDITOR
153 char_u *b_fname; /* current file name */
156 ! int b_dev_valid; /* TRUE when b_dev has a valid number */
157 ! dev_t b_dev; /* device number */
158 ino_t b_ino; /* inode number */
160 #ifdef FEAT_CW_EDITOR
161 *** ../vim-7.2.169/src/version.c 2009-05-13 18:54:14.000000000 +0200
162 --- src/version.c 2009-05-13 20:43:22.000000000 +0200
166 { /* Add new patch number below this line */
172 A special cleaning ordinance bans housewives from hiding dirt and dust under a
174 [real standing law in Pennsylvania, United States of America]
176 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
177 /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
178 \\\ download, build and distribute -- http://www.A-A-P.org ///
179 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///