Windows: Wrap execve so that shell scripts can be invoked.
[gitweb.git] / compat / mingw.h
index 901cfa7c82981a1cfdffca3f73334e1dcf6dfed1..3ddef11edae0eb0a9bc4216134630231228afc00 100644 (file)
@@ -106,6 +106,14 @@ static inline int mingw_mkdir(const char *path, int mode)
 }
 #define mkdir mingw_mkdir
 
+static inline int mingw_unlink(const char *pathname)
+{
+       /* read-only files cannot be removed */
+       chmod(pathname, 0666);
+       return unlink(pathname);
+}
+#define unlink mingw_unlink
+
 static inline int waitpid(pid_t pid, unsigned *status, unsigned options)
 {
        if (options == 0)
@@ -143,6 +151,15 @@ int mingw_open (const char *filename, int oflags, ...);
 char *mingw_getcwd(char *pointer, int len);
 #define getcwd mingw_getcwd
 
+int mingw_rename(const char*, const char*);
+#define rename mingw_rename
+
+void mingw_execvp(const char *cmd, char *const *argv);
+#define execvp mingw_execvp
+
+sig_handler_t mingw_signal(int sig, sig_handler_t handler);
+#define signal mingw_signal
+
 /*
  * git specific compatibility
  */
@@ -150,3 +167,4 @@ char *mingw_getcwd(char *pointer, int len);
 #define has_dos_drive_prefix(path) (isalpha(*(path)) && (path)[1] == ':')
 #define is_dir_sep(c) ((c) == '/' || (c) == '\\')
 #define PATH_SEP ';'
+#define PRIuMAX "I64u"