aboutsummaryrefslogtreecommitdiffstats
path: root/git-compat-util.h
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2022-03-17 10:57:43 +0100
committerJohannes Schindelin <johannes.schindelin@gmx.de>2022-03-24 00:31:32 +0100
commit303b876f76c2caccc9a289c4f14a2b2d3850684e (patch)
tree1a7e38217fac02c6f9251b78e1cb4d74101f76c7 /git-compat-util.h
parent898225ba0419f3a2fabdf11750a90031a838f3b3 (diff)
parent9bcd7a8ecac1c9196bc927647bd06c38ec1feabe (diff)
downloadgit-303b876f76c2caccc9a289c4f14a2b2d3850684e.tar.gz
Sync with 2.32.1
* maint-2.32: Git 2.32.1 Git 2.31.2 Git 2.30.3 setup_git_directory(): add an owner check for the top-level directory Add a function to determine whether a path is owned by the current user
Diffstat (limited to 'git-compat-util.h')
-rw-r--r--git-compat-util.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/git-compat-util.h b/git-compat-util.h
index b46605300a..dc52aeaf55 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -127,7 +127,9 @@
/* Approximation of the length of the decimal representation of this type. */
#define decimal_length(x) ((int)(sizeof(x) * 2.56 + 0.5) + 1)
-#if defined(__sun__)
+#ifdef __MINGW64__
+#define _POSIX_C_SOURCE 1
+#elif defined(__sun__)
/*
* On Solaris, when _XOPEN_EXTENDED is set, its header file
* forces the programs to be XPG4v2, defeating any _XOPEN_SOURCE
@@ -395,6 +397,18 @@ static inline int git_offset_1st_component(const char *path)
#define is_valid_path(path) 1
#endif
+#ifndef is_path_owned_by_current_user
+static inline int is_path_owned_by_current_uid(const char *path)
+{
+ struct stat st;
+ if (lstat(path, &st))
+ return 0;
+ return st.st_uid == geteuid();
+}
+
+#define is_path_owned_by_current_user is_path_owned_by_current_uid
+#endif
+
#ifndef find_last_dir_sep
static inline char *git_find_last_dir_sep(const char *path)
{