auto-detect changed prefix and/or changed build flags
[gitweb.git] / path.c
diff --git a/path.c b/path.c
index 5168b5f17dfc63bfaf5386e779806fba052edf49..194e0b553f7a5c4fd99b348228112b308c5419b6 100644 (file)
--- a/path.c
+++ b/path.c
@@ -83,14 +83,19 @@ int git_mkstemp(char *path, size_t len, const char *template)
 }
 
 
-char *safe_strncpy(char *dest, const char *src, size_t n)
+size_t safe_strncpy(char *dest, const char *src, size_t size)
 {
-       strncpy(dest, src, n);
-       dest[n - 1] = '\0';
+       size_t ret = strlen(src);
 
-       return dest;
+       if (size) {
+               size_t len = (ret >= size) ? size - 1 : ret;
+               memcpy(dest, src, len);
+               dest[len] = '\0';
+       }
+       return ret;
 }
 
+
 int validate_symref(const char *path)
 {
        struct stat st;