/[cvs]/eggdrop1.4/src/rfc1459.c
ViewVC logotype

Annotation of /eggdrop1.4/src/rfc1459.c

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (hide annotations) (download) (as text)
Wed Dec 15 02:32:58 1999 UTC (19 years, 8 months ago) by guppy
Branch: MAIN
Changes since 1.2: +8 -5 lines
File MIME type: text/x-chdr
id-header patch, finally, we have id tags for each file

1 guppy 1.3 /*
2     * rfc1459.c
3     *
4     * $Id$
5     */
6 segfault 1.1 /*
7     * This code was more or less cloned from the ircd-hybrid 5.3 source.
8     * The original code was written by Otto Harkoonen and even though it
9     * it not entirely in synch with section 2.2 of RFC1459 in that it
10     * additionally defines carat as an uppercase version of tilde, it's
11     * what is in the servers themselves so we're going with it this way.
12 guppy 1.3 *
13 segfault 1.1 * If for some reason someone who maintains the source for ircd decides
14     * to change the code to be completely RFC compliant, the change here
15     * would be absolutely miniscule.
16 guppy 1.3 *
17 segfault 1.1 * BTW, since carat characters are allowed in nicknames and tildes are
18     * not, I stronly suggest that people convert to uppercase when doing
19     * comparisons or creation of hash elements (which tcl laughably calls
20     * arrays) to avoid making entries with impossible nicknames in them.
21 guppy 1.3 *
22 segfault 1.1 * --+ Dagmar
23     */
24    
25 guppy 1.2 #include "main.h"
26 segfault 1.1
27 guppy 1.2 int _rfc_casecmp(const char *s1, const char *s2)
28 segfault 1.1 {
29     register unsigned char *str1 = (unsigned char *) s1;
30     register unsigned char *str2 = (unsigned char *) s2;
31     register int res;
32    
33     while ((res = rfc_toupper(*str1) - rfc_toupper(*str2)) == 0) {
34     if (*str1 == '\0')
35     return 0;
36     str1++;
37     str2++;
38     }
39     return (res);
40     }
41    
42 guppy 1.2 int _rfc_ncasecmp(const char *str1, const char *str2, int n)
43 segfault 1.1 {
44     register unsigned char *s1 = (unsigned char *) str1;
45     register unsigned char *s2 = (unsigned char *) str2;
46     register int res;
47    
48     while ((res = rfc_toupper(*s1) - rfc_toupper(*s2)) == 0) {
49     s1++;
50     s2++;
51     n--;
52     if (n == 0 || (*s1 == '\0' && *s2 == '\0'))
53     return 0;
54     }
55     return (res);
56     }
57    
58 guppy 1.2 unsigned char rfc_tolowertab[];
59     unsigned char rfc_touppertab[];
60    
61     int _rfc_tolower(int c)
62     {
63     return rfc_tolowertab[(unsigned char)(c)];
64     }
65    
66     int _rfc_toupper(int c)
67     {
68     return rfc_touppertab[(unsigned char)(c)];
69     }
70    
71 segfault 1.1 unsigned char rfc_tolowertab[] =
72     {0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa,
73     0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14,
74     0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d,
75     0x1e, 0x1f,
76     ' ', '!', '"', '#', '$', '%', '&', 0x27, '(', ')',
77     '*', '+', ',', '-', '.', '/',
78     '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
79     ':', ';', '<', '=', '>', '?',
80     '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
81     'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
82     't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
83     '_',
84     '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
85     'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
86     't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
87     0x7f,
88     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
89     0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
90     0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
91     0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
92     0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9,
93     0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
94     0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
95     0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
96     0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
97     0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
98     0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,
99     0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
100     0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
101     0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
102     0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
103     0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff};
104    
105     unsigned char rfc_touppertab[] =
106     {0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa,
107     0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14,
108     0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d,
109     0x1e, 0x1f,
110     ' ', '!', '"', '#', '$', '%', '&', 0x27, '(', ')',
111     '*', '+', ',', '-', '.', '/',
112     '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
113     ':', ';', '<', '=', '>', '?',
114     '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
115     'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
116     'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^',
117     0x5f,
118     '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
119     'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
120     'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^',
121     0x7f,
122     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
123     0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
124     0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
125     0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
126     0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9,
127     0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
128     0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
129     0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
130     0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
131     0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
132     0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,
133     0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
134     0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
135     0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
136     0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
137     0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff};
138    

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23