xref: /openbmc/u-boot/lib/linux_string.c (revision 13bdce8f8cadf07bc81d7000a04e48f3028de543)
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   */
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   */
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