aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Error.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Error.hs')
-rw-r--r--src/Text/Pandoc/Error.hs13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Error.hs b/src/Text/Pandoc/Error.hs
index 8102f04cc..281b2714f 100644
--- a/src/Text/Pandoc/Error.hs
+++ b/src/Text/Pandoc/Error.hs
@@ -26,7 +26,7 @@ import Data.Text (Text)
import qualified Data.Text as T
import GHC.Generics (Generic)
import Network.HTTP.Client (HttpException)
-import System.Exit (ExitCode (..), exitWith)
+import System.Exit (ExitCode (..))
import System.IO (stderr)
import qualified Text.Pandoc.UTF8 as UTF8
import Text.Printf (printf)
@@ -34,6 +34,7 @@ import Text.Parsec.Error
import Text.Parsec.Pos hiding (Line)
import Text.Pandoc.Shared (tshow)
import Citeproc (CiteprocError, prettyCiteprocError)
+import System.IO.Error (IOError, ioError)
type Input = Text
@@ -87,9 +88,13 @@ renderError e =
errColumn = sourceColumn errPos
ls = T.lines input <> [""]
errorInFile = if length ls > errLine - 1
- then T.concat ["\n", ls !! (errLine - 1)
- ,"\n", T.replicate (errColumn - 1) " "
- ,"^"]
+ then
+ case ls !!? (errLine - 1) of
+ Nothing -> ""
+ Just x ->
+ T.concat ["\n", x, "\n",
+ T.replicate (errColumn - 1) " ",
+ "^"]
else ""
in "\nError at " <> tshow err' <>
-- if error comes from a chunk or included file,