+ /* If something is being redirected, then grab logfile. */
+ ui_file *logfile_p = nullptr;
+ if (logging_redirect || debug_redirect)
+ {
+ logfile_p = logfile.get ();
+ mi->saved_raw_file_to_delete = logfile_p;
+ }
+
+ /* If something is not being redirected, then a tee containing both the
+ logfile and stdout. */
+ ui_file *tee = nullptr;
+ if (!logging_redirect || !debug_redirect)
+ {
+ tee = new tee_file (mi->raw_stdout, std::move (logfile));
+ mi->saved_raw_file_to_delete = tee;
+ }
+
+ mi->raw_stdout = logging_redirect ? logfile_p : tee;
+ mi->raw_stdlog = debug_redirect ? logfile_p : tee;