I always meant to remove emphasis in the index by default. Now I do
[sgt/halibut] / index.c
diff --git a/index.c b/index.c
index 3b1df51..c312f07 100644 (file)
--- a/index.c
+++ b/index.c
@@ -61,6 +61,24 @@ void index_merge(indexdata *idx, int is_explicit, wchar_t *tags, word *text) {
     indextag *t, *existing;
 
     /*
+     * For an implicit merge, we want to remove all emphasis,
+     * because the chances are that the user didn't really want to
+     * index the term as emphasised.
+     */
+    {
+       word *w;
+
+       for (w = text; w; w = w->next) {
+           if (w->type == word_Emph)
+               w->type = word_Normal;
+           else if (w->type == word_EmphSpace)
+               w->type = word_WhiteSpace;
+           else if (w->type == word_EmphQuote)
+               w->type = word_Quote;
+       }
+    }
+
+    /*
      * FIXME: want to warn on overlapping source sets.
      */
     for (; *tags; tags = uadv(tags)) {