diff --git a/src/cf.app.src b/src/cf.app.src index 1e67e0b..3ba5dde 100644 --- a/src/cf.app.src +++ b/src/cf.app.src @@ -1,10 +1,10 @@ {application,cf, [{description,"Terminal colour helper"}, - {vsn,"0.1.2"}, + {vsn,"0.1.3"}, {registered,[]}, {applications,[kernel,stdlib]}, {env,[]}, {modules,[]}, - {contributors,["Heinz N. Gies "]}, + {maintainers,["Heinz N. Gies "]}, {licenses,["MIT"]}, {links,[]}]}. diff --git a/src/cf.erl b/src/cf.erl index 6fbe873..1788b67 100644 --- a/src/cf.erl +++ b/src/cf.erl @@ -96,22 +96,36 @@ format(Fmt) -> -define(CFMT_U(Char, Colour), cfmt_([$~, $_, Char | S], Enabled) -> [Colour | cfmt_(S, Enabled)]). +colour_term() -> + case application:get_env(cf, colour_term) of + {ok, V} -> + V; + undefined -> + V = case os:getenv("TERM") of + "xterm" ++ _ -> + true; + _ -> + false + end, + application:set_env(cf, colour_term, V), + V + end. cfmt(S) -> - cfmt(S, os:getenv("TERM") =:= "xterm"). + cfmt(S, colour_term()). cfmt(S, Enabled) -> lists:flatten(cfmt_(S, Enabled)). -cfmt_([$~,$!, _C | S], false) -> - cfmt_(S, false); cfmt_([$~,$!, $_, _C | S], false) -> cfmt_(S, false); cfmt_([$~,$#, _C | S], false) -> cfmt_(S, false); +cfmt_([$~,$!, _C | S], false) -> + cfmt_(S, false); cfmt_([$~, $!, $_, $_ | S], Enabled) -> - [?U | cfmt_(S, Enabled)]; + [?U |cfmt_(S, Enabled)]; cfmt_([$~,$!, $^ | S], Enabled) -> [?B | cfmt_(S, Enabled)]; cfmt_([$~,$!, $_, $^ | S], Enabled) ->