Karsten Hopp 81c285
To: vim-dev@vim.org
Karsten Hopp 81c285
Subject: Patch 7.2.178
Karsten Hopp 81c285
Fcc: outbox
Karsten Hopp 81c285
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 81c285
Mime-Version: 1.0
Karsten Hopp 81c285
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 81c285
Content-Transfer-Encoding: 8bit
Karsten Hopp 81c285
------------
Karsten Hopp 81c285
Karsten Hopp 81c285
Patch 7.2.178
Karsten Hopp 81c285
Problem:    Using negative value for device number might not work.
Karsten Hopp 81c285
Solution:   Use a separate flag for whether ffv_dev was set.
Karsten Hopp 81c285
Files:	    src/misc2.c
Karsten Hopp 81c285
Karsten Hopp 81c285
Karsten Hopp 81c285
*** ../vim-7.2.177/src/misc2.c	2009-04-29 11:00:09.000000000 +0200
Karsten Hopp 81c285
--- src/misc2.c	2009-05-16 21:05:10.000000000 +0200
Karsten Hopp 81c285
***************
Karsten Hopp 81c285
*** 2841,2847 ****
Karsten Hopp 81c285
  get_key_name(i)
Karsten Hopp 81c285
      int	    i;
Karsten Hopp 81c285
  {
Karsten Hopp 81c285
!     if (i >= KEY_NAMES_TABLE_LEN)
Karsten Hopp 81c285
  	return NULL;
Karsten Hopp 81c285
      return  key_names_table[i].name;
Karsten Hopp 81c285
  }
Karsten Hopp 81c285
--- 2841,2847 ----
Karsten Hopp 81c285
  get_key_name(i)
Karsten Hopp 81c285
      int	    i;
Karsten Hopp 81c285
  {
Karsten Hopp 81c285
!     if (i >= (int)KEY_NAMES_TABLE_LEN)
Karsten Hopp 81c285
  	return NULL;
Karsten Hopp 81c285
      return  key_names_table[i].name;
Karsten Hopp 81c285
  }
Karsten Hopp 81c285
***************
Karsten Hopp 81c285
*** 3869,3875 ****
Karsten Hopp 81c285
       * use filename.
Karsten Hopp 81c285
       */
Karsten Hopp 81c285
  #ifdef UNIX
Karsten Hopp 81c285
!     int			ffv_dev;	/* device number (-1 if not set) */
Karsten Hopp 81c285
      ino_t		ffv_ino;	/* inode number */
Karsten Hopp 81c285
  #endif
Karsten Hopp 81c285
      /* The memory for this struct is allocated according to the length of
Karsten Hopp 81c285
--- 3869,3876 ----
Karsten Hopp 81c285
       * use filename.
Karsten Hopp 81c285
       */
Karsten Hopp 81c285
  #ifdef UNIX
Karsten Hopp 81c285
!     int			ffv_dev_valid;	/* ffv_dev and ffv_ino were set */
Karsten Hopp 81c285
!     dev_t		ffv_dev;	/* device number */
Karsten Hopp 81c285
      ino_t		ffv_ino;	/* inode number */
Karsten Hopp 81c285
  #endif
Karsten Hopp 81c285
      /* The memory for this struct is allocated according to the length of
Karsten Hopp 81c285
***************
Karsten Hopp 81c285
*** 4059,4071 ****
Karsten Hopp 81c285
   * This function silently ignores a few errors, vim_findfile() will have
Karsten Hopp 81c285
   * limited functionality then.
Karsten Hopp 81c285
   */
Karsten Hopp 81c285
- /*ARGSUSED*/
Karsten Hopp 81c285
      void *
Karsten Hopp 81c285
  vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what,
Karsten Hopp 81c285
  					   search_ctx_arg, tagfile, rel_fname)
Karsten Hopp 81c285
      char_u	*path;
Karsten Hopp 81c285
      char_u	*filename;
Karsten Hopp 81c285
!     char_u	*stopdirs;
Karsten Hopp 81c285
      int		level;
Karsten Hopp 81c285
      int		free_visited;
Karsten Hopp 81c285
      int		find_what;
Karsten Hopp 81c285
--- 4060,4071 ----
Karsten Hopp 81c285
   * This function silently ignores a few errors, vim_findfile() will have
Karsten Hopp 81c285
   * limited functionality then.
Karsten Hopp 81c285
   */
Karsten Hopp 81c285
      void *
Karsten Hopp 81c285
  vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what,
Karsten Hopp 81c285
  					   search_ctx_arg, tagfile, rel_fname)
Karsten Hopp 81c285
      char_u	*path;
