From 2c3310a592e33bf4bd4e4a1328efda0d1b6ac218 Mon Sep 17 00:00:00 2001
From: John MacFarlane <fiddlosopher@gmail.com>
Date: Fri, 19 Dec 2014 16:13:38 -0800
Subject: [PATCH] Added Text.Pandoc.Compat.Locale to assist with transition to
 time 1.5.

---
 pandoc.cabal                        | 5 +++--
 src/Text/Pandoc/Compat/Locale.hs    | 9 +++++++++
 src/Text/Pandoc/Readers/Txt2Tags.hs | 3 +--
 src/Text/Pandoc/Shared.hs           | 2 +-
 src/Text/Pandoc/Writers/Docx.hs     | 6 +++---
 src/Text/Pandoc/Writers/EPUB.hs     | 3 +--
 src/Text/Pandoc/Writers/OPML.hs     | 3 +--
 7 files changed, 19 insertions(+), 12 deletions(-)
 create mode 100644 src/Text/Pandoc/Compat/Locale.hs

diff --git a/pandoc.cabal b/pandoc.cabal
index 6abc8b0bc..f974275d4 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -208,8 +208,8 @@ Flag make-pandoc-man-pages
   Default:       False
 
 Flag network-uri
-  Description: Get Network.URI from the network-uri package
-  Default: True
+  Description:   Get Network.URI from the network-uri package
+  Default:       True
 
 Library
   Build-Depends: base >= 4.2 && <5,
@@ -339,6 +339,7 @@ Library
                    Text.Pandoc.ImageSize,
                    Text.Pandoc.Slides,
                    Text.Pandoc.Highlighting,
+                   Text.Pandoc.Compat.Locale,
                    Text.Pandoc.Compat.Monoid,
                    Text.Pandoc.Compat.Except,
                    Text.Pandoc.Compat.TagSoupEntity,
diff --git a/src/Text/Pandoc/Compat/Locale.hs b/src/Text/Pandoc/Compat/Locale.hs
new file mode 100644
index 000000000..ac791136c
--- /dev/null
+++ b/src/Text/Pandoc/Compat/Locale.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE CPP #-}
+module Text.Pandoc.Compat.Locale ( defaultTimeLocale )
+where
+
+#if MIN_VERSION_time(1,5,0)
+import Data.Time.Format ( defaultTimeLocale )
+#else
+import System.Locale ( defaultTimeLocale )
+#endif
diff --git a/src/Text/Pandoc/Readers/Txt2Tags.hs b/src/Text/Pandoc/Readers/Txt2Tags.hs
index 6f8c19ac7..834d18c5c 100644
--- a/src/Text/Pandoc/Readers/Txt2Tags.hs
+++ b/src/Text/Pandoc/Readers/Txt2Tags.hs
@@ -52,7 +52,7 @@ import Control.Monad.Reader (Reader, runReader, asks)
 import Data.Time.LocalTime (getZonedTime)
 import Text.Pandoc.Compat.Directory(getModificationTime)
 import Data.Time.Format (formatTime)
-import System.Locale (defaultTimeLocale)
+import Text.Pandoc.Compat.Locale (defaultTimeLocale)
 import System.IO.Error (catchIOError)
 
 type T2T = ParserT String ParserState (Reader T2TMeta)
@@ -576,4 +576,3 @@ atStart = (sourceColumn <$> getPosition) >>= guard . (== 1)
 
 ignoreSpacesCap :: T2T String -> T2T String
 ignoreSpacesCap p = map toLower <$> (spaces *> p <* spaces)
-
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index 9aa70e6f2..bc960fd38 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -115,7 +115,7 @@ import qualified Control.Monad.State as S
 import qualified Control.Exception as E
 import Control.Monad (msum, unless)
 import Text.Pandoc.Pretty (charWidth)
-import System.Locale (defaultTimeLocale)
+import Text.Pandoc.Compat.Locale (defaultTimeLocale)
 import Data.Time
 import System.IO (stderr)
 import System.IO.Temp
diff --git a/src/Text/Pandoc/Writers/Docx.hs b/src/Text/Pandoc/Writers/Docx.hs
index 5b9cc62ab..466cf2c07 100644
--- a/src/Text/Pandoc/Writers/Docx.hs
+++ b/src/Text/Pandoc/Writers/Docx.hs
@@ -41,7 +41,7 @@ import Data.Time.Clock.POSIX
 import Data.Time.Clock
 import Data.Time.Format
 import System.Environment
-import System.Locale
+import Text.Pandoc.Compat.Locale (defaultTimeLocale)
 import Text.Pandoc.Definition
 import Text.Pandoc.Generic
 import Text.Pandoc.ImageSize
@@ -1060,7 +1060,7 @@ parseXml refArchive distArchive relpath =
 fitToPage :: (Integer, Integer) -> Integer -> (Integer, Integer)
 fitToPage (x, y) pageWidth
   -- Fixes width to the page width and scales the height
-  | x > pageWidth = 
-    (pageWidth, round $ 
+  | x > pageWidth =
+    (pageWidth, round $
       ((fromIntegral pageWidth) / ((fromIntegral :: Integer -> Double) x)) * (fromIntegral y))
   | otherwise = (x, y)
diff --git a/src/Text/Pandoc/Writers/EPUB.hs b/src/Text/Pandoc/Writers/EPUB.hs
index 09f696665..32da3a2d3 100644
--- a/src/Text/Pandoc/Writers/EPUB.hs
+++ b/src/Text/Pandoc/Writers/EPUB.hs
@@ -44,7 +44,7 @@ import Codec.Archive.Zip ( emptyArchive, addEntryToArchive, eRelativePath, fromE
 import Control.Applicative ((<$>))
 import Data.Time.Clock.POSIX ( getPOSIXTime )
 import Data.Time (getCurrentTime,UTCTime, formatTime)
-import System.Locale ( defaultTimeLocale )
+import Text.Pandoc.Compat.Locale ( defaultTimeLocale )
 import Text.Pandoc.Shared ( trimr, renderTags', safeRead, uniqueIdent, trim
                           , normalizeDate, readDataFile, stringify, warn
                           , hierarchicalize, fetchItem' )
@@ -1215,4 +1215,3 @@ docTitle' meta = fromMaybe [] $ go <$> lookupMeta "title" meta
                    _ -> []
         go (MetaList xs) = concatMap go xs
         go _ = []
-
diff --git a/src/Text/Pandoc/Writers/OPML.hs b/src/Text/Pandoc/Writers/OPML.hs
index dd359f3f5..5c8ef8c45 100644
--- a/src/Text/Pandoc/Writers/OPML.hs
+++ b/src/Text/Pandoc/Writers/OPML.hs
@@ -38,7 +38,7 @@ import Text.Pandoc.Writers.HTML (writeHtmlString)
 import Text.Pandoc.Writers.Markdown (writeMarkdown)
 import Text.Pandoc.Pretty
 import Data.Time
-import System.Locale (defaultTimeLocale)
+import Text.Pandoc.Compat.Locale (defaultTimeLocale)
 import qualified Text.Pandoc.Builder as B
 
 -- | Convert Pandoc document to string in OPML format.
@@ -87,4 +87,3 @@ elementToOPML opts (Sec _ _num _ title elements) =
                 | not (null blocks)]
   in  inTags True "outline" attrs $
       vcat (map (elementToOPML opts) rest)
-