diff --git a/hledger-lib/Hledger/Utils/ParseErrors.hs b/hledger-lib/Hledger/Utils/ParseErrors.hs index 5f1f84190..86eb777a5 100644 --- a/hledger-lib/Hledger/Utils/ParseErrors.hs +++ b/hledger-lib/Hledger/Utils/ParseErrors.hs @@ -134,11 +134,37 @@ customParseErrorPretty source err = case findCustomError err of --- * Modified Megaparsec source --- The below code has been copied from the Megaparsec module and modified --- to suit our needs. These changes are indicated by square brackets. +-- The below code has been copied from Megaparsec (v.6.4.1, +-- Text.Megaparsec.Error) and modified to suit our needs. These changes are +-- indicated by square brackets. The following copyright notice, conditions, +-- and disclaimer apply to all code below this point. -- --- NOTE: I am not sure what we are now obligated to do, having directly --- copied source code from another project. +-- Copyright © 2015–2018 Megaparsec contributors
+-- Copyright © 2007 Paolo Martini
+-- Copyright © 1999–2000 Daan Leijen +-- +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- * Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- * Redistributions in binary form must reproduce the above copyright notice, +-- this list of conditions and the following disclaimer in the documentation +-- and/or other materials provided with the distribution. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS “AS IS” AND ANY EXPRESS +-- OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +-- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +-- NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, +-- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +-- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +-- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- | Pretty-print a 'ParseError Char CustomErr' and display the line on @@ -172,14 +198,14 @@ customParseErrorPretty_ w s e l = sourcePosStackPretty (errorPos e) <> ":\n" <> padding <> "|\n" <> lineNumber <> " | " <> rline <> "\n" <> - padding <> "| " <> rpadding <> highlight <> "\n" <> + padding <> "| " <> rpadding <> highlight <> "\n" <> -- [added `highlight`] parseErrorTextPretty e where epos = NE.head (errorPos e) -- [changed from NE.last to NE.head] lineNumber = (show . unPos . sourceLine) epos padding = replicate (length lineNumber + 1) ' ' rpadding = replicate (unPos (sourceColumn epos) - 1) ' ' - highlight = replicate (unPos l) '^' + highlight = replicate (unPos l) '^' -- [added] rline = case rline' of [] -> ""