Karsten Hopp 81c285
      char_u	*filename;
Karsten Hopp 81c285
!     char_u	*stopdirs UNUSED;
Karsten Hopp 81c285
      int		level;
Karsten Hopp 81c285
      int		free_visited;
Karsten Hopp 81c285
      int		find_what;
Karsten Hopp 81c285
***************
Karsten Hopp 81c285
*** 5063,5072 ****
Karsten Hopp 81c285
      {
Karsten Hopp 81c285
  	if (
Karsten Hopp 81c285
  #ifdef UNIX
Karsten Hopp 81c285
! 		!url
Karsten Hopp 81c285
! 		    ? (vp->ffv_dev == st.st_dev
Karsten Hopp 81c285
! 			&& vp->ffv_ino == st.st_ino)
Karsten Hopp 81c285
! 		    :
Karsten Hopp 81c285
  #endif
Karsten Hopp 81c285
  		fnamecmp(vp->ffv_fname, ff_expand_buffer) == 0
Karsten Hopp 81c285
  	   )
Karsten Hopp 81c285
--- 5063,5071 ----
Karsten Hopp 81c285
      {
Karsten Hopp 81c285
  	if (
Karsten Hopp 81c285
  #ifdef UNIX
Karsten Hopp 81c285
! 		!url ? (vp->ffv_dev_valid && vp->ffv_dev == st.st_dev
Karsten Hopp 81c285
! 						  && vp->ffv_ino == st.st_ino)
Karsten Hopp 81c285
! 		     :
Karsten Hopp 81c285
  #endif
Karsten Hopp 81c285
  		fnamecmp(vp->ffv_fname, ff_expand_buffer) == 0
Karsten Hopp 81c285
  	   )
Karsten Hopp 81c285
***************
Karsten Hopp 81c285
*** 5091,5104 ****
Karsten Hopp 81c285
  #ifdef UNIX
Karsten Hopp 81c285
  	if (!url)
Karsten Hopp 81c285
  	{
Karsten Hopp 81c285
  	    vp->ffv_ino = st.st_ino;
Karsten Hopp 81c285
  	    vp->ffv_dev = st.st_dev;
Karsten Hopp 81c285
  	    vp->ffv_fname[0] = NUL;
Karsten Hopp 81c285
  	}
Karsten Hopp 81c285
  	else
Karsten Hopp 81c285
  	{
Karsten Hopp 81c285
! 	    vp->ffv_ino = 0;
Karsten Hopp 81c285
! 	    vp->ffv_dev = -1;
Karsten Hopp 81c285
  #endif
Karsten Hopp 81c285
  	    STRCPY(vp->ffv_fname, ff_expand_buffer);
Karsten Hopp 81c285
  #ifdef UNIX
Karsten Hopp 81c285
--- 5090,5103 ----
Karsten Hopp 81c285
  #ifdef UNIX
Karsten Hopp 81c285
  	if (!url)
Karsten Hopp 81c285
  	{
Karsten Hopp 81c285
+ 	    vp->ffv_dev_valid = TRUE;
Karsten Hopp 81c285
  	    vp->ffv_ino = st.st_ino;
Karsten Hopp 81c285
  	    vp->ffv_dev = st.st_dev;
Karsten Hopp 81c285
  	    vp->ffv_fname[0] = NUL;
Karsten Hopp 81c285
  	}
Karsten Hopp 81c285
  	else
Karsten Hopp 81c285
  	{
Karsten Hopp 81c285
! 	    vp->ffv_dev_valid = FALSE;
Karsten Hopp 81c285
  #endif
Karsten Hopp 81c285
  	    STRCPY(vp->ffv_fname, ff_expand_buffer);
Karsten Hopp 81c285
  #ifdef UNIX
Karsten Hopp 81c285
*** ../vim-7.2.177/src/version.c	2009-05-16 17:29:37.000000000 +0200
Karsten Hopp 81c285
--- src/version.c	2009-05-16 21:00:15.000000000 +0200
Karsten Hopp 81c285
***************
Karsten Hopp 81c285
*** 678,679 ****
Karsten Hopp 81c285
--- 678,681 ----
Karsten Hopp 81c285
  {   /* Add new patch number below this line */
Karsten Hopp 81c285
+ /**/
Karsten Hopp 81c285
+     178,
Karsten Hopp 81c285
  /**/
Karsten Hopp 81c285
Karsten Hopp 81c285
-- 
Karsten Hopp 81c285
FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing.
Karsten Hopp 81c285
Karsten Hopp 81c285
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 81c285
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 81c285
\\\        download, build and distribute -- http://www.A-A-P.org        ///
Karsten Hopp 81c285
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///