Lines Matching defs:sl
114 strlist_next(const char * const sl, size_t const slsize, size_t * const cursorp)
117 if (sl == NULL || slsize == 0 || cursorp == NULL) {
128 const char *cp = sl + cursor;
140 strlist_count(const char *sl, size_t slsize)
143 if (sl == NULL || slsize == 0) {
151 count++, sl += cursize, slsize -= cursize) {
152 cursize = strlen(sl) + 1;
164 strlist_string(const char * sl, size_t slsize, unsigned int const idx)
167 if (sl == NULL || slsize == 0) {
174 for (i = 0; slsize != 0; i++, slsize -= cursize, sl += cursize) {
175 cursize = strlen(sl) + 1;
177 return sl;
199 strlist_match_internal(const char * const sl, size_t slsize,
208 if (sl == NULL || slsize == 0) {
212 cp = sl;
247 * Returns a weighted match value (1 <= match <= sl->count) if the
249 * beginning of the list carriest the greatest weight (i.e. sl->count)
257 strlist_match(const char * const sl, size_t const slsize,
263 if (strlist_match_internal(sl, slsize, str, &idx, &count,
278 strlist_pmatch(const char * const sl, size_t const slsize,
284 if (strlist_match_internal(sl, slsize, pattern, &idx, &count,
302 strlist_index(const char * const sl, size_t const slsize,
307 if (strlist_match_internal(sl, slsize, str, &idx, NULL,
325 char * const sl = *slp;
335 if (sl != NULL) {
336 memcpy(newbuf, sl, slsize);
341 if (sl != NULL) {
342 strlist_free(sl, slsize);
380 const char *sl;
386 sl = nice_blob;
390 assert(strlist_count(sl, slsize) == 6);
394 assert((cp = strlist_next(sl, slsize, &cursor)) != NULL);
397 assert((cp = strlist_next(sl, slsize, &cursor)) != NULL);
400 assert((cp = strlist_next(sl, slsize, &cursor)) != NULL);
403 assert((cp = strlist_next(sl, slsize, &cursor)) != NULL);
406 assert((cp = strlist_next(sl, slsize, &cursor)) != NULL);
409 assert((cp = strlist_next(sl, slsize, &cursor)) != NULL);
412 assert((cp = strlist_next(sl, slsize, &cursor)) == NULL);
415 assert(strlist_match(sl, slsize, "non-existent") == 0);
416 assert(strlist_match(sl, slsize, "zero") == 6);
417 assert(strlist_match(sl, slsize, "one") == 5);
418 assert(strlist_match(sl, slsize, "two") == 4);
419 assert(strlist_match(sl, slsize, "three") == 3);
420 assert(strlist_match(sl, slsize, "four") == 2);
421 assert(strlist_match(sl, slsize, "five") == 1);
424 assert(strlist_pmatch(sl, slsize, "t?o") == 4);
425 assert(strlist_pmatch(sl, slsize, "f[a-o][o-u][a-z]") == 2);
428 assert(strlist_index(sl, slsize, "non-existent") == -1);
429 assert(strlist_index(sl, slsize, "zero") == 0);
430 assert(strlist_index(sl, slsize, "one") == 1);
431 assert(strlist_index(sl, slsize, "two") == 2);
432 assert(strlist_index(sl, slsize, "three") == 3);
433 assert(strlist_index(sl, slsize, "four") == 4);
434 assert(strlist_index(sl, slsize, "five") == 5);
437 assert(strcmp(strlist_string(sl, slsize, 0), "zero") == 0);
438 assert(strcmp(strlist_string(sl, slsize, 1), "one") == 0);
439 assert(strcmp(strlist_string(sl, slsize, 2), "two") == 0);
440 assert(strcmp(strlist_string(sl, slsize, 3), "three") == 0);
441 assert(strcmp(strlist_string(sl, slsize, 4), "four") == 0);
442 assert(strcmp(strlist_string(sl, slsize, 5), "five") == 0);
443 assert(strlist_string(sl, slsize, 6) == NULL);
445 sl = gross_blob;
449 assert(strlist_count(sl, slsize) == 7);
452 assert(strcmp(strlist_string(sl, slsize, 0), "zero") == 0);
453 assert(strcmp(strlist_string(sl, slsize, 1), "") == 0);
454 assert(strcmp(strlist_string(sl, slsize, 2), "two") == 0);
455 assert(strcmp(strlist_string(sl, slsize, 3), "") == 0);
456 assert(strcmp(strlist_string(sl, slsize, 4), "four") == 0);
457 assert(strcmp(strlist_string(sl, slsize, 5), "") == 0);
458 assert(strcmp(strlist_string(sl, slsize, 6), "") == 0);
459 assert(strlist_string(sl, slsize, 7) == NULL);