| 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; | 


