aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFJob_argv.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-01-26 15:09:29 +0100
committerJay Berkenbilt <ejb@ql.org>2022-01-30 19:11:03 +0100
commit1cc532dc9121d02d92ac6ce5abb9376b4842c05f (patch)
tree67d8cf9a6b27c528df675d54dddc67a1d77abeea /libqpdf/QPDFJob_argv.cc
parent4e9da59eacaf40f4c6651dce498b95b58ff1dd3a (diff)
downloadqpdf-1cc532dc9121d02d92ac6ce5abb9376b4842c05f.tar.zst
QPDFJob: move some helpers from ArgParser to QPDFJob
Diffstat (limited to 'libqpdf/QPDFJob_argv.cc')
-rw-r--r--libqpdf/QPDFJob_argv.cc100
1 files changed, 5 insertions, 95 deletions
diff --git a/libqpdf/QPDFJob_argv.cc b/libqpdf/QPDFJob_argv.cc
index a11eca9f..7cd8e22e 100644
--- a/libqpdf/QPDFJob_argv.cc
+++ b/libqpdf/QPDFJob_argv.cc
@@ -37,9 +37,6 @@ namespace
void initOptionTables();
void doFinalChecks();
void parseUnderOverlayOptions(QPDFJob::UnderOverlay*);
- void parseRotationParameter(std::string const&);
- std::vector<int> parseNumrange(char const* range, int max,
- bool throw_error = false);
QPDFArgParser ap;
QPDFJob& o;
@@ -324,7 +321,7 @@ ArgParser::argPagesPositional(char* arg)
{
try
{
- parseNumrange(range, 0, true);
+ o.parseNumrange(range, 0, true);
}
catch (std::runtime_error& e1)
{
@@ -384,7 +381,7 @@ ArgParser::argOverlay()
void
ArgParser::argRotate(char* parameter)
{
- parseRotationParameter(parameter);
+ o.parseRotationParameter(parameter);
}
void
@@ -592,7 +589,7 @@ ArgParser::argUOPositional(char* arg)
void
ArgParser::argUOTo(char* parameter)
{
- parseNumrange(parameter, 0);
+ o.parseNumrange(parameter, 0);
o.under_overlay->to_nr = parameter;
}
@@ -601,7 +598,7 @@ ArgParser::argUOFrom(char* parameter)
{
if (strlen(parameter))
{
- parseNumrange(parameter, 0);
+ o.parseNumrange(parameter, 0);
}
o.under_overlay->from_nr = parameter;
}
@@ -611,7 +608,7 @@ ArgParser::argUORepeat(char* parameter)
{
if (strlen(parameter))
{
- parseNumrange(parameter, 0);
+ o.parseNumrange(parameter, 0);
}
o.under_overlay->repeat_nr = parameter;
}
@@ -670,27 +667,6 @@ ArgParser::usage(std::string const& message)
this->ap.usage(message);
}
-std::vector<int>
-ArgParser::parseNumrange(char const* range, int max, bool throw_error)
-{
- try
- {
- return QUtil::parse_numrange(range, max);
- }
- catch (std::runtime_error& e)
- {
- if (throw_error)
- {
- throw(e);
- }
- else
- {
- usage(e.what());
- }
- }
- return std::vector<int>();
-}
-
void
ArgParser::parseUnderOverlayOptions(QPDFJob::UnderOverlay* uo)
{
@@ -699,72 +675,6 @@ ArgParser::parseUnderOverlayOptions(QPDFJob::UnderOverlay* uo)
}
void
-ArgParser::parseRotationParameter(std::string const& parameter)
-{
- std::string angle_str;
- std::string range;
- size_t colon = parameter.find(':');
- int relative = 0;
- if (colon != std::string::npos)
- {
- if (colon > 0)
- {
- angle_str = parameter.substr(0, colon);
- }
- if (colon + 1 < parameter.length())
- {
- range = parameter.substr(colon + 1);
- }
- }
- else
- {
- angle_str = parameter;
- }
- if (angle_str.length() > 0)
- {
- char first = angle_str.at(0);
- if ((first == '+') || (first == '-'))
- {
- relative = ((first == '+') ? 1 : -1);
- angle_str = angle_str.substr(1);
- }
- else if (! QUtil::is_digit(angle_str.at(0)))
- {
- angle_str = "";
- }
- }
- if (range.empty())
- {
- range = "1-z";
- }
- bool range_valid = false;
- try
- {
- parseNumrange(range.c_str(), 0, true);
- range_valid = true;
- }
- catch (std::runtime_error const&)
- {
- // ignore
- }
- if (range_valid &&
- ((angle_str == "0") ||(angle_str == "90") ||
- (angle_str == "180") || (angle_str == "270")))
- {
- int angle = QUtil::string_to_int(angle_str.c_str());
- if (relative == -1)
- {
- angle = -angle;
- }
- o.rotations[range] = QPDFJob::RotationSpec(angle, (relative != 0));
- }
- else
- {
- usage("invalid parameter to rotate: " + parameter);
- }
-}
-
-void
ArgParser::parseOptions()
{
try