aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QUtil.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2018-08-14 01:48:02 +0200
committerJay Berkenbilt <ejb@ql.org>2018-08-14 02:01:51 +0200
commitb4bdc42b4fd627529e1c4a4636d1631254a2f26e (patch)
tree4a3526842ce36c08fef94ec7f60da585a505d6ce /libqpdf/QUtil.cc
parent164cbdde46d7ec6924782a60f346a6a465a79a26 (diff)
downloadqpdf-b4bdc42b4fd627529e1c4a4636d1631254a2f26e.tar.zst
New exception class QPDFSystemError (fixes #221)
Diffstat (limited to 'libqpdf/QUtil.cc')
-rw-r--r--libqpdf/QUtil.cc18
1 files changed, 2 insertions, 16 deletions
diff --git a/libqpdf/QUtil.cc b/libqpdf/QUtil.cc
index e2bc0bac..56bac386 100644
--- a/libqpdf/QUtil.cc
+++ b/libqpdf/QUtil.cc
@@ -7,6 +7,7 @@
# include <qpdf/InsecureRandomDataProvider.hh>
#endif
#include <qpdf/SecureRandomDataProvider.hh>
+#include <qpdf/QPDFSystemError.hh>
#include <cmath>
#include <iomanip>
@@ -132,22 +133,7 @@ QUtil::unsigned_char_pointer(char const* str)
void
QUtil::throw_system_error(std::string const& description)
{
-#ifdef _MSC_VER
- // "94" is mentioned in the MSVC docs, but it's still safe if the
- // message is longer. strerror_s is a templated function that
- // knows the size of buf and truncates.
- char buf[94];
- if (strerror_s(buf, errno) != 0)
- {
- throw std::runtime_error(description + ": failed with an unknown error");
- }
- else
- {
- throw std::runtime_error(description + ": " + buf);
- }
-#else
- throw std::runtime_error(description + ": " + strerror(errno));
-#endif
+ throw QPDFSystemError(description, errno);
}
int