aboutsummaryrefslogtreecommitdiff
path: root/src/njs_str.c
blob: fdad37313ead9fd0e013521b0879bf86a88e6d8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
 * Copyright (C) Dmitry Volyntsev
 * Copyright (C) NGINX, Inc.
 */


#include <njs_main.h>


njs_int_t
njs_strncasecmp(u_char *s1, u_char *s2, size_t n)
{
    njs_uint_t  c1, c2;

    while (n) {
        c1 = (njs_uint_t) *s1++;
        c2 = (njs_uint_t) *s2++;

        c1 = (c1 >= 'A' && c1 <= 'Z') ? (c1 | 0x20) : c1;
        c2 = (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;

        if (c1 == c2) {

            if (c1) {
                n--;
                continue;
            }

            return 0;
        }

        return c1 - c2;
    }

    return 0;
}