On Wed, Apr 15, 2015 at 12:00:51PM +0200, Peter Krempa wrote:
On Tue, Apr 14, 2015 at 13:28:47 +0200, Ján Tomko wrote:
> Add virStringHasControlChars that checks if the string has
> any control characters other than \t\r\n,
> and virStringStripControlChars that removes them in-place.
> ---
> src/libvirt_private.syms | 2 ++
> src/util/virstring.c | 39 +++++++++++++++++++++++++++++++++++++++
> src/util/virstring.h | 2 ++
> tests/virstringtest.c | 39 +++++++++++++++++++++++++++++++++++++++
> 4 files changed, 82 insertions(+)
> +
> +bool
> +virStringHasControlChars(const char *str)
> +{
> + if (!str)
> + return false;
> +
> + return strcspn(str, control_chars) != strlen(str);
> +}
> + */
> +void
> +virStringStripControlChars(char *str)
> +{
> + size_t len, i, j;
> +
> + if (!virStringHasControlChars(str))
> + return;
The check above calls strlen and iterates through the string looking for
the characters.
Right, the check can do just:
return str[strcspn(str, control_chars)] != '\0';
Jan