http: update base URLs when we see redirects
[gitweb.git] / pathspec.c
index 02d33444608ec65d02f45623e1ddf694f61747bd..6ea0867493ad3e8cfd613dd57fa5ac9649507b47 100644 (file)
@@ -32,7 +32,7 @@ void add_pathspec_matches_against_index(const char **pathspec,
        if (!num_unmatched)
                return;
        for (i = 0; i < active_nr; i++) {
-               struct cache_entry *ce = active_cache[i];
+               const struct cache_entry *ce = active_cache[i];
                match_pathspec(pathspec, ce->name, ce_namelen(ce), 0, seen);
        }
 }
@@ -67,7 +67,7 @@ const char *check_path_for_gitlink(const char *path)
 {
        int i, path_len = strlen(path);
        for (i = 0; i < active_nr; i++) {
-               struct cache_entry *ce = active_cache[i];
+               const struct cache_entry *ce = active_cache[i];
                if (S_ISGITLINK(ce->ce_mode)) {
                        int ce_len = ce_namelen(ce);
                        if (path_len <= ce_len || path[ce_len] != '/' ||
@@ -87,3 +87,15 @@ const char *check_path_for_gitlink(const char *path)
        }
        return path;
 }
+
+/*
+ * Dies if the given path refers to a file inside a symlinked
+ * directory in the index.
+ */
+void die_if_path_beyond_symlink(const char *path, const char *prefix)
+{
+       if (has_symlink_leading_path(path, strlen(path))) {
+               int len = prefix ? strlen(prefix) : 0;
+               die(_("'%s' is beyond a symbolic link"), path + len);
+       }
+}