#define BUP_HAVE_FILE_ATTRS 1
#endif
+#ifndef BUP_USE_PYTHON_UTIME // just for Python 2 now
/*
* Check for incomplete UTIMENSAT support (NetBSD 6), and if so,
* pretend we don't have it.
#if !defined(AT_FDCWD) || !defined(AT_SYMLINK_NOFOLLOW)
#undef HAVE_UTIMENSAT
#endif
+#endif // defined BUP_USE_PYTHON_UTIME
#ifndef FS_NOCOW_FL
// Of course, this assumes it's a bitfield value.
#endif /* def BUP_HAVE_FILE_ATTRS */
+#ifndef BUP_USE_PYTHON_UTIME // just for Python 2 now
#ifndef HAVE_UTIMENSAT
#ifndef HAVE_UTIMES
#error "cannot find utimensat or utimes()"
#error "cannot find utimensat or lutimes()"
#endif
#endif
+#endif // defined BUP_USE_PYTHON_UTIME
#define ASSIGN_PYLONG_TO_INTEGRAL(dest, pylong, overflow) \
({ \
})
+#ifndef BUP_USE_PYTHON_UTIME // just for Python 2 now
#ifdef HAVE_UTIMENSAT
static PyObject *bup_utimensat(PyObject *self, PyObject *args)
}
#endif /* def HAVE_LUTIMES */
+#endif // defined BUP_USE_PYTHON_UTIME
+
#ifdef HAVE_STAT_ST_ATIM
# define BUP_STAT_ATIME_NS(st) (st)->st_atim.tv_nsec
{ "set_linux_file_attr", bup_set_linux_file_attr, METH_VARARGS,
"Set the Linux attributes for the given file." },
#endif
+
+#ifndef BUP_USE_PYTHON_UTIME // just for Python 2 now
#ifdef HAVE_UTIMENSAT
{ "bup_utimensat", bup_utimensat, METH_VARARGS,
"Change path timestamps with nanosecond precision (POSIX)." },
"Change path timestamps with microsecond precision;"
" don't follow symlinks." },
#endif
+#endif // defined BUP_USE_PYTHON_UTIME
+
{ "stat", bup_stat, METH_VARARGS,
"Extended version of stat." },
{ "lstat", bup_lstat, METH_VARARGS,
PyObject_SetAttrString(m, "UINT_MAX", value);
Py_DECREF(value);
}
+
+#ifndef BUP_USE_PYTHON_UTIME // just for Python 2 now
#ifdef HAVE_UTIMENSAT
{
PyObject *value;
Py_DECREF(value);
}
#endif
+#endif // defined BUP_USE_PYTHON_UTIME
+
#ifdef BUP_HAVE_MINCORE_INCORE
{
PyObject *value;