[Pkg-gnupg-commit] [gnupg2] 178/241: tools/gpgtar: Rework argument parsing.
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Wed Dec 9 20:32:13 UTC 2015
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch master
in repository gnupg2.
commit 35c0c8b211bc891335e822379b33ea34fbc1f84f
Author: Justus Winter <justus at g10code.com>
Date: Thu Nov 26 11:46:35 2015 +0100
tools/gpgtar: Rework argument parsing.
* tools/gpgtar.c (main): Move argument parsing into its own function.
Signed-off-by: Justus Winter <justus at g10code.com>
---
tools/gpgtar.c | 92 +++++++++++++++++++++++++++++++++-------------------------
1 file changed, 52 insertions(+), 40 deletions(-)
diff --git a/tools/gpgtar.c b/tools/gpgtar.c
index 991fbed..04d23b5 100644
--- a/tools/gpgtar.c
+++ b/tools/gpgtar.c
@@ -160,65 +160,46 @@ set_cmd (enum cmd_and_opt_values *ret_cmd, enum cmd_and_opt_values new_cmd)
ASSUAN_SYSTEM_NPTH_IMPL;
-/* gpgtar main. */
-int
-main (int argc, char **argv)
-{
- gpg_error_t err;
- ARGPARSE_ARGS pargs;
- const char *fname;
- int no_more_options = 0;
- enum cmd_and_opt_values cmd = 0;
- int skip_crypto = 0;
- const char *files_from = NULL;
- int null_names = 0;
+/* Global flags. */
+enum cmd_and_opt_values cmd = 0;
+int skip_crypto = 0;
+const char *files_from = NULL;
+int null_names = 0;
- assert (sizeof (struct ustar_raw_header) == 512);
- gnupg_reopen_std (GPGTAR_NAME);
- set_strusage (my_strusage);
- log_set_prefix (GPGTAR_NAME, 1);
-
- /* Make sure that our subsystems are ready. */
- i18n_init();
- init_common_subsystems (&argc, &argv);
- npth_init ();
- assuan_set_assuan_log_prefix (log_get_prefix (NULL));
- assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
- assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
- assuan_sock_init ();
+/* Command line parsing. */
+static void
+parse_arguments (ARGPARSE_ARGS *pargs)
+{
+ int no_more_options = 0;
- /* Parse the command line. */
- pargs.argc = &argc;
- pargs.argv = &argv;
- pargs.flags = ARGPARSE_FLAG_KEEP;
- while (!no_more_options && optfile_parse (NULL, NULL, NULL, &pargs, opts))
+ while (!no_more_options && optfile_parse (NULL, NULL, NULL, pargs, opts))
{
- switch (pargs.r_opt)
+ switch (pargs->r_opt)
{
- case oOutput: opt.outfile = pargs.r.ret_str; break;
- case oDirectory: opt.directory = pargs.r.ret_str; break;
- case oSetFilename: opt.filename = pargs.r.ret_str; break;
+ case oOutput: opt.outfile = pargs->r.ret_str; break;
+ case oDirectory: opt.directory = pargs->r.ret_str; break;
+ case oSetFilename: opt.filename = pargs->r.ret_str; break;
case oQuiet: opt.quiet = 1; break;
case oVerbose: opt.verbose++; break;
case oNoVerbose: opt.verbose = 0; break;
- case oFilesFrom: files_from = pargs.r.ret_str; break;
+ case oFilesFrom: files_from = pargs->r.ret_str; break;
case oNull: null_names = 1; break;
case aList:
case aDecrypt:
case aEncrypt:
case aSign:
- set_cmd (&cmd, pargs.r_opt);
+ set_cmd (&cmd, pargs->r_opt);
break;
case oRecipient:
- add_to_strlist (&opt.recipients, pargs.r.ret_str);
+ add_to_strlist (&opt.recipients, pargs->r.ret_str);
break;
case oUser:
log_info ("note: ignoring option --user\n");
- opt.user = pargs.r.ret_str;
+ opt.user = pargs->r.ret_str;
break;
case oSymmetric:
@@ -228,7 +209,7 @@ main (int argc, char **argv)
break;
case oGpgProgram:
- opt.gpg_program = pargs.r.ret_str;
+ opt.gpg_program = pargs->r.ret_str;
break;
case oSkipCrypto:
@@ -238,9 +219,40 @@ main (int argc, char **argv)
case oOpenPGP: /* Dummy option for now. */ break;
case oCMS: /* Dummy option for now. */ break;
- default: pargs.err = 2; break;
+ default: pargs->err = 2; break;
}
}
+}
+
+
+/* gpgtar main. */
+int
+main (int argc, char **argv)
+{
+ gpg_error_t err;
+ const char *fname;
+ ARGPARSE_ARGS pargs;
+
+ assert (sizeof (struct ustar_raw_header) == 512);
+
+ gnupg_reopen_std (GPGTAR_NAME);
+ set_strusage (my_strusage);
+ log_set_prefix (GPGTAR_NAME, 1);
+
+ /* Make sure that our subsystems are ready. */
+ i18n_init();
+ init_common_subsystems (&argc, &argv);
+ npth_init ();
+ assuan_set_assuan_log_prefix (log_get_prefix (NULL));
+ assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
+ assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
+ assuan_sock_init ();
+
+ /* Parse the command line. */
+ pargs.argc = &argc;
+ pargs.argv = &argv;
+ pargs.flags = ARGPARSE_FLAG_KEEP;
+ parse_arguments (&pargs);
if ((files_from && !null_names) || (!files_from && null_names))
log_error ("--files-from and --null may only be used in conjunction\n");
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git
More information about the Pkg-gnupg-commit
mailing list