summaryrefslogtreecommitdiff
path: root/src/util/filebuf.h
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2023-04-22 23:12:00 +0100
committerEdward Thomson <ethomson@edwardthomson.com>2023-04-22 23:17:32 +0100
commit190a4c55df72b32adf4d60f77cbc47276b74f84b (patch)
tree896d6d41c2ea6305992bd646bbbe79a3fdb5f6fe /src/util/filebuf.h
parente288f874a3a73ef31f88bb524f6d25d5ff3c5a3a (diff)
parent8a62616f43fe5ea37d41296f40293ff97aa88cfa (diff)
downloadlibgit2-190a4c55df72b32adf4d60f77cbc47276b74f84b.tar.gz
Merge remote-tracking branch 'origin/main' into shallow-clone-network
Diffstat (limited to 'src/util/filebuf.h')
-rw-r--r--src/util/filebuf.h25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/util/filebuf.h b/src/util/filebuf.h
index 4a61ae4e3..e23b9ed2a 100644
--- a/src/util/filebuf.h
+++ b/src/util/filebuf.h
@@ -17,13 +17,14 @@
# define GIT_FILEBUF_THREADS
#endif
-#define GIT_FILEBUF_HASH_CONTENTS (1 << 0)
-#define GIT_FILEBUF_APPEND (1 << 2)
+#define GIT_FILEBUF_HASH_SHA1 (1 << 0)
+#define GIT_FILEBUF_HASH_SHA256 (1 << 1)
+#define GIT_FILEBUF_APPEND (1 << 2)
#define GIT_FILEBUF_CREATE_LEADING_DIRS (1 << 3)
-#define GIT_FILEBUF_TEMPORARY (1 << 4)
-#define GIT_FILEBUF_DO_NOT_BUFFER (1 << 5)
-#define GIT_FILEBUF_FSYNC (1 << 6)
-#define GIT_FILEBUF_DEFLATE_SHIFT (7)
+#define GIT_FILEBUF_TEMPORARY (1 << 4)
+#define GIT_FILEBUF_DO_NOT_BUFFER (1 << 5)
+#define GIT_FILEBUF_FSYNC (1 << 6)
+#define GIT_FILEBUF_DEFLATE_SHIFT (7)
#define GIT_FILELOCK_EXTENSION ".lock\0"
#define GIT_FILELOCK_EXTLENGTH 6
@@ -91,4 +92,16 @@ int git_filebuf_hash(unsigned char *out, git_filebuf *file);
int git_filebuf_flush(git_filebuf *file);
int git_filebuf_stats(time_t *mtime, size_t *size, git_filebuf *file);
+GIT_INLINE(int) git_filebuf_hash_flags(git_hash_algorithm_t algorithm)
+{
+ switch (algorithm) {
+ case GIT_HASH_ALGORITHM_SHA1:
+ return GIT_FILEBUF_HASH_SHA1;
+ case GIT_HASH_ALGORITHM_SHA256:
+ return GIT_FILEBUF_HASH_SHA256;
+ default:
+ return 0;
+ }
+}
+
#endif