components/vim/vim72-patches/7.2.170
changeset 198 172fc01ce997
equal deleted inserted replaced
197:fd801ec0737c 198:172fc01ce997
       
     1 To: [email protected]
       
     2 Subject: Patch 7.2.170
       
     3 Fcc: outbox
       
     4 From: Bram Moolenaar <[email protected]>
       
     5 Mime-Version: 1.0
       
     6 Content-Type: text/plain; charset=UTF-8
       
     7 Content-Transfer-Encoding: 8bit
       
     8 ------------
       
     9 
       
    10 Patch 7.2.170
       
    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
       
    14 
       
    15 
       
    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
       
    18 ***************
       
    19 *** 1678,1686 ****
       
    20       buf->b_fname = buf->b_sfname;
       
    21   #ifdef UNIX
       
    22       if (st.st_dev == (dev_T)-1)
       
    23 ! 	buf->b_dev = -1;
       
    24       else
       
    25       {
       
    26   	buf->b_dev = st.st_dev;
       
    27   	buf->b_ino = st.st_ino;
       
    28       }
       
    29 --- 1678,1687 ----
       
    30       buf->b_fname = buf->b_sfname;
       
    31   #ifdef UNIX
       
    32       if (st.st_dev == (dev_T)-1)
       
    33 ! 	buf->b_dev_valid = FALSE;
       
    34       else
       
    35       {
       
    36 + 	buf->b_dev_valid = TRUE;
       
    37   	buf->b_dev = st.st_dev;
       
    38   	buf->b_ino = st.st_ino;
       
    39       }
       
    40 ***************
       
    41 *** 2693,2701 ****
       
    42       buf->b_fname = buf->b_sfname;
       
    43   #ifdef UNIX
       
    44       if (st.st_dev == (dev_T)-1)
       
    45 ! 	buf->b_dev = -1;
       
    46       else
       
    47       {
       
    48   	buf->b_dev = st.st_dev;
       
    49   	buf->b_ino = st.st_ino;
       
    50       }
       
    51 --- 2694,2703 ----
       
    52       buf->b_fname = buf->b_sfname;
       
    53   #ifdef UNIX
       
    54       if (st.st_dev == (dev_T)-1)
       
    55 ! 	buf->b_dev_valid = FALSE;
       
    56       else
       
    57       {
       
    58 + 	buf->b_dev_valid = TRUE;
       
    59   	buf->b_dev = st.st_dev;
       
    60   	buf->b_ino = st.st_ino;
       
    61       }
       
    62 ***************
       
    63 *** 2889,2895 ****
       
    64   	/* If no struct stat given, get it now */
       
    65   	if (stp == NULL)
       
    66   	{
       
    67 ! 	    if (buf->b_dev < 0 || mch_stat((char *)ffname, &st) < 0)
       
    68   		st.st_dev = (dev_T)-1;
       
    69   	    stp = &st;
       
    70   	}
       
    71 --- 2891,2897 ----
       
    72   	/* If no struct stat given, get it now */
       
    73   	if (stp == NULL)
       
    74   	{
       
    75 ! 	    if (!buf->b_dev_valid || mch_stat((char *)ffname, &st) < 0)
       
    76   		st.st_dev = (dev_T)-1;
       
    77   	    stp = &st;
       
    78   	}
       
    79 ***************
       
    80 *** 2926,2936 ****
       
    81   
       
    82       if (buf->b_fname != NULL && mch_stat((char *)buf->b_fname, &st) >= 0)
       
    83       {
       
    84   	buf->b_dev = st.st_dev;
       
    85   	buf->b_ino = st.st_ino;
       
    86       }
       
    87       else
       
    88 ! 	buf->b_dev = -1;
       
    89   }
       
    90   
       
    91   /*
       
    92 --- 2928,2939 ----
       
    93   
       
    94       if (buf->b_fname != NULL && mch_stat((char *)buf->b_fname, &st) >= 0)
       
    95       {
       
    96 + 	buf->b_dev_valid = TRUE;
       
    97   	buf->b_dev = st.st_dev;
       
    98   	buf->b_ino = st.st_ino;
       
    99       }
       
   100       else
       
   101 ! 	buf->b_dev_valid = FALSE;
       
   102   }
       
   103   
       
   104   /*
       
   105 ***************
       
   106 *** 2941,2947 ****
       
   107       buf_T	*buf;
       
   108       struct stat *stp;
       
   109   {
       
   110 !     return (buf->b_dev >= 0
       
   111   	    && stp->st_dev == buf->b_dev
       
   112   	    && stp->st_ino == buf->b_ino);
       
   113   }
       
   114 --- 2944,2950 ----
       
   115       buf_T	*buf;
       
   116       struct stat *stp;
       
   117   {
       
   118 !     return (buf->b_dev_valid
       
   119   	    && stp->st_dev == buf->b_dev
       
   120   	    && stp->st_ino == buf->b_ino);
       
   121   }
       
   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
       
   124 ***************
       
   125 *** 4416,4422 ****
       
   126   # endif
       
   127   	buf_setino(buf);
       
   128       }
       
   129 !     else if (buf->b_dev < 0)
       
   130   	/* Set the inode when creating a new file. */
       
   131   	buf_setino(buf);
       
   132   #endif
       
   133 --- 4416,4422 ----
       
   134   # endif
       
   135   	buf_setino(buf);
       
   136       }
       
   137 !     else if (!buf->b_dev_valid)
       
   138   	/* Set the inode when creating a new file. */
       
   139   	buf_setino(buf);
       
   140   #endif
       
   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
       
   143 ***************
       
   144 *** 1166,1172 ****
       
   145       char_u	*b_fname;	/* current file name */
       
   146   
       
   147   #ifdef UNIX
       
   148 !     dev_t	b_dev;		/* device number (-1 if not set) */
       
   149       ino_t	b_ino;		/* inode number */
       
   150   #endif
       
   151   #ifdef FEAT_CW_EDITOR
       
   152 --- 1166,1173 ----
       
   153       char_u	*b_fname;	/* current file name */
       
   154   
       
   155   #ifdef UNIX
       
   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 */
       
   159   #endif
       
   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
       
   163 ***************
       
   164 *** 678,679 ****
       
   165 --- 678,681 ----
       
   166   {   /* Add new patch number below this line */
       
   167 + /**/
       
   168 +     170,
       
   169   /**/
       
   170 
       
   171 -- 
       
   172 A special cleaning ordinance bans housewives from hiding dirt and dust under a
       
   173 rug in a dwelling.
       
   174 		[real standing law in Pennsylvania, United States of America]
       
   175 
       
   176  /// Bram Moolenaar -- [email protected] -- 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    ///