aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2020-05-21 12:14:20 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2020-05-24 16:46:39 +0200
commitcc49a3c67454ea168c8a50a03e860c48d17aca41 (patch)
treea3ea9bb9fc3870d0964d59d1761e311601871ab3 /src
parent0b6a5d19cbb1a384d27a6c090e03b6e672af0a2e (diff)
Options with multiple parameters are now correctly shown at debug message
Diffstat (limited to 'src')
-rw-r--r--src/liboptions/options.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/liboptions/options.c b/src/liboptions/options.c
index f9cec12..171f257 100644
--- a/src/liboptions/options.c
+++ b/src/liboptions/options.c
@@ -154,6 +154,7 @@ done:
int options_command_line(int argc, char *argv[], int (*handle_options)(int short_option, int argi, char *argv[]))
{
option_t *option;
+ char params[256];
int argi, i;
int rc;
@@ -167,9 +168,12 @@ int options_command_line(int argc, char *argv[], int (*handle_options)(int short
/* -x */
for (option = option_head; option; option = option->next) {
if (argv[argi][1] == option->short_option) {
- if (option->parameter_count && argi + option->parameter_count < argc)
- PDEBUG(DOPTIONS, DEBUG_INFO, "Command line option '%s' ('--%s'), parameter '%s'\n", argv[argi], option->long_option, argv[argi + 1]);
- else
+ if (option->parameter_count && argi + option->parameter_count < argc) {
+ params[0] = '\0';
+ for (i = 0; i < option->parameter_count; i++)
+ sprintf(strchr(params, '\0'), " '%s'", argv[argi + 1 + i]);
+ PDEBUG(DOPTIONS, DEBUG_INFO, "Command line option '%s' ('--%s'), parameter%s\n", argv[argi], option->long_option, params);
+ } else
PDEBUG(DOPTIONS, DEBUG_INFO, "Command line option '%s' ('--%s')\n", argv[argi], option->long_option);
break;
}
@@ -178,9 +182,12 @@ int options_command_line(int argc, char *argv[], int (*handle_options)(int short
/* --xxxxxx */
for (option = option_head; option; option = option->next) {
if (!strcmp(argv[argi] + 2, option->long_option)) {
- if (option->parameter_count && argi + option->parameter_count < argc)
- PDEBUG(DOPTIONS, DEBUG_INFO, "Command line option '%s', parameter '%s'\n", argv[argi], argv[argi + 1]);
- else
+ if (option->parameter_count && argi + option->parameter_count < argc) {
+ params[0] = '\0';
+ for (i = 0; i < option->parameter_count; i++)
+ sprintf(strchr(params, '\0'), " '%s'", argv[argi + 1 + i]);
+ PDEBUG(DOPTIONS, DEBUG_INFO, "Command line option '%s', parameter%s\n", argv[argi], params);
+ } else
PDEBUG(DOPTIONS, DEBUG_INFO, "Command line option '%s'\n", argv[argi]);
break;
}