{-#语言CPP#-}
模块 GF.系统。慰问(
设置控制台编码,更改控制台编码,
Term颜色(..),获取Term颜色
) 哪里
进口 系统。IO(输入输出)
进口 控制。莫纳德(警卫)
进口 控制。莫纳德。变速箱(莫纳迪奥(..))#ifdef明w32_HOST_OS进口 系统。Win32.控制台
进口 系统。Win32.NLS#其他进口 系统。慰问。Terminfo公司#结尾
setConsoleEncoding::IO()setConsoleEncoding(设置控制台编码) =#ifdef明w32_HOST_OS 做 代码页 <- 获取ACP
设置CP 代码页
设置编码 (“CP”++显示 代码页)#结尾 ()->IO()对于所有(m::*->*)a.Monad m=>a->ma返回 () :: IO(输入输出) ()
changeConsoleEncoding::String->IO()更改控制台编码 字符串代码 =
做#ifdef明w32_HOST_OS 也许 吧 (返回 ()) 设置CP (读取CP 代码)#结尾 字符串->IO()设置编码 字符串代码
setEncoding::String->IO()设置编码 字符串代码 =
做 文本编码电子控制 <- 字符串->IO文本编码mk文本编码 字符串代码
句柄->文本编码->IO()hSet编码 把手标准输入 文本编码电子控制
句柄->文本编码->IO()hSet编码 把手标准输出 文本编码电子控制
句柄->文本编码->IO()hSet编码 把手标准错误 文本编码电子控制#ifdef明w32_HOST_OS设置CP 代码页 =
做 设置控制台CP 代码页
设置控制台输出CP 代码页
读取CP 代码 =
案例 代码 属于
“C”:“P”:c(c) -> 案例 读取 c(c) 属于
[(内容提供商,"")] -> 只是 内容提供商
_ -> 没有什么
“UTF-8” -> 只是 65001
_ -> 没有什么#结束语
数据 Term颜色 = Term颜色 { TermColors->字符串红色Fg,TermColors->字符串蓝色Fg,TermColors->字符串恢复 :: 字符串 } 衍生 Int->TermColors->显示[TermColors]->显示STermColors->字符串(Int->TermColors->ShowS)->(TermColors->字符串)->([术语颜色]->显示)->显示术语颜色对于所有a。(Int->a->ShowS)->(a->String)->([a]->ShowS)->显示showList::[TermColors]->显示$cshowList::[TermColors]->显示显示::TermColors->String$cs显示::TermColors->StringshowsPrec::Int->TermColors->ShowS$cshowsPrec::Int->术语颜色->ShowS显示
无Term颜色::Term颜色无术语颜色 = 字符串->字符串->字符串->TermColorsTerm颜色 字符串"" 字符串"" 字符串""
获取Term颜色 :: 莫纳迪奥 米 => 米 Term颜色#ifdef明w32_HOST_OS获取Term颜色 = 返回 无术语颜色#其他getTerm颜色::m Term颜色获取Term颜色 =
IO TermColors->m TermColor(IO术语颜色->m术语颜色)对于所有(m::*->*)a.MonadIO m=>IO a->ma提升(liftIO) (IO TermColors->m TermColor)->IO TermColors->m TermColours对于所有a b(a->b)->a->b$
做 终点站学期 <- IO端子设置TermFromEnv
术语颜色->IO术语颜色对于所有(m::*->*)a.Monad m=>a->ma返回 (TermColors->IO TermColours)->TermColor->IO Term Colors对于所有a b(a->b)->a->b$ Term颜色->(TermColors->TermColor)->可能是TermColours->Term Colors对于所有的ba.b->(a->b)->也许a->b也许 吧 Term颜色无术语颜色 TermColors->TermColor(术语颜色)对于所有a.a->a身份证件 (也许是术语颜色->术语颜色)->也许是术语颜色->术语颜色对于所有a b(a->b)->a->b$ 终端->功能TermColors->可能TermColor对于所有a.终端->能力a->可能a获取能力 终点站学期 (功能TermColors->可能是TermColor)->功能TermColors->可能TermColor对于所有a b(a->b)->a->b$
做 国际n个 <- 能力Intterm颜色
Bool->功能()对于所有(f::*->*)。备选方案f=>Bool->f()警卫 (国际n个国际->国际->布尔对于所有a.或a=>a->a->Bool>=国际8)
颜色->字符串前景 <- 功能(颜色->字符串)对于所有s.TermStr s=>能力(颜色->s)设置前景颜色
字符串恢复 <- 功能字符串对于所有s.TermStr s=>能力恢复默认颜色
TermColors->功能TermColor对于所有(m::*->*)a.Monad m=>a->ma返回 (TermColors->Capability TermColor)->TermColors->功能TermColor对于所有a b(a->b)->a->b$ 字符串->字符串->字符串->TermColorsTerm颜色 (颜色->字符串前景 颜色红色) (颜色->字符串前景 颜色蓝色) 字符串恢复#结束语