From: Urban Wallasch Date: Wed, 30 Jun 2021 21:10:38 +0000 (+0200) Subject: * Fixed result highlighting of Katakana headwords and readings. X-Git-Tag: v0.1.0~18 X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=5bd6e48c3c7b4fb78802b0d3d51e87834a145e75;p=jiten-pai.git * Fixed result highlighting of Katakana headwords and readings. --- 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