1// Copyright 2016 The Fuchsia Authors
2// Copyright (c) 2008 Travis Geiselbrecht
3//
4// Use of this source code is governed by a MIT-style
5// license that can be found in the LICENSE file or at
6// https://opensource.org/licenses/MIT
7
8#include <string.h>
9#include <ctype.h>
10#include <sys/types.h>
11
12int
13strnicmp(char const *s1, char const *s2, size_t len)
14{
15    unsigned char c1 = '\0';
16    unsigned char c2 = '\0';
17
18    if (len > 0) {
19        do {
20            c1 = *s1;
21            c2 = *s2;
22            s1++;
23            s2++;
24            if (!c1)
25                break;
26            if (!c2)
27                break;
28            if (c1 == c2)
29                continue;
30            c1 = tolower(c1);
31            c2 = tolower(c2);
32            if (c1 != c2)
33                break;
34        } while (--len);
35    }
36    return (int)c1 - (int)c2;
37}
38#pragma weak strncasecmp=strnicmp
39