lib: Add strtok() and strtok_r()
Add strtok() and strtok_r() to the library. Signed-off-by: Harshit Sharma <harshitsharmajs@gmail.com> Change-Id: Ic855b31669be1c274cbf247c53ffa6f74ec5bf35 Reviewed-on: https://review.coreboot.org/c/coreboot/+/41420 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
This commit is contained in:
parent
58b8054cca
commit
7a6f27ce1e
|
@ -29,6 +29,8 @@ int strcmp(const char *s1, const char *s2);
|
||||||
int strncmp(const char *s1, const char *s2, int maxlen);
|
int strncmp(const char *s1, const char *s2, int maxlen);
|
||||||
int strspn(const char *str, const char *spn);
|
int strspn(const char *str, const char *spn);
|
||||||
int strcspn(const char *str, const char *spn);
|
int strcspn(const char *str, const char *spn);
|
||||||
|
char *strtok_r(char *str, const char *delim, char **ptr);
|
||||||
|
char *strtok(char *str, const char *delim);
|
||||||
long atol(const char *str);
|
long atol(const char *str);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -163,6 +163,31 @@ int strcspn(const char *str, const char *spn)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *strtok_r(char *str, const char *delim, char **ptr)
|
||||||
|
{
|
||||||
|
char *start;
|
||||||
|
char *end;
|
||||||
|
|
||||||
|
if (str == NULL)
|
||||||
|
str = *ptr;
|
||||||
|
start = str + strspn(str, delim);
|
||||||
|
if (start[0] == '\0')
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
end = start + strcspn(start, delim);
|
||||||
|
*ptr = end;
|
||||||
|
if (end[0] != '\0')
|
||||||
|
*(*ptr)++ = '\0';
|
||||||
|
return start;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *strtok(char *str, const char *delim)
|
||||||
|
{
|
||||||
|
static char *strtok_ptr;
|
||||||
|
|
||||||
|
return strtok_r(str, delim, &strtok_ptr);
|
||||||
|
}
|
||||||
|
|
||||||
long atol(const char *str)
|
long atol(const char *str)
|
||||||
{
|
{
|
||||||
long ret = 0;
|
long ret = 0;
|
||||||
|
|
Loading…
Reference in New Issue