aboutsummaryrefslogtreecommitdiff
path: root/src/options.cpp
diff options
context:
space:
mode:
authorJan Sucan <jan@jansucan.com>2023-12-13 18:47:06 +0100
committerJan Sucan <jan@jansucan.com>2023-12-13 18:47:06 +0100
commit82adeccf84f132e0f259dc603db3ecf26a35b36a (patch)
treebda9998d6ca6d19fb2737117ea47d808d90341ac /src/options.cpp
parent9549779332eeb13db34c7c86bc468ecc60350bf8 (diff)
Refactor getting items from argv to resolve cppcheck errors
The cppcheck errors were: The address of local variable 'argv' is accessed at non-zero index.
Diffstat (limited to 'src/options.cpp')
-rw-r--r--src/options.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/options.cpp b/src/options.cpp
index 5de577e..632076a 100644
--- a/src/options.cpp
+++ b/src/options.cpp
@@ -57,6 +57,7 @@ static bool options_parse_backup(int *const argc, char ***const argv,
options_t *const opts);
static bool options_parse_restore(int *const argc, char ***const argv,
options_t *const opts);
+static const char *const next_arg(char ***const argv);
bool
options_parse(int argc, char **argv, options_t *const opts)
@@ -233,9 +234,9 @@ options_parse_backup(int *const argc, char ***const argv, options_t *const opts)
} else {
opts->op.backup.sector_size = common_opts.sector_size;
opts->op.backup.buffer_size = common_opts.buffer_size;
- opts->op.backup.in_file_path = (*argv)[0];
- opts->op.backup.ref_file_path = (*argv)[1];
- opts->op.backup.out_file_path = (*argv)[2];
+ opts->op.backup.in_file_path = next_arg(argv);
+ opts->op.backup.ref_file_path = next_arg(argv);
+ opts->op.backup.out_file_path = next_arg(argv);
}
return true;
@@ -262,9 +263,17 @@ options_parse_restore(int *const argc, char ***const argv,
} else {
opts->op.restore.sector_size = common_opts.sector_size;
opts->op.restore.buffer_size = common_opts.buffer_size;
- opts->op.restore.in_file_path = (*argv)[0];
- opts->op.restore.out_file_path = (*argv)[1];
+ opts->op.restore.in_file_path = next_arg(argv);
+ opts->op.restore.out_file_path = next_arg(argv);
}
return true;
}
+
+static const char *const
+next_arg(char ***const argv)
+{
+ const char *arg = **argv;
+ ++(*argv);
+ return arg;
+}