mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-22 19:08:59 +00:00
cb769c62e5
This comment expands all tabs using an 8-character tab-width. You should ignore this commit when using git blame or use git blame -w. In the early days, I used to use tabs where possible for indentation, since emacs did this automatically. In recent years, I have switched to only using spaces, which means qpdf source code has been a mixture of spaces and tabs. I have avoided cleaning this up because of not wanting gratuitous whitespaces change to cloud the output of git blame, but I changed my mind after discussing with users who view qpdf source code in editors/IDEs that have other tab widths by default and in light of the fact that I am planning to start applying automatic code formatting soon.
90 lines
1.7 KiB
C++
90 lines
1.7 KiB
C++
#include <qpdf/QPDFExc.hh>
|
|
|
|
#include <qpdf/QUtil.hh>
|
|
|
|
QPDFExc::QPDFExc(qpdf_error_code_e error_code,
|
|
std::string const& filename,
|
|
std::string const& object,
|
|
qpdf_offset_t offset,
|
|
std::string const& message) :
|
|
std::runtime_error(createWhat(filename, object, offset, message)),
|
|
error_code(error_code),
|
|
filename(filename),
|
|
object(object),
|
|
offset(offset),
|
|
message(message)
|
|
{
|
|
}
|
|
|
|
std::string
|
|
QPDFExc::createWhat(std::string const& filename,
|
|
std::string const& object,
|
|
qpdf_offset_t offset,
|
|
std::string const& message)
|
|
{
|
|
std::string result;
|
|
if (! filename.empty())
|
|
{
|
|
result += filename;
|
|
}
|
|
if (! (object.empty() && offset == 0))
|
|
{
|
|
if (! filename.empty())
|
|
{
|
|
result += " (";
|
|
}
|
|
if (! object.empty())
|
|
{
|
|
result += object;
|
|
if (offset > 0)
|
|
{
|
|
result += ", ";
|
|
}
|
|
}
|
|
if (offset > 0)
|
|
{
|
|
result += "offset " + QUtil::int_to_string(offset);
|
|
}
|
|
if (! filename.empty())
|
|
{
|
|
result += ")";
|
|
}
|
|
}
|
|
if (! result.empty())
|
|
{
|
|
result += ": ";
|
|
}
|
|
result += message;
|
|
return result;
|
|
}
|
|
|
|
qpdf_error_code_e
|
|
QPDFExc::getErrorCode() const
|
|
{
|
|
return this->error_code;
|
|
}
|
|
|
|
std::string const&
|
|
QPDFExc::getFilename() const
|
|
{
|
|
return this->filename;
|
|
}
|
|
|
|
std::string const&
|
|
QPDFExc::getObject() const
|
|
{
|
|
return this->object;
|
|
}
|
|
|
|
qpdf_offset_t
|
|
QPDFExc::getFilePosition() const
|
|
{
|
|
return this->offset;
|
|
}
|
|
|
|
std::string const&
|
|
QPDFExc::getMessageDetail() const
|
|
{
|
|
return this->message;
|
|
}
|