ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/releases/8.2.0beta4/src/match.c
(Generate patch)

Comparing:
ircd-hybrid/trunk/src/match.c (file contents), Revision 2916 by michael, Sat Jan 25 21:09:18 2014 UTC vs.
ircd-hybrid/releases/8.2.0beta4/src/match.c (file contents), Revision 4183 by michael, Sun Jul 6 14:05:25 2014 UTC

# Line 26 | Line 26
26  
27   #include "stdinc.h"
28   #include "irc_string.h"
29 #include "ircd.h"
29  
30  
31   /*! \brief Check a string against a mask.
# Line 43 | Line 42 | match(const char *mask, const char *name
42   {
43    const char *m = mask, *n = name;
44    const char *m_tmp = mask, *n_tmp = name;
45 <  int star = 0;
45 >  unsigned int star = 0;
46  
47    while (1)
48    {
# Line 61 | Line 60 | match(const char *mask, const char *name
60            return 1;
61          break;
62        case '\\':
63 <        m++;
63 >        ++m;
64          /* allow escaping to force capitalization */
65          if (*m++ != *n++)
66            goto backtrack;
67          break;
68        case '*':
69        case '?':
70 <        for (star = 0; ; m++)
70 >        for (star = 0; ; ++m)
71          {
72            if (*m == '*')
73              star = 1;
# Line 90 | Line 89 | match(const char *mask, const char *name
89              m_tmp = ++m;
90              if (!*m)
91                return 1;
92 <            for (n_tmp = n; *n && *n != *m; n++)
92 >            for (n_tmp = n; *n && *n != *m; ++n)
93                ;
94            }
95            else
96            {
97              m_tmp = m;
98 <            for (n_tmp = n; *n && ToLower(*n) != ToLower(*m); n++)
98 >            for (n_tmp = n; *n && (ToLower(*n) != ToLower(*m)); ++n)
99                ;
100            }
101          }
# Line 106 | Line 105 | match(const char *mask, const char *name
105            return *m != '\0';
106          if (ToLower(*m) != ToLower(*n))
107            goto backtrack;
108 <        m++;
109 <        n++;
108 >        ++m;
109 >        ++n;
110          break;
111      }
112    }
# Line 136 | Line 135 | match(const char *mask, const char *name
135   char *
136   collapse(char *mask)
137   {
138 <  int star = 0;
138 >  unsigned int star = 0;
139    char *m = mask;
140    char *b = NULL;
141  
# Line 144 | Line 143 | collapse(char *mask)
143    {
144      do
145      {
146 <      if ((*m == '*') && ((m[1] == '*') || (m[1] == '?')))
146 >      if ((*m == '*') && (*(m + 1) == '*' || *(m + 1) == '?'))
147        {
148          b = m;
149  
# Line 162 | Line 161 | collapse(char *mask)
161  
162              *b++ = *m;
163  
164 <            if ((*m == '\\') && ((m[1] == '*') || (m[1] == '?')))
164 >            if ((*m == '\\') && (*(m + 1) == '*' || *(m + 1) == '?'))
165                *b++ = *++m;
166            }
167          } while (*m++);
# Line 171 | Line 170 | collapse(char *mask)
170        }
171        else
172        {
173 <        if ((*m == '\\') && ((m[1] == '*') || (m[1] == '?')))
174 <          m++;
173 >        if ((*m == '\\') && (*(m + 1) == '*' || *(m + 1) == '?'))
174 >          ++m;
175        }
176      } while (*m++);
177    }
# Line 192 | Line 191 | irccmp(const char *s1, const char *s2)
191    const unsigned char *str1 = (const unsigned char *)s1;
192    const unsigned char *str2 = (const unsigned char *)s2;
193  
194 <  assert(s1 != NULL);
195 <  assert(s2 != NULL);
194 >  assert(s1);
195 >  assert(s2);
196  
197    for (; ToUpper(*str1) == ToUpper(*str2); ++str1, ++str2)
198      if (*str1 == '\0')
# Line 208 | Line 207 | ircncmp(const char *s1, const char *s2,
207    const unsigned char *str1 = (const unsigned char *)s1;
208    const unsigned char *str2 = (const unsigned char *)s2;
209  
210 <  assert(s1 != NULL);
211 <  assert(s2 != NULL);
210 >  assert(s1);
211 >  assert(s2);
212    assert(n > 0);
213  
214    if (n == 0)

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)