fix sha1_pack_index_name()
authorJunio C Hamano <gitster@pobox.com>
Wed, 28 May 2008 16:47:43 +0000 (09:47 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 28 May 2008 17:24:32 +0000 (10:24 -0700)
An earlier commit 633f43e (Remove redundant code, eliminate one static
variable, 2008-05-24) had a thinko (perhaps an eyeno) that broke
sha1_pack_index_name() function.  One symptom of this was that the http
walker is now completely broken.

This should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1_file.c

index 9679040..adcf37c 100644 (file)
@@ -177,7 +177,7 @@ char *sha1_file_name(const unsigned char *sha1)
 }
 
 static char *sha1_get_pack_name(const unsigned char *sha1,
-                               char **name, char **base)
+                               char **name, char **base, const char *which)
 {
        static const char hex[] = "0123456789abcdef";
        char *buf;
@@ -187,7 +187,8 @@ static char *sha1_get_pack_name(const unsigned char *sha1,
                const char *sha1_file_directory = get_object_directory();
                int len = strlen(sha1_file_directory);
                *base = xmalloc(len + 60);
-               sprintf(*base, "%s/pack/pack-1234567890123456789012345678901234567890.pack", sha1_file_directory);
+               sprintf(*base, "%s/pack/pack-1234567890123456789012345678901234567890.%s",
+                       sha1_file_directory, which);
                *name = *base + len + 11;
        }
 
@@ -206,14 +207,14 @@ char *sha1_pack_name(const unsigned char *sha1)
 {
        static char *name, *base;
 
-       return sha1_get_pack_name(sha1, &name, &base);
+       return sha1_get_pack_name(sha1, &name, &base, "pack");
 }
 
 char *sha1_pack_index_name(const unsigned char *sha1)
 {
        static char *name, *base;
 
-       return sha1_get_pack_name(sha1, &name, &base);
+       return sha1_get_pack_name(sha1, &name, &base, "idx");
 }
 
 struct alternate_object_database *alt_odb_list;