Commit 39aa8090 authored by Ralf Habacker's avatar Ralf Habacker
Browse files

_dbus_string_to_lower(): new function

parent 984b372f
......@@ -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
......@@ -2748,6 +2750,41 @@ _dbus_string_validate_ascii (const DBusString *str,
return TRUE;
}
/**
* 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
......
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment