summaryrefslogtreecommitdiff
path: root/sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch')
-rw-r--r--sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch89
1 files changed, 89 insertions, 0 deletions
diff --git a/sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch b/sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch
new file mode 100644
index 000000000000..44b56a296fde
--- /dev/null
+++ b/sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch
@@ -0,0 +1,89 @@
+From a8b25b489b48086e2616df98688969f89e63fa69 Mon Sep 17 00:00:00 2001
+From: Miquel Garriga <gbmiquel@gmail.com>
+Date: Fri, 23 Nov 2018 00:15:04 +0100
+Subject: [PATCH] Remove exit() calls
+
+---
+ OriginFile.cpp | 15 ++++++++++-----
+ OriginFile.h | 2 +-
+ opj2dat.cpp | 2 ++
+ 3 files changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/OriginFile.cpp b/OriginFile.cpp
+index f6c41b4..bcdcccb 100644
+--- a/OriginFile.cpp
++++ b/OriginFile.cpp
+@@ -33,14 +33,15 @@
+ #include <string>
+
+ OriginFile::OriginFile(const string& fileName)
+-: fileVersion(0)
++: fileVersion(0), ioError(0)
+ {
+ ifstream file(fileName.c_str(), ios_base::binary);
+
+ if (!file.is_open())
+ {
+- cerr << "Could not open " << fileName.c_str() << "!" << endl;
+- exit(EXIT_FAILURE);
++ cerr << endl << "liborigin: " << strerror(errno) << ": " << fileName.c_str() << endl;
++ ioError = errno;
++ return;
+ }
+
+ #ifdef GENERATE_CODE_FOR_LOG
+@@ -48,8 +49,9 @@ OriginFile::OriginFile(const string& fileName)
+ logfile = fopen("./opjfile.log", "w");
+ if (logfile == nullptr)
+ {
+- cerr << "Could not open opjfile.log !" << endl;
+- exit(EXIT_FAILURE);
++ cerr << endl << "liborigin: " << strerror(errno) << ": opjfile.log" << endl;
++ ioError = errno;
++ return;
+ }
+ #endif // GENERATE_CODE_FOR_LOG
+
+@@ -152,10 +154,13 @@ OriginFile::OriginFile(const string& fileName)
+ fclose(logfile);
+ #endif // GENERATE_CODE_FOR_LOG
+ parser.reset(createOriginAnyParser(fileName));
++ ioError=0;
+ }
+
+ bool OriginFile::parse()
+ {
++ if (ioError != 0)
++ return false;
+ parser->buildVersion = buildVersion;
+ parser->fileVersion = fileVersion;
+ return parser->parse();
+diff --git a/OriginFile.h b/OriginFile.h
+index 80b6ff2..3a49395 100644
+--- a/OriginFile.h
++++ b/OriginFile.h
+@@ -70,7 +70,7 @@ public:
+ string resultsLogString() const; //!< get Results Log
+
+ private:
+- unsigned int fileVersion, buildVersion;
++ unsigned int fileVersion, buildVersion, ioError;
+ unique_ptr<OriginParser> parser;
+ };
+
+diff --git a/opj2dat.cpp b/opj2dat.cpp
+index ff53309..230ac84 100644
+--- a/opj2dat.cpp
++++ b/opj2dat.cpp
+@@ -54,6 +54,8 @@ int main(int argc, char *argv[]) {
+ OriginFile opj(inputfile);
+ int status = opj.parse();
+ cout << "Parsing status = " << status << endl;
++ if (! status)
++ return -1;
+ cout << "OPJ PROJECT \"" << inputfile.c_str() << "\" VERSION = " << opj.version() << endl;
+
+ cout << "number of datasets = " << opj.datasetCount() << endl;
+--
+2.26.2
+