char *x_readlink(const char *path);
char *read_text_file(const char *path);
bool read_file(const char *path, size_t size_hint, char **data, size_t *size);
+#ifndef HAVE_STRTOK_R
+char *strtok_r(char *str, const char *delim, char **saveptr);
+#endif
/* ------------------------------------------------------------------------- */
/* stats.c */
AC_CHECK_FUNCS(realpath)
AC_CHECK_FUNCS(snprintf)
AC_CHECK_FUNCS(strndup)
+AC_CHECK_FUNCS(strtok_r)
AC_CHECK_FUNCS(utimes)
AC_CHECK_FUNCS(vasprintf)
AC_CHECK_FUNCS(vsnprintf)
}
#endif
+#ifndef HAVE_STRTOK_R
+/* strtok_r replacement */
+char *
+strtok_r(char *str, const char *delim, char **saveptr)
+{
+ int len;
+ char *ret;
+ if (*saveptr)
+ str = *saveptr;
+ len = strlen(str);
+ ret = strtok(str, delim);
+ if (ret) {
+ char *save = ret;
+ while (*save++);
+ if ((len + 1) == (intptr_t) (save - str))
+ save--;
+ *saveptr = save;
+ }
+ return ret;
+}
+#endif
+
/*
* Copy src to dest, decompressing src if needed. compress_dest decides whether
* dest will be compressed.