summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-09-13 23:43:12 +0200
committerCarl Hetherington <cth@carlh.net>2024-09-13 23:43:12 +0200
commitc1d3f6f4f645e76302ca4262de3517497fa1e14b (patch)
tree1e12c089628be8bb798b425ef78865773b6b7e2e /src
parent73747a031e35ab8884aa16ebd3c8721dfb0391bc (diff)
parent4f850f9958beacd8d2b39fda1941b68ffb94b2f0 (diff)
Merge remote-tracking branch 'origin/main' into v2.17.x
Diffstat (limited to 'src')
-rw-r--r--src/lib/file_group.cc10
-rw-r--r--src/lib/film.cc2
-rw-r--r--src/lib/film.h5
-rw-r--r--src/lib/string_text_file.cc2
-rw-r--r--src/lib/util.cc10
-rw-r--r--src/lib/writer.cc2
-rw-r--r--src/wx/config_dialog.cc12
-rw-r--r--src/wx/supporters.cc11
8 files changed, 36 insertions, 18 deletions
diff --git a/src/lib/file_group.cc b/src/lib/file_group.cc
index 228faa74d..56a5c2c59 100644
--- a/src/lib/file_group.cc
+++ b/src/lib/file_group.cc
@@ -84,11 +84,13 @@ FileGroup::ensure_open_path (size_t p) const
_current_file->close();
}
- _current_path = p;
- _current_file = dcp::File(_paths[_current_path], "rb");
- if (!_current_file) {
- throw OpenFileError (_paths[_current_path], errno, OpenFileError::READ);
+ auto file = dcp::File(_paths[p], "rb");
+ if (!file) {
+ throw OpenFileError(_paths[p], file.open_error(), OpenFileError::READ);
}
+
+ _current_path = p;
+ _current_file = std::move(file);
_current_size = dcp::filesystem::file_size(_paths[_current_path]);
}
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 2e7df9cf8..835719868 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -2196,7 +2196,7 @@ InfoFileHandle::InfoFileHandle (boost::mutex& mutex, boost::filesystem::path pat
, _file(path, read ? "rb" : (dcp::filesystem::exists(path) ? "r+b" : "wb"))
{
if (!_file) {
- throw OpenFileError(path, errno, read ? OpenFileError::READ : (dcp::filesystem::exists(path) ? OpenFileError::READ_WRITE : OpenFileError::WRITE));
+ throw OpenFileError(path, _file.open_error(), read ? OpenFileError::READ : (dcp::filesystem::exists(path) ? OpenFileError::READ_WRITE : OpenFileError::WRITE));
}
}
diff --git a/src/lib/film.h b/src/lib/film.h
index 12872caf1..815c6ae74 100644
--- a/src/lib/film.h
+++ b/src/lib/film.h
@@ -89,6 +89,11 @@ class InfoFileHandle
public:
InfoFileHandle (boost::mutex& mutex, boost::filesystem::path file, bool read);
+ InfoFileHandle(InfoFileHandle const&) = delete;
+ InfoFileHandle& operator=(InfoFileHandle const&) = delete;
+ InfoFileHandle(InfoFileHandle&&) = delete;
+ InfoFileHandle& operator=(InfoFileHandle&&) = delete;
+
dcp::File& get () {
return _file;
}
diff --git a/src/lib/string_text_file.cc b/src/lib/string_text_file.cc
index 9b43b35a6..f5d5e0d2a 100644
--- a/src/lib/string_text_file.cc
+++ b/src/lib/string_text_file.cc
@@ -57,7 +57,7 @@ StringTextFile::StringTextFile (shared_ptr<const StringTextFileContent> content)
if (ext == ".stl") {
dcp::File f(content->path(0), "rb");
if (!f) {
- throw OpenFileError (f.path(), errno, OpenFileError::READ);
+ throw OpenFileError(f.path(), f.open_error(), OpenFileError::READ);
}
try {
reader.reset(new sub::STLBinaryReader(f.get()));
diff --git a/src/lib/util.cc b/src/lib/util.cc
index 2e3485075..bf753d04d 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -566,7 +566,7 @@ digest_head_tail (vector<boost::filesystem::path> files, boost::uintmax_t size)
while (i < int64_t (files.size()) && to_do > 0) {
dcp::File f(files[i], "rb");
if (!f) {
- throw OpenFileError (files[i].string(), errno, OpenFileError::READ);
+ throw OpenFileError(files[i].string(), f.open_error(), OpenFileError::READ);
}
auto this_time = min(to_do, dcp::filesystem::file_size(files[i]));
@@ -585,7 +585,7 @@ digest_head_tail (vector<boost::filesystem::path> files, boost::uintmax_t size)
while (i >= 0 && to_do > 0) {
dcp::File f(files[i], "rb");
if (!f) {
- throw OpenFileError (files[i].string(), errno, OpenFileError::READ);
+ throw OpenFileError(files[i].string(), f.open_error(), OpenFileError::READ);
}
auto this_time = min(to_do, dcp::filesystem::file_size(files[i]));
@@ -691,7 +691,7 @@ valid_image_file (boost::filesystem::path f)
ext == ".tif" || ext == ".tiff" || ext == ".jpg" || ext == ".jpeg" ||
ext == ".png" || ext == ".bmp" || ext == ".tga" || ext == ".dpx" ||
ext == ".j2c" || ext == ".j2k" || ext == ".jp2" || ext == ".exr" ||
- ext == ".jpf" || ext == ".psd"
+ ext == ".jpf" || ext == ".psd" || ext == ".webp"
);
}
@@ -954,11 +954,11 @@ copy_in_bits (boost::filesystem::path from, boost::filesystem::path to, std::fun
{
dcp::File f(from, "rb");
if (!f) {
- throw OpenFileError (from, errno, OpenFileError::READ);
+ throw OpenFileError(from, f.open_error(), OpenFileError::READ);
}
dcp::File t(to, "wb");
if (!t) {
- throw OpenFileError (to, errno, OpenFileError::WRITE);
+ throw OpenFileError(to, t.open_error(), OpenFileError::WRITE);
}
/* on the order of a second's worth of copying */
diff --git a/src/lib/writer.cc b/src/lib/writer.cc
index 4b6f70f21..971085046 100644
--- a/src/lib/writer.cc
+++ b/src/lib/writer.cc
@@ -732,7 +732,7 @@ Writer::write_cover_sheet()
auto const cover = film()->file("COVER_SHEET.txt");
dcp::File file(cover, "w");
if (!file) {
- throw OpenFileError (cover, errno, OpenFileError::WRITE);
+ throw OpenFileError(cover, file.open_error(), OpenFileError::WRITE);
}
auto text = Config::instance()->cover_sheet ();
diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc
index bd8582ea6..19d23c6cc 100644
--- a/src/wx/config_dialog.cc
+++ b/src/wx/config_dialog.cc
@@ -475,7 +475,7 @@ CertificateChainEditor::export_certificate ()
}
dcp::File f(path, "w");
if (!f) {
- throw OpenFileError(path, errno, OpenFileError::WRITE);
+ throw OpenFileError(path, f.open_error(), OpenFileError::WRITE);
}
string const s = j->certificate(true);
@@ -500,7 +500,7 @@ CertificateChainEditor::export_chain ()
}
dcp::File f(path, "w");
if (!f) {
- throw OpenFileError(path, errno, OpenFileError::WRITE);
+ throw OpenFileError(path, f.open_error(), OpenFileError::WRITE);
}
auto const s = _get()->chain();
@@ -621,7 +621,7 @@ CertificateChainEditor::export_private_key ()
}
dcp::File f(path, "w");
if (!f) {
- throw OpenFileError (path, errno, OpenFileError::WRITE);
+ throw OpenFileError(path, f.open_error(), OpenFileError::WRITE);
}
auto const s = _get()->key().get ();
@@ -739,7 +739,7 @@ KeysPage::export_decryption_chain_and_key ()
boost::filesystem::path path(wx_to_std(d->GetPath()));
dcp::File f(path, "w");
if (!f) {
- throw OpenFileError(path, errno, OpenFileError::WRITE);
+ throw OpenFileError(path, f.open_error(), OpenFileError::WRITE);
}
auto const chain = Config::instance()->decryption_chain()->chain();
@@ -773,7 +773,7 @@ KeysPage::import_decryption_chain_and_key ()
dcp::File f(wx_to_std(d->GetPath()), "r");
if (!f) {
- throw OpenFileError(f.path(), errno, OpenFileError::WRITE);
+ throw OpenFileError(f.path(), f.open_error(), OpenFileError::WRITE);
}
string current;
@@ -838,7 +838,7 @@ KeysPage::export_decryption_certificate ()
}
dcp::File f(path, "w");
if (!f) {
- throw OpenFileError(path, errno, OpenFileError::WRITE);
+ throw OpenFileError(path, f.open_error(), OpenFileError::WRITE);
}
auto const s = Config::instance()->decryption_chain()->leaf().certificate (true);
diff --git a/src/wx/supporters.cc b/src/wx/supporters.cc
index 36cffa34d..a7afac7ff 100644
--- a/src/wx/supporters.cc
+++ b/src/wx/supporters.cc
@@ -19,6 +19,7 @@ supported_by.Add (wxT ("Paulo Abreu"));
supported_by.Add (wxT ("Manuel AC"));
supported_by.Add (wxT ("Festival international du cinéma francophone en Acadie"));
supported_by.Add (wxT ("le Grand Action"));
+supported_by.Add (wxT ("Dollface Actual"));
supported_by.Add (wxT ("ed Adamo"));
supported_by.Add (wxT ("Scott Adderton"));
supported_by.Add (wxT ("Éva Adorján"));
@@ -194,6 +195,7 @@ supported_by.Add (wxT ("Jean Luc Chevé"));
supported_by.Add (wxT ("David Chien"));
supported_by.Add (wxT ("Abundant Health Chiropractic"));
supported_by.Add (wxT ("Georgy Cholakov"));
+supported_by.Add (wxT ("Lee Christiansen"));
supported_by.Add (wxT ("Frank Cianciolo"));
supported_by.Add (wxT ("Opificio Ciclope"));
supported_by.Add (wxT ("Tahoe Art Haus And Cinema"));
@@ -379,6 +381,7 @@ supported_by.Add (wxT ("KulturKino Feuchtwangen"));
supported_by.Add (wxT ("Lorenzo Fiale"));
supported_by.Add (wxT ("Dean Fick"));
supported_by.Add (wxT ("Marc Fiebig"));
+supported_by.Add (wxT ("Aglaja Filipovic"));
supported_by.Add (wxT ("Moshel Film"));
supported_by.Add (wxT ("Juli Film"));
supported_by.Add (wxT ("Pató Film"));
@@ -599,6 +602,7 @@ supported_by.Add (wxT ("Melinda James"));
supported_by.Add (wxT ("Luca Jankovic"));
supported_by.Add (wxT ("Andy Jans-Brown"));
supported_by.Add (wxT ("Mart Jansink"));
+supported_by.Add (wxT ("David Jenkins"));
supported_by.Add (wxT ("Scott Jennings"));
supported_by.Add (wxT ("Jonathan Jensen"));
supported_by.Add (wxT ("Frank Jerkic"));
@@ -740,6 +744,7 @@ supported_by.Add (wxT ("Pedja Ljubojevic"));
supported_by.Add (wxT ("Moon Atlas LLC"));
supported_by.Add (wxT ("Pilotkino LLC"));
supported_by.Add (wxT ("No Blood Of Mine LLC"));
+supported_by.Add (wxT ("Moving Picture Boys LLC"));
supported_by.Add (wxT ("Pelidom LLC"));
supported_by.Add (wxT ("Renaissance Entertainment LLC"));
supported_by.Add (wxT ("Power Of Pearl Movie LLC"));
@@ -790,6 +795,7 @@ supported_by.Add (wxT ("Garry Maddison"));
supported_by.Add (wxT ("Peter Maddock"));
supported_by.Add (wxT ("Mat Made"));
supported_by.Add (wxT ("Michael Madigan"));
+supported_by.Add (wxT ("Lanterna Magica"));
supported_by.Add (wxT ("Peter Magnusson"));
supported_by.Add (wxT ("Paolo Magris"));
supported_by.Add (wxT ("Andrea Maguolo"));
@@ -1207,9 +1213,11 @@ supported_by.Add (wxT ("Raggio Verde Subtitles"));
supported_by.Add (wxT ("Michael Suesterhenn"));
supported_by.Add (wxT ("Christian Suhren"));
supported_by.Add (wxT ("Frans Suijs"));
+supported_by.Add (wxT ("Sergey Sushinskiy"));
supported_by.Add (wxT ("Spring Sutter"));
supported_by.Add (wxT ("Sven"));
supported_by.Add (wxT ("Phil Svitek"));
+supported_by.Add (wxT ("Marcin Świerczyński"));
supported_by.Add (wxT ("Jürgen Swoboda"));
supported_by.Add (wxT ("SymmetryFilms"));
supported_by.Add (wxT ("Advanced Projection Systems"));
@@ -1240,6 +1248,7 @@ supported_by.Add (wxT ("Rodeo Drive-In Theatre"));
supported_by.Add (wxT ("Ralph Thiekötter"));
supported_by.Add (wxT ("Carlo Thiel"));
supported_by.Add (wxT ("Nicholas Thiele"));
+supported_by.Add (wxT ("Mark Thomas"));
supported_by.Add (wxT ("Jamie Thomas"));
supported_by.Add (wxT ("Ade Thompson"));
supported_by.Add (wxT ("Thorkell"));
@@ -1326,6 +1335,7 @@ supported_by.Add (wxT ("Paul Howard, WeMakeFilms"));
supported_by.Add (wxT ("Mike Wendt"));
supported_by.Add (wxT ("Frank Wenz"));
supported_by.Add (wxT ("Anja Wenz"));
+supported_by.Add (wxT ("Olav Werner"));
supported_by.Add (wxT ("Maik Wieczorek"));
supported_by.Add (wxT ("Ralph Wiegandt"));
supported_by.Add (wxT ("Johannes Wilbrand"));
@@ -1365,6 +1375,7 @@ supported_by.Add (wxT ("Peter Zeitlinger"));
supported_by.Add (wxT ("Pavel Zhdanko"));
supported_by.Add (wxT ("Chenliang Zhu"));
supported_by.Add (wxT ("Daniel Židek"));
+supported_by.Add (wxT ("Hens Zimmerman"));
supported_by.Add (wxT ("Ernst Zimmerman"));
supported_by.Add (wxT ("Roberto Zin"));
supported_by.Add (wxT ("Matthieu Zingle"));