1 /* vi: set sw=4 ts=4: */
2 /*
3  * Utility routines.
4  *
5  * Copyright (C) many different people.
6  * If you wrote this, please acknowledge your work.
7  *
8  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
9  */
10 #include "libbb.h"
11 
trim(char * s)12 char* FAST_FUNC trim(char *s)
13 {
14 	size_t len = strlen(s);
15 	size_t old = len;
16 
17 	/* trim trailing whitespace */
18 	while (len && isspace(s[len-1]))
19 		--len;
20 
21 	/* trim leading whitespace */
22 	if (len) {
23 		char *nws = skip_whitespace(s);
24 		if ((nws - s) != 0) {
25 			len -= (nws - s);
26 			memmove(s, nws, len);
27 		}
28 	}
29 
30 	s += len;
31 	/* If it was a "const char*" which does not need trimming,
32 	 * avoid superfluous store */
33 	if (old != len)
34 		*s = '\0';
35 
36 	return s;
37 }
38