/* Yes, Virginia, it had better be unsigned */
unsigned char c1, c2;
- c1 = 0; c2 = 0;
+ c1 = c2 = 0;
if (len) {
do {
c1 = *s1;
dest++;
while ((*dest++ = *src++) != '\0')
;
-
return tmp;
}
EXPORT_SYMBOL(strcat);
EXPORT_SYMBOL(strnchr);
#endif
+/**
+ * strstrip - Removes leading and trailing whitespace from @s.
+ * @s: The string to be stripped.
+ *
+ * Note that the first trailing whitespace is replaced with a %NUL-terminator
+ * in the given string @s. Returns a pointer to the first non-whitespace
+ * character in @s.
+ */
+char *strstrip(char *s)
+{
+ size_t size;
+ char *end;
+
+ size = strlen(s);
+
+ if (!size)
+ return s;
+
+ end = s + size - 1;
+ while (end >= s && isspace(*end))
+ end--;
+ *(end + 1) = '\0';
+
+ while (*s && isspace(*s))
+ s++;
+
+ return s;
+}
+EXPORT_SYMBOL(strstrip);
+
#ifndef __HAVE_ARCH_STRLEN
/**
* strlen - Find the length of a string
EXPORT_SYMBOL(strspn);
#endif
+#ifndef __HAVE_ARCH_STRCSPN
/**
* strcspn - Calculate the length of the initial substring of @s which does
* not contain letters in @reject
return count;
}
EXPORT_SYMBOL(strcspn);
+#endif
#ifndef __HAVE_ARCH_STRPBRK
/**
*/
void *memset(void *s, int c, size_t count)
{
- char *xs = (char *)s;
+ char *xs = s;
while (count--)
*xs++ = c;
*/
void *memcpy(void *dest, const void *src, size_t count)
{
- char *tmp = (char *)dest;
- char *s = (char *)src;
+ char *tmp = dest;
+ const char *s = src;
while (count--)
*tmp++ = *s++;
*/
void *memmove(void *dest, const void *src, size_t count)
{
- char *tmp, *s;
+ char *tmp;
+ const char *s;
if (dest <= src) {
- tmp = (char *)dest;
- s = (char *)src;
+ tmp = dest;
+ s = src;
while (count--)
*tmp++ = *s++;
} else {
- tmp = (char *)dest + count;
- s = (char *)src + count;
+ tmp = dest;
+ tmp += count;
+ s = src;
+ s += count;
while (count--)
*--tmp = *--s;
}
*/
void *memscan(void *addr, int c, size_t size)
{
- unsigned char *p = (unsigned char *)addr;
+ unsigned char *p = addr;
while (size) {
if (*p == c)