dovecot-1.2: Added crc32_[str_]more().

dovecot at dovecot.org dovecot at dovecot.org
Sun Oct 12 14:48:22 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/3d2736ece94a
changeset: 8267:3d2736ece94a
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Oct 12 14:40:08 2008 +0300
description:
Added crc32_[str_]more().

diffstat:

2 files changed, 13 insertions(+), 2 deletions(-)
src/lib/crc32.c |   12 ++++++++++--
src/lib/crc32.h |    3 +++

diffs (42 lines):

diff -r 47edfe6ad295 -r 3d2736ece94a src/lib/crc32.c
--- a/src/lib/crc32.c	Sun Oct 12 14:17:51 2008 +0300
+++ b/src/lib/crc32.c	Sun Oct 12 14:40:08 2008 +0300
@@ -60,8 +60,12 @@ static uint32_t crc32tab[256] = {
 
 uint32_t crc32_data(const void *data, size_t size)
 {
+	return crc32_data_more((uint32_t)-1, data, size);
+}
+
+uint32_t crc32_data_more(uint32_t crc, const void *data, size_t size)
+{
 	const uint8_t *p = data, *end = p + size;
-	uint32_t crc = (uint32_t)-1;
 
 	for (; p != end; p++)
 		crc = (crc >> 8) ^ crc32tab[((crc ^ *p) & 0xff)];
@@ -70,8 +74,12 @@ uint32_t crc32_data(const void *data, si
 
 uint32_t crc32_str(const char *str)
 {
+	return crc32_str_more((uint32_t)-1, str);
+}
+
+uint32_t crc32_str_more(uint32_t crc, const char *str)
+{
 	const uint8_t *p = (const uint8_t *)str;
-	uint32_t crc = (uint32_t)-1;
 
 	for (; *p != '\0'; p++)
 		crc = (crc >> 8) ^ crc32tab[((crc ^ *p) & 0xff)];
diff -r 47edfe6ad295 -r 3d2736ece94a src/lib/crc32.h
--- a/src/lib/crc32.h	Sun Oct 12 14:17:51 2008 +0300
+++ b/src/lib/crc32.h	Sun Oct 12 14:40:08 2008 +0300
@@ -4,4 +4,7 @@ uint32_t crc32_data(const void *data, si
 uint32_t crc32_data(const void *data, size_t size) ATTR_PURE;
 uint32_t crc32_str(const char *str) ATTR_PURE;
 
+uint32_t crc32_data_more(uint32_t crc, const void *data, size_t size) ATTR_PURE;
+uint32_t crc32_str_more(uint32_t crc, const char *str) ATTR_PURE;
+
 #endif


More information about the dovecot-cvs mailing list