Add docs, move tests and free struct storage as llist doesn't anymore

This commit is contained in:
Alex D. 2021-04-01 22:07:56 +00:00
parent 282d643347
commit e32ee3adca
Signed by: caskd
GPG Key ID: F92BA85F61F4C173
13 changed files with 48 additions and 3 deletions

View File

@ -92,7 +92,7 @@ if(BUILD_DOCS)
endif()
if (BUILD_TESTS)
message(STATUS "Tests are going to be built.")
add_subdirectory(tests)
add_subdirectory(src/tests)
enable_testing()
add_test(NAME "FullLoop" COMMAND "fullloop")
add_test(NAME "EarlyTrail" COMMAND "earlytrail")

View File

@ -30,10 +30,17 @@
/*!
* \brief Tokenize IRCv3 tags
*
* This function parses IRCv3 tags according to the specification at
* \param[in] str String containing a IRC source with or without the ':' prefix
* This function parses IRCv3 tags according to the specification at https://ircv3.net/specs/extensions/message-tags
*
* \param[in] str String containing list of tags
*/
llist_t* uirc_tokenizer_tag_list(const char* str);
/*!
* \brief Tokenize IRCv3 tag
*
* This function tokenizes a individual tag in format key=value
* \param[in] str String containing the key and optionally it's value
*/
IRC_Tag* uirc_tokenizer_tag(const char* str);
#endif /* UIRC_FEATURE_IRCV3 */

View File

@ -1,2 +1,38 @@
/// ***************************************************************************
/// @mainpage MicroIRC library
///
/// Simple and lightweight IRC protocol helper
///
/// # Getting started
/// The core functionality of the library is in the assembers and tokenizers
///
/// ## Tokenizers
/// - \ref uirc_tokenizer_message
/// - \ref uirc_tokenizer_user
/// - \ref uirc_tokenizer_tag
/// - \ref uirc_tokenizer_tag_list
///
/// ## Assemblers
/// - \ref uirc_assembler_message
/// - \ref uirc_assembler_user
/// - \ref uirc_assembler_tag
/// - \ref uirc_assembler_tag_list
///
/// # Going deeper
/// This library manages memory mostly by itself but still requires you to
/// clean up after it. Here are the memory management functions
///
/// ## Struct memory management
/// - \ref uirc_struct_free
/// - \ref uirc_struct_assm_message
/// - \ref uirc_struct_assm_user
/// - \ref uirc_struct_assm_tag
/// - \ref uirc_struct_assm_capability
/// - \ref uirc_struct_assm_buffer
/// - \ref uirc_struct_assm_network
///
/// ## List memory management
/// - \ref uirc_list_append
/// - \ref uirc_list_free
///
/// ***************************************************************************

View File

@ -22,6 +22,7 @@
#include <assert.h> // assert()
#include <corelibs/llist.h> // llist_t
#include <stddef.h> // ptrdiff_t
#include <stdlib.h> // free()
void*
uirc_list_append(llist_t* anchor, void* content)
@ -43,6 +44,7 @@ uirc_list_free(llist_t* list, IRC_Struct_Type type)
llist_t* const save = list;
list = list->next;
if (save->content != NULL) uirc_struct_free(save->content, type);
free(save->content);
llist_elem_rm(save);
}
return cnt;