From 5bd6e48c3c7b4fb78802b0d3d51e87834a145e75 Mon Sep 17 00:00:00 2001 From: Urban Wallasch Date: Wed, 30 Jun 2021 23:10:38 +0200 Subject: [PATCH] * Fixed result highlighting of Katakana headwords and readings. --- jiten-pai.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/jiten-pai.py b/jiten-pai.py index 64c3e24..23f4b36 100755 --- a/jiten-pai.py +++ b/jiten-pai.py @@ -1453,6 +1453,14 @@ class jpMainWindow(QMainWindow): def hl_repl(match, org=None): grp = match.group(0) if org is None else org[match.span()[0]:match.span()[1]] return '%s%s' % (hlfmt, grp) + def hl_jap(rex, word): + hlw = [] + start = 0 + for match in rex.finditer(kata2hira(word)): + hlw.append('%s%s%s' % (word[start:match.span()[0]], hlfmt, word[match.span()[0]:match.span()[1]])) + start = match.span()[1] + hlw.append(word[start:]) + return ''.join(hlw) for idx, res in enumerate(result): # handle dictionary caption if res.headword == '#': @@ -1475,8 +1483,8 @@ class jpMainWindow(QMainWindow): rex = re.compile(res.inf.infi, re.IGNORECASE) else: rex = re_term - headword = rex.sub(lambda m: hl_repl(m, headword), kata2hira(headword)) - reading = rex.sub(lambda m: hl_repl(m, reading), kata2hira(reading)) + headword = hl_jap(rex, headword) + reading = hl_jap(rex, reading) else: gloss = re_term.sub(hl_repl, gloss) # assemble display line -- 2.30.2