source: trunk/third/sysinfo/strcasecmp.c @ 12269

Revision 12269, 3.1 KB checked in by ghudson, 26 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r12268, which included commits to RCS files with non-trunk default branches.
Line 
1#ifndef lint
2static char *RCSid = "$Revision: 1.1.1.3 $";
3#endif
4
5#ifndef lint
6static char sccsid[] = "@(#)strcasecmp.c 1.1 89/05/19 SMI"; /* from UCB 1.3 8/3/87 */
7#endif
8
9/*
10 * Copyright (c) 1992-1998 Michael A. Cooper.
11 * This software may be freely used and distributed provided it is not
12 * sold for profit or used in part or in whole for commercial gain
13 * without prior written agreement, and the author is credited
14 * appropriately.
15 */
16
17/*
18 * This array is designed for mapping upper and lower case letter
19 * together for a case independent comparison.  The mappings are
20 * based upon ascii character sequences.
21 */
22static char charmap[] = {
23        '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
24        '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
25        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
26        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
27        '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
28        '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
29        '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
30        '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
31        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
32        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
33        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
34        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
35        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
36        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
37        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
38        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
39        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
40        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
41        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
42        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
43        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
44        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
45        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
46        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
47        '\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
48        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
49        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
50        '\370', '\371', '\372', '\333', '\334', '\335', '\336', '\337',
51        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
52        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
53        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
54        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
55};
56
57strcasecmp(s1, s2)
58        register char *s1, *s2;
59{
60        register char *cm = charmap;
61
62        while (cm[*s1] == cm[*s2++])
63                if (*s1++ == '\0')
64                        return(0);
65        return(cm[*s1] - cm[*--s2]);
66}
67
68strncasecmp(s1, s2, n)
69        register char *s1, *s2;
70        register int n;
71{
72        register char *cm = charmap;
73
74        while (--n >= 0 && cm[*s1] == cm[*s2++])
75                if (*s1++ == '\0')
76                        return(0);
77        return(n < 0 ? 0 : cm[*s1] - cm[*--s2]);
78}
Note: See TracBrowser for help on using the repository browser.