--- a/src/query/reslistpager.cpp
+++ b/src/query/reslistpager.cpp
@@ -110,6 +110,14 @@
m_resultsInCurrentPage = pagelen;
m_respage = npage;
}
+static string maybeEscapeHtml(const string& fld)
+{
+ if (fld.compare(0, cstr_fldhtm.size(), cstr_fldhtm))
+ return escapeHtml(fld);
+ else
+ return fld.substr(cstr_fldhtm.size());
+}
+
void ResListPager::resultPageFor(int docnum)
{
@@ -263,21 +271,21 @@
subs["I"] = iconurl;
subs["i"] = doc.ipath;
subs["K"] = !doc.meta[Rcl::Doc::keykw].empty() ?
- string("[") + escapeHtml(doc.meta[Rcl::Doc::keykw]) + "]" : "";
+ string("[") + maybeEscapeHtml(doc.meta[Rcl::Doc::keykw]) + "]" : "";
subs["L"] = linksbuf.str();
subs["N"] = numbuf;
subs["M"] = doc.mimetype;
subs["R"] = doc.meta[Rcl::Doc::keyrr];
subs["S"] = sizebuf;
- subs["T"] = escapeHtml(titleOrFilename);
- subs["t"] = escapeHtml(doc.meta[Rcl::Doc::keytt]);
+ subs["T"] = maybeEscapeHtml(titleOrFilename);
+ subs["t"] = maybeEscapeHtml(doc.meta[Rcl::Doc::keytt]);
subs["U"] = url;
// Let %(xx) access all metadata. HTML-neuter everything:
for (map<string,string>::iterator it = doc.meta.begin();
it != doc.meta.end(); it++) {
if (!it->first.empty())
- subs[it->first] = escapeHtml(it->second);
+ subs[it->first] = maybeEscapeHtml(it->second);
}
string formatted;