Blame view

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