Report job errors even if they contain < or >. Give a better error when parsing...
authorCarl Hetherington <cth@carlh.net>
Wed, 20 Feb 2019 01:10:58 +0000 (01:10 +0000)
committerCarl Hetherington <cth@carlh.net>
Wed, 20 Feb 2019 01:10:58 +0000 (01:10 +0000)
src/lib/job.cc
src/wx/job_view.cc

index 8cc6ced8ef2e90f81f83d802466f269f8237eb59..4517765247075236bd702123852bc6125c27fc7e 100644 (file)
@@ -190,6 +190,12 @@ Job::run_wrapper ()
                set_progress (1);
                set_state (FINISHED_ERROR);
 
                set_progress (1);
                set_state (FINISHED_ERROR);
 
+       } catch (FileError& e) {
+
+               set_error (e.what(), e.what());
+               set_progress (1);
+               set_state (FINISHED_ERROR);
+
        } catch (std::exception& e) {
 
                set_error (
        } catch (std::exception& e) {
 
                set_error (
index 174c9967dab4b95cfdd482da76562b68109df824..b61da04f84da3ff1dd6dbba67f3c1e0187c1a7d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
-    Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
     This file is part of DCP-o-matic.
 
@@ -32,6 +32,7 @@
 #include "lib/transcode_job.h"
 #include "lib/analyse_audio_job.h"
 #include <wx/wx.h>
 #include "lib/transcode_job.h"
 #include "lib/analyse_audio_job.h"
 #include <wx/wx.h>
+#include <boost/algorithm/string.hpp>
 
 using std::string;
 using std::min;
 
 using std::string;
 using std::min;
@@ -109,7 +110,11 @@ JobView::progress ()
        if (!_job->sub_name().empty ()) {
                whole += _job->sub_name() + " ";
        }
        if (!_job->sub_name().empty ()) {
                whole += _job->sub_name() + " ";
        }
-       whole += _job->status ();
+       string s = _job->status ();
+       /* Watch out for < > in the error string */
+       boost::algorithm::replace_all (s, "<", "&lt;");
+       boost::algorithm::replace_all (s, ">", "&gt;");
+       whole += s;
        if (whole != _last_message) {
                _message->SetLabelMarkup (std_to_wx (whole));
                /* This hack fixes the size of _message on OS X */
        if (whole != _last_message) {
                _message->SetLabelMarkup (std_to_wx (whole));
                /* This hack fixes the size of _message on OS X */