summaryrefslogtreecommitdiffstats
path: root/libhb/compat.c
diff options
context:
space:
mode:
authorRodeo <[email protected]>2015-04-10 14:56:27 +0000
committerRodeo <[email protected]>2015-04-10 14:56:27 +0000
commit864ce5a4227d81f688f32e808245b2600f431ac3 (patch)
tree80fe0b03201bac220a3d2c291129381752b888db /libhb/compat.c
parentf360714523e5f1f78ced2ae8691f3087b80eef65 (diff)
Move strtok_r fallback to dedicated "compat" files.
Also, check whether the toolchain already provides strtok_r instead of building it unconditionally. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7076 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/compat.c')
-rw-r--r--libhb/compat.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/libhb/compat.c b/libhb/compat.c
new file mode 100644
index 000000000..440074bc2
--- /dev/null
+++ b/libhb/compat.c
@@ -0,0 +1,42 @@
+/* compat.c
+
+ Copyright (c) 2003-2015 HandBrake Team
+ This file is part of the HandBrake source code
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License v2.
+ For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+#include "compat.h"
+
+#ifdef HB_NEED_STRTOK_R
+#include <string.h>
+
+char *strtok_r(char *s, const char *delim, char **save_ptr)
+{
+ char *token;
+
+ if (s == NULL) s = *save_ptr;
+
+ /* Scan leading delimiters. */
+ s += strspn(s, delim);
+ if (*s == '\0') return NULL;
+
+ /* Find the end of the token. */
+ token = s;
+ s = strpbrk(token, delim);
+ if (s == NULL)
+ {
+ /* This token finishes the string. */
+ *save_ptr = strchr(token, '\0');
+ }
+ else
+ {
+ /* Terminate the token and make *save_ptr point past it. */
+ *s = '\0';
+ *save_ptr = s + 1;
+ }
+
+ return token;
+}
+#endif // HB_NEED_STRTOK_R