From c6b2aab04fd493ab7d5932c79cb71f3bc3d796dd Mon Sep 17 00:00:00 2001 From: Ralf Habacker Date: Mon, 22 Feb 2010 11:16:35 +0100 Subject: [PATCH] dbus_string_tolower_ascii(): new function. --- dbus/dbus-string.c | 37 +++++++++++++++++++++++++++++++++++++ dbus/dbus-string.h | 7 +++++++ 2 files changed, 44 insertions(+), 0 deletions(-) diff --git a/dbus/dbus-string.c b/dbus/dbus-string.c index d9cf18e..3ff028c 100644 --- a/dbus/dbus-string.c +++ b/dbus/dbus-string.c @@ -26,6 +26,8 @@ #include "dbus-string.h" /* we allow a system header here, for speed/convenience */ #include +#include + /* for vsnprintf */ #include #define DBUS_CAN_USE_DBUS_STRING_PRIVATE 1 @@ -2749,6 +2751,41 @@ _dbus_string_validate_ascii (const DBusString *str, } /** + * Converts the given range of the string to lower case. + * + * @param str the string + * @param start first byte index to convert + * @param len number of bytes to convert + * @returns #TRUE if the byte range exists + */ +dbus_bool_t +_dbus_string_tolower_ascii (const DBusString *str, + int start, + int len) +{ + unsigned char *s; + unsigned char *end; + DBUS_CONST_STRING_PREAMBLE (str); + _dbus_assert (start >= 0); + _dbus_assert (start <= real->len); + _dbus_assert (len >= 0); + + if (len > real->len - start) + return FALSE; + + s = real->str + start; + end = s + len; + while (s != end) + { + if (isupper(*s)) + *s = tolower(*s); + ++s; + } + + return TRUE; +} + +/** * Checks that the given range of the string is valid UTF-8. If the * given range is not entirely contained in the string, returns * #FALSE. If the string contains any nul bytes in the given range, diff --git a/dbus/dbus-string.h b/dbus/dbus-string.h index 7c30111..11a94cd 100644 --- a/dbus/dbus-string.h +++ b/dbus/dbus-string.h @@ -43,7 +43,11 @@ typedef struct DBusString DBusString; struct DBusString { +#ifdef _DEBUG + char *dummy1; /**< placeholder */ +#else const void *dummy1; /**< placeholder */ +#endif int dummy2; /**< placeholder */ int dummy3; /**< placeholder */ int dummy4; /**< placeholder */ @@ -284,6 +288,9 @@ dbus_bool_t _dbus_string_hex_decode (const DBusString *source, int *end_return, DBusString *dest, int insert_at); +dbus_bool_t _dbus_string_tolower_ascii (const DBusString *str, + int start, + int len); dbus_bool_t _dbus_string_validate_ascii (const DBusString *str, int start, int len); -- 1.6.4.msysgit.0