Blob Blame History Raw
To: vim-dev@vim.org
Subject: Patch 7.2.178
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.2.178
Problem:    Using negative value for device number might not work.
Solution:   Use a separate flag for whether ffv_dev was set.
Files:	    src/misc2.c


*** ../vim-7.2.177/src/misc2.c	2009-04-29 11:00:09.000000000 +0200
--- src/misc2.c	2009-05-16 21:05:10.000000000 +0200
***************
*** 2841,2847 ****
  get_key_name(i)
      int	    i;
  {
!     if (i >= KEY_NAMES_TABLE_LEN)
  	return NULL;
      return  key_names_table[i].name;
  }
--- 2841,2847 ----
  get_key_name(i)
      int	    i;
  {
!     if (i >= (int)KEY_NAMES_TABLE_LEN)
  	return NULL;
      return  key_names_table[i].name;
  }
***************
*** 3869,3875 ****
       * use filename.
       */
  #ifdef UNIX
!     int			ffv_dev;	/* device number (-1 if not set) */
      ino_t		ffv_ino;	/* inode number */
  #endif
      /* The memory for this struct is allocated according to the length of
--- 3869,3876 ----
       * use filename.
       */
  #ifdef UNIX
!     int			ffv_dev_valid;	/* ffv_dev and ffv_ino were set */
!     dev_t		ffv_dev;	/* device number */
      ino_t		ffv_ino;	/* inode number */
  #endif
      /* The memory for this struct is allocated according to the length of
***************
*** 4059,4071 ****
   * This function silently ignores a few errors, vim_findfile() will have
   * limited functionality then.
   */
- /*ARGSUSED*/
      void *
  vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what,
  					   search_ctx_arg, tagfile, rel_fname)
      char_u	*path;
      char_u	*filename;
!     char_u	*stopdirs;
      int		level;
      int		free_visited;
      int		find_what;
--- 4060,4071 ----
   * This function silently ignores a few errors, vim_findfile() will have
   * limited functionality then.
   */
      void *
  vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what,
  					   search_ctx_arg, tagfile, rel_fname)
      char_u	*path;
      char_u	*filename;
!     char_u	*stopdirs UNUSED;
      int		level;
      int		free_visited;
      int		find_what;
***************
*** 5063,5072 ****
      {
  	if (
  #ifdef UNIX
! 		!url
! 		    ? (vp->ffv_dev == st.st_dev
! 			&& vp->ffv_ino == st.st_ino)
! 		    :
  #endif
  		fnamecmp(vp->ffv_fname, ff_expand_buffer) == 0
  	   )
--- 5063,5071 ----
      {
  	if (
  #ifdef UNIX
! 		!url ? (vp->ffv_dev_valid && vp->ffv_dev == st.st_dev
! 						  && vp->ffv_ino == st.st_ino)
! 		     :
  #endif
  		fnamecmp(vp->ffv_fname, ff_expand_buffer) == 0
  	   )
***************
*** 5091,5104 ****
  #ifdef UNIX
  	if (!url)
  	{
  	    vp->ffv_ino = st.st_ino;
  	    vp->ffv_dev = st.st_dev;
  	    vp->ffv_fname[0] = NUL;
  	}
  	else
  	{
! 	    vp->ffv_ino = 0;
! 	    vp->ffv_dev = -1;
  #endif
  	    STRCPY(vp->ffv_fname, ff_expand_buffer);
  #ifdef UNIX
--- 5090,5103 ----
  #ifdef UNIX
  	if (!url)
  	{
+ 	    vp->ffv_dev_valid = TRUE;
  	    vp->ffv_ino = st.st_ino;
  	    vp->ffv_dev = st.st_dev;
  	    vp->ffv_fname[0] = NUL;
  	}
  	else
  	{
! 	    vp->ffv_dev_valid = FALSE;
  #endif
  	    STRCPY(vp->ffv_fname, ff_expand_buffer);
  #ifdef UNIX
*** ../vim-7.2.177/src/version.c	2009-05-16 17:29:37.000000000 +0200
--- src/version.c	2009-05-16 21:00:15.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
  {   /* Add new patch number below this line */
+ /**/
+     178,
  /**/

-- 
FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing.

 /// 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    ///