From 4cf17349af12df50c3f83dd50b6daf8c2237b681 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 22 Jan 2013 22:26:23 +0530 Subject: [PATCH] Fix #1102403 (Private bug) --- src/calibre/utils/fonts/sfnt/metrics.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/calibre/utils/fonts/sfnt/metrics.py b/src/calibre/utils/fonts/sfnt/metrics.py index 4843893fc3..6f8deff31b 100644 --- a/src/calibre/utils/fonts/sfnt/metrics.py +++ b/src/calibre/utils/fonts/sfnt/metrics.py @@ -20,6 +20,10 @@ class FontMetrics(object): ''' def __init__(self, sfnt): + for table in (b'head', b'hhea', b'hmtx', b'cmap', b'OS/2', b'post', + b'name'): + if table not in sfnt: + raise UnsupportedFont('This font has no %s table'%table) self.sfnt = sfnt self.head = self.sfnt[b'head'] @@ -32,10 +36,7 @@ class FontMetrics(object): self._advance_widths = hhea.advance_widths self.cmap = self.sfnt[b'cmap'] self.units_per_em = self.head.units_per_em - try: - self.os2 = self.sfnt[b'OS/2'] - except KeyError: - raise UnsupportedFont('This font has no OS/2 table') + self.os2 = self.sfnt[b'OS/2'] self.os2.read_data() self.post = self.sfnt[b'post'] self.post.read_data()