From 4a20751ff62efeb788a8a4fb06313e4485fc2808 Mon Sep 17 00:00:00 2001 From: Rodrigo Tobar Date: Thu, 2 Mar 2023 00:05:25 +0800 Subject: [PATCH] LibPDF: Detect CFF encodings with supplements These are not yet actually parsed, but detecting them means we at least don't fail to understand the *actual* format value, which was causing some CFF fonts to fail to load. --- Userland/Libraries/LibPDF/Fonts/CFF.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibPDF/Fonts/CFF.cpp b/Userland/Libraries/LibPDF/Fonts/CFF.cpp index 5307c594e9..6abbba5994 100644 --- a/Userland/Libraries/LibPDF/Fonts/CFF.cpp +++ b/Userland/Libraries/LibPDF/Fonts/CFF.cpp @@ -412,7 +412,9 @@ PDFErrorOr> CFF::parse_charstrings(Reader&& reader, Vector> CFF::parse_encoding(Reader&& reader) { Vector encoding_codes; - auto format = TRY(reader.try_read()); + auto format_raw = TRY(reader.try_read()); + // TODO: support encoding supplements when highest bit is set + auto format = format_raw & 0x7f; if (format == 0) { auto n_codes = TRY(reader.try_read()); for (u8 i = 0; i < n_codes; i++) {