7 |
int stristart(const char *str, const char *val, const char **ptr); |
int stristart(const char *str, const char *val, const char **ptr); |
8 |
void pstrcpy(char *buf, int buf_size, const char *str); |
void pstrcpy(char *buf, int buf_size, const char *str); |
9 |
char *pstrcat(char *buf, int buf_size, const char *s); |
char *pstrcat(char *buf, int buf_size, const char *s); |
10 |
|
char *pstrncpy(char *buf, int buf_size, const char *s, int len); |
11 |
|
|
12 |
/* simple dynamic strings wrappers. The strings are always terminated |
/* simple dynamic strings wrappers. The strings are always terminated |
13 |
by zero except if they are empty. */ |
by zero except if they are empty. */ |
77 |
|
|
78 |
#define list_for_each_safe(elem, elem1, head) \ |
#define list_for_each_safe(elem, elem1, head) \ |
79 |
for (elem = (void *)(head)->next, elem1 = elem->next; elem != (void *)(head); \ |
for (elem = (void *)(head)->next, elem1 = elem->next; elem != (void *)(head); \ |
80 |
elem = elem1, elem1 = elem->next) |
elem = elem1, elem1 = elem->next) |
81 |
|
|
82 |
#define list_for_each_prev(elem, head) \ |
#define list_for_each_prev(elem, head) \ |
83 |
for (elem = (void *)(head)->prev; elem != (void *)(head); elem = elem->prev) |
for (elem = (void *)(head)->prev; elem != (void *)(head); elem = elem->prev) |