diff options
Diffstat (limited to 'src/core/ngx_string.c')
-rw-r--r-- | src/core/ngx_string.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c index 15104985f..56a9861c4 100644 --- a/src/core/ngx_string.c +++ b/src/core/ngx_string.c @@ -6,14 +6,16 @@ char *ngx_cpystrn(char *dst, char *src, size_t n) { - if (n == 0) + if (n == 0) { return dst; + } for (/* void */; --n; dst++, src++) { *dst = *src; - if (*dst == '\0') + if (*dst == '\0') { return dst; + } } *dst = '\0'; @@ -22,10 +24,36 @@ char *ngx_cpystrn(char *dst, char *src, size_t n) } +int ngx_rstrncmp(char *s1, char *s2, size_t n) +{ + if (n == 0) { + return 0; + } + + n--; + + for ( ;; ) { + if (s1[n] != s2[n]) { + return (u_char) s1[n] - (u_char) s2[n]; + } + + if (n == 0) { + return 0; + } + + n--; + } +} + + int ngx_atoi(char *line, size_t n) { int value; + if (n == 0) { + return NGX_ERROR; + } + for (value = 0; n--; line++) { if (*line < '0' || *line > '9') { return NGX_ERROR; |