Used to match the whole header line, but we need to use
^$ anchoring for host-relative regexps, and they need to
anchor at the ends of the value. MP-470.
if (!it->header.empty() &&
regex_match(header->name, it->header))
{
if (!it->header.empty() &&
regex_match(header->name, it->header))
{
+#ifdef OLDHEADERMATCH
+ // Matches and replaces the whole header line.
+ // This is good if you want to play with the header name too,
+ // but useless for patterns that want to anchor to the beginning
+ // or end of the header value, as we want to do with host-relative
+ // links. This code should probably be removed.
std::string sheader(header->name);
sheader += ": ";
sheader += header->value;
std::string sheader(header->name);
sheader += ": ";
sheader += header->value;
header->value = odr_strdup(
o, sheader.substr(pos + 2, std::string::npos).c_str());
}
header->value = odr_strdup(
o, sheader.substr(pos + 2, std::string::npos).c_str());
}
+#else
+ // Match and replace only the header value
+ std::string hval(header->value);
+ if (it->exec(vars, hval, true))
+ {
+ header->value = odr_strdup(o, hval.c_str());
+ }
+
+#endif