]> git.sesse.net Git - casparcg/blobdiff - common/log.h
Merged from trunk
[casparcg] / common / log.h
index eb6dfbef4576c7a357ec15200a01eec2350d3d60..2b2dd13a4e544a5895519092f3059867b72e2e3c 100644 (file)
@@ -46,6 +46,26 @@ void init();
 std::wstring get_call_stack();\r
 }\r
 \r
+template<typename T>\r
+inline void replace_nonprintable(std::basic_string<T, std::char_traits<T>, std::allocator<T>>& str, T with)\r
+{\r
+       std::locale loc;\r
+       std::replace_if(str.begin(), str.end(), [&](T c)->bool {\r
+               return \r
+                       (!std::isprint(c, loc) \r
+                       && c != '\r' \r
+                       && c != '\n')\r
+                       || c > static_cast<T>(127);\r
+       }, with);\r
+}\r
+\r
+template<typename T>\r
+inline std::basic_string<T> replace_nonprintable_copy(std::basic_string<T, std::char_traits<T>, std::allocator<T>> str, T with)\r
+{\r
+       replace_nonprintable(str, with);\r
+       return str;\r
+}\r
+\r
 void add_file_sink(const std::wstring& folder);\r
 \r
 enum severity_level\r