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