OSDN Git Service

perf string: Simplify ltrim() implementation
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 7 Apr 2017 15:19:38 +0000 (12:19 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 11 Apr 2017 18:23:39 +0000 (15:23 -0300)
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@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Taeung Song <treeze.taeung@gmail.com>
Link: http://lkml.kernel.org/n/tip-w3nk0x3pai2vojk2ab6kdvaw@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/string.c

index bddca51..e8feb14 100644 (file)
@@ -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;
 }