Code

Merge branch 'ew/rebase'
[git.git] / git-compat-util.h
index 12ce6590bb926de2d27eee9520dd2017dd34554e..93f558056dec457570bf2867dc6c75cd5891d2f2 100644 (file)
@@ -9,6 +9,8 @@
 #endif
 #endif
 
+#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
+
 #include <unistd.h>
 #include <stdio.h>
 #include <sys/stat.h>
@@ -38,6 +40,10 @@ extern void usage(const char *err) NORETURN;
 extern void die(const char *err, ...) NORETURN __attribute__((format (printf, 1, 2)));
 extern int error(const char *err, ...) __attribute__((format (printf, 1, 2)));
 
+extern void set_usage_routine(void (*routine)(const char *err) NORETURN);
+extern void set_die_routine(void (*routine)(const char *err, va_list params) NORETURN);
+extern void set_error_routine(void (*routine)(const char *err, va_list params));
+
 #ifdef NO_MMAP
 
 #ifndef PROT_READ
@@ -63,11 +69,21 @@ extern int gitfakemunmap(void *start, size_t length);
 extern int gitsetenv(const char *, const char *, int);
 #endif
 
+#ifdef NO_UNSETENV
+#define unsetenv gitunsetenv
+extern void gitunsetenv(const char *);
+#endif
+
 #ifdef NO_STRCASESTR
 #define strcasestr gitstrcasestr
 extern char *gitstrcasestr(const char *haystack, const char *needle);
 #endif
 
+#ifdef NO_STRLCPY
+#define strlcpy gitstrlcpy
+extern size_t gitstrlcpy(char *, const char *, size_t);
+#endif
+
 static inline void *xmalloc(size_t size)
 {
        void *ret = malloc(size);