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*4882a593Smuzhiyunchar *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*4882a593Smuzhiyunchar *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