aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFJob_argv.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-01-26 19:56:13 +0100
committerJay Berkenbilt <ejb@ql.org>2022-01-30 19:11:03 +0100
commit2c7b583b3aaed1902ca3cca2387414391fc3fe65 (patch)
treefd69a4d3095b0d40a5c9377e6d23f301f08cd8b0 /libqpdf/QPDFJob_argv.cc
parentac56e013d6fb55df85216261228226849fcbab02 (diff)
downloadqpdf-2c7b583b3aaed1902ca3cca2387414391fc3fe65.tar.zst
QPDFJob: move input/output handling into config
Diffstat (limited to 'libqpdf/QPDFJob_argv.cc')
-rw-r--r--libqpdf/QPDFJob_argv.cc24
1 files changed, 15 insertions, 9 deletions
diff --git a/libqpdf/QPDFJob_argv.cc b/libqpdf/QPDFJob_argv.cc
index c4a7834a..71654e65 100644
--- a/libqpdf/QPDFJob_argv.cc
+++ b/libqpdf/QPDFJob_argv.cc
@@ -37,7 +37,6 @@ namespace
void initOptionTables();
QPDFArgParser ap;
- QPDFJob& o;
std::shared_ptr<QPDFJob::Config> c_main;
std::shared_ptr<QPDFJob::CopyAttConfig> c_copy_att;
std::shared_ptr<QPDFJob::AttConfig> c_att;
@@ -46,15 +45,18 @@ namespace
std::shared_ptr<QPDFJob::EncConfig> c_enc;
std::vector<char*> accumulated_args; // points to member in ap
char* pages_password;
+ bool gave_input;
+ bool gave_output;
};
}
ArgParser::ArgParser(QPDFArgParser& ap,
std::shared_ptr<QPDFJob::Config> c_main, QPDFJob& o) :
ap(ap),
- o(o),
c_main(c_main),
- pages_password(nullptr)
+ pages_password(nullptr),
+ gave_input(false),
+ gave_output(false)
{
initOptionTables();
}
@@ -73,13 +75,15 @@ ArgParser::initOptionTables()
void
ArgParser::argPositional(char* arg)
{
- if (o.infilename == 0)
+ if (! this->gave_input)
{
- o.infilename = QUtil::make_shared_cstr(arg);
+ c_main->inputFile(arg);
+ this->gave_input = true;
}
- else if (o.outfilename == 0)
+ else if (! this->gave_output)
{
- o.outfilename = QUtil::make_shared_cstr(arg);
+ c_main->outputFile(arg);
+ this->gave_output = true;
}
else
{
@@ -90,13 +94,15 @@ ArgParser::argPositional(char* arg)
void
ArgParser::argEmpty()
{
- o.infilename = QUtil::make_shared_cstr("");
+ c_main->emptyInput();
+ this->gave_input = true;
}
void
ArgParser::argReplaceInput()
{
- o.replace_input = true;
+ c_main->replaceInput();
+ this->gave_output = true;
}
void