Skip to content
Snippets Groups Projects
linux_string.c 929 B
Newer Older
  • Learn to ignore specific revisions
  • /*
     *  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;
    }