# HG changeset patch # User Mike Becker # Date 1487607134 -3600 # Node ID 7a63b4986b5b68928ce903af4eedddc4624d387a # Parent bd58fdde142d3ab763ae7fd9669f6440bcc1d6f7 adds an optimization for one-byte delimiters to sstrsplit (will take effect after planned reimplementation of sstrstr) diff -r bd58fdde142d -r 7a63b4986b5b ucx/string.c --- a/ucx/string.c Mon Feb 20 16:57:09 2017 +0100 +++ b/ucx/string.c Mon Feb 20 17:12:14 2017 +0100 @@ -224,7 +224,20 @@ sstr_t curpos = s; ssize_t j = 1; while (1) { - sstr_t match = sstrstr(curpos, d); + sstr_t match; + /* optimize for one byte delimiters */ + if (d.length == 1) { + match = curpos; + for (size_t i = 0 ; i < curpos.length ; i++) { + if (curpos.ptr[i] == *(d.ptr)) { + match.ptr = curpos.ptr + i; + break; + } + match.length--; + } + } else { + match = sstrstr(curpos, d); + } if (match.length > 0) { /* is this our last try? */ if (nmax == 0 || j < nmax) {