i18n: always read and write UTF-8, ignoring current locale (#34)

Also remove a bunch of CPP conditions.
Uses the GHC-version-independent UTF-8 layer from pandoc.
This commit is contained in:
Simon Michael 2011-01-21 01:24:51 +00:00
parent ce4347a2be
commit 6a845eb5e4
15 changed files with 45 additions and 68 deletions

View File

@ -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"

View File

@ -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.)
-}

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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)

View File

@ -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)

View File

@ -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.

View File

@ -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 = '*'

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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