* elf32-m32c.c (m32c_offset_for_reloc): Fix local symbol
[deliverable/binutils-gdb.git] / libiberty / strncasecmp.c
CommitLineData
252b5132
RH
1/*
2 * Copyright (c) 1987 Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
6 * provided that this notice is preserved and that due credit is given
7 * to the University of California at Berkeley. The name of the University
8 * may not be used to endorse or promote products derived from this
9 * software without specific written prior permission. This software
10 * is provided ``as is'' without express or implied warranty.
11 */
12
39423523
DD
13/*
14
15@deftypefn Supplemental int strncasecmp (const char *@var{s1}, const char *@var{s2})
16
17A case-insensitive @code{strncmp}.
18
19@end deftypefn
20
21*/
22
252b5132
RH
23#if defined(LIBC_SCCS) && !defined(lint)
24static char sccsid[] = "@(#)strcasecmp.c 5.5 (Berkeley) 11/24/87";
25#endif /* LIBC_SCCS and not lint */
26
27#include <ansidecl.h>
252b5132 28#include <stddef.h>
252b5132
RH
29
30/*
31 * This array is designed for mapping upper and lower case letter
32 * together for a case independent comparison. The mappings are
33 * based upon ascii character sequences.
34 */
e6450fe5 35static const unsigned char charmap[] = {
252b5132
RH
36 '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
37 '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
38 '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
39 '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
40 '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
41 '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
42 '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
43 '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
44 '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
45 '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
46 '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
47 '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
48 '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
49 '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
50 '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
51 '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
52 '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
53 '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
54 '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
55 '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
56 '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
57 '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
58 '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
59 '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
60 '\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
61 '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
62 '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
63 '\370', '\371', '\372', '\333', '\334', '\335', '\336', '\337',
64 '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
65 '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
66 '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
67 '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
68};
69
70int
49b1fae4 71strncasecmp(const char *s1, const char *s2, register size_t n)
252b5132
RH
72{
73 register unsigned char u1, u2;
74
75 for (; n != 0; --n) {
76 u1 = (unsigned char) *s1++;
77 u2 = (unsigned char) *s2++;
78 if (charmap[u1] != charmap[u2]) {
79 return charmap[u1] - charmap[u2];
80 }
81 if (u1 == '\0') {
82 return 0;
83 }
84 }
85 return 0;
86}
This page took 0.271019 seconds and 4 git commands to generate.