Merge branch 'da/mergetool-diff-order'
[gitweb.git] / builtin / submodule--helper.c
index e3fdc0aa7883e1050f4fe8a165ec6245ab9abc9e..6182eb3197848dc613da1d02280fce0de003addc 100644 (file)
@@ -492,20 +492,16 @@ static int add_possible_reference_from_superproject(
 {
        struct submodule_alternate_setup *sas = sas_cb;
 
-       /* directory name, minus trailing slash */
-       size_t namelen = alt->name - alt->base - 1;
-       struct strbuf name = STRBUF_INIT;
-       strbuf_add(&name, alt->base, namelen);
-
        /*
         * If the alternate object store is another repository, try the
         * standard layout with .git/modules/<name>/objects
         */
-       if (ends_with(name.buf, ".git/objects")) {
+       if (ends_with(alt->path, ".git/objects")) {
                char *sm_alternate;
                struct strbuf sb = STRBUF_INIT;
                struct strbuf err = STRBUF_INIT;
-               strbuf_add(&sb, name.buf, name.len - strlen("objects"));
+               strbuf_add(&sb, alt->path, strlen(alt->path) - strlen("objects"));
+
                /*
                 * We need to end the new path with '/' to mark it as a dir,
                 * otherwise a submodule name containing '/' will be broken
@@ -533,7 +529,6 @@ static int add_possible_reference_from_superproject(
                strbuf_release(&sb);
        }
 
-       strbuf_release(&name);
        return 0;
 }
 
@@ -753,7 +748,7 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
                if (suc->recursive_prefix)
                        strbuf_addf(&sb, "%s/%s", suc->recursive_prefix, ce->name);
                else
-                       strbuf_addf(&sb, "%s", ce->name);
+                       strbuf_addstr(&sb, ce->name);
                strbuf_addf(out, _("Skipping unmerged submodule %s"), sb.buf);
                strbuf_addch(out, '\n');
                goto cleanup;