summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/io/parameters.c')
-rw-r--r--src/io/parameters.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/io/parameters.c b/src/io/parameters.c
index 0f7d05c..77c33aa 100644
--- a/src/io/parameters.c
+++ b/src/io/parameters.c
@@ -14,7 +14,8 @@ static void load_default_parameters
struct ZoO_parameters param [const restrict static 1]
)
{
- param->data_filename = ZoO_DEFAULT_DATA_FILENAME;
+ param->data_filename = ZoO_DEFAULT_DATA_FILENAME;
+ param->new_data_filename = (char *) NULL;
param->irc_server_addr = ZoO_DEFAULT_IRC_SERVER_ADDR;
param->irc_server_port = ZoO_DEFAULT_IRC_SERVER_PORT;
@@ -39,6 +40,9 @@ static void print_help (const char exec [const restrict static 1])
" [--data-filename | -df] FILENAME\n"
" Learn content from FILENAME before connecting.\n"
" Default: %s.\n"
+ " [--new-data-filename | -ndf] FILENAME\n"
+ " Store new data learned in FILENAME.\n"
+ " Default: value of the --data-filename param.\n"
" [--irc-server-addr | -isa] IRC_SERVER_ADDR\n"
" Connect to this server address.\n"
" Default: %s.\n"
@@ -190,6 +194,28 @@ int ZoO_parameters_initialize
}
else if
(
+ (strcmp(argv[i], "--new-data-filename") == 0)
+ || (strcmp(argv[i], "-ndf") == 0)
+ )
+ {
+ i += 1;
+
+ if
+ (
+ parse_string_arg
+ (
+ &(param->new_data_filename),
+ i,
+ argv,
+ argc
+ ) < 0
+ )
+ {
+ return -1;
+ }
+ }
+ else if
+ (
(strcmp(argv[i], "--irc-server-addr") == 0)
|| (strcmp(argv[i], "-isa") == 0)
)
@@ -350,5 +376,10 @@ int ZoO_parameters_initialize
param->aliases_count = (argc - i);
param->aliases = (argv + i);
+ if (param->new_data_filename == (char *) NULL)
+ {
+ param->new_data_filename = param->data_filename;
+ }
+
return 1;
}