From: Jo-Philipp Wich Date: Fri, 23 Nov 2012 10:15:02 +0000 (+0000) Subject: libs/lmo: fix whitespace handling in string hashing, optimize code X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=c647ff9f0e1af211a762dc9a773c1b5c4aacd168;p=project%2Fluci.git libs/lmo: fix whitespace handling in string hashing, optimize code --- diff --git a/libs/lmo/src/lmo_lualib.c b/libs/lmo/src/lmo_lualib.c index ade8e01f72..5cc1e7d69d 100644 --- a/libs/lmo/src/lmo_lualib.c +++ b/libs/lmo/src/lmo_lualib.c @@ -55,17 +55,12 @@ static uint32_t _lmo_hash_string(lua_State *L, int n) { if (!str || len >= sizeof(res)) return 0; - while (*str && isspace(*str)) - str++; - - for (prev = 0, ptr = res; *str; prev = *str, str++) + for (prev = ' ', ptr = res; *str; prev = *str, str++) { if (isspace(*str)) { - if (isspace(prev)) - continue; - - *ptr++ = ' '; + if (!isspace(prev)) + *ptr++ = ' '; } else { @@ -73,7 +68,7 @@ static uint32_t _lmo_hash_string(lua_State *L, int n) { } } - while ((ptr > res) && isspace(*ptr)) + if ((ptr > res) && isspace(*(ptr-1))) ptr--; return sfh_hash(res, ptr - res);