From 8856f1501a7f27f4ca4f8033136794e1fdfa1702 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 30 Mar 2004 19:32:00 +0000 Subject: [PATCH] I always meant to remove emphasis in the index by default. Now I do so. It's restorable using \IM. git-svn-id: svn://svn.tartarus.org/sgt/halibut@4000 cda61777-01e9-0310-a592-d414129be87e --- doc/input.but | 5 +++++ index.c | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/doc/input.but b/doc/input.but index 05d18b5..ca66df5 100644 --- a/doc/input.but +++ b/doc/input.but @@ -1059,6 +1059,11 @@ still want it to look like code in the index, whereas most people indexing an emphasised word will \e{not} want it emphasised in the index. +(In fact, \e{no} emphasis in the text inside \c{\\i} will be +preserved in the index. If you really want a term in the index to +appear emphasised, you must say so explicitly using \c{\\IM}; see +\k{input-index-rewrite}.) + Sometimes you might want to index a term which is not explicitly mentioned, but which is highly relevant to the text and you think that somebody looking up that term in the index might find it useful diff --git a/index.c b/index.c index 3b1df51..c312f07 100644 --- 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)) { -- 2.11.0