Use ddsrt_strsep instead of ddsrt_strtok_r
The two do essentially the same think, and ddsrt_strtok_r was only used in one place. (Triggered by Solaris 2.6 not providing strtok_r.) Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
0d33462664
commit
96e09d2d4e
4 changed files with 3 additions and 66 deletions
|
@ -52,21 +52,6 @@ ddsrt_strncasecmp(
|
|||
size_t n)
|
||||
ddsrt_nonnull((1,2));
|
||||
|
||||
/**
|
||||
* @brief Split string into tokens.
|
||||
*
|
||||
* @param[in] str String to split into tokens.
|
||||
* @param[in] delim Characters that delimit a token.
|
||||
* @param[in,out] saveptr Pointer to a char * used internally.
|
||||
*
|
||||
* @returns The next token or NULL if there are no more tokens.
|
||||
*/
|
||||
DDS_EXPORT char *
|
||||
ddsrt_strtok_r(
|
||||
char *str,
|
||||
const char *delim,
|
||||
char **saveptr);
|
||||
|
||||
/**
|
||||
* @brief Extract token from string.
|
||||
*
|
||||
|
|
|
@ -12,9 +12,6 @@
|
|||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <stdint.h>
|
||||
#if defined(__IAR_SYSTEMS_ICC__)
|
||||
#define _DLIB_ADD_EXTRA_SYMBOLS /* Export strtok_r. */
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
#include "dds/ddsrt/heap.h"
|
||||
|
@ -65,19 +62,6 @@ ddsrt_strncasecmp(
|
|||
return cr;
|
||||
}
|
||||
|
||||
char *
|
||||
ddsrt_strtok_r(
|
||||
char *str,
|
||||
const char *delim,
|
||||
char **saveptr)
|
||||
{
|
||||
#if _WIN32
|
||||
return strtok_s(str, delim, saveptr);
|
||||
#else
|
||||
return strtok_r(str, delim, saveptr);
|
||||
#endif
|
||||
}
|
||||
|
||||
char *
|
||||
ddsrt_strsep(char **str, const char *sep)
|
||||
{
|
||||
|
|
|
@ -67,35 +67,3 @@ CU_Theory((const char *s1, const char *s2, size_t n, eq_t e), ddsrt_strncasecmp,
|
|||
CU_ASSERT((e == eq && r == 0) || (e == lt && r < 0) || (e == gt && r > 0));
|
||||
}
|
||||
|
||||
CU_Test(ddsrt_string, strtok_r)
|
||||
{
|
||||
char *res;
|
||||
char *saveptr;
|
||||
char ts1[] = "123,234";
|
||||
char ts2[] = ",;,123abc,,456,:,";
|
||||
char ts3[] = ",,,123,,456,789,,,";
|
||||
|
||||
res = ddsrt_strtok_r(ts1, ",", &saveptr);
|
||||
CU_ASSERT(strcmp(res, "123") == 0);
|
||||
res = ddsrt_strtok_r( NULL, ",", &saveptr);
|
||||
CU_ASSERT(strcmp(res, "234") == 0);
|
||||
res = ddsrt_strtok_r( NULL, ",", &saveptr);
|
||||
CU_ASSERT(res == NULL);
|
||||
|
||||
res = ddsrt_strtok_r(ts2, ",;", &saveptr);
|
||||
CU_ASSERT(strcmp(res, "123abc") == 0);
|
||||
res = ddsrt_strtok_r( NULL, ",", &saveptr);
|
||||
CU_ASSERT(strcmp(res, "456") == 0);
|
||||
res = ddsrt_strtok_r( NULL, ",:", &saveptr);
|
||||
CU_ASSERT(res == NULL);
|
||||
|
||||
res = ddsrt_strtok_r(ts3, ",", &saveptr);
|
||||
CU_ASSERT(strcmp(res, "123") == 0);
|
||||
res = ddsrt_strtok_r( NULL, ",", &saveptr);
|
||||
CU_ASSERT(strcmp(res, "456") == 0);
|
||||
res = ddsrt_strtok_r( NULL, ",", &saveptr);
|
||||
CU_ASSERT(strcmp(res, "789") == 0);
|
||||
res = ddsrt_strtok_r( NULL, ",:", &saveptr);
|
||||
CU_ASSERT(res == NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -2516,10 +2516,10 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
break;
|
||||
case 'S': {
|
||||
char *copy = dds_string_dup(optarg), *tok, *lasts;
|
||||
char *copy = dds_string_dup(optarg), *tok, *cursor = copy;
|
||||
if (copy == NULL)
|
||||
abort();
|
||||
tok = ddsrt_strtok_r(copy, ",", &lasts);
|
||||
tok = ddsrt_strsep(&cursor, ",");
|
||||
while (tok) {
|
||||
if (strcmp(tok, "pr") == 0 || strcmp(tok, "pre-read") == 0)
|
||||
spec[specidx].rd.print_match_pre_read = 1;
|
||||
|
@ -2551,7 +2551,7 @@ int main(int argc, char *argv[]) {
|
|||
fprintf (stderr, "-S %s: invalid event\n", tok);
|
||||
exit(2);
|
||||
}
|
||||
tok = ddsrt_strtok_r(NULL, ",", &lasts);
|
||||
tok = ddsrt_strsep(&cursor, ",");
|
||||
}
|
||||
dds_free(copy);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue