From 84396c9dfdd7b463690e4b22b023be134c3d5e00 Mon Sep 17 00:00:00 2001 From: Alec Delaney Date: Tue, 18 Jan 2022 09:39:42 -0500 Subject: [PATCH 1/2] Ignore COMMENT lines when looking for FONTBOUNDINGBOX --- adafruit_bitmap_font/bdf.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/adafruit_bitmap_font/bdf.py b/adafruit_bitmap_font/bdf.py index b7b63fc..81d4e62 100644 --- a/adafruit_bitmap_font/bdf.py +++ b/adafruit_bitmap_font/bdf.py @@ -39,8 +39,7 @@ def __init__(self, f, bitmap_class): self.name = f self.file.seek(0) self.bitmap_class = bitmap_class - line = self.file.readline() - line = str(line, "utf-8") + line = self._readline_file() if not line or not line.startswith("STARTFONT 2.1"): raise ValueError("Unsupported file version") self._verify_bounding_box() @@ -72,8 +71,7 @@ def ascent(self): if self._ascent is None: self.file.seek(0) while True: - line = self.file.readline() - line = str(line, "utf-8") + line = self._readline_file() if not line: break @@ -93,8 +91,9 @@ def _verify_bounding_box(self): # Exception is when font file have a comment. Comments are three lines # 10 lines is a safe bet for _ in range(11): - line = self.file.readline() - line = str(line, "utf-8") + line = self._readline_file() + while line.startswith("COMMENT "): + line = self._readline_file() if line.startswith("FONTBOUNDINGBOX "): _, x, y, x_offset, y_offset = line.split() self._boundingbox = (int(x), int(y), int(x_offset), int(y_offset)) @@ -105,6 +104,10 @@ def _verify_bounding_box(self): raise Exception( "Source file does not have the FOUNTBOUNDINGBOX parameter" ) from error + + def _readline_file(self): + line = self.file.readline() + return str(line, "utf-8") def get_bounding_box(self): """Return the maximum glyph size as a 4-tuple of: width, height, x_offset, y_offset""" From 21b9c629d3ea71dcf0b11a1d1ea2558d3616604c Mon Sep 17 00:00:00 2001 From: Alec Delaney Date: Tue, 18 Jan 2022 09:41:58 -0500 Subject: [PATCH 2/2] Reformatted per pre-commit --- adafruit_bitmap_font/bdf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_bitmap_font/bdf.py b/adafruit_bitmap_font/bdf.py index 81d4e62..e6c7e3d 100644 --- a/adafruit_bitmap_font/bdf.py +++ b/adafruit_bitmap_font/bdf.py @@ -104,7 +104,7 @@ def _verify_bounding_box(self): raise Exception( "Source file does not have the FOUNTBOUNDINGBOX parameter" ) from error - + def _readline_file(self): line = self.file.readline() return str(line, "utf-8")