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)12char* 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