diff options
| author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-07-08 13:06:57 -0300 | 
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-07-08 13:06:57 -0300 | 
| commit | e3b22a65348ab54261a98b6bc90ecf8977ff8ebf (patch) | |
| tree | 81c517d6f0e5585be7af5ffa1a4d4136b1f4a9c6 /tools/perf/util/string.c | |
| parent | 05c78468a60f2fd961cd0a0c01c27f288bf81204 (diff) | |
| parent | 552a031ba12a4236be107a5b082a399237758a5d (diff) | |
Merge remote-tracking branch 'tip/perf/core' into perf/urgent
To pick up fixes.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/string.c')
| -rw-r--r-- | tools/perf/util/string.c | 169 | 
1 files changed, 10 insertions, 159 deletions
diff --git a/tools/perf/util/string.c b/tools/perf/util/string.c index d8bfd0c4d2cb..52603876c548 100644 --- a/tools/perf/util/string.c +++ b/tools/perf/util/string.c @@ -4,7 +4,16 @@  #include <linux/string.h>  #include <stdlib.h> -#include "sane_ctype.h" +#include <linux/ctype.h> + +const char *graph_dotted_line = +	"---------------------------------------------------------------------" +	"---------------------------------------------------------------------" +	"---------------------------------------------------------------------"; +const char *dots = +	"....................................................................." +	"....................................................................." +	".....................................................................";  #define K 1024LL  /* @@ -60,109 +69,6 @@ out_err:  	return -1;  } -/* - * Helper function for splitting a string into an argv-like array. - * originally copied from lib/argv_split.c - */ -static const char *skip_sep(const char *cp) -{ -	while (*cp && isspace(*cp)) -		cp++; - -	return cp; -} - -static const char *skip_arg(const char *cp) -{ -	while (*cp && !isspace(*cp)) -		cp++; - -	return cp; -} - -static int count_argc(const char *str) -{ -	int count = 0; - -	while (*str) { -		str = skip_sep(str); -		if (*str) { -			count++; -			str = skip_arg(str); -		} -	} - -	return count; -} - -/** - * argv_free - free an argv - * @argv - the argument vector to be freed - * - * Frees an argv and the strings it points to. - */ -void argv_free(char **argv) -{ -	char **p; -	for (p = argv; *p; p++) { -		free(*p); -		*p = NULL; -	} - -	free(argv); -} - -/** - * argv_split - split a string at whitespace, returning an argv - * @str: the string to be split - * @argcp: returned argument count - * - * Returns an array of pointers to strings which are split out from - * @str.  This is performed by strictly splitting on white-space; no - * quote processing is performed.  Multiple whitespace characters are - * considered to be a single argument separator.  The returned array - * is always NULL-terminated.  Returns NULL on memory allocation - * failure. - */ -char **argv_split(const char *str, int *argcp) -{ -	int argc = count_argc(str); -	char **argv = calloc(argc + 1, sizeof(*argv)); -	char **argvp; - -	if (argv == NULL) -		goto out; - -	if (argcp) -		*argcp = argc; - -	argvp = argv; - -	while (*str) { -		str = skip_sep(str); - -		if (*str) { -			const char *p = str; -			char *t; - -			str = skip_arg(str); - -			t = strndup(p, str-p); -			if (t == NULL) -				goto fail; -			*argvp++ = t; -		} -	} -	*argvp = NULL; - -out: -	return argv; - -fail: -	argv_free(argv); -	return NULL; -} -  /* Character class matching */  static bool __match_charclass(const char *pat, char c, const char **npat)  { @@ -303,61 +209,6 @@ int strtailcmp(const char *s1, const char *s2)  	return 0;  } -/** - * strxfrchar - Locate and replace character in @s - * @s:    The string to be searched/changed. - * @from: Source character to be replaced. - * @to:   Destination character. - * - * Return pointer to the changed string. - */ -char *strxfrchar(char *s, char from, char to) -{ -	char *p = s; - -	while ((p = strchr(p, from)) != NULL) -		*p++ = to; - -	return s; -} - -/** - * ltrim - Removes leading whitespace from @s. - * @s: The string to be stripped. - * - * Return pointer to the first non-whitespace character in @s. - */ -char *ltrim(char *s) -{ -	while (isspace(*s)) -		s++; - -	return s; -} - -/** - * rtrim - Removes trailing whitespace from @s. - * @s: The string to be stripped. - * - * Note that the first trailing whitespace is replaced with a %NUL-terminator - * in the given string @s. Returns @s. - */ -char *rtrim(char *s) -{ -	size_t size = strlen(s); -	char *end; - -	if (!size) -		return s; - -	end = s + size - 1; -	while (end >= s && isspace(*end)) -		end--; -	*(end + 1) = '\0'; - -	return s; -} -  char *asprintf_expr_inout_ints(const char *var, bool in, size_t nints, int *ints)  {  	/*  | 
