Message ID | 20230501165450.15352-7-surenb@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Memory allocation profiling | expand |
On Mon, 1 May 2023 09:54:16 -0700 Suren Baghdasaryan <surenb@google.com> wrote: > From: Kent Overstreet <kent.overstreet@linux.dev> > > This adds a new helper which is like strsep, except that it skips empty > tokens. > > Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> > Signed-off-by: Suren Baghdasaryan <surenb@google.com> > --- > include/linux/string.h | 1 + > lib/string.c | 19 +++++++++++++++++++ > 2 files changed, 20 insertions(+) > > diff --git a/include/linux/string.h b/include/linux/string.h > index c062c581a98b..6cd5451c262c 100644 > --- a/include/linux/string.h > +++ b/include/linux/string.h > @@ -96,6 +96,7 @@ extern char * strpbrk(const char *,const char *); > #ifndef __HAVE_ARCH_STRSEP > extern char * strsep(char **,const char *); > #endif > +extern char *strsep_no_empty(char **, const char *); > #ifndef __HAVE_ARCH_STRSPN > extern __kernel_size_t strspn(const char *,const char *); > #endif > diff --git a/lib/string.c b/lib/string.c > index 3d55ef890106..dd4914baf45a 100644 > --- a/lib/string.c > +++ b/lib/string.c > @@ -520,6 +520,25 @@ char *strsep(char **s, const char *ct) > EXPORT_SYMBOL(strsep); > #endif > > +/** > + * strsep_no_empt - Split a string into tokens, but don't return empty tokens ^^^^ Typo: strsep_no_empty Petr T
diff --git a/include/linux/string.h b/include/linux/string.h index c062c581a98b..6cd5451c262c 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -96,6 +96,7 @@ extern char * strpbrk(const char *,const char *); #ifndef __HAVE_ARCH_STRSEP extern char * strsep(char **,const char *); #endif +extern char *strsep_no_empty(char **, const char *); #ifndef __HAVE_ARCH_STRSPN extern __kernel_size_t strspn(const char *,const char *); #endif diff --git a/lib/string.c b/lib/string.c index 3d55ef890106..dd4914baf45a 100644 --- a/lib/string.c +++ b/lib/string.c @@ -520,6 +520,25 @@ char *strsep(char **s, const char *ct) EXPORT_SYMBOL(strsep); #endif +/** + * strsep_no_empt - Split a string into tokens, but don't return empty tokens + * @s: The string to be searched + * @ct: The characters to search for + * + * strsep() updates @s to point after the token, ready for the next call. + */ +char *strsep_no_empty(char **s, const char *ct) +{ + char *ret; + + do { + ret = strsep(s, ct); + } while (ret && !*ret); + + return ret; +} +EXPORT_SYMBOL_GPL(strsep_no_empty); + #ifndef __HAVE_ARCH_MEMSET /** * memset - Fill a region of memory with the given value