Add str_token() function
Add helper function to get the next token from a string. Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
This commit is contained in:
parent
d1f880013a
commit
1b640fd27c
2 changed files with 34 additions and 1 deletions
|
@ -866,3 +866,35 @@ int random_mac_addr_keep_oui(u8 *addr)
|
||||||
addr[0] |= 0x02; /* locally administered */
|
addr[0] |= 0x02; /* locally administered */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* str_token - Get next token from a string
|
||||||
|
* @buf: String to tokenize. Note that the string might be modified.
|
||||||
|
* @delim: String of delimiters
|
||||||
|
* @context: Pointer to save our context. Should be initialized with
|
||||||
|
* NULL on the first call, and passed for any further call.
|
||||||
|
* Returns: The next token, NULL if there are no more valid tokens.
|
||||||
|
*/
|
||||||
|
char * str_token(char *str, const char *delim, char **context)
|
||||||
|
{
|
||||||
|
char *end, *pos = str;
|
||||||
|
|
||||||
|
if (*context)
|
||||||
|
pos = *context;
|
||||||
|
|
||||||
|
while (*pos && os_strchr(delim, *pos))
|
||||||
|
pos++;
|
||||||
|
if (!*pos)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
end = pos + 1;
|
||||||
|
while (*end && !os_strchr(delim, *end))
|
||||||
|
end++;
|
||||||
|
|
||||||
|
if (*end)
|
||||||
|
*end++ = '\0';
|
||||||
|
|
||||||
|
*context = end;
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
|
@ -537,13 +537,14 @@ void int_array_add_unique(int **res, int a);
|
||||||
|
|
||||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||||
|
|
||||||
|
|
||||||
void str_clear_free(char *str);
|
void str_clear_free(char *str);
|
||||||
void bin_clear_free(void *bin, size_t len);
|
void bin_clear_free(void *bin, size_t len);
|
||||||
|
|
||||||
int random_mac_addr(u8 *addr);
|
int random_mac_addr(u8 *addr);
|
||||||
int random_mac_addr_keep_oui(u8 *addr);
|
int random_mac_addr_keep_oui(u8 *addr);
|
||||||
|
|
||||||
|
char * str_token(char *str, const char *delim, char **context);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* gcc 4.4 ends up generating strict-aliasing warnings about some very common
|
* gcc 4.4 ends up generating strict-aliasing warnings about some very common
|
||||||
|
|
Loading…
Reference in a new issue