File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -113,6 +113,8 @@ enum class control { // Behaviour of rang function calls
113
113
Force = 2 // force ansi color output to non terminal streams
114
114
};
115
115
// Use rang::setControlMode to set rang control mode
116
+ // The default can be set by environment variables: https://bixense.com/clicolors/
117
+ // NO_COLOR to disable color output, CLICOLOR_FORCE to force color output
116
118
117
119
enum class winTerm { // Windows Terminal Mode
118
120
Auto = 0 , // (Default) automatically detects wheter Ansi or Native API
@@ -124,9 +126,21 @@ enum class winTerm { // Windows Terminal Mode
124
126
125
127
namespace rang_implementation {
126
128
129
+ // https://bixense.com/clicolors/
130
+ inline control defaultControlMode () noexcept
131
+ {
132
+ if (std::getenv (" NO_COLOR" ) != nullptr ) {
133
+ return control::Off;
134
+ }
135
+ if (std::getenv (" CLICOLOR_FORCE" ) != nullptr ) {
136
+ return control::Force;
137
+ }
138
+ return control::Auto;
139
+ }
140
+
127
141
inline std::atomic<control> &controlMode () noexcept
128
142
{
129
- static std::atomic<control> value (control::Auto );
143
+ static std::atomic<control> value (defaultControlMode () );
130
144
return value;
131
145
}
132
146
You can’t perform that action at this time.
0 commit comments