Lines Matching +defs:match +defs:end
88 const char *search(const char *p, const char *end) const;
106 const char *bmpattern::search(const char *buf, const char *end) const
108 int buflen = end - buf;
113 strend = end - len*4;
128 while (k < end && del[uchar(*k)] != 0)
130 if (k == end)
174 static const char *skip_field(const char *end, const char *p)
178 if (p == end || *p == '%')
208 const char *match, int matchlen,
211 *cont = match + 1;
215 && map[uchar(match[matchlen])] != '\0')
218 // The character before the match must not be an alphanumeric
225 switch (match - buf) {
229 if (match[-1] == '%' || map[uchar(match[-1])] != '\0')
233 if (map[uchar(match[-1])] != '\0' && match[-2] != '%')
235 if (match[-1] == '%'
236 && (match[-2] == '\n' || match[-2] == '%'))
240 if (map[uchar(match[-1])] != '\0'
241 && !(match[-2] == '%'
242 && (match[-3] == '\n'
243 || (match[-3] == '%' && match[-4] == '\n'))))
245 if (match[-1] == '%'
246 && (match[-2] == '\n'
247 || (match[-2] == '%' && match[-3] == '\n')))
251 const char *p = match;
257 *cont = skip_field(bufend, match + matchlen);
315 // need one character at the end also for an additional newline used as a