From 13df336ff5b604c017d631b4c59d4ba9ba37d618 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 10 Apr 2020 13:11:11 +0530 Subject: [PATCH] Ignore invalid chars when subsetting --- src/calibre/utils/fonts/sfnt/subset.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/calibre/utils/fonts/sfnt/subset.py b/src/calibre/utils/fonts/sfnt/subset.py index cdc46f0a2e..a83a620ef6 100644 --- a/src/calibre/utils/fonts/sfnt/subset.py +++ b/src/calibre/utils/fonts/sfnt/subset.py @@ -115,7 +115,12 @@ def safe_ord(x): def subset(raw, individual_chars, ranges=(), warnings=None): warn = partial(do_warn, warnings) - chars = set(map(safe_ord, individual_chars)) + chars = set() + for ic in individual_chars: + try: + chars.add(safe_ord(ic)) + except ValueError: + continue for r in ranges: chars |= set(range(safe_ord(r[0]), safe_ord(r[1])+1))