traceroute: preparatory trivial cleanups
[oweals/busybox.git] / libbb / trim.c
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 tarball for details.
9  */
10
11 #include "libbb.h"
12
13 void FAST_FUNC trim(char *s)
14 {
15         size_t len = strlen(s);
16         size_t lws;
17
18         /* trim trailing whitespace */
19         while (len && isspace(s[len-1]))
20                 --len;
21
22         /* trim leading whitespace */
23         if (len) {
24                 lws = strspn(s, " \n\r\t\v");
25                 if (lws) {
26                         len -= lws;
27                         memmove(s, s + lws, len);
28                 }
29         }
30         s[len] = '\0';
31 }