diff options
author | pacien | 2022-10-30 01:05:45 +0200 |
---|---|---|
committer | pacien | 2022-10-30 01:10:54 +0200 |
commit | 0fddc74a3f9add47841124b4d77b097f4646d14f (patch) | |
tree | e0e841d9cfc101a1247e9526f7cf65d50d4ed4c2 /compiler/app | |
parent | f864eeca506331c1dee2cd3f5f0df4fe806f303a (diff) | |
download | ldgallery-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')
-rw-r--r-- | compiler/app/Main.hs | 5 |
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) | |||
28 | import System.FilePath ((</>)) | 28 | import System.FilePath ((</>)) |
29 | import System.Directory (canonicalizePath, listDirectory) | 29 | import System.Directory (canonicalizePath, listDirectory) |
30 | import System.Console.CmdArgs | 30 | import System.Console.CmdArgs |
31 | import Main.Utf8 (withUtf8) | ||
31 | 32 | ||
32 | import Compiler | 33 | import Compiler |
33 | import Files (readDirectory, copyTo, remove) | 34 | import Files (readDirectory, copyTo, remove) |
@@ -103,7 +104,7 @@ options = Options | |||
103 | 104 | ||
104 | main :: IO () | 105 | main :: IO () |
105 | main = | 106 | main = |
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 |