summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fountainhead.cabal8
-rw-r--r--lib/Graphics/Fountainhead/Dumper.hs2
-rw-r--r--lib/Graphics/Fountainhead/Metrics.hs3
3 files changed, 8 insertions, 5 deletions
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)