diff --git a/httpd/httpd.c b/httpd/httpd.c index 59ac68a..67d56d1 100644 --- a/httpd/httpd.c +++ b/httpd/httpd.c @@ -116,18 +116,24 @@ char strcmp(__xdata uint8_t *c, __code uint8_t * __xdata d) } -char is_word(__xdata uint8_t *c, __code uint8_t * __xdata d) +bool is_word(__xdata uint8_t *xdata_str_p, __code uint8_t * __xdata code_str_p) { - uint8_t i = 0; + uint8_t u, c; - while (d[i] && (d[i] == c[i])) - i++; + while (1) { + u = *xdata_str_p++; + c = *code_str_p++; - if (d[i]) - return 0; - if (c[i] != ' ' && c[i] != '\t' && c[i] != ':' && c[i] != '?' && c[i] != '=' && c[i] != '\n' && c[i] != '\r' && c[i]) - return 0; - return 1; + if (c == '\0') { + if (u != '\0' && u != ' ' && u != '\t' && u != ':' && u != '?' && u != '=' && u != '\n' && u != '\r') + return false; + return true; + } + + if (c != u) { + return false; + } + } } @@ -174,18 +180,24 @@ bool is_url_word_x(__xdata uint8_t *uri_str_p, __xdata uint8_t *src_str_p) } -char is_word_x(__xdata uint8_t *c, __xdata uint8_t *d) +bool is_word_x(__xdata uint8_t *lhs_str_p, __xdata uint8_t *rhs_str_p) { - register uint8_t i = 0; + uint8_t u, c; - while (d[i] && (d[i] == c[i])) - i++; + while (1) { + u = *lhs_str_p++; + c = *rhs_str_p++; - if (d[i]) - return 0; - if (c[i] != ' ' && c[i] != '\t' && c[i] != ':' && c[i] != '?' && c[i] != '=' && c[i] != '\n' && c[i] != '\r' && c[i]) - return 0; - return 1; + if (c == '\0') { + if (u != '\0' && u != ' ' && u != '\t' && u != ':' && u != '?' && u != '=' && u != '\n' && u != '\r') + return false; + return true; + } + + if (c != u) { + return false; + } + } }