1 /*
2 * This file is part of libESMTP, a library for submission of RFC 2822
3 * formatted electronic mail messages using the SMTP protocol described
4 * in RFC 2821.
5 *
6 * Copyright (C) 2002 Brian Stafford <brian@stafford.uklinux.net>
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */
22
23 #ifdef HAVE_CONFIG_H
24 #include <config.h>
25 #endif
26 #undef HAVE_STRNCASECMP
27 #undef _GNU_SOURCE
28 #undef _ISOC9X_SOURCE
29 #undef _OSF_SOURCE
30 #undef _XOPEN_SOURCE
31 #undef __EXTENSIONS__
32 #include <missing.h>
33 #include <ctype.h>
34
35 int
strncasecmp(const char * a,const char * b,size_t len)36 strncasecmp (const char *a, const char *b, size_t len)
37 {
38 register int n;
39
40 if (len < 1)
41 return 0;
42 while (*a == *b || (n = tolower (*a) - tolower (*b)) == 0)
43 {
44 if (*a == '\0' || --len < 1)
45 return 0;
46 a++, b++;
47 }
48 return n;
49 }
50