summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sha1_file.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/sha1_file.c b/sha1_file.c
index 011532a709..da7b922605 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -178,10 +178,12 @@ static void fill_sha1_path(char *pathbuf, const unsigned char *sha1)
for (i = 0; i < 20; i++) {
static char hex[] = "0123456789abcdef";
unsigned int val = sha1[i];
- char *pos = pathbuf + i*2 + (i > 0);
- *pos++ = hex[val >> 4];
- *pos = hex[val & 0xf];
+ *pathbuf++ = hex[val >> 4];
+ *pathbuf++ = hex[val & 0xf];
+ if (!i)
+ *pathbuf++ = '/';
}
+ *pathbuf = '\0';
}
const char *sha1_file_name(const unsigned char *sha1)
@@ -198,8 +200,6 @@ const char *sha1_file_name(const unsigned char *sha1)
die("insanely long object directory %s", objdir);
memcpy(buf, objdir, len);
buf[len] = '/';
- buf[len+3] = '/';
- buf[len+42] = '\0';
fill_sha1_path(buf + len + 1, sha1);
return buf;
}
@@ -406,8 +406,6 @@ struct alternate_object_database *alloc_alt_odb(const char *dir)
ent->name = ent->scratch + dirlen + 1;
ent->scratch[dirlen] = '/';
- ent->scratch[dirlen + 3] = '/';
- ent->scratch[entlen-1] = 0;
return ent;
}