engine: a Hanja word shows once, as every other candidate does

hanjaquery was the only query that assigned dictprefix's output straight
into im.kouho; emojiquery, dictqjp and katakouho all go through
addkouho, which is the only place a duplicate is dropped.  Two readings
under one prefix can carry the same word, and 198 of the 61,479 one- and
two-syllable prefixes in hanja.dict do: 게 listed 偈句 at rows 8 and 9,
개근 listed 皆勤狀 twice in five.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-18 16:20:18 +09:00
parent 1bc0ba0491
commit 761428dbc4
2 changed files with 7 additions and 3 deletions

View File

@@ -653,14 +653,16 @@ emojiquery(void)
static void
hanjaquery(void)
{
Str tail;
Str kouho[Maxkouho], tail;
int i, n;
transstr(im.l, &search.seed, &search.raw, &tail);
search.text = search.back;
sappend(&search.text, &tail);
clearkouho();
im.nkouho = dictprefix(getlang(LangHANJA)->dict, &search.text,
im.kouho, Maxkouho);
n = dictprefix(getlang(LangHANJA)->dict, &search.text, kouho, Maxkouho);
for(i = 0; i < n; i++)
addkouho(&kouho[i]);
selectfirst();
}