mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 03:58:17 +00:00 
			
		
		
		
	isspace() and strim() are not in the typical user-mode string.h, so put them in a separate compilation unit so that they can be built into tools that need them independent of the other common string functions. This allows code shared by u-boot and the linux user-mode tools to link. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
		
			
				
	
	
		
			52 lines
		
	
	
		
			929 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			929 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  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;
 | |
| }
 |