diff options
| author | Ralf Habacker <ralf.habacker@freenet.de> | 2010-02-12 08:47:33 +0100 |
|---|---|---|
| committer | Ralf Habacker <ralf.habacker@freenet.de> | 2010-02-12 08:47:33 +0100 |
| commit | 39aa8090241b2588eeb2df05880d71abaf8c526e (patch) | |
| tree | ca4a28d01ac68a3bb5ca06202ac829bb60e17865 | |
| parent | 984b372fd267abe885efbf9aceb95079373a709a (diff) | |
_dbus_string_to_lower(): new function
| -rw-r--r-- | dbus/dbus-string.c | 37 | ||||
| -rw-r--r-- | 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 d9cf18ed..227f1411 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 <string.h> +#include <ctype.h> + /* for vsnprintf */ #include <stdio.h> #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_to_lower (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 7c301119..dbea3330 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_to_lower (const DBusString *str, + int start, + int len); dbus_bool_t _dbus_string_validate_ascii (const DBusString *str, int start, int len); |
