module Util where
import Imports
import Data.Char
convertDosLineEndings :: String -> String
convertDosLineEndings :: String -> String
convertDosLineEndings = String -> String
go
where
go :: String -> String
go String
input = case String
input of
Char
'\r':Char
'\n':String
xs -> Char
'\n' forall a. a -> [a] -> [a]
: String -> String
go String
xs
String
"\r" -> String
""
Char
x:String
xs -> Char
x forall a. a -> [a] -> [a]
: String -> String
go String
xs
String
"" -> String
""
takeWhileEnd :: (a -> Bool) -> [a] -> [a]
takeWhileEnd :: forall a. (a -> Bool) -> [a] -> [a]
takeWhileEnd a -> Bool
p = forall a. [a] -> [a]
reverse forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (a -> Bool) -> [a] -> [a]
takeWhile a -> Bool
p forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. [a] -> [a]
reverse
stripEnd :: String -> String
stripEnd :: String -> String
stripEnd = forall a. [a] -> [a]
reverse forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (a -> Bool) -> [a] -> [a]
dropWhile Char -> Bool
isSpace forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. [a] -> [a]
reverse