#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UNIFY_H
#define H_UTIL_VSERVER_LIB_INTERNAL_UNIFY_H
+#include <sys/stat.h>
#include <stdbool.h>
-struct stat;
-
bool
Unify_unify(char const *src, struct stat const *src_stat,
- char const *dst, struct stat const *dst_stat) NONNULL((1,2,3,4));
+ char const *dst, bool ignore_zero) NONNULL((1,2,3));
+
+bool
+Unify_copy(char const *src, struct stat const *src_stat,
+ char const *dst) NONNULL((1,2,3));
bool
-Unify_deUnify(char const *src, struct stat const *src_stat,
- char const *dst, struct stat const *dst_stat) NONNULL((1,2,3,4));
+Unify_deUnify(char const *dst) NONNULL((1));
+
+bool
+Unify_setTime(char const *dst, struct stat const *stat) NONNULL((1,2));
+
+
+typedef enum { unifyUNSUPPORTED, unifyUINLINKABLE, unifyBUSY } UnifyStatus;
+UnifyStatus
+Unify_isIUnlinkable(char const *filename) NONNULL((1));
#define Unify_isUnified(LHS, RHS) \
((bool)((LHS)->st_dev ==(RHS)->st_dev && \