| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/io')
| -rw-r--r-- | src/io/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/io/network.c | 15 | ||||
| -rw-r--r-- | src/io/parameters.c | 33 | ||||
| -rw-r--r-- | src/io/parameters_types.h | 1 |
4 files changed, 49 insertions, 1 deletions
diff --git a/src/io/CMakeLists.txt b/src/io/CMakeLists.txt index a13154b..c36413a 100644 --- a/src/io/CMakeLists.txt +++ b/src/io/CMakeLists.txt @@ -3,6 +3,7 @@ set( ${CMAKE_CURRENT_SOURCE_DIR}/parameters.c ${CMAKE_CURRENT_SOURCE_DIR}/network.c ${CMAKE_CURRENT_SOURCE_DIR}/data_input.c + ${CMAKE_CURRENT_SOURCE_DIR}/data_output.c ) set(SRC_FILES ${SRC_FILES} PARENT_SCOPE) diff --git a/src/io/network.c b/src/io/network.c index 45be5fb..0c9cf33 100644 --- a/src/io/network.c +++ b/src/io/network.c @@ -436,6 +436,21 @@ READ_NEW_MSG: if (ZoO_IS_PREFIX("JOIN", (net->in + cmd))) { + for (i = 1; (i < 512) && (net->in[i] != '!'); ++i) + { + } + + if ((i == 512) || (i == 1)) + { + ZoO_ERROR("Could not find JOIN username: %s", net->in); + + goto READ_NEW_MSG; + } + + *msg_offset = 1; + *msg_size = (i - 1); + net->in[i] = '\0'; + *type = ZoO_JOIN; return 0; 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; } diff --git a/src/io/parameters_types.h b/src/io/parameters_types.h index 6d511d8..92a9e30 100644 --- a/src/io/parameters_types.h +++ b/src/io/parameters_types.h @@ -4,6 +4,7 @@ struct ZoO_parameters { const char * restrict data_filename; + const char * restrict new_data_filename; const char * restrict irc_server_addr; const char * restrict irc_server_port; |


