Switch to side-by-side view

--- a/src/query/plaintorich.cpp
+++ b/src/query/plaintorich.cpp
@@ -50,7 +50,10 @@
 }
 
 struct MatchEntry {
+    // Start/End byte offsets in the document text
     pair<int, int> offs;
+    // Index of the search group this comes from: this is to relate a 
+    // match to the original user input.
     unsigned int grpidx;
     MatchEntry(int sta, int sto, unsigned int idx) 
 	: offs(sta, sto), grpidx(idx)
@@ -76,11 +79,31 @@
 	for (vector<vector<string> >::const_iterator vit = hdata.groups.begin();
 	     vit != hdata.groups.end(); vit++) {
 	    if (vit->size() == 1) {
-		m_terms[vit->front()] = vit - hdata.groups.begin();
+#ifndef RCL_INDEX_STRIPCHARS
+		if (o_index_stripchars) {
+#endif
+		    m_terms[vit->front()] = vit - hdata.groups.begin();
+#ifndef RCL_INDEX_STRIPCHARS
+		} else {
+		    string dumb = vit->front();
+		    unacmaybefold(vit->front(), dumb, "UTF-8", UNACOP_UNACFOLD);
+		    m_terms[dumb] = vit - hdata.groups.begin();
+		}
+#endif
 	    } else if (vit->size() > 1) {
 		for (vector<string>::const_iterator it = vit->begin(); 
 		     it != vit->end(); it++) {
+#ifndef RCL_INDEX_STRIPCHARS
+		if (o_index_stripchars) {
+#endif
 		    m_gterms.insert(*it);
+#ifndef RCL_INDEX_STRIPCHARS
+		} else {
+		    string dumb = *it;
+		    unacmaybefold(*it, dumb, "UTF-8", UNACOP_UNACFOLD);
+		    m_gterms.insert(dumb);
+		}
+#endif
 		}
 	    }
 	}