On Mon, Mar 12, 2018 at 01:15:49PM -0500, Sergio Gómez Del Real wrote:
- j = flags & (FIND_FROMSTART | FIND_STARTSWITH) ? 0 : src_size;
- inc_or_dec = flags & (FIND_FROMSTART | FIND_STARTSWITH) ? 1 : -1;
- for (; j <= src_size && j >= 0; j += inc_or_dec)
- {
if (CompareStringEx(localename, mask, src + j, value_size, value, value_size, NULL, NULL, 0) == CSTR_EQUAL)
{
if (found)
*found = value_size;
return j;
}
if (flags & (FIND_STARTSWITH | FIND_ENDSWITH))
break;
- }
This loop is still not as clean as it could be. Because of the bi-directionality it would be better to introduce a 'count' variable. If set correctly it would also avoid needing the break check at the bottom. Also, consider renaming 'j' to 'offset' and 'inc_or_dec' to just 'inc'.
Huw.