Use dcp::file_to_string().
[dcpomatic.git] / src / lib / send_problem_report_job.cc
index 7f60a3fdc2e8e91239a2ff92753a31e621af3ecd..6ab83ee6211d6bea24b93fb6e6367f367d93f979 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2014-2017 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -18,6 +18,7 @@
 
 */
 
+
 #include "send_problem_report_job.h"
 #include "compose.hpp"
 #include "film.h"
 
 #include "i18n.h"
 
-using std::string;
+
 using std::list;
 using std::shared_ptr;
+using std::string;
+
 
 /** @param film Film thta the problem is with, or 0.
  *  @param from Email address to use for From:
@@ -51,11 +54,13 @@ SendProblemReportJob::SendProblemReportJob (
 
 }
 
+
 SendProblemReportJob::~SendProblemReportJob ()
 {
        stop_thread ();
 }
 
+
 string
 SendProblemReportJob::name () const
 {
@@ -66,12 +71,14 @@ SendProblemReportJob::name () const
        return String::compose (_("Email problem report for %1"), _film->name());
 }
 
+
 string
 SendProblemReportJob::json_name () const
 {
        return N_("send_problem_report");
 }
 
+
 void
 SendProblemReportJob::run ()
 {
@@ -108,22 +115,12 @@ SendProblemReportJob::run ()
        set_state (FINISHED_OK);
 }
 
+
 void
 SendProblemReportJob::add_file (string& body, boost::filesystem::path file) const
 {
-       FILE* f = fopen_boost (_film->file (file), "r");
-       if (!f) {
-               return;
-       }
-
        body += file.string() + ":\n";
        body += "---<8----\n";
-       uintmax_t const size = boost::filesystem::file_size (_film->file (file));
-       char* buffer = new char[size + 1];
-       int const N = fread (buffer, 1, size, f);
-       buffer[N] = '\0';
-       body += buffer;
-       delete[] buffer;
+       body += dcp::file_to_string (_film->file(file));
        body += "---<8----\n\n";
-       fclose (f);
 }