Added code for nonstandard function strsep()
authorDan Fandrich <dan@coneharvesters.com>
Sat, 19 Jun 2010 05:36:45 +0000 (22:36 -0700)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 19 Jun 2010 18:03:18 +0000 (20:03 +0200)
Signed-off-by: Dan Fandrich <dan@coneharvesters.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/platform.h
libbb/platform.c

index 4bd7a3d2e318fb5e7c42fddddd5898d4f16e51ff..0dadf42bd2dd714878e728aa28348a392f986c27 100644 (file)
@@ -16,6 +16,7 @@
 #define HAVE_SETBIT 1
 #define HAVE_STRCASESTR 1
 #define HAVE_STRCHRNUL 1
+#define HAVE_STRSEP 1
 #define HAVE_STRSIGNAL 1
 #define HAVE_VASPRINTF 1
 
@@ -353,6 +354,7 @@ typedef unsigned smalluint;
 # undef HAVE_SETBIT
 # undef HAVE_STRCASESTR
 # undef HAVE_STRCHRNUL
+# undef HAVE_STRSEP
 # undef HAVE_STRSIGNAL
 # undef HAVE_VASPRINTF
 #endif
@@ -391,6 +393,10 @@ extern char *strcasestr(const char *s, const char *pattern) FAST_FUNC;
 extern char *strchrnul(const char *s, int c) FAST_FUNC;
 #endif
 
+#ifndef HAVE_STRSEP
+extern char *strsep(char **stringp, const char *delim) FAST_FUNC;
+#endif
+
 #ifndef HAVE_STRSIGNAL
 /* Not exactly the same: instead of "Stopped" it shows "STOP" etc */
 # define strsignal(sig) get_signame(sig)
index 17ad3f75a65ccb51469b659bfc0dc5c2e003db2a..7a8b1765730fb19d184804afdfb2468f04fe6578 100644 (file)
@@ -107,3 +107,30 @@ char* FAST_FUNC strcasestr(const char *s, const char *pattern)
        return 0;
 }
 #endif
+
+#ifndef HAVE_STRSEP
+/* Copyright (C) 2004 Free Software Foundation, Inc. */
+char* FAST_FUNC strsep(char **stringp, const char *delim)
+{
+       char *start = *stringp;
+       char *ptr;
+
+       if (!start)
+               return NULL;
+
+       if (!*delim)
+               ptr = start + strlen(start);
+       else {
+               ptr = strpbrk(start, delim);
+               if (!ptr) {
+                       *stringp = NULL;
+                       return start;
+               }
+       }
+
+       *ptr = '\0';
+       *stringp = ptr + 1;
+
+       return start;
+}
+#endif