summaryrefslogtreecommitdiff
path: root/compat/cygwin.c
diff options
context:
space:
mode:
Diffstat (limited to 'compat/cygwin.c')
-rw-r--r--compat/cygwin.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/compat/cygwin.c b/compat/cygwin.c
index b4a51b958c..5428858875 100644
--- a/compat/cygwin.c
+++ b/compat/cygwin.c
@@ -1,6 +1,13 @@
#define WIN32_LEAN_AND_MEAN
+#ifdef CYGWIN_V15_WIN32API
#include "../git-compat-util.h"
#include "win32.h"
+#else
+#include <sys/stat.h>
+#include <sys/errno.h>
+#include "win32.h"
+#include "../git-compat-util.h"
+#endif
#include "../cache.h" /* to read configuration */
static inline void filetime_to_timespec(const FILETIME *ft, struct timespec *ts)
@@ -101,7 +108,7 @@ static int cygwin_stat(const char *path, struct stat *buf)
* and calling git_default_config() from here would break such variables.
*/
static int native_stat = 1;
-static int core_filemode;
+static int core_filemode = 1; /* matches trust_executable_bit default */
static int git_cygwin_config(const char *var, const char *value, void *cb)
{
@@ -114,8 +121,7 @@ static int git_cygwin_config(const char *var, const char *value, void *cb)
static int init_stat(void)
{
- if (have_git_dir()) {
- git_config(git_cygwin_config, NULL);
+ if (have_git_dir() && git_config(git_cygwin_config,NULL)) {
if (!core_filemode && native_stat) {
cygwin_stat_fn = cygwin_stat;
cygwin_lstat_fn = cygwin_lstat;