diff --git a/fountainhead.cabal b/fountainhead.cabal index dc6d047..168122b 100644 --- a/fountainhead.cabal +++ b/fountainhead.cabal @@ -12,7 +12,7 @@ author: Eugen Wissner license-files: LICENSE license: MPL-2.0 -copyright: (c) 2024 Eugen Wissner +copyright: (c) 2025 Eugen Wissner category: Graphics extra-source-files: @@ -25,7 +25,7 @@ common dependencies bytestring ^>= 0.12.0, text ^>= 2.1, zlib ^>= 0.7.0 - default-language: GHC2021 + default-language: GHC2024 library import: dependencies @@ -39,9 +39,9 @@ library Graphics.Fountainhead.TrueType hs-source-dirs: lib build-depends: - containers ^>= 0.6.5, + containers ^>= 0.7, megaparsec ^>= 9.7, - time ^>= 1.12, + time ^>= 1.14, transformers ^>= 0.6, vector ^>= 0.13.0 ghc-options: -Wall diff --git a/lib/Graphics/Fountainhead/Dumper.hs b/lib/Graphics/Fountainhead/Dumper.hs index 1e1491c..dc7a60d 100644 --- a/lib/Graphics/Fountainhead/Dumper.hs +++ b/lib/Graphics/Fountainhead/Dumper.hs @@ -96,6 +96,7 @@ import qualified Text.Megaparsec as Megaparsec import Graphics.Fountainhead.Parser ( ParseErrorBundle , ParseState + , Parser , parseTable , cmapTableP , headTableP @@ -831,6 +832,7 @@ parseRequired processedState fontDirectory = do , locaTable = requiredLoca } where + findRequired :: String -> Parser a -> Either DumpError a findRequired tableName parser = let missingError = Left $ DumpRequiredTableMissingError tableName parseFound tableEntry = parseTable tableEntry parser processedState diff --git a/lib/Graphics/Fountainhead/Metrics.hs b/lib/Graphics/Fountainhead/Metrics.hs index d298775..d67b090 100644 --- a/lib/Graphics/Fountainhead/Metrics.hs +++ b/lib/Graphics/Fountainhead/Metrics.hs @@ -133,7 +133,8 @@ collectMetrics fontFile ttfContents = (_processedState, Left initialResult) -> Left $ MetricsParseError initialResult (processedState, Right initialResult) -> do - let parseForMetrics' = parseForMetrics processedState initialResult + let parseForMetrics' :: String -> Parser a -> Either MetricsError a + parseForMetrics' = parseForMetrics processedState initialResult NameTable{ nameRecord, variable } <- parseForMetrics' "name" nameTableP psNameIndex <- maybeMetricsError (MetricsNameRecordNotFound 6)