All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC/PATCH 1/8] lib: string: Introduce strreplace
Date: Thu, 04 Jun 2015 03:56:07 -0700	[thread overview]
Message-ID: <1433415367.4861.152.camel@perches.com> (raw)
In-Reply-To: <1433410636-26812-2-git-send-email-linux@rasmusvillemoes.dk>

On Thu, 2015-06-04 at 11:37 +0200, Rasmus Villemoes wrote:
> Strings are sometimes sanitized by replacing a certain character
> (often '/') by another (often '!'). In a few places, this is done the
> same way Schlemiel the Painter would do it.

:)

> Others are slightly
> smarter but still do multiple strchr() calls. Introduce strreplace()
> to do this using a single function call and a single pass over the
> string.
> 
> One would expect the return value to be one of three things: void, s,
> or the number of replacements made. I chose the fourth, returning a
> pointer to the end of the string. This is more likely to be useful
> (for example allowing the caller to avoid a strlen call).

You used in one of the follow-on patches too.

> diff --git a/lib/string.c b/lib/string.c
[]
> @@ -849,3 +849,20 @@ void *memchr_inv(const void *start, int c, size_t bytes)
>  	return check_bytes8(start, value, bytes % 8);
>  }
>  EXPORT_SYMBOL(memchr_inv);
> +
> +/**
> + * strreplace - Replace all occurences of character in string

occurrences

> + * @s: The string to operate on
> + * @bad: The character being replaced
> + * @good: The character @bad is replaced with.
> + *
> + * Returns pointer to the nul byte at the end of @s.
> + */
> +char *strreplace(char *s, char bad, char good)
> +{
> +	for (; *s; ++s)
> +		if (*s == bad)
> +			*s = good;
> +	return s;
> +}
> +EXPORT_SYMBOL(strreplace);

Seems sensible, but the name maybe could be be more
explicit as strreplace seems like it should more like
a string substitution rather than a char substitution.

Maybe strsubstchr or something like it (strtranschr?)

Because it's so tiny, perhaps this could be inline
instead of EXPORT_SYMBOL.

Maybe from and to instead of good and bad arguments.



  reply	other threads:[~2015-06-04 10:56 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-04  9:37 [RFC/PATCH 0/8] Introduce strreplace Rasmus Villemoes
2015-06-04  9:37 ` [RFC/PATCH 1/8] lib: string: " Rasmus Villemoes
2015-06-04 10:56   ` Joe Perches [this message]
2015-06-04 22:37     ` Al Viro
2015-06-04 22:45       ` Joe Perches
2015-06-04  9:37 ` [RFC/PATCH 2/8] kernel/trace/trace_events_filter.c: Use strreplace Rasmus Villemoes
2015-06-08 15:49   ` Steven Rostedt
2015-06-04  9:37 ` [RFC/PATCH 3/8] blktrace: use strreplace in do_blk_trace_setup Rasmus Villemoes
2015-06-08 16:03   ` Steven Rostedt
2015-06-04  9:37 ` [RFC/PATCH 4/8] lib/kobject.c: Use strreplace Rasmus Villemoes
2015-06-04 21:56   ` Greg Kroah-Hartman
2015-06-04 22:31   ` Al Viro
2015-06-04  9:37 ` [RFC/PATCH 5/8] drivers/base/core.c: " Rasmus Villemoes
2015-06-04 21:56   ` Greg Kroah-Hartman
2015-06-04 22:28   ` Al Viro
2015-06-04  9:37 ` [RFC/PATCH 6/8] drivers/md/md.c: " Rasmus Villemoes
2015-06-04  9:37 ` [RFC/PATCH 7/8] fs/jbd2/journal.c: " Rasmus Villemoes
2015-06-04  9:37 ` [RFC/PATCH 8/8] fs/ext4/super.c: Use strreplace in ext4_fill_super Rasmus Villemoes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1433415367.4861.152.camel@perches.com \
    --to=joe@perches.com \
    --cc=akpm@linux-foundation.org \
    --cc=daniel@iogearbox.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.