Fix maxlen' parameter for starts_with' and `starts_with_case'

This commit is contained in:
Moritz Bunkus 2011-07-10 18:16:09 +02:00
parent 1b056edd9c
commit 9cded0d286

View File

@ -181,30 +181,14 @@ bool
starts_with(const std::string &s,
const char *start,
int maxlen) {
int len, slen;
slen = strlen(start);
if (maxlen == -1)
len = slen;
else
len = maxlen < slen ? maxlen : slen;
return strncmp(s.c_str(), start, slen) == 0;
return strncmp(s.c_str(), start, -1 == maxlen ? strlen(start) : maxlen) == 0;
}
bool
starts_with_case(const std::string &s,
const char *start,
int maxlen) {
int len, slen;
slen = strlen(start);
if (maxlen == -1)
len = slen;
else
len = maxlen < slen ? maxlen : slen;
return strncasecmp(s.c_str(), start, slen) == 0;
return strncasecmp(s.c_str(), start, -1 == maxlen ? strlen(start) : maxlen) == 0;
}
std::string