]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Util::send_to_stderr: Refactor to take Context parameter
authorJoel Rosdahl <joel@rosdahl.net>
Tue, 11 Aug 2020 18:47:48 +0000 (20:47 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Tue, 11 Aug 2020 18:47:48 +0000 (20:47 +0200)
src/ResultRetriever.cpp
src/Util.cpp
src/Util.hpp
src/ccache.cpp

index c9ac883f3649c8261730b042717dfd840849cb0e..09090e2ec0c11ac13ca63f398469d9a8f5f94503 100644 (file)
@@ -138,7 +138,7 @@ void
 ResultRetriever::on_entry_end()
 {
   if (m_dest_file_type == FileType::stderr_output) {
-    Util::send_to_stderr(m_dest_data, m_ctx.args_info.strip_diagnostics_colors);
+    Util::send_to_stderr(m_ctx, m_dest_data);
   } else if (m_dest_file_type == FileType::dependency && !m_dest_path.empty()) {
     write_dependency_file();
   }
index f1591a27a77f204929406bc5a69cf94f8566d07d..d2c1046bac7f89abb728aff6aa9a40b28b822a28 100644 (file)
@@ -1162,15 +1162,15 @@ same_program_name(const std::string& program_name,
 }
 
 void
-send_to_stderr(const std::string& text, bool strip_colors)
+send_to_stderr(const Context& ctx, const std::string& text)
 {
   const std::string* text_to_send = &text;
-  std::string stripped_text;
+  std::string modified_text;
 
-  if (strip_colors) {
+  if (ctx.args_info.strip_diagnostics_colors) {
     try {
-      stripped_text = Util::strip_ansi_csi_seqs(text);
-      text_to_send = &stripped_text;
+      modified_text = strip_ansi_csi_seqs(text);
+      text_to_send = &modified_text;
     } catch (const Error&) {
       // Fall through
     }
index b9682cfd6745fceba20b4c9e3d8913db3a455c91..28c0af880c9f6ce8b96fc3b4826f1ab62d93d9c9 100644 (file)
@@ -368,8 +368,8 @@ bool same_program_name(const std::string& program_name,
                        const std::string& canonical_program_name);
 
 // Send `text` to STDERR_FILENO, optionally stripping ANSI color sequences if
-// `strip_colors` is true. Throws `Error` on error.
-void send_to_stderr(const std::string& text, bool strip_colors);
+// `ctx.args_info.strip_diagnostics_colors` is true. Throws `Error` on error.
+void send_to_stderr(const Context& ctx, const std::string& text);
 
 // Set the FD_CLOEXEC on file descriptor `fd`. This is a NOP on Windows.
 void set_cloexec_flag(int fd);
index e3f333255fb97b781e2447bb2d1f8f7a68423148..734dae6a68f86a47d5199372841773628beb8a16 100644 (file)
@@ -899,8 +899,7 @@ to_cache(Context& ctx,
     log("Compiler gave exit status {}", status);
 
     // We can output stderr immediately instead of rerunning the compiler.
-    Util::send_to_stderr(Util::read_file(tmp_stderr_path),
-                         ctx.args_info.strip_diagnostics_colors);
+    Util::send_to_stderr(ctx, Util::read_file(tmp_stderr_path));
 
     throw Failure(STATS_STATUS, status);
   }
@@ -991,8 +990,7 @@ to_cache(Context& ctx,
   }
 
   // Everything OK.
-  Util::send_to_stderr(Util::read_file(tmp_stderr_path),
-                       ctx.args_info.strip_diagnostics_colors);
+  Util::send_to_stderr(ctx, Util::read_file(tmp_stderr_path));
 }
 
 // Find the result name by running the compiler in preprocessor mode and