From b41d847d7292335ca5be8818a1ff0b6c2316c2d1 Mon Sep 17 00:00:00 2001 From: Stefan Tauner Date: Sat, 1 Nov 2014 22:56:06 +0000 Subject: Move strtok_r implementation verbatim to helpers.c Corresponding to flashrom svn r1853. Signed-off-by: Stefan Tauner Acked-by: Stefan Tauner --- flash.h | 3 +++ helpers.c | 21 +++++++++++++++++++++ print.c | 21 --------------------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/flash.h b/flash.h index ff4b06b..81fd61b 100644 --- a/flash.h +++ b/flash.h @@ -255,6 +255,9 @@ int max(int a, int b); int min(int a, int b); char *strcat_realloc(char *dest, const char *src); void tolower_string(char *str); +#ifdef __MINGW32__ +char* strtok_r(char *str, const char *delim, char **nextp); +#endif /* flashrom.c */ extern const char flashrom_version[]; diff --git a/helpers.c b/helpers.c index 63fc880..5685d29 100644 --- a/helpers.c +++ b/helpers.c @@ -70,3 +70,24 @@ void tolower_string(char *str) *str = (char)tolower((unsigned char)*str); } +/* FIXME: Find a better solution for MinGW. Maybe wrap strtok_s (C11) if it becomes available */ +#ifdef __MINGW32__ +char* strtok_r(char *str, const char *delim, char **nextp) +{ + if (str == NULL) + str = *nextp; + + str += strspn(str, delim); /* Skip leading delimiters */ + if (*str == '\0') + return NULL; + + char *ret = str; + str += strcspn(str, delim); /* Find end of token */ + if (*str != '\0') + *str++ = '\0'; + + *nextp = str; + return ret; +} +#endif + diff --git a/print.c b/print.c index 243aa49..a522085 100644 --- a/print.c +++ b/print.c @@ -26,27 +26,6 @@ #include "flash.h" #include "programmer.h" -/* FIXME: Find a better solution for MinGW. Maybe wrap strtok_s (C11) below if it becomes available */ -#ifdef __MINGW32__ -static char* strtok_r(char *str, const char *delim, char **nextp) -{ - if (str == NULL) - str = *nextp; - - str += strspn(str, delim); /* Skip leading delimiters */ - if (*str == '\0') - return NULL; - - char *ret = str; - str += strcspn(str, delim); /* Find end of token */ - if (*str != '\0') - *str++ = '\0'; - - *nextp = str; - return ret; -} -#endif - static const char *test_state_to_text(enum test_state test_state) { switch (test_state) { -- cgit v1.1