[PATCH 1/5] lib: string: retire deprecated strtok() in favor of reentrant strsep()

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Sep 14 09:37:44 EDT 2020


With the recent changes to ARCH=sandbox, there are no remaining
in-tree users for strtok() anymore. Out-of-tree users are better
served by using the reentrant strsep(), which has existed in-tree
for as long.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
Should be applied after <20200914100553.24808-1-a.fatoum at pengutronix.de>
---
 include/linux/string.h |  2 --
 lib/string.c           | 35 +++--------------------------------
 2 files changed, 3 insertions(+), 34 deletions(-)

diff --git a/include/linux/string.h b/include/linux/string.h
index 763ef500e574..2b699957e824 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -8,9 +8,7 @@
 extern "C" {
 #endif
 
-extern char * ___strtok;
 extern char * strpbrk(const char *,const char *);
-extern char * strtok(char *,const char *);
 extern char * strsep(char **,const char *);
 extern char * strsep_unescaped(char **,const char *);
 extern __kernel_size_t strspn(const char *,const char *);
diff --git a/lib/string.c b/lib/string.c
index 50f8e2f87c9f..733b56730070 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -13,6 +13,9 @@
  * * Fri Jun 25 1999, Ingo Oeser <ioe at informatik.tu-chemnitz.de>
  * -  Added strsep() which will replace strtok() soon (because strsep() is
  *    reentrant and should be faster). Use only strsep() in new code, please.
+ * * Mon Sep 14 2020, Ahmad Fatoum <a.fatoum at pengutronix.de>
+ * -  Kissed strtok() goodbye
+ *
  */
 
 #include <linux/types.h>
@@ -20,8 +23,6 @@
 #include <linux/ctype.h>
 #include <malloc.h>
 
-char * ___strtok;
-
 #ifndef __HAVE_ARCH_STRNICMP
 /**
  * strnicmp - Case insensitive, length-limited string comparison
@@ -396,36 +397,6 @@ char * strpbrk(const char * cs,const char * ct)
 #endif
 EXPORT_SYMBOL(strpbrk);
 
-#ifndef __HAVE_ARCH_STRTOK
-/**
- * strtok - Split a string into tokens
- * @s: The string to be searched
- * @ct: The characters to search for
- *
- * WARNING: strtok is deprecated, use strsep instead.
- */
-char * strtok(char * s, const char * ct)
-{
-	char *sbegin, *send;
-
-	sbegin  = s ? s : ___strtok;
-	if (!sbegin) {
-		return NULL;
-	}
-	sbegin += strspn(sbegin,ct);
-	if (*sbegin == '\0') {
-		___strtok = NULL;
-		return( NULL );
-	}
-	send = strpbrk( sbegin, ct);
-	if (send && *send != '\0')
-		*send++ = '\0';
-	___strtok = send;
-	return (sbegin);
-}
-#endif
-EXPORT_SYMBOL(strtok);
-
 #ifndef __HAVE_ARCH_STRSEP
 /**
  * strsep - Split a string into tokens
-- 
2.28.0




More information about the barebox mailing list