about summary refs log tree commit diff
path: root/src/libutil/util.hh
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-03-15T15·08+0100
committerEelco Dolstra <edolstra@gmail.com>2018-03-15T15·08+0100
commit486872150638d56483c2bc429ba9e137d9974ee8 (patch)
tree469f6346618c2fbe1eb2e4282ef7e6cc90c01ff5 /src/libutil/util.hh
parent7b8914825a6b02173976eae0ca59053085d4b20a (diff)
Filter ANSI colors when not writing to a terminal
Fixes https://github.com/NixOS/nixpkgs/issues/37114.
Diffstat (limited to 'src/libutil/util.hh')
-rw-r--r--src/libutil/util.hh10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index c5c537ee63..500ab7811b 100644
--- a/src/libutil/util.hh
+++ b/src/libutil/util.hh
@@ -391,11 +391,13 @@ void ignoreException();
 #define ANSI_BLUE "\e[34;1m"
 
 
-/* Truncate a string to 'width' printable characters. Certain ANSI
-   escape sequences (such as colour setting) are copied but not
-   included in the character count. Other ANSI escape sequences are
-   filtered. Also, tabs are expanded to spaces. */
+/* Truncate a string to 'width' printable characters. If 'filterAll'
+   is true, all ANSI escape sequences are filtered out. Otherwise,
+   some escape sequences (such as colour setting) are copied but not
+   included in the character count. Also, tabs are expanded to
+   spaces. */
 std::string filterANSIEscapes(const std::string & s,
+    bool filterAll = false,
     unsigned int width = std::numeric_limits<unsigned int>::max());