From 301844ae38c1cdde885ee5d5bb34560786962bf4 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 25 Dec 2020 20:38:47 +0000 Subject: [PATCH] Bug #1909293:Composite tag-like column: problem with case --- src/calibre/utils/formatter_functions.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/calibre/utils/formatter_functions.py b/src/calibre/utils/formatter_functions.py index 720a563f40..e0513c2922 100644 --- a/src/calibre/utils/formatter_functions.py +++ b/src/calibre/utils/formatter_functions.py @@ -1306,16 +1306,9 @@ class BuiltinListUnion(BuiltinFormatterFunction): aliases = ['merge_lists'] def evaluate(self, formatter, kwargs, mi, locals, list1, list2, separator): - res = [l.strip() for l in list1.split(separator) if l.strip()] - l2 = [l.strip() for l in list2.split(separator) if l.strip()] - lcl1 = {icu_lower(l) for l in res} - - for i in l2: - if icu_lower(i) not in lcl1 and i not in res: - res.append(i) - if separator == ',': - return ', '.join(res) - return separator.join(res) + res = {icu_lower(l.strip()): l.strip() for l in list2.split(separator) if l.strip()} + res.update({icu_lower(l.strip()): l.strip() for l in list1.split(separator) if l.strip()}) + return separator.join(res.values()) class BuiltinListDifference(BuiltinFormatterFunction):