[dovecot-cvs] dovecot/src/lib imem.c,1.5,1.6 imem.h,1.5,1.6 istream-data.c,1.1,1.2 istream.h,1.1,1.2 str.c,1.5,1.6 str.h,1.1,1.2 strescape.c,1.1,1.2 strescape.h,1.1,1.2 strfuncs.c,1.26,1.27 strfuncs.h,1.14,1.15
cras at procontrol.fi
cras at procontrol.fi
Sat Jan 4 19:26:32 EET 2003
- Previous message: [dovecot-cvs] dovecot/src/lib-mail message-content-parser.c,1.4,1.5 rfc822-address.c,1.6,1.7 rfc822-date.c,1.9,1.10 rfc822-tokenize.c,1.7,1.8 rfc822-tokenize.h,1.8,1.9
- Next message: [dovecot-cvs] dovecot/src/lib-charset charset-iconv.c,1.11,1.12 charset-utf8.c,1.5,1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/lib
In directory danu:/tmp/cvs-serv386/lib
Modified Files:
imem.c imem.h istream-data.c istream.h str.c str.h strescape.c
strescape.h strfuncs.c strfuncs.h
Log Message:
Use unsigned char* when accessing non-NUL terminating strings. Compiler
warnings would then notify about accidentally passing them to functions which
require them NUL-terminated. Changed a few functions to use void* to avoid
unneeded casting.
Index: imem.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/imem.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- imem.c 22 Dec 2002 07:06:16 -0000 1.5
+++ imem.c 4 Jan 2003 17:26:29 -0000 1.6
@@ -52,12 +52,12 @@
return p_strdup_empty(default_pool, str);
}
-char *i_strdup_until(const char *str, const char *end)
+char *i_strdup_until(const void *str, const void *end)
{
return p_strdup_until(default_pool, str, end);
}
-char *i_strndup(const char *str, size_t max_chars)
+char *i_strndup(const void *str, size_t max_chars)
{
return p_strndup(default_pool, str, max_chars);
}
Index: imem.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib/imem.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- imem.h 22 Dec 2002 07:06:16 -0000 1.5
+++ imem.h 4 Jan 2003 17:26:29 -0000 1.6
@@ -13,8 +13,8 @@
/* string functions */
char *i_strdup(const char *str);
char *i_strdup_empty(const char *str); /* like i_strdup(), but if str == "", return NULL */
-char *i_strdup_until(const char *str, const char *end); /* *end isn't included */
-char *i_strndup(const char *str, size_t max_chars);
+char *i_strdup_until(const void *str, const void *end); /* *end isn't included */
+char *i_strndup(const void *str, size_t max_chars);
char *i_strdup_printf(const char *format, ...) __attr_format__(1, 2);
char *i_strdup_vprintf(const char *format, va_list args);
Index: istream-data.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/istream-data.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- istream-data.c 6 Dec 2002 01:09:22 -0000 1.1
+++ istream-data.c 4 Jan 2003 17:26:29 -0000 1.2
@@ -63,8 +63,7 @@
stream->istream.v_offset += count;
}
-IStream *i_stream_create_from_data(Pool pool, const unsigned char *data,
- size_t size)
+IStream *i_stream_create_from_data(Pool pool, const void *data, size_t size)
{
_IStream *stream;
Index: istream.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib/istream.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- istream.h 6 Dec 2002 01:09:22 -0000 1.1
+++ istream.h 4 Jan 2003 17:26:29 -0000 1.2
@@ -16,8 +16,7 @@
IStream *i_stream_create_mmap(int fd, Pool pool, size_t block_size,
uoff_t start_offset, uoff_t v_size,
int autoclose_fd);
-IStream *i_stream_create_from_data(Pool pool, const unsigned char *data,
- size_t size);
+IStream *i_stream_create_from_data(Pool pool, const void *data, size_t size);
/* Reference counting. References start from 1, so calling i_stream_unref()
destroys the stream if i_stream_ref() is never used. */
Index: str.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/str.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- str.c 27 Dec 2002 16:02:25 -0000 1.5
+++ str.c 4 Jan 2003 17:26:29 -0000 1.6
@@ -67,6 +67,11 @@
return buffer_get_data(str, NULL);
}
+const unsigned char *str_data(const String *str)
+{
+ return buffer_get_data(str, NULL);
+}
+
char *str_c_modifyable(String *str)
{
if (!str_add_nul(str))
@@ -85,12 +90,12 @@
buffer_append(str, cstr, strlen(cstr));
}
-void str_append_n(String *str, const char *cstr, size_t max_len)
+void str_append_n(String *str, const void *cstr, size_t max_len)
{
size_t len;
len = 0;
- while (len < max_len && cstr[len] != '\0')
+ while (len < max_len && ((const char *)cstr)[len] != '\0')
len++;
buffer_append(str, cstr, len);
Index: str.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib/str.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- str.h 21 Dec 2002 22:02:58 -0000 1.1
+++ str.h 4 Jan 2003 17:26:29 -0000 1.2
@@ -5,12 +5,13 @@
String *t_str_new(size_t initial_size);
const char *str_c(String *str);
+const unsigned char *str_data(const String *str);
char *str_c_modifyable(String *str);
size_t str_len(const String *str);
/* Append string/character */
void str_append(String *str, const char *cstr);
-void str_append_n(String *str, const char *cstr, size_t max_len);
+void str_append_n(String *str, const void *cstr, size_t max_len);
void str_append_c(String *str, char chr);
void str_append_str(String *dest, const String *src);
Index: strescape.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/strescape.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- strescape.c 3 Jan 2003 15:57:12 -0000 1.1
+++ strescape.c 4 Jan 2003 17:26:29 -0000 1.2
@@ -51,20 +51,21 @@
return ret;
}
-void str_append_unescaped(String *dest, const char *src, size_t src_size)
+void str_append_unescaped(String *dest, const void *src, size_t src_size)
{
+ const unsigned char *src_c = src;
size_t start = 0, i = 0;
while (i < src_size) {
start = i;
for (; i < src_size; i++) {
- if (src[i] == '\\')
+ if (src_c[i] == '\\')
break;
}
- str_append_n(dest, src + start, i-start);
+ str_append_n(dest, src_c + start, i-start);
- if (src[i] == '\\')
+ if (src_c[i] == '\\')
i++;
start = i;
}
Index: strescape.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib/strescape.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- strescape.h 3 Jan 2003 15:57:12 -0000 1.1
+++ strescape.h 4 Jan 2003 17:26:29 -0000 1.2
@@ -7,7 +7,7 @@
const char *str_escape(const char *str);
/* remove all '\' characters, append to given string */
-void str_append_unescaped(String *dest, const char *src, size_t src_size);
+void str_append_unescaped(String *dest, const void *src, size_t src_size);
/* remove all '\' characters */
void str_unescape(char *str);
Index: strfuncs.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/strfuncs.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- strfuncs.c 3 Jan 2003 15:57:12 -0000 1.26
+++ strfuncs.c 4 Jan 2003 17:26:29 -0000 1.27
@@ -167,21 +167,21 @@
return p_strdup(pool, str);
}
-char *p_strdup_until(Pool pool, const char *start, const char *end)
+char *p_strdup_until(Pool pool, const void *start, const void *end)
{
size_t size;
char *mem;
- i_assert(start <= end);
+ i_assert((const char *) start <= (const char *) end);
- size = (size_t) (end-start);
+ size = (size_t) ((const char *) end - (const char *) start);
mem = p_malloc(pool, size + 1);
memcpy(mem, start, size);
return mem;
}
-char *p_strndup(Pool pool, const char *str, size_t max_chars)
+char *p_strndup(Pool pool, const void *str, size_t max_chars)
{
char *mem;
size_t len;
@@ -192,7 +192,7 @@
return NULL;
len = 0;
- while (str[len] != '\0' && len < max_chars)
+ while (((const char *) str)[len] != '\0' && len < max_chars)
len++;
mem = pool->malloc(pool, len+1);
@@ -316,12 +316,12 @@
return p_strdup_empty(data_stack_pool, str);
}
-const char *t_strdup_until(const char *start, const char *end)
+const char *t_strdup_until(const void *start, const void *end)
{
return p_strdup_until(data_stack_pool, start, end);
}
-const char *t_strndup(const char *str, size_t max_chars)
+const char *t_strndup(const void *str, size_t max_chars)
{
return p_strndup(data_stack_pool, str, max_chars);
}
@@ -460,6 +460,23 @@
for (p = str; *p != '\0'; p++)
*p = i_tolower(*p);
return str;
+}
+
+int memcasecmp(const void *p1, const void *p2, size_t size)
+{
+ const unsigned char *s1 = p1;
+ const unsigned char *s2 = p2;
+ int ret;
+
+ while (size > 0) {
+ ret = i_toupper(*s1) - i_toupper(*s2);
+ if (ret != 0)
+ return ret;
+
+ s1++; s2++; size--;
+ }
+
+ return 0;
}
const char **t_strsplit(const char *data, const char *separators)
Index: strfuncs.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib/strfuncs.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- strfuncs.h 3 Jan 2003 15:57:12 -0000 1.14
+++ strfuncs.h 4 Jan 2003 17:26:29 -0000 1.15
@@ -14,8 +14,8 @@
char *p_strdup(Pool pool, const char *str);
char *p_strdup_empty(Pool pool, const char *str); /* return NULL if str = "" */
-char *p_strdup_until(Pool pool, const char *start, const char *end); /* *end isn't included */
-char *p_strndup(Pool pool, const char *str, size_t max_chars);
+char *p_strdup_until(Pool pool, const void *start, const void *end); /* *end isn't included */
+char *p_strndup(Pool pool, const void *str, size_t max_chars);
char *p_strdup_printf(Pool pool, const char *format, ...) __attr_format__(2, 3);
char *p_strdup_vprintf(Pool pool, const char *format, va_list args);
char *p_strconcat(Pool pool, const char *str1, ...); /* NULL terminated */
@@ -24,8 +24,8 @@
const char *t_strdup(const char *str);
char *t_strdup_noconst(const char *str);
const char *t_strdup_empty(const char *str); /* return NULL if str = "" */
-const char *t_strdup_until(const char *start, const char *end); /* *end isn't included */
-const char *t_strndup(const char *str, size_t max_chars);
+const char *t_strdup_until(const void *start, const void *end); /* *end isn't included */
+const char *t_strndup(const void *str, size_t max_chars);
const char *t_strdup_printf(const char *format, ...) __attr_format__(1, 2);
const char *t_strdup_vprintf(const char *format, va_list args);
const char *t_strconcat(const char *str1, ...); /* NULL terminated */
@@ -49,6 +49,8 @@
char *str_ucase(char *str);
char *str_lcase(char *str);
+
+int memcasecmp(const void *p1, const void *p2, size_t size);
/* seprators is an array of separator characters, not a separator string. */
const char **t_strsplit(const char *data, const char *separators);
- Previous message: [dovecot-cvs] dovecot/src/lib-mail message-content-parser.c,1.4,1.5 rfc822-address.c,1.6,1.7 rfc822-date.c,1.9,1.10 rfc822-tokenize.c,1.7,1.8 rfc822-tokenize.h,1.8,1.9
- Next message: [dovecot-cvs] dovecot/src/lib-charset charset-iconv.c,1.11,1.12 charset-utf8.c,1.5,1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list