From 5eecd3ca21e4138447c8ef58dd7f3b55943b1a12 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 16 May 2009 21:15:08 +0000 Subject: [PATCH] [7.2.179] Using negative value for device number might not work. Problem: Using negative value for device number might not work. Solution: Use a separate flag for whether sn_dev was set. Patch 7.2.179 --- src/ex_cmds2.c | 8 +++++--- src/version.c | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index bfa322d8..1108ab96 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -28,7 +28,8 @@ typedef struct scriptitem_S { char_u *sn_name; # ifdef UNIX - int sn_dev; + int sn_dev_valid; + dev_t sn_dev; ino_t sn_ino; # endif # ifdef FEAT_PROFILE @@ -3049,7 +3050,7 @@ do_source(fname, check_other, is_vimrc) /* Compare dev/ino when possible, it catches symbolic * links. Also compare file names, the inode may change * when the file was edited. */ - ((stat_ok && si->sn_dev != -1) + ((stat_ok && si->sn_dev_valid) && (si->sn_dev == st.st_dev && si->sn_ino == st.st_ino)) || # endif @@ -3076,11 +3077,12 @@ do_source(fname, check_other, is_vimrc) # ifdef UNIX if (stat_ok) { + si->sn_dev_valid = TRUE; si->sn_dev = st.st_dev; si->sn_ino = st.st_ino; } else - si->sn_dev = -1; + si->sn_dev_valid = FALSE; # endif /* Allocate the local script variables to use for this script. */ diff --git a/src/version.c b/src/version.c index 1a7c803e..388065ed 100644 --- a/src/version.c +++ b/src/version.c @@ -677,6 +677,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 179, +/**/ 178, /**/ 177, -- 2.11.4.GIT