1 /*
2  *  linux/lib/string.c
3  *
4  *  Copyright (C) 1991, 1992  Linus Torvalds
5  */
6 
7 #ifdef USE_HOSTCC
8 #include <stdio.h>
9 #endif
10 
11 #include <linux/ctype.h>
12 #include <linux/string.h>
13 
14 /**
15  * skip_spaces - Removes leading whitespace from @str.
16  * @str: The string to be stripped.
17  *
18  * Returns a pointer to the first non-whitespace character in @str.
19  */
skip_spaces(const char * str)20 char *skip_spaces(const char *str)
21 {
22 	while (isspace(*str))
23 		++str;
24 	return (char *)str;
25 }
26 
27 /**
28  * strim - Removes leading and trailing whitespace from @s.
29  * @s: The string to be stripped.
30  *
31  * Note that the first trailing whitespace is replaced with a %NUL-terminator
32  * in the given string @s. Returns a pointer to the first non-whitespace
33  * character in @s.
34  */
strim(char * s)35 char *strim(char *s)
36 {
37 	size_t size;
38 	char *end;
39 
40 	s = skip_spaces(s);
41 	size = strlen(s);
42 	if (!size)
43 		return s;
44 
45 	end = s + size - 1;
46 	while (end >= s && isspace(*end))
47 		end--;
48 	*(end + 1) = '\0';
49 
50 	return s;
51 }
52