[Bf-blender-cvs] [01d8029] master: BLI_md5: add a utility function to 'translate' raw 16bytes digest into a nice 32chars hexadecimal string.
Bastien Montagne
noreply at git.blender.org
Fri Jun 20 16:53:07 CEST 2014
Commit: 01d802976fc89b97a5a67a0dacdaf414db2651ca
Author: Bastien Montagne
Date: Fri Jun 20 16:18:26 2014 +0200
https://developer.blender.org/rB01d802976fc89b97a5a67a0dacdaf414db2651ca
BLI_md5: add a utility function to 'translate' raw 16bytes digest into a nice 32chars hexadecimal string.
That kind of stuff belongs to BLI, not specialized code like thumbs.c
===================================================================
M source/blender/blenlib/BLI_md5.h
M source/blender/blenlib/intern/md5.c
M source/blender/imbuf/intern/thumbs.c
===================================================================
diff --git a/source/blender/blenlib/BLI_md5.h b/source/blender/blenlib/BLI_md5.h
index 8ce479b..6a760f5 100644
--- a/source/blender/blenlib/BLI_md5.h
+++ b/source/blender/blenlib/BLI_md5.h
@@ -41,5 +41,7 @@ void *md5_buffer(const char *buffer, size_t len, void *resblock);
int md5_stream(FILE *stream, void *resblock);
+char *md5_to_hexdigest(void *resblock, char r_hex_digest[33]);
+
#endif
diff --git a/source/blender/blenlib/intern/md5.c b/source/blender/blenlib/intern/md5.c
index 4122f64..3d1a9cd 100644
--- a/source/blender/blenlib/intern/md5.c
+++ b/source/blender/blenlib/intern/md5.c
@@ -389,3 +389,20 @@ void *md5_buffer(const char *buffer, size_t len, void *resblock)
/* Put result in desired memory area. */
return md5_read_ctx(&ctx, resblock);
}
+
+char *md5_to_hexdigest(void *resblock, char r_hex_digest[33])
+{
+ static const char hex_map[17] = "0123456789abcdef";
+ const unsigned char *p;
+ char *q;
+ short len;
+
+ for (q = r_hex_digest, p = (const unsigned char *)resblock, len = 0; len < 16; ++p, ++len) {
+ const unsigned char c = *p;
+ *q++ = hex_map[c >> 4];
+ *q++ = hex_map[c & 15];
+ }
+ *q = '\0';
+
+ return r_hex_digest;
+}
diff --git a/source/blender/imbuf/intern/thumbs.c b/source/blender/imbuf/intern/thumbs.c
index 236d410..41784b1 100644
--- a/source/blender/imbuf/intern/thumbs.c
+++ b/source/blender/imbuf/intern/thumbs.c
@@ -258,9 +258,7 @@ static void thumbname_from_uri(const char *uri, char *thumb, const int thumb_len
md5_buffer(uri, strlen(uri), digest);
hexdigest[0] = '\0';
- to_hex_char(hexdigest, digest, 16);
- hexdigest[32] = '\0';
- BLI_snprintf(thumb, thumb_len, "%s.png", hexdigest);
+ BLI_snprintf(thumb, thumb_len, "%s.png", md5_to_hexdigest(digest, hexdigest));
// printf("%s: '%s' --> '%s'\n", __func__, uri, thumb);
}
More information about the Bf-blender-cvs
mailing list