Since "new" is a keyword in C++, this breaks compilation when string.h is included in a C++ file. For example, this affects VirtualBox Guest Additions.
https://www.virtualbox.org/pipermail/vbox-dev/2015-August/013368.html Signed-off-by: Matt Ullman <[email protected]> --- include/linux/string.h | 2 +- lib/string.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/string.h b/include/linux/string.h index 26b6f6a..410696d 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -115,7 +115,7 @@ extern int memcmp(const void *,const void *,__kernel_size_t); extern void * memchr(const void *,int,__kernel_size_t); #endif void *memchr_inv(const void *s, int c, size_t n); -char *strreplace(char *s, char old, char new); +char *strreplace(char *s, char oldstr, char newstr); extern void kfree_const(const void *x); diff --git a/lib/string.c b/lib/string.c index ed83562..bab5004 100644 --- a/lib/string.c +++ b/lib/string.c @@ -939,16 +939,16 @@ EXPORT_SYMBOL(memchr_inv); /** * strreplace - Replace all occurrences of character in string. * @s: The string to operate on. - * @old: The character being replaced. - * @new: The character @old is replaced with. + * @oldstr: The character being replaced. + * @newstr: The character @oldstr is replaced with. * * Returns pointer to the nul byte at the end of @s. */ -char *strreplace(char *s, char old, char new) +char *strreplace(char *s, char oldstr, char newstr) { for (; *s; ++s) - if (*s == old) - *s = new; + if (*s == oldstr) + *s = newstr; return s; } EXPORT_SYMBOL(strreplace); -- 2.9.0

