summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2010-02-12 08:47:33 +0100
committerRalf Habacker <ralf.habacker@freenet.de>2010-02-12 08:47:33 +0100
commit39aa8090241b2588eeb2df05880d71abaf8c526e (patch)
treeca4a28d01ac68a3bb5ca06202ac829bb60e17865
parent984b372fd267abe885efbf9aceb95079373a709a (diff)
_dbus_string_to_lower(): new function
-rw-r--r--dbus/dbus-string.c37
-rw-r--r--dbus/dbus-string.h7
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);