aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-01-06 19:23:15 +0100
committerJay Berkenbilt <ejb@ql.org>2022-01-30 19:11:03 +0100
commitc3e9b64e7fde8499f8543503bdfeeeb65512dcd7 (patch)
treece49196b844d1889d33885817f3f2c6e234dd5f5
parent6e70d99b58caf545061038c3bd574dfdab2b1c7d (diff)
downloadqpdf-c3e9b64e7fde8499f8543503bdfeeeb65512dcd7.tar.zst
QPDFJob increment: generate handler declarations
-rwxr-xr-xgenerate_auto_job68
-rw-r--r--job.sums6
-rw-r--r--job.yml10
-rw-r--r--libqpdf/QPDFJob_argv.cc294
-rw-r--r--libqpdf/qpdf/auto_job_decl.hh131
5 files changed, 271 insertions, 238 deletions
diff --git a/generate_auto_job b/generate_auto_job
index e2d465b7..1be26453 100755
--- a/generate_auto_job
+++ b/generate_auto_job
@@ -93,8 +93,12 @@ class Main:
with open('job.yml', 'r') as f:
data = yaml.safe_load(f.read())
self.validate(data)
- self.generate_decl(data)
- self.generate_init(data)
+ with open(self.DESTS['decl'], 'w') as f:
+ print(BANNER, file=f)
+ self.generate_decl(data, f)
+ with open(self.DESTS['init'], 'w') as f:
+ print(BANNER, file=f)
+ self.generate_init(data, f)
# Update hashes last to ensure that this will be rerun in the
# event of a failure.
@@ -113,7 +117,7 @@ class Main:
self.check_keys('top', data, set(['choices', 'options']))
for o in data['options']:
self.check_keys('top', o, set(
- ['table', 'bare', 'positional',
+ ['table', 'prefix', 'bare', 'positional',
'optional_parameter', 'required_parameter',
'required_choices', 'from_table']))
@@ -123,28 +127,46 @@ class Main:
identifier = identifier.upper()
else:
identifier = identifier.lower()
- identifier = re.sub('_([a-z])', lambda x: x.group(1).upper(),
- identifier)
+ identifier = re.sub(r'(?:^|_)([a-z])',
+ lambda x: x.group(1).upper(),
+ identifier).replace('_', '')
return prefix + identifier
- def generate_decl(self, data):
- with open(self.DESTS['decl'], 'w') as f:
- print(BANNER, file=f)
- for o in data['options']:
- table = o['table']
- if table in ('main', 'help'):
- continue
- i = self.to_identifier(table, 'O_', True)
- print(f'static constexpr char const* {i} = "{table}";', file=f)
-
- def generate_init(self, data):
- with open(self.DESTS['init'], 'w') as f:
- print(BANNER, file=f)
- for k, v in data['choices'].items():
- print(f'char const* {k}_choices[] = {{', file=f, end='')
- for i in v:
- print(f'"{i}", ', file=f, end='')
- print('0};', file=f)
+ def generate_decl(self, data, f):
+ for o in data['options']:
+ table = o['table']
+ if table in ('main', 'help'):
+ continue
+ i = self.to_identifier(table, 'O_', True)
+ print(f'static constexpr char const* {i} = "{table}";', file=f)
+ print('', file=f)
+ for o in data['options']:
+ table = o['table']
+ prefix = 'arg' + o.get('prefix', '')
+ if o.get('positional', False):
+ print(f'void {prefix}Positional(char*);', file=f)
+ for i in o.get('bare', []):
+ identifier = self.to_identifier(i, prefix, False)
+ print(f'void {identifier}();', file=f)
+ for i in o.get('optional_parameter', []):
+ identifier = self.to_identifier(i, prefix, False)
+ print(f'void {identifier}(char *);', file=f)
+ for i in o.get('required_parameter', {}):
+ identifier = self.to_identifier(i, prefix, False)
+ print(f'void {identifier}(char *);', file=f)
+ for i in o.get('required_choices', {}):
+ identifier = self.to_identifier(i, prefix, False)
+ print(f'void {identifier}(char *);', file=f)
+ if table not in ('main', 'help'):
+ identifier = self.to_identifier(table, 'argEnd', False)
+ print(f'void {identifier}();', file=f)
+
+ def generate_init(self, data, f):
+ for k, v in data['choices'].items():
+ print(f'char const* {k}_choices[] = {{', file=f, end='')
+ for i in v:
+ print(f'"{i}", ', file=f, end='')
+ print('0};', file=f)
if __name__ == '__main__':
diff --git a/job.sums b/job.sums
index 790a91e7..bbaa1d25 100644
--- a/job.sums
+++ b/job.sums
@@ -1,5 +1,5 @@
# Generated by generate_auto_job
-generate_auto_job 82410a924077d975acc27240f7b167cd32e1c358b8b2ea40161e607ee2ac0599
-job.yml 8c66b75eb06be65dfa40058a52cbc0bc18627a3aade5b3d4e034543605c93298
-libqpdf/qpdf/auto_job_decl.hh b098ee02ec853f47850b6421cc72b08c608f303f74f01d0b3ce3df52cecd5ffa
+generate_auto_job 52a5e6bc70375e1183fedd5865ae4eae2a10be8d80edede1c48f9946be5d2538
+job.yml b4d230c46ca2b2e75b3b974e2d9ad21fb007eb5007d05cf249ae1e2cde81040c
+libqpdf/qpdf/auto_job_decl.hh fca37543c1a2b7f675374e23b1ab34b30a7f5f2d843c53d4bc7e9a12bf4c3615
libqpdf/qpdf/auto_job_init.hh 0640167b8d550030c086851408b842e2a93c86577253d78f1b7d41d4ca695bd9
diff --git a/job.yml b/job.yml
index 6785256b..95707b90 100644
--- a/job.yml
+++ b/job.yml
@@ -143,18 +143,22 @@ options:
remove-unreferenced-resources: remove_unref
stream-data: stream_data
- table: pages
+ prefix: Pages
positional: true
required_parameter:
- - password: password
+ password: password
- table: encryption
+ prefix: Enc
positional: true
- table: 40-bit encryption
+ prefix: Enc40
required_choices:
extract: yn
annotate: yn
print: yn
modify: yn
- table: 128-bit encryption
+ prefix: Enc128
bare:
- cleartext-metadata
- force-V4
@@ -169,6 +173,7 @@ options:
modify: modify128_choices
use-aes: yn
- table: 256-bit encryption
+ prefix: Enc256
from_table:
table: 128-bit encryption
options:
@@ -185,6 +190,7 @@ options:
- force-R5
- allow-insecure
- table: underlay/overlay
+ prefix: UO
positional: true
required_parameter:
to: page-range
@@ -192,6 +198,7 @@ options:
repeat: page-range
password: password
- table: attachment
+ prefix: Att
positional: true
bare:
- replace
@@ -203,6 +210,7 @@ options:
mimetype: mime/type
description: description
- table: copy attachment
+ prefix: CopyAtt
positional: true
required_parameter:
prefix: prefix
diff --git a/libqpdf/QPDFJob_argv.cc b/libqpdf/QPDFJob_argv.cc
index 9749e1e7..f1bc8b24 100644
--- a/libqpdf/QPDFJob_argv.cc
+++ b/libqpdf/QPDFJob_argv.cc
@@ -25,134 +25,6 @@ namespace
private:
# include <qpdf/auto_job_decl.hh>
- void argHelp();
- void argVersion();
- void argCopyright();
- void argJsonHelp();
- void argShowCrypto();
- void argPositional(char* arg);
- void argPassword(char* parameter);
- void argPasswordFile(char* parameter);
- void argEmpty();
- void argLinearize();
- void argEncrypt();
- void argDecrypt();
- void argPasswordIsHexKey();
- void argAllowInsecure();
- void argAllowWeakCrypto();
- void argPasswordMode(char* parameter);
- void argSuppressPasswordRecovery();
- void argCopyEncryption(char* parameter);
- void argEncryptionFilePassword(char* parameter);
- void argPages();
- void argPagesPassword(char* parameter);
- void argPagesPositional(char* parameter);
- void argEndPages();
- void argUnderlay();
- void argOverlay();
- void argRotate(char* parameter);
- void argCollate(char* parameter);
- void argFlattenRotation();
- void argListAttachments();
- void argShowAttachment(char* parameter);
- void argRemoveAttachment(char* parameter);
- void argAddAttachment();
- void argCopyAttachments();
- void argStreamData(char* parameter);
- void argCompressStreams(char* parameter);
- void argRecompressFlate();
- void argCompressionLevel(char* parameter);
- void argDecodeLevel(char* parameter);
- void argNormalizeContent(char* parameter);
- void argSuppressRecovery();
- void argObjectStreams(char* parameter);
- void argIgnoreXrefStreams();
- void argQdf();
- void argPreserveUnreferenced();
- void argPreserveUnreferencedResources();
- void argRemoveUnreferencedResources(char* parameter);
- void argKeepFilesOpen(char* parameter);
- void argKeepFilesOpenThreshold(char* parameter);
- void argNewlineBeforeEndstream();
- void argLinearizePass1(char* parameter);
- void argCoalesceContents();
- void argFlattenAnnotations(char* parameter);
- void argGenerateAppearances();
- void argMinVersion(char* parameter);
- void argForceVersion(char* parameter);
- void argSplitPages(char* parameter);
- void argVerbose();
- void argProgress();
- void argNoWarn();
- void argWarningExitZero();
- void argDeterministicId();
- void argStaticId();
- void argStaticAesIv();
- void argNoOriginalObjectIds();
- void argShowEncryption();
- void argShowEncryptionKey();
- void argCheckLinearization();
- void argShowLinearization();
- void argShowXref();
- void argShowObject(char* parameter);
- void argRawStreamData();
- void argFilteredStreamData();
- void argShowNpages();
- void argShowPages();
- void argWithImages();
- void argJson();
- void argJsonKey(char* parameter);
- void argJsonObject(char* parameter);
- void argCheck();
- void argOptimizeImages();
- void argExternalizeInlineImages();
- void argKeepInlineImages();
- void argRemovePageLabels();
- void argOiMinWidth(char* parameter);
- void argOiMinHeight(char* parameter);
- void argOiMinArea(char* parameter);
- void argIiMinBytes(char* parameter);
- void arg40Print(char* parameter);
- void arg40Modify(char* parameter);
- void arg40Extract(char* parameter);
- void arg40Annotate(char* parameter);
- void arg128Accessibility(char* parameter);
- void arg128Extract(char* parameter);
- void arg128Print(char* parameter);
- void arg128Modify(char* parameter);
- void arg128ClearTextMetadata();
- void arg128Assemble(char* parameter);
- void arg128Annotate(char* parameter);
- void arg128Form(char* parameter);
- void arg128ModOther(char* parameter);
- void arg128UseAes(char* parameter);
- void arg128ForceV4();
- void arg256ForceR5();
- void argEncryptPositional(char* arg);
- void argEndEncrypt();
- void argUOpositional(char* arg);
- void argUOto(char* parameter);
- void argUOfrom(char* parameter);
- void argUOrepeat(char* parameter);
- void argUOpassword(char* parameter);
- void argEndUnderOverlay();
- void argReplaceInput();
- void argIsEncrypted();
- void argRequiresPassword();
- void argAApositional(char* arg);
- void argAAKey(char* parameter);
- void argAAFilename(char* parameter);
- void argAACreationDate(char* parameter);
- void argAAModDate(char* parameter);
- void argAAMimeType(char* parameter);
- void argAADescription(char* parameter);
- void argAAReplace();
- void argEndAddAttachment();
- void argCApositional(char* arg);
- void argCAprefix(char* parameter);
- void argCApassword(char* parameter);
- void argEndCopyAttachments();
-
void usage(std::string const& message);
void initOptionTable();
void doFinalChecks();
@@ -226,7 +98,7 @@ ArgParser::initOptionTable()
p(&ArgParser::argRemoveAttachment), "attachment-key");
this->ap.addBare("add-attachment", b(&ArgParser::argAddAttachment));
this->ap.addBare(
- "copy-attachments-from", b(&ArgParser::argCopyAttachments));
+ "copy-attachments-from", b(&ArgParser::argCopyAttachmentsFrom));
this->ap.addRequiredChoices("stream-data",
p(&ArgParser::argStreamData), stream_data_choices);
this->ap.addRequiredChoices("compress-streams",
@@ -270,7 +142,7 @@ ArgParser::initOptionTable()
this->ap.addBare("verbose", b(&ArgParser::argVerbose));
this->ap.addBare("progress", b(&ArgParser::argProgress));
this->ap.addBare("no-warn", b(&ArgParser::argNoWarn));
- this->ap.addBare("warning-exit-0", b(&ArgParser::argWarningExitZero));
+ this->ap.addBare("warning-exit-0", b(&ArgParser::argWarningExit0));
this->ap.addBare("deterministic-id", b(&ArgParser::argDeterministicId));
this->ap.addBare("static-id", b(&ArgParser::argStaticId));
this->ap.addBare("static-aes-iv", b(&ArgParser::argStaticAesIv));
@@ -321,73 +193,73 @@ ArgParser::initOptionTable()
this->ap.selectMainOptionTable();
this->ap.addBare("encrypt", b(&ArgParser::argEncrypt));
- this->ap.registerOptionTable(O_ENCRYPTION, b(&ArgParser::argEndEncrypt));
- this->ap.addPositional(p(&ArgParser::argEncryptPositional));
- this->ap.registerOptionTable(O_40_BIT_ENCRYPTION, b(&ArgParser::argEndEncrypt));
- this->ap.addRequiredChoices("extract",p(&ArgParser::arg40Extract), yn_choices);
- this->ap.addRequiredChoices("annotate",p(&ArgParser::arg40Annotate), yn_choices);
- this->ap.addRequiredChoices("print",p(&ArgParser::arg40Print), yn_choices);
- this->ap.addRequiredChoices("modify",p(&ArgParser::arg40Modify), yn_choices);
- this->ap.registerOptionTable(O_128_BIT_ENCRYPTION, b(&ArgParser::argEndEncrypt));
- this->ap.registerOptionTable(O_256_BIT_ENCRYPTION, b(&ArgParser::argEndEncrypt));
+ this->ap.registerOptionTable(O_ENCRYPTION, b(&ArgParser::argEndEncryption));
+ this->ap.addPositional(p(&ArgParser::argEncPositional));
+ this->ap.registerOptionTable(O_40_BIT_ENCRYPTION, b(&ArgParser::argEndEncryption));
+ this->ap.addRequiredChoices("extract",p(&ArgParser::argEnc40Extract), yn_choices);
+ this->ap.addRequiredChoices("annotate",p(&ArgParser::argEnc40Annotate), yn_choices);
+ this->ap.addRequiredChoices("print",p(&ArgParser::argEnc40Print), yn_choices);
+ this->ap.addRequiredChoices("modify",p(&ArgParser::argEnc40Modify), yn_choices);
+ this->ap.registerOptionTable(O_128_BIT_ENCRYPTION, b(&ArgParser::argEndEncryption));
+ this->ap.registerOptionTable(O_256_BIT_ENCRYPTION, b(&ArgParser::argEndEncryption));
for (char const* k: {O_128_BIT_ENCRYPTION, O_256_BIT_ENCRYPTION})
{
this->ap.selectOptionTable(k);
this->ap.addRequiredChoices("accessibility",
- p(&ArgParser::arg128Accessibility), yn_choices);
- this->ap.addRequiredChoices("extract", p(&ArgParser::arg128Extract), yn_choices);
+ p(&ArgParser::argEnc128Accessibility), yn_choices);
+ this->ap.addRequiredChoices("extract", p(&ArgParser::argEnc128Extract), yn_choices);
this->ap.addRequiredChoices("print",
- p(&ArgParser::arg128Print), print128_choices);
- this->ap.addRequiredChoices("assemble",p(&ArgParser::arg128Assemble), yn_choices);
- this->ap.addRequiredChoices("annotate",p(&ArgParser::arg128Annotate), yn_choices);
- this->ap.addRequiredChoices("form",p(&ArgParser::arg128Form), yn_choices);
- this->ap.addRequiredChoices("modify-other",p(&ArgParser::arg128ModOther), yn_choices);
+ p(&ArgParser::argEnc128Print), print128_choices);
+ this->ap.addRequiredChoices("assemble",p(&ArgParser::argEnc128Assemble), yn_choices);
+ this->ap.addRequiredChoices("annotate",p(&ArgParser::argEnc128Annotate), yn_choices);
+ this->ap.addRequiredChoices("form",p(&ArgParser::argEnc128Form), yn_choices);
+ this->ap.addRequiredChoices("modify-other",p(&ArgParser::argEnc128ModifyOther), yn_choices);
this->ap.addRequiredChoices("modify",
- p(&ArgParser::arg128Modify), modify128_choices);
- this->ap.addBare("cleartext-metadata", b(&ArgParser::arg128ClearTextMetadata));
+ p(&ArgParser::argEnc128Modify), modify128_choices);
+ this->ap.addBare("cleartext-metadata", b(&ArgParser::argEnc128CleartextMetadata));
}
this->ap.selectOptionTable(O_128_BIT_ENCRYPTION);
- this->ap.addRequiredChoices("use-aes",p(&ArgParser::arg128UseAes), yn_choices);
- this->ap.addBare("force-V4", b(&ArgParser::arg128ForceV4));
+ this->ap.addRequiredChoices("use-aes",p(&ArgParser::argEnc128UseAes), yn_choices);
+ this->ap.addBare("force-V4", b(&ArgParser::argEnc128ForceV4));
this->ap.selectOptionTable(O_256_BIT_ENCRYPTION);
- this->ap.addBare("force-R5", b(&ArgParser::arg256ForceR5));
- this->ap.addBare("allow-insecure", b(&ArgParser::argAllowInsecure));
+ this->ap.addBare("force-R5", b(&ArgParser::argEnc256ForceR5));
+ this->ap.addBare("allow-insecure", b(&ArgParser::argEnc256AllowInsecure));
- this->ap.registerOptionTable(O_UNDERLAY_OVERLAY, b(&ArgParser::argEndUnderOverlay));
- this->ap.addPositional(p(&ArgParser::argUOpositional));
+ this->ap.registerOptionTable(O_UNDERLAY_OVERLAY, b(&ArgParser::argEndUnderlayOverlay));
+ this->ap.addPositional(p(&ArgParser::argUOPositional));
this->ap.addRequiredParameter("to",
- p(&ArgParser::argUOto), "page-range");
+ p(&ArgParser::argUOTo), "page-range");
this->ap.addRequiredParameter("from",
- p(&ArgParser::argUOfrom), "page-range");
+ p(&ArgParser::argUOFrom), "page-range");
this->ap.addRequiredParameter("repeat",
- p(&ArgParser::argUOrepeat), "page-range");
+ p(&ArgParser::argUORepeat), "page-range");
this->ap.addRequiredParameter("password",
- p(&ArgParser::argUOpassword), "password");
+ p(&ArgParser::argUOPassword), "password");
- this->ap.registerOptionTable(O_ATTACHMENT, b(&ArgParser::argEndAddAttachment));
- this->ap.addPositional(p(&ArgParser::argAApositional));
+ this->ap.registerOptionTable(O_ATTACHMENT, b(&ArgParser::argEndAttachment));
+ this->ap.addPositional(p(&ArgParser::argAttPositional));
this->ap.addRequiredParameter("key",
- p(&ArgParser::argAAKey), "attachment-key");
+ p(&ArgParser::argAttKey), "attachment-key");
this->ap.addRequiredParameter("filename",
- p(&ArgParser::argAAFilename), "filename");
+ p(&ArgParser::argAttFilename), "filename");
this->ap.addRequiredParameter("creationdate",
- p(&ArgParser::argAACreationDate), "creation-date");
+ p(&ArgParser::argAttCreationdate), "creation-date");
this->ap.addRequiredParameter("moddate",
- p(&ArgParser::argAAModDate), "modification-date");
+ p(&ArgParser::argAttModdate), "modification-date");
this->ap.addRequiredParameter("mimetype",
- p(&ArgParser::argAAMimeType), "mime/type");
+ p(&ArgParser::argAttMimetype), "mime/type");
this->ap.addRequiredParameter("description",
- p(&ArgParser::argAADescription), "description");
- this->ap.addBare("replace", b(&ArgParser::argAAReplace));
+ p(&ArgParser::argAttDescription), "description");
+ this->ap.addBare("replace", b(&ArgParser::argAttReplace));
- this->ap.registerOptionTable(O_COPY_ATTACHMENT, b(&ArgParser::argEndCopyAttachments));
- this->ap.addPositional(p(&ArgParser::argCApositional));
+ this->ap.registerOptionTable(O_COPY_ATTACHMENT, b(&ArgParser::argEndCopyAttachment));
+ this->ap.addPositional(p(&ArgParser::argCopyAttPositional));
this->ap.addRequiredParameter("prefix",
- p(&ArgParser::argCAprefix), "prefix");
+ p(&ArgParser::argCopyAttPrefix), "prefix");
this->ap.addRequiredParameter("password",
- p(&ArgParser::argCApassword), "password");
+ p(&ArgParser::argCopyAttPassword), "password");
}
void
@@ -1067,7 +939,7 @@ ArgParser::argEncrypt()
}
void
-ArgParser::argEncryptPositional(char* arg)
+ArgParser::argEncPositional(char* arg)
{
this->accumulated_args.push_back(arg);
size_t n_args = this->accumulated_args.size();
@@ -1159,7 +1031,7 @@ ArgParser::argPasswordMode(char* parameter)
}
void
-ArgParser::argAllowInsecure()
+ArgParser::argEnc256AllowInsecure()
{
o.allow_insecure = true;
}
@@ -1364,7 +1236,7 @@ ArgParser::argAddAttachment()
}
void
-ArgParser::argCopyAttachments()
+ArgParser::argCopyAttachmentsFrom()
{
o.attachments_to_copy.push_back(QPDFJob::CopyAttachmentFrom());
this->ap.selectOptionTable(O_COPY_ATTACHMENT);
@@ -1616,7 +1488,7 @@ ArgParser::argNoWarn()
}
void
-ArgParser::argWarningExitZero()
+ArgParser::argWarningExit0()
{
o.warnings_exit_zero = true;
}
@@ -1793,43 +1665,43 @@ ArgParser::argIiMinBytes(char* parameter)
}
void
-ArgParser::arg40Print(char* parameter)
+ArgParser::argEnc40Print(char* parameter)
{
o.r2_print = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg40Modify(char* parameter)
+ArgParser::argEnc40Modify(char* parameter)
{
o.r2_modify = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg40Extract(char* parameter)
+ArgParser::argEnc40Extract(char* parameter)
{
o.r2_extract = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg40Annotate(char* parameter)
+ArgParser::argEnc40Annotate(char* parameter)
{
o.r2_annotate = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg128Accessibility(char* parameter)
+ArgParser::argEnc128Accessibility(char* parameter)
{
o.r3_accessibility = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg128Extract(char* parameter)
+ArgParser::argEnc128Extract(char* parameter)
{
o.r3_extract = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg128Print(char* parameter)
+ArgParser::argEnc128Print(char* parameter)
{
if (strcmp(parameter, "full") == 0)
{
@@ -1850,7 +1722,7 @@ ArgParser::arg128Print(char* parameter)
}
void
-ArgParser::arg128Modify(char* parameter)
+ArgParser::argEnc128Modify(char* parameter)
{
if (strcmp(parameter, "all") == 0)
{
@@ -1894,55 +1766,55 @@ ArgParser::arg128Modify(char* parameter)
}
void
-ArgParser::arg128ClearTextMetadata()
+ArgParser::argEnc128CleartextMetadata()
{
o.cleartext_metadata = true;
}
void
-ArgParser::arg128Assemble(char* parameter)
+ArgParser::argEnc128Assemble(char* parameter)
{
o.r3_assemble = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg128Annotate(char* parameter)
+ArgParser::argEnc128Annotate(char* parameter)
{
o.r3_annotate_and_form = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg128Form(char* parameter)
+ArgParser::argEnc128Form(char* parameter)
{
o.r3_form_filling = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg128ModOther(char* parameter)
+ArgParser::argEnc128ModifyOther(char* parameter)
{
o.r3_modify_other = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg128UseAes(char* parameter)
+ArgParser::argEnc128UseAes(char* parameter)
{
o.use_aes = (strcmp(parameter, "y") == 0);
}
void
-ArgParser::arg128ForceV4()
+ArgParser::argEnc128ForceV4()
{
o.force_V4 = true;
}
void
-ArgParser::arg256ForceR5()
+ArgParser::argEnc256ForceR5()
{
o.force_R5 = true;
}
void
-ArgParser::argEndEncrypt()
+ArgParser::argEndEncryption()
{
o.encrypt = true;
o.decrypt = false;
@@ -1950,7 +1822,7 @@ ArgParser::argEndEncrypt()
}
void
-ArgParser::argUOpositional(char* arg)
+ArgParser::argUOPositional(char* arg)
{
if (o.under_overlay->filename)
{
@@ -1963,14 +1835,14 @@ ArgParser::argUOpositional(char* arg)
}
void
-ArgParser::argUOto(char* parameter)
+ArgParser::argUOTo(char* parameter)
{
parseNumrange(parameter, 0);
o.under_overlay->to_nr = parameter;
}
void
-ArgParser::argUOfrom(char* parameter)
+ArgParser::argUOFrom(char* parameter)
{
if (strlen(parameter))
{
@@ -1980,7 +1852,7 @@ ArgParser::argUOfrom(char* parameter)
}
void
-ArgParser::argUOrepeat(char* parameter)
+ArgParser::argUORepeat(char* parameter)
{
if (strlen(parameter))
{
@@ -1990,13 +1862,13 @@ ArgParser::argUOrepeat(char* parameter)
}
void
-ArgParser::argUOpassword(char* parameter)
+ArgParser::argUOPassword(char* parameter)
{
o.under_overlay->password = parameter;
}
void
-ArgParser::argEndUnderOverlay()
+ArgParser::argEndUnderlayOverlay()
{
if (0 == o.under_overlay->filename)
{
@@ -2026,25 +1898,25 @@ ArgParser::argRequiresPassword()
}
void
-ArgParser::argAApositional(char* arg)
+ArgParser::argAttPositional(char* arg)
{
o.attachments_to_add.back().path = arg;
}
void
-ArgParser::argAAKey(char* parameter)
+ArgParser::argAttKey(char* parameter)
{
o.attachments_to_add.back().key = parameter;
}
void
-ArgParser::argAAFilename(char* parameter)
+ArgParser::argAttFilename(char* parameter)
{
o.attachments_to_add.back().filename = parameter;
}
void
-ArgParser::argAACreationDate(char* parameter)
+ArgParser::argAttCreationdate(char* parameter)
{
if (! QUtil::pdf_time_to_qpdf_time(parameter))
{
@@ -2054,7 +1926,7 @@ ArgParser::argAACreationDate(char* parameter)
}
void
-ArgParser::argAAModDate(char* parameter)
+ArgParser::argAttModdate(char* parameter)
{
if (! QUtil::pdf_time_to_qpdf_time(parameter))
{
@@ -2064,7 +1936,7 @@ ArgParser::argAAModDate(char* parameter)
}
void
-ArgParser::argAAMimeType(char* parameter)
+ArgParser::argAttMimetype(char* parameter)
{
if (strchr(parameter, '/') == nullptr)
{
@@ -2074,19 +1946,19 @@ ArgParser::argAAMimeType(char* parameter)
}
void
-ArgParser::argAADescription(char* parameter)
+ArgParser::argAttDescription(char* parameter)
{
o.attachments_to_add.back().description = parameter;
}
void
-ArgParser::argAAReplace()
+ArgParser::argAttReplace()
{
o.attachments_to_add.back().replace = true;
}
void
-ArgParser::argEndAddAttachment()
+ArgParser::argEndAttachment()
{
static std::string now = QUtil::qpdf_time_to_pdf_time(
QUtil::get_current_qpdf_time());
@@ -2119,25 +1991,25 @@ ArgParser::argEndAddAttachment()
}
void
-ArgParser::argCApositional(char* arg)
+ArgParser::argCopyAttPositional(char* arg)
{
o.attachments_to_copy.back().path = arg;
}
void
-ArgParser::argCAprefix(char* parameter)
+ArgParser::argCopyAttPrefix(char* parameter)
{
o.attachments_to_copy.back().prefix = parameter;
}
void
-ArgParser::argCApassword(char* parameter)
+ArgParser::argCopyAttPassword(char* parameter)
{
o.attachments_to_copy.back().password = parameter;
}
void
-ArgParser::argEndCopyAttachments()
+ArgParser::argEndCopyAttachment()
{
if (o.attachments_to_copy.back().path.empty())
{
diff --git a/libqpdf/qpdf/auto_job_decl.hh b/libqpdf/qpdf/auto_job_decl.hh
index 806e2ab5..076a8f68 100644
--- a/libqpdf/qpdf/auto_job_decl.hh
+++ b/libqpdf/qpdf/auto_job_decl.hh
@@ -11,3 +11,134 @@ static constexpr char const* O_256_BIT_ENCRYPTION = "256-bit encryption";
static constexpr char const* O_UNDERLAY_OVERLAY = "underlay/overlay";
static constexpr char const* O_ATTACHMENT = "attachment";
static constexpr char const* O_COPY_ATTACHMENT = "copy attachment";
+
+void argHelp();
+void argVersion();
+void argCopyright();
+void argJsonHelp();
+void argShowCrypto();
+void argPositional(char*);
+void argAddAttachment();
+void argAllowWeakCrypto();
+void argCheck();
+void argCheckLinearization();
+void argCoalesceContents();
+void argCopyAttachmentsFrom();
+void argDecrypt();
+void argDeterministicId();
+void argEmpty();
+void argEncrypt();
+void argExternalizeInlineImages();
+void argFilteredStreamData();
+void argFlattenRotation();
+void argGenerateAppearances();
+void argIgnoreXrefStreams();
+void argIsEncrypted();
+void argJson();
+void argKeepInlineImages();
+void argLinearize();
+void argListAttachments();
+void argNewlineBeforeEndstream();
+void argNoOriginalObjectIds();
+void argNoWarn();
+void argOptimizeImages();
+void argOverlay();
+void argPages();
+void argPasswordIsHexKey();
+void argPreserveUnreferenced();
+void argPreserveUnreferencedResources();
+void argProgress();
+void argQdf();
+void argRawStreamData();
+void argRecompressFlate();
+void argRemovePageLabels();
+void argReplaceInput();
+void argRequiresPassword();
+void argShowEncryption();
+void argShowEncryptionKey();
+void argShowLinearization();
+void argShowNpages();
+void argShowPages();
+void argShowXref();
+void argStaticAesIv();
+void argStaticId();
+void argSuppressPasswordRecovery();
+void argSuppressRecovery();
+void argUnderlay();
+void argVerbose();
+void argWarningExit0();
+void argWithImages();
+void argCollate(char *);
+void argSplitPages(char *);
+void argCompressionLevel(char *);
+void argCopyEncryption(char *);
+void argEncryptionFilePassword(char *);
+void argForceVersion(char *);
+void argIiMinBytes(char *);
+void argJsonObject(char *);
+void argKeepFilesOpenThreshold(char *);
+void argLinearizePass1(char *);
+void argMinVersion(char *);
+void argOiMinArea(char *);
+void argOiMinHeight(char *);
+void argOiMinWidth(char *);
+void argPassword(char *);
+void argPasswordFile(char *);
+void argRemoveAttachment(char *);
+void argRotate(char *);
+void argShowAttachment(char *);
+void argShowObject(char *);
+void argCompressStreams(char *);
+void argDecodeLevel(char *);
+void argFlattenAnnotations(char *);
+void argJsonKey(char *);
+void argKeepFilesOpen(char *);
+void argNormalizeContent(char *);
+void argObjectStreams(char *);
+void argPasswordMode(char *);
+void argRemoveUnreferencedResources(char *);
+void argStreamData(char *);
+void argPagesPositional(char*);
+void argPagesPassword(char *);
+void argEndPages();
+void argEncPositional(char*);
+void argEndEncryption();
+void argEnc40Extract(char *);
+void argEnc40Annotate(char *);
+void argEnc40Print(char *);
+void argEnc40Modify(char *);
+void argEnd40BitEncryption();
+void argEnc128CleartextMetadata();
+void argEnc128ForceV4();
+void argEnc128Accessibility(char *);
+void argEnc128Extract(char *);
+void argEnc128Print(char *);
+void argEnc128Assemble(char *);
+void argEnc128Annotate(char *);
+void argEnc128Form(char *);
+void argEnc128ModifyOther(char *);
+void argEnc128Modify(char *);
+void argEnc128UseAes(char *);
+void argEnd128BitEncryption();
+void argEnc256ForceR5();
+void argEnc256AllowInsecure();
+void argEnd256BitEncryption();
+void argUOPositional(char*);
+void argUOTo(char *);
+void argUOFrom(char *);
+void argUORepeat(char *);
+void argUOPassword(char *);
+void argEndUnderlayOverlay();
+void argAttPositional(char*);
+void argAttReplace();
+void argAttKey(char *);
+void argAttFilename(char *);
+void argAttCreationdate(char *);
+void argAttModdate(char *);
+void argAttMimetype(char *);
+void argAttDescription(char *);
+void argEndAttachment();
+void argCopyAttPositional(char*);
+void argCopyAttPrefix(char *);
+void argCopyAttPassword(char *);
+void argEndCopyAttachment();