[PATCH 08/18] perf string: Simplify ltrim() implementation

From: Arnaldo Carvalho de Melo
Date: Tue Apr 11 2017 - 20:54:16 EST


From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

We don't need to use strlen(), a var, or check for the end explicitely,
isspace('\0') is false:

[acme@jouet c]$ cat ltrim.c
#include <ctype.h>
#include <stdio.h>

static char *ltrim(char *s)
{
while (isspace(*s))
++s;
return s;
}

int main(void)
{
printf("ltrim(\"\")='%s'\n", ltrim(""));
return 0;
}
[acme@jouet c]$ ./ltrim
ltrim("")=''
[acme@jouet c]$

Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Taeung Song <treeze.taeung@xxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-w3nk0x3pai2vojk2ab6kdvaw@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/perf/util/string.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/tools/perf/util/string.c b/tools/perf/util/string.c
index bddca519dd58..e8feb142c9c9 100644
--- a/tools/perf/util/string.c
+++ b/tools/perf/util/string.c
@@ -322,12 +322,8 @@ char *strxfrchar(char *s, char from, char to)
*/
char *ltrim(char *s)
{
- int len = strlen(s);
-
- while (len && isspace(*s)) {
- len--;
+ while (isspace(*s))
s++;
- }

return s;
}
--
2.9.3