diff --git a/hledger-chart/Hledger/Chart/Main.hs b/hledger-chart/Hledger/Chart/Main.hs index c7fde445b..71a4a3980 100644 --- a/hledger-chart/Hledger/Chart/Main.hs +++ b/hledger-chart/Hledger/Chart/Main.hs @@ -17,15 +17,13 @@ import Data.List import Safe (readDef) import System.Console.GetOpt import System.Exit (exitFailure) -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding (putStr, putStrLn) -import System.IO.UTF8 (putStr, putStrLn) -#endif import Hledger.Cli.Options import Hledger.Cli.Utils (withJournalDo) import Hledger.Cli.Version (progversionstr, binaryfilename) import Hledger.Data +import Prelude hiding (putStr, putStrLn) +import Hledger.Data.UTF8 (putStr, putStrLn) progname_chart = progname_cli ++ "-chart" diff --git a/hledger-lib/Hledger/Data.hs b/hledger-lib/Hledger/Data.hs index 54e8cbf3d..3b5161554 100644 --- a/hledger-lib/Hledger/Data.hs +++ b/hledger-lib/Hledger/Data.hs @@ -2,7 +2,8 @@ The Hledger.Data library allows parsing and querying of C++ ledger-style journal files. It generally provides a compatible subset of C++ ledger's -functionality. This package re-exports all the Hledger.Data.* modules. +functionality. This package re-exports all the Hledger.Data.* modules +(except UTF8, which requires an explicit import.) -} diff --git a/hledger-lib/Hledger/Data/Utils.hs b/hledger-lib/Hledger/Data/Utils.hs index d4b3364d2..473ff916d 100644 --- a/hledger-lib/Hledger/Data/Utils.hs +++ b/hledger-lib/Hledger/Data/Utils.hs @@ -19,6 +19,7 @@ module Data.Time.Calendar, module Data.Time.LocalTime, module Debug.Trace, module Hledger.Data.Utils, +-- module Hledger.Data.UTF8, module Text.Printf, module Text.RegexPR, module Test.HUnit, @@ -36,10 +37,9 @@ import Data.Time.Clock import Data.Time.Calendar import Data.Time.LocalTime import Debug.Trace -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding (readFile,putStr,print) -import System.IO.UTF8 -#endif +-- needs to be done in each module I think +-- import Prelude hiding (readFile,writeFile,getContents,putStr,putStrLn) +-- import Hledger.Data.UTF8 import Test.HUnit import Text.Printf import Text.RegexPR diff --git a/hledger-lib/Hledger/Read.hs b/hledger-lib/Hledger/Read.hs index a87e34cba..f557a95e0 100644 --- a/hledger-lib/Hledger/Read.hs +++ b/hledger-lib/Hledger/Read.hs @@ -16,13 +16,6 @@ module Hledger.Read ( myTimelog, ) where -import Hledger.Data.Dates (getCurrentDay) -import Hledger.Data.Types (Journal(..), Reader(..)) -import Hledger.Data.Journal (nullctx) -import Hledger.Data.Utils -import Hledger.Read.JournalReader as JournalReader -import Hledger.Read.TimelogReader as TimelogReader - import Control.Monad.Error import Data.Either (partitionEithers) import Safe (headDef) @@ -30,12 +23,15 @@ import System.Directory (doesFileExist, getHomeDirectory) import System.Environment (getEnv) import System.FilePath (()) import System.IO (IOMode(..), withFile, stderr) -#if __GLASGOW_HASKELL__ <= 610 + +import Hledger.Data.Dates (getCurrentDay) +import Hledger.Data.Types (Journal(..), Reader(..)) +import Hledger.Data.Journal (nullctx) +import Hledger.Data.Utils import Prelude hiding (getContents) -import System.IO.UTF8 (getContents, hGetContents) -#else -import System.IO (hGetContents) -#endif +import Hledger.Data.UTF8 (getContents, hGetContents) +import Hledger.Read.JournalReader as JournalReader +import Hledger.Read.TimelogReader as TimelogReader journalenvvar = "LEDGER_FILE" diff --git a/hledger-lib/Hledger/Read/JournalReader.hs b/hledger-lib/Hledger/Read/JournalReader.hs index 7fc077d98..880f781b9 100644 --- a/hledger-lib/Hledger/Read/JournalReader.hs +++ b/hledger-lib/Hledger/Read/JournalReader.hs @@ -121,12 +121,10 @@ import Control.Monad.Error (ErrorT(..), throwError, catchError) import Data.List.Split (wordsBy) import Safe (headDef) import Text.ParserCombinators.Parsec hiding (parse) -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding (readFile, putStr, putStrLn, print, getContents) -import System.IO.UTF8 -#endif import Hledger.Data +import Prelude hiding (readFile) +import Hledger.Data.UTF8 (readFile) import Hledger.Read.Utils diff --git a/hledger-lib/hledger-lib.cabal b/hledger-lib/hledger-lib.cabal index 06ec919a6..36ee0f2e3 100644 --- a/hledger-lib/hledger-lib.cabal +++ b/hledger-lib/hledger-lib.cabal @@ -42,12 +42,14 @@ library Hledger.Data.TimeLog Hledger.Data.Types Hledger.Data.Utils + Hledger.Data.UTF8 Hledger.Read Hledger.Read.Utils Hledger.Read.JournalReader Hledger.Read.TimelogReader Build-Depends: base >= 3 && < 5 + ,bytestring ,containers ,directory ,filepath diff --git a/hledger-vty/Hledger/Vty/Main.hs b/hledger-vty/Hledger/Vty/Main.hs index 058228df0..a04e77d77 100644 --- a/hledger-vty/Hledger/Vty/Main.hs +++ b/hledger-vty/Hledger/Vty/Main.hs @@ -7,10 +7,6 @@ Released under GPL version 3 or later. module Hledger.Vty.Main where -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding (putStr, putStrLn) -import System.IO.UTF8 (putStr, putStrLn) -#endif import Graphics.Vty import Safe (headDef) import System.Console.GetOpt @@ -22,6 +18,8 @@ import Hledger.Cli.Register import Hledger.Cli.Utils (withJournalDo) import Hledger.Cli.Version (progversionstr, binaryfilename) import Hledger.Data +import Prelude hiding (putStr, putStrLn) +import Hledger.Data.UTF8 (putStr, putStrLn) progname_vty = progname_cli ++ "-vty" diff --git a/hledger-web/Hledger/Web/Main.hs b/hledger-web/Hledger/Web/Main.hs index 5c7fd528a..64c5393c2 100644 --- a/hledger-web/Hledger/Web/Main.hs +++ b/hledger-web/Hledger/Web/Main.hs @@ -7,10 +7,6 @@ Released under GPL version 3 or later. module Hledger.Web.Main where -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding (putStr, putStrLn) -import System.IO.UTF8 (putStr, putStrLn) -#endif import Control.Concurrent (forkIO, threadDelay) import Network.Wai.Handler.SimpleServer (run) import System.Exit (exitFailure) @@ -23,6 +19,8 @@ import Hledger.Cli.Options import Hledger.Cli.Utils (withJournalDo, openBrowserOn) import Hledger.Cli.Version (progversionstr, binaryfilename) import Hledger.Data +import Prelude hiding (putStr, putStrLn) +import Hledger.Data.UTF8 (putStr, putStrLn) import Hledger.Web.App (App(..), withApp) import Hledger.Web.Files (createFilesIfMissing) import Hledger.Web.Settings (browserstartdelay, defhost, defport, datadir) diff --git a/hledger/Hledger/Cli/Add.hs b/hledger/Hledger/Cli/Add.hs index dfc6bf8ad..b45562572 100644 --- a/hledger/Hledger/Cli/Add.hs +++ b/hledger/Hledger/Cli/Add.hs @@ -15,13 +15,10 @@ import Hledger.Data import Hledger.Read.JournalReader (someamount) import Hledger.Cli.Options import Hledger.Cli.Register (registerReport, registerReportAsText) -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding (putStr, putStrLn, getLine, appendFile) -import System.IO.UTF8 -import System.IO ( stderr ) -#else +import Prelude hiding (putStr, putStrLn, appendFile) +import Hledger.Data.UTF8 (putStr, putStrLn, appendFile) + import System.IO ( stderr, hPutStrLn, hPutStr ) -#endif import System.IO.Error import Text.ParserCombinators.Parsec import Hledger.Cli.Utils (readJournalWithOpts) diff --git a/hledger/Hledger/Cli/Balance.hs b/hledger/Hledger/Cli/Balance.hs index 194ae9676..72897debc 100644 --- a/hledger/Hledger/Cli/Balance.hs +++ b/hledger/Hledger/Cli/Balance.hs @@ -111,10 +111,8 @@ import Hledger.Data.AccountName import Hledger.Data.Posting import Hledger.Data.Ledger import Hledger.Cli.Options -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding ( putStr ) -import System.IO.UTF8 -#endif +import Prelude hiding (putStr) +import Hledger.Data.UTF8 (putStr) -- | A balance report is a chart of accounts with balances, and their grand total. diff --git a/hledger/Hledger/Cli/Histogram.hs b/hledger/Hledger/Cli/Histogram.hs index 376d10641..9acc3d84d 100644 --- a/hledger/Hledger/Cli/Histogram.hs +++ b/hledger/Hledger/Cli/Histogram.hs @@ -9,10 +9,8 @@ module Hledger.Cli.Histogram where import Hledger.Data import Hledger.Cli.Options -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding ( putStr ) -import System.IO.UTF8 -#endif +import Prelude hiding (putStr) +import Hledger.Data.UTF8 (putStr) barchar = '*' diff --git a/hledger/Hledger/Cli/Main.hs b/hledger/Hledger/Cli/Main.hs index c63b01b34..1bfb6a2b0 100644 --- a/hledger/Hledger/Cli/Main.hs +++ b/hledger/Hledger/Cli/Main.hs @@ -39,11 +39,8 @@ See "Hledger.Data.Ledger" for more examples. module Hledger.Cli.Main where -#if __GLASGOW_HASKELL__ <= 610 import Prelude hiding (putStr, putStrLn) -import System.IO.UTF8 -#endif - +import Hledger.Data.UTF8 (putStr, putStrLn) import Hledger.Data import Hledger.Cli.Commands import Hledger.Cli.Options diff --git a/hledger/Hledger/Cli/Print.hs b/hledger/Hledger/Cli/Print.hs index a91e08ba7..db9a2782d 100644 --- a/hledger/Hledger/Cli/Print.hs +++ b/hledger/Hledger/Cli/Print.hs @@ -12,12 +12,10 @@ module Hledger.Cli.Print ( ,journalReport ,showTransactions ) where -import Hledger.Data import Hledger.Cli.Options -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding ( putStr ) -import System.IO.UTF8 -#endif +import Hledger.Data +import Prelude hiding (putStr) +import Hledger.Data.UTF8 (putStr) -- | A "journal report" is just a list of transactions. diff --git a/hledger/Hledger/Cli/Register.hs b/hledger/Hledger/Cli/Register.hs index 3338f7265..9d93451a9 100644 --- a/hledger/Hledger/Cli/Register.hs +++ b/hledger/Hledger/Cli/Register.hs @@ -16,14 +16,13 @@ module Hledger.Cli.Register ( ) where import Safe (headMay, lastMay) -import Hledger.Data -import Hledger.Cli.Options -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding ( putStr ) -import System.IO.UTF8 -#endif import Text.ParserCombinators.Parsec +import Hledger.Cli.Options +import Hledger.Data +import Prelude hiding (putStr) +import Hledger.Data.UTF8 (putStr) + -- | A register report is a list of postings to an account or set of -- accounts, with a running total. Postings may be actual postings, or diff --git a/hledger/Hledger/Cli/Stats.hs b/hledger/Hledger/Cli/Stats.hs index 57638ec95..082fa681d 100644 --- a/hledger/Hledger/Cli/Stats.hs +++ b/hledger/Hledger/Cli/Stats.hs @@ -7,13 +7,12 @@ Print some statistics for the journal. module Hledger.Cli.Stats where -import Hledger.Data -import Hledger.Cli.Options import qualified Data.Map as Map -#if __GLASGOW_HASKELL__ <= 610 -import Prelude hiding ( putStr ) -import System.IO.UTF8 -#endif + +import Hledger.Cli.Options +import Hledger.Data +import Prelude hiding (putStr) +import Hledger.Data.UTF8 (putStr) -- like Register.summarisePostings