aboutsummaryrefslogtreecommitdiff
path: root/compiler/app/Main.hs
diff options
context:
space:
mode:
authorpacien2022-10-30 01:05:45 +0200
committerpacien2022-10-30 01:10:54 +0200
commit0fddc74a3f9add47841124b4d77b097f4646d14f (patch)
treee0e841d9cfc101a1247e9526f7cf65d50d4ed4c2 /compiler/app/Main.hs
parentf864eeca506331c1dee2cd3f5f0df4fe806f303a (diff)
downloadldgallery-0fddc74a3f9add47841124b4d77b097f4646d14f.tar.gz
compiler: fix support for non-utf8 terminals
The compiler echoes the names of the files being processed. Those file names may contain UTF-8 characters. However, some consoles may not support those. This is notably the case of the Windows CMD or on Linux with the legacy C locale. This caused the following error: ldgallery: <stdout>: commitBuffer: invalid argument (invalid character) This patch adds automatic transliteration when a non-UTF8 terminal is detected, so that neither the compiler or the terminal crash due to UTF8 characters. GitHub: closes #341
Diffstat (limited to 'compiler/app/Main.hs')
-rw-r--r--compiler/app/Main.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/app/Main.hs b/compiler/app/Main.hs
index 3e6f254..a9630ce 100644
--- a/compiler/app/Main.hs
+++ b/compiler/app/Main.hs
@@ -1,7 +1,7 @@
1-- ldgallery - A static generator which turns a collection of tagged 1-- ldgallery - A static generator which turns a collection of tagged
2-- pictures into a searchable web gallery. 2-- pictures into a searchable web gallery.
3-- 3--
4-- Copyright (C) 2019-2021 Pacien TRAN-GIRARD 4-- Copyright (C) 2019-2022 Pacien TRAN-GIRARD
5-- 5--
6-- This program is free software: you can redistribute it and/or modify 6-- This program is free software: you can redistribute it and/or modify
7-- it under the terms of the GNU Affero General Public License as 7-- it under the terms of the GNU Affero General Public License as
@@ -28,6 +28,7 @@ import Data.Aeson (ToJSON)
28import System.FilePath ((</>)) 28import System.FilePath ((</>))
29import System.Directory (canonicalizePath, listDirectory) 29import System.Directory (canonicalizePath, listDirectory)
30import System.Console.CmdArgs 30import System.Console.CmdArgs
31import Main.Utf8 (withUtf8)
31 32
32import Compiler 33import Compiler
33import Files (readDirectory, copyTo, remove) 34import Files (readDirectory, copyTo, remove)
@@ -103,7 +104,7 @@ options = Options
103 104
104main :: IO () 105main :: IO ()
105main = 106main =
106 do 107 withUtf8 $ do
107 opts <- cmdArgs options 108 opts <- cmdArgs options
108 buildGallery opts 109 buildGallery opts
109 deployViewer opts 110 deployViewer opts