check-docs: do not expect guide pages to correspond to commands
[gitweb.git] / hex.c
diff --git a/hex.c b/hex.c
index 8df2d63728f0405a9b1dc70aa404954dd921b6bc..7850a8879d5e0a00c0e89e197427cafa23d8e865 100644 (file)
--- a/hex.c
+++ b/hex.c
@@ -50,7 +50,7 @@ int hex_to_bytes(unsigned char *binary, const char *hex, size_t len)
 int get_sha1_hex(const char *hex, unsigned char *sha1)
 {
        int i;
-       for (i = 0; i < GIT_SHA1_RAWSZ; i++) {
+       for (i = 0; i < the_hash_algo->rawsz; i++) {
                int val = hex2chr(hex);
                if (val < 0)
                        return -1;
@@ -69,18 +69,19 @@ int parse_oid_hex(const char *hex, struct object_id *oid, const char **end)
 {
        int ret = get_oid_hex(hex, oid);
        if (!ret)
-               *end = hex + GIT_SHA1_HEXSZ;
+               *end = hex + the_hash_algo->hexsz;
        return ret;
 }
 
-char *sha1_to_hex_r(char *buffer, const unsigned char *sha1)
+char *hash_to_hex_algop_r(char *buffer, const unsigned char *hash,
+                         const struct git_hash_algo *algop)
 {
        static const char hex[] = "0123456789abcdef";
        char *buf = buffer;
        int i;
 
-       for (i = 0; i < GIT_SHA1_RAWSZ; i++) {
-               unsigned int val = *sha1++;
+       for (i = 0; i < algop->rawsz; i++) {
+               unsigned int val = *hash++;
                *buf++ = hex[val >> 4];
                *buf++ = hex[val & 0xf];
        }
@@ -89,20 +90,35 @@ char *sha1_to_hex_r(char *buffer, const unsigned char *sha1)
        return buffer;
 }
 
+char *sha1_to_hex_r(char *buffer, const unsigned char *sha1)
+{
+       return hash_to_hex_algop_r(buffer, sha1, &hash_algos[GIT_HASH_SHA1]);
+}
+
 char *oid_to_hex_r(char *buffer, const struct object_id *oid)
 {
-       return sha1_to_hex_r(buffer, oid->hash);
+       return hash_to_hex_algop_r(buffer, oid->hash, the_hash_algo);
 }
 
-char *sha1_to_hex(const unsigned char *sha1)
+char *hash_to_hex_algop(const unsigned char *hash, const struct git_hash_algo *algop)
 {
        static int bufno;
        static char hexbuffer[4][GIT_MAX_HEXSZ + 1];
        bufno = (bufno + 1) % ARRAY_SIZE(hexbuffer);
-       return sha1_to_hex_r(hexbuffer[bufno], sha1);
+       return hash_to_hex_algop_r(hexbuffer[bufno], hash, algop);
+}
+
+char *sha1_to_hex(const unsigned char *sha1)
+{
+       return hash_to_hex_algop(sha1, &hash_algos[GIT_HASH_SHA1]);
+}
+
+char *hash_to_hex(const unsigned char *hash)
+{
+       return hash_to_hex_algop(hash, the_hash_algo);
 }
 
 char *oid_to_hex(const struct object_id *oid)
 {
-       return sha1_to_hex(oid->hash);
+       return hash_to_hex_algop(oid->hash, the_hash_algo);
 }