install-reloc: Support multi-binary installation.
[gnulib.git] / lib / same-inode.h
index 4b89dd1..3843b07 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine whether two stat buffers refer to the same file.
 
-   Copyright (C) 2006, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #ifndef SAME_INODE_H
 # define SAME_INODE_H 1
 
-/* Perform a tri-state query on whether STAT_BUF_1 and STAT_BUF_2
-   represent the same file.  Return 1 for equal, 0 for distinct, and
-   -1 for indeterminate (the latter is generally possible only on
-   mingw).  Algorithms that use this macro must be prepared to handle
-   the indeterminate case without wrong results.  For example, if an
-   optimization is possible if two files are the same but unsafe if
-   distinct, use SAME_INODE()==1; whereas for an optimization that is
-   possible only for distinct files, use !SAME_INODE().  */
-
-# define SAME_INODE(Stat_buf_1, Stat_buf_2) \
-   (((Stat_buf_1).st_ino == (Stat_buf_2).st_ino         \
-     && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)     \
-    ? 1 - 2 * !(Stat_buf_1).st_ino : 0)
+# ifdef __VMS
+#  define SAME_INODE(a, b)             \
+    ((a).st_ino[0] == (b).st_ino[0]    \
+     && (a).st_ino[1] == (b).st_ino[1] \
+     && (a).st_ino[2] == (b).st_ino[2] \
+     && (a).st_dev == (b).st_dev)
+# else
+#  define SAME_INODE(a, b)    \
+    ((a).st_ino == (b).st_ino \
+     && (a).st_dev == (b).st_dev)
+# endif
 
 #endif