ash: move hashvar() calls into findvar()
[busybox-git.git] / libbb / trim.c
blobe360ba138bad0062da4670a4424454d4ab0d91c1
1 /* vi: set sw=4 ts=4: */
2 /*
3 * Utility routines.
5 * Copyright (C) many different people.
6 * If you wrote this, please acknowledge your work.
8 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
9 */
10 #include "libbb.h"
12 char* FAST_FUNC trim(char *s)
14 size_t len = strlen(s);
15 size_t old = len;
17 /* trim trailing whitespace */
18 while (len && isspace(s[len-1]))
19 --len;
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);
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';
36 return s;