From 5d3674947479b18f6b3b94adf5078ea9b47fe5c4 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sat, 6 Aug 2011 15:26:21 +0100 Subject: [PATCH] Small fixes to template functions sublist, list_item, and swap_around_comma to strip the list items. --- src/calibre/utils/formatter_functions.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/calibre/utils/formatter_functions.py b/src/calibre/utils/formatter_functions.py index 0b54a85b9c..fbff64c800 100644 --- a/src/calibre/utils/formatter_functions.py +++ b/src/calibre/utils/formatter_functions.py @@ -432,7 +432,7 @@ class BuiltinSwapAroundComma(BuiltinFormatterFunction): 'returns val unchanged') def evaluate(self, formatter, kwargs, mi, locals, val): - return re.sub(r'^(.*?),(.*$)', r'\2 \1', val, flags=re.I) + return re.sub(r'^(.*?),\s*(.*$)', r'\2 \1', val, flags=re.I).strip() class BuiltinIfempty(BuiltinFormatterFunction): name = 'ifempty' @@ -502,7 +502,7 @@ class BuiltinListitem(BuiltinFormatterFunction): index = int(index) val = val.split(sep) try: - return val[index] + return val[index].strip() except: return '' @@ -620,7 +620,8 @@ class BuiltinSublist(BuiltinFormatterFunction): return '' si = int(start_index) ei = int(end_index) - val = val.split(sep) + # allow empty list items so counts are what the user expects + val = [v.strip() for v in val.split(sep)] try: if ei == 0: return sep.join(val[si:])