r15879: strtok_r() replacement, for solaris
authorAndrew Tridgell <tridge@samba.org>
Thu, 25 May 2006 02:09:00 +0000 (02:09 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:08:36 +0000 (14:08 -0500)
(This used to be commit df5bd916db3cfbd6c145177fd8992261f03a5cbc)

source4/lib/replace/config.m4
source4/lib/replace/replace.c

index aec9f5805ced1ad9c199032ccb7f48a3c94edd50..2cee65e6a60cee9359e9866d56dc20b7ff14c63e 100644 (file)
@@ -48,7 +48,7 @@ AC_CHECK_FUNCS(strtoull __strtoull strtouq strtoll __strtoll strtoq)
 AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror)
 AC_CHECK_FUNCS(timegm setenv vsyslog setlinebuf mktime ftruncate chsize rename)
 AC_CHECK_FUNCS(waitpid strnlen strlcpy strlcat innetgr initgroups memmove strdup)
-AC_CHECK_FUNCS(pread pwrite strndup strcasestr)
+AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r)
 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
 AC_HAVE_DECL(errno, [#include <errno.h>])
index f72394cb0fe7bcc06767563af56a54c21b5e1e5e..38a3d517df81c460873ef5ce68692fd8ae164234 100644 (file)
@@ -549,3 +549,30 @@ char *strcasestr(const char *haystack, const char *needle)
        return NULL;
 }
 #endif
+
+#ifndef HAVE_STRTOK_R
+/* based on GLIBC version, copyright Free Software Foundation */
+char *strtok_r(char *s, const char *delim, char **save_ptr)
+{
+       char *token;
+
+       if (s == NULL) s = *save_ptr;
+
+       s += strspn(s, delim);
+       if (*s == '\0') {
+               *save_ptr = s;
+               return NULL;
+       }
+
+       token = s;
+       s = strpbrk(token, delim);
+       if (s == NULL) {
+               *save_ptr = token + strlen(token);
+       } else {
+               *s = '\0';
+               *save_ptr = s + 1;
+       }
+
+       return token;
+}
+#endif