summaryrefslogtreecommitdiff
path: root/lib/Graphics/Fountainhead/TrueType.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Graphics/Fountainhead/TrueType.hs')
-rw-r--r--lib/Graphics/Fountainhead/TrueType.hs19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Graphics/Fountainhead/TrueType.hs b/lib/Graphics/Fountainhead/TrueType.hs
index 55d55ae..03852b5 100644
--- a/lib/Graphics/Fountainhead/TrueType.hs
+++ b/lib/Graphics/Fountainhead/TrueType.hs
@@ -4,7 +4,10 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ViewPatterns #-}
-- | Types representing a TrueType font.
module Graphics.Fountainhead.TrueType
@@ -85,6 +88,7 @@ module Graphics.Fountainhead.TrueType
, findTableByTag
, unLocaTable
, nameStringOffset
+ , pattern Os2Version4CommonFields
) where
import Data.ByteString (ByteString)
@@ -545,6 +549,21 @@ data Os2Table
| Os2Version5 Os2BaseFields Os2MicrosoftFields Os2Version5Fields
deriving (Eq, Show)
+pattern Os2Version4CommonFields :: Os2BaseFields -> Os2Version4Fields -> Os2Table
+pattern Os2Version4CommonFields baseFields versionFields <-
+ (os2Version4CommonFields -> Just (baseFields, versionFields))
+
+{-# COMPLETE Os2Version4CommonFields, Os2Version0, Os2Version1, Os2Version5 #-}
+
+os2Version4CommonFields :: Os2Table -> Maybe (Os2BaseFields, Os2Version4Fields)
+os2Version4CommonFields = \case
+ Os2Version0{} -> Nothing
+ Os2Version1{} -> Nothing
+ Os2Version2 baseFields _ versionFields -> Just (baseFields, versionFields)
+ Os2Version3 baseFields _ versionFields -> Just (baseFields, versionFields)
+ Os2Version4 baseFields _ versionFields -> Just (baseFields, versionFields)
+ Os2Version5{} -> Nothing
+
data Os2Version1Fields = Os2Version1Fields
{ ulCodePageRange1 :: Word32
, ulCodePageRange2 :: Word32