static int dm4_tags(void *param, int columns, char **data, char **column) { UNUSED(columns); UNUSED(column); struct parser_state *state = (struct parser_state *)param; if (data[0]) taglist_add_tag(&state->cur_dive->tag_list, data[0]); return 0; }
/* * We can have multiple tags in the membuffer. They are separated by * NUL bytes. */ static void parse_dive_tags(char *line, struct membuffer *str, void *_dive) { struct dive *dive = _dive; const char *tag; int len = str->len; if (!len) return; /* Make sure there is a NUL at the end too */ tag = mb_cstring(str); for (;;) { int taglen = strlen(tag); if (taglen) taglist_add_tag(&dive->tag_list, tag); len -= taglen; if (!len) return; tag += taglen+1; len--; } }